1. 29 Jan, 2014 1 commit
  2. 25 Jan, 2014 1 commit
  3. 24 Jan, 2014 1 commit
    • Yaowu Xu's avatar
      Fixed integer overflow for large input video · e5034f65
      Yaowu Xu authored
      The sum of squared mv components can go beyond int range for large
       input resolution. This commit changed the type to int64 to avoid
      Change-Id: Ib21ea2817845cea1435f893064e6417c79c5bc64
  4. 23 Jan, 2014 3 commits
  5. 22 Jan, 2014 1 commit
  6. 21 Jan, 2014 1 commit
  7. 16 Jan, 2014 2 commits
  8. 15 Jan, 2014 3 commits
  9. 14 Jan, 2014 2 commits
    • 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
    • Dmitry Kovalev's avatar
      Using clamp() function instead of the same raw code. · 46a951c8
      Dmitry Kovalev authored
      Change-Id: Ia2ffca072f5391b277ce1a0c4e5b4ece9ffc6831
  10. 13 Jan, 2014 5 commits
    • Dmitry Kovalev's avatar
      Removing unnecessary casts + cleanup. · 88798447
      Dmitry Kovalev authored
      Change-Id: I7298087426977e36b61ecf493949e9412842254c
    • Dmitry Kovalev's avatar
      Converting int_mv to MV. · 2033ac49
      Dmitry Kovalev authored
      Change-Id: Id31c0e100d275bd3650eaf5e4b8fe5ce648dbfaf
    • Yaowu Xu's avatar
      fix a div by zero issue · 31d3f43e
      Yaowu Xu authored
      Change-Id: I091dfaa0ed5b9672eedd46d6097469d0802e24ef
    • Paul Wilkins's avatar
      No arf right before real scene cut. · a00dad39
      Paul Wilkins authored
      To reduce pulsing we now allow an arf just before forced key frames
      and at the end of a clip or section (which may be stitched to
      another clip or section). However, this does not make sense for
      key frames arising from real scene cuts.
      Change from original patch reflects other recent changes in regard
      to alignment of gf/arf and kf groups.
      Change-Id: I074a91d1207e9b3e28085af982f6718aa599775f
    • Paul Wilkins's avatar
      Further rate control tweaks and fixes. · 603075fa
      Paul Wilkins authored
      Further fixes regarding min and max rate.
      Bug fixes re kf group bits and last kf group.
      Change-Id: Iaafd719d30a489e135a3c55851ce8c632091a436
  11. 10 Jan, 2014 2 commits
  12. 08 Jan, 2014 1 commit
    • Paul Wilkins's avatar
      Fix rate allocation bug. · d7b49b28
      Paul Wilkins authored
      Fix miss alignment of the frames contributing to the
      error score and bit allocation for gf/arf groups.
      Initial results slightly +.
      Change-Id: Ie508bdcfdac52e592d48e1f13e01b3551b523deb
  13. 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
  14. 06 Jan, 2014 4 commits
    • Dmitry Kovalev's avatar
      Adding get_ref_frame_buffer() function. · 7919bf6a
      Dmitry Kovalev authored
      Encapsulating direct references to lst_fb_idx, gld_fb_idx, alt_fb_idx.
      Change-Id: I7e65ba3f131286e433e6651970c5647311fa4687
    • Dmitry Kovalev's avatar
      Using struct twopass_rc* instead of VP9_COMP*. · b57b82b5
      Dmitry Kovalev authored
      Change-Id: Id9ff7772aa3a3fb5d6cf94aff7dc9489bd964340
    • 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
    • Paul Wilkins's avatar
      Clean up: unused function and variables · d7663ede
      Paul Wilkins authored
      Remove adjust_maxq_qrange() and related variables.
      Change-Id: I50d065f4619c499283e2680e31d0d99c22439dec
  15. 03 Jan, 2014 2 commits
    • Dmitry Kovalev's avatar
      Cleaning up get_prediction_decay_rate() function. · 84520829
      Dmitry Kovalev authored
      Change-Id: Ie8fcee21f41f91f94b4fa02f2a55691dea1734e3
    • Paul Wilkins's avatar
      Modified Handling of min and max vbr rates. · 65ede3da
      Paul Wilkins authored
      In two pass encodes bits are allocated to each frame
      according to a modified error score for the frame as a
      fraction of the modified error score for the clip or section.
      Previously a minimum rate per frame was reserved and
      subtracted from the bits allocatable by the two pass code.
      The vbr max section rate was enforced by clipping the
      actual number of bits allocated.
      In this patch the min and max vbr rates are enforced
      instead by clipping the modified error scores for each frame
      rather than the number of bits allocated.
      Small gains for all test sets (psnr and SSIM) ranging from
      ~ +0.05 for YT psnr up to ~ +0.25 for Std-hd SSIM.
      Change-Id: Iae27d70bdd3944e3f0cceaf225bad2e8802833de
  16. 19 Dec, 2013 6 commits
    • Dmitry Kovalev's avatar
      Adding get_block_variance_fn() function. · 66ef9d1c
      Dmitry Kovalev authored
      Change-Id: I67d934b6af899ffd4bcad2d913a650685fa64abd
    • 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
    • Paul Wilkins's avatar
      Adjust gf_group_error_left for arf groups. · ee29b7e8
      Paul Wilkins authored
      Take account of the fact that the overlay frame is usually
      very cheap so distribute target bits among the other frames.
      Change-Id: I120685122e8cbbe75da8d07d02932f7877059867
    • Paul Wilkins's avatar
      Allow arf just before kfs or end of sequence. · cb865998
      Paul Wilkins authored
      This will hurt metrics in some cases (particularly for static
      clips at low data rates where there is extra overhead, but it
      helps smooth transitions around forced key frames between
      stitched kf sections.
      Change-Id: I7e1026ae0de6c77bba863061e115136d7f283cc0
    • Paul Wilkins's avatar
      Further q estimate adjustment. · e1312c36
      Paul Wilkins authored
      Slightly reduces the mean tendency to undershoot target
      rate in vbr, especially when using the memory less mode
      and when recodes are disabled.
      The effect is primarily at low q.
      Change-Id: I59a593b99522cc7da31b4134d1c8a65f5b7b7c53
    • Paul Wilkins's avatar
      Remove unused code and data structure. · d99e8908
      Paul Wilkins authored
      Remove modified_error_used and adjust_active_maxq().
      Change-Id: I8915007128dc1a17e11693104cfb008a6d64e6a2
  17. 18 Dec, 2013 1 commit
  18. 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
  19. 14 Dec, 2013 1 commit
  20. 13 Dec, 2013 1 commit