various cleanups, remove liboil
This commit is contained in:
parent
b05bd38cae
commit
60280aa318
@ -5,6 +5,9 @@
|
|||||||
- use GetTempPath() to pick a temp dir on Windows
|
- use GetTempPath() to pick a temp dir on Windows
|
||||||
- added "rd" mode to im_open()
|
- added "rd" mode to im_open()
|
||||||
- vipsthumbnail and vips use "rd"
|
- vipsthumbnail and vips use "rd"
|
||||||
|
- im_divide spots /0
|
||||||
|
- remove liboil dependency, we will use Orc instead
|
||||||
|
- various small cleanups (thanks Tim)
|
||||||
|
|
||||||
12/5/10 started 7.22.2
|
12/5/10 started 7.22.2
|
||||||
- the conditional image of ifthenelse can be any format, a (!=0) is added if
|
- the conditional image of ifthenelse can be any format, a (!=0) is added if
|
||||||
|
19
configure.in
19
configure.in
@ -375,20 +375,6 @@ if test x"$with_magick" != "xno"; then
|
|||||||
LIBS=$save_LIBS
|
LIBS=$save_LIBS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# liboil
|
|
||||||
AC_ARG_WITH([liboil],
|
|
||||||
AS_HELP_STRING([--without-liboil], [build without liboil (default: test)]))
|
|
||||||
|
|
||||||
if test x"$with_liboil" != "xno"; then
|
|
||||||
PKG_CHECK_MODULES(LIBOIL, liboil-0.3,
|
|
||||||
[AC_DEFINE(HAVE_LIBOIL,1,[define if you have liboil-0.3 installed.])
|
|
||||||
with_liboil=yes
|
|
||||||
PACKAGES_USED="$PACKAGES_USED liboil-0.3"],
|
|
||||||
[AC_MSG_WARN([liboil not found; disabling liboil support])
|
|
||||||
with_liboil=no
|
|
||||||
])
|
|
||||||
fi
|
|
||||||
|
|
||||||
# lcms
|
# lcms
|
||||||
AC_ARG_WITH([lcms],
|
AC_ARG_WITH([lcms],
|
||||||
AS_HELP_STRING([--without-lcms], [build without lcms (default: test)]))
|
AS_HELP_STRING([--without-lcms], [build without lcms (default: test)]))
|
||||||
@ -564,14 +550,14 @@ fi
|
|||||||
# Gather all up for VIPS_CFLAGS, VIPS_INCLUDES, VIPS_LIBS and VIPS_CXX_LIBS
|
# Gather all up for VIPS_CFLAGS, VIPS_INCLUDES, VIPS_LIBS and VIPS_CXX_LIBS
|
||||||
# sort includes to get longer, more specific dirs first
|
# sort includes to get longer, more specific dirs first
|
||||||
# helps, for example, selecting graphicsmagick over imagemagick
|
# helps, for example, selecting graphicsmagick over imagemagick
|
||||||
VIPS_CFLAGS=`for i in $VIPS_CFLAGS $GTHREAD_CFLAGS $REQUIRED_CFLAGS $PANGOFT2_CFLAGS $FFTW3_CFLAGS $MAGICK_CFLAGS $PNG_CFLAGS $EXIF_CFLAGS $MATIO_CFLAGS $OPENEXR_CFLAGS $LIBOIL_CFLAGS
|
VIPS_CFLAGS=`for i in $VIPS_CFLAGS $GTHREAD_CFLAGS $REQUIRED_CFLAGS $PANGOFT2_CFLAGS $FFTW3_CFLAGS $MAGICK_CFLAGS $PNG_CFLAGS $EXIF_CFLAGS $MATIO_CFLAGS $OPENEXR_CFLAGS
|
||||||
do
|
do
|
||||||
echo $i
|
echo $i
|
||||||
done | sort -ru`
|
done | sort -ru`
|
||||||
VIPS_CFLAGS=`echo $VIPS_CFLAGS`
|
VIPS_CFLAGS=`echo $VIPS_CFLAGS`
|
||||||
VIPS_CFLAGS="$VIPS_DEBUG_FLAGS $VIPS_CFLAGS"
|
VIPS_CFLAGS="$VIPS_DEBUG_FLAGS $VIPS_CFLAGS"
|
||||||
VIPS_INCLUDES="$PNG_INCLUDES $TIFF_INCLUDES $ZIP_INCLUDES $JPEG_INCLUDES $FFTW_INCLUDES $LCMS_INCLUDES"
|
VIPS_INCLUDES="$PNG_INCLUDES $TIFF_INCLUDES $ZIP_INCLUDES $JPEG_INCLUDES $FFTW_INCLUDES $LCMS_INCLUDES"
|
||||||
VIPS_LIBS="$MAGICK_LIBS $PNG_LIBS $TIFF_LIBS $ZIP_LIBS $JPEG_LIBS $GTHREAD_LIBS $REQUIRED_LIBS $PANGOFT2_LIBS $FFTW3_LIBS $FFTW_LIBS $LCMS_LIBS $LIBOIL_LIBS $OPENEXR_LIBS $MATIO_LIBS $EXIF_LIBS -lm"
|
VIPS_LIBS="$MAGICK_LIBS $PNG_LIBS $TIFF_LIBS $ZIP_LIBS $JPEG_LIBS $GTHREAD_LIBS $REQUIRED_LIBS $PANGOFT2_LIBS $FFTW3_LIBS $FFTW_LIBS $LCMS_LIBS $OPENEXR_LIBS $MATIO_LIBS $EXIF_LIBS -lm"
|
||||||
# need -lstdc++ for (eg.) the C++ format loaders
|
# need -lstdc++ for (eg.) the C++ format loaders
|
||||||
VIPS_CXX_LIBS="-lstdc++"
|
VIPS_CXX_LIBS="-lstdc++"
|
||||||
|
|
||||||
@ -654,7 +640,6 @@ build docs with gtkdoc $enable_gtk_doc
|
|||||||
use fftw3 for FFT: $with_fftw3
|
use fftw3 for FFT: $with_fftw3
|
||||||
Magick package: $with_magickpackage
|
Magick package: $with_magickpackage
|
||||||
file import with libMagick: $with_magick
|
file import with libMagick: $with_magick
|
||||||
accelerate loops with liboil: $with_liboil
|
|
||||||
ICC profile support with lcms: $with_lcms
|
ICC profile support with lcms: $with_lcms
|
||||||
file import with OpenEXR: $with_OpenEXR
|
file import with OpenEXR: $with_OpenEXR
|
||||||
file import with matio: $with_matio
|
file import with matio: $with_matio
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
* 28/8/09
|
* 28/8/09
|
||||||
* - gtkdoc
|
* - gtkdoc
|
||||||
* - tiny polish
|
* - tiny polish
|
||||||
|
* 31/7/10
|
||||||
|
* - remove liboil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -56,15 +58,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#include <vips/vips.h>
|
#include <vips/vips.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -153,56 +150,16 @@ abs_gen( PEL *in, PEL *out, int width, IMAGE *im )
|
|||||||
/* Abs all input types.
|
/* Abs all input types.
|
||||||
*/
|
*/
|
||||||
switch( im->BandFmt ) {
|
switch( im->BandFmt ) {
|
||||||
case IM_BANDFMT_CHAR:
|
case IM_BANDFMT_CHAR: intabs( signed char ); break;
|
||||||
#ifdef HAVE_LIBOIL
|
case IM_BANDFMT_SHORT: intabs( signed short ); break;
|
||||||
oil_abs_u8_s8( (uint8_t *) out, sizeof( uint8_t ),
|
case IM_BANDFMT_INT: intabs( signed int ); break;
|
||||||
(int8_t *) in, sizeof( int8_t ), sz );
|
case IM_BANDFMT_FLOAT: floatabs( float ); break;
|
||||||
#else /*!HAVE_LIBOIL*/
|
case IM_BANDFMT_DOUBLE: floatabs( float ); break;
|
||||||
intabs( signed char );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_SHORT:
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
oil_abs_u16_s16( (uint16_t *) out, sizeof( uint16_t ),
|
|
||||||
(int16_t *) in, sizeof( int16_t ), sz );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
intabs( signed short );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_INT:
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
oil_abs_u32_s32( (uint32_t *) out, sizeof( uint32_t ),
|
|
||||||
(int32_t *) in, sizeof( int32_t ), sz );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
intabs( signed int );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_FLOAT:
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
oil_abs_f32_f32( (float *) out, sizeof( float ),
|
|
||||||
(float *) in, sizeof( float ), sz );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
floatabs( float );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_DOUBLE:
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
oil_abs_f64_f64( (double *) out, sizeof( double ),
|
|
||||||
(double *) in, sizeof( double ), sz );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
floatabs( float );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_COMPLEX: complexabs( float ); break;
|
case IM_BANDFMT_COMPLEX: complexabs( float ); break;
|
||||||
case IM_BANDFMT_DPCOMPLEX: complexabs( double ); break;
|
case IM_BANDFMT_DPCOMPLEX: complexabs( double ); break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( 0 );
|
g_assert( 0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
* - add complex case (needed for im_max())
|
* - add complex case (needed for im_max())
|
||||||
* 8/9/09
|
* 8/9/09
|
||||||
* - wrapscan stuff moved here
|
* - wrapscan stuff moved here
|
||||||
|
* 31/7/10
|
||||||
|
* - remove liboil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -68,10 +70,6 @@
|
|||||||
#include <vips/vips.h>
|
#include <vips/vips.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -223,22 +221,7 @@ avg_scan( void *in, int n, void *seq, void *a, void *b )
|
|||||||
case IM_BANDFMT_UINT: LOOP( unsigned int ); break;
|
case IM_BANDFMT_UINT: LOOP( unsigned int ); break;
|
||||||
case IM_BANDFMT_INT: LOOP( signed int ); break;
|
case IM_BANDFMT_INT: LOOP( signed int ); break;
|
||||||
case IM_BANDFMT_FLOAT: LOOP( float ); break;
|
case IM_BANDFMT_FLOAT: LOOP( float ); break;
|
||||||
|
case IM_BANDFMT_DOUBLE: LOOP( double ); break;
|
||||||
case IM_BANDFMT_DOUBLE:
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
{
|
|
||||||
double *p = (double *) in;
|
|
||||||
double t;
|
|
||||||
|
|
||||||
oil_sum_f64( &t, p, sizeof( double ), sz );
|
|
||||||
|
|
||||||
m += t;
|
|
||||||
}
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
LOOP( double );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_COMPLEX: CLOOP( float ); break;
|
case IM_BANDFMT_COMPLEX: CLOOP( float ); break;
|
||||||
case IM_BANDFMT_DPCOMPLEX: CLOOP( double ); break;
|
case IM_BANDFMT_DPCOMPLEX: CLOOP( double ); break;
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
* - minor reformatting
|
* - minor reformatting
|
||||||
* 4/9/09
|
* 4/9/09
|
||||||
* - use im__wrapscan()
|
* - use im__wrapscan()
|
||||||
|
* 31/7/10
|
||||||
|
* - remove liboil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -67,10 +69,6 @@
|
|||||||
#include <vips/vips.h>
|
#include <vips/vips.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -146,24 +144,7 @@ deviate_scan( void *in, int n, void *seq, void *a, void *b )
|
|||||||
case IM_BANDFMT_UINT: LOOP( unsigned int ); break;
|
case IM_BANDFMT_UINT: LOOP( unsigned int ); break;
|
||||||
case IM_BANDFMT_INT: LOOP( signed int ); break;
|
case IM_BANDFMT_INT: LOOP( signed int ); break;
|
||||||
case IM_BANDFMT_FLOAT: LOOP( float ); break;
|
case IM_BANDFMT_FLOAT: LOOP( float ); break;
|
||||||
|
case IM_BANDFMT_DOUBLE: LOOP( double ); break;
|
||||||
case IM_BANDFMT_DOUBLE:
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
{
|
|
||||||
double *p = (double *) in;
|
|
||||||
double t;
|
|
||||||
double t2;
|
|
||||||
|
|
||||||
oil_sum_f64( &t, p, sizeof( double ), sz );
|
|
||||||
oil_squaresum_f64( &t2, p, sz );
|
|
||||||
|
|
||||||
s += t;
|
|
||||||
s2 += t2;
|
|
||||||
}
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
LOOP( double );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
g_assert( 0 );
|
g_assert( 0 );
|
||||||
|
@ -23,6 +23,9 @@
|
|||||||
* 18/8/08
|
* 18/8/08
|
||||||
* - revise upcasting system
|
* - revise upcasting system
|
||||||
* - add gtkdoc comments
|
* - add gtkdoc comments
|
||||||
|
* 31/7/10
|
||||||
|
* - remove liboil support
|
||||||
|
* - avoid /0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -64,10 +67,6 @@
|
|||||||
#include <vips/vips.h>
|
#include <vips/vips.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -136,7 +135,10 @@
|
|||||||
OUT *q = (OUT *) out; \
|
OUT *q = (OUT *) out; \
|
||||||
\
|
\
|
||||||
for( x = 0; x < sz; x++ ) \
|
for( x = 0; x < sz; x++ ) \
|
||||||
q[x] = p1[x] / p2[x]; \
|
if( p2[x] == 0.0 ) \
|
||||||
|
q[x] = 0; \
|
||||||
|
else \
|
||||||
|
q[x] = p1[x] / p2[x]; \
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -154,19 +156,10 @@ divide_buffer( PEL **in, PEL *out, int width, IMAGE *im )
|
|||||||
case IM_BANDFMT_USHORT: RLOOP( unsigned short, float ); break;
|
case IM_BANDFMT_USHORT: RLOOP( unsigned short, float ); break;
|
||||||
case IM_BANDFMT_INT: RLOOP( signed int, float ); break;
|
case IM_BANDFMT_INT: RLOOP( signed int, float ); break;
|
||||||
case IM_BANDFMT_UINT: RLOOP( unsigned int, float ); break;
|
case IM_BANDFMT_UINT: RLOOP( unsigned int, float ); break;
|
||||||
|
case IM_BANDFMT_FLOAT: RLOOP( float, float ); break;
|
||||||
case IM_BANDFMT_FLOAT:
|
case IM_BANDFMT_DOUBLE: RLOOP( double, double ); break;
|
||||||
#ifdef HAVE_LIBOIL
|
case IM_BANDFMT_COMPLEX:CLOOP( float ); break;
|
||||||
oil_divide_f32( (float *) out,
|
case IM_BANDFMT_DPCOMPLEX:CLOOP( double ); break;
|
||||||
(float *) in[0], (float *) in[1], sz );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
RLOOP( float, float );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_DOUBLE: RLOOP( double, double ); break;
|
|
||||||
case IM_BANDFMT_COMPLEX: CLOOP( float ); break;
|
|
||||||
case IM_BANDFMT_DPCOMPLEX: CLOOP( double ); break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( 0 );
|
assert( 0 );
|
||||||
|
@ -33,6 +33,8 @@
|
|||||||
* - add liboil support
|
* - add liboil support
|
||||||
* 9/9/09
|
* 9/9/09
|
||||||
* - gtkdoc comment, minor reformat
|
* - gtkdoc comment, minor reformat
|
||||||
|
* 31/7/10
|
||||||
|
* - remove liboil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -69,15 +71,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#include <vips/vips.h>
|
#include <vips/vips.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -114,31 +111,6 @@ typedef struct {
|
|||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
/* Process granularity.
|
|
||||||
*/
|
|
||||||
#define CHUNKS (1000)
|
|
||||||
|
|
||||||
/* d[] = s[] * b + c, with liboil
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
lintra_f32( float *d, float *s, int n, float b, float c )
|
|
||||||
{
|
|
||||||
float buf[CHUNKS];
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for( i = 0; i < n; i += CHUNKS ) {
|
|
||||||
oil_scalarmultiply_f32_ns( buf, s,
|
|
||||||
&b, IM_MIN( CHUNKS, n - i ) );
|
|
||||||
oil_scalaradd_f32_ns( d, buf,
|
|
||||||
&c, IM_MIN( CHUNKS, n - i ) );
|
|
||||||
|
|
||||||
s += CHUNKS;
|
|
||||||
d += CHUNKS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
/* Lintra a buffer, 1 set of scale/offset.
|
/* Lintra a buffer, 1 set of scale/offset.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
@ -158,20 +130,13 @@ lintra1_gen( PEL *in, PEL *out, int width, IMAGE *im, LintraInfo *inf )
|
|||||||
case IM_BANDFMT_SHORT: LOOP( signed short, float ); break;
|
case IM_BANDFMT_SHORT: LOOP( signed short, float ); break;
|
||||||
case IM_BANDFMT_UINT: LOOP( unsigned int, float ); break;
|
case IM_BANDFMT_UINT: LOOP( unsigned int, float ); break;
|
||||||
case IM_BANDFMT_INT: LOOP( signed int, float ); break;
|
case IM_BANDFMT_INT: LOOP( signed int, float ); break;
|
||||||
case IM_BANDFMT_FLOAT:
|
case IM_BANDFMT_FLOAT: LOOP( float, float ); break;
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
lintra_f32( (float *) out, (float *) in, sz, a, b );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
LOOP( float, float );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_DOUBLE: LOOP( double, double ); break;
|
case IM_BANDFMT_DOUBLE: LOOP( double, double ); break;
|
||||||
case IM_BANDFMT_COMPLEX: LOOPCMPLX( float, float ); break;
|
case IM_BANDFMT_COMPLEX: LOOPCMPLX( float, float ); break;
|
||||||
case IM_BANDFMT_DPCOMPLEX: LOOPCMPLX( double, double ); break;
|
case IM_BANDFMT_DPCOMPLEX: LOOPCMPLX( double, double ); break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( 0 );
|
g_assert( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
@ -180,28 +145,28 @@ lintra1_gen( PEL *in, PEL *out, int width, IMAGE *im, LintraInfo *inf )
|
|||||||
/* Define what we do for each band element type. Non-complex input, any
|
/* Define what we do for each band element type. Non-complex input, any
|
||||||
* output.
|
* output.
|
||||||
*/
|
*/
|
||||||
#define LOOPN( IN, OUT ) {\
|
#define LOOPN( IN, OUT ) { \
|
||||||
IN *p = (IN *) in;\
|
IN *p = (IN *) in; \
|
||||||
OUT *q = (OUT *) out;\
|
OUT *q = (OUT *) out; \
|
||||||
\
|
\
|
||||||
for( i = 0, x = 0; x < width; x++ )\
|
for( i = 0, x = 0; x < width; x++ ) \
|
||||||
for( k = 0; k < nb; k++, i++ )\
|
for( k = 0; k < nb; k++, i++ ) \
|
||||||
q[i] = a[k] * (OUT) p[i] + b[k];\
|
q[i] = a[k] * (OUT) p[i] + b[k]; \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Complex input, complex output.
|
/* Complex input, complex output.
|
||||||
*/
|
*/
|
||||||
#define LOOPCMPLXN( IN, OUT ) {\
|
#define LOOPCMPLXN( IN, OUT ) { \
|
||||||
IN *p = (IN *) in;\
|
IN *p = (IN *) in; \
|
||||||
OUT *q = (OUT *) out;\
|
OUT *q = (OUT *) out; \
|
||||||
\
|
\
|
||||||
for( x = 0; x < width; x++ ) \
|
for( x = 0; x < width; x++ ) \
|
||||||
for( k = 0; k < nb; k++ ) {\
|
for( k = 0; k < nb; k++ ) { \
|
||||||
q[0] = a[k] * p[0] + b[k];\
|
q[0] = a[k] * p[0] + b[k]; \
|
||||||
q[1] = a[k] * p[1];\
|
q[1] = a[k] * p[1]; \
|
||||||
q += 2;\
|
q += 2; \
|
||||||
p += 2;\
|
p += 2; \
|
||||||
}\
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lintra a buffer, n set of scale/offset.
|
/* Lintra a buffer, n set of scale/offset.
|
||||||
@ -229,7 +194,7 @@ lintran_gen( PEL *in, PEL *out, int width, IMAGE *im, LintraInfo *inf )
|
|||||||
case IM_BANDFMT_DPCOMPLEX: LOOPCMPLXN( double, double ); break;
|
case IM_BANDFMT_DPCOMPLEX: LOOPCMPLXN( double, double ); break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( 0 );
|
g_assert( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
@ -290,7 +255,7 @@ lintranv_gen( PEL *in, PEL *out, int width, IMAGE *im, LintraInfo *inf )
|
|||||||
case IM_BANDFMT_DPCOMPLEX: LOOPCMPLXNV( double, double ); break;
|
case IM_BANDFMT_DPCOMPLEX: LOOPCMPLXNV( double, double ); break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( 0 );
|
g_assert( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
|
@ -23,6 +23,8 @@
|
|||||||
* 18/8/08
|
* 18/8/08
|
||||||
* - revise upcasting system
|
* - revise upcasting system
|
||||||
* - add gtkdoc comments
|
* - add gtkdoc comments
|
||||||
|
* 31/7/10
|
||||||
|
* - remove liboil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -59,15 +61,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#include <vips/vips.h>
|
#include <vips/vips.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -123,22 +120,13 @@ multiply_buffer( PEL **in, PEL *out, int width, IMAGE *im )
|
|||||||
case IM_BANDFMT_USHORT: RLOOP( unsigned short, unsigned int ); break;
|
case IM_BANDFMT_USHORT: RLOOP( unsigned short, unsigned int ); break;
|
||||||
case IM_BANDFMT_INT: RLOOP( signed int, signed int ); break;
|
case IM_BANDFMT_INT: RLOOP( signed int, signed int ); break;
|
||||||
case IM_BANDFMT_UINT: RLOOP( unsigned int, unsigned int ); break;
|
case IM_BANDFMT_UINT: RLOOP( unsigned int, unsigned int ); break;
|
||||||
|
case IM_BANDFMT_FLOAT: RLOOP( float, float ); break;
|
||||||
case IM_BANDFMT_FLOAT:
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
oil_multiply_f32( (float *) out,
|
|
||||||
(float *) in[0], (float *) in[1], sz );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
RLOOP( float, float );
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IM_BANDFMT_COMPLEX: CLOOP( float ); break;
|
case IM_BANDFMT_COMPLEX: CLOOP( float ); break;
|
||||||
case IM_BANDFMT_DOUBLE: RLOOP( double, double ); break;
|
case IM_BANDFMT_DOUBLE: RLOOP( double, double ); break;
|
||||||
case IM_BANDFMT_DPCOMPLEX: CLOOP( double ); break;
|
case IM_BANDFMT_DPCOMPLEX: CLOOP( double ); break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( 0 );
|
g_assert( 0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
* - revise upcasting system
|
* - revise upcasting system
|
||||||
* - add gtkdoc comments
|
* - add gtkdoc comments
|
||||||
* - remove separate complex case, just double size
|
* - remove separate complex case, just double size
|
||||||
|
* 31/7/10
|
||||||
|
* - remove liboil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -72,15 +74,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#include <vips/vips.h>
|
#include <vips/vips.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -117,12 +114,7 @@ subtract_buffer( PEL **in, PEL *out, int width, IMAGE *im )
|
|||||||
|
|
||||||
case IM_BANDFMT_FLOAT:
|
case IM_BANDFMT_FLOAT:
|
||||||
case IM_BANDFMT_COMPLEX:
|
case IM_BANDFMT_COMPLEX:
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
oil_subtract_f32( (float *) out,
|
|
||||||
(float *) in[0], (float *) in[1], sz );
|
|
||||||
#else /*!HAVE_LIBOIL*/
|
|
||||||
LOOP( float, float );
|
LOOP( float, float );
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IM_BANDFMT_DOUBLE:
|
case IM_BANDFMT_DOUBLE:
|
||||||
@ -131,7 +123,7 @@ subtract_buffer( PEL **in, PEL *out, int width, IMAGE *im )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( 0 );
|
g_assert( 0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ im_Lab2LabQ( IMAGE *in, IMAGE *out )
|
|||||||
if( im_cp_desc( out, t[0] ) )
|
if( im_cp_desc( out, t[0] ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
out->Bands = 4;
|
out->Bands = 4;
|
||||||
out->Type = IM_TYPE_LAB;
|
out->Type = IM_TYPE_LABQ;
|
||||||
out->BandFmt = IM_BANDFMT_UCHAR;
|
out->BandFmt = IM_BANDFMT_UCHAR;
|
||||||
out->Coding = IM_CODING_LABQ;
|
out->Coding = IM_CODING_LABQ;
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ im_LabS2LabQ( IMAGE *in, IMAGE *out )
|
|||||||
if( im_cp_desc( out, in ) )
|
if( im_cp_desc( out, in ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
out->Bands = 4;
|
out->Bands = 4;
|
||||||
out->Type = IM_TYPE_LAB;
|
out->Type = IM_TYPE_LABQ;
|
||||||
out->BandFmt = IM_BANDFMT_UCHAR;
|
out->BandFmt = IM_BANDFMT_UCHAR;
|
||||||
out->Coding = IM_CODING_LABQ;
|
out->Coding = IM_CODING_LABQ;
|
||||||
|
|
||||||
|
@ -93,6 +93,6 @@ im_UCS2LCh( IMAGE *in, IMAGE *out )
|
|||||||
{
|
{
|
||||||
im_col_make_tables_UCS();
|
im_col_make_tables_UCS();
|
||||||
|
|
||||||
return( im__colour_unary( "im_UCS2LCh", in, out, IM_TYPE_UCS,
|
return( im__colour_unary( "im_UCS2LCh", in, out, IM_TYPE_LCH,
|
||||||
(im_wrapone_fn) imb_UCS2LCh, NULL, NULL ) );
|
(im_wrapone_fn) imb_UCS2LCh, NULL, NULL ) );
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,6 @@ float im_col_dECMC(
|
|||||||
float im_col_dE00(
|
float im_col_dE00(
|
||||||
float L1, float a1, float b1, float L2, float a2, float b2 );
|
float L1, float a1, float b1, float L2, float a2, float b2 );
|
||||||
|
|
||||||
int im_Lab2LCh( IMAGE *in, IMAGE *out );
|
|
||||||
int im_LCh2Lab( IMAGE *in, IMAGE *out );
|
int im_LCh2Lab( IMAGE *in, IMAGE *out );
|
||||||
int im_LabQ2XYZ( IMAGE *in, IMAGE *out );
|
int im_LabQ2XYZ( IMAGE *in, IMAGE *out );
|
||||||
int im_rad2float( IMAGE *in, IMAGE *out );
|
int im_rad2float( IMAGE *in, IMAGE *out );
|
||||||
@ -147,8 +146,6 @@ int im_dECMC_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
|||||||
int im_dE00_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
int im_dE00_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
||||||
int im_dE_fromXYZ( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
int im_dE_fromXYZ( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
||||||
int im_dE_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
int im_dE_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
||||||
int im_dE_fromXYZ( IMAGE *, IMAGE *, IMAGE * );
|
|
||||||
int im_dE_fromLab( IMAGE *, IMAGE *, IMAGE * );
|
|
||||||
|
|
||||||
int im_lab_morph( IMAGE *in, IMAGE *out,
|
int im_lab_morph( IMAGE *in, IMAGE *out,
|
||||||
DOUBLEMASK *mask,
|
DOUBLEMASK *mask,
|
||||||
@ -157,11 +154,6 @@ int im_lab_morph( IMAGE *in, IMAGE *out,
|
|||||||
|
|
||||||
void im_col_make_tables_UCS( void );
|
void im_col_make_tables_UCS( void );
|
||||||
|
|
||||||
int im_lab_morph( IMAGE *in, IMAGE *out,
|
|
||||||
DOUBLEMASK *mask,
|
|
||||||
double L_offset, double L_scale,
|
|
||||||
double a_scale, double b_scale );
|
|
||||||
|
|
||||||
/* Render intents for icc wrappers.
|
/* Render intents for icc wrappers.
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* convolution.h
|
/* morphology.h
|
||||||
*
|
*
|
||||||
* 20/9/09
|
* 20/9/09
|
||||||
* - from proto.h
|
* - from proto.h
|
||||||
|
@ -64,10 +64,6 @@
|
|||||||
#include <vips/thread.h>
|
#include <vips/thread.h>
|
||||||
#include <vips/internal.h>
|
#include <vips/internal.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
#include <liboil/liboil.h>
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif /*WITH_DMALLOC*/
|
#endif /*WITH_DMALLOC*/
|
||||||
@ -227,24 +223,6 @@ im_init_world( const char *argv0 )
|
|||||||
*/
|
*/
|
||||||
im__buffer_init();
|
im__buffer_init();
|
||||||
|
|
||||||
#ifdef HAVE_LIBOIL
|
|
||||||
{
|
|
||||||
#ifdef DEBUG
|
|
||||||
GTimer *timer = g_timer_new();
|
|
||||||
#endif /*DEBUG*/
|
|
||||||
|
|
||||||
oil_init();
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
/* 0.3 is only about 0.1s on my laptop, but this may take longer in
|
|
||||||
* future.
|
|
||||||
*/
|
|
||||||
printf( "oil_init: %gs\n", g_timer_elapsed( timer, NULL ) );
|
|
||||||
g_timer_destroy( timer );
|
|
||||||
#endif /*DEBUG*/
|
|
||||||
}
|
|
||||||
#endif /*HAVE_LIBOIL*/
|
|
||||||
|
|
||||||
done = TRUE;
|
done = TRUE;
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
|
Loading…
Reference in New Issue
Block a user