summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_noise_estimate.c
diff options
context:
space:
mode:
authorMarco <marpan@google.com>2015-11-30 08:51:25 -0800
committerMarco <marpan@google.com>2015-11-30 10:03:20 -0800
commitf1f74a4e6c62c10cf5a810d870797184e0661341 (patch)
treeb514cfae4f5c66398c3e050d9e9f37b43ea035a5 /vp9/encoder/vp9_noise_estimate.c
parent610b413d7b9c7b9633ce6eb79e3daa7275542a40 (diff)
downloadlibvpx-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.c15
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
}