Age | Commit message (Collapse) | Author |
|
|
|
|
|
Change-Id: I0fe95332ccfa2e1ad2a01a8e7ddd631289e0f8eb
|
|
Change-Id: I7bc991abea383db1f86c1bb0f2e849837b54d90f
|
|
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
|
|
|
|
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
|
|
|
|
|
|
Change-Id: Ifdcfb91416be8189569f703bee9be253d7b3d9b6
|
|
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
|
|
|
|
|
|
Change-Id: I3ef9a9648841374ed3cc865a02053c14ad821a20
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
|
|
Change-Id: I57a15aec1cb2d6638f5211d30c2c9f15fb62494f
|
|
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
|
|
Do not reset the alt ref active flag when overlaying the middle
arf(s) of a multi arf group.
Change-Id: Ia55a55a376973f3fd17161429fd2afb07b4df31f
|
|
Change-Id: I9a780131efaad28cf1ad233ae64c5c319a329727
|
|
Fixes spatial svc rc assert failure introdcued in:
https://chromium-review.googlesource.com/#/c/312959/1
Change-Id: I6096bfbc484859d71a5fb55e6a3248a31885af61
|
|
|
|
Fixes bug introduced in
https://chromium-review.googlesource.com/#/c/299482/5
Change-Id: If542c1a917380465dd9bc4ce5e32b0adbb20e340
|
|
Under certain denoising conditons, check for re-evaluation of
zero_last mode if best mode was golden reference.
Change-Id: Ic6cdfd175eef2f7d68606300c7173ab6654b3f6e
|
|
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
|
|
|
|
Change initial state of noise level, and only update
denoiser with noise level when estimate is done.
Change-Id: If44090d29949d3e4927e855d88241634cdb395dc
|
|
This fix allows to enable reuse_inter_pred.
Change-Id: I53f2bf1163bb0036ffb6df92117a86debdca11d1
|
|
|
|
* changes:
add vp9_satd_neon
fix vp9_satd_sse2
vp9_satd: return an int
|
|
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
|
|
Fixes a spatial_svc breakage introduced in
https://chromium-review.googlesource.com/#/c/305228/3.
Change-Id: I7f2cecbdca980addb85d5e58b58b5454f4730ada
|
|
~60-65% faster at the function level across block sizes
Change-Id: Iaf8cbe95731c43fdcbf68256e44284ba51a93893
|
|
zeromv_lastref_sse was not reset.
Change-Id: I23c12e804d63dc7dc18514f6efe71de1d1acbd6a
|
|
|
|
|
|
This change makes sure last reference with zero mv
is always checked for mode selection.
No change in metrics.
Change-Id: Iaf01877bf34272b966c78bfe18daad882a0a419e
|
|
|
|
The counts are never used when frame_parallel_decoding_mode
is set.
Change-Id: I293aa68abadcdd30973adacb9f5f5a3aecf8daa2
|
|
Change-Id: Ic0ec32c1d7f7c08c9f956592dccbfd9060b1f624
|
|
Change-Id: I6a360a12e8da8cdcb8a779647512591612d64f31
|
|
accumulate satd in 32-bits
+ add unit test
Change-Id: I6748183df3662ddb9d635f9641f9586f2fd38ad5
|
|
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
|
|
|