¿Cuál es la diferencia entre el espacio de color y la profundidad de bits?

Sé que hay diferentes tipos de espacio de color y que sRGB es el más común. La profundidad de bits define las variaciones de un canal de color, donde (creo) 8 y/o 16 bits son los más comunes.

Algunos podrían decir que son totalmente diferentes y otros podrían decir que no son mutuamente excluyentes.

¿Alguien puede explicar las diferencias? Si aumenta la profundidad de bits, ¿por qué no aumenta también el espacio de color?

Respuestas (5)

Básicamente, la información del color de la vida es como una caja de crayones de chocolate ...

La información de color se almacena en números enteros, no en valores analógicos: hay una cantidad discreta y contable de colores que se pueden describir a una determinada profundidad de bits.

Piense en el espacio de color como una caja de crayones de diferentes colores. Un espacio de color describe los tipos de crayones disponibles. Piense en "colores llamativos", "pasteles" o similares. La profundidad de bits describe el número de crayones.

Aquí hay un ejemplo de dos cajas diferentes de crayones:

crayonboxes

Ambos tienen 16 crayones, pero tienen una gama diferente de colores, específicamente, el conjunto inferior no se extiende tanto hacia el rojo. Dado que hay 16 colores, son 4 bits de profundidad de color (2⁴ = 16).

Un espacio de color "real" es tridimensional, y esto solo tiene una dimensión. (Es decir, el tono). Pero hace un modelo que espero ayude. El "cuadro" superior tiene un espacio de color que tiene un color "primario" muy rojo en los bordes extremos, mientras que el inferior solo se extiende a un naranja rojizo.

El espacio de color de arriba parece, al principio, obviamente superior (¡ni siquiera puedes dibujar algo rojo con el de abajo!), pero considera la situación en la que estás dibujando un paisaje con cielo, agua y árboles. El conjunto inferior de crayones en realidad puede ser mucho mejor, porque usa más de sus "bits" para representar sutiles tonos de verde y azul.

Si, en cambio. compraste las mismas gamas de colores en juegos de 64 crayones, habría tres crayones nuevos entre cada uno existente. El conjunto inferior aún tendría más opciones para el azul y el verde, pero debido a los nuevos crayones, el conjunto superior también tendría muchas más opciones en ese rango que el conjunto de 16 crayones. Dado que el conjunto superior también cubre el rojo, con suficientes crayones sería objetivamente mejor.

Sin embargo, uno puede imaginar una elección en la que a ambas cajas les falte algo. Es un poco más fácil ver cómo podría ser eso si vamos a una visualización un poco más complicada, aquí de sRGB real (como un televisor o monitor de computadora de nivel de consumidor) y tintas CMYK estándar "SWOP":

CMYK SWOP vs RGB: imagen mía, y las líneas son aproximadas

Aquí puede ver que el espacio de color CMYK SWOP¹ se extiende más hacia los cian, magenta/púrpura y amarillos de lo que se puede representar en sRGB. Incluso si agregamos más bits para distinguir entre los pasos distinguibles disponibles, el espacio de color determina el borde . Del mismo modo, agregar más bits a la representación CMYK no ayuda a representar las esquinas más alejadas de rojo, verde y azul cubiertas por sRGB. (Y, por supuesto, todos ellos son una mala representación de la gama de la visión humana, representada por la forma exterior; si alguna vez se ha preguntado por qué es tan difícil hacer que las fotos digitales de la vegetación se vean naturales, esto es parte de la historia !)

En la vida real, espacios de color de 24 bits (8 bits por canal), tiene 16,8 millones de colores para trabajar. En general, eso está bien y se considera que hay más colores de los que el ojo humano puede distinguir, pero si su espacio de color es realmente grande, es posible que tenga el mismo efecto donde el salto entre los colores individuales en el medio es más grande que ideal, y es posible que sería notable en ciertas situaciones.

