shithub: libvpx

Download patch

ref: ef4a9670a85450a4ea4587634c20ca6c2fa2f8f9
parent: dd0100ddb1d900bd8596b6f9e3c5f9c128a14e67
author: Marco Paniconi <marpan@google.com>
date: Fri Jul 27 13:24:29 EDT 2012

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

--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -1364,10 +1364,6 @@
                     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;
         }
     }
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -388,13 +388,13 @@
         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;
         }