1. 29 Nov, 2017 1 commit
  2. 17 Nov, 2017 1 commit
    • Marco's avatar
      vp9-svc: Enbale scale partition reference frames. · 559166ac
      Marco authored
      For reference frames: enable scale partition for
      superblocks with low source sad or if bsize on lower-resoln
      is at least 32x32.
      
      Keep feature disabled for base temporal layer.
      
      Small regression in avgPNSR/SSIM metrics, ~0.5-1%.
      Speedup ~2-3% on mac for SVC (3 spatial/3 temporal layers) at speed 7.
      
      Change-Id: I5987eb7763845b680059128b538bb5188be0cca5
      559166ac
  3. 16 Nov, 2017 1 commit
    • Jerome Jiang's avatar
      vp9 svc: Rework/fix scale partitioning on boundary. · 1aea1675
      Jerome Jiang authored
      Enable partition copy on boundary and scale blocks along the boundary.
      Rename copy_partition_svc to scale_partition_svc.
      
      Do not copy if the block crosses the boundary.
      
      Change-Id: I37a04d48f11b15c4ea67facd7631193ec2f62150
      1aea1675
  4. 15 Nov, 2017 1 commit
    • Marco's avatar
      vp9-svc: Fix flag for usage of reuse-lowres partition · b3c93d60
      Marco authored
      Fix/cleaup the conditioning for usage of the reuse-lowres
      partition feature.
      
      Replace the non-reference condition with the top temporal
      layer, and put this condition in the speed feature.
      
      This prevents doing update_partition_svc() on every
      VGA frame, instead it will now only do update for VGA in
      the top temporal layer frames.
      
      Also this makes it easier to test/enable this feature
      for lower layer temporal frames.
      
      Change-Id: Ia897afbc6fe5c84c5693e310bcaa6a87ce017be5
      b3c93d60
  5. 13 Nov, 2017 1 commit
    • paulwilkins's avatar
      New content type to improve grain retention. · a73cee28
      paulwilkins authored
      For new VP9 only content type adjust  the rate distortion and ARF
      filter based on the relative spatial variance of the source and
      reconstruction.
      
      In regards to the RD loop the method favors modes where the
      reconstruction variance is similar to the source variance. However it
      is currently only applied to regions where the source variance is quite
      low.
      
      For very low variance blocks it applies a further bias against intra
      coding and large prediction block sizes (the later in particular limit
      the usefulness of the loop filter).
      
      The final part of this change is to lower the strength of the ARF
      filter for blocks where the source has very low spatial variance, to
      encourage some low amplitude texture or noise to pass through
      the filter.
      
      This change improves the retention of film grain and fine noise /
      texture in spatially flat regions, but as expected causes a significant
      drop in PSNR on many clips. This is to be expected because similar
      but misaligned noise or texture will give a lower PSNR than a flat
      noise free reconstruction. However, it is worth noting that most clips
      show a strong gain in FAST SSIM.
      
      The features are enabled on the vpxenc command line by setting
      --tune-content=film.
      
      VPX_ENCODER_ABI_VERSION bumped for this change and cvbr.
      
      Change-Id: I26a4e4edfa3dc5cacead82fa701fe7a9118ccd0a
      a73cee28
  6. 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
  7. 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
  8. 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
  9. 01 Nov, 2017 1 commit
  10. 31 Oct, 2017 1 commit
  11. 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
  12. 12 Oct, 2017 1 commit
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 31 Jul, 2017 2 commits
  23. 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
  24. 22 Jul, 2017 1 commit
  25. 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
  26. 14 Jul, 2017 1 commit
  27. 11 Jul, 2017 1 commit
  28. 07 Jul, 2017 1 commit
  29. 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
  30. 29 Jun, 2017 1 commit
  31. 27 Jun, 2017 1 commit
  32. 22 Jun, 2017 3 commits
  33. 18 May, 2017 2 commits