De hecho, algunos espacios de color "amplios" como ProPhoto RGB tienen colores en el borde del espacio que no se corresponden con nada en la visión humana . Son colores teóricos, "imaginarios" que hacen que el espacio de color funcione, pero que se desperdician efectivamente. Cuando usa un espacio de color como ese con una pequeña cantidad de crayones (baja profundidad de bits), tiene menos opciones para colores realmente útiles, lo que hace que la posibilidad de perder pasos sea un problema mayor. Algo así como sRGB no puede cubrir los cian y los verdes lejanos (al igual que el rojo que falta en el conjunto anterior), pero a cambio, obtiene una distinción más fina entre los azules, los púrpuras y los rojos (y los verdes que están ahí).

Si vamos a 16 bits por canal (48 bits en total), hay 16,8 millones de "crayones" adicionales entre cada sombra en el cuadro. Esto es una completa exageración (tanto en lo que los humanos podrían distinguir como en la realidad práctica de representar esa sutil diferencia en la pantalla o en la impresión), pero esa exageración garantiza que las transiciones suaves siempre estén disponibles. Y dado que en la vida real, los espacios de color están diseñados aproximadamente para cubrir la visión humana (incluso si no se alinean exactamente), realmente no te encuentras con la situación en la que tu espacio de color no tiene rojo en absoluto , solo podría no ser tan profundo o sutil.

