1. 25 Feb, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds variance based fixed size partitioning · 10bae825
      Deb Mukherjee authored
      Adds a method for determining a fixed size partition based on
      variance of a 64x64 SB. This method is added to rtc speed 6.
      Also fixes a bug in rtc_use_partition() and includes some
      refactoring related to partitioning search, and some cosmetics.
      
      Currently compared to speed 5, the coding efficiency of speed 6
      is -19% and that of speed 7 is -55%, in cbr mode.
      
      Change-Id: I057e04125a8b765906bb7d4bf7a36d1e575de7c6
      10bae825
  2. 18 Feb, 2014 1 commit
  3. 14 Feb, 2014 2 commits
  4. 13 Feb, 2014 1 commit
    • Marco Paniconi's avatar
      Fix target frame size setting, for 1pass cbr. · e590e087
      Marco Paniconi authored
      Only use layered average size if number_temporal_layers > 1.
      
      Also removed unneeded commented-out line, and change some parameter
      setting in vpx_temporal_scalable_patterns.c
      
      Change-Id: Ic86e43e7daf0313e8c5a4aba1497299158111955
      e590e087
  5. 12 Feb, 2014 2 commits
    • Jim Bankoski's avatar
      static analysis warning in vp9_ratectrl.c · eb5889f8
      Jim Bankoski authored
      Change-Id: I8aa3dd068d9a7225b3e8b24392a7b4a54b9435dd
      eb5889f8
    • 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
  6. 10 Feb, 2014 3 commits
  7. 07 Feb, 2014 1 commit
  8. 06 Feb, 2014 2 commits
    • Deb Mukherjee's avatar
      Parameter fixes for one-pass non-cbr mode · b2209c33
      Deb Mukherjee authored
      Fixes some of the parameters for 1-pass non-cbr mode.
      Also includes some cleanups, inlcuding refactoring of the
      recode_loop options.
      
      Results on derfraw300 improve by about 5-6%, so that the one-pass
      mode is now 13% below the 2-pass mode in speed 0.
      
      Change-Id: I844cc2638694c7574f3be00d41d60b23dc1016f0
      b2209c33
    • Marco Paniconi's avatar
      Layer based rate control for CBR mode. · 4864ab21
      Marco Paniconi authored
      This patch adds a buffer-based rate control for temporal layers,
      under CBR mode.
      
      Added vpx_temporal_scalable_patters.c encoder for testing temporal
      layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).
      
      Updated datarate unittest with tests for temporal layer rate-targeting.
      
      Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
      4864ab21
  9. 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
  10. 04 Feb, 2014 1 commit
    • Deb Mukherjee's avatar
      One-pass rate control fixes and cleanups · 35ee7f5f
      Deb Mukherjee authored
      Fixes rate control partially in one-pass non-cbr case to achieve a
      bitrate close to the one desired. Previous version was way off at
      the high bitrate end.
      
      Also includes several one-pass rate control cleanups and refactoring.
      
      On derfraw300, one-pass encoding is now 19% off from two-pass speed
      0 encoding, down from 35%.
      
      Change-Id: I6f0dcdb7f8aa85a7e7cd3a3155d4f9d2a4d2f4f4
      35ee7f5f
  11. 03 Feb, 2014 1 commit
  12. 02 Feb, 2014 1 commit
    • Marco Paniconi's avatar
      Layer based rate control for CBR mode. · 6be2b750
      Marco Paniconi authored
      This patch adds a buffer-based rate control for temporal layers,
      under CBR mode.
      
      Added vpx_temporal_scalable_patters.c encoder for testing temporal
      layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).
      
      Updated datarate unittest with tests for temporal layer rate-targeting.
      
      Change-Id: I9cb6cce2494390ae6096ee17774af7fb9308bde7
      6be2b750
  13. 01 Feb, 2014 1 commit
  14. 29 Jan, 2014 1 commit
    • Deb Mukherjee's avatar
      Enables alt-ref frames in one pass mode · 50bf8fd4
      Deb Mukherjee authored
      Includes a few fixes and clean-ups that adds the ability
      to use alt-ref frames in one-pass mode.
      Whether alt-refs are actually used or not is controlled by a
      macro USE_ALTREF_FOR_ONE_PASS in vp9_firstpass.c.
      
      This first cut seems to improve derf by 15+% in 1-pass mode.
      But further experiments with parameters are underway.
      
      Change-Id: I78254421435478003367c788c7930d2dc4ee2816
      50bf8fd4
  15. 27 Jan, 2014 1 commit
  16. 24 Jan, 2014 1 commit
  17. 22 Jan, 2014 1 commit
  18. 18 Jan, 2014 1 commit
  19. 16 Jan, 2014 1 commit
    • Alex Converse's avatar
      Fix key frames for one pass. · 2b3891d9
      Alex Converse authored
      Set this_key_frame_forced flag and don't use kf_boost when not set.
      
      Change-Id: Ibe66a82fa9219e60db358ddeb43d6471816c8b50
      2b3891d9
  20. 14 Jan, 2014 2 commits
    • Deb Mukherjee's avatar
      Minor fix on an assert · 1699d6bd
      Deb Mukherjee authored
      Fixes assert that fails occasionally on small values of
      max-key frame intervals. Also, adds a small change on
      updating frames_to_key for frame drops.
      
      Change-Id: Icc2b33b25e3e4ced7e49f8db73e0a887ef9c99e0
      1699d6bd
    • Paul Wilkins's avatar
      Add max burst bitrate control. · 5c808ba1
      Paul Wilkins authored
      Applies an upper limit on burst bitrate for any
      frame. This is to insure that typical encodes for YT
      do not produce frames that are so large that they
      risk stalling HW implementations. Such frames
      could also cause playback problems in SW.
      
      For now the limit is set at 250 bits per MB for 1080P
      and larger (with the 1080P limit used for smaller frames).
      
      Setting maxQ, constant quality mode or targeting a
      very high bandwidth will have precedence over this limit.
      
      Change-Id: Ie6f776c38b06ac7cec043d034085f4b79ee46a38
      5c808ba1
  21. 11 Jan, 2014 1 commit
  22. 10 Jan, 2014 2 commits
  23. 09 Jan, 2014 1 commit
  24. 07 Jan, 2014 2 commits
  25. 06 Jan, 2014 1 commit
    • Deb Mukherjee's avatar
      Corerctly sets frame type in the 2 pass case · cf3d2c8d
      Deb Mukherjee authored
      This patch sets frame types correctly in the new
      vp9_get_second_pass_params() function called prior
      to encode_frame_to_data_rate() function, so that the
      latter function can just work with what is passed to
      it. This will allow multiple vp9_get_second_pass_params()
      to be created for various encode strategies without
      messing with the core encode function.
      
      There is no difference in derf and yt. stdhd/hd are pending.
      
      Change-Id: I70dfb97e9f497e9cee04052e0e8e0c2892eab0c3
      cf3d2c8d
  26. 19 Dec, 2013 1 commit
    • Deb Mukherjee's avatar
      Begin refactor of frame schedule in rate control · 4dbad63a
      Deb Mukherjee authored
      Various cleanups and streamlining of interfaces as precursor
      to further advancements in rate control.
      Pre-encode parameter setting for different use cases:
      One-pass, first of 2-pass, second of 2-pass, and Svc
      are separated out.
      
      There is no change in output with this change.
      
      Change-Id: Ied8ca7d84d610993776aa30ef263fe20452e0e3e
      4dbad63a
  27. 18 Dec, 2013 1 commit
  28. 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
  29. 06 Dec, 2013 2 commits
    • 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
    • Dmitry Kovalev's avatar
      Renaming constants. · 0d4b8d7e
      Dmitry Kovalev authored
      NUM_YV12_BUFFERS        => FRAME_BUFFERS
      ALLOWED_REFS_PER_FRAME  => REFS_PER_FRAME
      NUM_REF_FRAMES_LOG2     => REF_FRAMES_LOG2
      NUM_REF_FRAMES          => REF_FRAMES
      NUM_FRAME_CONTEXTS_LOG2 => FRAME_CONTEXTS_LOG2
      NUM_FRAME_CONTEXTS      => FRAME_CONTEXTS
      
      Change-Id: I4e1ada08f25d8fa30fdf03aebe1b1c9df0f87e63
      0d4b8d7e
  30. 27 Nov, 2013 2 commits
    • Deb Mukherjee's avatar
      Fixing inadvertent change · e924057d
      Deb Mukherjee authored
      Fixes an inadvertant change made in a previous patch while doing
      some experiments.
      
      Change-Id: I9961f2157c803676491a3d6daf056ff8a37367b3
      e924057d
    • 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