1 /* 2 * simd/jsimd.h 3 * 4 * Copyright 2009 Pierre Ossman <[email protected]> for Cendio AB 5 * Copyright (C) 2011, 2014-2016, 2018, 2020, 2022, D. R. Commander. 6 * Copyright (C) 2013-2014, MIPS Technologies, Inc., California. 7 * Copyright (C) 2014, Linaro Limited. 8 * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois. 9 * Copyright (C) 2016-2018, Loongson Technology Corporation Limited, BeiJing. 10 * Copyright (C) 2020, Arm Limited. 11 * 12 * Based on the x86 SIMD extension for IJG JPEG library, 13 * Copyright (C) 1999-2006, MIYASAKA Masaru. 14 * For conditions of distribution and use, see copyright notice in jsimdext.inc 15 * 16 */ 17 18 /* Bitmask for supported acceleration methods */ 19 20 #define JSIMD_NONE 0x00 21 #define JSIMD_MMX 0x01 22 #define JSIMD_3DNOW 0x02 23 #define JSIMD_SSE 0x04 24 #define JSIMD_SSE2 0x08 25 #define JSIMD_NEON 0x10 26 #define JSIMD_DSPR2 0x20 27 #define JSIMD_ALTIVEC 0x40 28 #define JSIMD_AVX2 0x80 29 #define JSIMD_MMI 0x100 30 31 /* SIMD Ext: retrieve SIMD/CPU information */ 32 EXTERN(unsigned int) jpeg_simd_cpu_support(void); 33 34 /* RGB & extended RGB --> YCC Colorspace Conversion */ 35 EXTERN(void) jsimd_rgb_ycc_convert_mmx 36 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 37 JDIMENSION output_row, int num_rows); 38 EXTERN(void) jsimd_extrgb_ycc_convert_mmx 39 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 40 JDIMENSION output_row, int num_rows); 41 EXTERN(void) jsimd_extrgbx_ycc_convert_mmx 42 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 43 JDIMENSION output_row, int num_rows); 44 EXTERN(void) jsimd_extbgr_ycc_convert_mmx 45 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 46 JDIMENSION output_row, int num_rows); 47 EXTERN(void) jsimd_extbgrx_ycc_convert_mmx 48 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 49 JDIMENSION output_row, int num_rows); 50 EXTERN(void) jsimd_extxbgr_ycc_convert_mmx 51 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 52 JDIMENSION output_row, int num_rows); 53 EXTERN(void) jsimd_extxrgb_ycc_convert_mmx 54 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 55 JDIMENSION output_row, int num_rows); 56 57 extern const int jconst_rgb_ycc_convert_sse2[]; 58 EXTERN(void) jsimd_rgb_ycc_convert_sse2 59 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 60 JDIMENSION output_row, int num_rows); 61 EXTERN(void) jsimd_extrgb_ycc_convert_sse2 62 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 63 JDIMENSION output_row, int num_rows); 64 EXTERN(void) jsimd_extrgbx_ycc_convert_sse2 65 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 66 JDIMENSION output_row, int num_rows); 67 EXTERN(void) jsimd_extbgr_ycc_convert_sse2 68 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 69 JDIMENSION output_row, int num_rows); 70 EXTERN(void) jsimd_extbgrx_ycc_convert_sse2 71 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 72 JDIMENSION output_row, int num_rows); 73 EXTERN(void) jsimd_extxbgr_ycc_convert_sse2 74 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 75 JDIMENSION output_row, int num_rows); 76 EXTERN(void) jsimd_extxrgb_ycc_convert_sse2 77 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 78 JDIMENSION output_row, int num_rows); 79 80 extern const int jconst_rgb_ycc_convert_avx2[]; 81 EXTERN(void) jsimd_rgb_ycc_convert_avx2 82 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 83 JDIMENSION output_row, int num_rows); 84 EXTERN(void) jsimd_extrgb_ycc_convert_avx2 85 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 86 JDIMENSION output_row, int num_rows); 87 EXTERN(void) jsimd_extrgbx_ycc_convert_avx2 88 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 89 JDIMENSION output_row, int num_rows); 90 EXTERN(void) jsimd_extbgr_ycc_convert_avx2 91 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 92 JDIMENSION output_row, int num_rows); 93 EXTERN(void) jsimd_extbgrx_ycc_convert_avx2 94 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 95 JDIMENSION output_row, int num_rows); 96 EXTERN(void) jsimd_extxbgr_ycc_convert_avx2 97 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 98 JDIMENSION output_row, int num_rows); 99 EXTERN(void) jsimd_extxrgb_ycc_convert_avx2 100 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 101 JDIMENSION output_row, int num_rows); 102 103 EXTERN(void) jsimd_rgb_ycc_convert_neon 104 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 105 JDIMENSION output_row, int num_rows); 106 EXTERN(void) jsimd_extrgb_ycc_convert_neon 107 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 108 JDIMENSION output_row, int num_rows); 109 EXTERN(void) jsimd_extrgbx_ycc_convert_neon 110 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 111 JDIMENSION output_row, int num_rows); 112 EXTERN(void) jsimd_extbgr_ycc_convert_neon 113 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 114 JDIMENSION output_row, int num_rows); 115 EXTERN(void) jsimd_extbgrx_ycc_convert_neon 116 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 117 JDIMENSION output_row, int num_rows); 118 EXTERN(void) jsimd_extxbgr_ycc_convert_neon 119 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 120 JDIMENSION output_row, int num_rows); 121 EXTERN(void) jsimd_extxrgb_ycc_convert_neon 122 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 123 JDIMENSION output_row, int num_rows); 124 125 #ifndef NEON_INTRINSICS 126 127 EXTERN(void) jsimd_extrgb_ycc_convert_neon_slowld3 128 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 129 JDIMENSION output_row, int num_rows); 130 EXTERN(void) jsimd_extbgr_ycc_convert_neon_slowld3 131 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 132 JDIMENSION output_row, int num_rows); 133 134 #endif 135 136 EXTERN(void) jsimd_rgb_ycc_convert_dspr2 137 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 138 JDIMENSION output_row, int num_rows); 139 EXTERN(void) jsimd_extrgb_ycc_convert_dspr2 140 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 141 JDIMENSION output_row, int num_rows); 142 EXTERN(void) jsimd_extrgbx_ycc_convert_dspr2 143 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 144 JDIMENSION output_row, int num_rows); 145 EXTERN(void) jsimd_extbgr_ycc_convert_dspr2 146 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 147 JDIMENSION output_row, int num_rows); 148 EXTERN(void) jsimd_extbgrx_ycc_convert_dspr2 149 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 150 JDIMENSION output_row, int num_rows); 151 EXTERN(void) jsimd_extxbgr_ycc_convert_dspr2 152 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 153 JDIMENSION output_row, int num_rows); 154 EXTERN(void) jsimd_extxrgb_ycc_convert_dspr2 155 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 156 JDIMENSION output_row, int num_rows); 157 158 EXTERN(void) jsimd_rgb_ycc_convert_mmi 159 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 160 JDIMENSION output_row, int num_rows); 161 EXTERN(void) jsimd_extrgb_ycc_convert_mmi 162 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 163 JDIMENSION output_row, int num_rows); 164 EXTERN(void) jsimd_extrgbx_ycc_convert_mmi 165 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 166 JDIMENSION output_row, int num_rows); 167 EXTERN(void) jsimd_extbgr_ycc_convert_mmi 168 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 169 JDIMENSION output_row, int num_rows); 170 EXTERN(void) jsimd_extbgrx_ycc_convert_mmi 171 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 172 JDIMENSION output_row, int num_rows); 173 EXTERN(void) jsimd_extxbgr_ycc_convert_mmi 174 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 175 JDIMENSION output_row, int num_rows); 176 EXTERN(void) jsimd_extxrgb_ycc_convert_mmi 177 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 178 JDIMENSION output_row, int num_rows); 179 180 EXTERN(void) jsimd_rgb_ycc_convert_altivec 181 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 182 JDIMENSION output_row, int num_rows); 183 EXTERN(void) jsimd_extrgb_ycc_convert_altivec 184 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 185 JDIMENSION output_row, int num_rows); 186 EXTERN(void) jsimd_extrgbx_ycc_convert_altivec 187 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 188 JDIMENSION output_row, int num_rows); 189 EXTERN(void) jsimd_extbgr_ycc_convert_altivec 190 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 191 JDIMENSION output_row, int num_rows); 192 EXTERN(void) jsimd_extbgrx_ycc_convert_altivec 193 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 194 JDIMENSION output_row, int num_rows); 195 EXTERN(void) jsimd_extxbgr_ycc_convert_altivec 196 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 197 JDIMENSION output_row, int num_rows); 198 EXTERN(void) jsimd_extxrgb_ycc_convert_altivec 199 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 200 JDIMENSION output_row, int num_rows); 201 202 /* RGB & extended RGB --> Grayscale Colorspace Conversion */ 203 EXTERN(void) jsimd_rgb_gray_convert_mmx 204 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 205 JDIMENSION output_row, int num_rows); 206 EXTERN(void) jsimd_extrgb_gray_convert_mmx 207 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 208 JDIMENSION output_row, int num_rows); 209 EXTERN(void) jsimd_extrgbx_gray_convert_mmx 210 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 211 JDIMENSION output_row, int num_rows); 212 EXTERN(void) jsimd_extbgr_gray_convert_mmx 213 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 214 JDIMENSION output_row, int num_rows); 215 EXTERN(void) jsimd_extbgrx_gray_convert_mmx 216 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 217 JDIMENSION output_row, int num_rows); 218 EXTERN(void) jsimd_extxbgr_gray_convert_mmx 219 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 220 JDIMENSION output_row, int num_rows); 221 EXTERN(void) jsimd_extxrgb_gray_convert_mmx 222 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 223 JDIMENSION output_row, int num_rows); 224 225 extern const int jconst_rgb_gray_convert_sse2[]; 226 EXTERN(void) jsimd_rgb_gray_convert_sse2 227 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 228 JDIMENSION output_row, int num_rows); 229 EXTERN(void) jsimd_extrgb_gray_convert_sse2 230 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 231 JDIMENSION output_row, int num_rows); 232 EXTERN(void) jsimd_extrgbx_gray_convert_sse2 233 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 234 JDIMENSION output_row, int num_rows); 235 EXTERN(void) jsimd_extbgr_gray_convert_sse2 236 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 237 JDIMENSION output_row, int num_rows); 238 EXTERN(void) jsimd_extbgrx_gray_convert_sse2 239 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 240 JDIMENSION output_row, int num_rows); 241 EXTERN(void) jsimd_extxbgr_gray_convert_sse2 242 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 243 JDIMENSION output_row, int num_rows); 244 EXTERN(void) jsimd_extxrgb_gray_convert_sse2 245 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 246 JDIMENSION output_row, int num_rows); 247 248 extern const int jconst_rgb_gray_convert_avx2[]; 249 EXTERN(void) jsimd_rgb_gray_convert_avx2 250 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 251 JDIMENSION output_row, int num_rows); 252 EXTERN(void) jsimd_extrgb_gray_convert_avx2 253 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 254 JDIMENSION output_row, int num_rows); 255 EXTERN(void) jsimd_extrgbx_gray_convert_avx2 256 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 257 JDIMENSION output_row, int num_rows); 258 EXTERN(void) jsimd_extbgr_gray_convert_avx2 259 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 260 JDIMENSION output_row, int num_rows); 261 EXTERN(void) jsimd_extbgrx_gray_convert_avx2 262 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 263 JDIMENSION output_row, int num_rows); 264 EXTERN(void) jsimd_extxbgr_gray_convert_avx2 265 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 266 JDIMENSION output_row, int num_rows); 267 EXTERN(void) jsimd_extxrgb_gray_convert_avx2 268 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 269 JDIMENSION output_row, int num_rows); 270 271 EXTERN(void) jsimd_rgb_gray_convert_neon 272 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 273 JDIMENSION output_row, int num_rows); 274 EXTERN(void) jsimd_extrgb_gray_convert_neon 275 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 276 JDIMENSION output_row, int num_rows); 277 EXTERN(void) jsimd_extrgbx_gray_convert_neon 278 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 279 JDIMENSION output_row, int num_rows); 280 EXTERN(void) jsimd_extbgr_gray_convert_neon 281 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 282 JDIMENSION output_row, int num_rows); 283 EXTERN(void) jsimd_extbgrx_gray_convert_neon 284 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 285 JDIMENSION output_row, int num_rows); 286 EXTERN(void) jsimd_extxbgr_gray_convert_neon 287 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 288 JDIMENSION output_row, int num_rows); 289 EXTERN(void) jsimd_extxrgb_gray_convert_neon 290 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 291 JDIMENSION output_row, int num_rows); 292 293 EXTERN(void) jsimd_rgb_gray_convert_dspr2 294 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 295 JDIMENSION output_row, int num_rows); 296 EXTERN(void) jsimd_extrgb_gray_convert_dspr2 297 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 298 JDIMENSION output_row, int num_rows); 299 EXTERN(void) jsimd_extrgbx_gray_convert_dspr2 300 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 301 JDIMENSION output_row, int num_rows); 302 EXTERN(void) jsimd_extbgr_gray_convert_dspr2 303 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 304 JDIMENSION output_row, int num_rows); 305 EXTERN(void) jsimd_extbgrx_gray_convert_dspr2 306 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 307 JDIMENSION output_row, int num_rows); 308 EXTERN(void) jsimd_extxbgr_gray_convert_dspr2 309 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 310 JDIMENSION output_row, int num_rows); 311 EXTERN(void) jsimd_extxrgb_gray_convert_dspr2 312 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 313 JDIMENSION output_row, int num_rows); 314 315 EXTERN(void) jsimd_rgb_gray_convert_mmi 316 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 317 JDIMENSION output_row, int num_rows); 318 EXTERN(void) jsimd_extrgb_gray_convert_mmi 319 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 320 JDIMENSION output_row, int num_rows); 321 EXTERN(void) jsimd_extrgbx_gray_convert_mmi 322 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 323 JDIMENSION output_row, int num_rows); 324 EXTERN(void) jsimd_extbgr_gray_convert_mmi 325 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 326 JDIMENSION output_row, int num_rows); 327 EXTERN(void) jsimd_extbgrx_gray_convert_mmi 328 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 329 JDIMENSION output_row, int num_rows); 330 EXTERN(void) jsimd_extxbgr_gray_convert_mmi 331 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 332 JDIMENSION output_row, int num_rows); 333 EXTERN(void) jsimd_extxrgb_gray_convert_mmi 334 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 335 JDIMENSION output_row, int num_rows); 336 337 EXTERN(void) jsimd_rgb_gray_convert_altivec 338 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 339 JDIMENSION output_row, int num_rows); 340 EXTERN(void) jsimd_extrgb_gray_convert_altivec 341 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 342 JDIMENSION output_row, int num_rows); 343 EXTERN(void) jsimd_extrgbx_gray_convert_altivec 344 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 345 JDIMENSION output_row, int num_rows); 346 EXTERN(void) jsimd_extbgr_gray_convert_altivec 347 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 348 JDIMENSION output_row, int num_rows); 349 EXTERN(void) jsimd_extbgrx_gray_convert_altivec 350 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 351 JDIMENSION output_row, int num_rows); 352 EXTERN(void) jsimd_extxbgr_gray_convert_altivec 353 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 354 JDIMENSION output_row, int num_rows); 355 EXTERN(void) jsimd_extxrgb_gray_convert_altivec 356 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 357 JDIMENSION output_row, int num_rows); 358 359 /* YCC --> RGB & extended RGB Colorspace Conversion */ 360 EXTERN(void) jsimd_ycc_rgb_convert_mmx 361 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 362 JSAMPARRAY output_buf, int num_rows); 363 EXTERN(void) jsimd_ycc_extrgb_convert_mmx 364 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 365 JSAMPARRAY output_buf, int num_rows); 366 EXTERN(void) jsimd_ycc_extrgbx_convert_mmx 367 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 368 JSAMPARRAY output_buf, int num_rows); 369 EXTERN(void) jsimd_ycc_extbgr_convert_mmx 370 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 371 JSAMPARRAY output_buf, int num_rows); 372 EXTERN(void) jsimd_ycc_extbgrx_convert_mmx 373 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 374 JSAMPARRAY output_buf, int num_rows); 375 EXTERN(void) jsimd_ycc_extxbgr_convert_mmx 376 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 377 JSAMPARRAY output_buf, int num_rows); 378 EXTERN(void) jsimd_ycc_extxrgb_convert_mmx 379 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 380 JSAMPARRAY output_buf, int num_rows); 381 382 extern const int jconst_ycc_rgb_convert_sse2[]; 383 EXTERN(void) jsimd_ycc_rgb_convert_sse2 384 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 385 JSAMPARRAY output_buf, int num_rows); 386 EXTERN(void) jsimd_ycc_extrgb_convert_sse2 387 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 388 JSAMPARRAY output_buf, int num_rows); 389 EXTERN(void) jsimd_ycc_extrgbx_convert_sse2 390 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 391 JSAMPARRAY output_buf, int num_rows); 392 EXTERN(void) jsimd_ycc_extbgr_convert_sse2 393 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 394 JSAMPARRAY output_buf, int num_rows); 395 EXTERN(void) jsimd_ycc_extbgrx_convert_sse2 396 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 397 JSAMPARRAY output_buf, int num_rows); 398 EXTERN(void) jsimd_ycc_extxbgr_convert_sse2 399 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 400 JSAMPARRAY output_buf, int num_rows); 401 EXTERN(void) jsimd_ycc_extxrgb_convert_sse2 402 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 403 JSAMPARRAY output_buf, int num_rows); 404 405 extern const int jconst_ycc_rgb_convert_avx2[]; 406 EXTERN(void) jsimd_ycc_rgb_convert_avx2 407 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 408 JSAMPARRAY output_buf, int num_rows); 409 EXTERN(void) jsimd_ycc_extrgb_convert_avx2 410 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 411 JSAMPARRAY output_buf, int num_rows); 412 EXTERN(void) jsimd_ycc_extrgbx_convert_avx2 413 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 414 JSAMPARRAY output_buf, int num_rows); 415 EXTERN(void) jsimd_ycc_extbgr_convert_avx2 416 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 417 JSAMPARRAY output_buf, int num_rows); 418 EXTERN(void) jsimd_ycc_extbgrx_convert_avx2 419 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 420 JSAMPARRAY output_buf, int num_rows); 421 EXTERN(void) jsimd_ycc_extxbgr_convert_avx2 422 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 423 JSAMPARRAY output_buf, int num_rows); 424 EXTERN(void) jsimd_ycc_extxrgb_convert_avx2 425 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 426 JSAMPARRAY output_buf, int num_rows); 427 428 EXTERN(void) jsimd_ycc_rgb_convert_neon 429 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 430 JSAMPARRAY output_buf, int num_rows); 431 EXTERN(void) jsimd_ycc_extrgb_convert_neon 432 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 433 JSAMPARRAY output_buf, int num_rows); 434 EXTERN(void) jsimd_ycc_extrgbx_convert_neon 435 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 436 JSAMPARRAY output_buf, int num_rows); 437 EXTERN(void) jsimd_ycc_extbgr_convert_neon 438 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 439 JSAMPARRAY output_buf, int num_rows); 440 EXTERN(void) jsimd_ycc_extbgrx_convert_neon 441 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 442 JSAMPARRAY output_buf, int num_rows); 443 EXTERN(void) jsimd_ycc_extxbgr_convert_neon 444 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 445 JSAMPARRAY output_buf, int num_rows); 446 EXTERN(void) jsimd_ycc_extxrgb_convert_neon 447 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 448 JSAMPARRAY output_buf, int num_rows); 449 EXTERN(void) jsimd_ycc_rgb565_convert_neon 450 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 451 JSAMPARRAY output_buf, int num_rows); 452 453 #ifndef NEON_INTRINSICS 454 455 EXTERN(void) jsimd_ycc_extrgb_convert_neon_slowst3 456 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 457 JSAMPARRAY output_buf, int num_rows); 458 EXTERN(void) jsimd_ycc_extbgr_convert_neon_slowst3 459 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 460 JSAMPARRAY output_buf, int num_rows); 461 462 #endif 463 464 EXTERN(void) jsimd_ycc_rgb_convert_dspr2 465 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 466 JSAMPARRAY output_buf, int num_rows); 467 EXTERN(void) jsimd_ycc_extrgb_convert_dspr2 468 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 469 JSAMPARRAY output_buf, int num_rows); 470 EXTERN(void) jsimd_ycc_extrgbx_convert_dspr2 471 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 472 JSAMPARRAY output_buf, int num_rows); 473 EXTERN(void) jsimd_ycc_extbgr_convert_dspr2 474 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 475 JSAMPARRAY output_buf, int num_rows); 476 EXTERN(void) jsimd_ycc_extbgrx_convert_dspr2 477 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 478 JSAMPARRAY output_buf, int num_rows); 479 EXTERN(void) jsimd_ycc_extxbgr_convert_dspr2 480 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 481 JSAMPARRAY output_buf, int num_rows); 482 EXTERN(void) jsimd_ycc_extxrgb_convert_dspr2 483 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 484 JSAMPARRAY output_buf, int num_rows); 485 486 EXTERN(void) jsimd_ycc_rgb_convert_mmi 487 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 488 JSAMPARRAY output_buf, int num_rows); 489 EXTERN(void) jsimd_ycc_extrgb_convert_mmi 490 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 491 JSAMPARRAY output_buf, int num_rows); 492 EXTERN(void) jsimd_ycc_extrgbx_convert_mmi 493 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 494 JSAMPARRAY output_buf, int num_rows); 495 EXTERN(void) jsimd_ycc_extbgr_convert_mmi 496 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 497 JSAMPARRAY output_buf, int num_rows); 498 EXTERN(void) jsimd_ycc_extbgrx_convert_mmi 499 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 500 JSAMPARRAY output_buf, int num_rows); 501 EXTERN(void) jsimd_ycc_extxbgr_convert_mmi 502 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 503 JSAMPARRAY output_buf, int num_rows); 504 EXTERN(void) jsimd_ycc_extxrgb_convert_mmi 505 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 506 JSAMPARRAY output_buf, int num_rows); 507 508 EXTERN(void) jsimd_ycc_rgb_convert_altivec 509 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 510 JSAMPARRAY output_buf, int num_rows); 511 EXTERN(void) jsimd_ycc_extrgb_convert_altivec 512 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 513 JSAMPARRAY output_buf, int num_rows); 514 EXTERN(void) jsimd_ycc_extrgbx_convert_altivec 515 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 516 JSAMPARRAY output_buf, int num_rows); 517 EXTERN(void) jsimd_ycc_extbgr_convert_altivec 518 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 519 JSAMPARRAY output_buf, int num_rows); 520 EXTERN(void) jsimd_ycc_extbgrx_convert_altivec 521 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 522 JSAMPARRAY output_buf, int num_rows); 523 EXTERN(void) jsimd_ycc_extxbgr_convert_altivec 524 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 525 JSAMPARRAY output_buf, int num_rows); 526 EXTERN(void) jsimd_ycc_extxrgb_convert_altivec 527 (JDIMENSION out_width, JSAMPIMAGE input_buf, JDIMENSION input_row, 528 JSAMPARRAY output_buf, int num_rows); 529 530 /* NULL Colorspace Conversion */ 531 EXTERN(void) jsimd_c_null_convert_dspr2 532 (JDIMENSION img_width, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 533 JDIMENSION output_row, int num_rows, int num_components); 534 535 /* h2v1 Downsampling */ 536 EXTERN(void) jsimd_h2v1_downsample_mmx 537 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 538 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 539 540 EXTERN(void) jsimd_h2v1_downsample_sse2 541 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 542 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 543 544 EXTERN(void) jsimd_h2v1_downsample_avx2 545 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 546 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 547 548 EXTERN(void) jsimd_h2v1_downsample_neon 549 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 550 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 551 552 EXTERN(void) jsimd_h2v1_downsample_dspr2 553 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 554 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 555 556 EXTERN(void) jsimd_h2v1_downsample_altivec 557 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 558 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 559 560 /* h2v2 Downsampling */ 561 EXTERN(void) jsimd_h2v2_downsample_mmx 562 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 563 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 564 565 EXTERN(void) jsimd_h2v2_downsample_sse2 566 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 567 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 568 569 EXTERN(void) jsimd_h2v2_downsample_avx2 570 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 571 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 572 573 EXTERN(void) jsimd_h2v2_downsample_neon 574 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 575 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 576 577 EXTERN(void) jsimd_h2v2_downsample_dspr2 578 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 579 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 580 581 EXTERN(void) jsimd_h2v2_downsample_mmi 582 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 583 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 584 585 EXTERN(void) jsimd_h2v2_downsample_altivec 586 (JDIMENSION image_width, int max_v_samp_factor, JDIMENSION v_samp_factor, 587 JDIMENSION width_in_blocks, JSAMPARRAY input_data, JSAMPARRAY output_data); 588 589 /* h2v2 Smooth Downsampling */ 590 EXTERN(void) jsimd_h2v2_smooth_downsample_dspr2 591 (JSAMPARRAY input_data, JSAMPARRAY output_data, JDIMENSION v_samp_factor, 592 int max_v_samp_factor, int smoothing_factor, JDIMENSION width_in_blocks, 593 JDIMENSION image_width); 594 595 596 /* Upsampling */ 597 EXTERN(void) jsimd_h2v1_upsample_mmx 598 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 599 JSAMPARRAY *output_data_ptr); 600 EXTERN(void) jsimd_h2v2_upsample_mmx 601 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 602 JSAMPARRAY *output_data_ptr); 603 604 EXTERN(void) jsimd_h2v1_upsample_sse2 605 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 606 JSAMPARRAY *output_data_ptr); 607 EXTERN(void) jsimd_h2v2_upsample_sse2 608 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 609 JSAMPARRAY *output_data_ptr); 610 611 EXTERN(void) jsimd_h2v1_upsample_avx2 612 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 613 JSAMPARRAY *output_data_ptr); 614 EXTERN(void) jsimd_h2v2_upsample_avx2 615 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 616 JSAMPARRAY *output_data_ptr); 617 618 EXTERN(void) jsimd_h2v1_upsample_neon 619 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 620 JSAMPARRAY *output_data_ptr); 621 EXTERN(void) jsimd_h2v2_upsample_neon 622 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 623 JSAMPARRAY *output_data_ptr); 624 625 EXTERN(void) jsimd_h2v1_upsample_dspr2 626 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 627 JSAMPARRAY *output_data_ptr); 628 EXTERN(void) jsimd_h2v2_upsample_dspr2 629 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 630 JSAMPARRAY *output_data_ptr); 631 632 EXTERN(void) jsimd_int_upsample_dspr2 633 (UINT8 h_expand, UINT8 v_expand, JSAMPARRAY input_data, 634 JSAMPARRAY *output_data_ptr, JDIMENSION output_width, 635 int max_v_samp_factor); 636 637 EXTERN(void) jsimd_h2v1_upsample_altivec 638 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 639 JSAMPARRAY *output_data_ptr); 640 EXTERN(void) jsimd_h2v2_upsample_altivec 641 (int max_v_samp_factor, JDIMENSION output_width, JSAMPARRAY input_data, 642 JSAMPARRAY *output_data_ptr); 643 644 /* Fancy Upsampling */ 645 EXTERN(void) jsimd_h2v1_fancy_upsample_mmx 646 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 647 JSAMPARRAY *output_data_ptr); 648 EXTERN(void) jsimd_h2v2_fancy_upsample_mmx 649 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 650 JSAMPARRAY *output_data_ptr); 651 652 extern const int jconst_fancy_upsample_sse2[]; 653 EXTERN(void) jsimd_h2v1_fancy_upsample_sse2 654 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 655 JSAMPARRAY *output_data_ptr); 656 EXTERN(void) jsimd_h2v2_fancy_upsample_sse2 657 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 658 JSAMPARRAY *output_data_ptr); 659 660 extern const int jconst_fancy_upsample_avx2[]; 661 EXTERN(void) jsimd_h2v1_fancy_upsample_avx2 662 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 663 JSAMPARRAY *output_data_ptr); 664 EXTERN(void) jsimd_h2v2_fancy_upsample_avx2 665 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 666 JSAMPARRAY *output_data_ptr); 667 668 EXTERN(void) jsimd_h2v1_fancy_upsample_neon 669 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 670 JSAMPARRAY *output_data_ptr); 671 EXTERN(void) jsimd_h2v2_fancy_upsample_neon 672 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 673 JSAMPARRAY *output_data_ptr); 674 EXTERN(void) jsimd_h1v2_fancy_upsample_neon 675 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 676 JSAMPARRAY *output_data_ptr); 677 678 EXTERN(void) jsimd_h2v1_fancy_upsample_dspr2 679 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 680 JSAMPARRAY *output_data_ptr); 681 EXTERN(void) jsimd_h2v2_fancy_upsample_dspr2 682 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 683 JSAMPARRAY *output_data_ptr); 684 685 EXTERN(void) jsimd_h2v1_fancy_upsample_mmi 686 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 687 JSAMPARRAY *output_data_ptr); 688 EXTERN(void) jsimd_h2v2_fancy_upsample_mmi 689 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 690 JSAMPARRAY *output_data_ptr); 691 692 EXTERN(void) jsimd_h2v1_fancy_upsample_altivec 693 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 694 JSAMPARRAY *output_data_ptr); 695 EXTERN(void) jsimd_h2v2_fancy_upsample_altivec 696 (int max_v_samp_factor, JDIMENSION downsampled_width, JSAMPARRAY input_data, 697 JSAMPARRAY *output_data_ptr); 698 699 /* Merged Upsampling */ 700 EXTERN(void) jsimd_h2v1_merged_upsample_mmx 701 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 702 JSAMPARRAY output_buf); 703 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_mmx 704 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 705 JSAMPARRAY output_buf); 706 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_mmx 707 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 708 JSAMPARRAY output_buf); 709 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_mmx 710 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 711 JSAMPARRAY output_buf); 712 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_mmx 713 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 714 JSAMPARRAY output_buf); 715 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_mmx 716 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 717 JSAMPARRAY output_buf); 718 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_mmx 719 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 720 JSAMPARRAY output_buf); 721 722 EXTERN(void) jsimd_h2v2_merged_upsample_mmx 723 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 724 JSAMPARRAY output_buf); 725 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_mmx 726 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 727 JSAMPARRAY output_buf); 728 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_mmx 729 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 730 JSAMPARRAY output_buf); 731 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_mmx 732 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 733 JSAMPARRAY output_buf); 734 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_mmx 735 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 736 JSAMPARRAY output_buf); 737 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_mmx 738 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 739 JSAMPARRAY output_buf); 740 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_mmx 741 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 742 JSAMPARRAY output_buf); 743 744 extern const int jconst_merged_upsample_sse2[]; 745 EXTERN(void) jsimd_h2v1_merged_upsample_sse2 746 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 747 JSAMPARRAY output_buf); 748 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_sse2 749 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 750 JSAMPARRAY output_buf); 751 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_sse2 752 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 753 JSAMPARRAY output_buf); 754 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_sse2 755 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 756 JSAMPARRAY output_buf); 757 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_sse2 758 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 759 JSAMPARRAY output_buf); 760 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_sse2 761 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 762 JSAMPARRAY output_buf); 763 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_sse2 764 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 765 JSAMPARRAY output_buf); 766 767 EXTERN(void) jsimd_h2v2_merged_upsample_sse2 768 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 769 JSAMPARRAY output_buf); 770 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_sse2 771 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 772 JSAMPARRAY output_buf); 773 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_sse2 774 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 775 JSAMPARRAY output_buf); 776 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_sse2 777 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 778 JSAMPARRAY output_buf); 779 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_sse2 780 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 781 JSAMPARRAY output_buf); 782 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_sse2 783 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 784 JSAMPARRAY output_buf); 785 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_sse2 786 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 787 JSAMPARRAY output_buf); 788 789 extern const int jconst_merged_upsample_avx2[]; 790 EXTERN(void) jsimd_h2v1_merged_upsample_avx2 791 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 792 JSAMPARRAY output_buf); 793 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_avx2 794 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 795 JSAMPARRAY output_buf); 796 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_avx2 797 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 798 JSAMPARRAY output_buf); 799 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_avx2 800 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 801 JSAMPARRAY output_buf); 802 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_avx2 803 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 804 JSAMPARRAY output_buf); 805 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_avx2 806 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 807 JSAMPARRAY output_buf); 808 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_avx2 809 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 810 JSAMPARRAY output_buf); 811 812 EXTERN(void) jsimd_h2v2_merged_upsample_avx2 813 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 814 JSAMPARRAY output_buf); 815 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_avx2 816 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 817 JSAMPARRAY output_buf); 818 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_avx2 819 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 820 JSAMPARRAY output_buf); 821 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_avx2 822 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 823 JSAMPARRAY output_buf); 824 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_avx2 825 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 826 JSAMPARRAY output_buf); 827 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_avx2 828 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 829 JSAMPARRAY output_buf); 830 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_avx2 831 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 832 JSAMPARRAY output_buf); 833 834 EXTERN(void) jsimd_h2v1_merged_upsample_neon 835 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 836 JSAMPARRAY output_buf); 837 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_neon 838 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 839 JSAMPARRAY output_buf); 840 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_neon 841 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 842 JSAMPARRAY output_buf); 843 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_neon 844 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 845 JSAMPARRAY output_buf); 846 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_neon 847 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 848 JSAMPARRAY output_buf); 849 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_neon 850 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 851 JSAMPARRAY output_buf); 852 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_neon 853 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 854 JSAMPARRAY output_buf); 855 856 EXTERN(void) jsimd_h2v2_merged_upsample_neon 857 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 858 JSAMPARRAY output_buf); 859 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_neon 860 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 861 JSAMPARRAY output_buf); 862 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_neon 863 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 864 JSAMPARRAY output_buf); 865 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_neon 866 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 867 JSAMPARRAY output_buf); 868 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_neon 869 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 870 JSAMPARRAY output_buf); 871 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_neon 872 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 873 JSAMPARRAY output_buf); 874 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_neon 875 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 876 JSAMPARRAY output_buf); 877 878 EXTERN(void) jsimd_h2v1_merged_upsample_dspr2 879 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 880 JSAMPARRAY output_buf, JSAMPLE *range); 881 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_dspr2 882 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 883 JSAMPARRAY output_buf, JSAMPLE *range); 884 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_dspr2 885 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 886 JSAMPARRAY output_buf, JSAMPLE *range); 887 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_dspr2 888 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 889 JSAMPARRAY output_buf, JSAMPLE *range); 890 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_dspr2 891 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 892 JSAMPARRAY output_buf, JSAMPLE *range); 893 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_dspr2 894 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 895 JSAMPARRAY output_buf, JSAMPLE *range); 896 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_dspr2 897 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 898 JSAMPARRAY output_buf, JSAMPLE *range); 899 900 EXTERN(void) jsimd_h2v2_merged_upsample_dspr2 901 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 902 JSAMPARRAY output_buf, JSAMPLE *range); 903 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_dspr2 904 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 905 JSAMPARRAY output_buf, JSAMPLE *range); 906 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_dspr2 907 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 908 JSAMPARRAY output_buf, JSAMPLE *range); 909 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_dspr2 910 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 911 JSAMPARRAY output_buf, JSAMPLE *range); 912 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_dspr2 913 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 914 JSAMPARRAY output_buf, JSAMPLE *range); 915 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_dspr2 916 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 917 JSAMPARRAY output_buf, JSAMPLE *range); 918 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_dspr2 919 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 920 JSAMPARRAY output_buf, JSAMPLE *range); 921 922 EXTERN(void) jsimd_h2v1_merged_upsample_mmi 923 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 924 JSAMPARRAY output_buf); 925 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_mmi 926 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 927 JSAMPARRAY output_buf); 928 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_mmi 929 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 930 JSAMPARRAY output_buf); 931 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_mmi 932 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 933 JSAMPARRAY output_buf); 934 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_mmi 935 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 936 JSAMPARRAY output_buf); 937 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_mmi 938 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 939 JSAMPARRAY output_buf); 940 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_mmi 941 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 942 JSAMPARRAY output_buf); 943 944 EXTERN(void) jsimd_h2v2_merged_upsample_mmi 945 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 946 JSAMPARRAY output_buf); 947 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_mmi 948 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 949 JSAMPARRAY output_buf); 950 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_mmi 951 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 952 JSAMPARRAY output_buf); 953 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_mmi 954 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 955 JSAMPARRAY output_buf); 956 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_mmi 957 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 958 JSAMPARRAY output_buf); 959 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_mmi 960 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 961 JSAMPARRAY output_buf); 962 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_mmi 963 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 964 JSAMPARRAY output_buf); 965 966 EXTERN(void) jsimd_h2v1_merged_upsample_altivec 967 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 968 JSAMPARRAY output_buf); 969 EXTERN(void) jsimd_h2v1_extrgb_merged_upsample_altivec 970 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 971 JSAMPARRAY output_buf); 972 EXTERN(void) jsimd_h2v1_extrgbx_merged_upsample_altivec 973 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 974 JSAMPARRAY output_buf); 975 EXTERN(void) jsimd_h2v1_extbgr_merged_upsample_altivec 976 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 977 JSAMPARRAY output_buf); 978 EXTERN(void) jsimd_h2v1_extbgrx_merged_upsample_altivec 979 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 980 JSAMPARRAY output_buf); 981 EXTERN(void) jsimd_h2v1_extxbgr_merged_upsample_altivec 982 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 983 JSAMPARRAY output_buf); 984 EXTERN(void) jsimd_h2v1_extxrgb_merged_upsample_altivec 985 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 986 JSAMPARRAY output_buf); 987 988 EXTERN(void) jsimd_h2v2_merged_upsample_altivec 989 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 990 JSAMPARRAY output_buf); 991 EXTERN(void) jsimd_h2v2_extrgb_merged_upsample_altivec 992 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 993 JSAMPARRAY output_buf); 994 EXTERN(void) jsimd_h2v2_extrgbx_merged_upsample_altivec 995 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 996 JSAMPARRAY output_buf); 997 EXTERN(void) jsimd_h2v2_extbgr_merged_upsample_altivec 998 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 999 JSAMPARRAY output_buf); 1000 EXTERN(void) jsimd_h2v2_extbgrx_merged_upsample_altivec 1001 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 1002 JSAMPARRAY output_buf); 1003 EXTERN(void) jsimd_h2v2_extxbgr_merged_upsample_altivec 1004 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 1005 JSAMPARRAY output_buf); 1006 EXTERN(void) jsimd_h2v2_extxrgb_merged_upsample_altivec 1007 (JDIMENSION output_width, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, 1008 JSAMPARRAY output_buf); 1009 1010 /* Sample Conversion */ 1011 EXTERN(void) jsimd_convsamp_mmx 1012 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 1013 1014 EXTERN(void) jsimd_convsamp_sse2 1015 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 1016 1017 EXTERN(void) jsimd_convsamp_avx2 1018 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 1019 1020 EXTERN(void) jsimd_convsamp_neon 1021 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 1022 1023 EXTERN(void) jsimd_convsamp_dspr2 1024 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 1025 1026 EXTERN(void) jsimd_convsamp_altivec 1027 (JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace); 1028 1029 /* Floating Point Sample Conversion */ 1030 EXTERN(void) jsimd_convsamp_float_3dnow 1031 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 1032 1033 EXTERN(void) jsimd_convsamp_float_sse 1034 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 1035 1036 EXTERN(void) jsimd_convsamp_float_sse2 1037 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 1038 1039 EXTERN(void) jsimd_convsamp_float_dspr2 1040 (JSAMPARRAY sample_data, JDIMENSION start_col, FAST_FLOAT *workspace); 1041 1042 /* Accurate Integer Forward DCT */ 1043 EXTERN(void) jsimd_fdct_islow_mmx(DCTELEM *data); 1044 1045 extern const int jconst_fdct_islow_sse2[]; 1046 EXTERN(void) jsimd_fdct_islow_sse2(DCTELEM *data); 1047 1048 extern const int jconst_fdct_islow_avx2[]; 1049 EXTERN(void) jsimd_fdct_islow_avx2(DCTELEM *data); 1050 1051 EXTERN(void) jsimd_fdct_islow_neon(DCTELEM *data); 1052 1053 EXTERN(void) jsimd_fdct_islow_dspr2(DCTELEM *data); 1054 1055 EXTERN(void) jsimd_fdct_islow_mmi(DCTELEM *data); 1056 1057 EXTERN(void) jsimd_fdct_islow_altivec(DCTELEM *data); 1058 1059 /* Fast Integer Forward DCT */ 1060 EXTERN(void) jsimd_fdct_ifast_mmx(DCTELEM *data); 1061 1062 extern const int jconst_fdct_ifast_sse2[]; 1063 EXTERN(void) jsimd_fdct_ifast_sse2(DCTELEM *data); 1064 1065 EXTERN(void) jsimd_fdct_ifast_neon(DCTELEM *data); 1066 1067 EXTERN(void) jsimd_fdct_ifast_dspr2(DCTELEM *data); 1068 1069 EXTERN(void) jsimd_fdct_ifast_mmi(DCTELEM *data); 1070 1071 EXTERN(void) jsimd_fdct_ifast_altivec(DCTELEM *data); 1072 1073 /* Floating Point Forward DCT */ 1074 EXTERN(void) jsimd_fdct_float_3dnow(FAST_FLOAT *data); 1075 1076 extern const int jconst_fdct_float_sse[]; 1077 EXTERN(void) jsimd_fdct_float_sse(FAST_FLOAT *data); 1078 1079 /* Quantization */ 1080 EXTERN(void) jsimd_quantize_mmx 1081 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 1082 1083 EXTERN(void) jsimd_quantize_sse2 1084 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 1085 1086 EXTERN(void) jsimd_quantize_avx2 1087 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 1088 1089 EXTERN(void) jsimd_quantize_neon 1090 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 1091 1092 EXTERN(void) jsimd_quantize_dspr2 1093 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 1094 1095 EXTERN(void) jsimd_quantize_mmi 1096 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 1097 1098 EXTERN(void) jsimd_quantize_altivec 1099 (JCOEFPTR coef_block, DCTELEM *divisors, DCTELEM *workspace); 1100 1101 /* Floating Point Quantization */ 1102 EXTERN(void) jsimd_quantize_float_3dnow 1103 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 1104 1105 EXTERN(void) jsimd_quantize_float_sse 1106 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 1107 1108 EXTERN(void) jsimd_quantize_float_sse2 1109 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 1110 1111 EXTERN(void) jsimd_quantize_float_dspr2 1112 (JCOEFPTR coef_block, FAST_FLOAT *divisors, FAST_FLOAT *workspace); 1113 1114 /* Scaled Inverse DCT */ 1115 EXTERN(void) jsimd_idct_2x2_mmx 1116 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1117 JDIMENSION output_col); 1118 EXTERN(void) jsimd_idct_4x4_mmx 1119 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1120 JDIMENSION output_col); 1121 1122 extern const int jconst_idct_red_sse2[]; 1123 EXTERN(void) jsimd_idct_2x2_sse2 1124 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1125 JDIMENSION output_col); 1126 EXTERN(void) jsimd_idct_4x4_sse2 1127 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1128 JDIMENSION output_col); 1129 1130 EXTERN(void) jsimd_idct_2x2_neon 1131 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1132 JDIMENSION output_col); 1133 EXTERN(void) jsimd_idct_4x4_neon 1134 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1135 JDIMENSION output_col); 1136 1137 EXTERN(void) jsimd_idct_2x2_dspr2 1138 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1139 JDIMENSION output_col); 1140 EXTERN(void) jsimd_idct_4x4_dspr2 1141 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1142 JDIMENSION output_col, int *workspace); 1143 EXTERN(void) jsimd_idct_6x6_dspr2 1144 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1145 JDIMENSION output_col); 1146 EXTERN(void) jsimd_idct_12x12_pass1_dspr2 1147 (JCOEFPTR coef_block, void *dct_table, int *workspace); 1148 EXTERN(void) jsimd_idct_12x12_pass2_dspr2 1149 (int *workspace, int *output); 1150 1151 /* Accurate Integer Inverse DCT */ 1152 EXTERN(void) jsimd_idct_islow_mmx 1153 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1154 JDIMENSION output_col); 1155 1156 extern const int jconst_idct_islow_sse2[]; 1157 EXTERN(void) jsimd_idct_islow_sse2 1158 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1159 JDIMENSION output_col); 1160 1161 extern const int jconst_idct_islow_avx2[]; 1162 EXTERN(void) jsimd_idct_islow_avx2 1163 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1164 JDIMENSION output_col); 1165 1166 EXTERN(void) jsimd_idct_islow_neon 1167 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1168 JDIMENSION output_col); 1169 1170 EXTERN(void) jsimd_idct_islow_dspr2 1171 (void *dct_table, JCOEFPTR coef_block, int *output_buf, JSAMPLE *output_col); 1172 1173 EXTERN(void) jsimd_idct_islow_mmi 1174 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1175 JDIMENSION output_col); 1176 1177 EXTERN(void) jsimd_idct_islow_altivec 1178 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1179 JDIMENSION output_col); 1180 1181 /* Fast Integer Inverse DCT */ 1182 EXTERN(void) jsimd_idct_ifast_mmx 1183 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1184 JDIMENSION output_col); 1185 1186 extern const int jconst_idct_ifast_sse2[]; 1187 EXTERN(void) jsimd_idct_ifast_sse2 1188 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1189 JDIMENSION output_col); 1190 1191 EXTERN(void) jsimd_idct_ifast_neon 1192 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1193 JDIMENSION output_col); 1194 1195 EXTERN(void) jsimd_idct_ifast_cols_dspr2 1196 (JCOEF *inptr, IFAST_MULT_TYPE *quantptr, DCTELEM *wsptr, 1197 const int *idct_coefs); 1198 EXTERN(void) jsimd_idct_ifast_rows_dspr2 1199 (DCTELEM *wsptr, JSAMPARRAY output_buf, JDIMENSION output_col, 1200 const int *idct_coefs); 1201 1202 EXTERN(void) jsimd_idct_ifast_mmi 1203 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1204 JDIMENSION output_col); 1205 1206 EXTERN(void) jsimd_idct_ifast_altivec 1207 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1208 JDIMENSION output_col); 1209 1210 /* Floating Point Inverse DCT */ 1211 EXTERN(void) jsimd_idct_float_3dnow 1212 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1213 JDIMENSION output_col); 1214 1215 extern const int jconst_idct_float_sse[]; 1216 EXTERN(void) jsimd_idct_float_sse 1217 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1218 JDIMENSION output_col); 1219 1220 extern const int jconst_idct_float_sse2[]; 1221 EXTERN(void) jsimd_idct_float_sse2 1222 (void *dct_table, JCOEFPTR coef_block, JSAMPARRAY output_buf, 1223 JDIMENSION output_col); 1224 1225 /* Huffman coding */ 1226 extern const int jconst_huff_encode_one_block[]; 1227 EXTERN(JOCTET *) jsimd_huff_encode_one_block_sse2 1228 (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val, 1229 c_derived_tbl *dctbl, c_derived_tbl *actbl); 1230 1231 EXTERN(JOCTET *) jsimd_huff_encode_one_block_neon 1232 (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val, 1233 c_derived_tbl *dctbl, c_derived_tbl *actbl); 1234 1235 #ifndef NEON_INTRINSICS 1236 1237 EXTERN(JOCTET *) jsimd_huff_encode_one_block_neon_slowtbl 1238 (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val, 1239 c_derived_tbl *dctbl, c_derived_tbl *actbl); 1240 1241 #endif 1242 1243 /* Progressive Huffman encoding */ 1244 EXTERN(void) jsimd_encode_mcu_AC_first_prepare_sse2 1245 (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al, 1246 UJCOEF *values, size_t *zerobits); 1247 1248 EXTERN(void) jsimd_encode_mcu_AC_first_prepare_neon 1249 (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al, 1250 UJCOEF *values, size_t *zerobits); 1251 1252 EXTERN(int) jsimd_encode_mcu_AC_refine_prepare_sse2 1253 (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al, 1254 UJCOEF *absvalues, size_t *bits); 1255 1256 EXTERN(int) jsimd_encode_mcu_AC_refine_prepare_neon 1257 (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al, 1258 UJCOEF *absvalues, size_t *bits); 1259