OLD | NEW |
1 /* | 1 /* |
2 * simd/jsimd.h | 2 * simd/jsimd.h |
3 * | 3 * |
4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB | 4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
| 5 * Copyright 2011 D. R. Commander |
5 * | 6 * |
6 * Based on the x86 SIMD extension for IJG JPEG library, | 7 * Based on the x86 SIMD extension for IJG JPEG library, |
7 * Copyright (C) 1999-2006, MIYASAKA Masaru. | 8 * Copyright (C) 1999-2006, MIYASAKA Masaru. |
| 9 * For conditions of distribution and use, see copyright notice in jsimdext.inc |
8 * | 10 * |
9 */ | 11 */ |
10 | 12 |
11 /* Bitmask for supported acceleration methods */ | 13 /* Bitmask for supported acceleration methods */ |
12 | 14 |
13 #define JSIMD_NONE 0x00 | 15 #define JSIMD_NONE 0x00 |
14 #define JSIMD_MMX 0x01 | 16 #define JSIMD_MMX 0x01 |
15 #define JSIMD_3DNOW 0x02 | 17 #define JSIMD_3DNOW 0x02 |
16 #define JSIMD_SSE 0x04 | 18 #define JSIMD_SSE 0x04 |
17 #define JSIMD_SSE2 0x08 | 19 #define JSIMD_SSE2 0x08 |
| 20 #define JSIMD_ARM_NEON 0x10 |
18 | 21 |
19 /* Short forms of external names for systems with brain-damaged linkers. */ | 22 /* Short forms of external names for systems with brain-damaged linkers. */ |
20 | 23 |
21 #ifdef NEED_SHORT_EXTERNAL_NAMES | 24 #ifdef NEED_SHORT_EXTERNAL_NAMES |
22 #define jpeg_simd_cpu_support jSiCpuSupport | 25 #define jpeg_simd_cpu_support jSiCpuSupport |
23 #define jsimd_rgb_ycc_convert_mmx jSRGBYCCM | 26 #define jsimd_rgb_ycc_convert_mmx jSRGBYCCM |
24 #define jsimd_extrgb_ycc_convert_mmx jSEXTRGBYCCM | 27 #define jsimd_extrgb_ycc_convert_mmx jSEXTRGBYCCM |
25 #define jsimd_extrgbx_ycc_convert_mmx jSEXTRGBXYCCM | 28 #define jsimd_extrgbx_ycc_convert_mmx jSEXTRGBXYCCM |
26 #define jsimd_extbgr_ycc_convert_mmx jSEXTBGRYCCM | 29 #define jsimd_extbgr_ycc_convert_mmx jSEXTBGRYCCM |
27 #define jsimd_extbgrx_ycc_convert_mmx jSEXTBGRXYCCM | 30 #define jsimd_extbgrx_ycc_convert_mmx jSEXTBGRXYCCM |
28 #define jsimd_extxbgr_ycc_convert_mmx jSEXTXBGRYCCM | 31 #define jsimd_extxbgr_ycc_convert_mmx jSEXTXBGRYCCM |
29 #define jsimd_extxrgb_ycc_convert_mmx jSEXTXRGBYCCM | 32 #define jsimd_extxrgb_ycc_convert_mmx jSEXTXRGBYCCM |
| 33 #define jsimd_rgb_gray_convert_mmx jSRGBGRYM |
| 34 #define jsimd_extrgb_gray_convert_mmx jSEXTRGBGRYM |
| 35 #define jsimd_extrgbx_gray_convert_mmx jSEXTRGBXGRYM |
| 36 #define jsimd_extbgr_gray_convert_mmx jSEXTBGRGRYM |
| 37 #define jsimd_extbgrx_gray_convert_mmx jSEXTBGRXGRYM |
| 38 #define jsimd_extxbgr_gray_convert_mmx jSEXTXBGRGRYM |
| 39 #define jsimd_extxrgb_gray_convert_mmx jSEXTXRGBGRYM |
30 #define jsimd_ycc_rgb_convert_mmx jSYCCRGBM | 40 #define jsimd_ycc_rgb_convert_mmx jSYCCRGBM |
31 #define jsimd_ycc_extrgb_convert_mmx jSYCCEXTRGBM | 41 #define jsimd_ycc_extrgb_convert_mmx jSYCCEXTRGBM |
32 #define jsimd_ycc_extrgbx_convert_mmx jSYCCEXTRGBXM | 42 #define jsimd_ycc_extrgbx_convert_mmx jSYCCEXTRGBXM |
33 #define jsimd_ycc_extbgr_convert_mmx jSYCCEXTBGRM | 43 #define jsimd_ycc_extbgr_convert_mmx jSYCCEXTBGRM |
34 #define jsimd_ycc_extbgrx_convert_mmx jSYCCEXTBGRXM | 44 #define jsimd_ycc_extbgrx_convert_mmx jSYCCEXTBGRXM |
35 #define jsimd_ycc_extxbgr_convert_mmx jSYCCEXTXBGRM | 45 #define jsimd_ycc_extxbgr_convert_mmx jSYCCEXTXBGRM |
36 #define jsimd_ycc_extxrgb_convert_mmx jSYCCEXTXRGBM | 46 #define jsimd_ycc_extxrgb_convert_mmx jSYCCEXTXRGBM |
37 #define jconst_rgb_ycc_convert_sse2 jSCRGBYCCS2 | 47 #define jconst_rgb_ycc_convert_sse2 jSCRGBYCCS2 |
38 #define jsimd_rgb_ycc_convert_sse2 jSRGBYCCS2 | 48 #define jsimd_rgb_ycc_convert_sse2 jSRGBYCCS2 |
39 #define jsimd_extrgb_ycc_convert_sse2 jSEXTRGBYCCS2 | 49 #define jsimd_extrgb_ycc_convert_sse2 jSEXTRGBYCCS2 |
40 #define jsimd_extrgbx_ycc_convert_sse2 jSEXTRGBXYCCS2 | 50 #define jsimd_extrgbx_ycc_convert_sse2 jSEXTRGBXYCCS2 |
41 #define jsimd_extbgr_ycc_convert_sse2 jSEXTBGRYCCS2 | 51 #define jsimd_extbgr_ycc_convert_sse2 jSEXTBGRYCCS2 |
42 #define jsimd_extbgrx_ycc_convert_sse2 jSEXTBGRXYCCS2 | 52 #define jsimd_extbgrx_ycc_convert_sse2 jSEXTBGRXYCCS2 |
43 #define jsimd_extxbgr_ycc_convert_sse2 jSEXTXBGRYCCS2 | 53 #define jsimd_extxbgr_ycc_convert_sse2 jSEXTXBGRYCCS2 |
44 #define jsimd_extxrgb_ycc_convert_sse2 jSEXTXRGBYCCS2 | 54 #define jsimd_extxrgb_ycc_convert_sse2 jSEXTXRGBYCCS2 |
| 55 #define jconst_rgb_gray_convert_sse2 jSCRGBGRYS2 |
| 56 #define jsimd_rgb_gray_convert_sse2 jSRGBGRYS2 |
| 57 #define jsimd_extrgb_gray_convert_sse2 jSEXTRGBGRYS2 |
| 58 #define jsimd_extrgbx_gray_convert_sse2 jSEXTRGBXGRYS2 |
| 59 #define jsimd_extbgr_gray_convert_sse2 jSEXTBGRGRYS2 |
| 60 #define jsimd_extbgrx_gray_convert_sse2 jSEXTBGRXGRYS2 |
| 61 #define jsimd_extxbgr_gray_convert_sse2 jSEXTXBGRGRYS2 |
| 62 #define jsimd_extxrgb_gray_convert_sse2 jSEXTXRGBGRYS2 |
45 #define jconst_ycc_rgb_convert_sse2 jSCYCCRGBS2 | 63 #define jconst_ycc_rgb_convert_sse2 jSCYCCRGBS2 |
46 #define jsimd_ycc_rgb_convert_sse2 jSYCCRGBS2 | 64 #define jsimd_ycc_rgb_convert_sse2 jSYCCRGBS2 |
47 #define jsimd_ycc_extrgb_convert_sse2 jSYCCEXTRGBS2 | 65 #define jsimd_ycc_extrgb_convert_sse2 jSYCCEXTRGBS2 |
48 #define jsimd_ycc_extrgbx_convert_sse2 jSYCCEXTRGBXS2 | 66 #define jsimd_ycc_extrgbx_convert_sse2 jSYCCEXTRGBXS2 |
49 #define jsimd_ycc_extbgr_convert_sse2 jSYCCEXTBGRS2 | 67 #define jsimd_ycc_extbgr_convert_sse2 jSYCCEXTBGRS2 |
50 #define jsimd_ycc_extbgrx_convert_sse2 jSYCCEXTBGRXS2 | 68 #define jsimd_ycc_extbgrx_convert_sse2 jSYCCEXTBGRXS2 |
51 #define jsimd_ycc_extxbgr_convert_sse2 jSYCCEXTXBGRS2 | 69 #define jsimd_ycc_extxbgr_convert_sse2 jSYCCEXTXBGRS2 |
52 #define jsimd_ycc_extxrgb_convert_sse2 jSYCCEXTXRGBS2 | 70 #define jsimd_ycc_extxrgb_convert_sse2 jSYCCEXTXRGBS2 |
53 #define jsimd_h2v2_downsample_mmx jSDnH2V2M | 71 #define jsimd_h2v2_downsample_mmx jSDnH2V2M |
54 #define jsimd_h2v1_downsample_mmx jSDnH2V1M | 72 #define jsimd_h2v1_downsample_mmx jSDnH2V1M |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 JDIMENSION output_row, int num_rows)); | 173 JDIMENSION output_row, int num_rows)); |
156 EXTERN(void) jsimd_extxbgr_ycc_convert_mmx | 174 EXTERN(void) jsimd_extxbgr_ycc_convert_mmx |
157 JPP((JDIMENSION img_width, | 175 JPP((JDIMENSION img_width, |
158 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, | 176 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
159 JDIMENSION output_row, int num_rows)); | 177 JDIMENSION output_row, int num_rows)); |
160 EXTERN(void) jsimd_extxrgb_ycc_convert_mmx | 178 EXTERN(void) jsimd_extxrgb_ycc_convert_mmx |
161 JPP((JDIMENSION img_width, | 179 JPP((JDIMENSION img_width, |
162 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, | 180 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
163 JDIMENSION output_row, int num_rows)); | 181 JDIMENSION output_row, int num_rows)); |
164 | 182 |
| 183 EXTERN(void) jsimd_rgb_gray_convert_mmx |
| 184 JPP((JDIMENSION img_width, |
| 185 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 186 JDIMENSION output_row, int num_rows)); |
| 187 EXTERN(void) jsimd_extrgb_gray_convert_mmx |
| 188 JPP((JDIMENSION img_width, |
| 189 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 190 JDIMENSION output_row, int num_rows)); |
| 191 EXTERN(void) jsimd_extrgbx_gray_convert_mmx |
| 192 JPP((JDIMENSION img_width, |
| 193 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 194 JDIMENSION output_row, int num_rows)); |
| 195 EXTERN(void) jsimd_extbgr_gray_convert_mmx |
| 196 JPP((JDIMENSION img_width, |
| 197 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 198 JDIMENSION output_row, int num_rows)); |
| 199 EXTERN(void) jsimd_extbgrx_gray_convert_mmx |
| 200 JPP((JDIMENSION img_width, |
| 201 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 202 JDIMENSION output_row, int num_rows)); |
| 203 EXTERN(void) jsimd_extxbgr_gray_convert_mmx |
| 204 JPP((JDIMENSION img_width, |
| 205 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 206 JDIMENSION output_row, int num_rows)); |
| 207 EXTERN(void) jsimd_extxrgb_gray_convert_mmx |
| 208 JPP((JDIMENSION img_width, |
| 209 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 210 JDIMENSION output_row, int num_rows)); |
| 211 |
165 EXTERN(void) jsimd_ycc_rgb_convert_mmx | 212 EXTERN(void) jsimd_ycc_rgb_convert_mmx |
166 JPP((JDIMENSION out_width, | 213 JPP((JDIMENSION out_width, |
167 JSAMPIMAGE input_buf, JDIMENSION input_row, | 214 JSAMPIMAGE input_buf, JDIMENSION input_row, |
168 JSAMPARRAY output_buf, int num_rows)); | 215 JSAMPARRAY output_buf, int num_rows)); |
169 EXTERN(void) jsimd_ycc_extrgb_convert_mmx | 216 EXTERN(void) jsimd_ycc_extrgb_convert_mmx |
170 JPP((JDIMENSION out_width, | 217 JPP((JDIMENSION out_width, |
171 JSAMPIMAGE input_buf, JDIMENSION input_row, | 218 JSAMPIMAGE input_buf, JDIMENSION input_row, |
172 JSAMPARRAY output_buf, int num_rows)); | 219 JSAMPARRAY output_buf, int num_rows)); |
173 EXTERN(void) jsimd_ycc_extrgbx_convert_mmx | 220 EXTERN(void) jsimd_ycc_extrgbx_convert_mmx |
174 JPP((JDIMENSION out_width, | 221 JPP((JDIMENSION out_width, |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 JDIMENSION output_row, int num_rows)); | 261 JDIMENSION output_row, int num_rows)); |
215 EXTERN(void) jsimd_extxbgr_ycc_convert_sse2 | 262 EXTERN(void) jsimd_extxbgr_ycc_convert_sse2 |
216 JPP((JDIMENSION img_width, | 263 JPP((JDIMENSION img_width, |
217 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, | 264 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
218 JDIMENSION output_row, int num_rows)); | 265 JDIMENSION output_row, int num_rows)); |
219 EXTERN(void) jsimd_extxrgb_ycc_convert_sse2 | 266 EXTERN(void) jsimd_extxrgb_ycc_convert_sse2 |
220 JPP((JDIMENSION img_width, | 267 JPP((JDIMENSION img_width, |
221 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, | 268 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
222 JDIMENSION output_row, int num_rows)); | 269 JDIMENSION output_row, int num_rows)); |
223 | 270 |
| 271 extern const int jconst_rgb_gray_convert_sse2[]; |
| 272 EXTERN(void) jsimd_rgb_gray_convert_sse2 |
| 273 JPP((JDIMENSION img_width, |
| 274 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 275 JDIMENSION output_row, int num_rows)); |
| 276 EXTERN(void) jsimd_extrgb_gray_convert_sse2 |
| 277 JPP((JDIMENSION img_width, |
| 278 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 279 JDIMENSION output_row, int num_rows)); |
| 280 EXTERN(void) jsimd_extrgbx_gray_convert_sse2 |
| 281 JPP((JDIMENSION img_width, |
| 282 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 283 JDIMENSION output_row, int num_rows)); |
| 284 EXTERN(void) jsimd_extbgr_gray_convert_sse2 |
| 285 JPP((JDIMENSION img_width, |
| 286 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 287 JDIMENSION output_row, int num_rows)); |
| 288 EXTERN(void) jsimd_extbgrx_gray_convert_sse2 |
| 289 JPP((JDIMENSION img_width, |
| 290 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 291 JDIMENSION output_row, int num_rows)); |
| 292 EXTERN(void) jsimd_extxbgr_gray_convert_sse2 |
| 293 JPP((JDIMENSION img_width, |
| 294 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 295 JDIMENSION output_row, int num_rows)); |
| 296 EXTERN(void) jsimd_extxrgb_gray_convert_sse2 |
| 297 JPP((JDIMENSION img_width, |
| 298 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 299 JDIMENSION output_row, int num_rows)); |
| 300 |
224 extern const int jconst_ycc_rgb_convert_sse2[]; | 301 extern const int jconst_ycc_rgb_convert_sse2[]; |
225 EXTERN(void) jsimd_ycc_rgb_convert_sse2 | 302 EXTERN(void) jsimd_ycc_rgb_convert_sse2 |
226 JPP((JDIMENSION out_width, | 303 JPP((JDIMENSION out_width, |
227 JSAMPIMAGE input_buf, JDIMENSION input_row, | 304 JSAMPIMAGE input_buf, JDIMENSION input_row, |
228 JSAMPARRAY output_buf, int num_rows)); | 305 JSAMPARRAY output_buf, int num_rows)); |
229 EXTERN(void) jsimd_ycc_extrgb_convert_sse2 | 306 EXTERN(void) jsimd_ycc_extrgb_convert_sse2 |
230 JPP((JDIMENSION out_width, | 307 JPP((JDIMENSION out_width, |
231 JSAMPIMAGE input_buf, JDIMENSION input_row, | 308 JSAMPIMAGE input_buf, JDIMENSION input_row, |
232 JSAMPARRAY output_buf, int num_rows)); | 309 JSAMPARRAY output_buf, int num_rows)); |
233 EXTERN(void) jsimd_ycc_extrgbx_convert_sse2 | 310 EXTERN(void) jsimd_ycc_extrgbx_convert_sse2 |
(...skipping 10 matching lines...) Expand all Loading... |
244 JSAMPARRAY output_buf, int num_rows)); | 321 JSAMPARRAY output_buf, int num_rows)); |
245 EXTERN(void) jsimd_ycc_extxbgr_convert_sse2 | 322 EXTERN(void) jsimd_ycc_extxbgr_convert_sse2 |
246 JPP((JDIMENSION out_width, | 323 JPP((JDIMENSION out_width, |
247 JSAMPIMAGE input_buf, JDIMENSION input_row, | 324 JSAMPIMAGE input_buf, JDIMENSION input_row, |
248 JSAMPARRAY output_buf, int num_rows)); | 325 JSAMPARRAY output_buf, int num_rows)); |
249 EXTERN(void) jsimd_ycc_extxrgb_convert_sse2 | 326 EXTERN(void) jsimd_ycc_extxrgb_convert_sse2 |
250 JPP((JDIMENSION out_width, | 327 JPP((JDIMENSION out_width, |
251 JSAMPIMAGE input_buf, JDIMENSION input_row, | 328 JSAMPIMAGE input_buf, JDIMENSION input_row, |
252 JSAMPARRAY output_buf, int num_rows)); | 329 JSAMPARRAY output_buf, int num_rows)); |
253 | 330 |
| 331 EXTERN(void) jsimd_ycc_rgb_convert_neon |
| 332 JPP((JDIMENSION out_width, |
| 333 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 334 JSAMPARRAY output_buf, int num_rows)); |
| 335 EXTERN(void) jsimd_ycc_extrgb_convert_neon |
| 336 JPP((JDIMENSION out_width, |
| 337 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 338 JSAMPARRAY output_buf, int num_rows)); |
| 339 EXTERN(void) jsimd_ycc_extrgbx_convert_neon |
| 340 JPP((JDIMENSION out_width, |
| 341 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 342 JSAMPARRAY output_buf, int num_rows)); |
| 343 EXTERN(void) jsimd_ycc_extbgr_convert_neon |
| 344 JPP((JDIMENSION out_width, |
| 345 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 346 JSAMPARRAY output_buf, int num_rows)); |
| 347 EXTERN(void) jsimd_ycc_extbgrx_convert_neon |
| 348 JPP((JDIMENSION out_width, |
| 349 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 350 JSAMPARRAY output_buf, int num_rows)); |
| 351 EXTERN(void) jsimd_ycc_extxbgr_convert_neon |
| 352 JPP((JDIMENSION out_width, |
| 353 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 354 JSAMPARRAY output_buf, int num_rows)); |
| 355 EXTERN(void) jsimd_ycc_extxrgb_convert_neon |
| 356 JPP((JDIMENSION out_width, |
| 357 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 358 JSAMPARRAY output_buf, int num_rows)); |
| 359 |
254 /* SIMD Downsample */ | 360 /* SIMD Downsample */ |
255 EXTERN(void) jsimd_h2v2_downsample_mmx | 361 EXTERN(void) jsimd_h2v2_downsample_mmx |
256 JPP((JDIMENSION image_width, int max_v_samp_factor, | 362 JPP((JDIMENSION image_width, int max_v_samp_factor, |
257 JDIMENSION v_samp_factor, JDIMENSION width_blocks, | 363 JDIMENSION v_samp_factor, JDIMENSION width_blocks, |
258 JSAMPARRAY input_data, JSAMPARRAY output_data)); | 364 JSAMPARRAY input_data, JSAMPARRAY output_data)); |
259 EXTERN(void) jsimd_h2v1_downsample_mmx | 365 EXTERN(void) jsimd_h2v1_downsample_mmx |
260 JPP((JDIMENSION image_width, int max_v_samp_factor, | 366 JPP((JDIMENSION image_width, int max_v_samp_factor, |
261 JDIMENSION v_samp_factor, JDIMENSION width_blocks, | 367 JDIMENSION v_samp_factor, JDIMENSION width_blocks, |
262 JSAMPARRAY input_data, JSAMPARRAY output_data)); | 368 JSAMPARRAY input_data, JSAMPARRAY output_data)); |
263 | 369 |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 extern const int jconst_idct_red_sse2[]; | 562 extern const int jconst_idct_red_sse2[]; |
457 EXTERN(void) jsimd_idct_2x2_sse2 JPP((void * dct_table, | 563 EXTERN(void) jsimd_idct_2x2_sse2 JPP((void * dct_table, |
458 JCOEFPTR coef_block, | 564 JCOEFPTR coef_block, |
459 JSAMPARRAY output_buf, | 565 JSAMPARRAY output_buf, |
460 JDIMENSION output_col)); | 566 JDIMENSION output_col)); |
461 EXTERN(void) jsimd_idct_4x4_sse2 JPP((void * dct_table, | 567 EXTERN(void) jsimd_idct_4x4_sse2 JPP((void * dct_table, |
462 JCOEFPTR coef_block, | 568 JCOEFPTR coef_block, |
463 JSAMPARRAY output_buf, | 569 JSAMPARRAY output_buf, |
464 JDIMENSION output_col)); | 570 JDIMENSION output_col)); |
465 | 571 |
| 572 EXTERN(void) jsimd_idct_2x2_neon JPP((void * dct_table, |
| 573 JCOEFPTR coef_block, |
| 574 JSAMPARRAY output_buf, |
| 575 JDIMENSION output_col)); |
| 576 EXTERN(void) jsimd_idct_4x4_neon JPP((void * dct_table, |
| 577 JCOEFPTR coef_block, |
| 578 JSAMPARRAY output_buf, |
| 579 JDIMENSION output_col)); |
| 580 |
466 /* SIMD Inverse DCT */ | 581 /* SIMD Inverse DCT */ |
467 EXTERN(void) jsimd_idct_islow_mmx JPP((void * dct_table, | 582 EXTERN(void) jsimd_idct_islow_mmx JPP((void * dct_table, |
468 JCOEFPTR coef_block, | 583 JCOEFPTR coef_block, |
469 JSAMPARRAY output_buf, | 584 JSAMPARRAY output_buf, |
470 JDIMENSION output_col)); | 585 JDIMENSION output_col)); |
471 EXTERN(void) jsimd_idct_ifast_mmx JPP((void * dct_table, | 586 EXTERN(void) jsimd_idct_ifast_mmx JPP((void * dct_table, |
472 JCOEFPTR coef_block, | 587 JCOEFPTR coef_block, |
473 JSAMPARRAY output_buf, | 588 JSAMPARRAY output_buf, |
474 JDIMENSION output_col)); | 589 JDIMENSION output_col)); |
475 | 590 |
476 extern const int jconst_idct_islow_sse2[]; | 591 extern const int jconst_idct_islow_sse2[]; |
477 EXTERN(void) jsimd_idct_islow_sse2 JPP((void * dct_table, | 592 EXTERN(void) jsimd_idct_islow_sse2 JPP((void * dct_table, |
478 JCOEFPTR coef_block, | 593 JCOEFPTR coef_block, |
479 JSAMPARRAY output_buf, | 594 JSAMPARRAY output_buf, |
480 JDIMENSION output_col)); | 595 JDIMENSION output_col)); |
481 extern const int jconst_idct_ifast_sse2[]; | 596 extern const int jconst_idct_ifast_sse2[]; |
482 EXTERN(void) jsimd_idct_ifast_sse2 JPP((void * dct_table, | 597 EXTERN(void) jsimd_idct_ifast_sse2 JPP((void * dct_table, |
483 JCOEFPTR coef_block, | 598 JCOEFPTR coef_block, |
484 JSAMPARRAY output_buf, | 599 JSAMPARRAY output_buf, |
485 JDIMENSION output_col)); | 600 JDIMENSION output_col)); |
486 | 601 |
| 602 EXTERN(void) jsimd_idct_ifast_neon JPP((void * dct_table, |
| 603 JCOEFPTR coef_block, |
| 604 JSAMPARRAY output_buf, |
| 605 JDIMENSION output_col)); |
| 606 |
487 EXTERN(void) jsimd_idct_float_3dnow JPP((void * dct_table, | 607 EXTERN(void) jsimd_idct_float_3dnow JPP((void * dct_table, |
488 JCOEFPTR coef_block, | 608 JCOEFPTR coef_block, |
489 JSAMPARRAY output_buf, | 609 JSAMPARRAY output_buf, |
490 JDIMENSION output_col)); | 610 JDIMENSION output_col)); |
491 | 611 |
492 extern const int jconst_idct_float_sse[]; | 612 extern const int jconst_idct_float_sse[]; |
493 EXTERN(void) jsimd_idct_float_sse JPP((void * dct_table, | 613 EXTERN(void) jsimd_idct_float_sse JPP((void * dct_table, |
494 JCOEFPTR coef_block, | 614 JCOEFPTR coef_block, |
495 JSAMPARRAY output_buf, | 615 JSAMPARRAY output_buf, |
496 JDIMENSION output_col)); | 616 JDIMENSION output_col)); |
497 | 617 |
498 extern const int jconst_idct_float_sse2[]; | 618 extern const int jconst_idct_float_sse2[]; |
499 EXTERN(void) jsimd_idct_float_sse2 JPP((void * dct_table, | 619 EXTERN(void) jsimd_idct_float_sse2 JPP((void * dct_table, |
500 JCOEFPTR coef_block, | 620 JCOEFPTR coef_block, |
501 JSAMPARRAY output_buf, | 621 JSAMPARRAY output_buf, |
502 JDIMENSION output_col)); | 622 JDIMENSION output_col)); |
503 | 623 |
OLD | NEW |