blob: b19ab48d407a34b09eda1bf0e4fc838ef26397c2 [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
DRC1a45b812014-05-09 18:06:58 +00005 *
Pierre Ossman59a39382009-03-09 13:15:56 +00006 * 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
DRCbc56b752014-05-16 10:43:44 +000012EXTERN(int) jsimd_can_convsamp (void);
13EXTERN(int) jsimd_can_convsamp_float (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000014
DRCbc56b752014-05-16 10:43:44 +000015EXTERN(void) jsimd_convsamp (JSAMPARRAY sample_data, JDIMENSION start_col,
DRCbd498032016-02-19 08:53:33 -060016 DCTELEM *workspace);
DRCbc56b752014-05-16 10:43:44 +000017EXTERN(void) jsimd_convsamp_float (JSAMPARRAY sample_data,
18 JDIMENSION start_col,
DRCbd498032016-02-19 08:53:33 -060019 FAST_FLOAT *workspace);
Pierre Ossman59a39382009-03-09 13:15:56 +000020
DRCbc56b752014-05-16 10:43:44 +000021EXTERN(int) jsimd_can_fdct_islow (void);
22EXTERN(int) jsimd_can_fdct_ifast (void);
23EXTERN(int) jsimd_can_fdct_float (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000024
DRCbd498032016-02-19 08:53:33 -060025EXTERN(void) jsimd_fdct_islow (DCTELEM *data);
26EXTERN(void) jsimd_fdct_ifast (DCTELEM *data);
27EXTERN(void) jsimd_fdct_float (FAST_FLOAT *data);
Pierre Ossman59a39382009-03-09 13:15:56 +000028
DRCbc56b752014-05-16 10:43:44 +000029EXTERN(int) jsimd_can_quantize (void);
30EXTERN(int) jsimd_can_quantize_float (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000031
DRCbd498032016-02-19 08:53:33 -060032EXTERN(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);
Pierre Ossman59a39382009-03-09 13:15:56 +000036
DRCbc56b752014-05-16 10:43:44 +000037EXTERN(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);
Pierre Ossman59a39382009-03-09 13:15:56 +000041
DRCbc56b752014-05-16 10:43:44 +000042EXTERN(void) jsimd_idct_2x2 (j_decompress_ptr cinfo,
DRCbd498032016-02-19 08:53:33 -060043 jpeg_component_info *compptr,
DRCbc56b752014-05-16 10:43:44 +000044 JCOEFPTR coef_block, JSAMPARRAY output_buf,
45 JDIMENSION output_col);
46EXTERN(void) jsimd_idct_4x4 (j_decompress_ptr cinfo,
DRCbd498032016-02-19 08:53:33 -060047 jpeg_component_info *compptr,
DRCbc56b752014-05-16 10:43:44 +000048 JCOEFPTR coef_block, JSAMPARRAY output_buf,
49 JDIMENSION output_col);
50EXTERN(void) jsimd_idct_6x6 (j_decompress_ptr cinfo,
DRCbd498032016-02-19 08:53:33 -060051 jpeg_component_info *compptr,
DRCbc56b752014-05-16 10:43:44 +000052 JCOEFPTR coef_block, JSAMPARRAY output_buf,
53 JDIMENSION output_col);
54EXTERN(void) jsimd_idct_12x12 (j_decompress_ptr cinfo,
DRCbd498032016-02-19 08:53:33 -060055 jpeg_component_info *compptr,
DRCbc56b752014-05-16 10:43:44 +000056 JCOEFPTR coef_block, JSAMPARRAY output_buf,
57 JDIMENSION output_col);
Pierre Ossman59a39382009-03-09 13:15:56 +000058
DRCbc56b752014-05-16 10:43:44 +000059EXTERN(int) jsimd_can_idct_islow (void);
60EXTERN(int) jsimd_can_idct_ifast (void);
61EXTERN(int) jsimd_can_idct_float (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000062
DRCbc56b752014-05-16 10:43:44 +000063EXTERN(void) jsimd_idct_islow (j_decompress_ptr cinfo,
DRCbd498032016-02-19 08:53:33 -060064 jpeg_component_info *compptr,
DRCbc56b752014-05-16 10:43:44 +000065 JCOEFPTR coef_block, JSAMPARRAY output_buf,
66 JDIMENSION output_col);
67EXTERN(void) jsimd_idct_ifast (j_decompress_ptr cinfo,
DRCbd498032016-02-19 08:53:33 -060068 jpeg_component_info *compptr,
DRCbc56b752014-05-16 10:43:44 +000069 JCOEFPTR coef_block, JSAMPARRAY output_buf,
70 JDIMENSION output_col);
71EXTERN(void) jsimd_idct_float (j_decompress_ptr cinfo,
DRCbd498032016-02-19 08:53:33 -060072 jpeg_component_info *compptr,
DRCbc56b752014-05-16 10:43:44 +000073 JCOEFPTR coef_block, JSAMPARRAY output_buf,
74 JDIMENSION output_col);