1. 26 Feb, 2013 1 commit
  2. 25 Feb, 2013 1 commit
    • Jingning Han's avatar
      clean up forward and inverse hybrid transform · 77a3becf
      Jingning Han authored
      Rebased.
      
      Remove the old matrix multiplication transform computation. The 16x16
      ADST/DCT can be switched on/off and evaluated by setting ACTIVE_HT16
      300/0 in vp9/common/vp9_blockd.h.
      
      Change-Id: Icab2dbd18538987e1dc4e88c45abfc4cfc6e133f
      77a3becf
  3. 23 Feb, 2013 2 commits
    • Ronald S. Bultje's avatar
      Split coefficient token tables intra vs. inter. · 0c9e2e9a
      Ronald S. Bultje authored
      Change-Id: I5416455f8f129ca0f450d00e48358d2012605072
      0c9e2e9a
    • Paul Wilkins's avatar
      Further changes to coefficient contexts. · c17672a3
      Paul Wilkins authored
      This patch alters the balance of context between the
      coefficient bands (reflecting the position of coefficients
      within a transform blocks) and the energy of the previous
      token (or tokens) within a block.
      
      In this case the number of coefficient bands is reduced
      but more previous token energy bands are supported.
      
      Some initial rebalancing of the default tables has been
      by running multiple derf clips at multiple data rates using
      the ENTOPY_STATS macro. Further balancing needs to be
      done using larger image formatsd especially in regard to
      the bigger transform sizes which are not as well represented
      in encodings of smaller image formats.
      
      Change-Id: If9736e95c391e711b04aef6393d26f60f36e1f8a
      c17672a3
  4. 22 Feb, 2013 1 commit
    • Jingning Han's avatar
      Forward butterfly hybrid transform · babbd5d1
      Jingning Han authored
      This patch includes 4x4, 8x8, and 16x16 forward butterfly ADST/DCT
      hybrid transform. The kernel of 4x4 ADST is sin((2k+1)*(n+1)/(2N+1)).
      The kernel of 8x8/16x16 ADST is of the form sin((2k+1)*(2n+1)/4N).
      
      Change-Id: I8f1ab3843ce32eb287ab766f92e0611e1c5cb4c1
      babbd5d1
  5. 15 Feb, 2013 2 commits
  6. 14 Feb, 2013 1 commit
  7. 13 Feb, 2013 4 commits
    • Paul Wilkins's avatar
      Abstract selection of coef band. · 9255ad10
      Paul Wilkins authored
      This patch abstracts the selection of the coefficient band
      context into a function as a precursor to further experiments
      with the coefficient context.
      
      It also removes the large per TX size coefficient band structures
      and uses a single matrix for all block sizes within the test function.
      
      This may have an impact on quality (results to follow) but is only an
      intermediate step in the process of redefining the context. Also the
      quality impact will be larger initially because the default tables will
      be out of step with the new banding.
      
      In particular the 4x4 will in this case only use 7 bands. If needed we
      can add back block size dependency localized within the function, but
      this can follow on after the other changes to the definition of the
      context.
      
      Change-Id: Id7009c2f4f9bb1d02b861af85fd8223d4285bde5
      9255ad10
    • Paul Wilkins's avatar
      Abstract the selection of coefficient context. · 0d284ffe
      Paul Wilkins authored
      This is an initial step to facilitate experimentation
      with changes to the prior token context used to code
      coefficients to take better account of the energy of
      preceding tokens.
      
      This patch merely abstracts the selection of context into
      two functions and does not alter the output.
      
      Change-Id: I117fff0b49c61da83aed641e36620442f86def86
      0d284ffe
    • Yaowu Xu's avatar
      enable bitstream lossless support · 17db5d00
      Yaowu Xu authored
      1. Added a bit in frame header to  to indicate if a frame is encoded
      in lossless mode, so decoder does not make the decision based on Q0
      2. Minor changes to make sure that lossy coding works same as when
      the lossless experiment is not enabled.
      3. Renamed function pointers for transforms to be consistent, using
      prefix fwd_txm and inv_txm for forward and inverse respectively
      
      To encode in lossless mode, using "--lossless=1 --min-q=0 --max-q=0"
      with vpxenc.
      
      Change-Id: Ifae53b26d2ffbe378d707e29d96817b8a5e6c068
      17db5d00
    • Paul Wilkins's avatar
      Remove NEWCOEFCONTEXT experiment. · 6a9f0c61
      Paul Wilkins authored
      Removal of the  NEWCOEFCONTEXT experiment to
      reduce code clutter and make it easier to experiment with
      some other changes to the coefficient coding context.
      
      Change-Id: Icd17b421384c354df6117cc714747647c5eb7e98
      6a9f0c61
  8. 07 Feb, 2013 1 commit
  9. 10 Jan, 2013 1 commit
  10. 09 Jan, 2013 1 commit
    • Adrian Grange's avatar
      New prediction filter · 7d6b5425
      Adrian Grange authored
      This patch removes the old pred-filter experiment and replaces it
      with one that is implemented using the switchable filter framework.
      
      If the pred-filter experiment is enabled, three interopolation
      filters are tested during mode selection; the standard 8-tap
      interpolation filter, a sharp 8-tap filter and a (new) 8-tap
      smoothing filter.
      
      The 6-tap filter code has been preserved for now and if the
      enable-6tap experiment is enabled (in addition to the pred-filter
      experiment) the original 6-tap filter replaces the new 8-tap smooth
      filter in the switchable mode.
      
      The new experiment applies the prediction filter in cases of a
      fractional-pel motion vector. Future patches will apply the filter
      where the mv is pel-aligned and also to intra predicted blocks.
      
      Change-Id: I08e8cba978f2bbf3019f8413f376b8e2cd85eba4
      7d6b5425
  11. 08 Jan, 2013 1 commit
  12. 26 Dec, 2012 1 commit
  13. 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
  14. 18 Dec, 2012 2 commits
  15. 11 Dec, 2012 1 commit
  16. 08 Dec, 2012 1 commit
    • 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
  17. 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
  18. 03 Dec, 2012 1 commit
    • 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
  19. 29 Nov, 2012 3 commits
    • Yaowu Xu's avatar
      minor fix to eob check for setting CONTEXT · 7ab1d3e4
      Yaowu Xu authored
      Previously, the "!=" check is logically incorrect when eob is at 0 and
      effective coefficient starting position is 1. This commit should have
      no effect on bitstream.
      
      Change-Id: I6ce3a847c7e72bfbe4f7c74f88e3310c6b9b6d30
      7ab1d3e4
    • Jim Bankoski's avatar
      more unused variables. · cf671e27
      Jim Bankoski authored
      Change-Id: Ibe11e9275949b26a77fa9c8ac2e7c356ae533d5d
      cf671e27
    • Deb Mukherjee's avatar
      Fixing 8x8/4x4 ADST for intra modes with tx select · 0742b1e4
      Deb Mukherjee authored
      This patch allows use of 8x8 and 4x4 ADST correctly for Intra
      16x16 modes and Intra 8x8 modes when the block size selected
      is smaller than the prediction mode. Also includes some cleanups
      and refactoring.
      
      Rebase.
      
      Change-Id: Ie3257bdf07bdb9c6e9476915e3a80183c8fa005a
      0742b1e4
  20. 28 Nov, 2012 1 commit
  21. 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
  22. 25 Nov, 2012 1 commit
  23. 15 Nov, 2012 1 commit
  24. 08 Nov, 2012 1 commit
    • 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
  25. 01 Nov, 2012 2 commits
  26. 31 Oct, 2012 3 commits
  27. 30 Oct, 2012 1 commit
  28. 29 Oct, 2012 2 commits