shithub: libvpx

Download patch

ref: 301409107feb8df66f3b6634af6abc92ff40be2f
parent: 507ee87e3e24db80322944d8a2481d3db8b6beeb
author: Marco Paniconi <marpan@google.com>
date: Mon Mar 12 12:23:08 EDT 2012

Update for key frame target size setting.

Set an iniital/minimun boost level for the frame rate
factor of key frame target size setting.

Change-Id: If2586f4ac76a1fa89378aa652a58607356a1f426

--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -392,13 +392,14 @@
         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.