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