[FFmpeg-devel] [PATCH] lavc/aacenc_utils: replace powf(x, y) by expf(logf(x), y)

Ganesh Ajjanagadde gajjanag at gmail.com
Thu Mar 10 03:06:17 CET 2016


On Wed, Mar 9, 2016 at 2:16 AM, Reimar Döffinger
<Reimar.Doeffinger at gmx.de> wrote:
> On 08.03.2016, at 04:48, Ganesh Ajjanagadde <gajjanag at gmail.com> wrote:
>
>> +                    nzl += expf(logf(s / ethresh) * nzslope);
>
> Shouldn't log2f/exp2f be faster?
> log2f at least has CPU support on x86 AFAICT.

I had tested this, and no, though it is still faster than powf.

It still seems to rely on libm, note that we don't use -ffast-math and
a look at https://github.com/lattera/glibc/tree/master/sysdeps/x86_64/fpu
as well seems to say no. Problem is, GNU people like to prioritize
"correctly rounded" behavior over fast, reasonably accurate code,
sometimes to ludicruous degrees.

Personally, I don't know why we don't use -ffast-math, not many seem
to care that heavily on strict IEEE semantics. Maybe it leads to too
much variation across platforms?

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


More information about the ffmpeg-devel mailing list