1. 24 Feb, 2017 11 commits
    • Angie Chiang's avatar
      Add probability/count tables for lv_map experiment · bd57fc55
      Angie Chiang authored
      Change-Id: Ie73bb51d4a24c2ff719758c38e303db92e6f4500
      bd57fc55
    • Luc Trudeau's avatar
      Remove redundant loop in ctx_reset · 98bc74ca
      Luc Trudeau authored
      Merges two consecutive loops that iterated over TX_SIZES. There's no
      impact to the bitstream. The 4 used as the termination threshold in the
      second loop is equivalent to TX_SIZES.
      
      Change-Id: Ic891d209b28f20907d53bcdd58139fe39c37b0fa
      98bc74ca
    • Thomas Davies's avatar
      Make entropy experiments compatible with TX6X64 and CB4x4. · 1bdcc775
      Thomas Davies authored
      Use correct probability initialisations for EC_ADAPT and
      NEW_TOKENSET.
      
      Change-Id: I28310d40eab544cd57a11ce88eb8b7ab31e69ec7
      1bdcc775
    • Thomas Davies's avatar
      Use default CDF tables when initialising mv probs. · 05fdc391
      Thomas Davies authored
      No change in BDR.
      
      Change-Id: Ib6934b59de340e68dd983d9f53f8878588969acb
      05fdc391
    • Thomas Davies's avatar
      Use default CDF tables when initialising mode probs. · 1d7db728
      Thomas Davies authored
      No change in BDR.
      
      Change-Id: I77551120a2e94dcbf818b039154495f0f9b21755
      1d7db728
    • Thomas Davies's avatar
      Use default CDF tables when initialising coef probs. · 87aeeb85
      Thomas Davies authored
      When creating the CDF head, do not use 8-bit probabilities
      to make the CDF tables, but load them directly.
      
      CDF tail values are created from the ONE_TOKEN relative
      probability as before.
      
      No change to BDR.
      
      Change-Id: I7386b8952f6f69cc9b77aa1b2bee71cf8e3cc9ff
      87aeeb85
    • Fangwen Fu's avatar
      improving palette throughput · 33bcd117
      Fangwen Fu authored
      * code the palette color index using 45 wavefront
      * interleave the coeff and palette color index in
        transform block level
      * the above change does not change code efficiency
      
      Details: 
      The 45 wavefront scan allows to compute the ctx of
      the diagonal samples' indices  at the same time. 
      Interleaving palette indices and palette residual
      on a transform block basis means that the entropy
       decoding and further processing of the palette 
      residual is not delayed by the entropy decoding 
      of all the color indices of the palette encoded 
      block.
      Change-Id: Ie9f576002a9a68394b99c23b01e9730df06df070
      33bcd117
    • Thomas Davies's avatar
      EC_MULTISYMBOL: make all CDFs have a extra element. · f3eb840a
      Thomas Davies authored
      This will make it easier to add native CDFs for all the
      dependent experiments without excessive macros.
      
      Change-Id: Iee4710f0fe1c1b4300f686cdf2c5b879a36de987
      f3eb840a
    • Luc Trudeau's avatar
      Add get_plane_type() helper function. · 005feb6b
      Luc Trudeau authored
      Adds the static inline function get_plane_type to convert a plane number
      to the corresponding PLANE_TYPE.
      
      There's no change to the bitstream, it only encapsulates the logic to
      get the PLANE_TYPE.
      
      Change-Id: I1199db3a32c89437d9c029ab5b2b2e62582a13a2
      005feb6b
    • Angie Chiang's avatar
      Use 10 tap for sharp interpolation filter · d59fa2ae
      Angie Chiang authored
      Performance drop
      lowres 0.056%
      midres 0.024%
      hdres 0.02%
      
      Change-Id: I52d067eefbfb87198319f9d50e3b4060f80a6abb
      d59fa2ae
    • Angie Chiang's avatar
      Let hbd conv func be flexible · 0a2c0cbc
      Angie Chiang authored
      This CL allow us to change filter coefficients easily for SIMD
      implementation of high bitdepth convolution functions
      
      Change-Id: I454a5c76d3ba9e4454118c6a9d87737b3aa24898
      0a2c0cbc
  2. 23 Feb, 2017 7 commits
    • Jingning Han's avatar
      Remove unused av1_build_inter_predictors_sbp() · b5bb3ff9
      Jingning Han authored
      Change-Id: I43207cabac921fee77d19855abe49868dfd98bd1
      b5bb3ff9
    • Sarah Parker's avatar
      Avoid sending tx type for ext_tx reduced set for sub 8x8 · 5effe3fb
      Sarah Parker authored
      This makes the handling of sub8x8 the same as when the
      ext_tx reduced set is turned off.
      
      Change-Id: I3123e473fc70469330bb49d960d02cb1aebc17cf
      5effe3fb
    • Jingning Han's avatar
      Add chroma 2x2 block experiment · 31b6a4f9
      Jingning Han authored
      Support the use of 2x2 prediction and transform block size for
      chroma components. This experiment builds on top of cb4x4. It
      brings back the loss in performance gains due to 4x4 chroma
      component constrain. The coding gains for lowres are up from 1.5%
      to 2.5%.
      
      Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9
      31b6a4f9
    • David Barker's avatar
      Change gm_get_motion_vector · 45390c18
      David Barker authored
      Since gm_get_motion_vector is trying to give a motion vector for
      "the frame as a whole", it makes more sense for it to calculate
      the motion of the *center* of the block rather than the top-left
      corner of the frame.
      
      In theory, this change should also help the encoder make better
      decisions on when to use global motion. It avoids an issue
      where, early in the frame, NEARESTMV looks like a good way to use
      the global motion vector *without* paying the rate cost applied
      to the first few global motion blocks in each frame. This seems
      to lead to a better overall result.
      
      Change-Id: Ia5c6259ceb8b4ff3d00a5d553e1d18bdb802da59
      45390c18
    • Jingning Han's avatar
      Fix bottom ref condition for intra prediction in cb4x4 · f0179c3c
      Jingning Han authored
      Resolve a rare enc/dec mismatch issue triggered by the 4x4 chroma
      block size in sub8x8 block coding.
      
      To avoid using 2x2 chroma block size, it always uses the top-left
      4x4 luma block coding information to predict the 4x4 chroma block.
      The rest 3 4x4 luma blocks will be coded independently without
      coding the collocated chroma blocks.
      
      The compression performance gains are 1.45% for lowres set (down
      from 2.4% of the original cb4x4 design).
      
      Change-Id: Iff560fcab172ed4219434d5174c4d8dfbbb04135
      f0179c3c
    • Angie Chiang's avatar
      Turn off has_subpel_mv_component check · 043de633
      Angie Chiang authored
      This CL aim at facilitating hardware implementation
      The check will be turned on once we have faster motion vector
      coding system
      
      Performance drop
      lowres 0.157%
      midres 0.260%
      
      Change-Id: Iedc961f44efadfe84ff9edab408f44845bffcfe9
      043de633
    • Angie Chiang's avatar
      Enable av1_is_interp_needed in handle_inter_mode · e7e37208
      Angie Chiang authored
      If there no sub-pixel in both direction of MV,
      the interp_filter is set to EIGHTTAP_REGULAR
      
      Change-Id: I208c34906544f1937c57d78017999be6eddd9e87
      e7e37208
  3. 22 Feb, 2017 10 commits
  4. 21 Feb, 2017 4 commits
  5. 18 Feb, 2017 6 commits
  6. 17 Feb, 2017 2 commits
    • Urvang Joshi's avatar
      InterpFilter type: Create an enum. · a9b174bd
      Urvang Joshi authored
      We use a single enum instead of multiple #defines.
      - Ensures better type checking
      - Enum values are generated implicitly, and hard-coded #defines are not
      required.
      - We use ATTRIBUTE_PACKED to indicate that the enum should still use the
      smallest integral type.
      
      Change-Id: I7532428da31744d3441b363bd932a7f233ee7ab5
      a9b174bd
    • Debargha Mukherjee's avatar
      Replace division in self-guided filter · 4be12628
      Debargha Mukherjee authored
      Replaces division with multiplication in self-guided
      filter.
      
      The guided filter requires computation of:
      n^2.s^2/(n^2.s^2 + n^2.e).
      This is now implemented by computation of n^2.s^2/n^2.e followed
      by using a lookup table for the function f(x) = x/(x+1).
      To compute n^2.s^2/n^2.e, we use an integer multiplication based
      implementation which becomes feasible since n^2.e can only
      take a few values and their corresponding multipliers can be
      pre-computed.
      There is also another divison by n, that is also integerized.
      
      Change-Id: Id7b81bbafead0b8f04a1853ec69b9dec423bb66a
      4be12628