Hardware vs Software Monitor Calibration

Monitor calibration produces a set of curves, one for each of the three color channels. These curves are responsible for bending and twisting the device’s native color to reach our calibration goal. Where these curves are stored is a main differentiator between regular and so-called “hardware-calibrated” monitors.

Regular monitors depend on the computer’s video chip to store the curves. Hardware-calibrated monitors store the curves inside the monitor’s look-up table (LUT).

MonitorVsVideoLUTs

Above are the calibration curves for my current setup as shown by the ColorEyes Display Pro calibration software. On the left are the curves for my Retina MacBook Pro’s internal display; while on the right are the curves for the EIZO CG241W monitor. Note that this software puts the curves either in the video LUT or in the monitor LUT – but not both. Other packages, such as basICColor Display tend to utilize both for hardware-calibrated monitors.

While the video card stores these curves at 8-bit, my EIZO’s internal curves are at 12-bit. At higher bit depth calibration is more precise and virtually eliminates color banding and seepage. Hardware-calibrated monitors also store the curves permanently (of course until the next calibration).

Calibration software loads the video LUT as part of the calibration process. But what happens if the computer is rebooted or turned off and on again on the next day? Unfortunately video card hardware does not store and automatically re-apply calibration curves on startup. So the question remains: where to store them and who will reload them?

Apple invented a fairly obvious solution to answer this question: embed calibration curves into the display’s ICC profile. This way they could be handled together as a single entity. Because the ICC profile specification does not provide any storage space for calibration data, Apple had created a new profile tag, the infamous video card gamma table (VCGT). To complete their solution ColorSync loads these curves when needed. Calibration packages also support this by embedding newly computed calibration curves into the profiles they create.

Windows 7 and above also sports a video card LUT auto-loading feature, but it isn’t as obvious as on a Mac. I would recommend reading my old post about the topic.

In the next installment of my monitor calibration series I’ll talk about what can one reasonably expect from proper calibration and profiling.