1. 01 Feb, 2014 2 commits
  2. 31 Jan, 2014 1 commit
  3. 29 Jan, 2014 2 commits
    • Dmitry Kovalev's avatar
      Cleaning up vp9_firstpass.c. · b496d141
      Dmitry Kovalev authored
      Change-Id: Ic2ff6405f01fd43d07c5ee3b5e374909401115cc
      b496d141
    • 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
  4. 25 Jan, 2014 1 commit
  5. 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
      overflow.
      
      Change-Id: Ib21ea2817845cea1435f893064e6417c79c5bc64
      e5034f65
  6. 23 Jan, 2014 3 commits
  7. 22 Jan, 2014 1 commit
  8. 21 Jan, 2014 1 commit
  9. 16 Jan, 2014 2 commits
  10. 15 Jan, 2014 3 commits
  11. 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
      5c808ba1
    • Dmitry Kovalev's avatar
      Using clamp() function instead of the same raw code. · 46a951c8
      Dmitry Kovalev authored
      Change-Id: Ia2ffca072f5391b277ce1a0c4e5b4ece9ffc6831
      46a951c8
  12. 13 Jan, 2014 5 commits
    • Dmitry Kovalev's avatar
      Removing unnecessary casts + cleanup. · 88798447
      Dmitry Kovalev authored
      Change-Id: I7298087426977e36b61ecf493949e9412842254c
      88798447
    • Dmitry Kovalev's avatar
      Converting int_mv to MV. · 2033ac49
      Dmitry Kovalev authored
      Change-Id: Id31c0e100d275bd3650eaf5e4b8fe5ce648dbfaf
      2033ac49
    • Yaowu Xu's avatar
      fix a div by zero issue · 31d3f43e
      Yaowu Xu authored
      Change-Id: I091dfaa0ed5b9672eedd46d6097469d0802e24ef
      31d3f43e
    • 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
      a00dad39
    • 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
      603075fa
  13. 10 Jan, 2014 2 commits
  14. 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
      d7b49b28
  15. 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
  16. 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
      7919bf6a
    • Dmitry Kovalev's avatar
      Using struct twopass_rc* instead of VP9_COMP*. · b57b82b5
      Dmitry Kovalev authored
      Change-Id: Id9ff7772aa3a3fb5d6cf94aff7dc9489bd964340
      b57b82b5
    • 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
    • Paul Wilkins's avatar
      Clean up: unused function and variables · d7663ede
      Paul Wilkins authored
      Remove adjust_maxq_qrange() and related variables.
      
      Change-Id: I50d065f4619c499283e2680e31d0d99c22439dec
      d7663ede
  17. 03 Jan, 2014 2 commits
    • Dmitry Kovalev's avatar
      Cleaning up get_prediction_decay_rate() function. · 84520829
      Dmitry Kovalev authored
      Change-Id: Ie8fcee21f41f91f94b4fa02f2a55691dea1734e3
      84520829
    • 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
      65ede3da
  18. 19 Dec, 2013 6 commits
    • Dmitry Kovalev's avatar
      Adding get_block_variance_fn() function. · 66ef9d1c
      Dmitry Kovalev authored
      Change-Id: I67d934b6af899ffd4bcad2d913a650685fa64abd
      66ef9d1c
    • 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
    • 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
      ee29b7e8
    • 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
      cb865998
    • 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
      e1312c36
    • 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
      d99e8908