summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-02-21Remove "eobs" array in MACROBLOCKD.Ronald S. Bultje
The information is a duplicate of "eob" in BLOCKD. Change-Id: Ia6416273bd004611da801e4bfa6e2d328d6f02a3
2013-02-21Merge "Refactoring of switchable filter search for speed" into experimentalDeb Mukherjee
2013-02-21Merge "Avoid division in intra prediction" into experimentalJohn Koleszar
2013-02-20Refactoring of switchable filter search for speedDeb Mukherjee
Refactors the switchable filter search in the rd loop to improve encode speed. Uses a piecewise approximation to a closed form expression to estimate rd cost for a Laplacian source with a given variance and quantization step-size. About 40% encode time reduction is achieved. Results (on a feb 12 baseline) show a slight drop: derf: -0.019% yt: +0.010% std-hd: -0.162% hd: -0.050% Change-Id: Ie861badf5bba1e3b1052e29a0ef1b7e256edbcd0
2013-02-20Merge "Fixed the buffer overflow issue" into experimentalJingning Han
2013-02-20Fixed the buffer overflow issueJingning Han
The issue that potentially broke the encoding process was due to the fact that the length of token link is calculated from the total number of tokens coded, while it is possible, in high bit-rate setting, this length is greater than the buffer length initially assigned to the cpi->tok. This patch increases the initially allocated buffer length assigned to cpi->tok from (mb_rows * mb_cols * 24 * 16) to (mb_rows * mb_cols * (1 + 24 * 16)). It resolves the buffer overflow problem. Change-Id: I8661a8d39ea0a3c24303e3f71a170787a1d5b1df
2013-02-20Merge "Code cleanup." into experimentalDmitry Kovalev
2013-02-20Merge "Merge lossless experiment" into experimentalYaowu Xu
2013-02-20Code cleanup.Dmitry Kovalev
Change-Id: I7c6e3bebd94856b24dbe2aded7f9e04ef8bb8c08
2013-02-20Merge lossless experimentYaowu Xu
Change-Id: I7b7b8d4fda3a23699e0c920d727f8c15d37d43aa
2013-02-20Entropy stats output code.Paul Wilkins
Fixes to make Entropy stats code work again Change-Id: I62e380481a4eb4c170076ac6ab36f0c2b203e914
2013-02-20Avoid division in intra predictionTero Rintaluoma
- Using multiplication and shifting instead of division in intra prediction. - Maximum absolute difference is 1 for division statements in d45, d27, d63 prediction modes. However, errors can cumulate for large block sizes when using already predicted values. - Maximum number of non-matching result values in loops using division are: 4x4 0/16 8x8 0/64 16x16 10/256 32x32 13/1024 64x64 122/4096 Overall PSNR derf: 0.005 yt: -0.022 std-hd: 0.021 hd: -0.006 Change-Id: I3979a02eb6351636442c1af1e23d6c4e6ec1d01d
2013-02-19Merge "fixed an enc/dec mis-match issue" into experimentalYaowu Xu
2013-02-19fixed an enc/dec mis-match issueYaowu Xu
The issue was caused by a out-of-order merge, which leads to wrong functions are called at lossless mode. Change-Id: If157729abab62954c729e0377e7f53edb7db22ca
2013-02-19Merge "Add estimated completion time to vpxenc" into experimentalJohn Koleszar
2013-02-1916x16 butterfly inverse ADST/DCT hybrid transformJingning Han
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
2013-02-19Merge "Minor cosmetic cleanups." into experimentalRonald S. Bultje
2013-02-19Merge "Prevent filling transform size cache with uninitialized values." into ↵Ronald S. Bultje
experimental
2013-02-19Use lossless for Q0Yaowu Xu
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
2013-02-15Minor cosmetic cleanups.Ronald S. Bultje
Change-Id: I13d8ae754827368755575dd699a087b3b11f5b16
2013-02-15Prevent filling transform size cache with uninitialized values.Ronald S. Bultje
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
2013-02-15Merge "Remove some unused structs and members from the decoder." into ↵Ronald S. Bultje
experimental
2013-02-15Merge "Remove Y2 and Y-no-DC token types from the bitstream." into experimentalRonald S. Bultje
2013-02-15Fixed a subtle issue that breaks encoding processJingning Han
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
2013-02-15Remove some unused structs and members from the decoder.Ronald S. Bultje
Change-Id: Ie309cb1f683a51c5dfac405fb32e8e2d6ee143ed
2013-02-15Remove Y2 and Y-no-DC token types from the bitstream.Ronald S. Bultje
Change-Id: I7a5314daca993d46b8666ba1ec2ff3766c1e5042
2013-02-15Remove y2dc/ac Q delta values from the bitstream.Ronald S. Bultje
Since there is no Y2, these values are always zero. This changes the bitstream results slightly, hence a separate commit. Change-Id: I2f838f184341868f35113ec77ca89da53c4644e0
2013-02-15Remove some Y2-related code.Ronald S. Bultje
Change-Id: I4f46d142c2a8d1e8a880cfac63702dcbfb999b78
2013-02-15Merge "WIP: ssse3 version of convolve avg functions" into experimentalScott LaVarnway
2013-02-14Merge "Moved vp9_get_coef_band to header file" into experimentalJohn Koleszar
2013-02-14Moved vp9_get_coef_band to header fileScott LaVarnway
allowing the compiler to inline. Change-Id: I66e5caf5e7fefa68a223ff0603aa3f9e11e35dbb
2013-02-14Merge "Rewrote fdct16x16" into experimentalYaowu Xu
2013-02-14Merge "Abstract selection of coef band." into experimentalPaul Wilkins
2013-02-13Rewrote fdct16x16Yunqing Wang
Used same algorithm as others. Change-Id: Ifdac560762aec9735cb4bb6f1dbf549e415c38a0
2013-02-13Merge "Remove 2nd-order transform for first-order DC coefficients." into ↵Ronald S. Bultje
experimental
2013-02-13Add support for tile rows.Ronald S. Bultje
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
2013-02-13Remove 2nd-order transform for first-order DC coefficients.Ronald S. Bultje
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
2013-02-13Abstract selection of coef band.Paul Wilkins
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
2013-02-13Fixed encoder decoder mismatch.Paul Wilkins
Reverted part of change I19981d1ef0b33e4e5732739574f367fe82771a84 That gives rise to an enc/dec mismatch. As things stand the memsets are still needed. Change-Id: I9fa076a703909aa0c4da0059ac6ae19aa530db30
2013-02-13Abstract the selection of coefficient context.Paul Wilkins
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
2013-02-13Merge "Remove NEWCOEFCONTEXT experiment." into experimentalPaul Wilkins
2013-02-13Merge "enable bitstream lossless support" into experimentalYaowu Xu
2013-02-13Merge "fix the lossless experiment" into experimentalYaowu Xu
2013-02-13enable bitstream lossless supportYaowu Xu
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
2013-02-13fix the lossless experimentYaowu Xu
Change-Id: I95acfc1417634b52d344586ab97f0abaa9a4b256
2013-02-13WIP: ssse3 version of convolve avg functionsScott LaVarnway
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
2013-02-13Remove NEWCOEFCONTEXT experiment.Paul Wilkins
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
2013-02-13Removal of Hybrid DWT/DCT experiment.Paul Wilkins
Removal of experiment to simplify code base for other changes. Change-Id: If0a33952504558511926ad212bc311fc2bffb19a
2013-02-12Add estimated completion time to vpxencJohn Koleszar
Make the progress line more useful by providing per-frame updates of processing frame rate and estimated time remaining. Fixes issue #534. Change-Id: Ic91551878ff4b2f5db1cedaafb588add220cfa52
2013-02-12Merge "Faster vp9_regular_quantize_b_8x8." into experimentalChristian Duvivier