summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2014-01-10Cleaning up and fixing psnr calculation code.Dmitry Kovalev
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
2014-01-09Merge "Renaming 'Sharpness' to 'sharpness'."Dmitry Kovalev
2014-01-09Merge "SSSE3 convolution optimization"Yunqing Wang
2014-01-09SSSE3 convolution optimizationlevytamar82
Optimizing all SSSE3 assembly for convolution: 1. vp9_filter_block1d4_h8_sse2 2. vp9_filter_block1d8_h8_sse2 3. vp9_filter_block1d16_h8_sse2 4. vp9_filter_block1d4_v8_sse2 5. vp9_filter_block1d8_v8_sse2 6. vp9_filter_block1d16_v8_sse2 my optimization include: -processing 2x8 elements in one 128 bit register instead of processing 8 elements in one 128 bit register. -removing unecessary loads. This optimization gives between 2.4% user level gain for 480p input and 1.6% user level gain for 720p. This Optimization done only for 64bit. Change-Id: Icb586dc0c938b56699864fcee6c52fd43b36b969
2014-01-09Merge "Using VP9_COMMON instead of VP9_COMP."Dmitry Kovalev
2014-01-09Merge "Fix rate allocation bug."Paul Wilkins
2014-01-08Using VP9_COMMON instead of VP9_COMP.Dmitry Kovalev
Change-Id: If7d3958653104f3e170853e931f8489de3ecf3cc
2014-01-08Merge "Removing direct references to {lst_fb, gld_fb, alt_fb}_idx fields."Dmitry Kovalev
2014-01-08Merge "Cleanups around cpi->common."Dmitry Kovalev
2014-01-08Merge "Renaming 'Mode' to 'mode'."Dmitry Kovalev
2014-01-08Removing direct references to {lst_fb, gld_fb, alt_fb}_idx fields.Dmitry Kovalev
Change-Id: Ib1d9628d2b538b6dc27b0db1fa7f40f70ff2072f
2014-01-08Cleanups around cpi->common.Dmitry Kovalev
Change-Id: I0c42a729038d0f4cb7bc07f587d066fcb1dfe9d9
2014-01-08Merge "Add a C fallback for get_msb() and change inline to INLINE."Alex Converse
2014-01-08Merge "Add initial intra frame neon optimization. 1~2% gain."hkuang
2014-01-08Renaming 'Mode' to 'mode'.Dmitry Kovalev
Change-Id: I6cdd670d66288dbd66228f38bba6b30502d25362
2014-01-08Renaming 'Sharpness' to 'sharpness'.Dmitry Kovalev
Change-Id: I54513dc3b3321e0c0bb6b15ea5c34085ed80b4a4
2014-01-08Merge "Using struct twopass_rc* instead of VP9_COMP*."Dmitry Kovalev
2014-01-08Add a C fallback for get_msb() and change inline to INLINE.Alex Converse
For systems without __builtin_clz() or _BitScanReverse(), taken from libwep Change-Id: Iead257efc1772c466c79e1dc0356ed571d38d43e
2014-01-08Add initial intra frame neon optimization. 1~2% gain.hkuang
More intra optimizations will be added. Change-Id: I33ae8d93f6002bf7b64cc2669602d9e6bfa5a6e8
2014-01-08Merge "AVX2 Variance Optimization"Yunqing Wang
2014-01-08Merge "Replace RD modeling with a fixed point approximation."Alex Converse
2014-01-08AVX2 Variance Optimizationlevytamar82
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
2014-01-08Replace RD modeling with a fixed point approximation.Alex Converse
Change-Id: I44eb44eb3f36c05d916ef140ef42cc84f72f99ec
2014-01-08Merge "Fix an issue in motion vector prediction stage"Jingning Han
2014-01-08Merge "Further rate control cleanups"Deb Mukherjee
2014-01-08Fix rate allocation bug.Paul Wilkins
Fix miss alignment of the frames contributing to the error score and bit allocation for gf/arf groups. Initial results slightly +. Change-Id: Ie508bdcfdac52e592d48e1f13e01b3551b523deb
2014-01-07Further rate control cleanupsDeb Mukherjee
Some cleanups on frames_to_key, frames_since_key. Also removes the unused fixed_q parameters in vp9. Change-Id: If8743a32c71de30a8d17136477b53d607a7acda8
2014-01-07Fix an issue in motion vector prediction stageJingning Han
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
2014-01-07Remove deprecated variable from rt_speed_featureJingning Han
This resolves a merge error. Change-Id: Ifb83acc0a08e80c82f7624f9c86f79d3a86cc871
2014-01-07Merge "Adding new_mv local variable."Dmitry Kovalev
2014-01-07Merge "Adding get_ref_frame_buffer() function."Dmitry Kovalev
2014-01-07Merge "Removing unused mvp_fill manipulation code."Dmitry Kovalev
2014-01-07Merge "Remove avoid_frame_with_high_error from RD loop"Jingning Han
2014-01-07Merge "Reusing ROUND_POWER_OF_TWO macro."Dmitry Kovalev
2014-01-07Merge "Clean up: unused function and variables"Paul Wilkins
2014-01-06Removing unused mvp_fill manipulation code.Dmitry Kovalev
The code can be removed because mvp_full will be overridden after that. Change-Id: I89559b1b6914c86bcd02b7359d37241948ac11d3
2014-01-06Adding new_mv local variable.Dmitry Kovalev
Change-Id: I9631b35810c232c134f39dc0edadb1b3860a45ae
2014-01-06Reusing ROUND_POWER_OF_TWO macro.Dmitry Kovalev
Change-Id: I064ba32d5358bfbf080a4300fc1793b345080006
2014-01-06Replacing &cpi->common with cm.Dmitry Kovalev
Change-Id: Ic5bf5682ccdb8d2fbad6bba0d7db19a4f47b62a1
2014-01-06Merge "Code cleanup: remove unneeded lines."Marco Paniconi
2014-01-06Merge "Added placeholder for real time mode"Yaowu Xu
2014-01-06Code cleanup: remove unneeded lines.Marco Paniconi
Change-Id: I44a89b822a436299b9dd4ff26ad2e35767c29c58
2014-01-06Merge "Combining ref_frame and second_ref_frame into ref_frames[2]."Dmitry Kovalev
2014-01-06Merge "Moving reset_segment_features() to encoder/vp9_segmentation.h."Dmitry Kovalev
2014-01-06Adding get_ref_frame_buffer() function.Dmitry Kovalev
Encapsulating direct references to lst_fb_idx, gld_fb_idx, alt_fb_idx. Change-Id: I7e65ba3f131286e433e6651970c5647311fa4687
2014-01-06Merge "Adding RefBuffer struct."Dmitry Kovalev
2014-01-06Remove avoid_frame_with_high_error from RD loopJingning Han
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
2014-01-06Using struct twopass_rc* instead of VP9_COMP*.Dmitry Kovalev
Change-Id: Id9ff7772aa3a3fb5d6cf94aff7dc9489bd964340
2014-01-06Combining ref_frame and second_ref_frame into ref_frames[2].Dmitry Kovalev
Change-Id: I007d66a1cb1b44751dcceafbaa64649ed9a34562
2014-01-06Merge "Corerctly sets frame type in the 2 pass case"Deb Mukherjee