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 /* Short forms of external names for systems with brain-damaged linkers. */
     13 
     14 #ifdef NEED_SHORT_EXTERNAL_NAMES
     15 #define jsimd_can_convsamp                jSCanConv
     16 #define jsimd_can_convsamp_float          jSCanConvF
     17 #define jsimd_convsamp                    jSConv
     18 #define jsimd_convsamp_float              jSConvF
     19 #define jsimd_can_fdct_islow              jSCanFDCTIS
     20 #define jsimd_can_fdct_ifast              jSCanFDCTIF
     21 #define jsimd_can_fdct_float              jSCanFDCTFl
     22 #define jsimd_fdct_islow                  jSFDCTIS
     23 #define jsimd_fdct_ifast                  jSFDCTIF
     24 #define jsimd_fdct_float                  jSFDCTFl
     25 #define jsimd_can_quantize                jSCanQuant
     26 #define jsimd_can_quantize_float          jSCanQuantF
     27 #define jsimd_quantize                    jSQuant
     28 #define jsimd_quantize_float              jSQuantF
     29 #define jsimd_can_idct_2x2                jSCanIDCT22
     30 #define jsimd_can_idct_4x4                jSCanIDCT44
     31 #define jsimd_idct_2x2                    jSIDCT22
     32 #define jsimd_idct_4x4                    jSIDCT44
     33 #define jsimd_can_idct_islow              jSCanIDCTIS
     34 #define jsimd_can_idct_ifast              jSCanIDCTIF
     35 #define jsimd_can_idct_float              jSCanIDCTFl
     36 #define jsimd_idct_islow                  jSIDCTIS
     37 #define jsimd_idct_ifast                  jSIDCTIF
     38 #define jsimd_idct_float                  jSIDCTFl
     39 #endif /* NEED_SHORT_EXTERNAL_NAMES */
     40 
     41 EXTERN(int) jsimd_can_convsamp JPP((void));
     42 EXTERN(int) jsimd_can_convsamp_float JPP((void));
     43 
     44 EXTERN(void) jsimd_convsamp JPP((JSAMPARRAY sample_data,
     45                                  JDIMENSION start_col,
     46                                  DCTELEM * workspace));
     47 EXTERN(void) jsimd_convsamp_float JPP((JSAMPARRAY sample_data,
     48                                        JDIMENSION start_col,
     49                                        FAST_FLOAT * workspace));
     50 
     51 EXTERN(int) jsimd_can_fdct_islow JPP((void));
     52 EXTERN(int) jsimd_can_fdct_ifast JPP((void));
     53 EXTERN(int) jsimd_can_fdct_float JPP((void));
     54 
     55 EXTERN(void) jsimd_fdct_islow JPP((DCTELEM * data));
     56 EXTERN(void) jsimd_fdct_ifast JPP((DCTELEM * data));
     57 EXTERN(void) jsimd_fdct_float JPP((FAST_FLOAT * data));
     58 
     59 EXTERN(int) jsimd_can_quantize JPP((void));
     60 EXTERN(int) jsimd_can_quantize_float JPP((void));
     61 
     62 EXTERN(void) jsimd_quantize JPP((JCOEFPTR coef_block,
     63                                  DCTELEM * divisors,
     64                                  DCTELEM * workspace));
     65 EXTERN(void) jsimd_quantize_float JPP((JCOEFPTR coef_block,
     66                                        FAST_FLOAT * divisors,
     67                                        FAST_FLOAT * workspace));
     68 
     69 EXTERN(int) jsimd_can_idct_2x2 JPP((void));
     70 EXTERN(int) jsimd_can_idct_4x4 JPP((void));
     71 
     72 EXTERN(void) jsimd_idct_2x2 JPP((j_decompress_ptr cinfo,
     73                                  jpeg_component_info * compptr,
     74                                  JCOEFPTR coef_block,
     75                                  JSAMPARRAY output_buf,
     76                                  JDIMENSION output_col));
     77 EXTERN(void) jsimd_idct_4x4 JPP((j_decompress_ptr cinfo,
     78                                  jpeg_component_info * compptr,
     79                                  JCOEFPTR coef_block,
     80                                  JSAMPARRAY output_buf,
     81                                  JDIMENSION output_col));
     82 
     83 EXTERN(int) jsimd_can_idct_islow JPP((void));
     84 EXTERN(int) jsimd_can_idct_ifast JPP((void));
     85 EXTERN(int) jsimd_can_idct_float JPP((void));
     86 
     87 EXTERN(void) jsimd_idct_islow JPP((j_decompress_ptr cinfo,
     88                                    jpeg_component_info * compptr,
     89                                    JCOEFPTR coef_block,
     90                                    JSAMPARRAY output_buf,
     91                                    JDIMENSION output_col));
     92 EXTERN(void) jsimd_idct_ifast JPP((j_decompress_ptr cinfo,
     93                                    jpeg_component_info * compptr,
     94                                    JCOEFPTR coef_block,
     95                                    JSAMPARRAY output_buf,
     96                                    JDIMENSION output_col));
     97 EXTERN(void) jsimd_idct_float JPP((j_decompress_ptr cinfo,
     98                                    jpeg_component_info * compptr,
     99                                    JCOEFPTR coef_block,
    100                                    JSAMPARRAY output_buf,
    101                                    JDIMENSION output_col));
    102 
    103