[Pixman] [PATCH 0/4] Meet the FPU-based implementation of the core pixel pipeline

Bill Spitzak spitzak at gmail.com
Tue Sep 21 11:23:40 PDT 2010

Another thing to think about with floating point pixels is to perhaps do 
math in *linear* floating point. This is values where multiplying by N 
makes it N times brighter, no matter what the color.

This requires gamma correction when converting the output to the screen. 
If the screen takes integers, I have found this can be done with lookup 
tables using the top bits of the floating point number that provide a 
linear equation of the lower bits to arrive at the integer to arrive at 
an 8.24 format. The low bits can then be used for error diffusion 
dithering, which fixes Mach banding in very shallow gradients.

One problem is that composites of transparent areas look different than 
other software.

Another harder problem is that white-on-black thin lines and fonts look 
much thinner than black-on-white ones. In this case users actually 
expect the inversion to be done in gamma space.

More information about the Pixman mailing list