Dynamic Range

Dynamic Range (DR) is the range of exposure, i.e., scene brightness, over which a camera responds with good contrast and/or a good Signal-to-Noise Ratio (SNR).

Dynamic Range units
Unit Scaling Notes Used by
f-stops log2; Factor of two also called zones or EV (Exposure Value);  Photographers
decibels (dB) 20 log10 1 density unit = 20dB; one f-stop = 6.02dB electrical engineers
density units log10; Factor of ten 1 density unit = 3.322 f-stops optical scientists

 

Sensor vs. System Dynamic Range

Measured system dynamic range is typically less than the sensor dynamic range specified in manufacturer’s data sheets, primarily because of flare light in the lens— stray light reflected between lens elements and off the barrel (on the interior of the lens) that fogs the image and sometimes causes “ghost” images. Different chart designs have different density distributions, hence different amounts of lens flare. Some sensor manufacturers claim dynamic ranges over 120dB (for special High Dynamic Range (HDR) sensors), but no camera system we know of (where light has to pass through optics) reaches that level of performance. (100dB is about as good as we’ve heard of (summer 2016).)

Sensor dynamic range can be measured from absolutely raw images (no demosaicing or processing of any kind) with Multicharts or Multitest using the technique described in Multicharts/Multitest/eSFR ISO Noise. It can also be measured with a sequence of flat field exposures (often involving calibrated neutral density filters). These measurements should not be confused with a camera system measurements (especially for HDR systems) because each image has essentially zero dynamic range, and hence don’t correspond to real scenes in real cameras.

ISO 15739:  The dynamic range corresponding Scene-referenced Signal-to-Noise Ratio SNRscene = 1 (0dB) corresponds to the intent of the ISO 15739 Dynamic range definition in section 6.3 of the ISO noise measurement standard: ISO 15739: Photography — Electronic still-picture imaging — Noise measurements. The Imatest DR measurement differs in several details from ISO 15739 (though we do measure ISO 15739 Dynamic Range); hence the results are not identical. Imatest may well produce more accurate results because it measures DR directly from a transmission chart, rather than extrapolating results for a reflective chart with maximum density = 2.0.

Imatest Dynamic Range modules and measurements
Measurement Modules Description
Dynamic range from a single transmissive chart image. Stepchart, Multicharts, Multitest A transmissive chart is such as the Imatest 36-patch Dynamic Range or HDR chart is required because reflective charts do not have sufficient tonal range.
Dynamic range from multiple (differently exposed) images Dynamic Range Postprocessor module Uses CSV output of Stepchart of Multitest for several differently exposed images. Usually used with reflective charts, but transmissive charts may also be used.
ISO 15739 Dynamic Range from patch with density ≈ 2 Multicharts, Multitest, eSFR ISO Extrapolates Dynamic Range from a single patch with density ≈ 2.
Raw sensor Dynamic Range Multicharts, Multitest Fits raw data to an equation from the EMVA 1288 standard, then extrapolates to find DR. The test chart does not have to have as large a tonal range as the DR, but transmissive charts with tonal range ≥ 3 are recommended.

 

Transmission step chart

 

The most straightforward way to measure a camera’s (or scanner’s) dynamic range is with a transmission step chart illuminated from behind by a lightbox (taking care to minimize light reaching the front of the chart). Reflection step charts such as the Kodak/Tiffen Q-13 or Q-14 are inadequate because their density range of around 1.9 is equivalent to 1.9 * 3.32 = 6.3 f-stops, well below that of digital cameras (although they can be used to measure Dynamic Range from several different exposures combined in the Dynamic Range postprocessor for Stepchart and Multitest).

The table below lists several transmission step charts, all of which have a density range of at least 3 (10 f-stops). All except the Imatest and TE 241 charts are linear (one row of patches), and may suffer from vignetting (light falloff) as a result. All except the Imatest charts have dark backgrounds, which makes is difficult to achieve correct exposure in autoexposure systems.

