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