1. 29 Jan, 2016 1 commit
  2. 28 Jan, 2016 1 commit
    • Marco's avatar
      vp9 non-rd mode: Modification for detected skin areas. · b39a599c
      Marco authored
      If a superblock contains alot of "skin" then force split
      of 64x64 partition, and make some adjustments in mode selection.
      
      This helps to reduce artifacts on moving face/skin areas at low bitrates.
      
      Little/no change in metrics: avgPSNR/SSIM down by ~0.12%.
      Small encoding time increase < 1%.
      
      Change-Id: Ic57f52148c3716f391419fab0530d916e4c1d186
      b39a599c
  3. 22 Jan, 2016 1 commit
    • Yaowu Xu's avatar
      Fix a minor typo · 2ab58d81
      Yaowu Xu authored
      a wrong variable.
      
      Change-Id: I9fa02621dbdc508a12ba1ef9c8f98dbeab68e958
      2ab58d81
  4. 21 Jan, 2016 1 commit
  5. 20 Jan, 2016 2 commits
  6. 14 Jan, 2016 1 commit
    • Debargha Mukherjee's avatar
      Adding an aq mode for 360 videos · 02345be9
      Debargha Mukherjee authored
      Different quality levels are used for different regions in
      the frame depending on how far they are vertically from the
      center. Specifically, three segments are used based on the
      mi_row index with respect number to the number of mi_rows in
      the frame.
      
      Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
      02345be9
  7. 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
      b121a3e7
  8. 16 Dec, 2015 2 commits
  9. 15 Dec, 2015 1 commit
  10. 14 Dec, 2015 3 commits
  11. 12 Dec, 2015 1 commit
    • Marco's avatar
      Non-rd variance partition: Adjustments to reduce dragging artifact. · d4440614
      Marco authored
      For non-rd variannce partition, speed >= 5:
      Adjustments to reduce dragging artifcat of background area near
      slow moving boundary.
      
      -Decrease base threshold under low source noise conditions.
      -Add condition to split 64x64/32x32 based on average variances
      of lower level blocks.
      
      PSNR/SSIM metrics go down ~0.7/0.9% on average on RTC set.
      Visually helps to reduce dragging artifact on some rtc clips.
      
      Change-Id: If1f0a1aef1ddacd67464520ca070e167abf82fac
      d4440614
  12. 04 Dec, 2015 2 commits
    • Marco's avatar
      Adjust variance threshold based on source noise level. · d5b3f29f
      Marco authored
      For non-rd variance partition: Adjust variance threhsold based
      on noise level estimate. This change allows the adjustment to be
      updated more frequently.
      
      Change-Id: Ie2abf63bf3f1ee54d0bc4ff497298801fdb92b0d
      d5b3f29f
    • Marco's avatar
      Non-rd partition: Use force split on 16x16 for low resolutions. · 6490fc71
      Marco authored
      For low resolutions, whem 4x4downsample is used for variance,
      use the same force split (that is used for 8x8downsample) for 16x16 blocks.
      
      No change in metrics. Small improvement visually.
      
      Change-Id: I915b9895902d0b9a41e75d37fee1bf3714d2366d
      6490fc71
  13. 01 Dec, 2015 1 commit
    • Marco's avatar
      Condition use of minmax in variance partition on speed setting. · f78b7dae
      Marco authored
      For non-rd variance partition: only allow minmax computation
      (which currently has no arm-neon optimization) for speeds < 8.
      
      Performance loss is small: On RTC set with speed 8, few clips lose ~2/3%,
      average loss is < 1%.
      
      Change-Id: Ia9414f4d0b77dc83c3e73ca8de5d903f64b425ce
      f78b7dae
  14. 25 Nov, 2015 2 commits
  15. 13 Nov, 2015 2 commits
    • paulwilkins's avatar
      Changes to exhaustive motion search. · 0149fb3d
      paulwilkins authored
      This change alters the nature and use of exhaustive motion search.
      
      Firstly any exhaustive search is preceded by a normal step search.
      The exhaustive search is only carried out if the distortion resulting
      from the step search is above a threshold value.
      
      Secondly the simple +/- 64 exhaustive search is replaced by a
      multi stage mesh based search where each stage has a range
      and step/interval size. Subsequent stages use the best position from
      the previous stage as the center of the search but use a reduced range
      and interval size.
      
      For example:
        stage 1: Range +/- 64 interval 4
        stage 2: Range +/- 32 interval 2
        stage 3: Range +/- 15 interval 1
      
      This process, especially when it follows on from a normal step
      search, has shown itself to be almost as effective as a full range
      exhaustive search with step 1 but greatly lowers the computational
      complexity such that it can be used in some cases for speeds 0-2.
      
      This patch also removes a double exhaustive search for sub 8x8 blocks
      which also contained  a bug (the two searches used different distortion
      metrics).
      
      For best quality in my test animation sequence this patch has almost
      no impact on quality but improves encode speed by more than 5X.
      
      Restricted use in good quality speeds 0-2 yields significant quality gains
      on the animation test of 0.2 - 0.5 db with only a small impact on encode
      speed. On most clips though the quality gain and speed impact are small.
      
      Change-Id: Id22967a840e996e1db273f6ac4ff03f4f52d49aa
      0149fb3d
    • Marco's avatar
      Adjust variance threshold for 16x16 split at low resolutions. · 419da5c7
      Marco authored
      Change-Id: I635e37f81237e9703d7d9a11ed76a043f4ec6eb0
      419da5c7
  16. 12 Nov, 2015 1 commit
  17. 10 Nov, 2015 1 commit
  18. 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
      c7da053d
  19. 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
      8a2fc545
  20. 16 Oct, 2015 1 commit
  21. 15 Oct, 2015 1 commit
  22. 13 Oct, 2015 1 commit
    • paulwilkins's avatar
      Changes to partition breakout rules. · cdc35998
      paulwilkins authored
      Changes to the breakout behavior for partition selection.
      The biggest impact is on speed 0 where encode speed in
      some cases more than doubles with typically less than 1%
      impact on quality.
      
      Speed 0 encode speed impact examples
      Animation test clip: +128%
      Park Joy:  +59%
      Old town Cross: + 109%
      
      Change-Id: I222720657e56cede1b2a5539096f788ffb2df3a1
      cdc35998
  23. 02 Oct, 2015 1 commit
    • Marco's avatar
      Fix to denoiser with dynamic resize. · 86ede509
      Marco authored
      Temporary fix to denoiser when dynamic resizing is on.
       -Reallocate denoiser buffers on resized frame.
       -Force golden update on resized frame.
       -Don't denoise resized frame, and copy source into denoised buffers.
      
      Change-Id: Ife7638173b76a1c49eac7da4f2a30c9c1f4e2000
      86ede509
  24. 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
      3f7656cc
  25. 31 Aug, 2015 1 commit
  26. 27 Aug, 2015 1 commit
  27. 17 Aug, 2015 1 commit
    • Marco's avatar
      Fix to non-rd variance partition selection. · e1880044
      Marco authored
      Only test for using golden as reference for variance partition
      selection if it is used as a reference for that frame.
      
      For temporal layers, golden may not be a reference on a given frame,
      even though it was for some previous frame. If it is not a reference
      for current frame, don't check/use it for partition selection.
      
      Change-Id: I6b0f2bd36aebbb5903077c9a0a66d80f1de9a7b1
      e1880044
  28. 12 Aug, 2015 2 commits
  29. 10 Aug, 2015 1 commit
  30. 05 Aug, 2015 1 commit
    • Marco's avatar
      Bugfix for svc. · f6255dbb
      Marco authored
      Condition usage of rc.frames_since_golden to non-svc mode.
      
      rc.frames_since_golden, which is used in non-svc mode to add second reference,
      was causing, under certain condiiton, the turning off of golden reference
      for svc case.
      
      Change-Id: Icec644d235d0471e56d8ff73d6c37278bd6ecd3b
      f6255dbb
  31. 31 Jul, 2015 1 commit
    • Yunqing Wang's avatar
      Remove tx cache and speed up tx size selection · 3b2e73b9
      Yunqing Wang authored
      1. The RD scores obtained during the tx size selection were stored in the
      tx cache, and used to help make the tx decision for the following frames.
      This wasn't used anymore in VP9 encoder. Recovered the related decision
      making code from 1.5+ years ago, and borg tests didn't show any quality
      gain. This patch removed it to lower the complexity.
      
      2. An optimization was done after the above refactoring. If the tx_mode
      is not TX_MODE_SELECT, we only need to test the chosen tx size instead
      of all posible tx sizes. This gave a 1.5% average speed gain at speed 2,
      and a 1% average speed gain at speed 3.
      
      Change-Id: Id8cd650e066a8cef33829d8c15388a8138adc78c
      3b2e73b9
  32. 28 Jul, 2015 1 commit