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