One function that is meant to describe the transformation between RGB values
and the monitor's luminance response is the gamma function, described by a
power function: y = x**gamma. This is just an
approximation, and it should not be expected that it is very
accurate.
In fact, there are norms for how a computer screen should respond, one well known norm is the CIE Rec.709. In various software, one specifies a Gamma of 2.2. For example, PNG specifies a default gamma of 2.2. This value is taken from Rec.709, which reads:
PhotonCountToRGB(colour) {
if (colour <= 0.018) {
return 4.5 * colour; /* toe slope */
} else {
return 1.099*pow(colour,0.45) - 0.099; /* scaled and transposed gamma
* function */
}
}
RGBToPhotonCount(colour) {
if (colour <= 0.081) {
return colour / 4.5;
} else {
return pow((colour + 0.099) / 1.099, 1.0/0.45);
}
}
Basically it's a gamma function with a linear piece at the dark end (called
the toe slope) to compensate for the sudden steepness at the dark end of the
regular gamma function.
So, 1/0.45 is 2.22. This is where the gamma of 2.2 comes from. However, the
Rec.709 is also scaled and transposed. When one plots the Rec.709 function
(forgetting about the toe slope for a moment, plotted in red), it is much
closer to a gamma of 1.8 (blue) than 2.2 (green). See the plot below.
Concluding, we may say that a gamma of 2.2 is NOT the most accurate approximation of the Rec.709 function.