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