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

  1. 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.

    0

    Add a comment

  2. 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. These updates add support for these new cameras: Canon EOS-1D X Mark III, Canon EOS 90D, Canon EOS M50, Canon EOS M6 Mark II, Canon EOS Rebel SL3 (EOS 250D), Canon EOS R, Canon EOS RP, Canon EOS R5, Canon EOS R6, Canon PowerShot G5 X Mark II, Fujifilm XF10, Fujifilm GFX 50R, Fujifilm GFX 100, Fujifilm X-100V, Fujifilm X-A7, Fujifilm X-Pro3, Fujifilm X-T30, Fujifilm X-T4, Fujifilm X-T200, Leica Q2, Leica SL2, Nikon Coolpix P950, Nikon Coolpix P1000, Nikon D780, Nikon Z 6, Nikon Z 7, Nikon Z50, Panasonic DC-G90, Panasonic DC-G100, Panasonic DC-G110, Panasonic Lumix DC-G95, Panasonic DC-LX100 M2, Panasonic DC-S1, Panasonic DC-S1R, Panasonic DC-S5, Panasonic Lumix DC-FZ1000 II, Olympus OM-D E-M1X, Olympus OM-D E-M1 Mark III, Olympus E-PL10, Olympus OM-D E-M5, Olympus OM-D E-M10 Mark IV, Olympus TG-6, Pentax K1 II, Ricoh GR III, Sony DSC-RX100 VII, Sony A7 III (ILCE-7M3), Sony A7C (ILCE-7C), Sony A7R Mark IV (ILCE-7RM4), Sony A7S III (ILCE-7SM3), Sony a6100 (ILCE-6100), Sony a6400 (ILCE-6400), Sony a6600 (ILCE-6600),Sony HX99. 

    0

    Add a comment

  3. 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. However, for users of earlier versions of Windows, you can still purchase pcdMagic from the FastSpring webstore.
    2

    View comments

  4. 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:

    1. The camera name shows as "LEICA CL"
    2. The image data is 14-bit. There is no compression used in the DNG I looked at. 
    3. 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.
    4. In the DNG I looked at, which was shot with a "Summicron TL 1:2 23 ASPH." lens, lens correction is done by a single "WarpRectilinear" operation in the DNG. 
    5. In addition to the lens correction op code, there is also a "FixBadPixelsConstant" opcode, whose function is exactly as the name states. This is the same as in the Leica Q, SL, etc.
    6. Unusually, the DNGs all contain 2 different JPEG preview images in addition to the main raw image, one of 1620x1080, and finally a full sized preview of 6000x4000. Having the full sized preview is particularly odd, as it takes up a lot of space. In the approximately 45 MB files I've seen, the full size preview typically takes up about 1.8 MB. 
    So in summary, the DNGs appear to be a bit of a hybrid of the "SL", "Q", etc style of DNG, with a single lens correction opcode, and a bad pixels correction opcode, and of the "M10" style of DNG, with a full sized preview. As I noted in my analysis of the M10 DNG, the full size preview is probably there to support viewing on mobile devices that often don't have raw decoding capability built in. 

    Finally, it's notable that the DNGs don't contain the bizarre Lightroom XMP metadata that the M10 DNGs have embedded in them. 
    2

    View comments

  5. 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.



    0

    Add a comment

  6. 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.

    Well, now there is actually an independent third-party measurement available, from photonstophotos.net:


    And....(drum roll)....the improvement in DR between the M240 and the M10 is 0.55 stops. As I predicted back in January.

    You can a find whole lot more information, including a useful interactive graphing tool that allows you to compare cameras, on the photonstophotos.net site.
    0

    Add a comment

  7. 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:

    1. Decompile DNG Camera Profile (DCP) files in XML. The XML can then be read and edited with a simple text editor.
    2. Recompile edited XML into DCP files
    3. Remove "Hue twists" from camera profiles. 
    For more information on hue twists, see these posts:
    11

    View comments

  8. 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. Sean Reid, at Reid Reviews has done extensive testing on this as part of his various lens reviews, and his conclusions are clear - there is a measurable loss in sharpness.
    • Lens corrections result in some reduction in image size - the corrections inevitably result in the edges of the image curving, and the curved parts need to be trimmed off to get back to a straight edge.
    So sometimes, it's useful to be able to get an uncorrected image. Now there are some raw developer apps that allow you get to uncorrected images (AccuRaw EXR is one of them), but most mainstream apps such as Lightroom and Photoshop don't allow correction to be disabled.

    Fortunately though, there is a "simple trick" that will allow you to disable lens corrections for nearly any camera that produces raw images. What you need to do is a simple two step process:
    1. Firstly, convert the raw image to a DNG image, using Adobe's DNG converter.
    2. Then use DNG Cleaner (macOS only) to remove any opcodes.
    The resulting DNG will not have any lens correction, and you can load it into Lightroom, Photoshop, or any other app that supports DNGs.

    Why does this work? This works because whenever DNG Converter converts an image that needs lens correction, it embeds the required correction as an "opcode" into the DNG image. Lens correction opcodes as usually things like "WarpRectilinear". DNG Cleaner knows where to find these opcodes, and simply removes them, as long as you have the "Remove opcodes" checkbox selected:


    Note that in order for this to work, you need DNG converter to be using it's default settings. Specifically, Compatibility should be set to the most recent version of Camera Raw. You should definitely not be using Custom Settings with the "Linear" checkbox selected. "Linear", otherwise known as LinearRaw, bakes any corrections into the actual data in the DNG, making it impossible to remove.

    There's more information on the DNG Cleaner website.
    0

    Add a comment

  9. 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). For M10 DNGs this will remove:

    1. The full size image preview - that will save about 3MB
    2. The various Lightroom/Photoshop adjustments embedded in the XMP portion of the DNG - ISO dependent noise reduction settings, lens profiles, etc

    DNG cleaner will also optionally remove opcodes, and apply lossless compression. This isn't relevant to the M10, but in many other Leica cameras, e.g., the Q, the SL, etc, opcodes are used for lens correction. For an example of the SL's with and without lens correction, see my post on the subject. DNG Cleaner is what Sean Reid used to remove opcodes for his SL 50 review, which some of you will have seen.

    As ever, back up your files before using any app that is designed to modify them.

    For more information on DNG Cleaner, see the website.
    0

    Add a comment

  10. 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. As it turns out, that is a very useful feature to have if you're composting stills into video - it reduces the amount of work required for color matching.

    In the world of video, especially in the professional cinematography world, the "gold standard" is to use a format such as EXR, which is a floating point format. That allows huge flexibility in the way that post processing is done. So the new version of AccuRaw, now named AccuRaw EXR, supports EXR output.

    However, it's more than just a name change. In order to really support EXR output, AccuRaw has seen major changes internally - it now has a fully floating point, non-clipping workflow. For more on why that is important, see this post.

    1

    View comments

Popular Posts
Blog Archive
About Me
About Me
My Photo
Author of AccuRaw, PhotoRaw, CornerFix, pcdMagic, pcdtojpeg, dcpTool, WinDat Opener and occasional photographer....
Loading