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