[FFmpeg-devel] [PATCH 1/5] AAC: use table for cbrtf(n)*n

Måns Rullgård mans
Mon Jan 11 14:18:04 CET 2010


Benjamin Larsson <banan at ludd.ltu.se> writes:

> Mans Rullgard wrote:
>> Up to 10% faster on Cortex-A8.
>> ---
>>  libavcodec/aac.c |    6 +++++-
>>  1 files changed, 5 insertions(+), 1 deletions(-)
>>
>> diff --git a/libavcodec/aac.c b/libavcodec/aac.c
>> index 2bb05b8..14849d4 100644
>> --- a/libavcodec/aac.c
>> +++ b/libavcodec/aac.c
>> @@ -101,6 +101,7 @@ union float754 {
>>  static VLC vlc_scalefactors;
>>  static VLC vlc_spectral[11];
>>  +static float cbrt_tab[1<<15];
>>   static ChannelElement *get_che(AACContext *ac, int type, int
>> elem_id)
>>  {
>> @@ -555,6 +556,9 @@ static av_cold int aac_decode_init(AVCodecContext *avccontext)
>>      ff_init_ff_sine_windows(10);
>>      ff_init_ff_sine_windows( 7);
>>  +    for (i = 0; i < 1<<15; i++)
>> +        cbrt_tab[i] = cbrtf(i) * i;
>>
>
> This could use a if(!cbrt_tab[1<<15 -1]) test.

True.  Will change.

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



More information about the ffmpeg-devel mailing list