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 /* |
(...skipping 12 matching lines...) Expand all Loading... |
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 int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, in
tptr_t block_size, int64_t *ssz); | 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); |
33 #define vp9_block_error vp9_block_error_c | 33 int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff,
intptr_t block_size, int64_t *ssz); |
| 34 RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t
*dqcoeff, intptr_t block_size, int64_t *ssz); |
34 | 35 |
35 int64_t vp9_block_error_fp_c(const tran_low_t *coeff, const tran_low_t *dqcoeff,
int block_size); | 36 int64_t vp9_block_error_fp_c(const tran_low_t *coeff, const tran_low_t *dqcoeff,
int block_size); |
36 int64_t vp9_block_error_fp_sse2(const tran_low_t *coeff, const tran_low_t *dqcoe
ff, int block_size); | 37 int64_t vp9_block_error_fp_sse2(const tran_low_t *coeff, const tran_low_t *dqcoe
ff, int block_size); |
37 #define vp9_block_error_fp vp9_block_error_fp_sse2 | 38 #define vp9_block_error_fp vp9_block_error_fp_sse2 |
38 | 39 |
39 int vp9_denoiser_filter_c(const uint8_t *sig, int sig_stride, const uint8_t *mc_
avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising, BL
OCK_SIZE bs, int motion_magnitude); | 40 int vp9_denoiser_filter_c(const uint8_t *sig, int sig_stride, const uint8_t *mc_
avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising, BL
OCK_SIZE bs, int motion_magnitude); |
40 int vp9_denoiser_filter_sse2(const uint8_t *sig, int sig_stride, const uint8_t *
mc_avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising,
BLOCK_SIZE bs, int motion_magnitude); | 41 int vp9_denoiser_filter_sse2(const uint8_t *sig, int sig_stride, const uint8_t *
mc_avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising,
BLOCK_SIZE bs, int motion_magnitude); |
41 #define vp9_denoiser_filter vp9_denoiser_filter_sse2 | 42 #define vp9_denoiser_filter vp9_denoiser_filter_sse2 |
42 | 43 |
43 int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_sit
e_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad
_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv
*center_mv); | 44 int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_sit
e_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad
_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv
*center_mv); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 | 132 |
132 void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int
tx_type); | 133 void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int
tx_type); |
133 void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride,
int tx_type); | 134 void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride,
int tx_type); |
134 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_sse2 | 135 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_sse2 |
135 | 136 |
136 void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int
tx_type); | 137 void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int
tx_type); |
137 void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride,
int tx_type); | 138 void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride,
int tx_type); |
138 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_sse2 | 139 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_sse2 |
139 | 140 |
140 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, uint16_t *eob_ptr, const int16_t *scan, const i
nt16_t *iscan); | 141 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, uint16_t *eob_ptr, const int16_t *scan, const i
nt16_t *iscan); |
141 #define vp9_quantize_fp vp9_quantize_fp_c | 142 void vp9_quantize_fp_sse2(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, uint16_t *eob_ptr, const int16_t *scan, cons
t int16_t *iscan); |
| 143 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, uint16_t *eob_ptr, const int16_t *scan, con
st int16_t *iscan); |
| 144 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, uint16_t *eob_ptr, const int16_t *
scan, const int16_t *iscan); |
142 | 145 |
143 void vp9_quantize_fp_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 *q
uant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dq
coeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, c
onst int16_t *iscan); | 146 void vp9_quantize_fp_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 *q
uant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dq
coeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, c
onst int16_t *iscan); |
144 #define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c | 147 void vp9_quantize_fp_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, uint16_t *eob_ptr, const int16_t *sca
n, const int16_t *iscan); |
| 148 RTCD_EXTERN void (*vp9_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t
n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, con
st int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, t
ran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int
16_t *scan, const int16_t *iscan); |
145 | 149 |
146 void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *
frame2, unsigned int block_width, unsigned int block_height, int strength, int f
ilter_weight, unsigned int *accumulator, uint16_t *count); | 150 void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *
frame2, unsigned int block_width, unsigned int block_height, int strength, int f
ilter_weight, unsigned int *accumulator, uint16_t *count); |
147 void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_
t *frame2, unsigned int block_width, unsigned int block_height, int strength, in
t filter_weight, unsigned int *accumulator, uint16_t *count); | 151 void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_
t *frame2, unsigned int block_width, unsigned int block_height, int strength, in
t filter_weight, unsigned int *accumulator, uint16_t *count); |
148 #define vp9_temporal_filter_apply vp9_temporal_filter_apply_sse2 | 152 #define vp9_temporal_filter_apply vp9_temporal_filter_apply_sse2 |
149 | 153 |
150 void vp9_rtcd(void); | 154 void vp9_rtcd(void); |
151 | 155 |
152 #ifdef RTCD_C | 156 #ifdef RTCD_C |
153 #include "vpx_ports/x86.h" | 157 #include "vpx_ports/x86.h" |
154 static void setup_rtcd_internal(void) | 158 static void setup_rtcd_internal(void) |
155 { | 159 { |
156 int flags = x86_simd_caps(); | 160 int flags = x86_simd_caps(); |
157 | 161 |
158 (void)flags; | 162 (void)flags; |
159 | 163 |
| 164 vp9_block_error = vp9_block_error_c; |
| 165 if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2; |
160 vp9_diamond_search_sad = vp9_diamond_search_sad_c; | 166 vp9_diamond_search_sad = vp9_diamond_search_sad_c; |
161 if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx; | 167 if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx; |
162 vp9_fdct8x8_quant = vp9_fdct8x8_quant_c; | 168 vp9_fdct8x8_quant = vp9_fdct8x8_quant_c; |
163 if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3; | 169 if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3; |
164 vp9_full_search_sad = vp9_full_search_sad_c; | 170 vp9_full_search_sad = vp9_full_search_sad_c; |
165 if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3; | 171 if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3; |
166 if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8; | 172 if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8; |
167 vp9_highbd_block_error_8bit = vp9_highbd_block_error_8bit_sse2; | 173 vp9_highbd_block_error_8bit = vp9_highbd_block_error_8bit_sse2; |
168 if (flags & HAS_AVX) vp9_highbd_block_error_8bit = vp9_highbd_block_error_8b
it_avx; | 174 if (flags & HAS_AVX) vp9_highbd_block_error_8bit = vp9_highbd_block_error_8b
it_avx; |
| 175 vp9_quantize_fp = vp9_quantize_fp_sse2; |
| 176 if (flags & HAS_SSSE3) vp9_quantize_fp = vp9_quantize_fp_ssse3; |
| 177 vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_c; |
| 178 if (flags & HAS_SSSE3) vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_ssse3; |
169 } | 179 } |
170 #endif | 180 #endif |
171 | 181 |
172 #ifdef __cplusplus | 182 #ifdef __cplusplus |
173 } // extern "C" | 183 } // extern "C" |
174 #endif | 184 #endif |
175 | 185 |
176 #endif | 186 #endif |
OLD | NEW |