1 /* 2 * jsimd.h 3 * 4 * Copyright 2009 Pierre Ossman <ossman (at) 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 16 EXTERN(int) jsimd_can_rgb_ycc (void); 17 EXTERN(int) jsimd_can_rgb_gray (void); 18 EXTERN(int) jsimd_can_ycc_rgb (void); 19 EXTERN(int) jsimd_can_ycc_rgb565 (void); 20 EXTERN(int) jsimd_c_can_null_convert (void); 21 22 EXTERN(void) jsimd_rgb_ycc_convert 23 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 24 JDIMENSION output_row, int num_rows); 25 EXTERN(void) jsimd_rgb_gray_convert 26 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 27 JDIMENSION output_row, int num_rows); 28 EXTERN(void) jsimd_ycc_rgb_convert 29 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, 30 JSAMPARRAY output_buf, int num_rows); 31 EXTERN(void) jsimd_ycc_rgb565_convert 32 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, 33 JSAMPARRAY output_buf, int num_rows); 34 EXTERN(void) jsimd_c_null_convert 35 (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 36 JDIMENSION output_row, int num_rows); 37 38 EXTERN(int) jsimd_can_h2v2_downsample (void); 39 EXTERN(int) jsimd_can_h2v1_downsample (void); 40 41 EXTERN(void) jsimd_h2v2_downsample 42 (j_compress_ptr cinfo, jpeg_component_info *compptr, 43 JSAMPARRAY input_data, JSAMPARRAY output_data); 44 45 EXTERN(int) jsimd_can_h2v2_smooth_downsample (void); 46 47 EXTERN(void) jsimd_h2v2_smooth_downsample 48 (j_compress_ptr cinfo, jpeg_component_info *compptr, 49 JSAMPARRAY input_data, JSAMPARRAY output_data); 50 51 EXTERN(void) jsimd_h2v1_downsample 52 (j_compress_ptr cinfo, jpeg_component_info *compptr, 53 JSAMPARRAY input_data, JSAMPARRAY output_data); 54 55 EXTERN(int) jsimd_can_h2v2_upsample (void); 56 EXTERN(int) jsimd_can_h2v1_upsample (void); 57 EXTERN(int) jsimd_can_int_upsample (void); 58 59 EXTERN(void) jsimd_h2v2_upsample 60 (j_decompress_ptr cinfo, jpeg_component_info *compptr, 61 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 62 EXTERN(void) jsimd_h2v1_upsample 63 (j_decompress_ptr cinfo, jpeg_component_info *compptr, 64 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 65 EXTERN(void) jsimd_int_upsample 66 (j_decompress_ptr cinfo, jpeg_component_info *compptr, 67 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 68 69 EXTERN(int) jsimd_can_h2v2_fancy_upsample (void); 70 EXTERN(int) jsimd_can_h2v1_fancy_upsample (void); 71 72 EXTERN(void) jsimd_h2v2_fancy_upsample 73 (j_decompress_ptr cinfo, jpeg_component_info *compptr, 74 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 75 EXTERN(void) jsimd_h2v1_fancy_upsample 76 (j_decompress_ptr cinfo, jpeg_component_info *compptr, 77 JSAMPARRAY input_data, JSAMPARRAY *output_data_ptr); 78 79 EXTERN(int) jsimd_can_h2v2_merged_upsample (void); 80 EXTERN(int) jsimd_can_h2v1_merged_upsample (void); 81 82 EXTERN(void) jsimd_h2v2_merged_upsample 83 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, 84 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 85 EXTERN(void) jsimd_h2v1_merged_upsample 86 (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, 87 JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf); 88 89 EXTERN(int) jsimd_can_huff_encode_one_block (void); 90 91 EXTERN(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