[FFmpeg-devel] [PATCH] CONFIG_SMALL for roqaudioenc.c

Vitor Sessak vitor1001
Sun Oct 18 18:29:18 CEST 2009


Vitor Sessak wrote:
> Reimar D?ffinger wrote:
>> On Fri, Oct 16, 2009 at 04:38:21AM +0200, Vitor Sessak wrote:
>>> Vitor Sessak wrote:
>>>> M?ns Rullg?rd wrote:
>>>>> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>>>>>
>>>>>> Hello,
>>>>>> roqaudioenc uses a ca. 16kB lookup table by default, attached 
>>>>>> patch makes
>>>>>> it use ff_sqrt directly if CONFIG_SMALL is set.
>>>>>> Overall that means instead of a single table lookup it needs about
>>>>>> a table lookup, 2 shifts, 2 multiples, 2 adds and two branches per 
>>>>>> value
>>>>>> encoded.
>>>> I suppose it does not give exactly the same output.
>>> Ops, 10l, it probably does. But I imagine my version is slightly faster.
>>
>> I suspect that your variant that uses ff_sqrt on 4 times as large values
>> is slower than the original code that used an extra multiply, two adds
>> and a branch (e.g.).
> 
> Indeed, your code is faster than mine. I've benchmarked it against the 
> table-based version:
> 
> table (best user):
> real    0m0.659s
> user    0m0.544s
> sys    0m0.116s
> 
> ff_sqrt (best user):
> real    0m0.931s
> user    0m0.836s
> sys    0m0.096s
> 
> That is for a 16 minutes audio file. While it is measurably slower, this 
> is the time it takes to encode ~3 video frames, so I think it is worth 
> the extra simplicity.
> 
> Since I guess I'm the maintainer of this file, I'll apply the following 
> patch if no one is against it.

Applied.

-Vitor



More information about the ffmpeg-devel mailing list