Re: Full screen color management



On Thu, Mar 25, 2010 at 5:27 AM, Richard Hughes <hughsient gmail com> wrote:
> First a little introduction if I may. if you're easily bored please
> skip to the last paragraph.
>

>
> A "whole screen" color manager is normally an optional plugin to a
> compositing window manager. There is a pretty hacky proof of concept
> plugin written for compiz, but that's doing far more stuff than I'm
> proposing here. It tries to convert the whole screen to the
> destination gamut, without affecting windows that have already been
> early-bound. It can detect windows that should be ignored using the
> atom that has been set on some windows (possibly none, or typically
> one) and assumes the rest is sRGB and converts this to the destination
> (monitor) profile.

This sounds like a great idea, but if I understand it correctly, I
think that a small change could make it even better.  In your model,
windows are either untagged (late color binding) or tagged as
early-bound.  If windows were instead tagged with a color space (no
tag = sRGB, and maybe reserve a special tag "native" that does exactly
what your early-binding tag does), then we get a few benefits:

1. Programs displaying images in a wider color space than sRGB can
correctly span two outputs with different profiles, assuming that the
compositor is smart enough to draw them correctly.  This would be nice
for video on two displays.

2. Programs that are too lazy to detect when they are dragged from one
output to another can simply tag themselves with the correct color
space and let the compositor deal with it.

3. The compositor will probably be much faster than LCMS, since it
ought to use a hardware shader to do color conversion.  This means
that some program displaying, say, an AdobeRGB image (a much wider
gamut color space than sRGB for those non-color-inclined among you)
can just set that tag and get amazing performance.  (This is
especially true for low-end computers, where performance is more
likely to matter.)

--Andy


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]