John Cupitt
41b41effde
Merge branch 'add-reduce'
2016-02-07 17:46:46 +00:00
John Cupitt
8cffd136e9
finish reduce
...
and fix up bicubic a bit, it works better on int32 images now
2016-02-07 17:41:39 +00:00
John Cupitt
39e6963033
start tests
2016-01-29 17:55:54 +00:00
John Cupitt
67f3ecfd8d
wire up to resize / similarity
...
still need tests
2016-01-29 15:23:00 +00:00
John Cupitt
fbe010b80a
in-line reduceh as well
2016-01-29 15:01:54 +00:00
John Cupitt
dd7b30bd00
in-line reducev
...
bit quicker
2016-01-29 13:16:00 +00:00
John Cupitt
3bb24f2567
some tinkering
...
still not very quick
2016-01-28 09:33:32 +00:00
John Cupitt
4b2349323c
all working
...
though not as quick as hoped :(
2016-01-27 21:59:07 +00:00
John Cupitt
991349c9a7
add cubicv, reducev
...
untested
2016-01-27 15:01:54 +00:00
John Cupitt
3e78bdb6a9
reduceh is working!
2016-01-27 14:34:06 +00:00
John Cupitt
e4b31dde38
fix labq sparc read
...
byteswap was swapping coded images, or trying to
2016-01-27 12:44:36 +00:00
John Cupitt
add75f235f
version bump
2016-01-27 12:44:24 +00:00
John Cupitt
8b09c86492
add cubich interp., start reduceh
2016-01-27 11:12:36 +00:00
John Cupitt
65930cf866
version bump
2016-01-26 16:45:56 +00:00
John Cupitt
1f93efd65d
fix more compiler warnings
2016-01-26 16:41:03 +00:00
John Cupitt
db20d70495
fix some more compiler warnings
...
and a bit of formatting
2016-01-26 15:10:46 +00:00
John Cupitt
2698688c94
oops spelling
2016-01-26 13:37:56 +00:00
John Cupitt
4d18300560
add VIPS_FABS/MAX/MIN/CLIP
...
macros which use the gcc __builtin_fabs() etc. functions when they can
2016-01-26 12:26:21 +00:00
John Cupitt
baf5e860e3
Merge pull request #374 from lovell/conv-allow-vectorise
...
Improve convolution performance by 20-25%
2016-01-26 09:18:11 +00:00
Lovell Fuller
0cac224431
Replace use of "Duff's device" with for-loop to allow compiler to optimise.
...
Reduces CPU instruction count of conv_gen function by ~30%.
Improves performance of convolution operation by 20-25%.
2016-01-25 21:17:41 +00:00
John Cupitt
73bcc8b5d3
improve the using-C docs
...
add some stuff on giving options to operations
see https://github.com/jcupitt/libvips/issues/373
2016-01-25 09:35:06 +00:00
John Cupitt
07a1903390
use g_assert_not_reached()
...
we were using g_assert(0) ... g_assert_not_reached() makes the
intention clearer
2016-01-24 13:21:53 +00:00
John Cupitt
31e4168718
clip bicubic output range from int
...
The output range of the bicubic interpolator is outside the input range,
we must clip from a larger type.
See https://github.com/jcupitt/libvips/pull/372
2016-01-23 10:09:11 +00:00
John Cupitt
0dd7f14ada
put interpolate param back
...
Although no current interpolators use the interpolate param, having it
there makes it possible for other (perhaps user-defined) interpolators
to be parameterised.
For example, you could write:
vips affine in.v out.v "2 0 0 2" --interpolate sharp[2]
and `sharp` could do a bicubic and sharpen by 2 in a single operation.
See https://github.com/jcupitt/libvips/pull/372
2016-01-23 09:57:27 +00:00
John Cupitt
a7d889df06
use builtin floor / ceil
...
get rid of FAST_PSEUDO_FLOOR, add VIPS_FLOOR and VIPS_CEIL, use them
everywhere
see https://github.com/jcupitt/libvips/pull/372
2016-01-23 09:50:57 +00:00
John Cupitt
e025a04d68
Merge pull request #372 from lovell/resample-builtin-floor
...
Small perf improvements to vips_affine + bicubic
2016-01-23 09:28:34 +00:00
Lovell Fuller
25eeb82de6
Consolidate FAST_PSEUDO_FLOOR macros, prefer __builtin_floor if available
...
Use of vips_interpolate_get_method avoids need to pass interpolate instance
Remove an unnecessary temp variable to help prevent register starvation
5% less time in vips_interpolate_bicubic_interpolate
10% less time in vips_affine_gen
2016-01-22 22:26:29 +00:00
John Cupitt
f3e3514b03
test embed profile in tiff
...
test embed from file
2016-01-22 22:06:20 +00:00
John Cupitt
66e0676a40
fix compiler warning
2016-01-22 17:44:43 +00:00
John Cupitt
94db738773
fix double free on tiff write
...
if you attached a profile to a tiff from a file during write, you'd get
a double-free
see https://github.com/jcupitt/libvips/issues/371
2016-01-22 17:43:42 +00:00
John Cupitt
923fb43ae9
clear up tiny docs issue
...
not about SEQ behaviour
2016-01-22 15:02:18 +00:00
John Cupitt
c7eb88b87f
fix subsample at the command-line
...
it had the SEQ flag set, causing confusion with vips_sequential() when
it skipped scanlines on startup
see https://github.com/jcupitt/libvips/issues/370
2016-01-22 14:37:42 +00:00
John Cupitt
9b968491d3
unroll shrinkh inner loop
...
use VIPS_UNROLL for the inner loop, another 5% or so
2016-01-22 10:21:38 +00:00
John Cupitt
dce70c82a5
vectorise vips_shrinkh()
...
add special paths for 1, 3 and 4 bands so we can vectorise
see https://github.com/jcupitt/libvips/pull/369
2016-01-22 09:49:20 +00:00
John Cupitt
2e5880b69c
speed up for vips_shrinkh()
...
remove the sum buffer, we can just use a local, about 5% faster
see https://github.com/jcupitt/libvips/pull/369
2016-01-22 09:15:38 +00:00
John Cupitt
d29710db66
Merge pull request #369 from lovell/shrinkh-loop-vector
...
Allow compiler to use vector unit with vips_shrinkh for ~25% boost
2016-01-22 08:50:02 +00:00
Lovell Fuller
572354b793
Allow compiler to vectorise vips_shrinkh
...
Reduce for-loop count in shrinkh macros
Don't access loop variable outside loop
Remove unnecessary use of ceil from integer
2016-01-21 20:18:56 +00:00
John Cupitt
16b76b2cfd
Merge branch 'master' of github.com:jcupitt/libvips
2016-01-21 07:47:14 +00:00
John Cupitt
89d1127de6
Merge pull request #368 from lovell/builtin-isnan-isinf
...
Use gcc/clang isnan and isinf builtin functions, where available
2016-01-21 07:22:35 +00:00
Lovell Fuller
90c1fb9a94
Use gcc/clang isnan and isinf builtin functions where available.
...
These are used heavily in the building of look-up tables at
start-up time and therefore improve vipsthumbnail perf by ~4%.
2016-01-20 19:02:14 +00:00
John Cupitt
d3f87c5f44
notes
2016-01-20 11:58:59 +00:00
John Cupitt
af8b43b16d
fix to make check in non-C locales
...
"make check" uses bc, which needs '.' as a decimal sep.
https://github.com/jcupitt/libvips/issues/367
2016-01-17 09:29:25 +00:00
John Cupitt
4512400a3c
better rounding in new bilinear interp
...
was off by 0.5
2016-01-14 13:13:08 +00:00
John Cupitt
6ca9a907b8
reorder load tests
...
and a slight memory saving on ifthenelse
2016-01-13 20:32:23 +00:00
John Cupitt
52384606dd
bump version for new C++ patch
2016-01-12 17:12:46 +00:00
John Cupitt
eeb0ef7ae4
Merge pull request #363 from lovell/vips-cpp-win
...
Enable compilation of vips8 C++ bindings with MSVC
2016-01-11 18:44:52 +00:00
Lovell Fuller
20ae80397d
Enable compilation of vips8 C++ bindings with MSVC
...
Add VIPS_CPLUSPLUS_API macro to allow DLL creation
2016-01-11 17:56:02 +00:00
John Cupitt
50db131865
VImage::get_typeof() returns GType
...
it was int, causing some compiler warnings on some platforms.
see https://github.com/jcupitt/libvips/issues/362
2016-01-09 20:27:14 +00:00
John Cupitt
bf64fde872
regen C++ interface
2016-01-09 15:08:17 +00:00
John Cupitt
66373e9b41
remove exception specs from vips8 C++ interface
...
We had exception specs on the C++ interface, but C++11 does not support
them and some compilers have never honoured them. Remove all specs.
Thanks Lovell.
See https://github.com/jcupitt/libvips/issues/362
2016-01-09 14:52:05 +00:00