ref: f1f74a4e6c62c10cf5a810d870797184e0661341
parent: 610b413d7b9c7b9633ce6eb79e3daa7275542a40
author: Marco <[email protected]>
date: Mon Nov 30 03:51:25 EST 2015
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
--- a/vp9/encoder/vp9_noise_estimate.c
+++ b/vp9/encoder/vp9_noise_estimate.c
@@ -25,7 +25,7 @@
int width,
int height) {
ne->enabled = 0;
- ne->level = kLow;
+ ne->level = kLowLow;
ne->value = 0;
ne->count = 0;
ne->thresh = 90;
@@ -220,9 +220,9 @@
// 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))
@@ -229,13 +229,16 @@
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
}