#include "tx.h"
#include "thread.h"
#include "mem_internal.h"
#include "common.h"
#include "attributes.h"
Go to the source code of this file.
|
#define | TX_DECL_FN(fn, suffix) void TX_FN_NAME(fn, suffix)(AVTXContext *s, void *o, void *i, ptrdiff_t st); |
|
#define | TX_DEF(fn, tx_type, len_min, len_max, f1, f2, p, init_fn, suffix, cf, cd_flags, cf2) |
|
#define | CMUL3(c, a, b) CMUL((c).re, (c).im, (a).re, (a).im, (b).re, (b).im) |
|
#define | FF_TX_OUT_OF_PLACE (1ULL << 63) /* Can be OR'd with AV_TX_INPLACE */ |
|
#define | FF_TX_ALIGNED (1ULL << 62) /* Cannot be OR'd with AV_TX_UNALIGNED */ |
|
#define | FF_TX_PRESHUFFLE (1ULL << 61) /* Codelet expects permuted coeffs */ |
|
#define | FF_TX_INVERSE_ONLY (1ULL << 60) /* For non-orthogonal inverse-only transforms */ |
|
#define | FF_TX_FORWARD_ONLY (1ULL << 59) /* For non-orthogonal forward-only transforms */ |
|
#define | FF_TX_ASM_CALL (1ULL << 58) /* For asm->asm functions only */ |
|
#define | TX_MAX_FACTORS 16 |
|
#define | TX_MAX_SUB 4 |
|
#define | TX_MAX_DECOMPOSITIONS 512 |
|
#define | TX_TYPE_ANY INT32_MAX /* Special type to allow all types */ |
|
#define | TX_FACTOR_ANY |
|
#define | TX_LEN_UNLIMITED -1 /* Special length value to permit all lengths */ |
|
#define | FF_TX_CPU_FLAGS_ALL 0x0 /* Special CPU flag for C */ |
|
#define | TX_EMBED_INPUT_PFA_MAP(map, tot_len, d1, d2) |
|
|
int | ff_tx_gen_pfa_input_map (AVTXContext *s, FFTXCodeletOptions *opts, int d1, int d2) |
|
int | ff_tx_init_subtx (AVTXContext *s, enum AVTXType type, uint64_t flags, FFTXCodeletOptions *opts, int len, int inv, const void *scale) |
|
void | ff_tx_clear_ctx (AVTXContext *s) |
|
int | ff_tx_decompose_length (int dst[TX_MAX_DECOMPOSITIONS], enum AVTXType type, int len, int inv) |
|
int | ff_tx_gen_default_map (AVTXContext *s, FFTXCodeletOptions *opts) |
|
int | ff_tx_gen_compound_mapping (AVTXContext *s, FFTXCodeletOptions *opts, int inv, int n, int m) |
|
int | ff_tx_gen_ptwo_revtab (AVTXContext *s, FFTXCodeletOptions *opts) |
|
int | ff_tx_gen_inplace_map (AVTXContext *s, int len) |
|
int | ff_tx_gen_split_radix_parity_revtab (AVTXContext *s, int len, int inv, FFTXCodeletOptions *opts, int basis, int dual_stride) |
|
void | ff_tx_init_tabs_float (int len) |
|
void | ff_tx_init_tabs_double (int len) |
|
void | ff_tx_init_tabs_int32 (int len) |
|
int | ff_tx_mdct_gen_exp_float (AVTXContext *s, int *pre_tab) |
|
int | ff_tx_mdct_gen_exp_double (AVTXContext *s, int *pre_tab) |
|
int | ff_tx_mdct_gen_exp_int32 (AVTXContext *s, int *pre_tab) |
|
◆ TX_DECL_FN
◆ TX_DEF
#define TX_DEF |
( |
|
fn, |
|
|
|
tx_type, |
|
|
|
len_min, |
|
|
|
len_max, |
|
|
|
f1, |
|
|
|
f2, |
|
|
|
p, |
|
|
|
init_fn, |
|
|
|
suffix, |
|
|
|
cf, |
|
|
|
cd_flags, |
|
|
|
cf2 |
|
) |
| |
Value:
.factors = { (f1), (f2) }, \
.nb_factors = !!(f1) + !!(f2), \
.min_len = len_min, \
.max_len = len_max, \
.init = init_fn, \
.cpu_flags = cf2 | AV_CPU_FLAG_ ## cf, \
.prio = p, \
}
Definition at line 71 of file tx_priv.h.
◆ CMUL3
#define CMUL3 |
( |
|
c, |
|
|
|
a, |
|
|
|
b |
|
) |
| CMUL((c).re, (c).im, (a).re, (a).im, (b).re, (b).im) |
◆ FF_TX_OUT_OF_PLACE
#define FF_TX_OUT_OF_PLACE (1ULL << 63) /* Can be OR'd with AV_TX_INPLACE */ |
◆ FF_TX_ALIGNED
◆ FF_TX_PRESHUFFLE
#define FF_TX_PRESHUFFLE (1ULL << 61) /* Codelet expects permuted coeffs */ |
◆ FF_TX_INVERSE_ONLY
#define FF_TX_INVERSE_ONLY (1ULL << 60) /* For non-orthogonal inverse-only transforms */ |
◆ FF_TX_FORWARD_ONLY
#define FF_TX_FORWARD_ONLY (1ULL << 59) /* For non-orthogonal forward-only transforms */ |
◆ FF_TX_ASM_CALL
#define FF_TX_ASM_CALL (1ULL << 58) /* For asm->asm functions only */ |
◆ TX_MAX_FACTORS
#define TX_MAX_FACTORS 16 |
◆ TX_MAX_SUB
◆ TX_MAX_DECOMPOSITIONS
#define TX_MAX_DECOMPOSITIONS 512 |
◆ TX_TYPE_ANY
#define TX_TYPE_ANY INT32_MAX /* Special type to allow all types */ |
◆ TX_FACTOR_ANY
◆ TX_LEN_UNLIMITED
#define TX_LEN_UNLIMITED -1 /* Special length value to permit all lengths */ |
◆ FF_TX_CPU_FLAGS_ALL
#define FF_TX_CPU_FLAGS_ALL 0x0 /* Special CPU flag for C */ |
◆ TX_EMBED_INPUT_PFA_MAP
#define TX_EMBED_INPUT_PFA_MAP |
( |
|
map, |
|
|
|
tot_len, |
|
|
|
d1, |
|
|
|
d2 |
|
) |
| |
Value: do { \
int mtmp[(d1)*(d2)]; \
for (int k = 0; k < tot_len; k += (d1)*(d2)) { \
memcpy(mtmp, &
map[k], (d1)*(d2)*
sizeof(*mtmp)); \
for (int m = 0; m < (d2); m++) \
for (int n = 0; n < (d1); n++) \
map[k + m*(d1) + n] = mtmp[(m*(d1) + n*(d2)) % ((d1)*(d2))]; \
} \
} while (0)
Definition at line 271 of file tx_priv.h.
◆ TXComplex
◆ FFTXCodeletPriority
Enumerator |
---|
FF_TX_PRIO_BASE | |
FF_TX_PRIO_MIN | |
FF_TX_PRIO_MAX | |
Definition at line 161 of file tx_priv.h.
◆ FFTXMapDirection
Enumerator |
---|
FF_TX_MAP_NONE | |
FF_TX_MAP_GATHER | |
FF_TX_MAP_SCATTER | |
Definition at line 171 of file tx_priv.h.
◆ ff_tx_gen_pfa_input_map()
◆ ff_tx_init_subtx()
◆ ff_tx_clear_ctx()
◆ ff_tx_decompose_length()
int ff_tx_decompose_length |
( |
int |
dst[TX_MAX_DECOMPOSITIONS], |
|
|
enum AVTXType |
type, |
|
|
int |
len, |
|
|
int |
inv |
|
) |
| |
◆ ff_tx_gen_default_map()
◆ ff_tx_gen_compound_mapping()
◆ ff_tx_gen_ptwo_revtab()
◆ ff_tx_gen_inplace_map()
◆ ff_tx_gen_split_radix_parity_revtab()
◆ ff_tx_init_tabs_float()
void ff_tx_init_tabs_float |
( |
int |
len | ) |
|
◆ ff_tx_init_tabs_double()
void ff_tx_init_tabs_double |
( |
int |
len | ) |
|
◆ ff_tx_init_tabs_int32()
void ff_tx_init_tabs_int32 |
( |
int |
len | ) |
|
◆ ff_tx_mdct_gen_exp_float()
int ff_tx_mdct_gen_exp_float |
( |
AVTXContext * |
s, |
|
|
int * |
pre_tab |
|
) |
| |
◆ ff_tx_mdct_gen_exp_double()
int ff_tx_mdct_gen_exp_double |
( |
AVTXContext * |
s, |
|
|
int * |
pre_tab |
|
) |
| |
◆ ff_tx_mdct_gen_exp_int32()
int ff_tx_mdct_gen_exp_int32 |
( |
AVTXContext * |
s, |
|
|
int * |
pre_tab |
|
) |
| |
◆ ff_tx_codelet_list_float_c
◆ ff_tx_codelet_list_float_x86
const FFTXCodelet* const ff_tx_codelet_list_float_x86[] |
◆ ff_tx_codelet_list_float_aarch64
const FFTXCodelet* const ff_tx_codelet_list_float_aarch64[] |
◆ ff_tx_codelet_list_double_c
◆ ff_tx_codelet_list_int32_c
const VDPAUPixFmtMap * map