Stop Losing Display Calibration with Windows 7

When Windows 7 appeared on MSDN and Technet a few weeks ago, I was eager to download and install it to see whether Microsoft had fixed the losing display calibration issue that made Vista totally unacceptable for anyone in need for a software calibrated display. To cut the long story short, they’ve made it. There are a few quirks here and there, but basically it works. Besides this, 7′s performance is much better than Vista (in the same league as XP was), so I could finally begin replacing XP x64 on my workstation and notebook. But back to track and let’s first examine the issue that plagued Vista.

The Issue

Display calibration serves basically two purposes: 1) sets black level and luminance of the monitor and 2) sets color temperature. After calibration one could build a profile that color mangement aware applications will use for displaying correct colors. If you have a high-end graphics monitor (like the EIZO CE and CG series or the NEC SpectraView) calibration information will be stored in the monitor, so the computer will have nothing to do later on. But otherwise it needs to be split into two halves. Black level and luminance, set by the monitor’s brightness and contrast controls are stored in the monitor of course (you can read what these controls really mean here and here). Color tempreature setting is a different story, though. It could be partly stored in-monitor, or completely on the computer.

Each monitor has its natural color temperature (which is typically falling on the colder side in today’s LCDs) and gamma, which are rarely what one wants. What a photographer would like is something like 6500K and a gamma value of 2.2. To transform the monitor’s natural abilities into what one wants, red-green-blue channel intensities should be modified. Some monitors support rough, broad modifications of these by providing color temperature presets, gamma presets and color temperature controls. Using a monitor for photo editing needs a finer level of control, and that’s what a display calibration package provides. It fine tunes the RGB channels with curves to reach the desired color temperature and gamma.

The screenshot on the left was captured from X-Rite’s Eye-One Match application after calibrating my Lenovo X200s notebook’s display to 6500K and gamma 2.2.

The curves show that the blue channel needs quite a bit of lowering to compensate for the bluish LED backlighting of the display.

OK, we have calibration curves for each channel, but who will apply them? It’s the duty of the video card in the computer. There is special place for these curves, called the video look-up table (or LUT for short). Calibration software loads this LUT in 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 and driver 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 answers 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

Microsoft on the other side, although supported assinging profiles to display devices since Windows 98, failed to load the VGCT. Was it some kind of pride denying to support Apple’s standard or just plain misunderstanding will remain a mystery… Regardless of Microsoft, calibration hardware and software makers had to do something. So they invented Gamma loaders and Calibration loaders. Tiny programs with only one purpose in life: grab the default ICC profile associated with a display, extract VCGT and load it into the video card LUT. Fortunately Microsoft provided the necessary programming interfaces for doing that.

Photographers and Windows lived in harmony for years, until Vista came along and caused endless hours of frustration. What it did was unbelievable for me when I first tracked down the cause of the problem. It removed calibration curves from the video LUT on several occasions: after logon, after my computer came up from standby, when the dreaded UAC consent screen appeared, when the secure desktop appeared… Yes, it removed the LUT (not just ignored it like some Intel display drivers screw it up – that happens without the knowledge of the operating system).

To overcome this issue one either had to turn off UAC and manually reload the calibration from time to time with the calibration loader installed with the given calibration package, or just go bact to XP which worked flawlessly for years. With Windows 7 it seems Microsoft had listened. At last…

The Windows 7 Solution

Although their soltuion is not as straightforward and easy to use as Apple’s in Mac OS X, it works as one would expect. In this section I will describe how to find the checkbox with which you can turn on LUT loading.

Note: Yes, it is turned off by default. Is there anyone who DOES NOT want correct behavior out of the box?!? My only fear is that this feature is a result of cloning a completely useless feature of OS X: display calibration “with your eyes” (what I used to call eye-o-meter). So the Windows color management team still might not get the idea…

First of all, you have to make a display profile. After doing this, I had noticed that LOGO Calibration Loader does not work on Windows 7 and does not load my calibration. Not a big deal, we’ll get rid of that program completely later on.

