30#define BDOF_BLOCK_SIZE 16
31#define BDOF_MIN_BLOCK_SIZE 4
100 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
102 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
104 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
107 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
109 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
111 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
113 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
115 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
117 const int height,
const int8_t *
hf,
const int8_t *
vf,
const int width);
134 const int block_w,
const int block_h);
147 const int16_t *
src0,
const int16_t *
src1,
149 uintptr_t w0_w1, uintptr_t offset_shift);
151 const int16_t *
src0,
const int16_t *
src1,
153 uintptr_t w0_w1, uintptr_t offset_shift);
155 const int16_t *
src0,
const int16_t *
src1,
157 uintptr_t w0_w1, uintptr_t offset_shift);
163#define W_AVG_FUN(bit_depth) \
164static void vvc_w_avg_ ## bit_depth(uint8_t *dst, ptrdiff_t dst_stride, \
165 const int16_t *src0, const int16_t *src1, int width, int height, \
166 int denom, int w0, int w1, int o) \
168 int shift = denom + FFMAX(3, 15 - bit_depth); \
169 int offset = (o * (1 << (bit_depth - 8)) + 1) * (1 << (shift - 1)); \
170 uintptr_t w0_w1 = ((uintptr_t)w0 << 32) | (uint32_t)w1; \
171 uintptr_t offset_shift = ((uintptr_t)offset << 32) | (uint32_t)shift; \
172 ff_vvc_w_avg_ ## bit_depth ## _neon(dst, dst_stride, src0, src1, width, height, w0_w1, offset_shift); \
179#define DMVR_FUN(fn, bd) \
180 void ff_vvc_dmvr_ ## fn ## bd ## _neon(int16_t *dst, \
181 const uint8_t *_src, ptrdiff_t _src_stride, int height, \
182 intptr_t mx, intptr_t my, int width);
194#define APPLY_BDOF_FUNC(bd) \
195 void ff_vvc_apply_bdof_ ## bd ## _neon(uint8_t *_dst, ptrdiff_t _dst_stride, \
196 const int16_t *_src0, const int16_t *_src1, \
197 int block_w, int block_h);
210 c->inter.put[0][1][0][0] = ff_vvc_put_pel_pixels4_8_neon;
211 c->inter.put[0][2][0][0] = ff_vvc_put_pel_pixels8_8_neon;
212 c->inter.put[0][3][0][0] = ff_vvc_put_pel_pixels16_8_neon;
213 c->inter.put[0][4][0][0] = ff_vvc_put_pel_pixels32_8_neon;
214 c->inter.put[0][5][0][0] = ff_vvc_put_pel_pixels64_8_neon;
215 c->inter.put[0][6][0][0] = ff_vvc_put_pel_pixels128_8_neon;
217 c->inter.put[0][1][0][1] = ff_vvc_put_qpel_h4_8_neon;
218 c->inter.put[0][2][0][1] = ff_vvc_put_qpel_h8_8_neon;
219 c->inter.put[0][3][0][1] = ff_vvc_put_qpel_h16_8_neon;
220 c->inter.put[0][4][0][1] =
221 c->inter.put[0][5][0][1] =
222 c->inter.put[0][6][0][1] = ff_vvc_put_qpel_h32_8_neon;
225 c->inter.put[0][2][1][0] =
226 c->inter.put[0][3][1][0] =
227 c->inter.put[0][4][1][0] =
228 c->inter.put[0][5][1][0] =
231 c->inter.put[0][1][1][1] = ff_vvc_put_qpel_hv4_8_neon;
232 c->inter.put[0][2][1][1] = ff_vvc_put_qpel_hv8_8_neon;
233 c->inter.put[0][3][1][1] = ff_vvc_put_qpel_hv16_8_neon;
234 c->inter.put[0][4][1][1] = ff_vvc_put_qpel_hv32_8_neon;
235 c->inter.put[0][5][1][1] = ff_vvc_put_qpel_hv64_8_neon;
236 c->inter.put[0][6][1][1] = ff_vvc_put_qpel_hv128_8_neon;
238 c->inter.put[1][1][0][0] = ff_vvc_put_pel_pixels4_8_neon;
239 c->inter.put[1][2][0][0] = ff_vvc_put_pel_pixels8_8_neon;
240 c->inter.put[1][3][0][0] = ff_vvc_put_pel_pixels16_8_neon;
241 c->inter.put[1][4][0][0] = ff_vvc_put_pel_pixels32_8_neon;
242 c->inter.put[1][5][0][0] = ff_vvc_put_pel_pixels64_8_neon;
243 c->inter.put[1][6][0][0] = ff_vvc_put_pel_pixels128_8_neon;
245 c->inter.put[1][1][0][1] = ff_vvc_put_epel_h4_8_neon;
246 c->inter.put[1][2][0][1] = ff_vvc_put_epel_h8_8_neon;
247 c->inter.put[1][3][0][1] = ff_vvc_put_epel_h16_8_neon;
248 c->inter.put[1][4][0][1] =
249 c->inter.put[1][5][0][1] =
250 c->inter.put[1][6][0][1] = ff_vvc_put_epel_h32_8_neon;
252 c->inter.put[1][1][1][1] = ff_vvc_put_epel_hv4_8_neon;
253 c->inter.put[1][2][1][1] = ff_vvc_put_epel_hv8_8_neon;
254 c->inter.put[1][3][1][1] = ff_vvc_put_epel_hv16_8_neon;
255 c->inter.put[1][4][1][1] = ff_vvc_put_epel_hv32_8_neon;
256 c->inter.put[1][5][1][1] = ff_vvc_put_epel_hv64_8_neon;
257 c->inter.put[1][6][1][1] = ff_vvc_put_epel_hv128_8_neon;
259 c->inter.put_uni[0][1][0][0] = ff_vvc_put_pel_uni_pixels4_8_neon;
260 c->inter.put_uni[0][2][0][0] = ff_vvc_put_pel_uni_pixels8_8_neon;
261 c->inter.put_uni[0][3][0][0] = ff_vvc_put_pel_uni_pixels16_8_neon;
262 c->inter.put_uni[0][4][0][0] = ff_vvc_put_pel_uni_pixels32_8_neon;
263 c->inter.put_uni[0][5][0][0] = ff_vvc_put_pel_uni_pixels64_8_neon;
264 c->inter.put_uni[0][6][0][0] = ff_vvc_put_pel_uni_pixels128_8_neon;
266 c->inter.put_uni[0][1][0][1] = ff_vvc_put_qpel_uni_h4_8_neon;
267 c->inter.put_uni[0][2][0][1] = ff_vvc_put_qpel_uni_h8_8_neon;
268 c->inter.put_uni[0][3][0][1] = ff_vvc_put_qpel_uni_h16_8_neon;
269 c->inter.put_uni[0][4][0][1] =
270 c->inter.put_uni[0][5][0][1] =
271 c->inter.put_uni[0][6][0][1] = ff_vvc_put_qpel_uni_h32_8_neon;
273 c->inter.put_uni_w[0][1][0][0] = ff_vvc_put_pel_uni_w_pixels4_8_neon;
274 c->inter.put_uni_w[0][2][0][0] = ff_vvc_put_pel_uni_w_pixels8_8_neon;
275 c->inter.put_uni_w[0][3][0][0] = ff_vvc_put_pel_uni_w_pixels16_8_neon;
276 c->inter.put_uni_w[0][4][0][0] = ff_vvc_put_pel_uni_w_pixels32_8_neon;
277 c->inter.put_uni_w[0][5][0][0] = ff_vvc_put_pel_uni_w_pixels64_8_neon;
278 c->inter.put_uni_w[0][6][0][0] = ff_vvc_put_pel_uni_w_pixels128_8_neon;
281 c->inter.w_avg = vvc_w_avg_8;
282 c->inter.dmvr[0][0] = ff_vvc_dmvr_8_neon;
283 c->inter.dmvr[0][1] = ff_vvc_dmvr_h_8_neon;
284 c->inter.dmvr[1][0] = ff_vvc_dmvr_v_8_neon;
285 c->inter.dmvr[1][1] = ff_vvc_dmvr_hv_8_neon;
286 c->inter.apply_bdof = ff_vvc_apply_bdof_8_neon;
294 c->alf.filter[
LUMA] = alf_filter_luma_8_neon;
295 c->alf.filter[
CHROMA] = alf_filter_chroma_8_neon;
296 c->alf.classify = alf_classify_8_neon;
299 c->inter.put[0][1][0][1] = ff_vvc_put_qpel_h4_8_neon_i8mm;
300 c->inter.put[0][2][0][1] = ff_vvc_put_qpel_h8_8_neon_i8mm;
301 c->inter.put[0][3][0][1] = ff_vvc_put_qpel_h16_8_neon_i8mm;
302 c->inter.put[0][4][0][1] = ff_vvc_put_qpel_h32_8_neon_i8mm;
303 c->inter.put[0][5][0][1] = ff_vvc_put_qpel_h64_8_neon_i8mm;
304 c->inter.put[0][6][0][1] = ff_vvc_put_qpel_h128_8_neon_i8mm;
306 c->inter.put[0][1][1][1] = ff_vvc_put_qpel_hv4_8_neon_i8mm;
307 c->inter.put[0][2][1][1] = ff_vvc_put_qpel_hv8_8_neon_i8mm;
308 c->inter.put[0][3][1][1] = ff_vvc_put_qpel_hv16_8_neon_i8mm;
309 c->inter.put[0][4][1][1] = ff_vvc_put_qpel_hv32_8_neon_i8mm;
310 c->inter.put[0][5][1][1] = ff_vvc_put_qpel_hv64_8_neon_i8mm;
311 c->inter.put[0][6][1][1] = ff_vvc_put_qpel_hv128_8_neon_i8mm;
313 c->inter.put[1][1][0][1] = ff_vvc_put_epel_h4_8_neon_i8mm;
314 c->inter.put[1][2][0][1] = ff_vvc_put_epel_h8_8_neon_i8mm;
315 c->inter.put[1][3][0][1] = ff_vvc_put_epel_h16_8_neon_i8mm;
316 c->inter.put[1][4][0][1] = ff_vvc_put_epel_h32_8_neon_i8mm;
317 c->inter.put[1][5][0][1] = ff_vvc_put_epel_h64_8_neon_i8mm;
318 c->inter.put[1][6][0][1] = ff_vvc_put_epel_h128_8_neon_i8mm;
320 c->inter.put[1][1][1][1] = ff_vvc_put_epel_hv4_8_neon_i8mm;
321 c->inter.put[1][2][1][1] = ff_vvc_put_epel_hv8_8_neon_i8mm;
322 c->inter.put[1][3][1][1] = ff_vvc_put_epel_hv16_8_neon_i8mm;
323 c->inter.put[1][4][1][1] = ff_vvc_put_epel_hv32_8_neon_i8mm;
324 c->inter.put[1][5][1][1] = ff_vvc_put_epel_hv64_8_neon_i8mm;
325 c->inter.put[1][6][1][1] = ff_vvc_put_epel_hv128_8_neon_i8mm;
328 c->alf.filter[
LUMA] = alf_filter_luma_8_sme2;
330 }
else if (bd == 10) {
332 c->inter.w_avg = vvc_w_avg_10;
333 c->inter.dmvr[0][1] = ff_vvc_dmvr_h_10_neon;
334 c->inter.dmvr[1][1] = ff_vvc_dmvr_hv_10_neon;
335 c->inter.apply_bdof = ff_vvc_apply_bdof_10_neon;
339 c->inter.put[1][4][0][1] =
340 c->inter.put[1][5][0][1] =
345 c->inter.put[0][4][0][1] =
346 c->inter.put[0][5][0][1] =
352 c->inter.put[1][4][1][0] =
353 c->inter.put[1][5][1][0] =
359 c->inter.put[0][4][1][0] =
360 c->inter.put[0][5][1][0] =
365 c->inter.put[0][4][1][1] =
366 c->inter.put[0][5][1][1] =
371 c->inter.put[1][4][1][1] =
372 c->inter.put[1][5][1][1] =
375 c->alf.filter[
LUMA] = alf_filter_luma_10_neon;
376 c->alf.filter[
CHROMA] = alf_filter_chroma_10_neon;
377 c->alf.classify = alf_classify_10_neon;
379 c->alf.filter[
LUMA] = alf_filter_luma_10_sme2;
381 }
else if (bd == 12) {
383 c->inter.w_avg = vvc_w_avg_12;
384 c->inter.dmvr[0][0] = ff_vvc_dmvr_12_neon;
385 c->inter.dmvr[0][1] = ff_vvc_dmvr_h_12_neon;
386 c->inter.dmvr[1][1] = ff_vvc_dmvr_hv_12_neon;
387 c->inter.apply_bdof = ff_vvc_apply_bdof_12_neon;
391 c->inter.put[1][4][0][1] =
392 c->inter.put[1][5][0][1] =
397 c->inter.put[0][4][0][1] =
398 c->inter.put[0][5][0][1] =
403 c->inter.put[0][4][1][1] =
404 c->inter.put[0][5][1][1] =
410 c->inter.put[0][4][1][0] =
411 c->inter.put[0][5][1][0] =
417 c->inter.put[1][4][1][0] =
418 c->inter.put[1][5][1][0] =
423 c->inter.put[1][4][1][1] =
424 c->inter.put[1][5][1][1] =
427 c->alf.filter[
LUMA] = alf_filter_luma_12_neon;
428 c->alf.filter[
CHROMA] = alf_filter_chroma_12_neon;
429 c->alf.classify = alf_classify_12_neon;
431 c->alf.filter[
LUMA] = alf_filter_luma_12_sme2;
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 const int8_t const int8_t * vf
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)
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 const int8_t * hf
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_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)
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 * _src
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define W_AVG_FUN(bit_depth)
void ff_vvc_avg_10_neon(uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, int width, int height)
void ff_vvc_put_luma_hv8_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_h_x16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_h16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_v4_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_v8_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_v8_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_hv_x16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_v4_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_h_x16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_avg_12_neon(uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, int width, int height)
void ff_vvc_w_avg_10_neon(uint8_t *_dst, ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, int width, int height, uintptr_t w0_w1, uintptr_t offset_shift)
void ff_vvc_put_chroma_hv_x16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_v4_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
#define APPLY_BDOF_FUNC(bd)
void ff_vvc_put_luma_v_x16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_dsp_init_aarch64(VVCDSPContext *const c, const int bd)
void ff_vvc_put_chroma_hv16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_hv8_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_h8_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_v_x16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_v8_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_hv16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_h8_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_h16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_v4_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_v_x16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_alf_classify_sum_neon(int *sum0, int *sum1, int16_t *grad, uint32_t gshift, uint32_t steps)
void ff_vvc_put_chroma_v16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_v16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_v16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_h_x16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_hv8_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_hv_x16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_h16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_v8_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_h_x16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_h8_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_w_avg_8_neon(uint8_t *_dst, ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, int width, int height, uintptr_t w0_w1, uintptr_t offset_shift)
void ff_vvc_put_luma_hv16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_luma_hv8_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_v_x16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_avg_8_neon(uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, int width, int height)
void ff_vvc_put_luma_hv16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_hv_x16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_w_avg_12_neon(uint8_t *_dst, ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, int width, int height, uintptr_t w0_w1, uintptr_t offset_shift)
void ff_vvc_put_luma_v16_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
int ff_vvc_sad_neon(const int16_t *src0, const int16_t *src1, int dx, int dy, const int block_w, const int block_h)
void ff_vvc_put_chroma_h16_10_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
void ff_vvc_put_chroma_h8_12_neon(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
#define i(width, name, range_min, range_max)
#define have_sme_i16i64(flags)
static atomic_int cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
static const int16_t steps[16]
static double grad(int hash, double x, double y, double z)
#define FF_ARRAY_ELEMS(a)