1. 25 Aug, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Modify mv search condition in speed features. · a74593b3
      Marco authored
      For SVC at speed >= 7: only use the improved mv search
      on base spatial layer, if top layer resolution is above 640x360.
      
      ~2.3% speedup
      Small/negligible loss in avgPSNR metrics on rtc set.
      
      Change-Id: Iaef75a57ebf1c248931bc1aa28d20b7fecac1851
      a74593b3
  2. 02 Aug, 2017 1 commit
    • Yunqing Wang's avatar
      Force the bit exactness in the first pass · bfd0f41f
      Yunqing Wang authored
      Originally, for the purpose of keeping a fast first pass, the first-pass
      stats between row_mt_mode = 0 and row_mt_mode = 1 are not bit exact, but
      that difference is very small that doesn't cause a mismatch between the
      final bitstreams. However, if the encoder changes, this minor difference
      may cause a mismatch. Thus, this patch always forces the first pass to
      be bit exact.
      
      BUG=webm:1453
      
      Change-Id: I2b67cf529dee81f660f9d9e7fe9a60ea3c7b12b8
      bfd0f41f
  3. 31 Jul, 2017 1 commit
  4. 29 Jul, 2017 2 commits
    • James Zern's avatar
      Revert "vp9: Speed feature to adapt partition based on source_sad." · c9266b85
      James Zern authored
      This reverts commit 064fc570.
      
      This causes an assertion failure in vp9_mcomp.c when running
      gtest_filter=VP9/MotionVectorTestLarge.OverallTest/41:
      `mv->col >= -((1 << (11 + 1 + 2)) - 1) && mv->col < ((1 << (11 + 1 + 2))
      - 1)'
      
      Change-Id: I449e777bf18b661cb3f1d82253610c55c51687f6
      c9266b85
    • Marco's avatar
      vp9: Speed feature to adapt partition based on source_sad. · 064fc570
      Marco authored
      Move the source_sad feature to speed 6 (from speed 7), and
      add speed feature to switch from the variance-based partition
      to reference_partition (which uses nonrd-pickmode for bsize selection)
      if source_sad is high.
      
      Currently used only for speed 6 for resoln <= 360p.
      About 4-5% improvement on 360p in RTC set.
      Some speed slowdown, but still ~30% faster than speed 5.
      
      Change-Id: Ib0330ee5fe9fdd2608aed91359a2a339d967491c
      064fc570
  5. 10 Jul, 2017 1 commit
    • Johann's avatar
      remove vp9_full_sad_search · 109faffe
      Johann authored
      This code is unused in vp9. Only vp8 still contains references to
      vpx_sad_NxMx[3|8] and only for sizes 16x16, 16x8, 8x16, 8x8 and 4x4.
      
      Remove the remaining sizes and all the highbitdepth versions.
      
      BUG=webm:1425
      
      Change-Id: If6a253977c8e0c04599e25cbeb45f71a94f563e8
      109faffe
  6. 28 Jun, 2017 1 commit
    • Marco's avatar
      vp9: Speed >= 8: Remove logic on reducing subpel. · 88d11f47
      Marco authored
      Existing logic was only affecting resolutions above 720p.
      Needs more testing for reducing subpel for speed >= 8.
      
      No change on RTC metrics.
      
      Change-Id: I2f4bf9f25891614aafa9a86aa5a5063a3ccfce4d
      88d11f47
  7. 19 Jun, 2017 2 commits
    • Marco's avatar
      vp9: Speed >= 8: Adjust resolution threshold for subpel. · ff7fb4b2
      Marco authored
      Get some quality gain on RTC metrics (~7%), with
      ~5-8% speed slowdown.
      
      Change-Id: I0d02942a77074424ee0326b6e110ddff09f2df5e
      ff7fb4b2
    • Marco's avatar
      vp9: SVC: Rework the usage of base_mv for SVC. · 112cd955
      Marco authored
      Set the base_mv_aggressive for temporal enhancement layers (TL > 0).
      Under the aggressive mode, skip the NEWMV depending on the
      SSE of the base_mv. Also reduce the subpel motion to 1/2 under
      aggressive mode if base_mv is good.
      
      Speedup ~3% with small/negligible loss in quality on RTC.
      Affects speed >= 6.
      
      Change-Id: I89341b279cad6da2a04b76d5e726016191dacdb8
      112cd955
  8. 10 Jun, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Use prune_evenemore only for non_reference. · e540ca71
      Marco authored
      Set subpel prune_evenmore only for non_reference frames,
      instead of all TL > 0 frames. Gain some quality back at
      cost of small speed loss (~1-2%).
      
      Change only effects SVC encoding at speed >= 7.
      
      Change-Id: I5b9f51e51dccfd7050521a66996176b0415ca3f9
      e540ca71
  9. 07 Jun, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Enable simple_block_yrd for temporal layers. · 14d47180
      Marco authored
      Enable simple_block_yrd for temporal enhancement layers (TL > 0).
      And remove block size condiiton for SVC mode.
      Only affects speed >= 7 SVC.
      
      Speedup ~3-4%.
      avgPSNR regression on RTC for (3 spatial, 3 temporal) layers: ~1%.
      
      Change-Id: Iff4fc191623b71c69cd373e7c0823385e7ac67ed
      14d47180
  10. 06 Jun, 2017 1 commit
  11. 02 Jun, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Force subpel search off under certain conditions. · e30781ff
      Marco authored
      For SVC 1 pass non-rd mode:
      Force subpel seach off for SVC for non-reference frames
      under motion threshold.
      
      Add flag to svc context to indicate if the frame is not used
      as a reference.
      
      Little/no quaity loss, ~2% speedup.
      
      Change-Id: Ic433c44b514d19d08b28f80ff05231dc943b28e9
      e30781ff
  12. 01 Jun, 2017 1 commit
    • Marco's avatar
      vp9: Speed >8: Set subpel_search_method for low motion. · 8c6fa5c5
      Marco authored
      Speed >=8: for resolutions above CIF, and for low motion content,
      set subpel_search_method to SUBPEL_TREE_PRUNED_EVENMORE.
      
      Small speed gain (~2%) on vga clips,
      RTC metrics up by ~2-3% on average.
      
      Change-Id: Ie26ba0264589652f92dfe74308740debf94cf0cc
      8c6fa5c5
  13. 25 May, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Enable copy partition for SVC speed >= 7. · 747cf7a5
      Marco authored
      Adjust the max_copied_frame setting for temporal layers.
      Keep the same setting for non-SVC at speed 8.
      This change also enables copy_partiton for non-SVC at speed 7,
      but with smaller value of max_copied_frame (=2).
      
      ~2% speedup for SVC speed 7, 3 layers, with little/no quality loss.
      
      Change-Id: Ic65ac9aad764ec65a35770d263424b2393ec6780
      747cf7a5
  14. 22 May, 2017 1 commit
  15. 18 May, 2017 1 commit
    • Marco's avatar
      vp9: Make copy partition work for SVC and dynamic resize. · 2ba4729e
      Marco authored
      Only affects speed 8.
      
      Make changes to copy partition to fix a bug in setting microblock
      offset. Avg PSNR shows 0.02% gain on rtc_derf and 0.08% loss on rtc.
      
      Change-Id: I61c3e5914dde645331344388e7437e5638acd4f3
      2ba4729e
  16. 12 May, 2017 1 commit
  17. 28 Apr, 2017 1 commit
  18. 26 Apr, 2017 1 commit
  19. 25 Apr, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Adjust some speed settings for temporal layers. · c614164c
      Marco authored
      Make some speed setting changes for temporal enhancement layers,
      and remove the switch in subpel_force_stop for the aggressive_base_mv
      in non-rd pickmode.
      
      Gain some 2-3% speed with little/negligible quality loss.
      
      Change-Id: I3e2a7f80ff45f38c0a6ceb01b34dbca2f53edbf0
      c614164c
  20. 24 Apr, 2017 1 commit
    • Yunqing Wang's avatar
      Make the row based multi-threaded encoder deterministic · 10a497bd
      Yunqing Wang authored
      This patch followed allow_exhaustive_searches feature modification and
      continued to modify the encoder to achieve the determinism in the row
      based multi-threaded encoding. While row-mt = 1 and using multiple
      threads, the adaptive feature in encoder was disabled, which gave
      BDRate gain(at speed 1, -0.6% ~ -0.7%; at speed 2, -0.46% ~ -0.59%),
      but some encoder speed losses(7% ~ 10% at speed 1 and 3% ~ 6% at
      speed 2). These speed losses were acceptable considering the speed
      gains obtained from row-mt.
      
      Change-Id: I60d87a25346ebc487a864b57d559f560b7e398bb
      10a497bd
  21. 21 Apr, 2017 1 commit
    • Yunqing Wang's avatar
      Make allow_exhaustive_searches feature no longer adaptive · bca45646
      Yunqing Wang authored
      A previous patch turned on allow_exhaustive_searches feature only for
      FC_GRAPHICS_ANIMATION content. This patch further modified the feature
      by removing the exhaustive search limit, and made it no longer adaptive.
      As a result, the 2 counts that recorded the number of motion searches
      were removed, which helped achieve the determinism in the row based
      multi-threading encoding. Tests showed that this patch didn't cause
      the encoder much slower.
      
      Used exhaustive_searches_thresh for this speed feature, and removed
      allow_exhaustive_searches. Also, refactored the speed feature code
      to follow the general speed feature setting style.
      
      Change-Id: Ib96b182c4c8dfff4c1ab91d2497cc42bb9e5a4aa
      bca45646
  22. 20 Apr, 2017 1 commit
    • Yunqing Wang's avatar
      Only allow allow_exhaustive_searches for FC_GRAPHICS_ANIMATION content · e96e49c2
      Yunqing Wang authored
      The allow_exhaustive_searches feature improves the encoding quality
      of FC_GRAPHICS_ANIMATION content a lot. For non-FC_GRAPHICS_ANIMATION
      content, the quality test result is almost neutral. This patch makes
      this feature to be used only for FC_GRAPHICS_ANIMATION content.
      
      The motivation of doing that is to make this feature no longer adaptive,
      which will be implemented in the following patch.
      
      Change-Id: Ic911df6dd757402b6480789cc247801e99840369
      e96e49c2
  23. 14 Apr, 2017 1 commit
  24. 11 Apr, 2017 1 commit
    • Jerome Jiang's avatar
      vp9: speed >= 8: Adjust speed settings on ARM. · f16f08e5
      Jerome Jiang authored
      Set adaptive_rd_thresh to 2 when simple block yrd is not used.
      
      Fix regression caused by computing y sad without
      int_pro_motion_estimation on low res motion clips.
      
      Overall 0.07% quality loss on rtc_derf.
      
      Change only affects low res on speed 8.
      
      Change-Id: Ic6a188a56529f1034d6431005fb4b0e24e8a7e27
      f16f08e5
  25. 06 Apr, 2017 1 commit
    • Yunqing Wang's avatar
      VP9 motion vector unit test · 1aa46abb
      Yunqing Wang authored
      To prevent the motion vector out of range bug, added a motion vector unit
      test in VP9. In the 4k video encoding, always forced to use extreme motion
      vectors and also encouraged to use INTER modes. In the decoding, checked if
      the motion vector was valid, and also checked the encoder/decoder mismatch.
      
      The tests showed that this unit test could reveal the issue we saw before.
      
      Change-Id: I0a880bd847dad8a13f7fd2012faf6868b02fa3b4
      1aa46abb
  26. 05 Apr, 2017 1 commit
  27. 27 Mar, 2017 1 commit
    • Marco's avatar
      vp9: 1 pass: Move source sad computation into encodeframe loop. · 66c6b4d6
      Marco authored
      Refactor to split the 1 passs source sad computation into scene
      detection (currently used for VBR and screen-content mode), and
      superblock based source sad computation (used in non-rd CBR mode).
      
      This allows the source sad computation for CBR mode to be
      multi-threaded.
      
      No change in compression.
      
      Change-Id: I112f2918613ccbd37c1771d852606d3af18c1388
      66c6b4d6
  28. 22 Mar, 2017 2 commits
  29. 20 Mar, 2017 2 commits
    • Marco's avatar
      vp9: Use sb content measure to bias against golden. · 06c8713e
      Marco authored
      For each superblock, keep track of how far from current frame
      was the last significant content change, and use that (along
      with GF distance), to turnoff GF search in non-rd pickmode.
      
      Only enabled for speed >= 8.
      
      avgPNSR on RTC/RTC_derf down by ~0.9/1.2.
      Speedup on mac: ~3-5%.
      Speedup on arm: 3.6% for VGA and 4.4% for HD.
      
      Change-Id: Ic3f3d6a2af650aca6ba0064d2b1db8d48c035ac7
      06c8713e
    • Yunqing Wang's avatar
      Record the sum of tx block eobs in the partition block · 9c2552a1
      Yunqing Wang authored
      The sum of tx bloxk eobs is needed in the machine learning based partition
      early termination. The eobs are first accumulated during tx search, and
      then the value associated with the best tx_size is copied to ctx for later
      use.
      
      After the sum of eobs are calculated correctly, re-enabled
      ml_partition_search_early_termination speed feature.
      
      Re-did the quality/speed test to check the impact of the fix.
      
      1. Borg test BDRATE result:
      4k set:     PSNR: +0.183%; SSIM: +0.100%;
      hdres set:  PSNR: +0.168%; SSIM: +0.256%;
      midres set: PSNR: +0.186%; SSIM: +0.326%;
      
      2.Average speed gain result:
      4k clips: 21%;
      hd clips: 26%;
      midres clips: 15%.
      
      The result is in line with the original result.
      
      Change-Id: I4209a95c89be03b4cbfb6a95b16885f89feddbda
      9c2552a1
  30. 17 Mar, 2017 1 commit
  31. 16 Mar, 2017 1 commit
  32. 15 Mar, 2017 1 commit
  33. 14 Mar, 2017 3 commits
  34. 13 Mar, 2017 1 commit
    • Marco's avatar
      vp9: Fix to source_sad feature for SVC. · f0a22b23
      Marco authored
      Allow speed feature sf->use_source_sad to be used
      on highest spatial layer for SVC.
      
      Change-Id: I260eb0478902764f49f83e43b17024fe86ff3b22
      f0a22b23