diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c index f4ed30026..fc340ee23 100644 --- a/vp8/encoder/ratectrl.c +++ b/vp8/encoder/ratectrl.c @@ -392,13 +392,14 @@ 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; // Corresponds to: |2.5 * per_frame_bandwidth| // Boost depends somewhat on frame rate: only used for 1 layer case. if (cpi->oxcf.number_of_layers == 1) { - kf_boost = (int)(2 * cpi->output_frame_rate - 16); + kf_boost = MAX(initial_boost, (int)(2 * cpi->output_frame_rate - 16)); } else { // Initial factor: set target size to: |2.5 * per_frame_bandwidth|. - kf_boost = 24; + kf_boost = initial_boost; } // adjustment up based on q: this factor ranges from ~1.2 to 2.2.