La otra cosa que vale la pena considerar es que sRGB está diseñado no solo para ser una combinación decente para la visión humana, sino también para ser representable en la mayoría de los dispositivos de consumo , y es la suposición predeterminada para la pantalla sin administración de color. Eso significa que cuando usa sRGB, tiene más posibilidades de que los "crayones" que está usando se correspondan con los "crayones" que usan los dispositivos de sus espectadores. Es por eso que recomiendo guardar en sRGB para ver y compartir en la web— Las profundidades de bits más altas no son una opción generalizada, y la mayoría de las personas no tienen la capacidad de cambiar por un conjunto de crayones de su elección. (Con suerte, esto mejorará en el futuro, pero en realidad no parece ser una prioridad para los fabricantes de dispositivos de consumo. Tal vez cuando el alboroto 3D y 4K se estabilice, podamos poner más énfasis en el "color profundo": profundidades de bits más altas para pantallas de consumo.

(Algo de esto tomado de mi respuesta anterior a ¿Cómo se superponen los espacios de color como sRGB y Adobe RGB? )


Nota

1. Este ejemplo particular es una simplificación excesiva y pasa por alto la representación real de las imágenes CMYK y algunos otros detalles; sin embargo, es un buen ejemplo porque la mayoría de los espacios de color reales están diseñados para superponerse tanto como sea posible y esto muestra algo que no coincide.

ESTÁ BIEN. Entonces, digamos que el espacio de color superior (fila superior de crayones) tiene el doble de profundidad de bits que el inferior, teóricamente podría cubrir todos los colores/tonos como el inferior. Sin embargo, si ambos tienen la misma profundidad de bits, entonces no. No puede cubrir los mismos colores/tonos. Entonces, aunque no esté cambiando el espacio de color, ¿aumentar la profundidad de bits (de un espacio de color) tiene el potencial de cubrir los mismos colores que un espacio de color diferente?
@BBking Bueno, es tridimensional en lugar de la línea unidimensional que da el ejemplo del crayón, pero en cualquier caso, la cuestión de la cobertura básicamente tiene que ver con los extremos. Mire la segunda fila: agregar más bits no agregará los extremos rojos. Pero yendo hacia el otro lado, sí, debido a la forma en que lo construí, suficientes bits más en la parte superior harán que cubra más colores; no será exactamente el mismo, pero seguirá siendo un degradado más suave. Si vas a más de 2×, la fila superior será un superconjunto de la inferior.
Sin embargo, podría haber construido la fila inferior para que se extienda en una dirección que la fila superior no cubra; podría ser que los extremos no se superpongan, y ninguna cantidad de bits agregados cambiará eso. (Consulte la [pregunta de superposición para obtener más información].
Ya veo. Ahora no sé si debo cambiar la tuya a la respuesta... :/
@BBking Bueno, ¡déjame saber qué más podría ser más claro! :)
Creo que para simplificarlo, digamos que tienes litros de pintura (como los crayones). El espacio de color significa que solo tiene una opción de esos colores. Sin embargo, si quisiera hacer diferentes colores de los colores disponibles, una profundidad de bits alta le permitiría agregar 1 ml a la vez, mientras que una profundidad de bits más baja solo le permitiría agregar, digamos, 5 ml a la vez. Entonces, aunque una profundidad de bits más alta puede permitirle alcanzar más colores, ¿sigue usando solo la mezcla de los mismos colores?
Además, ¿significa que no importa cuánto color agregue dentro de ese espacio de color, nunca podrá salir de él?
Es importante que sean crayones en lugar de mezclar pintura líquida, porque literalmente son pasos contables y discretos. Creo que ahí es donde vas con 1 ml a la vez frente a 5 ml a la vez, pero creo que la posibilidad de mezclar un poco confunde el problema. No se preocupe por la mezcla: el número de bits determina literalmente el número total de posibilidades .
Pero, si volvemos a la idea de mezclar, sí, esa es exactamente la razón por la que los espacios de color están limitados de esta manera en el mundo real. El conjunto de colores que puede hacer está determinado por los límites de lo que está usando para hacerlos. Si sus píxeles rojos solo se vuelven tan rojos, no hay forma de que se vuelvan más rojos que eso. Entonces, solo pensando en ese aspecto, y si puede garantizar que su profundidad de bit significa que tiene un límite inferior en sus medidas de mezcla, su analogía de mezcla de pintura funciona.
Cambié la respuesta debido a las ilustraciones.
Recibí una notificación que decía que se había visto 2500 veces y obtuve algo para eso. Lo que me trajo de vuelta aquí. ¡Por eso tomó tanto tiempo!

La profundidad de bits y el espacio de color no son lo mismo y tampoco se excluyen mutuamente. Son cosas diferentes que existen simultáneamente. Para una explicación particularmente simple:

  • La profundidad de bits determina la finura con la que se clasifica cada color distinto .

  • El espacio de color determina la medida en que se distribuyen esos colores .

Tomemos sRGB y AdobeRGB como espacios de color y colores de 8 y 16 bits como profundidades de bits. sRGB es un espacio de color pequeño, mientras que AdobeRGB es un espacio de color más grande. Los espacios de color, o gamas, definen hasta qué punto se pueden elegir colores de toda la gama de colores visibles para el ojo humano (o, incluso, más allá de esa gama, como sería el caso de ProPhotoRGB o algunos de los nuevos 10 bpc). gamas de televisión). Si mapea el color "Verde puro" en sRGB, ese color será de hecho un verde numéricamente puro... sin embargo, puede que no sea el verde puro perceptualmente más preciso. Mapear el mismo color "Pure Green" es AdobeRGB, y aunque numéricamente es el mismo verde, cuando se mapea en AdobeRGB es más saturado y vibrante. (Además, mapee el mismo color en ProPhotoRGB, y nuevamente estará aún más saturado que en AdobeRGB... suponiendo, por supuesto,

Ahora, viene la profundidad de bits. La diferencia entre Pure Green en 8 bits y 16 bits es 0,255,0 frente a 0,65535,0. Se utiliza un número mucho mayor para describir el canal verde en verde puro en color de 16 bits que en color de 8 bits. Si traemos un verde medio, el valor en 8 bits podría ser 0,128,0 mientras que en 16 bits sería 0,32768,0. Mismo color, pero la cantidad de colores distintos en el grado entre Pure Green y Medium Green es mucho mayor con el color de 16 bits. Tiene un total de 32768 niveles distintos de verde entre esos dos niveles en 16 bits, frente a solo 128 niveles distintos en 8 bits. Digamos que elegimos un verde más claro, digamos 0,192,0 en 8 bits. Ese mismo color sería 0,49152,0 en 16 bits. Este aumento en los posibles colores distintos significa que los degradados se vuelven considerablemente más suaves y más finamente delineados cuando se usa una mayor profundidad de bits.

Finalmente, ¿cómo funcionan juntos las profundidades de bits y los espacios de color? Con una gama estrecha, como sRGB, tiene un espacio de color restringido dentro del cual mapear distintos colores. Con sRGB y color de 8 bits, cada color será verdaderamente distinto a medida que avanza por todos los verdes desde 0,1,0 hasta 0,128,0 y 0,255,0. ¿Qué sucede si tiene una imagen de 16 bits en el espacio sRGB? Numéricamente, su imagen tiene la capacidad de representar más de 280 billones de colores distintos (16+16+16 bits son 48 bits en total, 2^48 son 281,5 billones). Perceptivamente... cuando los valores RGB numéricos se asignan a colores de gama restringida, una cantidad significativa de esos 280 billones de colores terminarán siendo asignados exactamente a la misma "coordenada de color" dentro del espacio de color. Su archivo de imagen aún contiene datos de color de precisión completa, sin embargo, cuando se procesa en la pantalla (o se procesa para imprimir),

Si pasamos a AdobeRGB, la gama crece, es un espacio de color más grande y, por lo tanto, puede abarcar una mayor cantidad de asignaciones de color distintas. Con una profundidad de color de 8 bits, efectivamente se mapeará escasamente en esta gama más amplia. Técnicamente hablando, la gama es capaz de describir más colores de los que la profundidad de bits le permite hacer referencia. Sus factores limitantes ahora han cambiado... en lugar de que la gama sea restrictiva, la profundidad de bits es restrictiva. Si usamos color de 16 bits en el espacio de color AdobeRGB, hay más espacio para que nuestros 280 billones de colores potenciales hagan referencia a colores distintos. Es probable que varios colores aún se asignen a las mismas coordenadas reales en el espacio AdobeRGB; sin embargo, habrá muchas menos colisiones en este espacio más grande que con sRGB.

Entonces, aunque el espacio/gama de color y la profundidad de bits son cosas distintas, están interrelacionadas. No es necesario que utilice una gama mayor cuando utilice una mayor profundidad de bits para almacenar los datos de su imagen; sin embargo, se recomienda aprovechar al máximo esa mayor profundidad de bits. Por el contrario, si está guardando imágenes con una profundidad de bits más baja, a menudo hay menos valor en renderizar esas imágenes con algo más que sRGB.

Para aprovechar al máximo la información de color de alta profundidad de bits en un archivo de imagen, las gamas más amplias y, al mismo tiempo, mejores pantallas que realmente pueden mostrar esas gamas, se vuelven valiosas. Para reproducir colores de 10, 12 y 16 bits en televisores o pantallas de computadora, a menudo se necesitan gamas más grandes que AdobeRGB, e incluso más que ProPhotoRGB, para aprovechar al máximo la percepción visual humana. Nuestros ojos son dispositivos asombrosos y capaces de un rango dinámico increíble y una sensibilidad de color extremadamente amplia. Las pantallas modernas de 10 bits con LUT de hardware de 12, 14 y 16 bits (tablas de búsqueda de color 3D) son capaces de mostrar 1070 millones de colores simultáneos, seleccionados de un total de 68,700 millones (12 bits), 4,4 billones (14 bits) o 281,5 billones (16 bits) de colores que la LUT describe con gran precisión.

"La diferencia entre Pure Green en 8 bits y 16 bits es 0,255,0 frente a 0,65535,0". ¡Perfecto! Eso me hizo entender mucho mejor.
El espacio de color no es solo "extensión" (gama); abarca toda la topología de los colores en el espacio. Considere espacios de color que no sean RGB como YUV, HSL (a menudo representado como un cilindro en lugar de un cubo), CMYK (un espacio de 4 dimensiones), etc.
@Jason: el término "extensión" funciona para objetos espaciales tridimensionales. No significa solo una extensión bidimensional, como un triángulo superpuesto en la parte superior de la gráfica completa de brillo/saturación del espacio Lab. Extensión significa la extensión completa del espacio de color, en las tres dimensiones, independientemente de la forma real que tome esa extensión. También diría que sRGB, AdobeRGB, etc. son espacios de color, mientras que RGB, YUV, HSL, CMYK, etc. son modelos de color, no espacios de color. Los espacios de color SON 3D, pero por lo general tienen formas extrañas de rombo triturado, nunca son cilíndricos o cúbicos.
Dices que 0,255,0 sería verde puro. Entonces, ¿ 255,255,0 sería verde puro y rojo puro, siendo amarillo "puro"?
Desde un punto de vista numérico, sí. Desde el punto de vista de la representación, depende del espacio de color. ;)
ESTÁ BIEN. Como usa el ejemplo de mattdm, digamos que 255,255,0 se mapeó en un espacio de color que no tenía rojo. ¿Qué aspecto tendría?
Usando los colores de ejemplo de Matt, probablemente terminaría en amarillo brillante (255,255,0), ya que esa es la opción viable más cercana. Si quiere decir (255,0,0), entonces terminaría en naranja. Hay varios intentos de reproducción que se pueden usar al asignar valores de color numéricos a coordenadas de espacio de color: Absoluto, Relativo, Saturación, Perceptual. Dependiendo de la intención, el resultado de color exacto (el color "renderizado") será ligeramente diferente (o tal vez muy, realmente depende del espacio de color y el perfil ICC).

