summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco <marpan@google.com>2017-01-03 16:01:05 -0800
committerMarco <marpan@google.com>2017-01-03 16:26:22 -0800
commit768b1f72814a6f96f070ff2c4bee3419b1973ee8 (patch)
tree208bcaf448719a5ddc3d9f8d1a1030d4f7d9450d
parent99c573f0187dfead4a04b01402613e0cb8cb26bb (diff)
downloadlibvpx-768b1f72814a6f96f070ff2c4bee3419b1973ee8.tar.gz
vp9: 1 pass cbr: allow noise estimation down to 360p.
Also adjust some thresholds for noise level setting. Change-Id: I7e03d7057ef2061c9447728deb9c6aff5d3da4b7
-rw-r--r--vp9/encoder/vp9_encodeframe.c4
-rw-r--r--vp9/encoder/vp9_noise_estimate.c6
2 files changed, 5 insertions, 5 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 780d9855d..e622f2c40 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -477,8 +477,8 @@ 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 based on estimated noise level.
- if (cpi->noise_estimate.enabled) {
+ // Increase base variance threshold based on estimated noise level.
+ if (cpi->noise_estimate.enabled && cm->width >= 640 && cm->height >= 480) {
NOISE_LEVEL noise_level =
vp9_noise_estimate_extract_level(&cpi->noise_estimate);
if (noise_level == kHigh)
diff --git a/vp9/encoder/vp9_noise_estimate.c b/vp9/encoder/vp9_noise_estimate.c
index caf48d8c1..2252fe16b 100644
--- a/vp9/encoder/vp9_noise_estimate.c
+++ b/vp9/encoder/vp9_noise_estimate.c
@@ -26,13 +26,13 @@ void vp9_noise_estimate_init(NOISE_ESTIMATE *const ne, int width, int height) {
ne->level = kLowLow;
ne->value = 0;
ne->count = 0;
- ne->thresh = 90;
+ ne->thresh = 100;
ne->last_w = 0;
ne->last_h = 0;
if (width * height >= 1920 * 1080) {
ne->thresh = 200;
} else if (width * height >= 1280 * 720) {
- ne->thresh = 130;
+ ne->thresh = 140;
}
ne->num_frames_estimate = 20;
}
@@ -52,7 +52,7 @@ static int enable_noise_estimation(VP9_COMP *const cpi) {
cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && cpi->oxcf.speed >= 5 &&
cpi->resize_state == ORIG && cpi->resize_pending == 0 && !cpi->use_svc &&
cpi->oxcf.content != VP9E_CONTENT_SCREEN && cpi->common.width >= 640 &&
- cpi->common.height >= 480)
+ cpi->common.height >= 360)
return 1;
else
return 0;