diff options
author | Marco Paniconi <marpan@google.com> | 2014-02-13 14:02:15 -0800 |
---|---|---|
committer | Marco Paniconi <marpan@google.com> | 2014-02-13 15:21:09 -0800 |
commit | e590e087d5ba59131c2004690f8df11ee68a46b6 (patch) | |
tree | 17b162fcdc7cc5febfb06fe8eaa3d4ff66ce55b2 /vp9/encoder/vp9_ratectrl.c | |
parent | e25fbed4f6510a0b5edf2b2e6c4852fded05f5e7 (diff) | |
download | libvpx-e590e087d5ba59131c2004690f8df11ee68a46b6.tar libvpx-e590e087d5ba59131c2004690f8df11ee68a46b6.tar.gz libvpx-e590e087d5ba59131c2004690f8df11ee68a46b6.tar.bz2 libvpx-e590e087d5ba59131c2004690f8df11ee68a46b6.zip |
Fix target frame size setting, for 1pass cbr.
Only use layered average size if number_temporal_layers > 1.
Also removed unneeded commented-out line, and change some parameter
setting in vpx_temporal_scalable_patterns.c
Change-Id: Ic86e43e7daf0313e8c5a4aba1497299158111955
Diffstat (limited to 'vp9/encoder/vp9_ratectrl.c')
-rw-r--r-- | vp9/encoder/vp9_ratectrl.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index 2427dbe74..bc2c3a69a 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -499,8 +499,6 @@ static int calc_active_worst_quality_one_pass_cbr(const VP9_COMP *cpi) { // (at buffer = critical level). const VP9_CONFIG *oxcf = &cpi->oxcf; const RATE_CONTROL *rc = &cpi->rc; - // int active_worst_quality = rc->active_worst_quality; - // Maximum limit for down adjustment, ~20%. // Buffer level below which we push active_worst to worst_quality. int critical_level = oxcf->optimal_buffer_level >> 2; int adjustment = 0; @@ -516,6 +514,7 @@ static int calc_active_worst_quality_one_pass_cbr(const VP9_COMP *cpi) { rc->avg_frame_qindex[KEY_FRAME] * 3 / 2); if (rc->buffer_level > oxcf->optimal_buffer_level) { // Adjust down. + // Maximum limit for down adjustment, ~30%. int max_adjustment_down = active_worst_quality / 3; if (max_adjustment_down) { buff_lvl_step = (int)((oxcf->maximum_buffer_size - @@ -1314,7 +1313,8 @@ static int calc_pframe_target_size_one_pass_cbr(const VP9_COMP *cpi) { int min_frame_target = MAX(rc->av_per_frame_bandwidth >> 4, FRAME_OVERHEAD_BITS); int target = rc->av_per_frame_bandwidth; - if (cpi->use_svc && cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) { + if (cpi->svc.number_temporal_layers > 1 && + cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) { // Note that for layers, av_per_frame_bandwidth is the cumulative // per-frame-bandwidth. For the target size of this frame, use the // layer average frame size (i.e., non-cumulative per-frame-bw). |