Tuesday, February 27, 2007

Raw: The Adobe way, the Microsoft way and the Open way.

Photographers are reluctant hostages to proprietary Raw formats. Many have become vocal about this uncomfortable position as you can read on the OpenRaw site. In this over-long column I analyze the positions taken by Adobe and Microsoft vis à vis Raw, and indicate one Open way out of the Raw maze.

While I believe the industry, will continue to resist the imposition of any unique Raw format, I can suggest at least one method by which the current lock-in could easily be circumvented by the OpenRaw community. It involves copying Adobe's strategy by means of a free Raw converter called dcraw, and is detailed towards the end of this column.

With the Raw format there seem to be three ways the format inflation can be subdued: The Adobe way, the Microsoft way and the Open way. Let's look at all three.

Adobe's strategy is focused on ensuring that all the core technology for Adobe products be sourced in-house, and runs on all platforms equally well. Adobe has Thomas Knoll's innovative and proprietary ACR-based Raw conversion technology powering Photoshop's ACR Raw plugin.

I believe that all the technical gruntwork to incorporate the Raw format for a new camera format in ACR is done by Adobe. So since DNG has failed to be adopted by the market they have been forced to write I/O and decoding routines for a zillion different formats.

All this hard work has brought positive results for both Adobe and the end user: The resulting intellectual property is fully owned and maintained by Adobe. As a result, the quality of the code and the images it generates can be tuned by Adobe to their usual high standards across formats, bugs get fixed directly by Adobe, and the codebase can be updated and reused at will in Adobe's new products such as Lightroom.

Microsoft's strategy is focused on supporting very diverse hardware cheaply, and well. They achieve this by devolving responsibility to hardware makers: Each vendor supplies a basic decoding plugin for their format. This is similar to the printer market where each company supplies a driver disk which remains the third party vendor's responsibility.

Because the plugins are written directly by the camera makers, adding a new camera to the plugin library means zero additional effort for Microsoft — a significant advantage of this approach. Also, Microsoft does little maintenance work on the plugins.

But the Microsoft way also benefits the consumer: All third-party application programs running under Windows gain the ability to read Raw files, just as they gain the ability to print on any installed printer. The quality of the files is potentially very high because the camera makers can and will leverage all their proprietary technology into their drivers.

Alas, With both Microsoft and Adobe the customer's files are hostage to proprietary strategies.

In the case of Microsoft, the technology to read a format remains mediated by the binaries supplied by the camera makers, even though third party applications gain access to the plugin. This is not Microsoft's fault, but it does make the files hostage to the existence of the drivers.

In the case of Adobe, the proprietary ACR technology for the rendering of Raw is procedurally embedded in the ACR converter itself, and though the DNG file format is public the ACR source code is one of the company's closely guarded secrets So third party applications can decode the settings but not reproduce their effect.

So both camps are neither open nor future proof. If in the future a photographer cannot run the ACR software, or if the Windows plugins stop working, be it for licensing reasons or obsolescence, that photographer loses out.

Indeed, today already Adobe customers must regularly license new PS updates because old versions of ACR cannot read new camera formats.

Surely, there must be many open alternatives to these two approaches ? Let me suggest one avenue below:

David Coffin has written and maintains a GPL'ed Raw decoder called dcraw that can read just about anything. As he puts it: "Here is my mission: Write and maintain an ANSI C program that decodes any raw image from any digital camera on any computer running any operating system."

Dcraw is short (about 7000lines at present), portable and yields decent files. Indeed dcraw has been used extensively in both commercial and open-source graphics software. I can certify that dcraw provides decent, if not stellar, image quality.

I suggest the Open Source community and maybe even the OpenRaw guys write or commission dcraw plugins for Microsoft Windows and Adobe's software, so that dcraw becomes an additional input module to all existing and future software, thereby future-proofing it. In effect, dcraw would become the ACR of the open source community.

Some lobbying, as the OpenRaw movement could easily supply, would ensure that both large firms offer at least token cooperation for such an initiative, such that plugin SDKs would be made available. Technical competence to actually do the necessary programming is sufficiently available in the open-source movement.

Existing packages would then be forward compatible, as long as the dcraw code is maintained for their platforms by the open source community. A lifeboat may not offer the conveniences of an ocean liner, but it sure makes you feel better by just being there !



seanie said...

I find raw developer which incorporates dcraw as a very handy app to have alongside bibble. Eventually we should get a raw format that is universal. Maybe it'll be a hack, that can be uploaded to the camera, which would void the warranty on the camera. I don't know if that would be possible at the moment.

Anonymous said...

What would you say is the Apple way?

Anonymous said...

What is Apple's way of dealing with RAW / DNG?

Anonymous said...

In response to the post asking about Apple's way, Apple puts RAW support into the operating system itself. Apps like iPhoto and Aperture get their RAW support from OS X. At times they have been slower to support new cameras than Adobe has.

What I don't know about Apple's way is if non-Apple developers can also access OS X RAW support. I am also assuming that Apple engineers the RAW support for each camera themselves, but I don't know really.

robert edwards said...

Hi Edmund,

There soon there will be the ISOTC42/WG18 way:


-- Robert Edwards

blog said...

Adobe already uses dcraw (look at supported camera list and chronology of changes in both dcraw and ACR)