blob: a1c74407ea3343bdeb5c8c3c367dc5b591284cc5 [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));
71
72EXTERN(void) jsimd_idct_2x2 JPP((j_decompress_ptr cinfo,
73 jpeg_component_info * compptr,
74 JCOEFPTR coef_block,
75 JSAMPARRAY output_buf,
76 JDIMENSION output_col));
77EXTERN(void) jsimd_idct_4x4 JPP((j_decompress_ptr cinfo,
78 jpeg_component_info * compptr,
79 JCOEFPTR coef_block,
80 JSAMPARRAY output_buf,
81 JDIMENSION output_col));
82
83EXTERN(int) jsimd_can_idct_islow JPP((void));
84EXTERN(int) jsimd_can_idct_ifast JPP((void));
85EXTERN(int) jsimd_can_idct_float JPP((void));
86
87EXTERN(void) jsimd_idct_islow JPP((j_decompress_ptr cinfo,
88 jpeg_component_info * compptr,
89 JCOEFPTR coef_block,
90 JSAMPARRAY output_buf,
91 JDIMENSION output_col));
92EXTERN(void) jsimd_idct_ifast JPP((j_decompress_ptr cinfo,
93 jpeg_component_info * compptr,
94 JCOEFPTR coef_block,
95 JSAMPARRAY output_buf,
96 JDIMENSION output_col));
97EXTERN(void) jsimd_idct_float JPP((j_decompress_ptr cinfo,
98 jpeg_component_info * compptr,
99 JCOEFPTR coef_block,
100 JSAMPARRAY output_buf,
101 JDIMENSION output_col));
102