#include "dsputil.h"
Go to the source code of this file.
Defines | |
#define | sqrthalf (float)M_SQRT1_2 |
#define | BF(x, y, a, b) |
#define | BUTTERFLIES(a0, a1, a2, a3) |
#define | BUTTERFLIES_BIG(a0, a1, a2, a3) |
#define | TRANSFORM(a0, a1, a2, a3, wre, wim) |
#define | TRANSFORM_ZERO(a0, a1, a2, a3) |
#define | PASS(name) |
#define | BUTTERFLIES BUTTERFLIES_BIG |
#define | DECL_FFT(n, n2, n4) |
#define | pass pass_big |
Functions | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_16[8]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_32[16]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_64[32]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_128[64]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_256[128]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_512[256]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_1024[512]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_2048[1024]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_4096[2048]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_8192[4096]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_16384[8192]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_32768[16384]) | |
DECLARE_ALIGNED_16 (FFTSample, ff_cos_65536[32768]) | |
static int | split_radix_permutation (int i, int n, int inverse) |
av_cold int | ff_fft_init (FFTContext *s, int nbits, int inverse) |
Sets up a complex FFT. | |
void | ff_fft_permute_c (FFTContext *s, FFTComplex *z) |
av_cold void | ff_fft_end (FFTContext *s) |
static void | fft4 (FFTComplex *z) |
static void | fft8 (FFTComplex *z) |
static void | fft16 (FFTComplex *z) |
void | ff_fft_calc_c (FFTContext *s, FFTComplex *z) |
Variables | |
FFTSample * | ff_cos_tabs [] |
static void(* | fft_dispatch [])(FFTComplex *) |
Definition in file fft.c.
#define BUTTERFLIES | ( | a0, | |||
a1, | |||||
a2, | |||||
a3 | ) |
#define BUTTERFLIES_BIG | ( | a0, | |||
a1, | |||||
a2, | |||||
a3 | ) |
#define DECL_FFT | ( | n, | |||
n2, | |||||
n4 | ) |
#define pass pass_big |
Definition at line 355 of file fft.c.
Referenced by encode_frame(), ff_lpc_calc_coefs(), ff_pca(), gif_read_image(), guess_mv(), h264_handle_packet(), iterative_me(), opt_pass(), residue_encode(), and vorbis_residue_decode_internal().
#define PASS | ( | name | ) |
Value:
static void name(FFTComplex *z, const FFTSample *wre, unsigned int n)\ {\ FFTSample t1, t2, t3, t4, t5, t6;\ int o1 = 2*n;\ int o2 = 4*n;\ int o3 = 6*n;\ const FFTSample *wim = wre+o1;\ n--;\ \ TRANSFORM_ZERO(z[0],z[o1],z[o2],z[o3]);\ TRANSFORM(z[1],z[o1+1],z[o2+1],z[o3+1],wre[1],wim[-1]);\ do {\ z += 2;\ wre += 2;\ wim -= 2;\ TRANSFORM(z[0],z[o1],z[o2],z[o3],wre[0],wim[0]);\ TRANSFORM(z[1],z[o1+1],z[o2+1],z[o3+1],wre[1],wim[-1]);\ } while(--n);\ }
#define sqrthalf (float)M_SQRT1_2 |
#define TRANSFORM | ( | a0, | |||
a1, | |||||
a2, | |||||
a3, | |||||
wre, | |||||
wim | ) |
#define TRANSFORM_ZERO | ( | a0, | |||
a1, | |||||
a2, | |||||
a3 | ) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_65536 | [32768] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_32768 | [16384] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_16384 | [8192] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_8192 | [4096] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_4096 | [2048] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_2048 | [1024] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_1024 | [512] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_512 | [256] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_256 | [128] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_128 | [64] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_64 | [32] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_32 | [16] | |||
) |
DECLARE_ALIGNED_16 | ( | FFTSample | , | |
ff_cos_16 | [8] | |||
) |
void ff_fft_calc_c | ( | FFTContext * | s, | |
FFTComplex * | z | |||
) |
av_cold void ff_fft_end | ( | FFTContext * | s | ) |
Definition at line 209 of file fft.c.
Referenced by ff_mdct_end(), ff_rdft_end(), imc_decode_close(), and main().
av_cold int ff_fft_init | ( | FFTContext * | s, | |
int | nbits, | |||
int | inverse | |||
) |
Sets up a complex FFT.
nbits | log2 of the length of the input array | |
inverse | if 0 perform the forward transform, if 1 perform the inverse |
Definition at line 61 of file fft.c.
Referenced by ff_mdct_init(), ff_rdft_init(), imc_decode_init(), and main().
void ff_fft_permute_c | ( | FFTContext * | s, | |
FFTComplex * | z | |||
) |
static void fft16 | ( | FFTComplex * | z | ) | [static] |
static void fft4 | ( | FFTComplex * | z | ) | [static] |
static void fft8 | ( | FFTComplex * | z | ) | [static] |
static int split_radix_permutation | ( | int | i, | |
int | n, | |||
int | inverse | |||
) | [static] |
Initial value:
{ ff_cos_16, ff_cos_32, ff_cos_64, ff_cos_128, ff_cos_256, ff_cos_512, ff_cos_1024, ff_cos_2048, ff_cos_4096, ff_cos_8192, ff_cos_16384, ff_cos_32768, ff_cos_65536, }
Definition at line 45 of file fft.c.
Referenced by ff_fft_init(), and ff_rdft_init().
void(* fft_dispatch[])(FFTComplex *) [static] |
Initial value:
{ fft4, fft8, fft16, fft32, fft64, fft128, fft256, fft512, fft1024, fft2048, fft4096, fft8192, fft16384, fft32768, fft65536, }
Referenced by ff_fft_calc_c().