summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2013-01-14Merge prediction filterAdrian Grange
Removed the experimental flag from around the prediction filter. Change-Id: Ic1dd2db8fe8ac17ed5129f83094d4c5cdd5527d2
2013-01-12Further enhancements/fixes on dct/dwt hybrid txfmDeb Mukherjee
Fixes some scaling issues. Adds an option to only compute the dct on the low-low subband for 32x32 and 64x64 blocks using only a single 16x16 dct after 1 and 2 wavelet decomposition levels respectively. Also adds an option to use a 8x8 dct as building block. Currenlty with the 2/6 filter and with a single 16x16 dct on the low low band, the reuslts compared to full 32x32 dct is as follows: derf: -0.15% yt: -0.29% std-hd: -0.18% hd: -0.6% These are my current recommended settings, since the 2/6 filter is very simple. Results with 8x8 dct are about 0.3% worse. Change-Id: I00100cdc96e32deced591985785ef0d06f325e44
2013-01-11Merge "WIP: Added sse2 version of vp9_mb_lpf_horizontal_edge_w" into ↵Jim Bankoski
experimental
2013-01-11WIP: Added sse2 version of vp9_mb_lpf_horizontal_edge_wScott LaVarnway
and vp9_mb_lpf_vertical_edge_w_sse2. This was quickly done so we can run some tests over the weekend. Future commits will optimize/refactor these functions further. The decoder performance improved by ~17% for the clip used. Change-Id: I612687cd5a7670ee840a0cbc3c68dc2b84d4af76
2013-01-11Merge "Add loop filtering for UV plane" into experimentalYaowu Xu
2013-01-11Add loop filtering for UV planeYaowu Xu
On block boundary within a MB when 8x8 block boundary only is filtered for Y. Change-Id: Ie1c804c877d199e78e2fecd8c2d3f1e114ce9ec1
2013-01-11Initial sse2 version of the wide loopfiltersScott LaVarnway
Updated the rtcd_defs and used the sse2 uv version of the loopfilter. The performance improved by ~8% for the test clip used. Change-Id: I5a0bca3b6674198d40ca4a77b8cc722ddde79c36
2013-01-11Merge "Reduce the usage of widerlpf" into experimentalYaowu Xu
2013-01-11rtcd for new wider loop filtersJim Bankoski
Change-Id: I8826bcdcf72ba6d86bde31cd13902a710399805c
2013-01-10Reduce the usage of widerlpfYaowu Xu
The commit changed to not to use wider lpf within a superblock when 32x32 transform is used for the block. The commit also changed to use the shorter version of loop filtering: for UV planes. Change-Id: I344c1fb9a3be9d1200782a788bcb0b001fedcff8
2013-01-10Merge tx32x32 experiment.Ronald S. Bultje
Change-Id: I615651e4c7b09e576a341ad425cf80c393637833
2013-01-10Merge "Merge superblocks64 experiment." into experimentalRonald S. Bultje
2013-01-09Merge superblocks64 experiment.Ronald S. Bultje
Change-Id: If6c88752dffdb566f8d4322f135145270716fb8e
2013-01-09experiment a wider loop filter for MB borderYaowu Xu
when larger transforms are used Change-Id: I25251442b44bf251df4c25a1c1fcf71fb2ad913b
2013-01-09New prediction filterAdrian Grange
This patch removes the old pred-filter experiment and replaces it with one that is implemented using the switchable filter framework. If the pred-filter experiment is enabled, three interopolation filters are tested during mode selection; the standard 8-tap interpolation filter, a sharp 8-tap filter and a (new) 8-tap smoothing filter. The 6-tap filter code has been preserved for now and if the enable-6tap experiment is enabled (in addition to the pred-filter experiment) the original 6-tap filter replaces the new 8-tap smooth filter in the switchable mode. The new experiment applies the prediction filter in cases of a fractional-pel motion vector. Future patches will apply the filter where the mv is pel-aligned and also to intra predicted blocks. Change-Id: I08e8cba978f2bbf3019f8413f376b8e2cd85eba4
2013-01-08Adds 64x64 hybrid dct/dwt transformDeb Mukherjee
This is to add to the 64x64 transform experiment as an alternative to a 64x64 DCT. Two levels of wavelet decomposition is used on a 64x64 block, followed by 16x16 DCT on the four lowest subbands. The highest three subbands are left untransformed after the first level DWT. Change-Id: I3d48d5800468d655191933894df6b46e15adca56
2013-01-08Merge "Merge superblocks (32x32) experiment." into experimentalRonald S. Bultje
2013-01-08Merge "vp9_sub_pixel_variance16x2 SSE2 optimization" into experimentalYunqing Wang
2013-01-08Merge superblocks (32x32) experiment.Ronald S. Bultje
Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
2013-01-08vp9_sub_pixel_variance16x2 SSE2 optimizationYunqing Wang
About 5% decoder speedup. Change-Id: Ib6687d337af758a536a0e7e289f400990f1f9794
2013-01-08Merge vp9-preview changes into experimental branchJohn Koleszar
Incorportate vp9-preview changes by merging master branch into experimental. Conflicts: test/test.mk vp9/common/vp9_filter.c vp9/common/vp9_idctllm.c vp9/common/vp9_invtrans.h vp9/common/vp9_mbpitch.c vp9/common/vp9_rtcd_defs.sh vp9/common/vp9_systemdependent.h vp9/common/vp9_type_aliases.h vp9/common/x86/vp9_asm_stubs.c vp9/common/x86/vp9_subpixel_mmx.asm vp9/decoder/vp9_decodframe.c vp9/decoder/vp9_dequantize.c vp9/decoder/vp9_dequantize.h vp9/decoder/vp9_onyxd_int.h vp9/encoder/vp9_bitstream.c vp9/encoder/vp9_encodeframe.c vp9/encoder/vp9_rdopt.c Change-Id: I17f51c3666d1b59cf1a699f87607cbc5d30a87c5
2013-01-07minor loop filter refactoring and cleanupYaowu Xu
This commit did a couple of minor cleanup/refactoring to prepare for futher loop filter experiments. It merged y_only version of loop filter function into the regular one, which makes sure that same logic is used for functions for picking level and for actual loop filtering. Change-Id: Id10c94dccd45f58e5310bacfdf6ee63cbb60b86f
2013-01-0564x64 blocksize support.Ronald S. Bultje
3.2% gains on std/hd, 1.0% gains on hd. Change-Id: I481d5df23d8a4fc650a5bcba956554490b2bd200
2013-01-04Further change to mv reference search.Paul Wilkins
This experimental change reorders the search so that all possible references that match the target reference frame are tested first and these in order of distance from the current block. These will usually be the highest scoring candidates. If we do not find enough good candidates this way we try non matching cases. These will usually be lower scoring candidates. The change in order together with breakouts when we have found enough candidates should reduce the computational cost and especially reduce the number of sort operations. Quality Results: Std Hd +0.228%, Hd +0.074%, YT +0.046%, derf +0.137% This effect is probably due to the fact that more distant weak candidates are now less likely to get "promoted" over near candidates even if they are repeated. Change-Id: Iec37e77d88a48ad0ee1f315b14327a95d63f81f6
2013-01-02Merge "Switch the order of calculating 2-D inverse transform" into experimentalYunqing Wang
2013-01-02Added update-able mv-ref probabilities.Paul Wilkins
Part of NEW_MVREF experiment. Added update-able probabilities. Change-Id: I5a4fcf4aaed1d0d1dac980f69d535639a3d59401
2012-12-27Switch the order of calculating 2-D inverse transformYunqing Wang
The 2-D inverse transform X = M1*Z*Transposed_M2 was calculated in 2 steps from left to right: 1. Vertical transform: Y = M1*Z 2. Horizontal transform: X= Y*Transposed_M2 In SIMD, a transpose is needed in vertical transform. Here, switched the calculation order to do it from right to left. In this way, we could eliminate that transpose by writing the intermediate results out to their transposed positions. Change-Id: I34dfe5eb01292f6e363712420d99475e2e81e12c
2012-12-26Build fixes to merge vp9-preview into masterJohn Koleszar
Various fixups to resolve issues when building vp9-preview under the more stringent checks placed on the experimental branch. Change-Id: I21749de83552e1e75c799003f849e6a0f1a35b07
2012-12-21Fix a warningYunqing Wang
Fixed the warning: the size of array ‘intermediate_buffer’ can’t be evaluated [-Wvla]. Change-Id: Ibcffd6969bd71cee0c10f7cf18960e58cd0bd915
2012-12-21Removed mmx versions of vp9_bilinear_predict filtersScott LaVarnway
These filters will not work with VP9. Change-Id: Ic26c77961084fcea6bfa97f4cd95afdea2282e85
2012-12-21Merge "add emmintrin_compat.h for builds with gcc < 4" into vp9-previewJohn Koleszar
2012-12-21fixed sizes of global arraysJim Bankoski
Change-Id: Ibc077cf1c1da0c86063f88c6d3073c6876989119
2012-12-20add emmintrin_compat.h for builds with gcc < 4James Zern
Change-Id: If7822e6fcd0d3568b934032322b19ba3e401df26
2012-12-20add private to assembly files to insure proper chromebuildJim Bankoski
Change-Id: I6e43ca73f35401a974ed8ee27738d4318f09fd37
2012-12-19New previous coef context experimentDeb Mukherjee
Adds an experiment to derive the previous context of a coefficient not just from the previous coefficient in the scan order but from a combination of several neighboring coefficients previously encountered in scan order. A precomputed table of neighbors for each location for each scan type and block size is used. Currently 5 neighbors are used. Results are about 0.2% positive using a strategy where the max coef magnitude from the 5 neigbors is used to derive the context. Change-Id: Ie708b54d8e1898af742846ce2d1e2b0d89fd4ad5
2012-12-19Disabled x86inc style assembly functionsScott LaVarnway
Temporary fix for 32-bit mac build errors. Change-Id: I2038f033cac16ea796097d0edd0f1c3da03246d7
2012-12-18Use standard integer types for pixel values and coefficients.Ronald S. Bultje
For coefficients, use int16_t (instead of short); for pixel values in 16-bit intermediates, use uint16_t (instead of unsigned short); for all others, use uint8_t (instead of unsigned char). Change-Id: I3619cd9abf106c3742eccc2e2f5e89a62774f7da
2012-12-18Merge "Give 4x4 scan and coef_band tables a _4x4 suffix." into experimentalRonald S. Bultje
2012-12-18Merge "Remove redundant "Prob" type (it's a duplicate of vp9_prob)." into ↵Ronald S. Bultje
experimental
2012-12-18Fix a warningYunqing Wang
Fixed the warning: the size of array ‘intermediate_buffer’ can’t be evaluated [-Wvla]. Change-Id: Ibcffd6969bd71cee0c10f7cf18960e58cd0bd915
2012-12-18Give 4x4 scan and coef_band tables a _4x4 suffix.Ronald S. Bultje
This matches the names of tables for all other transform sizes. Change-Id: Ia7681b7f8d34c97c27b0eb0e34d490cd0f8d02c6
2012-12-18Remove redundant "Prob" type (it's a duplicate of vp9_prob).Ronald S. Bultje
Change-Id: I9548891d7b8ff672a31579bcdce74e4cea529883
2012-12-17Remove vp9_type_aliases.hJohn Koleszar
Prefer the standard fixed-size integer typedefs. Change-Id: Iad75582350669e49a8da3b7facb9c259e9514a5b
2012-12-17fixed a warningYaowu Xu
where variable is used without initialization Change-Id: Ic6b52623802641060cad4a72271050aeaf20ad5c
2012-12-13prevents redefine of INT64_MAXYaowu Xu
MSVC 2012 (_MSC_VER=1600) introduced the definition, this commit prevents the redefinition of the macro Change-Id: I7de92e7e9e865a342f2bcc4b071f8d3c9b2a508c
2012-12-13remove floating point inverse transformsYaowu Xu
Change-Id: I9c651bd7c161974bf5f929446361b00d85e57a3f
2012-12-13fixed build issue with round()Yaowu Xu
not defined in msvc Change-Id: I8fe8462a0c2f636d8b43c0243832ca67578f3665
2012-12-13Merge "Further improvements on the hybrid dwt/dct expt" into experimentalDeb Mukherjee
2012-12-13Further improvements on the hybrid dwt/dct exptDeb Mukherjee
Modifies the scanning pattern and uses a floating point 16x16 dct implementation for now to handle scaling better. Also experiments are in progress with 2/6 and 9/7 wavelets. Results have improved to within ~0.25% of 32x32 dct for std-hd and about 0.03% for derf. This difference can probably be bridged by re-optimizing the entropy stats for these transforms. Currently the stats used are common between 32x32 dct and dwt/dct. Experiments are in progress with various scan pattern - wavelet combinations. Ideally the subbands should be tokenized separately, and an experiment will be condcuted next on that. Change-Id: Ia9cbfc2d63cb7a47e562b2cd9341caf962bcc110
2012-12-13Merge "New default coefficient/band probabilities." into experimentalRonald S. Bultje