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_sse2(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_sse2(uint8_t *s, int pitch, const uint8_t *blimi
t, const uint8_t *limit, const uint8_t *thresh); |
185 RTCD_EXTERN void (*vp9_mb_lpf_vertical_edge_w)(uint8_t *s, int pitch, const uint
8_t *blimit, const uint8_t *limit, const uint8_t *thresh); | 186 RTCD_EXTERN void (*vp9_mb_lpf_vertical_edge_w)(uint8_t *s, int pitch, const uint
8_t *blimit, const uint8_t *limit, const uint8_t *thresh); |
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_sse2(uint8_t *s, int pitch, const uint8_t *bl
imit, const uint8_t *limit, const uint8_t *thresh); |
| 190 RTCD_EXTERN void (*vp9_mb_lpf_vertical_edge_w_16)(uint8_t *s, int pitch, const u
int8_t *blimit, const uint8_t *limit, const uint8_t *thresh); |
| 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_sse2(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_sse2(uint8_t *s, int pitch, const uint8_t *
blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
189 RTCD_EXTERN void (*vp9_mbloop_filter_vertical_edge)(uint8_t *s, int pitch, const
uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 194 RTCD_EXTERN void (*vp9_mbloop_filter_vertical_edge)(uint8_t *s, int pitch, const
uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
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_sse2(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 RTCD_EXTERN void (*vp9_mbloop_filter_vertical_edge_16)(uint8_t *s, int pitch, co
nst uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8
_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
| 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_mmx(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); | 201 void vp9_loop_filter_vertical_edge_mmx(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); |
193 RTCD_EXTERN void (*vp9_loop_filter_vertical_edge)(uint8_t *s, int pitch, const u
int8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 202 RTCD_EXTERN void (*vp9_loop_filter_vertical_edge)(uint8_t *s, int pitch, const u
int8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
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_sse2(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 RTCD_EXTERN void (*vp9_loop_filter_vertical_edge_16)(uint8_t *s, int pitch, cons
t uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t
*blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
| 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_sse2(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_sse2(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); |
| 210 void vp9_mb_lpf_horizontal_edge_w_avx2(uint8_t *s, int pitch, const uint8_t *bli
mit, const uint8_t *limit, const uint8_t *thresh, int count); |
197 RTCD_EXTERN void (*vp9_mb_lpf_horizontal_edge_w)(uint8_t *s, int pitch, const ui
nt8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 211 RTCD_EXTERN void (*vp9_mb_lpf_horizontal_edge_w)(uint8_t *s, int pitch, const ui
nt8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
198 | 212 |
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); | 213 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_sse2(uint8_t *s, int pitch, const uint8_t
*blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 214 void vp9_mbloop_filter_horizontal_edge_sse2(uint8_t *s, int pitch, const uint8_t
*blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
201 RTCD_EXTERN void (*vp9_mbloop_filter_horizontal_edge)(uint8_t *s, int pitch, con
st uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 215 RTCD_EXTERN void (*vp9_mbloop_filter_horizontal_edge)(uint8_t *s, int pitch, con
st uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
202 | 216 |
| 217 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); |
| 218 void vp9_mbloop_filter_horizontal_edge_16_sse2(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); |
| 219 RTCD_EXTERN void (*vp9_mbloop_filter_horizontal_edge_16)(uint8_t *s, int pitch,
const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uin
t8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
| 220 |
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); | 221 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_mmx(uint8_t *s, int pitch, const uint8_t *b
limit, const uint8_t *limit, const uint8_t *thresh, int count); | 222 void vp9_loop_filter_horizontal_edge_mmx(uint8_t *s, int pitch, const uint8_t *b
limit, const uint8_t *limit, const uint8_t *thresh, int count); |
205 RTCD_EXTERN void (*vp9_loop_filter_horizontal_edge)(uint8_t *s, int pitch, const
uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); | 223 RTCD_EXTERN void (*vp9_loop_filter_horizontal_edge)(uint8_t *s, int pitch, const
uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
206 | 224 |
| 225 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); |
| 226 void vp9_loop_filter_horizontal_edge_16_sse2(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); |
| 227 RTCD_EXTERN void (*vp9_loop_filter_horizontal_edge_16)(uint8_t *s, int pitch, co
nst uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8
_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
| 228 |
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); | 229 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 | 230 #define vp9_blend_mb_inner vp9_blend_mb_inner_c |
209 | 231 |
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); | 232 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 | 233 #define vp9_blend_mb_outer vp9_blend_mb_outer_c |
212 | 234 |
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); | 235 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 | 236 #define vp9_blend_b vp9_blend_b_c |
215 | 237 |
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); | 238 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 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
369 | 391 |
370 | 392 |
371 | 393 |
372 | 394 |
373 | 395 |
374 | 396 |
375 | 397 |
376 vp9_mb_lpf_vertical_edge_w = vp9_mb_lpf_vertical_edge_w_c; | 398 vp9_mb_lpf_vertical_edge_w = vp9_mb_lpf_vertical_edge_w_c; |
377 if (flags & HAS_SSE2) vp9_mb_lpf_vertical_edge_w = vp9_mb_lpf_vertical_edge_
w_sse2; | 399 if (flags & HAS_SSE2) vp9_mb_lpf_vertical_edge_w = vp9_mb_lpf_vertical_edge_
w_sse2; |
378 | 400 |
| 401 vp9_mb_lpf_vertical_edge_w_16 = vp9_mb_lpf_vertical_edge_w_16_c; |
| 402 if (flags & HAS_SSE2) vp9_mb_lpf_vertical_edge_w_16 = vp9_mb_lpf_vertical_ed
ge_w_16_sse2; |
| 403 |
379 vp9_mbloop_filter_vertical_edge = vp9_mbloop_filter_vertical_edge_c; | 404 vp9_mbloop_filter_vertical_edge = vp9_mbloop_filter_vertical_edge_c; |
380 if (flags & HAS_SSE2) vp9_mbloop_filter_vertical_edge = vp9_mbloop_filter_ve
rtical_edge_sse2; | 405 if (flags & HAS_SSE2) vp9_mbloop_filter_vertical_edge = vp9_mbloop_filter_ve
rtical_edge_sse2; |
381 | 406 |
| 407 vp9_mbloop_filter_vertical_edge_16 = vp9_mbloop_filter_vertical_edge_16_c; |
| 408 if (flags & HAS_SSE2) vp9_mbloop_filter_vertical_edge_16 = vp9_mbloop_filter
_vertical_edge_16_sse2; |
| 409 |
382 vp9_loop_filter_vertical_edge = vp9_loop_filter_vertical_edge_c; | 410 vp9_loop_filter_vertical_edge = vp9_loop_filter_vertical_edge_c; |
383 if (flags & HAS_MMX) vp9_loop_filter_vertical_edge = vp9_loop_filter_vertica
l_edge_mmx; | 411 if (flags & HAS_MMX) vp9_loop_filter_vertical_edge = vp9_loop_filter_vertica
l_edge_mmx; |
384 | 412 |
| 413 vp9_loop_filter_vertical_edge_16 = vp9_loop_filter_vertical_edge_16_c; |
| 414 if (flags & HAS_SSE2) vp9_loop_filter_vertical_edge_16 = vp9_loop_filter_ver
tical_edge_16_sse2; |
| 415 |
385 vp9_mb_lpf_horizontal_edge_w = vp9_mb_lpf_horizontal_edge_w_c; | 416 vp9_mb_lpf_horizontal_edge_w = vp9_mb_lpf_horizontal_edge_w_c; |
386 if (flags & HAS_SSE2) vp9_mb_lpf_horizontal_edge_w = vp9_mb_lpf_horizontal_e
dge_w_sse2; | 417 if (flags & HAS_SSE2) vp9_mb_lpf_horizontal_edge_w = vp9_mb_lpf_horizontal_e
dge_w_sse2; |
| 418 if (flags & HAS_AVX2) vp9_mb_lpf_horizontal_edge_w = vp9_mb_lpf_horizontal_e
dge_w_avx2; |
387 | 419 |
388 vp9_mbloop_filter_horizontal_edge = vp9_mbloop_filter_horizontal_edge_c; | 420 vp9_mbloop_filter_horizontal_edge = vp9_mbloop_filter_horizontal_edge_c; |
389 if (flags & HAS_SSE2) vp9_mbloop_filter_horizontal_edge = vp9_mbloop_filter_
horizontal_edge_sse2; | 421 if (flags & HAS_SSE2) vp9_mbloop_filter_horizontal_edge = vp9_mbloop_filter_
horizontal_edge_sse2; |
390 | 422 |
| 423 vp9_mbloop_filter_horizontal_edge_16 = vp9_mbloop_filter_horizontal_edge_16_
c; |
| 424 if (flags & HAS_SSE2) vp9_mbloop_filter_horizontal_edge_16 = vp9_mbloop_filt
er_horizontal_edge_16_sse2; |
| 425 |
391 vp9_loop_filter_horizontal_edge = vp9_loop_filter_horizontal_edge_c; | 426 vp9_loop_filter_horizontal_edge = vp9_loop_filter_horizontal_edge_c; |
392 if (flags & HAS_MMX) vp9_loop_filter_horizontal_edge = vp9_loop_filter_horiz
ontal_edge_mmx; | 427 if (flags & HAS_MMX) vp9_loop_filter_horizontal_edge = vp9_loop_filter_horiz
ontal_edge_mmx; |
393 | 428 |
| 429 vp9_loop_filter_horizontal_edge_16 = vp9_loop_filter_horizontal_edge_16_c; |
| 430 if (flags & HAS_SSE2) vp9_loop_filter_horizontal_edge_16 = vp9_loop_filter_h
orizontal_edge_16_sse2; |
| 431 |
394 | 432 |
395 | 433 |
396 | 434 |
397 | 435 |
398 | 436 |
399 vp9_convolve8 = vp9_convolve8_c; | 437 vp9_convolve8 = vp9_convolve8_c; |
400 if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2; | 438 if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2; |
401 if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3; | 439 if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3; |
402 | 440 |
403 vp9_convolve8_horiz = vp9_convolve8_horiz_c; | 441 vp9_convolve8_horiz = vp9_convolve8_horiz_c; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2; | 495 if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2; |
458 | 496 |
459 vp9_iht8x8_64_add = vp9_iht8x8_64_add_c; | 497 vp9_iht8x8_64_add = vp9_iht8x8_64_add_c; |
460 if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2; | 498 if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2; |
461 | 499 |
462 vp9_iht16x16_256_add = vp9_iht16x16_256_add_c; | 500 vp9_iht16x16_256_add = vp9_iht16x16_256_add_c; |
463 if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2; | 501 if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2; |
464 } | 502 } |
465 #endif | 503 #endif |
466 #endif | 504 #endif |
OLD | NEW |