As usual when new Leica cameras come out, I took a quick look inside some DNGs from one of Leica's new M10 cameras. Usually, there's not much to see with Leica DNGs - they are typically text-book vanilla DNGs. But with the Leica M10, things are bit more interesting.

The first thing to note is that I obtained sample DNGs from three sources; these three sources will become important later. The sources were:
  1. From the DPReview site.
  2. The "performance proofs" from the official Leica site.
  3. Some shots from a demo camera, shot by "Tobers".

What's in the DNGs

Firstly, let's talk about what's in the files:
  1. There is no version number for the camera firmware in the majority of files. In those where a version number does exist, it is 1.0.1.0. Having a firmware version number isn't a requirement, but is certainly considered to be best practice. All previous Leica cameras did have a firmware version number.
  2. The camera name shows as "LEICA M10"
  3. The image data is 14-bit.
  4. All of the files use lossless JPEG compression 
  5. The DNG version is 1.4, with a "backward version" of 1.3. This is the same as most current generation Leica cameras.
  6. In the DNGs I looked at, there are no "opcode" lens corrections, as seen, for example, in the Leica Q. 
  7. In all files, there is a embedded named DNG camera profile, or at least parts of one. The profile is named "LEICA M10              ". Note the large number of trailing spaces. 
  8. Unusually, the DNGs all contain 3 different JPEG preview images in addition to the main raw image, one of 1440x960, one of 160x120, and finally a full sized preview of 5952x3968. Having the full sized preview is particularly odd, as it takes up a lot of space. In the approximately 25-30 MB files I've seen, the full size preview typically takes up about 1.8 MB. I discuss the possible reasons for this later.
  9. The color matrix doesn't appear very similar to that from the Leica SL. So the likelihood is that speculation that the sensor is the same as that in the SL is probably incorrect. 
  10. The profile has a "Looktable". Looktables allow color transforms. For more info see my blog posts on the subject. However, it's a very strange looktable - see below.
  11. There is EXIF data for the lens, which is new. However, it's broken - see below.
  12. All the files had XMP data in them, but what that was there varied - see below.

What's not in the DNG

Some users will be disappointed that there's not an estimated as-shot aperture (or f-stop) in the DNG. Leica have flipped-flopped on this - back in the days of the M8, the estimated aperture wasn't written to the DNG, but could be calculated from the "blue dot" data in the makernotes. I set up CornerFix to read that information, and add the estimated aperture to the DNG, and later Adobe added the ability to read the "blue dot" information to Lightroom as well. In later models, Leica relented, and added the estimated aperture to the DNG. But now it seems to have gone again. And no, the "blue dot" information is no more, so CornerFix won't help you. The information is probably hiding in the makernotes somewhere, but it will take some detective work to root out.

The strange looktable

ProfileLookTableDims: Hues = 3, Sats = 2, Vals = 1
ProfileLookTableData:
h [ 0] s [ 0]: h= 0.0000 s=1.0000 v=1.0000
h [ 0] s [ 1]: h= 0.0000 s=1.0000 v=1.0000
h [ 1] s [ 0]: h= 0.0000 s=1.0000 v=1.0000
h [ 1] s [ 1]: h= 0.0000 s=1.0000 v=1.0000
h [ 2] s [ 0]: h= 0.0000 s=1.0000 v=1.0000
h [ 2] s [ 1]: h= 0.0000 s=1.0000 v=1.0000
ProfileLookTableEncoding: Linear
  This is the looktable. Perfectly formed and valid, but does nothing at all. So what's it doing there?

The broken lens EXIF data

One of things that I do to all new DNGs is to run them through Adobe's DNG validation tool. The M10's threw the following warning:
*** Warning: Possible MaxApertureValue conflict with LensInfo ***
The reason for this can be found in how the lens shows in the LensEXIF tag:

24.0 mm f/248.0
In reality, the lens is a Summilux-M 1:1.4/24 ASPH.

Lots of (different) XMP data

As mentioned above, the various image files contained different XMP data. Firstly, by way of background, XMP stands for Extensible Metadata Platform (XMP). XMP is an ISO standard, originally created by Adobe, to allow metadata to be embedded in images, PDFs, etc. Unsurprisingly, Adobe's DNG format explicitly supports XMP data, although it's very rarely found in camera generated images. It is very often found in images that have been processed by Adobe Lightroom or Photoshop. Both Lightroom and Photoshop use XMP to store adjustments, etc directly to DNG files. So for example, in a DNG that has been processed through Lightroom, you might find something like:
XMP:    crs:Temperature="3500"
XMP:    crs:Tint="+24"
XMP:    crs:Saturation="0"
XMP:    crs:Sharpness="29"
This sets the sharpness setting to 29, etc. For a "normal" raw file, Adobe stores this information in separate "sidecar" files.

