Commit Graph

3852 Commits

Author SHA1 Message Date
John Cupitt
72ea91fecc fix nohalo, vsqbs interpolators
we were getting occasional memory access problems in nohalo and vsqbs
interpolators ... the previous fix was not enough

version bump
2016-03-24 16:06:31 +00:00
John Cupitt
abe4e70d02 make radload slightly more robust
stops some valgrind warnings
2016-03-12 15:10:52 +00:00
John Cupitt
acf5f5169a fix hist_entropy
there was a copy-paste error in the call to vips_log(), thanks Lovell

see https://github.com/lovell/sharp/issues/295
2016-03-06 18:02:59 +00:00
John Cupitt
5a60dd26f9 fix parsing of filenames containing brackets
oops, missed part of a regexp in parse_token, see:

https://github.com/jcupitt/libvips/issues/395

thanks shilpi230
2016-02-26 12:41:48 +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
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
John Cupitt
3be5af9779 silence a clang warning 2016-01-09 14:51:35 +00:00
John Cupitt
9419e07a6b remove a lock from VImage.cc
it wasn't really needed, and windows will barf with pointers across
DLLs
2016-01-08 13:40:58 +00:00
John Cupitt
b85231baba small doc improvements 2016-01-07 11:16:12 +00:00
John Cupitt
98f4a64a86 better Vips.py class names builder 2016-01-05 08:00:40 +00:00
John Cupitt
e27aa4488a clearer changelog entry 2016-01-04 17:24:00 +00:00
John Cupitt
e81900b187 bandjoin is just an instance function
we had both a class member bandjoin, and an instance member

Vips.Image.bandjoin([i1, i2, i3..])
i1.ibandjoin([i2, i3..])

this was confusing and annoying ... get rid of the class one and just
use bandjoin everywhere, so this is now the way to do it:

i1.bandjoin([i2, i3..])
2016-01-04 14:18:10 +00:00
John Cupitt
e6cbdbb516 add a stub for compat
see https://github.com/jcupitt/libvips/issues/361
2016-01-01 10:58:53 +00:00