- 08 Jan, 2014 - 2 commits
-
-
levytamar82 authored
Optimizing the variance functions: vp9_variance16x16, vp9_variance32x32, vp9_variance64x64, vp9_variance32x16, vp9_variance64x32, vp9_mse16x16 by migrating to AVX2 some of the functions were optimized by processing 32 elements instead of 16. some of the functions were optimized by processing 2 loop strides of 16 elements in a single 256 bit register This optimization gives between 2.4% - 2.7% user level performance gain and 42% function level gain. Change-Id: I265ae08a2b0196057a224a86450153ef3aebd85d
-
Alex Converse authored
Change-Id: I44eb44eb3f36c05d916ef140ef42cc84f72f99ec
-
- 07 Jan, 2014 - 8 commits
-
-
Deb Mukherjee authored
Some cleanups on frames_to_key, frames_since_key. Also removes the unused fixed_q parameters in vp9. Change-Id: If8743a32c71de30a8d17136477b53d607a7acda8
-
Jingning Han authored
The previous implementation stops motion vector prediction test when the zero motion vector appears for the second time. This commit fixes it by simply skipping the second time check on zero mv and continuing on to next mv candidate. It slightly improves stdhd in speed 2 by 0.06% on average. Most static sequences are not affected. A few hard ones, like jet, ped, and riverbed were improved by 0.1 - 0.2%. Change-Id: Ia8d4e2ffb7136669e8ad1fb24ea6e8fdd6b9a3c1
-
Jingning Han authored
This resolves a merge error. Change-Id: Ifb83acc0a08e80c82f7624f9c86f79d3a86cc871
-
Dmitry Kovalev authored
The code can be removed because mvp_full will be overridden after that. Change-Id: I89559b1b6914c86bcd02b7359d37241948ac11d3
-
Dmitry Kovalev authored
Change-Id: I9631b35810c232c134f39dc0edadb1b3860a45ae
-
Dmitry Kovalev authored
Change-Id: I064ba32d5358bfbf080a4300fc1793b345080006
-
Dmitry Kovalev authored
Change-Id: Ic5bf5682ccdb8d2fbad6bba0d7db19a4f47b62a1
-
Marco Paniconi authored
Change-Id: I44a89b822a436299b9dd4ff26ad2e35767c29c58
-
- 06 Jan, 2014 - 8 commits
-
-
Dmitry Kovalev authored
Encapsulating direct references to lst_fb_idx, gld_fb_idx, alt_fb_idx. Change-Id: I7e65ba3f131286e433e6651970c5647311fa4687
-
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
-
Dmitry Kovalev authored
Change-Id: Id9ff7772aa3a3fb5d6cf94aff7dc9489bd964340
-
Dmitry Kovalev authored
Change-Id: I007d66a1cb1b44751dcceafbaa64649ed9a34562
-
Yaowu Xu authored
Change-Id: I203d10f76c7ca78d875eaae15557cd765c6240d1
-
Dmitry Kovalev authored
Change-Id: I0db4b31cb2382d4f6249eae0a8f42d227ad0ac57
-
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 authored
Remove adjust_maxq_qrange() and related variables. Change-Id: I50d065f4619c499283e2680e31d0d99c22439dec
-
- 04 Jan, 2014 - 2 commits
-
-
Dmitry Kovalev authored
Change-Id: I5db2e5a6c36e6c503dea2e07d9d2e0daf4ac9d89
-
Dmitry Kovalev authored
Change-Id: I08533d59a78346dac30a7dcbc12146f23ef88bbc
-
- 03 Jan, 2014 - 10 commits
-
-
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
-
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
-
Dmitry Kovalev authored
Change-Id: I1d50f8701d9c9dedb84387a773a3e9b4daaad720
-
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
-
Dmitry Kovalev authored
Change-Id: Ie8fcee21f41f91f94b4fa02f2a55691dea1734e3
-
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
-
Dmitry Kovalev authored
Change-Id: Ifd432fa3741ba47102d298e0b348eb00f5a9ce53
-
Dmitry Kovalev authored
Change-Id: If04b57828847cee09a79c94e1098d1aa4990ea0d
-
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
-
Dmitry Kovalev authored
Change-Id: Ic0345622115941f49b6a568c7b8154ba892cbf0d
-
- 27 Dec, 2013 - 3 commits
-
-
Dmitry Kovalev authored
Change-Id: I3addbf6d89a86a707c8df1a463da3e9e367910df
-
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
-
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
-
- 20 Dec, 2013 - 7 commits
-
-
Dmitry Kovalev authored
Change-Id: I07470ad1b7a0344d088911428ffab8ba9a0d8708
-
Dmitry Kovalev authored
Change-Id: I50c009ff8108bda1c57427f23d63a79c04f7e776
-
Dmitry Kovalev authored
Change-Id: I9b9a5fcce8530284df0f270706ee060a0edc1517
-
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
-
Dmitry Kovalev authored
Moving all code from that files to vp9_mvref_common.{h, c}. Change-Id: Ibc4afcb8cea6847166ff411130e93611ebe63b20
-
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
-