[Pixman] [PATCH 0/7] Faster pipelined ARM NEON bilinear scalers: 'src_8888_8888' and 'src_8888_0565'

Soeren Sandmann sandmann at cs.au.dk
Sat Apr 9 14:31:01 PDT 2011


Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:

> Additional use for 'src_8888_0565' bilinear scaline function is the
> potential support for fast scaled YUV->RGB conversion. It may be
> beneficial to first perform unscaled YUV->x8r8g8b8 conversion and then
> scale the result (it can be easily an overall performance win for
> upscaling).

That's interesting. Similar to the 565->565 case, I guess the
performance improvement is because fewer color conversions are required
relative to the case where the YCbCr image is scaled first and then
converted.

As mentioned earlier:

    http://lists.freedesktop.org/archives/pixman/2011-March/001093.html

I think converting to rgb before scaling is actually the more correct
approach, even though an extra interpolation filter is involved. I
definitely was worried that it might be a performance problem,
though. If converting to rgb first can actually be a performance
improvement, that's good news.

Doing it that way also solves the practical problem that the general
fetch/combine/store pipeline can't easily be modified to do color
conversion after scaling, and so fast paths might have had to use
different algorithm than the general path.

Also, a bilinear src_8888_0565 scaler would also be a convenient place
to add dithering, which is something that youtube on my netbook could
decidedly benefit from.

So, basically, I like this idea a lot.


Soren



More information about the Pixman mailing list