Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / libvpx / source / config / mac / ia32 / vp9_rtcd.h
1 #ifndef VP9_RTCD_H_
2 #define VP9_RTCD_H_
3
4 #ifdef RTCD_C
5 #define RTCD_EXTERN
6 #else
7 #define RTCD_EXTERN extern
8 #endif
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 /*
15  * VP9
16  */
17
18 #include "vpx/vpx_integer.h"
19 #include "vp9/common/vp9_enums.h"
20
21 struct macroblockd;
22
23 /* Encoder forward decls */
24 struct macroblock;
25 struct vp9_variance_vtable;
26
27 #define DEC_MVCOSTS int *mvjcost, int *mvcost[2]
28 struct mv;
29 union int_mv;
30 struct yv12_buffer_config;
31
32 void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
33 #define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c
34
35 void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
36 #define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c
37
38 void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
39 #define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c
40
41 void vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
42 #define vp9_h_predictor_4x4 vp9_h_predictor_4x4_c
43
44 void vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
45 #define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c
46
47 void vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
48 #define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c
49
50 void vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
51 #define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c
52
53 void vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
54 #define vp9_v_predictor_4x4 vp9_v_predictor_4x4_c
55
56 void vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
57 #define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_c
58
59 void vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
60 #define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c
61
62 void vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
63 #define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c
64
65 void vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
66 #define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c
67
68 void vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
69 #define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c
70
71 void vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
72 #define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c
73
74 void vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
75 #define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c
76
77 void vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
78 #define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c
79
80 void vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
81 #define vp9_h_predictor_8x8 vp9_h_predictor_8x8_c
82
83 void vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
84 #define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c
85
86 void vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
87 #define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c
88
89 void vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
90 #define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c
91
92 void vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
93 #define vp9_v_predictor_8x8 vp9_v_predictor_8x8_c
94
95 void vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
96 #define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_c
97
98 void vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
99 #define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c
100
101 void vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
102 #define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c
103
104 void vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
105 #define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c
106
107 void vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
108 #define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c
109
110 void vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
111 #define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c
112
113 void vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
114 #define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c
115
116 void vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
117 #define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c
118
119 void vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
120 #define vp9_h_predictor_16x16 vp9_h_predictor_16x16_c
121
122 void vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
123 #define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c
124
125 void vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
126 #define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c
127
128 void vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
129 #define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c
130
131 void vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
132 #define vp9_v_predictor_16x16 vp9_v_predictor_16x16_c
133
134 void vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
135 #define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_c
136
137 void vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
138 #define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c
139
140 void vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
141 #define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c
142
143 void vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
144 #define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c
145
146 void vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
147 #define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c
148
149 void vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
150 #define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c
151
152 void vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
153 #define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c
154
155 void vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
156 #define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c
157
158 void vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
159 #define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c
160
161 void vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
162 #define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c
163
164 void vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
165 #define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c
166
167 void vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
168 #define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c
169
170 void vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
171 #define vp9_v_predictor_32x32 vp9_v_predictor_32x32_c
172
173 void vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
174 #define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c
175
176 void vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
177 #define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c
178
179 void vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
180 #define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c
181
182 void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
183 #define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c
184
185 void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
186 #define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c
187
188 void vp9_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
189 void vp9_lpf_vertical_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
190 RTCD_EXTERN void (*vp9_lpf_vertical_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
191
192 void vp9_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
193 void vp9_lpf_vertical_16_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
194 RTCD_EXTERN void (*vp9_lpf_vertical_16_dual)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
195
196 void vp9_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
197 void vp9_lpf_vertical_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
198 RTCD_EXTERN void (*vp9_lpf_vertical_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
199
200 void vp9_lpf_vertical_8_dual_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);
201 void vp9_lpf_vertical_8_dual_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);
202 RTCD_EXTERN void (*vp9_lpf_vertical_8_dual)(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);
203
204 void vp9_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
205 void vp9_lpf_vertical_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
206 RTCD_EXTERN void (*vp9_lpf_vertical_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
207
208 void vp9_lpf_vertical_4_dual_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);
209 void vp9_lpf_vertical_4_dual_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);
210 RTCD_EXTERN void (*vp9_lpf_vertical_4_dual)(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);
211
212 void vp9_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
213 void vp9_lpf_horizontal_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
214 RTCD_EXTERN void (*vp9_lpf_horizontal_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
215
216 void vp9_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
217 void vp9_lpf_horizontal_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
218 RTCD_EXTERN void (*vp9_lpf_horizontal_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
219
220 void vp9_lpf_horizontal_8_dual_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);
221 void vp9_lpf_horizontal_8_dual_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);
222 RTCD_EXTERN void (*vp9_lpf_horizontal_8_dual)(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);
223
224 void vp9_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
225 void vp9_lpf_horizontal_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
226 RTCD_EXTERN void (*vp9_lpf_horizontal_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
227
228 void vp9_lpf_horizontal_4_dual_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);
229 void vp9_lpf_horizontal_4_dual_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);
230 RTCD_EXTERN void (*vp9_lpf_horizontal_4_dual)(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);
231
232 void vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
233 #define vp9_blend_mb_inner vp9_blend_mb_inner_c
234
235 void vp9_blend_mb_outer_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
236 #define vp9_blend_mb_outer vp9_blend_mb_outer_c
237
238 void vp9_blend_b_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
239 #define vp9_blend_b vp9_blend_b_c
240
241 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 *filter_y, int y_step_q4, int w, int h);
242 #define vp9_convolve_copy vp9_convolve_copy_c
243
244 void vp9_convolve_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 *filter_y, int y_step_q4, int w, int h);
245 #define vp9_convolve_avg vp9_convolve_avg_c
246
247 void vp9_convolve8_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 *filter_y, int y_step_q4, int w, int h);
248 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 *filter_y, int y_step_q4, int w, int h);
249 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 *filter_y, int y_step_q4, int w, int h);
250 RTCD_EXTERN void (*vp9_convolve8)(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 *filter_y, int y_step_q4, int w, int h);
251
252 void vp9_convolve8_horiz_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 *filter_y, int y_step_q4, int w, int h);
253 void vp9_convolve8_horiz_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 *filter_y, int y_step_q4, int w, int h);
254 void vp9_convolve8_horiz_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 *filter_y, int y_step_q4, int w, int h);
255 RTCD_EXTERN void (*vp9_convolve8_horiz)(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 *filter_y, int y_step_q4, int w, int h);
256
257 void vp9_convolve8_vert_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 *filter_y, int y_step_q4, int w, int h);
258 void vp9_convolve8_vert_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 *filter_y, int y_step_q4, int w, int h);
259 void vp9_convolve8_vert_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 *filter_y, int y_step_q4, int w, int h);
260 RTCD_EXTERN void (*vp9_convolve8_vert)(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 *filter_y, int y_step_q4, int w, int h);
261
262 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 *filter_y, int y_step_q4, int w, int h);
263 void vp9_convolve8_avg_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 *filter_y, int y_step_q4, int w, int h);
264 void vp9_convolve8_avg_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 *filter_y, int y_step_q4, int w, int h);
265 RTCD_EXTERN void (*vp9_convolve8_avg)(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 *filter_y, int y_step_q4, int w, int h);
266
267 void vp9_convolve8_avg_horiz_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 *filter_y, int y_step_q4, int w, int h);
268 void vp9_convolve8_avg_horiz_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 *filter_y, int y_step_q4, int w, int h);
269 void vp9_convolve8_avg_horiz_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 *filter_y, int y_step_q4, int w, int h);
270 RTCD_EXTERN void (*vp9_convolve8_avg_horiz)(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 *filter_y, int y_step_q4, int w, int h);
271
272 void vp9_convolve8_avg_vert_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 *filter_y, int y_step_q4, int w, int h);
273 void vp9_convolve8_avg_vert_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 *filter_y, int y_step_q4, int w, int h);
274 void vp9_convolve8_avg_vert_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 *filter_y, int y_step_q4, int w, int h);
275 RTCD_EXTERN void (*vp9_convolve8_avg_vert)(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 *filter_y, int y_step_q4, int w, int h);
276
277 void vp9_idct4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
278 void vp9_idct4x4_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
279 RTCD_EXTERN void (*vp9_idct4x4_1_add)(const int16_t *input, uint8_t *dest, int dest_stride);
280
281 void vp9_idct4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
282 void vp9_idct4x4_16_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
283 RTCD_EXTERN void (*vp9_idct4x4_16_add)(const int16_t *input, uint8_t *dest, int dest_stride);
284
285 void vp9_idct8x8_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
286 void vp9_idct8x8_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
287 RTCD_EXTERN void (*vp9_idct8x8_1_add)(const int16_t *input, uint8_t *dest, int dest_stride);
288
289 void vp9_idct8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
290 void vp9_idct8x8_64_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
291 RTCD_EXTERN void (*vp9_idct8x8_64_add)(const int16_t *input, uint8_t *dest, int dest_stride);
292
293 void vp9_idct8x8_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
294 void vp9_idct8x8_10_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
295 RTCD_EXTERN void (*vp9_idct8x8_10_add)(const int16_t *input, uint8_t *dest, int dest_stride);
296
297 void vp9_idct16x16_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
298 void vp9_idct16x16_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
299 RTCD_EXTERN void (*vp9_idct16x16_1_add)(const int16_t *input, uint8_t *dest, int dest_stride);
300
301 void vp9_idct16x16_256_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
302 void vp9_idct16x16_256_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
303 RTCD_EXTERN void (*vp9_idct16x16_256_add)(const int16_t *input, uint8_t *dest, int dest_stride);
304
305 void vp9_idct16x16_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
306 void vp9_idct16x16_10_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
307 RTCD_EXTERN void (*vp9_idct16x16_10_add)(const int16_t *input, uint8_t *dest, int dest_stride);
308
309 void vp9_idct32x32_1024_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
310 void vp9_idct32x32_1024_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
311 RTCD_EXTERN void (*vp9_idct32x32_1024_add)(const int16_t *input, uint8_t *dest, int dest_stride);
312
313 void vp9_idct32x32_34_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
314 void vp9_idct32x32_34_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
315 RTCD_EXTERN void (*vp9_idct32x32_34_add)(const int16_t *input, uint8_t *dest, int dest_stride);
316
317 void vp9_idct32x32_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
318 void vp9_idct32x32_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
319 RTCD_EXTERN void (*vp9_idct32x32_1_add)(const int16_t *input, uint8_t *dest, int dest_stride);
320
321 void vp9_iht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
322 void vp9_iht4x4_16_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
323 RTCD_EXTERN void (*vp9_iht4x4_16_add)(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
324
325 void vp9_iht8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
326 void vp9_iht8x8_64_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
327 RTCD_EXTERN void (*vp9_iht8x8_64_add)(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
328
329 void vp9_iht16x16_256_add_c(const int16_t *input, uint8_t *output, int pitch, int tx_type);
330 void vp9_iht16x16_256_add_sse2(const int16_t *input, uint8_t *output, int pitch, int tx_type);
331 RTCD_EXTERN void (*vp9_iht16x16_256_add)(const int16_t *input, uint8_t *output, int pitch, int tx_type);
332
333 void vp9_iwht4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
334 #define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c
335
336 void vp9_iwht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
337 #define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c
338
339 void vp9_rtcd(void);
340
341 #ifdef RTCD_C
342 #include "vpx_ports/x86.h"
343 static void setup_rtcd_internal(void)
344 {
345     int flags = x86_simd_caps();
346
347     (void)flags;
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401     vp9_lpf_vertical_16 = vp9_lpf_vertical_16_c;
402     if (flags & HAS_SSE2) vp9_lpf_vertical_16 = vp9_lpf_vertical_16_sse2;
403
404     vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_c;
405     if (flags & HAS_SSE2) vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_sse2;
406
407     vp9_lpf_vertical_8 = vp9_lpf_vertical_8_c;
408     if (flags & HAS_SSE2) vp9_lpf_vertical_8 = vp9_lpf_vertical_8_sse2;
409
410     vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_c;
411     if (flags & HAS_SSE2) vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_sse2;
412
413     vp9_lpf_vertical_4 = vp9_lpf_vertical_4_c;
414     if (flags & HAS_MMX) vp9_lpf_vertical_4 = vp9_lpf_vertical_4_mmx;
415
416     vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_c;
417     if (flags & HAS_SSE2) vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_sse2;
418
419     vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_c;
420     if (flags & HAS_SSE2) vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_sse2;
421
422     vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_c;
423     if (flags & HAS_SSE2) vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_sse2;
424
425     vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_c;
426     if (flags & HAS_SSE2) vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_sse2;
427
428     vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_c;
429     if (flags & HAS_MMX) vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_mmx;
430
431     vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_c;
432     if (flags & HAS_SSE2) vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_sse2;
433
434
435
436
437
438
439     vp9_convolve8 = vp9_convolve8_c;
440     if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2;
441     if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3;
442
443     vp9_convolve8_horiz = vp9_convolve8_horiz_c;
444     if (flags & HAS_SSE2) vp9_convolve8_horiz = vp9_convolve8_horiz_sse2;
445     if (flags & HAS_SSSE3) vp9_convolve8_horiz = vp9_convolve8_horiz_ssse3;
446
447     vp9_convolve8_vert = vp9_convolve8_vert_c;
448     if (flags & HAS_SSE2) vp9_convolve8_vert = vp9_convolve8_vert_sse2;
449     if (flags & HAS_SSSE3) vp9_convolve8_vert = vp9_convolve8_vert_ssse3;
450
451     vp9_convolve8_avg = vp9_convolve8_avg_c;
452     if (flags & HAS_SSE2) vp9_convolve8_avg = vp9_convolve8_avg_sse2;
453     if (flags & HAS_SSSE3) vp9_convolve8_avg = vp9_convolve8_avg_ssse3;
454
455     vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_c;
456     if (flags & HAS_SSE2) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_sse2;
457     if (flags & HAS_SSSE3) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_ssse3;
458
459     vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_c;
460     if (flags & HAS_SSE2) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_sse2;
461     if (flags & HAS_SSSE3) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_ssse3;
462
463     vp9_idct4x4_1_add = vp9_idct4x4_1_add_c;
464     if (flags & HAS_SSE2) vp9_idct4x4_1_add = vp9_idct4x4_1_add_sse2;
465
466     vp9_idct4x4_16_add = vp9_idct4x4_16_add_c;
467     if (flags & HAS_SSE2) vp9_idct4x4_16_add = vp9_idct4x4_16_add_sse2;
468
469     vp9_idct8x8_1_add = vp9_idct8x8_1_add_c;
470     if (flags & HAS_SSE2) vp9_idct8x8_1_add = vp9_idct8x8_1_add_sse2;
471
472     vp9_idct8x8_64_add = vp9_idct8x8_64_add_c;
473     if (flags & HAS_SSE2) vp9_idct8x8_64_add = vp9_idct8x8_64_add_sse2;
474
475     vp9_idct8x8_10_add = vp9_idct8x8_10_add_c;
476     if (flags & HAS_SSE2) vp9_idct8x8_10_add = vp9_idct8x8_10_add_sse2;
477
478     vp9_idct16x16_1_add = vp9_idct16x16_1_add_c;
479     if (flags & HAS_SSE2) vp9_idct16x16_1_add = vp9_idct16x16_1_add_sse2;
480
481     vp9_idct16x16_256_add = vp9_idct16x16_256_add_c;
482     if (flags & HAS_SSE2) vp9_idct16x16_256_add = vp9_idct16x16_256_add_sse2;
483
484     vp9_idct16x16_10_add = vp9_idct16x16_10_add_c;
485     if (flags & HAS_SSE2) vp9_idct16x16_10_add = vp9_idct16x16_10_add_sse2;
486
487     vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_c;
488     if (flags & HAS_SSE2) vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_sse2;
489
490     vp9_idct32x32_34_add = vp9_idct32x32_34_add_c;
491     if (flags & HAS_SSE2) vp9_idct32x32_34_add = vp9_idct32x32_34_add_sse2;
492
493     vp9_idct32x32_1_add = vp9_idct32x32_1_add_c;
494     if (flags & HAS_SSE2) vp9_idct32x32_1_add = vp9_idct32x32_1_add_sse2;
495
496     vp9_iht4x4_16_add = vp9_iht4x4_16_add_c;
497     if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2;
498
499     vp9_iht8x8_64_add = vp9_iht8x8_64_add_c;
500     if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2;
501
502     vp9_iht16x16_256_add = vp9_iht16x16_256_add_c;
503     if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2;
504 }
505 #endif
506
507 #ifdef __cplusplus
508 }  // extern "C"
509 #endif
510
511 #endif