vp9-noise estimate: Move level setting to a function. 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
diff --git a/vp9/encoder/vp9_noise_estimate.c b/vp9/encoder/vp9_noise_estimate.c index b26f6f2..4befbb0 100644 --- a/vp9/encoder/vp9_noise_estimate.c +++ b/vp9/encoder/vp9_noise_estimate.c
@@ -82,6 +82,21 @@ } } +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 @@ // 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);
diff --git a/vp9/encoder/vp9_noise_estimate.h b/vp9/encoder/vp9_noise_estimate.h index 0d22ef0..826d125 100644 --- a/vp9/encoder/vp9_noise_estimate.h +++ b/vp9/encoder/vp9_noise_estimate.h
@@ -47,6 +47,8 @@ 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