1 // This file is generated. Do not edit.
2 #ifndef AV1_RTCD_H_
3 #define AV1_RTCD_H_
4
5 #ifdef RTCD_C
6 #define RTCD_EXTERN
7 #else
8 #define RTCD_EXTERN extern
9 #endif
10
11 /*
12 * AV1
13 */
14
15 #include "aom/aom_integer.h"
16 #include "aom_dsp/txfm_common.h"
17 #include "av1/common/av1_txfm.h"
18 #include "av1/common/common.h"
19 #include "av1/common/convolve.h"
20 #include "av1/common/enums.h"
21 #include "av1/common/filter.h"
22 #include "av1/common/odintrin.h"
23 #include "av1/common/quant_common.h"
24 #include "av1/common/restoration.h"
25
26 struct macroblockd;
27
28 /* Encoder forward decls */
29 struct macroblock;
30 struct txfm_param;
31 struct aom_variance_vtable;
32 struct search_site_config;
33 struct yv12_buffer_config;
34 struct NN_CONFIG;
35 typedef struct NN_CONFIG NN_CONFIG;
36
37 enum { NONE, RELU, SOFTSIGN, SIGMOID } UENUM1BYTE(ACTIVATION);
38 #if CONFIG_NN_V2
39 enum { SOFTMAX_CROSS_ENTROPY } UENUM1BYTE(LOSS);
40 struct NN_CONFIG_V2;
41 typedef struct NN_CONFIG_V2 NN_CONFIG_V2;
42 struct FC_LAYER;
43 typedef struct FC_LAYER FC_LAYER;
44 #endif // CONFIG_NN_V2
45
46 struct CNN_CONFIG;
47 typedef struct CNN_CONFIG CNN_CONFIG;
48 struct CNN_LAYER_CONFIG;
49 typedef struct CNN_LAYER_CONFIG CNN_LAYER_CONFIG;
50 struct CNN_THREAD_DATA;
51 typedef struct CNN_THREAD_DATA CNN_THREAD_DATA;
52 struct CNN_BRANCH_CONFIG;
53 typedef struct CNN_BRANCH_CONFIG CNN_BRANCH_CONFIG;
54 struct CNN_MULTI_OUT;
55 typedef struct CNN_MULTI_OUT CNN_MULTI_OUT;
56
57 /* Function pointers return by CfL functions */
58 typedef void (*cfl_subsample_lbd_fn)(const uint8_t* input,
59 int input_stride,
60 uint16_t* output_q3);
61
62 #if CONFIG_AV1_HIGHBITDEPTH
63 typedef void (*cfl_subsample_hbd_fn)(const uint16_t* input,
64 int input_stride,
65 uint16_t* output_q3);
66
67 typedef void (*cfl_predict_hbd_fn)(const int16_t* src,
68 uint16_t* dst,
69 int dst_stride,
70 int alpha_q3,
71 int bd);
72 #endif
73
74 typedef void (*cfl_subtract_average_fn)(const uint16_t* src, int16_t* dst);
75
76 typedef void (*cfl_predict_lbd_fn)(const int16_t* src,
77 uint8_t* dst,
78 int dst_stride,
79 int alpha_q3);
80
81 #ifdef __cplusplus
82 extern "C" {
83 #endif
84
85 void aom_quantize_b_helper_c(const tran_low_t* coeff_ptr,
86 intptr_t n_coeffs,
87 const int16_t* zbin_ptr,
88 const int16_t* round_ptr,
89 const int16_t* quant_ptr,
90 const int16_t* quant_shift_ptr,
91 tran_low_t* qcoeff_ptr,
92 tran_low_t* dqcoeff_ptr,
93 const int16_t* dequant_ptr,
94 uint16_t* eob_ptr,
95 const int16_t* scan,
96 const int16_t* iscan,
97 const qm_val_t* qm_ptr,
98 const qm_val_t* iqm_ptr,
99 const int log_scale);
100 void aom_quantize_b_helper_neon(const tran_low_t* coeff_ptr,
101 intptr_t n_coeffs,
102 const int16_t* zbin_ptr,
103 const int16_t* round_ptr,
104 const int16_t* quant_ptr,
105 const int16_t* quant_shift_ptr,
106 tran_low_t* qcoeff_ptr,
107 tran_low_t* dqcoeff_ptr,
108 const int16_t* dequant_ptr,
109 uint16_t* eob_ptr,
110 const int16_t* scan,
111 const int16_t* iscan,
112 const qm_val_t* qm_ptr,
113 const qm_val_t* iqm_ptr,
114 const int log_scale);
115 #define aom_quantize_b_helper aom_quantize_b_helper_neon
116
117 void av1_apply_selfguided_restoration_c(const uint8_t* dat,
118 int width,
119 int height,
120 int stride,
121 int eps,
122 const int* xqd,
123 uint8_t* dst,
124 int dst_stride,
125 int32_t* tmpbuf,
126 int bit_depth,
127 int highbd);
128 void av1_apply_selfguided_restoration_neon(const uint8_t* dat,
129 int width,
130 int height,
131 int stride,
132 int eps,
133 const int* xqd,
134 uint8_t* dst,
135 int dst_stride,
136 int32_t* tmpbuf,
137 int bit_depth,
138 int highbd);
139 #define av1_apply_selfguided_restoration av1_apply_selfguided_restoration_neon
140
141 void av1_apply_temporal_filter_c(const struct yv12_buffer_config* ref_frame,
142 const struct macroblockd* mbd,
143 const BLOCK_SIZE block_size,
144 const int mb_row,
145 const int mb_col,
146 const int num_planes,
147 const double* noise_levels,
148 const MV* subblock_mvs,
149 const int* subblock_mses,
150 const int q_factor,
151 const int filter_strength,
152 const uint8_t* pred,
153 uint32_t* accum,
154 uint16_t* count);
155 #define av1_apply_temporal_filter av1_apply_temporal_filter_c
156
157 int64_t av1_block_error_c(const tran_low_t* coeff,
158 const tran_low_t* dqcoeff,
159 intptr_t block_size,
160 int64_t* ssz);
161 int64_t av1_block_error_neon(const tran_low_t* coeff,
162 const tran_low_t* dqcoeff,
163 intptr_t block_size,
164 int64_t* ssz);
165 #define av1_block_error av1_block_error_neon
166
167 int64_t av1_block_error_lp_c(const int16_t* coeff,
168 const int16_t* dqcoeff,
169 intptr_t block_size);
170 int64_t av1_block_error_lp_neon(const int16_t* coeff,
171 const int16_t* dqcoeff,
172 intptr_t block_size);
173 #define av1_block_error_lp av1_block_error_lp_neon
174
175 void av1_build_compound_diffwtd_mask_c(uint8_t* mask,
176 DIFFWTD_MASK_TYPE mask_type,
177 const uint8_t* src0,
178 int src0_stride,
179 const uint8_t* src1,
180 int src1_stride,
181 int h,
182 int w);
183 #define av1_build_compound_diffwtd_mask av1_build_compound_diffwtd_mask_c
184
185 void av1_build_compound_diffwtd_mask_d16_c(uint8_t* mask,
186 DIFFWTD_MASK_TYPE mask_type,
187 const CONV_BUF_TYPE* src0,
188 int src0_stride,
189 const CONV_BUF_TYPE* src1,
190 int src1_stride,
191 int h,
192 int w,
193 ConvolveParams* conv_params,
194 int bd);
195 void av1_build_compound_diffwtd_mask_d16_neon(uint8_t* mask,
196 DIFFWTD_MASK_TYPE mask_type,
197 const CONV_BUF_TYPE* src0,
198 int src0_stride,
199 const CONV_BUF_TYPE* src1,
200 int src1_stride,
201 int h,
202 int w,
203 ConvolveParams* conv_params,
204 int bd);
205 #define av1_build_compound_diffwtd_mask_d16 \
206 av1_build_compound_diffwtd_mask_d16_neon
207
208 void av1_build_compound_diffwtd_mask_highbd_c(uint8_t* mask,
209 DIFFWTD_MASK_TYPE mask_type,
210 const uint8_t* src0,
211 int src0_stride,
212 const uint8_t* src1,
213 int src1_stride,
214 int h,
215 int w,
216 int bd);
217 #define av1_build_compound_diffwtd_mask_highbd \
218 av1_build_compound_diffwtd_mask_highbd_c
219
220 int64_t av1_calc_frame_error_c(const uint8_t* const ref,
221 int stride,
222 const uint8_t* const dst,
223 int p_width,
224 int p_height,
225 int p_stride);
226 #define av1_calc_frame_error av1_calc_frame_error_c
227
228 void av1_calc_proj_params_c(const uint8_t* src8,
229 int width,
230 int height,
231 int src_stride,
232 const uint8_t* dat8,
233 int dat_stride,
234 int32_t* flt0,
235 int flt0_stride,
236 int32_t* flt1,
237 int flt1_stride,
238 int64_t H[2][2],
239 int64_t C[2],
240 const sgr_params_type* params);
241 #define av1_calc_proj_params av1_calc_proj_params_c
242
243 void av1_calc_proj_params_high_bd_c(const uint8_t* src8,
244 int width,
245 int height,
246 int src_stride,
247 const uint8_t* dat8,
248 int dat_stride,
249 int32_t* flt0,
250 int flt0_stride,
251 int32_t* flt1,
252 int flt1_stride,
253 int64_t H[2][2],
254 int64_t C[2],
255 const sgr_params_type* params);
256 #define av1_calc_proj_params_high_bd av1_calc_proj_params_high_bd_c
257
258 void av1_cnn_activate_c(float** input,
259 int channels,
260 int width,
261 int height,
262 int stride,
263 ACTIVATION layer_activation);
264 #define av1_cnn_activate av1_cnn_activate_c
265
266 void av1_cnn_add_c(float** input,
267 int channels,
268 int width,
269 int height,
270 int stride,
271 const float** add);
272 #define av1_cnn_add av1_cnn_add_c
273
274 void av1_cnn_batchnorm_c(float** image,
275 int channels,
276 int width,
277 int height,
278 int stride,
279 const float* gamma,
280 const float* beta,
281 const float* mean,
282 const float* std);
283 #define av1_cnn_batchnorm av1_cnn_batchnorm_c
284
285 void av1_cnn_convolve_c(const float** input,
286 int in_width,
287 int in_height,
288 int in_stride,
289 const CNN_LAYER_CONFIG* layer_config,
290 float** output,
291 int out_stride,
292 int start_idx,
293 int step);
294 #define av1_cnn_convolve av1_cnn_convolve_c
295
296 void av1_cnn_deconvolve_c(const float** input,
297 int in_width,
298 int in_height,
299 int in_stride,
300 const CNN_LAYER_CONFIG* layer_config,
301 float** output,
302 int out_stride);
303 #define av1_cnn_deconvolve av1_cnn_deconvolve_c
304
305 void av1_cnn_predict_c(const float** input,
306 int in_width,
307 int in_height,
308 int in_stride,
309 const CNN_CONFIG* cnn_config,
310 const CNN_THREAD_DATA* thread_data,
311 CNN_MULTI_OUT* output_struct);
312 #define av1_cnn_predict av1_cnn_predict_c
313
314 double av1_compute_cross_correlation_c(unsigned char* im1,
315 int stride1,
316 int x1,
317 int y1,
318 unsigned char* im2,
319 int stride2,
320 int x2,
321 int y2);
322 #define av1_compute_cross_correlation av1_compute_cross_correlation_c
323
324 void av1_compute_stats_c(int wiener_win,
325 const uint8_t* dgd8,
326 const uint8_t* src8,
327 int h_start,
328 int h_end,
329 int v_start,
330 int v_end,
331 int dgd_stride,
332 int src_stride,
333 int64_t* M,
334 int64_t* H);
335 #define av1_compute_stats av1_compute_stats_c
336
337 void av1_compute_stats_highbd_c(int wiener_win,
338 const uint8_t* dgd8,
339 const uint8_t* src8,
340 int h_start,
341 int h_end,
342 int v_start,
343 int v_end,
344 int dgd_stride,
345 int src_stride,
346 int64_t* M,
347 int64_t* H,
348 aom_bit_depth_t bit_depth);
349 #define av1_compute_stats_highbd av1_compute_stats_highbd_c
350
351 void av1_convolve_2d_scale_c(const uint8_t* src,
352 int src_stride,
353 uint8_t* dst,
354 int dst_stride,
355 int w,
356 int h,
357 const InterpFilterParams* filter_params_x,
358 const InterpFilterParams* filter_params_y,
359 const int subpel_x_qn,
360 const int x_step_qn,
361 const int subpel_y_qn,
362 const int y_step_qn,
363 ConvolveParams* conv_params);
364 #define av1_convolve_2d_scale av1_convolve_2d_scale_c
365
366 void av1_convolve_2d_sr_c(const uint8_t* src,
367 int src_stride,
368 uint8_t* dst,
369 int dst_stride,
370 int w,
371 int h,
372 const InterpFilterParams* filter_params_x,
373 const InterpFilterParams* filter_params_y,
374 const int subpel_x_qn,
375 const int subpel_y_qn,
376 ConvolveParams* conv_params);
377 void av1_convolve_2d_sr_neon(const uint8_t* src,
378 int src_stride,
379 uint8_t* dst,
380 int dst_stride,
381 int w,
382 int h,
383 const InterpFilterParams* filter_params_x,
384 const InterpFilterParams* filter_params_y,
385 const int subpel_x_qn,
386 const int subpel_y_qn,
387 ConvolveParams* conv_params);
388 #define av1_convolve_2d_sr av1_convolve_2d_sr_neon
389
390 void av1_convolve_horiz_rs_c(const uint8_t* src,
391 int src_stride,
392 uint8_t* dst,
393 int dst_stride,
394 int w,
395 int h,
396 const int16_t* x_filters,
397 int x0_qn,
398 int x_step_qn);
399 #define av1_convolve_horiz_rs av1_convolve_horiz_rs_c
400
401 void av1_convolve_x_sr_c(const uint8_t* src,
402 int src_stride,
403 uint8_t* dst,
404 int dst_stride,
405 int w,
406 int h,
407 const InterpFilterParams* filter_params_x,
408 const int subpel_x_qn,
409 ConvolveParams* conv_params);
410 void av1_convolve_x_sr_neon(const uint8_t* src,
411 int src_stride,
412 uint8_t* dst,
413 int dst_stride,
414 int w,
415 int h,
416 const InterpFilterParams* filter_params_x,
417 const int subpel_x_qn,
418 ConvolveParams* conv_params);
419 #define av1_convolve_x_sr av1_convolve_x_sr_neon
420
421 void av1_convolve_y_sr_c(const uint8_t* src,
422 int src_stride,
423 uint8_t* dst,
424 int dst_stride,
425 int w,
426 int h,
427 const InterpFilterParams* filter_params_y,
428 const int subpel_y_qn);
429 void av1_convolve_y_sr_neon(const uint8_t* src,
430 int src_stride,
431 uint8_t* dst,
432 int dst_stride,
433 int w,
434 int h,
435 const InterpFilterParams* filter_params_y,
436 const int subpel_y_qn);
437 #define av1_convolve_y_sr av1_convolve_y_sr_neon
438
439 void av1_dist_wtd_convolve_2d_c(const uint8_t* src,
440 int src_stride,
441 uint8_t* dst,
442 int dst_stride,
443 int w,
444 int h,
445 const InterpFilterParams* filter_params_x,
446 const InterpFilterParams* filter_params_y,
447 const int subpel_x_qn,
448 const int subpel_y_qn,
449 ConvolveParams* conv_params);
450 void av1_dist_wtd_convolve_2d_neon(const uint8_t* src,
451 int src_stride,
452 uint8_t* dst,
453 int dst_stride,
454 int w,
455 int h,
456 const InterpFilterParams* filter_params_x,
457 const InterpFilterParams* filter_params_y,
458 const int subpel_x_qn,
459 const int subpel_y_qn,
460 ConvolveParams* conv_params);
461 #define av1_dist_wtd_convolve_2d av1_dist_wtd_convolve_2d_neon
462
463 void av1_dist_wtd_convolve_2d_copy_c(const uint8_t* src,
464 int src_stride,
465 uint8_t* dst,
466 int dst_stride,
467 int w,
468 int h,
469 ConvolveParams* conv_params);
470 void av1_dist_wtd_convolve_2d_copy_neon(const uint8_t* src,
471 int src_stride,
472 uint8_t* dst,
473 int dst_stride,
474 int w,
475 int h,
476 ConvolveParams* conv_params);
477 #define av1_dist_wtd_convolve_2d_copy av1_dist_wtd_convolve_2d_copy_neon
478
479 void av1_dist_wtd_convolve_x_c(const uint8_t* src,
480 int src_stride,
481 uint8_t* dst,
482 int dst_stride,
483 int w,
484 int h,
485 const InterpFilterParams* filter_params_x,
486 const int subpel_x_qn,
487 ConvolveParams* conv_params);
488 void av1_dist_wtd_convolve_x_neon(const uint8_t* src,
489 int src_stride,
490 uint8_t* dst,
491 int dst_stride,
492 int w,
493 int h,
494 const InterpFilterParams* filter_params_x,
495 const int subpel_x_qn,
496 ConvolveParams* conv_params);
497 #define av1_dist_wtd_convolve_x av1_dist_wtd_convolve_x_neon
498
499 void av1_dist_wtd_convolve_y_c(const uint8_t* src,
500 int src_stride,
501 uint8_t* dst,
502 int dst_stride,
503 int w,
504 int h,
505 const InterpFilterParams* filter_params_y,
506 const int subpel_y_qn,
507 ConvolveParams* conv_params);
508 void av1_dist_wtd_convolve_y_neon(const uint8_t* src,
509 int src_stride,
510 uint8_t* dst,
511 int dst_stride,
512 int w,
513 int h,
514 const InterpFilterParams* filter_params_y,
515 const int subpel_y_qn,
516 ConvolveParams* conv_params);
517 #define av1_dist_wtd_convolve_y av1_dist_wtd_convolve_y_neon
518
519 void av1_dr_prediction_z1_c(uint8_t* dst,
520 ptrdiff_t stride,
521 int bw,
522 int bh,
523 const uint8_t* above,
524 const uint8_t* left,
525 int upsample_above,
526 int dx,
527 int dy);
528 void av1_dr_prediction_z1_neon(uint8_t* dst,
529 ptrdiff_t stride,
530 int bw,
531 int bh,
532 const uint8_t* above,
533 const uint8_t* left,
534 int upsample_above,
535 int dx,
536 int dy);
537 #define av1_dr_prediction_z1 av1_dr_prediction_z1_neon
538
539 void av1_dr_prediction_z2_c(uint8_t* dst,
540 ptrdiff_t stride,
541 int bw,
542 int bh,
543 const uint8_t* above,
544 const uint8_t* left,
545 int upsample_above,
546 int upsample_left,
547 int dx,
548 int dy);
549 void av1_dr_prediction_z2_neon(uint8_t* dst,
550 ptrdiff_t stride,
551 int bw,
552 int bh,
553 const uint8_t* above,
554 const uint8_t* left,
555 int upsample_above,
556 int upsample_left,
557 int dx,
558 int dy);
559 #define av1_dr_prediction_z2 av1_dr_prediction_z2_neon
560
561 void av1_dr_prediction_z3_c(uint8_t* dst,
562 ptrdiff_t stride,
563 int bw,
564 int bh,
565 const uint8_t* above,
566 const uint8_t* left,
567 int upsample_left,
568 int dx,
569 int dy);
570 void av1_dr_prediction_z3_neon(uint8_t* dst,
571 ptrdiff_t stride,
572 int bw,
573 int bh,
574 const uint8_t* above,
575 const uint8_t* left,
576 int upsample_left,
577 int dx,
578 int dy);
579 #define av1_dr_prediction_z3 av1_dr_prediction_z3_neon
580
581 void av1_filter_intra_edge_c(uint8_t* p, int sz, int strength);
582 #define av1_filter_intra_edge av1_filter_intra_edge_c
583
584 void av1_filter_intra_edge_high_c(uint16_t* p, int sz, int strength);
585 #define av1_filter_intra_edge_high av1_filter_intra_edge_high_c
586
587 void av1_filter_intra_predictor_c(uint8_t* dst,
588 ptrdiff_t stride,
589 TX_SIZE tx_size,
590 const uint8_t* above,
591 const uint8_t* left,
592 int mode);
593 void av1_filter_intra_predictor_neon(uint8_t* dst,
594 ptrdiff_t stride,
595 TX_SIZE tx_size,
596 const uint8_t* above,
597 const uint8_t* left,
598 int mode);
599 #define av1_filter_intra_predictor av1_filter_intra_predictor_neon
600
601 void av1_fwd_txfm2d_16x16_c(const int16_t* input,
602 int32_t* output,
603 int stride,
604 TX_TYPE tx_type,
605 int bd);
606 void av1_fwd_txfm2d_16x16_neon(const int16_t* input,
607 int32_t* output,
608 int stride,
609 TX_TYPE tx_type,
610 int bd);
611 #define av1_fwd_txfm2d_16x16 av1_fwd_txfm2d_16x16_neon
612
613 void av1_fwd_txfm2d_16x32_c(const int16_t* input,
614 int32_t* output,
615 int stride,
616 TX_TYPE tx_type,
617 int bd);
618 void av1_fwd_txfm2d_16x32_neon(const int16_t* input,
619 int32_t* output,
620 int stride,
621 TX_TYPE tx_type,
622 int bd);
623 #define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_neon
624
625 void av1_fwd_txfm2d_16x4_c(const int16_t* input,
626 int32_t* output,
627 int stride,
628 TX_TYPE tx_type,
629 int bd);
630 void av1_fwd_txfm2d_16x4_neon(const int16_t* input,
631 int32_t* output,
632 int stride,
633 TX_TYPE tx_type,
634 int bd);
635 #define av1_fwd_txfm2d_16x4 av1_fwd_txfm2d_16x4_neon
636
637 void av1_fwd_txfm2d_16x64_c(const int16_t* input,
638 int32_t* output,
639 int stride,
640 TX_TYPE tx_type,
641 int bd);
642 void av1_fwd_txfm2d_16x64_neon(const int16_t* input,
643 int32_t* output,
644 int stride,
645 TX_TYPE tx_type,
646 int bd);
647 #define av1_fwd_txfm2d_16x64 av1_fwd_txfm2d_16x64_neon
648
649 void av1_fwd_txfm2d_16x8_c(const int16_t* input,
650 int32_t* output,
651 int stride,
652 TX_TYPE tx_type,
653 int bd);
654 void av1_fwd_txfm2d_16x8_neon(const int16_t* input,
655 int32_t* output,
656 int stride,
657 TX_TYPE tx_type,
658 int bd);
659 #define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_neon
660
661 void av1_fwd_txfm2d_32x16_c(const int16_t* input,
662 int32_t* output,
663 int stride,
664 TX_TYPE tx_type,
665 int bd);
666 void av1_fwd_txfm2d_32x16_neon(const int16_t* input,
667 int32_t* output,
668 int stride,
669 TX_TYPE tx_type,
670 int bd);
671 #define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_neon
672
673 void av1_fwd_txfm2d_32x32_c(const int16_t* input,
674 int32_t* output,
675 int stride,
676 TX_TYPE tx_type,
677 int bd);
678 void av1_fwd_txfm2d_32x32_neon(const int16_t* input,
679 int32_t* output,
680 int stride,
681 TX_TYPE tx_type,
682 int bd);
683 #define av1_fwd_txfm2d_32x32 av1_fwd_txfm2d_32x32_neon
684
685 void av1_fwd_txfm2d_32x64_c(const int16_t* input,
686 int32_t* output,
687 int stride,
688 TX_TYPE tx_type,
689 int bd);
690 void av1_fwd_txfm2d_32x64_neon(const int16_t* input,
691 int32_t* output,
692 int stride,
693 TX_TYPE tx_type,
694 int bd);
695 #define av1_fwd_txfm2d_32x64 av1_fwd_txfm2d_32x64_neon
696
697 void av1_fwd_txfm2d_32x8_c(const int16_t* input,
698 int32_t* output,
699 int stride,
700 TX_TYPE tx_type,
701 int bd);
702 void av1_fwd_txfm2d_32x8_neon(const int16_t* input,
703 int32_t* output,
704 int stride,
705 TX_TYPE tx_type,
706 int bd);
707 #define av1_fwd_txfm2d_32x8 av1_fwd_txfm2d_32x8_neon
708
709 void av1_fwd_txfm2d_4x16_c(const int16_t* input,
710 int32_t* output,
711 int stride,
712 TX_TYPE tx_type,
713 int bd);
714 void av1_fwd_txfm2d_4x16_neon(const int16_t* input,
715 int32_t* output,
716 int stride,
717 TX_TYPE tx_type,
718 int bd);
719 #define av1_fwd_txfm2d_4x16 av1_fwd_txfm2d_4x16_neon
720
721 void av1_fwd_txfm2d_4x4_c(const int16_t* input,
722 int32_t* output,
723 int stride,
724 TX_TYPE tx_type,
725 int bd);
726 void av1_fwd_txfm2d_4x4_neon(const int16_t* input,
727 int32_t* output,
728 int stride,
729 TX_TYPE tx_type,
730 int bd);
731 #define av1_fwd_txfm2d_4x4 av1_fwd_txfm2d_4x4_neon
732
733 void av1_fwd_txfm2d_4x8_c(const int16_t* input,
734 int32_t* output,
735 int stride,
736 TX_TYPE tx_type,
737 int bd);
738 void av1_fwd_txfm2d_4x8_neon(const int16_t* input,
739 int32_t* output,
740 int stride,
741 TX_TYPE tx_type,
742 int bd);
743 #define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_neon
744
745 void av1_fwd_txfm2d_64x16_c(const int16_t* input,
746 int32_t* output,
747 int stride,
748 TX_TYPE tx_type,
749 int bd);
750 void av1_fwd_txfm2d_64x16_neon(const int16_t* input,
751 int32_t* output,
752 int stride,
753 TX_TYPE tx_type,
754 int bd);
755 #define av1_fwd_txfm2d_64x16 av1_fwd_txfm2d_64x16_neon
756
757 void av1_fwd_txfm2d_64x32_c(const int16_t* input,
758 int32_t* output,
759 int stride,
760 TX_TYPE tx_type,
761 int bd);
762 void av1_fwd_txfm2d_64x32_neon(const int16_t* input,
763 int32_t* output,
764 int stride,
765 TX_TYPE tx_type,
766 int bd);
767 #define av1_fwd_txfm2d_64x32 av1_fwd_txfm2d_64x32_neon
768
769 void av1_fwd_txfm2d_64x64_c(const int16_t* input,
770 int32_t* output,
771 int stride,
772 TX_TYPE tx_type,
773 int bd);
774 void av1_fwd_txfm2d_64x64_neon(const int16_t* input,
775 int32_t* output,
776 int stride,
777 TX_TYPE tx_type,
778 int bd);
779 #define av1_fwd_txfm2d_64x64 av1_fwd_txfm2d_64x64_neon
780
781 void av1_fwd_txfm2d_8x16_c(const int16_t* input,
782 int32_t* output,
783 int stride,
784 TX_TYPE tx_type,
785 int bd);
786 void av1_fwd_txfm2d_8x16_neon(const int16_t* input,
787 int32_t* output,
788 int stride,
789 TX_TYPE tx_type,
790 int bd);
791 #define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_neon
792
793 void av1_fwd_txfm2d_8x32_c(const int16_t* input,
794 int32_t* output,
795 int stride,
796 TX_TYPE tx_type,
797 int bd);
798 void av1_fwd_txfm2d_8x32_neon(const int16_t* input,
799 int32_t* output,
800 int stride,
801 TX_TYPE tx_type,
802 int bd);
803 #define av1_fwd_txfm2d_8x32 av1_fwd_txfm2d_8x32_neon
804
805 void av1_fwd_txfm2d_8x4_c(const int16_t* input,
806 int32_t* output,
807 int stride,
808 TX_TYPE tx_type,
809 int bd);
810 void av1_fwd_txfm2d_8x4_neon(const int16_t* input,
811 int32_t* output,
812 int stride,
813 TX_TYPE tx_type,
814 int bd);
815 #define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_neon
816
817 void av1_fwd_txfm2d_8x8_c(const int16_t* input,
818 int32_t* output,
819 int stride,
820 TX_TYPE tx_type,
821 int bd);
822 void av1_fwd_txfm2d_8x8_neon(const int16_t* input,
823 int32_t* output,
824 int stride,
825 TX_TYPE tx_type,
826 int bd);
827 #define av1_fwd_txfm2d_8x8 av1_fwd_txfm2d_8x8_neon
828
829 void av1_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
830 void av1_fwht4x4_neon(const int16_t* input, tran_low_t* output, int stride);
831 #define av1_fwht4x4 av1_fwht4x4_neon
832
833 uint32_t av1_get_crc32c_value_c(void* crc_calculator,
834 uint8_t* p,
835 size_t length);
836 #define av1_get_crc32c_value av1_get_crc32c_value_c
837
838 void av1_get_horver_correlation_full_c(const int16_t* diff,
839 int stride,
840 int w,
841 int h,
842 float* hcorr,
843 float* vcorr);
844 void av1_get_horver_correlation_full_neon(const int16_t* diff,
845 int stride,
846 int w,
847 int h,
848 float* hcorr,
849 float* vcorr);
850 #define av1_get_horver_correlation_full av1_get_horver_correlation_full_neon
851
852 void av1_get_nz_map_contexts_c(const uint8_t* const levels,
853 const int16_t* const scan,
854 const uint16_t eob,
855 const TX_SIZE tx_size,
856 const TX_CLASS tx_class,
857 int8_t* const coeff_contexts);
858 void av1_get_nz_map_contexts_neon(const uint8_t* const levels,
859 const int16_t* const scan,
860 const uint16_t eob,
861 const TX_SIZE tx_size,
862 const TX_CLASS tx_class,
863 int8_t* const coeff_contexts);
864 #define av1_get_nz_map_contexts av1_get_nz_map_contexts_neon
865
866 void av1_highbd_apply_temporal_filter_c(
867 const struct yv12_buffer_config* ref_frame,
868 const struct macroblockd* mbd,
869 const BLOCK_SIZE block_size,
870 const int mb_row,
871 const int mb_col,
872 const int num_planes,
873 const double* noise_levels,
874 const MV* subblock_mvs,
875 const int* subblock_mses,
876 const int q_factor,
877 const int filter_strength,
878 const uint8_t* pred,
879 uint32_t* accum,
880 uint16_t* count);
881 #define av1_highbd_apply_temporal_filter av1_highbd_apply_temporal_filter_c
882
883 int64_t av1_highbd_block_error_c(const tran_low_t* coeff,
884 const tran_low_t* dqcoeff,
885 intptr_t block_size,
886 int64_t* ssz,
887 int bd);
888 #define av1_highbd_block_error av1_highbd_block_error_c
889
890 void av1_highbd_convolve8_c(const uint8_t* src,
891 ptrdiff_t src_stride,
892 uint8_t* dst,
893 ptrdiff_t dst_stride,
894 const int16_t* filter_x,
895 int x_step_q4,
896 const int16_t* filter_y,
897 int y_step_q4,
898 int w,
899 int h,
900 int bps);
901 #define av1_highbd_convolve8 av1_highbd_convolve8_c
902
903 void av1_highbd_convolve8_horiz_c(const uint8_t* src,
904 ptrdiff_t src_stride,
905 uint8_t* dst,
906 ptrdiff_t dst_stride,
907 const int16_t* filter_x,
908 int x_step_q4,
909 const int16_t* filter_y,
910 int y_step_q4,
911 int w,
912 int h,
913 int bps);
914 #define av1_highbd_convolve8_horiz av1_highbd_convolve8_horiz_c
915
916 void av1_highbd_convolve8_vert_c(const uint8_t* src,
917 ptrdiff_t src_stride,
918 uint8_t* dst,
919 ptrdiff_t dst_stride,
920 const int16_t* filter_x,
921 int x_step_q4,
922 const int16_t* filter_y,
923 int y_step_q4,
924 int w,
925 int h,
926 int bps);
927 #define av1_highbd_convolve8_vert av1_highbd_convolve8_vert_c
928
929 void av1_highbd_convolve_2d_scale_c(const uint16_t* src,
930 int src_stride,
931 uint16_t* dst,
932 int dst_stride,
933 int w,
934 int h,
935 const InterpFilterParams* filter_params_x,
936 const InterpFilterParams* filter_params_y,
937 const int subpel_x_qn,
938 const int x_step_qn,
939 const int subpel_y_qn,
940 const int y_step_qn,
941 ConvolveParams* conv_params,
942 int bd);
943 #define av1_highbd_convolve_2d_scale av1_highbd_convolve_2d_scale_c
944
945 void av1_highbd_convolve_2d_sr_c(const uint16_t* src,
946 int src_stride,
947 uint16_t* dst,
948 int dst_stride,
949 int w,
950 int h,
951 const InterpFilterParams* filter_params_x,
952 const InterpFilterParams* filter_params_y,
953 const int subpel_x_qn,
954 const int subpel_y_qn,
955 ConvolveParams* conv_params,
956 int bd);
957 #define av1_highbd_convolve_2d_sr av1_highbd_convolve_2d_sr_c
958
959 void av1_highbd_convolve_avg_c(const uint8_t* src,
960 ptrdiff_t src_stride,
961 uint8_t* dst,
962 ptrdiff_t dst_stride,
963 const int16_t* filter_x,
964 int x_step_q4,
965 const int16_t* filter_y,
966 int y_step_q4,
967 int w,
968 int h,
969 int bps);
970 #define av1_highbd_convolve_avg av1_highbd_convolve_avg_c
971
972 void av1_highbd_convolve_copy_c(const uint8_t* src,
973 ptrdiff_t src_stride,
974 uint8_t* dst,
975 ptrdiff_t dst_stride,
976 const int16_t* filter_x,
977 int x_step_q4,
978 const int16_t* filter_y,
979 int y_step_q4,
980 int w,
981 int h,
982 int bps);
983 #define av1_highbd_convolve_copy av1_highbd_convolve_copy_c
984
985 void av1_highbd_convolve_horiz_rs_c(const uint16_t* src,
986 int src_stride,
987 uint16_t* dst,
988 int dst_stride,
989 int w,
990 int h,
991 const int16_t* x_filters,
992 int x0_qn,
993 int x_step_qn,
994 int bd);
995 #define av1_highbd_convolve_horiz_rs av1_highbd_convolve_horiz_rs_c
996
997 void av1_highbd_convolve_x_sr_c(const uint16_t* src,
998 int src_stride,
999 uint16_t* dst,
1000 int dst_stride,
1001 int w,
1002 int h,
1003 const InterpFilterParams* filter_params_x,
1004 const int subpel_x_qn,
1005 ConvolveParams* conv_params,
1006 int bd);
1007 #define av1_highbd_convolve_x_sr av1_highbd_convolve_x_sr_c
1008
1009 void av1_highbd_convolve_y_sr_c(const uint16_t* src,
1010 int src_stride,
1011 uint16_t* dst,
1012 int dst_stride,
1013 int w,
1014 int h,
1015 const InterpFilterParams* filter_params_y,
1016 const int subpel_y_qn,
1017 int bd);
1018 #define av1_highbd_convolve_y_sr av1_highbd_convolve_y_sr_c
1019
1020 void av1_highbd_dist_wtd_convolve_2d_c(
1021 const uint16_t* src,
1022 int src_stride,
1023 uint16_t* dst,
1024 int dst_stride,
1025 int w,
1026 int h,
1027 const InterpFilterParams* filter_params_x,
1028 const InterpFilterParams* filter_params_y,
1029 const int subpel_x_qn,
1030 const int subpel_y_qn,
1031 ConvolveParams* conv_params,
1032 int bd);
1033 #define av1_highbd_dist_wtd_convolve_2d av1_highbd_dist_wtd_convolve_2d_c
1034
1035 void av1_highbd_dist_wtd_convolve_2d_copy_c(const uint16_t* src,
1036 int src_stride,
1037 uint16_t* dst,
1038 int dst_stride,
1039 int w,
1040 int h,
1041 ConvolveParams* conv_params,
1042 int bd);
1043 #define av1_highbd_dist_wtd_convolve_2d_copy \
1044 av1_highbd_dist_wtd_convolve_2d_copy_c
1045
1046 void av1_highbd_dist_wtd_convolve_x_c(const uint16_t* src,
1047 int src_stride,
1048 uint16_t* dst,
1049 int dst_stride,
1050 int w,
1051 int h,
1052 const InterpFilterParams* filter_params_x,
1053 const int subpel_x_qn,
1054 ConvolveParams* conv_params,
1055 int bd);
1056 #define av1_highbd_dist_wtd_convolve_x av1_highbd_dist_wtd_convolve_x_c
1057
1058 void av1_highbd_dist_wtd_convolve_y_c(const uint16_t* src,
1059 int src_stride,
1060 uint16_t* dst,
1061 int dst_stride,
1062 int w,
1063 int h,
1064 const InterpFilterParams* filter_params_y,
1065 const int subpel_y_qn,
1066 ConvolveParams* conv_params,
1067 int bd);
1068 #define av1_highbd_dist_wtd_convolve_y av1_highbd_dist_wtd_convolve_y_c
1069
1070 void av1_highbd_dr_prediction_z1_c(uint16_t* dst,
1071 ptrdiff_t stride,
1072 int bw,
1073 int bh,
1074 const uint16_t* above,
1075 const uint16_t* left,
1076 int upsample_above,
1077 int dx,
1078 int dy,
1079 int bd);
1080 #define av1_highbd_dr_prediction_z1 av1_highbd_dr_prediction_z1_c
1081
1082 void av1_highbd_dr_prediction_z2_c(uint16_t* dst,
1083 ptrdiff_t stride,
1084 int bw,
1085 int bh,
1086 const uint16_t* above,
1087 const uint16_t* left,
1088 int upsample_above,
1089 int upsample_left,
1090 int dx,
1091 int dy,
1092 int bd);
1093 #define av1_highbd_dr_prediction_z2 av1_highbd_dr_prediction_z2_c
1094
1095 void av1_highbd_dr_prediction_z3_c(uint16_t* dst,
1096 ptrdiff_t stride,
1097 int bw,
1098 int bh,
1099 const uint16_t* above,
1100 const uint16_t* left,
1101 int upsample_left,
1102 int dx,
1103 int dy,
1104 int bd);
1105 #define av1_highbd_dr_prediction_z3 av1_highbd_dr_prediction_z3_c
1106
1107 void av1_highbd_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
1108 void av1_highbd_fwht4x4_neon(const int16_t* input,
1109 tran_low_t* output,
1110 int stride);
1111 #define av1_highbd_fwht4x4 av1_highbd_fwht4x4_neon
1112
1113 void av1_highbd_inv_txfm_add_c(const tran_low_t* input,
1114 uint8_t* dest,
1115 int stride,
1116 const TxfmParam* txfm_param);
1117 void av1_highbd_inv_txfm_add_neon(const tran_low_t* input,
1118 uint8_t* dest,
1119 int stride,
1120 const TxfmParam* txfm_param);
1121 #define av1_highbd_inv_txfm_add av1_highbd_inv_txfm_add_neon
1122
1123 void av1_highbd_inv_txfm_add_16x32_c(const tran_low_t* input,
1124 uint8_t* dest,
1125 int stride,
1126 const TxfmParam* txfm_param);
1127 void av1_highbd_inv_txfm_add_16x32_neon(const tran_low_t* input,
1128 uint8_t* dest,
1129 int stride,
1130 const TxfmParam* txfm_param);
1131 #define av1_highbd_inv_txfm_add_16x32 av1_highbd_inv_txfm_add_16x32_neon
1132
1133 void av1_highbd_inv_txfm_add_16x4_c(const tran_low_t* input,
1134 uint8_t* dest,
1135 int stride,
1136 const TxfmParam* txfm_param);
1137 void av1_highbd_inv_txfm_add_16x4_neon(const tran_low_t* input,
1138 uint8_t* dest,
1139 int stride,
1140 const TxfmParam* txfm_param);
1141 #define av1_highbd_inv_txfm_add_16x4 av1_highbd_inv_txfm_add_16x4_neon
1142
1143 void av1_highbd_inv_txfm_add_16x64_c(const tran_low_t* input,
1144 uint8_t* dest,
1145 int stride,
1146 const TxfmParam* txfm_param);
1147 #define av1_highbd_inv_txfm_add_16x64 av1_highbd_inv_txfm_add_16x64_c
1148
1149 void av1_highbd_inv_txfm_add_16x8_c(const tran_low_t* input,
1150 uint8_t* dest,
1151 int stride,
1152 const TxfmParam* txfm_param);
1153 void av1_highbd_inv_txfm_add_16x8_neon(const tran_low_t* input,
1154 uint8_t* dest,
1155 int stride,
1156 const TxfmParam* txfm_param);
1157 #define av1_highbd_inv_txfm_add_16x8 av1_highbd_inv_txfm_add_16x8_neon
1158
1159 void av1_highbd_inv_txfm_add_32x16_c(const tran_low_t* input,
1160 uint8_t* dest,
1161 int stride,
1162 const TxfmParam* txfm_param);
1163 void av1_highbd_inv_txfm_add_32x16_neon(const tran_low_t* input,
1164 uint8_t* dest,
1165 int stride,
1166 const TxfmParam* txfm_param);
1167 #define av1_highbd_inv_txfm_add_32x16 av1_highbd_inv_txfm_add_32x16_neon
1168
1169 void av1_highbd_inv_txfm_add_32x32_c(const tran_low_t* input,
1170 uint8_t* dest,
1171 int stride,
1172 const TxfmParam* txfm_param);
1173 void av1_highbd_inv_txfm_add_32x32_neon(const tran_low_t* input,
1174 uint8_t* dest,
1175 int stride,
1176 const TxfmParam* txfm_param);
1177 #define av1_highbd_inv_txfm_add_32x32 av1_highbd_inv_txfm_add_32x32_neon
1178
1179 void av1_highbd_inv_txfm_add_32x64_c(const tran_low_t* input,
1180 uint8_t* dest,
1181 int stride,
1182 const TxfmParam* txfm_param);
1183 void av1_highbd_inv_txfm_add_32x64_neon(const tran_low_t* input,
1184 uint8_t* dest,
1185 int stride,
1186 const TxfmParam* txfm_param);
1187 #define av1_highbd_inv_txfm_add_32x64 av1_highbd_inv_txfm_add_32x64_neon
1188
1189 void av1_highbd_inv_txfm_add_32x8_c(const tran_low_t* input,
1190 uint8_t* dest,
1191 int stride,
1192 const TxfmParam* txfm_param);
1193 #define av1_highbd_inv_txfm_add_32x8 av1_highbd_inv_txfm_add_32x8_c
1194
1195 void av1_highbd_inv_txfm_add_4x16_c(const tran_low_t* input,
1196 uint8_t* dest,
1197 int stride,
1198 const TxfmParam* txfm_param);
1199 void av1_highbd_inv_txfm_add_4x16_neon(const tran_low_t* input,
1200 uint8_t* dest,
1201 int stride,
1202 const TxfmParam* txfm_param);
1203 #define av1_highbd_inv_txfm_add_4x16 av1_highbd_inv_txfm_add_4x16_neon
1204
1205 void av1_highbd_inv_txfm_add_4x4_c(const tran_low_t* input,
1206 uint8_t* dest,
1207 int stride,
1208 const TxfmParam* txfm_param);
1209 void av1_highbd_inv_txfm_add_4x4_neon(const tran_low_t* input,
1210 uint8_t* dest,
1211 int stride,
1212 const TxfmParam* txfm_param);
1213 #define av1_highbd_inv_txfm_add_4x4 av1_highbd_inv_txfm_add_4x4_neon
1214
1215 void av1_highbd_inv_txfm_add_4x8_c(const tran_low_t* input,
1216 uint8_t* dest,
1217 int stride,
1218 const TxfmParam* txfm_param);
1219 void av1_highbd_inv_txfm_add_4x8_neon(const tran_low_t* input,
1220 uint8_t* dest,
1221 int stride,
1222 const TxfmParam* txfm_param);
1223 #define av1_highbd_inv_txfm_add_4x8 av1_highbd_inv_txfm_add_4x8_neon
1224
1225 void av1_highbd_inv_txfm_add_64x16_c(const tran_low_t* input,
1226 uint8_t* dest,
1227 int stride,
1228 const TxfmParam* txfm_param);
1229 #define av1_highbd_inv_txfm_add_64x16 av1_highbd_inv_txfm_add_64x16_c
1230
1231 void av1_highbd_inv_txfm_add_64x32_c(const tran_low_t* input,
1232 uint8_t* dest,
1233 int stride,
1234 const TxfmParam* txfm_param);
1235 void av1_highbd_inv_txfm_add_64x32_neon(const tran_low_t* input,
1236 uint8_t* dest,
1237 int stride,
1238 const TxfmParam* txfm_param);
1239 #define av1_highbd_inv_txfm_add_64x32 av1_highbd_inv_txfm_add_64x32_neon
1240
1241 void av1_highbd_inv_txfm_add_64x64_c(const tran_low_t* input,
1242 uint8_t* dest,
1243 int stride,
1244 const TxfmParam* txfm_param);
1245 void av1_highbd_inv_txfm_add_64x64_neon(const tran_low_t* input,
1246 uint8_t* dest,
1247 int stride,
1248 const TxfmParam* txfm_param);
1249 #define av1_highbd_inv_txfm_add_64x64 av1_highbd_inv_txfm_add_64x64_neon
1250
1251 void av1_highbd_inv_txfm_add_8x16_c(const tran_low_t* input,
1252 uint8_t* dest,
1253 int stride,
1254 const TxfmParam* txfm_param);
1255 void av1_highbd_inv_txfm_add_8x16_neon(const tran_low_t* input,
1256 uint8_t* dest,
1257 int stride,
1258 const TxfmParam* txfm_param);
1259 #define av1_highbd_inv_txfm_add_8x16 av1_highbd_inv_txfm_add_8x16_neon
1260
1261 void av1_highbd_inv_txfm_add_8x32_c(const tran_low_t* input,
1262 uint8_t* dest,
1263 int stride,
1264 const TxfmParam* txfm_param);
1265 #define av1_highbd_inv_txfm_add_8x32 av1_highbd_inv_txfm_add_8x32_c
1266
1267 void av1_highbd_inv_txfm_add_8x4_c(const tran_low_t* input,
1268 uint8_t* dest,
1269 int stride,
1270 const TxfmParam* txfm_param);
1271 void av1_highbd_inv_txfm_add_8x4_neon(const tran_low_t* input,
1272 uint8_t* dest,
1273 int stride,
1274 const TxfmParam* txfm_param);
1275 #define av1_highbd_inv_txfm_add_8x4 av1_highbd_inv_txfm_add_8x4_neon
1276
1277 void av1_highbd_inv_txfm_add_8x8_c(const tran_low_t* input,
1278 uint8_t* dest,
1279 int stride,
1280 const TxfmParam* txfm_param);
1281 void av1_highbd_inv_txfm_add_8x8_neon(const tran_low_t* input,
1282 uint8_t* dest,
1283 int stride,
1284 const TxfmParam* txfm_param);
1285 #define av1_highbd_inv_txfm_add_8x8 av1_highbd_inv_txfm_add_8x8_neon
1286
1287 void av1_highbd_iwht4x4_16_add_c(const tran_low_t* input,
1288 uint8_t* dest,
1289 int dest_stride,
1290 int bd);
1291 #define av1_highbd_iwht4x4_16_add av1_highbd_iwht4x4_16_add_c
1292
1293 void av1_highbd_iwht4x4_1_add_c(const tran_low_t* input,
1294 uint8_t* dest,
1295 int dest_stride,
1296 int bd);
1297 #define av1_highbd_iwht4x4_1_add av1_highbd_iwht4x4_1_add_c
1298
1299 int64_t av1_highbd_pixel_proj_error_c(const uint8_t* src8,
1300 int width,
1301 int height,
1302 int src_stride,
1303 const uint8_t* dat8,
1304 int dat_stride,
1305 int32_t* flt0,
1306 int flt0_stride,
1307 int32_t* flt1,
1308 int flt1_stride,
1309 int xq[2],
1310 const sgr_params_type* params);
1311 #define av1_highbd_pixel_proj_error av1_highbd_pixel_proj_error_c
1312
1313 void av1_highbd_quantize_fp_c(const tran_low_t* coeff_ptr,
1314 intptr_t n_coeffs,
1315 const int16_t* zbin_ptr,
1316 const int16_t* round_ptr,
1317 const int16_t* quant_ptr,
1318 const int16_t* quant_shift_ptr,
1319 tran_low_t* qcoeff_ptr,
1320 tran_low_t* dqcoeff_ptr,
1321 const int16_t* dequant_ptr,
1322 uint16_t* eob_ptr,
1323 const int16_t* scan,
1324 const int16_t* iscan,
1325 int log_scale);
1326 #define av1_highbd_quantize_fp av1_highbd_quantize_fp_c
1327
1328 void av1_highbd_warp_affine_c(const int32_t* mat,
1329 const uint16_t* ref,
1330 int width,
1331 int height,
1332 int stride,
1333 uint16_t* pred,
1334 int p_col,
1335 int p_row,
1336 int p_width,
1337 int p_height,
1338 int p_stride,
1339 int subsampling_x,
1340 int subsampling_y,
1341 int bd,
1342 ConvolveParams* conv_params,
1343 int16_t alpha,
1344 int16_t beta,
1345 int16_t gamma,
1346 int16_t delta);
1347 #define av1_highbd_warp_affine av1_highbd_warp_affine_c
1348
1349 void av1_highbd_wiener_convolve_add_src_c(const uint8_t* src,
1350 ptrdiff_t src_stride,
1351 uint8_t* dst,
1352 ptrdiff_t dst_stride,
1353 const int16_t* filter_x,
1354 int x_step_q4,
1355 const int16_t* filter_y,
1356 int y_step_q4,
1357 int w,
1358 int h,
1359 const ConvolveParams* conv_params,
1360 int bd);
1361 #define av1_highbd_wiener_convolve_add_src av1_highbd_wiener_convolve_add_src_c
1362
1363 void av1_inv_txfm2d_add_16x16_c(const int32_t* input,
1364 uint16_t* output,
1365 int stride,
1366 TX_TYPE tx_type,
1367 int bd);
1368 #define av1_inv_txfm2d_add_16x16 av1_inv_txfm2d_add_16x16_c
1369
1370 void av1_inv_txfm2d_add_16x32_c(const int32_t* input,
1371 uint16_t* output,
1372 int stride,
1373 TX_TYPE tx_type,
1374 int bd);
1375 void av1_inv_txfm2d_add_16x32_neon(const int32_t* input,
1376 uint16_t* output,
1377 int stride,
1378 TX_TYPE tx_type,
1379 int bd);
1380 #define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_neon
1381
1382 void av1_inv_txfm2d_add_16x4_c(const int32_t* input,
1383 uint16_t* output,
1384 int stride,
1385 TX_TYPE tx_type,
1386 int bd);
1387 void av1_inv_txfm2d_add_16x4_neon(const int32_t* input,
1388 uint16_t* output,
1389 int stride,
1390 TX_TYPE tx_type,
1391 int bd);
1392 #define av1_inv_txfm2d_add_16x4 av1_inv_txfm2d_add_16x4_neon
1393
1394 void av1_inv_txfm2d_add_16x64_c(const int32_t* input,
1395 uint16_t* output,
1396 int stride,
1397 TX_TYPE tx_type,
1398 int bd);
1399 void av1_inv_txfm2d_add_16x64_neon(const int32_t* input,
1400 uint16_t* output,
1401 int stride,
1402 TX_TYPE tx_type,
1403 int bd);
1404 #define av1_inv_txfm2d_add_16x64 av1_inv_txfm2d_add_16x64_neon
1405
1406 void av1_inv_txfm2d_add_16x8_c(const int32_t* input,
1407 uint16_t* output,
1408 int stride,
1409 TX_TYPE tx_type,
1410 int bd);
1411 void av1_inv_txfm2d_add_16x8_neon(const int32_t* input,
1412 uint16_t* output,
1413 int stride,
1414 TX_TYPE tx_type,
1415 int bd);
1416 #define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_neon
1417
1418 void av1_inv_txfm2d_add_32x16_c(const int32_t* input,
1419 uint16_t* output,
1420 int stride,
1421 TX_TYPE tx_type,
1422 int bd);
1423 void av1_inv_txfm2d_add_32x16_neon(const int32_t* input,
1424 uint16_t* output,
1425 int stride,
1426 TX_TYPE tx_type,
1427 int bd);
1428 #define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_neon
1429
1430 void av1_inv_txfm2d_add_32x32_c(const int32_t* input,
1431 uint16_t* output,
1432 int stride,
1433 TX_TYPE tx_type,
1434 int bd);
1435 void av1_inv_txfm2d_add_32x32_neon(const int32_t* input,
1436 uint16_t* output,
1437 int stride,
1438 TX_TYPE tx_type,
1439 int bd);
1440 #define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_neon
1441
1442 void av1_inv_txfm2d_add_32x64_c(const int32_t* input,
1443 uint16_t* output,
1444 int stride,
1445 TX_TYPE tx_type,
1446 int bd);
1447 void av1_inv_txfm2d_add_32x64_neon(const int32_t* input,
1448 uint16_t* output,
1449 int stride,
1450 TX_TYPE tx_type,
1451 int bd);
1452 #define av1_inv_txfm2d_add_32x64 av1_inv_txfm2d_add_32x64_neon
1453
1454 void av1_inv_txfm2d_add_32x8_c(const int32_t* input,
1455 uint16_t* output,
1456 int stride,
1457 TX_TYPE tx_type,
1458 int bd);
1459 void av1_inv_txfm2d_add_32x8_neon(const int32_t* input,
1460 uint16_t* output,
1461 int stride,
1462 TX_TYPE tx_type,
1463 int bd);
1464 #define av1_inv_txfm2d_add_32x8 av1_inv_txfm2d_add_32x8_neon
1465
1466 void av1_inv_txfm2d_add_4x16_c(const int32_t* input,
1467 uint16_t* output,
1468 int stride,
1469 TX_TYPE tx_type,
1470 int bd);
1471 void av1_inv_txfm2d_add_4x16_neon(const int32_t* input,
1472 uint16_t* output,
1473 int stride,
1474 TX_TYPE tx_type,
1475 int bd);
1476 #define av1_inv_txfm2d_add_4x16 av1_inv_txfm2d_add_4x16_neon
1477
1478 void av1_inv_txfm2d_add_4x4_c(const int32_t* input,
1479 uint16_t* output,
1480 int stride,
1481 TX_TYPE tx_type,
1482 int bd);
1483 void av1_inv_txfm2d_add_4x4_neon(const int32_t* input,
1484 uint16_t* output,
1485 int stride,
1486 TX_TYPE tx_type,
1487 int bd);
1488 #define av1_inv_txfm2d_add_4x4 av1_inv_txfm2d_add_4x4_neon
1489
1490 void av1_inv_txfm2d_add_4x8_c(const int32_t* input,
1491 uint16_t* output,
1492 int stride,
1493 TX_TYPE tx_type,
1494 int bd);
1495 void av1_inv_txfm2d_add_4x8_neon(const int32_t* input,
1496 uint16_t* output,
1497 int stride,
1498 TX_TYPE tx_type,
1499 int bd);
1500 #define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_neon
1501
1502 void av1_inv_txfm2d_add_64x16_c(const int32_t* input,
1503 uint16_t* output,
1504 int stride,
1505 TX_TYPE tx_type,
1506 int bd);
1507 void av1_inv_txfm2d_add_64x16_neon(const int32_t* input,
1508 uint16_t* output,
1509 int stride,
1510 TX_TYPE tx_type,
1511 int bd);
1512 #define av1_inv_txfm2d_add_64x16 av1_inv_txfm2d_add_64x16_neon
1513
1514 void av1_inv_txfm2d_add_64x32_c(const int32_t* input,
1515 uint16_t* output,
1516 int stride,
1517 TX_TYPE tx_type,
1518 int bd);
1519 void av1_inv_txfm2d_add_64x32_neon(const int32_t* input,
1520 uint16_t* output,
1521 int stride,
1522 TX_TYPE tx_type,
1523 int bd);
1524 #define av1_inv_txfm2d_add_64x32 av1_inv_txfm2d_add_64x32_neon
1525
1526 void av1_inv_txfm2d_add_64x64_c(const int32_t* input,
1527 uint16_t* output,
1528 int stride,
1529 TX_TYPE tx_type,
1530 int bd);
1531 void av1_inv_txfm2d_add_64x64_neon(const int32_t* input,
1532 uint16_t* output,
1533 int stride,
1534 TX_TYPE tx_type,
1535 int bd);
1536 #define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_neon
1537
1538 void av1_inv_txfm2d_add_8x16_c(const int32_t* input,
1539 uint16_t* output,
1540 int stride,
1541 TX_TYPE tx_type,
1542 int bd);
1543 void av1_inv_txfm2d_add_8x16_neon(const int32_t* input,
1544 uint16_t* output,
1545 int stride,
1546 TX_TYPE tx_type,
1547 int bd);
1548 #define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_neon
1549
1550 void av1_inv_txfm2d_add_8x32_c(const int32_t* input,
1551 uint16_t* output,
1552 int stride,
1553 TX_TYPE tx_type,
1554 int bd);
1555 void av1_inv_txfm2d_add_8x32_neon(const int32_t* input,
1556 uint16_t* output,
1557 int stride,
1558 TX_TYPE tx_type,
1559 int bd);
1560 #define av1_inv_txfm2d_add_8x32 av1_inv_txfm2d_add_8x32_neon
1561
1562 void av1_inv_txfm2d_add_8x4_c(const int32_t* input,
1563 uint16_t* output,
1564 int stride,
1565 TX_TYPE tx_type,
1566 int bd);
1567 void av1_inv_txfm2d_add_8x4_neon(const int32_t* input,
1568 uint16_t* output,
1569 int stride,
1570 TX_TYPE tx_type,
1571 int bd);
1572 #define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_neon
1573
1574 void av1_inv_txfm2d_add_8x8_c(const int32_t* input,
1575 uint16_t* output,
1576 int stride,
1577 TX_TYPE tx_type,
1578 int bd);
1579 void av1_inv_txfm2d_add_8x8_neon(const int32_t* input,
1580 uint16_t* output,
1581 int stride,
1582 TX_TYPE tx_type,
1583 int bd);
1584 #define av1_inv_txfm2d_add_8x8 av1_inv_txfm2d_add_8x8_neon
1585
1586 void av1_inv_txfm_add_c(const tran_low_t* dqcoeff,
1587 uint8_t* dst,
1588 int stride,
1589 const TxfmParam* txfm_param);
1590 void av1_inv_txfm_add_neon(const tran_low_t* dqcoeff,
1591 uint8_t* dst,
1592 int stride,
1593 const TxfmParam* txfm_param);
1594 #define av1_inv_txfm_add av1_inv_txfm_add_neon
1595
1596 void av1_lowbd_fwd_txfm_c(const int16_t* src_diff,
1597 tran_low_t* coeff,
1598 int diff_stride,
1599 TxfmParam* txfm_param);
1600 void av1_lowbd_fwd_txfm_neon(const int16_t* src_diff,
1601 tran_low_t* coeff,
1602 int diff_stride,
1603 TxfmParam* txfm_param);
1604 #define av1_lowbd_fwd_txfm av1_lowbd_fwd_txfm_neon
1605
1606 int64_t av1_lowbd_pixel_proj_error_c(const uint8_t* src8,
1607 int width,
1608 int height,
1609 int src_stride,
1610 const uint8_t* dat8,
1611 int dat_stride,
1612 int32_t* flt0,
1613 int flt0_stride,
1614 int32_t* flt1,
1615 int flt1_stride,
1616 int xq[2],
1617 const sgr_params_type* params);
1618 int64_t av1_lowbd_pixel_proj_error_neon(const uint8_t* src8,
1619 int width,
1620 int height,
1621 int src_stride,
1622 const uint8_t* dat8,
1623 int dat_stride,
1624 int32_t* flt0,
1625 int flt0_stride,
1626 int32_t* flt1,
1627 int flt1_stride,
1628 int xq[2],
1629 const sgr_params_type* params);
1630 #define av1_lowbd_pixel_proj_error av1_lowbd_pixel_proj_error_neon
1631
1632 void av1_nn_predict_c(const float* input_nodes,
1633 const NN_CONFIG* const nn_config,
1634 int reduce_prec,
1635 float* const output);
1636 void av1_nn_predict_neon(const float* input_nodes,
1637 const NN_CONFIG* const nn_config,
1638 int reduce_prec,
1639 float* const output);
1640 #define av1_nn_predict av1_nn_predict_neon
1641
1642 void av1_quantize_b_c(const tran_low_t* coeff_ptr,
1643 intptr_t n_coeffs,
1644 const int16_t* zbin_ptr,
1645 const int16_t* round_ptr,
1646 const int16_t* quant_ptr,
1647 const int16_t* quant_shift_ptr,
1648 tran_low_t* qcoeff_ptr,
1649 tran_low_t* dqcoeff_ptr,
1650 const int16_t* dequant_ptr,
1651 uint16_t* eob_ptr,
1652 const int16_t* scan,
1653 const int16_t* iscan,
1654 const qm_val_t* qm_ptr,
1655 const qm_val_t* iqm_ptr,
1656 int log_scale);
1657 #define av1_quantize_b av1_quantize_b_c
1658
1659 void av1_quantize_fp_c(const tran_low_t* coeff_ptr,
1660 intptr_t n_coeffs,
1661 const int16_t* zbin_ptr,
1662 const int16_t* round_ptr,
1663 const int16_t* quant_ptr,
1664 const int16_t* quant_shift_ptr,
1665 tran_low_t* qcoeff_ptr,
1666 tran_low_t* dqcoeff_ptr,
1667 const int16_t* dequant_ptr,
1668 uint16_t* eob_ptr,
1669 const int16_t* scan,
1670 const int16_t* iscan);
1671 void av1_quantize_fp_neon(const tran_low_t* coeff_ptr,
1672 intptr_t n_coeffs,
1673 const int16_t* zbin_ptr,
1674 const int16_t* round_ptr,
1675 const int16_t* quant_ptr,
1676 const int16_t* quant_shift_ptr,
1677 tran_low_t* qcoeff_ptr,
1678 tran_low_t* dqcoeff_ptr,
1679 const int16_t* dequant_ptr,
1680 uint16_t* eob_ptr,
1681 const int16_t* scan,
1682 const int16_t* iscan);
1683 #define av1_quantize_fp av1_quantize_fp_neon
1684
1685 void av1_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
1686 intptr_t n_coeffs,
1687 const int16_t* zbin_ptr,
1688 const int16_t* round_ptr,
1689 const int16_t* quant_ptr,
1690 const int16_t* quant_shift_ptr,
1691 tran_low_t* qcoeff_ptr,
1692 tran_low_t* dqcoeff_ptr,
1693 const int16_t* dequant_ptr,
1694 uint16_t* eob_ptr,
1695 const int16_t* scan,
1696 const int16_t* iscan);
1697 void av1_quantize_fp_32x32_neon(const tran_low_t* coeff_ptr,
1698 intptr_t n_coeffs,
1699 const int16_t* zbin_ptr,
1700 const int16_t* round_ptr,
1701 const int16_t* quant_ptr,
1702 const int16_t* quant_shift_ptr,
1703 tran_low_t* qcoeff_ptr,
1704 tran_low_t* dqcoeff_ptr,
1705 const int16_t* dequant_ptr,
1706 uint16_t* eob_ptr,
1707 const int16_t* scan,
1708 const int16_t* iscan);
1709 #define av1_quantize_fp_32x32 av1_quantize_fp_32x32_neon
1710
1711 void av1_quantize_fp_64x64_c(const tran_low_t* coeff_ptr,
1712 intptr_t n_coeffs,
1713 const int16_t* zbin_ptr,
1714 const int16_t* round_ptr,
1715 const int16_t* quant_ptr,
1716 const int16_t* quant_shift_ptr,
1717 tran_low_t* qcoeff_ptr,
1718 tran_low_t* dqcoeff_ptr,
1719 const int16_t* dequant_ptr,
1720 uint16_t* eob_ptr,
1721 const int16_t* scan,
1722 const int16_t* iscan);
1723 void av1_quantize_fp_64x64_neon(const tran_low_t* coeff_ptr,
1724 intptr_t n_coeffs,
1725 const int16_t* zbin_ptr,
1726 const int16_t* round_ptr,
1727 const int16_t* quant_ptr,
1728 const int16_t* quant_shift_ptr,
1729 tran_low_t* qcoeff_ptr,
1730 tran_low_t* dqcoeff_ptr,
1731 const int16_t* dequant_ptr,
1732 uint16_t* eob_ptr,
1733 const int16_t* scan,
1734 const int16_t* iscan);
1735 #define av1_quantize_fp_64x64 av1_quantize_fp_64x64_neon
1736
1737 void av1_quantize_lp_c(const int16_t* coeff_ptr,
1738 intptr_t n_coeffs,
1739 const int16_t* round_ptr,
1740 const int16_t* quant_ptr,
1741 int16_t* qcoeff_ptr,
1742 int16_t* dqcoeff_ptr,
1743 const int16_t* dequant_ptr,
1744 uint16_t* eob_ptr,
1745 const int16_t* scan);
1746 void av1_quantize_lp_neon(const int16_t* coeff_ptr,
1747 intptr_t n_coeffs,
1748 const int16_t* round_ptr,
1749 const int16_t* quant_ptr,
1750 int16_t* qcoeff_ptr,
1751 int16_t* dqcoeff_ptr,
1752 const int16_t* dequant_ptr,
1753 uint16_t* eob_ptr,
1754 const int16_t* scan);
1755 #define av1_quantize_lp av1_quantize_lp_neon
1756
1757 void av1_resize_and_extend_frame_c(const YV12_BUFFER_CONFIG* src,
1758 YV12_BUFFER_CONFIG* dst,
1759 const InterpFilter filter,
1760 const int phase,
1761 const int num_planes);
1762 void av1_resize_and_extend_frame_neon(const YV12_BUFFER_CONFIG* src,
1763 YV12_BUFFER_CONFIG* dst,
1764 const InterpFilter filter,
1765 const int phase,
1766 const int num_planes);
1767 #define av1_resize_and_extend_frame av1_resize_and_extend_frame_neon
1768
1769 void av1_round_shift_array_c(int32_t* arr, int size, int bit);
1770 void av1_round_shift_array_neon(int32_t* arr, int size, int bit);
1771 #define av1_round_shift_array av1_round_shift_array_neon
1772
1773 int av1_selfguided_restoration_c(const uint8_t* dgd8,
1774 int width,
1775 int height,
1776 int dgd_stride,
1777 int32_t* flt0,
1778 int32_t* flt1,
1779 int flt_stride,
1780 int sgr_params_idx,
1781 int bit_depth,
1782 int highbd);
1783 int av1_selfguided_restoration_neon(const uint8_t* dgd8,
1784 int width,
1785 int height,
1786 int dgd_stride,
1787 int32_t* flt0,
1788 int32_t* flt1,
1789 int flt_stride,
1790 int sgr_params_idx,
1791 int bit_depth,
1792 int highbd);
1793 #define av1_selfguided_restoration av1_selfguided_restoration_neon
1794
1795 void av1_txb_init_levels_c(const tran_low_t* const coeff,
1796 const int width,
1797 const int height,
1798 uint8_t* const levels);
1799 void av1_txb_init_levels_neon(const tran_low_t* const coeff,
1800 const int width,
1801 const int height,
1802 uint8_t* const levels);
1803 #define av1_txb_init_levels av1_txb_init_levels_neon
1804
1805 void av1_upsample_intra_edge_c(uint8_t* p, int sz);
1806 #define av1_upsample_intra_edge av1_upsample_intra_edge_c
1807
1808 void av1_upsample_intra_edge_high_c(uint16_t* p, int sz, int bd);
1809 #define av1_upsample_intra_edge_high av1_upsample_intra_edge_high_c
1810
1811 void av1_warp_affine_c(const int32_t* mat,
1812 const uint8_t* ref,
1813 int width,
1814 int height,
1815 int stride,
1816 uint8_t* pred,
1817 int p_col,
1818 int p_row,
1819 int p_width,
1820 int p_height,
1821 int p_stride,
1822 int subsampling_x,
1823 int subsampling_y,
1824 ConvolveParams* conv_params,
1825 int16_t alpha,
1826 int16_t beta,
1827 int16_t gamma,
1828 int16_t delta);
1829 void av1_warp_affine_neon(const int32_t* mat,
1830 const uint8_t* ref,
1831 int width,
1832 int height,
1833 int stride,
1834 uint8_t* pred,
1835 int p_col,
1836 int p_row,
1837 int p_width,
1838 int p_height,
1839 int p_stride,
1840 int subsampling_x,
1841 int subsampling_y,
1842 ConvolveParams* conv_params,
1843 int16_t alpha,
1844 int16_t beta,
1845 int16_t gamma,
1846 int16_t delta);
1847 #define av1_warp_affine av1_warp_affine_neon
1848
1849 void av1_wedge_compute_delta_squares_c(int16_t* d,
1850 const int16_t* a,
1851 const int16_t* b,
1852 int N);
1853 #define av1_wedge_compute_delta_squares av1_wedge_compute_delta_squares_c
1854
1855 int8_t av1_wedge_sign_from_residuals_c(const int16_t* ds,
1856 const uint8_t* m,
1857 int N,
1858 int64_t limit);
1859 #define av1_wedge_sign_from_residuals av1_wedge_sign_from_residuals_c
1860
1861 uint64_t av1_wedge_sse_from_residuals_c(const int16_t* r1,
1862 const int16_t* d,
1863 const uint8_t* m,
1864 int N);
1865 #define av1_wedge_sse_from_residuals av1_wedge_sse_from_residuals_c
1866
1867 void av1_wiener_convolve_add_src_c(const uint8_t* src,
1868 ptrdiff_t src_stride,
1869 uint8_t* dst,
1870 ptrdiff_t dst_stride,
1871 const int16_t* filter_x,
1872 int x_step_q4,
1873 const int16_t* filter_y,
1874 int y_step_q4,
1875 int w,
1876 int h,
1877 const ConvolveParams* conv_params);
1878 void av1_wiener_convolve_add_src_neon(const uint8_t* src,
1879 ptrdiff_t src_stride,
1880 uint8_t* dst,
1881 ptrdiff_t dst_stride,
1882 const int16_t* filter_x,
1883 int x_step_q4,
1884 const int16_t* filter_y,
1885 int y_step_q4,
1886 int w,
1887 int h,
1888 const ConvolveParams* conv_params);
1889 #define av1_wiener_convolve_add_src av1_wiener_convolve_add_src_neon
1890
1891 void cdef_copy_rect8_16bit_to_16bit_c(uint16_t* dst,
1892 int dstride,
1893 const uint16_t* src,
1894 int sstride,
1895 int v,
1896 int h);
1897 void cdef_copy_rect8_16bit_to_16bit_neon(uint16_t* dst,
1898 int dstride,
1899 const uint16_t* src,
1900 int sstride,
1901 int v,
1902 int h);
1903 #define cdef_copy_rect8_16bit_to_16bit cdef_copy_rect8_16bit_to_16bit_neon
1904
1905 void cdef_copy_rect8_8bit_to_16bit_c(uint16_t* dst,
1906 int dstride,
1907 const uint8_t* src,
1908 int sstride,
1909 int v,
1910 int h);
1911 void cdef_copy_rect8_8bit_to_16bit_neon(uint16_t* dst,
1912 int dstride,
1913 const uint8_t* src,
1914 int sstride,
1915 int v,
1916 int h);
1917 #define cdef_copy_rect8_8bit_to_16bit cdef_copy_rect8_8bit_to_16bit_neon
1918
1919 void cdef_filter_block_c(uint8_t* dst8,
1920 uint16_t* dst16,
1921 int dstride,
1922 const uint16_t* in,
1923 int pri_strength,
1924 int sec_strength,
1925 int dir,
1926 int pri_damping,
1927 int sec_damping,
1928 int bsize,
1929 int coeff_shift);
1930 void cdef_filter_block_neon(uint8_t* dst8,
1931 uint16_t* dst16,
1932 int dstride,
1933 const uint16_t* in,
1934 int pri_strength,
1935 int sec_strength,
1936 int dir,
1937 int pri_damping,
1938 int sec_damping,
1939 int bsize,
1940 int coeff_shift);
1941 #define cdef_filter_block cdef_filter_block_neon
1942
1943 int cdef_find_dir_c(const uint16_t* img,
1944 int stride,
1945 int32_t* var,
1946 int coeff_shift);
1947 int cdef_find_dir_neon(const uint16_t* img,
1948 int stride,
1949 int32_t* var,
1950 int coeff_shift);
1951 #define cdef_find_dir cdef_find_dir_neon
1952
1953 cfl_subsample_hbd_fn cfl_get_luma_subsampling_420_hbd_c(TX_SIZE tx_size);
1954 cfl_subsample_hbd_fn cfl_get_luma_subsampling_420_hbd_neon(TX_SIZE tx_size);
1955 #define cfl_get_luma_subsampling_420_hbd cfl_get_luma_subsampling_420_hbd_neon
1956
1957 cfl_subsample_lbd_fn cfl_get_luma_subsampling_420_lbd_c(TX_SIZE tx_size);
1958 cfl_subsample_lbd_fn cfl_get_luma_subsampling_420_lbd_neon(TX_SIZE tx_size);
1959 #define cfl_get_luma_subsampling_420_lbd cfl_get_luma_subsampling_420_lbd_neon
1960
1961 cfl_subsample_hbd_fn cfl_get_luma_subsampling_422_hbd_c(TX_SIZE tx_size);
1962 cfl_subsample_hbd_fn cfl_get_luma_subsampling_422_hbd_neon(TX_SIZE tx_size);
1963 #define cfl_get_luma_subsampling_422_hbd cfl_get_luma_subsampling_422_hbd_neon
1964
1965 cfl_subsample_lbd_fn cfl_get_luma_subsampling_422_lbd_c(TX_SIZE tx_size);
1966 cfl_subsample_lbd_fn cfl_get_luma_subsampling_422_lbd_neon(TX_SIZE tx_size);
1967 #define cfl_get_luma_subsampling_422_lbd cfl_get_luma_subsampling_422_lbd_neon
1968
1969 cfl_subsample_hbd_fn cfl_get_luma_subsampling_444_hbd_c(TX_SIZE tx_size);
1970 cfl_subsample_hbd_fn cfl_get_luma_subsampling_444_hbd_neon(TX_SIZE tx_size);
1971 #define cfl_get_luma_subsampling_444_hbd cfl_get_luma_subsampling_444_hbd_neon
1972
1973 cfl_subsample_lbd_fn cfl_get_luma_subsampling_444_lbd_c(TX_SIZE tx_size);
1974 cfl_subsample_lbd_fn cfl_get_luma_subsampling_444_lbd_neon(TX_SIZE tx_size);
1975 #define cfl_get_luma_subsampling_444_lbd cfl_get_luma_subsampling_444_lbd_neon
1976
1977 cfl_predict_hbd_fn cfl_get_predict_hbd_fn_c(TX_SIZE tx_size);
1978 cfl_predict_hbd_fn cfl_get_predict_hbd_fn_neon(TX_SIZE tx_size);
1979 #define cfl_get_predict_hbd_fn cfl_get_predict_hbd_fn_neon
1980
1981 cfl_predict_lbd_fn cfl_get_predict_lbd_fn_c(TX_SIZE tx_size);
1982 cfl_predict_lbd_fn cfl_get_predict_lbd_fn_neon(TX_SIZE tx_size);
1983 #define cfl_get_predict_lbd_fn cfl_get_predict_lbd_fn_neon
1984
1985 cfl_subtract_average_fn cfl_get_subtract_average_fn_c(TX_SIZE tx_size);
1986 cfl_subtract_average_fn cfl_get_subtract_average_fn_neon(TX_SIZE tx_size);
1987 #define cfl_get_subtract_average_fn cfl_get_subtract_average_fn_neon
1988
1989 void av1_rtcd(void);
1990
1991 #include "config/aom_config.h"
1992
1993 #ifdef RTCD_C
1994 #include "aom_ports/arm.h"
setup_rtcd_internal(void)1995 static void setup_rtcd_internal(void) {
1996 int flags = aom_arm_cpu_caps();
1997
1998 (void)flags;
1999 }
2000 #endif
2001
2002 #ifdef __cplusplus
2003 } // extern "C"
2004 #endif
2005
2006 #endif
2007