- 20 Feb, 2013 2 commits
-
-
Paul Wilkins authored
Fixes to make Entropy stats code work again Change-Id: I62e380481a4eb4c170076ac6ab36f0c2b203e914
-
Yaowu Xu authored
The issue was caused by a out-of-order merge, which leads to wrong functions are called at lossless mode. Change-Id: If157729abab62954c729e0377e7f53edb7db22ca
-
- 19 Feb, 2013 2 commits
-
-
Jingning Han authored
rebased. This patch includes 16x16 butterfly inverse ADST/DCT hybrid transform. It uses the variant ADST of kernel sin((2k+1)*(2n+1)/4N), which allows a butterfly implementation. The coding gains as compared to DCT 16x16 are about 0.1% for both derf and std-hd. It is noteworthy that for std-hd sets many sequences gains about 0.5%, some 0.2%. There are also few points that provides -1% to -3% performance. Hence the average goes to about 0.1%. Change-Id: Ie80ac84cf403390f6e5d282caa58723739e5ec17
-
Yaowu Xu authored
The commit changes the coding mode to lossless whenever the lowest quantizer is choosen. As expected, test results showed no difference for cif and std-hd set where Q0 is rarely used. For yt and yt-hd set, Q0 is used for a number of clips, where this commit helped a lot in the high end. Average over all clips in the sets: yt: 2.391% 1.017% 1.066% hd: 1.937% .764% .787% Change-Id: I9fa9df8646fd70cb09ffe9e4202b86b67da16765
-
- 16 Feb, 2013 2 commits
-
-
Ronald S. Bultje authored
Change-Id: I13d8ae754827368755575dd699a087b3b11f5b16
-
Ronald S. Bultje authored
The 32x32 value in case of splitmv was uninitialized. this leads to all kind of erratic behaviour down the line. Also fill in dummy values for superblocks in keyframes (the values are currently unused, but we run into integer overflows anyway, which makes detecting bad cases harder). Lastly, in case we did not find any RD value at all, don't set tx_diff to INT_MIN, but instead set it to zero (since if we couldn't find a mode, it's unlikely that any particular transform would have made that worse or better; rather, it's likely equally bad for all tx_sizes). Change-Id: If236fd3aa2037e5b398d03f3b1978fbbc5ce740e
-
- 15 Feb, 2013 5 commits
-
-
Jingning Han authored
This issue breaks the encoding process of the codebase. The effect emerges only in particular test sequence at certain bit-rates and frame limits. Change-Id: I02e080f2a49624eef9a21c424053dc2a1d902452
-
Ronald S. Bultje authored
Change-Id: Ie309cb1f683a51c5dfac405fb32e8e2d6ee143ed
-
Ronald S. Bultje authored
Change-Id: I7a5314daca993d46b8666ba1ec2ff3766c1e5042
-
Ronald S. Bultje authored
Since there is no Y2, these values are always zero. This changes the bitstream results slightly, hence a separate commit. Change-Id: I2f838f184341868f35113ec77ca89da53c4644e0
-
Ronald S. Bultje authored
Change-Id: I4f46d142c2a8d1e8a880cfac63702dcbfb999b78
-
- 14 Feb, 2013 2 commits
-
-
Scott LaVarnway authored
allowing the compiler to inline. Change-Id: I66e5caf5e7fefa68a223ff0603aa3f9e11e35dbb
-
Yunqing Wang authored
Used same algorithm as others. Change-Id: Ifdac560762aec9735cb4bb6f1dbf549e415c38a0
-
- 13 Feb, 2013 10 commits
-
-
Ronald S. Bultje authored
These allow sending partial bitstream packets over the network before encoding a complete frame is completed, thus lowering end-to-end latency. The tile-rows are not independent. Change-Id: I99986595cbcbff9153e2a14f49b4aa7dee4768e2
-
Ronald S. Bultje authored
Since addition of the larger-scale transforms (16x16, 32x32), these don't give a benefit at macroblock-sizes anymore. At superblock-sizes, 2nd-order transform was never used over the larger transforms. Future work should test whether there is a benefit for that use case. Change-Id: I90cadfc42befaf201de3eb0c4f7330c56e33330a
-
Paul Wilkins authored
This patch abstracts the selection of the coefficient band context into a function as a precursor to further experiments with the coefficient context. It also removes the large per TX size coefficient band structures and uses a single matrix for all block sizes within the test function. This may have an impact on quality (results to follow) but is only an intermediate step in the process of redefining the context. Also the quality impact will be larger initially because the default tables will be out of step with the new banding. In particular the 4x4 will in this case only use 7 bands. If needed we can add back block size dependency localized within the function, but this can follow on after the other changes to the definition of the context. Change-Id: Id7009c2f4f9bb1d02b861af85fd8223d4285bde5
-
Paul Wilkins authored
Reverted part of change I19981d1ef0b33e4e5732739574f367fe82771a84 That gives rise to an enc/dec mismatch. As things stand the memsets are still needed. Change-Id: I9fa076a703909aa0c4da0059ac6ae19aa530db30
-
Paul Wilkins authored
This is an initial step to facilitate experimentation with changes to the prior token context used to code coefficients to take better account of the energy of preceding tokens. This patch merely abstracts the selection of context into two functions and does not alter the output. Change-Id: I117fff0b49c61da83aed641e36620442f86def86
-
Yaowu Xu authored
1. Added a bit in frame header to to indicate if a frame is encoded in lossless mode, so decoder does not make the decision based on Q0 2. Minor changes to make sure that lossy coding works same as when the lossless experiment is not enabled. 3. Renamed function pointers for transforms to be consistent, using prefix fwd_txm and inv_txm for forward and inverse respectively To encode in lossless mode, using "--lossless=1 --min-q=0 --max-q=0" with vpxenc. Change-Id: Ifae53b26d2ffbe378d707e29d96817b8a5e6c068
-
Yaowu Xu authored
Change-Id: I95acfc1417634b52d344586ab97f0abaa9a4b256
-
Scott LaVarnway authored
Initial ssse3 convolve avg functions and is one step closer to using x86inc.asm. The decoder performance improved by 8% for the test clip used. This should be revisited later to see if averaging outside the loop is better than having many similar filter functions. Change-Id: Ice3fafb423b02710b0448ffca18b296bcac649e9
-
Paul Wilkins authored
Removal of the NEWCOEFCONTEXT experiment to reduce code clutter and make it easier to experiment with some other changes to the coefficient coding context. Change-Id: Icd17b421384c354df6117cc714747647c5eb7e98
-
Paul Wilkins authored
Removal of experiment to simplify code base for other changes. Change-Id: If0a33952504558511926ad212bc311fc2bffb19a
-
- 12 Feb, 2013 5 commits
-
-
Christian Duvivier authored
A couple of scalar optimizations speeding up quantization by about 1.6x. Overall encoder speedup is around 3%. Change-Id: I19981d1ef0b33e4e5732739574f367fe82771a84
-
Ronald S. Bultje authored
This is after discussion with the hardware team. Update the unit test to take these sizes into account. Split out some duplicate code into a separate file so it can be shared. Change-Id: I8311d11b0191d8bb37e8eb4ac962beb217e1bff5
-
Yunqing Wang authored
Use consistent algorithm. Change-Id: Ib8484821ebc454b9d3380a3d6571798decd037f3
-
Ronald S. Bultje authored
Change-Id: I47174f797df2103da8913c6fb4f4e741817bae82
-
Christian Duvivier authored
Implement convolve8_avg using common functions which are already optimized instead of using more obscure ones which have only C versions. Encoder overall speed-up of about 12%. Change-Id: I8c57aa76936c8a48f22b115f19f61d9f2ae1e4b6
-
- 11 Feb, 2013 2 commits
-
-
Jingning Han authored
fixed format issues. Implement the inverse 4x4 ADST using 9 multiplications. For this particular dimension, the original ADST transform can be factorized into simpler operations, hence is retained. Change-Id: Ie5d9749942468df299ab74e90d92cd899569e960
-
Paul Wilkins authored
Experimental tweaks to various thresholds to measure quality / speed trade off. Add flag that allows static segmentation to be turned off and disables it unless in the second pass of a two pass encode. Change-Id: I219702ffe858412a83db801cbbbd869924b8c61b
-
- 09 Feb, 2013 5 commits
-
-
Scott LaVarnway authored
A 16 bit overflow condition occurs when using the EIGHTTAP_SMOOTH filters. (vp9_sub_pel_filters_8lp) Changed the order of the adds to fix this problem. Also added ssse3 support for 4x4 subpixel filtering. Change-Id: I475eaadae920794c2de5e01e9735c059a856518e
-
John Koleszar authored
Replace as_mv.{first, second} with a two element array, so that they can easily be processed with an index variable. Change-Id: I1e429155544d2a94a5b72a5b467c53d8b8728190
-
Ronald S. Bultje authored
Change-Id: Ic639f5742f7a007753d7a3fa5c66235172eb31d8
-
Ronald S. Bultje authored
Also port the 4x4, 16x16, 8x16 and 16x8 versions to x86inc.asm; this makes them all slightly faster, particularly on x86-64. Remove SSE3 sad16x16 version, since the SSE2 version is now faster. About 1.5% overall encoding speedup. Change-Id: Id4011a78cce7839f554b301d0800d5ca021af797
-
Ronald S. Bultje authored
Cache the constant offset in one variable to prevent re-loading that in each loop iteration, and mark the function as inline so we can use the fact that the transform size is always known in the caller. Almost 1% faster encoding overall. Change-Id: Id78325a60b025057d8f4ecd9003a74086ccbf85a
-
- 08 Feb, 2013 5 commits
-
-
John Koleszar authored
Pass the current mb row and column around rather than the recon_yoffset and recon_uvoffset, since those offsets will change from predictor to predictor, based on the reference frame selection. Change-Id: If3f9df059e00f5048ca729d3d083ff428e1859c1
-
John Koleszar authored
Allows inter-frames to change resolution. Currently these are almost equivalent to keyframes, as only intra prediction modes are allowed, but without the other context resets that occur on keyframes. Change-Id: Icd1a2a5af0d9462cc792588427b0a1f5b12e40d3
-
John Koleszar authored
As long as the new frame is smaller than the size that was originally allocated, we don't need to free and reallocate the memory allocated. Instead, do the allocation on the size of the first frame. We could make this passed in from the application instead, if we wanted to support external upscaling. Change-Id: I204d17a130728bbd91155bb4bd863a99bb99b038
-
John Koleszar authored
Tests that the external interface to set the internal codec scaling works as expected. Also updates the test to pull the height from the decoded frame size rather than parsing the keyframe header, in anticipation of allowing resolution changes on non-keyframes. Change-Id: I3ed92117d8e5288fbbd1e7b618f2f233d0fe2c17
-
John Koleszar authored
This commit adds the 8 tap SSSE3 subpixel filters back into the code underneath the convolve API. The C code is still called for 4x4 blocks, as well as compound prediction modes. This restores the encode performance to be within about 8% of the baseline. Change-Id: Ife0d81477075ae33c05b53c65003951efdc8b09c
-