shithub: libvpx

Download patch

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;