ref: 5ba4b16c2df952a7e3a88e8dfb213f697f2bf121
parent: 84b4d8c692538e4d85b1179f432757e2c540c545
author: Marco Paniconi <marpan@google.com>
date: Thu Dec 19 09:26:46 EST 2013
Initialize avg_frame_qindex to worst_allowed for 1 pass. Change-Id: I535bde16c8fc4c2cd263bbbbaed46ead4c776090
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -1094,12 +1094,18 @@
// Initialize active best and worst q and average q values.
cpi->rc.active_worst_quality = cpi->oxcf.worst_allowed_q;
- cpi->rc.avg_frame_qindex[0] = (cpi->oxcf.worst_allowed_q +
- cpi->oxcf.best_allowed_q) / 2;
- cpi->rc.avg_frame_qindex[1] = (cpi->oxcf.worst_allowed_q +
- cpi->oxcf.best_allowed_q) / 2;
- cpi->rc.avg_frame_qindex[2] = (cpi->oxcf.worst_allowed_q +
- cpi->oxcf.best_allowed_q) / 2;
+ if (cpi->pass == 0 && cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) {
+ cpi->rc.avg_frame_qindex[0] = cpi->oxcf.worst_allowed_q;
+ cpi->rc.avg_frame_qindex[1] = cpi->oxcf.worst_allowed_q;
+ cpi->rc.avg_frame_qindex[2] = cpi->oxcf.worst_allowed_q;
+ } else {
+ cpi->rc.avg_frame_qindex[0] = (cpi->oxcf.worst_allowed_q +
+ cpi->oxcf.best_allowed_q) / 2;
+ cpi->rc.avg_frame_qindex[1] = (cpi->oxcf.worst_allowed_q +
+ cpi->oxcf.best_allowed_q) / 2;
+ cpi->rc.avg_frame_qindex[2] = (cpi->oxcf.worst_allowed_q +
+ cpi->oxcf.best_allowed_q) / 2;
+ }
cpi->rc.last_q[0] = cpi->oxcf.best_allowed_q;
cpi->rc.last_q[1] = cpi->oxcf.best_allowed_q;
cpi->rc.last_q[2] = cpi->oxcf.best_allowed_q;
--
⑨