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
13EXTERN(int) jsimd_can_rgb_ycc (void);
14EXTERN(int) jsimd_can_rgb_gray (void);
15EXTERN(int) jsimd_can_ycc_rgb (void);
16EXTERN(int) jsimd_can_ycc_rgb565 (void);
17EXTERN(int) jsimd_c_can_null_convert (void);
18
19EXTERN(void) jsimd_rgb_ycc_convert
20        (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
21         JDIMENSION output_row, int num_rows);
22EXTERN(void) jsimd_rgb_gray_convert
23        (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
24         JDIMENSION output_row, int num_rows);
25EXTERN(void) jsimd_ycc_rgb_convert
26        (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
27         JSAMPARRAY output_buf, int num_rows);
28EXTERN(void) jsimd_ycc_rgb565_convert
29        (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
30         JSAMPARRAY output_buf, int num_rows);
31EXTERN(void) jsimd_c_null_convert
32        (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
33         JDIMENSION output_row, int num_rows);
34
35EXTERN(int) jsimd_can_h2v2_downsample (void);
36EXTERN(int) jsimd_can_h2v1_downsample (void);
37
38EXTERN(void) jsimd_h2v2_downsample
39        (j_compress_ptr cinfo, jpeg_component_info * compptr,
40         JSAMPARRAY input_data, JSAMPARRAY output_data);
41
42EXTERN(int) jsimd_can_h2v2_smooth_downsample (void);
43
44EXTERN(void) jsimd_h2v2_smooth_downsample
45        (j_compress_ptr cinfo, jpeg_component_info * compptr,
46         JSAMPARRAY input_data, JSAMPARRAY output_data);
47
48EXTERN(void) jsimd_h2v1_downsample
49        (j_compress_ptr cinfo, jpeg_component_info * compptr,
50        JSAMPARRAY input_data, JSAMPARRAY output_data);
51
52EXTERN(int) jsimd_can_h2v2_upsample (void);
53EXTERN(int) jsimd_can_h2v1_upsample (void);
54EXTERN(int) jsimd_can_int_upsample (void);
55
56EXTERN(void) jsimd_h2v2_upsample
57        (j_decompress_ptr cinfo, jpeg_component_info * compptr,
58         JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
59EXTERN(void) jsimd_h2v1_upsample
60        (j_decompress_ptr cinfo, jpeg_component_info * compptr,
61         JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
62EXTERN(void) jsimd_int_upsample
63        (j_decompress_ptr cinfo, jpeg_component_info * compptr,
64         JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
65
66EXTERN(int) jsimd_can_h2v2_fancy_upsample (void);
67EXTERN(int) jsimd_can_h2v1_fancy_upsample (void);
68
69EXTERN(void) jsimd_h2v2_fancy_upsample
70        (j_decompress_ptr cinfo, jpeg_component_info * compptr,
71         JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
72EXTERN(void) jsimd_h2v1_fancy_upsample
73        (j_decompress_ptr cinfo, jpeg_component_info * compptr,
74         JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
75
76EXTERN(int) jsimd_can_h2v2_merged_upsample (void);
77EXTERN(int) jsimd_can_h2v1_merged_upsample (void);
78
79EXTERN(void) jsimd_h2v2_merged_upsample
80        (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
81         JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
82EXTERN(void) jsimd_h2v1_merged_upsample
83        (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
84         JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
85