[FFmpeg-devel] [libav-devel] [PATCH] aacpsy: avoid norm_fac becoming NaN

Claudio Freire klaussfreire at gmail.com
Tue Apr 21 02:07:14 CEST 2015


On Mon, Apr 20, 2015 at 8:59 PM, Claudio Freire <klaussfreire at gmail.com> wrote:
> On Mon, Apr 20, 2015 at 8:32 PM, Andreas Cadhalpun
> <andreas.cadhalpun at googlemail.com> wrote:
>>>>> The long version:
>>>>>
>>>>> ath should approximate the shape of the absolute hearing threshold, so
>>>>> yes, it's best if it really uses the minimum, since that will prevent
>>>>> clipping of the ath curve and result in a more accurate threshold
>>>>> computation.
>>>>
>>>> So you agree with my patch fixing minath?
>>>> Or would you prefer a version with:
>>>>     minath = ath(3410 - 0.733 * ATH_ADD, ATH_ADD)
>>>
>>> Well, that's not really closer to the minimum (a few tests with gnuplot say).
>>
>> Are you sure your plots were done correctly?
>> Because I'm quite sure this is the correct first order approximation
>> of the minimum.
>>
>> For ATH_ADD = 4 this gives 3407.068, which is quite close to Michael's value
>> (3407.080774800152).
>
> I checked the formula several times, but still, I could have made a mistake.


This is what I did if you want to check it out (maybe you spot the mistake)

gnuplot> ath(f,a) = _ath(f/1000.0, a)
gnuplot> _ath(f,a) = 3.64 * f**(-0.8) - 6.8 * exp(-0.6 * (f-3.4) *
(f-3.4)) + 6.0 * exp(-0.15 * (f-8.7) * (f-8.7)) + (0.6 + 0.04 * a) *
0.001 * f * f * f
gnuplot> plot [f=3400:3500] ath(f,4), ath(3410-0.733*4, 4)

Funny thing, is it's much closer with:

gnuplot> plot [f=3400:3500] ath(f,4), ath(3410+0.733*4, 4)


More information about the ffmpeg-devel mailing list