Lightroom also leaves a history of what's been done to an image in the XMP, so for example:
XMP:      
XMP:    
XMP:      XMP:       stEvt:action="converted"
XMP:       stEvt:parameters="from image/dng  to image/dng"/>
XMP:      XMP:       stEvt:action="saved"
XMP:       stEvt:instanceID="xmp.iid:691e10f8-fb5a-4bc0-8465-cca0e0319c13"
XMP:       stEvt:when="2017-01-11T11:52:07-08:00"
XMP:       stEvt:softwareAgent="Adobe Photoshop Lightroom 6.8 (Macintosh)"
XMP:       stEvt:changed="/metadata"/>
XMP:      XMP:       stEvt:action="saved"
XMP:       stEvt:instanceID="xmp.iid:e90503e6-47da-4388-943e-4643d6307c35"
XMP:       stEvt:when="2017-01-11T16:05:29-08:00"
XMP:       stEvt:softwareAgent="Adobe Photoshop Camera Raw 9.8 (Macintosh)"
XMP:       stEvt:changed="/metadata"/>
XMP:    

XMP:    
This (ostensibly) shows that the image in question was converted by Adobe Lightroom 6.8. So it's not something you'd expect to find in a camera generated DNG, unless that DNG had been somehow processed though Lightroom. But in fact:
  • The Lightroom "fingerprints" above are present in the M10 DNG files from both DPReview, and Leica's own performance proofs.
  • But the images shot on the demo camera don't have Lightroom fingerprint in them. They do have an XMP placeholder, basically an empty XMP header, but no Lightroom adjustment information, etc
It is also the Lightroom fingerprint that is responsible for version numbers  not being present in most files; in the files where the fingerprint is present, the "Software" tag that usually holds the Leica version number has been overwritten with "Adobe Photoshop Lightroom 6.8 (Macintosh)".

Lightroom/Photoshop noise reduction settings vary depending on camera settings

The Lightroom/Photoshop settings will be what's loaded when one of these files is imported into Lightroom for the first time. Note also that these settings can vary depending on camera settings. So, for example, noise reduction setting appear to vary by ISO (or perhaps some other camera setting):

For an 800 ISO image:
XMP:    crs:LuminanceSmoothing="0"
XMP:    crs:ColorNoiseReduction="25"
But for an 6400 ISO image:
XMP:    crs:LuminanceSmoothing="25"
XMP:    crs:ColorNoiseReduction="25"
So Lightroom is being told to do stronger noise reduction at higher ISOs. Of course, other Lightroom setting may also vary depending on other camera settings.

And then there's the lens profile.....

Just confuse things a bit further, the XMP data that has the Lightroom "fingerprints" in it also has lens profile information, for example:

XMP:    crs:LensProfileSetup="LensDefaults"
XMP:    crs:LensProfileName="Adobe (Leica SUMMILUX-M 35 mm f/1.4 ASPH.)"
XMP:    crs:LensProfileFilename="Leica Camera AG (Leica SUMMILUX-M 35 mm f1.4 ASPH.) - RAW.lcp"
By way of background, in the world of DNGs and Adobe Lightroom/Photoshop, there are two separate way that lens corrections can be applied:
  1. By opcodes embedded into DNGs. This has been extensively used by Leica for their point and shoot cameras, e.g.,  the Leica Q, as well as the Leica SL. But never for M class cameras.
  2. Via Adobe lens profiles, applied via Lightroom or Photoshop. Generally these have to be installed on the computer that LR/Photoshop is running on. It's this kind of profile information that's embedded in the XMP - not actual lens correction data, but simply a reference to a file that contains the lens correction data.
However, this is a strange thing to put into an camera generated DNG. You can't really be sure that the named profile will be installed, and having a lens profile in the XMP will probably result in that profile being loaded by default, which not all users will be happy with. Also, it will only have an effect if the user is using Adobe software. But given that the profile matches the lens actually on the camera, this seems to be deliberate on Leica's part.

So what's going on here?

So all of this begs the question of what's going on here. It is the case that the M10's DNGs don't show the usual Leica perfectionism - rather they look as if firmware development for the M10 was rushed, and not much quality control was done. It's possible, although I think unlikely, that both DPReview and Leica posted images that actually had been modified by Lightroom in exactly identical ways. But some elements of what I've discussed here clearly are deliberate. I certainly don't know what's in Leica's head, but here are some hypotheses. Aka., guesses:

Firstly, I think it's very likely that both the full size preview image and the "Lightroom XMP data" are there to support the Leica M App:
  • The full sized preview image is there to allow the user to see the image at full size, even if at relatively low quality. Bear in mind that even today there are only a handful of apps on the App store, e.g., PhotoRaw, that can reliably do a raw conversion on an iPhone or iPad. 
  • The "Lightroom XMP" data is almost certainly primarily there to enable one of the Leica M App's features - being able to rate images and have those ratings transfer to Lightroom. The technique of "fooling" Lightroom by injecting what looks like a complete set of Lightroom adjustments was used for the same purpose by e.g., Photosmith. 
  • In addition to enabling ratings, the "Lightroom XMP" is also used to setup Lightroom into what Leica seem to consider to be an optimal configuration, with ISO dependent noise reduction, the lens profiles, etc.
