OLD | NEW |
1 #ifndef VP9_RTCD_H_ | 1 #ifndef VP9_RTCD_H_ |
2 #define VP9_RTCD_H_ | 2 #define VP9_RTCD_H_ |
3 | 3 |
4 #ifdef RTCD_C | 4 #ifdef RTCD_C |
5 #define RTCD_EXTERN | 5 #define RTCD_EXTERN |
6 #else | 6 #else |
7 #define RTCD_EXTERN extern | 7 #define RTCD_EXTERN extern |
8 #endif | 8 #endif |
9 | 9 |
10 /* | 10 /* |
11 * VP9 | 11 * VP9 |
12 */ | 12 */ |
13 | 13 |
14 #include "vpx/vpx_integer.h" | 14 #include "vpx/vpx_integer.h" |
15 #include "vp9/common/vp9_enums.h" | 15 #include "vp9/common/vp9_enums.h" |
16 | 16 |
17 struct macroblockd; | 17 struct macroblockd; |
18 | 18 |
19 /* Encoder forward decls */ | 19 /* Encoder forward decls */ |
20 struct macroblock; | 20 struct macroblock; |
21 struct vp9_variance_vtable; | 21 struct vp9_variance_vtable; |
22 | 22 |
23 #define DEC_MVCOSTS int *mvjcost, int *mvcost[2] | 23 #define DEC_MVCOSTS int *mvjcost, int *mvcost[2] |
| 24 struct mv; |
24 union int_mv; | 25 union int_mv; |
25 struct yv12_buffer_config; | 26 struct yv12_buffer_config; |
26 | 27 |
27 void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *a
bove, const uint8_t *left); | 28 void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *a
bove, const uint8_t *left); |
28 #define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c | 29 #define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c |
29 | 30 |
30 void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *ab
ove, const uint8_t *left); | 31 void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *ab
ove, const uint8_t *left); |
31 #define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c | 32 #define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c |
32 | 33 |
33 void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *ab
ove, const uint8_t *left); | 34 void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *ab
ove, const uint8_t *left); |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8
_t *above, const uint8_t *left); | 178 void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8
_t *above, const uint8_t *left); |
178 #define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c | 179 #define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c |
179 | 180 |
180 void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_
t *above, const uint8_t *left); | 181 void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_
t *above, const uint8_t *left); |
181 #define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c | 182 #define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c |
182 | 183 |
183 void vp9_mb_lpf_vertical_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit,
const uint8_t *limit, const uint8_t *thresh); | 184 void vp9_mb_lpf_vertical_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit,
const uint8_t *limit, const uint8_t *thresh); |
184 void vp9_mb_lpf_vertical_edge_w_neon(uint8_t *s, int pitch, const uint8_t *blimi
t, const uint8_t *limit, const uint8_t *thresh); | 185 void vp9_mb_lpf_vertical_edge_w_neon(uint8_t *s, int pitch, const uint8_t *blimi
t, const uint8_t *limit, const uint8_t *thresh); |
185 #define vp9_mb_lpf_vertical_edge_w vp9_mb_lpf_vertical_edge_w_neon | 186 #define vp9_mb_lpf_vertical_edge_w vp9_mb_lpf_vertical_edge_w_neon |
186 | 187 |
| 188 void vp9_mb_lpf_vertical_edge_w_16_c(uint8_t *s, int pitch, const uint8_t *blimi
t, const uint8_t *limit, const uint8_t *thresh); |
| 189 void vp9_mb_lpf_vertical_edge_w_16_neon(uint8_t *s, int pitch, const uint8_t *bl
imit, const uint8_t *limit, const uint8_t *thresh); |
| 190 #define vp9_mb_lpf_vertical_edge_w_16 vp9_mb_lpf_vertical_edge_w_16_neon |
| 191 |
187 void vp9_mbloop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); | 192 void vp9_mbloop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); |
188 void vp9_mbloop_filter_vertical_edge_neon(uint8_t *s, int pitch, const uint8_t *
blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 193 void vp9_mbloop_filter_vertical_edge_neon(uint8_t *s, int pitch, const uint8_t *
blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
189 #define vp9_mbloop_filter_vertical_edge vp9_mbloop_filter_vertical_edge_neon | 194 #define vp9_mbloop_filter_vertical_edge vp9_mbloop_filter_vertical_edge_neon |
190 | 195 |
| 196 void vp9_mbloop_filter_vertical_edge_16_c(uint8_t *s, int pitch, const uint8_t *
blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1,
const uint8_t *limit1, const uint8_t *thresh1); |
| 197 void vp9_mbloop_filter_vertical_edge_16_neon(uint8_t *s, int pitch, const uint8_
t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit
1, const uint8_t *limit1, const uint8_t *thresh1); |
| 198 #define vp9_mbloop_filter_vertical_edge_16 vp9_mbloop_filter_vertical_edge_16_ne
on |
| 199 |
191 void vp9_loop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimi
t, const uint8_t *limit, const uint8_t *thresh, int count); | 200 void vp9_loop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimi
t, const uint8_t *limit, const uint8_t *thresh, int count); |
192 void vp9_loop_filter_vertical_edge_neon(uint8_t *s, int pitch, const uint8_t *bl
imit, const uint8_t *limit, const uint8_t *thresh, int count); | 201 void vp9_loop_filter_vertical_edge_neon(uint8_t *s, int pitch, const uint8_t *bl
imit, const uint8_t *limit, const uint8_t *thresh, int count); |
193 #define vp9_loop_filter_vertical_edge vp9_loop_filter_vertical_edge_neon | 202 #define vp9_loop_filter_vertical_edge vp9_loop_filter_vertical_edge_neon |
194 | 203 |
| 204 void vp9_loop_filter_vertical_edge_16_c(uint8_t *s, int pitch, const uint8_t *bl
imit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, co
nst uint8_t *limit1, const uint8_t *thresh1); |
| 205 void vp9_loop_filter_vertical_edge_16_neon(uint8_t *s, int pitch, const uint8_t
*blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1,
const uint8_t *limit1, const uint8_t *thresh1); |
| 206 #define vp9_loop_filter_vertical_edge_16 vp9_loop_filter_vertical_edge_16_neon |
| 207 |
195 void vp9_mb_lpf_horizontal_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit
, const uint8_t *limit, const uint8_t *thresh, int count); | 208 void vp9_mb_lpf_horizontal_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit
, const uint8_t *limit, const uint8_t *thresh, int count); |
196 void vp9_mb_lpf_horizontal_edge_w_neon(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); | 209 void vp9_mb_lpf_horizontal_edge_w_neon(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); |
197 #define vp9_mb_lpf_horizontal_edge_w vp9_mb_lpf_horizontal_edge_w_neon | 210 #define vp9_mb_lpf_horizontal_edge_w vp9_mb_lpf_horizontal_edge_w_neon |
198 | 211 |
199 void vp9_mbloop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *b
limit, const uint8_t *limit, const uint8_t *thresh, int count); | 212 void vp9_mbloop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *b
limit, const uint8_t *limit, const uint8_t *thresh, int count); |
200 void vp9_mbloop_filter_horizontal_edge_neon(uint8_t *s, int pitch, const uint8_t
*blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 213 void vp9_mbloop_filter_horizontal_edge_neon(uint8_t *s, int pitch, const uint8_t
*blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
201 #define vp9_mbloop_filter_horizontal_edge vp9_mbloop_filter_horizontal_edge_neon | 214 #define vp9_mbloop_filter_horizontal_edge vp9_mbloop_filter_horizontal_edge_neon |
202 | 215 |
| 216 void vp9_mbloop_filter_horizontal_edge_16_c(uint8_t *s, int pitch, const uint8_t
*blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1
, const uint8_t *limit1, const uint8_t *thresh1); |
| 217 void vp9_mbloop_filter_horizontal_edge_16_neon(uint8_t *s, int pitch, const uint
8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blim
it1, const uint8_t *limit1, const uint8_t *thresh1); |
| 218 #define vp9_mbloop_filter_horizontal_edge_16 vp9_mbloop_filter_horizontal_edge_1
6_neon |
| 219 |
203 void vp9_loop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); | 220 void vp9_loop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); |
204 void vp9_loop_filter_horizontal_edge_neon(uint8_t *s, int pitch, const uint8_t *
blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 221 void vp9_loop_filter_horizontal_edge_neon(uint8_t *s, int pitch, const uint8_t *
blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
205 #define vp9_loop_filter_horizontal_edge vp9_loop_filter_horizontal_edge_neon | 222 #define vp9_loop_filter_horizontal_edge vp9_loop_filter_horizontal_edge_neon |
206 | 223 |
| 224 void vp9_loop_filter_horizontal_edge_16_c(uint8_t *s, int pitch, const uint8_t *
blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1,
const uint8_t *limit1, const uint8_t *thresh1); |
| 225 void vp9_loop_filter_horizontal_edge_16_neon(uint8_t *s, int pitch, const uint8_
t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit
1, const uint8_t *limit1, const uint8_t *thresh1); |
| 226 #define vp9_loop_filter_horizontal_edge_16 vp9_loop_filter_horizontal_edge_16_ne
on |
| 227 |
207 void vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, in
t v1, int alpha, int stride); | 228 void vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, in
t v1, int alpha, int stride); |
208 #define vp9_blend_mb_inner vp9_blend_mb_inner_c | 229 #define vp9_blend_mb_inner vp9_blend_mb_inner_c |
209 | 230 |
210 void vp9_blend_mb_outer_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, in
t v1, int alpha, int stride); | 231 void vp9_blend_mb_outer_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, in
t v1, int alpha, int stride); |
211 #define vp9_blend_mb_outer vp9_blend_mb_outer_c | 232 #define vp9_blend_mb_outer vp9_blend_mb_outer_c |
212 | 233 |
213 void vp9_blend_b_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, i
nt alpha, int stride); | 234 void vp9_blend_b_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, i
nt alpha, int stride); |
214 #define vp9_blend_b vp9_blend_b_c | 235 #define vp9_blend_b vp9_blend_b_c |
215 | 236 |
216 void vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *fi
lter_y, int y_step_q4, int w, int h); | 237 void vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *fi
lter_y, int y_step_q4, int w, int h); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 | 296 |
276 void vp9_idct16x16_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride
); | 297 void vp9_idct16x16_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride
); |
277 void vp9_idct16x16_10_add_neon(const int16_t *input, uint8_t *dest, int dest_str
ide); | 298 void vp9_idct16x16_10_add_neon(const int16_t *input, uint8_t *dest, int dest_str
ide); |
278 #define vp9_idct16x16_10_add vp9_idct16x16_10_add_neon | 299 #define vp9_idct16x16_10_add vp9_idct16x16_10_add_neon |
279 | 300 |
280 void vp9_idct32x32_1024_add_c(const int16_t *input, uint8_t *dest, int dest_stri
de); | 301 void vp9_idct32x32_1024_add_c(const int16_t *input, uint8_t *dest, int dest_stri
de); |
281 void vp9_idct32x32_1024_add_neon(const int16_t *input, uint8_t *dest, int dest_s
tride); | 302 void vp9_idct32x32_1024_add_neon(const int16_t *input, uint8_t *dest, int dest_s
tride); |
282 #define vp9_idct32x32_1024_add vp9_idct32x32_1024_add_neon | 303 #define vp9_idct32x32_1024_add vp9_idct32x32_1024_add_neon |
283 | 304 |
284 void vp9_idct32x32_34_add_c(const int16_t *input, uint8_t *dest, int dest_stride
); | 305 void vp9_idct32x32_34_add_c(const int16_t *input, uint8_t *dest, int dest_stride
); |
285 #define vp9_idct32x32_34_add vp9_idct32x32_34_add_c | 306 void vp9_idct32x32_1024_add_neon(const int16_t *input, uint8_t *dest, int dest_s
tride); |
| 307 #define vp9_idct32x32_34_add vp9_idct32x32_1024_add_neon |
286 | 308 |
287 void vp9_idct32x32_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride)
; | 309 void vp9_idct32x32_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride)
; |
288 #define vp9_idct32x32_1_add vp9_idct32x32_1_add_c | 310 void vp9_idct32x32_1_add_neon(const int16_t *input, uint8_t *dest, int dest_stri
de); |
| 311 #define vp9_idct32x32_1_add vp9_idct32x32_1_add_neon |
289 | 312 |
290 void vp9_iht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride, i
nt tx_type); | 313 void vp9_iht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride, i
nt tx_type); |
291 void vp9_iht4x4_16_add_neon(const int16_t *input, uint8_t *dest, int dest_stride
, int tx_type); | 314 void vp9_iht4x4_16_add_neon(const int16_t *input, uint8_t *dest, int dest_stride
, int tx_type); |
292 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon | 315 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon |
293 | 316 |
294 void vp9_iht8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride, i
nt tx_type); | 317 void vp9_iht8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride, i
nt tx_type); |
295 void vp9_iht8x8_64_add_neon(const int16_t *input, uint8_t *dest, int dest_stride
, int tx_type); | 318 void vp9_iht8x8_64_add_neon(const int16_t *input, uint8_t *dest, int dest_stride
, int tx_type); |
296 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon | 319 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon |
297 | 320 |
298 void vp9_iht16x16_256_add_c(const int16_t *input, uint8_t *output, int pitch, in
t tx_type); | 321 void vp9_iht16x16_256_add_c(const int16_t *input, uint8_t *output, int pitch, in
t tx_type); |
(...skipping 13 matching lines...) Expand all Loading... |
312 static void setup_rtcd_internal(void) | 335 static void setup_rtcd_internal(void) |
313 { | 336 { |
314 int flags = arm_cpu_caps(); | 337 int flags = arm_cpu_caps(); |
315 | 338 |
316 (void)flags; | 339 (void)flags; |
317 | 340 |
318 | 341 |
319 } | 342 } |
320 #endif | 343 #endif |
321 #endif | 344 #endif |
OLD | NEW |