Skip to main content
Known Participant
December 8, 2018
Question

Doesn't the Color Picker work in 16-bit mode?

  • December 8, 2018
  • 7 replies
  • 16564 views

When I switch Photoshop to 16-bit mode, the color picker seems to stay in 8-bit mode (the values only go up to 255 instead of 65535).

Doesn't the Color Picker work in 16-bit mode? Or is there some way to switch it to 16-bit mode, so you can see the actual color values?

7 replies

kalamazandy
Known Participant
June 20, 2022

I wanted to add to this conversation because what I found seemed to be in line with the discussion here. I didn't know that photoshop wasn't actually 16bit, so that is annoying to me. I use photoshop for many tasks, and 3d maps is one of them. I had an idea on how to reduce banding when moving to 8 bit (sadly outside of photoshop because Adobe hasn't ever really had a good way to do that.) So I created a gradient fill with only a vew levels, to ensure I could clearly see banding. I settled on values from 48,48,48 to 52,52,52. So that gives me 5 pretty strong thick bands. 

One thing that confuses me a bit is since the gradient fill is procedural, why I'm not getting a full value gradient in 16bit and 32bit. I'll explain:

In 32 bit mode I'm seeing 16 bit values of 1066 to 1107 over about 725 pixels (the width of one 8bit band). And it skips values also. It goes from 1074-1076 where there Should be a value between, no? And yeah, 32bit is assuming linear values rather than gamma corrected ones, which is why the values change. But I still thought that I should get all of the values between?

In 16 mode, the same area goes from 6503-6627. But now it's skipping values oddly: 6560,6562,6568,6571,6573. so +2,+4,+3,+2? what in the name of rounding kind of numbers are those!?

 

Can I see these number? No, Not important. I'm starting off with creating a gradient in 16bit so that it is smooth (or Should be) so that I can process the image in a different software that will convert the image to an 8bit format with dithering. And no, I'm not Just using a gradient created in photoshop, and I'm aware of the "dither" checkbox, however it is not good enough anyway. And it seems the only dither tools in color reduction within photoshop are moving to indexed color, which can't exceed 256 colors, so doesn't help you much if you are moving from 16million colors to 65,536 colors, which is a SUPER annoying standard. But I've found that converting from 16bit images to RGB565 ends up with much better quantize results than starting with "good enough" 8bit images. So the basic gradient here is just what I'm using to test out how photoshop treats the values. And it Seems that it's just rounding to what might seem "visually good enough?"

 

 

 

D Fosse
Community Expert
Community Expert
June 20, 2022

You're missing something essential: your display pipeline is 8 bit (unless you have a 10 bit capable display; but since you see banding you don't).

 

With a 16 bit file, any banding you see is in your display system. That's all there is to it.

 

There is no need for any elaborate tests to determine if you have a 10 bit display. If you see banding, you don't.

 

 

kalamazandy
Known Participant
June 21, 2022

I didn't think I implied that I had anything But an 8-bit display. Sorry if that is what came across. 

What I was hoping to do was use images that start as 16, or even 32 bit, and use a dithering method to convert them to 8bit so that banding is not perceptible. But in order to do that at the best quality, you need to start off with good quality data. I was surprised that Photoshop isn't keeping the data as expected. 

