summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2016-01-14Merge "VP9: inline vp9_use_mv_hp()"Scott LaVarnway
2016-01-13VP9: Remove decoder args from find_mv_refs_idx()Scott LaVarnway
The decoder does not use this function. Change-Id: Ie67f909c0f4108ef286789c70df867d4b960a780
2016-01-13VP9: inline vp9_use_mv_hp()Scott LaVarnway
Change-Id: Ib275bfc4c29c572d6c70e5ec6dbfc241590d3e3e
2016-01-12Merge "VP9: Eliminate unnecessary nearest/near searches"Scott LaVarnway
2016-01-12VP9: Eliminate unnecessary nearest/near searchesScott LaVarnway
Prior to this patch, read_inter_block_mode_info() would find the nearmv and nearestmv for all modes. Now it does not search for ZEROMV modes and breaks out early for NEARMV and NEWMV modes. Change-Id: Ifa7b1eaf58bb03b9c7792ea5012fef477527d0fd
2016-01-07Merge "Enable encoder to avoid 8x4 or 4x8 partitions"Yaowu Xu
2016-01-07Merge "Fix a typo"Yaowu Xu
2016-01-07Enable encoder to avoid 8x4 or 4x8 partitionsYaowu Xu
This commit enables encoder to avoid 8x4 and 4x8 partitions for scaled reference frames when libvpx is configured and built with --enable-better-hw-compatibility Change-Id: I02ad65c386f5855f4325d72570c49164ed52f413
2016-01-07Fix a typoYaowu Xu
Change-Id: I12de2dd5e5f375551804166188d76a9ad8067b41
2016-01-06vp9-svc: Fix to avoid msan unitialized value.Marco
Move the logic for forcing zero_mode after the (ref_frame & flag_list) check. This was causing an memory leak under msan: https://bugs.chromium.org/p/webrtc/issues/detail?id=5402 Change-Id: Ie9d243369f8ed7c332f46178275945331da4fd85
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-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-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
2015-12-23Merge "Fix sub8x8 motion search on scaled reference frame"Jingning Han
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-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-16vp9-svc: Fix to allow for 4x4 variance for low resolutions.Marco
Change-Id: I3ec08e10d9ebf6d8b8a03004a320523f926e5cc4
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 "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: 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-15Merge "move vp9_avg to vpx_dsp"James Zern
2015-12-15Merge "Add "unknown" status for noise estimation."Jacky Chen
2015-12-14Add "unknown" status for noise estimation.jackychen
Change-Id: I0fe95332ccfa2e1ad2a01a8e7ddd631289e0f8eb
2015-12-14SVC 1 pass mode: Constrain inter mode search within superframe.Marco
Keep track of frame indexes for the references, and constrain inter mode search for reference with same temporal alignment. Improves speed by about ~15%, no noticeable loss in compression performance. Change-Id: I5c407a8acca921234060c4fcef4afd7d734201c8
2015-12-14move vp9_avg to vpx_dspJames Zern
Change-Id: I7bc991abea383db1f86c1bb0f2e849837b54d90f
2015-12-14Non-rd variance partition: Adjust logic for 32->16 force split.Marco
Lower the threshold for splitting 32x32->16x16 based on average variance, and add lower bound condition for this split to occur. This prevents unneccassry splitting for areas with very low variance. Change-Id: Ibeb33b3d993632c2019f296eb87ef3b7e3568189
2015-12-12Merge "Non-rd variance partition: Adjustments to reduce dragging artifact."Marco Paniconi
2015-12-11Non-rd variance partition: Adjustments to reduce dragging artifact.Marco
For non-rd variannce partition, speed >= 5: Adjustments to reduce dragging artifcat of background area near slow moving boundary. -Decrease base threshold under low source noise conditions. -Add condition to split 64x64/32x32 based on average variances of lower level blocks. PSNR/SSIM metrics go down ~0.7/0.9% on average on RTC set. Visually helps to reduce dragging artifact on some rtc clips. Change-Id: If1f0a1aef1ddacd67464520ca070e167abf82fac
2015-12-11Fix sub8x8 motion search on scaled reference frameJingning Han
This commit makes the sub8x8 block rate-distortion optimization scheme use precise motion compensated prediction to compute the rd cost. It fixes a potential buffer overflow issue related to sub8x8 motion search on scaled reference frame. Change-Id: I4274992ef4f54eaacfde60db045e269c13aaa2de
2015-12-10Merge "Sync high bit-depth temporal filter"Jingning Han
2015-12-10Merge "Backport temporal filter approach to VP9"Paul Wilkins
2015-12-09Sync high bit-depth temporal filterJingning Han
Change-Id: Ifdcfb91416be8189569f703bee9be253d7b3d9b6
2015-12-09Backport temporal filter approach to VP9Jingning Han
This commit enables the new temporal filter system for VP9. For speed 1, it improves the compression performance: derf 0.54% stdhd 1.62% Change-Id: I041760044def943e464345223790d4efad70b91e
2015-12-09Merge "Changes to exhaustive motion search."Yaowu Xu
2015-12-09Merge "Add vp9_avg_4x4_neon and the unit test."Jacky Chen
2015-12-08Add vp9_avg_4x4_neon and the unit test.jackychen
Change-Id: I3ef9a9648841374ed3cc865a02053c14ad821a20
2015-12-09Merge "vp9 denoiser: Re-evaluate mode selection for golden reference."Marco Paniconi
2015-12-08Changes to exhaustive motion search.paulwilkins
This change has been imported from VP9 and alters the nature and use of exhaustive motion search. Firstly any exhaustive search is preceded by a normal step search. The exhaustive search is only carried out if the distortion resulting from the step search is above a threshold value. Secondly the simple +/- 64 exhaustive search is replaced by a multi stage mesh based search where each stage has a range and step/interval size. Subsequent stages use the best position from the previous stage as the center of the search but use a reduced range and interval size. For example: stage 1: Range +/- 64 interval 4 stage 2: Range +/- 32 interval 2 stage 3: Range +/- 15 interval 1 This process, especially when it follows on from a normal step search, has shown itself to be almost as effective as a full range exhaustive search with step 1 but greatly lowers the computational complexity such that it can be used in some cases for speeds 0-2. This patch also removes a double exhaustive search for sub 8x8 blocks which also contained a bug (the two searches used different distortion metrics). For best quality in my test animation sequence this patch has almost no impact on quality but improves encode speed by more than 5X. Restricted use in good quality speeds 0-2 yields significant quality gains on the animation test of 0.2 - 0.5 db with only a small impact on encode speed. On most natural video clips, however, where the step search is performing well, the quality gain and speed impact are small. Change-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98
2015-12-07Merge "VP9: Add ssse3 version of vpx_idct32x32_135_add()"Scott LaVarnway
2015-12-04Adjust variance threshold based on source noise level.Marco
For non-rd variance partition: Adjust variance threhsold based on noise level estimate. This change allows the adjustment to be updated more frequently. Change-Id: Ie2abf63bf3f1ee54d0bc4ff497298801fdb92b0d
2015-12-04Merge "Non-rd partition: Use force split on 16x16 for low resolutions."Marco Paniconi
2015-12-04Non-rd partition: Use force split on 16x16 for low resolutions.Marco
For low resolutions, whem 4x4downsample is used for variance, use the same force split (that is used for 8x8downsample) for 16x16 blocks. No change in metrics. Small improvement visually. Change-Id: I915b9895902d0b9a41e75d37fee1bf3714d2366d