1/*
2 * jsimd.h
3 *
4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5 * Copyright (C) 2011, 2014, D. R. Commander.
6 * Copyright (C) 2015, Matthieu Darbois.
7 *
8 * Based on the x86 SIMD extension for IJG JPEG library,
9 * Copyright (C) 1999-2006, MIYASAKA Masaru.
10 * For conditions of distribution and use, see copyright notice in jsimdext.inc
11 *
12 */
13
14#include "jchuff.h" /* Declarations shared with jcphuff.c */
15
16EXTERN(int) jsimd_can_rgb_ycc (void);
17EXTERN(int) jsimd_can_rgb_gray (void);
18EXTERN(int) jsimd_can_ycc_rgb (void);
19EXTERN(int) jsimd_can_ycc_rgb565 (void);
20EXTERN(int) jsimd_c_can_null_convert (void);
21
22EXTERN(void) jsimd_rgb_ycc_convert
23 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
24 JDIMENSION output_row, int num_rows);
25EXTERN(void) jsimd_rgb_gray_convert
26 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
27 JDIMENSION output_row, int num_rows);
28EXTERN(void) jsimd_ycc_rgb_convert
29 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
30 JSAMPARRAY output_buf, int num_rows);
31EXTERN(void) jsimd_ycc_rgb565_convert
32 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row,
33 JSAMPARRAY output_buf, int num_rows);
34EXTERN(void) jsimd_c_null_convert
35 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
36 JDIMENSION output_row, int num_rows);
37
38EXTERN(int) jsimd_can_h2v2_downsample (void);
39EXTERN(int) jsimd_can_h2v1_downsample (void);
40
41EXTERN(void) jsimd_h2v2_downsample
42 (j_compress_ptr cinfo, jpeg_component_info *compptr,
43 JSAMPARRAY input_data, JSAMPARRAY output_data);
44
45EXTERN(int) jsimd_can_h2v2_smooth_downsample (void);
46
47EXTERN(void) jsimd_h2v2_smooth_downsample
48 (j_compress_ptr cinfo, jpeg_component_info *compptr,
49 JSAMPARRAY input_data, JSAMPARRAY output_data);
50
51EXTERN(void) jsimd_h2v1_downsample
52 (j_compress_ptr cinfo, jpeg_component_info *compptr,
53 JSAMPARRAY input_data, JSAMPARRAY output_data);
54
55EXTERN(int) jsimd_can_h2v2_upsample (void);
56EXTERN(int) jsimd_can_h2v1_upsample (void);
57EXTERN(int) jsimd_can_int_upsample (void);
58
59EXTERN(void) jsimd_h2v2_upsample
60 (j_decompress_ptr cinfo, jpeg_component_info *compptr,
61 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr);
62EXTERN(void) jsimd_h2v1_upsample
63 (j_decompress_ptr cinfo, jpeg_component_info *compptr,
64 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr);
65EXTERN(void) jsimd_int_upsample
66 (j_decompress_ptr cinfo, jpeg_component_info *compptr,
67 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr);
68
69EXTERN(int) jsimd_can_h2v2_fancy_upsample (void);
70EXTERN(int) jsimd_can_h2v1_fancy_upsample (void);
71
72EXTERN(void) jsimd_h2v2_fancy_upsample
73 (j_decompress_ptr cinfo, jpeg_component_info *compptr,
74 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr);
75EXTERN(void) jsimd_h2v1_fancy_upsample
76 (j_decompress_ptr cinfo, jpeg_component_info *compptr,
77 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr);
78
79EXTERN(int) jsimd_can_h2v2_merged_upsample (void);
80EXTERN(int) jsimd_can_h2v1_merged_upsample (void);
81
82EXTERN(void) jsimd_h2v2_merged_upsample
83 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
84 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
85EXTERN(void) jsimd_h2v1_merged_upsample
86 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
87 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
88
89EXTERN(int) jsimd_can_huff_encode_one_block (void);
90
91EXTERN(JOCTET*) jsimd_huff_encode_one_block
92 (void *state, JOCTET *buffer, JCOEFPTR block, int last_dc_val,
93 c_derived_tbl *dctbl, c_derived_tbl *actbl);
94