¿Cómo se representa el espacio de color YCbCr en una imagen JPEG?

Sé que una imagen de 24 bits dedica 8 bits cada uno para R, G y B. ¿Es solo para el espacio de color RGB? En el espacio de color YCbCr para una imagen JPEG de 24 bits, ¿cómo se distribuyen los bits?

Respuestas (4)

Hay algunos formatos para YCbCr. en términos generales, el ojo es más sensible a los cambios de luminancia (Y, brillo) que a los cambios de croma (Cb, Cr, color). Por lo tanto, es posible borrar parte de la información cromática manteniendo la calidad de la imagen.

Por lo tanto, el formato más "caro" es 4:4:4, donde para cada componente de luminancia (Y) hay 1 componente de diferencia roja (Cr) y uno de diferencia azul (Cb).

Entonces, aplicando el principio que mencioné, hay 4:2:2 donde por cada 2 componentes Y hay 1 Cb y 1 Cr. Y va más allá hasta 4:1:1 y 4:2:0, etc. Más información aquí .

Estos patrones parecen referirse al muestreo de frecuencia para video, no a la codificación JPEG.
@whuber: se usan con frecuencia para hablar sobre la codificación de video, pero JPEG también admite luminancia con el doble de resolución que la crominancia. Sin embargo, en el caso de JPEG, es opcional: el croma puede ser de resolución completa o media resolución.
El GIMP utilizará el submuestreo de croma de forma predeterminada al guardar un archivo JPEG, aunque es fácil de anular. No recuerdo si esto también se aplica a Photoshop.
@thomasrutter, Photoshop elige el submuestreo en función de la configuración de calidad que elija. No es una opción independiente.
Los números, por cierto, se refieren al número de muestras por 4 píxeles horizontales para Y, Pr y Pb. Entonces 4:4:4 significa que los tres canales muestrean cada píxel; 4:2:2 significa que los canales Pr y Pb solo muestrean cada segundo píxel horizontalmente; 4: 1: 1 (no creo que esto se use nunca en fotografía, solo en video) significa que Pr y Pb solo muestrean cada cuarto píxel horizontalmente. 4:2:0 es una desviación especial de esta regla. NO significa que no haya canal de Pb. Lo que significa es que los canales de Pr y Pb se dividen por la mitad tanto en dirección horizontal como vertical, no solo horizontal.
Me he estado refiriendo a Y Pb Pr cuando en forma digital generalmente se llama Y Cb Cr.

Un JPEG puede comenzar con 8 bits por canal R, G y B, pero cuando se almacena en el JPEG se almacena de manera muy diferente, donde no hay una "profundidad de bits" real, sino que los valores se almacenan como coeficientes de frecuencia de una precisión dada.

En JPEG, lo que es más relevante es la tasa de cuantificación , que afecta la cantidad de información que se desecha durante la etapa de cuantificación de la compresión y, por lo tanto, la precisión de cada coeficiente. Esta tasa de cuantización se establece mediante la configuración de "calidad" cuando guarda un archivo JPEG en Photoshop. Sin embargo, no está relacionado con la profundidad de bits como en una imagen rasterizada, e incluso se podría decir que una imagen JPEG no tiene una profundidad de bits mientras está en formato JPEG, aunque los codificadores/decodificadores JPEG comienzan con/terminan con un formato de 24 bits. imagen de la trama.

El otro factor importante relevante para guardar un archivo JPEG es el tipo de submuestreo de croma . En un archivo JPEG, tiene la opción de reducir a la mitad la resolución horizontal, o tanto la resolución horizontal como la vertical, de los canales de color (Pr y Pb) en relación con el canal de luminancia (luminosidad). Al descomprimir, los canales de color se interpolan y en la mayoría de los temas fotográficos no hay una gran diferencia.

