Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Side by Side Diff: source/libvpx/vp9/common/vp9_rtcd_defs.pl

Issue 232133009: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp9/common/vp9_reconintra.c ('k') | source/libvpx/vp9/common/vp9_rtcd_defs.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 sub vp9_common_forward_decls() {
2 print <<EOF
3 /*
4 * VP9
5 */
6
7 #include "vpx/vpx_integer.h"
8 #include "vp9/common/vp9_enums.h"
9
10 struct macroblockd;
11
12 /* Encoder forward decls */
13 struct macroblock;
14 struct vp9_variance_vtable;
15
16 #define DEC_MVCOSTS int *mvjcost, int *mvcost[2]
17 struct mv;
18 union int_mv;
19 struct yv12_buffer_config;
20 EOF
21 }
22 forward_decls qw/vp9_common_forward_decls/;
23
24 # x86inc.asm doesn't work if pic is enabled on 32 bit platforms so no assembly.
25 if (vpx_config("CONFIG_USE_X86INC") eq "yes") {
26 $mmx_x86inc = 'mmx';
27 $sse_x86inc = 'sse';
28 $sse2_x86inc = 'sse2';
29 $ssse3_x86inc = 'ssse3';
30 $avx_x86inc = 'avx';
31 $avx2_x86inc = 'avx2';
32 } else {
33 $mmx_x86inc = $sse_x86inc = $sse2_x86inc = $ssse3_x86inc =
34 $avx_x86inc = $avx2_x86inc = '';
35 }
36
37 # this variable is for functions that are 64 bit only.
38 if ($opts{arch} eq "x86_64") {
39 $mmx_x86_64 = 'mmx';
40 $sse2_x86_64 = 'sse2';
41 $ssse3_x86_64 = 'ssse3';
42 $avx_x86_64 = 'avx';
43 $avx2_x86_64 = 'avx2';
44 } else {
45 $mmx_x86_64 = $sse2_x86_64 = $ssse3_x86_64 =
46 $avx_x86_64 = $avx2_x86_64 = '';
47 }
48
49 #
50 # RECON
51 #
52 add_proto qw/void vp9_d207_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
53 specialize qw/vp9_d207_predictor_4x4/, "$ssse3_x86inc";
54
55 add_proto qw/void vp9_d45_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
56 specialize qw/vp9_d45_predictor_4x4/, "$ssse3_x86inc";
57
58 add_proto qw/void vp9_d63_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
59 specialize qw/vp9_d63_predictor_4x4/, "$ssse3_x86inc";
60
61 add_proto qw/void vp9_h_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
62 specialize qw/vp9_h_predictor_4x4 neon dspr2/, "$ssse3_x86inc";
63
64 add_proto qw/void vp9_d117_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
65 specialize qw/vp9_d117_predictor_4x4/;
66
67 add_proto qw/void vp9_d135_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
68 specialize qw/vp9_d135_predictor_4x4/;
69
70 add_proto qw/void vp9_d153_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
71 specialize qw/vp9_d153_predictor_4x4/, "$ssse3_x86inc";
72
73 add_proto qw/void vp9_v_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
74 specialize qw/vp9_v_predictor_4x4 neon/, "$sse_x86inc";
75
76 add_proto qw/void vp9_tm_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, cons t uint8_t *above, const uint8_t *left";
77 specialize qw/vp9_tm_predictor_4x4 neon dspr2/, "$sse_x86inc";
78
79 add_proto qw/void vp9_dc_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, cons t uint8_t *above, const uint8_t *left";
80 specialize qw/vp9_dc_predictor_4x4 dspr2/, "$sse_x86inc";
81
82 add_proto qw/void vp9_dc_top_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
83 specialize qw/vp9_dc_top_predictor_4x4/;
84
85 add_proto qw/void vp9_dc_left_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
86 specialize qw/vp9_dc_left_predictor_4x4/;
87
88 add_proto qw/void vp9_dc_128_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
89 specialize qw/vp9_dc_128_predictor_4x4/;
90
91 add_proto qw/void vp9_d207_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
92 specialize qw/vp9_d207_predictor_8x8/, "$ssse3_x86inc";
93
94 add_proto qw/void vp9_d45_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
95 specialize qw/vp9_d45_predictor_8x8/, "$ssse3_x86inc";
96
97 add_proto qw/void vp9_d63_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
98 specialize qw/vp9_d63_predictor_8x8/, "$ssse3_x86inc";
99
100 add_proto qw/void vp9_h_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
101 specialize qw/vp9_h_predictor_8x8 neon dspr2/, "$ssse3_x86inc";
102
103 add_proto qw/void vp9_d117_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
104 specialize qw/vp9_d117_predictor_8x8/;
105
106 add_proto qw/void vp9_d135_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
107 specialize qw/vp9_d135_predictor_8x8/;
108
109 add_proto qw/void vp9_d153_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
110 specialize qw/vp9_d153_predictor_8x8/, "$ssse3_x86inc";
111
112 add_proto qw/void vp9_v_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
113 specialize qw/vp9_v_predictor_8x8 neon/, "$sse_x86inc";
114
115 add_proto qw/void vp9_tm_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, cons t uint8_t *above, const uint8_t *left";
116 specialize qw/vp9_tm_predictor_8x8 neon dspr2/, "$sse2_x86inc";
117
118 add_proto qw/void vp9_dc_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, cons t uint8_t *above, const uint8_t *left";
119 specialize qw/vp9_dc_predictor_8x8 dspr2/, "$sse_x86inc";
120
121 add_proto qw/void vp9_dc_top_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
122 specialize qw/vp9_dc_top_predictor_8x8/;
123
124 add_proto qw/void vp9_dc_left_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
125 specialize qw/vp9_dc_left_predictor_8x8/;
126
127 add_proto qw/void vp9_dc_128_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
128 specialize qw/vp9_dc_128_predictor_8x8/;
129
130 add_proto qw/void vp9_d207_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
131 specialize qw/vp9_d207_predictor_16x16/, "$ssse3_x86inc";
132
133 add_proto qw/void vp9_d45_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, c onst uint8_t *above, const uint8_t *left";
134 specialize qw/vp9_d45_predictor_16x16/, "$ssse3_x86inc";
135
136 add_proto qw/void vp9_d63_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, c onst uint8_t *above, const uint8_t *left";
137 specialize qw/vp9_d63_predictor_16x16/, "$ssse3_x86inc";
138
139 add_proto qw/void vp9_h_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
140 specialize qw/vp9_h_predictor_16x16 neon dspr2/, "$ssse3_x86inc";
141
142 add_proto qw/void vp9_d117_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
143 specialize qw/vp9_d117_predictor_16x16/;
144
145 add_proto qw/void vp9_d135_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
146 specialize qw/vp9_d135_predictor_16x16/;
147
148 add_proto qw/void vp9_d153_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
149 specialize qw/vp9_d153_predictor_16x16/, "$ssse3_x86inc";
150
151 add_proto qw/void vp9_v_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
152 specialize qw/vp9_v_predictor_16x16 neon/, "$sse2_x86inc";
153
154 add_proto qw/void vp9_tm_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
155 specialize qw/vp9_tm_predictor_16x16 neon/, "$sse2_x86inc";
156
157 add_proto qw/void vp9_dc_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
158 specialize qw/vp9_dc_predictor_16x16 dspr2/, "$sse2_x86inc";
159
160 add_proto qw/void vp9_dc_top_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride , const uint8_t *above, const uint8_t *left";
161 specialize qw/vp9_dc_top_predictor_16x16/;
162
163 add_proto qw/void vp9_dc_left_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_strid e, const uint8_t *above, const uint8_t *left";
164 specialize qw/vp9_dc_left_predictor_16x16/;
165
166 add_proto qw/void vp9_dc_128_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride , const uint8_t *above, const uint8_t *left";
167 specialize qw/vp9_dc_128_predictor_16x16/;
168
169 add_proto qw/void vp9_d207_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
170 specialize qw/vp9_d207_predictor_32x32/, "$ssse3_x86inc";
171
172 add_proto qw/void vp9_d45_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, c onst uint8_t *above, const uint8_t *left";
173 specialize qw/vp9_d45_predictor_32x32/, "$ssse3_x86inc";
174
175 add_proto qw/void vp9_d63_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, c onst uint8_t *above, const uint8_t *left";
176 specialize qw/vp9_d63_predictor_32x32/, "$ssse3_x86inc";
177
178 add_proto qw/void vp9_h_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
179 specialize qw/vp9_h_predictor_32x32 neon/, "$ssse3_x86inc";
180
181 add_proto qw/void vp9_d117_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
182 specialize qw/vp9_d117_predictor_32x32/;
183
184 add_proto qw/void vp9_d135_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
185 specialize qw/vp9_d135_predictor_32x32/;
186
187 add_proto qw/void vp9_d153_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
188 specialize qw/vp9_d153_predictor_32x32/;
189
190 add_proto qw/void vp9_v_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, con st uint8_t *above, const uint8_t *left";
191 specialize qw/vp9_v_predictor_32x32 neon/, "$sse2_x86inc";
192
193 add_proto qw/void vp9_tm_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
194 specialize qw/vp9_tm_predictor_32x32 neon/, "$sse2_x86_64";
195
196 add_proto qw/void vp9_dc_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, co nst uint8_t *above, const uint8_t *left";
197 specialize qw/vp9_dc_predictor_32x32/, "$sse2_x86inc";
198
199 add_proto qw/void vp9_dc_top_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride , const uint8_t *above, const uint8_t *left";
200 specialize qw/vp9_dc_top_predictor_32x32/;
201
202 add_proto qw/void vp9_dc_left_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_strid e, const uint8_t *above, const uint8_t *left";
203 specialize qw/vp9_dc_left_predictor_32x32/;
204
205 add_proto qw/void vp9_dc_128_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride , const uint8_t *above, const uint8_t *left";
206 specialize qw/vp9_dc_128_predictor_32x32/;
207
208 #
209 # Loopfilter
210 #
211 add_proto qw/void vp9_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *b limit, const uint8_t *limit, const uint8_t *thresh";
212 specialize qw/vp9_lpf_vertical_16 sse2 neon dspr2/;
213
214 add_proto qw/void vp9_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8 _t *blimit, const uint8_t *limit, const uint8_t *thresh";
215 specialize qw/vp9_lpf_vertical_16_dual sse2 neon dspr2/;
216
217 add_proto qw/void vp9_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *bl imit, const uint8_t *limit, const uint8_t *thresh, int count";
218 specialize qw/vp9_lpf_vertical_8 sse2 neon dspr2/;
219
220 add_proto qw/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 *blimit 1, const uint8_t *limit1, const uint8_t *thresh1";
221 specialize qw/vp9_lpf_vertical_8_dual sse2 neon dspr2/;
222
223 add_proto qw/void vp9_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *bl imit, const uint8_t *limit, const uint8_t *thresh, int count";
224 specialize qw/vp9_lpf_vertical_4 mmx neon dspr2/;
225
226 add_proto qw/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 *blimit 1, const uint8_t *limit1, const uint8_t *thresh1";
227 specialize qw/vp9_lpf_vertical_4_dual sse2 neon dspr2/;
228
229 add_proto qw/void vp9_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count";
230 specialize qw/vp9_lpf_horizontal_16 sse2 avx2 neon dspr2/;
231
232 add_proto qw/void vp9_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t * blimit, const uint8_t *limit, const uint8_t *thresh, int count";
233 specialize qw/vp9_lpf_horizontal_8 sse2 neon dspr2/;
234
235 add_proto qw/void vp9_lpf_horizontal_8_dual/, "uint8_t *s, int pitch, const uint 8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blim it1, const uint8_t *limit1, const uint8_t *thresh1";
236 specialize qw/vp9_lpf_horizontal_8_dual sse2 neon dspr2/;
237
238 add_proto qw/void vp9_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t * blimit, const uint8_t *limit, const uint8_t *thresh, int count";
239 specialize qw/vp9_lpf_horizontal_4 mmx neon dspr2/;
240
241 add_proto qw/void vp9_lpf_horizontal_4_dual/, "uint8_t *s, int pitch, const uint 8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blim it1, const uint8_t *limit1, const uint8_t *thresh1";
242 specialize qw/vp9_lpf_horizontal_4_dual sse2 neon dspr2/;
243
244 #
245 # post proc
246 #
247 if (vpx_config("CONFIG_VP9_POSTPROC") eq "yes") {
248 add_proto qw/void vp9_mbpost_proc_down/, "uint8_t *dst, int pitch, int rows, int cols, int flimit";
249 specialize qw/vp9_mbpost_proc_down mmx sse2/;
250 $vp9_mbpost_proc_down_sse2=vp9_mbpost_proc_down_xmm;
251
252 add_proto qw/void vp9_mbpost_proc_across_ip/, "uint8_t *src, int pitch, int rows , int cols, int flimit";
253 specialize qw/vp9_mbpost_proc_across_ip sse2/;
254 $vp9_mbpost_proc_across_ip_sse2=vp9_mbpost_proc_across_ip_xmm;
255
256 add_proto qw/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 col s, int flimit";
257 specialize qw/vp9_post_proc_down_and_across mmx sse2/;
258 $vp9_post_proc_down_and_across_sse2=vp9_post_proc_down_and_across_xmm;
259
260 add_proto qw/void vp9_plane_add_noise/, "uint8_t *Start, char *noise, char black clamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch";
261 specialize qw/vp9_plane_add_noise mmx sse2/;
262 $vp9_plane_add_noise_sse2=vp9_plane_add_noise_wmt;
263 }
264
265 add_proto qw/void vp9_blend_mb_inner/, "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride";
266 specialize qw/vp9_blend_mb_inner/;
267
268 add_proto qw/void vp9_blend_mb_outer/, "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride";
269 specialize qw/vp9_blend_mb_outer/;
270
271 add_proto qw/void vp9_blend_b/, "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride";
272 specialize qw/vp9_blend_b/;
273
274 #
275 # Sub Pixel Filters
276 #
277 add_proto qw/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, con st int16_t *filter_y, int y_step_q4, int w, int h";
278 specialize qw/vp9_convolve_copy neon dspr2/, "$sse2_x86inc";
279
280 add_proto qw/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, cons t int16_t *filter_y, int y_step_q4, int w, int h";
281 specialize qw/vp9_convolve_avg neon dspr2/, "$sse2_x86inc";
282
283 add_proto qw/void vp9_convolve8/, "const uint8_t *src, ptrdiff_t src_stride, uin t8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const i nt16_t *filter_y, int y_step_q4, int w, int h";
284 specialize qw/vp9_convolve8 sse2 ssse3 avx2 neon dspr2/;
285
286 add_proto qw/void vp9_convolve8_horiz/, "const uint8_t *src, ptrdiff_t src_strid e, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, c onst int16_t *filter_y, int y_step_q4, int w, int h";
287 specialize qw/vp9_convolve8_horiz sse2 ssse3 avx2 neon dspr2/;
288
289 add_proto qw/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, co nst int16_t *filter_y, int y_step_q4, int w, int h";
290 specialize qw/vp9_convolve8_vert sse2 ssse3 avx2 neon dspr2/;
291
292 add_proto qw/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, con st int16_t *filter_y, int y_step_q4, int w, int h";
293 specialize qw/vp9_convolve8_avg sse2 ssse3 neon dspr2/;
294
295 add_proto qw/void vp9_convolve8_avg_horiz/, "const uint8_t *src, ptrdiff_t src_s tride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q 4, const int16_t *filter_y, int y_step_q4, int w, int h";
296 specialize qw/vp9_convolve8_avg_horiz sse2 ssse3 neon dspr2/;
297
298 add_proto qw/void vp9_convolve8_avg_vert/, "const uint8_t *src, ptrdiff_t src_st ride, 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";
299 specialize qw/vp9_convolve8_avg_vert sse2 ssse3 neon dspr2/;
300
301 #
302 # dct
303 #
304 add_proto qw/void vp9_idct4x4_1_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
305 specialize qw/vp9_idct4x4_1_add sse2 neon dspr2/;
306
307 add_proto qw/void vp9_idct4x4_16_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
308 specialize qw/vp9_idct4x4_16_add sse2 neon dspr2/;
309
310 add_proto qw/void vp9_idct8x8_1_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
311 specialize qw/vp9_idct8x8_1_add sse2 neon dspr2/;
312
313 add_proto qw/void vp9_idct8x8_64_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
314 specialize qw/vp9_idct8x8_64_add sse2 neon dspr2/;
315
316 add_proto qw/void vp9_idct8x8_10_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
317 specialize qw/vp9_idct8x8_10_add sse2 neon dspr2/;
318
319 add_proto qw/void vp9_idct16x16_1_add/, "const int16_t *input, uint8_t *dest, in t dest_stride";
320 specialize qw/vp9_idct16x16_1_add sse2 neon dspr2/;
321
322 add_proto qw/void vp9_idct16x16_256_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
323 specialize qw/vp9_idct16x16_256_add sse2 neon dspr2/;
324
325 add_proto qw/void vp9_idct16x16_10_add/, "const int16_t *input, uint8_t *dest, i nt dest_stride";
326 specialize qw/vp9_idct16x16_10_add sse2 neon dspr2/;
327
328 add_proto qw/void vp9_idct32x32_1024_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
329 specialize qw/vp9_idct32x32_1024_add sse2 neon dspr2/;
330
331 add_proto qw/void vp9_idct32x32_34_add/, "const int16_t *input, uint8_t *dest, i nt dest_stride";
332 specialize qw/vp9_idct32x32_34_add sse2 neon dspr2/;
333 $vp9_idct32x32_34_add_neon=vp9_idct32x32_1024_add_neon;
334
335 add_proto qw/void vp9_idct32x32_1_add/, "const int16_t *input, uint8_t *dest, in t dest_stride";
336 specialize qw/vp9_idct32x32_1_add sse2 neon dspr2/;
337
338 add_proto qw/void vp9_iht4x4_16_add/, "const int16_t *input, uint8_t *dest, int dest_stride, int tx_type";
339 specialize qw/vp9_iht4x4_16_add sse2 neon dspr2/;
340
341 add_proto qw/void vp9_iht8x8_64_add/, "const int16_t *input, uint8_t *dest, int dest_stride, int tx_type";
342 specialize qw/vp9_iht8x8_64_add sse2 neon dspr2/;
343
344 add_proto qw/void vp9_iht16x16_256_add/, "const int16_t *input, uint8_t *output, int pitch, int tx_type";
345 specialize qw/vp9_iht16x16_256_add sse2 dspr2/;
346
347 # dct and add
348
349 add_proto qw/void vp9_iwht4x4_1_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
350 specialize qw/vp9_iwht4x4_1_add/;
351
352 add_proto qw/void vp9_iwht4x4_16_add/, "const int16_t *input, uint8_t *dest, int dest_stride";
353 specialize qw/vp9_iwht4x4_16_add/;
354
355 #
356 # Encoder functions below this point.
357 #
358 if (vpx_config("CONFIG_VP9_ENCODER") eq "yes") {
359
360
361 # variance
362 add_proto qw/unsigned int vp9_variance32x16/, "const uint8_t *src_ptr, int sourc e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
363 specialize qw/vp9_variance32x16/, "$sse2_x86inc", "$avx2_x86inc";
364
365 add_proto qw/unsigned int vp9_variance16x32/, "const uint8_t *src_ptr, int sourc e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
366 specialize qw/vp9_variance16x32/, "$sse2_x86inc";
367
368 add_proto qw/unsigned int vp9_variance64x32/, "const uint8_t *src_ptr, int sourc e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
369 specialize qw/vp9_variance64x32/, "$sse2_x86inc", "$avx2_x86inc";
370
371 add_proto qw/unsigned int vp9_variance32x64/, "const uint8_t *src_ptr, int sourc e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
372 specialize qw/vp9_variance32x64/, "$sse2_x86inc";
373
374 add_proto qw/unsigned int vp9_variance32x32/, "const uint8_t *src_ptr, int sourc e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
375 specialize qw/vp9_variance32x32/, "$sse2_x86inc", "$avx2_x86inc";
376
377 add_proto qw/unsigned int vp9_variance64x64/, "const uint8_t *src_ptr, int sourc e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
378 specialize qw/vp9_variance64x64/, "$sse2_x86inc", "$avx2_x86inc";
379
380 add_proto qw/unsigned int vp9_variance16x16/, "const uint8_t *src_ptr, int sourc e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
381 specialize qw/vp9_variance16x16 mmx/, "$sse2_x86inc", "$avx2_x86inc";
382
383 add_proto qw/void vp9_get_sse_sum_16x16/, "const uint8_t *src_ptr, int source_st ride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum";
384 specialize qw/vp9_get_sse_sum_16x16 sse2/;
385 $vp9_get_sse_sum_16x16_sse2=vp9_get16x16var_sse2;
386
387 add_proto qw/unsigned int vp9_variance16x8/, "const uint8_t *src_ptr, int source _stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
388 specialize qw/vp9_variance16x8 mmx/, "$sse2_x86inc";
389
390 add_proto qw/unsigned int vp9_variance8x16/, "const uint8_t *src_ptr, int source _stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
391 specialize qw/vp9_variance8x16 mmx/, "$sse2_x86inc";
392
393 add_proto qw/unsigned int vp9_variance8x8/, "const uint8_t *src_ptr, int source_ stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
394 specialize qw/vp9_variance8x8 mmx/, "$sse2_x86inc";
395
396 add_proto qw/void vp9_get_sse_sum_8x8/, "const uint8_t *src_ptr, int source_stri de, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum";
397 specialize qw/vp9_get_sse_sum_8x8 sse2/;
398 $vp9_get_sse_sum_8x8_sse2=vp9_get8x8var_sse2;
399
400 add_proto qw/unsigned int vp9_variance8x4/, "const uint8_t *src_ptr, int source_ stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
401 specialize qw/vp9_variance8x4/, "$sse2_x86inc";
402
403 add_proto qw/unsigned int vp9_variance4x8/, "const uint8_t *src_ptr, int source_ stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
404 specialize qw/vp9_variance4x8/, "$sse2_x86inc";
405
406 add_proto qw/unsigned int vp9_variance4x4/, "const uint8_t *src_ptr, int source_ stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
407 specialize qw/vp9_variance4x4 mmx/, "$sse2_x86inc";
408
409 add_proto qw/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_s tride, unsigned int *sse";
410 specialize qw/vp9_sub_pixel_variance64x64 avx2/, "$sse2_x86inc", "$ssse3_x86inc" ;
411
412 add_proto qw/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 r ef_stride, unsigned int *sse, const uint8_t *second_pred";
413 specialize qw/vp9_sub_pixel_avg_variance64x64 avx2/, "$sse2_x86inc", "$ssse3_x86 inc";
414
415 add_proto qw/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_s tride, unsigned int *sse";
416 specialize qw/vp9_sub_pixel_variance32x64/, "$sse2_x86inc", "$ssse3_x86inc";
417
418 add_proto qw/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 r ef_stride, unsigned int *sse, const uint8_t *second_pred";
419 specialize qw/vp9_sub_pixel_avg_variance32x64/, "$sse2_x86inc", "$ssse3_x86inc";
420
421 add_proto qw/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_s tride, unsigned int *sse";
422 specialize qw/vp9_sub_pixel_variance64x32/, "$sse2_x86inc", "$ssse3_x86inc";
423
424 add_proto qw/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 r ef_stride, unsigned int *sse, const uint8_t *second_pred";
425 specialize qw/vp9_sub_pixel_avg_variance64x32/, "$sse2_x86inc", "$ssse3_x86inc";
426
427 add_proto qw/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_s tride, unsigned int *sse";
428 specialize qw/vp9_sub_pixel_variance32x16/, "$sse2_x86inc", "$ssse3_x86inc";
429
430 add_proto qw/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 r ef_stride, unsigned int *sse, const uint8_t *second_pred";
431 specialize qw/vp9_sub_pixel_avg_variance32x16/, "$sse2_x86inc", "$ssse3_x86inc";
432
433 add_proto qw/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_s tride, unsigned int *sse";
434 specialize qw/vp9_sub_pixel_variance16x32/, "$sse2_x86inc", "$ssse3_x86inc";
435
436 add_proto qw/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 r ef_stride, unsigned int *sse, const uint8_t *second_pred";
437 specialize qw/vp9_sub_pixel_avg_variance16x32/, "$sse2_x86inc", "$ssse3_x86inc";
438
439 add_proto qw/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_s tride, unsigned int *sse";
440 specialize qw/vp9_sub_pixel_variance32x32 avx2/, "$sse2_x86inc", "$ssse3_x86inc" ;
441
442 add_proto qw/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 r ef_stride, unsigned int *sse, const uint8_t *second_pred";
443 specialize qw/vp9_sub_pixel_avg_variance32x32 avx2/, "$sse2_x86inc", "$ssse3_x86 inc";
444
445 add_proto qw/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_s tride, unsigned int *sse";
446 specialize qw/vp9_sub_pixel_variance16x16/, "$sse2_x86inc", "$ssse3_x86inc";
447
448 add_proto qw/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 r ef_stride, unsigned int *sse, const uint8_t *second_pred";
449 specialize qw/vp9_sub_pixel_avg_variance16x16/, "$sse2_x86inc", "$ssse3_x86inc";
450
451 add_proto qw/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_st ride, unsigned int *sse";
452 specialize qw/vp9_sub_pixel_variance8x16/, "$sse2_x86inc", "$ssse3_x86inc";
453
454 add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x16/, "const uint8_t *src_p tr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int re f_stride, unsigned int *sse, const uint8_t *second_pred";
455 specialize qw/vp9_sub_pixel_avg_variance8x16/, "$sse2_x86inc", "$ssse3_x86inc";
456
457 add_proto qw/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_st ride, unsigned int *sse";
458 specialize qw/vp9_sub_pixel_variance16x8/, "$sse2_x86inc", "$ssse3_x86inc";
459
460 add_proto qw/unsigned int vp9_sub_pixel_avg_variance16x8/, "const uint8_t *src_p tr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int re f_stride, unsigned int *sse, const uint8_t *second_pred";
461 specialize qw/vp9_sub_pixel_avg_variance16x8/, "$sse2_x86inc", "$ssse3_x86inc";
462
463 add_proto qw/unsigned int vp9_sub_pixel_variance8x8/, "const uint8_t *src_ptr, i nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_str ide, unsigned int *sse";
464 specialize qw/vp9_sub_pixel_variance8x8/, "$sse2_x86inc", "$ssse3_x86inc";
465
466 add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x8/, "const uint8_t *src_pt r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref _stride, unsigned int *sse, const uint8_t *second_pred";
467 specialize qw/vp9_sub_pixel_avg_variance8x8/, "$sse2_x86inc", "$ssse3_x86inc";
468
469 # TODO(jingning): need to convert 8x4/4x8 functions into mmx/sse form
470 add_proto qw/unsigned int vp9_sub_pixel_variance8x4/, "const uint8_t *src_ptr, i nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stri de, unsigned int *sse";
471 specialize qw/vp9_sub_pixel_variance8x4/, "$sse2_x86inc", "$ssse3_x86inc";
472
473 add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x4/, "const uint8_t *src_pt r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_ stride, unsigned int *sse, const uint8_t *second_pred";
474 specialize qw/vp9_sub_pixel_avg_variance8x4/, "$sse2_x86inc", "$ssse3_x86inc";
475
476 add_proto qw/unsigned int vp9_sub_pixel_variance4x8/, "const uint8_t *src_ptr, i nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stri de, unsigned int *sse";
477 specialize qw/vp9_sub_pixel_variance4x8/, "$sse_x86inc", "$ssse3_x86inc";
478
479 add_proto qw/unsigned int vp9_sub_pixel_avg_variance4x8/, "const uint8_t *src_pt r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_ stride, unsigned int *sse, const uint8_t *second_pred";
480 specialize qw/vp9_sub_pixel_avg_variance4x8/, "$sse_x86inc", "$ssse3_x86inc";
481
482 add_proto qw/unsigned int vp9_sub_pixel_variance4x4/, "const uint8_t *src_ptr, i nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_str ide, unsigned int *sse";
483 specialize qw/vp9_sub_pixel_variance4x4/, "$sse_x86inc", "$ssse3_x86inc";
484 #vp9_sub_pixel_variance4x4_sse2=vp9_sub_pixel_variance4x4_wmt
485
486 add_proto qw/unsigned int vp9_sub_pixel_avg_variance4x4/, "const uint8_t *src_pt r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref _stride, unsigned int *sse, const uint8_t *second_pred";
487 specialize qw/vp9_sub_pixel_avg_variance4x4/, "$sse_x86inc", "$ssse3_x86inc";
488
489 add_proto qw/unsigned int vp9_sad64x64/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
490 specialize qw/vp9_sad64x64/, "$sse2_x86inc";
491
492 add_proto qw/unsigned int vp9_sad32x64/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
493 specialize qw/vp9_sad32x64/, "$sse2_x86inc";
494
495 add_proto qw/unsigned int vp9_sad64x32/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
496 specialize qw/vp9_sad64x32/, "$sse2_x86inc";
497
498 add_proto qw/unsigned int vp9_sad32x16/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
499 specialize qw/vp9_sad32x16/, "$sse2_x86inc";
500
501 add_proto qw/unsigned int vp9_sad16x32/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
502 specialize qw/vp9_sad16x32/, "$sse2_x86inc";
503
504 add_proto qw/unsigned int vp9_sad32x32/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
505 specialize qw/vp9_sad32x32/, "$sse2_x86inc";
506
507 add_proto qw/unsigned int vp9_sad16x16/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
508 specialize qw/vp9_sad16x16 mmx/, "$sse2_x86inc";
509
510 add_proto qw/unsigned int vp9_sad16x8/, "const uint8_t *src_ptr, int source_stri de, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
511 specialize qw/vp9_sad16x8 mmx/, "$sse2_x86inc";
512
513 add_proto qw/unsigned int vp9_sad8x16/, "const uint8_t *src_ptr, int source_stri de, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
514 specialize qw/vp9_sad8x16 mmx/, "$sse2_x86inc";
515
516 add_proto qw/unsigned int vp9_sad8x8/, "const uint8_t *src_ptr, int source_strid e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
517 specialize qw/vp9_sad8x8 mmx/, "$sse2_x86inc";
518
519 add_proto qw/unsigned int vp9_sad8x4/, "const uint8_t *src_ptr, int source_strid e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
520 specialize qw/vp9_sad8x4/, "$sse2_x86inc";
521
522 add_proto qw/unsigned int vp9_sad4x8/, "const uint8_t *src_ptr, int source_strid e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
523 specialize qw/vp9_sad4x8/, "$sse_x86inc";
524
525 add_proto qw/unsigned int vp9_sad4x4/, "const uint8_t *src_ptr, int source_strid e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad";
526 specialize qw/vp9_sad4x4 mmx/, "$sse_x86inc";
527
528 add_proto qw/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, un signed int max_sad";
529 specialize qw/vp9_sad64x64_avg/, "$sse2_x86inc";
530
531 add_proto qw/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, uns igned int max_sad";
532 specialize qw/vp9_sad32x64_avg/, "$sse2_x86inc";
533
534 add_proto qw/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, uns igned int max_sad";
535 specialize qw/vp9_sad64x32_avg/, "$sse2_x86inc";
536
537 add_proto qw/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, uns igned int max_sad";
538 specialize qw/vp9_sad32x16_avg/, "$sse2_x86inc";
539
540 add_proto qw/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, uns igned int max_sad";
541 specialize qw/vp9_sad16x32_avg/, "$sse2_x86inc";
542
543 add_proto qw/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, un signed int max_sad";
544 specialize qw/vp9_sad32x32_avg/, "$sse2_x86inc";
545
546 add_proto qw/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, un signed int max_sad";
547 specialize qw/vp9_sad16x16_avg/, "$sse2_x86inc";
548
549 add_proto qw/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, uns igned int max_sad";
550 specialize qw/vp9_sad16x8_avg/, "$sse2_x86inc";
551
552 add_proto qw/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, uns igned int max_sad";
553 specialize qw/vp9_sad8x16_avg/, "$sse2_x86inc";
554
555 add_proto qw/unsigned int vp9_sad8x8_avg/, "const uint8_t *src_ptr, int source_s tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsi gned int max_sad";
556 specialize qw/vp9_sad8x8_avg/, "$sse2_x86inc";
557
558 add_proto qw/unsigned int vp9_sad8x4_avg/, "const uint8_t *src_ptr, int source_s tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsig ned int max_sad";
559 specialize qw/vp9_sad8x4_avg/, "$sse2_x86inc";
560
561 add_proto qw/unsigned int vp9_sad4x8_avg/, "const uint8_t *src_ptr, int source_s tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsig ned int max_sad";
562 specialize qw/vp9_sad4x8_avg/, "$sse_x86inc";
563
564 add_proto qw/unsigned int vp9_sad4x4_avg/, "const uint8_t *src_ptr, int source_s tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsi gned int max_sad";
565 specialize qw/vp9_sad4x4_avg/, "$sse_x86inc";
566
567 add_proto qw/unsigned int vp9_variance_halfpixvar16x16_h/, "const uint8_t *src_p tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse ";
568 specialize qw/vp9_variance_halfpixvar16x16_h/, "$sse2_x86inc";
569
570 add_proto qw/unsigned int vp9_variance_halfpixvar16x16_v/, "const uint8_t *src_p tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse ";
571 specialize qw/vp9_variance_halfpixvar16x16_v/, "$sse2_x86inc";
572
573 add_proto qw/unsigned int vp9_variance_halfpixvar16x16_hv/, "const uint8_t *src_ ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *ss e";
574 specialize qw/vp9_variance_halfpixvar16x16_hv/, "$sse2_x86inc";
575
576 add_proto qw/unsigned int vp9_variance_halfpixvar64x64_h/, "const uint8_t *src_p tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse ";
577 specialize qw/vp9_variance_halfpixvar64x64_h/;
578
579 add_proto qw/unsigned int vp9_variance_halfpixvar64x64_v/, "const uint8_t *src_p tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse ";
580 specialize qw/vp9_variance_halfpixvar64x64_v/;
581
582 add_proto qw/unsigned int vp9_variance_halfpixvar64x64_hv/, "const uint8_t *src_ ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *ss e";
583 specialize qw/vp9_variance_halfpixvar64x64_hv/;
584
585 add_proto qw/unsigned int vp9_variance_halfpixvar32x32_h/, "const uint8_t *src_p tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse ";
586 specialize qw/vp9_variance_halfpixvar32x32_h/;
587
588 add_proto qw/unsigned int vp9_variance_halfpixvar32x32_v/, "const uint8_t *src_p tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse ";
589 specialize qw/vp9_variance_halfpixvar32x32_v/;
590
591 add_proto qw/unsigned int vp9_variance_halfpixvar32x32_hv/, "const uint8_t *src_ ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *ss e";
592 specialize qw/vp9_variance_halfpixvar32x32_hv/;
593
594 add_proto qw/void vp9_sad64x64x3/, "const uint8_t *src_ptr, int source_stride, c onst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array";
595 specialize qw/vp9_sad64x64x3/;
596
597 add_proto qw/void vp9_sad32x32x3/, "const uint8_t *src_ptr, int source_stride, c onst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array";
598 specialize qw/vp9_sad32x32x3/;
599
600 add_proto qw/void vp9_sad16x16x3/, "const uint8_t *src_ptr, int source_stride, c onst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array";
601 specialize qw/vp9_sad16x16x3 sse3 ssse3/;
602
603 add_proto qw/void vp9_sad16x8x3/, "const uint8_t *src_ptr, int source_stride, co nst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array";
604 specialize qw/vp9_sad16x8x3 sse3 ssse3/;
605
606 add_proto qw/void vp9_sad8x16x3/, "const uint8_t *src_ptr, int source_stride, co nst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array";
607 specialize qw/vp9_sad8x16x3 sse3/;
608
609 add_proto qw/void vp9_sad8x8x3/, "const uint8_t *src_ptr, int source_stride, con st uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array";
610 specialize qw/vp9_sad8x8x3 sse3/;
611
612 add_proto qw/void vp9_sad4x4x3/, "const uint8_t *src_ptr, int source_stride, con st uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array";
613 specialize qw/vp9_sad4x4x3 sse3/;
614
615 add_proto qw/void vp9_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, con st uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
616 specialize qw/vp9_sad64x64x8/;
617
618 add_proto qw/void vp9_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, con st uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
619 specialize qw/vp9_sad32x32x8/;
620
621 add_proto qw/void vp9_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, con st uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
622 specialize qw/vp9_sad16x16x8 sse4/;
623
624 add_proto qw/void vp9_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, cons t uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
625 specialize qw/vp9_sad16x8x8 sse4/;
626
627 add_proto qw/void vp9_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, cons t uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
628 specialize qw/vp9_sad8x16x8 sse4/;
629
630 add_proto qw/void vp9_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
631 specialize qw/vp9_sad8x8x8 sse4/;
632
633 add_proto qw/void vp9_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
634 specialize qw/vp9_sad8x4x8/;
635
636 add_proto qw/void vp9_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
637 specialize qw/vp9_sad4x8x8/;
638
639 add_proto qw/void vp9_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
640 specialize qw/vp9_sad4x4x8 sse4/;
641
642 add_proto qw/void vp9_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, co nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
643 specialize qw/vp9_sad64x64x4d sse2 avx2/;
644
645 add_proto qw/void vp9_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, co nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
646 specialize qw/vp9_sad32x64x4d sse2/;
647
648 add_proto qw/void vp9_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, co nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
649 specialize qw/vp9_sad64x32x4d sse2/;
650
651 add_proto qw/void vp9_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, co nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
652 specialize qw/vp9_sad32x16x4d sse2/;
653
654 add_proto qw/void vp9_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, co nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
655 specialize qw/vp9_sad16x32x4d sse2/;
656
657 add_proto qw/void vp9_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, co nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
658 specialize qw/vp9_sad32x32x4d sse2 avx2/;
659
660 add_proto qw/void vp9_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, co nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
661 specialize qw/vp9_sad16x16x4d sse2/;
662
663 add_proto qw/void vp9_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, con st uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
664 specialize qw/vp9_sad16x8x4d sse2/;
665
666 add_proto qw/void vp9_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, con st uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
667 specialize qw/vp9_sad8x16x4d sse2/;
668
669 add_proto qw/void vp9_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, cons t uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
670 specialize qw/vp9_sad8x8x4d sse2/;
671
672 # TODO(jingning): need to convert these 4x8/8x4 functions into sse2 form
673 add_proto qw/void vp9_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
674 specialize qw/vp9_sad8x4x4d sse2/;
675
676 add_proto qw/void vp9_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
677 specialize qw/vp9_sad4x8x4d sse/;
678
679 add_proto qw/void vp9_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, cons t uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array";
680 specialize qw/vp9_sad4x4x4d sse/;
681
682 #add_proto qw/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 d st_pixels_per_line, unsigned int *sse";
683 #specialize qw/vp9_sub_pixel_mse16x16 sse2 mmx/;
684
685 add_proto qw/unsigned int vp9_mse16x16/, "const uint8_t *src_ptr, int source_st ride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse";
686 specialize qw/vp9_mse16x16 mmx/, "$sse2_x86inc", "$avx2_x86inc";
687
688 add_proto qw/unsigned int vp9_mse8x16/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse";
689 specialize qw/vp9_mse8x16/;
690
691 add_proto qw/unsigned int vp9_mse16x8/, "const uint8_t *src_ptr, int source_str ide, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse";
692 specialize qw/vp9_mse16x8/;
693
694 add_proto qw/unsigned int vp9_mse8x8/, "const uint8_t *src_ptr, int source_stri de, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse";
695 specialize qw/vp9_mse8x8/;
696
697 add_proto qw/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_stri de, unsigned int *sse";
698 specialize qw/vp9_sub_pixel_mse64x64/;
699
700 add_proto qw/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_stri de, unsigned int *sse";
701 specialize qw/vp9_sub_pixel_mse32x32/;
702
703 add_proto qw/unsigned int vp9_get_mb_ss/, "const int16_t *";
704 specialize qw/vp9_get_mb_ss mmx sse2/;
705 # ENCODEMB INVOKE
706
707 add_proto qw/int64_t vp9_block_error/, "const int16_t *coeff, const int16_t *dqc oeff, intptr_t block_size, int64_t *ssz";
708 specialize qw/vp9_block_error/, "$sse2_x86inc";
709
710 add_proto qw/void vp9_subtract_block/, "int rows, int cols, int16_t *diff_ptr, p trdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_ t *pred_ptr, ptrdiff_t pred_stride";
711 specialize qw/vp9_subtract_block/, "$sse2_x86inc";
712
713 add_proto qw/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 *dqco eff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
714 specialize qw/vp9_quantize_b/, "$ssse3_x86_64";
715
716 add_proto qw/void vp9_quantize_b_32x32/, "const int16_t *coeff_ptr, intptr_t n_c oeffs, 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";
717 specialize qw/vp9_quantize_b_32x32/, "$ssse3_x86_64";
718
719 #
720 # Structured Similarity (SSIM)
721 #
722 if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") {
723 add_proto qw/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, unsigne d long *sum_sq_r, unsigned long *sum_sxr";
724 specialize qw/vp9_ssim_parms_8x8/, "$sse2_x86_64";
725
726 add_proto qw/void vp9_ssim_parms_16x16/, "uint8_t *s, int sp, uint8_t *r, in t rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsig ned long *sum_sq_r, unsigned long *sum_sxr";
727 specialize qw/vp9_ssim_parms_16x16/, "$sse2_x86_64";
728 }
729
730 # fdct functions
731 add_proto qw/void vp9_fht4x4/, "const int16_t *input, int16_t *output, int strid e, int tx_type";
732 specialize qw/vp9_fht4x4 sse2 avx2/;
733
734 add_proto qw/void vp9_fht8x8/, "const int16_t *input, int16_t *output, int strid e, int tx_type";
735 specialize qw/vp9_fht8x8 sse2 avx2/;
736
737 add_proto qw/void vp9_fht16x16/, "const int16_t *input, int16_t *output, int str ide, int tx_type";
738 specialize qw/vp9_fht16x16 sse2 avx2/;
739
740 add_proto qw/void vp9_fwht4x4/, "const int16_t *input, int16_t *output, int stri de";
741 specialize qw/vp9_fwht4x4/;
742
743 add_proto qw/void vp9_fdct4x4/, "const int16_t *input, int16_t *output, int stri de";
744 specialize qw/vp9_fdct4x4 sse2 avx2/;
745
746 add_proto qw/void vp9_fdct8x8/, "const int16_t *input, int16_t *output, int stri de";
747 specialize qw/vp9_fdct8x8 sse2 avx2/;
748
749 add_proto qw/void vp9_fdct16x16/, "const int16_t *input, int16_t *output, int st ride";
750 specialize qw/vp9_fdct16x16 sse2 avx2/;
751
752 add_proto qw/void vp9_fdct32x32/, "const int16_t *input, int16_t *output, int st ride";
753 specialize qw/vp9_fdct32x32 sse2 avx2/;
754
755 add_proto qw/void vp9_fdct32x32_rd/, "const int16_t *input, int16_t *output, int stride";
756 specialize qw/vp9_fdct32x32_rd sse2 avx2/;
757
758 #
759 # Motion search
760 #
761 add_proto qw/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, struct mv *best_mv";
762 specialize qw/vp9_full_search_sad sse3 sse4_1/;
763 $vp9_full_search_sad_sse3=vp9_full_search_sadx3;
764 $vp9_full_search_sad_sse4_1=vp9_full_search_sadx8;
765
766 add_proto qw/int vp9_refining_search_sad/, "const struct macroblock *x, struct m v *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_p tr, DEC_MVCOSTS, const struct mv *center_mv";
767 specialize qw/vp9_refining_search_sad sse3/;
768 $vp9_refining_search_sad_sse3=vp9_refining_search_sadx4;
769
770 add_proto qw/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, con st struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv";
771 specialize qw/vp9_diamond_search_sad sse3/;
772 $vp9_diamond_search_sad_sse3=vp9_diamond_search_sadx4;
773
774 add_proto qw/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, cons t struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv";
775 specialize qw/vp9_full_range_search/;
776
777 add_proto qw/void vp9_temporal_filter_apply/, "uint8_t *frame1, unsigned int str ide, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count";
778 specialize qw/vp9_temporal_filter_apply sse2/;
779
780 }
781 # end encoder functions
782 1;
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/vp9_reconintra.c ('k') | source/libvpx/vp9/common/vp9_rtcd_defs.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698