summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2012-12-18Fix uninitialized warningYunqing Wang
Fixed uninitialized warning for txfm_size. Change-Id: I42b7e802c3e84825d49f34e632361502641b7cbf
2012-12-17Remove vp9_type_aliases.hJohn Koleszar
Prefer the standard fixed-size integer typedefs. Change-Id: Iad75582350669e49a8da3b7facb9c259e9514a5b
2012-12-13fixed an encoder/decoder mismatchYaowu Xu
The mismatch was caused by an improper merge of cleanup code around tokenize_b() and stuff_b() with TX32X32 experiment. Change-Id: I225ae62f015983751f017386548d9c988c30664c
2012-12-13Build fixes with teh super blcoks and 32x32 exptsDeb Mukherjee
Change-Id: I3c751f8d57ac7d3b754476dc6ce144d162534e6d
2012-12-13Merge "Further improvements on the hybrid dwt/dct expt" into experimentalDeb Mukherjee
2012-12-13Further improvements on the hybrid dwt/dct exptDeb Mukherjee
Modifies the scanning pattern and uses a floating point 16x16 dct implementation for now to handle scaling better. Also experiments are in progress with 2/6 and 9/7 wavelets. Results have improved to within ~0.25% of 32x32 dct for std-hd and about 0.03% for derf. This difference can probably be bridged by re-optimizing the entropy stats for these transforms. Currently the stats used are common between 32x32 dct and dwt/dct. Experiments are in progress with various scan pattern - wavelet combinations. Ideally the subbands should be tokenized separately, and an experiment will be condcuted next on that. Change-Id: Ia9cbfc2d63cb7a47e562b2cd9341caf962bcc110
2012-12-13Merge "New default coefficient/band probabilities." into experimentalRonald S. Bultje
2012-12-12New default coefficient/band probabilities.Ronald S. Bultje
Gives 0.5-0.6% improvement on derf and stdhd, and 1.1% on hd. The old tables basically derive from times that we had only 4x4 or only 4x4 and 8x8 DCTs. Note that some values are filled with 128, because e.g. ADST ever only occurs as Y-with-DC, as does 32x32; 16x16 ever only occurs as Y-with-DC or as UV (as complement of 32x32 Y); and 8x8 Y2 ever only has 4 coefficients max. If preferred, I can add values of other tables in their place (e.g. use 4x4 2nd order high-frequency probabilities for 8x8 2nd order), so that they make at least some sense if we ever implement a larger 2nd order transform for the 8x8 DCT (etc.), please let me know Change-Id: I917db356f2aff8865f528eb873c56ef43aa5ce22
2012-12-12Merge "Consistently use get_prob(), clip_prob() and newly added ↵Ronald S. Bultje
clip_pixel()." into experimental
2012-12-12Consistently use get_prob(), clip_prob() and newly added clip_pixel().Ronald S. Bultje
Add a function clip_pixel() to clip a pixel value to the [0,255] range of allowed values, and use this where-ever appropriate (e.g. prediction, reconstruction). Likewise, consistently use the recently added function clip_prob(), which calculates a binary probability in the [1,255] range. If possible, try to use get_prob() or its sister get_binary_prob() to calculate binary probabilities, for consistency. Since in some places, this means that binary probability calculations are changed (we use {255,256}*count0/(total) in a range of places, and all of these are now changed to use 256*count0+(total>>1)/total), this changes the encoding result, so this patch warrants some extensive testing. Change-Id: Ibeeff8d886496839b8e0c0ace9ccc552351f7628
2012-12-11Merge "clean up tokenize_b() and stuff_b()" into experimentalYaowu Xu
2012-12-11clean up tokenize_b() and stuff_b()Yaowu Xu
Change-Id: I0c1be01aae933243311ad321b6c456adaec1a0f5
2012-12-11Merge "experiment with CONTEXT conversion" into experimentalYaowu Xu
2012-12-10Merge "A bug fix related to switchable filters" into experimentalDeb Mukherjee
2012-12-10A bug fix related to switchable filtersDeb Mukherjee
The switchable count update was mistakenly inside a macro. Change-Id: Iec04c52ad57034b88312dbaf05eee1f47ce265b3
2012-12-10Further changes to mv reference code.Paul Wilkins
Some further changes and refactoring of mv reference code and selection of center point for searches. Mainly relates to not passing so many different local copies of things around. Some place holder comments. Change-Id: I309f10ffe9a9cde7663e7eae19eb594371c8d055
2012-12-07Merge remote-tracking branch 'origin/vp9-preview' into experimentalJohn Koleszar
2012-12-07experiment with CONTEXT conversionYaowu Xu
This commit changed the ENTROPY_CONTEXT conversion between MBs that have different transform sizes. In additioin, this commit also did a number of cleanup/bug fix: 1. removed duplicate function vp9_fix_contexts() and changed to use vp8_reset_mb_token_contexts() for both encoder and decoder 2. fixed a bug in stuff_mb_16x16 where wrong context was used for the UV. 3. changed reset all context to 0 if a MB is skipped to simplify the logic. Change-Id: I7bc57a5fb6dbf1f85eac1543daaeb3a61633275c
2012-12-07Merge "Fix meaninglesss if." into vp9-previewJim Bankoski
2012-12-07Introduce vp9_coeff_probs/counts/stats/accum types.Ronald S. Bultje
Use these, instead of the 4/5-dimensional arrays, to hold statistics, counts, accumulations and probabilities for coefficient tokens. This commit also re-allows ENTROPY_STATS to compile. Change-Id: If441ffac936f52a3af91d8f2922ea8a0ceabdaa5
2012-12-07Fix meaninglesss if.Frank Galligan
Change-Id: I0cb06d77805246fe39d39ad3bc5df3c3f52c7050
2012-12-07Remove unused symbols from vp9 asm offsets C files.Frank Galligan
Change-Id: I366e6d175da3012f1c8607fd7fad99fbbb616091
2012-12-0732x32 transform for superblocks.Ronald S. Bultje
This adds Debargha's DCT/DWT hybrid and a regular 32x32 DCT, and adds code all over the place to wrap that in the bitstream/encoder/decoder/RD. Some implementation notes (these probably need careful review): - token range is extended by 1 bit, since the value range out of this transform is [-16384,16383]. - the coefficients coming out of the FDCT are manually scaled back by 1 bit, or else they won't fit in int16_t (they are 17 bits). Because of this, the RD error scoring does not right-shift the MSE score by two (unlike for 4x4/8x8/16x16). - to compensate for this loss in precision, the quantizer is halved also. This is currently a little hacky. - FDCT and IDCT is double-only right now. Needs a fixed-point impl. - There are no default probabilities for the 32x32 transform yet; I'm simply using the 16x16 luma ones. A future commit will add newly generated probabilities for all transforms. - No ADST version. I don't think we'll add one for this level; if an ADST is desired, transform-size selection can scale back to 16x16 or lower, and use an ADST at that level. Additional notes specific to Debargha's DWT/DCT hybrid: - coefficient scale is different for the top/left 16x16 (DCT-over-DWT) block than for the rest (DWT pixel differences) of the block. Therefore, RD error scoring isn't easily scalable between coefficient and pixel domain. Thus, unfortunately, we need to compute the RD distortion in the pixel domain until we figure out how to scale these appropriately. Change-Id: I00386f20f35d7fabb19aba94c8162f8aee64ef2b
2012-12-05Use 'vpx_scale' consistentlyJohann
Change-Id: I178352813d2b8702d081caf405de9dbad9af2cc3
2012-12-05Merge "Change to MV reference search." into experimentalPaul Wilkins
2012-12-05Begin to refactor vpx_scale usage in VP9Johann
Only declare the functions in vpx_scale RTCD and include the relevant header. Remove unused files and functions in vpx_scale to avoid wasting time renaming. vpx_scale/win32/scaleopt.c contains functions which have not been called in a long time but are potentially optimized. The 'vp8' functions have not been renamed yet. That is for after the cleanup. Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
2012-12-05Remove ARM optimizations from VP9Johann
Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
2012-12-05Merge remote-tracking branch 'origin/vp9-preview' into experimentalJohn Koleszar
2012-12-05vp9_bilinear_filters_mmx: add missing extern specifiersJohn Koleszar
Change-Id: Ibabf18947f90cb4f45052763ebf44cfb8209bd8b
2012-12-05Change to MV reference search.Paul Wilkins
This patch reduces the cpu cost of the MV ref search by only allowing insert for candidates that would be in the current top 4. This could alter the outcome and slightly favors near candidates which are tested first but also limits the worst case loop count to 4 and means in many cases it will drop out and not happen. Change-Id: Idd795a825f9fd681f30f4fcd550c34c38939e113
2012-12-04Merge "Begin to refactor vpx_scale usage in VP9" into experimentalJohann
2012-12-03Merge "vp9: Fix assert check." into vp9-previewFrank Galligan
2012-12-03merged optimiz_b_16x16() into optmize_b()Yaowu Xu
The commit changed the trellis quantization function optimize_b() to work for MBs using all transform sizes, and eliminated the function for MB using 16x16 transform only, optimize_b_16x16. Change-Id: I3fa650587ab5198ed16315b38754783a72b33ba2
2012-12-03Merge "Remove ARM optimizations from VP9" into experimentalJohann
2012-12-03Begin to refactor vpx_scale usage in VP9Johann
Only declare the functions in vpx_scale RTCD and include the relevant header. Remove unused files and functions in vpx_scale to avoid wasting time renaming. vpx_scale/win32/scaleopt.c contains functions which have not been called in a long time but are potentially optimized. The 'vp8' functions have not been renamed yet. That is for after the cleanup. Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
2012-12-03Remove ARM optimizations from VP9Johann
Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
2012-12-03Merge "fixes --disable-vp9-encoder" into vp9-previewJim Bankoski
2012-12-03fixes --disable-vp9-encoderJim Bankoski
Change-Id: I467bf0fdf3b35326bcce58d5459e6d2dbfd6c5e5
2012-12-03vp9: Fix assert check.Frank Galligan
Change-Id: If0cc1ab60dff6abd67dae7c7b3dc83a1afd7fe65
2012-12-03vp9: Remove superfluous command.Frank Galligan
- vpx_calloc is called on arf_not_zz above. - Note The removed vpx_memset call had an issue with sizeof. Change-Id: I86fd7a167d0a042e581e613e2a6c0b5e63073fc6
2012-12-01Supports inter-intra prediction with superblocksDeb Mukherjee
Adds support for compound inter-intra prediction with superblocks. Also, fixes a bug that disabled intra modes for superblocks. Change-Id: I4d711317e1bc19df8c2f32dc645429f7fff31036
2012-11-30Adds switchable filters with superblocksDeb Mukherjee
Allows switchbale filters to be used without mismatch when the superblock experiment is on. Also removes a spurious clamping code in decodemv.c which causes rare encode/decode mismatches. Change-Id: I809d9ee0b2859552b613500b539a615515b863ae
2012-11-30warnings in various experimentsJim Bankoski
Change-Id: Ib5106d4772450f8026f823dd743f162ab833b1d6
2012-11-30google style guide include guardsJim Bankoski
Change-Id: I2c252f3ddcc99e96c1f5d3dab8bcb25a2a3637ea
2012-11-29last remaining warningJim Bankoski
Change-Id: I1f49d96cdb5e342041c9a72ef31df361a1b609eb
2012-11-29Additional warning message cleanup.Jim Bankoski
Change-Id: I429a97ac57db3de0bf67ce3f3fe0c6b409f77a9e
2012-11-29Merge changes Iaa67bcf1,Ibea3bc80 into experimentalYaowu Xu
* changes: more warning cleanup unused variables & warnings
2012-11-29Merge "more unused variables." into experimentalYaowu Xu
2012-11-29Merge "unused variable" into experimentalYaowu Xu
2012-11-29Merge "unused var removed" into experimentalYaowu Xu