1. 31 Jan, 2014 3 commits
    • Yaowu Xu's avatar
      Properly merge two different real time modes · 6a4e2dda
      Yaowu Xu authored
      --rt --cpu-used=-5 uses the progressive rtc mode
      --rt --cpu-used=-6 uses the new super fast rtc mode
      
      Change-Id: Id6469ca996100cdf794a0e42d76430161f22f976
      6a4e2dda
    • Alex Converse's avatar
      Cleanup block_rd_txfm. · e78c174e
      Alex Converse authored
      * Avoid unnecessary type erasure
      * Prune unused/duplicate fields from struct rdcost_block_args
      * Make struct rdcost_block_args a local
      
      Change-Id: I4f1fd4837ccd028bbfe727191ee8d69f0463b7e5
      e78c174e
    • Jim Bankoski's avatar
      remove confusing compressor_speed · da6b1862
      Jim Bankoski authored
      use mode instead
      
      Change-Id: I419d7a2dc4b0714ca6ff723c5e824521c150c460
      da6b1862
  2. 30 Jan, 2014 1 commit
  3. 29 Jan, 2014 1 commit
    • Yaowu Xu's avatar
      Add a strict mode for auto_min_max_partition_size feature · 1ca11865
      Yaowu Xu authored
      In this new mode, the size range is strictly determined by the min
      and max partition size in neighborhood blocks.
      
      Niklas720 encoding time at cpu-used -5 goes from 56250ms to 50676ms,
      a 10% reduction.
      
      Change-Id: I316b0e2ac967ff3fad57b28d69c0ec80b7d8b34e
      1ca11865
  4. 28 Jan, 2014 3 commits
  5. 25 Jan, 2014 1 commit
    • Yaowu Xu's avatar
      Added a speed feature · a0b9b050
      Yaowu Xu authored
      That force the stop of subpel search possibly at full/half/quater pel
      stages
      
      Change-Id: Ie50c500417bd78e1a53e6620bd4c2b85f63d9c67
      a0b9b050
  6. 24 Jan, 2014 5 commits
  7. 23 Jan, 2014 1 commit
  8. 14 Jan, 2014 3 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
      Removing unused error_bins[] field from VP9_COMP. · a8a5774b
      Dmitry Kovalev authored
      Change-Id: I883eb9026b44cb354d5b01c0f1d34ecd71f942e4
      a8a5774b
    • Dmitry Kovalev's avatar
      Removing unused switchable_interp_count[] field from VP9_COMP. · 0a74236b
      Dmitry Kovalev authored
      Change-Id: I8eda5762728d981ab7757388741b598c665c26ca
      0a74236b
  9. 11 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Cleaning up and fixing psnr calculation code. · 4def0a81
      Dmitry Kovalev authored
      Introducing calc_psnr() which calculates psnr between two yv12 buffers.
      Previously we incorrectly used width/height instead of
      crop_width/crop_height to calculate number of samples -- fixed.
      
      Change-Id: Iecda01980555de55ad347e0276e6641c793fa56c
      4def0a81
  10. 10 Jan, 2014 2 commits
    • Jim Bankoski's avatar
      explain speed features · 6439aa5a
      Jim Bankoski authored
      Added comments to explain what the various speed features do, and removed
      1 that was clearly unused.
      
      Change-Id: Icd37a536072ddafedbfaefcecbe48979f6d10faf
      6439aa5a
    • Deb Mukherjee's avatar
      Cleanups on refresh flags · 412e4954
      Deb Mukherjee authored
      Cleanups on frame refresh flags and external overrides.
      
      Change-Id: Ia6a56fe1bde906b1dc3fcbf4ef1c7b207cd2df2d
      412e4954
  11. 06 Jan, 2014 3 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
    • Jingning Han's avatar
      Remove avoid_frame_with_high_error from RD loop · 393a8cce
      Jingning Han authored
      The feature undergoes prior assumption that the recursive partition
      size search from 4x4 to 64x64, hence utilizing information from small
      blocks to determine early termination in large block rate-distortion
      optimization search. The current codebase is now going from top down.
      The previous function might go with not properly initialized values,
      hence removed.
      
      Tested on pedestrian_area_1080p at 4000 kbps running under speed 2.
      No visible difference in runtime observed.
      
      Change-Id: I553df415c6191413762db7ae34e8790c71d8118e
      393a8cce
    • 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
  12. 03 Jan, 2014 1 commit
    • 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
  13. 20 Dec, 2013 1 commit
  14. 19 Dec, 2013 3 commits
  15. 18 Dec, 2013 2 commits
  16. 17 Dec, 2013 2 commits
    • Dmitry Kovalev's avatar
      Reusing FRAME_COUNTS in the encoder. · 1d23a659
      Dmitry Kovalev authored
      Change-Id: I6ab9fe2326ebbadf0dd10cca9f66cf8277e3f43b
      Replacing: comp_inter_count, single_ref_count, comp_ref_count.
      1d23a659
    • 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
  17. 13 Dec, 2013 1 commit
    • Jingning Han's avatar
      Enable adaptive pred filter type for sub8x8 · 3b5a90bd
      Jingning Han authored
      This commit enables an adaptive prediction filter type selection
      for sub8x8 block sizes. In speed 1, it re-uses the filter type of
      collocated 8x8 block if it is tested in the rate-distortion optimization
      loop, for the sub8x8 blocks. Otherwise, it runs the normal test
      over all the three filter types. In speed 2, it re-uses the 8x8
      block's prediction filter type, if available. Otherwise, force it
      to be EIGHTTAP.
      
      Compression and speed performance wise:
      speed 1
      derf -0.266%
      yt   -0.138%
      
      bus at 2000 kbps: 33766ms -> 30451ms (10% speed-up)
      football at 600 kbps: 48173ms -> 43786ms (9% speed-up)
      
      speed 2
      derf -0.026%
      yt   +0.134%
      
      bus at 2000 kbps: 18973ms -> 17698ms (6% speed-up)
      football at 600 kbps: 26748ms -> 25096ms (6% speed-up)
      
      Change-Id: I77e097533b969fd3472147225fa79fc98095d342
      3b5a90bd
  18. 11 Dec, 2013 2 commits
  19. 06 Dec, 2013 4 commits
    • Dmitry Kovalev's avatar
      Removing BLOCK_TYPES and adding PLANE_TYPES constant instead. · d6b159d4
      Dmitry Kovalev authored
      Change-Id: Ic3bb862e93aedf6a489a33ea6f7e5097d96855ee
      d6b159d4
    • 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
      570b6d25
    • 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