Note: I have an X-Rite i1 Photo SG package and had some issues with installing the accompanying Eye-One Match application. I’m sure X-Rite will fix it, but in the meantime you will need to read the sidebar “Windows 7 Needs Help to Recognize X-Rite Instruments” at the end of this article. Users of other instruments might or might not be affected.

With your profile ready, open Control Panel and click on Color Management.

As the Color Management applet opens you should see the newly created profile associated with your monitor. Windows (since Vista) supports two levels where one could associate profiles with devices: system-wide and user level. Both level’s profiles are stored in the same place (unlike in OS X where profiles are stored in separate system and user folders), only the associations are divided this way. Eye-One Match creates a user level association, as you can see on the following dialog. It is also required that Use my settings for this device to be checked.

Click on the Advanced tab. The group box titled Display Calibration is what we are after. Clicking Calibrate Display will bring up the eye-o-meter, so do not disturb it. LUT loading is controlled by the Use Windows display calibration chechbox. You might realize with horror that it is grayed out. Don’t be afraid, it can be only controlled on system-wide level, so go there by clicking on Chage system defaults.

Which brings up the familiar profile association dialog – but at system level and with no profiles this time. We already made the association on user level, so do not touch anything here, just click on the Advanced tab.

Note: On the bottom left corner there’s a link to the help page that is intedned to explain all this stuff. To be honest, the introduction is quite correct, then there’s a big gap and some blah-blah about Canon’s Kyuanos color management system that Windows has (and nobody uses), and finally it says that Windows profile loading should only be used for “eye-o-meter” based calibrations. Ignore it. But nevertheless it’s a bad sign of misunderstading.

Finally our checkbox is enabled. Place a checkmark there, then close the dialog.

In the Color Management dialog you should see that the grayed out version is also checked now. If your calibration is not loaded up to this point, give it a try and click Reload current calibrations.

That’s it. LOGO Calibration Loader – or whatever your calibration loader is – can be removed from the Startup group in the Start Menu. Windows should load calibration from the display’s profile every time the LUT needs to be loaded. It will work even after recalibrating your monitor (of course it will use the new profile then).

I can only hope that in later service packs Microsoft will not create a “fix” that only allows eye-o-meter generated profiles to be loaded this way…

If your Windows 7 installation does not seem to recognize your X-Rite measurement device, make sure to read this post on how can you resolve the problem.

Update: If you happen to have an Intel integrated video card, read this post on how its drivers screw up display calibration and how can you make it work.

I do not use Windows any more, so not is a position to answer your Windows-related questions.

