1. 17 Nov, 2012 1 commit
    • Ronald S. Bultje's avatar
      Remove special-case inline detokenization in b_pred reconstruction. · f19a1caf
      Ronald S. Bultje authored
      Just like for all other block modes, b_pred tokens can be read together
      before starting macroblock reconstruction. This removes special cases
      for b_pred in decode_macroblock() and allows to make decode_coefs_4x4()
      static in detokenize.c.
      
      While at it, remove the redundant handling and checking of plane_type
      and block_index (i) in decode_coefs_4x4(). Since the function is static,
      and is called only from decode_mb_tokens_4x4(), we don't need to worry
      that the arguments ever go out of sync.
      
      Change-Id: I2d415da0b51b89d0490a6b9e24cc86363c2090f7
      f19a1caf
  2. 16 Nov, 2012 3 commits
    • Ronald S. Bultje's avatar
      Support 32x32 intra modes in non-keyframe superblocks. · 5b11052a
      Ronald S. Bultje authored
      Change-Id: Icf8ad313c543462e523bff89690e5daa8d49bcc0
      5b11052a
    • Paul Wilkins's avatar
      Further experimentation with the mode context · a57dbd95
      Paul Wilkins authored
      Experiments with a larger set of contexts and some
      clean up to replace magic numbers regarding the
      number of contexts.
      
      The starting values and rate of backwards adaption
      are still suspect and based on a small set of tests.
      Added forwards adjustment of probabilities.
      
      The net result of adding the new context and forward
      update is small compared to the old context from the
      legacy find_near function.  (down a little on derf but
      up by a similar amount for HD)
      
      HOWEVER.... with the new context and forward update
      the impact of disabling the reverse update (which may be
      necessary in some use cases to facilitate parallel decoding)
      is hugely reduced.
      
      For the old context without forward update, the impact of
      turning off reverse update (Experiment was with SB off) was
      Derf - 0.9, Yt -1.89, ythd -2.75 and sthd -8.35. The impact was
      mainly at low data rates.
      
      With the new context and forward update enabled the impact
      for all the test sets was no more than 0.5-1% (again most at
      the low end).
      
      Change-Id: Ic751b414c8ce7f7f3ebc6f19a741d774d2b4b556
      a57dbd95
    • Deb Mukherjee's avatar
      Compound inter-intra experiment · 0c917fc9
      Deb Mukherjee authored
      A patch on compound inter-intra prediction.
      
      In compound inter-intra prediction, a new predictor for
      16x16 inter coded MBs are obtained by combining a single
      inter predictor with a 16x16 intra predictor, in a manner
      that the weight varies with distance from the top/left
      boundary. The current search strategy is to combine the best
      inter mode with the best intra mode obtained independently.
      
      Results so far:
      
      derf +0.31%
      yt +0.32%
      std-hd +0.35%
      hd +0.42%
      
      It is conceivable that the results would improve somewhat
      with a more thorough search strategy where all intra modes
      are searched given the best mv, or even a joint search for
      the best mv and the best intra mode.
      
      Change-Id: I7951f1ed0d6eb31ca32ac24d120f1585bcd8d79b
      0c917fc9
  3. 15 Nov, 2012 1 commit
  4. 13 Nov, 2012 2 commits
    • Yunqing Wang's avatar
      Optimize 8x8 dequant and idct · e60478d4
      Yunqing Wang authored
      Similar to 16x16 dequant and idct, based on the value of eobs, the
      8x8 dequant and idct calculation was simplified to improve decorder
      performance.
      
      Combined vp9_dequant_idct_add_8x8 and vp9_dequant_dc_idct_add_8x8
      to eliminate duplicate code.
      
      Change-Id: Ia58e50ab27f7012b7379c495837c9c0b5ba9cf7f
      e60478d4
    • Ronald S. Bultje's avatar
      Fix edge MV handling in SBs. · 72297245
      Ronald S. Bultje authored
      Change-Id: Ia1eddb108ec463835e9de8769572d698e21bca49
      72297245
  5. 10 Nov, 2012 1 commit
    • Deb Mukherjee's avatar
      New b-intra mode where direction is contextual · d01357bb
      Deb Mukherjee authored
      Preliminary patch on a new 4x4 intra mode B_CONTEXT_PRED where the
      dominant direction from the context is used to encode. Various decoder
      changes are needed to support decoding of B_CONTEXT_PRED in conjunction
      with hybrid transforms since the scan order and tokenization depends on
      the actual direction of prediction obtained from the context. Currently
      the traditional directional modes are used in conjunction with the
      B_CONTEXT_PRED, which also seems to provide the best results.
      
      The gains are small - in the 0.1% range.
      
      Change-Id: I5a7ea80b5218f42a9c0dfb42d3f79a68c7f0cdc2
      d01357bb
  6. 09 Nov, 2012 1 commit
  7. 08 Nov, 2012 2 commits
    • Ronald S. Bultje's avatar
      Implement tx_select for superblock encoding. · 1d4fbeb3
      Ronald S. Bultje authored
      Also split superblock handling code out of decode_macroblock() into
      a new function decode_superblock(), for easier readability.
      
      Derf +0.05%, HD +0.2%, STDHD +0.1%. We can likely get further gains
      by allowing to select mb_skip_coeff for a subset of the complete SB
      or something along those lines, because although this change allows
      coding smaller transforms for bigger predictors, it increases the
      overhead of coding EOBs to skip the parts where the residual is
      near-zero, and thus the overall gain is not as high as we'd expect.
      
      Change-Id: I552ce1286487267f504e3090b683e15515791efa
      1d4fbeb3
    • Yunqing Wang's avatar
      Optimize 16x16 dequant and idct · 6c17c9fa
      Yunqing Wang authored
      As suggested by Yaowu, simplified 16x16 dequant and idct. In decoder,
      after detoken step, we know the number of non-zero dct coefficients
      (eobs) in a macroblock. Idct calculation can be skipped or simplified
      based on eobs, which improves the decoder performance.
      
      Change-Id: I9ffa1cb134bcb5a7d64fcf90c81871a96d1b4018
      6c17c9fa
  8. 06 Nov, 2012 1 commit
    • Yaowu Xu's avatar
      silent a lot of MSVC compiler warnings · 8a336b0d
      Yaowu Xu authored
      there are still a couple type of warning left, which are related to
      double constants assigned to float type. As those would be addressed
      by the conversion of transforms into integer version. This commit
      has left those un-dealt with.
      
      Change-Id: I48fd9b489c0c27ad6b543f4177423419f929f2bb
      8a336b0d
  9. 02 Nov, 2012 2 commits
  10. 01 Nov, 2012 2 commits
  11. 31 Oct, 2012 5 commits
  12. 30 Oct, 2012 7 commits
  13. 26 Oct, 2012 1 commit
  14. 25 Oct, 2012 2 commits
  15. 24 Oct, 2012 2 commits
    • John Koleszar's avatar
      Fix bad merge of coef_probs update · 45b4832f
      John Koleszar authored
      Stray CONFIG_HYBRIDTRANSFORM caused decode mismatch.
      
      Change-Id: I1d77bad9b366f7a6ceb3cb45269ed5badb5c4c53
      45b4832f
    • John Koleszar's avatar
      coef_probs: remove duplicate read/update code · 226e55c1
      John Koleszar authored
      Refactor per-transform copy & paste into a common function
      update_coef_probs_common() and read_coef_probs_common(). The dry-run and
      bit-writing loops in the encoder are still obvious candidates to be made
      common, but they start to diverge a bit in the next commit, so are left
      as-is for now.
      
      Change-Id: I896bd3f4a073a6296eab7e92463fef79d8c6c08c
      226e55c1
  16. 23 Oct, 2012 1 commit
    • Deb Mukherjee's avatar
      Merging in the Switchable interp experiment · 53731197
      Deb Mukherjee authored
      There is a macro DEFAULT_INTERP_FILTER defined in encoder/onyx_if.c that
      is set as EIGHTTAP for now - so SWITCHABLE is not really used. Ideally,
      this should be SWITCHABLE but that would make the encoder quite a bit slower.
      We will change the default filter to SWITCHABLE once we find a faster way to
      search for switchable filters.
      
      Change-Id: Iee91832cdc07e6e14108d9b543130fdd12fc9874
      53731197
  17. 22 Oct, 2012 4 commits
    • Deb Mukherjee's avatar
      Merging in the TX_SELECT experiment · 04d62a98
      Deb Mukherjee authored
      Change-Id: I0d306b0062be59bc785b65882691c956c8b5e7c8
      04d62a98
    • Deb Mukherjee's avatar
      Merge of the newmventropy experiment · 78808ad9
      Deb Mukherjee authored
      Removes the old mv encoding code.
      
      Change-Id: I1026d48cc5ac15ccb776f98463e929254c3dc7da
      78808ad9
    • Deb Mukherjee's avatar
      Merging the hybrid transform experiments · f1046563
      Deb Mukherjee authored
      Change-Id: I99f1982b30a630a9a070a8326d83b34a33cba14c
      f1046563
    • Ronald S. Bultje's avatar
      8x8 transform support in splitmv. · 84ea002e
      Ronald S. Bultje authored
      For splitmv, where partitioning is 8x16, 16x8 or 8x8, this patch
      uses the 8x8 transform (instead of the 4x4) if txfm_mode is
      ALLOW_8X8 or ALLOW_16X16. For TX_MODE_SELECT, splitmv can indicate
      which of the 2 transform sizes (4x4 or 8x8) it wants to use.
      
      Gains (with hybridtx4x4/8x8/16x16 and tx_select experiments
      enabled) on derf: +0.9%, HD: +0.4%, STD/HD: +0.8% (SSIM or overall
      PSNR, both metrics show similar improvements).
      
      Change-Id: Ide954b000b415548ed92a7ac78e24f36e60fcf06
      84ea002e
  18. 21 Oct, 2012 1 commit
  19. 19 Oct, 2012 1 commit
    • John Koleszar's avatar
      Remove bc, bc2 from pbi,cpi,xd · e9fd1eac
      John Koleszar authored
      Pass the bool coder to be used explicitly. This avoids cases where two
      different bool coders can be addressed from the same function. Also be
      more consistent with bool coder variable naming, start to standardize
      on 'bc'.
      
      Change-Id: I1c95e2fdbe24ebe8c0f84924daa1728e3b054a31
      e9fd1eac