Commit Graph

2788 Commits

Author SHA1 Message Date
John Cupitt c36d7f1d14 tweak draw docs again
see https://github.com/jcupitt/libvips/issues/411
2016-04-06 15:11:44 +01:00
John Cupitt 9578d7f637 Merge branch 'master' of github.com:jcupitt/libvips 2016-04-06 10:28:10 +01:00
John Cupitt bf1c8707c7 better draw docs
add a caching discussion to the start of draw

see https://github.com/jcupitt/libvips/issues/411
2016-04-06 10:26:53 +01:00
Charmander e4f0fbc759 Remove = in #define 2016-04-05 14:00:00 +00:00
John Cupitt 8aa4566c87 update notes 2016-04-02 20:24:54 +01:00
John Cupitt bc320f1090 much better int mask creation
removes some banding from the orc path for reducev
2016-04-02 18:46:10 +01:00
John Cupitt f3835ef0bf webpsave_buffer no longer ignores @lossless
the @lossless arg to webpsave buffer was never wired up to anything,
thanks aaron42net.

see

https://github.com/jcupitt/libvips/issues/410
2016-03-31 21:48:40 +01:00
John Cupitt 65be59e3dc grammar in a comment 2016-03-31 11:08:00 +01:00
John Cupitt 90536d2268 try openslide before jpeg
MRXS images are also JPEG images, so we need to have openslide before
libjpeg in the file test order.

See https://github.com/jcupitt/libvips/issues/406
2016-03-29 17:26:22 +01:00
John Cupitt a4b5608e3b tiny win32 fixes 2016-03-29 10:13:09 +01:00
John Cupitt 618af96723 vips_system() out-format can take options
you can now put options like [scale=2] at the end of out_format ...
these are stripped before running the command, but use to load the
output image back into libvips again
2016-03-28 10:50:39 +01:00
John Cupitt 1a5f4a56fc fix realpath on win32
oops, extra decl was shadowing result
2016-03-27 13:57:59 +01:00
John Cupitt d5b6a2ec3e fix win32 build issues 2016-03-26 11:09:46 +00:00
John Cupitt 3115310bb7 fix no-orc builds 2016-03-26 10:45:31 +00:00
John Cupitt 95a74cbf28 tiny help polishing 2016-03-25 16:35:28 +00:00
John Cupitt ddd7ab7459 doc fixups 2016-03-25 10:56:59 +00:00
John Cupitt 2ab14a3590 better rounding in vector reducev
add before downshift to round to nearest on 16->8 fixed-point conversion
2016-03-25 06:07:58 +00:00
John Cupitt 8a74609172 Merge branch '8.2' 2016-03-24 17:52:18 +00:00
John Cupitt 0f298b0e4d docs note 2016-03-24 17:47:24 +00:00
John Cupitt 213f9e23b4 count colour pixels
more overcomputation testing
2016-03-24 17:41:05 +00:00
John Cupitt ec5cdf4fff Merge branch '8.2' 2016-03-24 16:09:44 +00:00
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 36e0b60ffa put the resize cache back again
stops overcomputation on vips_shrink()
2016-03-22 14:35:44 +00:00
John Cupitt 3c98ba78a0 small experiment 2016-03-22 14:19:32 +00:00
John Cupitt e8b5cb6c23 add VIPS_COUNT_PIXELS, overcomputation tracking
added VIPS_COUNT_PIXELS(), use like this:

	static int vips_shrinkh_gen( VipsRegion *or, ... )
	{
        	VIPS_COUNT_PIXELS( or, "vips_shrinkh_gen" );
	}

and on image close, if more than 100% of the pixels have been
calculated, you get a warning

