1. 08 Jan, 2014 1 commit
  2. 07 Jan, 2014 3 commits
  3. 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
    • Dmitry Kovalev's avatar
      Combining ref_frame and second_ref_frame into ref_frames[2]. · 6b150c28
      Dmitry Kovalev authored
      Change-Id: I007d66a1cb1b44751dcceafbaa64649ed9a34562
      6b150c28
  4. 03 Jan, 2014 3 commits
  5. 27 Dec, 2013 1 commit
    • Jingning Han's avatar
      Adaptive motion control on ref and search range · a4ce53f1
      Jingning Han authored
      This commit takes a preliminary attempt to refine the motion search
      control. It detects the SAD associated with mv predictor per reference
      frame, and based on which to determine whether the encoder wants to
      reduce the motion search range (if the predicted mv provides fairly
      small SAD), or to skip the current reference frame (if there exists
      another ref frame that gives much smaller SAD cost).
      
      This feature is turned on in the settings of speed 1 and above.
      
      In speed 1, compression performance changed
      derf  -0.018%
      yt    -0.043%
      hd    -0.045%
      stdhd -0.281%
      
      speed-up
      pedestrian_area_1080p at 4000 kbps 100 frames
      199651ms -> 188846ms (5.5% speed-up)
      blue_sky_1080p at 6000 kbps
      443531ms -> 415239ms (6.3% speed-up)
      
      In speed 2, compression performance changed
      derf  -0.026%
      yt    -0.090%
      hd    -0.055%
      stdhd -0.210%
      
      speed-up
      pedstrian 113949ms -> 108855ms (4.5% speed-up)
      blue_sky  271057ms -> 257322ms (5% speed-up)
      
      Change-Id: I1b74ea28278c94fea329d971d706d573983d810d
      a4ce53f1
  6. 20 Dec, 2013 3 commits
    • Jingning Han's avatar
      Store the SSE of prediction residuals · 243327f4
      Jingning Han authored
      Buffer the SSE of prediction residuals in the rate-distortion
      optimization loop of a given block. This information would be used
      for later encoding control.
      
      Change-Id: If4e63f3462490513c48be9407d3327c8dd438367
      243327f4
    • Dmitry Kovalev's avatar
      Removing vp9_findnearmv.{h, c} files. · 987810ad
      Dmitry Kovalev authored
      Moving all code from that files to vp9_mvref_common.{h, c}.
      
      Change-Id: Ibc4afcb8cea6847166ff411130e93611ebe63b20
      987810ad
    • Dmitry Kovalev's avatar
      Using single struct to represent scale factors. · a3fbcc88
      Dmitry Kovalev authored
      Moving back to scale_factors struct. We don't need anymore x_offset_q4 and
      y_offset_q4 because both values are calculated locally inside vp9_scale_mv
      function.
      
      Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
      a3fbcc88
  7. 19 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Call set_scaled_offsets() just before scale_mv() call. · c872d2be
      Dmitry Kovalev authored
      Before mv scaling it is required to calculate x_offset_q4/y_offset_q4
      by calling set_scaled_offsets(). Now offset configuration can not be
      missed because it happens just before scale_mv().
      
      Change-Id: I7dd1a85b85811a6cc67c46c9b01e6ccbbb06ce3a
      c872d2be
  8. 18 Dec, 2013 1 commit
  9. 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
  10. 16 Dec, 2013 2 commits
  11. 14 Dec, 2013 1 commit
  12. 13 Dec, 2013 4 commits
    • Dmitry Kovalev's avatar
      Using MV struct instead of int_mv union in encoder. · 25da21b1
      Dmitry Kovalev authored
      Change-Id: I8b81a3e4b4fa530a654c28d9c136afa0c1d379fd
      25da21b1
    • Jingning Han's avatar
      Remove redefinition in handle_inter_mode · 84acc988
      Jingning Han authored
      Change-Id: I44513b9db6d42e2c52723e1a429f06a93d300c8b
      84acc988
    • James Zern's avatar
      vp9 asserts: fix compile warning · 178db94c
      James Zern authored
      string literal to int within an assert
      
      Change-Id: I0c889256b67a078e6e2a79577f0b7ae084243258
      178db94c
    • 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
  13. 11 Dec, 2013 3 commits
  14. 10 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Cleaning up skip context calculation. · 2dd20e46
      Dmitry Kovalev authored
      Renames:
        vp9_get_pred_context_mbskip => vp9_get_skip_context
        vp9_get_pred_prob_mbskip    => vp9_get_skip_prob
      
      Change-Id: I2af499848ef73f3f5cd8cdb27852d0bcdfe31d09
      2dd20e46
  15. 09 Dec, 2013 2 commits
  16. 07 Dec, 2013 1 commit
  17. 06 Dec, 2013 5 commits
  18. 05 Dec, 2013 1 commit
  19. 04 Dec, 2013 2 commits
    • 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
      f00d157c
    • Dmitry Kovalev's avatar
      Cleaning up vp9_entropy.h file. · 8e89e2f2
      Dmitry Kovalev authored
      Renaming constants for consistency:
        DCT_VAL_CATEGORY1 => CATEGORY1_TOKEN
        DCT_VAL_CATEGORY2 => CATEGORY2_TOKEN
        DCT_VAL_CATEGORY3 => CATEGORY3_TOKEN
        DCT_VAL_CATEGORY4 => CATEGORY4_TOKEN
        DCT_VAL_CATEGORY5 => CATEGORY5_TOKEN
        DCT_VAL_CATEGORY6 => CATEGORY6_TOKEN
        DCT_EOB_TOKEN     => EOB_TOKEN
        DCT_EOB_MODEL_TOKEN => EOB_MODEL_TOKEN
        MAX_ENTROPY_TOKENS => ENTROPY_TOKENS
      
      Moving constants:
        INTER_MODE_CONTEXTS from vp9_entropy.h to vp9_blockd.h.
        EOSB_TOKEN from vp9_entropy.h to vp9_tokenize.h
      
      Change-Id: I5fcbf081318e1d365792b6d290a930c6cb0f3fc2
      8e89e2f2
  20. 03 Dec, 2013 1 commit
    • Alex Converse's avatar
      Remove plane_block_idx. · 2360a5f0
      Alex Converse authored
      Its last remaining caller can be passed its results directly without any
      additional work. Also, it's not non-4:2:0 safe.
      
      Change-Id: Ia5089ba5f7f66c7617270483c619c9271aefd868
      2360a5f0