Secondly, I think a possible reason why there are some image files with the "Lightroom XMP" information, and some without, may relate to how the files were transferred and/or what camera setting were used. Quite possibly the Lightroom XMP info either is only added if the file is transferred by WIFI/the Leica app but is not added if the image is transferred via an SD card, or is only added if the image is rated. In this regard it's notable that the creation and modification dates in the DNGs are sometimes different, strongly implying that the XMP was injected at some time after capture. Hopefully once the camera becomes available, someone will be able to do some testing and verify exactly what's happening. But there may be other explanations for this as well. Notably there may be different firmware versions in the wild - bear in mind, most files don't have a firmware version code, so there's no way to tell whether we're comparing the same firmware revision.

Why is there a lens profile, noise reduction settings, etc  embedded in the Lightroom XMP data? Well, I guess someone though it was a convenience. My view however is that's its likely to cause more trouble than it's worth.

Finally of course, all of these difference may just be bugs in the firmware. However, I think that's unlikely. For example, the fact that the lens profiles match to the lens attached tends to indicate that at least some of this is deliberate. But of course, as soon as a new firmware version comes out, all this may change. And Leica typically introduce new firmware versions within a month or two of a camera's initial introduction.

If and when someone gets hold of a camera long enough to do some tests, I'll update this post.

Updated: I've created a tool to clean up the M10 DNGs. This will remove the full size preview and the adjustments in XMP.

Note: This post has been updated with new information since it was first published.

6

View comments

Good news in a difficult year - all the macOS apps that I support - AccuRaw EXR, AccuRaw Monochrome, pcdMagic, CornerFix, dcpTool (both the GUI and command line version), DNG cleaner and pcdtojpeg - now are all available with native Apple Silicon versions for blazing fast performance on Apple's new "M1" processor. Download are in all the usual places.

Enjoy.

There's a whole slew of new camera support, including for Canon's new CR3 format.

Updates of AccuRaw EXR, AccuRaw Monochrome, PhotoRaw are now available on the Apple App Store.

pcdMagic for Windows - the only currently available app that can convert Kodak Photo CD images with correct color and at full resolution - is now available on the Microsoft Windows Store.

This great news for users:

The Windows Store version has a free trial mode that allows the app to be tested without any commitment. The Windows store handles all updates automatically. There's no need to keep track of license codes. The Windows store only supports the latest versions of Windows 10.
2

As usual when new Leica cameras come out, I took a quick look inside a DNG from one of Leica's new Leica CL  cameras:

The camera name shows as "LEICA CL" The image data is 14-bit. There is no compression used in the DNG I looked at.  The DNG version is 1.4, with a "backward version" of 1.3. There is a reason for this - DNG 1.3 allows for opcodes, which Leica use for lens correction.
2

So finally, after many years of searching, I have an answer to the question that torments all who go down the digital color rabbit hole.

This is from XKCD, brought to my attention via an article on the Digital Transitions website about the Phase One IQ3 100mp Trichromatic.

Back in January, when the new Leica M10 was introduced, there were claims that the improvement in dynamic range from the Leica M240 to the M10 was of the order of 1.5 to 2 stops.  At the time, I wrote that just by eyeballing the published images, I believed the improvement to be "closer to 0.5 stops than 1.5-2".

Much to my surprise, given what I had thought to be just a basic explanation of why dynamic range is a tricky concept, the post generated a lot of push-back. And I mean a LOT.

dcpTool has been available for quite a while as a command line application for Windows and the Mac. But now it available in the form of an easy to use Mac app, with powerful batch processing capabilities. dcpTool for the Mac is available from the App Store.

dcpTool allows you to:

Decompile DNG Camera Profile (DCP) files in XML. The XML can then be read and edited with a simple text editor. Recompile edited XML into DCP files Remove "Hue twists" from camera profiles.
11

Many cameras embed lens corrections into raw the raw files that they produce. Generally, that's a good thing - straight lines stay straight, etc. For an example of lens corrections in practice, take a look at this post about the Leica SL.

But, as the saying goes, "there is no free lunch". Lens corrections also have some downsides:

Lens corrections result in a small reduction in sharpness.

Those of you that have read the Leica M10 raw file analysis post will know that M10 DNGs have more baggage in them that is typically the case for a Leica DNG. I've put together a little app to clean them up, called DNG Cleaner (Mac only for the moment).

AccuRaw users might have gotten a bit of a surprise recently - AccuRaw has turned into AccuRaw EXR, and is now at version 3.

The reason for the name change is that the focus of the AccuRaw product has changed a bit, based on what users were actually doing with it. AccuRaw has always been focussed on having highly linear color response, with no "hue twists" or other surprises in the color rendering.
1
Popular Posts
Blog Archive
About Me
About Me
My Photo
Author of AccuRaw, PhotoRaw, CornerFix, pcdMagic, pcdtojpeg, dcpTool, WinDat Opener and occasional photographer....
Loading