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