1. 08 Jan, 2013 - 2 commits
    • Yaowu Xu's avatar
      reset segement map on key frame · c14439c3
      Yaowu Xu authored
      This is to fix a decoder crash when decoder skips a number of frame to
      continue decoding from a later key frame.
      
      Change-Id: I3ba116eba6c3440e0528a21f53745f694302e4ad
      c14439c3
    • Yaowu Xu's avatar
      minor loop filter refactoring and cleanup · d278d018
      Yaowu Xu authored
      This commit did a couple of minor cleanup/refactoring to prepare for
      futher loop filter experiments. It merged y_only version of loop filter
      function into the regular one, which makes sure that same logic is used
      for functions for picking level and for actual loop filtering.
      
      Change-Id: Id10c94dccd45f58e5310bacfdf6ee63cbb60b86f
      d278d018
  2. 07 Jan, 2013 - 3 commits
  3. 06 Jan, 2013 - 1 commit
  4. 04 Jan, 2013 - 2 commits
    • Adrian Grange's avatar
      Fix mode selection infinite loop bug · 81d1171f
      Adrian Grange authored
      Mode selection for SBs could enter an infinite loop because
      the interpolation filter mode index was not being reset
      correctly.
      
      Change-Id: I4bbe726f29ef5b6836e94884067c46084713cc11
      81d1171f
    • Paul Wilkins's avatar
      Further change to mv reference search. · c6ba3a3d
      Paul Wilkins authored
      This experimental change reorders the search so
      that all possible references that match the target
      reference frame are tested first and these in order
      of distance from the current block. These will usually
      be the highest scoring candidates.
      
      If we do not find enough good candidates this way
      we try non matching cases. These will usually be lower
      scoring candidates.
      
      The change in order together with breakouts when
      we have found enough candidates should reduce
      the computational cost and especially reduce the number
      of sort operations.
      
      Quality Results:
      Std Hd +0.228%, Hd +0.074%, YT +0.046%, derf +0.137%
      
      This effect is probably due to the fact that more distant
      weak candidates are now less likely to get "promoted" over
      near candidates even if they are repeated.
      
      Change-Id: Iec37e77d88a48ad0ee1f315b14327a95d63f81f6
      c6ba3a3d
  5. 03 Jan, 2013 - 3 commits
    • Yaowu Xu's avatar
      make cost_coeffs() and tokenize_b() consistent · 83664f45
      Yaowu Xu authored
      Change-Id: I7cdb5c32a1400f88ec36d08ea982e38b77731602
      83664f45
    • Adrian Grange's avatar
      New interpolation filter selection algorithm · 259b8008
      Adrian Grange authored
      Old Scheme:
      When SWITCHABLE filter selection is enabled the encoder
      evaluates the use of each interpolation filter type and
      selects the best one to use at the MB level. A frame-
      level flag can be set to force the use of a particular
      filter type for all MBs in a frame if it is more efficient
      to encode that way. The logic here involved a Q dependent
      threshold that assumed that the second 8-tap filter was
      a high-pass filter. However, this requires a trip around
      the recode loop. If the frame-level flag indicates use
      of a particular filter, the other filters are not
      evaluated in the pick_mode loop.
      
      New Scheme:
      Each filter type is evaluated at the MB level and a record
      of the best filter is kept, irrespective of what filter
      is signaled at the frame-level. Once all MBs have been
      encoded, a decision is made as to what frame-level mode
      to set for the *next* frame. If one filter is used by 80%
      or more of the MBs, then this filter is forced since it
      is assumed that this will be more efficient if the
      next frame has similar characteristics. i.e. there is a
      one-frame lag between measuring the filter selection and
      setting the frame-level mode to use.
      
      Change-Id: I6a7e7ced8f27e120fafb99db2dc9c6293f8d20f7
      259b8008
    • Yaowu Xu's avatar
      Merge cost_coeffs_2x2() into cost_coeffs() · bd28510e
      Yaowu Xu authored
      Remove special case function cost_coeffs_2x2() and change function
      cost_coeffs() to handle 2nd order haar block as it is handle all
      other block types already.
      
      Change-Id: I2aac6f81ee0ae9e03d6a8da4f8681d69b79ce41f
      bd28510e
  6. 02 Jan, 2013 - 2 commits
  7. 28 Dec, 2012 - 1 commit
    • Yunqing Wang's avatar
      Skip finding best ref_mvs when the mode is ZEROMV · 0f4de157
      Yunqing Wang authored
      Read mode before calling vp9_find_best_ref_mvs(). If the mode is
      ZEROMV, the best ref_mvs are not needed. Then, we can skip calling
      vp9_find_best_ref_mvs().
      
      Change-Id: I5baa3658dd3f1c7107211cbbbcf919b4584be2e2
      0f4de157
  8. 27 Dec, 2012 - 1 commit
    • Yunqing Wang's avatar
      Switch the order of calculating 2-D inverse transform · cc80247f
      Yunqing Wang authored
      The 2-D inverse transform X = M1*Z*Transposed_M2 was calculated
      in 2 steps from left to right:
      1. Vertical transform: Y = M1*Z
      2. Horizontal transform: X= Y*Transposed_M2
      In SIMD, a transpose is needed in vertical transform.
      
      Here, switched the calculation order to do it from right to left.
      In this way, we could eliminate that transpose by writing the
      intermediate results out to their transposed positions.
      
      Change-Id: I34dfe5eb01292f6e363712420d99475e2e81e12c
      cc80247f
  9. 26 Dec, 2012 - 1 commit
  10. 21 Dec, 2012 - 4 commits
  11. 20 Dec, 2012 - 3 commits
    • James Zern's avatar
      add emmintrin_compat.h for builds with gcc < 4 · 9dab3ce6
      James Zern authored
      Change-Id: If7822e6fcd0d3568b934032322b19ba3e401df26
      9dab3ce6
    • Jim Bankoski's avatar
      add private to assembly files to insure proper chromebuild · 1dffce7f
      Jim Bankoski authored
      Change-Id: I6e43ca73f35401a974ed8ee27738d4318f09fd37
      1dffce7f
    • Deb Mukherjee's avatar
      New previous coef context experiment · 08f0c7cc
      Deb Mukherjee authored
      Adds an experiment to derive the previous context of a coefficient
      not just from the previous coefficient in the scan order but from a
      combination of several neighboring coefficients previously encountered
      in scan order.  A precomputed table of neighbors for each location
      for each scan type and block size is used. Currently 5 neighbors are
      used.
      
      Results are about 0.2% positive using a strategy where the max coef
      magnitude from the 5 neigbors is used to derive the context.
      
      Change-Id: Ie708b54d8e1898af742846ce2d1e2b0d89fd4ad5
      08f0c7cc
  12. 19 Dec, 2012 - 3 commits
  13. 18 Dec, 2012 - 6 commits
  14. 17 Dec, 2012 - 3 commits
    • John Koleszar's avatar
      Remove vp9_type_aliases.h · 1306ba76
      John Koleszar authored
      Prefer the standard fixed-size integer typedefs.
      
      Change-Id: Iad75582350669e49a8da3b7facb9c259e9514a5b
      1306ba76
    • Yaowu Xu's avatar
      fixed a warning · 0405cd8e
      Yaowu Xu authored
      where variable is used without initialization
      
      Change-Id: Ic6b52623802641060cad4a72271050aeaf20ad5c
      0405cd8e
    • Paul Wilkins's avatar
      Problem of over smoothing with intra modes. · d8f5d1b2
      Paul Wilkins authored
      In some cases intra modes in inter frames give
      an over smoothed appearance. Especially with
      noisy but flat content.
      
      Also in some cases there were problems with key
      frame sizing again with very flat but noisy content.
      
      These are temporary changes to help alleviate the
      visual problems but will almost certainly hurt metric
      results especially at the very low data rate end.
      
      Change-Id: I11549179a19277ffc283d9788bc70168f2a8bdc9
      d8f5d1b2
  15. 14 Dec, 2012 - 3 commits
    • Yaowu Xu's avatar
      reset segement map on key frame · 6247b239
      Yaowu Xu authored
      This is to fix a decoder crash when decoder skips a number of frame to
      continue decoding from a later key frame.
      
      Change-Id: I3ba116eba6c3440e0528a21f53745f694302e4ad
      6247b239
    • Yaowu Xu's avatar
      prevents redefine of INT64_MAX · f8ff3e5d
      Yaowu Xu authored
      MSVC 2012 (_MSC_VER=1600) introduced the definition, this commit
      prevents the redefinition of the macro
      
      Change-Id: I7de92e7e9e865a342f2bcc4b071f8d3c9b2a508c
      f8ff3e5d
    • Yaowu Xu's avatar
      remove floating point inverse transforms · fd6f4926
      Yaowu Xu authored
      Change-Id: I9c651bd7c161974bf5f929446361b00d85e57a3f
      fd6f4926
  16. 13 Dec, 2012 - 2 commits
    • Yaowu Xu's avatar
      fixed an encoder/decoder mismatch · 2b9ec585
      Yaowu Xu authored
      The mismatch was caused by an improper merge of cleanup code around
      tokenize_b() and stuff_b() with TX32X32 experiment.
      
      Change-Id: I225ae62f015983751f017386548d9c988c30664c
      2b9ec585
    • Yaowu Xu's avatar
      fixed build issue with round() · c6818876
      Yaowu Xu authored
      not defined in msvc
      
      Change-Id: I8fe8462a0c2f636d8b43c0243832ca67578f3665
      c6818876