59 for (
int i = 1;
i < 15;
i += 3)
61 for (
int i = 2;
i < 15;
i += 3)
63 for (
int i = 0;
i < 15;
i += 3)
65 memmove(&
map[7], &
map[6], 4*
sizeof(
int));
66 memmove(&
map[3], &
map[1], 4*
sizeof(
int));
104 sub_len, inv,
scale)))
114 for (
int k = 0; k < sub_len; k++)
130 int len,
int inv,
const void *
scale)
141 s->scale_d = *((
const float *)
scale);
142 s->scale_f =
s->scale_d;
160 memcpy(
s->map,
s->sub->map, (
len >> 1)*
sizeof(*
s->map));
166 for (
int i = 0;
i < (
len >> 1);
i++)
167 s->map[(
len >> 1) +
s->map[
i]] =
i;
170 for (
int i = 0;
i < (
len >> 1);
i++)
177 TX_DEF(fft2, FFT, 2, 2, 2, 0, 128,
NULL, neon, NEON,
AV_TX_INPLACE, 0),
178 TX_DEF(fft2, FFT, 2, 2, 2, 0, 192,
neon_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
179 TX_DEF(fft4_fwd, FFT, 4, 4, 2, 0, 128,
NULL, neon, NEON,
AV_TX_INPLACE |
FF_TX_FORWARD_ONLY, 0),
180 TX_DEF(fft4_fwd, FFT, 4, 4, 2, 0, 192,
neon_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
181 TX_DEF(fft4_inv, FFT, 4, 4, 2, 0, 128,
NULL, neon, NEON,
AV_TX_INPLACE |
FF_TX_INVERSE_ONLY, 0),
182 TX_DEF(fft8, FFT, 8, 8, 2, 0, 128,
neon_init, neon, NEON,
AV_TX_INPLACE, 0),
183 TX_DEF(fft8_ns, FFT, 8, 8, 2, 0, 192,
neon_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
184 TX_DEF(
fft15, FFT, 15, 15, 15, 0, 128,
fft15_init, neon, NEON,
AV_TX_INPLACE, 0),
185 TX_DEF(fft15_ns, FFT, 15, 15, 15, 0, 192,
fft15_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
186 TX_DEF(fft16, FFT, 16, 16, 2, 0, 128,
neon_init, neon, NEON,
AV_TX_INPLACE, 0),
187 TX_DEF(fft16_ns, FFT, 16, 16, 2, 0, 192,
neon_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
188 TX_DEF(fft32, FFT, 32, 32, 2, 0, 128,
neon_init, neon, NEON,
AV_TX_INPLACE, 0),
189 TX_DEF(fft32_ns, FFT, 32, 32, 2, 0, 192,
neon_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
191 TX_DEF(fft_sr, FFT, 64, 131072, 2, 0, 128,
neon_init, neon, NEON, 0, 0),
192 TX_DEF(fft_sr_ns, FFT, 64, 131072, 2, 0, 192,
neon_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
194 TX_DEF(fft_pfa_15xM, FFT, 60,
TX_LEN_UNLIMITED, 15, 2, 128,
fft_pfa_init, neon, NEON,
AV_TX_INPLACE, 0),
195 TX_DEF(fft_pfa_15xM_ns, FFT, 60,
TX_LEN_UNLIMITED, 15, 2, 192,
fft_pfa_init, neon, NEON,
AV_TX_INPLACE |
FF_TX_PRESHUFFLE, 0),
197 TX_DEF(mdct_inv, MDCT, 16,
TX_LEN_UNLIMITED, 2,
TX_FACTOR_ANY, 256,
mdct_inv_init, neon, NEON,
FF_TX_INVERSE_ONLY, 0),
static av_cold int neon_init(AVTXContext *s, const FFTXCodelet *cd, uint64_t flags, FFTXCodeletOptions *opts, int len, int inv, const void *scale)
static av_cold int mdct_inv_init(AVTXContext *s, const FFTXCodelet *cd, uint64_t flags, FFTXCodeletOptions *opts, int len, int inv, const void *scale)
static void fft15_permute_map(int *map)
static av_cold int fft_pfa_init(AVTXContext *s, const FFTXCodelet *cd, uint64_t flags, FFTXCodeletOptions *opts, int len, int inv, const void *scale)
static av_cold int fft15_init(AVTXContext *s, const FFTXCodelet *cd, uint64_t flags, FFTXCodeletOptions *opts, int len, int inv, const void *scale)
const FFTXCodelet *const ff_tx_codelet_list_float_aarch64[]
static AVDictionary * opts
#define flags(name, subs,...)
#define i(width, name, range_min, range_max)
const VDPAUPixFmtMap * map
static void scale(int *out, const int *in, const int w, const int h, const int shift)
Macro definitions for various function/variable attributes.
Memory handling functions.
int factors[TX_MAX_FACTORS]
int ff_tx_gen_ptwo_revtab(AVTXContext *s, FFTXCodeletOptions *opts)
av_cold int ff_tx_init_subtx(AVTXContext *s, enum AVTXType type, uint64_t flags, FFTXCodeletOptions *opts, int len, int inv, const void *scale)
int ff_tx_gen_compound_mapping(AVTXContext *s, FFTXCodeletOptions *opts, int inv, int n, int m)
int ff_tx_gen_pfa_input_map(AVTXContext *s, FFTXCodeletOptions *opts, int d1, int d2)
int ff_tx_gen_split_radix_parity_revtab(AVTXContext *s, int len, int inv, FFTXCodeletOptions *opts, int basis, int dual_stride)
@ AV_TX_INPLACE
Allows for in-place transformations, where input == output.
#define FF_TX_OUT_OF_PLACE
void ff_tx_init_tabs_float(int len)
#define FF_TX_INVERSE_ONLY
#define FF_TX_FORWARD_ONLY
#define TX_DECL_FN(fn, suffix)
#define TX_DEF(fn, tx_type, len_min, len_max, f1, f2, p, init_fn, suffix, cf, cd_flags, cf2)
int ff_tx_mdct_gen_exp_float(AVTXContext *s, int *pre_tab)
#define TX_EMBED_INPUT_PFA_MAP(map, tot_len, d1, d2)
static av_always_inline void fft15(TXComplex *out, TXComplex *in, ptrdiff_t stride)