Tuesday, August 21, 2007

HD Photo: Not Too Shabby

You know that we here at fnord have a thing for file formats. Don't ask why, we just do.

Well, there's a new format coming down the pipe, and it's HD Photo. It looks like the format to rule them all, so of course it must come from Microsoft. And that's why it pains me to say this: HD Photo actually looks really great. You can try it right now by getting their free Photoshop plug-in.

There are very few other formats that you really need to keep around if HD Photo can do all it says it can. It has all the important features of JPEG 2000 (see our j2k plug-in), but without the high CPU overhead that's preventing JP2 from appearing inside a camera or a whole lot of of other places. And yet the compression appears just as good as JPEG 2000, all while adding one very important feature—floating point pixel support. In very un-Microsoft fashion, they're providing free source code so it can be implemented on non-Windows platforms and even trying to make it an official JPEG standard called JPEG XR. (I'm sure the name's similarity to "OpenEXR" is purely coincidental.)

HD Photo also has one other benefit JPEG 2000 never had: the world's most pushy software company pushing on its behalf. HD Photo will be in your computer at some point (it already is if you're running Vista), the only question is: will you use it? Eventually, you probably will.

Not that HD Photo does everything. The product manager (interviewed here) sees HD Photo as replacing RAW, but that's one format I don't see it usurping. The whole point of RAW is to let users make decisions themselves that are normally made by the camera, and for that you need the raw CCD data. But he's right that HD Photo will replace Raw for people who are using it only because they don't want to lose bits when their camera converts to TIFF or JPEG, and are otherwise just sticking with the camera's decisions. If a camera saves floating point HD Photo files, clipping, color gamut, and bit depth issues will be of no concern (although using up space on the memory card will). That's all assuming Microsoft convinces camera makers to adopt it, of course.

OpenEXR is somewhat safe from HD Photo, although one big feature that HD Photo includes is variable lossy compression in floating point that you can tune with a slider. Compare to B44 compression in EXR, which is also lossy, but not adjustable. I really wish OpenEXR had this.

OpenEXR will probably stay the preferred format of high-end production because it supports a few key features that HD Photo left out, such as unlimited image channels of varying data types. (For some reason HD Photo will only support 8 channels, which would only amount to 2 layers in an EXR.) Also, having ILM behind OpenEXR and a community of industry professionals contributing ensures that the format will continue to keep pace with real production needs, which MS could never promise. But like DPX before it, OpenEXR may one day be familiar only to the pros and just a funny name to casual HDR users.

Incidentally, with all that free source code from Microsoft, you might think that OpenEXR could just add HD Photo as a new compression type. Wrong! Microsoft has cleverly worded their license to say that the public HD Photo code can't be used to do anything except support the HD Photo format. While what you do in the privacy of your own home is up to you, ILM could never get away with copying those (patented) algorithms into the OpenEXR code base. (BTW, ILM does not have this restriction on the OpenEXR code—they let you use it for anything you want.)

So HD Photo sounds really great. It's nice to finally see something coming out of Microsoft Research besides Siggraph papers. And yet there's the rub—do you really want to switch over to a format based on Microsoft-controlled patents? They say they won't be enforced, but do you trust them? I know Bob Cringely never would.

1 comment:

Alex said...

Thanks for the heads-up, Brendan. That one seems to have gotten under most people's guard.