summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-01-08Modifies inter/intra coding to allow all tx typesDebargha Mukherjee
The nominal tx_type for a given mode is used as a context to encode the actual tx_type for intra. Results: derflr: -0.241% BDRATE hevcmr: -0.366% BDRATE Change-Id: Icfe7b0a58d79bc6497a06e3441779afec6e01e21
2016-01-05Assert no mv clamping for scaled referencesYaowu Xu
Under --enable-better-hw-compabibility, this commit adds the asserts that no mv clamping is applied for scaled references, so when built with this configure option, decoder will assert if an input bitstream triggger mv clamping for scaled reference frames. Change-Id: I786e86a2bbbfb5bc2d2b706a31b0ffa8fe2eb0cb
2016-01-05Merge "Assert no 8x4/4x8 partition for scaled references"Yaowu Xu
2016-01-05Merge "vp9-skin detection: Refactoring."Marco Paniconi
2016-01-04Assert no 8x4/4x8 partition for scaled referencesYaowu Xu
This commit adds a new configure option: --enable-better-hw-compatibility The purpose of the configure option is to provide information on known hardware decoder implementation bugs, so encoder implementers may choose to implement their encoders in a way to avoid triggering these decoder bugs. The WebM team were made aware of that a number of hardware decoders have trouble in handling the combination of scaled frame reference frame and 8x4 or 4x8 partitions. This commit added asserts to vp9 decoder, so when built with above configure option, the decoder can assert if an input bitstream triggers such decoder bug. Change-Id: I386204cfa80ed16b50ebde57f886121ed76200bf
2016-01-05Merge "vp10: only assume ONLY_4X4 if segmentation is disabled."Yaowu Xu
2016-01-05Merge "vp10: skip coding of txsz for lossless-segment blocks."Yaowu Xu
2016-01-04vp9-skin detection: Refactoring.Marco
Add function to compute skin map for a given block, as its used in several places (cyclic refresh, noise estimation, and denoising). Change-Id: Ied622908df43b6927f7fafc6c019d1867f2a24eb
2016-01-04vp9-svc: Set initial values for ext_buffer/flag indices.Marco
Set initial values for these parameters in the vp9_init_layer_context(). This also fixes an issue in the svc-bypass mode when frame flags are passed via the vpx_codec_encode(). Change-Id: I0968f04672f8d3d2fe2cea6b8a23f79f80d7a8b1
2016-01-04vp10: only assume ONLY_4X4 if segmentation is disabled.Ronald S. Bultje
Otherwise, per-segment lossless might mean that some segments are not lossless and they could still want to use another mode. The per-block tx points remain uncoded on blocks where (per the segment id) the Q value implies lossless. Change-Id: If210206ab1fe3dd11976797370c77f961f13dfa0
2016-01-04vp10: skip coding of txsz for lossless-segment blocks.Ronald S. Bultje
Change-Id: Ic23c10b6d2a9fed3abe69c6bf10e910832444f2c
2015-12-28Merge "Code clean of highbd_tm_predictor_32x32"Jian Zhou
2015-12-28Merge changes I0139f8e9,I7d2545fcJian Zhou
* changes: Code clean of highbd_tm_predictor_16x16 Code clean of highbd_dc_predictor_32x32
2015-12-23Merge "Fix sub8x8 motion search on scaled reference frame"Jingning Han
2015-12-22Code clean of highbd_tm_predictor_32x32Jian Zhou
Remove the ARCH_X86_64 constraint. No performance hit on both big core and small core. Change-Id: I39860b62b7a0ae4acaafdca7d68f3e5820133a81
2015-12-22Code clean of highbd_tm_predictor_16x16Jian Zhou
Remove the ARCH_X86_64 constraint. Change-Id: I0139f8e998cc5525df55161c2054008d21ac24d4
2015-12-22Code clean of highbd_dc_predictor_32x32Jian Zhou
Remove the ARCH_X86_64 constraint. Change-Id: I7d2545fc4f24eb352cf3e03082fc4d48d46fbb09
2015-12-22Merge "aq-mode=3: Don't reset segment if block is determined to be skin."Marco Paniconi
2015-12-22aq-mode=3: Don't reset segment if block is determined to be skin.Marco
For coding block sizes <=16X16, if the block is determined to be skin, then always allow for that block to be candidate for refresh. So if that block happens to be on the boost segment(s), segment won't get reset to 0 and delta-q will be applied. PSNR/SSIM metrics neutral (little/no change) on RTC clips. Speed increase small/negligible (< 1%). Some visual improvement on faces in a few RTC clips. Change-Id: I6bf0fce6f39d820b491ce05d7c017ad168fce7d6
2015-12-22Merge "Code clean of highbd_tm_predictor_4x4"James Zern
2015-12-22Merge "Code clean of highbd_dc_predictor_4x4"James Zern
2015-12-21Merge "Code clean of highbd_v_predictor_4x4"Jian Zhou
2015-12-19Merge "Fix for issue 1114 compile error"Yunqing Wang
2015-12-18sad_sse2: fix sad4xN(_avg) on windowsJames Zern
reduce the register count by 1 to avoid xmm6 and unnecessarily penalizing the other users of the base macro Change-Id: I59605c9a41a31c1b74f67ec06a40d1a7f92c4699
2015-12-18Code clean of highbd_tm_predictor_4x4Jian Zhou
Replace MMX with SSE2, reduce mem access to left neighbor, loop unrolled. Change-Id: I941be915af809025f121ecc6c6443f73c9903e70
2015-12-18Code clean of highbd_v_predictor_4x4Jian Zhou
MMX replaced with SSE2, same performance. Change-Id: I2ab8f30a71e5fadbbc172fb385093dec1e11a696
2015-12-18Code clean of highbd_dc_predictor_4x4Jian Zhou
MMX replaced with SSE2, same performance. Change-Id: Ic57855254e26757191933c948fac6aa047fadafc
2015-12-18Merge "Non-rd speed >=5: Include H/V intra for bsize=16x16."Marco Paniconi
2015-12-18Fix for issue 1114 compile errorPeter de Rivaz
In 32-bit build with --enable-shared, there is a lot of register pressure and register src_strideq is reused. The code needs to use the stack based version of src_stride, but this doesn't compile when used in an lea instruction. This patch also fixes a related segmentation fault caused by the implementation using src_strideq even though it has been reused. This patch also fixes the HBD subpel variance tests that fail when compiled without disable-optimizations. These failures were caused by local variables in the assembler routines colliding with the caller's stack frame. Change-Id: Ice9d4dafdcbdc6038ad5ee7c1c09a8f06deca362
2015-12-18Merge "Code clean of sad4xN(_avg)_sse"Jian Zhou
2015-12-17Non-rd speed >=5: Include H/V intra for bsize=16x16.Marco
H/V intra mode was only enabled for bsize < 16x16, enable it also for bsize=16x16. Metrics are neutral with this change: Overall very small gain (0.1%), small visual gain on some RTC clips. Change-Id: Ib2d7a44382433bfc11cf324aa3cc5c382ea9e088
2015-12-17Code clean of sad4xN(_avg)_sseJian Zhou
Replace MMX with SSE2, reduce psadbw ops which may help Silvermont. Change-Id: Ic7aec15245c9e5b2f3903dc7631f38e60be7c93d
2015-12-16Merge "vp9-svc: Fix to allow for 4x4 variance for low resolutions."Marco Paniconi
2015-12-16Merge "vpxenc: don't warn about libwebm availability if writing IVF."James Zern
2015-12-16vp9-svc: Fix to allow for 4x4 variance for low resolutions.Marco
Change-Id: I3ec08e10d9ebf6d8b8a03004a320523f926e5cc4
2015-12-16Move bit_depth init out of setup_quantizationYaowu Xu
This also fixes a compiling error under --enable-vp9_highbitdepth. Change-Id: I9d1dcb95d3336d797eb3c23a4702c30b04355357
2015-12-16vpxenc: don't warn about libwebm availability if writing IVF.Ronald S. Bultje
Change-Id: I1a9635a9948458e6c83f5b58764b7e720d98e2ea
2015-12-16Merge "Non-rd variance partition: Lower the 64->32 force split threshold."Marco Paniconi
2015-12-15Non-rd variance partition: Lower the 64->32 force split threshold.Marco
Change-Id: I837551bdf87197bee8a193353bb31f4cff794787
2015-12-15Merge changes Icf9b57c3,I9e12da84,Idf5ee179Yaowu Xu
* changes: Fixed interval, fixed Q 1 pass test patch. 1 pass VBR mode bug fix. Fixed interval, fixed Q 1 pass test patch.
2015-12-15Merge "Revert "Add "unknown" status for noise estimation.""Marco Paniconi
2015-12-15Revert "Add "unknown" status for noise estimation."Marco Paniconi
This reverts commit e15fedb9258251bbb07def57e49e2bd1e0c4c538. Change-Id: Ibf2bce008c727a9754f88814b7630095fa7b8253
2015-12-15Merge "SVC 1 pass mode: Constrain inter mode search within superframe."Marco Paniconi
2015-12-15Merge "Fix a enc/dec mismatch under CONFIG_MISC_FIXES"Yaowu Xu
2015-12-15Merge "1 pass VBR mode bug fix."Paul Wilkins
2015-12-15Fixed interval, fixed Q 1 pass test patch.paulwilkins
For testing implemented a fixed pattern and delta, 1 pass, fixed Q, low delay mode. This has not in any way been tuned or optimized. Change-Id: Icf9b57c3bb16cc5c0726d5229009212af36eb6d9
2015-12-151 pass VBR mode bug fix.paulwilkins
(copied from VP9) The one pass VBR mode selects a Q range based on a moving average of recent Q values. This calculation should have been excluding arf overlay frames as these are usually coded at the highest allowed value. Their inclusion skews the average and can cause it to drift upwards even when the clip as a whole is undershooting. As such it can undermine correct adaptation of the allowed Q range especially for easy content. Change-Id: I9e12da84e12917e836b6e53ca4dfe4f150b9efb1
2015-12-15Fixed interval, fixed Q 1 pass test patch.paulwilkins
For testing implemented a fixed pattern and delta, 1 pass, fixed Q, low delay mode. This has not in any way been tuned or optimized. Change-Id: Idf5ee179b277fa15d07a97f14f2ce5bbaae80a04
2015-12-151 pass VBR mode bug fix.paulwilkins
The one pass VBR mode selects a Q range based on a moving average of recent Q values. This calculation should have been excluding arf overlay frames as these are usually coded at the highest allowed value. Their inclusion skews the average and can cause it to drift upwards even when the clip as a whole is undershooting. As such it can undermine correct adaptation of the allowed Q range especially for easy content. Change-Id: I7d10fe4227262376aa2dc2a7aec0f1fd82bf11f9
2015-12-14Fix a enc/dec mismatch under CONFIG_MISC_FIXESYaowu Xu
The culprit is on the decode side xd->lossless[i] setup was in wrong location where segment features are not yet decoded. Also on the encoder side, transform mode was not set consistently between when tx_mode is selected and how tx_mode is enforced in tx size selection. Change-Id: I4c4c32188fda7530cadab9b46d4201f33f7ceca3