comparison dsputil.h @ 7263:fc843d00867c libavcodec

exploit mdct symmetry 2% faster vorbis on conroe, k8. 7% on celeron.
author lorenm
date Sun, 13 Jul 2008 15:03:58 +0000
parents 032a49f033e8
children e267f2519248
comparison
equal deleted inserted replaced
7262:e3822c61f2e4 7263:fc843d00867c
639 FFTComplex *exptab; 639 FFTComplex *exptab;
640 FFTComplex *exptab1; /* only used by SSE code */ 640 FFTComplex *exptab1; /* only used by SSE code */
641 void (*fft_calc)(struct FFTContext *s, FFTComplex *z); 641 void (*fft_calc)(struct FFTContext *s, FFTComplex *z);
642 void (*imdct_calc)(struct MDCTContext *s, FFTSample *output, 642 void (*imdct_calc)(struct MDCTContext *s, FFTSample *output,
643 const FFTSample *input, FFTSample *tmp); 643 const FFTSample *input, FFTSample *tmp);
644 void (*imdct_half)(struct MDCTContext *s, FFTSample *output,
645 const FFTSample *input, FFTSample *tmp);
644 } FFTContext; 646 } FFTContext;
645 647
646 int ff_fft_init(FFTContext *s, int nbits, int inverse); 648 int ff_fft_init(FFTContext *s, int nbits, int inverse);
647 void ff_fft_permute(FFTContext *s, FFTComplex *z); 649 void ff_fft_permute(FFTContext *s, FFTComplex *z);
648 void ff_fft_calc_c(FFTContext *s, FFTComplex *z); 650 void ff_fft_calc_c(FFTContext *s, FFTComplex *z);
684 void ff_sine_window_init(float *window, int n); 686 void ff_sine_window_init(float *window, int n);
685 687
686 int ff_mdct_init(MDCTContext *s, int nbits, int inverse); 688 int ff_mdct_init(MDCTContext *s, int nbits, int inverse);
687 void ff_imdct_calc(MDCTContext *s, FFTSample *output, 689 void ff_imdct_calc(MDCTContext *s, FFTSample *output,
688 const FFTSample *input, FFTSample *tmp); 690 const FFTSample *input, FFTSample *tmp);
691 void ff_imdct_half(MDCTContext *s, FFTSample *output,
692 const FFTSample *input, FFTSample *tmp);
689 void ff_imdct_calc_3dn2(MDCTContext *s, FFTSample *output, 693 void ff_imdct_calc_3dn2(MDCTContext *s, FFTSample *output,
690 const FFTSample *input, FFTSample *tmp); 694 const FFTSample *input, FFTSample *tmp);
695 void ff_imdct_half_3dn2(MDCTContext *s, FFTSample *output,
696 const FFTSample *input, FFTSample *tmp);
691 void ff_imdct_calc_sse(MDCTContext *s, FFTSample *output, 697 void ff_imdct_calc_sse(MDCTContext *s, FFTSample *output,
698 const FFTSample *input, FFTSample *tmp);
699 void ff_imdct_half_sse(MDCTContext *s, FFTSample *output,
692 const FFTSample *input, FFTSample *tmp); 700 const FFTSample *input, FFTSample *tmp);
693 void ff_mdct_calc(MDCTContext *s, FFTSample *out, 701 void ff_mdct_calc(MDCTContext *s, FFTSample *out,
694 const FFTSample *input, FFTSample *tmp); 702 const FFTSample *input, FFTSample *tmp);
695 void ff_mdct_end(MDCTContext *s); 703 void ff_mdct_end(MDCTContext *s);
696 704