Astrophotography, Pixel by Pixel: Part 4
Welcome back to this blog series! We've already covered tons of fascinating topics in the previous sections. Per usual, what will be covered below builds upon and applies to concepts already covered. If you are unfamiliar with things such as well-depth and others, I recommend taking a quick look back at the previous installments. You can find part 1 here, part 2 here, and part 3 here.
Up until this point all of our captured rain/photons have been kept nicely inside our buckets. It is now time to investigate the way we measure what we've captured and how it gets turned into an image that we can actually work with. Adequately covering this topic can be technical like part 3, but I've got plenty of diagrams to help out as well.
So come on down once again to the realm of the tiny buckets!
The ADU and You
I’ve now mentioned many times about the pixels being “read out," or recorded, or measured. This process is carried out by your camera’s on-board Analog to Digital Converter (or ADC). The captured light and the corresponding electrons are an analog signal, and this needs to be changed to a digital signal so that we can work our pre- and post-processing magic on our images.
This is done by emptying the bucket. The collected photons are converted to electrons as mentioned earlier. These gathered electrons create a voltage difference, and it is this voltage that is measured to give us the brightness or intensity value on each pixel. This emptying also readies our pixel buckets to gather photons for the next image.
While the bucket itself is graduated in the electrons it can hold, there is another step of gradation that occurs when the pixel is read off by the ADC. The ADC has its own levels that corresponds to the bit-depth of the ADC. This is usually 8, 10, 12, 14, or 16 bits, and the number of levels or possible values that can be read off by the ADC is 2 raised to the number of bits (256, 1024, 4096, 16384, and 65536 levels respectively). The ADC bit-depth for many common DSLRs can be found at photonstophotos.net, or from the manufacturer's specifications for dedicated astrophotography cameras.
To see the effects of this second type of gradation, let’s overlay the ADC levels on top of our electron well-depth levels from the previous post on our pixel. As an example, an 8-bit ADC has fewer levels, so the overlay might look something like this:
(Figure 1: 8-Bit ADC Overlay)
Just like the pixel-buckets, there can be no fractional values on the ADC: any levels that are partially filled will be rounded down to the closest ADC level. In the case of the 8-bit ADC, this means that it takes multiple electrons, or multiple captured photons to be read off as a distinct level.
(Figure 2: 8-Bit ADC Output)
The image would have the same brightness value or intensity even though the pixel-buckets captured different amounts of photons-water. We generally do not want this. Since every photon/electron/drop of water from our object is precious to us, we want to make sure that each one gives us unique information. If we have more well-depth than we do ADC levels, then this is another source of not being able to accurately pick out fine variations in brightness detail on our object.
The real-world story is even worse for us in this case. Recall that not every photon (rain-drop) that hits the pixel (bucket) is actually captured: the rate of capture is dependent upon the Quantum Efficiency of the camera. This means that if we have fewer well-depth levels than ADC levels, it takes even more incoming light from our target to actually make a difference in our images.
Whereas a 16-bit ADC has many levels, and so comparatively may look like this:
(Figure 3: 16-Bit ADC Overlay)
This looks very busy as an image, but for comparison’s sake in our analogy, I’ve kept the number of well-depth gradations the exact same as our 8-bit example. Let’s take a look at what happens in this case when our pixel-bucket captures the exact same number of electrons as before:
(Figure 4: 16-Bit ADC Output)
The result is that we get a different value that is measured from our pixel-bucket. Great! This is exactly what we want. Every single electron captured will correspond to a different ADC value, and any small variations in object brightness will be recorded and can show up in our final image.
You might have noticed on the last example that there are exactly 2 ADUs per electron captured. This indicates that we jump multiple ADUs per electron captured. Wouldn’t this indicate that we are losing fine detail as before, just on the side of the ADU readout instead of the well-depth of the pixel?
Well, not really. We don’t really care about jumping values in ADUs. What is most important is that each electron captured corresponds to a distinct ADU level, no matter how many jumps each electron creates. This is because it is ultimately the ADU value that is read out that give us our digital information for our final image.
With all of the functionality of the ADC under our belt, I can finally make good on my promise from part 3, which was covering what Gain/ISO value you should set your camera to.
To see the full effects of what Gain/ISO does now that we understand how the ADC works, let's return briefly to the 8-bit ADC example from above. If we take that as the starting point of either 0 gain or the lowest ISO value, then recall we get the effect we don't want: requiring multiple electrons to get a different intensity value.
(Figure 5: 8-Bit ADC Overlay.....part 2)
We see here just like before that this would require multiple bucket levels to be filled in order to be measured as a distinctive level for our final image. Now let's apply a Gain boost to our bucket just like from part 3, which artificially decreases our well-depth:
(Figure 5: Gain/ISO Bucket Shortening)
I have also mentioned a couple times at this point that this is an "artificial" shortening of the bucket. We are not actually chopping off the top part of our pixel-bucket, and the total "physical" size remains the same. What is happening is that the fewer bucket levels we have are then stretched or multiplied to cover the full size of the pixel. So after the shortening in the diagram above, the next step that really happens is that the fewer levels are distributed across our full column like so:
(Figure 6: Gain/ISO Pixel-Bucket Stretch)
Finally, let's compare our original pixel-bucket to our increased Gain/ISO bucket with the same (imagined) ADC levels over the top of these. The comparison would look something like this:
(Figure 7: ADC Over Standard and Gain/ISO Pixel)
It should be easy to see the first result of what increasing your Gain or ISO actually does. If you have more well-depth than ADC bit-depth, then increasing Gain/ISO allows you to make it so that each captured electron will correspond to its own ADC level. We can increase the Gain/ISO such that each electron captured would jump multiple ADC levels like our 16-bit example from before. There is even a special spot for where the Gain/ISO is set so that each electron will correspond to exactly one ADC level, and that is what is called "Unity Gain."
Now let's fill our original and Gain/ISO boosted pixel-buckets with the exact same number of electrons. Can you figure out what the end result will be without peeking at the final figure below? Be honest and try. Or not and just jump below. It's not like I can stop you or anything. I mean, there's no "correct" way to read a blog.
.
.
.
.
. (no peeking)
.
.
.
.
.
.
. (almost there)
.
.
.
.
.
.
. (have a good idea for what will happen?)
.
.
.
.
(Figure 8: Electron Count Base vs. Gain Pixel-Bucket)
We can now FINALLY see the ultimate effects on our images by increasing the Gain/ISO, as well as understand why it SEEMS that increasing this setting boosts the sensitivity of your camera (But remember, not really. Sensitivity is purely the quantum efficiency and cannot be changed). The exact same amount of light captured comparatively fills our pixel-buckets more, and so the ADC readout is higher, and therefore we have a brighter value for our pixel.
Neat!
For the perfect world optimized setup, the pixel-bucket well-depth would be less than or equal to the bit-depth of our ADC. This will ensure that each captured electron corresponds to its own intensity value in our image. Don't overly fret about hitting this point exactly, but it can be beneficial to your images.
The Gain or ISO setting effectively decreases the pixel-bucket well-depth. For DSLR users, I once again recommend checking out photonstophotos.net. This will tell you your equivalent well-depth for common ISO settings. Consult the manufacturer's specifications for dedicated astrophotography cameras.
There are some further advantages to having an ADC bit-depth be larger than your pixel-bucket well depth involved in processing steps, but the nuances of those advantages are beyond the scope of this article.
Takeaways
- The ADC bit-depth is set by the hardware of the camera
- It adds another level of gradation to your data and comes into play when the chip is read-off and the pixels are emptied
- Set your Gain/ISO setting such that you will have less than or the same number of well-depth levels as your ADC bit-depth
You can read the next part of the series here.
Hello Philip,
Thanks for the heads up! There is another site available with similar information. I will update the links shortly.
Sensorgen.info no longer exists. Do you have a formula or way to calculate what my sensor’s equivalent well-depth is?
Goran, thank you very much for your kind words!
Thank’s a million for this series!
It’s the absolute best info in this area of astrophotography I’ve ever seen.
Easy to understand and very well written, great work!
Hello Dana,
You are exactly right! The saturation value given at Sensorgen.info is exactly the well depth of the camera for a given ISO. Following the example in the blog and the trend in the information, higher ISO settings result in shallower well depth capacities. Put another way, the pixels will saturate faster. To ensure that every photon is it’s own level in your images, you would want your ISO to be set at a value such that the saturation quantity is less than the ADC bit depth.
This is tempered a little bit by the read noise amounts (that topic is intended to be covered in Part 6…stay tuned) at different ISO values. Furthermore, some bit depth can be recovered by stacking your images. Diving into that topic was beyond the scope of this article, but you can check out Dr. Craig Stark’s article about that here: http://www.stark-labs.com/craig/resources/Articles-&-Reviews/BitDepthStacking.pdf
Hope that helps!
Jon Minnick