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