AAC encoder: tweak rate-distortion logic
authorClaudio Freire <klaussfreire@gmail.com>
Wed, 23 Sep 2015 05:13:56 +0000 (02:13 -0300)
committerClaudio Freire <klaussfreire@gmail.com>
Wed, 23 Sep 2015 05:33:44 +0000 (02:33 -0300)
commit7ec74ae4aaf50507c5da3dfbb7336e15f848b99b
tree2ff0ca4d23f852a61fc47c006b3cf2419eb48ba7
parentb01f3ddad31aba45254dfd553447c7952f86fd31
AAC encoder: tweak rate-distortion logic

This patch modifies the encode frame function to
retry encoding the frame when the resulting bit count
is too far off target, but only adjusting lambda
in small, incremental step. It also makes the logic
more conservative - otherwise it will contend with
bit reservoir-related variations in bit allocation,
and result in artifacts when frame have to be truncated
(usually at high bit rates transitioning from low
complexity to high complexity).
libavcodec/aacenc.c
libavcodec/aacenc.h
libavcodec/aacpsy.c
libavcodec/psymodel.h
tests/fate/aac.mak