1. 21 Oct, 2016 1 commit
    • Jingning Han's avatar
      Sub8x8 block chroma component inter prediction · e29ea12f
      Jingning Han authored
      Handle the sub8x8 chroma component at the unit of 2x2/4x2/2x4 level
      and use the motion vector inherited from the luma component. This
      improves the coding performance:
      
      lowres 0.4%
      midres 0.25%
      hdres  0.15%
      
      Change-Id: I34dff4218cfa3e5d55e7ed0341f36f4719389f7e
      e29ea12f
  2. 19 Oct, 2016 1 commit
    • Urvang Joshi's avatar
      Code cleanup: mainly rd_pick_partition and methods called from there. · 52648448
      Urvang Joshi authored
      - Const correctness
      - Refactoring
      - Make variables local when possible etc
      - Remove -Wcast-qual to allow explicitly casting away const.
      
      Cherry-picked from aomedia/master: c27fcccc
      And then a number of more const correctness changes to make sure other
      experiments build OK.
      
      Change-Id: I77c18d99d21218fbdc9b186d7ed3792dc401a0a0
      52648448
  3. 13 Oct, 2016 1 commit
    • Yue Chen's avatar
      Renamings for OBMC experiment · cb60b185
      Yue Chen authored
      To get ready for pulling AV1 to nextgenv2
      Replace the experimental flag by MOTION_VAR. Rename major variables.
      
      Change-Id: If6cf4f37b9319c46d8f90df551cc7295d66ca205
      cb60b185
  4. 09 Sep, 2016 1 commit
    • James Zern's avatar
      s/INTERP_FILTER/InterpFilter/ · 7b9407a8
      James Zern authored
      this matches style guidelines and stabilizes successive runs of
      clang-format across the tree. remaining types should be address in
      successive commits.
      
      Change-Id: I6ad3f69cf0a22cb9a9b895b272195f891f71170f
      7b9407a8
  5. 02 Sep, 2016 1 commit
  6. 01 Sep, 2016 2 commits
  7. 12 Aug, 2016 1 commit
  8. 29 Jul, 2016 1 commit
  9. 18 Jul, 2016 1 commit
  10. 13 Jul, 2016 1 commit
    • Geza Lore's avatar
      Optimize and cleanup obmc predictor and rd search. · 4c4f04ac
      Geza Lore authored
      Use vpx_blend_a64_hmask and vpx_blend_a64_vmask to speed up
      computing the obmc predictor. Clean up calc_target_weighted_pred.
      
      Encoder speedup: 1.3%
      Decoder speedup: 6.5%
      
      Change-Id: I0c774fe53d22399e92a10d1daf3af0010d88d2c5
      4c4f04ac
  11. 11 Jul, 2016 2 commits
    • Geza Lore's avatar
      Optimize and cleanup supertx predictor. · cd489264
      Geza Lore authored
      Use vpx_blend_a64_hmask and vpx_blend_a64_vmask to speed up
      computing the supertx predictor.
      
      Decoder speedup of up to 4% has been observed.
      
      Change-Id: I255a5ba4cc24f78dc905d25b6e2f7fbafac13253
      cd489264
    • Geza Lore's avatar
      Improve vpx_blend_* functions. · bfa59b4a
      Geza Lore authored
      - Made source buffers pointers to const.
      - Renamed vpx_blend_mask6b to vpx_blend_a64_mask. This is more
        indicative that the function does alpha blending. The 6, or 6b
        suffix was misleading, as the max mask value (64) does not fit into
        6 bits.
      - Added VPX_BLEND_* macros to use when needing to blend scalars.
      - Use VPX_BLEND_A256 in combine_interintra to be more explicit about
        the operation being done.
      - Added versions of vpx_blend_a64_* which take 1D horizontal/vertical
        masks directly and apply them to all rows/columns
        (vpx_blend_a64_hmask and vpx_blend_a64_vmask). The SSE4.1 optimzied
        horizontal version now falls back on the 2D version. This can be
        improved upon if it show up high enough in a profile.
      - All vpx_blend_a64_* functions now support block sizes down to 1x1
        (ie: a single pixel). This is for usage convenience. The SSE4.1
        optimized versions fall back on the C implementation if
        w <= 2 or h <= 2. This can again be improved if it becomes hot code.
      
      Change-Id: I13ab3835146ffafe3e1d74d8e9cf64a5abe4144d
      bfa59b4a
  12. 21 Jun, 2016 1 commit
  13. 13 Jun, 2016 1 commit
  14. 10 Jun, 2016 1 commit
  15. 06 Jun, 2016 1 commit
    • Geza Lore's avatar
      Optimize wedge partition selection. · efda2831
      Geza Lore authored
      We can optimize wedge partition selection by pre-computing the
      residuals of the 2 underlying predictors, and then blend these
      to compute the sse of the compound predictor, without actually
      having to compute and subtract the compound predictor.
      
      Similarly we can pre-compute a proxy array which we can use to
      cheaply check which mask sign would have lower sse.
      
      Details are in wedge_utils.c.
      
      Mathematically these are equivalence transformations, but due to the
      finite precision the encoder output will be perturbed, though on
      average this should make 0% difference.
      
      ext-inter gains about ~4.5% speedup.
      
      Change-Id: Ib2657c3209ae161b4090b58b4b6c392641bf2792
      efda2831
  16. 03 Jun, 2016 1 commit
    • Geza Lore's avatar
      Pre-compute and use contiguous wedge masks. · ab29978e
      Geza Lore authored
      This is purely a refactoring patch and has no functional effect.
      
      Uses of these masks can be arranged such that all input blocks are
      contiguous in memory (stride == block width). In this case 1D versions
      of  operations can be used. 1D vector operations have superior performance
      over 2D block equivalents as they are more processor cache friendly and
      they can do away with a second loop overhead.
      
      Change-Id: I2b76c9888aea2c857cc497e8a4b2841fd3dad54e
      ab29978e
  17. 20 May, 2016 2 commits
  18. 19 May, 2016 1 commit
    • Jingning Han's avatar
      Rework sub8x8 chroma component inter predictor · 0f513752
      Jingning Han authored
      This commit makes the sub8x8 chroma component inter predictor
      operate at 2x2 block level. This allows one to use the actual motion
      vector associated with each individal pixel block. It improves the
      compression performance
      
      lowres  0.40%
      midres  0.25%
      hdres   0.15%
      
      Change-Id: Ia40e07cc7fde463dbf660018850e024932136c4f
      0f513752
  19. 18 May, 2016 1 commit
    • Jingning Han's avatar
      Account sub8x8 block reference filter type for prob context · 9161464f
      Jingning Han authored
      If a reference block is coded with sub8x8 block size, and if it
      has sub-pixel level motion vectors, its prediction filter type
      should be used as context information.
      
      The coding performance gains of dual filter type coding scheme are
      lowres  0.57%
      hdres   0.88%
      
      Change-Id: I68b98f2518d02f11c29d0256aeb45b2580fe5cac
      9161464f
  20. 16 May, 2016 1 commit
    • Debargha Mukherjee's avatar
      Various wedge enhancements · fb8ea173
      Debargha Mukherjee authored
      Increases number of wedges for smaller block and removes
      wedge coding mode for blocks larger than 32x32.
      
      Also adds various other enhancements for subsequent experimentation,
      including adding provision for multiple smoothing functions
      (though one is used currently), adds a speed feature that decides
      the sign for interinter wedges using a fast mechanism, and refactors
      wedge representations.
      
      lowres: -2.651% BDRATE
      
      Most of the gain is due to increase in codebook size for 8x8 - 16x16.
      
      Change-Id: I50669f558c8d0d45e5a6f70aca4385a185b58b5b
      fb8ea173
  21. 11 May, 2016 1 commit
    • Yue Chen's avatar
      Add single motion search for OBMC predictor · 370f203a
      Yue Chen authored
      Weighted single motion search is implemented for obmc predictor.
      When NEWMV mode is used, to determine the MV for the current block,
      we run weighted motion search to compare the weighted prediction
      with (source - weighted prediction using neighbors' MVs), in which
      the distortion is the actual prediction error of obmc prediction.
      
      Coding gain: 0.404/0.425/0.366 for lowres/midres/hdres
      Speed impact: +14% encoding time
                    (obmc w/o mv search 13%-> obmc w/ mv search 27%)
      
      Change-Id: Id7ad3fc6ba295b23d9c53c8a16a4ac1677ad835c
      370f203a
  22. 10 May, 2016 1 commit
    • Debargha Mukherjee's avatar
      Wedge rd improvements · 447032eb
      Debargha Mukherjee authored
      Improves speed by about 10-15% by combining y-only rd with
      modeling function in a better way.
      Also, coding efficiency improves by about 0.1%
      
      lowres: -1.805% BDRATE with ext-inter
      
      Change-Id: I6ef1f8942ec6806252f3fcf749ae4f30dffe42b1
      447032eb
  23. 09 May, 2016 1 commit
    • Jingning Han's avatar
      Fix dual filter type for high bit-depth · 9de916eb
      Jingning Han authored
      This commit fixes the compiler error in high bit-depth inter
      predictor when dual filter type experiment is turned on.
      
      Change-Id: I404a76a246477f2fcffc38a3275007d5dfe229cd
      9de916eb
  24. 07 May, 2016 1 commit
  25. 03 May, 2016 1 commit
  26. 29 Apr, 2016 1 commit
  27. 05 Apr, 2016 1 commit
  28. 30 Mar, 2016 2 commits
    • Debargha Mukherjee's avatar
      Some fixes/speed-ups on inter-intra part of ext-inter · 8d3a4aa8
      Debargha Mukherjee authored
      Fixes an issue with rectangular inter-intra blocks.
      Includes various other refactoring and cleanups to enable fast mixing
      of inter and intra predictors.
      Uses only the best single inter reference so far for the inter-intra
      search.
      
      About 30% speed-up with a 0.1% hit in performance.
      
      This is part one of overhauling on the ext-inter experiment. To be
      continued in subsequent patches.
      
      Change-Id: Id10ee100c78c6e00009a3a4f930a4435ef403a95
      8d3a4aa8
    • Geza Lore's avatar
      Extend superblock size fo 128x128 pixels. · 552d5cd7
      Geza Lore authored
      If --enable-ext-partition is used at build time, the superblock size
      (sometimes also referred to as coding unit (CU) size) is extended to
      128x128 pixels.
      
      Change-Id: Ie09cec6b7e8d765b7555ff5d80974aab60803f3a
      552d5cd7
  29. 29 Mar, 2016 1 commit
    • Julia Robson's avatar
      Fix for ext_interp experiment · 068e7994
      Julia Robson authored
      Amends previous commit to also handle subsampling correctly.
      Change ID of prev commit: I6b07e6cf9b287ba4b5bd6599af4a7412e50b3bdc
      
      Was causing occassional failures for 422 streams due to accessing
      elements beyond the extent of the bmi array.
      
      Change-Id: I37ebabf4c01ca84bcd1851428172bdf753805d98
      068e7994
  30. 22 Mar, 2016 1 commit
    • Yue Chen's avatar
      Refactor prediction functions of OBMC · 2e3f7731
      Yue Chen authored
      Merge the functions that generate prediction by above/left predictors
      for the encoder and the decoder.
      
      Change-Id: I57e53a8f2eb8d3028c4ed0c9abdcbf00503f95a0
      2e3f7731
  31. 10 Mar, 2016 1 commit
  32. 26 Feb, 2016 2 commits
    • Debargha Mukherjee's avatar
      Some refactoring and cleanups of interp filter · bab2912b
      Debargha Mukherjee authored
      Includes various cosmetic changes and refactoring including
      naming the sharp filters differently (since they are no longer
      8-tap).
      
      Change-Id: Ida5a19ca0daa9f6a64a6734394c685b2a4a2564a
      bab2912b
    • Geza Lore's avatar
      Port interintra experiment from nextgen. · 7ded038a
      Geza Lore authored
      The interintra experiment, which combines an inter prediction and an
      inter prediction have been ported from the nextgen branch. The
      experiment is merged into ext_inter, so there is no separate configure
      option to enable it.
      
      Change-Id: I0cc20cefd29e9b77ab7bbbb709abc11512320325
      7ded038a
  33. 12 Feb, 2016 1 commit
    • Yue Chen's avatar
      Overlapped block motion compensation experiment · d1cad9c3
      Yue Chen authored
      In this experiment, an obmc inter prediction mode is enabled for
      >= 8X8 inter blocks. When the obmc flag is on, the regular block-
      based motion compensation will be refined by using predictors of
      the above and left blocks.
      Fixed some compatibility issues with vp9_highbitdepth, supertx,
      ref_mv, and ext_interp.
      
      Coding gain (%) on derflr/hevcmr/hevchd
      OBMC:
      1.047/1.022/0.708
      OBMC + SUPERTX:
      1.652/1.616/1.137
      SUPERTX:
      0.862/0.779/0.630
      
      Change-Id: I5d8d3c4729c6d3ccb03ec7034563107893103b7f
      d1cad9c3
  34. 06 Feb, 2016 1 commit
  35. 02 Feb, 2016 1 commit