I'd like to make some comments on the DNG format, from a raw software development perspective. I've been involved in writing Lumariver HDR, a DNG-supporting HDR software, longtime contributor to RawTherapee, an open-source raw conversion software which supports DNG, and now my own personal project DCamProf, a camera profiling software that can do both DNG profiles and ICC profiles for Capture One and others. So I know quite a bit of the internals of the format.
I've also reverse-engineered parts of the Phase One IIQ format, Leaf .mos format, Hasselblad 3FR format, and Kodak DCR format. Kodak was one of those companies that actually went out of business without ever releasing any documentation for their format by the way.
It's a popular view on the internet that it's easy to reverse-engineer raw formats and that we therefore DNG is unnecessary, just wait for some guy on the internet (someone like me) to reverse engineer. Well, reverse-engineering is an utmost waste of programming talent, and you can rarely be fully sure that you got it exactly right. In many cases you leave some aspects of the format unsupported. I certainly don't enjoy reverse-engineering, but as a MFD user and open-source user I've had to reverse-engineer just to be able to use my own gear.
Then we have the DNG format. I'm actually a little bit disappointed with it, from a technical aspect. It's not ideally composed for wide adoption in the industry, many aspects of it make it look like an Adobe-specific format rather than something anyone can adopt.
One rather provoking aspect is that many tags in the DNG spec are only weakly described in the documentation and are clearly just parameter settings for Adobe Camera Raw, such as the green split tag, which says: "This tag specifies, in arbitrary units, how closely the values of the green pixels in the blue/green rows track the values of the green pixels in the red/green rows." You can't have "arbitrary units" if you expect standard support, every tag must be precisely defined! There are many more examples of this.
The DNG format does not support much camera calibration data, frequently used in medium format camera formats such as IIQ and 3FR, things like flatfield correction. Adobe's own DNG converter solves this by cooking the file -- irreversibly applying the calibration data in the conversion process -- which is incompatible with some scientific applications where you indeed want the calibration data separate.
With the DNG format comes DNG camera profiles (DCP). These too have some issues:
- Can't alter hue/saturation of neutral axis (ICC can)
- LUT can't alter value of neutral axis (not really a problem of the format, but a problem of the ACR pipeline)
- Can't handle hue discontinuity (not really a problem of the format, but a problem of the ACR pipeline)
- Baseline exposure split between DNG file and DCP. This means that the camera profile can't specify the exposure offset on its own, but must relate to what tag the DNG converter has set. This is not good design.
- Blackrender not clearly defined how it affects rendering. A camera profile format that has tags of undefined meaning, and this is a central one -- not acceptable for a standard format.
- Matrices must be white-point preserving (generally what you want, but there are other ways to optimize a matrix)
- Color space cropped to ProPhoto primaries, which clips some of the human gamut (can be issue for scientific applications)
- White balance model built into the profile format, it's not a bad model but it's not so wise if you want others to adopt the format (which of course already have their own white balance models)
The whole DNG profile format is designed to work in an Adobe Camera Raw conversion pipeline with a ProPhoto primary RGB working space, and of course the given white balance model. I think Adobe should have excluded this from the format, or at least separate it more clearly so you could use DNG but instead use a different color conversion pipeline. You can of course by ignoring parts of the document, but if Adobe had wanted this to be adopted by others they shouldn't have integrated their own color model so deeply into the format.
That DNG profiles can't alter the neutral color, like making a Sepia look, Adobe has explained with that DCPs are intended for colorimetric corrections, not "looks", but that's not really true. Adobe don't make colorimetric profiles themselves, as soon as the tone curve is applied (all Adobe's profiles have tone curves, embedded or implicitly) the colorimetric idea is broken. They have indeed also added a LookTable (good!) which is intended to apply subjective looks. They should update their format to fully adopt the flexibility of both colorimetric and subjective renders that ICC profiles already have.
These are quite many issues, and I think Adobe would have to work with these in order to make the format more widely useful, rather than just being a format for Adobe Lightroom.
So my conclusion is that yes, I love the attempt to make DNG a widely adopted standard and I really don't like reverse-engineering formats, but DNG is far from perfect and I really think it needs more work to make it easier to adopt by others than Adobe themselves, both in terms of format but also the documentation.
Now the DNG format is like "here's how we do it (we didn't document it all though), take it or leave it". By putting some effort into it I think you can make a standardized raw format that can work for all the variety of raw conversion pipelines out there, and it's a zillion times better than having lots of different proprietary digital formats. But it's not only the others fault. We can't really demand manufacturers to adopt an Adobe-specific format, and today I think DNG is too much of that thing.
End of rant.