]> granicus.if.org Git - libvpx/commitdiff
Some rate control adjustments to control overshoot
authorDeb Mukherjee <debargha@google.com>
Wed, 11 Mar 2015 00:25:10 +0000 (17:25 -0700)
committerDeb Mukherjee <debargha@google.com>
Wed, 11 Mar 2015 00:25:10 +0000 (17:25 -0700)
Some rate control adjustments to control overshoot
in the constrained quality mode.

Change-Id: I8907b9a883642d779009d0a138adfa6ba67e7f41

vp9/encoder/vp9_ratectrl.c

index c7c5e972d73fa03c35d46a5732d93cc0fff930d2..c6273f1aa67cb5b3ad7d23bec8fa3c249d1109b4 100644 (file)
@@ -754,7 +754,7 @@ static int rc_pick_q_and_bounds_one_pass_cbr(const VP9_COMP *cpi,
 
 static int get_active_cq_level(const RATE_CONTROL *rc,
                                const VP9EncoderConfig *const oxcf) {
-  static const double cq_adjust_threshold = 0.5;
+  static const double cq_adjust_threshold = 0.1;
   int active_cq_level = oxcf->cq_level;
   if (oxcf->rc_mode == VPX_CQ &&
       rc->total_target_bits > 0) {
@@ -1687,7 +1687,7 @@ void vp9_set_target_rate(VP9_COMP *cpi) {
   int target_rate = rc->base_frame_target;
 
   // Correction to rate target based on prior over or under shoot.
-  if (cpi->oxcf.rc_mode == VPX_VBR)
+  if (cpi->oxcf.rc_mode == VPX_VBR || cpi->oxcf.rc_mode == VPX_CQ)
     vbr_rate_correction(cpi, &target_rate, rc->vbr_bits_off_target);
   vp9_rc_set_frame_target(cpi, target_rate);
 }