]> granicus.if.org Git - libvpx/commitdiff
Further q estimate adjustment.
authorPaul Wilkins <paulwilkins@google.com>
Mon, 9 Dec 2013 17:48:35 +0000 (17:48 +0000)
committerPaul Wilkins <paulwilkins@google.com>
Thu, 19 Dec 2013 15:32:50 +0000 (15:32 +0000)
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

vp9/encoder/vp9_firstpass.c

index 3dcf6baac424f5c9f6bb894e57604fdcbe00eef5..d2bcabe27a352bcc7071df41adf5ece0566272c3 100644 (file)
@@ -954,7 +954,7 @@ static double calc_correction_factor(double err_per_mb,
   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 @@ static int estimate_max_q(VP9_COMP *cpi,
     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 @@ static int estimate_cq(VP9_COMP *cpi,
 
     // 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);