1. 09 Mar, 2016 1 commit
  2. 03 Mar, 2016 1 commit
  3. 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
      Change-Id: Ida5a19ca0daa9f6a64a6734394c685b2a4a2564a
    • 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
  4. 23 Feb, 2016 2 commits
    • Yue Chen's avatar
      Optimizing obmc rd decision by checking the real rd cost · a614262e
      Yue Chen authored
      Instead of using model_rd_for_sb() to estimate the cost and make the
      decision on bmc/obmc, we use super_block_yrd/uvrd() to calculate and
      compare the real rd costs of bmc and obmc.
      Average bit-rate reduction(%) of obmc experiment:
      Before the optimization, the coding gain was:
      Note: there is still some mysterious bug because that compared to
      the previous version, the performance at low bit rate drops a lot.
      Change-Id: I8dbee04a272190f10516a3953c1ae690f8136766
    • Geza Lore's avatar
      Experiment to use image domain dist in baseline. · 3c4b56c4
      Geza Lore authored
      Change-Id: Ib29f510289716b5ab5c7d74d32a450c190308a83
  5. 16 Feb, 2016 1 commit
  6. 12 Feb, 2016 3 commits
    • 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
      Change-Id: I5d8d3c4729c6d3ccb03ec7034563107893103b7f
    • Geza Lore's avatar
      Further supertx costing fixes. · 59900396
      Geza Lore authored
      Change-Id: I85897168c7fda3fd79daaba985b6607fd7df476b
    • Jingning Han's avatar
      Refactor vp10_drl_idx concept · a39e83d7
      Jingning Han authored
      Remove the implicit assumption on offsetting the index by 1.
      Change-Id: I6f1d391e067d57b7e45b9287e866014dbc16da71
  7. 11 Feb, 2016 2 commits
  8. 10 Feb, 2016 2 commits
    • Jingning Han's avatar
      Resolve conflict between var-tx and super-tx · 4c6c82a2
      Jingning Han authored
      This commit aligns the rate-distortion metric for the recursive
      transform block partitioning and the super transform. It resolves
      the conflicts between these two experiments. The coding performance
      gains of the combined experiments (var-tx + super-tx) has been
      derf   0.89%  ->  1.9%
      hevcmr 1.06%  ->  1.8%
      stdhd  0.29%  ->  1.4%
      hevchr 0.80%  ->  2.3%
      Change-Id: I7e33994ad70c1b2751435620815f867d82172f41
    • Jingning Han's avatar
      Replace arbitrary number with defs · 6d5d4395
      Jingning Han authored
      Change-Id: Ia5a68f26c67d13d3f2dd3b3f8afabb781e2c8f73
  9. 09 Feb, 2016 2 commits
    • Geza Lore's avatar
      Fix partition type costing. · 4ac67274
      Geza Lore authored
      This patch makes rd optimization use the same context for computing
      the rate cost of coding the partitioning as the packer actually uses
      when emitting it in write_modes_sb.
      Change-Id: Idb1427bb2f9c37ab80c6aa182f7ff754ef0595cb
    • Jingning Han's avatar
      Entropy coding for dynamic ref mv modes · 4958987b
      Jingning Han authored
      This commit enables entropy coding for dynamic reference motion
      vector modes. The probability model is contexted on the ranking
      categories of the reference motion vector candidates.
      Change-Id: I09b58d98a409d63ec1a407331e29f8945b7ef17d
  10. 05 Feb, 2016 1 commit
  11. 04 Feb, 2016 1 commit
  12. 03 Feb, 2016 2 commits
  13. 29 Jan, 2016 1 commit
    • Yue Chen's avatar
      Fixing a issue of calculating tx cost for SUPERTX+VAR_TX · 11af20db
      Yue Chen authored
      Update blk_skip in update_state_supertx() and rd_supertx_sb().
      Performance (SUPERTX+VAR_TX): TBD
      (Eventually will merge update_state() and update_state_supertx())
      Change-Id: I34ef982b80151ba2dfba745859cb2ca7b90dc888
  14. 27 Jan, 2016 1 commit
    • Debargha Mukherjee's avatar
      Fixes ext-interp experiment · eef57c1e
      Debargha Mukherjee authored
      Fixes integer pel MV usage for the sub8x8 case, which fixes a
      rare mismatch issue.
      Also adds some other minor missing code related to filter threshes.
      Change-Id: I6b07e6cf9b287ba4b5bd6599af4a7412e50b3bdc
  15. 26 Jan, 2016 4 commits
    • Geza Lore's avatar
      Always recode SUPERTX blocks. · f33755ef
      Geza Lore authored
      There is still an assertion failure when tokenizing transform
      coefficients for a supertx block, due to the eob not being set
      consistently with the coefficients, so we always recode supertx blocks
      for now. Also added further PICK_MODE_CONTEXT instances to avoid
      potential clash between horizontal/vertical/split partition SUPERTX
      Change-Id: I5f3da1fa0d8d20fc21face170487e1a285fd1cc6
    • Geza Lore's avatar
      Update VAR_TX related context when using SUPERTX. · 22cfc841
      Geza Lore authored
      The encoder did not update left_txfm_context and above_txfm_context in
      MACROBLOCKD (used for choosing the probability context for the vartx
      split bits) when the supertx bit was set for a block. The deoder on the
      other hand did update these for supertx blocks. The encoder used these
      to compute the context counts, which the packer then uses to adapt it's
      probabilities. This results in the packer and the decoder using
      different probabilities.
      This patch harmonizes the encoder and the decoder by making the encoder
      update the mentioned context for supertx coded blocks.
      Change-Id: I3a22132124b1bce2ee501d640ceab374b19e3ca1
    • Geza Lore's avatar
      Initalize mbmi->tx_size during rdopt. · 56686b45
      Geza Lore authored
      This is necessary when using SUPERTX, as the bitstream packer relies on
      tx_size being set correctly to decide whether to output the block using
      supertx or not.
      Change-Id: I79e776b3b810f4a15b9dbc6afdd6fc90c73c8934
    • 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
  16. 25 Jan, 2016 1 commit
    • Debargha Mukherjee's avatar
      Some supertx fixes · 9a8a6a1b
      Debargha Mukherjee authored
      Fixes some of the issues introduced by a merge from master.
      derflr: -0.893% BDRATE
      hevcmr: -1.667% BDRATE
      Change-Id: I4c5b40ec63a6f19521191d3c730af87db3c4bc00
  17. 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,
      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
  18. 15 Jan, 2016 1 commit
    • 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
      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
  19. 12 Jan, 2016 1 commit
  20. 08 Jan, 2016 3 commits
  21. 07 Jan, 2016 1 commit
  22. 05 Jan, 2016 1 commit
    • Debargha Mukherjee's avatar
      Super transform - ported from nextgen branch · 3787b174
      Debargha Mukherjee authored
      Various additional changes were made to make the experiment
      compatible with misc_fixes.
      derflr: +0.979%
      hevcmr: +0.865%
      Speed-wise with --enable-supertx the encoder is only about 10%
      slower than without. Decoding impact is about 30% slowdown.
      Note this does not work with ext-tx or var-tx yet. That is
      a TODO.
      Change-Id: If25af4241a7a9efbd28f58eda3c4f044c7a7ef4b
  23. 14 Dec, 2015 1 commit
  24. 10 Dec, 2015 3 commits
  25. 08 Dec, 2015 1 commit
    • paulwilkins's avatar
      Changes to exhaustive motion search. · 4e692bbe
      paulwilkins authored
      This change has been imported from VP9 and
      alters the nature and use of exhaustive motion search.
      Firstly any exhaustive search is preceded by a normal step search.
      The exhaustive search is only carried out if the distortion resulting
      from the step search is above a threshold value.
      Secondly the simple +/- 64 exhaustive search is replaced by a
      multi stage mesh based search where each stage has a range
      and step/interval size. Subsequent stages use the best position from
      the previous stage as the center of the search but use a reduced range
      and interval size.
      For example:
        stage 1: Range +/- 64 interval 4
        stage 2: Range +/- 32 interval 2
        stage 3: Range +/- 15 interval 1
      This process, especially when it follows on from a normal step
      search, has shown itself to be almost as effective as a full range
      exhaustive search with step 1 but greatly lowers the computational
      complexity such that it can be used in some cases for speeds 0-2.
      This patch also removes a double exhaustive search for sub 8x8 blocks
      which also contained  a bug (the two searches used different distortion
      For best quality in my test animation sequence this patch has almost
      no impact on quality but improves encode speed by more than 5X.
      Restricted use in good quality speeds 0-2 yields significant quality gains
      on the animation test of 0.2 - 0.5 db with only a small impact on encode
      speed. On most natural video clips, however, where the step search
      is performing well, the quality gain and speed impact are small.
      Change-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98