Introduction
|
The Imatest slanted-edge MTF calculation, which is based on the ISO 12233 standard, has several deficiencies, typically visible at spatial frequencies above 0.25 Cycles/Pixel (half-Nyquist). As long as simple metrics like MTF50 were sufficient, these issues could usually be ignored. But we had to address them because they affect the accuracy of the new image information metrics in Imatest 24.1, most of which use \(\int_0^{0.5\ C/P} MTF(f) / NPS(f)\ df\) for Noise Power Spectrum NPS(f). Starting in Imatest 24.1, a new slanted-edge MTF calculation is available that fixes a number of issues with the old ISO 12233-basd calculations. It can be selected on the lower-left of the SFR Settings or More Settings windows. We will propose including the modified code in the next major revision of the ISO 12233 standard. |
![]() |
|
The work was motivated by problems we observed with the Noise Equivalent Quanta (NEQ) measurement, which is one of the new image information metrics. NEQ should not be affected by uniform filtering— sharpening or lowpass filtering, but we found significant variation. We were able to determine that the noise spectrum was OK, but the MTF was not. The problem was identified and a partial solution was presented in the 2017 paper, Reverse-Projection Method for Measuring Camera MTF, by Stan Birchfield. In Figure 8 from the paper, shown on the right, the ISO-based results all have higher MTF and rough response at high frequencies (above 0.65 Cycles/Pixel). The reverse-projected results are very well behaved (have little response) at high frequencies. |
![]() |
Figure 4 from Birchfield’s paper shows details from an ISO-based calculation (which includes Imatest) on the top and the new reverse-projected calculation (on the bottom).
Results are strikingly similar to old and new Imatest results. We chose not to use Birchfield’s technique for three reasons. 1. It appears that it will be difficult to adapt to curved edges, i.e., images with optical distortion. 2. It is protected by U.S. Patent 10,429,271, assigned to Microsoft. 3. It required only a few lines of code to fix the issue with the old ISO 12233-based calculation. We will propose including the modified code in the next major revision of the ISO 12233 standard.
Image comparisons for compact digital camera at ISO 400
|
Old Imatest (ISO-based) slanted-edge calculation |
Imatest 24.1+ interpolated slanted-edge calculation |
The JPEG image file for these results (2.07 MB) can be found here.
Siemens star MTF from same (LX5 ISO 400 JPEG) image,
which appears to have a moderate amount of bilateral filtering. Mean MTF50P = 0.282 C/P.
The Siemens star MTF has been normalized by extrapolating the smoothed MTF curve to 1.0 at zero frequency. This is realistic method for normalizing strongly sharpened images for the star, which doesn’t go to low spatial frequencies, and it helps to match the results with slanted edges.
This image appears to have some bilateral filtering (sharpening near the edge; noise reduction elsewhere), indicated by a noise peak near the transition. This can cause some difference between the slanted-edge and Siemens star results. But the difference is small.
|
Edge noise for the JPEG image, above. |
Edge noise for the USM-sharpened PNG image, below. |
The Siemens star result is slightly different from the new slanted-edge result because the image is a JPEG from a camera, which has some bilateral filtering (which tends to affect edges more than sines). However it’s not very different.
| It’s time to dispel the myth that slanted-edges are affected by bilateral filter sharpening, but Siemens stars are not. They are both affected, perhaps more strongly by the slanted edge, but they are not radically different. One reason: the ISO standard slanted edge has a 4:1 contrast ratio. It’s 50:1 for the standard star. |
II. RAW→TIFF→USM-sharpened PNG (R2A2)
Uniformly sharpened with USM, Radius = 2, Amount = 2 (R2A2)
When an image is uniformly sharpened, the slanted-edge and Siemens star results are extremely close. This was never the case with the old ISO calculation.
|
|
Siemens star MTF from same (LX5 ISO 400 RAW→TIFF→PNG, USM R2A2-sharpened) image,
Mean MTF50P = 0.344 C/P.
The old slanted-edge calculation is very noisy— very ugly— so bad that the information capacity calculation fails. MTF50P is virtually identical for the new interpolated calculation and the Siemens star— no, we didn’t cherry-pick the image. MTF50 is very close, but not identical. The shapes of the MTF curves are also close but not identical: the slanted-edge has more response at Nyquist (fNyq = 0.5 C/P).
Algorithm
The key to the algorithm was the realization that the image had to be interpolated to give good results. No matter what we did with an uninterpolated image, the same problems (sawtooth noise and irregular response above the Nyquist frequency) persisted. And we noticed that interpolation was an integral part of the reverse-projection algorithm.
The algorithm follows the ISO 12233 standard with just the addition of interpolation. Here is a brief summary of the ISO algorithm.
- Linearize the image using the inverse of the measured gamma curve or the edge itself, if the contrast is known.
- Find the center of the transition for each horizontal scan line.
- Fit a polynomial curve to the center locations of the scan lines.
- Add each horizontal scan line to one of four bins, based on a polynomial location at each scan line.
- Combine the bins to obtain a 4x oversampled interleaved average edge, which is used to calculate MTF. This effectively applies signal averaging, which improves SNR by the square root of the vertical ROI height/4.
The interpolation is applied between steps 3 and 4, so that horizontal scan line pixel count is increased from Nwid to 2×Nwid+1 pixels.
Interpolate the columns of an Nwid (width) × Nht (height) image, so that the size becomes 2×Nwid-1 × Nht pixels. Each pixel in the yellow vertical bars shown below (each representing a column of pixels) will contain data interpolated from the pixels to the left and right. The MATLAB interp2 function was used to perform the interpolation. We preferred the ‘cubic’ method, although ‘linear’ wsn’t very different and would have been somewhat faster. The polynomial curve (fit to the centers of the scan lines) is adjusted for the interpolation.
Here are examples of input and interpolated image data.
![]() Original image |
Interpolated image |
The interpolated data is binned using the same procedure as the standard uninterpolated method. But there are almost twice as many points in the horizontal scan lines (2×Nwid-1 vs. Nwid). Based on the above results, it makes a remarkable difference.
More examples
Here is a dramatic example of an extremely noisy image: a TIFF from the Micro Four-Thirds Sony A6000 acquired at ISO 12800.
Old method |
Interpolated (new) method |
The large TIFF image used for the above results has been cropped and saved as a JPEG, with no changes in image processing.
The image file (3.92 MB) can be found here.
SFRMAT5
The free SFRMAT5 program, available from Peter Burns (Burns Digital Imaging) is used as the platform for example code required by the ISO 12233 committee. We have added the new interpolation code to a version of SFRMAT5 and communicated it to Peter, but we haven’t determined how it will be distributed. Here are results from SFRMAT5 without and with the new interpolation method.
SFRMAT sample edge resultsold method: no interpolation |
SFRMAT sample image resultsNew method: interpolated |
We will use SFRMAT5 as the platform for sample code for the ISO 23654 standard for information-related metrics.
Plans
The new binning algorithm is an option in Imatest 24.1 Alpha or Beta, which is available in the Imatest Pilot program until it is released later in 2024.
We will be presenting this work to the ISO TC42 committee for inclusion in a future version of the ISO 12233 standard.

















