From ef4a9670a85450a4ea4587634c20ca6c2fa2f8f9 Mon Sep 17 00:00:00 2001 From: Marco Paniconi Date: Fri, 27 Jul 2012 17:24:29 -0700 Subject: [PATCH] Remove the resetting of qp params for temporal layers. The ambient qp and active worse/best qp were reset for every frame when temporal layers is on. This change removes this reset. As this affects the target size for forced key frames (it will actually lower the size somewhat), we increased the inital boost factor to compensate. Change-Id: Ie38d95f5c99ab3d447469c49e2177bc3fcc4ad28 --- vp8/encoder/onyx_if.c | 4 ---- vp8/encoder/ratectrl.c | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index d50076d3b..6eefacbf5 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -1364,10 +1364,6 @@ static void update_layer_contexts (VP8_COMP *cpi) oxcf->target_bitrate[i-1]) * 1000 / (lc->frame_rate - prev_layer_frame_rate); - lc->active_worst_quality = oxcf->worst_allowed_q; - lc->active_best_quality = oxcf->best_allowed_q; - lc->avg_frame_qindex = oxcf->worst_allowed_q; - prev_layer_frame_rate = lc->frame_rate; } } diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c index 05e152ebe..e1c8c4eb7 100644 --- a/vp8/encoder/ratectrl.c +++ b/vp8/encoder/ratectrl.c @@ -388,13 +388,13 @@ static void calc_iframe_target_size(VP8_COMP *cpi) int Q = (cpi->common.frame_flags & FRAMEFLAGS_KEY) ? cpi->avg_frame_qindex : cpi->ni_av_qi; - int initial_boost = 24; /* |2.5 * per_frame_bandwidth| */ + int initial_boost = 32; /* |3.0 * per_frame_bandwidth| */ /* Boost depends somewhat on frame rate: only used for 1 layer case. */ if (cpi->oxcf.number_of_layers == 1) { kf_boost = MAX(initial_boost, (int)(2 * cpi->output_frame_rate - 16)); } else { - /* Initial factor: set target size to: |2.5 * per_frame_bandwidth|. */ + /* Initial factor: set target size to: |3.0 * per_frame_bandwidth|. */ kf_boost = initial_boost; }