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