aboutsummaryrefslogtreecommitdiff
path: root/jdmerge.c
diff options
context:
space:
mode:
authorossman_ <ossman_@632fc199-4ca6-4c93-a231-07263d6284db>2009-03-09 13:15:56 +0000
committerossman_ <ossman_@632fc199-4ca6-4c93-a231-07263d6284db>2009-03-09 13:15:56 +0000
commit0c228e147dda7909cc905e5742737ac4121b5af5 (patch)
treeb3161bf8ffded04581c050b7670544eeed3c1c7b /jdmerge.c
parent93736b192df8f7ab045602aad46617fa43ee8d00 (diff)
Framework for supporting SIMD acceleration
Designed to impose minimal changes on the "normal" code. git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@14 632fc199-4ca6-4c93-a231-07263d6284db
Diffstat (limited to 'jdmerge.c')
-rw-r--r--jdmerge.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/jdmerge.c b/jdmerge.c
index 3744446..7742941 100644
--- a/jdmerge.c
+++ b/jdmerge.c
@@ -2,6 +2,7 @@
* jdmerge.c
*
* Copyright (C) 1994-1996, Thomas G. Lane.
+ * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
* This file is part of the Independent JPEG Group's software.
* For conditions of distribution and use, see the accompanying README file.
*
@@ -35,6 +36,7 @@
#define JPEG_INTERNALS
#include "jinclude.h"
#include "jpeglib.h"
+#include "jsimd.h"
#ifdef UPSAMPLE_MERGING_SUPPORTED
@@ -382,14 +384,20 @@ jinit_merged_upsampler (j_decompress_ptr cinfo)
if (cinfo->max_v_samp_factor == 2) {
upsample->pub.upsample = merged_2v_upsample;
- upsample->upmethod = h2v2_merged_upsample;
+ if (jsimd_can_h2v2_merged_upsample())
+ upsample->upmethod = jsimd_h2v2_merged_upsample;
+ else
+ upsample->upmethod = h2v2_merged_upsample;
/* Allocate a spare row buffer */
upsample->spare_row = (JSAMPROW)
(*cinfo->mem->alloc_large) ((j_common_ptr) cinfo, JPOOL_IMAGE,
(size_t) (upsample->out_row_width * SIZEOF(JSAMPLE)));
} else {
upsample->pub.upsample = merged_1v_upsample;
- upsample->upmethod = h2v1_merged_upsample;
+ if (jsimd_can_h2v1_merged_upsample())
+ upsample->upmethod = jsimd_h2v1_merged_upsample;
+ else
+ upsample->upmethod = h2v1_merged_upsample;
/* No spare row needed */
upsample->spare_row = NULL;
}