How much dynamic range can a typical DSLR capture? The consensus on the net (1, 2, 3) seems to be that it’s about 9 f-stops. This figure is usually arrived at by photographing gray cards or black and white targets and checking if there is still a discernible difference between the different levels. I wanted to see what level of detail there is in those darkest f-stops and, in addition, check out if there’s any difference in the shadows between shooting RAW versus JPEG and between RAW processing in 16 versus 8 bits.
To this end I did the following: I set up a tripod in front of one of my bookshelves, determined the perfect exposure and then underexposed it by an increasing number of f-stops, shooting every exposure both RAW and JPEG on my Canon EOS 10D at ISO 100. All of them were taken at night with artificial light which did not change. This is how the scene looks like with the correct exposure (click for bigger version):
Supposing we have 9 f-stops of dynamic range we should be able to underexpose by 8 stops and still be able to make out the scene, at least its highlights. Of course, that last f-stop needs to be amplified, otherwise it’s too dark to see on a monitor. Here’s what it looks like when shot in RAW and processed in 16 bit:
Quite impressive! We can even go one step further and underexpose by 9 stops:
Noise and stripes become quite apparent here. It’s more or less a matter of taste whether what you see in that photo still constitutes detail or is mostly noise. If you say it’s detail then the 10D has 10 f-stops dynamic range. If it’s noise, it only has 9. There is no agreed-upon definition, so you’ll have to decide yourself.
The next question was how JPEG compares to RAW. Using the same techniques here’s what I got for an 8 f-stop underexposure with the default JPEG settings of the camera:
Not so hot! In the 9 f-stop underexposure there’s practically just green left, with lots of noise. JPEG becomes usable when underexposed by 7 f-stops:
I think it’s safe to say that using the default JPEG settings we have between one and two f-stops more dynamic range when shooting RAW. I don’t know if the JPEG dynamic range can be improved by fiddling with the settings and, to be honest, I don’t care. There’s already enough stuff to take care of when shooting, and RAW has other advantages as well.
My last question was whether it makes a difference if I import a RAW file with 16 bit depth versus 8 bit. Here is the scene shot with 10 f-stops underexposure and then readjusted in Photoshop, imported with 16 bit (top) and 8 bit (bottom):
I would have expected to see significant differences but there are none (apart from the slightly higher contrast in the 16 bit image which doesn’t reveal any detail we can’t see in the 8 bit image). The difference is even less (as is to be expected) when the underexposure is less severe.
To conclude: The Canon EOS 10D has a dynamic range of about 9 to 10 f-stops at ISO 100 when shot in RAW. In JPEG, it loses one to two stops. Importing RAW in 16 bit probably doesn’t make a difference.
As a bonus I also did this procedure with my Panasonic Lumix LX-1. The LX-1 does have a RAW format, but it’s a pain to use – the files are huge, take very long to write and are not buffered, so I only used JPEG, as I do in practice.
Surprisingly, the LX-1 performs better with JPEG compression (using the standard settings) than the 10D. Here are the shots underexposed by 7 (on the top) and 8 f-stops (on the bottom), both shot at ISO 80 (the lowest ISO setting on the LX-1):
I’d rate the LX-1 at close to 9 f-stops dynamic range at ISO 80 with JPEG compression. I had expected much less.