Gamma Control: Algorithm

How the Relative-to-Profile Curve Adjustment Works

Typically, gamma correction took the form of a power function where the exponent is called gamma. This created curves that looked like this:

This worked well in the days of cathode-ray tubes since the amount of light emitted by a pixel also followed a power curve depending on the input voltage applied on the electron gun. Depending on the gamma value, the curve would stretch more or less from a straight line.

But we’re all using liquid crystal displays now, and for many LCDs out there using a power function doesn’t work well. Here is how an hypothetical gamma correction curve could be like for some LCD screen:

Older versions of Gamma Control would simply wipe out this curve and replace it with a pure power-law curve as shown in the first graph. Unfortunately, there was no way to properly calibrate a screen that needs a curve like the second graph that way.

So in Gamma Control 5 there is now a “Relative to profile” mode — which is the default because it’s so nice — where instead of replacing the profile curve with one of its own, Gamma Control will calculate its curve and pass it through the profile’s curve before applying it to the screen.

The result is that if you drew the resulting curve, you’d find out that lowering the white point is equivalent to stretching the profile curve horizontally:

And if you were to make the grays darker, it’d be equivalent to compressing the curve in the higher levels and dilating it in the lower ones following a power curve:

To achieve this, Gamma Control reads the profile curve at launch, collecting samples for each level. It can then interpolate a new curve from those samples to reflect where you set your sliders. But unlike with the previous versions, if you leave all the sliders at their default position, the gamma curve will not be affected at all.