Last week I saw that Flash 10 is now color managed (with some caveats). It’s great to see Adobe taking this step. This reminded me that I had never properly discussed the color support that we added to HD View 3. Our philosophy in developing HD View was that we would enable the delivery of photos over the web with no limitations in dimensions, dynamic range, or color gamut. I’ve previously written about HD View’s support for gigapixel images and high dynamic range. In this post, I want to focus on the last point of gamut.
I won’t try to give a detailed background of the state of color management on the web. For that I refer you to an excellent summary written by Jeffrey Friedl. Jeffrey makes many good points in his article. He says that it is unfortunate that Internet Explorer is not color managed. I agree. I’m confident that this will be fixed, hopefully sooner rather than later. Since Windows and the web have evolved to this point without much color management, I will concede that it is difficult for IE to simply just turn it on now. Bobby Holley gives a good rundown of the issues (performance, bad monitor profiles and plugins) that he encountered during the development of color management in Firefox. I applaud the FF team for tackling this feature. They seem to be addressing the blocking issues by gradually introducing color management to their users. FF 3.0 had color support, but it was off by default (I would guess that most users don’t turn it on). It sounds like Firefox 3.1 will take the step of turning on color management but not for the entire web page, rather only for embedded photos that are tagged with profiles. When preparing photos for this new WWW of color managed browsers, it is important that your personal photo editing software also be color managed.
I’m happy to say that pretty much all Microsoft products in the photography space are color managed, including the Vista Photo Gallery, Windows Live Photo Gallery, and the Expression Suite. This will certainly help rout out the lingering bad display profiles that Holley talks about. Likewise, all of Adobe’s photo applications are, of course, color managed. Picasa currently does no color management. For users of that product, I encourage you to provide feedback to Google that this feature is important to you.
Perhaps one reason that we haven’t seen color management become more prevalent is that most computer monitors are very close to the sRGB color space. Not coincidentally, almost all JPEG images are also stored in this same sRGB space. This means that doing no color adjustment on photos (what Friedl calls "color stupid") looks approximately correct most of the time. I feel like this is about to change. Every major display vendor is unveiling wider gamut monitors–a few examples: Samsung’s MagicSpectrum product line, HP’s DreamColor line, and TrueLife RGB LED displays in Dell laptops. While these monitors are now fairly high-end, I believe that they will become mainstream within a few years.
To understand what a wide gamut monitor does, I need to introduce the requisite chromaticity diagram present in all articles about color. The blob of colors in the diagram is meant to show the range of colors that humans can see. The inner triangular region is representative of the range of colors of the sRGB standard. The outer triangle is the range of colors that another standard known as AdobeRGB contains. Note that the colors in this diagram are not accurate (no display can show the colors at the very fringe of the blob); rather, this is just meant to convey that AdobeRGB can represent more colors than sRGB, but neither represents all visible colors. All of the new generation monitors mentioned above claim to display the full AdobeRGB gamut. What that means is that "color stupid" applications (IE, Picasa, default settings of Firefox 3.0) will display photos, well, stupidly. With these applications, even if your photo is correctly tagged as sRGB, that won’t help. The new monitors are reporting to the operating system that they expect AdobeRGB, but the application is ignoring this and instead providing sRGB. What you end up with are images that look too colorful, because what was a saturated color (#FF) in sRGB is even more so in AdobeRGB.
So, why don’t these color standards just allow for all colors to be represented? The main reason is due to the bit depth limitations of image formats. JPEG is an 8-bit per component standard. This means that a color can have 256 levels of red, green, or blue. When sRGB was designed it was wisely determined that it was more important to spread those 256 levels over the most common colors rather attempting to stretch to also include the very saturated colors. In other words, the trade-off is that you can represent fine changes of color in a picture, but you can’t represent the extreme colors. There is quite a bit of debate among photographers and color experts about this point, for example see this article on sRGB vs. AdobeRGB.
Luckily, we won’t have to live with the 8-bit restriction of JPEG forever–HD Photo to the rescue. As I’ve written before, HD Photo supports 16-bit or 32-bit per color, while keeping the same efficient file size of JPEG. This means that we can now deliver 16-bit images over the web ,and a 16-bit image has 65,536 distinct levels of R,G, and B. We no longer need to trade off fine color steps versus extreme colors; we can have both! So, to best display a photo, you need an application that is both 16-bit-aware and performs color management. This is what HD View delivers.
HD View respects the color profiles on both the source imagery and the monitor. When using our Photoshop plugin, we encode the working color space from Photoshop and send that along with the image pixels (encoded using HD Photo) to HD View. We also allow you to export from Photoshop to HD View in 8-, 16-, or 32-bit mode. What all of this means is that the image you see in Photoshop will be preserved across the web. To see this in action take a look at the color examples on the HD View web page. These examples are meant to show that using HD View, you can see extreme colors while preserving the fine changes within those colors. (Note: your mileage may vary on the examples, as you need a calibrated monitor that goes beyond the sRGB gamut to see the full effect.) Lest you be concerned that all of this color manipulation comes at a penalty in application performance, remember that HD View uses your GPU to process the imagery. This allows HD View to pan and zoom on HDR, gigapixel images and perform color management all at 60 frames per second. Preserving color over the web this way is a marked change from the typical "export to web" process of today which usually involves converting to sRGB.
This brings me back to the Flash 10 announcement that I mentioned at the top. Flash 10 does indeed respect display profiles, however they have decided to only support sRGB source images. This may be the right design for today’s world where most monitors are still limited to sRGB. But it unfortunately limits what can be seen on the new generation of monitors. Effectively, this turns a spiffy new AdobeRGB-capable monitor back into an sRGB monitor. The authors of the Flash announcement made the statement that "[p]resenting your images through Flash is now the best way to preserve the fidelity of their color online." I may be misinterpreting what is meant by "color fidelity" here, but perhaps it is more accurate to say: Flash is now the best RIA for displaying the correct colors in sRGB images over the web. Due to the support of images with embedded profiles in Safari and Firefox 3.1, I think that those two applications do a better job preserving color fidelity. And thanks to the HD Photo and color management support in HD View, I will claim that HD View is the best way to preserve color fidelity when presenting your photos over the web to a Windows PC.