Commit Graph

22 Commits

Author SHA1 Message Date
Geoff Adams c1b8c4986e Use a lookup table to speed up the Lanczos kernel
Profiling the resize operation using Lanczos kernels showed that most of
the time was spent in the Sin function, which is called twice per
evaluation of the Lanczos kernel. Generating a lookup table and doing a
linear interpolation between table entries speeds up the resize by a
factor of 4.
2013-07-04 02:28:43 -07:00
jst c37f8f8470 gofmt 2013-04-09 21:59:02 +02:00
jst 62777ac833 Precalculate bicubic factors, save some cycles. 2013-04-09 21:31:31 +02:00
jst 6448fff2ee Generalize spline based filters
This also fixes a quality issue with Mitchell-Netravali: A factor was
missing in the calculation.
2013-04-04 22:32:33 +02:00
jst 82ab8b977c Make kernel the only dependency of convolution1d 2012-12-13 22:13:37 +01:00
jst e512502b3c Use range for more idiomatic Go 2012-12-13 21:55:44 +01:00
jst bf09bbe0a3 boolToUint: true -> 1 2012-12-11 20:35:47 +01:00
jst 0c69e0e0b7 Change order of fields in filterModel 2012-12-11 20:24:30 +01:00
jst bf006ca38d Description added
Describe filterModel interface,
Extract bool-to-int method
2012-12-11 20:18:23 +01:00
jst dd1c157427 Include kernel boundary check
Filter kernels should yield Zero if they are evaluted outside their
intended size. Though filterModel.Interpolate doesn't do this by design,
it's better to include it anyways.
2012-12-10 18:56:53 +01:00
jst 3e06045c3f Speed up computation: Try to avoid Image.At() as much as possible -> specialized color access for some image types 2012-09-21 20:02:25 +02:00
jst e548f52385 Blur input image during downscaling by scaling the filter kernel to prevent moires in the output image 2012-09-19 21:03:56 +02:00
jst d0b2b9bc39 Added MitchellNetravali, changed Lanczos a bit 2012-09-19 19:32:00 +02:00
jst c980eecff5 Small simplification 2012-09-16 09:20:11 +02:00
jst e96bbe5547 Unify filters and their dependencies 2012-09-15 20:24:14 +02:00
jst 3fc31c95cc Kernel simplified 2012-09-15 19:30:32 +02:00
jst eaf9383af0 filters.go simplified 2012-09-14 23:12:05 +02:00
jst 524fd851ea Casting float to int has the same properties as math.Floor 2012-09-04 22:51:19 +02:00
jst d93161631c Use Kernel normalization for more accurate Lanczos resampling. Lanczos2 filter added 2012-09-04 18:49:04 +02:00
jst 339b8fd43a Speed up calculation by avoiding dynamic casting 2012-09-01 00:21:10 +02:00
jst 14d51db8b4 Changed function signature to include error handling. Filters simplified. 2012-08-08 21:32:51 +02:00
nfnt 428642c9f1 initial commit 2012-08-02 21:59:40 +02:00