Home | History | Annotate | Download | only in libjpeg-turbo
      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