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

Sensor vs. System Dynamic Range

Sensor manufacturers are developing High Dynamic Range (HDR) image sensors that claim exceptional dynamic ranges: 120dB to as much as 150dB. Measured system (camera) dynamic range are typically much less than the specified sensor dynamic range.

The primary cause is 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. High quality lens coatings help— but only so much. Different test chart designs have different density distributions, hence have different amounts of lens flare on the chart image— leading to differences in measured dynamic range. No camera system we know of (where light has to pass through optics) reaches 120 dB. (100dB is about the best we’ve heard of (summer 2016).)


Sensor dynamic range (the range of brightness between sensor saturation and SNR = 1 (0 dB)) can be measured from absolutely raw images (no demosaicing or processing of any kind) with Multicharts or Multitest using a 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 used for the measurement 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 measurements and modules
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 Multitest or Stepchart  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.
Contrast Resolution Multicharts, Multitest Measures the visibility of low contrast features over a wide tonal range. A better indication of true usable DR than traditional measurements. New in Imatest 5.0. Not yet an industry standard (as of Sept. 2017), but we’re working on it.

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 (38 dB), 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 Multitest and Stepchart).

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 supported by Imatest
Product Steps Density increment Dmax Size
Imatest 36-patch ITDR36 Dynamic Range test chart 36 ~0.10 (1/3 f-stop);
Reference file included
>2.8 8×10″
Imatest 36-patch ITWDR36 Wide Dynamic Range test chart  (recommended) 36 ~0.10 – 0.30 (1/3 – 1 f-stop); Reference file required >5 8×10″
Imatest 36-patch ITUHDR36 Ultra High Dynamic Range test chart 36  ”  >7.5 8×10″
Imatest Contrast Resolution chart 20 0.25 (with 2:1 inner patches) 4.75 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 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 Xyla 15, 21, and 26 step HDR Greyscale 13 0.30 ( 1 f-stop) Linear pattern* 3.7 (large)
Image Engineering TE241, TE264,
from table; 20-patch charts have large steps in dark regions. Circular pattern of squares. Most are half toned.
4−6 D280
*Region selection is less robust with linear (single-row) charts because it’s difficult to locate features in very dark areas. Also, linear charts are more subject to vignetting than charts with a circular arrangement of patches.

The Imatest 36-patch Wide Dynamic Range (HDR) test chart, with density steps from 0.1 to 0.3 and a maximum density of at least base+5 (~17 f-stops), is recommended for traditional Dynamic Range measurements. 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.

Imatest 36-patch High Dynamic Range chart on 8×10 film. Dmax > 5.

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


