1 // This file is generated. Do not edit.
2 #ifndef VP8_RTCD_H_
3 #define VP8_RTCD_H_
4
5 #ifdef RTCD_C
6 #define RTCD_EXTERN
7 #else
8 #define RTCD_EXTERN extern
9 #endif
10
11 /*
12 * VP8
13 */
14
15 struct blockd;
16 struct macroblockd;
17 struct loop_filter_info;
18
19 /* Encoder forward decls */
20 struct block;
21 struct macroblock;
22 struct variance_vtable;
23 union int_mv;
24 struct yv12_buffer_config;
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 void vp8_bilinear_predict16x16_c(unsigned char* src_ptr,
31 int src_pixels_per_line,
32 int xoffset,
33 int yoffset,
34 unsigned char* dst_ptr,
35 int dst_pitch);
36 void vp8_bilinear_predict16x16_neon(unsigned char* src_ptr,
37 int src_pixels_per_line,
38 int xoffset,
39 int yoffset,
40 unsigned char* dst_ptr,
41 int dst_pitch);
42 #define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon
43
44 void vp8_bilinear_predict4x4_c(unsigned char* src_ptr,
45 int src_pixels_per_line,
46 int xoffset,
47 int yoffset,
48 unsigned char* dst_ptr,
49 int dst_pitch);
50 void vp8_bilinear_predict4x4_neon(unsigned char* src_ptr,
51 int src_pixels_per_line,
52 int xoffset,
53 int yoffset,
54 unsigned char* dst_ptr,
55 int dst_pitch);
56 #define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_neon
57
58 void vp8_bilinear_predict8x4_c(unsigned char* src_ptr,
59 int src_pixels_per_line,
60 int xoffset,
61 int yoffset,
62 unsigned char* dst_ptr,
63 int dst_pitch);
64 void vp8_bilinear_predict8x4_neon(unsigned char* src_ptr,
65 int src_pixels_per_line,
66 int xoffset,
67 int yoffset,
68 unsigned char* dst_ptr,
69 int dst_pitch);
70 #define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon
71
72 void vp8_bilinear_predict8x8_c(unsigned char* src_ptr,
73 int src_pixels_per_line,
74 int xoffset,
75 int yoffset,
76 unsigned char* dst_ptr,
77 int dst_pitch);
78 void vp8_bilinear_predict8x8_neon(unsigned char* src_ptr,
79 int src_pixels_per_line,
80 int xoffset,
81 int yoffset,
82 unsigned char* dst_ptr,
83 int dst_pitch);
84 #define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon
85
86 void vp8_blend_b_c(unsigned char* y,
87 unsigned char* u,
88 unsigned char* v,
89 int y_1,
90 int u_1,
91 int v_1,
92 int alpha,
93 int stride);
94 #define vp8_blend_b vp8_blend_b_c
95
96 void vp8_blend_mb_inner_c(unsigned char* y,
97 unsigned char* u,
98 unsigned char* v,
99 int y_1,
100 int u_1,
101 int v_1,
102 int alpha,
103 int stride);
104 #define vp8_blend_mb_inner vp8_blend_mb_inner_c
105
106 void vp8_blend_mb_outer_c(unsigned char* y,
107 unsigned char* u,
108 unsigned char* v,
109 int y_1,
110 int u_1,
111 int v_1,
112 int alpha,
113 int stride);
114 #define vp8_blend_mb_outer vp8_blend_mb_outer_c
115
116 int vp8_block_error_c(short* coeff, short* dqcoeff);
117 #define vp8_block_error vp8_block_error_c
118
119 void vp8_copy32xn_c(const unsigned char* src_ptr,
120 int src_stride,
121 unsigned char* dst_ptr,
122 int dst_stride,
123 int height);
124 #define vp8_copy32xn vp8_copy32xn_c
125
126 void vp8_copy_mem16x16_c(unsigned char* src,
127 int src_stride,
128 unsigned char* dst,
129 int dst_stride);
130 void vp8_copy_mem16x16_neon(unsigned char* src,
131 int src_stride,
132 unsigned char* dst,
133 int dst_stride);
134 #define vp8_copy_mem16x16 vp8_copy_mem16x16_neon
135
136 void vp8_copy_mem8x4_c(unsigned char* src,
137 int src_stride,
138 unsigned char* dst,
139 int dst_stride);
140 void vp8_copy_mem8x4_neon(unsigned char* src,
141 int src_stride,
142 unsigned char* dst,
143 int dst_stride);
144 #define vp8_copy_mem8x4 vp8_copy_mem8x4_neon
145
146 void vp8_copy_mem8x8_c(unsigned char* src,
147 int src_stride,
148 unsigned char* dst,
149 int dst_stride);
150 void vp8_copy_mem8x8_neon(unsigned char* src,
151 int src_stride,
152 unsigned char* dst,
153 int dst_stride);
154 #define vp8_copy_mem8x8 vp8_copy_mem8x8_neon
155
156 void vp8_dc_only_idct_add_c(short input_dc,
157 unsigned char* pred_ptr,
158 int pred_stride,
159 unsigned char* dst_ptr,
160 int dst_stride);
161 void vp8_dc_only_idct_add_neon(short input_dc,
162 unsigned char* pred_ptr,
163 int pred_stride,
164 unsigned char* dst_ptr,
165 int dst_stride);
166 #define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon
167
168 int vp8_denoiser_filter_c(unsigned char* mc_running_avg_y,
169 int mc_avg_y_stride,
170 unsigned char* running_avg_y,
171 int avg_y_stride,
172 unsigned char* sig,
173 int sig_stride,
174 unsigned int motion_magnitude,
175 int increase_denoising);
176 int vp8_denoiser_filter_neon(unsigned char* mc_running_avg_y,
177 int mc_avg_y_stride,
178 unsigned char* running_avg_y,
179 int avg_y_stride,
180 unsigned char* sig,
181 int sig_stride,
182 unsigned int motion_magnitude,
183 int increase_denoising);
184 #define vp8_denoiser_filter vp8_denoiser_filter_neon
185
186 int vp8_denoiser_filter_uv_c(unsigned char* mc_running_avg,
187 int mc_avg_stride,
188 unsigned char* running_avg,
189 int avg_stride,
190 unsigned char* sig,
191 int sig_stride,
192 unsigned int motion_magnitude,
193 int increase_denoising);
194 int vp8_denoiser_filter_uv_neon(unsigned char* mc_running_avg,
195 int mc_avg_stride,
196 unsigned char* running_avg,
197 int avg_stride,
198 unsigned char* sig,
199 int sig_stride,
200 unsigned int motion_magnitude,
201 int increase_denoising);
202 #define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_neon
203
204 void vp8_dequant_idct_add_c(short* input,
205 short* dq,
206 unsigned char* dest,
207 int stride);
208 void vp8_dequant_idct_add_neon(short* input,
209 short* dq,
210 unsigned char* dest,
211 int stride);
212 #define vp8_dequant_idct_add vp8_dequant_idct_add_neon
213
214 void vp8_dequant_idct_add_uv_block_c(short* q,
215 short* dq,
216 unsigned char* dst_u,
217 unsigned char* dst_v,
218 int stride,
219 char* eobs);
220 void vp8_dequant_idct_add_uv_block_neon(short* q,
221 short* dq,
222 unsigned char* dst_u,
223 unsigned char* dst_v,
224 int stride,
225 char* eobs);
226 #define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon
227
228 void vp8_dequant_idct_add_y_block_c(short* q,
229 short* dq,
230 unsigned char* dst,
231 int stride,
232 char* eobs);
233 void vp8_dequant_idct_add_y_block_neon(short* q,
234 short* dq,
235 unsigned char* dst,
236 int stride,
237 char* eobs);
238 #define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon
239
240 void vp8_dequantize_b_c(struct blockd*, short* DQC);
241 void vp8_dequantize_b_neon(struct blockd*, short* DQC);
242 #define vp8_dequantize_b vp8_dequantize_b_neon
243
244 int vp8_diamond_search_sad_c(struct macroblock* x,
245 struct block* b,
246 struct blockd* d,
247 union int_mv* ref_mv,
248 union int_mv* best_mv,
249 int search_param,
250 int sad_per_bit,
251 int* num00,
252 struct variance_vtable* fn_ptr,
253 int* mvcost[2],
254 union int_mv* center_mv);
255 #define vp8_diamond_search_sad vp8_diamond_search_sad_c
256
257 void vp8_fast_quantize_b_c(struct block*, struct blockd*);
258 void vp8_fast_quantize_b_neon(struct block*, struct blockd*);
259 #define vp8_fast_quantize_b vp8_fast_quantize_b_neon
260
261 void vp8_filter_by_weight16x16_c(unsigned char* src,
262 int src_stride,
263 unsigned char* dst,
264 int dst_stride,
265 int src_weight);
266 #define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c
267
268 void vp8_filter_by_weight4x4_c(unsigned char* src,
269 int src_stride,
270 unsigned char* dst,
271 int dst_stride,
272 int src_weight);
273 #define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c
274
275 void vp8_filter_by_weight8x8_c(unsigned char* src,
276 int src_stride,
277 unsigned char* dst,
278 int dst_stride,
279 int src_weight);
280 #define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c
281
282 int vp8_full_search_sad_c(struct macroblock* x,
283 struct block* b,
284 struct blockd* d,
285 union int_mv* ref_mv,
286 int sad_per_bit,
287 int distance,
288 struct variance_vtable* fn_ptr,
289 int* mvcost[2],
290 union int_mv* center_mv);
291 #define vp8_full_search_sad vp8_full_search_sad_c
292
293 void vp8_loop_filter_bh_c(unsigned char* y_ptr,
294 unsigned char* u_ptr,
295 unsigned char* v_ptr,
296 int y_stride,
297 int uv_stride,
298 struct loop_filter_info* lfi);
299 void vp8_loop_filter_bh_neon(unsigned char* y_ptr,
300 unsigned char* u_ptr,
301 unsigned char* v_ptr,
302 int y_stride,
303 int uv_stride,
304 struct loop_filter_info* lfi);
305 #define vp8_loop_filter_bh vp8_loop_filter_bh_neon
306
307 void vp8_loop_filter_bv_c(unsigned char* y_ptr,
308 unsigned char* u_ptr,
309 unsigned char* v_ptr,
310 int y_stride,
311 int uv_stride,
312 struct loop_filter_info* lfi);
313 void vp8_loop_filter_bv_neon(unsigned char* y_ptr,
314 unsigned char* u_ptr,
315 unsigned char* v_ptr,
316 int y_stride,
317 int uv_stride,
318 struct loop_filter_info* lfi);
319 #define vp8_loop_filter_bv vp8_loop_filter_bv_neon
320
321 void vp8_loop_filter_mbh_c(unsigned char* y_ptr,
322 unsigned char* u_ptr,
323 unsigned char* v_ptr,
324 int y_stride,
325 int uv_stride,
326 struct loop_filter_info* lfi);
327 void vp8_loop_filter_mbh_neon(unsigned char* y_ptr,
328 unsigned char* u_ptr,
329 unsigned char* v_ptr,
330 int y_stride,
331 int uv_stride,
332 struct loop_filter_info* lfi);
333 #define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon
334
335 void vp8_loop_filter_mbv_c(unsigned char* y_ptr,
336 unsigned char* u_ptr,
337 unsigned char* v_ptr,
338 int y_stride,
339 int uv_stride,
340 struct loop_filter_info* lfi);
341 void vp8_loop_filter_mbv_neon(unsigned char* y_ptr,
342 unsigned char* u_ptr,
343 unsigned char* v_ptr,
344 int y_stride,
345 int uv_stride,
346 struct loop_filter_info* lfi);
347 #define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon
348
349 void vp8_loop_filter_bhs_c(unsigned char* y_ptr,
350 int y_stride,
351 const unsigned char* blimit);
352 void vp8_loop_filter_bhs_neon(unsigned char* y_ptr,
353 int y_stride,
354 const unsigned char* blimit);
355 #define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon
356
357 void vp8_loop_filter_bvs_c(unsigned char* y_ptr,
358 int y_stride,
359 const unsigned char* blimit);
360 void vp8_loop_filter_bvs_neon(unsigned char* y_ptr,
361 int y_stride,
362 const unsigned char* blimit);
363 #define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon
364
365 void vp8_loop_filter_simple_horizontal_edge_c(unsigned char* y_ptr,
366 int y_stride,
367 const unsigned char* blimit);
368 void vp8_loop_filter_mbhs_neon(unsigned char* y_ptr,
369 int y_stride,
370 const unsigned char* blimit);
371 #define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon
372
373 void vp8_loop_filter_simple_vertical_edge_c(unsigned char* y_ptr,
374 int y_stride,
375 const unsigned char* blimit);
376 void vp8_loop_filter_mbvs_neon(unsigned char* y_ptr,
377 int y_stride,
378 const unsigned char* blimit);
379 #define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon
380
381 int vp8_mbblock_error_c(struct macroblock* mb, int dc);
382 #define vp8_mbblock_error vp8_mbblock_error_c
383
384 int vp8_mbuverror_c(struct macroblock* mb);
385 #define vp8_mbuverror vp8_mbuverror_c
386
387 int vp8_refining_search_sad_c(struct macroblock* x,
388 struct block* b,
389 struct blockd* d,
390 union int_mv* ref_mv,
391 int error_per_bit,
392 int search_range,
393 struct variance_vtable* fn_ptr,
394 int* mvcost[2],
395 union int_mv* center_mv);
396 #define vp8_refining_search_sad vp8_refining_search_sad_c
397
398 void vp8_regular_quantize_b_c(struct block*, struct blockd*);
399 #define vp8_regular_quantize_b vp8_regular_quantize_b_c
400
401 void vp8_short_fdct4x4_c(short* input, short* output, int pitch);
402 void vp8_short_fdct4x4_neon(short* input, short* output, int pitch);
403 #define vp8_short_fdct4x4 vp8_short_fdct4x4_neon
404
405 void vp8_short_fdct8x4_c(short* input, short* output, int pitch);
406 void vp8_short_fdct8x4_neon(short* input, short* output, int pitch);
407 #define vp8_short_fdct8x4 vp8_short_fdct8x4_neon
408
409 void vp8_short_idct4x4llm_c(short* input,
410 unsigned char* pred_ptr,
411 int pred_stride,
412 unsigned char* dst_ptr,
413 int dst_stride);
414 void vp8_short_idct4x4llm_neon(short* input,
415 unsigned char* pred_ptr,
416 int pred_stride,
417 unsigned char* dst_ptr,
418 int dst_stride);
419 #define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon
420
421 void vp8_short_inv_walsh4x4_c(short* input, short* mb_dqcoeff);
422 void vp8_short_inv_walsh4x4_neon(short* input, short* mb_dqcoeff);
423 #define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon
424
425 void vp8_short_inv_walsh4x4_1_c(short* input, short* mb_dqcoeff);
426 #define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
427
428 void vp8_short_walsh4x4_c(short* input, short* output, int pitch);
429 void vp8_short_walsh4x4_neon(short* input, short* output, int pitch);
430 #define vp8_short_walsh4x4 vp8_short_walsh4x4_neon
431
432 void vp8_sixtap_predict16x16_c(unsigned char* src_ptr,
433 int src_pixels_per_line,
434 int xoffset,
435 int yoffset,
436 unsigned char* dst_ptr,
437 int dst_pitch);
438 void vp8_sixtap_predict16x16_neon(unsigned char* src_ptr,
439 int src_pixels_per_line,
440 int xoffset,
441 int yoffset,
442 unsigned char* dst_ptr,
443 int dst_pitch);
444 #define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon
445
446 void vp8_sixtap_predict4x4_c(unsigned char* src_ptr,
447 int src_pixels_per_line,
448 int xoffset,
449 int yoffset,
450 unsigned char* dst_ptr,
451 int dst_pitch);
452 void vp8_sixtap_predict4x4_neon(unsigned char* src_ptr,
453 int src_pixels_per_line,
454 int xoffset,
455 int yoffset,
456 unsigned char* dst_ptr,
457 int dst_pitch);
458 #define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_neon
459
460 void vp8_sixtap_predict8x4_c(unsigned char* src_ptr,
461 int src_pixels_per_line,
462 int xoffset,
463 int yoffset,
464 unsigned char* dst_ptr,
465 int dst_pitch);
466 void vp8_sixtap_predict8x4_neon(unsigned char* src_ptr,
467 int src_pixels_per_line,
468 int xoffset,
469 int yoffset,
470 unsigned char* dst_ptr,
471 int dst_pitch);
472 #define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon
473
474 void vp8_sixtap_predict8x8_c(unsigned char* src_ptr,
475 int src_pixels_per_line,
476 int xoffset,
477 int yoffset,
478 unsigned char* dst_ptr,
479 int dst_pitch);
480 void vp8_sixtap_predict8x8_neon(unsigned char* src_ptr,
481 int src_pixels_per_line,
482 int xoffset,
483 int yoffset,
484 unsigned char* dst_ptr,
485 int dst_pitch);
486 #define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon
487
488 void vp8_rtcd(void);
489
490 #include "vpx_config.h"
491
492 #ifdef RTCD_C
493 #include "vpx_ports/arm.h"
setup_rtcd_internal(void)494 static void setup_rtcd_internal(void) {
495 int flags = arm_cpu_caps();
496
497 (void)flags;
498 }
499 #endif
500
501 #ifdef __cplusplus
502 } // extern "C"
503 #endif
504
505 #endif
506