]> granicus.if.org Git - libvpx/commit
Prevent double application of min rate in two pass.
authorpaulwilkins <paulwilkins@google.com>
Wed, 11 Oct 2017 09:31:57 +0000 (10:31 +0100)
committerpaulwilkins <paulwilkins@google.com>
Wed, 11 Oct 2017 17:00:44 +0000 (18:00 +0100)
commit416b7051d7f610ed6d62dff18af7776ec520fd9c
treee12badcbd4cc87ac6736353ce540eb7bdf45e731
parent06d231c9fa8db062a16834f5d767ecd0912a5e1d
Prevent double application of min rate in two pass.

The initial allocation of bits in the two pass code to each frame
should be within the min max limits on the command line. However,
when forming an ARF group the cost of the ARF is shared by frames
in that group such that the residual bits for a frame could drop below
the min value. This change prevents the minimum being re-applied
after the cost of the ARF has been deducted as this may otherwise
cause low rate sections to overshoot their target.

Test runs comparing to a baseline run with min and max section pct
0-2000% vs one closer to the YT use case (50-150%) suggest that
this fix not only results in better rate control but also gives a better
rd outcome.

For example the HD set vs 0-2000% baseline (opsnr, ssim).
Old code (50-150):  +0.751, +1.099
New code(50-150): +0.241, -0.009

Change-Id: I715da7b130bf53ba8aa609532aa9e18b84f5e2ef
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_ratectrl.h