Los que hayáis trabajado en diseño, tanto en el ámbito de ser aficionado como profesional, os habréis dado cuenta de que la gestión de color de los programas de diseño gráfico, así cómo la representación del mismo en el hardware de PC son distintas entre sí. Mientras que en el mundo “real” la representación de color es CMYK en las pantallas es RGB.
La representación del color es uno de los puntos más importantes para los diseñadores gráficos en las diferentes disciplinas. Aunque en este artículo no os vamos a contar como realizar la corrección de color en vuestros programas favoritos, sino como el color es gestionado por el hardware de vuestros PC. Tanto en cuanto al monitor como de la propia tarjeta gráfica y porque difiere en ese aspecto a cuanto utilizamos color en el mundo real.
CMYK frente a RGB
El acrónimo inglés CMYK significa Cyan (Azul Cian), Magenta, Yellow (Amarillo) y Black (Negro) y son los colores básicos utilizados en diseño gráfico sobre papel. En cambio el acrónimo RGB quiere decir Red (Rojo), Verde (Green) y Blue (Azul) y es el utilizado en las pantallas de diferentes tipos de dispositivos.
A través de estos dos sets de colores gráficos se obtienen el resto de colores de la gama, por ejemplo puedes obtener los colores RGB a través de mezclas concretas con los CMYK y viceversa. ¿No sería mejor entonces un sistema de gestión del color universal? Si, en teoría sería mejor, pero hemos de tener en cuenta que una pantalla emite luz, mientras que los tintes y pinturas CMYK reflejan la luz del entorno que incide sobre ellas. Esto se traduce en que los tintes CMYK son sustractivos, lo que se traduce en que la suma de los mismos tiende hacía el negro, mientras que los RGB son aditivos y por ello la suma de los mismos tiende hacía el blanco.
Con respecto a las aplicaciones, las que tienen que generar resultados para ser impresos trabajan en el ámbito de los colores CMYK, por lo que tienen dos sistemas de visualizado: uno RGB para mostrar el documento en pantalla como previsualización del mismo y otro CMYK que es generado al enviar el archivo a la impresora.
El búfer de imagen
Cuando el hardware gráfico, sea esta una GPU integrada o dedicada, genera un fotograma lo que hace es escribirlo sobre el búfer de imagen, la cual es una sección de la memoria en la VRAM. A día de hoy se utiliza lo que llamamos el búfer doble consistente en que mientras el fotograma ya generado es enviado por el controlador de pantalla al monitor, el procesador gráfico se encuentra generando el siguiente fotograma.
Para entender el búfer de imagen hemos de imaginarnos un tapiz en el que cada punto del mismo es un píxel que representa un valor en color, el cual es obviamente una matriz de puntos de color. Dado que la memoria VRAM es lineal esto no es un problema, ya que podemos representar esa matriz como un enorme vector, donde cada píxel corresponde a una posición en la memoria y se encuentran todos de manera secuencial. Claro está que el valor de cada píxel se almacena en formato RGB, el cual marca la intensidad de cada uno de los tres canales.
Como hemos comentado antes, el formato RGB es aditivo, esto afecta al hardware gráfico a la hora de manipular el valor de color de los píxeles, ya que utiliza unidades ALU con la capacidad de sumar y multiplicar a la hora de representar gráficos en pantalla a tiempo real a gran velocidad. Mientras que para generar la misma imagen en CMYK no requieren de la misma celeridad y suelen hacerlo a través de un proceso de conversión, utilizando la tecnología PostScript, que normalmente suele ser llevado a cabo por la CPU.
El espacio de color en RGB y CMYK
Antes os hemos comentado cómo es posible conseguir los colores básicos de RGB a través de combinaciones en CMYK y viceversa. Y somos conscientes que algún diseñador gráfico que haya leído esto se habrá tirado de los pelos.
La realidad es que en los píxeles RGB de una pantalla podemos representar una mayor cantidad de colores que utilizando pigmentos CMYK de una impresora. Es por ello que para los que trabajan en multimedia la gestión del color es muy importante, dado que un color que se ve en pantalla puede que no pueda ser representado tal cual en RGB. Con tal de obtener las equivalencias exactas, los profesionales hacen uso de aparatos de calibración de color o de tarjetas Pantone que les permiten obtener el mismo color en ambos espacios.
También se ha de aclarar que los valores RGB tampoco representan todo el espectro de color de la realidad, pero esto es más bien por limitaciones a la hora de diseñar el hardware. Bien es cierto que sería posible crear GPU con la capacidad de trabajar a mayor precisión, pero se perdería una potencia de cálculo considerable y por el momento el espacio RGB que se utiliza ya es lo suficientemente bueno.
Utilizar CMYK sería contraproducente
Debido a que las pantallas utilizan RGB y no CMYK todas las aplicaciones están pensadas para dicha forma de representar el color y esto incluye las ecuaciones para manipular el valor de color de cada píxel. Si de repente hubiese un consenso para unificarlo todo bajo CMYK las consecuencias no solo serían catastróficas en cuanto a los programas, sino que con respecto al hardware nos encontraríamos que de repente cuatro décadas de avances gráficos se irían colina abajo.
Lo que sí que es un avance importante sería acelerar la conversión de CMYK a RGB, en especial por el hecho que cuando abrimos un archivo en PDF para poder leer es necesario convertir todos píxeles de la imagen al formato RGB. Si alguna vez os habéis preguntado por qué un archivo PDF de poco peso tarda tanto en abrir es debido a que la pobre CPU del dispositivo se está ahogando realizando la conversión.
Es posible que en el futuro se utilicen algoritmos de inteligencia artificial para hacer conversiones CMYK a RGB y viceversa de manera directa y a gran velocidad, lo que no solo permitirá leer PDF a gran velocidad en nuestro ordenador o tableta, sino también acelerar la cola de impresión.