Estas son cosas independientes. El espacio de color representa todos los colores posibles y es un espacio continuo. Los dispositivos digitales requieren una discretización del espacio. Esto significa que los pasos en cada uno pueden representar colores que están dentro del espacio de color.

Aquí hay una analogía simple: cosa sobre la altura entre dos pisos como un espacio de color. Ese es el espacio entre los pisos. Ahora, ¿cuántos escalones necesitas para construir una escalera desde el piso inferior hasta el superior? La respuesta depende del tamaño del paso. Esa es la profundidad de bits.

Ahora, cuando se habla de las profundidades de bits utilizadas en los formatos de archivo, la situación es más compleja porque no todos los pasos tienen el tamaño debido a que la profundidad de bits no se distribuye uniformemente en el sentido lineal. A veces, los pasos siguen una curva basada en preceptos, una curva gamma o una curva logarítmica.

Generalmente , si aumenta la profundidad de bits, obtiene más gradación dentro de un espacio de color, pero sus límites siguen siendo los mismos. Sin embargo, existen formatos de archivo HDR que utilizan valores de punto fijo o flotante que incluso pueden ser negativos para representar colores fuera del espacio de color especial.

Creo que todavía estoy en el mismo nivel de comprensión. Tu analogía del edificio me confundió aún más. Si hubiera dicho que el espacio de color es como la cantidad de niveles en un edificio (cada nivel representa un color), mientras que los pasos en el edificio pueden ser la profundidad de bits. Entonces, dentro del mismo espacio de color puedes tener diferentes profundidades de bits. Si un edificio es sRGB con pasos de 8 bits, tendrá menos detalles de color que un edificio sRGB de 16 bits. Sin embargo, aumentar la profundidad de bits aumenta el tamaño del edificio. Por lo tanto, ¿cambiar (pero no mucho) el espacio de color?
@BBking: Eso no es del todo correcto. Los dos no están vinculados de esa manera. El tamaño del edificio no tiene que cambiar si pasa a 16 escalones, porque puede hacer que los escalones estén más juntos que cuando solo tiene 8 escalones. La profundidad de bits es la cercanía de los escalones, mientras que el espacio de color es el tamaño del edificio. He agregado una respuesta que puede ayudar.
Tenga en cuenta que un espacio de color no representa intrínsecamente todos los colores posibles, la mayoría no lo hace. ¿O quería decir algo como "el espacio de color de X describe el conjunto de colores posibles en X"?
@BBking Aumentar la profundidad de bits en el mismo espacio de color no aumenta el tamaño del edificio. Disminuye la distancia entre cada peldaño de la escalera. Todavía hay 21,25 pies de un piso al siguiente, pero ahora la escalera tiene 65 536 escalones, cada uno de los cuales es solo 1/256 de pulgada más alto que el anterior, mientras que con 8 bits tenía 256 escalones de una pulgada de alto cada uno. . Entonces, la segunda escalera se parece más a una rampa suave que la primera. Aumentar la profundidad de bits hace que los tonos continuos sean más suaves.

