Home | History | Annotate | Download | only in libjpeg-turbo
      1 /*
      2  * jsimddct.h
      3  *
      4  * Copyright 2009 Pierre Ossman <ossman (at) cendio.se> for Cendio AB
      5  *
      6  * Based on the x86 SIMD extension for IJG JPEG library,
      7  * Copyright (C) 1999-2006, MIYASAKA Masaru.
      8  * For conditions of distribution and use, see copyright notice in jsimdext.inc
      9  *
     10  */
     11 
     12 EXTERN(int) jsimd_can_convsamp (void);
     13 EXTERN(int) jsimd_can_convsamp_float (void);
     14 
     15 EXTERN(void) jsimd_convsamp (JSAMPARRAY sample_data, JDIMENSION start_col,
     16                              DCTELEM *workspace);
     17 EXTERN(void) jsimd_convsamp_float (JSAMPARRAY sample_data,
     18                                    JDIMENSION start_col,
     19                                    FAST_FLOAT *workspace);
     20 
     21 EXTERN(int) jsimd_can_fdct_islow (void);
     22 EXTERN(int) jsimd_can_fdct_ifast (void);
     23 EXTERN(int) jsimd_can_fdct_float (void);
     24 
     25 EXTERN(void) jsimd_fdct_islow (DCTELEM *data);
     26 EXTERN(void) jsimd_fdct_ifast (DCTELEM *data);
     27 EXTERN(void) jsimd_fdct_float (FAST_FLOAT *data);
     28 
     29 EXTERN(int) jsimd_can_quantize (void);
     30 EXTERN(int) jsimd_can_quantize_float (void);
     31 
     32 EXTERN(void) jsimd_quantize (JCOEFPTR coef_block, DCTELEM *divisors,
     33                              DCTELEM *workspace);
     34 EXTERN(void) jsimd_quantize_float (JCOEFPTR coef_block, FAST_FLOAT *divisors,
     35                                    FAST_FLOAT *workspace);
     36 
     37 EXTERN(int) jsimd_can_idct_2x2 (void);
     38 EXTERN(int) jsimd_can_idct_4x4 (void);
     39 EXTERN(int) jsimd_can_idct_6x6 (void);
     40 EXTERN(int) jsimd_can_idct_12x12 (void);
     41 
     42 EXTERN(void) jsimd_idct_2x2 (j_decompress_ptr cinfo,
     43                              jpeg_component_info *compptr,
     44                              JCOEFPTR coef_block, JSAMPARRAY output_buf,
     45                              JDIMENSION output_col);
     46 EXTERN(void) jsimd_idct_4x4 (j_decompress_ptr cinfo,
     47                              jpeg_component_info *compptr,
     48                              JCOEFPTR coef_block, JSAMPARRAY output_buf,
     49                              JDIMENSION output_col);
     50 EXTERN(void) jsimd_idct_6x6 (j_decompress_ptr cinfo,
     51                              jpeg_component_info *compptr,
     52                              JCOEFPTR coef_block, JSAMPARRAY output_buf,
     53                              JDIMENSION output_col);
     54 EXTERN(void) jsimd_idct_12x12 (j_decompress_ptr cinfo,
     55                                jpeg_component_info *compptr,
     56                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
     57                                JDIMENSION output_col);
     58 
     59 EXTERN(int) jsimd_can_idct_islow (void);
     60 EXTERN(int) jsimd_can_idct_ifast (void);
     61 EXTERN(int) jsimd_can_idct_float (void);
     62 
     63 EXTERN(void) jsimd_idct_islow (j_decompress_ptr cinfo,
     64                                jpeg_component_info *compptr,
     65                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
     66                                JDIMENSION output_col);
     67 EXTERN(void) jsimd_idct_ifast (j_decompress_ptr cinfo,
     68                                jpeg_component_info *compptr,
     69                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
     70                                JDIMENSION output_col);
     71 EXTERN(void) jsimd_idct_float (j_decompress_ptr cinfo,
     72                                jpeg_component_info *compptr,
     73                                JCOEFPTR coef_block, JSAMPARRAY output_buf,
     74                                JDIMENSION output_col);
     75