Crop factor vs. magnification

Crop factor is a term associated with sensors smaller than the standard 35mm film frame, which is commonly misunderstood, even by people who write for respectable sites, such as Luminous Landscape. Consider the Understanding the DSLR Magnification Factor article written by Nick Rains in 2002. In this article Nick writes:

‘Crop’ is a fairly good term – the imaging area is physically smaller. Less of the image circle projected by the lens is used, therefore it is a crop. The image remains the same size at the film plane for a given lens and subject distance – it is in no way magnified. It does, however, take up a larger proportion of the (smaller) frame and so it is easy to see why some people call it a magnifying effect.

Let's take a closer look at how an image is captured by a camera sensor. A lens of a given focal length always projects the same image on any surface, be that film, a full-frame sensor, a smaller APS-C sensor or a tiny sensor of a compact camera. Each photo-diode in a sensor captures its portion of light and converts it into a single value that will eventually become a single pixel in the final image. As long as the lens can provide sufficient detail, the size of the pixel defines how much detail is captured. Consider the sensors of the following three cameras:

  • A 10MP compact camera DMC-ZS1 captures images 3648x2736 pixels and has a sensor 5.75x4.31mm, which gives us 634 px/mm, each pixel being 1.6µm wide.
  • An 18MP DSLR EOS 7D captures images 5184x3456 pixels and has an APS-C sensor 22.3x14.9mm, which gives us 232 px/mm, each pixel being 4.3 µm wide.
  • A 21MP DSLR EOS 5D2 Mark II captures images 5616x3744 and has a full frame sensor 36x24mm, which gives us 156 px/mm, each pixel being 6.4 µm wide.

Now, if we take the area where our hypothetical image is projected and place there a full frame sensor, an APS-C sensor and then a compact sensor, we will see that each sensor will capture an image similar to those shown below, which use the pixelaziation effect to simulate pixel sizes. The simulated compact sensor is represented by two pixels (1.6µm), the APS-C sensor is represented by four pixels (4.3µm) and the full frame sensor is represented by six pixels (6.4µm). The first image simulates the fact that our hypothetical lens can deliver more detail than any of these sensors can capture. Hover your mouse over the titles to see the effect.

Lens | DMC-ZS1 | EOS-7D | EOS 5D Mark II

Now consider that each one of the oversized simulated pixels in the images shown above will be represented by a single pixel when we view the picture on a computer display and in order for us to see what each sensor would capture, we have to scale down the 5D sample 6 times, the 7D sample 4 times and the DMC-ZS1 sample 2 times, which is shown on the picture below. Hover your mouse over the titles to see each of the images.

DMC-ZS1 | EOS-7D | EOS 5D Mark II

And there you have it - the DMC-ZS1 captured more detail of the original projected image, which means that the image was magnified when compared to the other two images captured by the both DSLRs. In order for the 7D to capture the same level of detail, I would have to use a lens with the focal length 634 / 232 = 2.72 times of the one used for the DMC-ZS1 shot, so it would project an image part of which covers the same number of larger 7D's pixels. Similarly, I would have to use a lens with the focal length 634 / 156 = 4.06 times that of DMC-ZS1's with the 5D to capture the same detail.

Let's put this simulation to a real-life test. The images below are captured with the DMC-ZS1 and the EOS 7D. Each image is taken at the lowest ISO speed setting in each camera to reduce noise and preserve as much detail as possible. Noise reduction was set to the minimum setting in DMC-ZS1 and turned off completely in the 7D shot. The DMC-ZS1 image was captured at the focal length of 49.2mm, which means that I had to set my zoom on the 7D lens to 49.2 * 2.72 = 133.8mm to capture an image which would show the same detail. Hover your mouse over the Crop/100% titles to see the 1280x853 crops scaled down to 500x333 to show larger area and 100% crops.

DMC-ZS1, 49.2mm (Crop | 100%)
EOS-7D, 147mm (Crop | 100%)

Note that the 7D reported the focal length in the EXIF data as 147mm because the focal length was recorded in EXIF in rather coarse increments. I had to take a few shots moving the zoom ring around the 135mm mark and capture a few images at different magnification and some of the images had the same focal length in EXIF even though they clearly showed different level of magnification when compared pixel-for-pixel. I loaded each of the 7D images into GIMP and picked the one that matched the closest the DMC-ZS1 shot when viewed at 100%.

You can see that the 7D image shows a little bit more detail, which may be caused by three possible factors affecting some of the fine lines between bricks around and inside the first graffiti character. First, the DMC-ZS1 still applied mild noise reduction to the final image and produced a compressed JPEG. Both of these steps make images softer. It is also quite possible that the DMC-ZS1 lens is not as good as the bigger SLR lens. Finally, if the pixel density of the DMC-ZS1 sensor exceeds the resolution delivered by the lens, there will be no extra detail in the final image. If DMC-ZS1 had an option to produce RAW images, it would be possible to see which of these factors contributed the most.

