
I have developed a method of measuring gamma which is effective for all display technologies and can be used on digital projection systems as well as monitors. The method is capable of measuring the overall gamma and the red, green and blue gamma values at the 50% luminance point to an accuracy of better than ± 0.02 without the need to calibrate the measuring system! With the components I used, the standard deviation over 5 measurements of each of 4 gamma values over a period of 2 days was less than 0.01.
This is not a profiling system. It does not replace the Spyder, Pantone Huey or Eye-One, but it does provide an independent spot check of the achieved gamma, or a cheaper, if less comprehensive, method of calibration. Whilst the home made photometer does not require calibration it does require to have adequate resolution and stability. The hardware is described in detail below.
Photoresistor (Light dependent resistor) |
The Sensor in place |
The method is as follows
A set of test cards are displayed sequentially and measurements are made using the photometer. This need not be an expensive instrument - I used a photoresistor (light dependant resistor)(£1.50, about $3) with a plastic pudding basin to keep out ambient light and a digital multi meter (£6.50, about $13). No calibration is necessary. Measured values of resistance are entered into a spreadsheet and a simple formula calculates the gamma values.
The process of measuring the four gamma values of a monitor takes less than 10 minutes. First make sure that the brightness (more correctly termed black level and contrast of your monitor are correctly adjusted. I have provided Test Cards to facilitate this.
1. Run the program: JWgammatest.exe. This is a "slide show" made with Pictures to Exe which displays the test cards in order, mouse buttons or arrow keys are used to move on (left = previous, right = next).
2. When the first test card is on the screen attach the photometer (a piece of masking tape from the top of the monitor case works well) making sure that the whole of the area of the pudding basin is within the boundary of the test card, and read the resistance value. All readings should be on the same range of the meter - perhaps I was lucky, all my values were on the 20K range. Do not move the photometer until all reading have been taken.
3. Move on and for each test card record the resistance value.
4. Enter the 16 values into the spreadsheet and read the 4 displayed gamma values. (grey, red, green, blue)
[A more expensive digital multi meter will probably have a USB cable to enable values to be logged directly into a spreadsheet, but this would defeat the object of providing a method that is cheap yet accurate.]
| The 16 measured values of resistance are entered in column C of the spreadsheet. A process of interpolation (or extrapolation) using the reciprocals (1/R) is used to calculate gamma. | ![]() |
To use the photometer to set the gamma of a system to 2.2
1.
Run the program: JWgammatest.exe and attach the photometer.
2. Select
the striped test card and record the resistance value.
3. Select
the test card labelled "2.2" and record the resistance value.
4. Adjust
gamma (e.g. in the monitor driver) so that these two resistance values are
equal.
Background and Theory CRT monitors are inherently non-linear in their relationship between luminance and signal voltage. A power law applies; luminance is proportional to the voltage raised to some power, typically luminance = (voltage) ^ gamma where the exponent, (denoted by the Greek letter, gamma) is typically between 2.0 and 2.5 Fortunately this sort of non-linearity is similar to the way we perceive luminance; small changes in low light levels are more noticeable than the same small changes in a higher level. Newer technology displays have emulated this characteristic mainly for compatibility reasons. As the World Wide Web developed, the sRGB standard, a joint proposal by Hewlett Packard and Microsoft was adopted for the colour space to be used. This, amongst other things, specifies the relationship between digital value and the luminance and approximates to luminance = (value) ^ 2.2 The precise relationship is a little more complicated, but for most practical purposes this equation is close enough.
|
Graph
showing curves for gamma = 2.0 (upper), |
How it works
Obviously the ideal way to measure gamma is using a calibrated photometer. By plotting logarithm of luminance against the logarithm of the digital input, the slope of the graph gives gamma directly.
The principle of my method is not new. It has been used as the basis of many visual methods of estimating gamma. (e.g. Adobe Gamma and a useful applet by Hans Brettel). These rely on matching (subjectively) the luminance of a striped area with a grey area. A variation of this idea is the test chart by Norman Koren, whose site contains a lot of useful information on this subject. Following Koren's advice, I rejected the idea of using a chequered pattern for monitor testing. In my method, a test card consisting of horizontal black and white stripes (of equal width) is displayed and its average luminance measured (this provides the 50% luminance reference). A set of grey cards, each designed to have a luminance of 50% at a different value of gamma is then displayed and their luminance measured. If one of these matches the average luminance of the striped card exactly then obviously this is the gamma value of the display system. In general this does not occur and a process of interpolation (or extrapolation) is necessary - this process is performed automatically in the spreadsheet provided.
I have assumed that we are aiming for a gamma value of 2.2. The test cards have been designed for gamma values of 2.0, 2.2, 2.4. Whilst this gives best accuracy between 2.0 and 2.4, useful measurements outside this range can be made as the formula takes care of this.
One area of concern when using stripes (instead of, for example, a chequerboard pattern) is that there could be errors due to unequal areas of black and white being seen by the sensor depending on the vertical position. As calculating this would be a bit of a chore I made measurements instead. There was no noticeable change in reading as the sensor was very slowly moved up and down.
The Hardware
For Monitor Tests
The sensor used is quite a few years old and I cannot quote a type number. It has a dark resistance >20Mohms and at the 50% luminance points was measuring about 2.4K (white), 4.5K (red), 3.8K (green) and 17.2k (blue). There is no need to match this characteristic and the spectral response is not critical so long as you get some measurable values in the blue region. The choice of sensor and measuring device is entirely up to you.
The black plastic pudding basin, about 150mm (6in.) diameter, is the ideal support for the sensor, it defines the distance from the screen and cuts out ambient light. Also it is a flexible plastic material which does not scratch the screen coating. Reflections from the inside surface are of no consequence as they are the same, proportionately, on all measurements.
For Projector Tests
I am currently evaluting a similar sensor mounted in the base of a black plastic 35mm film can. This results in a "field of view" of about 50° so that when correctly positioned in front of the projector screen an appropriate and consistent area is measured. To reduce the effect of positioning errors I have replaced the striped test card with a chequered pattern.
Free Download (for monitor systems)
JWgammatest.zip This is a zip file containing the Test Cards as an executable slide show for PCs and a spreadsheet (for Excel or OpenOffice) to calculate the gamma values from measured resistance values.
Note that since this article was first published I have replaced the slide show file. The previous version JWgamma6.exe was created using Pictures to Exe 5.1. With certain ATI graphics cards, executable files created by Pictures to Exe 5.1, have the effect of unloading the ICC profile immediately prior to running the slide show, rendering any gamma measurement pointless. My new program JWgammatest.exe was created with Pictures to Exe 4.40 which does not have this problem. - John Widdall, 30th May 2008.
I would be interested to hear from you if you find this Technical Note useful or if you have any questions - email me
![]()
© John Widdall 2008