1. 12 Oct, 2017 1 commit
  2. 06 Oct, 2017 2 commits
    • Marco Paniconi's avatar
      Revert "Speed >=5 real-time: add TM intra mode for high_source_sad." · bcbc6ed8
      Marco Paniconi authored
      This reverts commit 9311ef18.
      Reason for revert:
      Notice small regression in some clips.
      Will revisit in another change.
      Original change's description:
      > Speed >=5 real-time: add TM intra mode for high_source_sad.
      > Small/neutral change in metrics or speed for ytlive.
      > Some improvement in quality on frames with big content change.
      > Change-Id: Ib3b0703a5f28ea6710e90324436e27598ab7384d
      Change-Id: I9d8ec5195bb05ddf329d325699355185affb9b13
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
    • Marco's avatar
      Speed >=5 real-time: add TM intra mode for high_source_sad. · 9311ef18
      Marco authored
      Small/neutral change in metrics or speed for ytlive.
      Some improvement in quality on frames with big content change.
      Change-Id: Ib3b0703a5f28ea6710e90324436e27598ab7384d
  3. 05 Oct, 2017 1 commit
    • Marco's avatar
      Adjust threshold for adapt_partition for speed 6. · 18262a85
      Marco authored
      Lower SAD threshold to select non_rd pickmode partition
      at superblock level more often.
      Small gain in metrics, small/negligible decrease in speed.
      Change-Id: I0f728236b91a604e4ca7e02039adc54d5985c4dc
  4. 04 Oct, 2017 1 commit
  5. 03 Oct, 2017 1 commit
    • Marco's avatar
      Use adapt_partition for ARF in 1 pass. · c8678fb7
      Marco authored
      For speed 6 real-time mode: use adapt_partition
      on ARF frame instead of REFERENCE_PARTITION (which is slower).
      This requires enabling compute_source_sad_onepass for no-show_frames.
      Speedup of ~3-5% on some clips that heavily use ARF,
      small loss (~0.2%) in quality on ytlive set.
      Change-Id: Ib50acc97df06458244a6ac55d2bd882c30012536
  6. 29 Sep, 2017 2 commits
    • Marco's avatar
      Fix partition selection in speed features for arf overlay frame. · c8f6e7b9
      Marco authored
      For real-time mode. Move the switch to fixed partition
      for is_src_frame_alt_ref so all speeds may use it
      if use_altref_onepass is set.
      Improves metrics by ~2% for ytlive set at speed 4
      (where use_altref_onepass is currently used).
      Change-Id: I033240386598c9dbd0364da89ccbcca64bc663ee
    • Marco's avatar
      Enable use_altref_onepass for speed 4 real-time mode. · f2c3d0a7
      Marco authored
      Used for VBR mode with lag-in-frames > 0.
      On ytlive set at speed 4: ~3% average gain.
      Change-Id: I45dad1700bf8be9d8f177815dc062774f6f2f0de
  7. 28 Sep, 2017 1 commit
    • Marco's avatar
      vp9: Modification to adapt the ARF usage for 1 pass vbr · 03e8f133
      Marco authored
      Add stats for past ARF usage, and use it to disable
      ARF usage based on some conditions.
      Overall improvement on ytlive set, reduces the regression
      on the problem clips for this feature.
      Only affects when sf->use_altref_onepass is enabled
      (currently off by default).
      Change-Id: I66267f227ea132dc86acb730e9882f85bead2cdb
  8. 26 Sep, 2017 1 commit
  9. 19 Sep, 2017 2 commits
    • Marco's avatar
      vp9: Modify simple_block_yrd condition for SVC · aaa6cdcc
      Marco authored
      Modify simple_block_yrd condition in nonrd_pickmode for SVC:
      allow it to be used also on base temporal_layer, only when
      spatial_layer > 1 and block size < 32x32.
      Speed up of about ~2% for 3 layer SVC, with little/negligible
      loss in quality.
      Change-Id: I7734bdae51cf51f22b96f6b2b27da20ea1d84344
    • Marco's avatar
      vp9: Adjustments for ARF usage in 1 pass vbr. · ebb015a5
      Marco authored
      Only when USE_ALT_REF_ONE_PASS is enabled (off by default).
      Force fixed partition to 64x64 when is_src_alt_ref_frame is true,
      and don't force early exit for some modes in nonrd_pickmode
      for ARF noshow frames.
      Small gain ~0.2% on ytlive metrics for speed 6.
      Neutral speed difference.
      Change-Id: I27eb6622d0453c09a06ccdc3b16368762474d11d
  10. 29 Aug, 2017 1 commit
  11. 28 Aug, 2017 1 commit
  12. 25 Aug, 2017 2 commits
    • Marco's avatar
      vp9: Speed 6 adapt_partition for live/vbr usage. · a0de2692
      Marco authored
      Enable adapt_partition for vbr mode for speed 6.
      This allows the usage of the pickmode-based partition
      (used in speed 5), but only selectively for superblocks
      with high source sad, otherwise the faster variance based
      partition scheme is used.
      For speed 6 on ytlive set: avgPSNR/SSIM metrics up by ~0.6%,
      several clips up by ~1.5%. Small/negligible decrease in speed.
      Change-Id: I12f3efef6b3e059391de330fdbe5a44c2587f1f8
    • 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
  13. 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.
      Change-Id: I2b67cf529dee81f660f9d9e7fe9a60ea3c7b12b8
  14. 31 Jul, 2017 1 commit
  15. 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
      `mv->col >= -((1 << (11 + 1 + 2)) - 1) && mv->col < ((1 << (11 + 1 + 2))
      - 1)'
      Change-Id: I449e777bf18b661cb3f1d82253610c55c51687f6
    • 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
  16. 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.
      Change-Id: If6a253977c8e0c04599e25cbeb45f71a94f563e8
  17. 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
  18. 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
    • 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
  19. 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
  20. 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
  21. 06 Jun, 2017 1 commit
  22. 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
  23. 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
  24. 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
  25. 22 May, 2017 1 commit
  26. 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
  27. 12 May, 2017 1 commit
  28. 28 Apr, 2017 1 commit
  29. 26 Apr, 2017 1 commit
  30. 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
  31. 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
  32. 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
  33. 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
      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
  34. 14 Apr, 2017 1 commit