So far, I was using a hypothetical lens as an example. Real-world lenses do have finite resolution, which is measured in line pairs per millimeter. Each line pair consists of a black and a white line and may be represented by two pixels. I couldn't find any test results for the lens in DMC-ZS1 (or any compact lens for that matter), but I found a resolution chart for the Sigma 18-250mm lens I used for this test in a lens review posted at DPReview.

Sigma 18-250mm @ 135mm/f8

The test results at DPReview are listed in line pairs per picture height (lp/PH), so I had to divide the line pair counts by 14.9, which is the height of an APS-C sensor (22.3x14.9mm), in order to compute line pairs per millimeter (lp/mm). So, even though the Sigma 18-250mm lens was capable of resolving 1700 lp/PH at its sharpest point of 24mm/f4, resolution fell sharply down at 135mm/f8 and measured mere 75.5 lp/mm at the center of the lens and 50 lp/mm closer to the middle of the lens radius. I focused the lens at the middle of the 'O' letter in the graffiti and use 75.5 lp/mm in my calculation below.

Considering that there are two pixels required to represent a single line pair, the resolution of 75.5 lp/mm can be translated into 75.5 lp/mm * 2 px/lp = 151 px/mm. This, in turn means that anything smaller than 1/151 px/mm = 6.6µm will probably be lost when digitized by the EOS-7D's sensor.

Now we need to calculate the size of the subject projected by each lens onto their sensor. In order to do this we need to know the actual subject size and then use lens magnification to derive the size of the subject on each sensor.

According to Wikipedia, magnification of a single thin lens is measured as

M = focal_length / (focal_length - distance_to_subject)

Granted, neither of the lenses used in this test are made up of a single thin lens, but the final numbers should be within the same ballpark as if a more appropriate formula would be used.

I used Google maps to measure the distance between the cameras and the graffiti, which was 235 meters. The magnification of the DMC ZS1 lens at 49.2mm then can be computed as

DMC-ZS1 : 49.2mm / (49.2mm - 235m) = 2.09 10-4

, and the magnification of the Sigma 18-250mm at 133.8mm was

EOS-7D: 133.8mm / (133.8mm - 235m) = 5.7 10-4

First, let's see if these numbers make any sense. I took a shot of the graffiti at a closer distance, so I could count the number of bricks in the character 'O'. Here's the shot, so you can compare it to those above.

I counted 19 bricks in 'O'. Each brick, according to Wikipedia, is 57mm in height. Adding 10mm seams between the bricks gave me 57mm * 19 + 10mm * 18 = 1263mm. Now all I had to do was to calculate how tall was 'O' in each sensor, which then can be verified by counting pixels in the images.

DC-ZS1: 1263mm * 2.09 10-4 = 264µm
EOS-7D: 1263mm * 5.7 10-4 = 712µm

Knowing pixel size for each camera, I could compute the height of the letter in each image:

DC-ZS1: 264µm / 1.6µm/px = 165px
EOS-7D: 712µm / 4.3µm/px = 166px

Measuring the height of 'O' in GIMP gave me 189 pixels, which is pretty close, considering some simplifications involved in the calculations.

Now, let's see if these numbers indicate whether we can see the seams between bricks or not. Each seam is about 10mm in height, which yields us following heights in each sensor:

DC-ZS1: 10mm * 2.09 10-4 = 2.09µm
EOS-7D: 10mm * 5.7 10-4 = 5.7µm

This means that a single seam covers about 30% more than the height of a single pixel in each sensor, which in turn means that seams are the smallest detail we can see in these images. Anything that is smaller than 10mm will fall within a single pixel and will not be distinguishable from the surrounding pixels. The number 5.7µm for the EOS-7D is also consistent with 6.6µm derived earlier from the lens resolution chart.

Interestingly enough, this also means that the lens in the DMC-ZS1 should be quite good, compared to the Sigma 18-250mm or else we would not be able to see comparable amount of detail in the DMC-ZS1 shot. At the best resolution the Sigma 18-250mm can deliver, which is 1700 lp/PH or 114 lp/mm, the smallest detail that can be resolved by the sensor would be (1mm / (114 lp/mm * 2 px/lp)) = 4.4µm. The quality of the DMC-ZS1 lens should be close to that in order to make its tiny pixels work.

So, magnification depends on the sensor pixel density and the ability of the lens to resolve detail, while the crop factor only depends on the surface area of the sensor. For example, both EOS 7D and EOS 500D (T1i) have APS-C crop sensors whose width and height are 1.6 times smaller than those of the EOS 5D Mark II sensor, so their crop factor is 1.6. However, the 7D will magnify images 232 / 156 = 1.49 times and the 500D will magnify images only 213 / 156 = 1.37 times, compared to the 5D Mark II.