The state of color
Libre Graphics Meeting (LGM) always features talks that provide status updates from application projects, as well as presentations from artists and users about their own graphics work. But the event is also a rare opportunity to hear about the state of the art in various technology areas that buttress application code itself. At LGM 2015 in Toronto, one such talk was color-management consultant Chris Murphy's status report on the state of color management in free software. Although users can already count on Krita, GIMP, Scribus, and other applications to handle the necessary color transformations, color management is still a field where there are new challenges facing developers.
Color management is, historically, one of LGM's biggest success stories. The various applications that make up the core of the free-software creative toolkit are all color-managed now—users who care to configure their hardware and software can expect an image to look correct on all of their displays, regardless of which applications are used to edit it (and in which order), and to be free of surprises when printed (whether professionally or at home). That accomplishment is thanks, in large part, to collaborations that took place in and around previous LGMs.
So when Murphy stood up to begin the session, he started with a joke. "Everything works great. Next talk!"
![Chris Murphy [Chris Murphy at LGM 2015]](https://static.lwn.net/images/2015/05-lgm-murphy-sm.jpg)
Though he was kidding, Murphy continued, in a sense everything is great in free software—especially where Linux is concerned. Most applications use the LittleCMS library to transform color pixels from one space to another. The ArgyllCMS project provides good tools for creating accurate color profiles. There are two actively maintained systems for managing color profiles in a desktop environment: colord and Oyranos. And there is even open hardware available for profiling displays: Richard Hughes's ColorHug (which we looked at in 2012).
This situation on Linux is in contrast to the state of affairs on Windows and on Mac OS X. Windows's color-management library is so buggy that it is disabled by default. Turning it on for professional work, he said, requires "a dance with a dog, a pig, and pony under a full moon." But the good news, he added, is that no one ever reports bugs about it if they can't use it. On Macs, the situation is reversed: the pro-level color-management features cannot be disabled, so they generate a constant stream of bug reports.
In a lightning talk later in the day, Murphy added a few words about iOS and Android, which he said had simply slipped his mind during the main talk. iOS, he said, has a color-management API, "but I don't think it works. No one uses it." As far as he is aware, there is a single app that leverages it: a proprietary tool from X-Rite; even then, the app is largely inconsequential since it does not make any of its features accessible to other apps. Android is much better; device displays can be profiled and tested. He recommended users start with the color profile testing tools at the color.org web site.
The basic underpinnings of color management in Linux and free software are good, he said; primarily the shortcomings at present are found in the user interfaces. The interfaces for activating and tweaking color-management settings all seem to vary and, perhaps more importantly, applications tend to vary in what their default settings are. Specifically, he highlighted that some parts of the color-management pipeline might be turned on for printing with Ghostscript but turned off for on-screen viewing—which can lead to differences between print output and the screen.
Whichever software a user encounters trouble with, however, Murphy urged them to report bugs. "If you experience strange problems and can't figure out what's going on, write to the OpenICC list. CC me, and I'll try to reproduce it." Many users encounter color bugs, he said, but rarely report them. "I recommend being prolific with your complaints. That's how things get fixed."
Although the overall picture is in good shape for free-software users, Murphy did point out several places where there is new work to watch, and a few areas of concern. One thing the color-science community is still working on, he said, is standardizing black-point compensation. Black-point compensation is the process of trying to properly account for the difference between the darkest black that two different devices can produce. The darkest level producible by a digital projector in a well-lit room, for example, is still quite bright in the absolute sense.
There is a draft ISO standard [PDF] addressing how to compensate for black-point differences; developers will want to watch its progress. There are still open questions, such as how the ISO black-point compensation specification should be used in combination with standards from other organizations.
Another new development is the recent effort by one of those other organizations—the International Color Consortium (ICC)—to work more openly with the technology community at large. In the early 20th Century, the scientists who did pioneering color work published everything in the open, Murphy said. In more recent years, though, international standards bodies and technology companies (such as those that make up the ICC) have done most of the new science and specification writing. Too many scientists get hired off to work on proprietary applications, he said, rather than creating open standards or open-source software.
But the ICC is trying to engage more with the public; its ICC Labs project has published a new (version 4) sRGB profile that should provide better color rendering when printing highly colorful images. Software support still needs to catch up, however. There is support for viewing images using the new sRGB profile in several applications (such as Firefox), but output profiles to translate images into printer color spaces have yet to appear.
There is a significant unsolved problem in color management, however, which Murphy called "the elephant in the room that's about to sneeze and cause a lot of chaos." That problem is optical brightening agents (OBAs), which he introduced as "what laundry detergent, toothpaste, and printer paper have in common." OBAs are fluorescent additives used to make objects appear whiter to the human eye; they absorb radiation in the ultraviolet spectrum and radiate it back out in the visible spectrum—usually in the blues and greens.
OBAs are a clever trick for creating whiter whites, but they wreak havoc with color specifications. They are difficult to measure (and, thus, to adjust for), their performance characteristics vary depending on the light in the viewing room, and they degrade over time. OBAs are one reason why printer paper turns yellow after two years, he said.
It is bad enough that OBAs are in new desktop-printer paper, since they make proofing difficult (for proper proofing, the desktop-printer paper should behave the same as the paper used by the commercial print shop). But as paper includes more and more recycled content, which he called an undeniably good change overall, paper stock includes more and more recycled OBAs—in unpredictable amounts and from various sources. Thus, even papers sold as OBA-free may contain some level of OBAs.
Murphy ended the session by noting that the United Nations had declared 2015 the "International Year of Light," a designation intended to promote scientific study. As a result, a number of color-science organizations were conducting programs and workshops that may interest users and developers concerned about color management. The International Commission on Illumination (CIE), for instance, is running a series of Open Lab Days around the globe.
Not to be outdone, Murphy ran his own workshops at LGM apart from his talk; one a BoF about color management, the other a hands-on session helping users configure a full color-managed workflow. For those who could not be at LGM, the good news is how many pieces of the color-management puzzle are already in the correct places. But as the new challenges Murphy outlined reveal, there are few targets in the software development field that sit still for long, color included.
[The author would like to thank Libre Graphics Meeting for
assistance with travel to Toronto.]
Index entries for this article | |
---|---|
Conference | Libre Graphics Meeting/2015 |
Posted May 14, 2015 14:28 UTC (Thu)
by jhoblitt (subscriber, #77733)
[Link] (5 responses)
Posted May 14, 2015 15:00 UTC (Thu)
by halla (subscriber, #14185)
[Link] (4 responses)
However, colord supports multi-monitor support quite well, and that's the reason I ported Krita 2.9 from the X11 atom system to colord, so at least Krita now supports per-monitor profiles out of the box. And I know it works, because I use it with the dell/cintiq hybrid companion setup I use to develop Krita :-)
Posted May 21, 2015 4:40 UTC (Thu)
by gwg (guest, #20811)
[Link] (3 responses)
It works fine using X11 & XRANDR, as mentioned by the OP.
> However, colord supports multi-monitor support quite well, and that's the reason I
That's pity and a real step backwards. The X11 mechanism is system independent - it will work with any system the X11 server and client are running on, as well as remotely, just as X11 should. In contrast, colord is Linux distro. specific, and some sort of parallel remote connection would be needed for it to work with a remote X11 display.
Posted May 21, 2015 8:55 UTC (Thu)
by halla (subscriber, #14185)
[Link] (2 responses)
No, it doesn't.
"That's pity and a real step backward"
No, it isn't.
Posted May 21, 2015 11:24 UTC (Thu)
by gwg (guest, #20811)
[Link] (1 responses)
I bow to your deep and detailed explanations.
I guess I'm simply imagining that my code works.
Posted May 21, 2015 13:42 UTC (Thu)
by halla (subscriber, #14185)
[Link]
What I do know is that the icc profiles in X spec is dead as a doornail, just check it: http://www.freedesktop.org/wiki/Specifications/icc_profil.... It's always been a very iffy spec with no two applications interpreting it the same way, so it never worked in practice. Sure, _you_ may feel that _you_ did it right and got it working, but that means zilch if no other application uses it the same way. And it's a dead spec anyway.
As for your goings on about colord being Linux only, and remote X11 displays -- I don't care. There is no reason for me to care. There is nobody using X11 except for Linux users anymore, and there's nothing Linux specific about colord anyway.
If there's anyone left who uses FreeBSD or Solaris or AIX or HPUX or whatever, they can port colord. Maybe they already did, I don't know. And using an application like Krita over a remote connection is a completely ridiculous proposition anway. So, yeah, short and clear: it's not a pity and not a step backwards for Krita to use colord instead of _ICC_PROFILE. It's a step forwards, because Krita now works with multiple moniros for the majority of Linux users (who now have it better than Windows users, who still need to manually configure the monitor profiles).
Posted May 14, 2015 15:24 UTC (Thu)
by Tara_Li (guest, #26706)
[Link] (1 responses)
Posted May 21, 2015 4:46 UTC (Thu)
by gwg (guest, #20811)
[Link]
Be careful what you wish for. Wide gamut brings some problems, a main one being
Handling more than 3 colorants is hard - by most accounts Sharp didn't do this
Posted May 15, 2015 8:39 UTC (Fri)
by petur (guest, #73362)
[Link] (1 responses)
Posted May 27, 2015 16:17 UTC (Wed)
by nye (subscriber, #51576)
[Link]
Do you mean the ColorHug+? That's really not a V2; it's a different device with a different target audience. Suggesting that people should choose it over the original is like saying that people should choose a car over a bicycle: it has broadly the same goal, but a very different set of tradeoffs.
The state of color
The state of color
The state of color
> there's > pages out there that suggest that that system works in a multi-monitor setup,
> it doesn't, at all.
> ported Krita 2.9 > from the X11 atom system to colord, so at least Krita now supports
> per-monitor profiles out of the > box. And I know it works, because I use it with
> the dell/cintiq hybrid companion setup I use to develop Krita :-)
The state of color
The state of color
> No, it isn't.
The state of color
The state of color
The state of color
> raising the range of the phosphors - if the information was provided and stored,
> would adding a yellow phosphor, like Sharp did a couple of years ago, help?
that few desktop UI's are color managed, making for eye-watering garishness.
very well, and there is a lot of complexity added to print systems to handle
the black channel. 3 Color displays with extreme RGB primaries expose issues
with observer variation - you are much more likely to end up in situations
where different people see slightly different color on such a screen.
ColorHug
ColorHug