[FFmpeg-devel] [PATCH] QCELP decoder
Kenan Gillet
kenan.gillet
Mon Nov 10 04:59:26 CET 2008
On Nov 8, 2008, at 3:57 PM, Michael Niedermayer wrote:
[...]
>
>> +
>> + uint8_t erasure_count;
>> + uint8_t octave_count; /*!< count the
>> consecutive RATE_OCTAVE frames */
>> + float prev_lspf[10];
>> + float predictor_lspf[10]; /*!< LSP predictor,
>> + only use for
>> RATE_OCTAVE and I_F_Q */
>> + float pitch_synthesis_filter_mem[303];
>> + float pitch_pre_filter_mem[303];
>> + float formant_mem[170];
>> + float fir_filter_mem[180];
>> + float last_codebook_gain;
>> + int prev_g1[2];
>> + int prev_framerate;
>> + float prev_pitch_gain[4];
>> + uint8_t prev_pitch_lag[4];
>> + uint16_t first16bits;
>> + float bandwith_expansion_coeff[10];
>> +#define QCELP_BANDWITH_EXPANSION_COEFF 0.9883
>> +
>
>> + float g12ga[61]; /*!< unpacked
>> qcelp_g12ga table */
>
> hmm, constant tables must not be in the context as that wastes memory.
> depending on how often it is accessed, qcelp_g12ga should either be
> changed back to float or the int16->float be done as it is accessed.
> (int16->float is prefered due to smaller memory if there is no speed
> differeence otherwise the faster one should be used)
From the benchmark inside decode_gain_and_index where g12ga is used ,
the float is 17% faster.
So I'll change the qcelp_g12ga table back to float unless you object.
details of benchmarks are attached
Kenan
More information about the ffmpeg-devel
mailing list