vp9-noise estimation: Increase threshold for Low-level.

This make it more likely clean/low-noise content will
be set as LowLow, and hence no denoising will be done.
Also set early exit on denoising for small blocks.

Change-Id: I4a72bba3e6c5e2d523d304c39deacc9c39bf216c
This commit is contained in:
Marco
2016-04-04 09:25:59 -07:00
parent 89b1c9d4be
commit 9ff73fe092
2 changed files with 7 additions and 1 deletions

View File

@@ -216,6 +216,12 @@ static VP9_DENOISER_DECISION perform_motion_compensation(VP9_DENOISER *denoiser,
if (is_skin && (motion_magnitude > 0 || consec_zeromv < 4))
return COPY_BLOCK;
// Avoid denoising for small block (unless motion is small).
// Small blocks are selected in variance partition (before encoding) and
// will typically lie on moving areas.
if (motion_magnitude > 16 && bs <= BLOCK_8X8)
return COPY_BLOCK;
// If the best reference frame uses inter-prediction and there is enough of a
// difference in sum-squared-error, use it.
if (frame != INTRA_FRAME &&

View File

@@ -91,7 +91,7 @@ NOISE_LEVEL vp9_noise_estimate_extract_level(NOISE_ESTIMATE *const ne) {
} else {
if (ne->value > ne->thresh)
noise_level = kMedium;
else if (ne->value > (ne->thresh >> 1))
else if (ne->value > ((5 * ne->thresh) >> 3))
noise_level = kLow;
else
noise_level = kLowLow;