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
12EXTERN(int) jsimd_can_convsamp(void);
13EXTERN(int) jsimd_can_convsamp_float(void);
14
15EXTERN(void) jsimd_convsamp(JSAMPARRAY sample_data, JDIMENSION start_col,
16 DCTELEM *workspace);
17EXTERN(void) jsimd_convsamp_float(JSAMPARRAY sample_data, JDIMENSION start_col,
18 FAST_FLOAT *workspace);
19
20EXTERN(int) jsimd_can_fdct_islow(void);
21EXTERN(int) jsimd_can_fdct_ifast(void);
22EXTERN(int) jsimd_can_fdct_float(void);
23
24EXTERN(void) jsimd_fdct_islow(DCTELEM *data);
25EXTERN(void) jsimd_fdct_ifast(DCTELEM *data);
26EXTERN(void) jsimd_fdct_float(FAST_FLOAT *data);
27
28EXTERN(int) jsimd_can_quantize(void);
29EXTERN(int) jsimd_can_quantize_float(void);
30
31EXTERN(void) jsimd_quantize(JCOEFPTR coef_block, DCTELEM *divisors,
32 DCTELEM *workspace);
33EXTERN(void) jsimd_quantize_float(JCOEFPTR coef_block, FAST_FLOAT *divisors,
34 FAST_FLOAT *workspace);
35
36EXTERN(int) jsimd_can_idct_2x2(void);
37EXTERN(int) jsimd_can_idct_4x4(void);
38EXTERN(int) jsimd_can_idct_6x6(void);
39EXTERN(int) jsimd_can_idct_12x12(void);
40
41EXTERN(void) jsimd_idct_2x2(j_decompress_ptr cinfo,
42 jpeg_component_info *compptr, JCOEFPTR coef_block,
43 JSAMPARRAY output_buf, JDIMENSION output_col);
44EXTERN(void) jsimd_idct_4x4(j_decompress_ptr cinfo,
45 jpeg_component_info *compptr, JCOEFPTR coef_block,
46 JSAMPARRAY output_buf, JDIMENSION output_col);
47EXTERN(void) jsimd_idct_6x6(j_decompress_ptr cinfo,
48 jpeg_component_info *compptr, JCOEFPTR coef_block,
49 JSAMPARRAY output_buf, JDIMENSION output_col);
50EXTERN(void) jsimd_idct_12x12(j_decompress_ptr cinfo,
51 jpeg_component_info *compptr,
52 JCOEFPTR coef_block, JSAMPARRAY output_buf,
53 JDIMENSION output_col);
54
55EXTERN(int) jsimd_can_idct_islow(void);
56EXTERN(int) jsimd_can_idct_ifast(void);
57EXTERN(int) jsimd_can_idct_float(void);
58
59EXTERN(void) jsimd_idct_islow(j_decompress_ptr cinfo,
60 jpeg_component_info *compptr,
61 JCOEFPTR coef_block, JSAMPARRAY output_buf,
62 JDIMENSION output_col);
63EXTERN(void) jsimd_idct_ifast(j_decompress_ptr cinfo,
64 jpeg_component_info *compptr,
65 JCOEFPTR coef_block, JSAMPARRAY output_buf,
66 JDIMENSION output_col);
67EXTERN(void) jsimd_idct_float(j_decompress_ptr cinfo,
68 jpeg_component_info *compptr,
69 JCOEFPTR coef_block, JSAMPARRAY output_buf,
70 JDIMENSION output_col);
71