Better anti-aliasing

Bert Freudenberg bert at freudenbergs.de
Fri Apr 25 04:55:00 EDT 2008


On 25.04.2008, at 07:54, Benjamin M. Schwartz wrote:
>
> Nope.  Take out your magnifying glass and look: each pixel is either  
> red,
> green, or blue, even in monochrome mode. Those are not software- 
> controlled
> filters; they're formed by a fixed physical diffraction grating.
> Monochrome mode just tells the software to set R=G=B, but with the
> backlight on only one of those three is actually displayed at each  
> pixel.

So far we agree ...

> One amusing question is: could software potentially set monochrome  
> mode
> and then use fancy color-adaptive subpixel rendering to do optimized
> display of fonts and images?  Maybe, but at 200 dpi the gains would be
> small, and the computational overhead would be huge.


... but here you lost me.

There is no need for "fancy color-adaptive subpixel rendering". The  
framebuffer with its 1200x900 resolution maps 1:1 to physical display  
pixels. The DCON simply selects the red channel of the first pixel,  
and the green of the second, and the blue of the third, and so on.  
This does not affect pixel geometry. Thus normal full-pixel anti- 
aliased software rendering will do The Right Thing.

One thing that someone (Albert IIRC) proposed was doing a better  
filtering job than the DCON does - it uses a simple 5-tap filter which  
adds a noticeable amount of blur. It is still vital to do filtering,  
otherwise a single red pixel surrounded by black background that  
happens to fall on a blue physical pixel would not be seen at all, the  
filter ensures that at least half of its energy is distributed to the  
adjacent red physical pixels. Or a single white pixel would appear  
colored.

To experiment with this, it would be necessary to disable the DCON 5- 
tap filter, but to not switch on its color transformation (which  
translates colors into gray values using a perception-based formula,  
green contributes more energy than red or blue). These two settings  
are coupled in recent hardware and/or software versions. I remember I  
could toggle them separately on a display prototype in 2006, but not  
anymore. This does make sense for normal use, it would only be nice  
for experimenting. Is it a hardware thing?

- Bert -





More information about the Devel mailing list