1. 01 Sep, 2016 2 commits
  2. 12 Aug, 2016 1 commit
  3. 08 Aug, 2016 1 commit
    • Sarah Parker's avatar
      Add reconstruction using gm parameters · b659281e
      Sarah Parker authored
      This patch only includes inter frame reconstruction using gm
      parameters when GLOBAL_MOTION and/or VP9_HIGHBITDEPTH are enabled.
      GM is not currently used when EXT_INTER or DUAL_FILTER is enabled.
      This will be added in a followup patch. For now, these experiments
      will take precedence over GLOBAL_MOTION when they are all enabled.
      
      Change-Id: I930ddda529c44d7245dbb56db3c9c5524cf45473
      b659281e
  4. 18 Jul, 2016 1 commit
  5. 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
  6. 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
  7. 08 Jul, 2016 1 commit
  8. 07 Jul, 2016 1 commit
  9. 21 Jun, 2016 1 commit
  10. 14 Jun, 2016 1 commit
    • Jingning Han's avatar
      Fix enc/dec mismatch in non-420 settings · a4ea8fd8
      Jingning Han authored
      This commit makes the dual filter experiment work with non-420
      settings. It fixes unit test failure in EndToEndTestLarge.
      
      Change-Id: I04f7afdee78f91389d9ff72947efa152098af930
      a4ea8fd8
  11. 13 Jun, 2016 1 commit
  12. 10 Jun, 2016 3 commits
  13. 06 Jun, 2016 2 commits
    • Angie Chiang's avatar
      Fix build failure happened in reconinter.c · 2250c6b0
      Angie Chiang authored
      Change-Id: Ifd5ed91e4e91238fb53a202c8d76c11fbb9ccf7c
      2250c6b0
    • 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
  14. 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
  15. 02 Jun, 2016 1 commit
    • Geza Lore's avatar
      Use standard rounding in combine_interintra. · 888e90e8
      Geza Lore authored
      Use the same rounding method that is used throughout the codebase,
      where the halfway value is rounded up rather than down.
      
      Change-Id: I04e92850bc69a7d7a07b06e3d2ce97f6f2ada321
      888e90e8
  16. 24 May, 2016 2 commits
  17. 23 May, 2016 1 commit
    • Geza Lore's avatar
      Add optimized vpx_blend_mask6 · a661bc87
      Geza Lore authored
      This is to replace vp10/common/reconinter.c:build_masked_compound.
      Functionality is equivalent, but the interface is slightly more
      generic.
      
      Total encoder speedup with ext-inter: ~7.5%
      
      Change-Id: Iee18b83ae324ffc9c7f7dc16d4b2b06adb4d4305
      a661bc87
  18. 20 May, 2016 1 commit
  19. 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
  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
  22. 10 May, 2016 4 commits
    • 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
    • Geza Lore's avatar
      Fix build without dual-filter · 559e8d8e
      Geza Lore authored
      Change-Id: I91946940c1540c9f935161da89155ed304055fda
      559e8d8e
    • Geza Lore's avatar
      Break tile row dependencies. · 9ab9438f
      Geza Lore authored
      When not using ext-tile, there were still dependencies between tile
      rows due to various tools (eg intra predictors) relying on the above
      row or above mode info, which can be in the above tile. This is now
      broken (the same way as it was when ext-tile is enabled) by fixing
      the appropriate predicates.
      
      Change-Id: I107dd0d8481775a792f14e05cfbbd761f16cdc1e
      9ab9438f
    • Geza Lore's avatar
      Fix interintra predictor buffer overflow. · e9d2e362
      Geza Lore authored
      When constructing the intra predictor for rectangular interintra blocks,
      the last row/column of the first square is copied back into the source
      image (which is the current reconstructed image buffer) before
      predicting the second square. The code used to use the height instead
      of width for vertical rectangles, and vice versa for horizontal
      rectangles, leading to overwriting the block on the right/below. This
      leads to an encode/decode mismatch if the right/below block is in a
      different tile and is encoded before the current block, which did happen
      with multi-threaded encoding tests. This is now fixed.
      
      Change-Id: I073a2a447a98b842b1394d72cc774a78cb296921
      e9d2e362
  23. 09 May, 2016 2 commits
  24. 07 May, 2016 1 commit
  25. 04 May, 2016 2 commits
  26. 03 May, 2016 1 commit
  27. 30 Apr, 2016 1 commit
    • Yue Chen's avatar
      Bug fixes for obmc/ext-inter/ext-tile experiment · c1d47384
      Yue Chen authored
      Fix 1: in ext-inter + obmc config, properly identify if the left
      predictor used for obmc is a compound one in the case that the
      neighbor uses wedgeinterinter pred and we will dump the ALTREF part.
      This will fix the seg fault in unit test:
      VP10/AltRefForcedKeyTestLarge.Frame1IsKey/0
      
      Fix 2: in ext-tile + obmc experiment, handle the case that the
      above block does not fit in the same row tile with the current one,
      so as to prevent potential crashes.
      
      Change-Id: I1c177d4f4ad15e10d11d8756e146496437753eea
      c1d47384
  28. 29 Apr, 2016 1 commit
  29. 26 Apr, 2016 1 commit
    • Yue Chen's avatar
      Optimization for EXT_INTER + OBMC · 3ac12aec
      Yue Chen authored
      Remove the restriction that the neighboring predictor cannot be
      used in obmc prediction if it is an interintra or wedgeinterinter
      block. The inter predictor of the interintra block, or the first
      inter predictor(using LAST or GOLDEN frame) of the wedgeinterinter
      block will be exploited in obmc prediction.
      
      Coding gain: 0.248% (2.833%->3.081%) lowres
      
      Change-Id: I4ac0368b9d2f2956f266b30c1ac97db8bafa0742
      3ac12aec