From f1f74a4e6c62c10cf5a810d870797184e0661341 Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 30 Nov 2015 08:51:25 -0800 Subject: [PATCH] vp9: Update to noise estimation for denoising. Change initial state of noise level, and only update denoiser with noise level when estimate is done. Change-Id: If44090d29949d3e4927e855d88241634cdb395dc --- vp9/encoder/vp9_noise_estimate.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/vp9/encoder/vp9_noise_estimate.c b/vp9/encoder/vp9_noise_estimate.c index b41ffd0a3..b26f6f217 100644 --- a/vp9/encoder/vp9_noise_estimate.c +++ b/vp9/encoder/vp9_noise_estimate.c @@ -25,7 +25,7 @@ void vp9_noise_estimate_init(NOISE_ESTIMATE *const ne, int width, int height) { ne->enabled = 0; - ne->level = kLow; + ne->level = kLowLow; ne->value = 0; ne->count = 0; ne->thresh = 90; @@ -220,22 +220,25 @@ 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)) + if (ne->value > (ne->thresh << 1)) { ne->level = kHigh; - else + } else { if (ne->value > ne->thresh) ne->level = kMedium; else if (ne->value > (ne->thresh >> 1)) ne->level = kLow; else ne->level = kLowLow; + } +#if CONFIG_VP9_TEMPORAL_DENOISING + if (cpi->oxcf.noise_sensitivity > 0) + vp9_denoiser_set_noise_level(&cpi->denoiser, ne->level); +#endif } } } #if CONFIG_VP9_TEMPORAL_DENOISING - if (cpi->oxcf.noise_sensitivity > 0) { + if (cpi->oxcf.noise_sensitivity > 0) copy_frame(&cpi->denoiser.last_source, cpi->Source); - vp9_denoiser_set_noise_level(&cpi->denoiser, ne->level); - } #endif } -- 2.49.0