]> granicus.if.org Git - libvpx/commitdiff
vp9-noise estimate: Move level setting to a function.
authorMarco <marpan@google.com>
Thu, 3 Dec 2015 21:08:37 +0000 (13:08 -0800)
committerMarco <marpan@google.com>
Thu, 3 Dec 2015 21:11:49 +0000 (13:11 -0800)
This is so we may update level at any time (e.g., to be used
for setting thresholds in variance-based partition).

Change-Id: I32caad2271b8e03017a531f9ea456a6dbb9d49c7

vp9/encoder/vp9_noise_estimate.c
vp9/encoder/vp9_noise_estimate.h

index b26f6f217b595d7f21c308cebaf8650c468f736f..4befbb066f4f0b135208b7dbfe8dc81f5cf357aa 100644 (file)
@@ -82,6 +82,21 @@ static void copy_frame(YV12_BUFFER_CONFIG * const dest,
   }
 }
 
+NOISE_LEVEL vp9_noise_estimate_extract_level(NOISE_ESTIMATE *const ne) {
+  int noise_level = kLowLow;
+  if (ne->value > (ne->thresh << 1)) {
+    noise_level = kHigh;
+  } else {
+    if (ne->value > ne->thresh)
+      noise_level = kMedium;
+    else if (ne->value > (ne->thresh >> 1))
+      noise_level = kLow;
+    else
+      noise_level = kLowLow;
+  }
+  return noise_level;
+}
+
 void vp9_update_noise_estimate(VP9_COMP *const cpi) {
   const VP9_COMMON *const cm = &cpi->common;
   CYCLIC_REFRESH *const cr = cpi->cyclic_refresh;
@@ -220,16 +235,7 @@ void vp9_update_noise_estimate(VP9_COMP *const cpi) {
         // Reset counter and check noise level condition.
         ne->num_frames_estimate = 30;
         ne->count = 0;
-        if (ne->value > (ne->thresh << 1)) {
-          ne->level = kHigh;
-        } else {
-          if (ne->value > ne->thresh)
-            ne->level = kMedium;
-          else if (ne->value > (ne->thresh >> 1))
-            ne->level = kLow;
-          else
-            ne->level = kLowLow;
-        }
+        ne->level = vp9_noise_estimate_extract_level(ne);
 #if CONFIG_VP9_TEMPORAL_DENOISING
         if (cpi->oxcf.noise_sensitivity > 0)
           vp9_denoiser_set_noise_level(&cpi->denoiser, ne->level);
index 0d22ef04248759c2c28e7ee45880ab15042cac13..826d125b5bbb0df870ac0f7a88fed50094bf3bc2 100644 (file)
@@ -47,6 +47,8 @@ void vp9_noise_estimate_init(NOISE_ESTIMATE *const ne,
                              int width,
                              int height);
 
+NOISE_LEVEL vp9_noise_estimate_extract_level(NOISE_ESTIMATE *const ne);
+
 void vp9_update_noise_estimate(struct VP9_COMP *const cpi);
 
 #ifdef __cplusplus