summaryrefslogtreecommitdiff
path: root/media/libjpeg/jsimddct.h
blob: b19ab48d407a34b09eda1bf0e4fc838ef26397c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
 * jsimddct.h
 *
 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
 *
 * Based on the x86 SIMD extension for IJG JPEG library,
 * Copyright (C) 1999-2006, MIYASAKA Masaru.
 * For conditions of distribution and use, see copyright notice in jsimdext.inc
 *
 */

EXTERN(int) jsimd_can_convsamp (void);
EXTERN(int) jsimd_can_convsamp_float (void);

EXTERN(void) jsimd_convsamp (JSAMPARRAY sample_data, JDIMENSION start_col,
                             DCTELEM *workspace);
EXTERN(void) jsimd_convsamp_float (JSAMPARRAY sample_data,
                                   JDIMENSION start_col,
                                   FAST_FLOAT *workspace);

EXTERN(int) jsimd_can_fdct_islow (void);
EXTERN(int) jsimd_can_fdct_ifast (void);
EXTERN(int) jsimd_can_fdct_float (void);

EXTERN(void) jsimd_fdct_islow (DCTELEM *data);
EXTERN(void) jsimd_fdct_ifast (DCTELEM *data);
EXTERN(void) jsimd_fdct_float (FAST_FLOAT *data);

EXTERN(int) jsimd_can_quantize (void);
EXTERN(int) jsimd_can_quantize_float (void);

EXTERN(void) jsimd_quantize (JCOEFPTR coef_block, DCTELEM *divisors,
                             DCTELEM *workspace);
EXTERN(void) jsimd_quantize_float (JCOEFPTR coef_block, FAST_FLOAT *divisors,
                                   FAST_FLOAT *workspace);

EXTERN(int) jsimd_can_idct_2x2 (void);
EXTERN(int) jsimd_can_idct_4x4 (void);
EXTERN(int) jsimd_can_idct_6x6 (void);
EXTERN(int) jsimd_can_idct_12x12 (void);

EXTERN(void) jsimd_idct_2x2 (j_decompress_ptr cinfo,
                             jpeg_component_info *compptr,
                             JCOEFPTR coef_block, JSAMPARRAY output_buf,
                             JDIMENSION output_col);
EXTERN(void) jsimd_idct_4x4 (j_decompress_ptr cinfo,
                             jpeg_component_info *compptr,
                             JCOEFPTR coef_block, JSAMPARRAY output_buf,
                             JDIMENSION output_col);
EXTERN(void) jsimd_idct_6x6 (j_decompress_ptr cinfo,
                             jpeg_component_info *compptr,
                             JCOEFPTR coef_block, JSAMPARRAY output_buf,
                             JDIMENSION output_col);
EXTERN(void) jsimd_idct_12x12 (j_decompress_ptr cinfo,
                               jpeg_component_info *compptr,
                               JCOEFPTR coef_block, JSAMPARRAY output_buf,
                               JDIMENSION output_col);

EXTERN(int) jsimd_can_idct_islow (void);
EXTERN(int) jsimd_can_idct_ifast (void);
EXTERN(int) jsimd_can_idct_float (void);

EXTERN(void) jsimd_idct_islow (j_decompress_ptr cinfo,
                               jpeg_component_info *compptr,
                               JCOEFPTR coef_block, JSAMPARRAY output_buf,
                               JDIMENSION output_col);
EXTERN(void) jsimd_idct_ifast (j_decompress_ptr cinfo,
                               jpeg_component_info *compptr,
                               JCOEFPTR coef_block, JSAMPARRAY output_buf,
                               JDIMENSION output_col);
EXTERN(void) jsimd_idct_float (j_decompress_ptr cinfo,
                               jpeg_component_info *compptr,
                               JCOEFPTR coef_block, JSAMPARRAY output_buf,
                               JDIMENSION output_col);