Re: Tentative patch for downscaling in Cairo

Chris Wilson <[email protected]>
Newsgroups gmane.comp.lib.cairo,gmane.comp.graphics.inkscape.devel
Message-ID <[email protected]>
On Sun, Mar 31, 2013 at 05:03:36AM +0200, Krzysztof Kosiński wrote:
> Hello
> 
> I had a look at how complex would it be to add correct downscaling to
> Cairo now that Pixman supports convolution filters. It turns out it
> this is rather easy. Here is an initial, minimal attempt. It uses
> convolution filters only if the image is being downscaled by more than
> half a pixel in at least one dimension.

Looks very nice. My plan at the moment is to finish a bugfix 1.12
release, then start on 1.14 to add some new API. This improvement would
be better in a major release, so I'll add it then.
 
> Some discussion:
> 
> 1. The sampling and reconstruction kernels are picked in a way that
> gives comparable quality when upscaling and downscaling. I paired box
> sampling with bilinear reconstruction and impulse (point) sampling
> with box reconstruction. This gives the expected result for NEAREST
> filter. BEST filter uses Lanczos3 for both kernels.

Do we need to use a reconstruction filter for NEAREST at all? Or maybe
differentiate between NEAREST and FAST in that case?
 
> 2. Subsampling bits are always set to 1, since this doesn't seem to
> affect quality at all.

Can of course be tuned later.
 
> 3. I am not sure whether this code works correctly for matrices with a
> skew component. It should be OK for any combination of scale, rotation
> and translation.

Should be okay for all affine transformations, I believe. We are missing
a skew test though.
 
> 4. This patch causes new failures in the test suite:
[snip]
> - large-source-roi: this test attempts to downscale an image which is
> 30000 pixels wide down to 7 pixels. The filter parameters seem to be
> created correctly, but they might trigger an overflow somewhere in the
> convolution code; the output rectangle is white instead of red, as if
> nothing was drawn.
Only one worrisome failure near the limits, not too bad.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.