#include <stdlib.h>
#include <string.h>
#include "libavutil/mathematics.h"
#include "fft.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 | |
| COSTABLE (16) | |
| COSTABLE (32) | |
| COSTABLE (64) | |
| COSTABLE (128) | |
| COSTABLE (256) | |
| COSTABLE (512) | |
| COSTABLE (1024) | |
| COSTABLE (2048) | |
| COSTABLE (4096) | |
| COSTABLE (8192) | |
| COSTABLE (16384) | |
| COSTABLE (32768) | |
| COSTABLE (65536) | |
| static int | split_radix_permutation (int i, int n, int inverse) | 
| av_cold void | ff_init_ff_cos_tabs (int index) | 
| Initializes the cosine table in ff_cos_tabs[index]. | |
| 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 | |
| COSTABLE_CONST FFTSample *const | ff_cos_tabs [] | 
| static void(*const | 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 349 of file fft.c.
Referenced by encode_frame(), ff_lpc_calc_coefs(), ff_pca(), gif_read_image(), guess_mv(), h264_handle_packet(), 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 | ) | 
| COSTABLE | ( | 65536 | ) | 
| COSTABLE | ( | 32768 | ) | 
| COSTABLE | ( | 16384 | ) | 
| COSTABLE | ( | 8192 | ) | 
| COSTABLE | ( | 4096 | ) | 
| COSTABLE | ( | 2048 | ) | 
| COSTABLE | ( | 1024 | ) | 
| COSTABLE | ( | 512 | ) | 
| COSTABLE | ( | 256 | ) | 
| COSTABLE | ( | 128 | ) | 
| COSTABLE | ( | 64 | ) | 
| COSTABLE | ( | 32 | ) | 
| COSTABLE | ( | 16 | ) | 
| void ff_fft_calc_c | ( | FFTContext * | s, | |
| FFTComplex * | z | |||
| ) | 
| av_cold void ff_fft_end | ( | FFTContext * | s | ) | 
Definition at line 203 of file fft.c.
Referenced by av_fft_end(), 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 81 of file fft.c.
Referenced by av_fft_init(), ff_mdct_init(), ff_rdft_init(), imc_decode_init(), and main().
| void ff_fft_permute_c | ( | FFTContext * | s, | |
| FFTComplex * | z | |||
| ) | 
| av_cold void ff_init_ff_cos_tabs | ( | int | index | ) | 
Initializes the cosine table in ff_cos_tabs[index].
| index | index in ff_cos_tabs array of the table to initialize | 
Definition at line 67 of file fft.c.
Referenced by ff_dct_init(), ff_fft_init(), and ff_rdft_init().
| 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] | 
| COSTABLE_CONST FFTSample* const ff_cos_tabs[] | 
Initial value:
 {
    NULL, NULL, NULL, NULL,
    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 50 of file fft.c.
Referenced by ff_dct_init(), ff_init_ff_cos_tabs(), and ff_rdft_init().
| void(* const 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().
 1.5.8
 1.5.8