jsimd_h2v1_merged_upsample (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf) { void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY); void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY); switch(cinfo->out_color_space) { case JCS_EXT_RGB: sse2fct=jsimd_h2v1_extrgb_merged_upsample_sse2; mmxfct=jsimd_h2v1_extrgb_merged_upsample_mmx; break; case JCS_EXT_RGBX: case JCS_EXT_RGBA: sse2fct=jsimd_h2v1_extrgbx_merged_upsample_sse2; mmxfct=jsimd_h2v1_extrgbx_merged_upsample_mmx; break; case JCS_EXT_BGR: sse2fct=jsimd_h2v1_extbgr_merged_upsample_sse2; mmxfct=jsimd_h2v1_extbgr_merged_upsample_mmx; break; case JCS_EXT_BGRX: case JCS_EXT_BGRA: sse2fct=jsimd_h2v1_extbgrx_merged_upsample_sse2; mmxfct=jsimd_h2v1_extbgrx_merged_upsample_mmx; break; case JCS_EXT_XBGR: case JCS_EXT_ABGR: sse2fct=jsimd_h2v1_extxbgr_merged_upsample_sse2; mmxfct=jsimd_h2v1_extxbgr_merged_upsample_mmx; break; case JCS_EXT_XRGB: case JCS_EXT_ARGB: sse2fct=jsimd_h2v1_extxrgb_merged_upsample_sse2; mmxfct=jsimd_h2v1_extxrgb_merged_upsample_mmx; break; default: sse2fct=jsimd_h2v1_merged_upsample_sse2; mmxfct=jsimd_h2v1_merged_upsample_mmx; break; } if ((simd_support & JSIMD_SSE2) && IS_ALIGNED_SSE(jconst_merged_upsample_sse2)) sse2fct(cinfo->output_width, input_buf, in_row_group_ctr, output_buf); else if (simd_support & JSIMD_MMX) mmxfct(cinfo->output_width, input_buf, in_row_group_ctr, output_buf); }
jsimd_ycc_rgb_convert (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows) { void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); switch(cinfo->out_color_space) { case JCS_EXT_RGB: sse2fct=jsimd_ycc_extrgb_convert_sse2; mmxfct=jsimd_ycc_extrgb_convert_mmx; break; case JCS_EXT_RGBX: case JCS_EXT_RGBA: sse2fct=jsimd_ycc_extrgbx_convert_sse2; mmxfct=jsimd_ycc_extrgbx_convert_mmx; break; case JCS_EXT_BGR: sse2fct=jsimd_ycc_extbgr_convert_sse2; mmxfct=jsimd_ycc_extbgr_convert_mmx; break; case JCS_EXT_BGRX: case JCS_EXT_BGRA: sse2fct=jsimd_ycc_extbgrx_convert_sse2; mmxfct=jsimd_ycc_extbgrx_convert_mmx; break; case JCS_EXT_XBGR: case JCS_EXT_ABGR: sse2fct=jsimd_ycc_extxbgr_convert_sse2; mmxfct=jsimd_ycc_extxbgr_convert_mmx; break; case JCS_EXT_XRGB: case JCS_EXT_ARGB: sse2fct=jsimd_ycc_extxrgb_convert_sse2; mmxfct=jsimd_ycc_extxrgb_convert_mmx; break; default: sse2fct=jsimd_ycc_rgb_convert_sse2; mmxfct=jsimd_ycc_rgb_convert_mmx; break; } if ((simd_support & JSIMD_SSE2) && IS_ALIGNED_SSE(jconst_ycc_rgb_convert_sse2)) sse2fct(cinfo->output_width, input_buf, input_row, output_buf, num_rows); else if (simd_support & JSIMD_MMX) mmxfct(cinfo->output_width, input_buf, input_row, output_buf, num_rows); }
jsimd_rgb_ycc_convert (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, JDIMENSION output_row, int num_rows) { #ifdef WITH_SIMD void (*sse2fct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); void (*mmxfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); switch(cinfo->in_color_space) { case JCS_EXT_RGB: sse2fct=jsimd_extrgb_ycc_convert_sse2; mmxfct=jsimd_extrgb_ycc_convert_mmx; break; case JCS_EXT_RGBX: sse2fct=jsimd_extrgbx_ycc_convert_sse2; mmxfct=jsimd_extrgbx_ycc_convert_mmx; break; case JCS_EXT_BGR: sse2fct=jsimd_extbgr_ycc_convert_sse2; mmxfct=jsimd_extbgr_ycc_convert_mmx; break; case JCS_EXT_BGRX: sse2fct=jsimd_extbgrx_ycc_convert_sse2; mmxfct=jsimd_extbgrx_ycc_convert_mmx; break; case JCS_EXT_XBGR: sse2fct=jsimd_extxbgr_ycc_convert_sse2; mmxfct=jsimd_extxbgr_ycc_convert_mmx; break; case JCS_EXT_XRGB: sse2fct=jsimd_extxrgb_ycc_convert_sse2; mmxfct=jsimd_extxrgb_ycc_convert_mmx; break; default: sse2fct=jsimd_rgb_ycc_convert_sse2; mmxfct=jsimd_rgb_ycc_convert_mmx; break; } if ((simd_support & JSIMD_SSE2) && IS_ALIGNED_SSE(jconst_rgb_ycc_convert_sse2)) sse2fct(cinfo->image_width, input_buf, output_buf, output_row, num_rows); else if (simd_support & JSIMD_MMX) mmxfct(cinfo->image_width, input_buf, output_buf, output_row, num_rows); #endif }