1. 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
  2. 07 May, 2016 1 commit
  3. 06 May, 2016 1 commit
    • Alex Converse's avatar
      Rename pick_filter_intra. · 130cccba
      Alex Converse authored
      The word 'pick' is usually used in functions that make decisions where
      the bitstream allows multiple legal choices, and not to limit the
      bitstream format itself.
      
      Change-Id: Ia60709c29e004475e1aa8861aefded27ebaf4712
      130cccba
  4. 04 May, 2016 1 commit
  5. 03 May, 2016 1 commit
  6. 29 Apr, 2016 1 commit
  7. 27 Apr, 2016 1 commit
  8. 26 Apr, 2016 2 commits
    • 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
    • Debargha Mukherjee's avatar
      Reduce intra transform set · 8851acc5
      Debargha Mukherjee authored
      Reduce transform set for intra for 8x8 and smalller to 7 from 12.
      Also fixes an issue with prob updates.
      
      Enocder Speed-up about 8-10%
      
      Coding efficiency very little change.
      lowres: -2.996 (from -3.055 before)
      midres: -2.482 (from -2.552 before)
      
      Change-Id: I4ba50ff967521b33c748fe423bd92f7cf4105ebc
      8851acc5
  9. 25 Apr, 2016 1 commit
  10. 16 Apr, 2016 1 commit
    • Yue Chen's avatar
      Optimization for EXT_INTER + OBMC combination · 321794c4
      Yue Chen authored
      In the rd loop, check the perf of obmc, whose mv is copied from regular
      inter predictor, when wedge interinter is better than regular inter
      (previously it will force allow_obmc = 0). The condition of the early
      termination before this step is relaxed to avoid skipping too many obmc
      predictions. The rates of the overhead are properly calculated for these tools.
      
      The logic of the bitstream syntax:
      (a single ref) the interintra flag is sent first, only if it is 0, we
      send the obmc flag;
      (compound refs) the obmc flag is sent first, only if it is 0, we send
      the wedge interinter flag
      
      Coding gain
      lowres: 0.428% (2.287%->2.715%)
      
      Change-Id: I5f3a34640b398e313cbf84235c9fe2073eb2173f
      321794c4
  11. 11 Apr, 2016 1 commit
    • Debargha Mukherjee's avatar
      Use reduced transform set for 16x16 · c4da5d50
      Debargha Mukherjee authored
      Speed increase for ext-tx by 20% for a BDRATE drop of 0.26%.
      The ext-tx expt becomes -2.66% BDRATE (reduced from -2.92%) for
      the lowres set.
      
      It turns out that reducing the set of transforms for intra from
      12 to 5 makes very little difference in coding performance (~0.04%).
      Most of the performance drop comes from the reduction is transform
      set for inter. Currently there is a provision to control that with
      a macro.
      
      Change-Id: I7de05527bf72f96acc1e0ab8a74a849da0a141e5
      c4da5d50
  12. 05 Apr, 2016 1 commit
  13. 04 Apr, 2016 1 commit
  14. 31 Mar, 2016 2 commits
    • Debargha Mukherjee's avatar
      Fix interpolation values and decouple interintra · 2be211e9
      Debargha Mukherjee authored
      Decouples interintra modes and probability models from regular
      intra modes, to enable creating/optimizing new interintra modes.
      Also, fixes interpolation values for 128x128 interintra and obmc.
      
      Change-Id: I5c2016db49b8f029164e5fe84c6274d4e02ff90e
      2be211e9
    • Geza Lore's avatar
      Rename MI_BLOCK_SIZE and MI_MASK macros. · 511da8cb
      Geza Lore authored
      Rename MI_BLOCK_SIZE.* -> MAX_MIB_SIZE.* (MIB is for MI Block).
      Rename MI_MASK.* -> MAX_MIB_MASK.*
      
      There are no functional changes.
      
      This is in preparation for coding the superblock size at the frame
      level, which will require some of these constants to become variables.
      The new names better reflect future semantics, and hence make the code
      clearer.
      
      Change-Id: Iee08d97554cf4cc16a5dc166a3ffd1ab91529992
      511da8cb
  15. 30 Mar, 2016 1 commit
    • 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
  16. 25 Mar, 2016 1 commit
    • Yunqing Wang's avatar
      Recover tile coding performance · bdcc1405
      Yunqing Wang authored
      After porting tile coding from VP9 to VP10, some performance
      degradation was seen because of the difference between VP9 and
      Vp10 baseline. This patch disabled some features in VP10 while
      tile coding is turned on. Also, an encoder control API was added
      back for this use case.
      
      Change-Id: I8f736db8388408a8cc35320a2f80abb02906571c
      bdcc1405
  17. 23 Mar, 2016 1 commit
    • Jingning Han's avatar
      Refactor motion vector residual coding process · 1fcb5fc7
      Jingning Han authored
      This commit separates the predicted motion vector from the nearestmv
      motion vector in the coding process for both regular and sub8x8
      block sizes.
      
      Change-Id: I703490513b0194e6669ebf719352db015facb3e1
      1fcb5fc7
  18. 22 Mar, 2016 1 commit
    • Julia Robson's avatar
      Porting ext_partition experiment from nextgen · 5cce322a
      Julia Robson authored
      This has been ported under ext_partition_types because it is due
      to be combined with the coding_unit_size experiment which is
      already being ported under ext_partition
      
      Change-Id: I47af869ae123ddf0aa99160dac644059d14266ee
      5cce322a
  19. 21 Mar, 2016 1 commit
    • Debargha Mukherjee's avatar
      Adds 1D transforms for ADST/FlipADST to make 16 · 1b175593
      Debargha Mukherjee authored
      Makes a set of 16 transforms total, adding all 1D
      combinations of ADST and FlipADST, and removng all DST
      transforms.
      
      lowres, midres both improve by about 0.1% and hdres by
      -0.378% in BDRATE but with fewer transforms that are also
      simpler.
      
      Further experiments to continue later.
      
      Change-Id: I7348a4c0e12078fdea5ae3a2d36a89a319ffcc6e
      1b175593
  20. 18 Mar, 2016 1 commit
  21. 14 Mar, 2016 1 commit
    • Jingning Han's avatar
      Turn off 32x32 transform type selection · a2c87a3d
      Jingning Han authored
      Temporarily disable transform type selection for 32x32 transform
      block size. This speeds up the encoding process. For bus at CIF
      150 frames, the encoding time goes from 896s -> 762s (11% faster).
      The compression performance for lowres set is improved by 0.15%,
      and -0.029% for hdres.
      
      Change-Id: If239b272970eb302150bec13b8cf192fbe045332
      a2c87a3d
  22. 10 Mar, 2016 1 commit
  23. 07 Mar, 2016 1 commit
    • Jingning Han's avatar
      Hybrid 1-D/2-D transform coding · a8dc9694
      Jingning Han authored
      This commit enables a hybrid 1-D/2-D transform coding scheme and
      the accompany entropy coding system. It currently uses hybrid
      1-D/2-D DCT transform coding. It provides coding performance gains:
      
      lowres_all  0.55%
      hdres_all   0.43%
      
      Change-Id: I2b30dcafd21eb2bb3371f6e854cbab440a4dfa78
      a8dc9694
  24. 05 Mar, 2016 1 commit
  25. 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
  26. 24 Feb, 2016 1 commit
    • Debargha Mukherjee's avatar
      Hooks to use 32x32 masked transforms for ext-tx · da2d4a7a
      Debargha Mukherjee authored
      Adds hooks to use 32x32 ext-tx. Also adds scan orders for the masked
      transforms for 32x32.
      Make macro USE_MSKTX_FOR_32X32 1 in blockd.h to support 32x32 masked
      transforms for ext-tx.
      
      Change-Id: Ie6564830266651fcafae2d536c274dafd664ce17
      da2d4a7a
  27. 19 Feb, 2016 1 commit
  28. 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
  29. 10 Feb, 2016 1 commit
    • hui su's avatar
      Add a speed feature to skip transform type selection · 329e340d
      hui su authored
      Setting FIXED_TX_TYPE as 1 makes the encoder skip tx_type search,
      about twice as fast.
      
      This speed feature is off by defualt; we can turn it on when we
      want to quickly test new ideas.
      
      Change-Id: Ieab5807d17fcd54fce3e8ae2f59a18b42eb79408
      329e340d
  30. 03 Feb, 2016 2 commits
    • hui su's avatar
      Add a speed feature for intra filter search · 5b618b7c
      hui su authored
      Seperate the prediction angle search and fitler search.
      It can reduce the computation overhead of filter search by as much
      as 85%, while keeping more than 50% of the coding gain.
      
      Change-Id: Id152f71e20ebcaca8b429bdd4ca1fbeb646fc6bf
      5b618b7c
    • hui su's avatar
      Add 8-tap interpolation filter options for intra prediction · 3b1c7668
      hui su authored
      BD-rate performance improvement (on top of ext-intra):
      derflr  0.22%
      hevclr  0.36%
      hevcmr  0.48%
      hevchr  0.37%
      stdhd   0.19%
      
      Average speed impact on some derf clips is about 40% slower (on
      top of ext-intra). Speed improvment is a to-do.
      
      Change-Id: I8fe3fe8c5e4f60d0462778adbcc15c84dfbe7a25
      3b1c7668
  31. 02 Feb, 2016 1 commit
    • Jingning Han's avatar
      Enable adaptive motion vector referencing mode · 67cf8908
      Jingning Han authored
      This commit allows an adaptive motion vector referencing mode
      approach. It checks the available reference motion vector candidate
      list and decides the amount of motion vector referencing modes. The
      current implementation assumes simple binary coding for the syntax.
      
      The compression performance is improved by
      derf   0.11%
      hevcmr 0.38%
      stdhd  0.09%
      hevchr 0.23%
      
      The coding gains due to the new reference motion vector system are
      derf   1.0%
      hevcmr 1.7%
      stdhd  1.4%
      hevchr 1.3%
      
      Change-Id: Idf932fc373546fe59c8741f1b933ff656e8dbc3f
      67cf8908
  32. 26 Jan, 2016 1 commit
    • Geza Lore's avatar
      Set inter_tx_size for supertx coded blocks. · e7c0e157
      Geza Lore authored
      The loop filter relies on inter_tx_size in MB_MODE_INFO being set
      properly when VAR_TX is enabled. Supertx coded blocks did not set this
      previously at all, and the differing garbage values eventually resulted
      in in a YUV mismatch between encoder and decoder after loop filtering.
      
      This patch fixes this by setting inter_tx_size to the proper supertx
      size in both the encoder and the decoder. This should also mean that
      loop filtering is done at the proper transform boundaries, even when
      supertx or vartx is being used.
      
      Change-Id: I41a564cd6d34ce4a8313ad4efa89d905f5ead731
      e7c0e157
  33. 22 Jan, 2016 1 commit
    • Yue Chen's avatar
      Adding new compound modes to EXT_INTER experiment · 968bbc7b
      Yue Chen authored
      Combinations of different mv modes for two reference frames
      are allowed in compound inter modes. 9 options are enabled,
      including NEAREST_NEARESTMV, NEAREST_NEARMV, NEAR_NEARESTMV,
      NEAREST_NEWMV, NEW_NEARESTMV, NEAR_NEWMV, NEW_NEARMV, ZERO_ZEROMV,
      and NEW_NEWMV.
      This experiment is mostly deported from the nextgen branch.
      It is made compatible with other experiments
      
      Coding gain of EXT_INTER(derflr/hevcmr/hevchd): 0.533%/0.728%/0.639%
      
      Change-Id: Id47e97284e6481b186870afbad33204b7a33dbb0
      968bbc7b
  34. 15 Jan, 2016 2 commits
    • Yue Chen's avatar
      EXT_INTER experiment · 1ac85879
      Yue Chen authored
      NEW2MV is enabled, representing a new motion vector predicted from
      NEARMV. It is mostly ported from nextgen, where it was named
      NEW_INTER.
      A few fixes are done for sub8x8 RDO to correct some misused
      mv references in the original patch.
      A 'bug-fix' for encoding complexity is done, reducing the additional
      encoding time from 50% to 20%. In sub8x8 case, the old patch
      did motion search for every interpolation filter (vp9 only
      searches once). This fix also slightly improves the coding gain.
      This experiment has been made compatible with REF_MV and EXT_REFS.
      
      Coding gain (derflr/hevcmr/hevchd): 0.267%/0.542%/0.257%
      
      Change-Id: I9a94c5f292e7454492a877f65072e8aedba087d4
      1ac85879
    • Debargha Mukherjee's avatar
      Fixing some compile issues · eee6afe0
      Debargha Mukherjee authored
      Fixes a breakage introduced with the latest merge from master and
      cleans up a couple of compiler warnings.
      
      Change-Id: Ia55b39ba78e43f6fe52c54d7f34faa4dd6bbbf26
      eee6afe0
  35. 12 Jan, 2016 1 commit
    • Jingning Han's avatar
      Generate compound reference motion vector · 33cc1bd2
      Jingning Han authored
      This commit allows the codec to add motion vector pairs into
      the candidate list. It further improves the compression performance
      by 0.1% across derf, hevcmr, stdhd, and hevchr sets without adding
      encode/decode time.
      
      Change-Id: I88d36da25a2a89bb506d411844af667081eba98b
      33cc1bd2