shithub: libvpx

Download patch

ref: d7663edeba097e995a2726c0e138b8caaec4f052
parent: bc27812c8b90ce77f46bf89402704d59faffcf62
author: Paul Wilkins <[email protected]>
date: Mon Jan 6 06:26:02 EST 2014

Clean up:  unused function and variables

Remove adjust_maxq_qrange() and related variables.

Change-Id: I50d065f4619c499283e2680e31d0d99c22439dec

--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -961,31 +961,6 @@
   return fclamp(pow(error_term, power_term), 0.05, 5.0);
 }
 
-// Given a current maxQ value sets a range for future values.
-// PGW TODO..
-// This code removes direct dependency on QIndex to determine the range
-// (now uses the actual quantizer) but has not been tuned.
-static void adjust_maxq_qrange(VP9_COMP *cpi) {
-  int i;
-  // Set the max corresponding to cpi->rc.avg_q * 2.0
-  double q = cpi->rc.avg_q * 2.0;
-  cpi->twopass.maxq_max_limit = cpi->rc.worst_quality;
-  for (i = cpi->rc.best_quality; i <= cpi->rc.worst_quality; i++) {
-    cpi->twopass.maxq_max_limit = i;
-    if (vp9_convert_qindex_to_q(i) >= q)
-      break;
-  }
-
-  // Set the min corresponding to cpi->rc.avg_q * 0.5
-  q = cpi->rc.avg_q * 0.5;
-  cpi->twopass.maxq_min_limit = cpi->rc.best_quality;
-  for (i = cpi->rc.worst_quality; i >= cpi->rc.best_quality; i--) {
-    cpi->twopass.maxq_min_limit = i;
-    if (vp9_convert_qindex_to_q(i) <= q)
-      break;
-  }
-}
-
 static int estimate_max_q(VP9_COMP *cpi,
                           FIRSTPASS_STATS *fpstats,
                           int section_target_bandwitdh) {
@@ -998,16 +973,15 @@
   double err_correction_factor;
 
   if (section_target_bandwitdh <= 0)
-    return cpi->twopass.maxq_max_limit;          // Highest value allowed
+    return cpi->rc.worst_quality;          // Highest value allowed
 
   target_norm_bits_per_mb = section_target_bandwitdh < (1 << 20)
                               ? (512 * section_target_bandwitdh) / num_mbs
                               : 512 * (section_target_bandwitdh / num_mbs);
 
-
   // Try and pick a max Q that will be high enough to encode the
   // content at the given rate.
-  for (q = cpi->twopass.maxq_min_limit; q < cpi->twopass.maxq_max_limit; q++) {
+  for (q = cpi->rc.best_quality; q < cpi->rc.worst_quality; q++) {
     int bits_per_mb_at_this_q;
 
     err_correction_factor = calc_correction_factor(err_per_mb,
@@ -2083,10 +2057,6 @@
     // Special case code for first frame.
     int section_target_bandwidth =
         (int)(cpi->twopass.bits_left / frames_left);
-
-    // guess at maxq needed in 2nd pass
-    cpi->twopass.maxq_max_limit = cpi->rc.worst_quality;
-    cpi->twopass.maxq_min_limit = cpi->rc.best_quality;
 
     tmp_q = estimate_max_q(cpi, &cpi->twopass.total_left_stats,
                            section_target_bandwidth);
--- a/vp9/encoder/vp9_onyx_int.h
+++ b/vp9/encoder/vp9_onyx_int.h
@@ -531,8 +531,6 @@
     double modified_error_left;
     double kf_intra_err_min;
     double gf_intra_err_min;
-    int maxq_max_limit;
-    int maxq_min_limit;
     int static_scene_max_gf_interval;
     int kf_bits;
     // Remaining error from uncoded frames in a gf group. Two pass use only