Transmission step charts
Product Steps Density increment Dmax Size
Imatest 36-patch Dynamic Range
test chart (recommended)
36 ~0.10 (1/3 f-stop);
Reference file included
3.4 8×10″
Imatest 36-patch High Dynamic Range
test chart  (also recommended)
36 ~0.10 – 0.30 (1/3 – 1 f-stop);
Reference file required
>6 8×10″
Kodak Photographic Step Tablet No. 2 or 3.
Calibrated or uncalibrated (which is usually sufficient).
21 0.15 (1/2 f-stop) Linear pattern 3.05 1x5.5″ (#2)
larger (#3)
Stouffer Transmission Step Wedge T2115 21 0.15 (1/2 f-stop) Linear pattern 3.05 0.5x5″
Stouffer Transmission Step Wedge T3110 31 0.10 (1/3 f-stop) Linear pattern 3.05 3/4x8″
Stouffer Transmission Step Wedge T4110 41 0.10 (1/3 f-stop) Linear pattern 4.05 1x9″
Danes-Picta TS30D  (Digital Imaging page) 28 0.15 (1/2 f-stop) Linear pattern 4.2 (0.4x9″)
DSC Labs 72-dB 13-step Greyscale 13 0.30 ( 1 f-stop) Linear pattern 3.7 (large)
Image Engineering TE 241 20 from table; large steps in dark regions
Circular pattern of squares
4.1 (large)

The Imatest 36-patch Dynamic Range test chart, with density steps of approximately 0.1 from base density to base+3.4 (an 11.3 f-stop range) or the 36-pach High Dynamic Range (HDR) test chart, with density steps from 0.1 to 0.3 and a maximum density of at least base+6 (20 f-stops), are strongly recommended. A nearly circular patch arrangement ensures that vignetting has minimal effect on results. A CSV or CGATS reference file with actual densities (required with the HDR chart) is supplied. the chart has an active area of 7.75×9.25 inches on 8×10 inch film.

It also contains slanted edges in the center and corners with 4:1 contrast for measuring MTF. Registration marks make the regions easy to select, and fully automated region detection is available in Imatest 4.0+. A neutral gray background helps ensure that the chart will be well-exposed in auto exposure cameras (compared to charts with black backgrounds, which are sometimes strongly overexposed).

Imatest 36-patch Dynamic Range chart
on 8×10 film. Dmax ≈ 3.4.
ithdr36Imatest 36-patch High Dynamic Range chart
on 8×10 film. Dmax > 6.0.

This chart is produced with a high-precision LVT film recording process for the best possible density range, low noise, and fine detail.

The standard 36-patch Dynamic Range chart can be used with the Dynamic Range postprocessor to measure dynamic ranges larger than 11 f-stops if several manual exposures are available. Dmax = 3.4 is sufficient for camera phones and digital cameras with small pixel sizes, but high-end DSLRs and HDR security and automotive cameras generally have higher dynamic ranges, which makes them well suited for measurements with either Dynamic Range or the HDR chart (which never requires the Dynamic Range postprocessor).

Lightbox

s_Lightbox_Front_WithHDR_480WYou’ll need a lightbox that can evenly illuminate the transmission step chart. 9×12 inches is large enough in most cases. Avoid thin or “mini” models, which may not have even enough illumination. Fluorescent light boxes should have high frequency ballasts to eliminate flicker.

Our recommended lightbox is the ITI LED Lightbox (shown on the right with the 36-patch HDR chart), available from the Imatest store. It has several advantages over the lightboxes mentioned in the previous paragraph.

  • Much more uniform illumination: ~97% uniformity.
  • High quality spectral response. The standard version allows you to choose between 3100K and 5100K color temperature with a Color Rendering Index (CRI) of 97. Other color temperatures are available as options.
  • Intensity is adjustable via a hardware knob, Bluetooth, or USB from 30-10,000 lux: a range of over 300:1, making it suitable for measurements from near-daylight to extremely dim light.

Several lightboxes are available from the Imatest Store. There are compared in the Lightbox Comparison Guide.The GLE-10 and GLE-16E have well controlled color temperatures. The Artograph LED light boxes model) are nice because they’re inexpensive, flicker-free (DC power supplies) and easy to dim (if you have a current-limited DC power supply), but they are not reliable for color measurements.

Imatest Dynamic range is defined in two ways (both displayed in Stepchart, Multicharts, and Mutitest).

Quality-based

the  range of exposure where

  • the pixel level is below 98% of the saturation level (250 for 8-bit systems, which have a maximum of 255), and
  • the scene-referenced Signal-to-Noise Ratio (SNRscene) is greater than a specified minimum amount (Imatest calculates DR for the four levels shown on the right). The higher the SNRscene (the lower the noise) in a region, the better the image quality.

SNR tends to be worst in the darkest regions. Recommended in most cases.

SNRscene = 10 = 20dB;  high quality
SNRscene =  4  = 12dB   medium-high quality
SNRscene =  2  = 6dB;    medium quality
SNRscene =  1  = 0dB;    low quality
Slope-based
(introduced in Imatest 4.4)

The range of exposure where slope of the density curve is greater than 5% of the maximum slope (on the dark side) and less than 98% of the saturation level (on the light side)

This has to be done with care since noise and irregular density steps in the original data affect patch levels, and hence slope measurement. Test chart density is interpolated to have 101 evenly-spaced points, then the log pixel level for these points is found using the Matlab interp1 function. The curve is smoothed using a rectangular kernel 9 points wide (approximately 1/11 of the total range).

This algorithm gives stable, robust results, much better than earlier (pre-4.4) Patch range and detected DR measurements. This method is not typically used for pictorial imaging because noise can be severe in the darkest regions.

 

Imatest Dynamic Range modules and measurements
Measurement Modules Description
Dynamic range from a single transmissive chart image. Stepchart, Multicharts, Mutitest A transmissive chart is such as the Imatest 36-patch Dynamic Range or HDR chart is required because reflective charts do not have sufficient tonal range.
Dynamic range from multiple (differently exposed) images Dynamic Range module Uses CSV output of Stepchart of Multitest for several differently exposed images. Usually used with reflective charts, but transmissive charts may also be used.
ISO 15739 Dynamic Range from patch with density ≈ 2 Multicharts, Multitest, eSFR ISO Extrapolates Dynamic Range from a single patch with density ≈ 2.
Raw sensor Dynamic Range Multicharts, Multitest Fits raw data to an equation from the EMVA 1288 standard, then extrapolates to find DR. The test chart does not have to have as large a tonal range as the DR, but transmissive charts with tonal range ≥ 3 are recommended.

Imatest modules for measuring Dynamic Range

 

Measuring dynamic range

  • Place the chart on the lightbox— or any source of uniform diffuse light. Be sure to block direct light from the lightbox outside of the chart: Stray light can reduce the measured dynamic range; it should be avoided.
  • Photograph the chart in a darkened room. No stray light should reach the front of the target; it will distort the results. The surroundings of the chart should be kept as dark as possible to minimize flare light.
  • Use your camera’s histogram to determine the minimum exposure that saturates the lightest region of the chart. Overexposure (or underexposure) reduces the number of useful zones. The lightest region should have a relative pixel level of at least 0.98 (pixel level 250 or 255); otherwise the full dynamic range of the camera will not be detected. If the lightest zone is below this level, and a transmission chart is selected, a Dynamic range warning is issued.
  •  

    For flatbed scanners with transparency units (TPUs, i.e., light sources for transparencies), you can simply lay the step chart down on the glass. Stray light shouldn’t be an issue, though there is no harm in keeping it to a minimum. 35mm film scanners may be difficult to test since most can only scan 36mm segments. (Most transmission targets are longer.)

  • Follow the instructions in for running Stepchart., Muticharts, or Multitest. Be sure to select the correct chart type in the settings window. All the programs support a variety of linear (single row) and nonlinear (multiple row; often in a circular arrangement) charts.

Here are Stepchart results for the Panasonic G3 (a Micro Four-Thirds camera with 3.75 micron pixel pitch) at ISO 160, converted from raw using dcraw with the following settings: Demosaicing: Normal RAW conversion (demosaiced), Output gamma: 2.2, White Balance: Camera, Output color space: 48-bit, Quality: Default.

Panasonic G3, ISO 160, Converted with dcraw.

The slope-based dynamic range is greater than 11 f-stops. The Dynamic Range at low quality level (scene-referenced SNR = 1 = 0dB) is 9.33 f-stops, decreasing to 5.68 f-stops at high quality level (SNR = 10 = 20dB). These results are unchanged for 24-bit raw conversion.

The shape of the response curve is a strong function of the conversion software settings. The plot below is for the same exposure, saved as a JPEG file inside the camera. Note that the transfer curve is quite different: it has a “shoulder” in the highlights, which improves pictorial quality by reducing the tendency of highlights to saturate (“burn out”). Dynamic Range is increased due to software noise reduction (absent in the dcraw conversion).

Panasonic G3, ISO 160, in-camera JPEG. Note the “shoulder.”
Dynamic range is improved due to software noise reduction.

In Stepchart, units for displaying Dynamic Range can be set in the X-axis scale (Figs 2-4) and Dynamic Range units (Fig. 2) dropdown menu. To convert dynamic range from f-stops into decibels (dB), the measurement normally given on sensor data sheets, multiply the dynamic range in f-stops by 6.02 (20 log10(2)). The dynamic range for low quality (f-stop noise = 1; SNR = 1) corresponds most closely to the number on the data sheets. (A valid sensor Dynamic Range measurement requires completely raw images.)


Technical details

What is scene-referenced noise and Signal-to-Noise Ratio (SNR)?

Scene-referenced noise and SNR (measured relative to the scene rather than to the image pixel levels) are used by imatest for measuring dynamic range because they are independent of the camera’s gamma-encoding (contrast), which is applied as a part of the image processing pipeline.

In calculating scene-referenced noise and SNR we need consider the behavior of the human eye, which responds to relative changes of illumination. For example, doubling or halving the illumination (multiplication by 2 or 1/2) results in a similar perceptual change. That’s why we think of exposure in terms of zones, f-stops, or EV (exposure value), all of which correspond to factors of two change in exposure. The eye’s relative sensitivity is expressed by the Weber-Fechner law, ΔL ≈ 0.01 L –or– ΔL/L ≈ 0.01 where ΔL is the smallest luminance difference the eye can distinguish. (This equation is approximate; effective ΔL tends to be larger in dark areas of scenes and prints due to visual interference from bright areas.)

f-stop noise

Expressing noise in relative exposure units, such as f-stops, where f-stop = k log2(exposure), corresponds more closely to the eye’s response than standard pixel or voltage units. Noise in f-stops is obtained by dividing the noise in pixels by the number of pixels per f-stop. (I use “f-stop” rather than “zone” or “EV” out of habit; all are equally valid.)

f-stop noise = (Noise in pixels) / (d(pixel level)/d(f-stop))
           = (Noise in pixels) / (Δ(pixel level) / Δ(-chart density/0.301))

where d(pixel)/d(f-stop) is the derivative of the pixel level with respect to exposure measured in f-stops = log2(exposure). Note that d(f-stop) = d(k log2(exposure)) = 1.44274k d(loge(exposure)) = 1.4427k d(exposure)/exposure. Dropping the 1.4427k factor and noting that exposure is the signal level,

f-stop noise = (Noise in pixels) / (d(pixel level)/d(exposure) * exposure)   where exposure is the signal level. Hence,

Scene-referenced Signal-to-Noise Ratio = SNRscene = exposure / ((Noise in pixels) / d(pixel level)/d(exposure))
          = 1/(f-stop noise)

 

The above image illustrates how the pixel spacing between f-stops (and hence d(pixel)/d(f-stop)) decreases with decreasing brightness. This causes f-stop noise to increase with decreasing brightness.

Since scene-referenced noise and SNR are defined relative to the scene exposure and are independent of image processing or pixel levels, they are universal measurements that can be used to compare digital sensor quality when sensor RAW data is unavailable. They play a key role in Imatest’s diverse dynamic range calculations.

How is incident light measured?

Incident light has to be measured to obtain the camera’s Exposure Index (ISO Speed).

Reflective charts: Incident light measurement is relatively straightforward. Place an incident illumination meter with a flat diffuser (such as the inexpensive BK615) just in front of the chart, pointed towards the camera, making sure not to block any of the illumination. Use the lux measurement directly.

Transmissive charts: These are not so straightforward: the lux measurement cannot be used directly. You will need to measure a clear (white) area of the chart (not the lightbox itself). For meters like the BK 625, where you can switch the orientation of the sensor, set it to point towards the light source (on the opposite side from the display). Measure the illumination in a white area of the chart. For the 36-patch Dynamic Range chart, use the lightest grayscale patch. You need to make an adjustment because the input to Imatest is designed for reflective charts, where white areas reflect about 90% of the incident light. To compensate for this, use

Lux (input to Imatest) = Lux (measured) * 1.11.

Useful equation: If your meter reads in EV (Exposure Value): Lux = 2.5 * 2EV @ ISO 100
Note: EV @ ISO 100 is also known as Light Value (LV).