[Pixman] [PATCH v8 13/14] Added big comment to filter
spitzak at gmail.com
spitzak at gmail.com
Mon Jan 4 21:49:00 PST 2016
From: Bill Spitzak <spitzak at gmail.com>
v8: first version
Signed-off-by: Bill Spitzak <spitzak at gmail.com>
---
pixman/pixman-filter.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
index 3237036..0961cfc 100644
--- a/pixman/pixman-filter.c
+++ b/pixman/pixman-filter.c
@@ -313,7 +313,28 @@ gnuplot_filter(int width, int samples, const pixman_fixed_t* p)
#endif
/* Create the parameter list for a SEPARABLE_CONVOLUTION filter
- * with the given kernels and scale parameters
+ *
+ * The reconstruct filter is scaled by 1, while the sample filter is
+ * scaled by scale, and they are convolved together. Note that scale
+ * is the inverse of how the image is being scaled, if the image is
+ * being made smaller, the filter gets larger.
+ *
+ * Some interesting reconstruct.sample combinations:
+ *
+ * IMPULSE.x - Uses the sample function only. Only works for scale >= 1. This
+ * is useful for matching other software that does not convolve,
+ * for large scale it is almost identical to BOX.x but the filter
+ * is slightly smaller and thus faster.
+ * x.IMPULSE - Uses the reconstruct function only, scale is ignored.
+ * LINEAR.IMPULSE - Matches bilinear filtering
+ * BOX.BOX - Produces a trapazoid-shape. Narrowest possible filter with antialiasing.
+ * This is equal to LINEAR.IMPULSE at scale == 1. Matches a lot of other
+ * software, some call it "box", others call it "linear"
+ * IMPULSE.LINEAR - Some software calls this "linear" or "triangle". Not a good filter.
+ * LINEAR.LINEAR - non-negative cubic. What some software calls "cubic interpolation".
+ * IMPULSE.LANCZOS2 - Close to what a lot of other software calls "cubic interpolation"
+ * IMPULSE.CUBIC - Often called "mitchell" in other software
+ * IMPULSE.GAUSSIAN - Technically accurate but usually considered too blurry
*/
PIXMAN_EXPORT pixman_fixed_t *
pixman_filter_create_separable_convolution (int *n_values,
--
1.9.1
More information about the Pixman
mailing list