View Single Post
  #53  
Old 14-07-2010, 09:35 PM
irwjager's Avatar
irwjager (Ivo)
Registered User

irwjager is offline
 
Join Date: Apr 2010
Location: Melbourne
Posts: 532
Quote:
Originally Posted by ericwbenson View Post
Wait a sec, it sounds as if you are working
in only 8bits?
Nope, 10-bit source/CCD, 64-bit integer processing and 16-bit TIFF output (as in the links).
Quote:
Originally Posted by ericwbenson View Post
CCDs produce images with much more than 8bits of dynamic range (10-14 is typical). And stacked images have even more (16 images in a stack could in theory get 4 more bits). Also the camera quantization levels are generally set to be smaller than the read noise. That way the discreet digital levels are not a limiting factor. That's why MaxIm DL and Mira do their processing in 32bit floating point, none of this banding occurs and there is no trade off in signal range-precision.
I couldn't disagree more. There *is* signal degradation and you *will* start to notice it when you're starting to manipulate the signal. See how you go when you're trying to multiply the signal, such as when you're trying to make a high dynamic range composite from a high bit-depth image (i.e. you multiply the signal progressively and blend the non-over exposed parts with the original to bring out more detail, in, let's say, 8-bit intervals).

I do agree that there's a certain color depth, beyond which it becomes hard to see any difference (your screen can only represent 8-bits each color channel). That doesn't mean however that the imprecision isn't still there, waiting to bite you in the a** once you start manipulating your data further (such as in the HDR scenario above).

Also, you can still get banding with 32-bit floating point numbers. Floating point numbers can't represent every real number and rounding errors creep in quickly and become larger, the more you manipulate the data. Unless Maxim and Mira use floats to store integers in, in that case you can store 2^24 integers correctly until things go wrong. But that would defeat the purpose - why not just use a 32-bit integer... Fidelity and accuracy is not a float's strong point once you start performing arithmetic on them; for example, one of the biggest sins you can commit as a programmer in the finance industry is to use floats...
Reply With Quote