blob: d73d0c493a548e298406835946389de76cce7088 [file] [log] [blame]
Pierre Ossman59a39382009-03-09 13:15:56 +00001/*
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 *
9 */
10
11/* Short forms of external names for systems with brain-damaged linkers. */
12
13#ifdef NEED_SHORT_EXTERNAL_NAMES
14#define jsimd_can_convsamp jSCanConv
15#define jsimd_can_convsamp_float jSCanConvF
16#define jsimd_convsamp jSConv
17#define jsimd_convsamp_float jSConvF
18#define jsimd_can_fdct_islow jSCanFDCTIS
19#define jsimd_can_fdct_ifast jSCanFDCTIF
20#define jsimd_can_fdct_float jSCanFDCTFl
21#define jsimd_fdct_islow jSFDCTIS
22#define jsimd_fdct_ifast jSFDCTIF
23#define jsimd_fdct_float jSFDCTFl
24#define jsimd_can_quantize jSCanQuant
25#define jsimd_can_quantize_float jSCanQuantF
26#define jsimd_quantize jSQuant
27#define jsimd_quantize_float jSQuantF
28#define jsimd_can_idct_2x2 jSCanIDCT22
29#define jsimd_can_idct_4x4 jSCanIDCT44
30#define jsimd_idct_2x2 jSIDCT22
31#define jsimd_idct_4x4 jSIDCT44
32#define jsimd_can_idct_islow jSCanIDCTIS
33#define jsimd_can_idct_ifast jSCanIDCTIF
34#define jsimd_can_idct_float jSCanIDCTFl
35#define jsimd_idct_islow jSIDCTIS
36#define jsimd_idct_ifast jSIDCTIF
37#define jsimd_idct_float jSIDCTFl
38#endif /* NEED_SHORT_EXTERNAL_NAMES */
39
40EXTERN(int) jsimd_can_convsamp JPP((void));
41EXTERN(int) jsimd_can_convsamp_float JPP((void));
42
43EXTERN(void) jsimd_convsamp JPP((JSAMPARRAY sample_data,
44 JDIMENSION start_col,
45 DCTELEM * workspace));
46EXTERN(void) jsimd_convsamp_float JPP((JSAMPARRAY sample_data,
47 JDIMENSION start_col,
48 FAST_FLOAT * workspace));
49
50EXTERN(int) jsimd_can_fdct_islow JPP((void));
51EXTERN(int) jsimd_can_fdct_ifast JPP((void));
52EXTERN(int) jsimd_can_fdct_float JPP((void));
53
54EXTERN(void) jsimd_fdct_islow JPP((DCTELEM * data));
55EXTERN(void) jsimd_fdct_ifast JPP((DCTELEM * data));
56EXTERN(void) jsimd_fdct_float JPP((FAST_FLOAT * data));
57
58EXTERN(int) jsimd_can_quantize JPP((void));
59EXTERN(int) jsimd_can_quantize_float JPP((void));
60
61EXTERN(void) jsimd_quantize JPP((JCOEFPTR coef_block,
62 DCTELEM * divisors,
63 DCTELEM * workspace));
64EXTERN(void) jsimd_quantize_float JPP((JCOEFPTR coef_block,
65 FAST_FLOAT * divisors,
66 FAST_FLOAT * workspace));
67
68EXTERN(int) jsimd_can_idct_2x2 JPP((void));
69EXTERN(int) jsimd_can_idct_4x4 JPP((void));
70
71EXTERN(void) jsimd_idct_2x2 JPP((j_decompress_ptr cinfo,
72 jpeg_component_info * compptr,
73 JCOEFPTR coef_block,
74 JSAMPARRAY output_buf,
75 JDIMENSION output_col));
76EXTERN(void) jsimd_idct_4x4 JPP((j_decompress_ptr cinfo,
77 jpeg_component_info * compptr,
78 JCOEFPTR coef_block,
79 JSAMPARRAY output_buf,
80 JDIMENSION output_col));
81
82EXTERN(int) jsimd_can_idct_islow JPP((void));
83EXTERN(int) jsimd_can_idct_ifast JPP((void));
84EXTERN(int) jsimd_can_idct_float JPP((void));
85
86EXTERN(void) jsimd_idct_islow JPP((j_decompress_ptr cinfo,
87 jpeg_component_info * compptr,
88 JCOEFPTR coef_block,
89 JSAMPARRAY output_buf,
90 JDIMENSION output_col));
91EXTERN(void) jsimd_idct_ifast JPP((j_decompress_ptr cinfo,
92 jpeg_component_info * compptr,
93 JCOEFPTR coef_block,
94 JSAMPARRAY output_buf,
95 JDIMENSION output_col));
96EXTERN(void) jsimd_idct_float JPP((j_decompress_ptr cinfo,
97 jpeg_component_info * compptr,
98 JCOEFPTR coef_block,
99 JSAMPARRAY output_buf,
100 JDIMENSION output_col));
101