1. 21 Jun, 2017 1 commit
    • Marco's avatar
      vp9: Adjustments for aq-mode and pickmode for speed >= 8. · 8cf6f78f
      Marco authored
      Adjust the threshold for turning off cyclic refresh for high motion,
      and avoid testing golden in nonrd pickmode for speed >= 8 if
      golden refresh was long ago.
      No change/neutral on RTC metrics.
      Change-Id: I40959b8d9637f3553e7458bbabd8c6024c2c09c0
  2. 22 May, 2017 1 commit
    • Marco's avatar
      vp9: Adjustments to cyclic refresh for high motion. · 2adc0443
      Marco authored
      For aq-mode=3: refactor the condition for turning off
      the refresh. Add some adjustments for high motion content.
      No/little change in RTC metrics, only affects high motion case.
      Change-Id: I7da8eabfb0e61db014be4562806f72ee5ef4a43b
  3. 07 Apr, 2017 1 commit
  4. 04 Apr, 2017 1 commit
    • Marco's avatar
      vp9: Adjust condition of golden update with cyclic refresh. · 8097b499
      Marco authored
      Base the low_content_frame metric on the motion vectors,
      and adjust the logic for preventing golden update.
      Small change in behavior: small positive gain (~0.2-1%) on clips
      with high activity.
      Change-Id: I0b861c8e9666cd82b45cde5ee57ee8a1e5ab453c
  5. 03 Apr, 2017 1 commit
    • Marco's avatar
      vp9: 1 pass CBR: cleanup to cyclic refresh. · 6b3f4bc7
      Marco authored
      Code cleanup: merged two functions that were doing postencode
      update for cylic refresh, remove some unused code and fix comments.
      No change in behavior.
      Change-Id: I9be0d7e346d34dec29bf4e5bb380a7bf81c8480a
  6. 22 Feb, 2017 1 commit
  7. 15 Feb, 2017 2 commits
    • Marco's avatar
      vp9: Some code cleanup for aq-mode = 3. · 158b3009
      Marco authored
      The weight segment needs to only be computed once per frame,
      so remove it from the funciton vp9_cyclic_refresh_rc_bits_per_mb(),
      which is called within a loop inside vp9_rc_regulate_q.
      Change-Id: Ia0e18b89abb97e42c466d4dbc47700d7f76555db
    • Marco's avatar
      Vp9: Speed 8 aq-mode=3: Reduce computation in estimating bits per mb. · 716c1d5f
      Marco authored
      vp9_compute_qdelta_by_rate has almost 2% overhead in profiling on Nexus 6.
      Reduce the calling of that function in speed 8 by estimating the delta-q.
      Both rtc and rtc_derf show little/no change in avg psnr/ssim.
      Encoding speed is 2~3% faster on Nexus 6.
      Change-Id: If25933715783f31104a18a5092ea347b1221b5f5
  8. 24 Jan, 2017 1 commit
    • Marco's avatar
      vp9: Adjust some parameters in aq-mode=3 mode. · 8d0c8c5e
      Marco authored
      Increase the qp-delta, mainly for low resolutions,
      excluding case of very low bitrates.
      avgPSNR/SSSIM gain of ~3-5% on rtc_derf set.
      Small change on rtc set.
      Change-Id: Ice03d04bd0340404d1957666ef154fd64fed0606
  9. 05 Dec, 2016 1 commit
  10. 23 Nov, 2016 1 commit
    • Marco's avatar
      vp9: Adjust cyclic refresh parameters for low bitrates. · d793950e
      Marco authored
      Increase the motion threshold and qp-delta for segment#2 boost.
      This can increase the frame-drop at low bitrates, but generally
      better spatial quality.
      Only affects real-time mode with aq-mode=3, at very low bitrates.
      Change-Id: I5ccb784667f70d0c27d369806b93b1f93d5605d1
  11. 08 Nov, 2016 1 commit
    • Marco's avatar
      vp9: Adjust thresholds for limiting cyclic refresh for noisy content. · 18794d8d
      Marco authored
      For noisy content, be more aggressive in skippping some blocks for
      delta-qp to reduce noise pulsing artifact. Also treat frame boundary
      case when dimension is not multiple of superblock size/64.
      Only affects non-screen content case, and when source noise
      is measured to be high (at least level kMedium).
      Change-Id: Ib13a2a20ed1ce37ff3c44d95c3ef2635fd695222
  12. 08 Aug, 2016 1 commit
  13. 02 Aug, 2016 1 commit
  14. 05 May, 2016 1 commit
    • Marco's avatar
      vp9: Reduce qp threshold for limiting cyclic refresh on steady blocks. · f4b5076a
      Marco authored
      Makes the delta-qp stop little earlier on areas that have been refreshed enough.
      This helps to reduce some pulsing artifact on noisy flat areas observed in some
      noisy vc-clips.
      Threshold changes only take effect for sources where noise level is estimated to
      be >= medium level.
      Only affects 1 pass CBR, non-screen content case.
      Change-Id: Iacf557f6aa8abbcd6782c02ff2e6c14891960850
  15. 22 Apr, 2016 1 commit
  16. 17 Mar, 2016 2 commits
    • Marco's avatar
      vp9: Improvement to skin detection. · ce39add4
      Marco authored
      Add consec_zeromv to skin detection.
      Reduces false detection in steady background areas.
      Change-Id: Ic31c831537d29f082f58477f82ed78f313d7dd30
    • Marco's avatar
      vp9: Fix the threshold for gf update in cyclic refresh. · 32c38a20
      Marco authored
      Fix the threshold for forcing refresh of golden frame based
      on high motion. The current comparison was incorrect and
      prevented this (force update of gf on high motion) from being used.
      For now keep this logic under a flag (and off for now) so as to
      not change behavior, until further testing.
      Change-Id: Ib5f0082159a428b0603b9534e4bcb6f83e4ccb25
  17. 23 Feb, 2016 1 commit
  18. 17 Feb, 2016 1 commit
  19. 06 Feb, 2016 1 commit
  20. 05 Feb, 2016 2 commits
  21. 01 Feb, 2016 1 commit
  22. 27 Jan, 2016 1 commit
    • Marco's avatar
      vp9-aqmode=3: Limit on period for golden update. · fab630fa
      Marco authored
      For aqmode=3, golden period update is set based on period of cyclic refresh.
      Put a limit on max golden period update, for now set to 40.
      And fix comment.
      Change-Id: Icb61dd87c796cce2a5f5f7331c6a129540994696
  23. 21 Jan, 2016 2 commits
  24. 20 Jan, 2016 1 commit
  25. 05 Jan, 2016 1 commit
    • Marco's avatar
      vp9-skin detection: Refactoring. · a8b7c6aa
      Marco authored
      Add function to compute skin map for a given block, as its
      used in several places (cyclic refresh, noise estimation, and denoising).
      Change-Id: Ied622908df43b6927f7fafc6c019d1867f2a24eb
  26. 22 Dec, 2015 1 commit
    • Marco's avatar
      aq-mode=3: Don't reset segment if block is determined to be skin. · b121a3e7
      Marco authored
      For coding block sizes <=16X16, if the block is determined to be skin,
      then always allow for that block to be candidate for refresh. So if that
      block happens to be on the boost segment(s), segment won't get reset to 0
      and delta-q will be applied.
      PSNR/SSIM metrics neutral (little/no change) on RTC clips.
      Speed increase small/negligible (< 1%).
      Some visual improvement on faces in a few RTC clips.
      Change-Id: I6bf0fce6f39d820b491ce05d7c017ad168fce7d6
  27. 12 Nov, 2015 1 commit
  28. 02 Nov, 2015 1 commit
    • Marco's avatar
      Move noise level estimate outside denoiser. · c7da053d
      Marco authored
      Source noise level estimate is also useful for
      setting variance encoder parameters (variance thresholds,
      qp-delta, mode selection, etc), so allow it to be used also
      if denoising is not on.
      Change-Id: I4fe23d47607b4e17a35287057f489c29114beed1
  29. 27 Oct, 2015 1 commit
    • Marco's avatar
      Adjustments to vp9-denoising. · 8a2fc545
      Marco authored
      Adjust variance threshold, delta-qp, and intra penalty cost,
      based on estimated noise level in source.
      Replace denoising_on with a level value=L/M/H.
      Change-Id: I0c017dae75a5d897367d2c42dec26f2f37e447c1
  30. 16 Oct, 2015 1 commit
    • Marco's avatar
      Adjustment on limiting cyclic refresh on steady blocks. · b44c5cf6
      Marco authored
      Adjust the qp threshold and consec_zeromv threshold for
      limiting cyclic refresh. Also increase the refresh period
      when the limit amount is significant, and some code-cleanup.
      Small gain in PSNR/SSIM metrics: ~0.25/0.3 gain on RTC set, speed 7.
      Change only affects non-screen content.
      Change-Id: I1ced87a89a132684c071e722616e445b2d18236a
  31. 15 Oct, 2015 1 commit
  32. 07 Oct, 2015 1 commit
    • Marco's avatar
      Move setting of refresh threshold outside loop. · bc137ff6
      Marco authored
      Small code cleanup. consec_zeromv refresh threshold
      does not need to be computed for every super-block.
      No change in behavior.
      Change-Id: I8c4b1b28072f42b01d917fff6d1f62722f1e1554
  33. 25 Sep, 2015 1 commit
    • Marco's avatar
      Limit cyclic refresh on steady background blocks. · 3f7656cc
      Marco authored
      Use the existing QP condition on limiting cyclic refresh, and add
      addiitonal condition that block has been encoded with zero/small motion
      x frames in row (where x is at least several times the refresh period).
      Additional condition only affect non-screen content mode.
      This helps to improve visual stability for noisy input, where on steady
      background areas the application of delta_qp may lead to encoding the noise.
      Also added a change to use the true skip (after encoding) to update the
      last QP.
      Change-Id: I234a1128d017d284cf767fdb58ef6c59d809f679
  34. 23 Sep, 2015 1 commit
  35. 15 Sep, 2015 1 commit
    • Marco's avatar
      Add cyclic refresh parameters to svc-layer context. · eb53c69e
      Marco authored
      For 1 pass CBR spatial-SVC:
      Add cyclic refresh parameters to the svc-layer context.
      This allows cyclic refresh (aq-mode=3) to be applied to
      the whole super-frame (all spatial layers).
      This gives a performance improvement for spatial layer encoding.
      Addd the aq_mode mode on/off setting as command line option.
      Change-Id: Ib9c3b5ba3cb7851bfb8c37d4f911664bef38e165
  36. 14 Sep, 2015 1 commit