From d5b3f29f3c19583bb9b5a10b96c1f23ec66f9689 Mon Sep 17 00:00:00 2001 From: Marco Date: Fri, 4 Dec 2015 11:57:04 -0800 Subject: [PATCH] Adjust variance threshold based on source noise level. For non-rd variance partition: Adjust variance threhsold based on noise level estimate. This change allows the adjustment to be updated more frequently. Change-Id: Ie2abf63bf3f1ee54d0bc4ff497298801fdb92b0d --- vp9/encoder/vp9_encodeframe.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 17ba95652..c643b1848 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -488,13 +488,14 @@ static void set_vbp_thresholds(VP9_COMP *cpi, int64_t thresholds[], int q) { thresholds[2] = threshold_base >> 2; thresholds[3] = threshold_base << 2; } else { - // Increase base variance threshold if estimated noise level is high. + // Increase base variance threshold based on estimated noise level. if (cpi->noise_estimate.enabled) { - if (cpi->noise_estimate.level == kHigh) + NOISE_LEVEL noise_level = vp9_noise_estimate_extract_level( + &cpi->noise_estimate); + if (noise_level == kHigh) threshold_base = 3 * threshold_base; - else - if (cpi->noise_estimate.level == kMedium) - threshold_base = threshold_base << 1; + else if (noise_level == kMedium) + threshold_base = threshold_base << 1; } if (cm->width <= 352 && cm->height <= 288) { thresholds[0] = threshold_base >> 3;