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 int64_t vp9_block_error_fp_neon(const tran_low_t* coeff,
44 const tran_low_t* dqcoeff,
45 int block_size);
46 #define vp9_block_error_fp vp9_block_error_fp_neon
47
48 int vp9_denoiser_filter_c(const uint8_t* sig,
49 int sig_stride,
50 const uint8_t* mc_avg,
51 int mc_avg_stride,
52 uint8_t* avg,
53 int avg_stride,
54 int increase_denoising,
55 BLOCK_SIZE bs,
56 int motion_magnitude);
57 int vp9_denoiser_filter_neon(const uint8_t* sig,
58 int sig_stride,
59 const uint8_t* mc_avg,
60 int mc_avg_stride,
61 uint8_t* avg,
62 int avg_stride,
63 int increase_denoising,
64 BLOCK_SIZE bs,
65 int motion_magnitude);
66 #define vp9_denoiser_filter vp9_denoiser_filter_neon
67
68 int vp9_diamond_search_sad_c(const struct macroblock* x,
69 const struct search_site_config* cfg,
70 struct mv* ref_mv,
71 struct mv* best_mv,
72 int search_param,
73 int sad_per_bit,
74 int* num00,
75 const struct vp9_variance_vtable* fn_ptr,
76 const struct mv* center_mv);
77 #define vp9_diamond_search_sad vp9_diamond_search_sad_c
78
79 void vp9_fht16x16_c(const int16_t* input,
80 tran_low_t* output,
81 int stride,
82 int tx_type);
83 #define vp9_fht16x16 vp9_fht16x16_c
84
85 void vp9_fht4x4_c(const int16_t* input,
86 tran_low_t* output,
87 int stride,
88 int tx_type);
89 #define vp9_fht4x4 vp9_fht4x4_c
90
91 void vp9_fht8x8_c(const int16_t* input,
92 tran_low_t* output,
93 int stride,
94 int tx_type);
95 #define vp9_fht8x8 vp9_fht8x8_c
96
97 void vp9_filter_by_weight16x16_c(const uint8_t* src,
98 int src_stride,
99 uint8_t* dst,
100 int dst_stride,
101 int src_weight);
102 #define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c
103
104 void vp9_filter_by_weight8x8_c(const uint8_t* src,
105 int src_stride,
106 uint8_t* dst,
107 int dst_stride,
108 int src_weight);
109 #define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c
110
111 void vp9_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
112 #define vp9_fwht4x4 vp9_fwht4x4_c
113
114 void vp9_iht16x16_256_add_c(const tran_low_t* input,
115 uint8_t* dest,
116 int stride,
117 int tx_type);
118 void vp9_iht16x16_256_add_neon(const tran_low_t* input,
119 uint8_t* dest,
120 int stride,
121 int tx_type);
122 #define vp9_iht16x16_256_add vp9_iht16x16_256_add_neon
123
124 void vp9_iht4x4_16_add_c(const tran_low_t* input,
125 uint8_t* dest,
126 int stride,
127 int tx_type);
128 void vp9_iht4x4_16_add_neon(const tran_low_t* input,
129 uint8_t* dest,
130 int stride,
131 int tx_type);
132 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon
133
134 void vp9_iht8x8_64_add_c(const tran_low_t* input,
135 uint8_t* dest,
136 int stride,
137 int tx_type);
138 void vp9_iht8x8_64_add_neon(const tran_low_t* input,
139 uint8_t* dest,
140 int stride,
141 int tx_type);
142 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon
143
144 void vp9_quantize_fp_c(const tran_low_t* coeff_ptr,
145 intptr_t n_coeffs,
146 int skip_block,
147 const int16_t* round_ptr,
148 const int16_t* quant_ptr,
149 tran_low_t* qcoeff_ptr,
150 tran_low_t* dqcoeff_ptr,
151 const int16_t* dequant_ptr,
152 uint16_t* eob_ptr,
153 const int16_t* scan,
154 const int16_t* iscan);
155 void vp9_quantize_fp_neon(const tran_low_t* coeff_ptr,
156 intptr_t n_coeffs,
157 int skip_block,
158 const int16_t* round_ptr,
159 const int16_t* quant_ptr,
160 tran_low_t* qcoeff_ptr,
161 tran_low_t* dqcoeff_ptr,
162 const int16_t* dequant_ptr,
163 uint16_t* eob_ptr,
164 const int16_t* scan,
165 const int16_t* iscan);
166 #define vp9_quantize_fp vp9_quantize_fp_neon
167
168 void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
169 intptr_t n_coeffs,
170 int skip_block,
171 const int16_t* round_ptr,
172 const int16_t* quant_ptr,
173 tran_low_t* qcoeff_ptr,
174 tran_low_t* dqcoeff_ptr,
175 const int16_t* dequant_ptr,
176 uint16_t* eob_ptr,
177 const int16_t* scan,
178 const int16_t* iscan);
179 void vp9_quantize_fp_32x32_neon(const tran_low_t* coeff_ptr,
180 intptr_t n_coeffs,
181 int skip_block,
182 const int16_t* round_ptr,
183 const int16_t* quant_ptr,
184 tran_low_t* qcoeff_ptr,
185 tran_low_t* dqcoeff_ptr,
186 const int16_t* dequant_ptr,
187 uint16_t* eob_ptr,
188 const int16_t* scan,
189 const int16_t* iscan);
190 #define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_neon
191
192 void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config* src,
193 struct yv12_buffer_config* dst,
194 INTERP_FILTER filter_type,
195 int phase_scaler);
196 void vp9_scale_and_extend_frame_neon(const struct yv12_buffer_config* src,
197 struct yv12_buffer_config* dst,
198 INTERP_FILTER filter_type,
199 int phase_scaler);
200 #define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_neon
201
202 void vp9_rtcd(void);
203
204 #include "vpx_config.h"
205
206 #ifdef RTCD_C
207 #include "vpx_ports/arm.h"
setup_rtcd_internal(void)208 static void setup_rtcd_internal(void) {
209 int flags = arm_cpu_caps();
210
211 (void)flags;
212 }
213 #endif
214
215 #ifdef __cplusplus
216 } // extern "C"
217 #endif
218
219 #endif
220