ref: dd3d08f0c227ebe08b445801eeb38d39cc06f377
parent: a5d499e16570d00d5e1348b1c7977ced7af3670f
author: Marco Paniconi <[email protected]>
date: Sun Jun 24 17:44:29 EDT 2018
vp9: Add lower Q limt to cyclic refresh usage. Disable the cyclic refresh for very low average Q. This reduces encoded bitrate for static slides after the the quality has ramped up well enough (low Q). And as the cyclic refresh is not needed at low Q in most cases, this has minimal/no effect on quality on RTC set. Change-Id: Id6d449aa2351bb6886d72aafb2d406e967ed2789
--- a/vp9/encoder/vp9_aq_cyclicrefresh.c
+++ b/vp9/encoder/vp9_aq_cyclicrefresh.c
@@ -427,9 +427,11 @@
double weight_segment_target = 0;
double weight_segment = 0;
int thresh_low_motion = (cm->width < 720) ? 55 : 20;
+ int qp_thresh = VPXMIN(20, rc->best_quality << 1);
cr->apply_cyclic_refresh = 1;
if (cm->frame_type == KEY_FRAME || cpi->svc.temporal_layer_id > 0 ||
is_lossless_requested(&cpi->oxcf) ||
+ rc->avg_frame_qindex[INTER_FRAME] < qp_thresh ||
(cpi->use_svc &&
cpi->svc.layer_context[cpi->svc.temporal_layer_id].is_key_frame) ||
(!cpi->use_svc && rc->avg_frame_low_motion < thresh_low_motion &&