OLD | NEW |
1 /* | 1 /* |
2 * jsimd_x86_64.c | 2 * jsimd_x86_64.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 * |
11 * This file contains the interface between the "normal" portions | 11 * This file contains the interface between the "normal" portions |
12 * of the library and the SIMD implementations when running on a | 12 * of the library and the SIMD implementations when running on a |
13 * x86_64 architecture. | 13 * x86_64 architecture. |
14 */ | 14 */ |
15 | 15 |
16 #define JPEG_INTERNALS | 16 #define JPEG_INTERNALS |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 if (BITS_IN_JSAMPLE != 8) | 268 if (BITS_IN_JSAMPLE != 8) |
269 return 0; | 269 return 0; |
270 if (sizeof(JDIMENSION) != 4) | 270 if (sizeof(JDIMENSION) != 4) |
271 return 0; | 271 return 0; |
272 | 272 |
273 return 1; | 273 return 1; |
274 } | 274 } |
275 | 275 |
276 GLOBAL(void) | 276 GLOBAL(void) |
277 jsimd_h2v2_upsample (j_decompress_ptr cinfo, | 277 jsimd_h2v2_upsample (j_decompress_ptr cinfo, |
278 jpeg_component_info * compptr, | 278 jpeg_component_info * compptr, |
279 JSAMPARRAY input_data, | 279 JSAMPARRAY input_data, |
280 JSAMPARRAY * output_data_ptr) | 280 JSAMPARRAY * output_data_ptr) |
281 { | 281 { |
282 jsimd_h2v2_upsample_sse2(cinfo->max_v_samp_factor, | 282 jsimd_h2v2_upsample_sse2(cinfo->max_v_samp_factor, |
283 cinfo->output_width, | 283 cinfo->output_width, |
284 input_data, output_data_ptr); | 284 input_data, output_data_ptr); |
285 } | 285 } |
286 | 286 |
287 GLOBAL(void) | 287 GLOBAL(void) |
288 jsimd_h2v1_upsample (j_decompress_ptr cinfo, | 288 jsimd_h2v1_upsample (j_decompress_ptr cinfo, |
289 jpeg_component_info * compptr, | 289 jpeg_component_info * compptr, |
290 JSAMPARRAY input_data, | 290 JSAMPARRAY input_data, |
291 JSAMPARRAY * output_data_ptr) | 291 JSAMPARRAY * output_data_ptr) |
292 { | 292 { |
293 jsimd_h2v1_upsample_sse2(cinfo->max_v_samp_factor, | 293 jsimd_h2v1_upsample_sse2(cinfo->max_v_samp_factor, |
294 cinfo->output_width, | 294 cinfo->output_width, |
295 input_data, output_data_ptr); | 295 input_data, output_data_ptr); |
296 } | 296 } |
297 | 297 |
298 GLOBAL(int) | 298 GLOBAL(int) |
299 jsimd_can_h2v2_fancy_upsample (void) | 299 jsimd_can_h2v2_fancy_upsample (void) |
(...skipping 20 matching lines...) Expand all Loading... |
320 return 0; | 320 return 0; |
321 | 321 |
322 if (!IS_ALIGNED_SSE(jconst_fancy_upsample_sse2)) | 322 if (!IS_ALIGNED_SSE(jconst_fancy_upsample_sse2)) |
323 return 0; | 323 return 0; |
324 | 324 |
325 return 1; | 325 return 1; |
326 } | 326 } |
327 | 327 |
328 GLOBAL(void) | 328 GLOBAL(void) |
329 jsimd_h2v2_fancy_upsample (j_decompress_ptr cinfo, | 329 jsimd_h2v2_fancy_upsample (j_decompress_ptr cinfo, |
330 jpeg_component_info * compptr, | 330 jpeg_component_info * compptr, |
331 JSAMPARRAY input_data, | 331 JSAMPARRAY input_data, |
332 JSAMPARRAY * output_data_ptr) | 332 JSAMPARRAY * output_data_ptr) |
333 { | 333 { |
334 jsimd_h2v2_fancy_upsample_sse2(cinfo->max_v_samp_factor, | 334 jsimd_h2v2_fancy_upsample_sse2(cinfo->max_v_samp_factor, |
335 compptr->downsampled_width, | 335 compptr->downsampled_width, |
336 input_data, output_data_ptr); | 336 input_data, output_data_ptr); |
337 } | 337 } |
338 | 338 |
339 GLOBAL(void) | 339 GLOBAL(void) |
340 jsimd_h2v1_fancy_upsample (j_decompress_ptr cinfo, | 340 jsimd_h2v1_fancy_upsample (j_decompress_ptr cinfo, |
341 jpeg_component_info * compptr, | 341 jpeg_component_info * compptr, |
342 JSAMPARRAY input_data, | 342 JSAMPARRAY input_data, |
343 JSAMPARRAY * output_data_ptr) | 343 JSAMPARRAY * output_data_ptr) |
344 { | 344 { |
345 jsimd_h2v1_fancy_upsample_sse2(cinfo->max_v_samp_factor, | 345 jsimd_h2v1_fancy_upsample_sse2(cinfo->max_v_samp_factor, |
346 compptr->downsampled_width, | 346 compptr->downsampled_width, |
347 input_data, output_data_ptr); | 347 input_data, output_data_ptr); |
348 } | 348 } |
349 | 349 |
350 GLOBAL(int) | 350 GLOBAL(int) |
351 jsimd_can_h2v2_merged_upsample (void) | 351 jsimd_can_h2v2_merged_upsample (void) |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
751 } | 751 } |
752 | 752 |
753 GLOBAL(void) | 753 GLOBAL(void) |
754 jsimd_idct_float (j_decompress_ptr cinfo, jpeg_component_info * compptr, | 754 jsimd_idct_float (j_decompress_ptr cinfo, jpeg_component_info * compptr, |
755 JCOEFPTR coef_block, JSAMPARRAY output_buf, | 755 JCOEFPTR coef_block, JSAMPARRAY output_buf, |
756 JDIMENSION output_col) | 756 JDIMENSION output_col) |
757 { | 757 { |
758 jsimd_idct_float_sse2(compptr->dct_table, coef_block, | 758 jsimd_idct_float_sse2(compptr->dct_table, coef_block, |
759 output_buf, output_col); | 759 output_buf, output_col); |
760 } | 760 } |
761 | |
OLD | NEW |