diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c index bf84035aa7823e6dceaee1722303011ad983bde8..472e85f2b0dce10c072750c7d97c8106b685e98d 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.