Go to the documentation of this file.
21 #ifndef AVCODEC_AARCH64_H26X_DSP_H
22 #define AVCODEC_AARCH64_H26X_DSP_H
28 ptrdiff_t stride_dst, ptrdiff_t stride_src,
29 const int16_t *sao_offset_val,
int sao_left_class,
32 ptrdiff_t stride_dst, ptrdiff_t stride_src,
33 const int16_t *sao_offset_val,
int sao_left_class,
36 const int16_t *sao_offset_val,
int eo,
int width,
int height);
38 const int16_t *sao_offset_val,
int eo,
int width,
int height);
41 const int16_t *sao_offset_val,
int eo,
int width,
int height);
43 const int16_t *sao_offset_val,
int eo,
int width,
int height);
45 #define NEON8_FNPROTO_PARTIAL_6(fn, args, ext) \
46 void ff_hevc_put_hevc_##fn##_h4_8_neon##ext args; \
47 void ff_hevc_put_hevc_##fn##_h6_8_neon##ext args; \
48 void ff_hevc_put_hevc_##fn##_h8_8_neon##ext args; \
49 void ff_hevc_put_hevc_##fn##_h12_8_neon##ext args; \
50 void ff_hevc_put_hevc_##fn##_h16_8_neon##ext args; \
51 void ff_hevc_put_hevc_##fn##_h32_8_neon##ext args;
63 #define NEON8_FNPROTO(fn, args, ext) \
64 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
65 void ff_hevc_put_hevc_##fn##6_8_neon##ext args; \
66 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
67 void ff_hevc_put_hevc_##fn##12_8_neon##ext args; \
68 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
69 void ff_hevc_put_hevc_##fn##24_8_neon##ext args; \
70 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
71 void ff_hevc_put_hevc_##fn##48_8_neon##ext args; \
72 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
74 #define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \
75 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
76 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
77 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
78 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
80 #define NEON8_FNPROTO_PARTIAL_5(fn, args, ext) \
81 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
82 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
83 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
84 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
85 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
97 int height,
int denom,
int wx0,
int wx1,
98 int ox0,
int ox1, intptr_t
mx, intptr_t
my,
int width),);
126 int height,
int denom,
int wx,
int ox,
143 int height,
int denom,
int wx,
int ox,
148 int height,
int denom,
int wx,
int ox,
169 int height,
int denom,
int wx,
int ox,
174 int height,
int denom,
int wx,
int ox,
175 intptr_t
mx, intptr_t
my,
int width), _i8mm);
207 int height,
int denom,
int wx,
int ox,
212 int height,
int denom,
int wx,
int ox,
213 intptr_t
mx, intptr_t
my,
int width), _i8mm);
217 int height,
int denom,
int wx,
int ox,
222 int height,
int denom,
int wx,
int ox,
223 intptr_t
mx, intptr_t
my,
int width), _i8mm);
227 int height,
int denom,
int wx,
int ox,
232 int height,
int denom,
int wx,
int ox,
233 intptr_t
mx, intptr_t
my,
int width), _i8mm);
247 #undef NEON8_FNPROTO_PARTIAL_4
248 #define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \
249 void ff_vvc_put_##fn##_h4_8_neon##ext args; \
250 void ff_vvc_put_##fn##_h8_8_neon##ext args; \
251 void ff_vvc_put_##fn##_h16_8_neon##ext args; \
252 void ff_vvc_put_##fn##_h32_8_neon##ext args;
255 const int8_t *
hf,
const int8_t *
vf,
int width),)
261 const int8_t *
hf, const int8_t *
vf,
int width),)
263 #undef NEON8_FNPROTO_PARTIAL_6
264 #define NEON8_FNPROTO_PARTIAL_6(fn, args, ext) \
265 void ff_vvc_put_##fn##4_8_neon##ext args; \
266 void ff_vvc_put_##fn##8_8_neon##ext args; \
267 void ff_vvc_put_##fn##16_8_neon##ext args; \
268 void ff_vvc_put_##fn##32_8_neon##ext args; \
269 void ff_vvc_put_##fn##64_8_neon##ext args; \
270 void ff_vvc_put_##fn##128_8_neon##ext args
274 const int8_t *
hf,
const int8_t *
vf,
int width),);
278 const int8_t *
hf,
const int8_t *
vf,
int width),);
282 int height,
int denom,
int wx,
int ox,
283 const int8_t *
hf,
const int8_t *
vf,
int width),);
287 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
291 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
295 const int8_t *
hf,
const int8_t *
vf,
int width);
299 const int8_t *
hf,
const int8_t *
vf,
int width);
303 const int8_t *
hf,
const int8_t *
vf,
int width),);
307 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
311 const int8_t *
hf,
const int8_t *
vf,
int width),);
315 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
void ff_hevc_sao_edge_filter_16x16_8_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t const uint8_t * src
void ff_vvc_put_qpel_v8_8_neon(int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, const int8_t *hf, const int8_t *vf, int width)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int height
void ff_hevc_sao_edge_filter_8x8_8_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height)
uint8_t ptrdiff_t const uint8_t * _src
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t mx
uint8_t ptrdiff_t const uint8_t ptrdiff_t _srcstride
void ff_vvc_put_qpel_v4_8_neon(int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, const int8_t *hf, const int8_t *vf, int width)
void ff_h26x_sao_band_filter_16x16_8_neon(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const int16_t *sao_offset_val, int sao_left_class, int width, int height)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t my
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t const uint8_t ptrdiff_t srcstride
#define NEON8_FNPROTO(fn, args, ext)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int width
uint8_t ptrdiff_t _dststride
void ff_vvc_sao_edge_filter_8x8_8_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
void ff_h26x_sao_band_filter_8x8_8_neon(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const int16_t *sao_offset_val, int sao_left_class, int width, int height)
#define NEON8_FNPROTO_PARTIAL_5(fn, args, ext)
#define NEON8_FNPROTO_PARTIAL_4(fn, args, ext)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int const int8_t * hf
#define NEON8_FNPROTO_PARTIAL_6(fn, args, ext)
void ff_vvc_sao_edge_filter_16x16_8_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int const int8_t const int8_t * vf