Help Understanding Windows Color Management

Home Forums Help and Support Help Understanding Windows Color Management

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #32126

    AL2420
    Participant
    • Offline

    Let’s say I use DisplayCal with a colorimeter to calibrate and profile my laptop display.  The end result of that is a file called “DisplayCal_sRGB.icm” which DisplayCal puts in my system32/spool/drives/color folder.

    If I then delete DisplayCal (ie, remove it completely from my system), and use Windows’ color management dialogue to set “DisplayCal_sRGB” as my monitor’s default ICC profile:

    1) how is that different from  what DisplayCal would do?  I’ve seen comments that Windows does not load calibration and profile data reliably/accurately, but I don’t understand how that is possible.  Is Windows that erratic?

    2) is both the monitor calibration and profile data stored in “DisplayCal_sRGB.icm” ?   How/where is the calibration data used?

    I would greatly appreciate any help in learning to understand this better.

    • This topic was modified 1 month, 2 weeks ago by AL2420.
    #32128

    Vincent
    Participant
    • Offline

    Let’s say I use DisplayCal with a colorimeter to calibrate and profile my laptop display.  The end result of that is a file called “DisplayCal_sRGB.icm” which DisplayCal puts in my system32/spool/drives/color folder.

    If I then delete DisplayCal (ie, remove it completely from my system), and use Windows’ color management dialogue to set “DisplayCal_sRGB” as my monitor’s default ICC profile:

    1) how is that different from  what DisplayCal would do?  I’ve seen comments that Windows does not load calibration and profile data reliably/accurately, but I don’t understand how that is possible.  Is Windows that erratic?

    Let’s assume you remove DisplayCAL
    -OS will continue to publish ICC for color managed apps when they ask. This has nothing to do with DisplayCAL.
    -Grey calibration stored inside profile MAY not be loaded into GPU
    -If calibration is loaded into GPU it will be loaded at low resolution, banding, even if you have an AMD. Same thing happens with other 3rd party loaders like Xrite’s or basiccolor 1D lut loaders, hence the use of DIsplaycal loader is HIGHLY recomended

    Windows itself does not color manage desktop. It only publishes current active ICC for each display to apps, so they can handle it (if they know how to do it).

    2) is both the monitor calibration and profile data stored in “DisplayCal_sRGB.icm” ?   How/where is the calibration data used?

    I would greatly appreciate any help in learning to understand this better.

    GPU calibration, the kind of calibration you can do with monitows without HW cal AND gamut emulation capabilities is limited to grey, nothing more.
    It’s and 1D LUT “origonal data in -> corrected data out” for the 3 channels, individually, no mixing.
    These 3 tables are stored in an optinal tag “VCGT” inside ICC files. They are ignored by color managed apps.

    On startup or upon request, a “gpu calibration loader” reads VCGT grey calibration form profile and loads it into a dedicated HW in GPUs called “luts”. API accesisng this fucntionality may be limited (software truncation) or HW itselft may be limited (HW truncation) resulting in banding unless dithering is applied.

    • This reply was modified 1 month, 2 weeks ago by Vincent.
    • This reply was modified 1 month, 2 weeks ago by Vincent.
    • This reply was modified 1 month, 2 weeks ago by Vincent.
    #32132

    AL2420
    Participant
    • Offline

    In the case of an app like Photoshop, PS uses the profile to match the source, the workspace, and the display, right?

    But you’re saying PS ignores the “calibration” component embedded in the ICM file.   And if I understand correctly, “calibration” is only white balance and grayscale gamma?

    If DisplayCal has loaded the calibration at say system startup, that remains active while PS is open, though, correct?  So in PS I’m seeing the calibrated monitor further corrected/managed by PS via the profile?

    • This reply was modified 1 month, 2 weeks ago by AL2420.
    #32137

    Vincent
    Participant
    • Offline

    In the case of an app like Photoshop, PS uses the profile to match the source, the workspace, and the display, right?

    PS reecondes image in monitor colorspace (described by display ICM)

    But you’re saying PS ignores the “calibration” component embedded in the ICM file.   And if I understand correctly, “calibration” is only white balance and grayscale gamma?

    ICM monitor description is “after calibration is applied”. Hence color managed apps do not care about GPU calibration. Thay assume display behaves as it is described in ICM.
    Keep in mind that ICC must work with factory or HW calibration that have no VCGT tag or a linear (input=output) GPU calibration.
    Color managed apps do not care about VCGT.

    Displaycal loader loads grey calibration (VCGT data) to ensure that such “after calibration” description stored in ICM is valid.

    If DisplayCal has loaded the calibration at say system startup, that remains active while PS is open, though, correct?  So in PS I’m seeing the calibrated monitor further corrected/managed by PS via the profile?

    PS does not correct monitor. See answer 1.

    #32159

    AL2420
    Participant
    • Offline

    OK, thank you for that.  It sounds like the profile system in Windows is relatively mature (predictable and robust) and the calibration system is more of an afterthought.

    Would it be fair to characterize the “calibration” system as a primitive or underdeveloped feature Microsoft developed as part of their calibration wizard (make the box inside the box disappear…etc…)?  Does that explain the lower resolution/accuracy of the correction and the fact that it doesn’t load reliably if left up to Windows?

    If I understand this correctly, DisplayCal is hooking into that system (VCGT tag) to implement a higher-accuracy correction that DisplayCal reliably loads on startup.

    #32160

    Vincent
    Participant
    • Offline

    OK, thank you for that.  It sounds like the profile system in Windows is relatively mature (predictable and robust) and the calibration system is more of an afterthought.

    Windows CM is an AddOn, and GPU LUT loader a later addon

    Would it be fair to characterize the “calibration” system as a primitive or underdeveloped feature Microsoft developed as part of their calibration wizard (make the box inside the box disappear…etc…)?  Does that explain the lower resolution/accuracy of the correction and the fact that it doesn’t load reliably if left up to Windows?

    Xrite loader does the same poor work as windows, or basiccolor. IDNK why.

    If I understand this correctly, DisplayCal is hooking into that system (VCGT tag) to implement a higher-accuracy correction that DisplayCal reliably loads on startup.

    ArgyllCMS

    #32170

    AL2420
    Participant
    • Offline

    Thank you.

    One last question: if using a monitor capable of directly loading a 3DLUT, is that equivalent in terms of output quality (for any given targeted colorspace) to the system of calibration/profiling that you’ve described above?

    #32171

    Vincent
    Participant
    • Offline

    It’s better to have HW cal because you avoid rounding errors made by poorly implementend truncation, like Photoshop.
    HW calibrate: 1DLUT, or lut + matrix for gamut emulation, or 1dlut (grey) + LUT3D (17 nodes x side), then describe monitor with a simple matrix ICC & true neutral grey TRC. That way PS tries to correct less and minimizes rounding errors caused by PS itself.

    On an ideal color managent engine with dithering and such, there should be little to none difference “LUT3D (HW) + matrix 1 TRC” vs “1DLUT VCGT + XYZLUT profile”. They are the same… actually such XYZLUT mesh mapping display is what displaycal or other software uses to make a LUT3D.

    • This reply was modified 1 month, 2 weeks ago by Vincent.
    #32191

    Алексей Коробов
    Participant
    • Offline

    Would it be fair to characterize the “calibration” system as a primitive or underdeveloped feature Microsoft developed as part of their calibration wizard (make the box inside the box disappear…etc…)?  Does that explain the lower resolution/accuracy of the correction and the fact that it doesn’t load reliably if left up to Windows?

    Windows calibration tool may only correct display contrast by eye, this may help if your display has very regular gamma curve, and this will give you near-sRGB result if your display implements good enough sRGB mode. But you can’t determine RGB primaries (pure, most satutrated colors) of real display that uses all its gamut (standard or user mode) by eye, so Windows tool ignores this step. Its profiles seems to contain calibration curves for vcgt and nothing more.

    You can switch on Windows native vcgt (videocard 1D LUT, better to say curves correction) loader, see attached screenshot. But DisplayCAL Profile Loader is more advanced tool.

    Attachments:
    You must be logged in to view attached files.
Viewing 9 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic.

Log in or Register

Display Calibration and Characterization powered by ArgyllCMS