1 // This file is generated. Do not edit.
2 #ifndef VP9_RTCD_H_
3 #define VP9_RTCD_H_
4
5 #ifdef RTCD_C
6 #define RTCD_EXTERN
7 #else
8 #define RTCD_EXTERN extern
9 #endif
10
11 /*
12 * VP9
13 */
14
15 #include "vp9/common/vp9_common.h"
16 #include "vp9/common/vp9_enums.h"
17 #include "vp9/common/vp9_filter.h"
18 #include "vpx/vpx_integer.h"
19
20 struct macroblockd;
21
22 /* Encoder forward decls */
23 struct macroblock;
24 struct vp9_variance_vtable;
25 struct search_site_config;
26 struct mv;
27 union int_mv;
28 struct yv12_buffer_config;
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 int64_t vp9_block_error_c(const tran_low_t* coeff,
35 const tran_low_t* dqcoeff,
36 intptr_t block_size,
37 int64_t* ssz);
38 #define vp9_block_error vp9_block_error_c
39
40 int64_t vp9_block_error_fp_c(const tran_low_t* coeff,
41 const tran_low_t* dqcoeff,
42 int block_size);
43 #define vp9_block_error_fp vp9_block_error_fp_c
44
45 int vp9_denoiser_filter_c(const uint8_t* sig,
46 int sig_stride,
47 const uint8_t* mc_avg,
48 int mc_avg_stride,
49 uint8_t* avg,
50 int avg_stride,
51 int increase_denoising,
52 BLOCK_SIZE bs,
53 int motion_magnitude);
54 int vp9_denoiser_filter_neon(const uint8_t* sig,
55 int sig_stride,
56 const uint8_t* mc_avg,
57 int mc_avg_stride,
58 uint8_t* avg,
59 int avg_stride,
60 int increase_denoising,
61 BLOCK_SIZE bs,
62 int motion_magnitude);
63 #define vp9_denoiser_filter vp9_denoiser_filter_neon
64
65 int vp9_diamond_search_sad_c(const struct macroblock* x,
66 const struct search_site_config* cfg,
67 struct mv* ref_mv,
68 struct mv* best_mv,
69 int search_param,
70 int sad_per_bit,
71 int* num00,
72 const struct vp9_variance_vtable* fn_ptr,
73 const struct mv* center_mv);
74 #define vp9_diamond_search_sad vp9_diamond_search_sad_c
75
76 void vp9_fht16x16_c(const int16_t* input,
77 tran_low_t* output,
78 int stride,
79 int tx_type);
80 #define vp9_fht16x16 vp9_fht16x16_c
81
82 void vp9_fht4x4_c(const int16_t* input,
83 tran_low_t* output,
84 int stride,
85 int tx_type);
86 #define vp9_fht4x4 vp9_fht4x4_c
87
88 void vp9_fht8x8_c(const int16_t* input,
89 tran_low_t* output,
90 int stride,
91 int tx_type);
92 #define vp9_fht8x8 vp9_fht8x8_c
93
94 void vp9_filter_by_weight16x16_c(const uint8_t* src,
95 int src_stride,
96 uint8_t* dst,
97 int dst_stride,
98 int src_weight);
99 #define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c
100
101 void vp9_filter_by_weight8x8_c(const uint8_t* src,
102 int src_stride,
103 uint8_t* dst,
104 int dst_stride,
105 int src_weight);
106 #define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c
107
108 void vp9_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
109 #define vp9_fwht4x4 vp9_fwht4x4_c
110
111 int64_t vp9_highbd_block_error_c(const tran_low_t* coeff,
112 const tran_low_t* dqcoeff,
113 intptr_t block_size,
114 int64_t* ssz,
115 int bd);
116 #define vp9_highbd_block_error vp9_highbd_block_error_c
117
118 void vp9_highbd_fht16x16_c(const int16_t* input,
119 tran_low_t* output,
120 int stride,
121 int tx_type);
122 #define vp9_highbd_fht16x16 vp9_highbd_fht16x16_c
123
124 void vp9_highbd_fht4x4_c(const int16_t* input,
125 tran_low_t* output,
126 int stride,
127 int tx_type);
128 #define vp9_highbd_fht4x4 vp9_highbd_fht4x4_c
129
130 void vp9_highbd_fht8x8_c(const int16_t* input,
131 tran_low_t* output,
132 int stride,
133 int tx_type);
134 #define vp9_highbd_fht8x8 vp9_highbd_fht8x8_c
135
136 void vp9_highbd_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
137 #define vp9_highbd_fwht4x4 vp9_highbd_fwht4x4_c
138
139 void vp9_highbd_iht16x16_256_add_c(const tran_low_t* input,
140 uint16_t* dest,
141 int stride,
142 int tx_type,
143 int bd);
144 void vp9_highbd_iht16x16_256_add_neon(const tran_low_t* input,
145 uint16_t* dest,
146 int stride,
147 int tx_type,
148 int bd);
149 #define vp9_highbd_iht16x16_256_add vp9_highbd_iht16x16_256_add_neon
150
151 void vp9_highbd_iht4x4_16_add_c(const tran_low_t* input,
152 uint16_t* dest,
153 int stride,
154 int tx_type,
155 int bd);
156 void vp9_highbd_iht4x4_16_add_neon(const tran_low_t* input,
157 uint16_t* dest,
158 int stride,
159 int tx_type,
160 int bd);
161 #define vp9_highbd_iht4x4_16_add vp9_highbd_iht4x4_16_add_neon
162
163 void vp9_highbd_iht8x8_64_add_c(const tran_low_t* input,
164 uint16_t* dest,
165 int stride,
166 int tx_type,
167 int bd);
168 void vp9_highbd_iht8x8_64_add_neon(const tran_low_t* input,
169 uint16_t* dest,
170 int stride,
171 int tx_type,
172 int bd);
173 #define vp9_highbd_iht8x8_64_add vp9_highbd_iht8x8_64_add_neon
174
175 void vp9_highbd_mbpost_proc_across_ip_c(uint16_t* src,
176 int pitch,
177 int rows,
178 int cols,
179 int flimit);
180 #define vp9_highbd_mbpost_proc_across_ip vp9_highbd_mbpost_proc_across_ip_c
181
182 void vp9_highbd_mbpost_proc_down_c(uint16_t* dst,
183 int pitch,
184 int rows,
185 int cols,
186 int flimit);
187 #define vp9_highbd_mbpost_proc_down vp9_highbd_mbpost_proc_down_c
188
189 void vp9_highbd_post_proc_down_and_across_c(const uint16_t* src_ptr,
190 uint16_t* dst_ptr,
191 int src_pixels_per_line,
192 int dst_pixels_per_line,
193 int rows,
194 int cols,
195 int flimit);
196 #define vp9_highbd_post_proc_down_and_across \
197 vp9_highbd_post_proc_down_and_across_c
198
199 void vp9_highbd_quantize_fp_c(const tran_low_t* coeff_ptr,
200 intptr_t n_coeffs,
201 int skip_block,
202 const int16_t* round_ptr,
203 const int16_t* quant_ptr,
204 tran_low_t* qcoeff_ptr,
205 tran_low_t* dqcoeff_ptr,
206 const int16_t* dequant_ptr,
207 uint16_t* eob_ptr,
208 const int16_t* scan,
209 const int16_t* iscan);
210 #define vp9_highbd_quantize_fp vp9_highbd_quantize_fp_c
211
212 void vp9_highbd_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
213 intptr_t n_coeffs,
214 int skip_block,
215 const int16_t* round_ptr,
216 const int16_t* quant_ptr,
217 tran_low_t* qcoeff_ptr,
218 tran_low_t* dqcoeff_ptr,
219 const int16_t* dequant_ptr,
220 uint16_t* eob_ptr,
221 const int16_t* scan,
222 const int16_t* iscan);
223 #define vp9_highbd_quantize_fp_32x32 vp9_highbd_quantize_fp_32x32_c
224
225 void vp9_highbd_temporal_filter_apply_c(const uint8_t* frame1,
226 unsigned int stride,
227 const uint8_t* frame2,
228 unsigned int block_width,
229 unsigned int block_height,
230 int strength,
231 int* blk_fw,
232 int use_32x32,
233 uint32_t* accumulator,
234 uint16_t* count);
235 #define vp9_highbd_temporal_filter_apply vp9_highbd_temporal_filter_apply_c
236
237 void vp9_iht16x16_256_add_c(const tran_low_t* input,
238 uint8_t* dest,
239 int stride,
240 int tx_type);
241 void vp9_iht16x16_256_add_neon(const tran_low_t* input,
242 uint8_t* dest,
243 int stride,
244 int tx_type);
245 #define vp9_iht16x16_256_add vp9_iht16x16_256_add_neon
246
247 void vp9_iht4x4_16_add_c(const tran_low_t* input,
248 uint8_t* dest,
249 int stride,
250 int tx_type);
251 void vp9_iht4x4_16_add_neon(const tran_low_t* input,
252 uint8_t* dest,
253 int stride,
254 int tx_type);
255 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon
256
257 void vp9_iht8x8_64_add_c(const tran_low_t* input,
258 uint8_t* dest,
259 int stride,
260 int tx_type);
261 void vp9_iht8x8_64_add_neon(const tran_low_t* input,
262 uint8_t* dest,
263 int stride,
264 int tx_type);
265 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon
266
267 void vp9_quantize_fp_c(const tran_low_t* coeff_ptr,
268 intptr_t n_coeffs,
269 int skip_block,
270 const int16_t* round_ptr,
271 const int16_t* quant_ptr,
272 tran_low_t* qcoeff_ptr,
273 tran_low_t* dqcoeff_ptr,
274 const int16_t* dequant_ptr,
275 uint16_t* eob_ptr,
276 const int16_t* scan,
277 const int16_t* iscan);
278 void vp9_quantize_fp_neon(const tran_low_t* coeff_ptr,
279 intptr_t n_coeffs,
280 int skip_block,
281 const int16_t* round_ptr,
282 const int16_t* quant_ptr,
283 tran_low_t* qcoeff_ptr,
284 tran_low_t* dqcoeff_ptr,
285 const int16_t* dequant_ptr,
286 uint16_t* eob_ptr,
287 const int16_t* scan,
288 const int16_t* iscan);
289 #define vp9_quantize_fp vp9_quantize_fp_neon
290
291 void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
292 intptr_t n_coeffs,
293 int skip_block,
294 const int16_t* round_ptr,
295 const int16_t* quant_ptr,
296 tran_low_t* qcoeff_ptr,
297 tran_low_t* dqcoeff_ptr,
298 const int16_t* dequant_ptr,
299 uint16_t* eob_ptr,
300 const int16_t* scan,
301 const int16_t* iscan);
302 void vp9_quantize_fp_32x32_neon(const tran_low_t* coeff_ptr,
303 intptr_t n_coeffs,
304 int skip_block,
305 const int16_t* round_ptr,
306 const int16_t* quant_ptr,
307 tran_low_t* qcoeff_ptr,
308 tran_low_t* dqcoeff_ptr,
309 const int16_t* dequant_ptr,
310 uint16_t* eob_ptr,
311 const int16_t* scan,
312 const int16_t* iscan);
313 #define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_neon
314
315 void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config* src,
316 struct yv12_buffer_config* dst,
317 INTERP_FILTER filter_type,
318 int phase_scaler);
319 void vp9_scale_and_extend_frame_neon(const struct yv12_buffer_config* src,
320 struct yv12_buffer_config* dst,
321 INTERP_FILTER filter_type,
322 int phase_scaler);
323 #define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_neon
324
325 void vp9_rtcd(void);
326
327 #include "vpx_config.h"
328
329 #ifdef RTCD_C
330 #include "vpx_ports/arm.h"
setup_rtcd_internal(void)331 static void setup_rtcd_internal(void) {
332 int flags = arm_cpu_caps();
333
334 (void)flags;
335 }
336 #endif
337
338 #ifdef __cplusplus
339 } // extern "C"
340 #endif
341
342 #endif
343