Manejo de Color


El problema

El color no es, lamentablemente, una ciencia exacta.  Aun no podemos medir como ven nuestros ojos.  Por ello, cada desarrollo en la area de la imagen ha resultado en una multitud de formas de hacer cosas.   Por lo que es rojo en un monitor, no necesariamente será del mismo tinte de rojo en otro. El desastre es más complicado por el hecho que otros periféricos de salida, como impresoras y similares, son todas distintas, tienen respuestas de color no lineales, y pueden crear el color en una forma totalmente diferente que un tubo de CRT o un LED.

La salvación viene con un Systema de Manejo de Color, una pieza de software diseñada para convertir colores entre representaciones requeridas para varios equipos. Saber las características de tu hardware es la mitad de camino para tener una solutción que funcione. En el nivel más básico, para un monitor significa saber los colores primarios y la gama.

mrViewer supporta probablemente los dos sistemas de manejo de color más avanzado en uso hoy en día, llamados CTL (Color Transform Language o Lenguaje de Transformación de Color) y OCIO.  CTL fue desarollado por AMPAS, la Academia de Motion Picture Arts and Sciences, con la ayuda de Industrial Light and Magic (ILM), mientras que OCIO fue desarrollado por Sony Pictures Imageworks.

Como el nombre insinúa, CTL es en verdadero lenguaje, similar a un lenguaje de sombreado (shading language), que puede ser usado para transformación de color de las imágenes.  Su set de set de características es similar a aquellas de ICC, aunque va mas allá que ello, para también soportar características particulares y especificas al negocio de producción de peliculas.  Siendo un lenguaje completo, las posibilidades pare corrección de color son ilimitadas y visto que las escrituras (scripts) de CTL son solo archivos ASCII, se vuelve más difícil de desinterpretar.

OCIO es una mezcla de archivos de configuracion, luts y transformación de matrices que pueden ser concatenados. Hay scripts de python que permiten obtener OCIO configs de CTL scripts.
Dentro de mrViewer, dos o mas archivos CTL son procesados y cocinados en un 3D Lut de (por defecto) 64x64x64 que luego opera en la imágen completamente con información de coma flotante de 32-bits en tiempo real.   Esto te dará una bastante exacta aproximación de inclusive las más complejas transformaciones.
Desde Enero 2015, AMPAS distribuye ACES 1.0.3, que es una colección de transformaciones de CTL y estas están incluídas en la distribución de mrViewer. mrViewer tambien distribuye la configuración de OCIO de Nuke y otras pueden obtenerse en: http://opencolorio.org/configurations/

Dentro de mrViewer, dos o más archivos CTL o un set de transformaciones OCIO son procesados y cocinados en un, por lo menos, Lut 3D de 64x64x64 que permite luego operar en la imagen completamente con 32-bit floats en tiempo real. Esto te ofrecerá una aproximación bastante precisa de las transformaciones más complejas.

Además de CTL y OCIO, mrViewer también supporta ICC, que es todavía bastante comun con la industria de imprenta así como con algunos manufacturadores de monitores.  En el future, es probable que el soporte de ICC sea sacado.

Para entender a CTL y ACES, usted debería primero leer:
  • http://www.openexr.com/UsingOpenEXRandCTL.pdf
  • http://www.openexr.com/OpenEXRColorManagement.pdf


  • Para entender OCIO, deberá dirigirse a:
  • http://opencolorio.org/