[Openicc] XICC specification draft
Kai-Uwe Behrmann
ku.b at gmx.de
Tue Jun 28 19:10:57 EST 2005
Am 28.06.05, 01:03 -0600 schrieb Chris Murphy:
>
> On Jun 27, 2005, at 11:23 PM, Craig Ringer wrote:
> > My worry is that if the X server takes, eg, sRGB and transforms it to
> > the output device colour spaces, many apps that know about the colour
> > profiles of their inputs are going to have to convert once from the
> > input colour space to sRGB, then let the X server convert to the output
> > device's space. My puny knowledge of colour management leads me to worry
> > about gamut compression and loss of precision due to the double
> > conversion involved here. Is this likely to be a serious issue in the
> > real world?
>
> If they are 16-bits/channel conversions no, at least not until we starting
> seeing compositing being done on HDR imagery which will absolutely become
> common place. Hard to say when but there is already one single capture camera
> that captures HDR (values brighter than 100% and less than 0%, fully
> reversible non-destructive edits).
Bracketing merging is becoming a common content. In virtual reality scenes
HDR is about becoming even more usual. Hope we need not too long to wait
for such features. OpenEXR is allready a common platform for such kind of
things. The precission introduced by HDR imagery can cover the current
needs easily.
> Gamut compression between matrix based profiles is up to the CMM, not the
> profiles. If the rendering intent is RelCol, gamut compression should not
> occur.
With a two stage approach 1. convert to wide gamut colour space in the
application and 2. X compensate to screen the intent should be preserved.
Otherwise the original intention, how imagery should be rendered, gets
lost.
> But there are three options I'm proposing, should be serviced:
>
> 1. Application is color managed, and can do display compensation already.
> Therefore it would submit drawing commands as explicitly device dependent to
> avoid further conversion; this could be done by tagging the data with the
> current display profile as source. Since the destination in display
> compensation is also the display profile, source=destination=null transform.
About the general option I would agree. Nethertheless tagging with the
display profile instead of declaring the image is prematched is dangerous.
Someone explained on this list how profile sizes can be striped down. A
simple mechanism, which relies on MD5 checksums, would not understand the
X screen and the image are tagged with the same profile and would repeat the
conversion. This is approach is in my opinion a workaround only for
existing systems. We dont need to implement such limitations.
> Or it could be merely tagged as "intentionally device dependent."
We should support this instead. This can be made a simple flag and is much
more clear.
> 2. Application is not color managed and simply sends what it things are device
> dependent drawing commands using today's APIs. An updating compositer/xserver
> simply says "aha, ignorant application, I will assume these values are tagged
> sRGB for the source profile and perform display compensation using the
> destination profile." Anyone who wants to prevent this from happening and
> doesn't care about display compensation can simply set the display profile to
> sRGB and again get a null transform.
The same here, basically agree -- null transform is no option. A flag
would do a better job.
> 3. application is color managed, but wants to opt for normalizing to some
> larger gamut space (a system compositing space perhaps), so that it doesn't
> have to negotiate display compensation itself, especially for multiple
> displays, rather allowing the xserver to do this. But the conversion still
> needs to be to a space that has a sufficiently wide gamut in order to not
> cause clipping in the event the display being used is a wide gamut display.
IMO we will need a lot of time to have a full covering implementation of
server side colour management. Anyway it's highly desireable.
> > It forces more complexity into the app,
> > but for the near future most apps will need built-in CMS support to
> > handle other platforms and older displays without native CM support
> > anyway. Centralised configuration is harder, but can be handled through
> > approaches like the XICC atom, XSettings, etc. On the upside, the X
> > server doesn't need to know about non-RGB colour spaces or some of the
> > weirder types of profile used for some inputs. Network transfer sizes
> > would also be kept down, both for profiles and input data.
>
> I realize the prospect of doing this across the various incarnations of "unix"
> et al, that are out there lies somewhere between daunting and impossible. But
> the ones that can't provide this "for free" for all applications are going to
> be relegated to a very questionable usability as wide gamut displays start
> being used on them, and regular imagery (uncompensated) looks like
> oversaturated crap. It will inherently limit the platform, if it can't do
> display compensation.
A toolkit independant CMS eighter using its build in architecture or
relying on the OS would be a way, which help cross platform integration
of applications. Of course X needs to build in or adapt some CMM at one
or the other place.
> > On the downside, potentially large input colour profiles have to be sent
> > across the wire, as must large input colour data (think 16 bit per
> > channel CMYK) and the X server / composite manager must know about a
> > variety of colour spaces solely to support transforms to device colour.
>
> I would say any application that handles color models other than RGB would be
> required to use option #3 above - they normalize to a wide gamut RGB space and
> then submit drawing commands, with the color space tag used. Then only RGB
> data is being sent, and only a single matrix based profile is sent.
I tried 8 bit per channel RGB over a DSL connection. It is slow without
compression anyway. Using X remotely needs bandwith which will expectedly
grow in the future and can serve such needs then. I am not shure if an
approach like NX is can preserve quality in all situations.
regards
Kai-Uwe Behrmann
+ development for color management
+ imaging / panoramas
+ email: ku.b at gmx.de
+ http://www.behrmann.name
More information about the openicc
mailing list