Go to the source code of this file.
|
#define | declare_fpel(type, sz) |
|
#define | declare_copy_avg(sz) |
|
#define | decl_mc_func(op, filter, dir, sz) |
|
#define | define_8tap_2d_fn(op, filter, sz) |
|
#define | decl_filter_funcs(op, dir, sz) |
|
#define | decl_mc_funcs(sz) |
|
#define | ff_vp9_copy32_neon ff_vp9_copy32_aarch64 |
|
#define | ff_vp9_copy64_neon ff_vp9_copy64_aarch64 |
|
#define | define_8tap_2d_funcs(sz) |
|
#define | init_fpel(idx1, idx2, sz, type, suffix) |
|
#define | init_copy(idx, sz, suffix) init_fpel(idx, 0, sz, copy, suffix) |
|
#define | init_avg(idx, sz, suffix) init_fpel(idx, 1, sz, avg, suffix) |
|
#define | init_copy_avg(idx, sz) |
|
#define | init_mc_func(idx1, idx2, op, filter, fname, dir, mx, my, sz, pfx) dsp->mc[idx1][filter][idx2][mx][my] = pfx##op##_##fname##sz##_##dir##_neon |
|
#define | init_mc_funcs(idx, dir, mx, my, sz, pfx) |
|
#define | init_mc_funcs_dirs(idx, sz) |
|
#define | define_itxfm(type_a, type_b, sz) |
|
#define | define_itxfm_funcs(sz) |
|
#define | init_itxfm(tx, sz) |
|
#define | init_idct(tx, nm) |
|
#define | define_loop_filter(dir, wd, len) void ff_vp9_loop_filter_##dir##_##wd##_##len##_neon(uint8_t *dst, ptrdiff_t stride, int E, int I, int H) |
|
#define | define_loop_filters(wd, len) |
|
|
| declare_copy_avg (64) |
|
| declare_copy_avg (32) |
|
| declare_copy_avg (16) |
|
| declare_copy_avg (8) |
|
| declare_copy_avg (4) |
|
| decl_mc_funcs (64) |
|
| decl_mc_funcs (32) |
|
| decl_mc_funcs (16) |
|
| decl_mc_funcs (8) |
|
| decl_mc_funcs (4) |
|
| define_8tap_2d_funcs (64) |
|
| define_itxfm_funcs (4) |
|
| define_itxfm_funcs (8) |
|
| define_itxfm_funcs (16) |
|
| define_itxfm (idct, idct, 32) |
|
| define_itxfm (iwht, iwht, 4) |
|
static av_cold void | vp9dsp_itxfm_init_aarch64 (VP9DSPContext *dsp) |
|
| define_loop_filters (4, 8) |
|
| define_loop_filters (8, 8) |
|
| define_loop_filters (16, 8) |
|
| define_loop_filters (16, 16) |
|
| define_loop_filters (44, 16) |
|
| define_loop_filters (48, 16) |
|
| define_loop_filters (84, 16) |
|
| define_loop_filters (88, 16) |
|
static av_cold void | vp9dsp_loopfilter_init_aarch64 (VP9DSPContext *dsp) |
|
av_cold void | ff_vp9dsp_init_aarch64 (VP9DSPContext *dsp, int bpp) |
|
◆ declare_fpel
#define declare_fpel |
( |
|
type, |
|
|
|
sz |
|
) |
| |
◆ declare_copy_avg
#define declare_copy_avg |
( |
|
sz | ) |
|
◆ decl_mc_func
#define decl_mc_func |
( |
|
op, |
|
|
|
filter, |
|
|
|
dir, |
|
|
|
sz |
|
) |
| |
◆ define_8tap_2d_fn
#define define_8tap_2d_fn |
( |
|
op, |
|
|
|
filter, |
|
|
|
sz |
|
) |
| |
◆ decl_filter_funcs
#define decl_filter_funcs |
( |
|
op, |
|
|
|
dir, |
|
|
|
sz |
|
) |
| |
◆ decl_mc_funcs
#define decl_mc_funcs |
( |
|
sz | ) |
|
Value:
decl_filter_funcs(
avg,
h, sz); \
decl_filter_funcs(put, v, sz); \
decl_filter_funcs(
avg, v, sz); \
decl_filter_funcs(put, hv, sz); \
decl_filter_funcs(
avg, hv, sz)
Definition at line 63 of file vp9dsp_init_aarch64.c.
◆ ff_vp9_copy32_neon
#define ff_vp9_copy32_neon ff_vp9_copy32_aarch64 |
◆ ff_vp9_copy64_neon
#define ff_vp9_copy64_neon ff_vp9_copy64_aarch64 |
◆ define_8tap_2d_funcs
#define define_8tap_2d_funcs |
( |
|
sz | ) |
|
Value:
define_8tap_2d_fn(put, sharp, sz) \
define_8tap_2d_fn(put,
smooth, sz) \
define_8tap_2d_fn(
avg, regular, sz) \
define_8tap_2d_fn(
avg, sharp, sz) \
Definition at line 86 of file vp9dsp_init_aarch64.c.
◆ init_fpel
#define init_fpel |
( |
|
idx1, |
|
|
|
idx2, |
|
|
|
sz, |
|
|
|
type, |
|
|
|
suffix |
|
) |
| |
◆ init_copy
◆ init_avg
◆ init_copy_avg
#define init_copy_avg |
( |
|
idx, |
|
|
|
sz |
|
) |
| |
Value:
init_avg (idx, sz, _neon)
◆ init_mc_func
#define init_mc_func |
( |
|
idx1, |
|
|
|
idx2, |
|
|
|
op, |
|
|
|
filter, |
|
|
|
fname, |
|
|
|
dir, |
|
|
|
mx, |
|
|
|
my, |
|
|
|
sz, |
|
|
|
pfx |
|
) |
| dsp->mc[idx1][filter][idx2][mx][my] = pfx##op##_##fname##sz##_##dir##_neon |
◆ init_mc_funcs
#define init_mc_funcs |
( |
|
idx, |
|
|
|
dir, |
|
|
|
mx, |
|
|
|
my, |
|
|
|
sz, |
|
|
|
pfx |
|
) |
| |
◆ init_mc_funcs_dirs
#define init_mc_funcs_dirs |
( |
|
idx, |
|
|
|
sz |
|
) |
| |
Value:
init_mc_funcs(idx, v, 0, 1, sz, ff_vp9_); \
init_mc_funcs(idx, hv, 1, 1, sz,)
◆ define_itxfm
#define define_itxfm |
( |
|
type_a, |
|
|
|
type_b, |
|
|
|
sz |
|
) |
| |
◆ define_itxfm_funcs
#define define_itxfm_funcs |
( |
|
sz | ) |
|
◆ init_itxfm
#define init_itxfm |
( |
|
tx, |
|
|
|
sz |
|
) |
| |
Value: dsp->itxfm_add[tx][
DCT_DCT] = ff_vp9_idct_idct_##sz##_add_neon; \
dsp->itxfm_add[tx][
DCT_ADST] = ff_vp9_iadst_idct_##sz##_add_neon; \
dsp->itxfm_add[tx][
ADST_DCT] = ff_vp9_idct_iadst_##sz##_add_neon; \
dsp->itxfm_add[tx][
ADST_ADST] = ff_vp9_iadst_iadst_##sz##_add_neon
◆ init_idct
#define init_idct |
( |
|
tx, |
|
|
|
nm |
|
) |
| |
Value:
dsp->itxfm_add[tx][
ADST_ADST] = ff_vp9_##nm##_add_neon
◆ define_loop_filter
◆ define_loop_filters
#define define_loop_filters |
( |
|
wd, |
|
|
|
len |
|
) |
| |
◆ declare_copy_avg() [1/5]
◆ declare_copy_avg() [2/5]
◆ declare_copy_avg() [3/5]
◆ declare_copy_avg() [4/5]
◆ declare_copy_avg() [5/5]
◆ decl_mc_funcs() [1/5]
◆ decl_mc_funcs() [2/5]
◆ decl_mc_funcs() [3/5]
◆ decl_mc_funcs() [4/5]
◆ decl_mc_funcs() [5/5]
◆ define_8tap_2d_funcs()
define_8tap_2d_funcs |
( |
64 |
| ) |
|
◆ define_itxfm_funcs() [1/3]
◆ define_itxfm_funcs() [2/3]
◆ define_itxfm_funcs() [3/3]
define_itxfm_funcs |
( |
16 |
| ) |
|
◆ define_itxfm() [1/2]
◆ define_itxfm() [2/2]
define_itxfm |
( |
iwht |
, |
|
|
iwht |
, |
|
|
4 |
|
|
) |
| |
◆ vp9dsp_itxfm_init_aarch64()
◆ define_loop_filters() [1/8]
define_loop_filters |
( |
4 |
, |
|
|
8 |
|
|
) |
| |
◆ define_loop_filters() [2/8]
define_loop_filters |
( |
8 |
, |
|
|
8 |
|
|
) |
| |
◆ define_loop_filters() [3/8]
define_loop_filters |
( |
16 |
, |
|
|
8 |
|
|
) |
| |
◆ define_loop_filters() [4/8]
define_loop_filters |
( |
16 |
, |
|
|
16 |
|
|
) |
| |
◆ define_loop_filters() [5/8]
define_loop_filters |
( |
44 |
, |
|
|
16 |
|
|
) |
| |
◆ define_loop_filters() [6/8]
define_loop_filters |
( |
48 |
, |
|
|
16 |
|
|
) |
| |
◆ define_loop_filters() [7/8]
define_loop_filters |
( |
84 |
, |
|
|
16 |
|
|
) |
| |
◆ define_loop_filters() [8/8]
define_loop_filters |
( |
88 |
, |
|
|
16 |
|
|
) |
| |
◆ vp9dsp_loopfilter_init_aarch64()
◆ ff_vp9dsp_init_aarch64()
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
#define decl_mc_func(op, filter, dir, sz)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
static void idct(int16_t block[64])
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
#define decl_filter_funcs(op, dir, sz)
#define declare_fpel(type, sz)
#define define_itxfm(type_a, type_b, sz)
#define init_mc_funcs(idx, dir, mx, my, sz, pfx)
#define define_loop_filter(dir, wd, len)
static void copy(const float *p1, float *p2, const int length)
#define define_8tap_2d_fn(op, filter, sz)
#define init_copy(idx, sz, suffix)
static float smooth(DeshakeOpenCLContext *deshake_ctx, float *gauss_kernel, int length, float max_val, AVFifoBuffer *values)
#define init_mc_func(idx1, idx2, op, filter, fname, dir, mx, my, sz, pfx)