summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2014-02-03Merge "vp9_filter.h: rename interp_kernel type"James Zern
2014-02-03vp9_filter.h: rename interp_kernel typeJames Zern
-> InterpKernel avoids conflicts in variable names, fixing the build with various toolchains. broken since: 8691565 Removing subpix_fn_table struct. Change-Id: Ib5f6fdbcb494a97b62c75b99d4d826ff25d4c981
2014-02-03Merge "INLINE and reimplement get_unsigned_bits()."Alex Converse
2014-02-03Merge "Removing "_short" suffix from arm transform file names."Dmitry Kovalev
2014-02-03INLINE and reimplement get_unsigned_bits().Alex Converse
The new implementation disagrees when the argument is equal to 2**n but that is never called in practice and based on how it is used the new implementation is correct in that case. Change-Id: Ifbac4ad87d459fe6bd2fd0f400c0340f96617342
2014-02-03Optimize bilinear sub-pixel filters in sse2Yunqing Wang
Using bilinear filters could speed up the codec in real-time mode. This patch added sse2 optimizations of bilinear filters that operate on different-sized blocks. Tests showed that the real-time encoder was speeded up by 3%. Change-Id: If99a7ee4385fcc225c3ee7445d962d5752e57c3f
2014-02-02Layer 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: I9cb6cce2494390ae6096ee17774af7fb9308bde7
2014-01-31static function convert to inline or global vp9_blockd.hJim Bankoski
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
2014-01-31Merge "Rename a loopfilter parameter"Yunqing Wang
2014-01-31Merge "Cleaning up motion compensation code."Dmitry Kovalev
2014-01-31Removing "_short" suffix from arm transform file names.Dmitry Kovalev
Change-Id: Iefe118f61a335e88821a21a9f50fb919212c1507
2014-01-31Rename a loopfilter parameterYunqing Wang
As pointed out by Dmitry and James, "partial" is a Microsoft- specific c++ keyword, and it is renamed. Change-Id: Ia0fc11ceb89e54b3195287f89f7e26edbbe9beb8
2014-01-31Merge "Combining fb_idx_ref_cnt[] and yv12_fb[] arrays."Dmitry Kovalev
2014-01-31Merge "Renaming "mbskip" to "skip"."Dmitry Kovalev
2014-01-31vp9 decoder: row-based multi-threaded loopfilterYunqing Wang
Implemented parallel loopfiltering, which uses existing tile- decoding threads. Each thread works on one row, and when that row is loopfiltered, it moves to next unattended row. To ensure the correct filtering order, threads are synchronized and one superblock is filtered only if the superblocks it depends on are filtered already. To reduce synchronization overhead and speed up the decoder, we use nsync > 1 for high resolution. Performance tests: 1. on desktop: 8-tile 4k video using 8 threads, speedup: 70% - 80% 4-tile HD video using 4 threads, speedup: ~35% 2. on mobile device(Nexus 7): 4-tile 1080p video using 4 threads, speedup: 18% - 25% 4-tile 1080p video using 2 threads, speedup: 10% - 15% Change-Id: If54b4a11960dd706c22d5ad145ad94156031f36a
2014-01-29Merge "create super fast rtc mode"Yaowu Xu
2014-01-29Renaming "mbskip" to "skip".Dmitry Kovalev
Change-Id: I27a30b43eae026a77f92958e2238d02d9cdf7832
2014-01-29Merge "Finally removing vp9_setup_interp_filters() function."Dmitry Kovalev
2014-01-29Combining fb_idx_ref_cnt[] and yv12_fb[] arrays.Dmitry Kovalev
Adding new RefCntBuffer struct which contains reference counter and image buffer. Change-Id: I71c1f532faa13442c32c43fc03ec45b6f88fb844
2014-01-29Finally removing vp9_setup_interp_filters() function.Dmitry Kovalev
Change-Id: If446225afbb49f6033c2a4516a37c377de6f70f7
2014-01-29create super fast rtc modeJim Bankoski
This patch only works if the video is a width and height that are both a multiple of 32.. It sets every partition to 16x16, and does INTRADC only on the first frame and ZEROMV on every other frame. It always does does the largest possible transform, and loop filter level is set to 4. Was ~20% faster than speed -5 of vp8 Now 20% slower but adds motion search ( every block ), nearest, near and zeromv The SVC test was changed because - while this realtime mode produces bad quality albeit quickly, it isn't obeying all the rules it should about which frames are available. Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
2014-01-28Add macros for convolve functionsYunqing Wang
Added macros to reduce the code duplication. Change-Id: I1916aa5a386ea07d961d4ec439ab09bb8c45487d
2014-01-28Merge "Decoupling set_ref_ptrs() and vp9_setup_interp_filters()."Dmitry Kovalev
2014-01-28Merge "Removing _1d suffix from transform names."Dmitry Kovalev
2014-01-28Merge "Add vp9_tm_predictor_32x32 neon implementation which is 7.8 times ↵hkuang
faster than C."
2014-01-27Removing _1d suffix from transform names.Dmitry Kovalev
It is enough to specify (e.g.) idct16, it is obviously different from idct16x16. Change-Id: I6b408a37a945de3162429380b59a775b03b95db0
2014-01-27Add vp9_tm_predictor_32x32 neon implementationhkuang
which is 7.8 times faster than C. Change-Id: I858ef4ec09202a07d445da8db702783d6d9d7321
2014-01-27Decoupling set_ref_ptrs() and vp9_setup_interp_filters().Dmitry Kovalev
Change-Id: I8d17867a4772554cbba2bd113cc5b4c99d50146d
2014-01-27Merge "Removing subpix_fn_table struct."Dmitry Kovalev
2014-01-27Fix the vp9_tm_predictor_8x8_neon.hkuang
Change-Id: I832cf83871044bfee7b7e57dbd31bae05cbd53e9
2014-01-24Removing subpix_fn_table struct.Dmitry Kovalev
We don't use different filter kernels for x and y, it is always one kernel for both directions. Change-Id: Iefcbb02ec74bf46ea20d9dca672a3efd5d631517
2014-01-24Merge "Renaming INTERPOLATION_TYPE to INTERP_FILTER."Dmitry Kovalev
2014-01-24Merge "Optimize vp9_tm_predictor_8x8_neon function"Frank Galligan
2014-01-24Renaming INTERPOLATION_TYPE to INTERP_FILTER.Dmitry Kovalev
Corresponding renames: subpel_kernel => interp_kernel vp9_get_filter_kernel() => vp9_get_interp_kernel() pred_filter_type => pred_interp_filter adaptive_pred_filter_type => adaptive_pred_interp_filter mcomp_filter_type => interp_filter read_interp_filter_type() => read_interp_filter() write_interp_filter_type() => write_interp_filter() fix_mcomp_filter_type() => fix_interp_filter() Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
2014-01-24Merge "Removing MODE_STATS."Dmitry Kovalev
2014-01-24Merge "Revert external frame buffer code."Frank Galligan
2014-01-24Optimize vp9_tm_predictor_8x8_neon functionFrank Galligan
Change-Id: Ia12aae491202098ff66366145aa0c3da38dc97e5
2014-01-24Merge "Add vp9_tm_predictor_16x16 neon implementation which is 3.5 times ↵hkuang
faster than C."
2014-01-24Merge changes ↵James Zern
I826655a7,I5164df72,Iba9b198c,Ide9a6846,I4f51ce85,I0e6aa00f,Ic334da9a,I252f5f8a,I7865db2d,I13b434b1 * changes: test/: remove unnecessary extern "C"s top-level: add extern "C" to headers vpx_ports: add extern "C" to headers vpx: add extern "C" to headers vp9/encoder: add extern "C" to headers vp9/decoder: add extern "C" to headers vp9/common: add extern "C" to headers vp8/encoder: add extern "C" to headers vp8/decoder: add extern "C" to headers vp8/common: add extern "C" to headers
2014-01-24Add vp9_tm_predictor_16x16 neon implementationhkuang
which is 3.5 times faster than C. Change-Id: I24439ba7a2971829c11620f34848facf2c916678
2014-01-24Revert external frame buffer code.Frank Galligan
A future CL will add external frame buffers differently. Squash commit of four revert commits: Revert "Increase required number of external frame buffers" This reverts commit 9e41d569d7c84dd9ca8f0047c15377a883945685. Revert "Add external constants." This reverts commit bbf53047b03106e3c2e24b28cb836cc838db5ee8. Revert "Add frame buffer lru cache." This reverts commit fbada948fa345e67acf9aa41a8f9a78f5dfe8648. Conflicts: vpxdec.c Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005 Revert "Add support to pass in external frame buffers." This reverts commit 10f891696bc4c972c13cc9fde2c53470501a03e2. Conflicts: test/external_frame_buffer_test.cc vp9/common/vp9_alloccommon.c vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/encoder/vp9_onyx_if.c vp9/vp9_dx_iface.c vpx/vpx_decoder.h vpx/vpx_external_frame_buffer.h vpx_scale/generic/yv12config.c vpxdec.c Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
2014-01-24Merge changes I24ad1f0f,I33be1366Adrian Grange
* changes: Reorder functions to avoid forward declaration Rename set_scale_factors as set_ref_ptrs
2014-01-23Cleaning up motion compensation code.Dmitry Kovalev
Change-Id: I74cf028e8c732cd0dbc070326152d3085b824a80
2014-01-23vp9/common: add extern "C" to headersJames Zern
Change-Id: Ic334da9aee968e33762c2b25d9fbad24c844b411
2014-01-22Merge "Cleaning up vp9_refining_search_sad() function."Dmitry Kovalev
2014-01-22Add tm_predictor_8x8 neon implementation.hkuang
Change-Id: I76c2720546b737cb63018a8ab6a3ff62a291786d
2014-01-22Rename set_scale_factors as set_ref_ptrsAdrian Grange
New name better describes what the function does. Change-Id: I33be1366a81f058a9854b804bcde211061187dc7
2014-01-22Merge "Match vp9_coefband_trans_* declarations"Johann
2014-01-21Match vp9_coefband_trans_* declarationsJohann
VS2013 Chromium builds failed with: warning C4742: 'vp9_coefband_trans_8x8plus' has different alignment in https://code.google.com/p/chromium/issues/detail?id=336620 Change-Id: I865f72bc23ae958531eeb5f497002c12e9a36fcd
2014-01-21Seperate the border size for encoder and decoder.hkuang
Encoder's boarder is still 160, while decoder's boarder will be 32. With on demand and separate boarder buffer for boarder extension. The decoder's boarder does not need to to 160 anymore. Change-Id: I93d5aaff15a33a2213e9761eaa37c5f2870747db