PetaPixel

Why Higher ISO Leads to Larger File Sizes

Something you may have noticed when adjusting your camera’s ISO setting is that as you increase ISO, the number of remaining shots you have decreases. This is because the size of each photograph increases with ISO, and thus less of them can be stored in the available space of your memory card.

So why does the file size increase as you increase ISO? The answer has to do with image noise and file compression. First we’ll discuss the noise element.

Image Noise

You probably know already that a higher ISO number leads to more noise in the resulting image. This is because digital cameras achieve the same behavior of “more sensitive film” by amplifying the image signal the camera receives when it captures a photograph. This amplification also amplifies the noise that exists in every image regardless of ISO, and therefore higher ISOs have highly amplified noise.

To demonstrate, I captured the following photograph at both ISO 100 and ISO 3200:

Here’s a side by side comparison of crops from the two images:

The noise should be pretty obvious. The RAW file of the ISO100 version is 10.2MB in size, while the ISO3200 version is 14.7MB. In this case, the higher ISO leads to a 44% larger file.

An interesting property of digital cameras is that there is more noise in darker regions of photographs than brighter regions. The opposite is true for film. This means that the file size difference discussed here will be far less when shooting with more light, such as when you’re photographing outdoors.

As an example, here is another scene that I photographed first at ISO100, and then at ISO3200:

Though there is still a significant amount of noise in the image, the ISO100 photo has a 15.8MB file size, while the ISO3200 photo is 16.7MB. This means that for this outdoors shot, the higher ISO only caused a 5.7% increase in file size. There’s other factors that will cause this percentage to fluctuate, such as the complexity of the scene, but in general the percentage should be less when photographing with more light.

File Compression

Now that we’ve shown the increased image noise that comes with higher ISO numbers, we’ll discuss why this causes the file size to increase.

Regardless of whether you’re shooting RAW or JPEG, it’s likely your photographs are stored in a compressed format. While some cameras allow you to choose whether and how files are compressed, RAW images (i.e. Canon’s CR2 format) are usually compressed using a lossless algorithm, meaning the exact original data can be reconstructed from the compressed data. On the other hand, JPEG is lossy, so the more you work with JPEG files, the less data you’ll have as the compression throws out more and more data.

Here is a sequence of images from Wikipedia showing lossy compression (with PNGs):

The image on the right is the most compressed, and therefore has the least information. There is no way to recover the original detail from the compressed image to reconstruct the original (on the left), since the information was thrown out in order to save space when compressing the file.

The reason noise increases file sizes is because image compression relies on repetition, or patterns. In images with less noise, there are more areas of consistent patterns (i.e. the clear blue sky) that can be compressed. On the other hand, when noise is introduced, these adjacent areas that could have been grouped together and compressed must be split and stored separately, since the noise introduces randomness that cannot be compressed.

Here are four different 100×100 JPEG squares, saved with the same image quality:

On the left is a square with solid blue, which affords maximum compression and therefore the smallest file size. The second square has two shades of blue, alternating by row, while the third square alternates by column. Due to the way the JPEG format compresses images, the second square can be compressed more efficiently than the third, even though both contain exactly the same number of pixels of each shade. Finally, the last square has artificial noise added in using Photoshop. This noise introduces randomness, which results in the least compression and the largest file size.

Now, for a super simplified example of compression, consider the following “photo” with 3 “pixels”:

Since all three pixels are the same, instead of storing the data for all three, one possible way I could “compress” the photo would be to store the color information once and just remember that the entire range of pixels is that color. (i.e. Pixel 1-3 = Blue)

Now, lets say some “noise” is introduced, which changes the image to the following:

Now I can’t specify a single range and a single color, since the sequence has been interrupted. The best I could do might be to say (Pixel 1 & 3 = Blue, Pixel 2 = Yellow), which obviously takes more information to represent.

This isn’t exactly how image compression works, but hopefully you get the point that randomness interferes with compression.

Conclusion

