Commit Graph

3985 Commits

Author SHA1 Message Date
John Cupitt f9d7a8df48 Merge pull request #402 from lovell/defer-LabQ2sRGB-table-building
Performance: only build LAB to sRGB look-up tables if needed
2016-03-10 08:41:08 +00:00
John Cupitt a26291a426 reducehl3 is done
sort of anyway, tinkering with optimization
2016-03-09 22:47:02 +00:00
Lovell Fuller a40397c438 Build LAB to sRGB tables only when first needed
Reduces libvips start-up time by ~20ms
2016-03-09 19:20:57 +00:00
John Cupitt dcd921d7bf silly travis 2016-03-09 13:06:03 +00:00
John Cupitt e9728e389b first commit 2016-03-09 12:56:30 +00:00
John Cupitt efa12029a6 add notes on new image format deps 2016-03-08 09:00:57 +00:00
John Cupitt 9201248623 Merge branch '8.2' 2016-03-06 18:05:12 +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 2ea5c5f7e5 make python bandrank() work like bandjoin()
we had a custom wrapper for bandjoin(), but bandrank(), a function with
an almost identical interface, did not ... this was confusing

bandrank() now has a custom wrapper too ... this breaks API
unfortunately, but hopefully very few people were using this thing and
it's better to make this change as soon as possible
2016-03-01 12:12:51 +00:00
John Cupitt 25c3c49d1c better handling of cast+shift for non-int formats
before, im.cast(uchar, shift = true) where im was float and tagged as
rgb16 would not shift the image, since it's unclear how much to shift a float
type by

now we do two casts: first, we guess the numeric range from the
interpretation, so rgb16 would be ushort, so we cast float->ushort;
second, we cast to the target type and do the shift on the way

see https://github.com/jcupitt/libvips/issues/397

thanks apacheark
2016-03-01 11:31:54 +00:00
John Cupitt ad7ddc4f24 more vips_resize() tuning
now we have better tuning for the anti-alias blur, we can increase the
amount we shrink by and reduce the amount we affine by

this gives a noticable speedup
2016-03-01 11:19:30 +00:00
John Cupitt 19a838470b add webp shrink-on-load
and vipsthumbnail knows about it too

see https://github.com/jcupitt/libvips/issues/398
2016-02-28 14:36:21 +00:00
John Cupitt e582f13d13 tiny polish to hist_find
slightly faster again
2016-02-28 12:08:06 +00:00
John Cupitt e46e2b7b28 Merge pull request #392 from lovell/hist-find-perf
vips_hist_find: ~30% performance improvement for 1-4 band uchar
2016-02-28 11:29:14 +00:00
John Cupitt b197773095 oop, overflow in sharpen
plus another tweak of the defaults
2016-02-28 11:24:35 +00:00
John Cupitt ee1874c5ca much better handling of arrayimage cli args
we were not setting the access hint on arrayimage args, so

arrayjoin "$(echo *.jpg)" x.tif[bigtiff] --across 10

would open all the jpg images to memory, usually, in random mode

now arrayimage args see the operation's access hint (seq in this case),
for much better behaviour

also, we allow any whitespace as an arg separator in arrayimage from
string
2016-02-27 20:37:20 +00:00
John Cupitt 35650c2244 reduce the number of copy() ops
reduce the number of copy() ops issued during colour conversion
2016-02-26 14:05:35 +00:00
John Cupitt cc9517df20 make sharpen defaults better for screen work
the defaults were oriented towards print output, make them more suitable
for screen work
2016-02-26 14:04:54 +00:00
John Cupitt 609e639528 Merge branch '8.2' 2016-02-26 12:44:54 +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 c95bbe43b5 oops in sharpen 2016-02-26 12:26:12 +00:00
John Cupitt d33306836f better rgb16 -> scrgb handling
helps new sharpen tests
2016-02-26 09:08:42 +00:00
John Cupitt 04cc13e321 notes 2016-02-25 11:47:53 +00:00
John Cupitt c1f1a7c1b3 improve sharpen for screen work
it was a bit granular (since it was designed for offset work), make sharpen
easier to adjust for smaller effects

