1. 08 Jan, 2014 1 commit
  2. 07 Jan, 2014 6 commits
  3. 06 Jan, 2014 7 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
    • Yaowu Xu's avatar
      Added placeholder for real time mode · a2c01ed5
      Yaowu Xu authored
      Change-Id: I203d10f76c7ca78d875eaae15557cd765c6240d1
      a2c01ed5
    • Dmitry Kovalev's avatar
      Moving reset_segment_features() to encoder/vp9_segmentation.h. · 4603f31d
      Dmitry Kovalev authored
      Change-Id: I0db4b31cb2382d4f6249eae0a8f42d227ad0ac57
      4603f31d
    • 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
  4. 04 Jan, 2014 2 commits
  5. 03 Jan, 2014 10 commits
    • Jingning Han's avatar
      Tune IDCT8_1D macro function interface · 3e0c62b5
      Jingning Han authored
      This commit adds input/output ports for IDCT8_1D macro function to
      provide more flexibility in variable use. It allows to skip several
      buffer swap operations.
      
      Change-Id: I21f3450509537322293043b3281bfd3949868677
      3e0c62b5
    • Dmitry Kovalev's avatar
      Adding RefBuffer struct. · ba41e9d4
      Dmitry Kovalev authored
      Adding RefBuffer to simplify reference buffer management. The struct has a
      pointer to image data and scale factors relative to the current frame.
      
      Change-Id: If38eb1491ff687cc11428aee339f3e052e2c5d9e
      ba41e9d4
    • Dmitry Kovalev's avatar
      Pre planes configuration cleanup. · a8ba34d2
      Dmitry Kovalev authored
      Change-Id: I1d50f8701d9c9dedb84387a773a3e9b4daaad720
      a8ba34d2
    • Jingning Han's avatar
      Reduce num of buffer swap calls in idct8_1d_sse2 · 0b1a2713
      Jingning Han authored
      This commit merges the initial buffer swap operations in idct8_1d_sse2
      into the array transpose step, hence reducing number of instructions
      therein.
      
      Change-Id: I219f6f50813390d2ec3ee37eecf2a4a2b44ae479
      0b1a2713
    • Dmitry Kovalev's avatar
      Cleaning up get_prediction_decay_rate() function. · 84520829
      Dmitry Kovalev authored
      Change-Id: Ie8fcee21f41f91f94b4fa02f2a55691dea1734e3
      84520829
    • Jingning Han's avatar
      Rework idct8x8_10 SSE2 implementation · 1bb11781
      Jingning Han authored
      This commit optimizes the SSE2 implmentation of idct8x8_10. It exploits
      the fact that only top-left 4x4 block contains non-zero coefficients,
      and hence reduces the instructions needed.
      
      The runtime of idct8x8_10_sse2 goes down from 216 to 198 CPU cycles,
      estimated by averaging over 100000 runs. For pedestrian_area_1080p 300
      frames coded at 4000kbps, the average decoding speed goes up from
      79.3 fps to 79.7 fps.
      
      Change-Id: I6d277bbaa3ec9e1562667906975bae06904cb180
      1bb11781
    • Dmitry Kovalev's avatar
      Replacing int_mv with MV. · 672c355a
      Dmitry Kovalev authored
      Change-Id: Ifd432fa3741ba47102d298e0b348eb00f5a9ce53
      672c355a
    • Dmitry Kovalev's avatar
      Merging best_ref_mv and second_best_ref_mv into best_ref_mv[2]. · 5b04962c
      Dmitry Kovalev authored
      Change-Id: If04b57828847cee09a79c94e1098d1aa4990ea0d
      5b04962c
    • 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
    • Dmitry Kovalev's avatar
      Reusing vp9_get_skip_context() function in encoder. · f16b186b
      Dmitry Kovalev authored
      Change-Id: Ic0345622115941f49b6a568c7b8154ba892cbf0d
      f16b186b
  6. 27 Dec, 2013 3 commits
    • Dmitry Kovalev's avatar
      Using VP9_FRAME_MARKER instead of raw number. · 46d5cc43
      Dmitry Kovalev authored
      Change-Id: I3addbf6d89a86a707c8df1a463da3e9e367910df
      46d5cc43
    • Dmitry Kovalev's avatar
      Removing vpx_codec_vp9x_cx and internal experimental flag. · 116e0a1a
      Dmitry Kovalev authored
      vpx_codec_vp9x_cx is not used internally. Experimental flag from
      vp9_extracfg is also not really used. YUV 4:4:4 just works after these
      changes (you have to specify --profile=1 for the encoder).
      
      Change-Id: Ib1c8461d0d19d159827e005efe868f891eea0140
      116e0a1a
    • 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
  7. 20 Dec, 2013 7 commits
  8. 19 Dec, 2013 4 commits