MWorks color calibration question

Hi Chris,

This is Rosa from Arash Afraz’s lab. I was wondering if MWorks changes the color of the images it displays on a monitor? That is, does it have any internal calibration function? Put another way, does MWorks change the RGB values of a given image when it displays them?

Thanks,
Rosa

Hi Rosa,

Apologies for the delayed reply. I was out on vacation for two weeks and am still catching up.

I was wondering if MWorks changes the color of the images it displays on a monitor? That is, does it have any internal calibration function? Put another way, does MWorks change the RGB values of a given image when it displays them?

By default, MWorks’ stimulus display pipeline performs color management. Stimuli are rendered in a “linearized” sRGB color space, and each frame is converted to the target display’s color space before being presented.

Typically, image files include an ICC profile that describes their color space. (Images that don’t contain a profile are normally assumed to be in the sRGB color space.) When loading an image file, MWorks first converts its colors to sRGB for blending with the display background and other stimuli. Once the complete stimulus display frame is rendered, MWorks converts the frame’s colors from sRGB to the color space of the display, which is specified by the display’s ICC profile.

So to answer your question: Yes, the RGB values that are sent to the display generally differ from the ones in the image file. However, as long as the image and display’s ICC profiles are accurate, the colors drawn to the stimulus display will match (perceptually) the colors the image creator saw on their monitor when making the image. That’s the whole point of color management: to make colors look consistent when viewed on multiple devices with different output capabilities.

It is possible to disable color management in MWorks. (Go to MWServer → Preferences → Display → Advanced, and uncheck “Use color management”.) With color management disabled, all stimulus rendering takes place in the color space of the display, and no color conversion is performed on image files or anything else. In this case, each pixel of an image should be rendered with exactly the same numerical RGB values as specified in its file (assuming it’s opaque and no other stimuli are drawn over it). If the color spaces of the image and the display are close (e.g. both sRGB or near it), then the colors should look about right. However, this isn’t guaranteed, and the image colors may look noticeably different on different displays.

There’s a slightly longer explanation of this stuff in this discussion, including some additional reasons why you probably don’t want to disable color management. If you need more info, please let me know!

Cheers,
Chris

Hi Chris,

Thanks for the info! We are now using a hi-tech calibrated display
(Display++ from Cambridge Research Systems) so we will need to disable
MWorks’ color management, as that is all taken care of through the display
system itself. I will follow your instructions and let you know if I have
any trouble.

best,
Rosa

OK, that makes sense. If you run into any issues using the Display++ with MWorks, please let me know!

Chris