Probemos un ejemplo simple. Digamos que tenemos un espacio de color llamado "arco iris". Contiene los colores de un arcoíris, por lo que se compone de rojo, naranja, amarillo, verde, azul y violeta. El espacio de color describe una gama de colores que están cubiertos por la gama.

La profundidad de bits, por otro lado, define cuántos colores distintos podemos hacer dentro de ese espacio. Si solo tuviéramos un par de bits, solo podríamos representar los colores básicos del arcoíris, pero si tuviéramos un montón de bits, podríamos hacer rojos oscuros, rojos brillantes y rojos medios, etc. Con más bits, podemos definir más valores únicos y así tener más colores, pero siguen siendo todos los tonos de rojo, naranja, amarillo, verde, azul y violeta.

Esta es la razón por la que en realidad es posible tener una profundidad de bits más alta que represente un rango de color más pequeño, solo que terminas con mucha más precisión dentro de los colores que están cubiertos.

Más técnicamente, la tasa de bits define la granularidad de los colores dentro del espacio de color y el espacio de color define los valores mínimo y máximo del color (y posiblemente también algunas otras cosas, dependiendo del espacio), pero podría tener cualquier cantidad de pasos intermedios entre esos valores.

Los bits adicionales para expandir el espacio de color que cubre, brindan un control más preciso de los colores dentro del espacio de color o hacen una combinación de los dos.

