SIMD support for performing downsampling using MIPS DSPr2 instructions

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@995 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC
2013-07-27 21:48:18 +00:00
parent 86fbf35fb6
commit 6f2d3c2c97
3 changed files with 244 additions and 0 deletions

View File

@@ -213,12 +213,32 @@ jsimd_ycc_rgb_convert (j_decompress_ptr cinfo,
GLOBAL(int)
jsimd_can_h2v2_downsample (void)
{
init_simd();
/* The code is optimised for these values only */
if (BITS_IN_JSAMPLE != 8)
return 0;
if (sizeof(JDIMENSION) != 4)
return 0;
if (simd_support & JSIMD_MIPS_DSPR2)
return 1;
return 0;
}
GLOBAL(int)
jsimd_can_h2v1_downsample (void)
{
init_simd();
/* The code is optimised for these values only */
if (BITS_IN_JSAMPLE != 8)
return 0;
if (sizeof(JDIMENSION) != 4)
return 0;
if (simd_support & JSIMD_MIPS_DSPR2)
return 1;
return 0;
}
@@ -226,12 +246,20 @@ GLOBAL(void)
jsimd_h2v2_downsample (j_compress_ptr cinfo, jpeg_component_info * compptr,
JSAMPARRAY input_data, JSAMPARRAY output_data)
{
if (simd_support & JSIMD_MIPS_DSPR2)
jsimd_h2v2_downsample_mips_dspr2(cinfo->image_width,
cinfo->max_v_samp_factor, compptr->v_samp_factor,
compptr->width_in_blocks, input_data, output_data);
}
GLOBAL(void)
jsimd_h2v1_downsample (j_compress_ptr cinfo, jpeg_component_info * compptr,
JSAMPARRAY input_data, JSAMPARRAY output_data)
{
if (simd_support & JSIMD_MIPS_DSPR2)
jsimd_h2v1_downsample_mips_dspr2(cinfo->image_width,
cinfo->max_v_samp_factor, compptr->v_samp_factor,
compptr->width_in_blocks, input_data, output_data);
}
GLOBAL(int)