FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Files | Data Structures | Typedefs | Enumerations | Functions
FFT functions
Utility functions

Files

file  avfft.h
 FFT functions.
 

Data Structures

struct  FFTComplex
 

Typedefs

typedef float FFTSample
 

Enumerations

enum  RDFTransformType { DFT_R2C, IDFT_C2R, IDFT_R2C, DFT_C2R }
 
enum  DCTTransformType { DCT_II = 0, DCT_III, DCT_I, DST_I }
 

Functions

FFTContextav_fft_init (int nbits, int inverse)
 Set up a complex FFT.
 
void av_fft_permute (FFTContext *s, FFTComplex *z)
 Do the permutation needed BEFORE calling ff_fft_calc().
 
void av_fft_calc (FFTContext *s, FFTComplex *z)
 Do a complex FFT with the parameters defined in av_fft_init().
 
void av_fft_end (FFTContext *s)
 
FFTContextav_mdct_init (int nbits, int inverse, double scale)
 
void av_imdct_calc (FFTContext *s, FFTSample *output, const FFTSample *input)
 
void av_imdct_half (FFTContext *s, FFTSample *output, const FFTSample *input)
 
void av_mdct_calc (FFTContext *s, FFTSample *output, const FFTSample *input)
 
void av_mdct_end (FFTContext *s)
 
RDFTContextav_rdft_init (int nbits, enum RDFTransformType trans)
 Set up a real FFT.
 
void av_rdft_calc (RDFTContext *s, FFTSample *data)
 
void av_rdft_end (RDFTContext *s)
 
DCTContextav_dct_init (int nbits, enum DCTTransformType type)
 Set up DCT.
 
void av_dct_calc (DCTContext *s, FFTSample *data)
 
void av_dct_end (DCTContext *s)
 

Detailed Description

Typedef Documentation

typedef float FFTSample

Definition at line 35 of file avfft.h.

Enumeration Type Documentation

Enumerator:
DFT_R2C 
IDFT_C2R 
IDFT_R2C 
DFT_C2R 

Definition at line 71 of file avfft.h.

Enumerator:
DCT_II 
DCT_III 
DCT_I 
DST_I 

Definition at line 93 of file avfft.h.

Function Documentation

FFTContext* av_fft_init ( int  nbits,
int  inverse 
)

Set up a complex FFT.

Parameters
nbitslog2 of the length of the input array
inverseif 0 perform the forward transform, if 1 perform the inverse

Definition at line 27 of file avfft.c.

void av_fft_permute ( FFTContext s,
FFTComplex z 
)

Do the permutation needed BEFORE calling ff_fft_calc().

Definition at line 37 of file avfft.c.

void av_fft_calc ( FFTContext s,
FFTComplex z 
)

Do a complex FFT with the parameters defined in av_fft_init().

The input data must be permuted before. No 1.0/sqrt(n) normalization is done.

Definition at line 42 of file avfft.c.

void av_fft_end ( FFTContext s)

Definition at line 47 of file avfft.c.

FFTContext* av_mdct_init ( int  nbits,
int  inverse,
double  scale 
)
void av_imdct_calc ( FFTContext s,
FFTSample output,
const FFTSample input 
)
void av_imdct_half ( FFTContext s,
FFTSample output,
const FFTSample input 
)
void av_mdct_calc ( FFTContext s,
FFTSample output,
const FFTSample input 
)
void av_mdct_end ( FFTContext s)
RDFTContext* av_rdft_init ( int  nbits,
enum RDFTransformType  trans 
)

Set up a real FFT.

Parameters
nbitslog2 of the length of the input array
transthe type of transform

Referenced by config_output(), video_audio_display(), and yae_reset().

void av_rdft_calc ( RDFTContext s,
FFTSample data 
)
void av_rdft_end ( RDFTContext s)
DCTContext* av_dct_init ( int  nbits,
enum DCTTransformType  type 
)

Set up DCT.

Parameters
nbitssize of the input array: (1 << nbits) for DCT-II, DCT-III and DST-I (1 << nbits) + 1 for DCT-I
Note
the first element of the input of DST-I is ignored
void av_dct_calc ( DCTContext s,
FFTSample data 
)
void av_dct_end ( DCTContext s)