1. 28 Nov, 2012 1 commit
    • John Koleszar's avatar
      Clamp decoded feature data · a1f15814
      John Koleszar authored
      Not all segment feature data elements are full-range powers of two, so
      there are values that can be encoded that are invalid. Add a new function
      to clamp values to the maximum allowed.
      
      Change-Id: Ie47cb80ef2d54292e6b8db9f699c57214a915bc4
      a1f15814
  2. 27 Nov, 2012 1 commit
    • John Koleszar's avatar
      Add vp9_ prefix to all vp9 files · fcccbcbb
      John Koleszar authored
      Support for gyp which doesn't support multiple objects in the same
      static library having the same basename.
      
      Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
      fcccbcbb
  3. 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
  4. 14 Nov, 2012 1 commit
  5. 13 Nov, 2012 3 commits
  6. 12 Nov, 2012 1 commit
    • Paul Wilkins's avatar
      New inter mode context · 2669f42b
      Paul Wilkins authored
      This change is a fix / extension of the newbestrefmv
      experiment. As such it is presented without IFDEF.
      
      The change creates a new context for coding inter modes
      in vp9_find_mv_refs(). This replaces the context that
      was previously calculated in vp9_find_near_mvs().
      The new context is unoptimized and not necessarily
      any better at this stage (results pending), but eliminates
      the need for a legacy call to vp9_find_near_mvs().
      Based on numbers from Scott, this could help decode
      speed by several %.
      
      In a later patch I will add support for forward update of
      context (assuming this helps) and refine the context as
      necessary.
      
      Change-Id: I1cd991b82c8df86cc02237a34185e6d67510698a
      2669f42b
  7. 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
  8. 08 Nov, 2012 2 commits
    • Jim Bankoski's avatar
      remove macros obfuscating mv costing · c72be96b
      Jim Bankoski authored
      cleanup
      
      Change-Id: I565eee40d900e0441ad211b65ac829fc5b93d94a
      c72be96b
    • 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
  9. 07 Nov, 2012 1 commit
  10. 06 Nov, 2012 2 commits
  11. 01 Nov, 2012 2 commits
  12. 31 Oct, 2012 5 commits
  13. 30 Oct, 2012 6 commits
  14. 29 Oct, 2012 1 commit
    • Paul Wilkins's avatar
      Name space clean up. · a99a2c36
      Paul Wilkins authored
      Preparation for project restructuring.
      Added vp9_ prefix on some function names that have global scope.
      Added static declaration on some that dont.
      
      Change-Id: If072f78b4300e8c17cfeed82c5d17b59946dcc5e
      a99a2c36
  15. 26 Oct, 2012 1 commit
    • Paul Wilkins's avatar
      Explicit MV reference experiment. · ba30e774
      Paul Wilkins authored
      Coding and costing of mv reference signal.
      
      Issues in updating MV ref with COMPANDED_MVREF_THRESH
      to be resolved. Ideally the MV precision should be defined based
      on absolute MV magnitude not as now the MV ref magnitude.
      
      Update to mv counts moved into bitstream.c because otherwise
      if the motion reference is changed at the last minute the encoder
      and decoder get out of step in terms of the counts used to update
      entropy probs.
      
      Code working on a few test clips but no results yet re benefit vs
      signaling cost and no tuning of red loop to test lower cost alternatives
      based on the available reference values.
      
      Patch 3. Added check to make sure we don't pick a reference
      that would give rise to an uncodeable / out of range residual.
      
      Patch 6-7: Attempt to rebase. OK to submit but best to leave flag off for now.
      
      Patch 9. Remove print no longer needed.
      
      Change-Id: I1938c2ffe41afe6d3cf6ccc0cb2c5d404809a712
      ba30e774
  16. 24 Oct, 2012 1 commit
    • 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
  17. 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
  18. 22 Oct, 2012 5 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
    • Ronald S. Bultje's avatar
      Invert SB probability. · ef50e483
      Ronald S. Bultje authored
      It currently counts the probability that the branch is true, but it
      should count the probability that the branch is false.
      
      Change-Id: I963825da2e7a7ed3a613eb23ffd085e427dc36e5
      ef50e483
  19. 19 Oct, 2012 2 commits
    • John Koleszar's avatar
      calculate probs consistently · 91dc8ce7
      John Koleszar authored
      There were several different methods for calculating bitstream
      probabilities in use. Consolodate these into a pair of functions,
      get_prob() and get_binary_prob().
      
      Change-Id: I5534f517f74027fee16d89c9baefaafea8156b2f
      91dc8ce7
    • 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