ref: 71cf9fac836c8be197f33be12250a432a2613b48
parent: a2307ff095bdb365c16c9c6ef4e2c825947b17e4
parent: 9ff73fe0926b8256306df76f528f23eb1d73b57b
author: Marco Paniconi <[email protected]>
date: Mon Apr 4 13:33:34 EDT 2016
Merge "vp9-noise estimation: Increase threshold for Low-level."
--- a/vp9/encoder/vp9_denoiser.c
+++ b/vp9/encoder/vp9_denoiser.c
@@ -212,6 +212,12 @@
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 &&
--- a/vp9/encoder/vp9_noise_estimate.c
+++ b/vp9/encoder/vp9_noise_estimate.c
@@ -91,7 +91,7 @@
} 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;