1. 09 Feb, 2016 2 commits
    • Debargha Mukherjee's avatar
      A variety of fixes for supertx/var-tx rd costing · e2c1ea94
      Debargha Mukherjee authored
      Change-Id: I8a3d59378abb1dfa4e614b2975c2db05d4224bd5
      e2c1ea94
    • Debargha Mukherjee's avatar
      Explicitly set tx_type for sub8x8 blocks · d46c1f23
      Debargha Mukherjee authored
      Fixes an issue where the tx_type was not set correctly for
      sub8x8 inter and intra blocks. In the current syntax, for
      sub8x8 blocks, there is still a single tx_type that is
      transmitted. Ideally, this should be searched for the best
      rd performance, albeit at the expense of encode speed.
      For now, we just set it to DCT_DCT. Previously it was left
      incorrectly as what was used for the previous non sub8x8
      block.
      
      derflr: BDRATE -0.277%
      
      Change-Id: If76ba903bfbfd4d374cf1ac7d1daee50e92f0edd
      d46c1f23
  2. 08 Feb, 2016 2 commits
    • Jingning Han's avatar
      Enable dynamic ref motion vector mode for compound inter block · 28e0393f
      Jingning Han authored
      This commit enables the dynamic reference motion vector coding mode
      for the compound inter blocks.
      
      Change-Id: Ibe78fd8de6989db392cd67a9d81a69d680345ba1
      28e0393f
    • Yaowu Xu's avatar
      Fix msvc compiler warnings · 3c28b4a8
      Yaowu Xu authored
      There were a number of compiler warnings:
      1. int16_t to uint8_t in recon_intra.c;
      2. double to float conversions in psnrhvs.c
      3. intptr_t to int in quantize.c
      4. size_t to int32_t in decoder.c
      
      Change-Id: Id95423b17779dcfa6cf39d9a90fe8cb8b910f5df
      3c28b4a8
  3. 03 Feb, 2016 4 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
    • Jingning Han's avatar
      Generalize the dynamic reference motion vector coding mode · 4fb8b217
      Jingning Han authored
      This commit generalizes dynamic reference motion vector coding mode
      to support multiple candidate modes in the rate-distortion
      optimization scheme and to support the selection in the bit-stream
      syntax. The maximum number of modes allowed is currently limited to
      4. The syntax elements for the dynamic reference motion vector
      modes are using binary codes. The scheme supports single reference
      frame.
      
      It improves the compression performance
      derf   0.135%
      hevcmr 0.098%
      
      Change-Id: Id053d6ce76e8365e52727bd0d12d28ce3de2e0e8
      4fb8b217
    • Jingning Han's avatar
      Account for zero-forcing operation in selective ref mv mode · 590265ea
      Jingning Han authored
      It makes the encoder accounts for the block zero-forcing operation
      when optimizing the mode decisions.
      
      Change-Id: I2c8e243756080b446b8a53a9679f75c4c47148cf
      590265ea
  4. 02 Feb, 2016 3 commits
    • 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
    • James Zern's avatar
      vp10: remove unused (read|write)_uniform · ebf25868
      James Zern authored
      dead code since:
      5d3327e8 Remove palette from VP10
      
      Change-Id: I4a36575706ea6fffefe5bc778595112ef6ff37d8
      ebf25868
    • Angie Chiang's avatar
      Pass filter type instead of filter array · 10ad97bc
      Angie Chiang authored
      Change-Id: I25f2149ddaa332722f7ab82e8f832a253c4b6ab3
      10ad97bc
  5. 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
      eef57c1e
  6. 26 Jan, 2016 1 commit
    • Geza Lore's avatar
      Reintroduce VAR_TX fix · 5aa655f7
      Geza Lore authored
      Reintroduce part of
      Iaf2b717e6b8626b2b6a03226127221b776b49884
      Which was later reverted in
      I4c5b40ec63a6f19521191d3c730af87db3c4bc00
      
      Change-Id: If3e5610ba3985ae7b4d952d8e616982465ac667a
      5aa655f7
  7. 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
      9a8a6a1b
  8. 22 Jan, 2016 4 commits
    • 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
    • Debargha Mukherjee's avatar
      A fix for a missing tx_type · 4e406f70
      Debargha Mukherjee authored
      Change-Id: I165cd06256175edb7739020379ba3098251f4a7c
      4e406f70
    • Julia Robson's avatar
      Fixes for var_tx when ext_tx is not enabled · 9fe188e4
      Julia Robson authored
      This patch fixes a couple of issues caused by change-id:
      I15d20ce5292b70f0c2b4ba55c1f1318181481596
      Changes to the code for when the ext_tx experiment is not enabled
      were merged from master but as var_tx does not exist on master
      the changes had not been applied to the case when var_tx experiment
      is enabled
      
      Change-Id: Iaf2b717e6b8626b2b6a03226127221b776b49884
      9fe188e4
    • Debargha Mukherjee's avatar
      Some fixes on tx size/type selection · 8d69a6e8
      Debargha Mukherjee authored
      For ext_tx experiment.
      
      Change-Id: Ie37b9b456b09bde8b606fb978fee4cca8d0326b7
      8d69a6e8
  9. 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
      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
  10. 14 Jan, 2016 1 commit
    • Jingning Han's avatar
      Handle single ref mv pair in the candidate list for compound mode · 3944cfb1
      Jingning Han authored
      This commit considers the case where a single reference motion
      vector pair is found in the candidate list. It treats this pair
      as the effective motion vector for nearestmv mode. This improves
      the coding performance by 0.06% for stdhd sets.
      
      Change-Id: I9ce12f456b52912933e05c18c3841a78c26155d2
      3944cfb1
  11. 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
  12. 08 Jan, 2016 3 commits
  13. 05 Jan, 2016 2 commits
    • Peter de Rivaz's avatar
      Change to rd costing for CONFIG_VAR_TX · 2f943131
      Peter de Rivaz authored
      In select_tx_block I believe the rd cost was ignoring the bits
      needed to encode the split bit.
      
      Change-Id: Iacbf705b880db9a68967a994406ba90ecf693ab8
      2f943131
    • 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
      3787b174
  14. 04 Jan, 2016 1 commit
  15. 18 Dec, 2015 1 commit
    • Zoe Liu's avatar
      Restore the flexibility for the new 3 references · ec36a2b0
      Zoe Liu authored
      For the experiment of EXT_REFS, removed the previous special handling
      on the new last 3 references, i.e. LAST2_FRAME, LAST3_FRAME, and
      LAST4_FRAME, at the decoder, so that these new last references are
      treated the same way as the other 3 references (LAST_FRAME,
      GOLDEN_FRAME, and ALTREF_FRAME). Encoder changes have been made
      accordingly to realize this flexibility.
      
      Change-Id: Ic6546f9443b4377bb7e7b101bfa3e70a8b8d1c65
      ec36a2b0
  16. 15 Dec, 2015 1 commit
    • Yaowu Xu's avatar
      Fix a enc/dec mismatch under CONFIG_MISC_FIXES · c7101830
      Yaowu Xu authored
      The culprit is on the decode side xd->lossless[i] setup was in wrong
      location where segment features are not yet decoded.
      
      Also on the encoder side, transform mode was not set consistently
      between when tx_mode is selected and how tx_mode is enforced in
      tx size selection.
      
      Change-Id: I4c4c32188fda7530cadab9b46d4201f33f7ceca3
      c7101830
  17. 10 Dec, 2015 2 commits
  18. 08 Dec, 2015 3 commits
    • 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
      metrics).
      
      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
      4e692bbe
    • Peter de Rivaz's avatar
      Fix for crash when using high bitdepth and var-tx · 22850493
      Peter de Rivaz authored
      Change-Id: Ide48fa4312f7828f99290f7a2be878f5673fa716
      22850493
    • hui su's avatar
      Bring palette back to nextgenv2 · c93e5cc3
      hui su authored
      It was removed by the master branch merge.
      
      Change-Id: I4b2a524c9e052e41063359afcb4ba22bf78344cf
      c93e5cc3
  19. 03 Dec, 2015 2 commits
    • Angie Chiang's avatar
      Refactor vp10_xform_quant · 88cae8b4
      Angie Chiang authored
      1) Add facade to quantize b/fp/dc version so that their interface
         are the same.
      2) Merge vp10_xform_quant b/fp/dc version to one function so that
         the code flow in encodemb.c is clear
      
      Change-Id: Ib62d6215438fc2d07f4e7e72393f964832d6746f
      88cae8b4
    • hui su's avatar
      Remove palette from VP10 · 5d3327e8
      hui su authored
      Store it in nextgenv2 for now.
      
      Change-Id: Iab0af0e15246758e3b6e8bde4a74b13c410576fc
      5d3327e8
  20. 01 Dec, 2015 1 commit
    • hui su's avatar
      Speed up angle search in intra mode selection · d7c8bc77
      hui su authored
      Estimate angle histogram using gradient analysis, then skip those
      angles that are unlikely to be chosen.
      
      On ext-intra experiment, turning off filter-intra modes:
      for all-key-frame setting, computation overhead is reduced
      by about 40%, coding gain dropped from +2.08% to +1.96% (derflr);
      with kf-max-dist=150, computation overhead is reduced
      by about 60%, coding gain dropped from +0.58% to +0.49% (derflr).
      
      Change-Id: I36687410fb10561b8e1a8eebb1528cf17755bd5b
      d7c8bc77
  21. 25 Nov, 2015 3 commits