Color Management


The problem

Color is, sadly, not an exact science.  We still lack the ability to measure how our eyes see.  Therefore, every development in the area of imaging has resulted in a multitude of ways of doing things.   So what is red on one monitor, won't necessarily be the same shade of red on another. The whole mess is further complicated by the fact that other output devices, like printers and such, are all different, have non-linear responses, and could even be achieving color in entirely different way from a CRT tube.

The salvation lies with the Color Management System, a piece of software designed to convert color between representations required for various devices. Knowing your hardware characteristics is half-way to having a working solution. On the most basic level, for monitor it means knowing primaries and gamma.

mrViewer supports probably the most advanced color management system in use today, called CTL (Color Transform Language).  CTL was developed by AMPAS, the Academy of Motion Picture Arts and Sciences, with the help of Industrial Light and Magic (ILM).

As the name implies, CTL is an actual language, similar to a shading language, which can be used for color transformation of images.  Its feature set is similar to that of ICC, albeit it goes beyond it, to also support particular features specific to the movie production business.  Being a full featured language, the possibilities for color correction are unlimited and since CTL scripts are just ASCII files, it becomes harder to misinterpret.

As of January 2015, AMPAS ships ACES 1.0, which is a collection of CTL transforms and these are included in the mrViewer distribution.

Within mrViewer, two or more CTL files are processed and baked into a 64x64x64 3D Lut which then operates on the image completely with 32-bit float information in real time.   This will often give you a pretty accurate approximation of even the most complex transformations.

In addition to CTL, mrViewer also supports ICC, which is still pretty common with the print industry as well as some monitor manufacturers.  In the future, it is likely that ICC support will be vanished.

For understanding CTL and ACES, you should first read:
  • http://www.openexr.com/UsingOpenEXRandCTL.pdf
  • http://www.openexr.com/OpenEXRColorManagement.pdf