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