summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2014-02-18Merge "vp9_filter: move table alignment decl's to header"James Zern
2014-02-18Merge "SSSE3 convolution optimization"Yunqing Wang
2014-02-18Merge "AVX2 SubPixel Variance Optimization"Yunqing Wang
2014-02-15vp9_filter: move table alignment decl's to headerJames Zern
avoids mismatched alignment warnings in visual studio builds Change-Id: I2cedb8042fd47e708bde3f7168a6fb4bd9aaa569
2014-02-14Replace vqshrun by vqmovun if shift #0 bitJames Yu
Change-Id: Ifabb8c7ec0c327fea9d6739cab10addb060ff435 Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-14Merge "Remove redundant arm neon instructions."Johann
2014-02-14AVX2 SubPixel Variance Optimizationlevytamar82
Optimizing 2 functions to process 32 elements in parallel instead of 16: 1. vp9_sub_pixel_variance64x64 2. vp9_sub_pixel_variance32x32 both of those function were calling vp9_sub_pixel_variance16xh_ssse3 instead of calling that function, it calls vp9_sub_pixel_variance32xh_avx2 that is written in avx2 and process 32 elements in parallel. This Optimization gave 70% function level gain and 2% user level gain Change-Id: I4f5cb386b346ff6c878a094e1c3b37e418e50bde
2014-02-14Cleanup some comments.Adrian Grange
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
2014-02-14Merge "minor spelling cleanup in comments"Yaowu Xu
2014-02-14SSSE3 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 is done only for 64 bit Change-Id: Ic07fce2f9360329b4f2d956efda1480ae958766b
2014-02-13Merge "Removed the reset of mode_info from previous frame"Yaowu Xu
2014-02-13Merge "Add VP9 decoder support for external frame buffers"Frank Galligan
2014-02-13Add VP9 decoder support for external frame buffersFrank Galligan
Added support for external frame buffers to libvpx's VP9 decoder. If the external frame buffer functions are set then libvpx will call the get function whenever it needs a new frame buffer to decode a frame into. And it will call the release function whenever there are no more references to that buffer. Change-Id: Id2934d005f606af6e052fb6db0d5b7c02f567522
2014-02-13Removed the reset of mode_info from previous frameYaowu Xu
Prior to this commit, both encoder and decoder reset mode/mv info from previous frame in error resilient mode to ensure bitstreams are able to decode when there is loss of frame in decoder side. However, this is not necessary. This commit changed to remove the reset, so encoder can continue to use mode/mv/partition information from previously encoded frame without affecting decodeablilty under loss of frame. Change-Id: I0279f862900dc647fb471ae3389770bb1b9f454f
2014-02-13Merge "Renaming skip_coeff to skip for consistency."Dmitry Kovalev
2014-02-13Merge "Fix neon wide loopfilter for filter8 only branch"Frank Galligan
2014-02-13Merge "AVX2 Convolve Optimization"Yunqing Wang
2014-02-12AVX2 Convolve Optimizationlevytamar82
Two convolve functions were optimized for AVX2: 1. vp9_filter_block1d16_h8 2. vp9_filter_block1d16_v8 vp9_filter_block1d16_v8 was optimized for AVX2 by reducing the number of loop strides by half, two strides were processed in parallel. vp9_filter_block1d16_v8 was also optimized in the same way also some of the loads were being done outside of the loop and by that preventing redundant loads. This Optimization gives 43% function level gain and 1.3% user level gain. Now can be compiled in Windows Change-Id: I2714124cfb0c14a77d7a0ce126a20db92ffbf92c
2014-02-12Fix neon wide loopfilter for filter8 only branchFrank Galligan
The current code removed the check to only perform the filter8. Change-Id: Ie54e19a77745042a5660eab986d9ef1c42e82410
2014-02-12Renaming skip_coeff to skip for consistency.Dmitry Kovalev
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
2014-02-12minor spelling cleanup in commentsAndrew Russell
Change-Id: Ia91c6c406273345b08505097ffe1af3896980f06
2014-02-12Adding consts to mv search function arguments.Dmitry Kovalev
Change-Id: Ie79114bba4f0cea55d9f701e20d2be2017630f3b
2014-02-12Merge "Removing vp9_foreach_transformed_block_uv() function."Dmitry Kovalev
2014-02-12Use INTER_OFFSET in vp9_pick_inter_modeJingning Han
Cosmetic change to use pre-defined macros. Change-Id: I93e9fa90113d0242599048940b39694660385a6f
2014-02-11Remove redundant arm neon instructions.James Yu
Change-Id: I1fabad59747eb5f68c64275a36c3a1d94daf32a3 Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-11Removing vp9_foreach_transformed_block_uv() function.Dmitry Kovalev
Change-Id: I35ec77b71e6fd686865cead9281e4dd9e9bc9e86
2014-02-11Merge "vp9/common/x86: Silence MSVC warnings in vp9_asm_stubs.c."Tom Finegan
2014-02-11Merge "Add get release decoder frame buffer functions."Frank Galligan
2014-02-10Merge "Encoder quantization cleanup."Dmitry Kovalev
2014-02-10vp9/common/x86: Silence MSVC warnings in vp9_asm_stubs.c.Tom Finegan
Update filter_1dfunction definition to match usage. Change-Id: Ie3cae13dc1ec3f5838c5f29d1c76a1a98a9217fa
2014-02-10Add get release decoder frame buffer functions.Frank Galligan
This CL changes libvpx to call a function when a frame buffer is needed for decode. Libvpx will call a release callback when no other frames reference the frame buffer. This CL adds a default implementation of the frame buffer callbacks. Currently only VP9 is supported. A future CL will add support for applications to supply their own frame buffer callbacks. Change-Id: I1405a320118f1cdd95f80c670d52b085a62cb10d
2014-02-10Convert small static header functions to inlineJim Bankoski
Change-Id: I467b28346a0d8d4d8b96d6c05fc39c34eec26e5c
2014-02-10Convert small static functions in header to inline..Jim Bankoski
Change-Id: Ic4fc01be7738fbabf8c7860dbe3476ab4caf5fc2
2014-02-10Convert small header functions to inlineJim Bankoski
Change-Id: I4e5575f0d7ccfe2361b8cbf78e7dc079272c9f5f
2014-02-10Convert header static functions to inline or make them global.Jim Bankoski
Change-Id: Ib26fbfef3505299f754e5af6c437a85d7746fc28
2014-02-09Converted functions in header to INLINE...Jim Bankoski
Change-Id: I00512c6cef3a4af8df57c7263ceb853fb2db8140
2014-02-09Convert functions to inline that are small .Jim Bankoski
Change-Id: I3b160e93d9319c8e1abda2a60f49f89c409d534b
2014-02-09Convert functions to inline that are in headers static.Jim Bankoski
Change-Id: If1ec3b64be327e8c48ec7efbacde208d2129fdb0
2014-02-09Converted function to inlineJim Bankoski
Change-Id: Iaa4880c8a207cfea509608e1ef4593794b6b31f2
2014-02-09Converted short static functions to inline.Jim Bankoski
Change-Id: I859719d41ced2e35d2765b636e627bb7edc3651e
2014-02-07vp9/common: Silence MSVC warning in vp9_convolve.c.Tom Finegan
Added cast to int to silence MSVC warning. Change-Id: I9ef4709d2e4cf0db070d9e52385c1b3f138b00a5
2014-02-06Finally removing "short" from transform names.Dmitry Kovalev
Change-Id: I5259b68dc1bcceb153e3ffe638a79a59a3019e9d
2014-02-06Layer based rate control for CBR mode.Marco Paniconi
This patch adds a buffer-based rate control for temporal layers, under CBR mode. Added vpx_temporal_scalable_patters.c encoder for testing temporal layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns). Updated datarate unittest with tests for temporal layer rate-targeting. Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-05Merge "Cleaning up vp9_get_pred_context_single_ref_p1()."Dmitry Kovalev
2014-02-05Merge "Removing "_1d" suffix from mips transform code."Dmitry Kovalev
2014-02-05Merge "Optimize bilinear sub-pixel filters in ssse3"Yunqing Wang
2014-02-05Cleaning up vp9_get_pred_context_single_ref_p1().Dmitry Kovalev
Change-Id: I279343b474d7ff41afcf8f1493b6fbf716b51823
2014-02-05Merge "Cleaning up vp9_get_pred_context_single_ref_p2()."Dmitry Kovalev
2014-02-05arm: Consistently use braces around doubleword arguments to vldMartin Storsjo
This isn't strictly necessary, but makes the file more consistent with the other arm assembly source files. Change-Id: I245c9677d89e0ab3f31991e473764858af35b180
2014-02-05arm: Use {} around quadword arguments to vldMartin Storsjo
This fixes building for iOS. Change-Id: Ice082648c02a3faf93891f7ddc122875e2bdc9cb