Skip to main content
Participating Frequently
February 16, 2011
Answered

16-bit or 15-bit+1?

  • February 16, 2011
  • 2 replies
  • 9230 views

I've been searching high and low to get an understanding why Photoshop CS5 (and CS4) only show a range of 0-32,768 for the color picker on a 16-bit per channel image, when in fact for true 16-bit should be showing 0-65,535. And I've not been particularly successful in my search - all I can find is that yes, this is true, but not why, nor why it hasn't been fixed (I understand it's been this way since PS started supporting 16-bits per channel.

The other thing I can't figure out is if this is something that's only in the color picker, or does Photoshop take 16-bpc (Bits Per Channel) images and sample them down to this 15-bit+1 range (effectively reducing the channel range by half) and the color picker just reads what the data has been munged down to?

And yes, before someone asks, there are cameras and backs that produce true 16-bpc images (I have one - a Hasselblad).

Any pointers to documentation or more detailed discussion of this issue would be greatly appreciated, as calling 0-32768 "16 bits" is rather misleading. I'm feeling cheated somehow.

Thanks,

Jake

    This topic has been closed for replies.
    Correct answer Chris Cox

    Photoshop's internel representation is 0..32768. This gives a midpoint to the range (very useful for blending), and allows for faster math because we can use bit shifts instead of divides.

    That is not a bug, just a design decision to make 16 bit/channel run faster.

    A search of the forums will reveal more information about that decision.

    2 replies

    Participating Frequently
    February 16, 2011

    BonaireGuy wrote:

    And yes, before someone asks, there are cameras and backs that produce true 16-bpc images (I have one - a Hasselblad).

    Actually, while many of the medium format backs and some scanners claim a full 16 bit, in fact that depends entirely what your definition is of "a full 16 bit" file. In point of fact, the difference between a full 16 bit (and I seriously doubt the "full 16 bit claim) and 15+1 is negligible. You would never see the difference (and Photoshop would prolly be a a different animal in it's processing routines).

    Bottom line? Don't worry about it.

    You would be far better off learning how to optimize your capture exposure than worrying about less than 16 bit precision...

    Chris Cox
    Chris CoxCorrect answer
    Legend
    February 16, 2011

    Photoshop's internel representation is 0..32768. This gives a midpoint to the range (very useful for blending), and allows for faster math because we can use bit shifts instead of divides.

    That is not a bug, just a design decision to make 16 bit/channel run faster.

    A search of the forums will reveal more information about that decision.

    Participating Frequently
    February 16, 2011

    Thanks for the official insight.

    So, if I bring in a 16-bpc file, and then save it, will it still retain all the original data, or will it have had the channel information compressed from 0-65535 to 0-32768 (and then presumable expanded back to 0-65535 so that other programs read it correctly)? Or is the 0-32768 some sort of abstract intermediate representation that doesn't affect the original data (perhaps until later)?

    Just trying to understand where my bits are going, if anywhere.

    Thanks,

    Jake

    PS In this day of GPUs with parallel processing, are divides really still that expensive in terms of processing time?

    Noel Carboni
    Legend
    February 16, 2011

    I was under the impression that my Hasselblad H3D-II captured a full 16-bpc. Is that somehow incorrect?

    The values may have 16 bits.  The useful values read out are more likely 12 to 14 bits (if that much).

    I've only seen a few sensors that could read out useful 16 bit data without cooling, and they were SLOW (and most are line scanners).

    (disclosure: one of those sensors is my patent)

    Just the amplifier and readout noise on most sensors will make the 2 lowest bits useless. (and I'm talking pro gear, I won't even start on point&shoot or cell phone cameras)


    But Chris!  More bits is better!!!  Just like more megapixels is better. 

    Actually, the fact that a gamma correction is applied to the raw data means the 15 bit representation will more than carry all the data in all the parts of the image that really matter, even if the sensor were providing 16 full bits of measurement data.

    And let's not forget that while a Bayer-patterned sensor may provide 16 bits of data per photosite, an RGB image in 16 bits/channel mode is actually providing 3 x 16 (15+1) bits of data to represent a pixel (one level each for Red, Green, and Blue).  That would be a net increase from 16 to 45 bits.

    A "seat of the pants" test to see if the data format you're using is deep enough is this:  At the lowest ISO your camera will shoot, take a photo of something very smooth.  Convert that image into a 16 (15+1) bit image in Photoshop, making sure to disable all noise reduction during the conversion.

    Can you see any noise/grain in the image?  If you can see noise visually, there's probably less than 8 bits of precision in the data!

    Because of the gamma correction applied to the linear data, you'll generally find more noise in the dimmer parts of the image (this is why Expose To The Right can produce good results).  Even if you have to enhance (brighten) the image to see the noise, if you can see noise under any amount of enhancement the data format you're using is generally deep enough to carry all the real information.

    -Noel