vp9: Adjust some thresholds for noise estimation.

Adjust thresholds for noise estimation, for resolutions above VGA.
Tends to push cleaner/low noise clips to LowLow state.

No change in RTC metrics.

Change-Id: I739ca6b797d0a60ccd1c6c6a2775269b1f007e5e
This commit is contained in:
Marco 2017-05-04 17:34:19 -07:00
parent af69ed20c4
commit 34cce144d8

View File

@ -32,7 +32,7 @@ void vp9_noise_estimate_init(NOISE_ESTIMATE *const ne, int width, int height) {
if (width * height >= 1920 * 1080) {
ne->thresh = 200;
} else if (width * height >= 1280 * 720) {
ne->thresh = 140;
ne->thresh = 150;
} else if (width * height >= 640 * 360) {
ne->thresh = 100;
}
@ -114,6 +114,13 @@ void vp9_update_noise_estimate(VP9_COMP *const cpi) {
if (cpi->oxcf.noise_sensitivity > 0 && denoise_svc(cpi))
last_source = &cpi->denoiser.last_source;
#endif
// Tune these thresholds for different resolutions.
if (cm->width > 640 && cm->width < 1920) {
thresh_consec_zeromv = 5;
thresh_sum_diff = 200;
thresh_sum_spatial = (120 * 120) << 8;
thresh_spatial_var = (48 * 48) << 8;
}
ne->enabled = enable_noise_estimation(cpi);
if (cpi->svc.number_spatial_layers > 1)
frame_counter = cpi->svc.current_superframe;
@ -130,7 +137,8 @@ void vp9_update_noise_estimate(VP9_COMP *const cpi) {
ne->last_h = cm->height;
}
return;
} else if (cpi->rc.avg_frame_low_motion < (low_res ? 70 : 50)) {
} else if (cm->current_video_frame > 60 &&
cpi->rc.avg_frame_low_motion < (low_res ? 70 : 50)) {
// Force noise estimation to 0 and denoiser off if content has high motion.
ne->level = kLowLow;
#if CONFIG_VP9_TEMPORAL_DENOISING