- 13 Mar, 2013 - 1 commit
-
-
John Koleszar authored
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
-
- 12 Mar, 2013 - 12 commits
-
-
John Koleszar authored
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
-
Paul Wilkins authored
-
John Koleszar authored
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
-
Paul Wilkins authored
-
Ronald S. Bultje authored
-
John Koleszar authored
-
Ronald S. Bultje authored
Change-Id: I07ddf3be8bc5d6c2eb561d4241879777c315b183
-
Paul Wilkins authored
-
Paul Wilkins authored
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
-
John Koleszar authored
Use the uv_stride from the framebuffer rather than deriving it from the y_stride. Change-Id: I94581cb741539d094ff062b3d008235556903b8c
-
Dmitry Kovalev authored
-
Dmitry Kovalev authored
Removing redundant code, introducing new functions for better decomposition, adding 'clamp' function to vp9_common.h. Change-Id: Ic3b8ca13bbc38f60f0c9c43910b5802005e31aaf
-
- 11 Mar, 2013 - 10 commits
-
-
John Koleszar authored
-
John Koleszar authored
-
John Koleszar authored
-
Paul Wilkins authored
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
-
John Koleszar authored
The automatic merge result was incomplete. Change-Id: I8976318bfc346d867660a013a302c80edb25fc29
-
John Koleszar authored
-
John Koleszar authored
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
-
Deb Mukherjee authored
-
John Koleszar authored
-
Deb Mukherjee authored
Adds a check to exit from the increment_nmv_count function when the increment is 0. Change-Id: I99c1e342d351f7800e23590f9c2419881bf1d708
-
- 10 Mar, 2013 - 1 commit
-
-
John Koleszar authored
The previous implementation visited each node in the tree multiple times because it used each symbol's encoding to revisit the branches taken and increment its count. Instead, we can traverse the tree depth first and calculate the probabilities and branch counts as we walk back up. The complexity goes from somewhere between O(nlogn) and O(n^2) (depending on how balanced the tree is) to O(n). Only tested one clip (256kbps, CIF), saw 13% decoding perf improvement. Note that this optimization should port trivially to VP8 as well. In VP8, the decoder doesn't use this function, but it does routinely show up on the profile for realtime encoding. Change-Id: I4f2848e4f41dc9a7694f73f3e75034bce08d1b12
-
- 09 Mar, 2013 - 2 commits
-
-
Deb Mukherjee authored
Adds probability updates for extra bits for the nzcs, code for getting nzc stats, plus some minor cleanups and fixes. Change-Id: If2814e7f04fb52f5025ad9f400f3e6c50a00b543
-
Ronald S. Bultje authored
-
- 08 Mar, 2013 - 6 commits
-
-
Yunqing Wang authored
-
Yunqing Wang authored
Added SSE2 idct4_1d which is called by vp9_short_iht4x4. Also, modified the parameter type passed to vp9_short_iht functions to make it work with rtcd prototype. Change-Id: I81ba7cb4db6738f1923383b52a06deb760923ffe
-
Dmitry Kovalev authored
-
Yunqing Wang authored
-
Jingning Han authored
Increase the motion search range by 4x. Change MV_CLASS tree of the entropy coding to allow two additional mv classes to cover the extended motion vector limit. The codec determines the effective motion search range conditioned on the actual frame dimension. It provides coding gains: stdhd 0.39% yt 0.56% hd 0.47% Major coding performance gains are packed in several sequences with intense motion activities, e.g., ped_1080p gains 7% at high bit-rates, and on average 3%. TODO: Need to further tune the rate control and motion search units. Change-Id: Ib842540a6796fbee5a797809433ef6a477c6d78d
-
Ronald S. Bultje authored
Also enable tx_select for keyframes. Change-Id: Iadb1231d9fa7af0c8dce3d9b41830b93a302479e
-
- 07 Mar, 2013 - 8 commits
-
-
Yunqing Wang authored
Optimized adding constant diff to predictor, which gave about 2% decoder performance gain. Change-Id: I47db20c31428e8c4a8f16214a85cbe386a6e9303
-
Yunqing Wang authored
-
Yunqing Wang authored
This was done based on John's suggestion. Change-Id: I62516a513c31fe3dbea0d6cd063df79d9e819ec8
-
Dmitry Kovalev authored
Change-Id: I44660975e9985310d8c654c158ee7a61291b5a08
-
Ronald S. Bultje authored
Change-Id: Ic9b336486774c95ffbb92adcb110cc0fc2a83cc5
-
Ronald S. Bultje authored
This also changes the RD search to take account of the correct block index when searching (this is required for ADST positioning to work correctly in combination with tx_select). Change-Id: Ie50d05b3a024a64ecd0b376887aa38ac5f7b6af6
-
Yunqing Wang authored
Yaowu found this function had a compiling issue with MSVC because of using _mm_storel_pi((__m64 *)(dest + 0 * stride), (__m128)p0). To be safe, changed back to use integer store instruction. Also, for some build, diff could not always be 16-byte aligned. Changed that in the code. Change-Id: I9995e5446af15dad18f3c5c0bad1ae68abef6c0d
-
Deb Mukherjee authored
This patch revamps the entropy coding of coefficients to code first a non-zero count per coded block and correspondingly remove the EOB token from the token set. STATUS: Main encode/decode code achieving encode/decode sync - done. Forward and backward probability updates to the nzcs - done. Rd costing updates for nzcs - done. Note: The dynamic progrmaming apporach used in trellis quantization is not exactly compatible with nzcs. A suboptimal approach has been used instead where branch costs are updated to account for changes in the nzcs. TODO: Training the default probs/counts for nzcs Change-Id: I951bc1e22f47885077a7453a09b0493daa77883d
-