1 /*
2  * jsimddct.h
3  *
4  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5  *
6  * Based on the x86 SIMD extension for IJG JPEG library,
7  * Copyright (C) 1999-2006, MIYASAKA Masaru.
8  * For conditions of distribution and use, see copyright notice in jsimdext.inc
9  *
10  */
11 
12 EXTERN(int) jsimd_can_convsamp (void);
13 EXTERN(int) jsimd_can_convsamp_float (void);
14 
15 EXTERN(void) jsimd_convsamp (JSAMPARRAY sample_data, JDIMENSION start_col,
16                              DCTELEM * workspace);
17 EXTERN(void) jsimd_convsamp_float (JSAMPARRAY sample_data,
18                                    JDIMENSION start_col,
19                                    FAST_FLOAT * workspace);
20 
21 EXTERN(int) jsimd_can_fdct_islow (void);
22 EXTERN(int) jsimd_can_fdct_ifast (void);
23 EXTERN(int) jsimd_can_fdct_float (void);
24 
25 EXTERN(void) jsimd_fdct_islow (DCTELEM * data);
26 EXTERN(void) jsimd_fdct_ifast (DCTELEM * data);
27 EXTERN(void) jsimd_fdct_float (FAST_FLOAT * data);
28 
29 EXTERN(int) jsimd_can_quantize (void);
30 EXTERN(int) jsimd_can_quantize_float (void);
31 
32 EXTERN(void) jsimd_quantize (JCOEFPTR coef_block, DCTELEM * divisors,
33                              DCTELEM * workspace);
34 EXTERN(void) jsimd_quantize_float (JCOEFPTR coef_block, FAST_FLOAT * divisors,
35                                    FAST_FLOAT * workspace);
36 
37 EXTERN(int) jsimd_can_idct_2x2 (void);
38 EXTERN(int) jsimd_can_idct_4x4 (void);
39 EXTERN(int) jsimd_can_idct_6x6 (void);
40 EXTERN(int) jsimd_can_idct_12x12 (void);
41 
42 EXTERN(void) jsimd_idct_2x2 (j_decompress_ptr cinfo,
43                              jpeg_component_info * compptr,
44                              JCOEFPTR coef_block, JSAMPARRAY output_buf,
45                              JDIMENSION output_col);
46 EXTERN(void) jsimd_idct_4x4 (j_decompress_ptr cinfo,
47                              jpeg_component_info * compptr,
48                              JCOEFPTR coef_block, JSAMPARRAY output_buf,
49                              JDIMENSION output_col);
50 EXTERN(void) jsimd_idct_6x6 (j_decompress_ptr cinfo,
51                              jpeg_component_info * compptr,
52                              JCOEFPTR coef_block, JSAMPARRAY output_buf,
53                              JDIMENSION output_col);
54 EXTERN(void) jsimd_idct_12x12 (j_decompress_ptr cinfo,
55                                jpeg_component_info * compptr,
56                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
57                                JDIMENSION output_col);
58 
59 EXTERN(int) jsimd_can_idct_islow (void);
60 EXTERN(int) jsimd_can_idct_ifast (void);
61 EXTERN(int) jsimd_can_idct_float (void);
62 
63 EXTERN(void) jsimd_idct_islow (j_decompress_ptr cinfo,
64                                jpeg_component_info * compptr,
65                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
66                                JDIMENSION output_col);
67 EXTERN(void) jsimd_idct_ifast (j_decompress_ptr cinfo,
68                                jpeg_component_info * compptr,
69                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
70                                JDIMENSION output_col);
71 EXTERN(void) jsimd_idct_float (j_decompress_ptr cinfo,
72                                jpeg_component_info * compptr,
73                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
74                                JDIMENSION output_col);
75