Commit Graph

4037 Commits

Author SHA1 Message Date
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
John Cupitt
69d10ea4b2 add C decls for bandjoin_const
oops, forgot them
2015-12-30 16:30:56 +00:00
John Cupitt
8ce10058eb oop, missed a vips-8.1 2015-12-30 11:49:32 +00:00
John Cupitt
813e91c682 rename vips wrapper script 2015-12-30 11:31:59 +00:00
John Cupitt
dbf9a5ed1c fix dzsave tile-width default
was wrong for google / zoomify layouts

revise tests too
2015-12-30 11:23:33 +00:00
John Cupitt
aa635f7816 Merge pull request #360 from ericcorriel/master
fixing typo, should be Ifdef
2015-12-28 11:03:35 +00:00
Eric Corriel
630f8bb02b fixing typo, should be IFDEF 2015-12-27 20:39:55 -05:00
John Cupitt
8302e2ffcd notes on dzsave change
see https://github.com/jcupitt/libvips/pull/359
2015-12-23 09:16:58 +00:00
John Cupitt
2efb5c1718 Merge pull request #359 from gasi/patch-1
Use 254 pixels as default tile size
2015-12-22 21:15:48 +00:00
John Cupitt
58183088ed another try at no-gsf 2015-12-21 15:21:46 +00:00
John Cupitt
bb545542d7 oop, fix build without libgsf 2015-12-21 15:05:46 +00:00
John Cupitt
73436ddfc2 add @properties flag to tiffsave
writes all vips metadata to imagedescription tag
2015-12-21 14:43:59 +00:00
John Cupitt
0deb640bc4 load and save TIFFTAG_IMAGEDESCRIPTION
this often has useful metadata in, for example the OME spec has all the
metadata in there as an XML document

see https://github.com/jcupitt/libvips/issues/358
2015-12-21 13:53:33 +00:00
Daniel Gasienica
09a30b602b Use 254 pixels as default tile size
I remember @benvanik, a friend and colleague, who worked on our DZI renderer (Seadragon) told us that, I believe, it’s better for GPUs to have power of two sized tiles, so 254px + 2 x 1px tile overlap will give you 256 pixel.s

> To keep my tiles nicely sized, I shrink in instead of expand out – that means my tiles are really 254×254 with a 1px border, so the images are 256x256px with 254×254 of useful imagery. If you wanted larger tiles, you’d go 510×510 with 1px border making 512×512 tiles.
> — Source: http://www.noxa.org/blog/2009/11/29/megatextures-in-webgl-2/
2015-12-20 21:43:41 -08:00
John Cupitt
7267ca4a28 lower max threads in make check
seems to annoy travis
2015-12-18 09:11:15 +00:00
John Cupitt
e40a3d166e oops 2015-12-17 13:49:39 +00:00