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.