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. 06 Jan, 2013 1 commit
  3. 02 Jan, 2013 1 commit
  4. 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
  5. 20 Dec, 2012 1 commit
    • 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
  6. 19 Dec, 2012 1 commit
    • John Koleszar's avatar
      Use boolcoder API instead of inlining · 05ec800e
      John Koleszar authored
      This patch changes the token packing to call the bool encoder API rather
      than inlining it into the token packing function, and similarly removes
      a special get_signed case from the detokenizer. This allows easier
      experimentation with changing the bool coder as a whole.
      
      Change-Id: I52c3625bbe4960b68cfb873b0e39ade0c82f9e91
      05ec800e
  7. 18 Dec, 2012 3 commits
  8. 17 Dec, 2012 1 commit
  9. 13 Dec, 2012 1 commit
  10. 12 Dec, 2012 1 commit
    • Ronald S. Bultje's avatar
      Consistently use get_prob(), clip_prob() and newly added clip_pixel(). · 4d0ec7aa
      Ronald S. Bultje authored
      Add a function clip_pixel() to clip a pixel value to the [0,255] range
      of allowed values, and use this where-ever appropriate (e.g. prediction,
      reconstruction). Likewise, consistently use the recently added function
      clip_prob(), which calculates a binary probability in the [1,255] range.
      If possible, try to use get_prob() or its sister get_binary_prob() to
      calculate binary probabilities, for consistency.
      
      Since in some places, this means that binary probability calculations
      are changed (we use {255,256}*count0/(total) in a range of places,
      and all of these are now changed to use 256*count0+(total>>1)/total),
      this changes the encoding result, so this patch warrants some extensive
      testing.
      
      Change-Id: Ibeeff8d886496839b8e0c0ace9ccc552351f7628
      4d0ec7aa
  11. 11 Dec, 2012 1 commit
  12. 10 Dec, 2012 1 commit
    • Paul Wilkins's avatar
      Further changes to mv reference code. · d1244659
      Paul Wilkins authored
      Some further changes and refactoring of mv
      reference code and selection of center point for
      searches. Mainly relates to not passing so many
      different local copies of things around.
      
      Some place holder comments.
      
      Change-Id: I309f10ffe9a9cde7663e7eae19eb594371c8d055
      d1244659
  13. 08 Dec, 2012 3 commits
    • Yaowu Xu's avatar
      experiment with CONTEXT conversion · ab480ced
      Yaowu Xu authored
      This commit changed the ENTROPY_CONTEXT conversion between MBs that
      have different transform sizes.
      
      In additioin, this commit also did a number of cleanup/bug fix:
      1. removed duplicate function vp9_fix_contexts() and changed to use
      vp8_reset_mb_token_contexts() for both encoder and decoder
      2. fixed a bug in stuff_mb_16x16 where wrong context was used for
      the UV.
      3. changed reset all context to 0 if a MB is skipped to simplify the
      logic.
      
      Change-Id: I7bc57a5fb6dbf1f85eac1543daaeb3a61633275c
      ab480ced
    • Ronald S. Bultje's avatar
      Clean up 4x4 coefficient decoding code. · fbf052df
      Ronald S. Bultje authored
      Don't use vp9_decode_coefs_4x4() for 2nd order DC or luma blocks. The
      code introduces some overhead which is unnecessary for these cases.
      Also, remove variable declarations that are only used once, remove
      magic offsets into the coefficient buffer (use xd->block[i].qcoeff
      instead of xd->qcoeff + magic_offset), and fix a few Google Style
      Guide violations.
      
      Change-Id: I0ae653fd80ca7f1e4bccd87ecef95ddfff8f28b4
      fbf052df
    • Ronald S. Bultje's avatar
      Introduce vp9_coeff_probs/counts/stats/accum types. · 885cf816
      Ronald S. Bultje authored
      Use these, instead of the 4/5-dimensional arrays, to hold statistics,
      counts, accumulations and probabilities for coefficient tokens. This
      commit also re-allows ENTROPY_STATS to compile.
      
      Change-Id: If441ffac936f52a3af91d8f2922ea8a0ceabdaa5
      885cf816
  14. 07 Dec, 2012 2 commits
    • Frank Galligan's avatar
      Remove unused symbols from vp9 asm offsets C files. · 8d449ce0
      Frank Galligan authored
      Change-Id: I366e6d175da3012f1c8607fd7fad99fbbb616091
      8d449ce0
    • Ronald S. Bultje's avatar
      32x32 transform for superblocks. · c456b35f
      Ronald S. Bultje authored
      This adds Debargha's DCT/DWT hybrid and a regular 32x32 DCT, and adds
      code all over the place to wrap that in the bitstream/encoder/decoder/RD.
      
      Some implementation notes (these probably need careful review):
      - token range is extended by 1 bit, since the value range out of this
        transform is [-16384,16383].
      - the coefficients coming out of the FDCT are manually scaled back by
        1 bit, or else they won't fit in int16_t (they are 17 bits). Because
        of this, the RD error scoring does not right-shift the MSE score by
        two (unlike for 4x4/8x8/16x16).
      - to compensate for this loss in precision, the quantizer is halved
        also. This is currently a little hacky.
      - FDCT and IDCT is double-only right now. Needs a fixed-point impl.
      - There are no default probabilities for the 32x32 transform yet; I'm
        simply using the 16x16 luma ones. A future commit will add newly
        generated probabilities for all transforms.
      - No ADST version. I don't think we'll add one for this level; if an
        ADST is desired, transform-size selection can scale back to 16x16
        or lower, and use an ADST at that level.
      
      Additional notes specific to Debargha's DWT/DCT hybrid:
      - coefficient scale is different for the top/left 16x16 (DCT-over-DWT)
        block than for the rest (DWT pixel differences) of the block. Therefore,
        RD error scoring isn't easily scalable between coefficient and pixel
        domain. Thus, unfortunately, we need to compute the RD distortion in
        the pixel domain until we figure out how to scale these appropriately.
      
      Change-Id: I00386f20f35d7fabb19aba94c8162f8aee64ef2b
      c456b35f
  15. 06 Dec, 2012 1 commit
  16. 05 Dec, 2012 2 commits
    • Johann's avatar
      Begin to refactor vpx_scale usage in VP9 · 52d350fe
      Johann authored
      Only declare the functions in vpx_scale RTCD and include the relevant
      header.
      
      Remove unused files and functions in vpx_scale to avoid wasting time
      renaming. vpx_scale/win32/scaleopt.c contains functions which have not
      been called in a long time but are potentially optimized.
      
      The 'vp8' functions have not been renamed yet. That is for after the
      cleanup.
      
      Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
      52d350fe
    • Johann's avatar
      Remove ARM optimizations from VP9 · a9056729
      Johann authored
      Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
      a9056729
  17. 03 Dec, 2012 2 commits
    • Johann's avatar
      Begin to refactor vpx_scale usage in VP9 · c6bd29e2
      Johann authored
      Only declare the functions in vpx_scale RTCD and include the relevant
      header.
      
      Remove unused files and functions in vpx_scale to avoid wasting time
      renaming. vpx_scale/win32/scaleopt.c contains functions which have not
      been called in a long time but are potentially optimized.
      
      The 'vp8' functions have not been renamed yet. That is for after the
      cleanup.
      
      Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
      c6bd29e2
    • Johann's avatar
      Remove ARM optimizations from VP9 · 34591b54
      Johann authored
      Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
      34591b54
  18. 30 Nov, 2012 3 commits
  19. 29 Nov, 2012 8 commits
  20. 28 Nov, 2012 4 commits
    • Yaowu Xu's avatar
      remove the vp9_default_mode_contexts_a · 1cc57396
      Yaowu Xu authored
      Given the way mode_context is updated, the benefit of an additional
      default is not signficant.
      
      Change-Id: I67489453e8781340b18e26a1cc2f04e9221004a2
      1cc57396
    • Jim Bankoski's avatar
      fixed includes to be fully specified · c6787398
      Jim Bankoski authored
      Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
      c6787398
    • Yaowu Xu's avatar
      Localize Y2 entropy coding context · 3e976bba
      Yaowu Xu authored
      This commit makes sure Y2 entropy coding context is always updated on
      every macroblock even there is no Y2 block.
      
      Change-Id: Ie307cfc46526efe55613be39f9f178d2531b56ba
      3e976bba
    • Yaowu Xu's avatar
      removed redundant mode_context data structures · 12da793d
      Yaowu Xu authored
      This commit removed a couple of redundant data structures in frame
      coding contextsm, mode_context and mode_context_a, and changed to
      use vp9_mode_contexts only. The switch of the context for different
      frame type now relies on the switch of frame coding context between
      lfc and lfc_a. This commit also removed a number of memcpy among
      these redundant data structure.
      
      Change-Id: I42e8174bd60f466b0860afc44c1263896471b0f3
      12da793d