summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorMarco Paniconi <marpan@google.com>2016-04-04 17:33:34 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-04-04 17:33:35 +0000
commit71cf9fac836c8be197f33be12250a432a2613b48 (patch)
tree4fd6448c3bd5a31bf2d2cd9946dff5617f412b30 /vp9/encoder
parenta2307ff095bdb365c16c9c6ef4e2c825947b17e4 (diff)
parent9ff73fe0926b8256306df76f528f23eb1d73b57b (diff)
downloadlibvpx-71cf9fac836c8be197f33be12250a432a2613b48.tar
libvpx-71cf9fac836c8be197f33be12250a432a2613b48.tar.gz
libvpx-71cf9fac836c8be197f33be12250a432a2613b48.tar.bz2
libvpx-71cf9fac836c8be197f33be12250a432a2613b48.zip
Merge "vp9-noise estimation: Increase threshold for Low-level."
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_denoiser.c6
-rw-r--r--vp9/encoder/vp9_noise_estimate.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_denoiser.c b/vp9/encoder/vp9_denoiser.c
index 73f68bde7..f40d8ab8f 100644
--- a/vp9/encoder/vp9_denoiser.c
+++ b/vp9/encoder/vp9_denoiser.c
@@ -212,6 +212,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 &&
diff --git a/vp9/encoder/vp9_noise_estimate.c b/vp9/encoder/vp9_noise_estimate.c
index d505629a5..abe676803 100644
--- a/vp9/encoder/vp9_noise_estimate.c
+++ b/vp9/encoder/vp9_noise_estimate.c
@@ -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;