1. 18 Nov, 2014 1 commit
    • Yaowu Xu's avatar
      Prevent severe rate control errors in CBR mode · ffa06b37
      Yaowu Xu authored
      In rare cases, the interaction between rate correction factor and Q
      choices may cause severe oscillating frame sizes that are way off
      target bandwidth. This commit adds tracking of rate control results
      for last two frames, and use the information to prevent oscillating
      Q choices.
      
      Change-Id: I9a6d125a15652b9bcac0e1fec6d7a1aedc4ed97e
      ffa06b37
  2. 13 Nov, 2014 1 commit
    • Adrian Grange's avatar
      Prepare for dynamic frame resizing in the recode loop · 0d085ebc
      Adrian Grange authored
      Prepare for the introduction of frame-size change
      logic into the recode loop.
      
      Separated the speed dependent features into
      separate static and dynamic parts, the latter being
      those features that are dependent on the frame size.
      
      Change-Id: Ia693e28c5cf069a1a7bf12e49ecf83e440e1d313
      0d085ebc
  3. 13 Oct, 2014 1 commit
    • Paul Wilkins's avatar
      Add adaptation option for VBR. · f7f0eaa5
      Paul Wilkins authored
      Allow min and maxQ to creep when the undershoot
      or overshoot exceeds thresholds controlled by the
      command line under_shoot_pct and over_shoot_pct
      values.
      
      Default is 100%,100% which ~disables adaptation.
      
      Derf results for example undershoot% / overshoot%:-
      
      Head:- Mean abs (%rate error) = 14.4%
      
      This check in:-
      25%/25% - Mean abs (%rate error) = 6.7%
                        PSNR hit -1% SSIM -0.1%
      
      5% / 5%  - Mean abs (%rate error) = 2.2%
                       PSNR hit -3.3% SSIM - 1.1%
      
      Most of the remaining error and most of the quality hit is
      at extreme data rates. The adaptation code still has an
      exception for material that is in effect static so that we
      don't over adjust and over spend on YT slide show type
      content.
      
      (Rebase of If25a2449a415449c150acff23df713e9598d64c9
      to resolve a auto-merge error)
      
      Change-Id: Iec4e1613ef0d067454751d8220edb7058dfbd816
      f7f0eaa5
  4. 10 Oct, 2014 2 commits
    • Alex Converse's avatar
      Revert "Add adaptation option for VBR." · a90255c3
      Alex Converse authored
      This reverts commit 869d4ca5.
      
      This breaks the build via conflict with
      e18edd5e.
      
      Change-Id: If544b99e367a449452834eb8cce600f58c34ec0d
      a90255c3
    • Paul Wilkins's avatar
      Add adaptation option for VBR. · 869d4ca5
      Paul Wilkins authored
      Allow min and maxQ to creep when the undershoot
      or overshoot exceeds thresholds controlled by the
      command line under_shoot_pct and over_shoot_pct
      values.
      
      Default is 100%,100% which ~disables adaptation.
      
      Derf results for example undershoot% / overshoot%:-
      
      Head:- Mean abs (%rate error) = 14.4%
      
      This check in:-
      25%/25% - Mean abs (%rate error) = 6.7%
                        PSNR hit -1% SSIM -0.1%
      
      5% / 5%  - Mean abs (%rate error) = 2.2%
                       PSNR hit -3.3% SSIM - 1.1%
      
      Most of the remaining error and most of the quality hit is
      at extreme data rates. The adaptation code still has an
      exception for material that is in effect static so that we
      don't over adjust and over spend on YT slide show type
      content.
      
      Change-Id: If25a2449a415449c150acff23df713e9598d64c9
      869d4ca5
  5. 18 Sep, 2014 1 commit
    • Paul Wilkins's avatar
      Substantial reworking of code for arf and kf groups. · c389b37b
      Paul Wilkins authored
      Substantial restructuring of the way we estimate
      the rate of decay in prediction quality and determine
      the arf interval and amount of boost used.
      
      Also other changes to support moving to a lower first pass
      Q which exposes some new features and allows us to better
      distinguish genuinely static blocks from low motion or noisy
      blocks.
      
      Net gains now visible on all the test sets with std-hd PSNR up
      1.87%. There are still some bad outlier cases but most of these
      are low motion or slide show type content where the metrics
      are already high at any given rate. The best + case is up by
      more than 10%.
      
      Change-Id: I18e25170053bdf3188f493ff8062f48a74515815
      c389b37b
  6. 16 Sep, 2014 1 commit
  7. 14 Jul, 2014 1 commit
    • Minghai Shang's avatar
      [spatial svc]Implement alt reference frames · e899859c
      Minghai Shang authored
      All changes are for spatial svc only.
      1. Enable encoding hidden frames in each layer and use alt reference idex to reference the hidden frame in each layer
      2. Use golden reference idx for spatial reference
      3. For those layers that don't have hidden frames (caused by lack of frame buffers), reference a hidden frame in lower layers
      4. Add "auto-alt-refs" in svc options
      Change-Id: Idf27d1fd2fb5f3ffd9e86d2119235e3dad36c178
      e899859c
  8. 24 Jun, 2014 1 commit
    • Paul Wilkins's avatar
      Experiment for mid group second arf. · 2e430cba
      Paul Wilkins authored
      This patch implements a mechanism for inserting a second
      arf at the mid position of arf groups.
      
      It is currently disabled by default using the flag multi_arf_enabled.
      
      Results are currently down somewhat in initial testing if
      multi-arf is enabled. Most of the loss is attributable to the
      fact that code to preserve the previous golden frame
      (in the arf buffer) in cases where we are coding an overlay
      frame, is currently disabled in the multi-arf case.
      
      Change-Id: I1d777318ca09f147db2e8c86d7315fe86168c865
      2e430cba
  9. 04 Jun, 2014 1 commit
  10. 03 Jun, 2014 1 commit
  11. 28 May, 2014 2 commits
  12. 30 Apr, 2014 1 commit
  13. 18 Apr, 2014 1 commit
  14. 16 Apr, 2014 2 commits
    • Paul Wilkins's avatar
      Add experimental VBR adaptation method. · 085f76e5
      Paul Wilkins authored
      Add code to monitor over and under spend and
      apply limited correction to the data rate of subsequent
      frames. To prevent the problem of starvation or overspend
      on individual frames (especially near the end of a clip) the
      maximum adjustment on a single frame is limited to a %
      of its un-modified allocation.
      
      Change-Id: I6e1ca035ab8afb0c98eac4392115d0752d9cbd7f
      085f76e5
    • Dmitry Kovalev's avatar
      Renaming av_per_frame_bandwidth to avg_frame_bandwidth. · 4e9529cb
      Dmitry Kovalev authored
      Just to be consistent with min_frame_bandwidth & max_frame_bandwidth names.
      
      Change-Id: I36702c708cba9ad1a5c36393f37758a2edeadb90
      4e9529cb
  15. 11 Apr, 2014 1 commit
  16. 10 Apr, 2014 1 commit
  17. 07 Apr, 2014 4 commits
  18. 02 Apr, 2014 1 commit
    • Deb Mukherjee's avatar
      Rate ctrl changes to track target bitrates closer · 97f4fb7b
      Deb Mukherjee authored
      Turns off the DISABLE_RC_LONG_TERM_MEM macro and makes other changes
      in the way the bits are updated, to make 2-pass rate control track
      target bitrates closer.
      
      Change-Id: I5f3be4b11c2908e6a9a9a1dd4fcf4e65531c44d8
      97f4fb7b
  19. 24 Mar, 2014 2 commits
  20. 13 Mar, 2014 1 commit
  21. 11 Mar, 2014 1 commit
  22. 14 Feb, 2014 2 commits
  23. 12 Feb, 2014 1 commit
    • Deb Mukherjee's avatar
      Removes active_worst_quality feedback · d23e3392
      Deb Mukherjee authored
      Removes certain cases of feedback of active_worst_quality,
      and removes it from the RATE_CONTROL structure. Now active
      worst quality is expected to be computed locally in the
      q picking function during the encode.
      Making temporal filter strength depend on avg_frame_qindex
      rather than on active_worst_quality actually improves
      performance esp. for yt.
      derf: +0.038%
      yt: +0.359%
      
      Change-Id: I1fe5a343034b55af9322289165321f00ac0827b1
      d23e3392
  24. 05 Feb, 2014 1 commit
    • Deb Mukherjee's avatar
      One-pass rate control cleanups/fixes/refactoring · 40e63d4b
      Deb Mukherjee authored
      Inlcudes a number cleanups:
      1. Moves the one-pass pre-encode parameter setting functions
      to vp9_ratectrl.c
      2. Deprecates per_frame_bandwidth in RATE_CONTROL structure
      3. Removes target_bandwidth in cpi structure since it is not used.
      4. Various renaming of functions
      
      There is no bit-stream change in 2-pass, one-pass cbr and one-pass
      vbr modes.
      
      Change-Id: Ifd9916bf4d485b7d04c5f52044ffe6703254ccbd
      40e63d4b
  25. 28 Jan, 2014 1 commit
  26. 24 Jan, 2014 1 commit
  27. 07 Jan, 2014 1 commit
    • Deb Mukherjee's avatar
      Further rate control cleanups · 730ade41
      Deb Mukherjee authored
      Some cleanups on frames_to_key, frames_since_key.
      Also removes the unused fixed_q parameters in vp9.
      
      Change-Id: If8743a32c71de30a8d17136477b53d607a7acda8
      730ade41
  28. 18 Dec, 2013 1 commit
  29. 17 Dec, 2013 1 commit
    • Deb Mukherjee's avatar
      Rate control changes on active_worst_quality · 1e59cbf2
      Deb Mukherjee authored
      Various cleanups and refactoring.
      Removes feedback of active worst qaulity and uses last_q
      instead to make the interface cleaner. Active worst quality
      is now decided only once for a frame being coded in the
      beginning based on last_q and other stats. Also, adds other
      cleaups on last_q to store also the last_q for altref frames,
      and reduces the altref interval a little.
      
      The output does change a little.
      derfraw300: +0.224% (global psnr)
      stdhdraw250: +0.442% (global psnr)
      
      Change-Id: Ie634cdc032697044c472dd0fe79c109b3e7f9767
      1e59cbf2
  30. 06 Dec, 2013 1 commit
    • Deb Mukherjee's avatar
      Further rate control cleanups · 52d27367
      Deb Mukherjee authored
      Includes various cleanups.
      Streamlines the interfaces so that all rate control state
      updates happen in the vp9_rc_postencode_update() function.
      This will hopefully make it easier to support multiple
      rate control schemes.
      Removes some unnecessary code, which in rare cases can casue
      a difference in the constrained quality mode output, but
      other than that there is no bitstream change yet.
      
      Change-Id: I3198cc37249932feea1e3691c0b2650e7b0c22fc
      52d27367
  31. 27 Nov, 2013 1 commit
    • Deb Mukherjee's avatar
      Continued rate control clean-ups · d17ac4fe
      Deb Mukherjee authored
      Moves all post encode rate control updates to a separate function
      plus other cleanups.
      
      Change-Id: I70e8eccf666c88d8b649b969997fd84d27e4baaa
      d17ac4fe
  32. 26 Nov, 2013 1 commit
    • Deb Mukherjee's avatar
      Some cleanups on rate control · 25f1195a
      Deb Mukherjee authored
      Removes the active_worst_qchanged variable since it is never
      set to 1.
      
      Change-Id: I29a291fd1068fd9b504a2db7768d45644c1eae3e
      25f1195a