1 /*
2  * jsimd.h
3  *
4  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5  * Copyright 2011, 2014 D. R. Commander
6  *
7  * Based on the x86 SIMD extension for IJG JPEG library,
8  * Copyright (C) 1999-2006, MIYASAKA Masaru.
9  * For conditions of distribution and use, see copyright notice in jsimdext.inc
10  *
11  */
12 
13 EXTERN(int) jsimd_can_rgb_ycc (void);
14 EXTERN(int) jsimd_can_rgb_gray (void);
15 EXTERN(int) jsimd_can_ycc_rgb (void);
16 EXTERN(int) jsimd_can_ycc_rgb565 (void);
17 EXTERN(int) jsimd_c_can_null_convert (void);
18 
19 EXTERN(void) jsimd_rgb_ycc_convert
20         (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
21          JDIMENSION output_row, int num_rows);
22 EXTERN(void) jsimd_rgb_gray_convert
23         (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
24          JDIMENSION output_row, int num_rows);
25 EXTERN(void) jsimd_ycc_rgb_convert
26         (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
27          JSAMPARRAY output_buf, int num_rows);
28 EXTERN(void) jsimd_ycc_rgb565_convert
29         (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
30          JSAMPARRAY output_buf, int num_rows);
31 EXTERN(void) jsimd_c_null_convert
32         (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
33          JDIMENSION output_row, int num_rows);
34 
35 EXTERN(int) jsimd_can_h2v2_downsample (void);
36 EXTERN(int) jsimd_can_h2v1_downsample (void);
37 
38 EXTERN(void) jsimd_h2v2_downsample
39         (j_compress_ptr cinfo, jpeg_component_info * compptr,
40          JSAMPARRAY input_data, JSAMPARRAY output_data);
41 
42 EXTERN(int) jsimd_can_h2v2_smooth_downsample (void);
43 
44 EXTERN(void) jsimd_h2v2_smooth_downsample
45         (j_compress_ptr cinfo, jpeg_component_info * compptr,
46          JSAMPARRAY input_data, JSAMPARRAY output_data);
47 
48 EXTERN(void) jsimd_h2v1_downsample
49         (j_compress_ptr cinfo, jpeg_component_info * compptr,
50         JSAMPARRAY input_data, JSAMPARRAY output_data);
51 
52 EXTERN(int) jsimd_can_h2v2_upsample (void);
53 EXTERN(int) jsimd_can_h2v1_upsample (void);
54 EXTERN(int) jsimd_can_int_upsample (void);
55 
56 EXTERN(void) jsimd_h2v2_upsample
57         (j_decompress_ptr cinfo, jpeg_component_info * compptr,
58          JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
59 EXTERN(void) jsimd_h2v1_upsample
60         (j_decompress_ptr cinfo, jpeg_component_info * compptr,
61          JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
62 EXTERN(void) jsimd_int_upsample
63         (j_decompress_ptr cinfo, jpeg_component_info * compptr,
64          JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
65 
66 EXTERN(int) jsimd_can_h2v2_fancy_upsample (void);
67 EXTERN(int) jsimd_can_h2v1_fancy_upsample (void);
68 
69 EXTERN(void) jsimd_h2v2_fancy_upsample
70         (j_decompress_ptr cinfo, jpeg_component_info * compptr,
71          JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
72 EXTERN(void) jsimd_h2v1_fancy_upsample
73         (j_decompress_ptr cinfo, jpeg_component_info * compptr,
74          JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
75 
76 EXTERN(int) jsimd_can_h2v2_merged_upsample (void);
77 EXTERN(int) jsimd_can_h2v1_merged_upsample (void);
78 
79 EXTERN(void) jsimd_h2v2_merged_upsample
80         (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
81          JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
82 EXTERN(void) jsimd_h2v1_merged_upsample
83         (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
84          JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
85