summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
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-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-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
2015-12-04Merge "Fix bug when overlaying middle arfs in multi-arf groups."Paul Wilkins
2015-12-04Merge "vp9-noise estimate: Move level setting to a function."Marco Paniconi
2015-12-03vp9-denoiser: Increase threshold for mode re-evaluation.Marco
Change-Id: I57a15aec1cb2d6638f5211d30c2c9f15fb62494f
2015-12-03vp9-noise estimate: Move level setting to a function.Marco
This is so we may update level at any time (e.g., to be used for setting thresholds in variance-based partition). Change-Id: I32caad2271b8e03017a531f9ea456a6dbb9d49c7
2015-12-03Fix bug when overlaying middle arfs in multi-arf groups.paulwilkins
Do not reset the alt ref active flag when overlaying the middle arf(s) of a multi arf group. Change-Id: Ia55a55a376973f3fd17161429fd2afb07b4df31f
2015-12-02VP9: Add ssse3 version of vpx_idct32x32_135_add()Scott LaVarnway
Change-Id: I9a780131efaad28cf1ad233ae64c5c319a329727
2015-12-01Fix a spatial svc assert failureDebargha Mukherjee
Fixes spatial svc rc assert failure introdcued in: https://chromium-review.googlesource.com/#/c/312959/1 Change-Id: I6096bfbc484859d71a5fb55e6a3248a31885af61
2015-12-01Merge "Spatial SVC crash fix"Debargha Mukherjee
2015-12-01Fix a spatial svc bug related to scalingDebargha Mukherjee
Fixes bug introduced in https://chromium-review.googlesource.com/#/c/299482/5 Change-Id: If542c1a917380465dd9bc4ce5e32b0adbb20e340
2015-12-01vp9 denoiser: Re-evaluate mode selection for golden reference.Marco
Under certain denoising conditons, check for re-evaluation of zero_last mode if best mode was golden reference. Change-Id: Ic6cdfd175eef2f7d68606300c7173ab6654b3f6e
2015-11-30Condition use of minmax in variance partition on speed setting.Marco
For non-rd variance partition: only allow minmax computation (which currently has no arm-neon optimization) for speeds < 8. Performance loss is small: On RTC set with speed 8, few clips lose ~2/3%, average loss is < 1%. Change-Id: Ia9414f4d0b77dc83c3e73ca8de5d903f64b425ce
2015-11-30Merge "vp9 denoiser: Fix to re-evaluate mode selection."Marco Paniconi
2015-11-30vp9: Update to noise estimation for denoising.Marco
Change initial state of noise level, and only update denoiser with noise level when estimate is done. Change-Id: If44090d29949d3e4927e855d88241634cdb395dc
2015-11-30vp9 denoiser: Fix to re-evaluate mode selection.Marco
This fix allows to enable reuse_inter_pred. Change-Id: I53f2bf1163bb0036ffb6df92117a86debdca11d1
2015-11-25Merge "vp9 denoiser: Re-evaluate ZEROMV after denoiser filtering."Marco Paniconi
2015-11-25Merge changes Iaf8cbe95,I6748183d,I2a49811dJames Zern
* changes: add vp9_satd_neon fix vp9_satd_sse2 vp9_satd: return an int
2015-11-24vp9 denoiser: Re-evaluate ZEROMV after denoiser filtering.Marco
For denoising, and for noise level above threshold, re-evaluate ZEROMV for mode selection after denoising. Current change only does this check if selected best mode (before denoising) was intra. Change-Id: I4b1435b68d26c78f7597b995ee7bff0ddd5f9511
2015-11-24Spatial SVC crash fixDebargha Mukherjee
Fixes a spatial_svc breakage introduced in https://chromium-review.googlesource.com/#/c/305228/3. Change-Id: I7f2cecbdca980addb85d5e58b58b5454f4730ada
2015-11-24add vp9_satd_neonJames Zern
~60-65% faster at the function level across block sizes Change-Id: Iaf8cbe95731c43fdcbf68256e44284ba51a93893
2015-11-24vp9-denoiser: Fix to reset frame_stats.Marco
zeromv_lastref_sse was not reset. Change-Id: I23c12e804d63dc7dc18514f6efe71de1d1acbd6a
2015-11-24Merge "vp9 non-rd pickmode: Fix logic in reference masking."Marco Paniconi
2015-11-24Merge "Deduplicate some high bit depth tables"Alex Converse
2015-11-24vp9 non-rd pickmode: Fix logic in reference masking.Marco
This change makes sure last reference with zero mv is always checked for mode selection. No change in metrics. Change-Id: Iaf01877bf34272b966c78bfe18daad882a0a419e
2015-11-23Merge "VP9: Only zero counts when !frame_parallel_decoding_mode (2)"Scott LaVarnway
2015-11-23VP9: Only zero counts when !frame_parallel_decoding_mode (2)Scott LaVarnway
The counts are never used when frame_parallel_decoding_mode is set. Change-Id: I293aa68abadcdd30973adacb9f5f5a3aecf8daa2
2015-11-23vp9-svc: Fix to allow setting qp-max/min per spatial and temporal layer.Marco
Change-Id: Ic0ec32c1d7f7c08c9f956592dccbfd9060b1f624
2015-11-20vp9 denoiser: Bias to last reference for temporal filter.Marco
Change-Id: I6a360a12e8da8cdcb8a779647512591612d64f31
2015-11-20fix vp9_satd_sse2James Zern
accumulate satd in 32-bits + add unit test Change-Id: I6748183df3662ddb9d635f9641f9586f2fd38ad5
2015-11-20vp9_satd: return an intJames Zern
the final sum may use up to 26 bits + add a unit test + disable the sse2 as the result will rollover; this will be fixed in a future commit Change-Id: I2a49811dfaa06abfd9fa1e1e65ed7cd68e4c97ce
2015-11-20Merge "vp9-svc: Fix the setting of is_key_frame."Marco Paniconi