On Wed, May 1, 2013 at 7:53 AM, Claudio Freire <klaussfre...@gmail.com> wrote:
> On Wed, May 1, 2013 at 4:26 AM, Claudio Freire <klaussfre...@gmail.com> wrote:
>>> But still, not perfect... I gave it 256k, and it produced 140k. Lots
>>> of room for improvement still, but I thought I'd share this bit. I'll
>>> keep looking.
>>
>>
>> Aaand mostly finally in aaccoder.c:713, search_for_quantizers_twoloop
>> ignores lambda, so there's no effective rate control.
>>
>>
>> Replacing
>>
>> int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / 
>> avctx->channels;
>>
>> with
>>
>> int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate /
>> avctx->channels * lambda;
>>
>> Results in general bliss. Will check the other search methods.
>
>
> Ok... I had to forfeit my right to sleep, but here it is. Managed to
> make both the fast and 2loop methods work reasonably well (albeit I
> don't know why anyone would use fast, because it's not faster. I
> assume it's an experiment?).
>
> I don't have access to AAC standards, though, since they're paywalled
> (at least the ones I found), so most of the changes were done blind,
> assuming from what I know of audio codecs, and by trial and error.
>
> In particular, fast has some magic numbers there that I got from trial
> and error, and nothing more... profound.
>
> In any case, attached it is, git diff.


Oh, forgot to explain a bit. I believe the reason why it works for
channels=2 and not so much for >2, is that psy already does some rate
control by adapting the model to the bit rate and bit reservoire. But
that doesn't work for channels > 2, since psy doesn't see all channels
at once in those cases, only pairs of channels, and it ends up
introducing some significant bias towards an over-estimation.

There's the lambda parameter compensating that... except AAC
quantization parameter search methods mostly ignored it, save faac
(which I didn't try).

Fast had some rather nasty bugs too, resulting in entirely zeroed out
zones in complex passages. Fixed that somewhat by tweaking numbers,
adding bias against zeroing.
_______________________________________________
Libav-user mailing list
Libav-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to