In this post we showed that increasing ISO causes increased noise, which in turn causes larger file sizes due to inefficient file compression. Many of you more advanced photographers might have known some (or all) of this already, but hopefully it was illuminating for some of you.


 
Get the hottest photo stories delivered to your inbox.
Get a daily digest of the latest headlines:
  • vitorschietti

    thank you! didn't know why that happened, and not it's as clear as a clear, sunny sky (under ISO 100).

  • vitorschietti

    thank you! didn't know why that happened, and not it's as clear as a clear, sunny sky (under ISO 100).

  • http://shuttersounds.thedailynathan.com nathanyan

    Why would film photographs have more noise in brighter regions than darker regions?

    Your explanation for image compression is based on a color indexing compression method, which is how an image compression format like indexed GIF or index PNG will work. It isn't how JPEG works. I'll just use numbers, but you can recreate this yourself or maybe import it as a ppm.

    If all we do is simply replace corresponding pixel colors, then pixel-to-pixel fluctuation would not matter and not play a role in filesize. All that would matter is the total number of RGB combinations in the image. With grayscale 0-255 values (space delimited for columns, newline delimited for rows), the following under your description would have the exact same filesize:

    “Noisy” image – random allocation of black (0), dark grey (63), mid grey (127), white (255) pixels

    0 63 255 127
    127 255 0 63
    127 63 0 255
    63 127 0 255

    “Solid” image – contiguous allocation of black (0), dark grey (63), mid grey (127), white (255) pixels

    0 0 63 63
    0 0 63 63
    127 127 255 255
    127 127 255 255

    In *both* cases, using the compression method you described, all we would need to do is place a pointer for every pixel, pointing to one of the four possible RGB values (in other words, an indexed color format). So with both images, you have 4×4=16 pointers, and 4 indexed colors to store. Same size, right? Try saving either of these images in gif or indexed png format, and the filesize should appear the same.

    Now try with jpg. Not the same (you may need to scale the above sample data up from a 4×4 image to actually see this – I am not sure if jpg will act much differently from a bitmap at this size).

    Another way to see how your example breaks down: Create a 256×256 image, and paint a smooth 0-255 greyscale gradient on it. Save that image as jpeg, now add random noise (random dots anywhere in the 0-255 range). You're not introducing any new pixel values, yet your filesize will increase significantly.

    So this is how jpeg actually works, in layman's terms:

    JPEG compression works by essentially saving only a small fraction of the actual pixel values in the image, and these saved values are stored such that they make a vague grid pattern. In the 4×4 image above, we might have pixel values for only positions (row, column): (0,0); (3,0);(0,3);(3,3). File-wise, all the pixels in between are BLANK – we do not store their actual values anywhere. Instead, at display time, all of the missing in-between pixel values are interpolated (estimated using some algorithm) based on the pixel values of the surrounding pixels that we *do* have. So while we don't know the actual pixel values for (0,1), we're able to estimate it by combining (0,0) and (0,3) in some way, since (0,1) is between those two.

    So given that, why might noise increase filesize. JPEG compression is highly dependent on the *detail* in the image. The more detail that we can't easily interpolate, the more real pixel values (“key” pixels) we'll need to store. Consider that 0-255 gradient – all we would really need to store in a jpeg version of this would be the 0 value at the beginning and the 255 value at the end 0- an algorithm that linearly interpolates would thus be able to correctly render the in-between values as a gradient between 0->255.

    What if suddenly in the middle of that image, say at position (0,127), the original image actually has a big black dot there (pixel value 0) instead of the 127 of a smooth gradient. The interpolation algorithm wouldn't model for that correctly, so we'd have to store a real pixel value there to retain that detail. Our image would then look something like this, in terms of the real pixels stored:

    (0,0): 0
    (0,126): 126
    (0,127): 0
    (0,128): 128
    (0,255): 255

    So now imagine many, many such random dots, that break the mold of what the interpolation algorithm would predict, and thus require many more “key” pixels to be stored in the jpeg file. And you can see how jpeg files become larger with greater noise.

    And just to note, yes most RAW formats today very likely use an indexed color compression method, but the real filesize reduction comes from a JPEG-like method of deleting intermediate pixels, and it is this compression method that's affected by greater noise.

  • http://www.petapixel.com Michael Zhang

    Hey Nathan,

    Thought you might illuminate this conversation =)

    Thanks for the really informative description of JPEG's compression. Do you have an explanation for why JPEG compression behaves differently for vertical and horizontal pixel stripes?

    Also, I wasn't trying to claim that all image compression worked the way I described, but was just trying to give a couple simple examples.

    The noise in dark/light regions of film photographs was something I came across online. If you look at your prints, aren't all the dark regions generally exposed to true black (if printed correctly), while the noise appears in the brighter regions for higher ISO film?

  • http://www.petapixel.com Michael Zhang

    Hey Nathan,

    Thought you might illuminate this conversation =)

    Thanks for the really informative description of JPEG's compression. Do you have an explanation for why JPEG compression behaves differently for vertical and horizontal pixel stripes?

    Also, I wasn't trying to claim that all image compression worked the way I described, but was just trying to give a couple simple examples.

    The noise in dark/light regions of film photographs was something I came across online. If you look at your prints, aren't all the dark regions generally exposed to true black (if printed correctly), while the noise appears in the brighter regions for higher ISO film?