- new 'sigma' parameter
- greater parameter range
- more self-tests
2016-02-25 11:16:24 +00:00
John Cupitt 8911820d9e better handling of deprecated args in py
we now allow optional deprecated args to be set
2016-02-25 11:15:47 +00:00
Lovell Fuller c49e882239 Improve performance of histogram generation for 1-4 band uchar.
The inner loop cannot be auto-vectorized by the compiler so
manually unroll for common cases to achieve a 2x-3x speed-up.
2016-02-23 19:31:19 +00:00
John Cupitt 840c3f2e63 oops typo
thanks Lovell
2016-02-22 14:08:36 +00:00
John Cupitt 01238a0fd5 more progressive jpg changes
- Remove the nocache stuff for prog jpg images. There was no saving in
  practice, since operations downstream could be cached.

  nocache is for objects that can change, not for memory saving

- Call _destroy on the decompress object much earlier, it frees a huge
  amount of memoey for prog jpg images.
2016-02-21 10:57:36 +00:00
John Cupitt 0a4991cbc0 oops, put the flags test on a subclass 2016-02-18 19:12:00 +00:00
John Cupitt 6f94cb5ed4 don't cache progressive jpg images
progressive jpg images need loads of memory, we shouldn't cache them by
default ... our called can hold a ref if they want to keep the image
around

see https://github.com/jcupitt/libvips/issues/387
2016-02-18 19:00:19 +00:00
John Cupitt 307895eb41 fix page select in magickload
need to set ->scenes as well
2016-02-18 14:55:53 +00:00
John Cupitt 0b263f7255 phew, working
found the right set of info fields by trial and error
2016-02-18 12:46:44 +00:00
John Cupitt de59ff0e5a Merge branch 'master' into add-magickload-page 2016-02-18 11:28:09 +00:00
John Cupitt 04dad55e49 faster and safer isprefix 2016-02-16 09:56:14 +00:00
John Cupitt ef6d8f5979 make test for matlab files more specific
Previously vips just called Mat_Open() to test if a file was a Matlab
save file, but this is rather unreliable. For example, some JPEG files
can crash libmatio, and it can incorrectly think that at least some JP2
files are Matlab save files.

Instead, look for "MATLAB 5.0" at the start of the file. This is really too
specific, the first 116 bytes of a Matlab save file are freeform text,
but in practice all Matlab writers use the first few bytes to record the
file type.

See https://github.com/jcupitt/libvips/issues/385
2016-02-16 09:53:04 +00:00
John Cupitt 8e667fbb3e still not quite there
works, but is no faster, how odd

john@kiwi:~/pics$ time vips magickload nipguide.pdf[40] x.tif
real	0m0.244s
user	0m0.212s
sys	0m0.040s

$ time vips magickload nipguide.pdf x.tif --page 40
real	0m7.035s
user	0m6.900s
sys	0m0.152s

both give same result
2016-02-15 08:53:23 +00:00
John Cupitt f131aaa082 fix up magickload test again 2016-02-13 14:27:41 +00:00
John Cupitt 789e154cd7 phew, done 2016-02-13 14:04:29 +00:00
John Cupitt fdf0c349ae almost there
seeing transparency tags when we shouldn't, strange
2016-02-13 11:51:50 +00:00
John Cupitt c2be771342 fix load from buffer, update APIs 2016-02-12 20:04:46 +00:00
John Cupitt 0dbd64a122 fix gifload memleak 2016-02-12 17:53:15 +00:00
John Cupitt b10f332404 very close now
just a leak to nail down and some small stuff
2016-02-12 17:30:56 +00:00
John Cupitt 9262d672b7 almost done
a valgrind failure still
2016-02-12 10:53:04 +00:00
John Cupitt 1e6af6656f Merge branch 'master' into add-giflib 2016-02-12 07:42:22 +00:00
John Cupitt e69da1952d fix a typo
thank you mayoung

see https://github.com/jcupitt/libvips/issues/382
2016-02-11 18:56:55 +00:00
John Cupitt bd985731eb unpremultiply svgload / pdfload
cairo uses premultipled ARGB, we need to undo this for transparency to
work correctly
2016-02-11 09:06:09 +00:00
John Cupitt d79407f285 almost there
not unpacking correctly though
2016-02-11 08:35:29 +00:00
John Cupitt 9f2da7d0ee small fixes
use 255 for PDF background
2016-02-10 15:19:00 +00:00
John Cupitt 0081f5e4ef another test file
cmyk pdf test file, though it's not actually used yet
2016-02-10 14:40:52 +00:00
John Cupitt a037346093 better cache sizing for pdfload and svgload 2016-02-10 09:20:28 +00:00