ColorSync - MacProgramadores

Anuncio
ColorSync
ColorSync
MacProgramadores
Acerca de este documento
En este reportaje estudiaremos ColorSync, el sistema de corrección de color
que usa Mac OS X, el cual permite que consigamos obtener representaciones
más precisas del color de las imágenes con que estamos trabajando, de forma transparente al usuario. Para comprender ColorSync, primero estudiaremos la teoría del color.
Nota legal
Este tutorial ha sido escrito por Fernando López Hernández para MacProgramadores, y de acuerdo a los derechos que le concede la legislación española
e internacional el autor prohíbe la publicación de este documento en cualquier
otro servidor web, así como su venta, o difusión en cualquier otro medio sin
autorización previa.
Sin embargo el autor anima a todos los servidores web a colocar enlaces a
este documento. El autor también anima a bajarse o imprimirse este reportaje a cualquier persona interesada en conocer qué es ColorSync y las ventajas
aporta al programador.
Madrid, Agosto del 2011
Para cualquier aclaración contacte con:
[email protected]
Pág 2
ColorSync
MacProgramadores
Tabla de contenido
1. Teoría del color ................................................................................... 4 1.1. ¿Qué es el color?........................................................................... 4 1.2. El ojo y la vista ............................................................................. 4 1.3. El espectro de luz .......................................................................... 6 1.4. Tono, saturación y brillo ................................................................ 7 1.5. Teoría del triestímulo ..................................................................... 7 1.6. Cómo componer colores ................................................................ 9 1.7. Composición aditiva y composición substractiva............................. 10 1.8. Métodos para codificar un color .................................................... 11 1.9. El espacio de colores ................................................................... 14 1.10. Brillo, claridad, luminancia y value .............................................. 15 1.11. La corrección gamma ................................................................ 16 1.12. El estándar CIE ......................................................................... 17 1.12.1. Los colores primarios X, Y, Z ................................................ 17 1.12.2. Interpretación del diagrama CIE ........................................... 18 1.12.3. CIEXYZ, CIELAB y CIELUV.................................................... 19 1.13. La gama de colores ................................................................... 20 1.14. Colores dependientes del dispositivo ........................................... 20 1.15. Profiling .................................................................................... 22 1.15.1. Conversión y correspondencia de colores .............................. 23 1.15.2. Tipos de profiles.................................................................. 24 1.16. Soft-proofing............................................................................. 25 2. Un poco de historia ........................................................................... 28 3. International Color Consortium (ICC) .................................................. 30 3.1. ICC Profile .................................................................................. 30 3.2. Calibrar un dispositivo ................................................................. 30 3.3. CMM (Color Management Modules) .............................................. 31 3.4. Rendering intent ......................................................................... 31 Pág 3
ColorSync
MacProgramadores
1. Teoría del color
Antes de profundizar en el estudio de ColorSync vamos a explicar una serie
de conceptos básicos. El lector que ya conozca la teoría del color puede saltarse este apartado, aunque en este caso le recomendamos echarle un vistazo rápido.
1.1. ¿Qué es el color?
Debido a un proceso evolutivo y adaptativo, los seres vivos han aprendido a
aprovechar las ondas electromagnéticas de luz solares en su propio beneficio,
y con el fin de poder percibir objetos que no están a su alcance inmediato. El
ojo humano es capaz de percibir determinas longitudes de onda (lo que llamamos la luz) e incluso diferenciarlas (percibir los colores).
La luz blanca es la que se tiene cuando ondas de todos
los colores viajan juntas. Para explicar esto es muy típico descomponer un haz de luz blanca usando un prisma
como muestra la Figura 1, el cual, debido a que la luz a
distintas frecuencias se refleja con distintos ángulos, nos
permite ver distintos haces de luz, cada uno con un color distinto.
Los objetos reflejan los rayos luminosos que reciben,
pero cuando los reflejan no los reflejan todos, sino que
absorben algunos y reflejan otros. Un objeto blanco
refleja todos los colores, un objeto negro los absorbe
todos, y un objeto rojo absorbe todos menos el rojo.
Figura 1: Prisma que descompone la luz blanca
1.2. El ojo y la vista
Vamos a repasar qué partes tiene un ojo y qué uso tiene cada una.
Si miramos a alguien a los ojos vamos a poder diferenciar tres
partes principales (ver Figura 2):
La conjuntiva, un tejido blanco transparente que protege la
parte anterior del ojo de polvo e infecciones. Cuando se infecta
se pone roja y es lo que los médicos llaman conjuntivitis.
Figura 2: El
ojo humano
El iris, es la membrana que da color al ojo: negro, castaño,
azul, verde… Cuando se contraen sus músculos, al haber poca luz por ejemplo, la pupila se agranda. Cuando los músculos del iris se relajan, p.e., porque
haya mucha luz, la pupila se hace más pequeña.
Pág 4
ColorSync
MacProgramadores
La pupila, es la circunferencia negra central del ojo por donde pasan los rayos de luz de las imágenes. Se hace más grande o pequeña dependiendo de
las contracciones del iris.
El blanco de la conjuntiva no es casualidad, su finalidad es evitar que la luz pase
a través de ella, para lo cual hace que
todos los colores se reflejen en ella. Por
contra la pupila es el agujero por el que
pasan los rayos de luz, por eso su color
es negro.
Si ahora miramos el ojo de perfil (ver Figura 3) veremos que consta de más partes que vamos a comentar:
Figura 3: Corte del ojo humano
La córnea, en la parte anterior, la conjuntiva se convierte en la córnea, que es un tejido transparente y convexo.
El cristalino (lens) es una verdadera
obra de arte de la naturaleza. Tiene forma
de lenteja biconvexa, que recibe los rayos
de la imagen, los refleja, y los hace converger en la retina, en forma invertida. Es
decir, es como la "lente" en la cámara fotográfica, tal como muestra la Figura 4.
Figura 4: Efecto del cristalino sobre la luz
El cristalino es capaz de alterar levemente su forma por la acción del músculo
ciliar que lo rodea y que tira más o menos de él según se esté observando un
objeto cercano o lejano. Esta facultad del cristalino de adaptarse a la distancia se denomina acomodación. Las personas que no realizan una correcta
acomodación sufren de miopía o de hipermetropía. Gracias a esta función, el
cristalino refracta los rayos luminosos incidentes y enfoca siempre una imagen nítida, aunque curiosamente invertida, sobre la retina.
La retina, es la capa más interna (de amarillo, en la Figura 3). Es la "placa"
de la cámara fotográfica, donde se recibe la imagen.
La retina contiene células especiales sensibles a la luz, que reaccionan ante
los rayos luminosos. Estas células retinianas, especializadas en la captación
de la luz, son los conos y los bastones (llamadas así porque vistas al microscopio tienen forma de conos y bastones respectivamente).
Los bastones son sensibles a la intensidad lumínica, pero no al color. Los
conos son receptores sensibles a la intensidad luminosa y al color. Sin embargo, los bastones son mucho más sensibles a la luz que los conos, por esta
razón, los colores se aprecian tan mal con poca luz.
Pág 5
ColorSync
MacProgramadores
Pero conos y bastones sólo actúan como fotorreceptores generadores de impulsos que son enviados por el nervio óptico hasta el cerebro, donde se interpretan correctamente. El mecanismo cerebral que reconoce y da significado a
una imagen vista con anterioridad por los ojos se conoce como percepción
visual.
1.3. El espectro de luz
La luz, como muestra la Figura 5, es una
onda electromagnética (al igual que las
ondas de radio o los rayos láser), la cual
tiene una amplitud de onda λ entre
400nm y 700nm para la luz visible, y una
frecuencia f donde:
1014 Hz
f
1015 Hz
Rojo
λ
Verde
700nm
Azul
400nm
c=λf
Figura 5: Espectro electromagnético de la luz
Siendo c la velocidad de la luz en el medio (300.000 km/s en el vacío o en el aire). Obsérvese que como pretende
mostrar la Figura 5, a medida que aumenta la frecuencia disminuye la longitud de onda.
P
P
P
Negro
Blanco
Gris
400nm
700nm
P
400nm
700nm
P
400nm
700nm
P
Rojo
Azul
Verde
400nm
700nm
400nm
700nm
400nm
Figura 6: Espectros de luz para distintos colores
Pág 6
700nm
ColorSync
MacProgramadores
Normalmente la luz natural no consta de una sola longitud de onda, sino que
como muestra la Figura 6, el espectro de luz es una mezcla de longitudes de
onda, el color depende de la longitud de onda predominante. El área bajo la
curva indica la potencia P de la luz.
1.4. Tono, saturación y brillo
Para describir un espectro de luz se utilizan tres
parámetros:
•
•
•
P
B
Tono (también llamado matiz o hue en
inglés). Indica el color dominante, que es
A
el color que nosotros vemos.
Saturación. Indica lo puro que es el coλ
lor (normalmente en tanto por ciento) de
700nm
forma que si A=B (véase Figura 7) la sa- 400nm
turación es 0%, y si A=0 la saturación es
Figura 7: Espectro de co100%.
lor con longitud de onda
Brillo. Indica el total de energía debajo dominante
de la curva.
1.5. Teoría del triestímulo
Afortunadamente para reproducir un color no tenemos que reproducir su espectro de luz, ya que usando sólo tres colores podemos conseguir un color
equivalente como muestra la Figura 8. Nuestro ojo no es capaz de distinguir
un espectro natural de su metámero equivalente. De hecho, combinando 3
colores cualquiera se puede conseguir otros colores, aunque como veremos
luego, R (Red), G (Green), B (Blue) son los que se consigue una gama más
amplia.
Figura 8: Dos espectros que dan el mismo color
Pág 7
ColorSync
MacProgramadores
Experimentalmente se ha comprobado que los conos del ojo son más sensibles al verde y al rojo que al azul (véase Figura 9), esto explica el hecho de
que en el verde es en el color en el que más tonos somos capaces de distinguir, de hecho era el color más presente en el entorno natural de nuestros
antepasados. Sin embargo, con el azul oscuro (el poco saturado) necesitamos
mucha luz para no confundirlo con el negro.
G
Sensibilidad
Sensibilidad
R
B
λ
λ
400nm
700nm
400nm
700nm
Suma de sensibilidades
a los tres colores
Sensibilidad a cada
color primario
Figura 9: Sensibilidad del ojo humano a los tres colores primarios
También se ha estudiado la potencia que hay
B
que producir de cada color para conseguir las P
distintas gamas de color (véase Figura 10).
Desgraciadamente se ha llegado a la concluR
G
sión de que combinando los tres colores primarios no se puede conseguir cualquier color, ya que hay una zona en torno a los
550nm en la que para conseguir esos colores
necesitaríamos introducir un rojo negativo, lo
400nm
700nm
cual es imposible. Esto se puede interpretar
como que al combinar B y G su color natural Figura 10: Potencia necesaria
equivalente tiene la zona de R demasiado sa- para reproducir la gama de
turada y necesitaríamos desaturarla, lo cual colores
es imposible. Esto significa que con metámetros no podemos producir todos los colores que nuestro ojo encuentra en la
naturaleza.
Si este documento le resulta útil puede plantearse el ayudarnos a mejorarlo:
• Anotando los errores editoriales y problemas que encuentre y enviándolos
al sistema de Bug Report de Mac Programadores.
• Realizando una donación a través de la web de Mac Programadores.
Pág 8
ColorSync
MacProgramadores
1.6. Cómo componer colores
Si repasamos los colores del arco iris (Rojo, Anaranjado, Amarillo, Verde,
Azul, Añil y Violeta) vemos cómo va cambiando la percepción de las longitudes de onda. Todos aprendimos en la escuela que al mezclar rojo y amarillo
obteníamos el naranja. Análogamente podemos obtener todos los demás colores, sólo hay que saber que cantidad de cada color básico poner.
El lector avispado habrá observado que los colores añil y violeta están más
allá del azul. ¿Cómo obtenemos estos colores mezclando colores con menor
longitud de onda? Simplemente no se puede, o mejor dicho no se debe, ya
que esta luz tiene una frecuencia tan alta que proyectada continuamente podría dañar el ojo humano. Afortunadamente estos colores son poco usados y
podemos conseguir una tonalidad que resulta parecida mezclando azul con un
poco de rojo.
Esta es la forma en que funciona un
monitor CTR (Cathode Ray Tube)
convencional, como el que aparece
en la Figura 11, el monitor no tiene
más que tres haces de luz (llamados
cátodos) que se proyectan sobre una
superficie de flúor, la cual se ilumina
al dar la luz de los cátodos sobre
ella.
Los cátodos oscilan rápidamente barriendo la pantalla y proyectando o
no proyectando luz en cada uno de
los puntos de la pantalla, que es a lo
que se llama los píxeles.
El funcionamiento de los monitores
LCD también se basa en el principio Figura 11: Monitor CRT
de las tres luces RGB, sólo que en
éstos, cada píxel está formado por tres "bombillitas" que se encienden o se
apagan para producir o no ese color.
Obsérvese que en este sentido un monitor se comporta "al revés" de como se
comporta cualquier cuerpo que vemos, ya que los cuerpos lo que hacen es
reflejar en ellos determinados colores y absorber otros. El monitor sin embargo genera luz, sin necesidad de que haya ninguna otra luz. Por esta razón
podemos ver la televisión con la luz apagada.
Pág 9
ColorSync
MacProgramadores
1.7. Composición aditiva y composición substractiva
Existen solamente dos métodos básicos de reproducir un color: aditivo y sustractivo. Ambos métodos se basan en el principio de usar tres colores primarios para crear toda la gama de colores.
La composición aditiva, como muestra la Figura 12,
empieza con el negro como ausencia de luz, y en consecuencia como ausencia de color. Después podemos
mezclar luces de los distintos colores (rojo, verde y
azul) en distinta intensidad para formar todos los colores. Rojo y verde proyectados juntos producen amarillo, rojo y azul producen magenta, y azul y verde producen cian. Si mezclamos los tres colores en igual
proporción obtenemos el gris, y si esta luminosidad es
máxima obtenemos el blanco.
Figura 12: Composición aditiva
La composición aditiva se utiliza en dispositivos de salida como monitores y scanners, los cuales captan la intensidad de estos tres
valores para cada punto que escanea. Sin embargo, esto no es posible a la
hora de imprimir colores como pasa en las impresoras y los plotters, ya que
aquí lo que necesitamos es que el dibujo absorba determinados colores y no
que los emita. En estos dispositivos necesitamos otro tipo de composición que es la composición substractiva.
En la composición substractiva, como muestra la Figura 13, es el proceso de combinar colorantes substractivos para que absorban parte
del espectro de luz. La tela de una camiseta
amarilla absorbe todos los colores, excepto el
amarillo.
Figura 13: Composición sustractiva
Los colores primarios en la composición substractiva (véase la Figura 14), son
el cian (el opuesto al rojo), magenta (el opuesto al
verde) y amarillo (el opuesto al azul).
Combinando los tres colores primarios substractivos obtenemos el negro, o al menos en teoría,
porque en la práctica al combinar estos tres colores
en la misma proporción se obtiene un color marrón
oscuro. Esto se debe a que las tintas CMY no se
mezclan bien. Para evitar este efecto todas las impresoras (excepto las de más baja calidad) usan un
cuarto color que es el negro. De hay viene el nombre CMYK (Cyan, Magenta, Yellow and blacK). De
Pág 10
Figura 14: Colores complementarios
ColorSync
MacProgramadores
hecho las impresoras también inyectan negro para producir colores distintos
al negro. En concreto inyectan negro en cantidad K = min(C,M,Y). Esto se hace por dos razones. La primera es ahorrar tinta ya que así pueden inyectar
menos tinta de color, en concreto así inyectan C-K, M-K y Y-M para las tintas
de color. La segunda es mejorar la calidad ya que las tintas de color no se
mezclan bien.
Teóricamente, la relación entre RGB y CMY viene dada por la fórmula:
C = 1.0 - R
M = 1.0 - G
Y = 1.0 - B
En la práctica, el proceso de obtener los valor CMYK de una imagen RGB es
mucho más complejo. El valor exacto depende del tipo de tinta, del tipo de
papel y del mecanismo de impresión. ColorSync realiza los cálculos necesarios
para realizar esta impresión para las distintas impresoras.
1.8. Métodos para codificar un color
Aunque existen sólo dos métodos básicos para componer el color, y todos los
dispositivos gráficos utilizan uno de estos dos métodos, existen más formas
de codificar (numéricamente) el color. A continuación, vamos a describir las
cinco formas más utilizadas:
RGB (Red, Green, Blue). La forma de codificar colores más conocida. Usada para componer colores por los monitores y escáneres.
YUV. Se utiliza ampliamente para representar la luminancia Y separada del
color U,V. El concepto de luminancia es similar al concepto de brillo, y la diferencia se explicará en el apartado 1.10. La televisión analógica utiliza este
mecanismo de representación ya que inicialmente sólo se transmitía la señal
Y, y luego se añadieron los canales de cromanencia U,V.
Para transformar de RGB a YUV o viceversa, podemos hacerlo fácilmente sabiendo que la luminancia Y se obtiene como una suma ponderada de R,G,B
relativa a la sensibilidad del ojo a cada color primario:
Y = 0.299R + 0.587G + 0.114B
Para representar el color, en principio podríamos pensar en representar R-Y,
G-Y y B-Y, pero en realidad basta con almacenar R-Y y B-Y ya que G se puede
obtener con la ecuación:
G = (Y - 0.3R - 0.11B) / 0.59
Pág 11
ColorSync
MacProgramadores
La razón por la que se decidió representar la diferencia de rojo R-Y y la diferencia de azul B-Y (y no la diferencia de color G-Y) es que el color verde G es
el que más contribuye a Y con lo que G-Y es normalmente el número más pequeño, y en consecuencia el más susceptible al ruido.
Curiosamente, cuando se tiene la misma capacidad de almacenamiento binario y el mismo nivel de ruido, la representación YUV es más robusta que la
representación RGB. Esto de debe a que, como indicamos en el apartado 1.2,
el ojo es más sensible a las diferencias de luminancia que a las diferencias de
color. Esta característica la han usado muchos estándares de codificación de
vídeo para representar con más precisión (o en mayor cantidad) las muestras
de luminancia Y que las muestras de cromanencia U,V consiguiendo una mejor calidad desde el punto de vista de percepción del ojo humano.
CMYK (Cyan, Magenta, Yellow and blacK). La forma de codificar colores
usada por las impresoras y plotters.
HSV (Hue, Saturation and Value). Aquí el color se codifica en base a estas tres dimensiones:
o Hue (Tono). Indica el color predominante. El gris es
el tono neutro. Verde y azul son diferentes tonos. El
tono puede ser azul, pero los términos azul claro y
azul oscuro son fáciles de distinguir por una persona.
o Saturation (Saturación). Indica lo puro que es un
color con respecto al blanco. Por ejemplo, un rojo sin
blanco es un color totalmente saturado. Si añadimos
blanco el color se vuelve pastel. Por ejemplo, al añadir blanco al rojo obtenemos el rosa. Observe en la Figura 15: Ejemplo de
Figura 15 las alas de la mariposa para ver un ejem- distintas saturaciones de
plo de distintas saturaciones de color.
color
o Value (Valor). Indica las diferencias en la intensidad (brillo) con que se refleja la luz en un cuerpo. Su ausencia es el negro. Este concepto se explicará más detalladamente en el apartado 1.10.
Escala de grises. Otra quinta forma que vamos a comentar es la que se utiliza en las imágenes en blanco y negro, en la que realmente no hay color
porque todos los colores son
grises (véase Figura 16). ColorSync también es capaz de
convertir una imagen codificada mediante alguna de las Figura 16: Escala de grises
formas de codificación de
imágenes en color en imágenes en escala de grises y viceversa (de escala de
grises a color), aunque lógicamente en este último caso la imagen que obtenemos está formada sólo por tonos grises.
Pág 12
ColorSync
MacProgramadores
En cualquier caso conviene repetir que estás dos últimas formas de codificar
el color no pueden ser enviadas directamente a un dispositivo gráfico, con lo
que ColorSync tendrá que transformar esta codificación del color a una forma
de codificarlo que entienda el dispositivo.
Escala de grises
RGB
CMYK
HSV
Figura 17: Diálogos de elección de color de Mac OS X
Pág 13
ColorSync
MacProgramadores
Las aplicaciones de Mac OS X suelen disponer de un dialogo que permite al
usuario indicar un color usando una de estas cuatro codificaciones tal como
muestra la Figura 17. Recomendamos al lector que juegue con este diálogo,
en especial en lo que a HSV se refiere, para ayudarle a comprender mejor estas cuatro formas de codificar colores.
1.9. El espacio de colores
Se llama espacio de colores a una representación vectorial de los colores.
El estándar RGB usa como vectores R,G,B, el estándar HSV usa como vectores H,S,V y el estándar CMYK utiliza como vectores C,M,Y.
(a) Espacio de colores RGB
(b) Espacio de colores HSV
Figura 18: Espacio de colores
La Figura 18 (a) muestra la representación vectorial de RGB donde el vector
(0,0,0) representa la ausencia de color (negro) y la diagonal representa el color neutro (gris) que va desde el negro puro al blanco puro. El cubo también
muestra que el vector de color en espacio de colores CMY es el opuesto al
vector de colores en RGB.
La Figura 18 (b) muestra la representación vectorial de HSV. El tono (hue)
corresponde a los distintos colores a lo largo de los 360 grados. La saturación
se muestra en el eje vertical y va desde el blanco a un tono puro. El valor se
muestra en el eje horizontal y su ausencia da lugar al negro.
Mientras que RGB y CMY utilizan coordenadas cartesianas para representar el
color, HSV utiliza coordenadas polares. En consecuencia, es necesario hacer
una transformación sinusoidal para pasar de coordenadas RGB a HSV.
Pág 14
ColorSync
MacProgramadores
1.10.Brillo, claridad, luminancia y value
El término "brillo" se utiliza informalmente para referirse a un conjunto de
conceptos similares. En este apartado vamos a formalizar cada uno de estos
conceptos y estudiar la relación entre ellos.
En el apartado 1.4 indicamos que el brillo era la energía debajo de la curva de
la Figura 7. Más formalmente, se utiliza el término radiancia para referirse a
la energía que hay debajo de la curva (medida en vatios), y es una medida
objetiva.
Formalmente el brillo B (brightness) se define como:
B = (R+G+B) / 3
La tercera componente del espacio de colores HSB es el que se utiliza cuando
calculamos el brillo de acuerdo a esta fórmula. Sin embargo, el brillo es una
propiedad del color que no corresponde adecuadamente con la percepción del
ojo humano, con lo que se han definido otras medidas más adecuadas para el
ojo que son la claridad, la luminancia y el value.
Formalmente la claridad L (lightness) se define como:
L = [max(R,G,B) + min(R,G,B)]/2
Se ha comprobado que la claridad (siguiendo esta fórmula) es una medida
más aproximada a la percepción del ojo humano que el brillo. En este caso, al
espacio de colores se le llama HSL y se usa frecuentemente en programas de
dibujo como GIMP.
Otra medida más objetiva del brillo es el valor V (value) que se define como:
V = max(R,G,B)
En este caso al espacio de color se le llama
HSV, y es el espacio de color más frecuentemente usado.
La medida de brillo que más se aproxima a
la cantidad de luz que percibe el ojo humano es la luminancia Y (luminance),
que como ya introdujimos en el apartado
1.8 se calcula como:
Figura 19: Proyecciones en el
eje gris
Y = 0.299R + 0.587G + 0.114B
Pág 15
ColorSync
MacProgramadores
Los espacios de color YUV y HSY utilizan esta medida de brillo. A igual radiancia, el ojo percibe mayor cantidad de luz en los verdes, con lo que la luminancia es la medida más subjetiva, y por tanto la mejor para representar lo que
percibe el ojo humano. En la fórmula de cálculo anterior, el coeficiente en G
es el más grande. Esto significa que si tenemos tres bolas de colores R, G, B,
al calcular su luminancia la bola verde será la más brillante. Este efecto es
consistente con la Figura 9 (a).
La Figura 19 muestra cómo las diferentes definiciones de brillo proyectan en
el eje gris. La figura muestra la posición en el cubo RGB del color
(220,60,120) y la proyección del valor V, claridad L y luminancia Y. La fórmula
de calculo del valor V hace que siempre sea mayor a las otras medidas de brillo. La claridad o la luminancia pueden ser mayores una a la otra dependiendo
de qué punto RGB se trate.
1.11.La corrección gamma
Aunque en teoría la luminancia Y que emite un monitor debería ser linealmente proporcional al voltaje de entrada Vin. En la práctica no es así, sino que al
principio con poco voltaje se consigue mucha luminosidad y según aumentamos el voltaje la luminosidad no aumenta tan rápido. Para que la luminancia
sea proporcional al valor que estamos proporcionando al monitor se proporciona al monitor un voltaje Vout que viene corregido por la fórmula:
Y ≈ Vout = Vin
γ
La Figura 20 muestra esta corrección para γ=2.2, que
es una corrección común para los monitores CRT.
Las herramientas de calibración de ColorSync permiten
modificar el valor de γ. Cuando un monitor esta bien
calibrado con un valor de entrada medio, Vin=0.5, se
consigue una luminancia media, Y=0.5. Es decir, para
RGB=(127,127,127) se consigue un gris medio. Si el
gris es demasiado oscuro, hay que reducir γ, y viceversa.
Figura 20: Corrección
gamma
Existen tres puntos donde se puede aplicar la corrección gamma:
1. En la imagen muestreada. Existen estándares como sRGB que almacenan
los valores de la imagen con la corrección gamma ya aplicada.
2. En el sistema operativo. Los sistemas operativos modernos permiten indicar la corrección gamma a aplicar.
3. En el hardware de salida. Los monitores modernos permiten indicar si queremos realizar una corrección gamma.
Pág 16
X+Y+Z=1
ColorSync
MacProgramadores
La ventaja de almacenar la corrección gamma en la imagen muestreada es
que los dispositivos de salida ya no tienen que calcular la corrección gamma.
Estándares como sRGB aplican una corrección gamma fija de γ=2.2. La ventaja de aplicarla en el sistema operativo o en el hardware es que el usuario
puede ajustar la corrección gamma.
Aunque existen otros estándares de codificación RGB (como Adobe RGB), el
estándar sRGB es el estándar por defecto para almacenar imágenes RGB. Si
no se especifica más, cuando se dice que una imagen está codificada en RGB
Figura
Eje X,esY,decir
Z de CIE
se está diciendo que está codificada
en21:
sRGB,
con corrección gamma
γ=2.2.
1.12.El estándar CIE
Se llama modelo de color a una representación de las propiedades y comportamiento del color. En el apartado 1.5 vimos que, no solamente el sistema
de color RGB, sino todos los sistemas de color basados en tres colores primarios requieren un valor negativo en alguno de sus colores. Esto quiere decir
que no se puede hacer un modelo de color que mediante metámeros represente todos los colores. La CIE (Commission Internationale d’Eclairage) propuso en 1931 un sistema de representación del color que sí que podía representar toda la gama de colores de la naturaleza, y que vamos a explicar en
este apartado.
1.12.1. Los colores primarios X, Y, Z
El CIE definió tres colores primarios "supersaturados" X, Y, Z que no corresponden con
colores reales, pero que tienen la propiedad
de que pueden representar cualquier color
usando sólo valores positivos, y donde Y
corresponde, aproximadamente, con la claridad del color.
Y
λ=670nm
La intensidad de cada color viene dada por
la siguiente fórmula, donde X, Y, Z son los
vectores que representan los colores primarios y X, Y, Z sus intensidades:
X
λ=400nm
Z
C = XX+YY+ZZ
Para hacer el color independiente de la
luminancia se decidió que se cumpliera la relación x+y+z=1, ya que se sabe
que los colores (x,y,z) y (2x,2y,2z) son el mismo, pero el segundo tiene el
doble de luminancia. Para ello podemos aplicar las fórmulas:
Pág 17
ColorSync
x=
X
X +Y + Z
Figura 22: Colores CIE en el eje tridimensional
MacProgramadores
y=
Y
X +Y + Z
z=
Z
X +Y + Z
De esta forma todos los colores están sobre el plano x+y+z=1, como muestra
la Figura 21. Los colores 100% saturados se encuentran sobre la curva en
forma de herradura de la figura, y el blanco puro se encuentra aproximadamente en el centro de la figura. El trozo de herradura que falta se llama frontera púrpura, y son colores que se consiguen mediante combinaciones de rojo y
azul.
Figura 23:
Proyección de los colores
La Figura 22 muestra los distintos
tonos
CIE
sobre
el
plano XY
que toma CIE en función de los valores de
X, Y, Z.
Obsérvese que si conocemos el valor de
dos colores x,y podemos conocer el tercero ya que:
z=1-x-y
Luego podemos representar la gama de colores sobre el papel proyectando la curva
ortográficamente sobre el plano XY como
muestra la Figura 23. En consecuencia, los
valores de luminancia no están disponibles
en este plano.
Téngase en cuenta que (x,y,z) no dan el color real, solo su tono, con lo que teniendo
x,y podemos calcular z con la fórmula anterior, pero no el color real. Para ello necesitamos conocer además su luminancia.
La luminancia en CIE la da Y, con lo que si
tenemos x,y,Y ya si podemos obtener el color real despejando X=(x/y)Y y Z=Y(1-xy)/y.
Para despejar las X, Y, Z mayúsculas, y luego calcular C = XX + YY + ZZ.
1.12.2. Interpretación del diagrama CIE
Conviene hacer algunas consideraciones sobre el sistema de representación
de color CIE que vamos a hacer en este apartado:
Pág 18
ColorSync
MacProgramadores
Figura 25: Cálculo del ancho de banda dominante
La primera es que, como muestra la Figura 24, al combinar dos colores A, B
su mezcla está en el segmento que los une. Cuanto más A ponemos más se
acerca a A y cuanto más B ponemos más se acerca a B.
Figura 26: CIELAB
Una segunda consideración es que para obtener la longitud de onda dominante λ de un color, podemos trazar una recta desde el blanco puro C al borde
pasando por A como muestra la Figura 25 (a), y el corte con el borde será la
longitud de onda λ dominante.
Si el corte se da en la frontera púrpura, como muestra la Figura 25 (b), no
hay un solo color dominante lo que significa es que el λ opuesto (-λ) no es un
pico, sino un valle del espectro de luz.
(a)
(b)
λ
A
B
-λ
A
C
C
A
Una tercera observación es que si queremos saber la saturación de un color
A, podemos tirar una línea del centro C al borde pasando por A, y la relación
|CA|/|Cλ| nos da el porcentaje de saturación.
1.12.3. CIEXYZ, CIELAB y CIELUV
Debido a que el ojo humano percibe más verdes que
azules, los avances en el diagrama CIE (también llamado CIEXYZ) no son proporcionales a la variación de
color que percibiría el ojo. CIE ha definido otros dos
estándares llamados CIELAB y CIELUV que pretenden
ser proporcionales a la variación de color que perceptual.
La L se refiere a la luminancia percibida y las coordenadas AB y UV se refieren a las coordenadas de croPág 19
ColorSync
MacProgramadores
macidad. La Figura 26 muestra cómo varían los colores cuando la luminancia
L va del 0% al 100%. También muestra como la distancia entre las coordenadas de cromacidad es proporcional a la variación perceptual de color.
El espacio de color CIELAB se utiliza para representar colores substractivos. El
punto blanco por defecto en CIELAB se llama D50. Por su parte, CIELUV se
utiliza para representar colores aditivos.
1.13.La gama de colores
Se llama gama de colores al conjunto de todos los colores que puede ofrecer un dispositivo.
Aunque en teoría un dispositivo podría darnos todos los colores de la naturaleza, en la práctica cada dispositivo tiene una gama de colores que es capaz
de representar. De esta forma, las impresoras actuales no alcanzan a ofrecernos una gama de colores tan amplia como los monitores, y los monitores actuales tampoco alcanzan a ofrecernos una gama de colores tan amplia como
la vista humana es capaz de encontrar en la naturaleza. La Figura 27 muestra
una aproximación a la gama de colores que puede llegar a ofrecernos cada
tipo de dispositivo. Los vértices de cada gama suelen corresponder a sus colores primarios. Por esta razón se dice que la gama de color es dependiente del
dispositivo, porque cada dispositivo es capaz de generar una gama de colores
distinta.
Figura 27: Gama de colores de distintos dispositivos
1.14.Colores dependientes del dispositivo
En la práctica, la misma combinación numérica produce un color diferente en
cada dispositivo. Cuando una impresora recibe un color en CMYK, lo que recibe realmente es qué porcentaje de color de cada tipo debe de soltar en un
punto, pero no recibe qué color exactamente es el que tiene que pintar. Esto
hace que impresoras de distintos fabricantes (e incluso impresoras del mismo
fabricante) impriman colores apreciablemente distintos cuando reciben la orden de pintar el mismo color.
Pág 20
ColorSync
MacProgramadores
La Figura 28 muestra el resultado de imprimir cada uno de los colores primarios en cuatro impresoras distintas. Esto es lo que significa que CMYK es dependiente del dispositivo.
El mismo problema (aunque en menor medida) lo encontramos en los monitores a la hora de representar colores RGB, o en los escáneres a la hora de
leer estos colores. Esto se debe a que existen diferentes sistemas de representación RGB (sRGN, Adobe RGB, etc), y la longitud de onda de sus colores
primarios es diferente.
Para representar un color sería conveniente tener un sistema de medición de
colores que fuera independiente de los colores primarios que estemos usando, y eso nos lo permite hacer el sistema CIE que vimos antes, el cual puede
representar todos los colores de la naturaleza con sus tres colores primarios.
Figura 28: Resultado de imprimir un mismo código de color CMYK en distintas impresoras
Pág 21
ColorSync
Color RGB
Figura
enviado
29: Espectrómetro
Color CIE realmente
al dispositivo
obtenido
MacProgramadores
1.15.Profiling
El inconveniente de usar técnicas de representación del color dependientes
del dispositivo es que una imagen que en un monitor se ve perfectamente, en
otro monitor se va a ver completamente distorsionada, a pesar de que el monitor esté recibiendo exactamente
los mismos
códigos de colores en escala
Figura 30: Ejemplo
de profile
RGB.
Para solucionar este problema surgió la técnica del profiling, que lo que hace es modificar ligeramente los colores que se están enviando al dispositivo
de salida para que éste muestre la imagen con una precisión casi absoluta.
Para realizar el profiling de un dispositivo necesitamos contar con un dispositivo que nos permita medir el color, como el de la Figura 29. Los tres dispositivos más usados para medir el color son:
Densímetro. Un dispositivo foto-eléctrico que
nos permite medir cuanta luz se refleja o se
absorbe por un objeto. El densímetro es un
instrumento simple que se utiliza sobre todo
en procesos de impresión y en aplicaciones
fotográficas para determinar la fuerza con que
se imprimen los colores.
Colorímetro. Mide también la luz, pero descomponiéndola en sus tres componentes primarios para obtener un valor numérico RGB o
CIE.
Espectrómetro. Mide la cantidad de energía luminosa reflectada en un objeto. El resultado es un conglomerado de
valores de reflectancia que se pueden
interpretar como una curva espectral.
El espectrómetro es el más preciso y
usado de estos instrumentos porque
recoge información completa sobre el
color que se pueden transformar en
datos del colorímetro o densímetro con
unos pocos cálculos.
Estos instrumentos son los que nos
permiten determinar (en representación CIE) cuál es la salida real de cada
uno de los colores que puede producir un dispositivo cuando le damos una
orden de dibujo en RGB o CMYK.
Pág 22
Profile RGB
RGB
ColorSync
Profile CMYK
CMYK
CIE
MacProgramadores
En base a la información obtenida podemos crear un profile, (ver Figura 30)
que no es más que un archivo que para cada posible color que recibe un dispositivo (p.e. en RGB) nos lo haga corresponder con el color real que produce
ese dispositivo.
Aunque por defecto los monitores reciben las órdenes en RGB, cuando nosotros enviamos una orden de dibujo a un dispositivo, podemos enviar la orden
en CIE. ColorSync se encarga de transformar este color CIE en el color RGB
que más se aproxima al color pedido.
Formatos gráficos como TIFF, JPEG, o PDF v1.3 en adelante, permiten utilizar
colores CIE (también llamados colores independientes del dispositivo) en lugar de colores RGB para representar una imagen. Los resultados de esta definición más precisa de colores son fácilmente apreciables en el resultado final.
Además ColorSync puede mejorar la calidad de monitores mal calibrados
usando los profiles, los cuales le pueden ayudar a cambiar un color RGB por
otro con el fin de mejorar la salida.
Las mismas mejoras se pueden conseguir (o más claramente apreciables todavía) en el caso de la impresión, ya que los colores CMYK llegan a distar a
veces mucho de los colores reales que estamos buscando obtener.
1.15.1. Conversión y correspondencia de colores
La conversión de color (color conversion) es el proceso por el cual transformamos los colores de una imagen, de un espacio de colores en otro espacio de colores.
La correspondencia de colores (color matching) añade a la conversión
de color la información de los profiles para generar una salida lo más parecida
posible a la entrada.
La conversión de colores es un proceso más sencillo que la correspondencia
de colores, porque no requiere de los profiles para calcular la conversión.
Mientras que la conversión de colores se realiza entre espacios de color, la
correspondencia de colores se realiza entre dispositivos que tienen asociado
un profile.
Pág 23
ColorSync
MacProgramadores
Figura 32: Correspon-
Los diferentes dispositivos gráficos (escáneres,
pantallas monitores), aunque
dencia de profiles de
suelen utilizar la misma técnica para representar
el color, trabajan con difemonitor e impresora
rentes profiles y espacios de colores. P.e. los monitores de todos los fabricantes usan RGB, pero la gama de colores que ofrece cada uno es distinta. Las
impresoras, aunque trabajan todas con CMYK, varían drásticamente en sus
gamas, especialmente si utilizan distintas tecnologías de impresión. Incluso
dentro de un mismo fabricante, se pueden observar variaciones en la gama
de colores generada por las impresoras en función de la tinta y papel usado.
Para realizar estas correspondencias de colores se suelen utilizar dos profiles
(ver Figura 31), los cuales nos permiten hacer corresponder un color a una
representación intermedia (normalmente en CIE) y después usamos el profile
del dispositivo destino para obtener la representación más precisa posible en
el dispositivo destino. De esta forma la imagen que imprimamos será lo más
parecida posible a la imagen que estamos viendo en pantalla. Todos estos
cálculos son realizados por ColorSync.
Los profiles tienen diferente gama (tamaños y formas), como muestra la Figura 32. Un monitor tiene es un espacio de colores que
normalmente es bastante más amplio que el espacio
de colores de una impresora, luego cuando realizamos
la correspondencia vamos a necesitar comprimir los
colores. Si existe un del monitor que no se puede reproducir exactamente en el espacio de colores del profile de la impresora, ColorSync busca en el color del
profile de impresora más próximo al pedido y éste es
el que le asigna.
1.15.2. Tipos de profiles
Hay varios tipos de profiles que vamos a estudiar en
esta sección.
Los profiles de dispositivo caracterizan un dispositivo. Pueden ser dispositivos de entrada (p.e. escáner,
cámara de fotos) o dispositivos de salida (p.e. monitor, impresora). Además, un dispositivo puede tener
varios profiles. Por ejemplo, una impresora puede tener varios profiles dependiendo del papel y tinta a usar.
Los profiles de espacio de color permiten convertir entre espacios de color
independientes del dispositivo. Por ejemplo, permiten convertir entre CIEXYZ
y CIELUV.
Pág 24
ColorSync
MacProgramadores
Los profiles abstractos permiten aplicar efectos especiales independientes
del dispositivo. Por ejemplo, un profile abstracto puede incrementar el tono
amarillo para crear imágenes en color sepia.
Los profiles de espacio de color con nombre son una lista donde cada
color tiene un nombre y un valor CIE. Se usan mucho en plotters donde el
conjunto de colores es limitado.
Los profiles embebidos son profiles que se adjuntan a la imagen. Formatos
como TIFF, JPEG, EPS o PDF v1.3 permiten embeber profiles. Si una imagen
no lleva embebido un profile, por defecto se asume que está codificada en
sRGB.
Los profiles de enlace de dispositivo (DeviceLink) son profiles que encapsulan la transformación de un dispositivo a otro. Estos profiles sólo permiten
convertir de un dispositivo a otro, pero son bastante predictivos. La alternativa software son los CMM que verémos más adelante.
1.16.Soft-proofing
Una técnica muy utilizada en los programas de tratamiento de imágenes es el
soft-proofing, que consiste en emular en pantalla el resultado final que vamos a obtener en la impresora. Debido a que la gama de colores del espacio
de colores de un monitor es más amplia que la de una impresora, esta emulación en pantalla se va a parecer bastante al resultado final que obtendremos
al imprimirlo.
Pág 25
ColorSync
MacProgramadores
Figura 33: Imagen original
Figura 34: Imagen tras aplicarla un proceso de soft-proofing a CMYK
Figura 35: Imagen tras aplicarla un proceso de soft-proofing a CMY
Para hacernos una idea de esta técnica, en la Figura 33 se muestra una imagen y el resultado obtenido tras hacerla un soft-proofing para la impresora
Epson Stylus Photo 1270, primero usando CMYK (Figura 34) y después usando CMY sin usar corrección inyectando negro (Figura 35).
Pág 26
ColorSync
MacProgramadores
Podemos ver el resultado del soft-proofing de una imagen desde el programa
Preview (ver Figura 33) seleccionando la opción de Menú View|Soft
Proof with profile.
Figura 36: Proceso de soft-proofing
El soft-proofing se realiza en dos etapas: En la primera etapa se comprime el
color del espacio de colores del monitor al de la impresora. En el segundo paso se realiza una correspondencia (sin compresión) de CMYK a RGB, con lo
que el nuevo espacio de colores es mayor al original, pero los colores que estamos representando en la pantalla son sólo colores representables en la impresora. La Figura 36 muestra esquemáticamente este proceso.
Pág 27
ColorSync
MacProgramadores
2. Un poco de historia
En 1980 empezaron a surgir las primeras herramientas de tratamiento gráfico, y con ellas un conjunto de empresas (entre las cuales destacaron Apple y
Adobe) empezaron a diseñar lo que llamaron Color Management Systems
(CMS), es decir mecanismos que pretendían solucionar el problema de la divergencia de colores entre los distintos dispositivos.
El principal problema con que se acabaron encontrando estos CMS fue el de
que eran propietarios de cada fabricante e incompatibles entre ellos, con lo
que cada aplicación tenia que "casarse" con un fabricante.
Figura 37: Color Management Systems
Como muestra la Figura 37, estos CMS no eran más que APIs en una librería
de enlace dinámico a las que se enlazaban las aplicaciones, pero la aplicación
necesitaba que la librería estuviera instalada, o instalarla ella misma antes de
usarla.
Pág 28
ColorSync
MacProgramadores
Para solucionar este problema, Apple añadió a su sistema operativo ColorSync, su librería de CMS. En aquellos tiempos esta librería se metió en Mac
OS Classic, aunque lógicamente Mac OS X también cuenta con su implementación de ColorSync.
Es decir, ColorSync no es más que una librería de intercambio de información
de color entre los distintos dispositivos.
Gracias a ColorSync las aplicaciones pueden acceder a las operaciones de
gestión de color de un CMS a través de un API estándar sin necesidad de instalar software adicional (véase Figura 38).
Figura 38: Solución a los CMS propietarios con ColorSync
Pág 29
ColorSync
MacProgramadores
Figura 39: ICC profile embebido
3. International Color Consortium (ICC)
El International Color Consortium (ICC) fue creado por Apple y otros fabricantes para promover una arquitectura de gestión de color, y estándar formatos
independientes del fabricante. Los principales objetivos eran, caracterizar los
dispositivos de color y transformar colores entre dispositivos. ColorSync es la
implementación que hace Apple de las especificaciones ICC.
ICC describe tres componentes básicos que
vamos a analizar más a fondo en esta sección.
3.1. ICC Profile
Los ICC profiles son ficheros con un formato estándar para caracterizar un dispositivo de color.
El escáner o cámara que captura la imagen
suele incluir embebido el ICC profile de ese
dispositivo en el fichero de imagen. En otros
casos almacena un ICC profile estándar,
como pueda ser el de sRGB.
El dispositivo puede ser tanto de entrada
como de salida. Si el dispositivo es de salida
(p.e. impresora), ColorSync usa este ICC
profile para decidir cómo enviar la imagen al
dispositivo de salida.
La Figura 39 muestra cómo podemos usar el panel Get Info de Finder para
obtener información sobre el ICC profile embebido en una imagen.
3.2. Calibrar un dispositivo
Para que un sistema de reproducción produzca una salida satisfactoria es necesario que el dispositivo se comporte como cuando su profile fue creado. Sin
embargo, con el tiempo los dispositivos tienden a desestabilizarse con lo que
se vuelve necesario calibrarlo.
La tarea de calibración es una tarea complicada. ICC se desentiende de definir cómo se calibran los dispositivos y asigna esta responsabilidad al usuario.
Pág 30
ColorSync
MacProgramadores
Mac OS X proporciona en System Preferences | Display una utilidad
para ayudar al usuario a calibrar su dispositivos. En general, si el usuario no
es experto en color, es mejor que asuma la desestabilización de su dispositivo
a intentar calibrar por sí solo el dispositivo.
3.3. CMM (Color Management Modules)
El CCM es el software matemático que implementa transformaciones, tanto de conversión de color como de correspondencia de color.
Cuanto más preciso sea el ICC de los dispositivos de entrada de salida, más
precisa será la correspondencia de color que calcule el CMM. Incluso cuando
los dispositivos están perfectamente calibrados, las correspondencias de color
implican diferencias debidas a las diferencias en las gamas de color entre dispositivos.
Cada CMM calcula una o más transformaciones. Por ejemplo, podemos tener
un CMM para transformar una imagen de una cámara de fotos a un monitor
TFT, y otro CMM para transformar esta misma imagen a una impresora en
color.
La cabecera de los ficheros de profile incluye un campo que indica el CMM a
usar para realizar correspondencias de color con este profile. Si en una operación de correspondencia de color, los profiles no especifican el mimo CMM,
ColorSync identifica qué CMM usar.
ColorSync cuenta con un CMM por defecto que soporta todas las operaciones
de correspondencia de color, con lo que este CMM se usa cuando no existe
otro CMM disponible.
Para la correspondencia de color se puede usar un CMM, pero más habitualmente se implementa mediante simples funciones de conversión de color que
exporta la librería ColorSync.
3.4. Rendering intent
El rendering intent define el criterio de la correspondencia de color que realizan los CMM.
En cada transformación, el CMM tiene que tener en cuenta que la gama de
colores de cada dispositivo es distinta. Las formas concretas de realizar esta
transformación, y la información que se va a descartar durante la transformación, la define el rendering intent. ICC define los siguientes tipos de rendering
intents:
Pág 31
ColorSync
•
•
•
•
MacProgramadores
Perceptual. Preserva las relaciones entre los colores transformados escalando todos los colores, incluso los que existen en el profile destino. El
rendering intent perceptual produce la transformación de color más agradable a la vista, y es el recomendado para fotos.
Saturación. Al calcular la correspondencia se mantiene la saturación de
los colores, pero si un color no se puede hacer corresponder con otro del
profile destino, se modifica su brillo para quedar dentro de la gama de colores del profile destino. Este tipo de rendering intent se usa para las imágenes vectoriales, donde el tono y la saturación de color es más importante que su brillo.
Colorimetría relativa. En esta correspondencia se mantienen inalterados los colores que existen en los profiles origen y destino. Para los colores que no se pueden mapear, primero se mapea el blanco origen con el
blanco destino, y después se escalan los colores que no se pueden mapear
respecto al blanco destino. El resultado es una imagen más clara o más
oscura, pero en la que coincide el blanco. Este rendering intent se usa
principalmente el dispositivos de color punteado.
Colorimetría absoluta. Esta correspondencia de color es parecida a la
colorimetría relativa, pero se preserva el punto blanco. Este rendering intent se utiliza en soft-proofing donde, por ejemplo para simular un periódico impreso, el color del papel aparece amarillento, en vez de mostrarse
el blanco puro.
En la práctica, el rendering intent más usado, y el por defecto, es el perceptual.
Madrid, Agosto del 2011
Fernando López Hernández
[email protected]
Pág 32
Descargar