[Openicc] Questions about color pickers and graphics libraries under LINUX

Hal V. Engel hvengel at astound.net
Mon Feb 11 14:15:05 PST 2008


On Monday 11 February 2008 09:58:35 Chris Murphy wrote:
> On Feb 11, 2008, at 10:52 AM, Bob Friesenhahn wrote:
> > If the display was capable of resolving the required colors, then
> > the OS could certainly help.
>
> No it can't. Even if we had greater than 10bpc to the display we
> don't have full blown display compensation on any operating system.
> And despite the limitation of 8bpc, which is necessity, it is NOT a
> pre-requisite to system wide display compensation.
>
> The OS is behind the curve in this respect. It would not take very
> long to get to a 10bpc or 12bpc path to the display. 

I have yet to see a serious hardware standards proposal for the PC to display 
communications link that will support more than 8 bits/channel with the 
highest resolution displays that are in use today.  Almost all of the new 
hardware standards proposals dealing with the communications link to the 
monitor that are currently on the table are there because the vendors want to 
add more security for DRM (IE. they are calling us thieves) not because they 
are concerned about the bit depth of the color representation or achieving 
higher resolutions.

As an example VESA has been working on the DisplayPort standard which supports 
a wide range of bit depths up to the max bandwidth of the connection.   They 
just recently released version 1.1 of that standard and there are a few 
displays with a DisplayPort connections but currently no video cards support 
this.   But total bandwidth is only slightly more than HDMI/DVI at 10.8 
Gbit/sec compared to 10.2 Gbit/sec (dual channel).  With high end 30 inch 
displays (keep in mind that there are higher resolution displays available) 
DisplayPort maxes out at 10bpc and with higher resolution displays we are 
back to 8bpc and there is a limit to how much resolution can be supported 
even at 8bpc.  

Of course on lower resolution displays it would be possible to do 12bpc, 14bpc 
or even 16bpc using DisplayPort but it appears to me that DisplayPort is 
already obsolescent even before the first video cards that support it are 
released.  In spite of this DisplayPort may drive development of support for 
higher display bit depths in the software layers above the display hardware 
(IE. windowing systems, video card drivers and applications) if it is 
accepted by consumers and if the display hardware actually supports these 
higher bit depths. 

> Displays 
> themselves already have internal LUTs with that precision. 

The Eizo displays have internal LUTs of 10bpc and 12 bpc depending on the 
model.  In addition these LUTs are exposed via the USB HID Monitor Controls 
interface.  These monitors also come with calibration/profiling software that 
will calibrate the internal LUTs to user specified values (gamma, white 
point, white level and black level are supported).  Of course it only runs on 
some operating systems and would be of little or limited use for most on this 
list.  But these are also very high end expensive monitors that I don't think 
are representative of monitors that most users have.

The LUTs on video cards are generally 16bpc resolution and are used to do a 
8bpc to 16 bpc transform before sending the data to the DAC.  The reason that 
Eizo is using 10 and 12 bit LUTs is because they are doing a transform from 
the 8bpc they are getting from the computer to the 10bpc or 12bpc resolution 
of the panel.   If you think about it you will always need more bit depth in 
a LUT than your input data stream if the LUT is to serve a useful purpose.   
So having a 12bpc input stream to a display that uses a 12bpc LUT basically 
make the display LUTs useless although using 12bpc display LUTs with a 10bpc 
input would still be useful.

> The limits 
> are video card, drivers, and connection. 

Because of DRM I don't expect this to change anytime soon and we currently do 
not have the hardware available that supports these higher bit depths.  Some 
of the newer Nvidia GPUs (the 8xxx series) do support 10 bpc internally 
(maybe other vendors do as well?) but unless you are using an analog 
connection to the monitor this is wasted as far as I can tell.  In addition 
it is unclear to me if any monitors using DisplayPort connectors will 
actually support more that 8bpc in actual use (anyone know?). 

> That's also more readily 
> resolvable than all of the bits of an operating system that need to
> be updated to handle a higher bit pipeline.


Actually this is one of those chicken and egg things.  Why would the OS (in 
the general sense since with X11 systems we are really talking about the 
windowing system and video drivers and not the OS - kernel - for the most 
part) be upgraded to handle hardware that does not exist?  Since this type of 
feature is likely to show up in high end hardware first and since there will 
likely be an extended period before this hardware becomes common I would 
expect that there would be a gradual migration of the software layers to 
support this new hardware over time. 

>
> I'm just asking for display compensation within the limits we have
> now for 8bpc. Obviously I want improvements through the whole
> pipeline for higher bit depth, but not having it now is a piss poor
> excuse for why the OS doesn't do display compensation system wide.

I agree with this.

snip

> But as for compensating for wide gamut displays with something as
> simple as a web browser, I'm seeing FireFox folks having to put
> themselves through major mental gymnastics to get color management
> integrated into the web browser and it should not have to be this
> complicated for them. And then when there's another project, they
> will have to do all that integration again. It seems really stupid
> and inefficient.

I am not so sure that the "mental gymnastics" involved in integrating color 
management into an app are really "major".  There clearly is a learning curve 
but this is typical anytime an application uses a new technology.  But I 
think you are right that handling basic transforms from general purpose 
applications to the display device should be a given that is handled by the 
windowing system and that non-color critical apps should not have to deal 
with this directly. 

Hal


More information about the openicc mailing list