shithub: libvpx

Download patch

ref: 768b1f72814a6f96f070ff2c4bee3419b1973ee8
parent: 99c573f0187dfead4a04b01402613e0cb8cb26bb
author: Marco <marpan@google.com>
date: Tue Jan 3 11:01:05 EST 2017

vp9: 1 pass cbr: allow noise estimation down to 360p.

Also adjust some thresholds for noise level setting.

Change-Id: I7e03d7057ef2061c9447728deb9c6aff5d3da4b7

--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -477,8 +477,8 @@
     thresholds[2] = threshold_base >> 2;
     thresholds[3] = threshold_base << 2;
   } else {
-    // Increase base variance threshold based on  estimated noise level.
-    if (cpi->noise_estimate.enabled) {
+    // Increase base variance threshold based on estimated noise level.
+    if (cpi->noise_estimate.enabled && cm->width >= 640 && cm->height >= 480) {
       NOISE_LEVEL noise_level =
           vp9_noise_estimate_extract_level(&cpi->noise_estimate);
       if (noise_level == kHigh)
--- a/vp9/encoder/vp9_noise_estimate.c
+++ b/vp9/encoder/vp9_noise_estimate.c
@@ -26,13 +26,13 @@
   ne->level = kLowLow;
   ne->value = 0;
   ne->count = 0;
-  ne->thresh = 90;
+  ne->thresh = 100;
   ne->last_w = 0;
   ne->last_h = 0;
   if (width * height >= 1920 * 1080) {
     ne->thresh = 200;
   } else if (width * height >= 1280 * 720) {
-    ne->thresh = 130;
+    ne->thresh = 140;
   }
   ne->num_frames_estimate = 20;
 }
@@ -52,7 +52,7 @@
       cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && cpi->oxcf.speed >= 5 &&
       cpi->resize_state == ORIG && cpi->resize_pending == 0 && !cpi->use_svc &&
       cpi->oxcf.content != VP9E_CONTENT_SCREEN && cpi->common.width >= 640 &&
-      cpi->common.height >= 480)
+      cpi->common.height >= 360)
     return 1;
   else
     return 0;