summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2013-04-19Remove redundant pointers from void vp9_recon_sb{y,uv}John Koleszar
Remove the unnecessary _s_ from their names, and add a new vp9_recon_sb() that calls the y and uv variants. Change-Id: I7ffaa5ff5605a8472cac2a53de8cf889353039a6
2013-04-19Move diff to MACROBLOCKD per-plane data.John Koleszar
Change-Id: Ic27af09e38af8317ac4743241883d577a44f1490
2013-04-19make build_inter_predictors block size agnostic (split)John Koleszar
All build_inter_predictors can now be serviced by the same inner function. Change-Id: I40b08bee8f047286db4b1aad9dcae37b879c3f2a
2013-04-19Removing rounding from UV MV calculation for SPLITMVJohn Koleszar
Similar to the prior change that removed the rounding from non-SPLITMV modes. Improves quality by a similar amount (Additional +0.087% on derf) Change-Id: I39d80b4a3037a3aa7e285eb2320346ddaf646f52
2013-04-19Merge "make buid_inter_predictors block size agnostic (chroma)" into ↵John Koleszar
experimental
2013-04-19Merge "Use SSSE3 for 2d filters larger than 16" into experimentalJohn Koleszar
2013-04-19Merge "Replacing BOOL_DECODER with vp9_reader inside vp9_decodframe." into ↵Dmitry Kovalev
experimental
2013-04-19Merge "Fixing member names inside TOKENVALUE and TOKENEXTRA structs." into ↵Dmitry Kovalev
experimental
2013-04-19Merge "catch all for new block sizes" into experimentalJim Bankoski
2013-04-19Use SSSE3 for 2d filters larger than 16John Koleszar
The C code was being used as a fallback for the >16 case, but only for 2D. Change-Id: I1e2e6da9e4b28bd88bde9ba4dd32724ce466cf6f
2013-04-19catch all for new block sizesJim Bankoski
Just make sure we don't stop them from testing in speed 1. Change-Id: Iec9b3dba0a32616ff7a451207e0f54b81bb72575
2013-04-19Merge "set up a new speed 1" into experimentalJim Bankoski
2013-04-19set up a new speed 1Jim Bankoski
slightly worse results for faster encodes Change-Id: I25ea82a18ce20635dbcd328808c1d05ac1f58fd7
2013-04-19Removal of CONFIG_NEW_MVREF experiment.Paul Wilkins
This experiment has failed to give much benefit but does add complexity so deprecated. Change-Id: Ic7b929ba706390b9907ef0b4f965bd401ca799a4
2013-04-19Remove dummy place holder function.Paul Wilkins
void __attribute__((noinline)) hi(void) { } Causes build failure in VS2008 Change-Id: Ie2f2a09d90bd5502c492e4d9f4983532a0edbc01
2013-04-19Simplification of MVref search.Paul Wilkins
As we are no longer able to sort the candidate mvrefs in both encoder and decode and given that the cost of explicit signalling has proved prohibitive, it no longer makes sense to find more than 2 candidates. This patch: Modifies and simplifies add_candidate_mv() Removes the forced addition of a 0 vector in the MAX_MV_REF_CANDIDATES-1 position (in preparation to reducing MAX_MV_REF_CANDIDATES to 2). Re-orders the addition of candidates slightly. This actually gives small gains (circa 0.2% on std-hd) A subsequent patch will remove NEW_MVREF experiment, reduce MAX_MV_REF_CANDIDATES to 2 and remove distance weights as these are implicit now in the order. Change-Id: I3dbe1a6f8a1a18b3c108257069c22a1141a207a4
2013-04-19Merge "Adjustments to key frame sizing." into experimentalPaul Wilkins
2013-04-19Adjustments to key frame sizing.Paul Wilkins
Adjustments take heavier account of the frame near a kf in deciding boost and limit the total number that can contribute. Also adjusted the minq calculations such that in most cases we generate a smaller key frame. Modified the code that accounts for how static the sequence is and added some adjustment based on image size. This is still very crude but smaller images tend to behave better with a larger delta between KF Q and other frames than larger image formats. Changes give sizable gains in overall PSNR on all the test sets but the biggest gains (~3%) were on the std-hd set. The gains were smaller for SSIM but still significant. Average PSNR results are mixed because this metric can very easily be altered by having a very good / lossless coding of one or two frames. Some of the YT and YT-HD clips in particular have blank lead ins and allowing lossless coding of these appears to make a big difference to average PSNR but it reality does not help much at all. Change-Id: I6bfe485a1d330b47c783832f1717c95c535464ec
2013-04-18Merge changes I320e160e,Iddd99733 into experimentalJohn Koleszar
* changes: Removing rounding from UV MV calculation make buid_inter_predictors block size agnostic (luma)
2013-04-18make buid_inter_predictors block size agnostic (chroma)John Koleszar
Updates to make non-SPLITMV inter predictors work for all plane types. Change-Id: I25dbef40b7ffcac30254b43eed1e22fc732378ae
2013-04-18Removing rounding from UV MV calculationJohn Koleszar
Consider the previous behavior for the MV 1 3/8 (11/8 pel). In the existing code, the fractional part of the MV is considered separately, and rounded is applied, giving a result of 6/8. Rounding is not required in this case, as we're increasing the precision from a q3 to a q4, and the correct value 11/16 can be represented exactly. Slight gain observed (+.033 average on derf) Change-Id: I320e160e8b12f1dd66aa0ce7966b5088870fe9f8
2013-04-18make buid_inter_predictors block size agnostic (luma)John Koleszar
This commit converts the luma versions of vp9_build_inter_predictors_sb to use a common function. Update the convolution functions to support block sizes larger than 16x16, and add a foreach_predicted_block walker. Next step will be to calculate the UV motion vector and implement SBUV, then fold in vp9_build_inter16x16_predictors_mb and SPLITMV. At the 16x16, 32x32, and 64x64 levels implemented in this commit, each plane is predicted with only a single call to vp9_build_inter_predictor. This is not yet called for SPLITMV. If the notion of SPLITMV/I8X8/I4X4 goes away, then the prediction block walker can go away, since we'll always predict the whole bsize in a single step. Implemented using a block walker at this stage for SPLITMV, as a 4x4 "prediction block size" within the BLOCK_SIZE_MB16X16 macroblock. It would also support other rectangular sizes too, if the blocks smaller than 16x16 remain implemented as a SPLITMV-like thing. Just using 4x4 for now. There's also a potential to combine with the foreach_transformed_block walker if the logic for calculating the size of the subsampled transform is made more straightforward, perhaps as a consequence of supporing smaller macroblocks than 16x16. Will watch what happens there. Change-Id: Iddd9973398542216601b630c628b9b7fdee33fe2
2013-04-18Fixing member names inside TOKENVALUE and TOKENEXTRA structs.Dmitry Kovalev
Change-Id: I183ec5819d4d80966c92db36db75b8c3be0d381d
2013-04-18Merge "Fixing rounding inside vp9_mv_bit_cost function." into experimentalDmitry Kovalev
2013-04-18Replacing BOOL_DECODER with vp9_reader inside vp9_decodframe.Dmitry Kovalev
Change-Id: Ia6722bc26f34ae7fc5cb15e491aba39d2f20a85b
2013-04-18Fixing rounding inside vp9_mv_bit_cost function.Dmitry Kovalev
Change-Id: I7209a05919162a8155520bc543658ddb69ba12ce
2013-04-18Merge "Code cleanup inside findnearmv code." into experimentalDmitry Kovalev
2013-04-18Merge "Make the use of pred buffers consistent in MB/SB" into experimentalJingning Han
2013-04-18Code cleanup inside findnearmv code.Dmitry Kovalev
Using predefined clamp function, removing redundant variables, declare and init on the same line. Change-Id: I14636eb242194bac33f8a9d4a273a416d32856fc
2013-04-18Make the use of pred buffers consistent in MB/SBJingning Han
Use in-place buffers (dst of MACROBLOCKD) for macroblock prediction. This makes the macroblock buffer handling consistent with those of superblock. Remove predictor buffer MACROBLOCKD. Change-Id: Id1bcd898961097b1e6230c10f0130753a59fc6df
2013-04-18Replacing BOOLEAN_DECODER with vp9_reader inside vp9_detokenize.Dmitry Kovalev
Change-Id: I71369a30a86111ae737168c795a29b4d8cff6ebf
2013-04-18Merge "Adding DEFAULT_PRED_PROB_{0, 1, 2} constants." into experimentalDmitry Kovalev
2013-04-18Merge "Motion vector decoding code cleanup." into experimentalDmitry Kovalev
2013-04-18Merge "Changing argument type of vp9_get_mv_joint from MV to MV*." into ↵Dmitry Kovalev
experimental
2013-04-18Merge "convolve: support larger blocks, fix asm saturation bug" into ↵John Koleszar
experimental
2013-04-18Merge "Replacing VP9_COMBINEENTROPYCONTEXTS macro with function." into ↵Dmitry Kovalev
experimental
2013-04-18Merge "Moving functions from vp9_dboolhuff.c to vp9_decodframe.c." into ↵Dmitry Kovalev
experimental
2013-04-18Merge "Renaming y1dc_delta_q, uvdc_delta_q, uvac_delta_q fields from ↵Dmitry Kovalev
VP9Common." into experimental
2013-04-18Merge "Transforming decode_sb_row to decode_tile function." into experimentalDmitry Kovalev
2013-04-18convolve: support larger blocks, fix asm saturation bugJohn Koleszar
Updates the common convoloution code to support blocks larger than 16x16, and rectangular blocks. This uncovered a bug in the SSSE3 filtering routines due to the order of application of saturation. This commit fixes that bug, adjusts the unit test to bias its random values towards the extremes, and adds a test to ensure that all filters conform to the expected pairwise addition structure. Change-Id: I81f69668b1de0de5a8ed43f0643845641525c8f0
2013-04-18Motion vector decoding code cleanup.Dmitry Kovalev
Change-Id: I9790baedbd4acb7113575efc6f228b2656c42ff7
2013-04-17Merge "Use BLOCK_SIZE_TYPE in foreach_ walker" into experimentalJohn Koleszar
2013-04-17Merge "Fix edge bug in recent merge of 64x64 and 32x32 inter predictors." ↵Ronald S. Bultje
into experimental
2013-04-17Fix edge bug in recent merge of 64x64 and 32x32 inter predictors.Ronald S. Bultje
Change-Id: I83aa188d414922db19cccb210c4001c02d5a404c
2013-04-17Merge "Remove skip_recon_sb" into experimentalYunqing Wang
2013-04-17Remove skip_recon_sbYunqing Wang
Removed skip_recon_sb(). Cleanup code so that we could combine decode_sb and decode_mb later. Change-Id: I24d1dd5283e2565072838a03c344938b88bfd35c
2013-04-17Use BLOCK_SIZE_TYPE in foreach_ walkerJohn Koleszar
Change-Id: I655305c9e22bdd9abc893d3c40d4bc6616aa1d35
2013-04-17Merge "clean out experiments" into experimentalYaowu Xu
2013-04-17Merge "make lf_deltas dependent on filter_lvl" into experimentalYaowu Xu
2013-04-17Merge "Make alt_extra_bits a local variable" into experimentalAdrian Grange