blob: d45fd700b60e81b13c9cbe28474b3afb2c7c8367 [file] [log] [blame]
Pierre Ossman59a39382009-03-09 13:15:56 +00001/*
2 * jsimd.h
3 *
4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
DRC392e0482011-02-18 20:43:04 +00005 * Copyright 2011 D. R. Commander
DRC1a45b812014-05-09 18:06:58 +00006 *
Pierre Ossman59a39382009-03-09 13:15:56 +00007 * Based on the x86 SIMD extension for IJG JPEG library,
8 * Copyright (C) 1999-2006, MIYASAKA Masaru.
DRCaf1ca9b2011-02-02 05:42:37 +00009 * For conditions of distribution and use, see copyright notice in jsimdext.inc
Pierre Ossman59a39382009-03-09 13:15:56 +000010 *
11 */
12
DRCbc56b752014-05-16 10:43:44 +000013EXTERN(int) jsimd_can_rgb_ycc (void);
14EXTERN(int) jsimd_can_rgb_gray (void);
15EXTERN(int) jsimd_can_ycc_rgb (void);
16EXTERN(int) jsimd_c_can_null_convert (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000017
18EXTERN(void) jsimd_rgb_ycc_convert
DRCbc56b752014-05-16 10:43:44 +000019 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
20 JDIMENSION output_row, int num_rows);
DRCc8666332011-02-18 11:23:45 +000021EXTERN(void) jsimd_rgb_gray_convert
DRCbc56b752014-05-16 10:43:44 +000022 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
23 JDIMENSION output_row, int num_rows);
Pierre Ossman59a39382009-03-09 13:15:56 +000024EXTERN(void) jsimd_ycc_rgb_convert
DRCbc56b752014-05-16 10:43:44 +000025 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
26 JSAMPARRAY output_buf, int num_rows);
DRC1b3fd7e2014-05-15 18:26:01 +000027EXTERN(void) jsimd_c_null_convert
DRCbc56b752014-05-16 10:43:44 +000028 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
29 JDIMENSION output_row, int num_rows);
Pierre Ossman59a39382009-03-09 13:15:56 +000030
DRCbc56b752014-05-16 10:43:44 +000031EXTERN(int) jsimd_can_h2v2_downsample (void);
32EXTERN(int) jsimd_can_h2v1_downsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000033
34EXTERN(void) jsimd_h2v2_downsample
DRCbc56b752014-05-16 10:43:44 +000035 (j_compress_ptr cinfo, jpeg_component_info * compptr,
36 JSAMPARRAY input_data, JSAMPARRAY output_data);
DRC6a61c1e2014-05-14 15:00:10 +000037
DRCbc56b752014-05-16 10:43:44 +000038EXTERN(int) jsimd_can_h2v2_smooth_downsample (void);
DRC6a61c1e2014-05-14 15:00:10 +000039
40EXTERN(void) jsimd_h2v2_smooth_downsample
DRCbc56b752014-05-16 10:43:44 +000041 (j_compress_ptr cinfo, jpeg_component_info * compptr,
42 JSAMPARRAY input_data, JSAMPARRAY output_data);
DRC6a61c1e2014-05-14 15:00:10 +000043
Pierre Ossman59a39382009-03-09 13:15:56 +000044EXTERN(void) jsimd_h2v1_downsample
DRCbc56b752014-05-16 10:43:44 +000045 (j_compress_ptr cinfo, jpeg_component_info * compptr,
46 JSAMPARRAY input_data, JSAMPARRAY output_data);
Pierre Ossman59a39382009-03-09 13:15:56 +000047
DRCbc56b752014-05-16 10:43:44 +000048EXTERN(int) jsimd_can_h2v2_upsample (void);
49EXTERN(int) jsimd_can_h2v1_upsample (void);
DRC5ef46302014-05-18 20:04:47 +000050EXTERN(int) jsimd_can_int_upsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000051
52EXTERN(void) jsimd_h2v2_upsample
DRCbc56b752014-05-16 10:43:44 +000053 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
54 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000055EXTERN(void) jsimd_h2v1_upsample
DRCbc56b752014-05-16 10:43:44 +000056 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
57 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
DRC5ef46302014-05-18 20:04:47 +000058EXTERN(void) jsimd_int_upsample
59 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
60 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000061
DRCbc56b752014-05-16 10:43:44 +000062EXTERN(int) jsimd_can_h2v2_fancy_upsample (void);
63EXTERN(int) jsimd_can_h2v1_fancy_upsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000064
65EXTERN(void) jsimd_h2v2_fancy_upsample
DRCbc56b752014-05-16 10:43:44 +000066 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
67 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000068EXTERN(void) jsimd_h2v1_fancy_upsample
DRCbc56b752014-05-16 10:43:44 +000069 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
70 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000071
DRCbc56b752014-05-16 10:43:44 +000072EXTERN(int) jsimd_can_h2v2_merged_upsample (void);
73EXTERN(int) jsimd_can_h2v1_merged_upsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000074
75EXTERN(void) jsimd_h2v2_merged_upsample
DRCbc56b752014-05-16 10:43:44 +000076 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
77 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
Pierre Ossman59a39382009-03-09 13:15:56 +000078EXTERN(void) jsimd_h2v1_merged_upsample
DRCbc56b752014-05-16 10:43:44 +000079 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
80 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);