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