Comments

  1. Shane Taylor says:

    Laszlo,

    THIS is EXACTLY what I’ve been looking for! Thanks for the clear, concise explanation. Nowhere else could I find anybody who said to check “Use Windows display calibration”, since, prob ably like me, they assumed that it was only for the ‘eye-o-meter’ generated profiles. Why else would I spend 1k on i! Photo w/ spectrometer to profile my system to use some silly process Microsoft created. I saw in other posts about clicking on the i1 Logo Calibartion Loader icon in the system tray, but I’ve never seen one in my tray (Win7 Ultimate x64) even though it is in my startup folder. Nothing happens also when I just run the program. I never knew if my profile was loaded or not since your eyes adjust to whatever you have as ‘correct’ as long as it’s close.

    Cheers
    Shane

  2. Dragan Dejanovic says:

    Laszlo,
    This info is very helpful and straight forward. The only other way to get that profile loaded was to bring up my spyder elite application, my native calibration software, every time I started windows. This is waay more easier and comfortable to work with. You just sit and wait to load, it’s that easy. Who could ever think that win color management actually takes care of these activities. Many thanks!
    Dragan

  3. This was a very helpful and clearly written explanation of a fix for this annoying problem. (Not my PC but my bosses) I was unable to find the calibration loader so I went to ‘run’ ‘msconfig’ and deselected the checks next to the ‘intel common user interface’ entries. Restarted and everything appeared as it should. THANK YOU!!! She’s happy, so I’m happy, and you just made me look a lot smarter than I am. Fingers crossed it stays this way :)

    Thanks again,

    Ben

  4. Thx so much, I was tearing my hair out and X-Rite tech support wasn’t very helpful (and their documentation for ColorMunki Smile is pretty poor). After wasting my time on five unhelpful steps and multiple re-boots, they give a summary of your Color Management instructions (above), but failed to suggest the crucial Persistence elimination step — that’s the step (thanks to Autoruns tool) that finally solved the problem on my system: Win7 64-bit, Toshiba Techra R840, Intel graphics, ColorMunki Smile 1.0.1

  5. Brilliant! Yet another example that Mirosoft want to micro-manage all of their users!
    Due to software reasons I had to make my new portable computer a non-Mac (even though am working with images and photos). The biggest drawback is that I was “forced” to use Win 8. I Will reinstall 7 later. However, this worked like a charm for Window 8 too!!!

    Thanks a gazillion!

    /Mattias – Sweden

  6. Oh Bless you! Finally my calibrations are loading correctly! I thought checking that box would only use calibration via windows built in calibration software which I didn’t want to use as I have an Xrite Colormunki Photo. Everything is so much better calibrated now! Bless you, bless you for this!!

  7. rsvitlar says:

    THANK YOU!!!

  8. Great article and a great help. thanks!
    I’m using the xrite too, I wonder when it comes to recalibrating do you need to switch off the colour management in windows before you do?

  9. Thank you very much for this!
    Microsoft have to many employees…:-)

  10. A good summary of this issue.

    If you have multiple displays (at least when connecting and disconnecting a laptop) you will probably find that the profile is overridden at various events, such as returning from sleep mode.

    One approach is to use task manager to run Colour Management at appropriate events, as described at: http://brianreiter.org/2011/05/03/reducing-the-need-for-manual-reload-of-color-calibration-when-docking-in-windows-7/

    Finally, all of this still works (and unfortunately is still needed!) in Windows 8.

  11. Awesome post thx very much! It was really painful for my eyes not being able to fix the display settings except though after this post.

  12. thank you! You saved me from having a disastrous morning at work! God reward you with good beer!

    regards

  13. Thank you so much! Works like a charm on Windows 8.1!

  14. Big help! I use Windows 7 64 bit, and I was frustrated that my newly calibrated monitor failed to load the calibration on reboots. I recalibrated my monitor, hoping this would fix the issue. It did not. Now after reading your article and going through the steps you outlined, it appears the issue is fixed. I’m going to reboot and see if the settings stick. Immediately, however, I’m struck, by how arcane and difficult Microsoft made this. Also, I think x-rite is at fault as well for not including instructions on this situation in their calibration software. Thank you very much!

  15. Thanks for the info m8. That issue has been bugging me for over months.

  16. Thank you so much for this! This same process works for Windows 8.1 which has the same problem of resetting the device profile!

  17. Interesting reading! I am using a package by Eizo called RadiCS for dental X-ray display monitors. Uses X-rite and UX1 sensor. No color management profile (.icm) seems to be created with this setup, but a “_LUT.dat”-file created by RadiCS. Win7 SP1 with HP Z-series (400$ or so) color monitors. Our calibration profile always load on computer startup, but when logging out / logging into Windows, it “turns uncalibrated”, drops the LUT. Loads fine again if I restart RadiCS, or reboot. Not the “Persistence” issue, Two of the computers run a Nvidia card/driver, all others use Intel. Annoying…

  18. Correction on last coment: On the computers that use Intel graphics Persistence module indeed seem to be the only problem. Disable Persistence and it works. On the 2 computers with Nvidia drivers, on the other hand, there is no persistence module in “HKLM/ .. /Run” but still loses calibration when logging out / in of Windows. Some Nvidia component that does the same thing?

Speak Your Mind

*


× five = 45

Current day month ye@r *