jsimd.h (5909B)
1 /* 2 * jsimd.h 3 * 4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB 5 * Copyright (C) 2011, 2014, 2022, D. R. Commander. 6 * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois. 7 * Copyright (C) 2020, Arm Limited. 8 * 9 * Based on the x86 SIMD extension for IJG JPEG library, 10 * Copyright (C) 1999-2006, MIYASAKA Masaru. 11 * For conditions of distribution and use, see copyright notice in jsimdext.inc 12 * 13 */ 14 15 #ifdef WITH_SIMD 16 17 #include "jchuff.h" /* Declarations shared with jcphuff.c */ 18 19 EXTERN(int) jsimd_can_rgb_ycc(void); 20 EXTERN(int) jsimd_can_rgb_gray(void); 21 EXTERN(int) jsimd_can_ycc_rgb(void); 22 EXTERN(int) jsimd_can_ycc_rgb565(void); 23 EXTERN(int) jsimd_c_can_null_convert(void); 24 25 EXTERN(void) jsimd_rgb_ycc_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf, 26 JSAMPIMAGE output_buf, 27 JDIMENSION output_row, int num_rows); 28 EXTERN(void) jsimd_rgb_gray_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf, 29 JSAMPIMAGE output_buf, 30 JDIMENSION output_row, int num_rows); 31 EXTERN(void) jsimd_ycc_rgb_convert(j_decompress_ptr cinfo, 32 JSAMPIMAGE input_buf, JDIMENSION input_row, 33 JSAMPARRAY output_buf, int num_rows); 34 EXTERN(void) jsimd_ycc_rgb565_convert(j_decompress_ptr cinfo, 35 JSAMPIMAGE input_buf, 36 JDIMENSION input_row, 37 JSAMPARRAY output_buf, int num_rows); 38 EXTERN(void) jsimd_c_null_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf, 39 JSAMPIMAGE output_buf, JDIMENSION output_row, 40 int num_rows); 41 42 EXTERN(int) jsimd_can_h2v2_downsample(void); 43 EXTERN(int) jsimd_can_h2v1_downsample(void); 44 45 EXTERN(void) jsimd_h2v2_downsample(j_compress_ptr cinfo, 46 jpeg_component_info *compptr, 47 JSAMPARRAY input_data, 48 JSAMPARRAY output_data); 49 50 EXTERN(int) jsimd_can_h2v2_smooth_downsample(void); 51 52 EXTERN(void) jsimd_h2v2_smooth_downsample(j_compress_ptr cinfo, 53 jpeg_component_info *compptr, 54 JSAMPARRAY input_data, 55 JSAMPARRAY output_data); 56 57 EXTERN(void) jsimd_h2v1_downsample(j_compress_ptr cinfo, 58 jpeg_component_info *compptr, 59 JSAMPARRAY input_data, 60 JSAMPARRAY output_data); 61 62 EXTERN(int) jsimd_can_h2v2_upsample(void); 63 EXTERN(int) jsimd_can_h2v1_upsample(void); 64 EXTERN(int) jsimd_can_int_upsample(void); 65 66 EXTERN(void) jsimd_h2v2_upsample(j_decompress_ptr cinfo, 67 jpeg_component_info *compptr, 68 JSAMPARRAY input_data, 69 JSAMPARRAY *output_data_ptr); 70 EXTERN(void) jsimd_h2v1_upsample(j_decompress_ptr cinfo, 71 jpeg_component_info *compptr, 72 JSAMPARRAY input_data, 73 JSAMPARRAY *output_data_ptr); 74 EXTERN(void) jsimd_int_upsample(j_decompress_ptr cinfo, 75 jpeg_component_info *compptr, 76 JSAMPARRAY input_data, 77 JSAMPARRAY *output_data_ptr); 78 79 EXTERN(int) jsimd_can_h2v2_fancy_upsample(void); 80 EXTERN(int) jsimd_can_h2v1_fancy_upsample(void); 81 EXTERN(int) jsimd_can_h1v2_fancy_upsample(void); 82 83 EXTERN(void) jsimd_h2v2_fancy_upsample(j_decompress_ptr cinfo, 84 jpeg_component_info *compptr, 85 JSAMPARRAY input_data, 86 JSAMPARRAY *output_data_ptr); 87 EXTERN(void) jsimd_h2v1_fancy_upsample(j_decompress_ptr cinfo, 88 jpeg_component_info *compptr, 89 JSAMPARRAY input_data, 90 JSAMPARRAY *output_data_ptr); 91 EXTERN(void) jsimd_h1v2_fancy_upsample(j_decompress_ptr cinfo, 92 jpeg_component_info *compptr, 93 JSAMPARRAY input_data, 94 JSAMPARRAY *output_data_ptr); 95 96 EXTERN(int) jsimd_can_h2v2_merged_upsample(void); 97 EXTERN(int) jsimd_can_h2v1_merged_upsample(void); 98 99 EXTERN(void) jsimd_h2v2_merged_upsample(j_decompress_ptr cinfo, 100 JSAMPIMAGE input_buf, 101 JDIMENSION in_row_group_ctr, 102 JSAMPARRAY output_buf); 103 EXTERN(void) jsimd_h2v1_merged_upsample(j_decompress_ptr cinfo, 104 JSAMPIMAGE input_buf, 105 JDIMENSION in_row_group_ctr, 106 JSAMPARRAY output_buf); 107 108 EXTERN(int) jsimd_can_huff_encode_one_block(void); 109 110 EXTERN(JOCTET *) jsimd_huff_encode_one_block(void *state, JOCTET *buffer, 111 JCOEFPTR block, int last_dc_val, 112 c_derived_tbl *dctbl, 113 c_derived_tbl *actbl); 114 115 EXTERN(int) jsimd_can_encode_mcu_AC_first_prepare(void); 116 117 EXTERN(void) jsimd_encode_mcu_AC_first_prepare 118 (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al, 119 UJCOEF *values, size_t *zerobits); 120 121 EXTERN(int) jsimd_can_encode_mcu_AC_refine_prepare(void); 122 123 EXTERN(int) jsimd_encode_mcu_AC_refine_prepare 124 (const JCOEF *block, const int *jpeg_natural_order_start, int Sl, int Al, 125 UJCOEF *absvalues, size_t *bits); 126 127 #endif /* WITH_SIMD */