How to Make 16-bit Luminosity Masks

In 2006 I released the Luminosity Masks tutorial. It described a process for creating selections and masks in Photoshop based on the brightness values of the image. Instead of a spatial selection where the marching ants enclose a specific area or element in an image, luminosity selections are tone-based. They look at the brightness each pixel and then group together similar tones across the image.

Because they are created directly from brightness values of individual pixels, luminosity masks and selections are completely self-feathering. Selections automatically adjust to match pixel brightness as brightness varies across the image. The continuous-tone property of photographs becomes the perfect-blending property of luminosity masks.

The method described in that original tutorial successively intersected luminosity selections to make the Lights-series and Darks-series of masks anchored in either the lightest or darkest tones in the image. Midtone selections were created by first selecting the entire image and then subtracting off a Lights-series mask and a Darks-series mask. This method for creating luminosity has been widely adopted and reproduced by other photographers wanting to use and promote these techniques.

Last year I started to receive email questions about whether luminosity selections change the bit depth of selected pixels from 16-bit to 8-bit. The answer to this is “No.” It would take something like the Image > Mode command to do that. A little research, though, showed where this misconception was coming from. It turns out that regardless of the bit depth of the image, selections are always 8-bit. Even on a 16-bit image, selections are still 8-bit. The bit-depth of the selection, though, is only referring to the degree of selection possible within the selection (up to 256 for 8-bit). The bit-depth of the image, on the other hand, is describing the amount of color information each pixel can display (65,536 levels for each color channel in RGB). They’re not the same thing. The 8-bit degree of selection is only determining how adjustments get passed to the pixels below. It is not changing the 16-bit precision of the color data in those pixels.

Unlike selections, the bit depth of masks always matches the bit depth of the image. Layer masks and channel masks on a 16-bit image are themselves 16-bit. This information got me thinking about alternate ways to make luminosity masks. While luminosity selections would always be 8-bit, could pure 16-bit luminosity masks be made for a 16-bit image? In other words, instead of intersecting and subtracting 8-bit luminosity selections to make luminosity masks, could these masks be made without the intervening 8-bit steps?

The answer is “Yes!” Photoshop’s Calculations dialog (Image > Calculations…) provides the key. This dialog can be a bit confusing and is not often used by most photographers. But it’s quite powerful. It can take the 16-bit data from an image or individual channel and, after doing the calculations, output it as a 16-bit channel mask. So it’s 16-bit in and 16-bit out with no 8-bit in between.

If you’re familiar with the series of masks described in the Luminosity Masks tutorial, a few screen shots should be enough to illustrate how the traditional process described there can be converted to Calculations.

The starting point is the same − make the “Lights” mask (which I’m now calling “Lights-1” to make this process easier to follow). Below is a screen shot of the Calculations parameters used to create the “Lights-1” mask.

The output of this Calculations dialog is a new channel on the Channels panel. Looking at the channel by clicking on it will show that it is a grayscale version of the original image. This new channel IS the 16-bit “Lights-1” luminosity mask, so it’s helpful to double-click the name of the channel and give it the proper descriptive name (“Lights-1”) which will be used in the next calculation.

The next mask in the progressive Lights-series was originally made by intersecting the first “Lights-1” selection with itself. In the 16-bit workflow, “Multiply” blending mode in the Calculations dialog accomplishes the same thing as “intersection.” So the parameters for making the “Lights-2” mask would be as shown below.

The resulting 16-bit mask is again output to the Channels panel where it can be given the name “Lights-2.”

Successive masks in the Lights-series are created in the same manner by using the previous mask as the “Channel:” in the Calculations dialog and setting the “Blending:” to “Multiply.” After repeating this procedure a few times the Lights-series of 16-bit luminosity masks is available on the Channels panel.

The Darks-series just requires one change at the start. The “Invert” checkboxes need to be checked to make the initial “Darks-1” mask the negative of the original image. The Calculations dialog is shown below.

Once the “Darks-1” mask has been created, the remainder of the Darks-series is made the same way as the Lights-series − the previous mask becomes the “Channel:” and “Blending:” is set to “Multiply.” (NOTE: The “Invert” boxes are only checked when making the “Darks-1” mask. They remain unchecked for rest of the Darks-series.)

