michael@0: /* michael@0: * jsimddct.h michael@0: * michael@0: * Copyright 2009 Pierre Ossman for Cendio AB michael@0: * michael@0: * Based on the x86 SIMD extension for IJG JPEG library, michael@0: * Copyright (C) 1999-2006, MIYASAKA Masaru. michael@0: * For conditions of distribution and use, see copyright notice in jsimdext.inc michael@0: * michael@0: */ michael@0: michael@0: /* Short forms of external names for systems with brain-damaged linkers. */ michael@0: michael@0: #ifdef NEED_SHORT_EXTERNAL_NAMES michael@0: #define jsimd_can_convsamp jSCanConv michael@0: #define jsimd_can_convsamp_float jSCanConvF michael@0: #define jsimd_convsamp jSConv michael@0: #define jsimd_convsamp_float jSConvF michael@0: #define jsimd_can_fdct_islow jSCanFDCTIS michael@0: #define jsimd_can_fdct_ifast jSCanFDCTIF michael@0: #define jsimd_can_fdct_float jSCanFDCTFl michael@0: #define jsimd_fdct_islow jSFDCTIS michael@0: #define jsimd_fdct_ifast jSFDCTIF michael@0: #define jsimd_fdct_float jSFDCTFl michael@0: #define jsimd_can_quantize jSCanQuant michael@0: #define jsimd_can_quantize_float jSCanQuantF michael@0: #define jsimd_quantize jSQuant michael@0: #define jsimd_quantize_float jSQuantF michael@0: #define jsimd_can_idct_2x2 jSCanIDCT22 michael@0: #define jsimd_can_idct_4x4 jSCanIDCT44 michael@0: #define jsimd_idct_2x2 jSIDCT22 michael@0: #define jsimd_idct_4x4 jSIDCT44 michael@0: #define jsimd_can_idct_islow jSCanIDCTIS michael@0: #define jsimd_can_idct_ifast jSCanIDCTIF michael@0: #define jsimd_can_idct_float jSCanIDCTFl michael@0: #define jsimd_idct_islow jSIDCTIS michael@0: #define jsimd_idct_ifast jSIDCTIF michael@0: #define jsimd_idct_float jSIDCTFl michael@0: #endif /* NEED_SHORT_EXTERNAL_NAMES */ michael@0: michael@0: EXTERN(int) jsimd_can_convsamp JPP((void)); michael@0: EXTERN(int) jsimd_can_convsamp_float JPP((void)); michael@0: michael@0: EXTERN(void) jsimd_convsamp JPP((JSAMPARRAY sample_data, michael@0: JDIMENSION start_col, michael@0: DCTELEM * workspace)); michael@0: EXTERN(void) jsimd_convsamp_float JPP((JSAMPARRAY sample_data, michael@0: JDIMENSION start_col, michael@0: FAST_FLOAT * workspace)); michael@0: michael@0: EXTERN(int) jsimd_can_fdct_islow JPP((void)); michael@0: EXTERN(int) jsimd_can_fdct_ifast JPP((void)); michael@0: EXTERN(int) jsimd_can_fdct_float JPP((void)); michael@0: michael@0: EXTERN(void) jsimd_fdct_islow JPP((DCTELEM * data)); michael@0: EXTERN(void) jsimd_fdct_ifast JPP((DCTELEM * data)); michael@0: EXTERN(void) jsimd_fdct_float JPP((FAST_FLOAT * data)); michael@0: michael@0: EXTERN(int) jsimd_can_quantize JPP((void)); michael@0: EXTERN(int) jsimd_can_quantize_float JPP((void)); michael@0: michael@0: EXTERN(void) jsimd_quantize JPP((JCOEFPTR coef_block, michael@0: DCTELEM * divisors, michael@0: DCTELEM * workspace)); michael@0: EXTERN(void) jsimd_quantize_float JPP((JCOEFPTR coef_block, michael@0: FAST_FLOAT * divisors, michael@0: FAST_FLOAT * workspace)); michael@0: michael@0: EXTERN(int) jsimd_can_idct_2x2 JPP((void)); michael@0: EXTERN(int) jsimd_can_idct_4x4 JPP((void)); michael@0: michael@0: EXTERN(void) jsimd_idct_2x2 JPP((j_decompress_ptr cinfo, michael@0: jpeg_component_info * compptr, michael@0: JCOEFPTR coef_block, michael@0: JSAMPARRAY output_buf, michael@0: JDIMENSION output_col)); michael@0: EXTERN(void) jsimd_idct_4x4 JPP((j_decompress_ptr cinfo, michael@0: jpeg_component_info * compptr, michael@0: JCOEFPTR coef_block, michael@0: JSAMPARRAY output_buf, michael@0: JDIMENSION output_col)); michael@0: michael@0: EXTERN(int) jsimd_can_idct_islow JPP((void)); michael@0: EXTERN(int) jsimd_can_idct_ifast JPP((void)); michael@0: EXTERN(int) jsimd_can_idct_float JPP((void)); michael@0: michael@0: EXTERN(void) jsimd_idct_islow JPP((j_decompress_ptr cinfo, michael@0: jpeg_component_info * compptr, michael@0: JCOEFPTR coef_block, michael@0: JSAMPARRAY output_buf, michael@0: JDIMENSION output_col)); michael@0: EXTERN(void) jsimd_idct_ifast JPP((j_decompress_ptr cinfo, michael@0: jpeg_component_info * compptr, michael@0: JCOEFPTR coef_block, michael@0: JSAMPARRAY output_buf, michael@0: JDIMENSION output_col)); michael@0: EXTERN(void) jsimd_idct_float JPP((j_decompress_ptr cinfo, michael@0: jpeg_component_info * compptr, michael@0: JCOEFPTR coef_block, michael@0: JSAMPARRAY output_buf, michael@0: JDIMENSION output_col)); michael@0: