aboutsummaryrefslogtreecommitdiff
path: root/src/libjpeg-turbo/jsimddct.h
blob: a1c74407ea3343bdeb5c8c3c367dc5b591284cc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
 * jsimddct.h
 *
 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
 * 
 * Based on the x86 SIMD extension for IJG JPEG library,
 * Copyright (C) 1999-2006, MIYASAKA Masaru.
 * For conditions of distribution and use, see copyright notice in jsimdext.inc
 *
 */

/* Short forms of external names for systems with brain-damaged linkers. */

#ifdef NEED_SHORT_EXTERNAL_NAMES
#define jsimd_can_convsamp                jSCanConv
#define jsimd_can_convsamp_float          jSCanConvF
#define jsimd_convsamp                    jSConv
#define jsimd_convsamp_float              jSConvF
#define jsimd_can_fdct_islow              jSCanFDCTIS
#define jsimd_can_fdct_ifast              jSCanFDCTIF
#define jsimd_can_fdct_float              jSCanFDCTFl
#define jsimd_fdct_islow                  jSFDCTIS
#define jsimd_fdct_ifast                  jSFDCTIF
#define jsimd_fdct_float                  jSFDCTFl
#define jsimd_can_quantize                jSCanQuant
#define jsimd_can_quantize_float          jSCanQuantF
#define jsimd_quantize                    jSQuant
#define jsimd_quantize_float              jSQuantF
#define jsimd_can_idct_2x2                jSCanIDCT22
#define jsimd_can_idct_4x4                jSCanIDCT44
#define jsimd_idct_2x2                    jSIDCT22
#define jsimd_idct_4x4                    jSIDCT44
#define jsimd_can_idct_islow              jSCanIDCTIS
#define jsimd_can_idct_ifast              jSCanIDCTIF
#define jsimd_can_idct_float              jSCanIDCTFl
#define jsimd_idct_islow                  jSIDCTIS
#define jsimd_idct_ifast                  jSIDCTIF
#define jsimd_idct_float                  jSIDCTFl
#endif /* NEED_SHORT_EXTERNAL_NAMES */

EXTERN(int) jsimd_can_convsamp JPP((void));
EXTERN(int) jsimd_can_convsamp_float JPP((void));

EXTERN(void) jsimd_convsamp JPP((JSAMPARRAY sample_data,
                                 JDIMENSION start_col,
                                 DCTELEM * workspace));
EXTERN(void) jsimd_convsamp_float JPP((JSAMPARRAY sample_data,
                                       JDIMENSION start_col,
                                       FAST_FLOAT * workspace));

EXTERN(int) jsimd_can_fdct_islow JPP((void));
EXTERN(int) jsimd_can_fdct_ifast JPP((void));
EXTERN(int) jsimd_can_fdct_float JPP((void));

EXTERN(void) jsimd_fdct_islow JPP((DCTELEM * data));
EXTERN(void) jsimd_fdct_ifast JPP((DCTELEM * data));
EXTERN(void) jsimd_fdct_float JPP((FAST_FLOAT * data));

EXTERN(int) jsimd_can_quantize JPP((void));
EXTERN(int) jsimd_can_quantize_float JPP((void));

EXTERN(void) jsimd_quantize JPP((JCOEFPTR coef_block,
                                 DCTELEM * divisors,
                                 DCTELEM * workspace));
EXTERN(void) jsimd_quantize_float JPP((JCOEFPTR coef_block,
                                       FAST_FLOAT * divisors,
                                       FAST_FLOAT * workspace));

EXTERN(int) jsimd_can_idct_2x2 JPP((void));
EXTERN(int) jsimd_can_idct_4x4 JPP((void));

EXTERN(void) jsimd_idct_2x2 JPP((j_decompress_ptr cinfo,
                                 jpeg_component_info * compptr,
                                 JCOEFPTR coef_block,
                                 JSAMPARRAY output_buf,
                                 JDIMENSION output_col));
EXTERN(void) jsimd_idct_4x4 JPP((j_decompress_ptr cinfo,
                                 jpeg_component_info * compptr,
                                 JCOEFPTR coef_block,
                                 JSAMPARRAY output_buf,
                                 JDIMENSION output_col));

EXTERN(int) jsimd_can_idct_islow JPP((void));
EXTERN(int) jsimd_can_idct_ifast JPP((void));
EXTERN(int) jsimd_can_idct_float JPP((void));

EXTERN(void) jsimd_idct_islow JPP((j_decompress_ptr cinfo,
                                   jpeg_component_info * compptr,
                                   JCOEFPTR coef_block,
                                   JSAMPARRAY output_buf,
                                   JDIMENSION output_col));
EXTERN(void) jsimd_idct_ifast JPP((j_decompress_ptr cinfo,
                                   jpeg_component_info * compptr,
                                   JCOEFPTR coef_block,
                                   JSAMPARRAY output_buf,
                                   JDIMENSION output_col));
EXTERN(void) jsimd_idct_float JPP((j_decompress_ptr cinfo,
                                   jpeg_component_info * compptr,
                                   JCOEFPTR coef_block,
                                   JSAMPARRAY output_buf,
                                   JDIMENSION output_col));