In numerous ways on the first page of this article, I indicated how popular the sRGB color space is, and how most devices and applications don't use anything else. What I really should have said is that many devices and applications don't pay any attention to color spaces — sRGB or otherwise — and just let the graphics card and monitor do what they want with the color data.
What any one person's graphics card and monitor will do with raw color data is anyone's guess — it depends on how the two were built, how old they're getting, how the user has adjusted the color/tint/brightness/contrast settings, etc. Everyone's system is different.
As different as everyone's system might be, overall there's an average, and that, it turns out, is how sRGB was designed. sRGB was designed to mimic the average colormetrically unaware Windows PC. Thus, at least in the Windows world, the phrase “is totally ignorant of color spaces” means, on average, sort of close to “strict adherence to the sRGB standard.”
In the old days, image color data more or less represented the voltage that should be fed into the cathode ray gun (in a Cathode Ray Tube — CRT — a standard monitor) to cause it to create the proper color on the screen. Software processing the image didn't modify this data, but rather shipped it off directly to the graphics card. The graphics card turned the raw numbers into raw voltages, and sent it off to the monitor. The monitor did what it wanted with the signal.
This is a perfectly acceptable color-encoding method if everyone has graphics cards and monitors that behave in exactly the same way. Of course, that's not the case. Heck, even a pair of identical monitors next to each other at the computer store show different colors.
Thus, in the old days, the colors you got from your system were highly dependent on your specific graphics card, monitor, and how you'd adjusted the monitor's settings.
Color printers use completely different color spaces — subtractive-color CYMK spaces rather than the additive-color RGB spaces that monitors use — so they had to do their best to convert from what were essentially monitor voltage levels to whatever they needed. As with monitors, color was hit and miss.
That mess of a situation was the old days. Applications were what I would call “Color Unaware.” Over the years, specific applications might have been made color aware — products from Apple and Adobe often led the way among mass-market companies. Still, the general population of PC software was slow to move to color-aware image handling, and one can surmise that this owes itself to Microsoft not taking a leadership role in pushing color-aware software.
The Advent of sRGB
As a first step toward moving the world of common PCs into a color-managed reality, 10 years ago (1996), Microsoft and HP created the sRGB color space. In short, this color space codified as a standard the color behavior of an average home Windows PC.
It created a starting point around which software and devices could take a small step toward full color management. It said, basically, that if an application or device got color data that didn't have a color profile associated with it, it should treat it in this very specific sRGB way, rather than the device-specific probably-pretty-close-to-average way that it would have done so in the past.
To be clear, the advent of sRGB didn't mean that suddenly every image on the fledgling web or stored on old floppies at home were suddenly sRGB-compliant. Old images, like old monitors, were still a hodgepodge of whatever they were. But with sRGB, digital cameras and scanners and software had a standard color space that they could create images in and still know that those images would probably look “okay” on old non-color-aware systems (because, again, the sRGB color space was designed with an average Joe's Windows computer in mind, to mimic what hardware had already tended to do). The design of sRGB reflects Microsoft's oft-repeated business strategy of “grandfathering” the former status-quo when designing new products.
It was a step. A baby step. It would have been nicer had Microsoft pushed for full color management, but in any case, this is what was done in 1996. In one sense, it was excellent timing, as it came at the cusp of explosions in two areas of popular culture: digital cameras, and the World Wide Web.
One problem with the design of sRGB is the least-common-denominator aspect of it. Monitors can reproduce only relatively small subset of colors, so using a monitor-related color space as a system-wide standard hurts pretty much everything that's not a monitor. That means that a digital camera has to throw away color information as it squeezes the wider range of colors it can record into an sRGB jpeg. It also means that printers that might be able to handle a wider range of colors won't even be given the chance.
And frankly, when I say that sRGB hurts everything that's not a monitor, I should say everything that's not an average consumer circa-1996 monitor. Monitor technology has advanced remarkably in the last 10 years, but holding on to sRGB as a global standard limits what the average person sees of those advances.
Using the “sound space” mentioned on the first page as a somewhat exaggerated example, it's as if the low sound quality standard of the 8-track-tape was applied to all sound devices (including FM radio, home stereo, etc.) and even later applied to modern-day compact discs and music players.
To be clear, the existence of sRGB in no way prevents the use of other, better color profiles where appropriate. But, unfortunately, while sRGB was supposed to be only a stepping stone, it has become entrenched.
Today, most digital cameras create pictures with sRGB-encoded data, without embedding a color profile. The lack of an included color profile is a symptom of just how entrenched and seen-as-permanent sRGB is in the minds of the consumer-products industry. The lack of an included color profile says “don't bother moving to fully color-managed systems; let's stick with 8-track quality sound” (so to speak). It's really a shame.
Higher-end pro/prosumer cameras, at least, can usually create images with better color spaces. The DCF standard allows for Adobe RGB to be specified by reference, without the need for a color profile (although as I mentioned on the previous page, as far as I know, no browser actually understands these “by reference” profile-less specifications).
So, for better or for worse, the vast majority of images you're likely to run into on the World Wide Web (for example) have sRGB color data, but no embedded color profile. This means that all browsers — all software but advanced image-processing applications — handle them without any color management, which means that the colors are, on average, likely to be sort of not too heinously off. Maybe. At best.
Colormetric Classes of Software Applications
Today, there are four colormetrically-distinct classes of application, listed here with my easy-to-remember label, from worst to best:
|Color Stupid||What might have been called “Color Unaware” in the old days gets a more pejorative term today. A Color-Stupid application is still like the caveman days and does no color management, leaving the look of images up to whatever your graphics card and monitor happen to do with them. There is no way to ensure proper colors with a Color-Stupid application. IE (prior to IE9) is color stupid.|
|Color Foolish||A Color-Foolish application is one that's smart enough to
understand embedded color profiles in images that have them, but does not
perform color management on unprofiled images. (Remember, 99.99% of the
images on the web have sRGB data but no embedded profile, so if you're a
web browser and know how to apply profiles, why not apply the sRGB profile
to unprofiled images?)
I should really list Color Foolish as the worst of the four classes, since it involves a specific decision to be dumb. (My initial name was “Color Moronic,” but that didn't have as nice a ring to it.) Web browswers that are claimed to be “color managed” like Safari and Firefox are Color Foolish.
|Color Stubborn||A Color-Stubborn application is one that refuses to move past sRGB as a first step, blindly treating all image data as if it were sRGB, completely ignoring embedded color profiles. This happens to work out well for most images on the web, but becomes part of the “entrenchment problem.”|
|Color Smart||A Color-Smart application recognizes embedded color profiles, and treats unprofiled images as if they were sRGB (or, perhaps another color space it allows you to specify). This is the way it's supposed to be, but Color Smart applications are rare. For example, I know of only one Color Smart web browser, for any OS, ever. This is another shocking tidbit we'll get to soon.|
High-end image editors like Adobe Photoshop, for Windows or Mac, have been Color Smart for a long time.
The vast majority of software for Windows is Color Stupid. Notable exceptions are photo-processing software like Photoshop and Lightroom, and modern non-Microsoft browsers (Safari and Firefox).
Even Microsoft's supposedly-advanced Internet Explorer is not color managed. This is particularly shameful for Microsoft, considering that it and HP created the sRGB standard a decade ago, in which the recognition of embedded color profiles is explicitly recommended.
[Update: March 16, 2010: IE9, out today as a testdrive beta, has graduated from Color Stupid to Color Foolish.]
Perhaps even worse, it seems that Internet Explorer 4 provided ways to indicate the color space in which an image should be rendered, which is a fairly colormetrically advanced concept. It's not the right concept because it should just honor the color-space information in the image itself, but it's discouraging to see Microsoft backpedal on color management in this way; I've not been able to find references to color management in any later version of IE.
I had hope when Google's Chrome came out, but it's Color Stupid, too.
The vast majority of software for OSX is Color Foolish or Color Stupid.
Apple software, and third-party software that uses Apple's image toolkits, are color managed. They recognize and respond to color profiles embedded in images. This is very, very good.
If an image is unprofiled (has no embedded profile), the best you can do is guess how to interpret the color data. Well, considering that just about every digital camera in use today by default produces images with sRGB data, and sRGB is the color space for the vast majority of images out on the web or on your hard drive — well, a guess of sRGB would be a smart guess. Yet, Apple's color-management software does not guess sRGB, but rather, guesses “the color data in this image was designed to work specifically for whatever monitor you happen to be using at the moment” (which is, in effect, the same as no management).
The sheer ineptness of this decision can not be overemphasized. There is almost no chance that there are any images in existence anywhere that were written with your particular monitor in mind, other than perhaps those you've created yourself with a color-stupid image editor. Thus, Apple's decision effectively guarantees the wrong colors. (Remember, in the case of a web browser, we're talking about the 99.9% of images out there that are unprofiled.)
I've struggled to come up with an analogy that suitably reflects the unfortunate magnitude of this decision, and the best I can come up with is this: imagine that there's someone who can speak every language in the world, and you send him to a mall in the middle of bread-and-butter America to interview people. If he comes across someone who happens to have their passport with them, he's to converse with them in their native language. But if someone doesn't have a passport with them, you instruct him to converse in a minor dialect of Hindi.
Make no mistake, this is a specific, conscious decision on Apple's part. There used to be an easy way you could override the default used for unprofiled images (so you could tell it to use sRGB), but Apple actually removed this feature in recent versions of their color-management software.
Update (Oct 22, 2006) — Apple engineer Dave Hyatt comments on the social/technical issues involved with using sRGB as the default color space for images. There are apparently social problems created by using sRGB as the default color space whose solutions are technically difficult. The root of the problem is that Macromedia Flash is not color managed, and web designers that which to use Flash also like to use images with colors that meld perfectly with the flash colors. Thus, images need to also be not color managed — at least images that have no explicit profile.
So, the sum of it is because some miniscule percent of web designers would find subtle color differences between their Flash and unprofiled images, Apple has chosen to cripple Safari color management.
Clearly, I don't agree with the conclusions that Dave comes to, but at least it's good to know that there are more than religious reasons behind it. (A previous version of this article was much more searing towards Apple for what I felt was a blindingly stupid colormetric decision. I still think the decision is wrong, but thanks to Dave's response I can at least understand what's behind it.)
Update (Feb 14, 2007) — it seems that the “miniscule percent” that I refer to in the Oct 22 update above is actually pretty big, according to this comment left by Dave on an OSX-related color management blog post by SmugMug president Chris MacAskill. (My mini claim to fame: although Chris doesn't mention me or this writeup — sniff-sniff, boo-hoo — I'm pretty sure that this writeup and some associated comments I made on a forum at Digital Photography Review were the genesis of his recent interest in the issue.)
More thoughts on how to actually solve the practical issues on the Mac are here: More on Digital Color Spaces: a Reply to Chris MacAskill.
Web Browsers for OSX
Unfortunately, most “big name” browsers for the Mac are Color Stupid — they do no color management at all, guaranteeing that every single image is shown with randomly wrong colors. These include Firefox, Opera, Mozilla, and Camino (although again, Firefox 3 can be made Color Foolish, as described above).
Most Mac browsers that aren't Color Stupid are Color Foolish — color managed, but default to no effectively management — including Apple's Safari, OmniWeb, iCab, Sunrise Browser, Shiira, Scourge, surfDude, Postino, and even RealPlayer. (RealPlayer for Windows is still not at all color managed.)
The Only Color-Smart Browser, Ever
It's truly ironic that the only Color-Smart Browser that's ever existed, as far as I know, is the now defunct Microsoft Internet Explorer for the Mac. It was color managed (if you turned on the option; oddly, it was not color managed by default) and it used sRGB for unprofiled images. Unfortunately, it was IE, so was woefully lame in every other respect. I hear that it doesn't even run on modern Macs. (Update: it does. I have it running on my Intel-based MacBook right now.)
The moral of this story so far is this:
It's a sad state of affairs. I often peek at the metadata of other people's online photos (with my Online Image-Data Viewer), and it seems that a lot of people with pro and semi-pro cameras set them to save in different color spaces, such as AdobeRGB, and present them on the web that way (and without even an embedded profile). The problem is not that they use a different color space to begin with, but that they use something other than sRGB for the versions they present online; they're ensuring that pretty much everyone will see the wrong colors.
One of the most egregious offenders was me. When I got my Nikon D200, I'd heard that “AdobeRGB is better than the default sRGB,” so I ignorantly switched the camera settings to use the AdobeRGB color space when creating images. My ignorance was not in switching, but in not knowing the ramifications to the switch.
By the time I understood the issue, I had already put many of my images onto the web. Sigh. At least I'd done so with an embedded color profile.... usually. I didn't understand the issues, so who knows how many didn't have an embedded profile? I just didn't know. (I've since gone back and converted the ones I could find to sRGB; I must go back again to ensure that the sRGB color profile is actually included.)
It's a common refrain on photography forums: “My image's colors look washed out on the web.” Invariably, this is because their camera was set to use the Adobe RGB color space, and they blindly put the images on the web. However, it's only because they also viewed the images with a Color Smart application like Photoshop that they later noticed the washed-out effects viewing in the browser.
Note: the section that follows applied to Photoshop CS3 and prior. Photoshop CS4 has a “Convert to sRGB” checkbox!
I'll take a moment at this point in the discussion to rant about Adobe Photoshop's “Save for the Web” feature, which allows you to conveniently tweak image-compression settings and immediately see the image-size vs. quality tradeoff being made. It also strips out all the metadata from the image, including the thumbnail that most cameras embed in the metadata, so that the resulting image is as small as possible. This is all good.
What is inexcusable is that this feature does not convert the color space to sRGB, or even offer the option. This is like a camping “water-purification kit” that cleans out mud but doesn't actually purify the water. If it's already microbe-free you'll be fine, but if not, you'll be silently poisoned.
Equally bad, it doesn't default to embedding a color profile. The reality of the current Web is that profiles are needed, even with sRGB.
I have a very high opinion of Adobe, but this
iswas just moronic.
It's wonderful that the camera makers have standardized much of how camera-created images are saved in a file, from the metadata like the time/date of the picture, to embedded copyright information, to file-naming conventions, etc. It allows third-party products (printers, photo-kiosks, etc.) to work with images directly from the camera, and it certainly simplifies things for the writer of image-handling applications (like web browsers, photo editors, etc.)
The problem is that the creators of these EXIF and DCM standards (JEITA) have been incredibly short-sighted on some issues. For example, the standard allows for encoding the time/date that an image was taken, but not for encoding the timezone associated with that time/date. Thus, if you have a bunch of photos taken from around the world, you can't sort chronologically. I asked a standard's committee member about this, to which he replied “Why would you want to encode the timezone?”. Unfathomable.
They also do not allow for embedding color profiles. They essentially require sRGB (a color space that embraces the limitations of circa 1996 monitors!) as the only color space officially supported. The DCF Version 2 (circa 2003) seems to allow for the use of Adobe RGB by encoding “R03” in the Exif “InteroperabilityIndex” field, but this is but a small step. (Adobe Photoshop responds to this field, but does any normal consumer software?)
I shouldn't feel too bad about not having gotten the color-profile stuff right, because even photo-hosting sites designed for pro photographers don't get it right. PBase strips an embedded color profile when creating the various non-original-sized versions of uploaded photos (thumbnails, medium, large, etc.). This guarantees incorrect colors. And these sites are geared toward pro photographers! I asked them about it, but they didn't seem to care, and said that they had no plans to fix it.
Photo-hosting sites Smugmug and zenfolio both convert incoming photos to sRGB if not already there, which is the best they can do for the world of Color Stupid browsers. That's excellent, I think, but it would be nice if they were to also embed a color profile, to allow color-managed browsers to show proper colors.
The most popular photo-sharing site, Flickr at least preserves any embedded color profile in the smaller-sized versions it makes. Unfortunately, they, too, don't convert thumbnails to sRGB, nor embed a color profile for sRGB-tagged images not having a profile.
Some do get it. All the pictures on Rob Galbraith's site are sRGB with an embedded profiles.
Continued on the Next Page
We now move from color mis-management the next page: Page 4: Color Management.
However, if you'd like to skip further technical stuff, feel free to skip directly to Page 7: Recommendations and Links.