]> granicus.if.org Git - libvpx/commit
vp9-svc: Fix to the layer buffer settings.
authorMarco <marpan@google.com>
Tue, 21 Nov 2017 23:04:53 +0000 (15:04 -0800)
committerMarco <marpan@google.com>
Mon, 27 Nov 2017 06:17:48 +0000 (22:17 -0800)
commitcbe62b9c2d2b006aba52c8eebe7d842e59166fe4
tree0fb498a36115237a5b1d48242da8b9c12f02fcbf
parent9639641cd43ffc46f7e55a6dabc54a197f2b65f9
vp9-svc: Fix to the layer buffer settings.

For the case when the number of temporal layers > 1,
the buffer levels (starting/optimal_buffer_level,
and maximum_buffer_size) were not scaled properly.

In vp9_update_layer_context_change_config():
when setting the layer-buffer levels, fix is to scale
the layer-target_bandwidth by the target_bandwidth
(which is the full stream bandwidth) instead of the
spatial_layer_target.

This is needed because prior to the call
vp9_update_layer_context_change_config(), set_rc_buffer_sizes()
is called which sets the buffer levels based on target bandwidth
(which is the full bandwidth for the SVC stream).

This fix properly sets the layer-buffer levels based on the
layer-bandwidth, and leads to better rate targeting.

Small/neutral change in avgPSNR/SSIM metrics on RTC set.

Change-Id: Ic0f4f7f3487c37b9a9adb4781ae5edfed7140a57
vp9/encoder/vp9_svc_layercontext.c