La profundidad de color o bits por píxel (bpp) es un concepto de la computación gráfica que se refiere a la cantidad de bits de información necesarios para representar el color de un píxel en una imagen digital o en un framebuffer. Debido a la naturaleza del sistema binario de numeración, una profundidad de bits de n implica que cada píxel de la imagen puede tener 2n posibles valores y por lo tanto, representar 2n colores distintos.
Debido a la aceptación prácticamente universal de los octetos de 8 bits como unidades básicas de información en los dispositivos de almacenamiento, los valores de profundidad de color suelen ser divisores o múltiplos de 8, a saber 1, 2, 4, 8, 16, 24 y 32, con la excepción de la profundidad de color de 10 o 15, usada por ciertos dispositivos gráficos.
Para las profundidades de color inferiores o iguales a 8, los valores de los píxeles hacen referencia a tonos RGB indexados en una tabla, llamada habitualmente caja creadora de colorización o paleta. Los tonos en dicha tabla pueden ser definidos por convención o bien ser configurables, en función de la aplicación que la defina. A continuación se mencionarán algunas profundidades de color en la gama baja, así como la cantidad de tonos que pueden representar en cada pixel y el nombre que se le otorga a las imágenes o framebuffers que los soportan.
1 bit (2 colores) con dithering
2 bits (4 colores)
4 bits (16 colores)
8 bits (256 colores)
24 bits (16.777.216 colores)
Los archivos de extensión .gif utilizan la paleta de color indexado, mientras que en una toma de fotografía digital el color es de 24 bit u 8 bit por canal de color RGB.
Los primeros chips gráficos solían utilizar trucos para aumentar la capacidad de color sin por ello consumir más de la entonces cara memoria RAM. Quizá el más conocido es el utilizado por el ZX Spectrum, que almacena la imagen en dos bits, pero el color se define para bloques de 8x8 píxels.
Cuando los valores de la profundidad de colores aumentan, se torna impráctico mantener una tabla o mapa de colores debido a la progresión exponencial de la cantidad de valores que el pixel puede tomar. En esos casos se prefiere codificar dentro de cada pixel los tres valores de intensidad luminosa que definen un color cualquiera en el modelo de color RGB.
Los valores de profundidad de color de 15 y 16 bits son llamados habitualmente color de alta resolución o HiColor.
Para la profundidad de color de 24 bits por pixel, se habla de color verdadero debido a que la policromía se acerca a lo que el ojo humano puede encontrar en el mundo real, y a que dicho ojo humano se torna incapaz de diferenciar entre un tono y otro, si la diferencia se mantiene en un cierto rango mínimo. En la profundidad de color de 24 bits por pixel, se dedica un octeto entero a representar la intensidad luminosa de cada uno de los tres tonos primarios de rojo, verde y azul, lo cual permite que cada pixel pueda tomar 224 = 256x256x256 = 16.777.216 colores distintos.
Cuando se utilizan 32 bits para representar un color se agrega al esquema de 256 valores para cada tono primario un cuarto canal denominado alfa que representa la transparencia. Este valor se utiliza cuando se deben superponer dos imágenes.
Edwin Catmull propuso una serie de operadores para la mezcla (también llamado blend) de imágenes. Debido a que Catmull estaba desarrollando el sistema de animación de Pixar necesitaba automatizar la composición de imágenes. Juntamente con Marc Levoy (Levoy los desarrolló por su cuenta en los estudios Hanna Barbera) sentaron las bases del álgebra de colores. El operador más común es el OVER, que presentamos a continuación:
Dados los colores A [r1, g1, b1, a1] y B [r2, g2, b2, a2], el resultado de mezclar: A sobre B es:
A OVER B = [ r1 * a1 + r2(1 - a1), g1 * a1 + g2(1 - a1), b1 * a1 + b2(1 - a1) ]
Notemos que el orden es importante: A sobre B es diferente que B sobre A. Esta es la razón por la cual la transparencia se debe aplicar en orden. Por ejemplo si tenemos tres imágenes A, B y C, donde C es el fondo y A es la imagen al frente, el orden es el siguiente: Imagen Final = A over ( B over C ) Existen otros operadores importantes como el OUT, ADD, SUB y otras formulaciones de OVER más complejas.
Escribe un comentario o lo que quieras sobre Profundidad de color (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)