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 av1_apply_selfguided_restoration_c(const uint8_t* dat,
86                                         int width,
87                                         int height,
88                                         int stride,
89                                         int eps,
90                                         const int* xqd,
91                                         uint8_t* dst,
92                                         int dst_stride,
93                                         int32_t* tmpbuf,
94                                         int bit_depth,
95                                         int highbd);
96 #define av1_apply_selfguided_restoration av1_apply_selfguided_restoration_c
97 
98 void av1_apply_temporal_filter_planewise_c(
99     const struct yv12_buffer_config* ref_frame,
100     const struct macroblockd* mbd,
101     const BLOCK_SIZE block_size,
102     const int mb_row,
103     const int mb_col,
104     const int num_planes,
105     const double* noise_levels,
106     const uint8_t* pred,
107     uint32_t* accum,
108     uint16_t* count);
109 #define av1_apply_temporal_filter_planewise \
110   av1_apply_temporal_filter_planewise_c
111 
112 void av1_apply_temporal_filter_yuv_c(const struct yv12_buffer_config* ref_frame,
113                                      const struct macroblockd* mbd,
114                                      const BLOCK_SIZE block_size,
115                                      const int mb_row,
116                                      const int mb_col,
117                                      const int num_planes,
118                                      const int strength,
119                                      const int use_subblock,
120                                      const int* subblock_filter_weights,
121                                      const uint8_t* pred,
122                                      uint32_t* accum,
123                                      uint16_t* count);
124 #define av1_apply_temporal_filter_yuv av1_apply_temporal_filter_yuv_c
125 
126 int64_t av1_block_error_c(const tran_low_t* coeff,
127                           const tran_low_t* dqcoeff,
128                           intptr_t block_size,
129                           int64_t* ssz);
130 #define av1_block_error av1_block_error_c
131 
132 int64_t av1_block_error_lp_c(const int16_t* coeff,
133                              const int16_t* dqcoeff,
134                              intptr_t block_size);
135 #define av1_block_error_lp av1_block_error_lp_c
136 
137 void av1_build_compound_diffwtd_mask_c(uint8_t* mask,
138                                        DIFFWTD_MASK_TYPE mask_type,
139                                        const uint8_t* src0,
140                                        int src0_stride,
141                                        const uint8_t* src1,
142                                        int src1_stride,
143                                        int h,
144                                        int w);
145 #define av1_build_compound_diffwtd_mask av1_build_compound_diffwtd_mask_c
146 
147 void av1_build_compound_diffwtd_mask_d16_c(uint8_t* mask,
148                                            DIFFWTD_MASK_TYPE mask_type,
149                                            const CONV_BUF_TYPE* src0,
150                                            int src0_stride,
151                                            const CONV_BUF_TYPE* src1,
152                                            int src1_stride,
153                                            int h,
154                                            int w,
155                                            ConvolveParams* conv_params,
156                                            int bd);
157 #define av1_build_compound_diffwtd_mask_d16 \
158   av1_build_compound_diffwtd_mask_d16_c
159 
160 void av1_build_compound_diffwtd_mask_highbd_c(uint8_t* mask,
161                                               DIFFWTD_MASK_TYPE mask_type,
162                                               const uint8_t* src0,
163                                               int src0_stride,
164                                               const uint8_t* src1,
165                                               int src1_stride,
166                                               int h,
167                                               int w,
168                                               int bd);
169 #define av1_build_compound_diffwtd_mask_highbd \
170   av1_build_compound_diffwtd_mask_highbd_c
171 
172 int64_t av1_calc_frame_error_c(const uint8_t* const ref,
173                                int stride,
174                                const uint8_t* const dst,
175                                int p_width,
176                                int p_height,
177                                int p_stride);
178 #define av1_calc_frame_error av1_calc_frame_error_c
179 
180 void av1_calc_proj_params_c(const uint8_t* src8,
181                             int width,
182                             int height,
183                             int src_stride,
184                             const uint8_t* dat8,
185                             int dat_stride,
186                             int32_t* flt0,
187                             int flt0_stride,
188                             int32_t* flt1,
189                             int flt1_stride,
190                             int64_t H[2][2],
191                             int64_t C[2],
192                             const sgr_params_type* params);
193 #define av1_calc_proj_params av1_calc_proj_params_c
194 
195 void av1_cnn_activate_c(float** input,
196                         int channels,
197                         int width,
198                         int height,
199                         int stride,
200                         ACTIVATION layer_activation);
201 #define av1_cnn_activate av1_cnn_activate_c
202 
203 void av1_cnn_add_c(float** input,
204                    int channels,
205                    int width,
206                    int height,
207                    int stride,
208                    const float** add);
209 #define av1_cnn_add av1_cnn_add_c
210 
211 void av1_cnn_batchnorm_c(float** image,
212                          int channels,
213                          int width,
214                          int height,
215                          int stride,
216                          const float* gamma,
217                          const float* beta,
218                          const float* mean,
219                          const float* std);
220 #define av1_cnn_batchnorm av1_cnn_batchnorm_c
221 
222 void av1_cnn_convolve_c(const float** input,
223                         int in_width,
224                         int in_height,
225                         int in_stride,
226                         const CNN_LAYER_CONFIG* layer_config,
227                         float** output,
228                         int out_stride,
229                         int start_idx,
230                         int step);
231 #define av1_cnn_convolve av1_cnn_convolve_c
232 
233 void av1_cnn_deconvolve_c(const float** input,
234                           int in_width,
235                           int in_height,
236                           int in_stride,
237                           const CNN_LAYER_CONFIG* layer_config,
238                           float** output,
239                           int out_stride);
240 #define av1_cnn_deconvolve av1_cnn_deconvolve_c
241 
242 void av1_cnn_predict_c(const float** input,
243                        int in_width,
244                        int in_height,
245                        int in_stride,
246                        const CNN_CONFIG* cnn_config,
247                        const CNN_THREAD_DATA* thread_data,
248                        CNN_MULTI_OUT* output_struct);
249 #define av1_cnn_predict av1_cnn_predict_c
250 
251 double av1_compute_cross_correlation_c(unsigned char* im1,
252                                        int stride1,
253                                        int x1,
254                                        int y1,
255                                        unsigned char* im2,
256                                        int stride2,
257                                        int x2,
258                                        int y2);
259 #define av1_compute_cross_correlation av1_compute_cross_correlation_c
260 
261 void av1_compute_stats_c(int wiener_win,
262                          const uint8_t* dgd8,
263                          const uint8_t* src8,
264                          int h_start,
265                          int h_end,
266                          int v_start,
267                          int v_end,
268                          int dgd_stride,
269                          int src_stride,
270                          int64_t* M,
271                          int64_t* H);
272 #define av1_compute_stats av1_compute_stats_c
273 
274 void av1_compute_stats_highbd_c(int wiener_win,
275                                 const uint8_t* dgd8,
276                                 const uint8_t* src8,
277                                 int h_start,
278                                 int h_end,
279                                 int v_start,
280                                 int v_end,
281                                 int dgd_stride,
282                                 int src_stride,
283                                 int64_t* M,
284                                 int64_t* H,
285                                 aom_bit_depth_t bit_depth);
286 #define av1_compute_stats_highbd av1_compute_stats_highbd_c
287 
288 void av1_convolve_2d_copy_sr_c(const uint8_t* src,
289                                int src_stride,
290                                uint8_t* dst,
291                                int dst_stride,
292                                int w,
293                                int h,
294                                const InterpFilterParams* filter_params_x,
295                                const InterpFilterParams* filter_params_y,
296                                const int subpel_x_qn,
297                                const int subpel_y_qn,
298                                ConvolveParams* conv_params);
299 #define av1_convolve_2d_copy_sr av1_convolve_2d_copy_sr_c
300 
301 void av1_convolve_2d_scale_c(const uint8_t* src,
302                              int src_stride,
303                              uint8_t* dst,
304                              int dst_stride,
305                              int w,
306                              int h,
307                              const InterpFilterParams* filter_params_x,
308                              const InterpFilterParams* filter_params_y,
309                              const int subpel_x_qn,
310                              const int x_step_qn,
311                              const int subpel_y_qn,
312                              const int y_step_qn,
313                              ConvolveParams* conv_params);
314 #define av1_convolve_2d_scale av1_convolve_2d_scale_c
315 
316 void av1_convolve_2d_sr_c(const uint8_t* src,
317                           int src_stride,
318                           uint8_t* dst,
319                           int dst_stride,
320                           int w,
321                           int h,
322                           const InterpFilterParams* filter_params_x,
323                           const InterpFilterParams* filter_params_y,
324                           const int subpel_x_qn,
325                           const int subpel_y_qn,
326                           ConvolveParams* conv_params);
327 #define av1_convolve_2d_sr av1_convolve_2d_sr_c
328 
329 void av1_convolve_horiz_rs_c(const uint8_t* src,
330                              int src_stride,
331                              uint8_t* dst,
332                              int dst_stride,
333                              int w,
334                              int h,
335                              const int16_t* x_filters,
336                              int x0_qn,
337                              int x_step_qn);
338 #define av1_convolve_horiz_rs av1_convolve_horiz_rs_c
339 
340 void av1_convolve_x_sr_c(const uint8_t* src,
341                          int src_stride,
342                          uint8_t* dst,
343                          int dst_stride,
344                          int w,
345                          int h,
346                          const InterpFilterParams* filter_params_x,
347                          const InterpFilterParams* filter_params_y,
348                          const int subpel_x_qn,
349                          const int subpel_y_qn,
350                          ConvolveParams* conv_params);
351 #define av1_convolve_x_sr av1_convolve_x_sr_c
352 
353 void av1_convolve_y_sr_c(const uint8_t* src,
354                          int src_stride,
355                          uint8_t* dst,
356                          int dst_stride,
357                          int w,
358                          int h,
359                          const InterpFilterParams* filter_params_x,
360                          const InterpFilterParams* filter_params_y,
361                          const int subpel_x_qn,
362                          const int subpel_y_qn,
363                          ConvolveParams* conv_params);
364 #define av1_convolve_y_sr av1_convolve_y_sr_c
365 
366 void av1_dist_wtd_convolve_2d_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 #define av1_dist_wtd_convolve_2d av1_dist_wtd_convolve_2d_c
378 
379 void av1_dist_wtd_convolve_2d_copy_c(const uint8_t* src,
380                                      int src_stride,
381                                      uint8_t* dst,
382                                      int dst_stride,
383                                      int w,
384                                      int h,
385                                      const InterpFilterParams* filter_params_x,
386                                      const InterpFilterParams* filter_params_y,
387                                      const int subpel_x_qn,
388                                      const int subpel_y_qn,
389                                      ConvolveParams* conv_params);
390 #define av1_dist_wtd_convolve_2d_copy av1_dist_wtd_convolve_2d_copy_c
391 
392 void av1_dist_wtd_convolve_x_c(const uint8_t* src,
393                                int src_stride,
394                                uint8_t* dst,
395                                int dst_stride,
396                                int w,
397                                int h,
398                                const InterpFilterParams* filter_params_x,
399                                const InterpFilterParams* filter_params_y,
400                                const int subpel_x_qn,
401                                const int subpel_y_qn,
402                                ConvolveParams* conv_params);
403 #define av1_dist_wtd_convolve_x av1_dist_wtd_convolve_x_c
404 
405 void av1_dist_wtd_convolve_y_c(const uint8_t* src,
406                                int src_stride,
407                                uint8_t* dst,
408                                int dst_stride,
409                                int w,
410                                int h,
411                                const InterpFilterParams* filter_params_x,
412                                const InterpFilterParams* filter_params_y,
413                                const int subpel_x_qn,
414                                const int subpel_y_qn,
415                                ConvolveParams* conv_params);
416 #define av1_dist_wtd_convolve_y av1_dist_wtd_convolve_y_c
417 
418 void av1_dr_prediction_z1_c(uint8_t* dst,
419                             ptrdiff_t stride,
420                             int bw,
421                             int bh,
422                             const uint8_t* above,
423                             const uint8_t* left,
424                             int upsample_above,
425                             int dx,
426                             int dy);
427 #define av1_dr_prediction_z1 av1_dr_prediction_z1_c
428 
429 void av1_dr_prediction_z2_c(uint8_t* dst,
430                             ptrdiff_t stride,
431                             int bw,
432                             int bh,
433                             const uint8_t* above,
434                             const uint8_t* left,
435                             int upsample_above,
436                             int upsample_left,
437                             int dx,
438                             int dy);
439 #define av1_dr_prediction_z2 av1_dr_prediction_z2_c
440 
441 void av1_dr_prediction_z3_c(uint8_t* dst,
442                             ptrdiff_t stride,
443                             int bw,
444                             int bh,
445                             const uint8_t* above,
446                             const uint8_t* left,
447                             int upsample_left,
448                             int dx,
449                             int dy);
450 #define av1_dr_prediction_z3 av1_dr_prediction_z3_c
451 
452 void av1_filter_intra_edge_c(uint8_t* p, int sz, int strength);
453 #define av1_filter_intra_edge av1_filter_intra_edge_c
454 
455 void av1_filter_intra_edge_high_c(uint16_t* p, int sz, int strength);
456 #define av1_filter_intra_edge_high av1_filter_intra_edge_high_c
457 
458 void av1_filter_intra_predictor_c(uint8_t* dst,
459                                   ptrdiff_t stride,
460                                   TX_SIZE tx_size,
461                                   const uint8_t* above,
462                                   const uint8_t* left,
463                                   int mode);
464 #define av1_filter_intra_predictor av1_filter_intra_predictor_c
465 
466 int av1_full_range_search_c(const struct macroblock* x,
467                             const struct search_site_config* cfg,
468                             MV* ref_mv,
469                             MV* best_mv,
470                             int search_param,
471                             int sad_per_bit,
472                             int* num00,
473                             const struct aom_variance_vtable* fn_ptr,
474                             const MV* center_mv);
475 #define av1_full_range_search av1_full_range_search_c
476 
477 void av1_fwd_txfm2d_16x16_c(const int16_t* input,
478                             int32_t* output,
479                             int stride,
480                             TX_TYPE tx_type,
481                             int bd);
482 #define av1_fwd_txfm2d_16x16 av1_fwd_txfm2d_16x16_c
483 
484 void av1_fwd_txfm2d_16x32_c(const int16_t* input,
485                             int32_t* output,
486                             int stride,
487                             TX_TYPE tx_type,
488                             int bd);
489 #define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
490 
491 void av1_fwd_txfm2d_16x4_c(const int16_t* input,
492                            int32_t* output,
493                            int stride,
494                            TX_TYPE tx_type,
495                            int bd);
496 #define av1_fwd_txfm2d_16x4 av1_fwd_txfm2d_16x4_c
497 
498 void av1_fwd_txfm2d_16x64_c(const int16_t* input,
499                             int32_t* output,
500                             int stride,
501                             TX_TYPE tx_type,
502                             int bd);
503 #define av1_fwd_txfm2d_16x64 av1_fwd_txfm2d_16x64_c
504 
505 void av1_fwd_txfm2d_16x8_c(const int16_t* input,
506                            int32_t* output,
507                            int stride,
508                            TX_TYPE tx_type,
509                            int bd);
510 #define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
511 
512 void av1_fwd_txfm2d_32x16_c(const int16_t* input,
513                             int32_t* output,
514                             int stride,
515                             TX_TYPE tx_type,
516                             int bd);
517 #define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
518 
519 void av1_fwd_txfm2d_32x32_c(const int16_t* input,
520                             int32_t* output,
521                             int stride,
522                             TX_TYPE tx_type,
523                             int bd);
524 #define av1_fwd_txfm2d_32x32 av1_fwd_txfm2d_32x32_c
525 
526 void av1_fwd_txfm2d_32x64_c(const int16_t* input,
527                             int32_t* output,
528                             int stride,
529                             TX_TYPE tx_type,
530                             int bd);
531 #define av1_fwd_txfm2d_32x64 av1_fwd_txfm2d_32x64_c
532 
533 void av1_fwd_txfm2d_32x8_c(const int16_t* input,
534                            int32_t* output,
535                            int stride,
536                            TX_TYPE tx_type,
537                            int bd);
538 #define av1_fwd_txfm2d_32x8 av1_fwd_txfm2d_32x8_c
539 
540 void av1_fwd_txfm2d_4x16_c(const int16_t* input,
541                            int32_t* output,
542                            int stride,
543                            TX_TYPE tx_type,
544                            int bd);
545 #define av1_fwd_txfm2d_4x16 av1_fwd_txfm2d_4x16_c
546 
547 void av1_fwd_txfm2d_4x4_c(const int16_t* input,
548                           int32_t* output,
549                           int stride,
550                           TX_TYPE tx_type,
551                           int bd);
552 #define av1_fwd_txfm2d_4x4 av1_fwd_txfm2d_4x4_c
553 
554 void av1_fwd_txfm2d_4x8_c(const int16_t* input,
555                           int32_t* output,
556                           int stride,
557                           TX_TYPE tx_type,
558                           int bd);
559 #define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
560 
561 void av1_fwd_txfm2d_64x16_c(const int16_t* input,
562                             int32_t* output,
563                             int stride,
564                             TX_TYPE tx_type,
565                             int bd);
566 #define av1_fwd_txfm2d_64x16 av1_fwd_txfm2d_64x16_c
567 
568 void av1_fwd_txfm2d_64x32_c(const int16_t* input,
569                             int32_t* output,
570                             int stride,
571                             TX_TYPE tx_type,
572                             int bd);
573 #define av1_fwd_txfm2d_64x32 av1_fwd_txfm2d_64x32_c
574 
575 void av1_fwd_txfm2d_64x64_c(const int16_t* input,
576                             int32_t* output,
577                             int stride,
578                             TX_TYPE tx_type,
579                             int bd);
580 #define av1_fwd_txfm2d_64x64 av1_fwd_txfm2d_64x64_c
581 
582 void av1_fwd_txfm2d_8x16_c(const int16_t* input,
583                            int32_t* output,
584                            int stride,
585                            TX_TYPE tx_type,
586                            int bd);
587 #define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
588 
589 void av1_fwd_txfm2d_8x32_c(const int16_t* input,
590                            int32_t* output,
591                            int stride,
592                            TX_TYPE tx_type,
593                            int bd);
594 #define av1_fwd_txfm2d_8x32 av1_fwd_txfm2d_8x32_c
595 
596 void av1_fwd_txfm2d_8x4_c(const int16_t* input,
597                           int32_t* output,
598                           int stride,
599                           TX_TYPE tx_type,
600                           int bd);
601 #define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
602 
603 void av1_fwd_txfm2d_8x8_c(const int16_t* input,
604                           int32_t* output,
605                           int stride,
606                           TX_TYPE tx_type,
607                           int bd);
608 #define av1_fwd_txfm2d_8x8 av1_fwd_txfm2d_8x8_c
609 
610 void av1_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
611 #define av1_fwht4x4 av1_fwht4x4_c
612 
613 uint32_t av1_get_crc32c_value_c(void* crc_calculator,
614                                 uint8_t* p,
615                                 size_t length);
616 #define av1_get_crc32c_value av1_get_crc32c_value_c
617 
618 void av1_get_horver_correlation_full_c(const int16_t* diff,
619                                        int stride,
620                                        int w,
621                                        int h,
622                                        float* hcorr,
623                                        float* vcorr);
624 #define av1_get_horver_correlation_full av1_get_horver_correlation_full_c
625 
626 void av1_get_nz_map_contexts_c(const uint8_t* const levels,
627                                const int16_t* const scan,
628                                const uint16_t eob,
629                                const TX_SIZE tx_size,
630                                const TX_CLASS tx_class,
631                                int8_t* const coeff_contexts);
632 #define av1_get_nz_map_contexts av1_get_nz_map_contexts_c
633 
634 int64_t av1_highbd_block_error_c(const tran_low_t* coeff,
635                                  const tran_low_t* dqcoeff,
636                                  intptr_t block_size,
637                                  int64_t* ssz,
638                                  int bd);
639 #define av1_highbd_block_error av1_highbd_block_error_c
640 
641 void av1_highbd_convolve8_c(const uint8_t* src,
642                             ptrdiff_t src_stride,
643                             uint8_t* dst,
644                             ptrdiff_t dst_stride,
645                             const int16_t* filter_x,
646                             int x_step_q4,
647                             const int16_t* filter_y,
648                             int y_step_q4,
649                             int w,
650                             int h,
651                             int bps);
652 #define av1_highbd_convolve8 av1_highbd_convolve8_c
653 
654 void av1_highbd_convolve8_horiz_c(const uint8_t* src,
655                                   ptrdiff_t src_stride,
656                                   uint8_t* dst,
657                                   ptrdiff_t dst_stride,
658                                   const int16_t* filter_x,
659                                   int x_step_q4,
660                                   const int16_t* filter_y,
661                                   int y_step_q4,
662                                   int w,
663                                   int h,
664                                   int bps);
665 #define av1_highbd_convolve8_horiz av1_highbd_convolve8_horiz_c
666 
667 void av1_highbd_convolve8_vert_c(const uint8_t* src,
668                                  ptrdiff_t src_stride,
669                                  uint8_t* dst,
670                                  ptrdiff_t dst_stride,
671                                  const int16_t* filter_x,
672                                  int x_step_q4,
673                                  const int16_t* filter_y,
674                                  int y_step_q4,
675                                  int w,
676                                  int h,
677                                  int bps);
678 #define av1_highbd_convolve8_vert av1_highbd_convolve8_vert_c
679 
680 void av1_highbd_convolve_2d_copy_sr_c(const uint16_t* src,
681                                       int src_stride,
682                                       uint16_t* dst,
683                                       int dst_stride,
684                                       int w,
685                                       int h,
686                                       const InterpFilterParams* filter_params_x,
687                                       const InterpFilterParams* filter_params_y,
688                                       const int subpel_x_qn,
689                                       const int subpel_y_qn,
690                                       ConvolveParams* conv_params,
691                                       int bd);
692 #define av1_highbd_convolve_2d_copy_sr av1_highbd_convolve_2d_copy_sr_c
693 
694 void av1_highbd_convolve_2d_scale_c(const uint16_t* src,
695                                     int src_stride,
696                                     uint16_t* dst,
697                                     int dst_stride,
698                                     int w,
699                                     int h,
700                                     const InterpFilterParams* filter_params_x,
701                                     const InterpFilterParams* filter_params_y,
702                                     const int subpel_x_qn,
703                                     const int x_step_qn,
704                                     const int subpel_y_qn,
705                                     const int y_step_qn,
706                                     ConvolveParams* conv_params,
707                                     int bd);
708 #define av1_highbd_convolve_2d_scale av1_highbd_convolve_2d_scale_c
709 
710 void av1_highbd_convolve_2d_sr_c(const uint16_t* src,
711                                  int src_stride,
712                                  uint16_t* dst,
713                                  int dst_stride,
714                                  int w,
715                                  int h,
716                                  const InterpFilterParams* filter_params_x,
717                                  const InterpFilterParams* filter_params_y,
718                                  const int subpel_x_qn,
719                                  const int subpel_y_qn,
720                                  ConvolveParams* conv_params,
721                                  int bd);
722 #define av1_highbd_convolve_2d_sr av1_highbd_convolve_2d_sr_c
723 
724 void av1_highbd_convolve_avg_c(const uint8_t* src,
725                                ptrdiff_t src_stride,
726                                uint8_t* dst,
727                                ptrdiff_t dst_stride,
728                                const int16_t* filter_x,
729                                int x_step_q4,
730                                const int16_t* filter_y,
731                                int y_step_q4,
732                                int w,
733                                int h,
734                                int bps);
735 #define av1_highbd_convolve_avg av1_highbd_convolve_avg_c
736 
737 void av1_highbd_convolve_copy_c(const uint8_t* src,
738                                 ptrdiff_t src_stride,
739                                 uint8_t* dst,
740                                 ptrdiff_t dst_stride,
741                                 const int16_t* filter_x,
742                                 int x_step_q4,
743                                 const int16_t* filter_y,
744                                 int y_step_q4,
745                                 int w,
746                                 int h,
747                                 int bps);
748 #define av1_highbd_convolve_copy av1_highbd_convolve_copy_c
749 
750 void av1_highbd_convolve_horiz_rs_c(const uint16_t* src,
751                                     int src_stride,
752                                     uint16_t* dst,
753                                     int dst_stride,
754                                     int w,
755                                     int h,
756                                     const int16_t* x_filters,
757                                     int x0_qn,
758                                     int x_step_qn,
759                                     int bd);
760 #define av1_highbd_convolve_horiz_rs av1_highbd_convolve_horiz_rs_c
761 
762 void av1_highbd_convolve_x_sr_c(const uint16_t* src,
763                                 int src_stride,
764                                 uint16_t* dst,
765                                 int dst_stride,
766                                 int w,
767                                 int h,
768                                 const InterpFilterParams* filter_params_x,
769                                 const InterpFilterParams* filter_params_y,
770                                 const int subpel_x_qn,
771                                 const int subpel_y_qn,
772                                 ConvolveParams* conv_params,
773                                 int bd);
774 #define av1_highbd_convolve_x_sr av1_highbd_convolve_x_sr_c
775 
776 void av1_highbd_convolve_y_sr_c(const uint16_t* src,
777                                 int src_stride,
778                                 uint16_t* dst,
779                                 int dst_stride,
780                                 int w,
781                                 int h,
782                                 const InterpFilterParams* filter_params_x,
783                                 const InterpFilterParams* filter_params_y,
784                                 const int subpel_x_qn,
785                                 const int subpel_y_qn,
786                                 ConvolveParams* conv_params,
787                                 int bd);
788 #define av1_highbd_convolve_y_sr av1_highbd_convolve_y_sr_c
789 
790 void av1_highbd_dist_wtd_convolve_2d_c(
791     const uint16_t* src,
792     int src_stride,
793     uint16_t* dst,
794     int dst_stride,
795     int w,
796     int h,
797     const InterpFilterParams* filter_params_x,
798     const InterpFilterParams* filter_params_y,
799     const int subpel_x_qn,
800     const int subpel_y_qn,
801     ConvolveParams* conv_params,
802     int bd);
803 #define av1_highbd_dist_wtd_convolve_2d av1_highbd_dist_wtd_convolve_2d_c
804 
805 void av1_highbd_dist_wtd_convolve_2d_copy_c(
806     const uint16_t* src,
807     int src_stride,
808     uint16_t* dst,
809     int dst_stride,
810     int w,
811     int h,
812     const InterpFilterParams* filter_params_x,
813     const InterpFilterParams* filter_params_y,
814     const int subpel_x_qn,
815     const int subpel_y_qn,
816     ConvolveParams* conv_params,
817     int bd);
818 #define av1_highbd_dist_wtd_convolve_2d_copy \
819   av1_highbd_dist_wtd_convolve_2d_copy_c
820 
821 void av1_highbd_dist_wtd_convolve_x_c(const uint16_t* src,
822                                       int src_stride,
823                                       uint16_t* dst,
824                                       int dst_stride,
825                                       int w,
826                                       int h,
827                                       const InterpFilterParams* filter_params_x,
828                                       const InterpFilterParams* filter_params_y,
829                                       const int subpel_x_qn,
830                                       const int subpel_y_qn,
831                                       ConvolveParams* conv_params,
832                                       int bd);
833 #define av1_highbd_dist_wtd_convolve_x av1_highbd_dist_wtd_convolve_x_c
834 
835 void av1_highbd_dist_wtd_convolve_y_c(const uint16_t* src,
836                                       int src_stride,
837                                       uint16_t* dst,
838                                       int dst_stride,
839                                       int w,
840                                       int h,
841                                       const InterpFilterParams* filter_params_x,
842                                       const InterpFilterParams* filter_params_y,
843                                       const int subpel_x_qn,
844                                       const int subpel_y_qn,
845                                       ConvolveParams* conv_params,
846                                       int bd);
847 #define av1_highbd_dist_wtd_convolve_y av1_highbd_dist_wtd_convolve_y_c
848 
849 void av1_highbd_dr_prediction_z1_c(uint16_t* dst,
850                                    ptrdiff_t stride,
851                                    int bw,
852                                    int bh,
853                                    const uint16_t* above,
854                                    const uint16_t* left,
855                                    int upsample_above,
856                                    int dx,
857                                    int dy,
858                                    int bd);
859 #define av1_highbd_dr_prediction_z1 av1_highbd_dr_prediction_z1_c
860 
861 void av1_highbd_dr_prediction_z2_c(uint16_t* dst,
862                                    ptrdiff_t stride,
863                                    int bw,
864                                    int bh,
865                                    const uint16_t* above,
866                                    const uint16_t* left,
867                                    int upsample_above,
868                                    int upsample_left,
869                                    int dx,
870                                    int dy,
871                                    int bd);
872 #define av1_highbd_dr_prediction_z2 av1_highbd_dr_prediction_z2_c
873 
874 void av1_highbd_dr_prediction_z3_c(uint16_t* dst,
875                                    ptrdiff_t stride,
876                                    int bw,
877                                    int bh,
878                                    const uint16_t* above,
879                                    const uint16_t* left,
880                                    int upsample_left,
881                                    int dx,
882                                    int dy,
883                                    int bd);
884 #define av1_highbd_dr_prediction_z3 av1_highbd_dr_prediction_z3_c
885 
886 void av1_highbd_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
887 #define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
888 
889 void av1_highbd_inv_txfm_add_c(const tran_low_t* input,
890                                uint8_t* dest,
891                                int stride,
892                                const TxfmParam* txfm_param);
893 #define av1_highbd_inv_txfm_add av1_highbd_inv_txfm_add_c
894 
895 void av1_highbd_inv_txfm_add_16x4_c(const tran_low_t* input,
896                                     uint8_t* dest,
897                                     int stride,
898                                     const TxfmParam* txfm_param);
899 #define av1_highbd_inv_txfm_add_16x4 av1_highbd_inv_txfm_add_16x4_c
900 
901 void av1_highbd_inv_txfm_add_4x16_c(const tran_low_t* input,
902                                     uint8_t* dest,
903                                     int stride,
904                                     const TxfmParam* txfm_param);
905 #define av1_highbd_inv_txfm_add_4x16 av1_highbd_inv_txfm_add_4x16_c
906 
907 void av1_highbd_inv_txfm_add_4x4_c(const tran_low_t* input,
908                                    uint8_t* dest,
909                                    int stride,
910                                    const TxfmParam* txfm_param);
911 #define av1_highbd_inv_txfm_add_4x4 av1_highbd_inv_txfm_add_4x4_c
912 
913 void av1_highbd_inv_txfm_add_4x8_c(const tran_low_t* input,
914                                    uint8_t* dest,
915                                    int stride,
916                                    const TxfmParam* txfm_param);
917 #define av1_highbd_inv_txfm_add_4x8 av1_highbd_inv_txfm_add_4x8_c
918 
919 void av1_highbd_inv_txfm_add_8x4_c(const tran_low_t* input,
920                                    uint8_t* dest,
921                                    int stride,
922                                    const TxfmParam* txfm_param);
923 #define av1_highbd_inv_txfm_add_8x4 av1_highbd_inv_txfm_add_8x4_c
924 
925 void av1_highbd_inv_txfm_add_8x8_c(const tran_low_t* input,
926                                    uint8_t* dest,
927                                    int stride,
928                                    const TxfmParam* txfm_param);
929 #define av1_highbd_inv_txfm_add_8x8 av1_highbd_inv_txfm_add_8x8_c
930 
931 void av1_highbd_iwht4x4_16_add_c(const tran_low_t* input,
932                                  uint8_t* dest,
933                                  int dest_stride,
934                                  int bd);
935 #define av1_highbd_iwht4x4_16_add av1_highbd_iwht4x4_16_add_c
936 
937 void av1_highbd_iwht4x4_1_add_c(const tran_low_t* input,
938                                 uint8_t* dest,
939                                 int dest_stride,
940                                 int bd);
941 #define av1_highbd_iwht4x4_1_add av1_highbd_iwht4x4_1_add_c
942 
943 int64_t av1_highbd_pixel_proj_error_c(const uint8_t* src8,
944                                       int width,
945                                       int height,
946                                       int src_stride,
947                                       const uint8_t* dat8,
948                                       int dat_stride,
949                                       int32_t* flt0,
950                                       int flt0_stride,
951                                       int32_t* flt1,
952                                       int flt1_stride,
953                                       int xq[2],
954                                       const sgr_params_type* params);
955 #define av1_highbd_pixel_proj_error av1_highbd_pixel_proj_error_c
956 
957 void av1_highbd_quantize_fp_c(const tran_low_t* coeff_ptr,
958                               intptr_t n_coeffs,
959                               const int16_t* zbin_ptr,
960                               const int16_t* round_ptr,
961                               const int16_t* quant_ptr,
962                               const int16_t* quant_shift_ptr,
963                               tran_low_t* qcoeff_ptr,
964                               tran_low_t* dqcoeff_ptr,
965                               const int16_t* dequant_ptr,
966                               uint16_t* eob_ptr,
967                               const int16_t* scan,
968                               const int16_t* iscan,
969                               int log_scale);
970 #define av1_highbd_quantize_fp av1_highbd_quantize_fp_c
971 
972 void av1_highbd_warp_affine_c(const int32_t* mat,
973                               const uint16_t* ref,
974                               int width,
975                               int height,
976                               int stride,
977                               uint16_t* pred,
978                               int p_col,
979                               int p_row,
980                               int p_width,
981                               int p_height,
982                               int p_stride,
983                               int subsampling_x,
984                               int subsampling_y,
985                               int bd,
986                               ConvolveParams* conv_params,
987                               int16_t alpha,
988                               int16_t beta,
989                               int16_t gamma,
990                               int16_t delta);
991 #define av1_highbd_warp_affine av1_highbd_warp_affine_c
992 
993 void av1_highbd_wiener_convolve_add_src_c(const uint8_t* src,
994                                           ptrdiff_t src_stride,
995                                           uint8_t* dst,
996                                           ptrdiff_t dst_stride,
997                                           const int16_t* filter_x,
998                                           int x_step_q4,
999                                           const int16_t* filter_y,
1000                                           int y_step_q4,
1001                                           int w,
1002                                           int h,
1003                                           const ConvolveParams* conv_params,
1004                                           int bd);
1005 #define av1_highbd_wiener_convolve_add_src av1_highbd_wiener_convolve_add_src_c
1006 
1007 void av1_inv_txfm2d_add_16x16_c(const int32_t* input,
1008                                 uint16_t* output,
1009                                 int stride,
1010                                 TX_TYPE tx_type,
1011                                 int bd);
1012 #define av1_inv_txfm2d_add_16x16 av1_inv_txfm2d_add_16x16_c
1013 
1014 void av1_inv_txfm2d_add_16x32_c(const int32_t* input,
1015                                 uint16_t* output,
1016                                 int stride,
1017                                 TX_TYPE tx_type,
1018                                 int bd);
1019 #define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
1020 
1021 void av1_inv_txfm2d_add_16x4_c(const int32_t* input,
1022                                uint16_t* output,
1023                                int stride,
1024                                TX_TYPE tx_type,
1025                                int bd);
1026 #define av1_inv_txfm2d_add_16x4 av1_inv_txfm2d_add_16x4_c
1027 
1028 void av1_inv_txfm2d_add_16x64_c(const int32_t* input,
1029                                 uint16_t* output,
1030                                 int stride,
1031                                 TX_TYPE tx_type,
1032                                 int bd);
1033 #define av1_inv_txfm2d_add_16x64 av1_inv_txfm2d_add_16x64_c
1034 
1035 void av1_inv_txfm2d_add_16x8_c(const int32_t* input,
1036                                uint16_t* output,
1037                                int stride,
1038                                TX_TYPE tx_type,
1039                                int bd);
1040 #define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
1041 
1042 void av1_inv_txfm2d_add_32x16_c(const int32_t* input,
1043                                 uint16_t* output,
1044                                 int stride,
1045                                 TX_TYPE tx_type,
1046                                 int bd);
1047 #define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
1048 
1049 void av1_inv_txfm2d_add_32x32_c(const int32_t* input,
1050                                 uint16_t* output,
1051                                 int stride,
1052                                 TX_TYPE tx_type,
1053                                 int bd);
1054 #define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c
1055 
1056 void av1_inv_txfm2d_add_32x64_c(const int32_t* input,
1057                                 uint16_t* output,
1058                                 int stride,
1059                                 TX_TYPE tx_type,
1060                                 int bd);
1061 #define av1_inv_txfm2d_add_32x64 av1_inv_txfm2d_add_32x64_c
1062 
1063 void av1_inv_txfm2d_add_32x8_c(const int32_t* input,
1064                                uint16_t* output,
1065                                int stride,
1066                                TX_TYPE tx_type,
1067                                int bd);
1068 #define av1_inv_txfm2d_add_32x8 av1_inv_txfm2d_add_32x8_c
1069 
1070 void av1_inv_txfm2d_add_4x16_c(const int32_t* input,
1071                                uint16_t* output,
1072                                int stride,
1073                                TX_TYPE tx_type,
1074                                int bd);
1075 #define av1_inv_txfm2d_add_4x16 av1_inv_txfm2d_add_4x16_c
1076 
1077 void av1_inv_txfm2d_add_4x4_c(const int32_t* input,
1078                               uint16_t* output,
1079                               int stride,
1080                               TX_TYPE tx_type,
1081                               int bd);
1082 #define av1_inv_txfm2d_add_4x4 av1_inv_txfm2d_add_4x4_c
1083 
1084 void av1_inv_txfm2d_add_4x8_c(const int32_t* input,
1085                               uint16_t* output,
1086                               int stride,
1087                               TX_TYPE tx_type,
1088                               int bd);
1089 #define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
1090 
1091 void av1_inv_txfm2d_add_64x16_c(const int32_t* input,
1092                                 uint16_t* output,
1093                                 int stride,
1094                                 TX_TYPE tx_type,
1095                                 int bd);
1096 #define av1_inv_txfm2d_add_64x16 av1_inv_txfm2d_add_64x16_c
1097 
1098 void av1_inv_txfm2d_add_64x32_c(const int32_t* input,
1099                                 uint16_t* output,
1100                                 int stride,
1101                                 TX_TYPE tx_type,
1102                                 int bd);
1103 #define av1_inv_txfm2d_add_64x32 av1_inv_txfm2d_add_64x32_c
1104 
1105 void av1_inv_txfm2d_add_64x64_c(const int32_t* input,
1106                                 uint16_t* output,
1107                                 int stride,
1108                                 TX_TYPE tx_type,
1109                                 int bd);
1110 #define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
1111 
1112 void av1_inv_txfm2d_add_8x16_c(const int32_t* input,
1113                                uint16_t* output,
1114                                int stride,
1115                                TX_TYPE tx_type,
1116                                int bd);
1117 #define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
1118 
1119 void av1_inv_txfm2d_add_8x32_c(const int32_t* input,
1120                                uint16_t* output,
1121                                int stride,
1122                                TX_TYPE tx_type,
1123                                int bd);
1124 #define av1_inv_txfm2d_add_8x32 av1_inv_txfm2d_add_8x32_c
1125 
1126 void av1_inv_txfm2d_add_8x4_c(const int32_t* input,
1127                               uint16_t* output,
1128                               int stride,
1129                               TX_TYPE tx_type,
1130                               int bd);
1131 #define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
1132 
1133 void av1_inv_txfm2d_add_8x8_c(const int32_t* input,
1134                               uint16_t* output,
1135                               int stride,
1136                               TX_TYPE tx_type,
1137                               int bd);
1138 #define av1_inv_txfm2d_add_8x8 av1_inv_txfm2d_add_8x8_c
1139 
1140 void av1_inv_txfm_add_c(const tran_low_t* dqcoeff,
1141                         uint8_t* dst,
1142                         int stride,
1143                         const TxfmParam* txfm_param);
1144 #define av1_inv_txfm_add av1_inv_txfm_add_c
1145 
1146 void av1_lowbd_fwd_txfm_c(const int16_t* src_diff,
1147                           tran_low_t* coeff,
1148                           int diff_stride,
1149                           TxfmParam* txfm_param);
1150 #define av1_lowbd_fwd_txfm av1_lowbd_fwd_txfm_c
1151 
1152 int64_t av1_lowbd_pixel_proj_error_c(const uint8_t* src8,
1153                                      int width,
1154                                      int height,
1155                                      int src_stride,
1156                                      const uint8_t* dat8,
1157                                      int dat_stride,
1158                                      int32_t* flt0,
1159                                      int flt0_stride,
1160                                      int32_t* flt1,
1161                                      int flt1_stride,
1162                                      int xq[2],
1163                                      const sgr_params_type* params);
1164 #define av1_lowbd_pixel_proj_error av1_lowbd_pixel_proj_error_c
1165 
1166 void av1_nn_predict_c(const float* input_nodes,
1167                       const NN_CONFIG* const nn_config,
1168                       int reduce_prec,
1169                       float* const output);
1170 #define av1_nn_predict av1_nn_predict_c
1171 
1172 void av1_quantize_b_c(const tran_low_t* coeff_ptr,
1173                       intptr_t n_coeffs,
1174                       const int16_t* zbin_ptr,
1175                       const int16_t* round_ptr,
1176                       const int16_t* quant_ptr,
1177                       const int16_t* quant_shift_ptr,
1178                       tran_low_t* qcoeff_ptr,
1179                       tran_low_t* dqcoeff_ptr,
1180                       const int16_t* dequant_ptr,
1181                       uint16_t* eob_ptr,
1182                       const int16_t* scan,
1183                       const int16_t* iscan,
1184                       const qm_val_t* qm_ptr,
1185                       const qm_val_t* iqm_ptr,
1186                       int log_scale);
1187 #define av1_quantize_b av1_quantize_b_c
1188 
1189 void av1_quantize_fp_c(const tran_low_t* coeff_ptr,
1190                        intptr_t n_coeffs,
1191                        const int16_t* zbin_ptr,
1192                        const int16_t* round_ptr,
1193                        const int16_t* quant_ptr,
1194                        const int16_t* quant_shift_ptr,
1195                        tran_low_t* qcoeff_ptr,
1196                        tran_low_t* dqcoeff_ptr,
1197                        const int16_t* dequant_ptr,
1198                        uint16_t* eob_ptr,
1199                        const int16_t* scan,
1200                        const int16_t* iscan);
1201 #define av1_quantize_fp av1_quantize_fp_c
1202 
1203 void av1_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
1204                              intptr_t n_coeffs,
1205                              const int16_t* zbin_ptr,
1206                              const int16_t* round_ptr,
1207                              const int16_t* quant_ptr,
1208                              const int16_t* quant_shift_ptr,
1209                              tran_low_t* qcoeff_ptr,
1210                              tran_low_t* dqcoeff_ptr,
1211                              const int16_t* dequant_ptr,
1212                              uint16_t* eob_ptr,
1213                              const int16_t* scan,
1214                              const int16_t* iscan);
1215 #define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
1216 
1217 void av1_quantize_fp_64x64_c(const tran_low_t* coeff_ptr,
1218                              intptr_t n_coeffs,
1219                              const int16_t* zbin_ptr,
1220                              const int16_t* round_ptr,
1221                              const int16_t* quant_ptr,
1222                              const int16_t* quant_shift_ptr,
1223                              tran_low_t* qcoeff_ptr,
1224                              tran_low_t* dqcoeff_ptr,
1225                              const int16_t* dequant_ptr,
1226                              uint16_t* eob_ptr,
1227                              const int16_t* scan,
1228                              const int16_t* iscan);
1229 #define av1_quantize_fp_64x64 av1_quantize_fp_64x64_c
1230 
1231 void av1_quantize_lp_c(const int16_t* coeff_ptr,
1232                        intptr_t n_coeffs,
1233                        const int16_t* round_ptr,
1234                        const int16_t* quant_ptr,
1235                        int16_t* qcoeff_ptr,
1236                        int16_t* dqcoeff_ptr,
1237                        const int16_t* dequant_ptr,
1238                        uint16_t* eob_ptr,
1239                        const int16_t* scan);
1240 #define av1_quantize_lp av1_quantize_lp_c
1241 
1242 void av1_round_shift_array_c(int32_t* arr, int size, int bit);
1243 #define av1_round_shift_array av1_round_shift_array_c
1244 
1245 int av1_selfguided_restoration_c(const uint8_t* dgd8,
1246                                  int width,
1247                                  int height,
1248                                  int dgd_stride,
1249                                  int32_t* flt0,
1250                                  int32_t* flt1,
1251                                  int flt_stride,
1252                                  int sgr_params_idx,
1253                                  int bit_depth,
1254                                  int highbd);
1255 #define av1_selfguided_restoration av1_selfguided_restoration_c
1256 
1257 void av1_txb_init_levels_c(const tran_low_t* const coeff,
1258                            const int width,
1259                            const int height,
1260                            uint8_t* const levels);
1261 #define av1_txb_init_levels av1_txb_init_levels_c
1262 
1263 void av1_upsample_intra_edge_c(uint8_t* p, int sz);
1264 #define av1_upsample_intra_edge av1_upsample_intra_edge_c
1265 
1266 void av1_upsample_intra_edge_high_c(uint16_t* p, int sz, int bd);
1267 #define av1_upsample_intra_edge_high av1_upsample_intra_edge_high_c
1268 
1269 void av1_warp_affine_c(const int32_t* mat,
1270                        const uint8_t* ref,
1271                        int width,
1272                        int height,
1273                        int stride,
1274                        uint8_t* pred,
1275                        int p_col,
1276                        int p_row,
1277                        int p_width,
1278                        int p_height,
1279                        int p_stride,
1280                        int subsampling_x,
1281                        int subsampling_y,
1282                        ConvolveParams* conv_params,
1283                        int16_t alpha,
1284                        int16_t beta,
1285                        int16_t gamma,
1286                        int16_t delta);
1287 #define av1_warp_affine av1_warp_affine_c
1288 
1289 void av1_wedge_compute_delta_squares_c(int16_t* d,
1290                                        const int16_t* a,
1291                                        const int16_t* b,
1292                                        int N);
1293 #define av1_wedge_compute_delta_squares av1_wedge_compute_delta_squares_c
1294 
1295 int8_t av1_wedge_sign_from_residuals_c(const int16_t* ds,
1296                                        const uint8_t* m,
1297                                        int N,
1298                                        int64_t limit);
1299 #define av1_wedge_sign_from_residuals av1_wedge_sign_from_residuals_c
1300 
1301 uint64_t av1_wedge_sse_from_residuals_c(const int16_t* r1,
1302                                         const int16_t* d,
1303                                         const uint8_t* m,
1304                                         int N);
1305 #define av1_wedge_sse_from_residuals av1_wedge_sse_from_residuals_c
1306 
1307 void av1_wiener_convolve_add_src_c(const uint8_t* src,
1308                                    ptrdiff_t src_stride,
1309                                    uint8_t* dst,
1310                                    ptrdiff_t dst_stride,
1311                                    const int16_t* filter_x,
1312                                    int x_step_q4,
1313                                    const int16_t* filter_y,
1314                                    int y_step_q4,
1315                                    int w,
1316                                    int h,
1317                                    const ConvolveParams* conv_params);
1318 #define av1_wiener_convolve_add_src av1_wiener_convolve_add_src_c
1319 
1320 void cdef_copy_rect8_16bit_to_16bit_c(uint16_t* dst,
1321                                       int dstride,
1322                                       const uint16_t* src,
1323                                       int sstride,
1324                                       int v,
1325                                       int h);
1326 #define cdef_copy_rect8_16bit_to_16bit cdef_copy_rect8_16bit_to_16bit_c
1327 
1328 void cdef_copy_rect8_8bit_to_16bit_c(uint16_t* dst,
1329                                      int dstride,
1330                                      const uint8_t* src,
1331                                      int sstride,
1332                                      int v,
1333                                      int h);
1334 #define cdef_copy_rect8_8bit_to_16bit cdef_copy_rect8_8bit_to_16bit_c
1335 
1336 void cdef_filter_block_c(uint8_t* dst8,
1337                          uint16_t* dst16,
1338                          int dstride,
1339                          const uint16_t* in,
1340                          int pri_strength,
1341                          int sec_strength,
1342                          int dir,
1343                          int pri_damping,
1344                          int sec_damping,
1345                          int bsize,
1346                          int coeff_shift);
1347 #define cdef_filter_block cdef_filter_block_c
1348 
1349 int cdef_find_dir_c(const uint16_t* img,
1350                     int stride,
1351                     int32_t* var,
1352                     int coeff_shift);
1353 #define cdef_find_dir cdef_find_dir_c
1354 
1355 cfl_subsample_hbd_fn cfl_get_luma_subsampling_420_hbd_c(TX_SIZE tx_size);
1356 #define cfl_get_luma_subsampling_420_hbd cfl_get_luma_subsampling_420_hbd_c
1357 
1358 cfl_subsample_lbd_fn cfl_get_luma_subsampling_420_lbd_c(TX_SIZE tx_size);
1359 #define cfl_get_luma_subsampling_420_lbd cfl_get_luma_subsampling_420_lbd_c
1360 
1361 cfl_subsample_hbd_fn cfl_get_luma_subsampling_422_hbd_c(TX_SIZE tx_size);
1362 #define cfl_get_luma_subsampling_422_hbd cfl_get_luma_subsampling_422_hbd_c
1363 
1364 cfl_subsample_lbd_fn cfl_get_luma_subsampling_422_lbd_c(TX_SIZE tx_size);
1365 #define cfl_get_luma_subsampling_422_lbd cfl_get_luma_subsampling_422_lbd_c
1366 
1367 cfl_subsample_hbd_fn cfl_get_luma_subsampling_444_hbd_c(TX_SIZE tx_size);
1368 #define cfl_get_luma_subsampling_444_hbd cfl_get_luma_subsampling_444_hbd_c
1369 
1370 cfl_subsample_lbd_fn cfl_get_luma_subsampling_444_lbd_c(TX_SIZE tx_size);
1371 #define cfl_get_luma_subsampling_444_lbd cfl_get_luma_subsampling_444_lbd_c
1372 
1373 cfl_predict_hbd_fn cfl_get_predict_hbd_fn_c(TX_SIZE tx_size);
1374 #define cfl_get_predict_hbd_fn cfl_get_predict_hbd_fn_c
1375 
1376 cfl_predict_lbd_fn cfl_get_predict_lbd_fn_c(TX_SIZE tx_size);
1377 #define cfl_get_predict_lbd_fn cfl_get_predict_lbd_fn_c
1378 
1379 cfl_subtract_average_fn cfl_get_subtract_average_fn_c(TX_SIZE tx_size);
1380 #define cfl_get_subtract_average_fn cfl_get_subtract_average_fn_c
1381 
1382 void av1_rtcd(void);
1383 
1384 #include "config/aom_config.h"
1385 
1386 #ifdef RTCD_C
1387 #include "aom_ports/arm.h"
setup_rtcd_internal(void)1388 static void setup_rtcd_internal(void) {
1389   int flags = aom_arm_cpu_caps();
1390 
1391   (void)flags;
1392 }
1393 #endif
1394 
1395 #ifdef __cplusplus
1396 }  // extern "C"
1397 #endif
1398 
1399 #endif
1400