blob: 9d2d9455ddb02546616a9625b7718073993236e2 [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.
DRCaf1ca9b2011-02-02 05:42:37 +00008 * For conditions of distribution and use, see copyright notice in jsimdext.inc
Pierre Ossman59a39382009-03-09 13:15:56 +00009 *
10 */
11
12/* Short forms of external names for systems with brain-damaged linkers. */
13
14#ifdef NEED_SHORT_EXTERNAL_NAMES
15#define jsimd_can_convsamp jSCanConv
16#define jsimd_can_convsamp_float jSCanConvF
17#define jsimd_convsamp jSConv
18#define jsimd_convsamp_float jSConvF
19#define jsimd_can_fdct_islow jSCanFDCTIS
20#define jsimd_can_fdct_ifast jSCanFDCTIF
21#define jsimd_can_fdct_float jSCanFDCTFl
22#define jsimd_fdct_islow jSFDCTIS
23#define jsimd_fdct_ifast jSFDCTIF
24#define jsimd_fdct_float jSFDCTFl
25#define jsimd_can_quantize jSCanQuant
26#define jsimd_can_quantize_float jSCanQuantF
27#define jsimd_quantize jSQuant
28#define jsimd_quantize_float jSQuantF
29#define jsimd_can_idct_2x2 jSCanIDCT22
30#define jsimd_can_idct_4x4 jSCanIDCT44
31#define jsimd_idct_2x2 jSIDCT22
32#define jsimd_idct_4x4 jSIDCT44
33#define jsimd_can_idct_islow jSCanIDCTIS
34#define jsimd_can_idct_ifast jSCanIDCTIF
35#define jsimd_can_idct_float jSCanIDCTFl
36#define jsimd_idct_islow jSIDCTIS
37#define jsimd_idct_ifast jSIDCTIF
38#define jsimd_idct_float jSIDCTFl
39#endif /* NEED_SHORT_EXTERNAL_NAMES */
40
41EXTERN(int) jsimd_can_convsamp JPP((void));
42EXTERN(int) jsimd_can_convsamp_float JPP((void));
43
44EXTERN(void) jsimd_convsamp JPP((JSAMPARRAY sample_data,
45 JDIMENSION start_col,
46 DCTELEM * workspace));
47EXTERN(void) jsimd_convsamp_float JPP((JSAMPARRAY sample_data,
48 JDIMENSION start_col,
49 FAST_FLOAT * workspace));
50
51EXTERN(int) jsimd_can_fdct_islow JPP((void));
52EXTERN(int) jsimd_can_fdct_ifast JPP((void));
53EXTERN(int) jsimd_can_fdct_float JPP((void));
54
55EXTERN(void) jsimd_fdct_islow JPP((DCTELEM * data));
56EXTERN(void) jsimd_fdct_ifast JPP((DCTELEM * data));
57EXTERN(void) jsimd_fdct_float JPP((FAST_FLOAT * data));
58
59EXTERN(int) jsimd_can_quantize JPP((void));
60EXTERN(int) jsimd_can_quantize_float JPP((void));
61
62EXTERN(void) jsimd_quantize JPP((JCOEFPTR coef_block,
63 DCTELEM * divisors,
64 DCTELEM * workspace));
65EXTERN(void) jsimd_quantize_float JPP((JCOEFPTR coef_block,
66 FAST_FLOAT * divisors,
67 FAST_FLOAT * workspace));
68
69EXTERN(int) jsimd_can_idct_2x2 JPP((void));
70EXTERN(int) jsimd_can_idct_4x4 JPP((void));
DRCe5005912013-09-27 17:51:08 +000071EXTERN(int) jsimd_can_idct_6x6 JPP((void));
72EXTERN(int) jsimd_can_idct_12x12 JPP((void));
Pierre Ossman59a39382009-03-09 13:15:56 +000073
74EXTERN(void) jsimd_idct_2x2 JPP((j_decompress_ptr cinfo,
75 jpeg_component_info * compptr,
76 JCOEFPTR coef_block,
77 JSAMPARRAY output_buf,
78 JDIMENSION output_col));
79EXTERN(void) jsimd_idct_4x4 JPP((j_decompress_ptr cinfo,
80 jpeg_component_info * compptr,
81 JCOEFPTR coef_block,
82 JSAMPARRAY output_buf,
83 JDIMENSION output_col));
DRCe5005912013-09-27 17:51:08 +000084EXTERN(void) jsimd_idct_6x6 JPP((j_decompress_ptr cinfo,
85 jpeg_component_info * compptr,
86 JCOEFPTR coef_block,
87 JSAMPARRAY output_buf,
88 JDIMENSION output_col));
89EXTERN(void) jsimd_idct_12x12 JPP((j_decompress_ptr cinfo,
90 jpeg_component_info * compptr,
91 JCOEFPTR coef_block,
92 JSAMPARRAY output_buf,
93 JDIMENSION output_col));
Pierre Ossman59a39382009-03-09 13:15:56 +000094
95EXTERN(int) jsimd_can_idct_islow JPP((void));
96EXTERN(int) jsimd_can_idct_ifast JPP((void));
97EXTERN(int) jsimd_can_idct_float JPP((void));
98
99EXTERN(void) jsimd_idct_islow JPP((j_decompress_ptr cinfo,
100 jpeg_component_info * compptr,
101 JCOEFPTR coef_block,
102 JSAMPARRAY output_buf,
103 JDIMENSION output_col));
104EXTERN(void) jsimd_idct_ifast JPP((j_decompress_ptr cinfo,
105 jpeg_component_info * compptr,
106 JCOEFPTR coef_block,
107 JSAMPARRAY output_buf,
108 JDIMENSION output_col));
109EXTERN(void) jsimd_idct_float JPP((j_decompress_ptr cinfo,
110 jpeg_component_info * compptr,
111 JCOEFPTR coef_block,
112 JSAMPARRAY output_buf,
113 JDIMENSION output_col));
114