From 840dc6966de11aaa21f292aa3eff36f66ccfc3a5 Mon Sep 17 00:00:00 2001 From: Marco Paniconi Date: Wed, 20 Mar 2019 13:39:48 -0700 Subject: [PATCH] vp9-rtc: Fixes for low-resoln The force smooth_filter should only be used for noisy content, so for now keep it off and add TODO. Also fix/adjust low-resoln condition and threshold in cyclic refresh. Change-Id: I6c456dc9f23daabba20badd65a2f7ee6c5e259c4 --- vp9/encoder/vp9_aq_cyclicrefresh.c | 4 ++-- vp9/encoder/vp9_pickmode.c | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/vp9/encoder/vp9_aq_cyclicrefresh.c b/vp9/encoder/vp9_aq_cyclicrefresh.c index 5cc0e0372..b3b546044 100644 --- a/vp9/encoder/vp9_aq_cyclicrefresh.c +++ b/vp9/encoder/vp9_aq_cyclicrefresh.c @@ -530,9 +530,9 @@ void vp9_cyclic_refresh_update_parameters(VP9_COMP *const cpi) { cr->rate_boost_fac = 10; } // Adjust some parameters for low resolutions. - if (cm->width <= 352 && cm->height <= 288) { + if (cm->width * cm->height <= 352 * 288) { if (rc->avg_frame_bandwidth < 3000) { - cr->motion_thresh = 16; + cr->motion_thresh = 64; cr->rate_boost_fac = 13; } else { cr->max_qdelta_perc = 70; diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 86831b972..0f29739fd 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -1700,11 +1700,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data, int no_scaling = 0; unsigned int thresh_svc_skip_golden = 500; unsigned int thresh_skip_golden = 500; - int force_smooth_filter = - (cpi->oxcf.speed >= 8 && cm->width * cm->height <= 320 * 240 && - cm->base_qindex >= 200) - ? 1 - : 0; + // TODO(marpan/jianj): forcing smooth_interpol is visually better for noisy + // content, at low resolns. Look into adding this conditon. For now keep + // it off. + int force_smooth_filter = 0; int scene_change_detected = cpi->rc.high_source_sad || (cpi->use_svc && cpi->svc.high_source_sad_superframe); -- 2.40.0