From dc36e5aff0786a696d50343c74391fe9aeaec97f Mon Sep 17 00:00:00 2001 From: Marco Date: Fri, 7 Aug 2015 10:14:01 -0700 Subject: [PATCH] Fix a setting in cyclic refresh. Use the correct period (in terms of cr->percent_refresh) for the condition of larger delta-qp following key frame. And account for larger interval for temporal layers. Change-Id: Ibb43f5200f9b1eeb8bbb8211327b08ecda3c3b8a --- vp9/encoder/vp9_aq_cyclicrefresh.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vp9/encoder/vp9_aq_cyclicrefresh.c b/vp9/encoder/vp9_aq_cyclicrefresh.c index b61906388..a13f0c001 100644 --- a/vp9/encoder/vp9_aq_cyclicrefresh.c +++ b/vp9/encoder/vp9_aq_cyclicrefresh.c @@ -459,7 +459,10 @@ void vp9_cyclic_refresh_update_parameters(VP9_COMP *const cpi) { cr->time_for_refresh = 0; // Use larger delta-qp (increase rate_ratio_qdelta) for first few (~4) // periods of the refresh cycle, after a key frame. - if (rc->frames_since_key < 4 * cr->percent_refresh) + // Account for larger interval on base layer for temporal layers. + if (cr->percent_refresh > 0 && + rc->frames_since_key < (4 * cpi->svc.number_temporal_layers) * + (100 / cr->percent_refresh)) cr->rate_ratio_qdelta = 3.0; else cr->rate_ratio_qdelta = 2.0; -- 2.40.0