Una manera fácil de pensar en estas cosas es que los espacios de color son contenedores. Contienen los valores de color del espacio de color para el que fueron creados. Si son espacios de color RGB los valores son RGB- 0-255 en cada canal. Si CMYK 0-100 valores.

Esos valores no cambian si lo hace el volumen del espacio de color. Lo que cambia el volumen de un espacio de color son los valores CIEXYZ que definen ese espacio. Un espacio de color de mayor volumen generalmente puede contener colores más saturados. Un ejemplo de eso es sRGB, un pequeño espacio de color por volumen, y ProPhoto, un gran espacio de color por volumen. Abrir una imagen sRGB en Photoshop produce un resultado esperado, pero luego asignar el perfil ICC de ProPhoto cambia drásticamente el color de la imagen y la satura más, pero los valores RGB no han cambiado. Solo su relación con CIELab. Esos valores CIEXYZ que definen el volumen del espacio de color se convierten a CIELab y luego al espacio de destino.

La profundidad de bits es la cantidad de información de color disponible en un píxel. Eso esta muy bien explicado aquiUna mayor profundidad de bits aplicada a la fotografía y las imágenes digitales permite obtener más información de la imagen en cada píxel. Esta mayor profundidad de bits proporciona una mayor capacidad de ajuste al abrir sombras o recuperar detalles destacados. Recuerde que la profundidad de bits del píxel renderizado no es la profundidad de bits capturada. Recuerde que una vez que se reducen los bits o el espacio de color, no se puede expandir. Llevar una imagen de 8 bits a 16 bits no crea más bits por píxel, simplemente duplica los bits en el píxel de 8 bits. Lo mismo con los espacios de color. Si la imagen se transformó en sRGB y ahora desea que todos esos colores brillantes de la imagen original se impriman en su impresora de gama amplia, lamento que esos colores ya no existan en esa imagen sRGB. Comience de nuevo y renderice esos píxeles en el espacio de color más grande.