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.

Conclusion:

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: Iskander

 

 

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

  • An interesting observation, you will need to conduct a similar experiment with your D5100 :)

  • Crelian

    Thanks for another interesting review. But…

    “… 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 INCREASE the shutter speed by 16 times, that is, then the shutter speed at ISO 1600 will be 1/160. The exposure for ISO 100, F2.0, 1 / 10s and ISO 1600, F2.0, 1/160 will be the same ... ”

    In my opinion, there is a contradiction here - in order to maintain a given exposure with a constant aperture and an ISO value increased by 16 times, you need to REDUCE the shutter speed by 16 times, i.e. up to 1/160 sec., as written further in the text. Sounds like just a typo?

    • Arkady Shapoval

      Yes, just a typo, in the examples the data speak for themselves. Thanks for the help.

  • Dimka

    An interesting experiment. But can it not be that ISO 100 is also a software product? For example, physically, the matrix has an ISO 200 photosensitivity, and then simply decreases by 2. That is, how to find out the real photosensitivity? Or did I somewhere make a mistake in understanding the processes? (

    ZY I am very glad that I got to your site, I learned a lot of interesting things. And also was amazed at the excerpt reading comments on the topic "CCD vs CMOS". Thanks you.

    • Arkady Shapoval

      In some cameras it is, there the base iso 200, and 100 is implemented by the overexposure method. Checking out is pretty hard.

  • Dima

    Tell me, why do I set ISO 200 when photographing, and when I look at photographs later, will the information appear on the screen that the photo was taken with ISO 800?

    • Arkady Shapoval

      Most likely, you have the AUTO ISO function turned on, or you shoot in green automatic mode. This happens often and you are not the first to ask such a question :)

  • Dima

    I shoot in manual and auto iso off

  • amitoria

    The problem is that at a photosensitivity of 100-400, any dynamic scene shot in low light conditions will be blurry :-) It would be better if you came up with a way to programmatically reduce the photosensitivity))) I also have d200, but I tend to think more change it to d300. No matter how scolded the CMOS matrix, but behind it the future, everyone refuses to manufacture CCD matrices. Now any modern camera comes with a CMOS matrix, they are less noisy at high ISO, which significantly expands the scope of their application. The D200 shoots well only under ideal shooting conditions, allowing you to shoot at low light sensitivity :-) Well, you can still practice night shooting when high light sensitivity is not needed. And for the rest, CMOS, otherwise it’s easy to make noise.

    • Arkady Shapoval

      Here I did not consider the scope of application of low photosensitivity.

  • Razor

    In the third paragraph, you can insert this video from Discovery http://www.youtube.com/watch?v=7LeV3OWTHS4where everything is clearly shown.)

  • Alexey K.

    I did a similar test on the Pentax K-5. Pictures with ISO = 3200 here: fotki.yandex.ru/users/aleksejj-dmitrijevich-kuznecov/album/355477/
    Shooting conditions are about the same (normal exposure is at 1/8 second, F = 1 / 2.4, ISO = 100).
    When changed by 4 stops, the difference between ISO = 100 with computer processing and ISO = 1600 is almost imperceptible. By 5 steps - intra-chamber processing (or is it an analog increase in sensitivity?) Gives noticeably better results.

    • Corsar

      It's funny that in the last clippings you have 3200 noises less than 100

      • Alexey K.

        On the last clippings - do you mean the fragments on the right? The lower one was made at 3200 iso (at least I set this sensitivity on the camera). And the top one was made at 100 iso, but then 5ev was added on the computer, due to this and noise.

  • Sergei

    Arkady, everything is much more interesting. To increase the photosensitivity, a higher voltage is applied to the matrix, which increases its consumption and heating. Since it is a semiconductor device, it has its own noise directly proportional to k * T, where k is the Boltzmann constant, and T is the temperature in Kelvin (the higher the temperature, the higher the noise).

    • Alexey K.

      That is, if I take a sufficiently large series of shots at high sensitivity, then the last shot as a whole should have noticeably more noise than the first? (Let's say the camera has just been turned on, the matrix has cooled down before the series, etc.) Let's look at my leisure.

  • Ilija

    Hello, Arkady.
    Could you explain to me, otherwise I don’t understand how it happened? You have succeeded in that both photos in this article (2nd and 3rd photos in a row), in terms of the result, almost do not differ from each other. They were made at F2.0, shutter speed 1/160, but different ISO. In the first case, it is 1600, in the second - 100. Yes, in the second case there is an exposure compensation of 4 stops, but in this case, depending on the shooting mode, one of the parameters would change. If ISO was chosen to be 100, then either shutter speed or aperture would change.

    Is not it so?!

    • Arkady Shapoval

      +4 ev compensation using software.

      • Ilija

        And then I understood. Good. Thanks for the answer!
        And thanks for the article!

  • quickvox

    very good This question worries because it noticed strong noise at its D5200 at low ISO, up to a minimum of ISO 100.
    After a little test, I realized that when brightening a picture with minimal ISO, they become indistinguishable from the same images at high ISO.
    The first thing that goes into your head is that the camera only shoots with a specific ISO and then adjusts it programmatically to our settings.
    Then it doesn’t make sense to increase the ISO and just add + exposure on the computer
    Is this so or am I confusing something?

  • Ronin427

    Great experiment!

  • Dmitriy

    Interesting reasoning, but something in my head cannot reconcile with this, and the phrase “the ADC simply multiplies the read signal by some coefficient, which they take for ISO” just disturbs consciousness. It is not logical to do so: “read, then multiply by sensitivity and pass it off as the result.” Of course, I agree that they do not always sell what we would like, but that would be too much.
    Let's approach the discussion in a purely abstract way: discard the Bayer filter and consider the b / w matrix. Omitting the process of line-by-line / column reading we take the voltage from one cell. Suppose that at a sensitivity of ISO100 we read 12 bits of value. In this case, we can get any of the numbers from 0 to (2 ^ 12) -1. This data, as is, goes to RAW (if the cook is not lying to us). Next, set ISO200. Sensitivity is 2 times higher. As stated in the article, we multiply what is read by 2 (here the truth is the question of the linearity of the transformation, but this is definitely a monotonously increasing function and will not change the essence). Then all values ​​will be even, and this means a loss in tone transitions. Well, okay, “one-bit holes” is not scary, but going to ISO1600 we get 4 steps, i.e. 4 bits, and this already equates 12-bit RAW to 8-bit JPEG. Those. when saving to the same JPEG, the camera compresses 12-bit to 8-bit (read “remove bit holes”) and it turns out that with this ISO there is absolutely no difference in which format to shoot. I’m silent about the fact that ISO6400 will eat half of the 12-bit range and reduce it to the analogue of a 6-bit image, and this will already be very noticeable during transitions. There is of course the option that the camera will interpolate neighboring pixels and smooth these steps, but this is a calculation and, again, “blurring” the image. Here the truth can be attributed to the fact that the noise level at this sensitivity is very high, and the detail is very lost. So everything can be.
    But there is another idea. You can either vary the gain of the ADC from the same ISO, but like you this idea is not very good, although technically there are no obstacles, and the result will be consistent with the behavior of the cameras. Or the second option: to read from the matrix a known larger number of bits, say 18-20 bits. Then, for ISO100, we take 12 high order bits, for ISO200, we drop one high order, take the next 12, and forget the insignificant ones, etc. until we get to the 12 junior digits. No loss of values, no interpolation. By the way, as far as I know, SARs are used in CMOS ADCs, and in this case, we can start digitizing from the digit we need and finish reading at the number of bits we need. It would be possible to save all 18-20 bits as is, but there’s not much sense in this range, and to process twice as much, and therefore to store. It turns out with accuracy your option, but just do not multiply the lowest sensitivity, but divide the highest.
    There are a few thoughts on checking your SLT-A37 camera with a CMOS matrix, how can I check and unsubscribe.

  • Dmitriy

    It seems that all my philosophical arguments are incorrect. If you look at the graphs provided on http://www.clarkvision.com/articles/digital.sensor.performance.summary/ , then one stop ISO gives the loss of one unit of the dynamic range, which is especially linear at values ​​over 400. And the ADCs themselves have 12 or 14 bit resolution, well, it is doubtful about the gain. So it looks like some kind of multiplication by a coefficient. Although it’s worth experimenting, for a qualitative comparison.

    • Arkady Shapoval

      Only the designers themselves know for sure. And my note may be relevant only for the ssd matrix of only d200, on which I conducted the experiment.

  • Dmitriy

    I apologize for the verbosity, but finally found the answers to many questions on the resource http://www.clarkvision.com/articles/iso/ . According to him, then ISO is the same gain of the signal from the photodiode before conversion to ADC. Amplification must be, because 2-4 electrons will not detect the ADC comparator. It also tells about 12 bits. At the same time, it is not claimed that 14 is bad, just mathematically they do not give any advantage for the dynamic range, although time goes on and everything changes. An interesting view of the curve in Figure 2 is seen from it. which at the smallest ISO has the largest dynamic range. But the nature of the curve is interesting, namely a strong gently sloping up to ISO 400, which can play a hand in choosing the aperture and shutter speed. After all, the photographer is not an astrophysicist, and beyond the magnitude of the dynamic range, it does not matter to get to the bottom with precision to the hundredth.
    So the ISO number for the camera is not just a conversion after the ADC. Although according to the same schedule for the Canon 5D Mark II, for each ISO stage after 1600, one stop of the dynamic range is lost. And this can be equated in effect to the loss of the least significant digit in the read value, i.e. you can simply read the value from the ISO one step lower and multiply by 2.
    Regarding the conclusions of Arkady, everything agreed because the comparison is visual, not numerical. And the fact of 4 stops played, because this is approximately 4 bits of the difference between RAW and what the monitor shows and stores JPEG. In practice, it turned out to be an excellent example of the fact that +4 exposure units without any visual defect can be pulled from RAW.
    Arkady is very grateful for the question raised.

    • Arkady Shapoval

      Thank you also for the helpful information :)

  • Dmitriy

    I can not help but mention another resource on the topic of noise: http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/index.html .
    A lot of interesting things about the parameters and components of digital noise in the photo. And in the penultimate paragraph of paragraph 2.C, it is said that starting from a certain ISO, the camera simply multiplies the value after the ADC, which also corresponds to the graphs from the ClarkVision resource from the previous discussion.

  • Ander1974

    Today I doubted the amplification of the signal from the photocell. At least this applies to Nikon d5000-d5300 series. And the bottom line is this - opening .nef in a third-party RAW developer - RAWTherapee, photos taken on the D5300 (there is no supported profile for this camera in this software) will look black-gloomy-green. And only just raising the exposure brings everything into place. For example, photos from my D52000, which support is declared in this developer, look the same as in View NX2. So there is reason to think ...

  • anonym

    Arkady, a very interesting topic, thank you. I have long been interested in a question related to this topic: what processes flow in the chamber when setting the quality mode from L to M (from 18mp to 4,5mp). Signals from pixels are added or knocked out of the general row and how does this affect ISO and noise?

    • anonym

      There are different resampling algorithms, Google will tell you about them.

    • anonym

      read about interpolation

  • Dima

    In general, Nikon writes that the real range is a hardware solution (just increasing the voltage on the matrix, due to an increase in the magnetic field strength at each subpixel, the induced current creates errors on neighboring subpixels, this same color noise), and the extensions hi123 is already really a software extension, by the way from the rav of the latest version of Photoshop it draws better than the camera itself (in any case on d123)

  • Igor

    And I always thought that the lower the ISO, the lower the voltage applied to the matrix for reading information. And then, when the maximum voltage for reading was applied at the maximum ISO, and the higher cannot be applied to this matrix, the plug-in is turned on. In short, as with any semiconductor device, such as a transistor in an amplifier, the higher the supply voltage, the higher the gain. And the matrix is ​​a set of semiconductors.

  • Alexey

    I have 600d and I practice night landscapes with extra-long shutter speeds. 10-20 minutes :)

    So I noticed that you can really use only 100-200 on my camera. further wild noise is already climbing. it is not visible at fast shutter speeds and when pulling an underexposed frame from the frame, but at long shutter speeds only ISO 100 or 200 without noise. I do not use any built-in noise reduction devices - they spoil the picture.

    Besides, I am still looking for a "smart" rav converter. The bottom line is that I don't want to have 18 megapixels where each adjacent pixel has two subpixels in common with any surrounding pixel.
    I have a knocked-out subpixel right in the center of the matrix. As a result, even on the RAV image I have 5 dead pixels in the shape of a game dice with number 5 (1-3-5-7-9 on the calculator's keyboard) And this is not a knocked-out pixel, but a pixel with supersensitivity! on ultra-short exposures it is not! so I want to get one pixel of the image from exactly 4 independent subpixels that do not overlap with neighbors. Yes, then I'll turn my 18.1 megaSUBpixel into 4,5 megapixels of a real image - is it really so?
    Why is it not written in a 1920 x 1080 monitor that each of 1920 pixels is actually three cells of different colors? It would have turned out to be just cosmic - 5760x1080 = 3,2 megapixels :) cool :) just like 18 megapixels on my 600d.

    Maybe someone knows how to make “real” pixels out of my camera?

  • Vladislav

    “The second photo was also taken at ISO 100, but with a shutter speed 16 times shorter than normal - at 1/160 and an increase in exposure by 4 stops (other settings are automatic). The third photo was taken at ISO 1600 and also with a shutter speed of 1/160. ”
    - It looks like - the second and third places are confused - correct the description, or swap the photos, otherwise it is "zbyva into the pantiliku"

  • R'RёS,R ° F "RёR№

    And why software ISO increase is considered worse than hardware? As a person involved in signal processing, I can say with confidence: they almost always try to amplify the signal in software, because the hardware implementation will give much MORE noise than the software one. Yes, it is possible to make a less “noisy” circuit, but for one pixel, for ten, and for your matrix, such a circuit will take half an apartment.

    • anonym

      if you have a 12-bit number, you can increase it by 2 times, it will become 13-bit, but in the low bit you will have 0
      and in general your words about hardware signal amplification without an example for a common man in the street are about the same as in films about hackers they enlarge the picture, enlarge (digital zoom) and .... voila ... a close-up of the license plate, and the face in every detail

      • R'RёS,R ° F "RёR№

        What example do you need? Do you want to show the real dimensions of the operational amplifier for ONE channel? It is not large, but if you multiply its area by the number of pixels in your matrix, you will be unpleasantly surprised.

        • KalekseyG

          And if the opamp will strengthen not every pixel, but a horizontal scan from the matrix? They will need only 3 pieces.

          • R'RёS,R ° F "RёR№

            1. This will significantly reduce performance.
            2. To do this, you need to perform both the matrix and the OP on the same chip. There are serious technological problems with the integration of an analog circuit into a digital one. It is very difficult. If you do, then the cost of the matrix unreasonably increases.
            3. There are also problems with screening the OP from the digital matrix noise. In addition to the useful signal, it will also amplify the “ringing” from rectangular pulses of a digital circuit. As a result, it will be no better than software processing.

            But yes, someday it will be possible. Perhaps development is already underway, but I am not aware of this.
            And today they are trying to convert the signal to a digital code as soon as possible, without any intermediate analog conversions and OP, including, because the DSP introduces much less noise and distortion.

            • KalekseyG

              I remember reading somewhere the research of a homegrown engineer, so he made an astro camera based on a D40 martica, the operative was alone on the way from the matrix to the ADC, though he had a very good circuit, he stabilized everything he reached

            • KalekseyG

              and the signal from the matrix with which fear digital

  • Georgy

    If you follow the absolute logic, the conclusions about ISO on the D200 are not fair. In order to think about it, you need to know 100% how the “increase in exposure by 4 stops” works. If it uses a mechanism to raise the ISO, then the experiment is fundamentally wrong. The D200 is not a cheap camera and it is obvious that they could have used the most optimal algorithms to increase the exposure. The author assumes that increasing exposure does not involve ISO, but you need to know for sure in order to build beliefs.

    • KalekseyG

      And there is something in it, but you can check. Pull up iso to the top, and then another amendment up, and if you're right then nothing will come of it.

      • Georgy

        Not a fact, if you follow absolute logic. I repeat D200 is not a cheap camera and there it is obvious that they could use the most optimal algorithms to increase exposure. I suppose that if a function can raise ISO, then it will raise it, and if it cannot, then programmatically. Not knowing how a function works is difficult to determine its actions. It is not correct to assume without confirmation that the function is linear. But you are 5 points for creative thinking.

        • KalekseyG

          And on the contrary, I doubt that they duplicated the possibilities. Either the substitution of the amendment due to iso, or programmatically. Although why not, up to some numbers like that, and then a completely different algorithm.

          • Georgy

            Logic is when the initial parameters are 100% known. If not 100 (even 99.9) then this is Divination. :)

            • KalekseyG

              You have not read my third sentence in the message.

              • Georgy

                I read everything. I wrote in general, not in contrast. In principle, if you put a sufficient number of competent experiments, you can come closer to a real understanding of the function.

              • KalekseyG

                you can no longer answer George, I will answer myself. The goal can be set, but the goal of the experiments is definitely meaningless and nobody needs it.

  • anonym

    In fact, the measurement results are integrated, i.e. to capture 1 frame - several measurements are made, the more iso, the more measurements are in the heap. That is why, with long-term digital ISO, you can “draw” lines with a light source. Naturally, with each measurement, the amount of superimposed noise increases.

Add a comment

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

English-version of this article https://radojuva.com/en/2012/02/iso-boost-detect/comment-page-1/?replytocom=338898

Version en español de este artículo https://radojuva.com/es/2012/02/iso-boost-detect/comment-page-1/?replytocom=338898