Commit Graph

3985 Commits

Author SHA1 Message Date
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
John Cupitt efed79f298 Merge branch 'new-bilinear' 2015-12-17 13:43:51 +00:00
John Cupitt fb084ef6a6 working 2015-12-17 13:43:34 +00:00