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