diff options
author | Marco <marpan@google.com> | 2015-11-30 08:51:25 -0800 |
---|---|---|
committer | Marco <marpan@google.com> | 2015-11-30 10:03:20 -0800 |
commit | f1f74a4e6c62c10cf5a810d870797184e0661341 (patch) | |
tree | b514cfae4f5c66398c3e050d9e9f37b43ea035a5 /vp9/encoder/vp9_noise_estimate.c | |
parent | 610b413d7b9c7b9633ce6eb79e3daa7275542a40 (diff) | |
download | libvpx-f1f74a4e6c62c10cf5a810d870797184e0661341.tar.gz |
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
Diffstat (limited to 'vp9/encoder/vp9_noise_estimate.c')
-rw-r--r-- | vp9/encoder/vp9_noise_estimate.c | 15 |
1 files 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 } |