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_common.h" |
15 #include "vp9/common/vp9_enums.h" | 16 #include "vp9/common/vp9_enums.h" |
16 #include "vp9/common/vp9_idct.h" | |
17 | 17 |
18 struct macroblockd; | 18 struct macroblockd; |
19 | 19 |
20 /* Encoder forward decls */ | 20 /* Encoder forward decls */ |
21 struct macroblock; | 21 struct macroblock; |
22 struct vp9_variance_vtable; | 22 struct vp9_variance_vtable; |
23 struct search_site_config; | 23 struct search_site_config; |
24 struct mv; | 24 struct mv; |
25 union int_mv; | 25 union int_mv; |
26 struct yv12_buffer_config; | 26 struct yv12_buffer_config; |
27 | 27 |
28 #ifdef __cplusplus | 28 #ifdef __cplusplus |
29 extern "C" { | 29 extern "C" { |
30 #endif | 30 #endif |
31 | 31 |
| 32 unsigned int vp9_avg_8x8_c(const uint8_t *, int p); |
| 33 unsigned int vp9_avg_8x8_sse2(const uint8_t *, int p); |
| 34 #define vp9_avg_8x8 vp9_avg_8x8_sse2 |
| 35 |
32 int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, in
tptr_t block_size, int64_t *ssz); | 36 int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, in
tptr_t block_size, int64_t *ssz); |
33 int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff,
intptr_t block_size, int64_t *ssz); | 37 int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff,
intptr_t block_size, int64_t *ssz); |
34 #define vp9_block_error vp9_block_error_sse2 | 38 #define vp9_block_error vp9_block_error_sse2 |
35 | 39 |
36 void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptr
diff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter
_y, int y_step_q4, int w, int h); | 40 void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptr
diff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter
_y, int y_step_q4, int w, int h); |
37 void vp9_convolve8_sse2(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 *fil
ter_y, int y_step_q4, int w, int h); | 41 void vp9_convolve8_sse2(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 *fil
ter_y, int y_step_q4, int w, int h); |
38 void vp9_convolve8_ssse3(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); | 42 void vp9_convolve8_ssse3(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); |
39 RTCD_EXTERN void (*vp9_convolve8)(const uint8_t *src, ptrdiff_t src_stride, uint
8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const in
t16_t *filter_y, int y_step_q4, int w, int h); | 43 RTCD_EXTERN void (*vp9_convolve8)(const uint8_t *src, ptrdiff_t src_stride, uint
8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const in
t16_t *filter_y, int y_step_q4, int w, int h); |
40 | 44 |
41 void vp9_convolve8_avg_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); | 45 void vp9_convolve8_avg_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 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 | 426 |
423 unsigned int vp9_mse8x16_c(const uint8_t *src_ptr, int source_stride, const uin
t8_t *ref_ptr, int recon_stride, unsigned int *sse); | 427 unsigned int vp9_mse8x16_c(const uint8_t *src_ptr, int source_stride, const uin
t8_t *ref_ptr, int recon_stride, unsigned int *sse); |
424 unsigned int vp9_mse8x16_sse2(const uint8_t *src_ptr, int source_stride, const
uint8_t *ref_ptr, int recon_stride, unsigned int *sse); | 428 unsigned int vp9_mse8x16_sse2(const uint8_t *src_ptr, int source_stride, const
uint8_t *ref_ptr, int recon_stride, unsigned int *sse); |
425 #define vp9_mse8x16 vp9_mse8x16_sse2 | 429 #define vp9_mse8x16 vp9_mse8x16_sse2 |
426 | 430 |
427 unsigned int vp9_mse8x8_c(const uint8_t *src_ptr, int source_stride, const uint
8_t *ref_ptr, int recon_stride, unsigned int *sse); | 431 unsigned int vp9_mse8x8_c(const uint8_t *src_ptr, int source_stride, const uint
8_t *ref_ptr, int recon_stride, unsigned int *sse); |
428 unsigned int vp9_mse8x8_sse2(const uint8_t *src_ptr, int source_stride, const u
int8_t *ref_ptr, int recon_stride, unsigned int *sse); | 432 unsigned int vp9_mse8x8_sse2(const uint8_t *src_ptr, int source_stride, const u
int8_t *ref_ptr, int recon_stride, unsigned int *sse); |
429 #define vp9_mse8x8 vp9_mse8x8_sse2 | 433 #define vp9_mse8x8 vp9_mse8x8_sse2 |
430 | 434 |
431 void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_b
lock, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_pt
r, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_p
tr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int1
6_t *scan, const int16_t *iscan); | 435 void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_b
lock, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_pt
r, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_p
tr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int1
6_t *scan, const int16_t *iscan); |
| 436 void vp9_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int ski
p_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant
_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoef
f_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const i
nt16_t *scan, const int16_t *iscan); |
432 void vp9_quantize_b_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int sk
ip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quan
t_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoe
ff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const
int16_t *scan, const int16_t *iscan); | 437 void vp9_quantize_b_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int sk
ip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quan
t_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoe
ff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const
int16_t *scan, const int16_t *iscan); |
433 RTCD_EXTERN void (*vp9_quantize_b)(const tran_low_t *coeff_ptr, intptr_t n_coeff
s, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int1
6_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low
_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_pt
r, const int16_t *scan, const int16_t *iscan); | 438 RTCD_EXTERN void (*vp9_quantize_b)(const tran_low_t *coeff_ptr, intptr_t n_coeff
s, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int1
6_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low
_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_pt
r, const int16_t *scan, const int16_t *iscan); |
434 | 439 |
435 void vp9_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *qu
ant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqc
oeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, cons
t int16_t *scan, const int16_t *iscan); | 440 void vp9_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *qu
ant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqc
oeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, cons
t int16_t *scan, const int16_t *iscan); |
436 void vp9_quantize_b_32x32_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t
*quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t
*dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr,
const int16_t *scan, const int16_t *iscan); | 441 void vp9_quantize_b_32x32_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t
*quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t
*dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr,
const int16_t *scan, const int16_t *iscan); |
437 RTCD_EXTERN void (*vp9_quantize_b_32x32)(const tran_low_t *coeff_ptr, intptr_t n
_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, cons
t int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tr
an_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *
eob_ptr, const int16_t *scan, const int16_t *iscan); | 442 RTCD_EXTERN void (*vp9_quantize_b_32x32)(const tran_low_t *coeff_ptr, intptr_t n
_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, cons
t int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tr
an_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *
eob_ptr, const int16_t *scan, const int16_t *iscan); |
438 | 443 |
439 void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_
block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_p
tr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_
ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int
16_t *scan, const int16_t *iscan); | 444 void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_
block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_p
tr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_
ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int
16_t *scan, const int16_t *iscan); |
440 void vp9_quantize_fp_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int s
kip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *qua
nt_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqco
eff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const
int16_t *scan, const int16_t *iscan); | 445 void vp9_quantize_fp_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int s
kip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *qua
nt_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqco
eff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const
int16_t *scan, const int16_t *iscan); |
441 RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coef
fs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int
16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_lo
w_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_p
tr, const int16_t *scan, const int16_t *iscan); | 446 RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coef
fs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int
16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_lo
w_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_p
tr, const int16_t *scan, const int16_t *iscan); |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 vp9_h_predictor_8x8 = vp9_h_predictor_8x8_c; | 951 vp9_h_predictor_8x8 = vp9_h_predictor_8x8_c; |
947 if (flags & HAS_SSSE3) vp9_h_predictor_8x8 = vp9_h_predictor_8x8_ssse3; | 952 if (flags & HAS_SSSE3) vp9_h_predictor_8x8 = vp9_h_predictor_8x8_ssse3; |
948 vp9_idct16x16_10_add = vp9_idct16x16_10_add_sse2; | 953 vp9_idct16x16_10_add = vp9_idct16x16_10_add_sse2; |
949 if (flags & HAS_SSSE3) vp9_idct16x16_10_add = vp9_idct16x16_10_add_ssse3; | 954 if (flags & HAS_SSSE3) vp9_idct16x16_10_add = vp9_idct16x16_10_add_ssse3; |
950 vp9_idct16x16_256_add = vp9_idct16x16_256_add_sse2; | 955 vp9_idct16x16_256_add = vp9_idct16x16_256_add_sse2; |
951 if (flags & HAS_SSSE3) vp9_idct16x16_256_add = vp9_idct16x16_256_add_ssse3; | 956 if (flags & HAS_SSSE3) vp9_idct16x16_256_add = vp9_idct16x16_256_add_ssse3; |
952 vp9_idct8x8_12_add = vp9_idct8x8_12_add_sse2; | 957 vp9_idct8x8_12_add = vp9_idct8x8_12_add_sse2; |
953 if (flags & HAS_SSSE3) vp9_idct8x8_12_add = vp9_idct8x8_12_add_ssse3; | 958 if (flags & HAS_SSSE3) vp9_idct8x8_12_add = vp9_idct8x8_12_add_ssse3; |
954 vp9_idct8x8_64_add = vp9_idct8x8_64_add_sse2; | 959 vp9_idct8x8_64_add = vp9_idct8x8_64_add_sse2; |
955 if (flags & HAS_SSSE3) vp9_idct8x8_64_add = vp9_idct8x8_64_add_ssse3; | 960 if (flags & HAS_SSSE3) vp9_idct8x8_64_add = vp9_idct8x8_64_add_ssse3; |
956 vp9_quantize_b = vp9_quantize_b_c; | 961 vp9_quantize_b = vp9_quantize_b_sse2; |
957 if (flags & HAS_SSSE3) vp9_quantize_b = vp9_quantize_b_ssse3; | 962 if (flags & HAS_SSSE3) vp9_quantize_b = vp9_quantize_b_ssse3; |
958 vp9_quantize_b_32x32 = vp9_quantize_b_32x32_c; | 963 vp9_quantize_b_32x32 = vp9_quantize_b_32x32_c; |
959 if (flags & HAS_SSSE3) vp9_quantize_b_32x32 = vp9_quantize_b_32x32_ssse3; | 964 if (flags & HAS_SSSE3) vp9_quantize_b_32x32 = vp9_quantize_b_32x32_ssse3; |
960 vp9_quantize_fp = vp9_quantize_fp_c; | 965 vp9_quantize_fp = vp9_quantize_fp_c; |
961 if (flags & HAS_SSSE3) vp9_quantize_fp = vp9_quantize_fp_ssse3; | 966 if (flags & HAS_SSSE3) vp9_quantize_fp = vp9_quantize_fp_ssse3; |
962 vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_c; | 967 vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_c; |
963 if (flags & HAS_SSSE3) vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_ssse3; | 968 if (flags & HAS_SSSE3) vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_ssse3; |
964 vp9_sad16x16x3 = vp9_sad16x16x3_c; | 969 vp9_sad16x16x3 = vp9_sad16x16x3_c; |
965 if (flags & HAS_SSE3) vp9_sad16x16x3 = vp9_sad16x16x3_sse3; | 970 if (flags & HAS_SSE3) vp9_sad16x16x3 = vp9_sad16x16x3_sse3; |
966 if (flags & HAS_SSSE3) vp9_sad16x16x3 = vp9_sad16x16x3_ssse3; | 971 if (flags & HAS_SSSE3) vp9_sad16x16x3 = vp9_sad16x16x3_ssse3; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1026 vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_sse2; | 1031 vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_sse2; |
1027 if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8
_ssse3; | 1032 if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8
_ssse3; |
1028 } | 1033 } |
1029 #endif | 1034 #endif |
1030 | 1035 |
1031 #ifdef __cplusplus | 1036 #ifdef __cplusplus |
1032 } // extern "C" | 1037 } // extern "C" |
1033 #endif | 1038 #endif |
1034 | 1039 |
1035 #endif | 1040 #endif |
OLD | NEW |