diff options
author | Marco Paniconi <marpan@google.com> | 2018-06-24 21:44:29 -0700 |
---|---|---|
committer | Marco Paniconi <marpan@google.com> | 2018-06-25 14:16:32 -0700 |
commit | dd3d08f0c227ebe08b445801eeb38d39cc06f377 (patch) | |
tree | 83b4ad000c317126a814b2a8e09e151a6f1bfa4b | |
parent | a5d499e16570d00d5e1348b1c7977ced7af3670f (diff) | |
download | libvpx-dd3d08f0c227ebe08b445801eeb38d39cc06f377.tar libvpx-dd3d08f0c227ebe08b445801eeb38d39cc06f377.tar.gz libvpx-dd3d08f0c227ebe08b445801eeb38d39cc06f377.tar.bz2 libvpx-dd3d08f0c227ebe08b445801eeb38d39cc06f377.zip |
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
-rw-r--r-- | vp9/encoder/vp9_aq_cyclicrefresh.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_aq_cyclicrefresh.c b/vp9/encoder/vp9_aq_cyclicrefresh.c index f47da2fa4..e11c94932 100644 --- a/vp9/encoder/vp9_aq_cyclicrefresh.c +++ b/vp9/encoder/vp9_aq_cyclicrefresh.c @@ -427,9 +427,11 @@ void vp9_cyclic_refresh_update_parameters(VP9_COMP *const cpi) { 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 && |