summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Paniconi <marpan@google.com>2013-11-13 16:02:54 -0800
committerMarco Paniconi <marpan@google.com>2013-11-13 16:14:31 -0800
commit9977332615deef53454f3c95c8d9200f8e775f39 (patch)
treeb3d21647e0ab4cacd75a7968a981aed1ce717a16
parentb3c75a2d6c04213e729c8e4cc45ec7f45aa1c38f (diff)
downloadlibvpx-9977332615deef53454f3c95c8d9200f8e775f39.tar.gz
libvpx-9977332615deef53454f3c95c8d9200f8e775f39.tar.bz2
libvpx-9977332615deef53454f3c95c8d9200f8e775f39.zip
For CBR, keep rate-correction damping factor to 2.
The switch to the rate-correction damping factor in https://gerrit.chromium.org/gerrit/#/c/67536/ was not conditioned on CBR mode. Change-Id: I2326704e8ac030a4f7b592dd3fedb94c7dd0644d
-rw-r--r--test/datarate_test.cc4
-rw-r--r--vp9/encoder/vp9_onyx_if.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/test/datarate_test.cc b/test/datarate_test.cc
index 85f4bb668..5785a0aac 100644
--- a/test/datarate_test.cc
+++ b/test/datarate_test.cc
@@ -248,9 +248,9 @@ TEST_P(DatarateTestVP9, BasicRateTargeting) {
cfg_.rc_target_bitrate = i;
ResetModel();
ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
- ASSERT_GE(cfg_.rc_target_bitrate, effective_datarate_ * 0.8)
+ ASSERT_GE(cfg_.rc_target_bitrate, effective_datarate_ * 0.9)
<< " The datarate for the file exceeds the target by too much!";
- ASSERT_LE(cfg_.rc_target_bitrate, effective_datarate_ * 1.3)
+ ASSERT_LE(cfg_.rc_target_bitrate, effective_datarate_ * 1.1)
<< " The datarate for the file missed the target!";
}
}
diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c
index 8a9834310..926e91f71 100644
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -3443,7 +3443,9 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
// Post encode loop adjustment of Q prediction.
if (!active_worst_qchanged)
- vp9_update_rate_correction_factors(cpi, (cpi->sf.recode_loop) ? 2 : 0);
+ vp9_update_rate_correction_factors(cpi, (cpi->sf.recode_loop ||
+ cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) ? 2 : 0);
+
cpi->last_q[cm->frame_type] = cm->base_qindex;