ISO software implementation

In general, I would call this article "Software or hardware ISO wrapping?"

We take it and draw it out programmatically. The special magic of the ADC

We take it and draw it out programmatically. The special magic of the ADC

The matrix of the camera is a complex device. The matrix reads the light (radiation from the visible spectrum) that the lens projects onto it. The light metering unit is the diaphragm and excerpt... But the overall exposure of the frame is also influenced by the ISO value, which is often overlooked by the “shutter speed-aperture” pair.

How time increases or decreases excerpts - can be expressed in seconds and their fractions. The open or closed aperture can be expressed in terms of the ratio of the diameter to the focal length. Anyway, change excerpts and diaphragms can be seen, heard - in other words, they are visible to the naked eye. And here is the change ISO is in-camera magic. How photons turn into electrical signals, how signals are digitized and turn into bits, bytes Jpeg and Raw s have never been seen by ordinary mortals.

In the general case, it is believed that the matrix of the camera works as follows: photons (light that has passed through the lens) are incident on the sensor. Photons knock out electrons in each of the sub-pixels of the matrix, the voltage in the cells increases from the number of electrons. The voltage is measured using an analog-to-digital converter (ADC), which converts the analog voltage signal into a digital sequence of ones and zeros. Further, the central processor takes the digital sequence and encodes the finished image from the data. Encoding means a huge amount of computation, which ultimately forms a JPEG and / or RAW image file. After that, the file is written to the memory card. The central processor may not process the data very much, but simply write it to the raw (unprocessed) RAW form. In fact, RAW is data after ADC operation.

The question is, where in all this sequence does the ISO change, and indeed, why bind it? In general, they say that ISO is responsible for enhancing the level of the read signal for reading information from the matrix. The stronger the more intense, the more likely it is to get inaccurate data, and in the image this will be expressed as noise - but this may not be so. The second version is that there is no voltage gain, and the ADC simply multiplies the read signal by some factor, which is taken as ISO.

I am more inclined to the second option, at least for CCD-type matrices based on the experiment below.

The first photo was taken with a normal exposure at ISO 100, 1 / 10s. To get the same exposure at ISO 1600 at the same aperture, you need to reduce the shutter speed by 16 times, that is, then excerpt on ISO 1600 will be 1/160. exposure for ISO 100, F2.0, 1 / 10s and ISO 1600, F2.0, 1/160 will be the same.

Normal photo, ISO 100, no exposure compensation

Normal photo, ISO 100, no exposure compensation

The second photo was also taken at ISO 100, but with shutter speed 16 times shorter than normal - 1/160 and magnification exposure on 4 steps (other settings are automatic). The third photo was shot at ISO 1600 and also with shutter speed 1 \ 160.

The same exposure and almost the same photo quality at different ISO values ​​and the same aperture and shutter speed

Same Exposition and almost the same photo quality at different ISO values ​​and the same aperture and shutter speed

The idea is that the ADC does not change the voltage to read the signal from the matrix, but simply multiplies the signal level by a factor that depends on ISO. If we shoot in RAW, then, in theory, we can do the same signal multiplication when shooting in RAW format, simply “multiplication” can be performed on a computer using the correction exposure. If you make an adjustment to ISO 100 in 4 steps (equivalent to a change excerpts or ISO 16 times), then we should get the same image that the camera makes on ISO 1600 with the same shutter speed, which, in fact, was confirmed.

Clippings from the previous two photos. Crop 1 to 1. Quality 100%

Clippings from the previous two photos. Crop 1 to 1. Quality 100%

After the experiment, the output shows that the hypothesis is close to true, since both images (modified underexposed to ISO 100 and normal to ISO 1600) are almost identical (see sizes 1 to 1 above).

The conclusion suggests itself - the lower the ISO, the better, since the camera does not raise ISO in hardware, it only does software wrap when converting to ADC. Similarly, software wrapping ISO towards lower values ​​is done on some cameras - you can take a look at my article about ISO Lo1.

Please note that I concluded only on the basis of the CCD matrix of my Nikon D200. But the same thing can be easily repeated with CMOS matrices, for example for Nikon D90... And in any case, the camera will do everything more neatly when encoding images at high ISOs than "pulling" from RAW. You can read another interesting article - Extrusion - RAW VS JPEG.


Many cameras do not have a hardware implementation of changing the ISO value, and the matrix gives the best result only with a minimum "native" ISO value. Therefore, shooting at low ISO remains the golden rule so far.

Thank you for attention. Arkady Shapoval.

Add a comment:



