OLD | NEW |
1 /* | 1 /* |
2 * jsimd_arm.c | 2 * jsimd_arm.c |
3 * | 3 * |
4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB | 4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
5 * Copyright 2009-2011 D. R. Commander | 5 * Copyright 2009-2011 D. R. Commander |
6 * | 6 * |
7 * Based on the x86 SIMD extension for IJG JPEG library, | 7 * Based on the x86 SIMD extension for IJG JPEG library, |
8 * Copyright (C) 1999-2006, MIYASAKA Masaru. | 8 * Copyright (C) 1999-2006, MIYASAKA Masaru. |
9 * For conditions of distribution and use, see copyright notice in jsimdext.inc | 9 * For conditions of distribution and use, see copyright notice in jsimdext.inc |
10 * | 10 * |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 JDIMENSION output_row, int num_rows) | 182 JDIMENSION output_row, int num_rows) |
183 { | 183 { |
184 void (*neonfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); | 184 void (*neonfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); |
185 | 185 |
186 switch(cinfo->in_color_space) | 186 switch(cinfo->in_color_space) |
187 { | 187 { |
188 case JCS_EXT_RGB: | 188 case JCS_EXT_RGB: |
189 neonfct=jsimd_extrgb_ycc_convert_neon; | 189 neonfct=jsimd_extrgb_ycc_convert_neon; |
190 break; | 190 break; |
191 case JCS_EXT_RGBX: | 191 case JCS_EXT_RGBX: |
| 192 case JCS_EXT_RGBA: |
192 neonfct=jsimd_extrgbx_ycc_convert_neon; | 193 neonfct=jsimd_extrgbx_ycc_convert_neon; |
193 break; | 194 break; |
194 case JCS_EXT_BGR: | 195 case JCS_EXT_BGR: |
195 neonfct=jsimd_extbgr_ycc_convert_neon; | 196 neonfct=jsimd_extbgr_ycc_convert_neon; |
196 break; | 197 break; |
197 case JCS_EXT_BGRX: | 198 case JCS_EXT_BGRX: |
| 199 case JCS_EXT_BGRA: |
198 neonfct=jsimd_extbgrx_ycc_convert_neon; | 200 neonfct=jsimd_extbgrx_ycc_convert_neon; |
199 break; | 201 break; |
200 case JCS_EXT_XBGR: | 202 case JCS_EXT_XBGR: |
| 203 case JCS_EXT_ABGR: |
201 neonfct=jsimd_extxbgr_ycc_convert_neon; | 204 neonfct=jsimd_extxbgr_ycc_convert_neon; |
202 break; | 205 break; |
203 case JCS_EXT_XRGB: | 206 case JCS_EXT_XRGB: |
| 207 case JCS_EXT_ARGB: |
204 neonfct=jsimd_extxrgb_ycc_convert_neon; | 208 neonfct=jsimd_extxrgb_ycc_convert_neon; |
205 break; | 209 break; |
206 default: | 210 default: |
207 neonfct=jsimd_extrgb_ycc_convert_neon; | 211 neonfct=jsimd_extrgb_ycc_convert_neon; |
208 break; | 212 break; |
209 } | 213 } |
210 | 214 |
211 if (simd_support & JSIMD_ARM_NEON) | 215 if (simd_support & JSIMD_ARM_NEON) |
212 neonfct(cinfo->image_width, input_buf, | 216 neonfct(cinfo->image_width, input_buf, |
213 output_buf, output_row, num_rows); | 217 output_buf, output_row, num_rows); |
(...skipping 12 matching lines...) Expand all Loading... |
226 JSAMPARRAY output_buf, int num_rows) | 230 JSAMPARRAY output_buf, int num_rows) |
227 { | 231 { |
228 void (*neonfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); | 232 void (*neonfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); |
229 | 233 |
230 switch(cinfo->out_color_space) | 234 switch(cinfo->out_color_space) |
231 { | 235 { |
232 case JCS_EXT_RGB: | 236 case JCS_EXT_RGB: |
233 neonfct=jsimd_ycc_extrgb_convert_neon; | 237 neonfct=jsimd_ycc_extrgb_convert_neon; |
234 break; | 238 break; |
235 case JCS_EXT_RGBX: | 239 case JCS_EXT_RGBX: |
| 240 case JCS_EXT_RGBA: |
236 neonfct=jsimd_ycc_extrgbx_convert_neon; | 241 neonfct=jsimd_ycc_extrgbx_convert_neon; |
237 break; | 242 break; |
238 case JCS_EXT_BGR: | 243 case JCS_EXT_BGR: |
239 neonfct=jsimd_ycc_extbgr_convert_neon; | 244 neonfct=jsimd_ycc_extbgr_convert_neon; |
240 break; | 245 break; |
241 case JCS_EXT_BGRX: | 246 case JCS_EXT_BGRX: |
| 247 case JCS_EXT_BGRA: |
242 neonfct=jsimd_ycc_extbgrx_convert_neon; | 248 neonfct=jsimd_ycc_extbgrx_convert_neon; |
243 break; | 249 break; |
244 case JCS_EXT_XBGR: | 250 case JCS_EXT_XBGR: |
| 251 case JCS_EXT_ABGR: |
245 neonfct=jsimd_ycc_extxbgr_convert_neon; | 252 neonfct=jsimd_ycc_extxbgr_convert_neon; |
246 break; | 253 break; |
247 case JCS_EXT_XRGB: | 254 case JCS_EXT_XRGB: |
| 255 case JCS_EXT_ARGB: |
248 neonfct=jsimd_ycc_extxrgb_convert_neon; | 256 neonfct=jsimd_ycc_extxrgb_convert_neon; |
249 break; | 257 break; |
250 default: | 258 default: |
251 neonfct=jsimd_ycc_extrgb_convert_neon; | 259 neonfct=jsimd_ycc_extrgb_convert_neon; |
252 break; | 260 break; |
253 } | 261 } |
254 | 262 |
255 if (simd_support & JSIMD_ARM_NEON) | 263 if (simd_support & JSIMD_ARM_NEON) |
256 neonfct(cinfo->output_width, input_buf, | 264 neonfct(cinfo->output_width, input_buf, |
257 input_row, output_buf, num_rows); | 265 input_row, output_buf, num_rows); |
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
653 jsimd_idct_ifast_neon(compptr->dct_table, coef_block, output_buf, output_col
); | 661 jsimd_idct_ifast_neon(compptr->dct_table, coef_block, output_buf, output_col
); |
654 } | 662 } |
655 | 663 |
656 GLOBAL(void) | 664 GLOBAL(void) |
657 jsimd_idct_float (j_decompress_ptr cinfo, jpeg_component_info * compptr, | 665 jsimd_idct_float (j_decompress_ptr cinfo, jpeg_component_info * compptr, |
658 JCOEFPTR coef_block, JSAMPARRAY output_buf, | 666 JCOEFPTR coef_block, JSAMPARRAY output_buf, |
659 JDIMENSION output_col) | 667 JDIMENSION output_col) |
660 { | 668 { |
661 } | 669 } |
662 | 670 |
OLD | NEW |