For one camera, the black level of the sensor will make the output
non-zero when it is covered.
That is actually not correct. The purpose is the opposite. The "Black Level Calibration" output is a negative voltage, and it works so that when the lens is covered, the input on the ADC is zero.
So the dynamic range is reduced from 0~1023 t0 0~960. Am I right?
I am not a electronic engineer, so I don't understand why the analog offset is added to pixel voltage.
That "Black Level Calibration Block" generates an offset voltage, that is substracted from the input (gain-corrected) voltage. The entire range of the ADC is still used.
The reason why you want to do a black level calibration is that the input level, especially with high analog gain, will not be zero when photographing black, but it will be some noise (will have some spectral power and will show as a non-negative number). To only digitize actual information, you want to shift your black level higher.
Are you losing ADC range with this? Not at all, on the contrary, you use your available ADC range to sample the most important information.
The output of ADC is reduced by digital offset, do this will reduce
dynamic range greatly?
Digital gain and digital offset might cause you to lose some information, if the output of the ADC is mapped to a smaller range of DOUT, or if you clip on top or bottom.
Example of all above (completely arbitrary, as voltages and multipliers are implementation-dependent):
- You make a night shot.
- You get input voltages between 2mV - 120mV from the pixel cells.
- Your ADC needs input voltages between 0V - 1V. So you your camera applies an analog gain of x10. So the amplified voltage is 20 mV - 1.2V.
- Now, if you just digitized this, you would have clipping on the top, as the max. input voltage of the ADC is 1V. On the other hand, below 20 mV you would always get 0. So to optimize the ADC's input, a -20 mV "Black Level Calibration" voltage is applied (which is your black level).
- So now the ADC sees the correct 0V - to - 1V voltages. Great! All the 1024 output values of the ADC are significant.
- Would you use digital gain and offset? No. Your data covers the biggest dynamic range!
So... why do we have digital gain and offset, you might ask? Well, because
- you have three input colors
- you want to correct white balance
- you apply some creative filter on-the-fly,
But not, if you save to RAW! If you save to RAW, you have the highest possible dynamic range.
Now, what MIGHT reduce dynamic range even when shooting into RAW:
- incorrect analog gain (some sensor implementations use current banks that can switch between too few possible gains - this means that the amount of possible gain values are limited)
- incorrect black level. Using too low black level will mean that you use a large portion of the ADC's sampling range to sample noise. Dynamic range is tied to a level of SNR, below that it makes no sense.