Mercurial > libavcodec.hg
diff dsputil.h @ 7542:a8a8205a9081 libavcodec
split-radix FFT
c is 1.9x faster than previous c (on various x86 cpus), sse is 1.6x faster than previous sse.
| author | lorenm |
|---|---|
| date | Tue, 12 Aug 2008 00:26:58 +0000 |
| parents | a4ebced5d4a2 |
| children | ee1cb5ab9f99 |
line wrap: on
line diff
--- a/dsputil.h Mon Aug 11 23:54:09 2008 +0000 +++ b/dsputil.h Tue Aug 12 00:26:58 2008 +0000 @@ -639,6 +639,8 @@ uint16_t *revtab; FFTComplex *exptab; FFTComplex *exptab1; /* only used by SSE code */ + FFTComplex *tmp_buf; + void (*fft_permute)(struct FFTContext *s, FFTComplex *z); void (*fft_calc)(struct FFTContext *s, FFTComplex *z); void (*imdct_calc)(struct MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp); @@ -647,13 +649,18 @@ } FFTContext; int ff_fft_init(FFTContext *s, int nbits, int inverse); -void ff_fft_permute(FFTContext *s, FFTComplex *z); +void ff_fft_permute_c(FFTContext *s, FFTComplex *z); +void ff_fft_permute_sse(FFTContext *s, FFTComplex *z); void ff_fft_calc_c(FFTContext *s, FFTComplex *z); void ff_fft_calc_sse(FFTContext *s, FFTComplex *z); void ff_fft_calc_3dn(FFTContext *s, FFTComplex *z); void ff_fft_calc_3dn2(FFTContext *s, FFTComplex *z); void ff_fft_calc_altivec(FFTContext *s, FFTComplex *z); +static inline void ff_fft_permute(FFTContext *s, FFTComplex *z) +{ + s->fft_permute(s, z); +} static inline void ff_fft_calc(FFTContext *s, FFTComplex *z) { s->fft_calc(s, z);
