blob: f1f584b8bde083da2c74afd890ee5ffda9b80e03 [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
DRCd729f4d2014-08-23 15:47:51 +00005 * Copyright 2011, 2014 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);
DRCd729f4d2014-08-23 15:47:51 +000016EXTERN(int) jsimd_can_ycc_rgb565 (void);
DRCbc56b752014-05-16 10:43:44 +000017EXTERN(int) jsimd_c_can_null_convert (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000018
19EXTERN(void) jsimd_rgb_ycc_convert
DRCbc56b752014-05-16 10:43:44 +000020 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
21 JDIMENSION output_row, int num_rows);
DRCc8666332011-02-18 11:23:45 +000022EXTERN(void) jsimd_rgb_gray_convert
DRCbc56b752014-05-16 10:43:44 +000023 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
24 JDIMENSION output_row, int num_rows);
Pierre Ossman59a39382009-03-09 13:15:56 +000025EXTERN(void) jsimd_ycc_rgb_convert
DRCbc56b752014-05-16 10:43:44 +000026 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
27 JSAMPARRAY output_buf, int num_rows);
DRCd729f4d2014-08-23 15:47:51 +000028EXTERN(void) jsimd_ycc_rgb565_convert
29 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
30 JSAMPARRAY output_buf, int num_rows);
DRC1b3fd7e2014-05-15 18:26:01 +000031EXTERN(void) jsimd_c_null_convert
DRCbc56b752014-05-16 10:43:44 +000032 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
33 JDIMENSION output_row, int num_rows);
Pierre Ossman59a39382009-03-09 13:15:56 +000034
DRCbc56b752014-05-16 10:43:44 +000035EXTERN(int) jsimd_can_h2v2_downsample (void);
36EXTERN(int) jsimd_can_h2v1_downsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000037
38EXTERN(void) jsimd_h2v2_downsample
DRCbc56b752014-05-16 10:43:44 +000039 (j_compress_ptr cinfo, jpeg_component_info * compptr,
40 JSAMPARRAY input_data, JSAMPARRAY output_data);
DRC6a61c1e2014-05-14 15:00:10 +000041
DRCbc56b752014-05-16 10:43:44 +000042EXTERN(int) jsimd_can_h2v2_smooth_downsample (void);
DRC6a61c1e2014-05-14 15:00:10 +000043
44EXTERN(void) jsimd_h2v2_smooth_downsample
DRCbc56b752014-05-16 10:43:44 +000045 (j_compress_ptr cinfo, jpeg_component_info * compptr,
46 JSAMPARRAY input_data, JSAMPARRAY output_data);
DRC6a61c1e2014-05-14 15:00:10 +000047
Pierre Ossman59a39382009-03-09 13:15:56 +000048EXTERN(void) jsimd_h2v1_downsample
DRCbc56b752014-05-16 10:43:44 +000049 (j_compress_ptr cinfo, jpeg_component_info * compptr,
50 JSAMPARRAY input_data, JSAMPARRAY output_data);
Pierre Ossman59a39382009-03-09 13:15:56 +000051
DRCbc56b752014-05-16 10:43:44 +000052EXTERN(int) jsimd_can_h2v2_upsample (void);
53EXTERN(int) jsimd_can_h2v1_upsample (void);
DRC5ef46302014-05-18 20:04:47 +000054EXTERN(int) jsimd_can_int_upsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000055
56EXTERN(void) jsimd_h2v2_upsample
DRCbc56b752014-05-16 10:43:44 +000057 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
58 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000059EXTERN(void) jsimd_h2v1_upsample
DRCbc56b752014-05-16 10:43:44 +000060 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
61 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
DRC5ef46302014-05-18 20:04:47 +000062EXTERN(void) jsimd_int_upsample
63 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
64 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000065
DRCbc56b752014-05-16 10:43:44 +000066EXTERN(int) jsimd_can_h2v2_fancy_upsample (void);
67EXTERN(int) jsimd_can_h2v1_fancy_upsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000068
69EXTERN(void) jsimd_h2v2_fancy_upsample
DRCbc56b752014-05-16 10:43:44 +000070 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
71 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000072EXTERN(void) jsimd_h2v1_fancy_upsample
DRCbc56b752014-05-16 10:43:44 +000073 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
74 JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr);
Pierre Ossman59a39382009-03-09 13:15:56 +000075
DRCbc56b752014-05-16 10:43:44 +000076EXTERN(int) jsimd_can_h2v2_merged_upsample (void);
77EXTERN(int) jsimd_can_h2v1_merged_upsample (void);
Pierre Ossman59a39382009-03-09 13:15:56 +000078
79EXTERN(void) jsimd_h2v2_merged_upsample
DRCbc56b752014-05-16 10:43:44 +000080 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
81 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
Pierre Ossman59a39382009-03-09 13:15:56 +000082EXTERN(void) jsimd_h2v1_merged_upsample
DRCbc56b752014-05-16 10:43:44 +000083 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
84 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);