summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2014-04-02 04:08:18 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-04-02 04:08:18 -0700
commit88690475ea28fb396c8efb01ab6d21e106765341 (patch)
tree34c49e845a767d9c6684b9fa2a1ed4241d1cc7ee /vp9
parent86f44a91f4987454ce3288e882d5e33a5a0dc5de (diff)
parent992c41d2fd7e078855fa7353d1262ef85167d41c (diff)
downloadlibvpx-88690475ea28fb396c8efb01ab6d21e106765341.tar
libvpx-88690475ea28fb396c8efb01ab6d21e106765341.tar.gz
libvpx-88690475ea28fb396c8efb01ab6d21e106765341.tar.bz2
libvpx-88690475ea28fb396c8efb01ab6d21e106765341.zip
Merge "Speed setting correction to max q estimate."
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_firstpass.c5
-rw-r--r--vp9/encoder/vp9_ratectrl.c2
2 files changed, 4 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c
index 25f7dcb94..cf0f8054a 100644
--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -911,6 +911,7 @@ int vp9_twopass_worst_quality(VP9_COMP *cpi, FIRSTPASS_STATS *fpstats,
const double section_err = fpstats->coded_error / fpstats->count;
const double err_per_mb = section_err / num_mbs;
+ const double speed_term = 1.0 + ((double)cpi->speed * 0.04);
if (section_target_bandwitdh <= 0)
return rc->worst_quality; // Highest value allowed
@@ -924,8 +925,8 @@ int vp9_twopass_worst_quality(VP9_COMP *cpi, FIRSTPASS_STATS *fpstats,
for (q = rc->best_quality; q < rc->worst_quality; ++q) {
const double err_correction_factor = calc_correction_factor(err_per_mb,
ERR_DIVISOR, 0.5, 0.90, q);
- const int bits_per_mb_at_this_q = vp9_rc_bits_per_mb(INTER_FRAME, q,
- err_correction_factor);
+ const int bits_per_mb_at_this_q =
+ vp9_rc_bits_per_mb(INTER_FRAME, q, (err_correction_factor * speed_term));
if (bits_per_mb_at_this_q <= target_norm_bits_per_mb)
break;
}
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c
index 3c8baad79..55a558122 100644
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -1013,7 +1013,7 @@ void vp9_rc_compute_frame_size_bounds(const VP9_COMP *cpi,
*frame_over_shoot_limit = this_frame_target * 9 / 8;
*frame_under_shoot_limit = this_frame_target * 7 / 8;
} else {
- // Stron overshoot limit for constrained quality
+ // Strong overshoot limit for constrained quality
if (cpi->oxcf.end_usage == USAGE_CONSTRAINED_QUALITY) {
*frame_over_shoot_limit = this_frame_target * 11 / 8;
*frame_under_shoot_limit = this_frame_target * 2 / 8;