shithub: libvpx

Download patch

ref: e1312c36964f7ff23e80478f7410e5e026afb837
parent: d99e89084080c1d8060f926c0ccf28c9e6a3fdcb
author: Paul Wilkins <paulwilkins@google.com>
date: Mon Dec 9 12:48:35 EST 2013

Further q estimate adjustment.

Slightly reduces the mean tendency to undershoot target
rate in vbr, especially when using the memory less mode
and when recodes are disabled.

The effect is primarily at low q.

Change-Id: I59a593b99522cc7da31b4134d1c8a65f5b7b7c53

--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -954,7 +954,7 @@
   const double error_term = err_per_mb / err_divisor;
 
   // Adjustment based on actual quantizer to power term.
-  const double power_term = MIN(vp9_convert_qindex_to_q(q) * 0.01 + pt_low,
+  const double power_term = MIN(vp9_convert_qindex_to_q(q) * 0.0125 + pt_low,
                                 pt_high);
 
   // Calculate correction factor
@@ -1014,7 +1014,7 @@
     int bits_per_mb_at_this_q;
 
     err_correction_factor = calc_correction_factor(err_per_mb,
-                                                   ERR_DIVISOR, 0.4, 0.90, q);
+                                                   ERR_DIVISOR, 0.5, 0.90, q);
 
     bits_per_mb_at_this_q = vp9_rc_bits_per_mb(INTER_FRAME, q,
                                                err_correction_factor);
@@ -1064,7 +1064,7 @@
 
     // Error per MB based correction factor
     err_correction_factor =
-      calc_correction_factor(err_per_mb, 100.0, 0.4, 0.90, q) * clip_iifactor;
+      calc_correction_factor(err_per_mb, 100.0, 0.5, 0.90, q) * clip_iifactor;
 
     bits_per_mb_at_this_q =
       vp9_rc_bits_per_mb(INTER_FRAME, q, err_correction_factor);