[Pixman] [PATCH pixman 14/15] pixman-filter: Gaussian fixes

2014-12-23 Thread Bill Spitzak
The SIGMA term drops out on simplification. Expanded the size slightly (from ~4.25 to 5) to make the cutoff less noticable. The filter is truncated at a value of .001 instead of .006, this new value is less than 1/2 of 1/255, rather than greater than it. --- pixman/pixman-filter.c |7 ++-

[Pixman] [PATCH pixman 07/15] pixman-filter: Speed up the BOX+BOX filter

2014-12-23 Thread Bill Spitzak
This is easy as the caller already intersected the two boxes, so the width is the integral. --- pixman/pixman-filter.c |5 + 1 file changed, 5 insertions(+) diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c index 4aafa51..782f73d 100644 --- a/pixman/pixman-filter.c +++

[Pixman] [PATCH pixman 12/15] pixman-filter: Turn off subsampling when not necessary

2014-12-23 Thread Bill Spitzak
If sample is IMPULSE and reconstruct is BOX or IMPULSE the sub-pixel position of the sample is not relevant, so only one subsample is needed. --- pixman/pixman-filter.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pixman/pixman-filter.c

[Pixman] [PATCH pixman 10/15] pixman-filter: don't range-check impulse filter

2014-12-23 Thread Bill Spitzak
The other filters don't range-check, so there is no need for this one to either. It is only called with x==0. --- pixman/pixman-filter.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c index fbc657d..00126cd 100644 ---

[Pixman] [PATCH pixman 06/15] pixman-filter: reduced number of samples in Simpson's integration

2014-12-23 Thread Bill Spitzak
With the cubic fix this is plenty accurate enough, far in excess of the pixman fixed-point error limit. Likely even 16 samples is too many. --- pixman/pixman-filter.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c index

[Pixman] [PATCH pixman 02/15] demos/scale: Added pulldown to choose PIXMAN_FILTER_* value

2014-12-23 Thread Bill Spitzak
This allows testing of GOOD/BEST and to do comparisons between the basic filters and PIXMAN_FILTER_SEPARABLE_CONVOLUTION settings. --- demos/scale.c | 14 +- demos/scale.ui | 40 ++-- 2 files changed, 43 insertions(+), 11 deletions(-) diff

[Pixman] [PATCH pixman] V4 Implement PIXMAN_FILTER_GOOD/BEST

2014-12-23 Thread Bill Spitzak
This supersedes my previous set of patches. Changes are to fix some rebase errors so that it compiles after each patch applies, and some further rebasing to rearrange the patches and split them into a more logical order. ___ Pixman mailing list

[Pixman] [PATCH pixman 04/15] pixman-filter: reduce amount of malloc/free/memcpy to generate filter

2014-12-23 Thread Bill Spitzak
Rearranged so that the entire block of memory for the filter pair is allocated first, and then filled in. Previous version allocated and freed two temporary buffers for each filter and did an extra memcpy. --- pixman/pixman-filter.c | 59 1 file

[Pixman] [PATCH pixman 08/15] pixman-filter: Don't recurse unnecessarily.

2014-12-23 Thread Bill Spitzak
Only LINEAR is not differentiable at zero, so only do the recursive split of the integral for it. --- pixman/pixman-filter.c | 34 +- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c index

[Pixman] [PATCH pixman 13/15] pixman-filter: refactor cubic polynominal and don't range check

2014-12-23 Thread Bill Spitzak
The other filters do not check for x being in range, so there is no reason for cubic to do so. --- pixman/pixman-filter.c | 16 +++- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c index 7e10108..bf9dce3 100644 ---

[Pixman] [PATCH pixman 01/15] demos/scale: Compute filter size using boundary of xformed ellipse, not rectangle

2014-12-23 Thread Bill Spitzak
This is much more accurate and less blurry. In particular the filtering does not change as the image is rotated. --- demos/scale.c | 43 ++- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/demos/scale.c b/demos/scale.c index