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.