In after effects, if I create a gradient that goes from 0-32767 (oddly it won't let me do 0-32768 or it turns black, but that could be a graphics card limitation) then the values are 1 apart. If I switch to 32 bit, the values are .0001 apart, which is annoyingly a smaller value in terms of rounding back to an 8bit image, but still, the values don't jump.

In photoshop, the gradient fill layer adjustment jumps in rather large increments. At 32000 pixels wide, I didn't quite go the full width, it's jumping in values of 4-10 in 16 bit. 32bit only shows 3 decimals, so is only nominally better than 8bit in terms of how many colors it can show. The main advantage of 32bit is it can store values above white and the available layer adjustment are actually not destructive, whereas in AfterEffects, they aren't destructive even if they are in 8bit, which is probably one reason you don't get the same results sometimes.

 

I have been annoyed Several times at Adobe deciding to destroy data without telling the user. One good example is with PNG, and I think it's back, but haven't confirmed. PNG IS allowed to have RGBA information stored in every pixel. In Photoshop though, that information is there, up until you save it. If you have something like 100,100,100,0 then when you save it, and open it again, you'll be surprised with a new value of 0,0,0,0. AfterEffects doesn't do that though. If a channel has a value, it keeps in on export. 

 

This rounding, because most people don't need it, is kind of garbage. Put that kind of thing in preferences so that we can uncheck the box that says "use slightly less precise colors for improved performance." That way we could uncheck that box when we need to do something like work on a gradient for a depth map without creating banding. Just because you can't See it as is, doesn't mean you can't see it when the values get clamped later as part of a different process.

 

Inspiring
March 17, 2019

That is funny. Gimp does support 16 bit (0-65535) color picker and your app does not... Really!!!54467446-26046700-4796-11e9-979e-c3cb762126a7.png

c.pfaffenbichler
Community Expert
Community Expert
March 17, 2019

and your app does not...

This is a user Forum, so you are not really addressing Adobe here, even though some Adobe employees thankfully have been dropping by.

Inspiring
March 17, 2019

Just look into this one repo GitHub - jursonovicst/gradient: 10-BIT DISPLAY TEST SEQUENCE

These are test files for 10 bit displays... I could not check colors with Photoshop 2018 and I had to use gimp. That is not normal. Besides that, don't you think that if Photoshop cannot pick up 16 bit color, than you should write 15 bit (0-32768), not 16 bit (0-32768), right? Or it should use 0,5 to really have 16 bit color. So this is a mistake in Adobe code. A MISTAKE. It will not be a problem for performance. Nvidia geforce 2080 can work 48 (or 48 + 16 alpha) bits without any problems. So does Snapdragon 855 or amd chips...

Chuck Uebele
Community Expert
Community Expert
December 10, 2018

As far as PS processing each layer separately, that is true, but it doesn't refuse the values to 8 bit, if you're working in 16 bit. PS has a hierarchy as to how it applies corrections, as I found out when I was having some issues with a process that I thought could be easily fixed. I was told that it wouldn't be easy as another process was implemented first, making the process I wanted corrected defendant on it, which was causing the issue. Again, this dealt with the very basic core of PS, which is difficult to change.

davescm
Community Expert
Community Expert
December 10, 2018

I wonder if we will see some changes in this area. Clearly Adobe are now working on the core compositing engine - hence the need to check "Use Legacy Compositing" to get round one or two of the early bugs it introduced.
Unfortunately apart from general comments that the engine is being updated , I've not seen any real detail on what that update entails.

True 16 bit would seem like a great opportunity now, as would 16 bit compositing (or even 15+1) at zoom levels less than 66.7%.

Dave

rob day
Community Expert
Community Expert
December 10, 2018

True 16 bit would seem like a great opportunity now

What output device is capable of outputting full 16-bits?

No digital halftone screen can output more than 256 gray levels because it would take a massive amount of printer resolution to modulate the halftone dots to more gray levels, so that eliminates most commercial print.

Stochastic screening typically used with inkjet printing would have a similar problem where both the horizontal and vertical printer res would have to be high enough to increment the dot spacing to 65K levels. You might argue that splitting the cyan, magenta, and black channels into light and dark value inks can gain some gray levels, but it's still nothing close to 15- or 16-bit.

Chuck Uebele
Community Expert
Community Expert
December 9, 2018

I seem to recall an Adobe engineer explaining that things like the color picker and input and output values on curves are only in 8 bit values, as the user can't perceive 16 bit values, and it just complicating the PS code. As mentioned above, 16 bit is to give extra range when making corrections to avoid banding and such artifacts.

BTW, Dag, I too have scored a perfect score on that test, several times.

D Fosse
Community Expert
Community Expert
December 9, 2018

https://forums.adobe.com/people/Chuck+Uebele  wrote

I seem to recall an Adobe engineer explaining that things like the color picker and input and output values on curves are only in 8 bit values, as the user can't perceive 16 bit values, and it just complicating the PS code.

From a user perspective, I totally agree with that. Can you imagine typing 27356 into the Curves input field, and correcting 27405 to match? It's insane, considering that you probably can't see the difference between 249 and 250 unless you measure them.

rob day
Community Expert
Community Expert
December 9, 2018

From a user perspective, I totally agree with that. Can you imagine typing 27356 into the Curves input field, and correcting 27405 to match? It's insane, considering that you probably can't see the difference between 249 and 250 unless you measure them.

I think one frustration with the Color Picker is that while the RGB fields are 8-bit values, the C,M,Y,K,—S,B, & L are not. So if you are trying to spec a CMYK color in .5 percentages (or get its RGB equivalent) it gets difficult. A typical halftone screen can't be more than 8-bit, but it could define more than 100 gray levels and you might detect that difference in a highlight color.

If I try to enter something other than an integer in a CMYK field I get this warning

My 10.4% gets reset to 10, but the other space conversions change, so obviously the color changed even though I'm still seeing 10%C.

It would be better (at least for offset print work) if the CMYK percentage rounding wasn't to the nearest integer but to the nearest number.

InDesign does conversion rounding to 100ths

D Fosse
Community Expert
Community Expert
December 8, 2018

I have a feeling this is intentional. I can't think of any situation where you would need to input exact 16 bit values. And input is what the color picker is for.

For readout, use the Info panel as c.p. showed.

c.pfaffenbichler
Community Expert
Community Expert
December 8, 2018

Ah, I do apologize, the OP had asked about the Color Picker specifically but I guess I had misinterpreted

so you can see the actual color values

and assumed they wanted the readouts.

My mistake.

c.pfaffenbichler
Community Expert
Community Expert
December 8, 2018

And keep in mind that Photoshop 16-bit amounts to 15-bit + 1.

Lee JamesAuthor
Known Participant
December 8, 2018

Thanks for the answers.

I was aware you could do it in the info panel, but I just find it confusing why the Color Picker doesn't show the true values? I mean why not? Seeing 8-bit values kind of makes me question whether I'm truly in 16-bit mode and if everything is working properly.

I often use to Color Picker to do two things at once:

1. See the color of the pixel I've picked

2. Compare the colors of different pixels and see if they're actually different.

Not having 16-bit values makes this tool kind of imprecise and clumsy - though it's not a big deal.

Also, could anyone explain what is meant by "15 bit +1" ? I don't get that.

D Fosse
Community Expert
Community Expert
December 9, 2018

Suicide  wrote

I often use to Color Picker to do two things at once:

1. See the color of the pixel I've picked

2. Compare the colors of different pixels and see if they're actually different.

16 bit depth isn't for appearance. It's for data integrity through repeated editing operations.

Visually separating 8-bit values is difficult enough, and in many cases you can't. Don't forget that 8 bit depth is all you get out of your monitor (at best 10 bit if you have a display system capable of that).

Try this one to give you a little perspective:

Free Online Color Challenge and Hue Test; X-Rite

I managed a perfect score on my second try, a fact I take some pride in because only a few % manage that. The first attempt gave two errors.

c.pfaffenbichler
Community Expert
Community Expert
December 8, 2018

Click on the eyedropper icon in the Info Panel and set it to 16-bit.