You’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 Multicharts, Multitest, and Stepchart).

    Quality (SNR)-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
    (introduced in Imatest 4.4)

    The range of exposure where slope of the density curve is greater than 7.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 better results than earlier (pre-4.4) Patch range and detected DR measurements, but it should be interpreted with care because SNR can be extremely low (often well under 1 = 0 dB) in the the dark portion of the range. This can result in measurement inconsistencies as well as overly optimistic measurements, since image features are indecipherable when SNR < 1 (all you can see is noise). Slope-based DR can be falsely increased by tone-mapping and by medium-range flare light (bleeding from light chart patches, visible in the Image Statistics images below). For this reason we don’t recommend its use. The Contrast Resolution chart and analysis provides a much better indication of true camera (system) DR.

    Imatest Dynamic Range modules

    Dynamic Range can be measured by three Imatest modules: Multicharts, Multitest, and Stepchart. (We omit Dynamic Range, which is a postprocessor for Multitest and Stepchart.) We recommend Multicharts (interactive) and Multitest (fixed; batch-capable), which are newer and more versatile than Stepchart (an older module that we will continue to support).

    Module Brief description and recommendations  
    Multicharts Interactive module for measuring color and grayscale charts. Best when you need to closely examine the results. Supports several measurements not in Stepchart, including ISO noise, sensor dynamic range, and Contrast Resolution. Share most INI file settings.
    Multitest Fixed (batch-capable) module for measuring color and grayscale charts. Same functions and INI file settings as Multicharts. Largely replaces Colorcheck and Stepchart (both older modules with limited capabilities).
    Stepchart Older module for measuring grayscale step charts (at first it only supported the Kodak Q13/Q14 charts). Supports temporal noise (will eventually be added to Multicharts/Multitest).

    How to measure Dynamic Range

    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

    • 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 and camera should be kept as dark as possible to minimize flare light.

    The lightbox and chart are shown inside a black box that minimizes stray light reflecting back to the chart.

    • Use your camera’s histogram to determine the minimum exposure that saturates the lightest region of the chart. Overexposure (or underexposure) may reduce 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.
    Tip: to facilitate Dynamic Range plots in Multitest we’ve added a button to the settings window. Pressing it enters the correct settings for a DR display (checks the Noise/SNR plot, and selects 15. F-stop…SNR and Density response above noise). the X-axis & DR units are unaffected.  

    Here are Multitest and 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, run with Multitest.

    Same Panasonic G3 image, run with Stepchart.

    The slope-based dynamic range is greater than 11 f-stops. Slope-based DR is not very meaningful because it often includes patches with SNR below 0 dB, where the noise overwhelms visible features.The DR at low quality level (scene-referenced SNR = 1 = 0dB) is 8.7 f-stops (52.4 dB), decreasing to 5.17 f-stops at high quality level (SNR = 10 = 20dB). These results are similar 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, run with Multitest. Note the “shoulder.”
    Dynamic range is improved due to software noise reduction.

    Panasonic G3, ISO 160, in-camera JPEG,
    run with Stepchart.

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

    The Contrast Resolution chart

    The Contrast Resolution chart is a new chart design that was developed to overcome critical limitations of standard DR measurements derived from grayscale charts. It is not yet standardized, but we’re working on it, especially in the IEEE P2020 standard for automotive system image quality.

    The key to understanding the Contrast Resolution chart is that Dynamic Range can be defined more meaningfully when it predicts the visibility of low contrast features over a range of tones, i.e., answers the question, “Will a low contrast feature be visible in a dark (or light) area of the image?” Standard DR measurements don’t provide a clear, unambiguous answer to this question.

    The Contrast resolution chart consists of 20 large patches that cover a 95 dB tonal range. Each large patch contains four smaller patches. The light and dark gray patches have a 2:1 (6 dB) contrast ratio and the same mean density as the surrounding large patch. They are used to define a signal for the newly-developed Contrast Resolution Signal-to-Noise Ratio (CRSNR) measurement, where the noise is measured in the larger gray patch (which has better noise statistics). The red and blue patches are for visual analysis.

    Before we say more, we have to answer the question,

    “Why only 95 dB when sensors have up to 150 dB dynamic range, and there is getting to be quite an intense DR competition? (This competition is somewhat akin to the automotive horsepower race of the 1950s, which culminated when TV comedians adopted the line, “My car can pass anything on the road except a gas station.”)”

    The answer is we have yet to see a real practical system (which will be unavoidably limited by flare light) that reaches 95 dB, much less surpasses it. (Also, it’s difficult to manufacture practical charts of this type with a higher tonal range). We also have to note that customers who expect higher dynamic ranges for sensors specified at up to 150 dB DR may not be pleased by the harsh reality of a lens between the sensor and the test chart or scene. Please contact us at support@imatest.com if your camera’s DR exceeds 95 dB.

    Here is a brief explanation of Contrast Resolution measurements. See the Contrast Resolution page for full details.

    Standard (—) and Contrast Resolution (—) signal (top)
    and SNR (bottom). Note dB = 20*density.

    The example on the right, run on Multicharts, uses an image of the Contrast Resolution chart taken with the Canon EOS-6D and 100mm f/2.8 macro lens at f/4— a very high quality DSLR camera and lens, but not specifically marketed as HDR (High Dynamic Range).

    Log pixel levels for the large gray patches, which are used as the signals in standard DR analyses, are shown in the upper plot as thin black lines. The Contrast Resolution signal (light-dark levels) is shown as thick magenta lines.

    The lower plot shows standard SNR (thin black line) and Contrast Resolution SNR (CRSNR), where the signal is the light-dark patch level and the noise is measured in the larger adjacent gray area.

    Image with patches normalized
    to have the same mean pixel level.

    The image on the right displays all patches at a constant mean pixel level, making it easy to see the effects of noise. Even at the small size it’s apparent that the 2:1 features are only clear in patches 1-13, are fading badly in patches 14 and 15, and are pretty much gone beyond that. Patch 13 has about 8 dB (20*log10(2.42)) Contrast Resolution SNR.

    We can define a Contrast Resolution Dynamic Range based on the range of tones where CRSNR is greater than a comparable amount (6-14 dB). Note that CRSNR = 1 (used to define DR in conventional measurements) corresponds to really horrible image quality, where the feature is only marginally visible if you know exactly what to look for.

    Click on the images to display them full-sized Image with patches normalized
    to have the same mean pixel level.
    A key advantage of the Contrast Resolution chart is that it provides good results in the presence of tone mapping— a type of nonuniform tonal compression that maintains local contrast. Tone mapping is widely used for HDR images intended for human viewing (on displays with limited dynamic range). Standard grayscale charts do not provide reliable results for tone mapped images.

    Once again, we have to state that although we believe that the Contrast Resolution chart provides a superior indication of system performance, it is not yet an industry standard. We’re working on it. For more details, see the Contrast Resolution page.

    Tips and measurement recommendations

    There are a number of things to consider when measuring dynamic range. Most importantly, dynamic range measurements are strongly affected by flare light from the scene (i.e., the chart), image processing (especially bit depth, black level offset, noise reduction, and tone mapping). The experimental setup is critical.

    Light from the environment reflecting back to the front of the test chart should be minimized. It can seriously degrade DR measurements, especially for HDR (DR > 100dB) systems. The test environment should be totally darkened. Where possible, walls should be dark. Black cloth should be used to cover lights and light surfaces might reflect light back to the chart. Stray light is the major cause of DR measurement error.

    For Imatest Dynamic Range or Contrast Resolution charts (shown above) the chart size in the image should be at least 600×600 pixels if possible. For high resolution cameras it doesn’t need to fill the image. A 2000×2000 chart image is more than sufficient for high resolution cameras.

    Flare light (stray light that reaches the image sensor after bouncing between lens elements and the lens barrel) is the most significant practical limiting factor for DR. It can take the form of fog in shadows (veiling glare) or ghost images (challenging to measure). Flare light can arise from light areas or light sources inside the chart or (in real-world situations) outside the chart. Because of this, the choice of test chart can have a significant effect on DR measurements. Measurement errors caused by flare light are described below.

    When possible, DR should be measured in images converted from raw format (the sensor output) with minimal processing and if possible with bit depth of at least 16. This can be done in Imatest using dcraw or Readraw, which do not apply a tonal response curve, sharpening, or noise reduction, hence have relatively little effect on DR.

    Dynamic Range can be measured by the Imatest Multicharts, Multitest, and Stepchart modules. Multicharts (which is highly interactive) and Multitest (a batch-capable module that includes virtually all Stepchart functions) are recommended because they are newer and have more noise analysis detail than Stepchart.

    Image processing can be divided into two categories: processing routinely done during raw conversion and post-processing that is applied afterwards. Both can affect DR measurements.

    • Raw conversion converts the output of the sensor to a standard image format. It includes several functions (some optional). All the functions listed below are typically applied during in-camera raw conversion (typically with JPEG output). RAW conversion performed in Imatest (using dcraw or Readraw) do not apply a tonal response curve, sharpening, or noise reduction, hence have relatively little effect on DR.
    • Demosaicing (converting Bayer RGRG/GBGB format to full color with RGB in each pixel) has relatively little effect on dynamic range.
    • Gamma curve Most interchangeable files are gamma-encoded, i.e., they are intended to be displayed with brightness proportional to pixel levelgamma (with gamma typically = 2.2). The simplest gamma encoding is pixel level = scene brightness(1/2.2). When the converted image has a bit depth of 8 (commonplace for non-HDR images), gamma encoding significantly improves dynamic range. 8-bit linear images have limited dynamic range because they have very few levels in dark areas.
    • Tonal response curve (TRC). Frequently applied in addition to gamma. A “shoulder” (contrast reduction) applied to the highlights is the most frequent feature of tonal response curves, but dark areas may also be affected. TRCs definitely affect DR measurements (especially slope-based DR), and can do so in complex ways.
    • Sharpening is often performed near edges, but may not be applied to flat areas where DR is measured.
    • Noise reduction (lowpass filtering) is often performed in flat areas where DR is measured. Noise reduction can have a profound effect on DR measurements. In particular, SNR = 1, which is a criterion for the DR limit in some standards, may never be reached.
    • Color correction matrix (CCM) and white balance (WB). A CCM can increase noise, especially when colors are intensified. But most of the time CCMs have a minor effect on DR measurements.
      Additional image processing may be applied following raw conversion.
    • Bit depth Most interchangeable images have a bit depth of 8, which can limit DR, especially with linear images. Bit depth = 8 does less harm to gamma-encoded images. Bit depths = 16 or greater has much less effect.
    • JPEG High quality JPEG compression has little effect on DR. Low quality JPEG compression messes up DR (and all other image quality measurements), and should never be used for DR measurements. The real issue with JPEGs is that in-camera processing (described above) can seriously affect DR and the bit depth of 8 limits DR.
    • Tone mapping is performed when HDR images need to be viewed on devices with limited dynamic range (which means pretty much all of them in practice). Tone mapping compresses tones in relatively large areas (such as grayscale test chart patches) while maintaining tonal contrast in small areas (local contrast). It is discussed in the page on the Contrast Resolution chart.
      Tone mapping reduces contrast measured on standard grayscale charts, which give no indication of how well local contrast is preserved. (The Contrast Resolution chart and analysis were designed to measure local contrast.) Tone mapping can be studied with the Image Processing module, which lets you open any image, add noise noise and other degradations, then apply image enhancements, including three types of tone mapping supported by Matlab (tone mapping, local tone mapping, and Contrast-Limited Adaptive Histogram Equalization). We have found that tone mapping tends to be sensitive to small changes in the noise level. (Of course cameras may use completely different algorithms.)

      Tone mapping is fairly easy to identify. Measured gamma is much lower than values typical for standard color space images (around 0.5), and patch levels may not decrease monotonically. The Image Statistics example below shows evidence of tone mapping. The effects of tone mapping on DR measurements are not easy to predict: it should be regarded as a complete wildcard. Dynamic Range measurements of tone-mapped images are not reliable.
      The slope-based Dynamic Range (which is sometimes considered total DR because it tends to be larger than SNR-based DR measurements) is defined as the range of exposure where slope of the density curve is greater than 7.5% of the maximum slope (on the dark side) and less than 98% of the saturation level (on the light side). Since tone mapping reduces the maximum slope, it increases the slope-based DR. The slope-based DR often has an extremely low SNR in the dark part of its range, −10 dB or worse, which makes it quite inconsistent, even without tone mapping.

    • Pixel level (black level) offsets, which are often applied to images, have a significant effect on DR measurements. They should be removed if they are present. The default Offset setting is 0. To subtract the offset in Multicharts, click the Settings button (if it’s visible) or the Settings dropdown menu, then Color matrix and other settings… The Offset setting is in the lower left of the Settings window. The setting appears in yellow if it’s different from the default value of 0.

    The Image Statistics module can be used to examine the image for tone mapping, pixel level offsets, and other surprises. It provides information that can be useful when testing DR. The example below shows a XYLA chart, which is designed to minimize flare light (the lighter patches are relatively small). Density steps = 0.3. The image below is displayed lightened (this does not affect the results below the image). The lower plot is a 35 pixel-wide cross-section of from the chart (averaged to reduce noise). There appears to be a pixel offset of 8 in the black areas outside the chart patches, though it could be long-range flare light (that affects the image uniformly). Looking at the cross=sections near the borders of the images, we see a fairly consistent mean of 8 for this image, which is strongly indicative of a pixel offset (rather than flare, which tends to be largest near the bright regions). Some short-range flare light is visible in about 60 pixels to the left of the brightest patch. It’s actually quite well controlled; we’ve seen worse.

    Image Statistics cross-section display showing lightened XYLA chart.
    A black level offset of 8 bits is observed.

    The flattening of the response in patches 4-6 seems to indicate that tone mapping has been applied. If it were not caused by tone mapping, this would mean that there would be no image contrast at these densities— a quite unacceptable result. This is a case where the Contrast Resolution chart provides information that is simply not available from a straight grayscale chart.

    More on flare light

    X-cross-section taken at the center of the XYLA chart

    Flare light can be extremely complex. It can add a uniform offset to the image (often called “veiling glare”), which is difficult to distinguish from a black level offset. It is often largest near bright patches, then decreases with distance from these patches. The rate of decrease is rarely a well-behaved exponential.

    This decrease can cause measurement errors because it can resemble response to the changes in chart density, when it is caused entirely by flare light.

    X-cross section taken below the XYLA chart,
    showing significant effects of flare light.

    The Image Statistics horizontal cross-section on the right shows the effects of significant flare light on an image of the XYLA (linear) chart. Very strong flare light is visible to the left of the chart, and the pixel level continues to drop in areas on the right where chart patches are no longer visible (even when the image is extremely lightened).

    The lower image— a horizontal cross section of the same image taken below the the chart (displayed with extreme HSL lightening)— shows that this decrease is caused by flare light— not from the camera’s response to the chart.

    X-cross-section taken at the center of the XYLA chart

    X-cross section taken below the XYLA chart,
    showing significant effects of flare light.
    Note that the decrease in pixel level on the right of the chart (around x ≥ 1500) erroneously increases the measured Dynamic Range from slope. Currently Imatest is unable to distinguish a pixel level decrease due to flare light from a decrease due to patch densities.

    Effects of noise

    Noise is a random stochastic process. When noise is high in relation to signal level (low SNR), is can have a strong effect on measurement consistency. In particular, the slope-based dynamic range has been discussed in several places above. A key problem with this measurement is that SNR is frequently very low (−10 dB or worse) at its darker limit. (It can also be affected by tone mapping and flare light.) For this reason we don’t recommend its use.

    Region selection in linear charts such as the XYLA charts (which have 21 or more f-stops of dynamic range) can be extremely difficult because (a) It is difficult to see dark patches in the denser parts of the causes, (b) it is affected by optical distortion, which can be corrected with difficulty, and (c) it can be affected by keystone distortion (which can also be corrected, but with considerable difficulty). Unfortunately small errors in region selection can significantly affect measurements. This issue was the primary reason we designed the 36-patch Dynamic Range charts (as well as the Contrast resolution chart), both of which have patches arranged in a circular pattern with registration marks for automatic region selection (or easy manual selection if automatic doesn’t work).

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