1. 15 Jan, 2014 1 commit
  2. 14 Jan, 2014 1 commit
  3. 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
  4. 10 Jan, 2014 2 commits
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 18 Dec, 2013 1 commit
  11. 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
  12. 14 Dec, 2013 1 commit
  13. 13 Dec, 2013 1 commit
  14. 12 Dec, 2013 1 commit
  15. 09 Dec, 2013 1 commit
    • Paul Wilkins's avatar
      Further clean up of estimate_max_q. · 267dadde
      Paul Wilkins authored
      Clean up and simplification of both estimate_max_q
      variants and only call once per clip/section.
      This leads to a more constrained range of Q values
      across a clip / section.
      Average gains across all 4 test sets:-
      PSNR ~0.5%  SSIM ~0.3%
      Change-Id: If77d5f7bb50939a464e117724f4da5b001c62d70
  16. 06 Dec, 2013 2 commits
    • Paul Wilkins's avatar
      Remove rate correction factor. · 570b6d25
      Paul Wilkins authored
      Removed an adaptive rate correction factor that was having
      a negative impact on quality in many clips. This factor
      was influencing the Q range available to each frame
      independently of the bits allocated to each.
      Average results with DISABLE_RC_LONG_TERM_MEM.
      derf +0.199, -0.059.
      yt +3.957, +3.798
      std hd +1.577, +2.140
      yt hd +4.127, +4.513
      Average results without  DISABLE_RC_LONG_TERM_MEM
      derf -0.628, -0.665
      yt +3.432, +3.015
      std hd -0.105, +0.153
      yt hd +3.432, +3.015
      Change-Id: I45bab6b606f49a442e7b27a6d631f3ffd843bbce
    • 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
  17. 04 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving eob array to the encoder. · f00d157c
      Dmitry Kovalev authored
      In the decoder we don't need to save eobs, we can pass eob as an argument.
      That's why removing eob arrays from VP9Decompressor and TileWorkerData,
      and moving eob pointer from macroblockd_plane to macroblock_plane.
      Change-Id: I8eb919acc837acfb3abdd8319af63d1bbca8217a
  18. 27 Nov, 2013 2 commits
    • 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
    • Dmitry Kovalev's avatar
      Removing qcoeff buffers from the decoder. · d3a2e55a
      Dmitry Kovalev authored
      We only need qcoeff buffers in the encoder. Reducing TileWorkerData struct
      and VP9Decompressor struct sizes by 24K.
      Change-Id: Id148868461f7ffa3d3dd634b371503ae9c57e207
  19. 26 Nov, 2013 1 commit
  20. 22 Nov, 2013 1 commit
    • Deb Mukherjee's avatar
      Refactoring of rate control - part 1 · f1781e86
      Deb Mukherjee authored
      Moves all rate control variables to a separate structure,
      removes some currently unused variables,
      moves some rate control functions to vp9_ratectrl.c,
      and splits the encode_frame_to_data_rate function.
      Change-Id: I4ed54c24764b3b6de2dd676484f01473724ab52b
  21. 21 Nov, 2013 1 commit
  22. 18 Nov, 2013 2 commits
    • Yaowu Xu's avatar
      Move vp9_extend.{h,c} from common to encoder · 1c61e196
      Yaowu Xu authored
      Since they used in encoder only. This commit also re-order includes
      for the files that include vp9_extend.h
      Change-Id: I929fc113f2135d3198cd1fc6a17434e5a2f8a459
    • Jingning Han's avatar
      Constrain encoder motion search range · bbe68fbd
      Jingning Han authored
      Explicitly constrain the upper limit of motion search range (in the
      unit of full pixel) to be [-1023, +1023]. It is intended to control
      the effective motion search range for 4K sequences.
      Change-Id: I645539c70885eec0f155781f439d97d333336e88
  23. 15 Nov, 2013 1 commit