From 8cf6f78fcee6cf436fb5b5c540806129e16ebc7a Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 21 Jun 2017 15:24:56 -0700 Subject: [PATCH] vp9: Adjustments for aq-mode and pickmode for speed >= 8. Adjust the threshold for turning off cyclic refresh for high motion, and avoid testing golden in nonrd pickmode for speed >= 8 if golden refresh was long ago. No change/neutral on RTC metrics. Change-Id: I40959b8d9637f3553e7458bbabd8c6024c2c09c0 --- vp9/encoder/vp9_aq_cyclicrefresh.c | 3 ++- vp9/encoder/vp9_pickmode.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/vp9/encoder/vp9_aq_cyclicrefresh.c b/vp9/encoder/vp9_aq_cyclicrefresh.c index 048ea629f..2f2f0055a 100644 --- a/vp9/encoder/vp9_aq_cyclicrefresh.c +++ b/vp9/encoder/vp9_aq_cyclicrefresh.c @@ -425,9 +425,10 @@ void vp9_cyclic_refresh_update_parameters(VP9_COMP *const cpi) { int target_refresh = 0; double weight_segment_target = 0; double weight_segment = 0; + int thresh_low_motion = (cm->width < 720) ? 55 : 20; cr->apply_cyclic_refresh = 1; if (cm->frame_type == KEY_FRAME || cpi->svc.temporal_layer_id > 0 || - (!cpi->use_svc && rc->avg_frame_low_motion < 55 && + (!cpi->use_svc && rc->avg_frame_low_motion < thresh_low_motion && rc->frames_since_key > 40)) { cr->apply_cyclic_refresh = 0; return; diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index b1579a61a..20b57f44c 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -1617,7 +1617,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data, if (cpi->oxcf.speed >= 8 && !cpi->use_svc && ((cpi->rc.frames_since_golden + 1) < x->last_sb_high_content || - x->last_sb_high_content > 40)) + x->last_sb_high_content > 40 || cpi->rc.frames_since_golden > 120)) usable_ref_frame = LAST_FRAME; for (ref_frame = LAST_FRAME; ref_frame <= usable_ref_frame; ++ref_frame) { -- 2.40.0