[FFmpeg-devel] [PATCH] Optimisations for av_log2 and integer clip functions

Måns Rullgård mans
Thu Jan 14 00:29:52 CET 2010


Michael Niedermayer <michaelni at gmx.at> writes:

> On Wed, Jan 13, 2010 at 07:27:59PM +0000, Mans Rullgard wrote:
>> 10% faster flac decoding on x86 and ARM.
> [...]
>> +#if AV_GCC_VERSION_AT_LEAST(3,4)
>> +
>> +#ifndef av_log2
>> +
>> +#define av_log2 av_log2
>> +static inline av_const int av_log2(unsigned int v)
>> +{
>> +    return v? 31 - __builtin_clz(v) : 0;
>> +}
>
> isnt that the same as 31 - __builtin_clz(v|1)

Yes, thanks.

> also why isnt it a macro?

With my version it would evaluate the argument twice.  That's
obviously not an issue with yours.  Does it matter much?

> especially av_log2_16bit() might be feeded with uint16_t and converting
> that to unsigned might have some speed penalty

I doubt that very much.  We're not targeting 16-bit machines.

> and there is a lot of #ifdefery, not a complaint as i dont know how to
> avoid it but i dont really like the amount of it

I couldn't think of a way with less of it.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list