1 vp9_common_forward_decls() {
7 #include "vpx/vpx_integer.h"
8 #include "vp9/common/vp9_enums.h"
12 /* Encoder forward decls */
14 struct vp9_variance_vtable;
16 #define DEC_MVCOSTS int *mvjcost, int *mvcost[2]
19 struct yv12_buffer_config;
22 forward_decls vp9_common_forward_decls
24 # x86inc.asm doesn't work if pic is enabled on 32 bit platforms so no assembly.
25 [ "$CONFIG_USE_X86INC" = "yes" ] && mmx_x86inc=mmx && sse_x86inc=sse &&
26 sse2_x86inc=sse2 && ssse3_x86inc=ssse3 && avx_x86inc=avx && avx2_x86inc=avx2
28 # this variable is for functions that are 64 bit only.
29 [ $arch = "x86_64" ] && mmx_x86_64=mmx && sse2_x86_64=sse2 &&
30 ssse3_x86_64=ssse3 && avx_x86_64=avx && avx2_x86_64=avx2
35 prototype void vp9_d207_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
36 specialize vp9_d207_predictor_4x4 $ssse3_x86inc
38 prototype void vp9_d45_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
39 specialize vp9_d45_predictor_4x4 $ssse3_x86inc
41 prototype void vp9_d63_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
42 specialize vp9_d63_predictor_4x4 $ssse3_x86inc
44 prototype void vp9_h_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
45 specialize vp9_h_predictor_4x4 $ssse3_x86inc neon dspr2
47 prototype void vp9_d117_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
48 specialize vp9_d117_predictor_4x4
50 prototype void vp9_d135_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
51 specialize vp9_d135_predictor_4x4
53 prototype void vp9_d153_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
54 specialize vp9_d153_predictor_4x4 $ssse3_x86inc
56 prototype void vp9_v_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
57 specialize vp9_v_predictor_4x4 $sse_x86inc neon
59 prototype void vp9_tm_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
60 specialize vp9_tm_predictor_4x4 $sse_x86inc neon dspr2
62 prototype void vp9_dc_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
63 specialize vp9_dc_predictor_4x4 $sse_x86inc dspr2
65 prototype void vp9_dc_top_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
66 specialize vp9_dc_top_predictor_4x4
68 prototype void vp9_dc_left_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
69 specialize vp9_dc_left_predictor_4x4
71 prototype void vp9_dc_128_predictor_4x4 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
72 specialize vp9_dc_128_predictor_4x4
74 prototype void vp9_d207_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
75 specialize vp9_d207_predictor_8x8 $ssse3_x86inc
77 prototype void vp9_d45_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
78 specialize vp9_d45_predictor_8x8 $ssse3_x86inc
80 prototype void vp9_d63_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
81 specialize vp9_d63_predictor_8x8 $ssse3_x86inc
83 prototype void vp9_h_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
84 specialize vp9_h_predictor_8x8 $ssse3_x86inc neon dspr2
86 prototype void vp9_d117_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
87 specialize vp9_d117_predictor_8x8
89 prototype void vp9_d135_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
90 specialize vp9_d135_predictor_8x8
92 prototype void vp9_d153_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
93 specialize vp9_d153_predictor_8x8 $ssse3_x86inc
95 prototype void vp9_v_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
96 specialize vp9_v_predictor_8x8 $sse_x86inc neon
98 prototype void vp9_tm_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
99 specialize vp9_tm_predictor_8x8 $sse2_x86inc neon dspr2
101 prototype void vp9_dc_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
102 specialize vp9_dc_predictor_8x8 $sse_x86inc dspr2
104 prototype void vp9_dc_top_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
105 specialize vp9_dc_top_predictor_8x8
107 prototype void vp9_dc_left_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
108 specialize vp9_dc_left_predictor_8x8
110 prototype void vp9_dc_128_predictor_8x8 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
111 specialize vp9_dc_128_predictor_8x8
113 prototype void vp9_d207_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
114 specialize vp9_d207_predictor_16x16 $ssse3_x86inc
116 prototype void vp9_d45_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
117 specialize vp9_d45_predictor_16x16 $ssse3_x86inc
119 prototype void vp9_d63_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
120 specialize vp9_d63_predictor_16x16 $ssse3_x86inc
122 prototype void vp9_h_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
123 specialize vp9_h_predictor_16x16 $ssse3_x86inc neon dspr2
125 prototype void vp9_d117_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
126 specialize vp9_d117_predictor_16x16
128 prototype void vp9_d135_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
129 specialize vp9_d135_predictor_16x16
131 prototype void vp9_d153_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
132 specialize vp9_d153_predictor_16x16 $ssse3_x86inc
134 prototype void vp9_v_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
135 specialize vp9_v_predictor_16x16 $sse2_x86inc neon
137 prototype void vp9_tm_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
138 specialize vp9_tm_predictor_16x16 $sse2_x86inc neon
140 prototype void vp9_dc_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
141 specialize vp9_dc_predictor_16x16 $sse2_x86inc dspr2
143 prototype void vp9_dc_top_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
144 specialize vp9_dc_top_predictor_16x16
146 prototype void vp9_dc_left_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
147 specialize vp9_dc_left_predictor_16x16
149 prototype void vp9_dc_128_predictor_16x16 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
150 specialize vp9_dc_128_predictor_16x16
152 prototype void vp9_d207_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
153 specialize vp9_d207_predictor_32x32 $ssse3_x86inc
155 prototype void vp9_d45_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
156 specialize vp9_d45_predictor_32x32 $ssse3_x86inc
158 prototype void vp9_d63_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
159 specialize vp9_d63_predictor_32x32 $ssse3_x86inc
161 prototype void vp9_h_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
162 specialize vp9_h_predictor_32x32 $ssse3_x86inc neon
164 prototype void vp9_d117_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
165 specialize vp9_d117_predictor_32x32
167 prototype void vp9_d135_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
168 specialize vp9_d135_predictor_32x32
170 prototype void vp9_d153_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
171 specialize vp9_d153_predictor_32x32
173 prototype void vp9_v_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
174 specialize vp9_v_predictor_32x32 $sse2_x86inc neon
176 prototype void vp9_tm_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
177 specialize vp9_tm_predictor_32x32 $sse2_x86_64 neon
179 prototype void vp9_dc_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
180 specialize vp9_dc_predictor_32x32 $sse2_x86inc
182 prototype void vp9_dc_top_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
183 specialize vp9_dc_top_predictor_32x32
185 prototype void vp9_dc_left_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
186 specialize vp9_dc_left_predictor_32x32
188 prototype void vp9_dc_128_predictor_32x32 "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"
189 specialize vp9_dc_128_predictor_32x32
194 prototype void vp9_lpf_vertical_16 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"
195 specialize vp9_lpf_vertical_16 sse2 neon dspr2
197 prototype void vp9_lpf_vertical_16_dual "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"
198 specialize vp9_lpf_vertical_16_dual sse2 neon dspr2
200 prototype void vp9_lpf_vertical_8 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
201 specialize vp9_lpf_vertical_8 sse2 neon dspr2
203 prototype 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"
204 specialize vp9_lpf_vertical_8_dual sse2 neon dspr2
206 prototype 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 specialize vp9_lpf_vertical_4 mmx neon dspr2
209 prototype 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"
210 specialize vp9_lpf_vertical_4_dual sse2 neon dspr2
212 prototype void vp9_lpf_horizontal_16 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
213 specialize vp9_lpf_horizontal_16 sse2 avx2 neon dspr2
215 prototype void vp9_lpf_horizontal_8 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
216 specialize vp9_lpf_horizontal_8 sse2 neon dspr2
218 prototype 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"
219 specialize vp9_lpf_horizontal_8_dual sse2 neon dspr2
221 prototype void vp9_lpf_horizontal_4 "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"
222 specialize vp9_lpf_horizontal_4 mmx neon dspr2
224 prototype 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"
225 specialize vp9_lpf_horizontal_4_dual sse2 neon dspr2
230 if [ "$CONFIG_VP9_POSTPROC" = "yes" ]; then
231 prototype void vp9_mbpost_proc_down "uint8_t *dst, int pitch, int rows, int cols, int flimit"
232 specialize vp9_mbpost_proc_down mmx sse2
233 vp9_mbpost_proc_down_sse2=vp9_mbpost_proc_down_xmm
235 prototype void vp9_mbpost_proc_across_ip "uint8_t *src, int pitch, int rows, int cols, int flimit"
236 specialize vp9_mbpost_proc_across_ip sse2
237 vp9_mbpost_proc_across_ip_sse2=vp9_mbpost_proc_across_ip_xmm
239 prototype void vp9_post_proc_down_and_across "const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit"
240 specialize vp9_post_proc_down_and_across mmx sse2
241 vp9_post_proc_down_and_across_sse2=vp9_post_proc_down_and_across_xmm
243 prototype void vp9_plane_add_noise "uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch"
244 specialize vp9_plane_add_noise mmx sse2
245 vp9_plane_add_noise_sse2=vp9_plane_add_noise_wmt
248 prototype void vp9_blend_mb_inner "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
249 specialize vp9_blend_mb_inner
251 prototype void vp9_blend_mb_outer "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
252 specialize vp9_blend_mb_outer
254 prototype void vp9_blend_b "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
255 specialize vp9_blend_b
260 prototype void vp9_convolve_copy "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 specialize vp9_convolve_copy $sse2_x86inc neon dspr2
263 prototype void vp9_convolve_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"
264 specialize vp9_convolve_avg $sse2_x86inc neon dspr2
266 prototype 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"
267 specialize vp9_convolve8 sse2 ssse3 avx2 neon dspr2
269 prototype 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"
270 specialize vp9_convolve8_horiz sse2 ssse3 avx2 neon dspr2
272 prototype 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"
273 specialize vp9_convolve8_vert sse2 ssse3 avx2 neon dspr2
275 prototype 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"
276 specialize vp9_convolve8_avg sse2 ssse3 neon dspr2
278 prototype 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"
279 specialize vp9_convolve8_avg_horiz sse2 ssse3 neon dspr2
281 prototype 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"
282 specialize vp9_convolve8_avg_vert sse2 ssse3 neon dspr2
287 prototype void vp9_idct4x4_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
288 specialize vp9_idct4x4_1_add sse2 neon dspr2
290 prototype void vp9_idct4x4_16_add "const int16_t *input, uint8_t *dest, int dest_stride"
291 specialize vp9_idct4x4_16_add sse2 neon dspr2
293 prototype void vp9_idct8x8_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
294 specialize vp9_idct8x8_1_add sse2 neon dspr2
296 prototype void vp9_idct8x8_64_add "const int16_t *input, uint8_t *dest, int dest_stride"
297 specialize vp9_idct8x8_64_add sse2 neon dspr2
299 prototype void vp9_idct8x8_10_add "const int16_t *input, uint8_t *dest, int dest_stride"
300 specialize vp9_idct8x8_10_add sse2 neon dspr2
302 prototype void vp9_idct16x16_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
303 specialize vp9_idct16x16_1_add sse2 neon dspr2
305 prototype void vp9_idct16x16_256_add "const int16_t *input, uint8_t *dest, int dest_stride"
306 specialize vp9_idct16x16_256_add sse2 neon dspr2
308 prototype void vp9_idct16x16_10_add "const int16_t *input, uint8_t *dest, int dest_stride"
309 specialize vp9_idct16x16_10_add sse2 neon dspr2
311 prototype void vp9_idct32x32_1024_add "const int16_t *input, uint8_t *dest, int dest_stride"
312 specialize vp9_idct32x32_1024_add sse2 neon dspr2
314 prototype void vp9_idct32x32_34_add "const int16_t *input, uint8_t *dest, int dest_stride"
315 specialize vp9_idct32x32_34_add sse2 neon dspr2
316 vp9_idct32x32_34_add_neon=vp9_idct32x32_1024_add_neon
318 prototype void vp9_idct32x32_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
319 specialize vp9_idct32x32_1_add sse2 neon dspr2
321 prototype void vp9_iht4x4_16_add "const int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
322 specialize vp9_iht4x4_16_add sse2 neon dspr2
324 prototype void vp9_iht8x8_64_add "const int16_t *input, uint8_t *dest, int dest_stride, int tx_type"
325 specialize vp9_iht8x8_64_add sse2 neon dspr2
327 prototype void vp9_iht16x16_256_add "const int16_t *input, uint8_t *output, int pitch, int tx_type"
328 specialize vp9_iht16x16_256_add sse2 dspr2
332 prototype void vp9_iwht4x4_1_add "const int16_t *input, uint8_t *dest, int dest_stride"
333 specialize vp9_iwht4x4_1_add
335 prototype void vp9_iwht4x4_16_add "const int16_t *input, uint8_t *dest, int dest_stride"
336 specialize vp9_iwht4x4_16_add
339 # Encoder functions below this point.
341 if [ "$CONFIG_VP9_ENCODER" = "yes" ]; then
345 prototype unsigned int vp9_variance32x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
346 specialize vp9_variance32x16 $sse2_x86inc $avx2_x86inc
348 prototype unsigned int vp9_variance16x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
349 specialize vp9_variance16x32 $sse2_x86inc
351 prototype unsigned int vp9_variance64x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
352 specialize vp9_variance64x32 $sse2_x86inc $avx2_x86inc
354 prototype unsigned int vp9_variance32x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
355 specialize vp9_variance32x64 $sse2_x86inc
357 prototype unsigned int vp9_variance32x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
358 specialize vp9_variance32x32 $sse2_x86inc $avx2_x86inc
360 prototype unsigned int vp9_variance64x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
361 specialize vp9_variance64x64 $sse2_x86inc $avx2_x86inc
363 prototype unsigned int vp9_variance16x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
364 specialize vp9_variance16x16 mmx $sse2_x86inc $avx2_x86inc
366 prototype unsigned int vp9_variance16x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
367 specialize vp9_variance16x8 mmx $sse2_x86inc
369 prototype unsigned int vp9_variance8x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
370 specialize vp9_variance8x16 mmx $sse2_x86inc
372 prototype unsigned int vp9_variance8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
373 specialize vp9_variance8x8 mmx $sse2_x86inc
375 prototype void vp9_get_sse_sum_8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"
376 specialize vp9_get_sse_sum_8x8 sse2
377 vp9_get_sse_sum_8x8_sse2=vp9_get8x8var_sse2
379 prototype unsigned int vp9_variance8x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
380 specialize vp9_variance8x4 $sse2_x86inc
382 prototype unsigned int vp9_variance4x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
383 specialize vp9_variance4x8 $sse2_x86inc
385 prototype unsigned int vp9_variance4x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
386 specialize vp9_variance4x4 mmx $sse2_x86inc
388 prototype unsigned int vp9_sub_pixel_variance64x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
389 specialize vp9_sub_pixel_variance64x64 $sse2_x86inc $ssse3_x86inc
391 prototype unsigned int vp9_sub_pixel_avg_variance64x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
392 specialize vp9_sub_pixel_avg_variance64x64 $sse2_x86inc $ssse3_x86inc
394 prototype unsigned int vp9_sub_pixel_variance32x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
395 specialize vp9_sub_pixel_variance32x64 $sse2_x86inc $ssse3_x86inc
397 prototype unsigned int vp9_sub_pixel_avg_variance32x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
398 specialize vp9_sub_pixel_avg_variance32x64 $sse2_x86inc $ssse3_x86inc
400 prototype unsigned int vp9_sub_pixel_variance64x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
401 specialize vp9_sub_pixel_variance64x32 $sse2_x86inc $ssse3_x86inc
403 prototype unsigned int vp9_sub_pixel_avg_variance64x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
404 specialize vp9_sub_pixel_avg_variance64x32 $sse2_x86inc $ssse3_x86inc
406 prototype unsigned int vp9_sub_pixel_variance32x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
407 specialize vp9_sub_pixel_variance32x16 $sse2_x86inc $ssse3_x86inc
409 prototype unsigned int vp9_sub_pixel_avg_variance32x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
410 specialize vp9_sub_pixel_avg_variance32x16 $sse2_x86inc $ssse3_x86inc
412 prototype unsigned int vp9_sub_pixel_variance16x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
413 specialize vp9_sub_pixel_variance16x32 $sse2_x86inc $ssse3_x86inc
415 prototype unsigned int vp9_sub_pixel_avg_variance16x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
416 specialize vp9_sub_pixel_avg_variance16x32 $sse2_x86inc $ssse3_x86inc
418 prototype unsigned int vp9_sub_pixel_variance32x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
419 specialize vp9_sub_pixel_variance32x32 $sse2_x86inc $ssse3_x86inc
421 prototype unsigned int vp9_sub_pixel_avg_variance32x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
422 specialize vp9_sub_pixel_avg_variance32x32 $sse2_x86inc $ssse3_x86inc
424 prototype unsigned int vp9_sub_pixel_variance16x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
425 specialize vp9_sub_pixel_variance16x16 $sse2_x86inc $ssse3_x86inc
427 prototype unsigned int vp9_sub_pixel_avg_variance16x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
428 specialize vp9_sub_pixel_avg_variance16x16 $sse2_x86inc $ssse3_x86inc
430 prototype unsigned int vp9_sub_pixel_variance8x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
431 specialize vp9_sub_pixel_variance8x16 $sse2_x86inc $ssse3_x86inc
433 prototype unsigned int vp9_sub_pixel_avg_variance8x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
434 specialize vp9_sub_pixel_avg_variance8x16 $sse2_x86inc $ssse3_x86inc
436 prototype unsigned int vp9_sub_pixel_variance16x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
437 specialize vp9_sub_pixel_variance16x8 $sse2_x86inc $ssse3_x86inc
439 prototype unsigned int vp9_sub_pixel_avg_variance16x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
440 specialize vp9_sub_pixel_avg_variance16x8 $sse2_x86inc $ssse3_x86inc
442 prototype unsigned int vp9_sub_pixel_variance8x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
443 specialize vp9_sub_pixel_variance8x8 $sse2_x86inc $ssse3_x86inc
445 prototype unsigned int vp9_sub_pixel_avg_variance8x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
446 specialize vp9_sub_pixel_avg_variance8x8 $sse2_x86inc $ssse3_x86inc
448 # TODO(jingning): need to convert 8x4/4x8 functions into mmx/sse form
449 prototype unsigned int vp9_sub_pixel_variance8x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
450 specialize vp9_sub_pixel_variance8x4 $sse2_x86inc $ssse3_x86inc
452 prototype unsigned int vp9_sub_pixel_avg_variance8x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
453 specialize vp9_sub_pixel_avg_variance8x4 $sse2_x86inc $ssse3_x86inc
455 prototype unsigned int vp9_sub_pixel_variance4x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
456 specialize vp9_sub_pixel_variance4x8 $sse_x86inc $ssse3_x86inc
458 prototype unsigned int vp9_sub_pixel_avg_variance4x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
459 specialize vp9_sub_pixel_avg_variance4x8 $sse_x86inc $ssse3_x86inc
461 prototype unsigned int vp9_sub_pixel_variance4x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
462 specialize vp9_sub_pixel_variance4x4 $sse_x86inc $ssse3_x86inc
463 #vp9_sub_pixel_variance4x4_sse2=vp9_sub_pixel_variance4x4_wmt
465 prototype unsigned int vp9_sub_pixel_avg_variance4x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred"
466 specialize vp9_sub_pixel_avg_variance4x4 $sse_x86inc $ssse3_x86inc
468 prototype unsigned int vp9_sad64x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
469 specialize vp9_sad64x64 $sse2_x86inc
471 prototype unsigned int vp9_sad32x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
472 specialize vp9_sad32x64 $sse2_x86inc
474 prototype unsigned int vp9_sad64x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
475 specialize vp9_sad64x32 $sse2_x86inc
477 prototype unsigned int vp9_sad32x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
478 specialize vp9_sad32x16 $sse2_x86inc
480 prototype unsigned int vp9_sad16x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
481 specialize vp9_sad16x32 $sse2_x86inc
483 prototype unsigned int vp9_sad32x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
484 specialize vp9_sad32x32 $sse2_x86inc
486 prototype unsigned int vp9_sad16x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
487 specialize vp9_sad16x16 mmx $sse2_x86inc
489 prototype unsigned int vp9_sad16x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
490 specialize vp9_sad16x8 mmx $sse2_x86inc
492 prototype unsigned int vp9_sad8x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
493 specialize vp9_sad8x16 mmx $sse2_x86inc
495 prototype unsigned int vp9_sad8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
496 specialize vp9_sad8x8 mmx $sse2_x86inc
498 prototype unsigned int vp9_sad8x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
499 specialize vp9_sad8x4 $sse2_x86inc
501 prototype unsigned int vp9_sad4x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
502 specialize vp9_sad4x8 $sse_x86inc
504 prototype unsigned int vp9_sad4x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"
505 specialize vp9_sad4x4 mmx $sse_x86inc
507 prototype unsigned int vp9_sad64x64_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
508 specialize vp9_sad64x64_avg $sse2_x86inc
510 prototype unsigned int vp9_sad32x64_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
511 specialize vp9_sad32x64_avg $sse2_x86inc
513 prototype unsigned int vp9_sad64x32_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
514 specialize vp9_sad64x32_avg $sse2_x86inc
516 prototype unsigned int vp9_sad32x16_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
517 specialize vp9_sad32x16_avg $sse2_x86inc
519 prototype unsigned int vp9_sad16x32_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
520 specialize vp9_sad16x32_avg $sse2_x86inc
522 prototype unsigned int vp9_sad32x32_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
523 specialize vp9_sad32x32_avg $sse2_x86inc
525 prototype unsigned int vp9_sad16x16_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
526 specialize vp9_sad16x16_avg $sse2_x86inc
528 prototype unsigned int vp9_sad16x8_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
529 specialize vp9_sad16x8_avg $sse2_x86inc
531 prototype unsigned int vp9_sad8x16_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
532 specialize vp9_sad8x16_avg $sse2_x86inc
534 prototype unsigned int vp9_sad8x8_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
535 specialize vp9_sad8x8_avg $sse2_x86inc
537 prototype unsigned int vp9_sad8x4_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
538 specialize vp9_sad8x4_avg $sse2_x86inc
540 prototype unsigned int vp9_sad4x8_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
541 specialize vp9_sad4x8_avg $sse_x86inc
543 prototype unsigned int vp9_sad4x4_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad"
544 specialize vp9_sad4x4_avg $sse_x86inc
546 prototype unsigned int vp9_variance_halfpixvar16x16_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
547 specialize vp9_variance_halfpixvar16x16_h $sse2_x86inc
549 prototype unsigned int vp9_variance_halfpixvar16x16_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
550 specialize vp9_variance_halfpixvar16x16_v $sse2_x86inc
552 prototype unsigned int vp9_variance_halfpixvar16x16_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
553 specialize vp9_variance_halfpixvar16x16_hv $sse2_x86inc
555 prototype unsigned int vp9_variance_halfpixvar64x64_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
556 specialize vp9_variance_halfpixvar64x64_h
558 prototype unsigned int vp9_variance_halfpixvar64x64_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
559 specialize vp9_variance_halfpixvar64x64_v
561 prototype unsigned int vp9_variance_halfpixvar64x64_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
562 specialize vp9_variance_halfpixvar64x64_hv
564 prototype unsigned int vp9_variance_halfpixvar32x32_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
565 specialize vp9_variance_halfpixvar32x32_h
567 prototype unsigned int vp9_variance_halfpixvar32x32_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
568 specialize vp9_variance_halfpixvar32x32_v
570 prototype unsigned int vp9_variance_halfpixvar32x32_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
571 specialize vp9_variance_halfpixvar32x32_hv
573 prototype void vp9_sad64x64x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"
574 specialize vp9_sad64x64x3
576 prototype void vp9_sad32x32x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"
577 specialize vp9_sad32x32x3
579 prototype void vp9_sad16x16x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"
580 specialize vp9_sad16x16x3 sse3 ssse3
582 prototype void vp9_sad16x8x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"
583 specialize vp9_sad16x8x3 sse3 ssse3
585 prototype void vp9_sad8x16x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"
586 specialize vp9_sad8x16x3 sse3
588 prototype void vp9_sad8x8x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"
589 specialize vp9_sad8x8x3 sse3
591 prototype void vp9_sad4x4x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"
592 specialize vp9_sad4x4x3 sse3
594 prototype void vp9_sad64x64x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
595 specialize vp9_sad64x64x8
597 prototype void vp9_sad32x32x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
598 specialize vp9_sad32x32x8
600 prototype void vp9_sad16x16x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
601 specialize vp9_sad16x16x8 sse4
603 prototype void vp9_sad16x8x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
604 specialize vp9_sad16x8x8 sse4
606 prototype void vp9_sad8x16x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
607 specialize vp9_sad8x16x8 sse4
609 prototype void vp9_sad8x8x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
610 specialize vp9_sad8x8x8 sse4
612 prototype void vp9_sad8x4x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
613 specialize vp9_sad8x4x8
615 prototype void vp9_sad4x8x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
616 specialize vp9_sad4x8x8
618 prototype void vp9_sad4x4x8 "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"
619 specialize vp9_sad4x4x8 sse4
621 prototype void vp9_sad64x64x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
622 specialize vp9_sad64x64x4d sse2
624 prototype void vp9_sad32x64x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
625 specialize vp9_sad32x64x4d sse2
627 prototype void vp9_sad64x32x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
628 specialize vp9_sad64x32x4d sse2
630 prototype void vp9_sad32x16x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
631 specialize vp9_sad32x16x4d sse2
633 prototype void vp9_sad16x32x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
634 specialize vp9_sad16x32x4d sse2
636 prototype void vp9_sad32x32x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
637 specialize vp9_sad32x32x4d sse2
639 prototype void vp9_sad16x16x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
640 specialize vp9_sad16x16x4d sse2
642 prototype void vp9_sad16x8x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
643 specialize vp9_sad16x8x4d sse2
645 prototype void vp9_sad8x16x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
646 specialize vp9_sad8x16x4d sse2
648 prototype void vp9_sad8x8x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
649 specialize vp9_sad8x8x4d sse2
651 # TODO(jingning): need to convert these 4x8/8x4 functions into sse2 form
652 prototype void vp9_sad8x4x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
653 specialize vp9_sad8x4x4d sse2
655 prototype void vp9_sad4x8x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
656 specialize vp9_sad4x8x4d sse
658 prototype void vp9_sad4x4x4d "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"
659 specialize vp9_sad4x4x4d sse
661 #prototype unsigned int vp9_sub_pixel_mse16x16 "const uint8_t *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, const uint8_t *dst_ptr, int dst_pixels_per_line, unsigned int *sse"
662 #specialize vp9_sub_pixel_mse16x16 sse2 mmx
664 prototype unsigned int vp9_mse16x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"
665 specialize vp9_mse16x16 mmx $sse2_x86inc $avx2_x86inc
667 prototype unsigned int vp9_mse8x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"
668 specialize vp9_mse8x16
670 prototype unsigned int vp9_mse16x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"
671 specialize vp9_mse16x8
673 prototype unsigned int vp9_mse8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"
674 specialize vp9_mse8x8
676 prototype unsigned int vp9_sub_pixel_mse64x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
677 specialize vp9_sub_pixel_mse64x64
679 prototype unsigned int vp9_sub_pixel_mse32x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
680 specialize vp9_sub_pixel_mse32x32
682 prototype unsigned int vp9_get_mb_ss "const int16_t *"
683 specialize vp9_get_mb_ss mmx sse2
686 prototype int64_t vp9_block_error "int16_t *coeff, int16_t *dqcoeff, intptr_t block_size, int64_t *ssz"
687 specialize vp9_block_error $sse2_x86inc
689 prototype void vp9_subtract_block "int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride"
690 specialize vp9_subtract_block $sse2_x86inc
692 prototype void vp9_quantize_b "const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"
693 specialize vp9_quantize_b $ssse3_x86_64
695 prototype void vp9_quantize_b_32x32 "const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"
696 specialize vp9_quantize_b_32x32 $ssse3_x86_64
699 # Structured Similarity (SSIM)
701 if [ "$CONFIG_INTERNAL_STATS" = "yes" ]; then
702 prototype void vp9_ssim_parms_8x8 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
703 specialize vp9_ssim_parms_8x8 $sse2_x86_64
705 prototype void vp9_ssim_parms_16x16 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
706 specialize vp9_ssim_parms_16x16 $sse2_x86_64
710 prototype void vp9_fht4x4 "const int16_t *input, int16_t *output, int stride, int tx_type"
711 specialize vp9_fht4x4 sse2 avx2
713 prototype void vp9_fht8x8 "const int16_t *input, int16_t *output, int stride, int tx_type"
714 specialize vp9_fht8x8 sse2 avx2
716 prototype void vp9_fht16x16 "const int16_t *input, int16_t *output, int stride, int tx_type"
717 specialize vp9_fht16x16 sse2 avx2
719 prototype void vp9_fwht4x4 "const int16_t *input, int16_t *output, int stride"
720 specialize vp9_fwht4x4
722 prototype void vp9_fdct4x4 "const int16_t *input, int16_t *output, int stride"
723 specialize vp9_fdct4x4 sse2 avx2
725 prototype void vp9_fdct8x8 "const int16_t *input, int16_t *output, int stride"
726 specialize vp9_fdct8x8 sse2 avx2
728 prototype void vp9_fdct16x16 "const int16_t *input, int16_t *output, int stride"
729 specialize vp9_fdct16x16 sse2 avx2
731 prototype void vp9_fdct32x32 "const int16_t *input, int16_t *output, int stride"
732 specialize vp9_fdct32x32 sse2 avx2
734 prototype void vp9_fdct32x32_rd "const int16_t *input, int16_t *output, int stride"
735 specialize vp9_fdct32x32_rd sse2 avx2
740 prototype int vp9_full_search_sad "const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv, int n"
741 specialize vp9_full_search_sad sse3 sse4_1
742 vp9_full_search_sad_sse3=vp9_full_search_sadx3
743 vp9_full_search_sad_sse4_1=vp9_full_search_sadx8
745 prototype int vp9_refining_search_sad "const struct macroblock *x, struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"
746 specialize vp9_refining_search_sad sse3
747 vp9_refining_search_sad_sse3=vp9_refining_search_sadx4
749 prototype int vp9_diamond_search_sad "const struct macroblock *x, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"
750 specialize vp9_diamond_search_sad sse3
751 vp9_diamond_search_sad_sse3=vp9_diamond_search_sadx4
753 prototype int vp9_full_range_search "const struct macroblock *x, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"
754 specialize vp9_full_range_search
756 prototype void vp9_temporal_filter_apply "uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count"
757 specialize vp9_temporal_filter_apply sse2
760 # end encoder functions