Photo Journal

Analyzing Photoshop Vibrance and Saturation

by |

One of the new features in photoshop CS4 is a Vibrance adjustment, a feature borrowed from lightroom's development module. It's fairly intuitive to use, but have you ever wondered what exactly this handy little adjustment does? Unlike saturation or hue, vibrance isn't a component in any color model that you can measure and there are no formulas one can apply to calculate vibrance from RGB values; vibrance as such doesn't exist. Here's what Adobe's documentation has to say:

Vibrance: Adjusts the saturation so that clipping is minimized as colors approach full saturation. This setting changes the saturation of all lower-saturated colors with less effect on the higher-saturated colors. Vibrance also prevents skin tones from becoming oversaturated.

This is probably all you need to effectively use this control, but nevertheless, in an effort to see what is really going on, I made some plots to compare the saturation tools available in photoshop: vibrance, and the two saturation sliders found respectively in the vibrance adjustment panel, and hue/saturation adjustment panel.

Hue Saturation Panel Vibrance Panel

Lets start by looking at the old Photodisc test image and apply the three saturation controls at 100% and 50%. (Click on any images for a larger example)

**Original**
Target No adjustment
**50% Vibrance**
Target Vibrance 50%
**100% Vibrance**
Target Vibrance 100%

Saturation using the Vibrance Panel
50%
Target Saturation(Vibrance)  50%
100%
Target Saturation(Vibrance) 100%

Saturation using the Hue/Saturation Panel
50%
Target Saturation(Hue/Saturation)  50%
100%
Target Saturation(Hue/Saturation) 100%

It becomes immediately apparent looking at these images that the two different sliders called saturation are very different. The saturation slider in the Hue/Saturation adjustment is a blunt, heavy handed tool, and although they share the same name, the saturation slider in the vibrance panel shows a certain amount of restraint. Also, it is very clear that the vibrance control behaves as you would expect. Even at 100%, it is only just begining to get out of hand. Punchy, sure, but not completely over the top and with very little clipping.

Now lets make some scatter plots of the saturation data. I am going to look at the raw saturation numbers of the original file on the x-axis ploted against the saturation number after the various contols have been applied on the y-axis. (In case you are a little rusty on this sort of graph, remember that a 45º line indicates the data is the same.)

**Vibrance vs. Original**
**50%**
Vibrance  50%
** 100%**
Vibrance  100%
**Saturation Slider in the Vibrance Panel vs. Original**
**50%**
Saturation(Vibrance Panel)  50%
** 100%**
Saturation(Vibrance Panel)    100%
** Saturation Slider in Hue/Saturation Panel vs. Original**
**50%**
Saturation(Hue Saturation Panel)  50%
** 100%**
Saturation(Hue Saturation Panel) 100%

A few observations

The two saturation sliders are vastly different control. The horizontal line at the top of the graphs shows pixels that have been driven all the way to 100% saturation where they clip. At 100% saturation using the Hue/Saturation slider almost no value that started beyond 15% is left unclipped. Also, if you look closely at this graph you can see a couple splotches of somewhat pure cyan, magenta, and yellow that have not been pushed all the way to 100%. I suspect this is showing the gamut limit of our particular RGB space. Note that the vibrance slider does allow some clipping at the far end of the graph. You can also see how the effect of the vibrance control is stronger on some colors than others. In the middle of the graph the pixels split into a sort of rainbow with the blues and greens pushed higher than the flesh tones. The most surprising graph for me the saturation slider in the vibrance panel. It shows an exponential effect on saturation versus the linear effect of the hue/saturation control, but still seems to make some distinction based on input hue.

Note: Graphs created in NodeBox. Saturation separations made with Mathematica.

10 Reader Comments

ht

I accidentally explored the new feature and realised it has some magic that makes it awesome, regarding saturation.
Thank you for explaining the trick of it. :)
now i'll use it more consciously

Guillermo Luijk

Nice study, thanks a lot for taking the effort and for sharing.

Regards.

Julia

This was a very helpful comparison between the vibrance and hue and saturation adjustment layers. Thanks for taking the time to create this resource.

-Julia

Arindam Ray

I use this feature a lot to minimize over-saturation for human skin tones. It is great feature and explained here with utmost ease & perfectly. Very good tutorial.

Ryan

Very insightful, thanks so much for show us!

Joel

Thanks for the post. The graphs really illustrate the differences quite nicely.

CajunAzn

Brilliant analysis. Essentially then, the vibrancy tool is similar to a levels curve adjustment, except rather than being restricted to three channels of color, it defines different color groups consisting roughly of "skin tones", "dark blues", "dark reds" and "dark greens".

barbara k

Thank you for this clear and illustrated answer!

serdar

Thanks, it helped more than a lot!

Comments are closed for this note