Lens resolution and contrast are discussed in so many different ways, it leaves most photographers dazed and confused. It’s time for my own two cents (or whatever that means to you at your own exchange rate).
Most MTF discussions either quickly degrade into theory or never leave theory in the first place. I want to keep it real, with actual measurements and pictures.
So how do I arrive at my “resolution” measurements? I use “MTF50”, measured over the entire camera sensor. The Modulation Transfer Function I’m using (MTF50) measures how close black/white line pairs can get before they lose 50% of their contrast. As lines get skinnier (and closer), black lines start to get some white ‘contamination’ in them on their edges and white lines start to get some black contamination on their edges, too. When black turns 50% gray and white simultaneously turns 50% gray because this contamination on either side of a really skinny line meets in the middle, that’s the “MTF50” condition.
The contrast (MTF) being measured is defined as:
(“darkest” – “lightest”) / (“darkest” + “lightest”)
A pure black line would have a measurement of 1.0, and a pure white line would have a measurement of 0. A perfect lens that would then have an MTF of (1-0)/(1+0) = 1.0 no matter how skinny the lines were (ignoring the finite wavelength of light and diffraction effects).
If you were shooting black/white line pairs and your lens only lost 5% of contrast, then you’d have an MTF of (.95 - .05)/(.95 + .05) = 0.9.
In truth, the lens and the camera sensor both contribute to the loss of contrast. Since it’s more useful to have a camera attached to that lens, the MTF50 measurements shown below are a combination of lens effects and sensor effects. Also, the two-dimensional MTF50 plots show what’s going on over the entire camera sensor from corner to corner.
At least half of the cameras out there have an “optical low-pass filter” (OLPF) over their sensors, which fuzzes the image a little to avoid the moiré effect. Since the resolution measurements are performed without any sharpening, this has a slightly negative impact on the results.
When you can get beyond about 30 line pairs per millimeter on the camera sensor before the lines drop to 50% contrast, then you have what most people consider good lens resolution. 30 line pairs per millimeter are really, really skinny lines. Keep in mind that 30 lp/mm is good unless you substantially enlarge an image, so “DX” sensors need 1.5X more resolution than “FX” sensors for the same-size print.
The resolution measurements below are separated into “meridional” and “sagittal” directions (see the plots below), measured over the entire camera sensor. Think of the “sagittal” direction like spokes on a wheel, where the center of the lens is the hub. The rim of the wheel, where the spokes attach, is the meridional direction (perpendicular to the spoke directions). Lenses invariably do less well resolving lines in one direction or the other. When the sagittal and meridional resolutions differ, you get astigmatism.
If you’re interested in the total resolution in a picture, you need to take the “lines pairs per millimeter” resolution value and multiply by how many millimeters tall the sensor is. This value gets you “line pairs per picture height” or,
lp/ph = (“MTF50 lp/mm”) * (“sensor_height_mm”)
Bigger camera sensors have more millimeters in them, so you get more total picture resolution than a small sensor.
Besides megapixels, there are factors like focus repeatability, optical low-pass filters, air turbulence (heat shimmer), shooting distance, ambient light level, the aperture setting, and camera vibration that can get the resolution waters muddy in a hurry. Sensor noise is a factor too, but that’s beyond the scope of this article.
Most manufacturer MTF plots are shown at the widest lens aperture. The MTF measurements can be dramatically higher when you stop a lens down more, but there are limits to the increase in resolution you can get by stopping down.
A piece of a lens resolution chart photo
The photo above shows a section of a resolution chart that has been analyzed by a program. It has little blue numbers on top of every edge that has been measured. The measurements shown are in units of “cycles per pixel”, which means how many light/dark transitions happen per sensor pixel (less than one transition per pixel).
The pictured edges with lower values on them are fuzzier than the higher-valued edges. You’ll notice a pattern that the edges aligned in the sagittal direction are consistently fuzzier than the neighboring meridional direction edges. To get a better idea of lens performance, you need to take resolution measurements at literally hundreds of locations all across your camera sensor.
Close up on a square. Numbers are cycles/pixel.
What are the Limits of Resolution?
The Luminous Landscape website has an interesting discussion on what resolution camera sensors and lenses are capable of producing. That link is here:
You have probably heard the lens term “diffraction-limited”, but what exactly does that mean? When light passes an edge, like the edge of a lens diaphragm, it will diffract. If your lens is significantly stopped down, the diffraction gets huge. But how huge?
The link above mentions that for MTF50, an aperture of f/1.4 could theoretically produce 494 lp/mm. No real lens is anywhere near this limit. At f/16, however, the theoretical limit is only 43 lp/mm! These numbers are for “yellow-green” light. By f/22 the limit plunges to 31 lp/mm. Many lenses are good enough to resolve more than 43 lp/mm at 50% contrast, but at f/16 and beyond, they never will. These lenses are “diffraction-limited”.
On the camera side of things, a sensor has a Nyquist limit, beyond which it won’t record higher resolution (see below for that discussion).
I did my testing with (a single copy) of the Nikkor 85mm f/1.4 AF-S lens. This lens has pretty good street cred, and I didn’t want questions about quality entering into the equation. As an aside, I thought I’d mention that “lenstip.com” reviewed (a single copy) of this lens on a D3X (24.5 MP) “FX” camera, and found no better than an MTF50 of 30 lp/mm at f/1.4 at the center of the lens. My copy measures between 32 and 42 lp/mm at f/1.4 in the lens center, depending on the camera. Its corner measurements on an FX sensor are as high as 27 lp/mm at f/1.4. I think that LensTip got a bad copy; I don’t think they have sloppy technique.
I make all of my resolution measurements using the MTF Mapper program, whose author is Frans van den Bergh. His software and printable test plots are available here.
I’m using version 0.6.7 of mtf_mapper_gui.exe for these tests. I have an “A0” test chart (33” X 47”) printed on quality glossy paper, dry-mounted onto foam-board. This allows me to be about 16 feet from the resolution target and still fill the frame on DX when using the 85mm lens. I wanted to shoot at realistic distances, but not let air turbulence (think heat shimmer) enter into the mix.
You must use software to evaluate resolution. It’s far pickier than you are, and totally repeatable. You also need software to properly evaluate focus when calibrating your phase-detect system, which the same MTFMapper program can do, although you need a different target for this.
Before I discuss any test results, I’d like to mention that I think the biggest factor in measurement reliability is auto-focus variation. I used live-view, contrast-detect focus throughout. Results show the “best” resolution measurements I got, but the MTF50 results often vary by about 2 lp/mm from shot to shot. I focus in-between every shot. The camera stops focusing when it thinks its “good-enough”, so there is always some amount of variability in focus. Some people place their cameras on a moving platform and shift focus by progressively changing the subject distance between photos of the test chart.
The next-biggest factor in spoiling resolution is camera motion. I use a big and heavy tripod in all testing, along with a remote release and “mirror-up”. Short of mounting your camera on a granite slab, however, you’re always going to experience some amount of camera shake because of the shutter motion. Except when your camera has an electronic front-curtain shutter (EFC) like the D500. If you have it, use it. I’m convinced that it got me about 2 lp/mm extra resolution. Shutter speeds were all around 1/1600s (the EFC is limited to 1/2000s).
Take the photos at the camera base ISO. You don’t want sensor noise to be a part of the test. The tested lens has no vibration reduction; if it did, I’d turn it off for testing.
Your camera sensor will affect your MTF measurements, as I already mentioned. Another influence on resolution is called the Nyquist limit. Your measured resolution can’t go higher than this value. I show some camera Nyquist limits below.
D5000: 4288 X 2848, 23.6mm X 15.8mm, 5.5 micron pixel, 12.3MP, OLPF, Nyquist 90.1 lp/mm.
D7000: 4928 X 3264, 23.6mm X 15.6mm, 4.78 micron pixel, 16MP, OLPF, Nyquist 104.6 lp/mm.
D500: 5568 X 3712, 23.6mm X 15.7mm, 4.22 micron pixel, 20.9MP, no OLPF, Nyquist 118.2 lp/mm.
D610: 6068 X 4016, 35.9mm X 24.0mm, 5.95 micron pixel, 24.0MP, OLPF, Nyquist 83.7 lp/mm.
D7100: 6000 X 4000, 23.6mm X 15.6mm, 3.92 micron pixel, 24.0MP, no OLPF, Nyquist 128.2 lp/mm
The Nyquist sensor resolution is: (pixels high / height_mm / 2) lp/mm. If a lens has better resolution than the sensor Nyquist limit, then that extra resolution won’t get recorded.
Now, the dreaded MTF50 math
The program measures the target edges, then converts the “cycles per pixel” into “MTF50 lp/mm”. This number of cycles is measured at a contrast of 50%.
MTF50 lp/mm = cycles_per_pixel * height_pixels / height_mm
For instance, the photo above shows a couple of “0.19” c/p measurements for this D610 (4016 pixels tall, 24.0 mm tall):
MTF50 lp/mm = 0.19 * 4016 / 24.0 = 31.8
(Pretty awesome for f/1.4 near the corner of the photo!)
The plots show how many line pairs per millimeter can be resolved before they reach the 50% contrast threshold over the whole two-dimensional camera sensor.
Stop the lens down for dramatically better resolution
The most common “MTF” chart style
The “MTF10,30” plots show the lens measurement data in a different way. These are the plots most people are familiar with. The plots have lines that show “contrast” averaged over the lens, moving from the lens center (on the left) to the lens edge (on the right). The contrast is calculated the same way as the formula from above, using a couple of different sets of line frequencies (thicknesses). The chart plots are separated into 10 line pairs/mm and 30 line pairs/mm, in both the sagittal and meridional directions. The vertical contrast range scale goes from 0 to 1.0, where 1.0 represents 100% contrast.
Some manufacturers use “radial” and “tangential” terms instead of sagittal and meridional, but they mean the same thing.
What you get, then, is the measured contrast for relatively thick lines (10) and thinner lines (30). The “10” is considered the lens contrast, and the “30” is considered lens resolution.
The MTF10,30 plots are traditionally shown at the lens maximum aperture only. These plots can be a little underwhelming, especially when compared to a lens at its optimum aperture.
I think these “10-30” plots are much less informative than the “MTF50” plots in regards to resolution measurement, but they let you compare lens measurements to the same style of plots that most camera companies publish. Except for Leica and Zeiss (and possibly Sigma), the plots that the camera companies publish are “theoretical” and not actually ever measured. To me, this is “blowing smoke you know where”.
I think of these plot types as a decent way to evaluate lens astigmatism, but not “resolution”. You need two-dimensional data to really know how a lens performs.
A wide-open (f/1.4) MTF plot, D610 and 85mm f/1.4 lens
85mm f/1.4 lens stopped down to f/4.0. D7100 camera.
There are several ways to show the resolution of a lens. The worst way would be a single number. A better way is to show what the whole camera sensor sees, in two dimensions. An even better way is to show two-dimensional measurements that also segregates the sagittal and meridional information. Better yet, gather this information at the different aperture settings.