diff options
author | Minghai Shang <minghai@google.com> | 2014-04-30 11:02:54 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2014-04-30 11:02:54 -0700 |
commit | d9e8c1eafc6bfb8515ffea60e025df3c724a7694 (patch) | |
tree | 283fe06c6acb056333ed6fe111f4e878f6c83850 /vp9/encoder | |
parent | 3f6d1bce3cf16e14a508b86dae5dcf2e146f7f10 (diff) | |
parent | 4a1386e3c89c2fb671133c2898701398102edb56 (diff) | |
download | libvpx-d9e8c1eafc6bfb8515ffea60e025df3c724a7694.tar libvpx-d9e8c1eafc6bfb8515ffea60e025df3c724a7694.tar.gz libvpx-d9e8c1eafc6bfb8515ffea60e025df3c724a7694.tar.bz2 libvpx-d9e8c1eafc6bfb8515ffea60e025df3c724a7694.zip |
Merge "[svc rc] Increase worst quality for enhancement layers"
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_firstpass.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c index e85efe658..b408ced0e 100644 --- a/vp9/encoder/vp9_firstpass.c +++ b/vp9/encoder/vp9_firstpass.c @@ -920,12 +920,19 @@ static int get_twopass_worst_quality(const VP9_COMP *cpi, const int target_norm_bits_per_mb = ((uint64_t)section_target_bandwidth << BPER_MB_NORMBITS) / num_mbs; int q; + int is_svc_upper_layer = 0; + if (cpi->use_svc && cpi->svc.number_temporal_layers == 1 && + cpi->svc.spatial_layer_id > 0) { + is_svc_upper_layer = 1; + } // Try and pick a max Q that will be high enough to encode the // content at the given rate. for (q = rc->best_quality; q < rc->worst_quality; ++q) { - const double factor = calc_correction_factor(err_per_mb, ERR_DIVISOR, - 0.5, 0.90, q); + const double factor = + calc_correction_factor(err_per_mb, ERR_DIVISOR, + is_svc_upper_layer ? 0.8 : 0.5, + is_svc_upper_layer ? 1.0 : 0.90, q); const int bits_per_mb = vp9_rc_bits_per_mb(INTER_FRAME, q, factor * speed_term); if (bits_per_mb <= target_norm_bits_per_mb) |