jsimd_ycc_rgb_convert (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows) { void (*neonfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); switch(cinfo->out_color_space) { case JCS_EXT_RGB: neonfct=jsimd_ycc_extrgb_convert_neon; break; case JCS_EXT_RGBX: neonfct=jsimd_ycc_extrgbx_convert_neon; break; case JCS_EXT_BGR: neonfct=jsimd_ycc_extbgr_convert_neon; break; case JCS_EXT_BGRX: neonfct=jsimd_ycc_extbgrx_convert_neon; break; case JCS_EXT_XBGR: neonfct=jsimd_ycc_extxbgr_convert_neon; break; case JCS_EXT_XRGB: neonfct=jsimd_ycc_extxrgb_convert_neon; break; default: neonfct=jsimd_ycc_extrgb_convert_neon; break; } if (simd_support & JSIMD_ARM_NEON) neonfct(cinfo->output_width, input_buf, input_row, output_buf, num_rows); }
jsimd_ycc_rgb565_convert (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows) { void (*neonfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); neonfct=jsimd_ycc_rgb565_convert_neon; neonfct(cinfo->output_width, input_buf, input_row, output_buf, num_rows); }
jsimd_ycc_rgb_convert (j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows) { void (*neonfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); switch(cinfo->out_color_space) { case JCS_EXT_RGB: if (simd_features & JSIMD_FASTST3) neonfct=jsimd_ycc_extrgb_convert_neon; else neonfct=jsimd_ycc_extrgb_convert_neon_slowst3; break; case JCS_EXT_RGBX: case JCS_EXT_RGBA: neonfct=jsimd_ycc_extrgbx_convert_neon; break; case JCS_EXT_BGR: if (simd_features & JSIMD_FASTST3) neonfct=jsimd_ycc_extbgr_convert_neon; else neonfct=jsimd_ycc_extbgr_convert_neon_slowst3; break; case JCS_EXT_BGRX: case JCS_EXT_BGRA: neonfct=jsimd_ycc_extbgrx_convert_neon; break; case JCS_EXT_XBGR: case JCS_EXT_ABGR: neonfct=jsimd_ycc_extxbgr_convert_neon; break; case JCS_EXT_XRGB: case JCS_EXT_ARGB: neonfct=jsimd_ycc_extxrgb_convert_neon; break; default: if (simd_features & JSIMD_FASTST3) neonfct=jsimd_ycc_extrgb_convert_neon; else neonfct=jsimd_ycc_extrgb_convert_neon_slowst3; break; } neonfct(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) { void (*neonfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); switch(cinfo->in_color_space) { case JCS_EXT_RGB: if (simd_features & JSIMD_FASTLD3) neonfct=jsimd_extrgb_ycc_convert_neon; else neonfct=jsimd_extrgb_ycc_convert_neon_slowld3; break; case JCS_EXT_RGBX: case JCS_EXT_RGBA: neonfct=jsimd_extrgbx_ycc_convert_neon; break; case JCS_EXT_BGR: if (simd_features & JSIMD_FASTLD3) neonfct=jsimd_extbgr_ycc_convert_neon; else neonfct=jsimd_extbgr_ycc_convert_neon_slowld3; break; case JCS_EXT_BGRX: case JCS_EXT_BGRA: neonfct=jsimd_extbgrx_ycc_convert_neon; break; case JCS_EXT_XBGR: case JCS_EXT_ABGR: neonfct=jsimd_extxbgr_ycc_convert_neon; break; case JCS_EXT_XRGB: case JCS_EXT_ARGB: neonfct=jsimd_extxrgb_ycc_convert_neon; break; default: if (simd_features & JSIMD_FASTLD3) neonfct=jsimd_extrgb_ycc_convert_neon; else neonfct=jsimd_extrgb_ycc_convert_neon_slowld3; break; } neonfct(cinfo->image_width, input_buf, output_buf, output_row, num_rows); }