Comments: 75, on the topic: Software implementation of ISO

  • Alexander

    And I have such an observation on this subject
    if the matrix has been operating at maximum for a long time, then its temperature rises significantly (for noticeable heating, a couple of 30 second exposures at maximum iso is enough) and at minimum
    Conclusion for ISO is responsible for the Matrix and not the processor
    (at least in nikon d5200)

  • Victor

    I have always been respectful towards you. But in this case, you are just an amateur. You do not deeply understand how the signal is formed on the photomatrix and, most importantly, how the signal is picked up. Do not be offended - your knowledge is amateurish, at the level of a scientifically popular magazine in young technology. You are a good photographer, but not an engineer. I have a base - Moscow Institute of Radio Electronics Electronics Automation, Department of RTS. I am an electronic engineer. In an article on one sheet, it is unrealistic to describe the principles of operation and signal acquisition. Too much is needed at least basic knowledge. Now cameras massively use CMOS matrices. They fundamentally differ in the formation and removal of the signal from the old CCD matrices (charge-coupled devices). And you tried to describe exactly the CCD. Yes, and that is very unsuccessful. In the D200, it seems the CCD still stood. Nothing is said about what the work function is and how it relates to the basic sensitivity of the CCD matrix. It would be nice to explain what is the intrinsic thermal noise of the matrix and its effect on DD. Actually from the normalized level of random electron output (this is the noise of the matrix) and the most energetic electron, after which there is already a loss of information in white, this is DD. Therefore, it is impossible to heat the matrix in LV, sometimes it is even useful to cool the camera in the refrigerator in an airtight container before nightly shooting. And how the ISO is formed, YOU, to put it mildly ... I don't know how simple it is .. In the matrix of the same CCD, there is actually a mass of service electrodes for each cell. I will say this, in simpler terms, the ISO in the CCD does not change PROGRAMLY, but HARDWARE! By changing the level of removal of useful information with respect to the noise level for a given type of matrix, by supplying a control (not amplifying !!) voltage to each unit cell. This is very simplified. And CMOS has everything with the removal of information differently. This is a separate big topic. Still, your experiments described above are not entirely correct. Especially the third frame, where you applied + 4EV, he himself set up experiments repeatedly. Yes, at + 4EV, you certainly got the same exposure. But they did not go through to the end, which I did a long time ago. Throw the last two frames into the editor and greatly increase the darkest places and see what a different noise structure. Everything will become clear to you right away. For a long time I put experiments on D700 on L1 (100). Here you are right - it's all programmatically. But what algorithm Nikon engineers use is unclear. This is all speculation, especially if there is no education. I did not find any information in the public domain and I can only guess. Once again about the D700. I’m very upset that this camera reproduces the color range very poorly in low light, even at ISO200 in the darkest mid-tones. Even the cheaper D3100 gives better color (dozens of sad experiments), although the D3100 has very strong chromatic noise, but the D700 doesn't have them at all! And at high ISO 800-1600, the D700 turns into a black-and-white camera at night shooting, alas ... But here's a note - at program ISO L1 (100), the D700 sharply improves the development of colors in dark and even middle tones in night shots. And where the D3100 already loses its color component, only black and white remains, the D700 continues to transmit color transitions. Without knowing the Nikon algorithms, it is difficult to explain.

    • Arkady Shapoval

      Thanks for the information. In the article I have an idea, experiment and conclusions. This is not the ultimate dogma, treat it that way :)

      • Victor

        Arkady, I always read your expert opinions on cameras with attention and respect. I was taught as a student - Any conclusion on the operation of the system can only be made on the basis of an experiment and, most importantly, on the repeatability of the result. I want to make you some wish - you conduct test tests under standard conditions and under the condition of a certain conventional standard illumination. But under such conditions, even 3100 with Nikkor 50mm 1.4 will show very good results. In the presence of such glass, even 3xxx will allow you to shoot at weaving without noise at dusk. I would like you to show the tests of cameras in borderline conditions of use - with backlight (dynamic range), and during night shooting (and there are also DD! Noises !! and their structure) Tests under borderline conditions of the use of technical systems are the highest quality markups of the entire systems. And with a glass of 50-1.4 it is very difficult to check out something for many on your forum. I am using D700 D3 D3100. Good luck!

      • Alexey

        So, boyar, write to you, using the example of kenon, how does the change in ISO work? Not in all details, because I can’t for legal reasons, but a little more than the truth? :)

        • Arkady Shapoval

          Write, who forbids you. And not only to me, but to everyone who is interested in this topic. Knowledge is light, carry it quickly!

          • Alexey

            A little bit about how the camera changes the ISO value.

            I think many people know that to change the ISO value, the camera processor changes the gain of the amplifiers located between the matrix and the ADC. This is the so-called analogue ISO change.
            In addition, in some cases, the processor changes the ISO value by multiplying or dividing the data received from the ADC by some factors. This is the so-called digital ISO change.
            However, there is very little accurate data in general printing for which particular ISO values ​​a particular method of changing it is used. All this is in numerous patents, but their low availability to wide circles of the photographic public does not allow shedding light on this information.
            However, its importance cannot be underestimated. Since when ISO is increased in an analogous way, the noise contained in the signal from the matrix is ​​amplified (increased) to a lesser extent than when directly multiplying data from the ADC, and therefore the ISO values ​​obtained in this way are better to be avoided, while the ISO values ​​obtained by dividing data from the ADC, have a lower noise level.

            Below is the table obtained using the ML firmware for the Canon 60D camera, for other cameras this information will be either similar or very similar, and anyone can conduct this research on their own.

            The first column is the ISO value set by the user in the camera.
            The second column is the “honest” ISO value obtained by analog gain.
            The third column is the multiplication factor, if there is “+” or the division factor, if it is “-“, which the camera processor applies to the data received from the ADC. In other words, this is “digital” ISO change.

            If we analyze the data, we can draw some conclusions.

            1. The maximum "fair" ISO value for this camera is 3200 (for others, especially for FF, check it yourself), values ​​above this value are obtained by software and have an overestimated noise level. In other words, if for any purpose you need an ISO value higher than 3200, it makes sense not to raise it in the camera, but to shoot with a value of 3200, and, with further processing on a computer, raise the brightness to the required value, which can be done more accurately and with lower noises.

            2. It is also advisable to avoid ISO values ​​with “+” in the third column so as not to have an increased level of noise, if they are needed, shoot a frame with a slightly lower, previous ISO value and bring the exposure to the required one during processing. For example, it is better to choose 200, not 250.

            3. ISO values ​​c “-” in the third column have a lower noise level, and they can be used when you need a higher ISO value, but there is a fear of increased noise. For example, if you need ISO 400, you can set 320, which is not much less than 400, but there will be less noise. Similarly, it is better to prefer 640 over 800. Well, it is better to choose 2500 as the ISO limit value, rather than 3200.

            100 100 0
            125 100 + 0.3EV
            160 200 -0.3EV
            200 200 0
            250 200 + 0.3EV
            320 400 -0.3EV
            400 400 0
            500 400 + 0.3EV
            640 800 -0.3EV
            800 800 0
            1000 800 + 0.3EV
            1250 1600 -0.3EV
            1600 1600 0
            2000 1600 + 0.3EV
            2500 3200 -0.3EV
            3200 3200 0
            4000 3200 + 0.3EV
            5000 3200 + 0.6EV
            6400 3200 + 1EV
            12800 3200 + 2EV

            Part 2.

            The first part examined the mechanism for changing ISO under normal conditions, more precisely, when Highlight tone priority is turned off.

            If you enable it, then the change in ISO is completely different. Below are the results of a study of this issue using the Canon 60D as an example.

            The first column is the ISO value set by the user in the camera.
            The second column is the “honest” ISO value obtained by analog gain.
            The third column is the multiplication factor, if there is “+” or the division factor, if it is “-“, which the camera processor applies to the data received from the ADC. In other words, this is “digital” ISO change.

            200 100 + 1EV
            250 100 + 1.3EV
            320 200 + 0.6EV
            400 200 + 1EV
            500 200 + 1.3EV
            640 400 + 0.6EV
            800 400 + 1EV
            1000 400 + 1.3EV
            1250 800 + 0.6EV
            1600 800 + 1EV
            2000 800 + 1.3EV
            2500 1600 + 0.6EV
            3200 1600 + 1EV
            4000 1600 + 1.3EV
            5000 3200 + 0.6EV
            6400 3200 + 1EV
            12800 3200 + 2EV

            After analyzing this data, you can come to a very disappointing conclusion - in the Highlight tone priority mode, the ISO is programmatically increased in all cases, while, of course, the noise also grows, which, however, was mentioned somewhat vaguely in the camera's instruction manual. It is important to understand that such an increase in ISO and an increase in noise affects what will be saved in the RAW file! Thus, we can draw one simple conclusion - the Highlight tone priority mode should not be enabled under any circumstances!

            • Pokemon

              Thank you, curious!

        • Iskander

          So write to everyone, everyone is interested in the truth, and nothing but the truth, and especially according to Canon, so I gave the results of my experiment below.

    • Sergei

      I use Nikon d80.
      I wonder. When shooting in low light conditions (say at dusk, at f / 3.5 aperture), which is better in terms of quality?
      1. Underexposure photos, leave ISO at extremely low values. And then, in the editor, make exposure compensation by fighting with all kinds of noise, etc.
      2. Perform exposure compensation directly on the camera. Again, try to remove the noise in the editor.

      • Maxxx

        Carry out a similar experiment. This is not difficult. Questions will disappear. Make -5EV.
        I did this on d610 about three years ago. And now I found this article by accident ...

      • Michael

        depending on where to raise. generally better on camera - the picture will be a little cleaner

      • Iskander

        I was also interested in this question, so I conducted an experiment on a Canon 100D. First, I shot a scene in RAW at ISO 1600 with a normal exposure, then at 800, 400, 200, 100, without changing the shutter speed and aperture. The chamber noise reduction was turned on. Then, in my native Canon developer, DPP opened photos at 1600 and 400. An underexposed photo at ISO 400 with the brightness slider (its range in DPP + is 2 stops) extended the exposure, like at ISO 1600. Noises at ISO 400 were even slightly stronger than at 1600! I also noticed that the noise reduction sliders on different photos are in different positions, that is, the intra-chamber noise reduction at high ISO works more aggressively. When we twisted the noise reduction to zero, we got a quiet horror - noise and hot pixels came up.
        Why did I choose ISO 400? Because on this model the “native”, optimal ISOs are from 100 to 400, then there is a strong loss of DD and noise.
        There are two conclusions: 1) Shoot at the correct exposure. 2) Intra-chamber noise reduction is good. If this is bad, you can always turn it off in the developer.
        I want to conduct a similar experiment with overexposure, as there is an opinion that noises during overexposure are less noticeable.

        • Iskander

          Conducted a similar experiment, but with increasing ISO, with overexposure. I started with ISO 400, then 800, then 1600 at the same shutter speed and aperture, noise reduction is on. Compared 400 to 1600, lowering the exposure at the last one with the “brightness” slider in DPP. The noise level is almost the same, but a pink tint came out in the light areas, which cannot be removed by adjusting the white balance, and a purple tint appeared in the dark areas.
          In general, my opinion is that the Japanese have danced these dances with a tambourine for a long time.

        • Alexey

          For reference - the in-chamber noise suppressor is on the kenon, on the nikon, on the sony - in principle, it cannot be switched off. And the fact that it can supposedly be turned off in the menu is, let's say, a little cunning. In reality, the noise reduction coefficients just slightly change :) And yes, the picture is recorded in RAW after the noise reduction. It is impossible to get it in its virgin form.

          • Iskander

            I agree that even the turned-off noise reduction still crushes both RAW and Jpeg, but to a small extent, so to speak, by default, there's nothing to be done. But that which is higher than default can be reset in the native developer of DPP. Or adjust.
            Who has other developers who can raise the exposure by more than 2 stops - try and unsubscribe, please.

            • Michael

              The same will happen. On the camera it is a little better, on an extended equal - a little worse.

            • Alexey

              Read above, wrote about the change in ISO.

    • Death_upset

      hi miraeashnikam, by the way
      I’m really with IT, and not with RTS, but it's nice to see my native swamp here
      thanks for the comment, it was interesting to read

  • Oleg

    I believe that this is a matter of processing algorithms and all that. Each pixel will give a different voltage. For small iso light, it enters the matrix sufficiently and the algorithms output the normal voltage. When the light decreases, a lot of pixels sag, and then noise creeps in according to the addition algorithm. This is equivalent to the fact that if the picture is reduced bilinearly, bicubically in size, it becomes better quality. And now try to enlarge the picture, here is the conclusion. How does anyone know that the recording takes place not just one picture, but immediately 10, but at the output 1.
    And it’s logical that the better the processor, the better the picture. What does the manufacturing technology of the matrices think the same.

    • Oleg

      From there, subtraction of black frames, and averaging 10 shots in chdk

    • Michael

      From there, that shutter clicks once and that it generally is. An electronic shutter will give a rolling shutter. Global have not done.

  • Mark

    How relevant is it today?
    Or is it still not so simple and it's time to stop "pulling" the exposure out of my pentax k10d?

    • Michael

      Woz is still there

Add a comment

Copyright © Blog author - Photographer in Kiev Arkady Shapoval. 2009-2023

English-version of this article

Version en español de este artículo