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