1. 20 Jan, 2016 2 commits
  2. 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
  3. 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
  4. 16 Dec, 2015 2 commits
  5. 15 Dec, 2015 1 commit
  6. 14 Dec, 2015 3 commits
  7. 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
  8. 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
  9. 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
  10. 25 Nov, 2015 2 commits
  11. 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
  12. 12 Nov, 2015 1 commit
  13. 10 Nov, 2015 1 commit
  14. 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
  15. 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
  16. 16 Oct, 2015 1 commit
  17. 15 Oct, 2015 1 commit
  18. 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
  19. 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
  20. 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
  21. 31 Aug, 2015 1 commit
  22. 27 Aug, 2015 1 commit
  23. 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
  24. 12 Aug, 2015 2 commits
  25. 10 Aug, 2015 1 commit
  26. 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
  27. 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
  28. 28 Jul, 2015 1 commit
  29. 27 Jul, 2015 1 commit
    • Yunqing Wang's avatar
      Remove tx_select_threshes · b2446fb6
      Yunqing Wang authored
      Removed unused tx_select_threshes and tx_select_diff.
      
      Change-Id: I5e9e7ad170056efe14b5f071e94d0c5a36e4a34c
      b2446fb6
  30. 09 Jul, 2015 1 commit
  31. 08 Jul, 2015 2 commits
    • paulwilkins's avatar
      Changes to use of rectangular partitions. · 8dd466ed
      paulwilkins authored
      Changes to allow more use of rectangular partitions at
      speeds 1 and 2 for content classed by the first pass as
      animation and for blocks near the active image edge.
      
      This has quite a big impact in quality for the animated
      test sequence but also hurts encode speed for speed 2.
      
      For other content types the impact on both speed and
      quality is small.
      
      Added some plumbing for detection of internal vertical
      image edges.
      
      Change-Id: I3fc48de2349f8cb87946caaf0b06dbb0ea261a9a
      8dd466ed
    • paulwilkins's avatar
      Change speed and rd features for formatting bars. · a126b6ce
      paulwilkins authored
      Change speed features / behavior for split mode when there
      is an internal active edge (e.g. formatting bars).
      
      Remove some threshold constraints in rd code near the active
      edge of the image.
      
      Add some plumbing for left and right active edge detection.
      
      Patch set 5. Limit rd pass through for sub 8x8 to internal active edges.
      This takes away any speed penalty for most clips but keeps the enhanced
      edge coding for the more critical case of internal image edges
      
      Change-Id: If644e4762874de4fe9cbb0a66211953fa74c13a5
      a126b6ce