only if you enable debugging, since this hurts perf slightly
2016-03-22 12:26:45 +00:00
John Cupitt 4f8aca3a93 sync 2016-03-21 16:40:55 +00:00
John Cupitt c2035eb0f0 similarity uses reduce more often 2016-03-21 14:18:01 +00:00
John Cupitt 063706f300 notes 2016-03-21 11:11:27 +00:00
John Cupitt ba3ae9e671 finished!
fix up preciscion and signedness issues, simpler inner loop
2016-03-21 11:08:38 +00:00
John Cupitt 57cba39607 switch to 2.6 bits
almost working
2016-03-20 22:29:25 +00:00
John Cupitt 74984f1049 off by one error
didn't always write the output
2016-03-19 10:37:02 +00:00
John Cupitt 05156edd15 add orc path for reducev
works, but still not quite right, see some banding
2016-03-18 17:41:51 +00:00
John Cupitt c20eb9dca0 remove old unrolled case for reduce
not used any more
2016-03-15 17:34:31 +00:00
John Cupitt 46a18118c6 works! 2016-03-15 16:46:18 +00:00
John Cupitt ff88087a28 try making the reduce mask larger with residual 2016-03-15 14:59:59 +00:00
John Cupitt 45c3fea6ac more resize tuning 2016-03-15 09:49:30 +00:00
John Cupitt ac4e5ce059 return of shrink-less-affine-more
though a bit less extreme
2016-03-14 14:58:02 +00:00
John Cupitt 82cecf3d9f bilinear interp. supports complex types
in line with cubic etc.
2016-03-14 10:06:45 +00:00
John Cupitt fba2ac2f85 fix sizing issues with new reduce code
a couple of bugs and some changed conventions
2016-03-13 17:44:24 +00:00
John Cupitt f12fef4aa9 fix compile 2016-03-13 11:35:35 +00:00
John Cupitt dc7902b12f Merge branch 'master' into add-lanczos3 2016-03-13 11:23:03 +00:00
John Cupitt 6368ab0649 add switches to disable rad, analyze and ppm
vips has built-in support for rad, analyze and ppm ... add configure
switches to disable these readers

useful to reduce the attack surface in some applications
2016-03-12 16:48:27 +00:00
John Cupitt 42224b6b0e Merge branch '8.2' 2016-03-12 15:12:56 +00:00
John Cupitt abe4e70d02 make radload slightly more robust
stops some valgrind warnings
2016-03-12 15:10:52 +00:00
John Cupitt 70db9aa77b better rounding in resize 2016-03-12 13:14:34 +00:00
John Cupitt 493482c8a7 hey ho, line cache goes back too 2016-03-11 14:56:06 +00:00
John Cupitt 08e8c27e38 moore vips_resize() tuning
put back the mild post-shrink sharpen, a little more anti-alias

see https://github.com/jcupitt/libvips/issues/404#issuecomment-195297607
2016-03-11 10:17:41 +00:00
John Cupitt 5d31d8e824 turn up anti-alias for small shrinks
a little more anti-alias for small reductions

see https://github.com/jcupitt/libvips/issues/404#issuecomment-195276154
2016-03-11 09:25:33 +00:00
John Cupitt 2ca7b29214 better gauss mat generation 2016-03-10 22:01:55 +00:00
John Cupitt 4974a1ed9c better rounding for vips_resize()
we were getting off by one size errors
2016-03-10 19:53:05 +00:00
John Cupitt d351e07a6b finish up 2016-03-10 17:33:34 +00:00
John Cupitt e9bf936377 finish vl3
but it's still not producing identical results to reducev, seems to be
offset by one?
2016-03-10 12:16:21 +00:00
John Cupitt 4d10bd12f9 still trying to get reducevl3 to vectorise 2016-03-10 10:24:44 +00:00
John Cupitt f58d941d99 Merge branch 'master' into add-lanczos3 2016-03-10 08:54:10 +00:00
John Cupitt 61d2aa6586 formatting 2016-03-10 08:53:54 +00:00
John Cupitt 013102de01 finish hl3 version
vl3 nest
2016-03-10 08:43:50 +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 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 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 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
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 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 a037346093 better cache sizing for pdfload and svgload 2016-02-10 09:20:28 +00:00
John Cupitt 77b8eaf653 fix svgload priority 2016-02-09 17:12:44 +00:00