Open Source Brings High-End Canon 5D MK III Dynamic Range Closer to Nikon D800

One of my favorite open source projects these days is Magic Lantern, which is a “free software add-on” that “adds a host of new features to Canon EOS cameras that weren’t included from the factory by Canon”. One of ML’s newest features is a module named Dual ISO. Dual ISO takes advantage of the sensor in some of Canon’s high-end cameras (such as the 5D MK II and MK III) to allow the camera to capture an image in two different ISOs, greatly expanding the dynamic range of the camera. Think of it as “almost HDR”, but it’s all taken with only one shutter click, so you can use it on moving subjects, and at high speeds.

What is this useful for? By expanding the dynamic range, it allows you to recover shadows and detail with noticeably less noise. Lets say you’re shooting at ISO 100 around town and snap a photo from an alley, or with a very bright light source such as a sky. If you expose for that part of your composition, this would leave a significant number of shadows in the darker part of your photo that you’d either lose to silhouette, or would have to pull out in Photoshop, leaving you with some very noisy parts of the photo. You could take the shot with HDR or exposure bracketing to get more dynamic range, but then you’d need both a tripod, and your shot would likely become ghosted by any moving subjects, the wind, or whatever.

Enter Dual ISO. Dual ISO, with one click of the shutter, samples the sensor at two different ISOs. You can even use it in high-speed shooting, without losing frame rate. Each individual scan-line is interleaved as its sampled from the sensor, so you’re capturing one image with every other scan line at, say, ISO 100 for example, and the next scan line at ISO 800, 1600, or whatever you specify in ML. The result is a raw image where, if you zoomed in, you’d see horizontal bars showing where the two different ISOs were sampled:

Screen Shot 2014-03-04 at 1.32.30 PM

A simple command-line utility is then used to convert this interleaved raw file into a DNG file, using the same techniques that are used to merge HDR photos. This gets rid of the horizontal lines and balances the entire image out into what looks like a normal image.

What’s the result? Well, see for yourself. All four raws were generated @ 70mm, using ISO 100 f/5.6 1/10. I took all raws, adjusted the color temperature to match, and cranked the shadows and blacks up to 100%. No other editing was performed. The full image looks like this, before I pulled out the shadows.


With the shadows and blacks pulled out, we got your typical photo that might be corrected for underexposed shadows (Nikon D800).


To really push the limits, I set everything back to normal and increased the exposure by +4 in Photoshop. This is the ultimate, “I really screwed up the shot, I hope the client won’t notice” photo.


You can download the raws for all four camera configurations I tested at at this link.

Without Magic Lantern, Canon suffered horribly from this comparison. Just look at the 100% crops! (Click to enlarge, although sadly you don’t need to)


Lets look at some 100% crops now with ML in the mix. (Click to enlarge)


From left to right, first is the Canon 5D MK III at its standard ISO 100 (no dual iso). As you can see, the low light noise is ridiculously horrible. This photo probably wouldn’t even be usable. Shocked? Yeah, so am I. I thought the 5D3’s low-light would be much better. In my older tests, I was also shocked by how much chromatic aberration showed up in the Canon photos, especially considering that the Nikon lens I used was rated to be 10x worse with chromatic aberration than the Canon’s lens.

The photo second from the left is using ML’s Dual ISO feature @ 100+800. The noise is considerably less. By the third photo @ 100+1600, we have a much cleaner, and usable photo now. The portions of the sensor capture taken at ISO 1600 really brightened up the consolidated (remember, almost HDR) photo, so we can pull shadows out of it much better. lastly, on the end, we see the Nikon D800 @ ISO 100, which is just a smidge better than 100+1600, although most people probably wouldn’t ever notice. Magic Lantern is not available for Nikon cameras, but as you can see, the Nikon didn’t need any help. Its dynamic range is excellent, as was its low light performance. The ISO 100+1600 doesn’t quite offer the same dynamic range as the D800, as you can see in the difference in gradient and the slight difference in the definition of the shadows – but it’s barely noticeable. Regardless, it’s much closer (and more usable) than the 5D3 was naked. While the 100+1600 shot is cleaner, it also amplified the chromatic aberration in other tests, making the 100+800 possibly a better choice – but that all likely depends on the environment you’re shooting in.

Dual ISO can be used to greatly enhance high-end Canon cameras’ dynamic range, but as you can see is no substitute for better sensor technology. As I stated in a previous article, the Nikon D800 is biased toward studio and landscape photography, and it does incredible at it – while the Canon really excels as high-speed sports and events photography, thanks to its superior focusing system and its incredibly fast shutter speed. Because dual iso only works in RAW, you probably wouldn’t be apt to use it for action photography, but it certainly does improve the quality on virtually any other type of photography, especially if you’re walking around in an unfamiliar place, where one might need some extra forgiveness.

Thanks to Magic Lantern, however, these two excellent cameras are one step closer to each other in terms of image quality. In addition to Dual ISO, Magic Lantern also provides some other excellent capabilities, such as automatically locking up the mirror a few seconds before a shot (something Nikon has built-in as “exposure delay”, but normally requires a $120 cord to do on Canon), long bulb timer and intervalometer (also normally requiring a Canon timer cord), DOF bracketing (automatically bracketing photos at different apertures), focus peaking, trap focus, motion detect capable of capturing lightning, focus stacking, automatic lens fine-tuning (dot-tune), and a lot of other great features that even their highest end cameras don’t have – it makes your Canon a photog’s ultimate dream.

You can download the source code for Magic Lantern here. There is a special branch for the experimental (but very functional) 5D Mark III camera running the latest firmware 1.2.3. I’ve put a binary together here, which you can stick on an SD card and use after you enable the auto-boot flag using Magic Lantern’s official firmware bundle. While there are some binaries floating around, I’d recommend compiling it yourself, as new updates are being made on an almost daily basis.