diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index ea2db6331..b28939120 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -2693,7 +2693,6 @@ static void encode_with_recode_loop(VP9_COMP *cpi, int loop = 0; int overshoot_seen = 0; int undershoot_seen = 0; - int active_worst_qchanged = 0; int q_low = bottom_index, q_high = top_index; do { vp9_clear_system_state(); // __asm emms; @@ -2745,7 +2744,6 @@ static void encode_with_recode_loop(VP9_COMP *cpi, if (frame_over_shoot_limit == 0) frame_over_shoot_limit = 1; - active_worst_qchanged = 0; if (cpi->oxcf.end_usage == USAGE_CONSTANT_QUALITY) { loop = 0; @@ -2806,16 +2804,12 @@ static void encode_with_recode_loop(VP9_COMP *cpi, if (undershoot_seen || loop_count > 1) { // Update rate_correction_factor unless - // cpi->rc.active_worst_quality has changed. - if (!active_worst_qchanged) - vp9_update_rate_correction_factors(cpi, 1); + vp9_update_rate_correction_factors(cpi, 1); q = (q_high + q_low + 1) / 2; } else { // Update rate_correction_factor unless - // cpi->rc.active_worst_quality has changed. - if (!active_worst_qchanged) - vp9_update_rate_correction_factors(cpi, 0); + vp9_update_rate_correction_factors(cpi, 0); q = vp9_regulate_q(cpi, cpi->rc.this_frame_target); @@ -2834,15 +2828,13 @@ static void encode_with_recode_loop(VP9_COMP *cpi, if (overshoot_seen || loop_count > 1) { // Update rate_correction_factor unless // cpi->rc.active_worst_quality has changed. - if (!active_worst_qchanged) - vp9_update_rate_correction_factors(cpi, 1); + vp9_update_rate_correction_factors(cpi, 1); q = (q_high + q_low) / 2; } else { // Update rate_correction_factor unless // cpi->rc.active_worst_quality has changed. - if (!active_worst_qchanged) - vp9_update_rate_correction_factors(cpi, 0); + vp9_update_rate_correction_factors(cpi, 0); q = vp9_regulate_q(cpi, cpi->rc.this_frame_target); @@ -2884,7 +2876,6 @@ static void encode_with_recode_loop(VP9_COMP *cpi, #endif } } while (loop); - cpi->rc.active_worst_qchanged = active_worst_qchanged; } static void encode_frame_to_data_rate(VP9_COMP *cpi, @@ -3167,9 +3158,9 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, cpi->rc.projected_frame_size = (*size) << 3; // Post encode loop adjustment of Q prediction. - if (!cpi->rc.active_worst_qchanged) - vp9_update_rate_correction_factors(cpi, (cpi->sf.recode_loop || - cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) ? 2 : 0); + vp9_update_rate_correction_factors( + cpi, (cpi->sf.recode_loop || + cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) ? 2 : 0); cpi->rc.last_q[cm->frame_type] = cm->base_qindex; diff --git a/vp9/encoder/vp9_onyx_int.h b/vp9/encoder/vp9_onyx_int.h index 2774d951d..03002ef4b 100644 --- a/vp9/encoder/vp9_onyx_int.h +++ b/vp9/encoder/vp9_onyx_int.h @@ -340,7 +340,6 @@ typedef struct { int active_worst_quality; int best_quality; int active_best_quality; - int active_worst_qchanged; } RATE_CONTROL; typedef struct VP9_COMP { diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index 6e4c56c1a..1cb775363 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -390,7 +390,7 @@ void vp9_update_rate_correction_factors(VP9_COMP *cpi, int damp_var) { } -int vp9_regulate_q(VP9_COMP *cpi, int target_bits_per_frame) { +int vp9_regulate_q(const VP9_COMP *cpi, int target_bits_per_frame) { int q = cpi->rc.active_worst_quality; int i; diff --git a/vp9/encoder/vp9_ratectrl.h b/vp9/encoder/vp9_ratectrl.h index 57dcd3f15..13357447a 100644 --- a/vp9/encoder/vp9_ratectrl.h +++ b/vp9/encoder/vp9_ratectrl.h @@ -21,7 +21,7 @@ void vp9_restore_coding_context(VP9_COMP *cpi); void vp9_setup_key_frame(VP9_COMP *cpi); void vp9_update_rate_correction_factors(VP9_COMP *cpi, int damp_var); -int vp9_regulate_q(VP9_COMP *cpi, int target_bits_per_frame); +int vp9_regulate_q(const VP9_COMP *cpi, int target_bits_per_frame); void vp9_adjust_key_frame_context(VP9_COMP *cpi); void vp9_compute_frame_size_bounds(VP9_COMP *cpi, int *frame_under_shoot_limit,