summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2013-03-19Remove TX size segment featurePaul Wilkins
Change-Id: I0d226e4cb240caced37230f46905bf69b46e0cce
2013-03-18Changes to rd error_per_bit calculation.Paul Wilkins
Specifically changes to retain more precision especially at low Q through to the point of use. Change-Id: Ief5f010f2ca4daaabef49520e7edb46c35daf397
2013-03-18Merge "Fix ENTROPY_STATS code in vp9_tokenize.c." into experimentalRonald S. Bultje
2013-03-18Fix ENTROPY_STATS code in vp9_tokenize.c.Ronald S. Bultje
Change-Id: I9b4cb1e2ce6c6a99cffd473ff2fa7579bd318fcd
2013-03-18Optimize 8x8 idct functionYunqing Wang
Wrote sse2 functions of vp9_short_idct8x8 and vp9_short_idct10_8x8. Compared to c version, the sse2 version is 2X faster. The decoder test didn't show noticeable gain since 8x8 idct doesn't take much of decoding time (less than 1% in my test). Change-Id: I56313e18cd481700b3b52c4eda5ca204ca6365f3
2013-03-18Merge "Replace scaling byte with explicit display size" into experimentalJohn Koleszar
2013-03-18Replace scaling byte with explicit display sizeJohn Koleszar
If the intended display size is different than the size the frame is coded at, then send that size explicitly in the bitstream. Adds a new bit to the frame header to indicate whether the extra size fields are present. Change-Id: I525c66f22d207efaf1e5f903c6a2a91b80245854
2013-03-18Merge "Adapt ARNR filter length and strength." into experimentalPaul Wilkins
2013-03-18Merge "Fix pulsing issue with scaling" into experimentalJohn Koleszar
2013-03-18Merge "Add VP9_GET_REFERENCE control" into experimentalJohn Koleszar
2013-03-18Adapt ARNR filter length and strength.Paul Wilkins
Adjust the filter length and strength for each ARF group based on a measure of difficulty (the boost) and the active q range. Remove lower limit on RDMULT value. Average gains on the different sets in range 0.4%-0.9%. However the ARNR changes give a very big boost on a few clips. Eg. Soccer ~5%, in derf set and Cyclist ~ 10% in the std-hd set Change-Id: I2078d78798e27ad2bcc2b32d703ea37b67412ec4
2013-03-18Merge "put refmvselection under experiment" into experimentalYaowu Xu
2013-03-18Merge "removed reference to "LLM" and "x8"" into experimentalYaowu Xu
2013-03-18Merge "Remove some unused rate control variables" into experimentalJohn Koleszar
2013-03-18Merge "Fix use of NaN in firstpass" into experimentalJohn Koleszar
2013-03-16Merge "Context-pred fix to not use top/left on edges" into experimentalDeb Mukherjee
2013-03-16Context-pred fix to not use top/left on edgesDeb Mukherjee
This fix resolves some of the mismatch issues being seen recently. While this is the right thing to do when tiling is used for this experiment, it is not the underlying cause of the the mismatches. Something else is causing writing outside of the allowable frame area in the encoder leading to this mismatch. Change-Id: If52c6f67555aa18ab8762865384e323b47237277
2013-03-15Remove some unused rate control variablesJohn Koleszar
These variables are unused, and are subject to overflowing, causing assertions when built with -ftrapv. Change-Id: Ia00a3201af309906c05bcd4b23a643925ed6ea86
2013-03-15Fix use of NaN in firstpassJohn Koleszar
If the second reference is better than the first in the long term, it was possible to try to take the fractional exponent of a negative number, giving an undefined result. Change-Id: I1dd08286747ceae960eb03bb5d98a383cc9d253b
2013-03-15Merge "Cleaning up frame decoding functionality." into experimentalJohn Koleszar
2013-03-15Faster vp9_short_fdct16x16.Christian Duvivier
Scalar path is about 1.5x faster (3.1% overall encoder speedup). SSE2 path is about 7.2x faster (7.8% overall encoder speedup). Change-Id: I06da5ad0cdae2488431eabf002b0d898d66d8289
2013-03-14Merge "force lossless coding at very high quality end" into experimentalYaowu Xu
2013-03-14Merge "Remove leftover reference to 2nd order dc/ac quant" into experimentalYaowu Xu
2013-03-14Cleaning up frame decoding functionality.Dmitry Kovalev
Change-Id: I25424904fb8541fc19d00d9fbc592379374b98c0
2013-03-14force lossless coding at very high quality endYaowu Xu
Change-Id: I75fc4eee10bee9efd419d248827290cce8e6d637
2013-03-14Remove leftover reference to 2nd order dc/ac quantYaowu Xu
Change-Id: Ib8dacf1d2797743569771b8f699e40e1aeb085cb
2013-03-13Fix pulsing issue with scalingJohn Koleszar
Updates the YV12_BUFFER_CONFIG structure to be crop-aware. The exiting width/height parameters are left unchanged, storing the width and height algined to a 16 byte boundary. The cropped dimensions are added as new fields. This fixes a nasty visual pulse when switching between scaled and unscaled frame dimensions due to a mismatch between the scaling ratio and the 16-byte aligned sizes. Change-Id: Id4a3f6aea6b9b9ae38bdfa1b87b7eb2cfcdd57b6
2013-03-13Add VP9_GET_REFERENCE controlJohn Koleszar
This is like VP8_COPY_REFERENCE, but returns a pointer to the reference frame rather than a copy of it. This is useful when the application doesn't know what the size of the reference is, as is the case when scaling is in effect. Change-Id: I63667109f65510364d0e397ebe56217140772085
2013-03-13Support +/-2048 motion vector codingJingning Han
Enable entropy coding of motion vectors up to +/-2048. Also extend the motion search range accordingly. Change-Id: Iac2bb015e8934521cef83a19edbe967d9f097436
2013-03-13put refmvselection under experimentYaowu Xu
and turn the experiment off by default. Change-Id: If9e684aa6cc49eacd39f36645a110a447e38d2de
2013-03-13removed reference to "LLM" and "x8"Yaowu Xu
The commit changed the name of files and function to remove obselete reference to LLM and x8. Change-Id: I973b20fc1a55149ed68b5408b3874768e6f88516
2013-03-12fix superframe index marker masksJohn Koleszar
The superframe index marker byte carries data in the lower 5 bits. Only the upper 3 should be used as part of the mask to detect it. By masking with 0xf0, the previous code was incorrect for frames over 65k bytes. Change-Id: I6248889f5af227457f359a56b2348ef6db87a3b4
2013-03-12fix superframe index with lagged encodingJohn Koleszar
If a superframe (ARF) is generated while flushing the lagged frames at the end of the clip, the buffer pointer wasn't being properly updated to account for the size of the index, causing the next frame to overwrite the index on the previous frame. Change-Id: Ib158cc8e4183d663bdfb9ba002dd4c98916abdc9
2013-03-12Merge "disambiguate superframe index in vp9_stop_encode()" into experimentalPaul Wilkins
2013-03-12disambiguate superframe index in vp9_stop_encode()John Koleszar
If the bool-coded partition naturally ends in a byte that matches the superframe index marker, it could lead to a parse error. This commit ensures that if such a marker is seen, it is padded out with an additional zero byte to disambiguate it. Change-Id: Id977de05745b6fa9ef08afb71e210a2a3ecca02e
2013-03-12Merge "Change buffer update rules on ARF overlay." into experimentalPaul Wilkins
2013-03-12Merge "Fix typo in comment for number of extra bits for cat6 tokens." into ↵Ronald S. Bultje
experimental
2013-03-12Merge "fix an assumption about uv_stride" into experimentalJohn Koleszar
2013-03-12Fix typo in comment for number of extra bits for cat6 tokens.Ronald S. Bultje
Change-Id: I07ddf3be8bc5d6c2eb561d4241879777c315b183
2013-03-12Merge "Changes to maximum gf/arf interval." into experimentalPaul Wilkins
2013-03-12Change buffer update rules on ARF overlay.Paul Wilkins
When coding the frame that corresponds to the midpoint frame defining an ARF, do not update the last reference frame buffer. Previously this buffer was updated meaning that when coding the next ARF all the reference buffers were the same (or nearly so). Turning the update off means that the frame before is still available as an alternative predictor and for use in compound prediction. Also fixed inconsistency in test for mismatch (patch from JK). Net average gains (derf 0.049, yt 0.163, yt-hd 0.207, std-hd 0.286) Change-Id: Ifee21da21ccbb1648ac2eafe890d3ce60562c7bc
2013-03-12fix an assumption about uv_strideJohn Koleszar
Use the uv_stride from the framebuffer rather than deriving it from the y_stride. Change-Id: I94581cb741539d094ff062b3d008235556903b8c
2013-03-11Merge "Code cleanup." into experimentalDmitry Kovalev
2013-03-11Code cleanup.Dmitry Kovalev
Removing redundant code, introducing new functions for better decomposition, adding 'clamp' function to vp9_common.h. Change-Id: Ic3b8ca13bbc38f60f0c9c43910b5802005e31aaf
2013-03-11Merge "Reinitialize motion search tables on frame size change" into experimentalJohn Koleszar
2013-03-11Merge "Add 'superframe' index" into experimentalJohn Koleszar
2013-03-11Changes to maximum gf/arf interval.Paul Wilkins
This patch puts in an adjustment to the maximum gf/arf interval based on the active q range. It sets a fixed baseline maximum of 16 but can drop this down to 12 at lower q. This required some re-ordering in the first pass code to insure we have a Q range estimate before defining the first gf sequence. The main gains seed are int he STD hd set on 50fps clips where previously the interval could rise as high as 25. On the std hd clip the gains are around 2.8% with limit set to 300 frames. When combined with the one shot rate control flags we get combined of: derf 1.55% (limit300), yt 7.25%, hd 5.17% std-hd 5.84% (limit300) Change-Id: Ib380d51354511f2ff0f171a8df4e74291c0421f9
2013-03-11Fix vp9_tree_probs_from_distribution with CONFIG_CODE_NONZEROCOUNTJohn Koleszar
The automatic merge result was incomplete. Change-Id: I8976318bfc346d867660a013a302c80edb25fc29
2013-03-11Merge "Simplify vp9_adapt_nmv_probs" into experimentalJohn Koleszar
2013-03-11Simplify vp9_adapt_nmv_probsJohn Koleszar
Remove the temporary branch count arrays and build the adapted probabilities while walking the tree. Gives an additional 1.5% or so on CIF. Change-Id: I875d61e5e0ec778e5d2f7f9d0837b989a91cf3a3