1 /* 2 * simd/jsimd.h 3 * 4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB 5 * Copyright (C) 2011, 2014-2016, D. R. Commander. 6 * Copyright (C) 2013-2014, MIPS Technologies, Inc., California. 7 * Copyright (C) 2014, Linaro Limited. 8 * Copyright (C) 2015-2016, Matthieu Darbois. 9 * 10 * Based on the x86 SIMD extension for IJG JPEG library, 11 * Copyright (C) 1999-2006, MIYASAKA Masaru. 12 * For conditions of distribution and use, see copyright notice in jsimdext.inc 13 * 14 */ 15 16 /* Bitmask for supported acceleration methods */ 17 18 #define JSIMD_NONE 0x00 19 #define JSIMD_MMX 0x01 20 #define JSIMD_3DNOW 0x02 21 #define JSIMD_SSE 0x04 22 #define JSIMD_SSE2 0x08 23 #define JSIMD_ARM_NEON 0x10 24 #define JSIMD_MIPS_DSPR2 0x20 25 #define JSIMD_ALTIVEC 0x40 26 27 /* SIMD Ext: retrieve SIMD/CPU information */ 28 EXTERN(unsigned int) jpeg_simd_cpu_support (void); 29 30 /* RGB & extended RGB --> YCC Colorspace Conversion */ 31 EXTERN(void) jsimd_rgb_ycc_convert_mmx 32 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 33 JDIMENSION output_row, int num_rows); 34 EXTERN(void) jsimd_extrgb_ycc_convert_mmx 35 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 36 JDIMENSION output_row, int num_rows); 37 EXTERN(void) jsimd_extrgbx_ycc_convert_mmx 38 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 39 JDIMENSION output_row, int num_rows); 40 EXTERN(void) jsimd_extbgr_ycc_convert_mmx 41 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 42 JDIMENSION output_row, int num_rows); 43 EXTERN(void) jsimd_extbgrx_ycc_convert_mmx 44 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 45 JDIMENSION output_row, int num_rows); 46 EXTERN(void) jsimd_extxbgr_ycc_convert_mmx 47 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 48 JDIMENSION output_row, int num_rows); 49 EXTERN(void) jsimd_extxrgb_ycc_convert_mmx 50 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 51 JDIMENSION output_row, int num_rows); 52 53 extern const int jconst_rgb_ycc_convert_sse2[]; 54 EXTERN(void) jsimd_rgb_ycc_convert_sse2 55 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 56 JDIMENSION output_row, int num_rows); 57 EXTERN(void) jsimd_extrgb_ycc_convert_sse2 58 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 59 JDIMENSION output_row, int num_rows); 60 EXTERN(void) jsimd_extrgbx_ycc_convert_sse2 61 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 62 JDIMENSION output_row, int num_rows); 63 EXTERN(void) jsimd_extbgr_ycc_convert_sse2 64 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 65 JDIMENSION output_row, int num_rows); 66 EXTERN(void) jsimd_extbgrx_ycc_convert_sse2 67 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 68 JDIMENSION output_row, int num_rows); 69 EXTERN(void) jsimd_extxbgr_ycc_convert_sse2 70 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 71 JDIMENSION output_row, int num_rows); 72 EXTERN(void) jsimd_extxrgb_ycc_convert_sse2 73 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 74 JDIMENSION output_row, int num_rows); 75 76 EXTERN(void) jsimd_rgb_ycc_convert_neon 77 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 78 JDIMENSION output_row, int num_rows); 79 EXTERN(void) jsimd_extrgb_ycc_convert_neon 80 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 81 JDIMENSION output_row, int num_rows); 82 EXTERN(void) jsimd_extrgbx_ycc_convert_neon 83 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 84 JDIMENSION output_row, int num_rows); 85 EXTERN(void) jsimd_extbgr_ycc_convert_neon 86 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 87 JDIMENSION output_row, int num_rows); 88 EXTERN(void) jsimd_extbgrx_ycc_convert_neon 89 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 90 JDIMENSION output_row, int num_rows); 91 EXTERN(void) jsimd_extxbgr_ycc_convert_neon 92 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 93 JDIMENSION output_row, int num_rows); 94 EXTERN(void) jsimd_extxrgb_ycc_convert_neon 95 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 96 JDIMENSION output_row, int num_rows); 97 98 EXTERN(void) jsimd_extrgb_ycc_convert_neon_slowld3 99 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 100 JDIMENSION output_row, int num_rows); 101 EXTERN(void) jsimd_extbgr_ycc_convert_neon_slowld3 102 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 103 JDIMENSION output_row, int num_rows); 104 105 EXTERN(void) jsimd_rgb_ycc_convert_mips_dspr2 106 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 107 JDIMENSION output_row, int num_rows); 108 EXTERN(void) jsimd_extrgb_ycc_convert_mips_dspr2 109 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 110 JDIMENSION output_row, int num_rows); 111 EXTERN(void) jsimd_extrgbx_ycc_convert_mips_dspr2 112 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 113 JDIMENSION output_row, int num_rows); 114 EXTERN(void) jsimd_extbgr_ycc_convert_mips_dspr2 115 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 116 JDIMENSION output_row, int num_rows); 117 EXTERN(void) jsimd_extbgrx_ycc_convert_mips_dspr2 118 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 119 JDIMENSION output_row, int num_rows); 120 EXTERN(void) jsimd_extxbgr_ycc_convert_mips_dspr2 121 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 122 JDIMENSION output_row, int num_rows); 123 EXTERN(void) jsimd_extxrgb_ycc_convert_mips_dspr2 124 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 125 JDIMENSION output_row, int num_rows); 126 127 EXTERN(void) jsimd_rgb_ycc_convert_altivec 128 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 129 JDIMENSION output_row, int num_rows); 130 EXTERN(void) jsimd_extrgb_ycc_convert_altivec 131 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 132 JDIMENSION output_row, int num_rows); 133 EXTERN(void) jsimd_extrgbx_ycc_convert_altivec 134 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 135 JDIMENSION output_row, int num_rows); 136 EXTERN(void) jsimd_extbgr_ycc_convert_altivec 137 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 138 JDIMENSION output_row, int num_rows); 139 EXTERN(void) jsimd_extbgrx_ycc_convert_altivec 140 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 141 JDIMENSION output_row, int num_rows); 142 EXTERN(void) jsimd_extxbgr_ycc_convert_altivec 143 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 144 JDIMENSION output_row, int num_rows); 145 EXTERN(void) jsimd_extxrgb_ycc_convert_altivec 146 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 147 JDIMENSION output_row, int num_rows); 148 149 /* RGB & extended RGB --> Grayscale Colorspace Conversion */ 150 EXTERN(void) jsimd_rgb_gray_convert_mmx 151 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 152 JDIMENSION output_row, int num_rows); 153 EXTERN(void) jsimd_extrgb_gray_convert_mmx 154 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 155 JDIMENSION output_row, int num_rows); 156 EXTERN(void) jsimd_extrgbx_gray_convert_mmx 157 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 158 JDIMENSION output_row, int num_rows); 159 EXTERN(void) jsimd_extbgr_gray_convert_mmx 160 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 161 JDIMENSION output_row, int num_rows); 162 EXTERN(void) jsimd_extbgrx_gray_convert_mmx 163 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 164 JDIMENSION output_row, int num_rows); 165 EXTERN(void) jsimd_extxbgr_gray_convert_mmx 166 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 167 JDIMENSION output_row, int num_rows); 168 EXTERN(void) jsimd_extxrgb_gray_convert_mmx 169 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 170 JDIMENSION output_row, int num_rows); 171 172 extern const int jconst_rgb_gray_convert_sse2[]; 173 EXTERN(void) jsimd_rgb_gray_convert_sse2 174 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 175 JDIMENSION output_row, int num_rows); 176 EXTERN(void) jsimd_extrgb_gray_convert_sse2 177 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 178 JDIMENSION output_row, int num_rows); 179 EXTERN(void) jsimd_extrgbx_gray_convert_sse2 180 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 181 JDIMENSION output_row, int num_rows); 182 EXTERN(void) jsimd_extbgr_gray_convert_sse2 183 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 184 JDIMENSION output_row, int num_rows); 185 EXTERN(void) jsimd_extbgrx_gray_convert_sse2 186 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 187 JDIMENSION output_row, int num_rows); 188 EXTERN(void) jsimd_extxbgr_gray_convert_sse2 189 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 190 JDIMENSION output_row, int num_rows); 191 EXTERN(void) jsimd_extxrgb_gray_convert_sse2 192 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 193 JDIMENSION output_row, int num_rows); 194 195 EXTERN(void) jsimd_rgb_gray_convert_mips_dspr2 196 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 197 JDIMENSION output_row, int num_rows); 198 EXTERN(void) jsimd_extrgb_gray_convert_mips_dspr2 199 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 200 JDIMENSION output_row, int num_rows); 201 EXTERN(void) jsimd_extrgbx_gray_convert_mips_dspr2 202 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 203 JDIMENSION output_row, int num_rows); 204 EXTERN(void) jsimd_extbgr_gray_convert_mips_dspr2 205 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 206 JDIMENSION output_row, int num_rows); 207 EXTERN(void) jsimd_extbgrx_gray_convert_mips_dspr2 208 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 209 JDIMENSION output_row, int num_rows); 210 EXTERN(void) jsimd_extxbgr_gray_convert_mips_dspr2 211 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 212 JDIMENSION output_row, int num_rows); 213 EXTERN(void) jsimd_extxrgb_gray_convert_mips_dspr2 214 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 215 JDIMENSION output_row, int num_rows); 216 217 EXTERN(void) jsimd_rgb_gray_convert_altivec 218 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 219 JDIMENSION output_row, int num_rows); 220 EXTERN(void) jsimd_extrgb_gray_convert_altivec 221 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 222 JDIMENSION output_row, int num_rows); 223 EXTERN(void) jsimd_extrgbx_gray_convert_altivec 224 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 225 JDIMENSION output_row, int num_rows); 226 EXTERN(void) jsimd_extbgr_gray_convert_altivec 227 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 228 JDIMENSION output_row, int num_rows); 229 EXTERN(void) jsimd_extbgrx_gray_convert_altivec 230 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 231 JDIMENSION output_row, int num_rows); 232 EXTERN(void) jsimd_extxbgr_gray_convert_altivec 233 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 234 JDIMENSION output_row, int num_rows); 235 EXTERN(void) jsimd_extxrgb_gray_convert_altivec 236 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 237 JDIMENSION output_row, int num_rows); 238 239 /* YCC --> RGB & extended RGB Colorspace Conversion */ 240 EXTERN(void) jsimd_ycc_rgb_convert_mmx 241 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 242 JSAMPARRAY output_buf, int num_rows); 243 EXTERN(void) jsimd_ycc_extrgb_convert_mmx 244 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 245 JSAMPARRAY output_buf, int num_rows); 246 EXTERN(void) jsimd_ycc_extrgbx_convert_mmx 247 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 248 JSAMPARRAY output_buf, int num_rows); 249 EXTERN(void) jsimd_ycc_extbgr_convert_mmx 250 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 251 JSAMPARRAY output_buf, int num_rows); 252 EXTERN(void) jsimd_ycc_extbgrx_convert_mmx 253 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 254 JSAMPARRAY output_buf, int num_rows); 255 EXTERN(void) jsimd_ycc_extxbgr_convert_mmx 256 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 257 JSAMPARRAY output_buf, int num_rows); 258 EXTERN(void) jsimd_ycc_extxrgb_convert_mmx 259 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 260 JSAMPARRAY output_buf, int num_rows); 261 262 extern const int jconst_ycc_rgb_convert_sse2[]; 263 EXTERN(void) jsimd_ycc_rgb_convert_sse2 264 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 265 JSAMPARRAY output_buf, int num_rows); 266 EXTERN(void) jsimd_ycc_extrgb_convert_sse2 267 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 268 JSAMPARRAY output_buf, int num_rows); 269 EXTERN(void) jsimd_ycc_extrgbx_convert_sse2 270 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 271 JSAMPARRAY output_buf, int num_rows); 272 EXTERN(void) jsimd_ycc_extbgr_convert_sse2 273 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 274 JSAMPARRAY output_buf, int num_rows); 275 EXTERN(void) jsimd_ycc_extbgrx_convert_sse2 276 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 277 JSAMPARRAY output_buf, int num_rows); 278 EXTERN(void) jsimd_ycc_extxbgr_convert_sse2 279 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 280 JSAMPARRAY output_buf, int num_rows); 281 EXTERN(void) jsimd_ycc_extxrgb_convert_sse2 282 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 283 JSAMPARRAY output_buf, int num_rows); 284 285 EXTERN(void) jsimd_ycc_rgb_convert_neon 286 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 287 JSAMPARRAY output_buf, int num_rows); 288 EXTERN(void) jsimd_ycc_extrgb_convert_neon 289 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 290 JSAMPARRAY output_buf, int num_rows); 291 EXTERN(void) jsimd_ycc_extrgbx_convert_neon 292 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 293 JSAMPARRAY output_buf, int num_rows); 294 EXTERN(void) jsimd_ycc_extbgr_convert_neon 295 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 296 JSAMPARRAY output_buf, int num_rows); 297 EXTERN(void) jsimd_ycc_extbgrx_convert_neon 298 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 299 JSAMPARRAY output_buf, int num_rows); 300 EXTERN(void) jsimd_ycc_extxbgr_convert_neon 301 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 302 JSAMPARRAY output_buf, int num_rows); 303 EXTERN(void) jsimd_ycc_extxrgb_convert_neon 304 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 305 JSAMPARRAY output_buf, int num_rows); 306 EXTERN(void) jsimd_ycc_rgb565_convert_neon 307 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 308 JSAMPARRAY output_buf, int num_rows); 309 310 EXTERN(void) jsimd_ycc_extrgb_convert_neon_slowst3 311 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 312 JSAMPARRAY output_buf, int num_rows); 313 EXTERN(void) jsimd_ycc_extbgr_convert_neon_slowst3 314 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 315 JSAMPARRAY output_buf, int num_rows); 316 317 EXTERN(void) jsimd_ycc_rgb_convert_mips_dspr2 318 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 319 JSAMPARRAY output_buf, int num_rows); 320 EXTERN(void) jsimd_ycc_extrgb_convert_mips_dspr2 321 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 322 JSAMPARRAY output_buf, int num_rows); 323 EXTERN(void) jsimd_ycc_extrgbx_convert_mips_dspr2 324 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 325 JSAMPARRAY output_buf, int num_rows); 326 EXTERN(void) jsimd_ycc_extbgr_convert_mips_dspr2 327 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 328 JSAMPARRAY output_buf, int num_rows); 329 EXTERN(void) jsimd_ycc_extbgrx_convert_mips_dspr2 330 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 331 JSAMPARRAY output_buf, int num_rows); 332 EXTERN(void) jsimd_ycc_extxbgr_convert_mips_dspr2 333 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 334 JSAMPARRAY output_buf, int num_rows); 335 EXTERN(void) jsimd_ycc_extxrgb_convert_mips_dspr2 336 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 337 JSAMPARRAY output_buf, int num_rows); 338 339 EXTERN(void) jsimd_ycc_rgb_convert_altivec 340 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 341 JSAMPARRAY output_buf, int num_rows); 342 EXTERN(void) jsimd_ycc_extrgb_convert_altivec 343 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 344 JSAMPARRAY output_buf, int num_rows); 345 EXTERN(void) jsimd_ycc_extrgbx_convert_altivec 346 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 347 JSAMPARRAY output_buf, int num_rows); 348 EXTERN(void) jsimd_ycc_extbgr_convert_altivec 349 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 350 JSAMPARRAY output_buf, int num_rows); 351 EXTERN(void) jsimd_ycc_extbgrx_convert_altivec 352 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 353 JSAMPARRAY output_buf, int num_rows); 354 EXTERN(void) jsimd_ycc_extxbgr_convert_altivec 355 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 356 JSAMPARRAY output_buf, int num_rows); 357 EXTERN(void) jsimd_ycc_extxrgb_convert_altivec 358 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 359 JSAMPARRAY output_buf, int num_rows); 360 361 /* NULL Colorspace Conversion */ 362 EXTERN(void) jsimd_c_null_convert_mips_dspr2 363 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 364 JDIMENSION output_row, int num_rows, int num_components); 365 366 /* h2v1 Downsampling */ 367 EXTERN(void) jsimd_h2v1_downsample_mmx 368 (JDIMENSION image_width, int max_v_samp_factor, 369 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 370 JSAMPARRAY input_data, JSAMPARRAY output_data); 371 372 EXTERN(void) jsimd_h2v1_downsample_sse2 373 (JDIMENSION image_width, int max_v_samp_factor, 374 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 375 JSAMPARRAY input_data, JSAMPARRAY output_data); 376 377 EXTERN(void) jsimd_h2v1_downsample_neon 378 (JDIMENSION image_width, int max_v_samp_factor, 379 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 380 JSAMPARRAY input_data, JSAMPARRAY output_data); 381 382 EXTERN(void) jsimd_h2v1_downsample_mips_dspr2 383 (JDIMENSION image_width, int max_v_samp_factor, 384 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 385 JSAMPARRAY input_data, JSAMPARRAY output_data); 386 387 EXTERN(void) jsimd_h2v1_downsample_altivec 388 (JDIMENSION image_width, int max_v_samp_factor, 389 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 390 JSAMPARRAY input_data, JSAMPARRAY output_data); 391 392 /* h2v2 Downsampling */ 393 EXTERN(void) jsimd_h2v2_downsample_mmx 394 (JDIMENSION image_width, int max_v_samp_factor, 395 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 396 JSAMPARRAY input_data, JSAMPARRAY output_data); 397 398 EXTERN(void) jsimd_h2v2_downsample_sse2 399 (JDIMENSION image_width, int max_v_samp_factor, 400 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 401 JSAMPARRAY input_data, JSAMPARRAY output_data); 402 403 EXTERN(void) jsimd_h2v2_downsample_neon 404 (JDIMENSION image_width, int max_v_samp_factor, 405 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 406 JSAMPARRAY input_data, JSAMPARRAY output_data); 407 408 EXTERN(void) jsimd_h2v2_downsample_mips_dspr2 409 (JDIMENSION image_width, int max_v_samp_factor, 410 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 411 JSAMPARRAY input_data, JSAMPARRAY output_data); 412 413 EXTERN(void) jsimd_h2v2_downsample_altivec 414 (JDIMENSION image_width, int max_v_samp_factor, 415 JDIMENSION v_samp_factor, JDIMENSION width_blocks, 416 JSAMPARRAY input_data, JSAMPARRAY output_data); 417 418 /* h2v2 Smooth Downsampling */ 419 EXTERN(void) jsimd_h2v2_smooth_downsample_mips_dspr2 420 (JSAMPARRAY input_data, JSAMPARRAY output_data, 421 JDIMENSION v_samp_factor, int max_v_samp_factor, 422 int smoothing_factor, JDIMENSION width_blocks, 423 JDIMENSION image_width); 424 425 426 /* Upsampling */ 427 EXTERN(void) jsimd_h2v1_upsample_mmx 428 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 429 JSAMPARRAY *output_data_ptr); 430 EXTERN(void) jsimd_h2v2_upsample_mmx 431 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 432 JSAMPARRAY *output_data_ptr); 433 434 EXTERN(void) jsimd_h2v1_upsample_sse2 435 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 436 JSAMPARRAY *output_data_ptr); 437 EXTERN(void) jsimd_h2v2_upsample_sse2 438 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 439 JSAMPARRAY *output_data_ptr); 440 441 EXTERN(void) jsimd_h2v1_upsample_mips_dspr2 442 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 443 JSAMPARRAY *output_data_ptr); 444 EXTERN(void) jsimd_h2v2_upsample_mips_dspr2 445 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 446 JSAMPARRAY *output_data_ptr); 447 448 EXTERN(void) jsimd_int_upsample_mips_dspr2 449 (UINT8 h_expand, UINT8 v_expand, JSAMPARRAY input_data, 450 JSAMPARRAY *output_data_ptr, JDIMENSION output_width, 451 int max_v_samp_factor); 452 453 EXTERN(void) jsimd_h2v1_upsample_altivec 454 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 455 JSAMPARRAY *output_data_ptr); 456 EXTERN(void) jsimd_h2v2_upsample_altivec 457 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 458 JSAMPARRAY *output_data_ptr); 459 460 /* Fancy Upsampling */ 461 EXTERN(void) jsimd_h2v1_fancy_upsample_mmx 462 (int max_v_samp_factor, JDIMENSION downsampled_width, 463 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 464 EXTERN(void) jsimd_h2v2_fancy_upsample_mmx 465 (int max_v_samp_factor, JDIMENSION downsampled_width, 466 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 467 468 extern const int jconst_fancy_upsample_sse2[]; 469 EXTERN(void) jsimd_h2v1_fancy_upsample_sse2 470 (int max_v_samp_factor, JDIMENSION downsampled_width, 471 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 472 EXTERN(void) jsimd_h2v2_fancy_upsample_sse2 473 (int max_v_samp_factor, JDIMENSION downsampled_width, 474 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 475 476 EXTERN(void) jsimd_h2v1_fancy_upsample_neon 477 (int max_v_samp_factor, JDIMENSION downsampled_width, 478 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 479 480 EXTERN(void) jsimd_h2v1_fancy_upsample_mips_dspr2 481 (int max_v_samp_factor, JDIMENSION downsampled_width, 482 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 483 EXTERN(void) jsimd_h2v2_fancy_upsample_mips_dspr2 484 (int max_v_samp_factor, JDIMENSION downsampled_width, 485 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 486 487 EXTERN(void) jsimd_h2v1_fancy_upsample_altivec 488 (int max_v_samp_factor, JDIMENSION downsampled_width, 489 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 490 EXTERN(void) jsimd_h2v2_fancy_upsample_altivec 491 (int max_v_samp_factor, JDIMENSION downsampled_width, 492 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 493 494 /* Merged Upsampling */ 495 EXTERN(void) jsimd_h2v1_merged_upsample_mmx 496 (JDIMENSION output_width, JSAMPIMAGE input_buf, 497 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 498 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_mmx 499 (JDIMENSION output_width, JSAMPIMAGE input_buf, 500 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 501 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_mmx 502 (JDIMENSION output_width, JSAMPIMAGE input_buf, 503 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 504 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_mmx 505 (JDIMENSION output_width, JSAMPIMAGE input_buf, 506 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 507 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_mmx 508 (JDIMENSION output_width, JSAMPIMAGE input_buf, 509 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 510 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_mmx 511 (JDIMENSION output_width, JSAMPIMAGE input_buf, 512 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 513 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_mmx 514 (JDIMENSION output_width, JSAMPIMAGE input_buf, 515 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 516 517 EXTERN(void) jsimd_h2v2_merged_upsample_mmx 518 (JDIMENSION output_width, JSAMPIMAGE input_buf, 519 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 520 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_mmx 521 (JDIMENSION output_width, JSAMPIMAGE input_buf, 522 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 523 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_mmx 524 (JDIMENSION output_width, JSAMPIMAGE input_buf, 525 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 526 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_mmx 527 (JDIMENSION output_width, JSAMPIMAGE input_buf, 528 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 529 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_mmx 530 (JDIMENSION output_width, JSAMPIMAGE input_buf, 531 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 532 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_mmx 533 (JDIMENSION output_width, JSAMPIMAGE input_buf, 534 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 535 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_mmx 536 (JDIMENSION output_width, JSAMPIMAGE input_buf, 537 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 538 539 extern const int jconst_merged_upsample_sse2[]; 540 EXTERN(void) jsimd_h2v1_merged_upsample_sse2 541 (JDIMENSION output_width, JSAMPIMAGE input_buf, 542 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 543 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_sse2 544 (JDIMENSION output_width, JSAMPIMAGE input_buf, 545 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 546 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_sse2 547 (JDIMENSION output_width, JSAMPIMAGE input_buf, 548 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 549 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_sse2 550 (JDIMENSION output_width, JSAMPIMAGE input_buf, 551 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 552 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_sse2 553 (JDIMENSION output_width, JSAMPIMAGE input_buf, 554 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 555 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_sse2 556 (JDIMENSION output_width, JSAMPIMAGE input_buf, 557 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 558 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_sse2 559 (JDIMENSION output_width, JSAMPIMAGE input_buf, 560 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 561 562 EXTERN(void) jsimd_h2v2_merged_upsample_sse2 563 (JDIMENSION output_width, JSAMPIMAGE input_buf, 564 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 565 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_sse2 566 (JDIMENSION output_width, JSAMPIMAGE input_buf, 567 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 568 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_sse2 569 (JDIMENSION output_width, JSAMPIMAGE input_buf, 570 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 571 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_sse2 572 (JDIMENSION output_width, JSAMPIMAGE input_buf, 573 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 574 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_sse2 575 (JDIMENSION output_width, JSAMPIMAGE input_buf, 576 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 577 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_sse2 578 (JDIMENSION output_width, JSAMPIMAGE input_buf, 579 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 580 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_sse2 581 (JDIMENSION output_width, JSAMPIMAGE input_buf, 582 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 583 584 EXTERN(void) jsimd_h2v1_merged_upsample_mips_dspr2 585 (JDIMENSION output_width, JSAMPIMAGE input_buf, 586 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 587 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_mips_dspr2 588 (JDIMENSION output_width, JSAMPIMAGE input_buf, 589 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 590 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_mips_dspr2 591 (JDIMENSION output_width, JSAMPIMAGE input_buf, 592 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 593 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_mips_dspr2 594 (JDIMENSION output_width, JSAMPIMAGE input_buf, 595 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 596 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_mips_dspr2 597 (JDIMENSION output_width, JSAMPIMAGE input_buf, 598 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 599 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_mips_dspr2 600 (JDIMENSION output_width, JSAMPIMAGE input_buf, 601 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 602 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_mips_dspr2 603 (JDIMENSION output_width, JSAMPIMAGE input_buf, 604 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 605 606 EXTERN(void) jsimd_h2v2_merged_upsample_mips_dspr2 607 (JDIMENSION output_width, JSAMPIMAGE input_buf, 608 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 609 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_mips_dspr2 610 (JDIMENSION output_width, JSAMPIMAGE input_buf, 611 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 612 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_mips_dspr2 613 (JDIMENSION output_width, JSAMPIMAGE input_buf, 614 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 615 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_mips_dspr2 616 (JDIMENSION output_width, JSAMPIMAGE input_buf, 617 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 618 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_mips_dspr2 619 (JDIMENSION output_width, JSAMPIMAGE input_buf, 620 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 621 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_mips_dspr2 622 (JDIMENSION output_width, JSAMPIMAGE input_buf, 623 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 624 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_mips_dspr2 625 (JDIMENSION output_width, JSAMPIMAGE input_buf, 626 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf, JSAMPLE* range); 627 628 EXTERN(void) jsimd_h2v1_merged_upsample_altivec 629 (JDIMENSION output_width, JSAMPIMAGE input_buf, 630 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 631 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_altivec 632 (JDIMENSION output_width, JSAMPIMAGE input_buf, 633 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 634 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_altivec 635 (JDIMENSION output_width, JSAMPIMAGE input_buf, 636 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 637 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_altivec 638 (JDIMENSION output_width, JSAMPIMAGE input_buf, 639 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 640 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_altivec 641 (JDIMENSION output_width, JSAMPIMAGE input_buf, 642 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 643 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_altivec 644 (JDIMENSION output_width, JSAMPIMAGE input_buf, 645 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 646 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_altivec 647 (JDIMENSION output_width, JSAMPIMAGE input_buf, 648 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 649 650 EXTERN(void) jsimd_h2v2_merged_upsample_altivec 651 (JDIMENSION output_width, JSAMPIMAGE input_buf, 652 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 653 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_altivec 654 (JDIMENSION output_width, JSAMPIMAGE input_buf, 655 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 656 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_altivec 657 (JDIMENSION output_width, JSAMPIMAGE input_buf, 658 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 659 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_altivec 660 (JDIMENSION output_width, JSAMPIMAGE input_buf, 661 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 662 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_altivec 663 (JDIMENSION output_width, JSAMPIMAGE input_buf, 664 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 665 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_altivec 666 (JDIMENSION output_width, JSAMPIMAGE input_buf, 667 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 668 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_altivec 669 (JDIMENSION output_width, JSAMPIMAGE input_buf, 670 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 671 672 /* Sample Conversion */ 673 EXTERN(void) jsimd_convsamp_mmx 674 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 675 676 EXTERN(void) jsimd_convsamp_sse2 677 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 678 679 EXTERN(void) jsimd_convsamp_neon 680 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 681 682 EXTERN(void) jsimd_convsamp_mips_dspr2 683 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 684 685 EXTERN(void) jsimd_convsamp_altivec 686 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 687 688 /* Floating Point Sample Conversion */ 689 EXTERN(void) jsimd_convsamp_float_3dnow 690 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 691 692 EXTERN(void) jsimd_convsamp_float_sse 693 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 694 695 EXTERN(void) jsimd_convsamp_float_sse2 696 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 697 698 EXTERN(void) jsimd_convsamp_float_mips_dspr2 699 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 700 701 /* Slow Integer Forward DCT */ 702 EXTERN(void) jsimd_fdct_islow_mmx (DCTELEM *data); 703 704 extern const int jconst_fdct_islow_sse2[]; 705 EXTERN(void) jsimd_fdct_islow_sse2 (DCTELEM *data); 706 707 EXTERN(void) jsimd_fdct_islow_neon (DCTELEM *data); 708 709 EXTERN(void) jsimd_fdct_islow_mips_dspr2 (DCTELEM *data); 710 711 EXTERN(void) jsimd_fdct_islow_altivec (DCTELEM *data); 712 713 /* Fast Integer Forward DCT */ 714 EXTERN(void) jsimd_fdct_ifast_mmx (DCTELEM *data); 715 716 extern const int jconst_fdct_ifast_sse2[]; 717 EXTERN(void) jsimd_fdct_ifast_sse2 (DCTELEM *data); 718 719 EXTERN(void) jsimd_fdct_ifast_neon (DCTELEM *data); 720 721 EXTERN(void) jsimd_fdct_ifast_mips_dspr2 (DCTELEM *data); 722 723 EXTERN(void) jsimd_fdct_ifast_altivec (DCTELEM *data); 724 725 /* Floating Point Forward DCT */ 726 EXTERN(void) jsimd_fdct_float_3dnow (FAST_FLOAT *data); 727 728 extern const int jconst_fdct_float_sse[]; 729 EXTERN(void) jsimd_fdct_float_sse (FAST_FLOAT *data); 730 731 /* Quantization */ 732 EXTERN(void) jsimd_quantize_mmx 733 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 734 735 EXTERN(void) jsimd_quantize_sse2 736 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 737 738 EXTERN(void) jsimd_quantize_neon 739 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 740 741 EXTERN(void) jsimd_quantize_mips_dspr2 742 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 743 744 EXTERN(void) jsimd_quantize_altivec 745 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 746 747 /* Floating Point Quantization */ 748 EXTERN(void) jsimd_quantize_float_3dnow 749 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 750 751 EXTERN(void) jsimd_quantize_float_sse 752 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 753 754 EXTERN(void) jsimd_quantize_float_sse2 755 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 756 757 EXTERN(void) jsimd_quantize_float_mips_dspr2 758 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 759 760 /* Scaled Inverse DCT */ 761 EXTERN(void) jsimd_idct_2x2_mmx 762 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 763 JDIMENSION output_col); 764 EXTERN(void) jsimd_idct_4x4_mmx 765 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 766 JDIMENSION output_col); 767 768 extern const int jconst_idct_red_sse2[]; 769 EXTERN(void) jsimd_idct_2x2_sse2 770 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 771 JDIMENSION output_col); 772 EXTERN(void) jsimd_idct_4x4_sse2 773 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 774 JDIMENSION output_col); 775 776 EXTERN(void) jsimd_idct_2x2_neon 777 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 778 JDIMENSION output_col); 779 EXTERN(void) jsimd_idct_4x4_neon 780 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 781 JDIMENSION output_col); 782 783 EXTERN(void) jsimd_idct_2x2_mips_dspr2 784 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 785 JDIMENSION output_col); 786 EXTERN(void) jsimd_idct_4x4_mips_dspr2 787 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 788 JDIMENSION output_col, int *workspace); 789 EXTERN(void) jsimd_idct_6x6_mips_dspr2 790 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 791 JDIMENSION output_col); 792 EXTERN(void) jsimd_idct_12x12_pass1_mips_dspr2 793 (JCOEFPTR coef_block, void *dct_table, int *workspace); 794 EXTERN(void) jsimd_idct_12x12_pass2_mips_dspr2 795 (int *workspace, int *output); 796 797 /* Slow Integer Inverse DCT */ 798 EXTERN(void) jsimd_idct_islow_mmx 799 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 800 JDIMENSION output_col); 801 802 extern const int jconst_idct_islow_sse2[]; 803 EXTERN(void) jsimd_idct_islow_sse2 804 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 805 JDIMENSION output_col); 806 807 EXTERN(void) jsimd_idct_islow_neon 808 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 809 JDIMENSION output_col); 810 811 EXTERN(void) jsimd_idct_islow_mips_dspr2 812 (void *dct_table, JCOEFPTR coef_block, int *output_buf, 813 JSAMPLE *output_col); 814 815 EXTERN(void) jsimd_idct_islow_altivec 816 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 817 JDIMENSION output_col); 818 819 /* Fast Integer Inverse DCT */ 820 EXTERN(void) jsimd_idct_ifast_mmx 821 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 822 JDIMENSION output_col); 823 824 extern const int jconst_idct_ifast_sse2[]; 825 EXTERN(void) jsimd_idct_ifast_sse2 826 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 827 JDIMENSION output_col); 828 829 EXTERN(void) jsimd_idct_ifast_neon 830 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 831 JDIMENSION output_col); 832 833 EXTERN(void) jsimd_idct_ifast_cols_mips_dspr2 834 (JCOEF *inptr, IFAST_MULT_TYPE *quantptr, DCTELEM *wsptr, 835 const int *idct_coefs); 836 EXTERN(void) jsimd_idct_ifast_rows_mips_dspr2 837 (DCTELEM *wsptr, JSAMPARRAY output_buf, JDIMENSION output_col, 838 const int *idct_coefs); 839 840 EXTERN(void) jsimd_idct_ifast_altivec 841 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 842 JDIMENSION output_col); 843 844 /* Floating Point Inverse DCT */ 845 EXTERN(void) jsimd_idct_float_3dnow 846 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 847 JDIMENSION output_col); 848 849 extern const int jconst_idct_float_sse[]; 850 EXTERN(void) jsimd_idct_float_sse 851 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 852 JDIMENSION output_col); 853 854 extern const int jconst_idct_float_sse2[]; 855 EXTERN(void) jsimd_idct_float_sse2 856 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 857 JDIMENSION output_col); 858 859 /* Huffman coding */ 860 extern const int jconst_huff_encode_one_block[]; 861 EXTERN(JOCTET*) jsimd_huff_encode_one_block_sse2 862 (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val, 863 c_derived_tbl *dctbl, c_derived_tbl *actbl); 864 865 EXTERN(JOCTET*) jsimd_huff_encode_one_block_neon 866 (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val, 867 c_derived_tbl *dctbl, c_derived_tbl *actbl); 868 869 EXTERN(JOCTET*) jsimd_huff_encode_one_block_neon_slowtbl 870 (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val, 871 c_derived_tbl *dctbl, c_derived_tbl *actbl); 872