- 07 Feb, 2013 2 commits
-
-
Jingning Han authored
Refactor the 8x8 inverse hybrid transform. It is now consistent with the new inverse DCT. Overall performance loss (due to the use of this variant ADST, and the rounding errors in the butterfly implementation) for std-hd is -0.02. Fixed BUILD warning. Devise a variant of the original ADST, which allows butterfly computation structure. This new transform has kernel of the form: sin((2k+1)*(2n+1) / (4N)). One of its butterfly structures using floating-point multiplications was reported in Z. Wang, "Fast algorithms for the discrete W transform and for the discrete Fourier transform", IEEE Trans. on ASSP, 1984. This patch includes the butterfly implementation of the inverse ADST/DCT hybrid transform of dimension 8x8. Change-Id: I3533cb715f749343a80b9087ce34b3e776d1581d
-
Ronald S. Bultje authored
Change-Id: I8508f1a3d3430f998bb9295f849e88e626a52a24
-
- 14 Jan, 2013 5 commits
-
-
Ronald S. Bultje authored
This experiment gives little gains and adds relatively much code complexity (and it hinders other experiments), so let's get rid of it. Change-Id: Id25e79a137a1b8a01138aa27a1fa0ba4a2df274a
-
Yaowu Xu authored
Change-Id: Iac7f3d108863552b850c92c727e00c95571c9e96
-
Yaowu Xu authored
Change-Id: I0c94475075e66e13cfe4c20fab7db6474441ae86
-
Yaowu Xu authored
Change-Id: Ibcc342efac0a9be7a21d9b2c09984d9e16bbb225
-
Adrian Grange authored
Removed the experimental flag from around the prediction filter. Change-Id: Ic1dd2db8fe8ac17ed5129f83094d4c5cdd5527d2
-
- 10 Jan, 2013 3 commits
-
-
Ronald S. Bultje authored
Change-Id: I615651e4c7b09e576a341ad425cf80c393637833
-
Ronald S. Bultje authored
Change-Id: If6c88752dffdb566f8d4322f135145270716fb8e
-
Yaowu Xu authored
when larger transforms are used Change-Id: I25251442b44bf251df4c25a1c1fcf71fb2ad913b
-
- 09 Jan, 2013 1 commit
-
-
Adrian Grange authored
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
-
- 08 Jan, 2013 1 commit
-
-
Deb Mukherjee authored
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
-
- 06 Jan, 2013 1 commit
-
-
Ronald S. Bultje authored
3.2% gains on std/hd, 1.0% gains on hd. Change-Id: I481d5df23d8a4fc650a5bcba956554490b2bd200
-
- 20 Dec, 2012 1 commit
-
-
Deb Mukherjee authored
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
-
- 13 Dec, 2012 1 commit
-
-
Johann authored
Change-Id: I63423f8f2ec152cb490ddd9e6a94e431a11858f6
-
- 10 Dec, 2012 1 commit
-
-
John Koleszar authored
First attempt at avoiding all the compile-time environment detection for cases where you can generate the environments statically, as when the real build is being performed by another build system. Change-Id: Ie3cf95d71d6c5169900f31e263b84bc123cdf73f
-
- 08 Dec, 2012 1 commit
-
-
Yaowu Xu authored
This commit changed the ENTROPY_CONTEXT conversion between MBs that have different transform sizes. In additioin, this commit also did a number of cleanup/bug fix: 1. removed duplicate function vp9_fix_contexts() and changed to use vp8_reset_mb_token_contexts() for both encoder and decoder 2. fixed a bug in stuff_mb_16x16 where wrong context was used for the UV. 3. changed reset all context to 0 if a MB is skipped to simplify the logic. Change-Id: I7bc57a5fb6dbf1f85eac1543daaeb3a61633275c
-
- 07 Dec, 2012 1 commit
-
-
Ronald S. Bultje authored
This adds Debargha's DCT/DWT hybrid and a regular 32x32 DCT, and adds code all over the place to wrap that in the bitstream/encoder/decoder/RD. Some implementation notes (these probably need careful review): - token range is extended by 1 bit, since the value range out of this transform is [-16384,16383]. - the coefficients coming out of the FDCT are manually scaled back by 1 bit, or else they won't fit in int16_t (they are 17 bits). Because of this, the RD error scoring does not right-shift the MSE score by two (unlike for 4x4/8x8/16x16). - to compensate for this loss in precision, the quantizer is halved also. This is currently a little hacky. - FDCT and IDCT is double-only right now. Needs a fixed-point impl. - There are no default probabilities for the 32x32 transform yet; I'm simply using the 16x16 luma ones. A future commit will add newly generated probabilities for all transforms. - No ADST version. I don't think we'll add one for this level; if an ADST is desired, transform-size selection can scale back to 16x16 or lower, and use an ADST at that level. Additional notes specific to Debargha's DWT/DCT hybrid: - coefficient scale is different for the top/left 16x16 (DCT-over-DWT) block than for the rest (DWT pixel differences) of the block. Therefore, RD error scoring isn't easily scalable between coefficient and pixel domain. Thus, unfortunately, we need to compute the RD distortion in the pixel domain until we figure out how to scale these appropriately. Change-Id: I00386f20f35d7fabb19aba94c8162f8aee64ef2b
-
- 16 Nov, 2012 1 commit
-
-
Deb Mukherjee authored
A patch on compound inter-intra prediction. In compound inter-intra prediction, a new predictor for 16x16 inter coded MBs are obtained by combining a single inter predictor with a 16x16 intra predictor, in a manner that the weight varies with distance from the top/left boundary. The current search strategy is to combine the best inter mode with the best intra mode obtained independently. Results so far: derf +0.31% yt +0.32% std-hd +0.35% hd +0.42% It is conceivable that the results would improve somewhat with a more thorough search strategy where all intra modes are searched given the best mv, or even a joint search for the best mv and the best intra mode. Change-Id: I7951f1ed0d6eb31ca32ac24d120f1585bcd8d79b
-
- 10 Nov, 2012 1 commit
-
-
Deb Mukherjee authored
Preliminary patch on a new 4x4 intra mode B_CONTEXT_PRED where the dominant direction from the context is used to encode. Various decoder changes are needed to support decoding of B_CONTEXT_PRED in conjunction with hybrid transforms since the scan order and tokenization depends on the actual direction of prediction obtained from the context. Currently the traditional directional modes are used in conjunction with the B_CONTEXT_PRED, which also seems to provide the best results. The gains are small - in the 0.1% range. Change-Id: I5a7ea80b5218f42a9c0dfb42d3f79a68c7f0cdc2
-
- 07 Nov, 2012 1 commit
-
-
Yaowu Xu authored
Change-Id: Ib39ad47a7d188f3b45416937b7eeb28c3e79b74c
-
- 06 Nov, 2012 1 commit
-
-
Johann authored
Documentation is typically auto-detected by checking for php and doxygen. Add an option to explicitly disable it. Remove toggle keywords from libraries, examples, documentation and unit tests. They were not consistent with the default status. Change-Id: I21049675ccfd8e58ac612cd058641b197db5c0eb
-
- 01 Nov, 2012 1 commit
-
-
Ronald S. Bultje authored
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
-
- 30 Oct, 2012 4 commits
-
-
Paul Wilkins authored
Delete code relating to featureupdates experiment. Change-Id: If218762c658bb8cbb3007cf2069123b3e05adcbc
-
Yaowu Xu authored
As suggested by Paul, this commit separate the subpel refmv selection into a separate experiment. It also changed a couple variable names to better reflect the nature of the variables. Change-Id: Id951c3cadc61a982dd15afe641000f60213b8995
-
Yaowu Xu authored
Now this experiment has been merged. Change-Id: I6c93784df89434c52a4eb8f977cd3745e269abf9
-
Ronald S. Bultje authored
This way, the code is not compiled in by default, thus decreasing overall binary size. Change-Id: I85cac8f5a22a51a7d99c820ef6d6ed179d4106a0
-
- 22 Oct, 2012 3 commits
-
-
Deb Mukherjee authored
Change-Id: I0d306b0062be59bc785b65882691c956c8b5e7c8
-
Deb Mukherjee authored
Removes the old mv encoding code. Change-Id: I1026d48cc5ac15ccb776f98463e929254c3dc7da
-
Deb Mukherjee authored
Change-Id: I99f1982b30a630a9a070a8326d83b34a33cba14c
-
- 11 Oct, 2012 1 commit
-
-
Deb Mukherjee authored
Change-Id: I22aa803ffff330622cdb77277e7b196a9766f882
-
- 10 Oct, 2012 1 commit
-
-
Johann authored
Documentation is typically auto-detected by checking for php and doxygen. Add an option to explicitly disable it. Remove toggle keywords from libraries, examples, documentation and unit tests. They were not consistent with the default status. Change-Id: I21049675ccfd8e58ac612cd058641b197db5c0eb
-
- 09 Oct, 2012 1 commit
-
-
Ronald S. Bultje authored
Results: derf (vanilla or +hybridtx) +0.2% and (+hybrid16x16 or +tx16x16) +0.7%-0.8%; HD (vanilla or +hybridtx) +0.1-0.2% and (+hybrid16x16 or +tx16x16) +1.4%, STD/HD (vanilla or +hybridtx) about even, and (+hybrid16x16 or +tx16x16) +0.8-1.0%. Change-Id: I03899e2f7a64e725a863f32e55366035ba77aa62
-
- 06 Sep, 2012 1 commit
-
-
Deb Mukherjee authored
Adds a new experiment with redesigned/refactored motion vector entropy coding. The patch also takes a first step towards separating the integer and fractional pel components of a MV. However the fractional pel encoding still depends on the integer pel part and so they are not fully independent. Further experiments are in progress to see how much they can be decoupled without affecting performance. All components including entropy coding/decoding, costing for MV search, forward updates and backward updates to probability tables, have been implemented. Results so far: derf: +0.19% std-hd: +0.28% yt: +0.80% hd: +1.15% Patch: Simplifies the fractional pel models: derf: +0.284% std-hd: +0.289% yt: +0.849% hd: +1.254% Patch: Some changes in the models, rebased. derf: +0.330% std-hd: +0.306% yt: +0.816% hd: +1.225% Change-Id: I646b3c48f3587f4cc909639b78c3798da6402678
-
- 30 Aug, 2012 1 commit
-
-
Jingning Han authored
Enable ADST/DCT of dimension 16x16 for I16X16 modes. This change provides benefits mostly for hd sequences. Set up the framework for selectable transform dimension. Also allowing quantization parameter threshold to control the use of hybrid transform (This is currently disabled by setting threshold always above the quantization parameter. Adaptive thresholding can be built upon this, which will further improve the coding performance.) The coding performance gains (with respect to the codec that has all other configuration settings turned on) are derf: 0.013 yt: 0.086 hd: 0.198 std-hd: 0.501 Change-Id: Ibb4263a61fc74e0b3c345f54d73e8c73552bf926
-
- 24 Aug, 2012 1 commit
-
-
Paul Wilkins authored
Alternative strategy for finding a list of candidate motion vectors to use as reference values in mv coding and as nearest and near. Sort by sad in vp8_find_best_ref_mvs() rather than just pick the best. Allow 0,0 as a best ref option but not a nearest or near unless there are no alternatives. Encode/Decode verified on at least some clips. Some commented out experimental and stats code still in place. Gain over existing code averages about 1% on derf (alll metrics) with improvement on all clips. Other test results pending. The entropy coding of the mode (nearest/near etc) still depends upon and requires the old "findnear" code so this needs looking at and may provide room for further gains. Change-Id: I871d7cba1d1c379c4bad9bcccce1fb19c46b8247
-
- 21 Aug, 2012 1 commit
-
-
John Koleszar authored
This is being reimplemented more generically in terms of affine transforms. Change-Id: I9300bfde5f8b93c708c64f59427087720f8ed782
-
- 14 Aug, 2012 2 commits
-
-
Christian Duvivier authored
Change-Id: I4b911e4173da30c164bde7ea50bc80a70fbbb745
-
Mike Frysinger authored
If you build with --enabled-shared on a Linux arch not explicitly listed, the configure script will abort because it didn't detect "linux" in the fallback generic-gnu tuple. Since this is the fallback tuple and people are passing --enable-shared, assume the user knows what they're in for. Change-Id: Ia35b657e7247c8855e3a94fca424c9884d4241e3
-
- 13 Aug, 2012 1 commit
-
-
Daniel Kang authored
Also add warnings for undefined macros in the C pre-processor Change-Id: I1ec30e57c5a49fb72151a4cf140d7eeb0fb1d779
-