1. 07 Dec, 2012 1 commit
    • 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
  2. 06 Dec, 2012 1 commit
  3. 05 Dec, 2012 4 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
    • John Koleszar's avatar
      vp9_bilinear_filters_mmx: add missing extern specifiers · 4a4d2aa5
      John Koleszar authored
      Change-Id: Ibabf18947f90cb4f45052763ebf44cfb8209bd8b
      4a4d2aa5
    • Paul Wilkins's avatar
      Change to MV reference search. · 4cc657ec
      Paul Wilkins authored
      This patch reduces the cpu cost of the MV ref
      search by only allowing insert for candidates
      that would be in the current top 4.
      
      This could alter the outcome and slightly favors
      near candidates which are tested first but also
      limits the worst case loop count to 4 and means in
      many cases it will drop out and not happen.
      
      Change-Id: Idd795a825f9fd681f30f4fcd550c34c38939e113
      4cc657ec
  4. 04 Dec, 2012 1 commit
    • Yaowu Xu's avatar
      Fix the build with MSVC · 6a5e6e05
      Yaowu Xu authored
      1. remove the dependency on non existing "vp9_temporal_filter_x86.h"
      2. prefix filenames with vp9_ in obj_int_extract.bat to reflect the
      change of the actual filenames.
      
      Change-Id: Ib1b4d96ac41788f76917764a6722d8461c857302
      6a5e6e05
  5. 03 Dec, 2012 6 commits
    • Yaowu Xu's avatar
      merged optimiz_b_16x16() into optmize_b() · 806d05e1
      Yaowu Xu authored
      The commit changed the trellis quantization function optimize_b() to
      work for MBs using all transform sizes, and eliminated the function
      for MB using 16x16 transform only, optimize_b_16x16.
      
      Change-Id: I3fa650587ab5198ed16315b38754783a72b33ba2
      806d05e1
    • 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
    • Jim Bankoski's avatar
      fixes --disable-vp9-encoder · d9038b3c
      Jim Bankoski authored
      Change-Id: I467bf0fdf3b35326bcce58d5459e6d2dbfd6c5e5
      d9038b3c
    • Frank Galligan's avatar
      vp9: Fix assert check. · 0d687ed2
      Frank Galligan authored
      Change-Id: If0cc1ab60dff6abd67dae7c7b3dc83a1afd7fe65
      0d687ed2
    • Frank Galligan's avatar
      vp9: Remove superfluous command. · 3e0ea7f6
      Frank Galligan authored
      - vpx_calloc is called on arf_not_zz above.
      - Note The removed vpx_memset call had an issue with sizeof.
      
      Change-Id: I86fd7a167d0a042e581e613e2a6c0b5e63073fc6
      3e0ea7f6
  6. 01 Dec, 2012 1 commit
  7. 30 Nov, 2012 3 commits
  8. 29 Nov, 2012 17 commits
  9. 28 Nov, 2012 6 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
    • Jim Bankoski's avatar
      remove postproc invokes · 85cba19e
      Jim Bankoski authored
      and some miscellaneous invoke left overs
      
      Change-Id: I63191b1bfd3bea4ce30cceaeb686ec850570fc43
      85cba19e
    • 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
    • Yunqing Wang's avatar
      Further improve macroblock loop filters · d2021386
      Yunqing Wang authored
      This change included:
      1. Aligned reads in vp9_mbloop_filter_vertical_edge function.
      Since we actually read 16 bytes, we can align the reads to read
      starting at (s - 8) instead of (s - 5).
      2. Combined u, v loop filters.
      3. Added 8x16 transpose.
      
      This gave 2% decoder performance gain (tulip clip).
      
      Change-Id: Ib14c2f1645c4a3436df17fe2f24789506bf0bb58
      d2021386
    • 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