Leaves Me Feeling Blue
( note: all browsers, whether color managed or not, will show me as blue in this copy )
Well, this is surprising: iOS does not seem to be color managed. At all.
This is a long and technical article. Here's the table of contents:
- Color Management
- Embedded Color-Profile Support
- Device-Specific Color Profiles
- The Curiously-Deficient “SpyderGallery” App
- What's Next
- One Last Caveat
With all the talk these days about glorious color performance of the third-generation iPad screen, such as this article and this, I realized that my Lightroom-to-iPad workflow (presented in “Getting Photos from Lightroom to iPad: a Much Smoother Workflow”) neglected to consider color profiles. This is a huge oversight for someone like me who wrote an in-depth primer on digital-image color spaces six years ago.
So, I looked into how I might enhance my workflow along color-management lines, and discovered to my shock that iOS is not color managed. At all. I haven't found a single application, from Apple or anyone else, that is color managed. Even Datacolor's SpyderGallery app, which allows you to profile your iPad screen with a real hardware colorimeter, is not color managed.... it seems to be nothing more than a technically-incompetent placebo.
If you're not familiar with what “color managed” means, my old primer on color spaces goes into great detail, but in short, digital images such as the JPGs you find everywhere are made up of numerical data that becomes a picture only when interpreted for display by the viewing application, such as your web browser in showing the images on this post. The display application can make assumptions about how to convert that numerical data to color, or it can be told explicitly by various notations within the file.
Of course, any assumptions may be wrong on an image-by-image basis, so it's always best if the display application uses the explicit notations if they're there, but some applications don't bother. An application is “color managed” if it uses the notations, and not color managed if it uses only assumptions.
(There's another facet of color management that deals with how those colors are then presented on any specific display device; I'll get to that later.)
So, why am I blue?
It's okay and expected that I'm blue in the photo above, which originally was by Paul Barr of me from my previous post; I'll explain why in the next paragraph, which will then prepare us to understand when I present the real problem in the paragraphs that follow.
Embedded Color-Profile Support
The lead photo of this post uses raw color data that makes me look blue when interpreted with “common” assumptions about the data→color conversion process. In the copy above, I make sure that there are no notations about how to do the proper conversion (I stripped the “color profile” that would normally be embedded within the image file), so your browser has no choice but to guess, and for this test I made sure that the common guesses would produce an obviously-wonky result. (No comments, please, about how any photo of me is “obviously wonky” )
Now, let's look at exactly the same image, except that it does have an embedded color profile describing the exact data→color conversion process. This means that the next image will appear to you with generally proper colors (I'm pink, not blue) if your browser does not ignore the color profile. If it ignores it, instead opting to make assumptions, I'll look exactly the same blue as in the top image.
this is the main test image
if this version looks blue, your browser is not color managed
Did your browser pass the test?
When I first wrote my color-space primer six years ago, most browsers would fail, showing a blue me. Things are better today, especially on a Mac where all major browsers have been color managed for years.
On Windows, it's still a mixed bag. Firefox and Safari have been color managed for a long time, but Internet Explorer became color managed only last year with IE9, and Chrome and Opera are still not color managed and leave me blue. (In a twist of irony illustrating the Mac's general lead in this area, Microsoft's own Internet Explorer for the Mac, last updated nine years ago, is color managed and shows me in all my pink, er, glory. It took Microsoft another eight years to get around to doing the same thing for their own operating system's users.)
I won't go so far as to say that if you see a pink me, you're seeing accurate colors, because I have no idea whether your computer display is adjusted properly (or even at all!), but any kind of pink is a lot closer to accurate than blue.
Okay, so now try viewing this blog post on your iOS browser; the results will, I'm fairly certain, leave you feeling blue.
Obviously I can personally test only a small subset of devices and applications, but I have not found any — not even one — iOS application that displays the second image properly. You can save it to your camera roll and view it with any number of applications, including apps from such leaders as Apple and Adobe, and they all show me as blue because they all ass·u·me incorrectly, even though the color profile is right there in the image. Back in 2006, on the History of Color Mis-Management page of my color-space writeup, I called such applications “Color Stupid”, but in this day and age, such applications should probably be called something much worse, like “Color Moronic”, or “Color Leaves-Me-Dumbfounded”.
To make testing easy, here are three versions of the image presented in a convenient group, two as test “controls”, and one for the real test:
Pink or Blue?
I'd be curious to hear how these images display in various situations... what about Chrome on Android? Photoshop for iPad? If you try them, let me know the results in the comments below.
I created these test images with the intent that a lack of color management is exaggerated to the point of being obviously apparent. In the real world it can be subtle, but the practical effect is often a “washed out” image. You can see some real-world examples on the “Test Images” page of my color-space writeup.
Not wanting an article where the only photo is of me, I'll take the liberty to sprinkle the rest of the article with random photos that have appeared on my blog during the past year, each with the “Funky RGB” color so that they're at least “interesting” when viewed in a non-color-manged browser. Clicking on them brings you to the article where they first appeared, presented there in a color space that should at least not look totally wonky when not color managed. (If your browser is color managed, it may be fun to look at this article with a non-managed browser.... some of these pics look pretty crazy that way.)
Okay, so back to iOS. It's surprising enough that iOS is not color managed, but the most egregious offender I've found is Datacolor's SpyderGallery app. If you can get by the vomit-inducing intro text (“If you could be a color, which one would you be?”), you'll find claims that users will “enjoy color corrected viewing of their photos” and that you “will no longer need to compromise color accuracy for the convenience of your iOS device.”
This is all fine and dandy if it were true, but the app is not color managed!
Device-Specific Color Profiles
Let's step back a bit to first look at the other facet of “color managed” that I mentioned earlier. Above we talked about how colors are derived from an image file, and about how a color profile — a device-independent color profile — can be used to accurately guide the conversion process to come up with the proper conceptual idea of “color” for each pixel. The flip side is the facet of how those conceptual colors are actually presented on each specific display device.
We've all seen the banks of TV screens at the electronics store showing the same program, but with wildly different looks.... each TV seems to have its own tint or richness or brightness, etc. The same goes for our display devices (computer monitors, tablet screens, etc.), and a properly color-managed application will adjust on the fly for the characteristics of the device(s) it's displaying on.
In order to properly adjust for each specific display device, the application must know the answer to the question: "When I think I'm sending such-and-such a color to the display device, what color actually shows up on screen?". The answer is unique to each device, and changes even from day to day with any particular device. The answer changes every time you adjust the device video settings (brightness, contrast, tint, etc.), and the answer even changes over time as the display warms up after first being turned on in the morning.
The only reasonable way to answer the question is to “profile” the device with specialized hardware. This hardware includes a light sensor temporarily placed over the display device, then a profiling app is run that floods the sensor with a wide range of colors, allowing the app to compare the color it thinks it's sending with the color actually measured by the sensor. By calculating the difference, a “device-dependent color profile” can be created that instructs applications how to modify color data on the fly for that one specific monitor.
Now, as I said, this changes over time, so the device profile that I create today for my monitor (after it has warmed up, of course) will not be useful for you and your monitor, even if you have the same make and model, and it will likely fade out of accuracy as even for my own monitor as it ages. And it becomes immediately invalid if I make any adjustments to the monitor brightness setting, etc. But if I leave my monitor settings alone, it'll be fine for me for a while... I tend to reprofile several times a year, though serious folks do it weekly or even daily.
All that about “mine not valid for you” does apply to an iPad as well... the display characteristics of two iPads are in theory different... but from what I hear, the production is very reliable and all iPads of the same generation have very, very similar display characteristics, so a single “generic first-generation iPad” profile can likely be used by everyone with an iPad 1 with great success. This is where I failed in my original Lightroom-to-iPad workflow, something I intend to correct in a followup, soon.
Still, despite the apparent lack of a need for per-device calibration, some folks wanting the absolute last measure of quality in their photo display may want to create a hardware profile for their specific iPad. This desire meshes very nicely with the desire of colorimeter manufacturers to sell more product, and so voila, we have Datacolor's SpyderGallery app.
The Curiously-Deficient “SpyderGallery” App
It's important to understand what this app claims to offer. It's saying “use specialized hardware we sell you to measure the exact color output of your specific iPad, so that when displaying your photos with our app, we won't have to make assumptions about how your iPad displays color, we will know.” This is coming from a company that makes hardware colorimeters, so it's only natural to trust that they're experts in this area and understand the issues involved, and that when they offer a solution, it can actually do what it claims.
When I first saw this, it made me wonder what the assumptions were to begin with. I hadn't thought deeply about it, but I would have thought that iOS would contain generic device-dependent color profiles for the various iPads, iPhones, and iPod Touches that iOS runs on. The profiles are not very large, and there aren't that many iDevices, so it seems to be a no-brainer to include them all. If this is the case, hardware profiling like in SpyderGallery would be of minimal use because, at best, it could try to adjust for any subtle difference between the rock-solid average iPad and each user's specific iPad. Not really much point to that, but it wouldn't hurt.
But it turns out that SpyderGallery is not color managed in the first sense we talked about in the top half of this post: even if the images contain their own color profile — specific instructions on how to convert from the numerical data to conceptual color — SpyderGallery ignores it. The app may have stopped making assumptions about the display hardware, but it's still making assumptions about the original image data in the first place. This is moronic beyond belief. It's as if they're a tailor with cutting-edge facilities to make garments to the tightest of specifications, but insist on creating your shirt based on the average human size instead of your specific measurements.
In short, Datacolor's SpyderGallery is, it seems to me, just a meaningless placebo.
I wrote to Datacolor to ask for comment, and got a fairly quick reply that implied that the app assumes all images are in the “sRGB” color space, which is the de facto standard for unprofiled images on the web. This was presented as a “recommendation”, which seems very strange, since if true, doing anything else would guarantee incorrect colors.
Possible Mitigation with iTunes?
As I wrote in my initial, now-obsolete first Lightroom-to-iPad writeup, iTunes does some very strange things to your photos in preparing them for the iPad, but it is color managed, at least on OSX, because it converts everything to the “sRGB” color space before shipping it off to the iPad. This is not exactly ideal, but in practice is probably not that big a deal one way or the other.
So, if the implication in Datacolor's response to me is true, that they assume every image is in the sRGB color space, it'll work just fine for photos that end up on your iPad via iTunes, and perhaps for other images as well. Like I said, that's all fine and dandy when the assumption works out, but considering that there's no need to make any assumptions in these cases, doing so is inexcusable for a company like Datacolor.
Going forward, one can hope that iOS and its apps will become color managed. This is probably something Apple can address in one fell swoop with an iOS update, but since I'm not an iOS developer, I don't know the details. I suspect that lacking an iOS update on Apple's part, individual developers can work to make their apps color managed. Again, I don't know the details, but it wouldn't surprise me if lcms suddenly became a bit more popular.
There's also something we can do now in preparing our photos for the iPad.
Normally it's flat-out wrong to put a device-dependent color profile into a JPG image file, and in a classic case of “just enough knowledge to be dangerous”, any suggestion of doing so is a clear sign that someone has no clue what they're talking about. But I'm going to suggest it here.
I have created a device-dependent color profile for my specific iPad 1 (created, ironically, with a Spyder3 colorimeter from Datacolor), and I will use it when I export from Lightroom for my iPad. Currently it will be ignored by all apps I've tested (including the photo-viewing app I use), but since the image data is already exactly tailored to my device, the result should be as absolutely perfect as is possible to obtain. If iOS or my photo-viewing app suddenly becomes color managed, they'll use the color profile to realize that no conversion needs to be done, and I'll get the same perfect result.
Furthermore, if the iPad's build consistency is as solid as reported, the color profile I made for my iPad 1 will work very nicely for your iPad 1. But frankly, I don't trust that I have the skill and equipment to make the best “iPad 1” color profile possible, so before I update my Lightroom-to-iPad workflow article, I'm looking for a better source of profiles, perhaps one that can also provide profiles for the third-gen iPad and other iDevices as well. Any ideas?
One Last Caveat
I'll end this post with the admission that it seems so unlikely in this day and age that iOS is not color managed, and that the greater likelihood is that I'm simply making some stupid error, and that my complaints about iOS and SpyderGallery are undiluted ignorance on my part.
I'll be mortified and embarrassed if that's true, yet, somehow I hope it is. We'll see.
The rest of this article is just more funky/pretty pictures, though which (funky or pretty) depends on whether your brwoser is color managed, and, of course, personal taste.