Finally the midtones. The traditional way to make them was to select the entire image and then subtract off one Lights-series mask and one Darks-series mask. The equivalent set-up for Calculations is shown below. One “Channel:” is a Light-series mask and the other is a Darks-series mask. Both are inverted and the “Blending:” is set to “Multiply.”

When any of these 16-bit luminosity masks are loaded as a selection, the selection is still 8-bit. That’s hardwired into Photoshop and cannot be changed. So exact pixel-for-pixel bit-depth-matching between the mask’s 16-bit data and the selection’s 8-bit degrees of selection is not possible. The selection will always be less precise than the image or mask when working in 16-bit mode. But the starting point for these 8-bit selections is now always a “first-generation” 16-bit mask. So while there will be slight variations between the pixels in the mask and the degree of selection in the selection, there is no cumulative variation from successively intersecting masks. I hope to take a closer look at what this means in a future post.

For those who want a purely 16-bit workflow, it is possible to skip selections entirely. Photoshop’s Apply Image command (Image > Apply Image…) can be used to move a 16-bit channel mask to the Layers panel to serve as layer mask for an adjustment layer. Apply Image is also 16-bit in/16-bit out.

While slightly less intuitive than the traditional method for making luminosity masks, the number of steps in the Calculations method is about the same. That means that it’s still cumbersome to work through the process of creating all these masks. To help speed it up, the free panel on the Panels & Videos page will quickly make all the 16-bit Lights, Darks, and Midtones luminosity masks for you. A PDF on how to install the panel plus a video how to use it is included for those not familiar with the process. Additional tutorials on luminosity masks are available on my website.

This WordPress blog unfortunately does a terrible job when it comes to images. The compression it adds completely hides the subtle differences that I was going to use to illustrate the difference between 8-bit and 16-bit. This was supposed to be a 3-blog series but now I’m just hoping I can find a way to get images to work for one more on this topic. The bottom line is that it takes an exceedingly severe single adjustment (or probably lots and lots of small adjustments) through an 8-bit mask or selection to make something visibly different. In fact, in my own tests I thought it would be more pronounced but the natural feathering of the 8-bit masks seems to work perfectly well in most situations. I’m sure I’ll find a way to show this eventually, so stay tuned.

I was one who wrote you questions about this last year, and I appreciate further clarification on the subject. I believed some photographers have had a misunderstanding about this in a couple of areas. It never made sense that an adjustment on a 16 bit image using a live-marching ants selection becomes an 8 bit adjustment or that converting a selection to a 16bit mask makes it a 16bit precise adjustment. Hogwash I say! How can an 8bit selection become 16 bit in its precision when converted to a mask when it started from 8bit precision?

However the Apply Image command makes complete sense, as you are not generating/loading it as an 8 bit selection! Thank You.

Is it possible to have this incorporated into the TK panel as an action in the future?

It’s a complex subject, Jeff, and I had to work to understand it too as I started experimenting with these methods last year. I really didn’t quite grasp what was happening with Calculations at first, but knew it was making slightly smoother masks. Email and online discussions were a valuable part of the process of understanding.

I will eventually incorporate the Calculations method into the panel, but it does take time to work it all in.

Tony, appreciate your research on this matter! Finally, have an answer I can more or less get an understanding of. Your knowledge of the inner workings of Photoshop amazes me. What a resource you are!!
Cheers, Ken

Thank you, Tony, for looking into this. It will serve to clear some smoke and chatter that has been going on for a while. Your masks continue to be indispensable to the workflow of so many of us. When all the confusion started, what I did was use the Apply Image with the appropriate luminosity mask to the adjustment layer mask or the mask on the adjusted copy layer.
Thanks again,
Carlos

Not really. As I mentioned above in reply to another comment in most situations differences between the 8-bit and 16-bit masks will be imperceptible. The bit depth of masks, similar to that of selections, is just determining the degree to which adjustments get passed to the pixels in the image. They aren’t changing the color precision of those pixels. Brilliance and detail effects generally are associated with color changes to the pixels and not something affected by masks. Luminosity masks are great at shepherding detail and brilliance adjustments to the desired tones in the image and feathering them seamlessly, but the bit depth of the mask will have little effect on the how this actually looks in the image.