1. 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
  2. 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
  3. 10 Dec, 2015 2 commits
  4. 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
  5. 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
  6. 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
  7. 25 Nov, 2015 3 commits
  8. 21 Nov, 2015 1 commit
    • Zoe Liu's avatar
      Added 3 more reference frames for inter prediction. · 3ec1601e
      Zoe Liu authored
      Under the experiment of EXT_REFS: LAST2_FRAME, LAST3_FRAME, and
      LAST4_FRAME.
      
      Coding efficiency: derflr +1.601%; hevchr +1.895%
      Speed: Encoder slowed down by ~75%
      
      Change-Id: Ifeee5f049c2c1f7cb29bc897622ef88897082ecf
      3ec1601e
  9. 19 Nov, 2015 2 commits
  10. 17 Nov, 2015 2 commits
    • hui su's avatar
      Merge MISC_FIXES · 66f2f65e
      hui su authored
      Remove MISC_FIXES flags except for the changes on MV precision, which
      has a 0.1% performance drop.
      
      On derflr, the impact is -0.012%.
      
      Change-Id: I0a74e5a212dd0cb827192a318c92a714c9681e45
      66f2f65e
    • hui su's avatar
      Fix some unused variable warnings · af084fbe
      hui su authored
      Change-Id: Ia7680ddf00dd50dd66bbb5753bae30b937988800
      af084fbe
  11. 16 Nov, 2015 1 commit
  12. 13 Nov, 2015 1 commit
    • hui su's avatar
      refactor ext-intra · 4aa50c17
      hui su authored
      Coding gain remains about the same, while overall speed is
      substantially increased.
      
      Change-Id: I2989bebcfd21092cd6a02653d4df4a3bf6780874
      4aa50c17
  13. 11 Nov, 2015 1 commit
    • Jingning Han's avatar
      Fix an encoding failure case when speed features are on · 35b3bd3e
      Jingning Han authored
      This commit fixes an encoding failure case triggered when early
      termination feature is turned on for transform block size search.
      It resolves the corresponding enc/dec mismatch issue.
      
      Change-Id: I2c5b7d8b1efe25fe3810e6ed307f4b1865dede49
      35b3bd3e
  14. 09 Nov, 2015 1 commit
    • Johann's avatar
      Release v1.5.0 · cbecf57f
      Johann authored
      Javan Whistling Duck release.
      
      Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8
      cbecf57f
  15. 06 Nov, 2015 2 commits
    • hui su's avatar
      Use accurate bit cost for uv_mode in UV intra mode RD selection · 6ab6ac45
      hui su authored
      On derflr, +0.1% for VP10; however, -0.03% on VP9.
      
      Change-Id: I09c724232ede74254043d61d3cadc506256af0af
      6ab6ac45
    • Debargha Mukherjee's avatar
      New interpolation experiment · 85514c40
      Debargha Mukherjee authored
      Adds a new interpolation experiment.
      
      Improves entropy coding to send the filter type only if
      the motion vectors have subpel components.
      Adds one new 8-tap smooth filter, and tweaks the others.
      
      derflr: +0.695%
      hevcmr: +0.305%
      
      About 5% encode slowdown. No visible impact for decoding.
      
      Also makes the interpolation framework flexible to support both
      strictly interpolating filters as well as non-interpolating
      filters that filter integer offsets. This is mainly for
      further experimentation and if not found useful the code will
      be removed.
      
      Change-Id: I8db9cde56ca916be771fe54a130d608bf10786e6
      85514c40
  16. 04 Nov, 2015 2 commits
    • Jingning Han's avatar
      Simplify txfm rate-distortion optimization · 493d0234
      Jingning Han authored
      This commit refactors the rate-distortion optimization scheme for
      transform block coding. When both ext-tx and var-tx experiments
      are turned on, the encoding time for bus_cif at 1000 kbps goes down
      from 706377 ms to 666503 ms (5.6% speed-up). The coding statics
      remain unchanged.
      
      Change-Id: I20835db573725580aad79c16220f799ce01f2093
      493d0234
    • hui su's avatar
      ext-intra experiment · be3559ba
      hui su authored
      Currently there are two parts in this experiment: extra directional intra
      prediction modes and the filter intra modes migrated from the nextgen branch.
      
      Several macros are defined in "blockd.h" to provide controls of the experiment
      settings. Setting "DR_ONLY" as 1 (default is 0) means we only use directional
      modes, and skip the filter-intra modes; "EXT_INTRA_ANGLES" (default is 128)
      defines the number of different angles we want to support; setting
      "ANGLE_FAST_SEARCH" as 1 (default is 1) means we use fast sub-optimal search
      for the best prediction angle, instead of exhaustive search. The fast search
      is about 6 times faster than the exhaustive search, while preserving about
      60% of the coding gains.
      
      With extra directional prediction modes (fast search), we observe the following
      code gains (number in parentheses is for all-key-frame setting):
      derflr +0.42%  (+1.79%)
      hevclr +0.78%  (+2.19%)
      hevcmr +1.20%  (+3.49%)
      stdhd  +0.56%
      Speed-wise, about 110% slower for key frames, and 30% slower overall.
      
      The gains of filter intra modes mostly add up with the gains of directional
      modes. The overall coding gain of this experiment:
      derflr +0.94%
      hevclr +1.46%
      hevcmr +1.94%
      stdhd  +1.58%
      
      Change-Id: Ida9ad00cdb33aff422d06eb42b4f4e5f25df8a2a
      be3559ba
  17. 03 Nov, 2015 2 commits
    • Jingning Han's avatar
      Re-work rate-distortion optimization scheme for transform coding · 696ee004
      Jingning Han authored
      This commit re-works the rate-distortion optimization scheme for
      transform coding. It improves the overall compression performance.
      For derf set, the ext-tx experiment provides 2.27% coding gains,
      and the new scheme that integrates multiple transform type selection
      and recursive transform block partitioning provides a total of 3.24%
      coding gains.
      
      Change-Id: Ia1887c4c44b73dfb915d091d96660a99f09d5cc3
      696ee004
    • Jingning Han's avatar
      Incorporate flexible tx type and tx partition in RD scheme · 4b594d3d
      Jingning Han authored
      This commit hooks up the rate-distortion optimization system to
      fully exploit recursive transform block partition and multiple
      transform type. The compression performance of the two experiments
      largely adds up. For derf set, ext-tx provides additional 2.1%
      coding gains on top of the gains due to recursive transform block
      partition (0.69%).
      
      Change-Id: I1091fb9545f74e489a6a2489dc3c12f5abd05043
      4b594d3d
  18. 30 Oct, 2015 3 commits
  19. 29 Oct, 2015 2 commits
  20. 28 Oct, 2015 2 commits
    • Jingning Han's avatar
      Use precise distortion metric · 71c15607
      Jingning Han authored
      Rework the rate distortion optimization pipeline. Use precise
      distortion metric that accounts for the forward and inverse
      transform rounding effect.
      
      Change-Id: Ibe19ce9791ec3547739294cc3012dd9e11f4ea49
      71c15607
    • Jingning Han's avatar
      Account for variable txfm sizes in coeff token packing · 4bfed0b3
      Jingning Han authored
      This commit makes the coefficient token packtization process account
      for variable transform block sizes supported in a single processing
      block. It fixes an enc/dec mismatch issue when var-tx, ext-tx, and
      misc-fixes experiments are all turned on.
      
      Change-Id: I2e8946e6f72de567603a568debbadad11196430c
      4bfed0b3
  21. 27 Oct, 2015 1 commit
  22. 26 Oct, 2015 1 commit
    • Jingning Han's avatar
      Fix lossless coding · f0dee776
      Jingning Han authored
      Use inter_block_yrd as rate-distortion optimization for lossless
      coding. This fixes transform coefficient buffer swap use case and
      resolves the unit test failure related to lossless coding.
      
      Change-Id: I1512dab5ed5760c31f7de21a06e8d9ed1eb081fa
      f0dee776
  23. 23 Oct, 2015 3 commits
    • Jingning Han's avatar
      Properly handle non-420 color format in recursive transform scheme · 79fe7246
      Jingning Han authored
      This commit makes the recursive transform block partitioning properly
      handle the non-420 color format. It resolves an enc/dec mismatch
      issue in that setting when var-tx experiment is turned on.
      
      Change-Id: I48a91de02c11b3153f897d1cca0ae948eec15605
      79fe7246
    • Jingning Han's avatar
      Use explicit block position in foreach_transformed_block · caeb10bf
      Jingning Han authored
      Add the row and column index to the argument list of unit functions
      called by foreach_transformed_block wrapper. This avoids the
      repeated internal parsing according to the block index.
      
      Change-Id: Ie7508acdac0b498487564639bc5cc6378a8a0df7
      caeb10bf
    • Yaowu Xu's avatar
      Fix merge defects · 5a27b3bb
      Yaowu Xu authored
      This commit fixes the merge conflicts between master and nextgenv2 and
      disable early termination in choose_tx_size() to avoid failure in test.
      
      The test failures are pre-existing, some of the issue were fixed in
      masterbase already, so will have another merge to introduce the fixes.
      
      Change-Id: Ib71889661955e73aedbb4db49d8be70425281dcb
      5a27b3bb