1. 10 Nov, 2017 1 commit
    • Marco's avatar
      vp9-svc: Avoid minmax variance for non-reference frames. · 6c0011a2
      Marco authored
      For choose_partitioning (speed >= 6): avoid computation
      of minmax variance for non-reference frames in SVC.
      
      Existing condition only avoided this for speed >= 8.
      Combine that existing logic with non-reference condition.
      
      Small speedup (~0.5-1%) for 3 layer SVC,
      neutral change on avgPSNR/SSIM metrics.
      
      Change-Id: I3e9f3a1af0647b15e475cf170d9402908d672ee5
      6c0011a2
  2. 09 Nov, 2017 1 commit
    • Jerome Jiang's avatar
      vp9: SVC feature to use partition from lower resolution. · fdb054a0
      Jerome Jiang authored
      For SVC with 3 spatial layers:
      Add feature to copy/upscale partition from middle spatial layer
      to the upper/highest resolution, when superblock sad is not high.
      
      Enabled for speed >= 7 and only for non-reference frames.
      
      Speedup ~3-4%, small loss in avgPNSR/SSIM of ~1%.
      
      Change-Id: I7f0a2716c0fde28bade0f86159d11b7e31d6ab8d
      fdb054a0
  3. 03 Nov, 2017 1 commit
    • Marco's avatar
      Compound prediction mode for nonrd pickmode. · eb7d431c
      Marco authored
      Allow for compound prediction mode in nonrd_pickmode for ZEROMV.
      For real-time encoding, 1 pass with non-zero lag-in-frames.
      
      Added speed feature to control the feature.
      Enabled for speed >=6 for now, under VBR mode.
      
      avgPSNR/SSIM metrics positive on ytlive set, for speed 6:
      some clips up by ~3-5%, some clips neutral gain, average gain
      across clips is ~1%.
      
      Small/negligible decrease in speed.
      
      Change-Id: I7a60c7596e69b9a928410c5ee2f9141eecd8613d
      eb7d431c
  4. 01 Nov, 2017 1 commit
  5. 31 Oct, 2017 1 commit
  6. 30 Oct, 2017 1 commit
    • Jerome Jiang's avatar
      vp9: Reduce stack usage of choose_partioning. · cc472311
      Jerome Jiang authored
      Change type of sum_square_error from int64_t to uint32_t.
      Change type of sum_error from int64_t to int32_t.
      
      This reduces the stack usage from ~131K to ~87K.
      
      BUG=b/68362457
      
      Change-Id: I147d7c7b226bceb4f0817bb86848e1fa9d9ac149
      cc472311
  7. 12 Oct, 2017 1 commit
  8. 06 Oct, 2017 1 commit
    • Marco's avatar
      Adjust threshold in scene detection · e405eb06
      Marco authored
      For 1 pass vbr: increase min_thresh slightly, and also add
      condition on golden/arf update for using full nonrd_pick_partition.
      
      Reduces possible false detection for scene cut detection.
      
      Neutral/small change in metrics or speed for speed 5.
      
      Change-Id: I388f4d9a56e3cc763e0148338c1bc0381e58ad76
      e405eb06
  9. 04 Oct, 2017 1 commit
    • Marco's avatar
      Avoid nonrd_pick_partition for speed >= 6. · 4bc1fc58
      Marco authored
      For 1 pass vbr speed >= 6: when REFERENCE_PARTITION is selected,
      avoid doing the full nonrd_pickmode based partition.
      No change in overall metrics or speed.
      Reduces encode times on scene cuts by 10-20%.
      
      Change-Id: I0310b1610cc1c83793a509e0a9059840e8f18308
      4bc1fc58
  10. 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
      c8678fb7
  11. 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
      03e8f133
  12. 19 Sep, 2017 1 commit
    • 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
      ebb015a5
  13. 25 Aug, 2017 1 commit
    • 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
      a0de2692
  14. 24 Aug, 2017 1 commit
    • Marco's avatar
      vp9: Adjust 16x16 splot threshold for variance partition · d1477715
      Marco authored
      For speeds < 7, increase threshold that controls the split
      of 16x16->8x8 blocks, for resolutions 720p and higher.
      
      Minor change for speed 5 (since it uses reference partition scheme
      which only uses variance partition as first step).
      For speed 6: ~0.5% increase in avgPSNR/SSIM metrics on ytlvie set.
      No change in speed.
      
      Change-Id: I5126580973201538d8ca26a9256b93c4d11d685b
      d1477715
  15. 22 Aug, 2017 1 commit
    • Marco's avatar
      vp9: Condition lighting change detection on CBR mode. · a31461c8
      Marco authored
      This feature is used for the CBR RTC encoding mode
      at speed >= 6. This change will exclude it for VBR mode.
      
      For speed 6 live encoding (VBR):
      avgPSNR/SSIM metrics on ytlive set up by ~1% (few clips up by 2/3%).
      No change in speed.
      
      Change-Id: I1a0dd94c334f7df309ab5a48d477d7e25355b798
      a31461c8
  16. 08 Aug, 2017 1 commit
    • Marco's avatar
      vp9: Partition logic adjustment for speed 6 feature. · 427de67e
      Marco authored
      When adapt_partition_source_sad is enabled (currently only at
      speed 6 for resoln <= 360p): use lower subsize (8x8 instead of 16x16)
      for nonrd_select_partition on 32X32 blocks.
      
      And force avoiding rectangular partition checks in
      nonrd_pick_partition for speed >= 6.
      
      Small increase ~0.5 in metrics for speed 6 on rtc_derf,
      no change in speed.
      
      Change-Id: Id751bc8f7573634571b2d6f5e29627cd5cebccae
      427de67e
  17. 31 Jul, 2017 2 commits
  18. 29 Jul, 2017 3 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
    • Jerome Jiang's avatar
      vp9: Adjust logic in source sad for screen content. · ac211fe2
      Jerome Jiang authored
      Change-Id: I917d106f4c95ea44e413e23881f6303982e1a6a3
      ac211fe2
    • 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
  19. 22 Jul, 2017 1 commit
  20. 17 Jul, 2017 2 commits
    • Marco's avatar
      vp9: Fix to setting content_state for real-time mode. · ad563713
      Marco authored
      When content_state_sb is set to LowVarHighSumdiff, don't reset
      it to VeryHighSad. Visually better on clips with strong lighting changes.
      
      Small/negligible change in RTC metrics and speed.
      
      Change-Id: I20c383e3c4cf8d1149de5f9260449c0b7cf7c6aa
      ad563713
    • Marco's avatar
      vp9: Reuse motion from choose_partitioning in NEWMV search. · 0c9e2f4c
      Marco authored
      When int_pro_motion_estimation is done for superblock in
      choose_partitioning, use it to avoid the full_pixel_search
      for NEWMV mode, if bsize is >= 32X32.
      
      For speed > 7.
      Small/neutral change on RTC metrics.
      ~1-2% speedup on arm on high motion clip.
      
      Change-Id: I3cfe6833ff4bf75d4afa83eaf058ad45729de85b
      0c9e2f4c
  21. 14 Jul, 2017 1 commit
  22. 11 Jul, 2017 1 commit
  23. 07 Jul, 2017 1 commit
  24. 06 Jul, 2017 1 commit
    • Marco's avatar
      vp9: Nonrd mode: use content_state_sb for high motion. · 8c3f18ef
      Marco authored
      In the content_state for a superblock is set to HighSad,
      use that to bias some decisions in variance partition and
      nonrd pickmde: use int_pro_motion for sad computation in
      choose_partitioning, and set large_block in pickmode based
      on the content_state_sb.
      
      Only affects speed >= 7.
      
      Immprovement for high motion content.
      Small gain (~1%) in RTC metrics.
      Speedup of ~5 for high motion clip on android (speed 8, 1 thread).
      
      Change-Id: I5774c4854f012b89c8e969f6129b60988c2ce11c
      8c3f18ef
  25. 29 Jun, 2017 1 commit
  26. 27 Jun, 2017 1 commit
  27. 22 Jun, 2017 3 commits
  28. 18 May, 2017 2 commits
  29. 11 May, 2017 1 commit
  30. 25 Apr, 2017 2 commits
    • Jerome Jiang's avatar
      vp9: speed >= 8: Skip uv variance in model_rd_sb_y_large · 69b0242e
      Jerome Jiang authored
      For speed >= 8 and color_sensitivity not set, skip the transform
      skipping test in UV planes.
      Add a new condition to check noise level to skip chroma check
      for speed >= 8 if y_sad is high.
      
      1~2% speedup on ARM for speed 8.
      
      Borg tests show neutral results in both rtc and rtc_derf.
      
      Change-Id: Idecd3ff6e28c97757a43bb6f3a7082c85f72109c
      69b0242e
    • Marco's avatar
      vp9; Reduce artifact in non-rd pickmode for lighting changes. · 92ec0674
      Marco authored
      Add a low-variance high-sumdiff to the superblock content state
      and use it to limit the mv and bias some decisions in non-rd pickmode.
      Only affects speed >= 6.
      
      Reduces artifact for lighting changes.
      Small/no difference in metrics on RTC set.
      
      Change-Id: Ic84b2379fe0ae3fa71ae826ee6bae3eaf551a25b
      92ec0674
  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
      10a497bd
  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
      bca45646