[Pixman] [PATCH 0/2] 7-bit bilinear interpolation precision

Bill Spitzak spitzak at gmail.com
Thu Jul 5 12:25:55 PDT 2012

On 07/05/2012 12:22 AM, Siarhei Siamashka wrote:

> Separable scaling is good idea, but it is not a silver bullet.
> Downscaling is still a valid use case, and separable scaling would
> provide no reduction for the number of arithmetic operations for it.

This is not true. In fact 2-pass scaling is a much *bigger* win for 
downscaling if you use filters of size greater than 1. And filters 
larger than 1 are absolutely required to fix the artifacts that are in 
current downscaling.

Single-pass bilinear is *not* a big loss for upscaling, because as you 
noticed there is overhead of the intermediate values. It is pretty much 
equivalent to stretching the image in one direction, and then in the 
other. You need to store this intermediate stretched image, which is 
bigger than the original.

What I propose is that an integer down-scale be selected and used to 
box-filter which can be computed extremely fast (there are no varying 
weights). This resulting image, which will always be smaller, and could 
be cached, can then be bilinear interpolated using the current code.

More information about the Pixman mailing list