Aquí hay un resumen aproximado de cómo una imagen se convierte en JPEG.

  1. Los valores RGB se convierten en valores Y, Pb, Pr. El espacio de color YPbPr es más adecuado para una compresión eficiente porque mantiene la información de luminancia, que contiene la mayor cantidad de detalles, en un solo canal. Esta conversión es una operación aritmética sencilla y perfectamente reversible, salvo que exista algún error de redondeo.

  2. Si usa cualquier submuestreo de croma (en otras palabras, usa cualquier otro modo que no sea 4: 4: 4), entonces la resolución vertical y / u horizontal de los canales Pb y Pr solo se reducen a la mitad. Por lo tanto, estos canales tendrán dimensiones de píxeles diferentes a las del canal de luminancia. Esto conduce a una pérdida permanente de resolución en los canales de color.

  3. Para cada canal, la imagen se divide en bloques de 8 píxeles por 8 píxeles, lo que da 64 valores lineales para cada bloque en cada canal. Si un canal no es un múltiplo de 8 píxeles en ninguna de las dimensiones, los píxeles del borde se repiten (y se eliminarán al descomprimir; por lo tanto, la compresión JPEG siempre es más eficiente con dimensiones que son múltiplos de 8 píxeles, o 16 si tiene en cuenta en submuestreo de croma).

  4. Los 64 valores de cada bloque experimentan una transformación del dominio del espacio al dominio de la frecuencia, en este caso denominada transformación discreta del coseno. Terminas con 64 coeficientes, cada uno de los cuales representa la amplitud de un mapa de frecuencia particular sobre el área ocupada por ese bloque. El primer valor es la frecuencia más baja, que es efectivamente el valor promedio de todos los píxeles, hasta los últimos valores que describen el componente de frecuencia más alta del bloque. Todos los valores anteriores se desvían mucho más y son más importantes para el aspecto de la imagen final que los valores posteriores en un bloque. Esta operación es perfectamente reversible siempre que utilices la suficiente precisión.

  5. Luego está el paso de cuantificación, donde cada uno de los 64 coeficientes que obtuvo en el paso anterior se divide por algún número (llamado factor de cuantificación), y el resto se descarta. Aquí es donde la precisión de las muestras se ve más afectada, pero es donde obtiene el enorme ahorro de espacio de JPEG en comparación con la compresión sin pérdidas. Dado que todo está en el dominio de la frecuencia desde la transformación anterior, esta pérdida de precisión hace su mejor trabajo para preservar la calidad de la imagen perceptible que simplemente reducir la profundidad de bits/la precisión de los píxeles antes de esta transformación. El reverso de este procedimiento es simplemente multiplicar por el mismo número por el que dividiste los coeficientes, pero, por supuesto, dado que tiraste los restos, terminas con menos precisión de los coeficientes. Esto resulta en una pérdida permanente de calidad,

  6. Después de esta cuantización, es típico que muchos de los coeficientes posteriores menos significativos sean cero, por lo que se descartan. Luego, una rutina de codificación de longitud variable (sin pérdidas) codifica todos los coeficientes restantes de manera eficiente, aunque cada uno puede usar un número diferente de bits.

Es imposible decir que un cierto factor de cuantificación es equivalente a una cierta profundidad de bits, ya que la cuantificación no genera bandas como cuando se reduce la profundidad de bits, sino que brinda una pérdida de percepción general en detalle, comenzando en las partes donde lo notarías. menos porque es de una amplitud tan baja para su frecuencia.

Creo que mi cerebro acaba de explotar.
El submuestreo de croma no solo da como resultado una "pérdida de resolución". Introduce artefactos muy notorios especialmente en el canal rojo.
@Mark Ransom, esos artefactos no son más que el resultado de reducir a la mitad la resolución en los canales de color y de la interpolación necesaria para tener en cuenta eso después de la descompresión. Nunca debería producir ningún "artefacto perceptible" que no sea el causado por la borrosidad de la resolución, aunque pueden existir algunos decodificadores que arruinan esta interpolación o hacen una interpolación muy simple del vecino más cercano, lo que resulta en un bloqueo que es bastante notable para el rojo. detalles en negro (o magenta en azul, etc). Este era un problema común en algunos de los primeros reproductores de DVD, por ejemplo.
No creo haber visto nunca una explicación mejor y más fácil de entender de la compresión de imágenes jpeg, o realmente con pérdida. definitivo +1
Lo siento, no quise dar a entender que el submuestreo causa los artefactos. Es solo que los errores existentes de cuantización se multiplican por 2, haciéndolos mucho más visibles. Creo que es importante saber que el efecto visible del submuestreo es más que un poco de borrosidad adicional.
Sí tienes razón. Debe elegir un factor de cuantización/ajuste de calidad apropiado y si está realizando algún submuestreo de croma que pueda afectar su elección.

Representar el croma (Cb Cr) en canales separados del luma (Y) tiene otro efecto positivo en la compresión. La mayor parte de la información visible está en el canal luma. Los ojos humanos toleran tanto una resolución espacial más baja como una cuantificación más agresiva en los canales de croma. Por lo tanto, una imagen comprimida agresivamente puede terminar consumiendo alrededor del 10 % del espacio del archivo para croma y el resto para luma, y ​​aun así verse decente.

Al final del día, sigue siendo una compresión con pérdida.

Aproximadamente 8 bits para cada canal, pero hay varias formas ligeramente diferentes de hacerlo. Los detalles se dan en el artículo de Wikipedia sobre YCbCr .

Esto se indicó en la pregunta. Proporcione una respuesta más detallada.
@Nick ¿Dónde se dijo "esto" en la pregunta, exactamente? La pregunta, tal como está ahora, dice "En el espacio de color YCbCr para una imagen JPEG de 24 bits, ¿cómo se distribuyen los bits?" He dicho cómo se distribuyen, asumiendo, como lo haría cualquiera que entienda la pregunta, que los canales son Y, Cb y Cr. Mi respuesta es un resumen correcto del artículo de Wikipedia. La política de SE es proporcionar resúmenes en lugar de copiar material al por mayor (aunque es fácil, lo admito, proporcionar algunos ejemplos límite de citas largas en otras partes de este sitio).
Creo que este tipo de respuesta, aunque no es tan buena como una explicación completa, es mucho mejor que una que simplemente corta y pega de Wikipedia, o incluso que parafrasea un artículo completo de Wikipedia. Si la Wikipedia es buena, es útil contarle a la gente sobre ella. Y si eso es todo lo que su respuesta está contribuyendo, ser sincero y solo dar un resumen rápido y un enlace es exactamente lo que debe hacer.