[FFmpeg-devel] [PATCH] RDFT for Bink audio
Alex Converse
alex.converse
Sat Jan 17 01:18:44 CET 2009
On Fri, Jan 16, 2009 at 5:00 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Fri, Jan 16, 2009 at 02:19:15PM -0500, Alex Converse wrote:
>> On Thu, Jan 15, 2009 at 2:03 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
>> > On Thu, Jan 15, 2009 at 11:52:20AM -0500, Alex Converse wrote:
>> > [...]
>> >> +int ff_rdft_init(RDFTContext *s, int nbits, int inverse)
>> >> +{
>> >> + int n = 1 << nbits;
>> >> + int i;
>> >> + const double theta = (1-2*inverse)*2*M_PI/n;
>> >> +
>> >> + s->nbits = nbits;
>> >> + s->inverse = inverse;
>> >> +
>> >> + if (ff_fft_init(&s->fft, nbits-1, !inverse) < 0)
>> >> + goto fail;
>> >> +
>> >> + s->tcos = av_malloc((n>>2) * sizeof(FFTSample));
>> >> + if (!s->tcos)
>> >> + goto fail;
>> >> + s->tsin = av_malloc((n>>2) * sizeof(FFTSample));
>> >> + if (!s->tsin)
>> >> + goto fail;
>> >> + for (i = 0; i < (n>>2); i++) {
>> >> + s->tcos[i] = cos(i*theta);
>> >> + s->tsin[i] = sin(i*theta);
>> >> + }
>> >
>> > we have a large number of sin and cos tables already
>> > see ff_sine_* / ff_cos_*, no need to duplicate them in each context
>> >
>>
>> I agree with that in principle, but in practice It doesn't seem
>> practical at the moment.
>
>> They are defined in different files,
>
> it should be very easy to split the tables out into their own file and
> add dependancies to the Makefile
>
>
>> available in different sizes.
>
> not sure if i understand you but i dont see the difference
>
>
>> The sines seem to be at half at a half
>> sample offset from what I need.
>
> indeed, ive missed that
>
>
> still even if they wouldnt be shareable though i still think cos is,
> then at least the same system of global shared tables should be used instead
> of duplicating them per context.
>
I'm looking at fft.c and those tables are a mess. Depending on the
type of fft, different tables get initialized (exptab vs ff_cos_*).
The exptab tables aren't shareable because they are half the needed
size. Even if it isn't used exptab is still allocated.
If the tables get presented in a usable fashion I will use them. I
have no current desire to re-factor fft.c, because I don't want to
deal with benchmarking such an important chunk of code.
--Alex
More information about the ffmpeg-devel
mailing list