videoedicion.org (v8.3)

Imagen, Audio y Vídeo Digital => Edición de vídeo (general) => Artículos y tutoriales sobre conceptos generales de edición de vídeo => Mensaje iniciado por: Ramón Cutanda en 14 de Agosto de 2007, 10:23:36

Título: Introducción a los espacios de color y su relación con la compresión de vídeo
Publicado por: Ramón Cutanda en 14 de Agosto de 2007, 10:23:36
1. Introducción

Antes de nada me gustaría "ahorrarle el sufrimiento" a todos aquellos a los que este documento no va destinado. Conocer los espacios de color y el submuestreo usado en la compresión de vídeo no es algo que necesites conocer para trabajar con vídeo digital, aunque, si eres curioso como yo, sí que te ayudará a conocer qué ocurre con las imágenes en su "paseo" de la cámara al ordenador y luego al televisor.

Como tantas otras veces me he encontrado abundante documentación en inglés, pero poco o nada en castellano; al menos sobre lo que necesitaba saber, o redactado en la forma en la que me hubiera gustado encontrarlo. El mundo del color y la compresión están plagados de física y matemáticas y, para los lingüístas como yo, nos resulta especialmente complicado comprender. Es por eso que, una vez que entraron en mi cabezota todos esos conceptos, creí que merecía la pena tratar de escribir un documento como éste en donde poder explicar desde una perspectiva sencilla y simple para el ciudadano de a pie qué son los espacios de color, cuáles hay, con cuáles trabajamos en el vídeo digital y relacionar todo esto con la compresión de vídeo que es lo que a, fin de cuentas, me interesaba. Al menos ese es mi propósito, otra cosa es que realmente consiga hacerlo con esa simplicidad.

2. Los espacios de color

Entramos en el apasionante mundo de la física... Es evidente que vivimos en un mundo rodeado de color. Mejor dicho... que vivimos en un mundo que percibimos con color. Por muchos motivos el ser humano quiere captar, manipular y reproducir los colores que ve en el mundo que le rodea. Para lograr este propósito era necesario crear un  "idioma" de color para poder referirnos a todos y cada uno de los colores que percibimos de forma inequívoca. Cada idioma tiene una serie de palabras para designar colores, pero estas no son, ni de lejos, precisas, puesto que abarcan una gran variedad cromática. Todos estamos de acuerdo en que el cielo es azul. Pero ese azul no es igual a las nueve de la mañana que a las dos de la tarde. Ni es el mismo azul en Murcia que en Montevideo.

Aquí es donde entran en juego las matemáticas, creando un sistema para poder asignarle a cada color un código, un valor único con el que quede identificado de forma inequívoca. A partir de ahí ya podremos trabajar y manipular los colores con precisión. A este código de colores, a este idioma, se le conoce como espacio de color.

A nada que tu memoria sea mejor que la mía recordarás que este apartado se llama espacios de color, en plural. Has acertado... hay más de uno. Cada uno de ellos, como puedes imaginar, tiene sus ventajas e inconvenientes y, como no podía ser de otro modo, en este documento nos vamos a centrar en aquellos relacionados con el vídeo digital.

2.1 CIE 1931

El CIE 1931 fue uno de los primeros espacios de color definidos. Fue creado por la CIE (International Commission on Illumination - Comisión Internacional en Iluminación) en 1931 y está basado en los colores que el ojo humano es capaz de percibir. Es, por tanto, el espacio de color más exacto y se usa siempre como referencia en otros espacios, como veremos más adelante. El motivo por el que se usa como referencia, pero no se aplica en usos reales, es porque, tal y como se aprecia en la Figura 1, la curva que describe la gama de colores perceptibles es matemáticamente compleja y complicaría (encarecería más bien) todos los dispositivos capaces de trabajar con color.
(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2F%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2FCIE1931.svg.png&hash=ae4a3ad88a14239c3cfea69b4cb88c3fcb9870e3)

Figura 1 - Espacio de color CIE1931. Representa longitudes de onda medidas en nanometros

Fuente: Wikipedia (http://en.wikipedia.org/wiki/Image:CIExy1931.svg)

2.2 RGB

Como acabamos de ver, el espacio de color CIE1931, aunque exacto, es complicado para trabajar con él; así que hacía falta una interpretación del color más sencilla. Seguramente te suenen las siglas RGB. Son las siglas (en inglés como no) de los tres colores primarios: Rojo (Red), Verde (Green) y Azul (Blue) Mediante la mezcla de estos tres colores primarios es posible representar gran parte de la gama de colores perceptibles por el ojo humano con la ventaja de sencillez que representa trabajar únicamente con tres valores.

El concepto es simple. Se mezclan estos tres colores y, según la proporción de cada uno de ellos, se obtienen colores diferentes. Es decir, manipulando únicamente tres valores (rojo, verde y azul) podemos obtener la mayoría de colores del espacio de color CIE1931.

La idea, como hemos visto, es sencilla. Se trata, a fin de cuentas, de mezclar tres colores. Pero el modelo de color RGB no define por sí sólo qué es rojo, qué es verde y qué es azul. Es decir, no nos dice el tono exacto de rojo, el tono exacto de verde ni el tono exacto de azul. Es lo que se conoce como espacio de color no absoluto. Para lograr la precisión de la que hablábamos en el apartado anterior (para lograr un código inequívoco para cada color) es necesario definir con precisión en el espectro de colores qué es rojo, qué es verde y qué es azul. Cuando lo hacemos, creamos un espacio de color absoluto o, simplemente, Espacio de color.

Dependiendo de los valores RGB referenciales que usemos podremos crear diferentes espacios de color y cada uno de ello cubrirá una gama de colores diferente. Como puedes imaginar, cuanto mayor sea el número de colores que maneje un espacio de color éste será más fiel a la realidad y tendrá un uso más profesional y, habitualmente, los aparatos que trabajan con ellos son más caros. En la Figura 2 puedes ver tres espacios de color RGB (los tres triángulos) y uno CMYK, de forma irregular, correspondiente a una impresora (las impresoras usan espacio de color CMYK en lugar de RGB)

(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2F%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2FEspacios.de.color.png&hash=995ec28efde22cb7ccfed41898ef0d00354dea62)

Figura 2 - Diferentes espacios de color dentro del espectro visible CIE1931

Fuente: Wikipedia (http://en.wikipedia.org/wiki/Image:Colorspace.png)

Es posible que te hayas dado cuenta que ningún espacio de color cubre la gama cromática del CIE1931 en su totalidad pero, sin embargo, el ProPhoto RGB destaca por ser el que incluye una mayor gama cromática. Incluso abarca algunos tonos no incluidos en el espacio CIE1931. Dicho de otro modo, el formato ProPhoto RGB es capaz de trabajar con algunos colores imperceptibles para el ojo humano, puesto que están fuera del espacio CIE1931 que, recordemos, es lo que el ojo humano puede percibir. Si en la imagen hay colores que el ojo humano no percibe es evidente que los colores de la Figura 2 son "orientativos", pero en ningún caso precisos (por muchos motivos que no comentaré en esta "simple" introducción) Aún así creo que la Figura 2 es visualmente bastante aclaratoria sobre las limitaciones de los espacios de color RGB.

2.3 sRGB

En un principio no tenía pensado hablar de este espacio de color porque está principalmente diseñado para la fotografía y se usa en monitores y cámaras de fotos.  Pero ya que estamos, y puesto que todos contamos ya con cámaras digitales, creo que merece la pena hablar de este espacio de color, aunque sea tan sólo para dar un par de pinceladas. Es muy probable que este apartado deje a más de uno con ganas de saber más, pero tratar la fotografía aquí se sale de las pretensiones de este documento. Si te interesa sacarle el máximo partido a tus imágenes te recomiendo encarecidamente el libro Fotografía difital de alta calidad (http://www.google.es/books?id=DXpKAAAACAAJ&dq=fotograf%C3%ADa+digital+en+alta+calidad+mellado), de José María Mellado, donde aprenderás, no sólo a trabajar con espacios y perfiles de color (los perfiles me los salto aquí) sino otras muchas cosas interesantes.

Como hemos apreciado en la figura anterior, el espacio sRGB es el más limitado y, aún así, es con diferencia el espacio de color más usado. Todos los monitores y cámaras de fotos trabajan, por defecto, en sRGB. Aun en el caso de que puedan manejar un espacio de color mayor (como el Adobe RGB) de fábrica todos los monitores y cámaras vienen configurados como sRGB. Es posible que ahora te estés rascando la cabeza pensando "pues en mi monitor mis fotos se ven bien...." Efectivamente... Se ven "bien", y bien puede ser suficiente en entornos domésticos, pero no en entornos profesionales o cuando, simplemente, buscas la máxima calidad posible en tus imágenes.

Lamentablemente, salvo que hayas desembolsado una buena cantidad de euros, sólo podrás trabajar con tu cámara en sRGB pero, si admite un espacio de color más amplio que el sRGB, no dudes en emplearlo puesto que, como acabas de comprobar, almacenarás muchos más colores que con el espacio de color sRGB usado por defecto. Eso sí, no olvides que salvo que le indiques a Photoshop (o el programa de trabajo que uses) que estás manejando imágenes con perfil Adobe RGB o ProPhoto RGB, éste las manejará siempre, por tanto, como si fueran sRGB falseándote los colores. Ten en cuenta que un mismo valor en el espacio sRGB se corresponde con colores diferentes en otros espacios. La solución a este problema es "incrustar" siempre en tus imágenes el espacio de color empleado de modo que la aplicación sepa siempre qué espacio de color debe usar.

Insisto en que dejo el dato "ahí" y, quien esté interesado, que se documente en profundidad sobre los espacios y perfiles de color en relación a la fotografía.

2.4 YUV

Curiosamente le debemos este espacio de color a los televisores en blanco y negro. Para representar una imagen, los televisores en blanco y negro únicamente necesitaban la luminancia de las imágenes. De forma no rigurosa, se puede considerar que el equivalente psicológico de la luminancia es el "brillo" Cuando se empezó a trabajar en la televisión en color aparecieron dos problemas. Por un lado, un sistema de color requería el triple de ancho de banda que el sistema en blanco y negro ya que, mientras que antes únicamente se transmitía un valor, la luminancia, ahora habría que trasmitir tres: los valores R, G y B (rojo, verde y azul)

Pero, además, también estaba el problema de la compatibilidad. Los televisores en blanco y negro no podrían reproducir una señal RGB de modo que había dos opciones: o se añadía a la señal RGB el canal de luminancia (multiplicando por cuatro el tamaño de las imágenes y, por tanto, el ancho de banda requerido para transmitirlas y almacenarlas) o se tiraban a la basura todos los televisores en blanco y negro. Como la segunda opción no era aceptable se buscó una solución intermedia. Estaba claro que para mantener la compatibilidad haría falta emitir la señal de luminancia, que es la única que los televisores en blanco y negro eran capaces de entender. Ahora bien, ¿cómo incrustarle a la luminancia el color consumiendo el menor ancho de banda posible? Aquí entran de nuevo en juego las matemáticas para la creación del espacio de color YUV.

El espacio de color YUV tiene tres componentes. El valor Y es la luminancia y los valores U y V contienen la crominancia, es decir, los colores. La primera ventaja de este formato es que un televisor en blanco y negro usaría el valor Y de la luminancia, que interpretaría sin problemas, y descartaría los valores de crominancia (aunque los tevisores en color sí que usarían toda la información de la señal)

El origen de una señal YUV es un espacio de color RGB. La suma de los valores RGB, es decir, la suma de los colores rojo, verde y azul, da como resultado el valor Y, que representa el brillo, o la luminancia. El valor U se obtiene restándole al valor de los azules el valor Y (la suma de los tres) Matemáticamente sería B-Y. De forma análoga, el valor V se obtiene restándole al valor de los Rojos el valor Y  (R-Y) Quizás en la imagen de la Figura 3 se vea de forma más aclaratoria. La imagen superior sería la la fuente original, en el espacio RGB. La siguiente (la que se ve en blanco y negro) sería el valor Y y las dos restantes los valores U y V respectivamente.

(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2F%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2FDescomposicion.YUV.jpg&hash=38a9d06456a28725817a1de4b54863da13b27141)

Figura 3 - Descomposición del espacio de color YUV

Fuente: Wikipedia (http://en.wikipedia.org/wiki/Image:YUV_components.jpg)

Para realizar conversiones entre los espacios de color YUV y RGB se usan las fórmulas de la Figura 4. Si alguien las entiende ¡enhorabuena! A mí se me hace un nudo en la cabeza al ver estos números....

Y=0,299R + 0,587G + 0,114B

U=0,436(B-Y) / (1-0,114)

V=0,615(R-Y) / (1-0,299)R=Y + 1,13983V

G=Y - 0,39465U - 0,58060V

B=Y + 2,03211U


(https://i.imgur.com/bILdwGs.png)
Figura 4 - Formulas de conversión entre espacios RGB y YUV para vídeo PAL analógico (sin corrección gamma) Para vídeo digital se usa el espacio de color Y'CbCr con otras fórmulas como veremos a continuación. Fuente: Wikipedia (http://en.wikipedia.org/wiki/Yuv)

Con lo que hemos visto, hasta ahora parece que el espacio de color YUV resulta muy adecuado para transmitir imágenes en color manteniendo la compatibilidad con los televisores en blanco y negro. Pero el espacio de color YUV tiene aún otra ventaja más sobre el espacio de color RGB en lo que a transmisión de vídeo en color se refiere. El ojo humano es más sensible a la luminancia (esto es, al brillo de las imágenes) que a la crominancia (al color) Esto quiere decir que si le "robamos" algo de color a la imagen lograremos reducir el ancho de banda necesario para transmitirla sin que el ojo humano note la diferencia. Es decir, es posible eliminar un porcentaje de color (dentro de unos valores moderados) a las imágenes pero, si mantenemos la luminancia, es dificil o imposible apreciar la diferencia. Esta reducción en la cantidad de información de las imágenes (ancho de banda) facilita su transmisión y almacenaje.

En el caso del formato NTSC abusaron inicialmente de esta reducción conservando únicamente un 11% del azul y un 30% del rojo. Durante los primeros años de vida del formato NTSC, debido a la baja calidad de los monitores de televisión, esta reducción de calidad no fue demasiado evidente. Sin embargo, conforme mejoró su calidad comenzaron a apreciarse los problemas derivados de una reducción de color tan acusada. Tanto, que las siglas del formato NTSC dieron lugar al juego de palabras "Never The Same Color" (Nunca El Mismo Color)

2.5 Corrección Gamma

Espero que hasta este punto lo tengas todo más o menos claro,  porque a partir de aquí todo puede empezar a ser algo más confuso. Y no porque realmente sea más complicado que todo lo anterior, sino por la confusión debida al baile de siglas. Hay muchas letras parecidas, pero no iguales y, lo que es peor, las hay repetidas pero, por un uso coloquial inadecuado de las mismas, no significan lo mismo. Si no tienes claro todo lo que hemos leído hasta ahora mi consejo es que, tranquilamente, vuelvas a leerlo todo desde el principio para asegurarte que lo has asimilado.

Nuestos "amigos" los valores RGB (rojo, verde y azul) son lineales, progresivos. Sin embargo, el tubo de electrones de los monitores CRT ofrece una curva de voltaje no lineal, es decir, curva, valga la redundancia. La corrección gamma compensa esa no-linealidad de los tubos CRT para poder obtener un aspecto visual uniforme. Esta corrección es importante porque los espacios de color que veremos a continuación, aunque son muy similares al espacio YUV, tienen en cuenta esta corrección.

En la Figura 5 podemos ver una línea roja continua en la parte inferior que representa la curva gamma de un monitor CRT para PC. Esa es la curva que, por decirlo de algún modo, hemos de "enderezar", corregir. La corrección que le aplicamos sería la línea roja discontinua de la parte superior. Por último vemos que, con esa corrección, la señal de salida (línea gris delgada central) es, efectivamente, lineal.

(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2F%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2FCorreccion.Gamma.png&hash=caf85420959e7a2473655a17a766b6d187353d4c)

Figura 5 - Corrección Gamma 2.2 en un monitor CRT para PC

Fuente: Wikipedia (http://en.wikipedia.org/wiki/Image:Gamma06_600.png)

2.6 Y'CbCr e Y'PbPr

Antes de entrar en materia, hagamos una sucinta presentación de estos dos espacios de color.

Y'CbCr es el espacio de color usado en vídeo digital e Y'PbPr es su versión analógica. Seguramente hayas visto las siglas Y'PbPr en tres conectores RCA en la parte de atrás de tu reproductor de DVD y, si estás leyendo este documento, es más que probable que nunca supieras qué eran o para qué sirven. Son la salida analógica de espacio de color Y'CbCr. Internamente, el DVD (o tu tarjeta gráfica) ,trabajan en el espacio de colorY'CbCr, pero para convertir las imágenes digitales en una señal analógica se usa el espacio de color Y'PbPr, que viene a ser el mismo que el Y'CbCr pero en analógico. Los cables Y'PbPr, mostrados en la Figura 6, permiten conectar una tarjeta gráfica o un reproductor de DVD a un monitor o televisión (siempre y cuando éstos cuenten con las correspondietnes entradas y salidas, claro) sin necesidad de conversiones y reconversiones entre espacios de color, preservando, por tanto, la máxima calidad. El cable verde transporta el valor de Y', el azul el Pb y el rojo el Pr.





(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2F%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2FComponent_video_RCA_YPbPr.jpg&hash=46c7cc09bfd535ab47ee50f07f2dc47267d9b3ee)



Figura 6 - Cable Y'PbPr con conectores RCA usado para enviar la señal vídeo Y'CbCr en formato analógico

Hagamos ahora una pequeña pausa. Toma aire... céntrate... y lee con atención o será fácil que te pierdas. Aquí comienza el baile de siglas del que te hablaba antes. Si lees rápido te perderás, avisado estás. Es necesario que leas con tranquilidad, asimiles los conceptos y asocies con todo lo que ya has leído.

Como ya hemos visto, el espacio de color YUV tiene su punto de partida en imágenes RGB. Pero, como también hemos visto, un monitor CRT no puede trabajar con los colores RGB de forma lineal y es necesario aplicarles una corrección gamma a estos valores RGB. A los valores RGB corregidos se les conoce como R'G'B', es decir, R prima, G prima y B prima. Ese "insignificante" apóstrofo es importante porque hace la distinción entre una imagen con los valores gamma corregidos o no. Es posible que te hayas fijado que los espacios de color tratados en este apartado se llaman Y'CbCr e Y'PbPr. Es decir, los dos comienzan con Y prima. ¿Verdad que en el espacio de color YUV la Y representaba la suma de los valores RGB? Pues en los espacios de color Y'CbCr e Y'PbPr la Y' representa la suma de los valores R'G'B'. Es decir, Y' es igual a los valores RGB con la corrección gamma.

En el espacio de color YUV a la Y la llamamos luminancia. En los espacios Y'CbCr e Y'PbPr la Y' recibe el nombre de luma. Y es la suma de los valores RGB e Y' es la suma de los valores RGB con corrección gamma, esto es, de los valores R'G'B'

Hasta aquí los espacios de color Y'CbCr, Y'PPbPr e YUV parecen similares porque la Y y la Y' recogen el valor de la luminancia y luma, (el brillo) y la crominancia (el color) se recoge en los otros dos valores. La diferencia está que en el espacio YUV la U recogía el valor de B-Y (azul menos Y, que era la suma de RGB) y la V recogía el valor de R-Y (rojo menos Y) En los espacios de color Y'CbCr e Y'PbPr, Cb y Pb recogen el valor de los azules y Cr y Pr recogen el valor de los rojos. En inglés resulta fácil de recordar. La b minúscula de Cb y Pb proviene de Blue (azul) y la r minúscula de Cr y Pr proviene de Red (rojo) y, si eso no te sirve, vuelve a echarle un vistazo a los colores de los cables de la Figura 6. ¡Vaya! ¡Qué coincidencia! ;)

Recapitulemos

En analógico...

Y=Suma de los valores de R, G y B (R+G+B)

U=Al valor azul se le resta Y. Es decir, B - (R+G+B)

V=Al valor rojo se le resta Y. Es decir, R - (R+G+B)


Y'=La suma de los valores R, G y B con corrección gamma (R'+G'+B')

Pb=El valor de azul

Pr=El valor de rojo


En digital...

Y'=La suma de los valores R, G y B con corrección gamma (R'+G'+B')

Cb=El valor de azul

Cr=El valor de rojo

Seguimos...

Los valores de R', G' y B' oscilan entre 0, que representaría la mímina intensidad (el color negro) y 1 que representaría la máxima intensidad (el blanco)  El valor luma resultante  (Y') tendría entonces un valor que oscilaría entre 0 y 1 y los valores de croma (Cb y Cr) oscilarían entre -0.5 to +0.5.  Al convertir esta señales a formato digital de 8 bits (el más habitual) estos valores se escalan, redondean y se les añade un margen que, en el caso de Y' quedaría con un valor mínimo de 16 para el negro y un valor de 235 para el blanco. Los valores Cb y Cr, por su parte, quedarían con un valor mínimo de 16 y un máximo de 240.

Algunos compresores ofrecen la posibilidad de usar 0 como valor de negro y 255 como valor del blanco. En teoría y, puesto que trabajaríamos con un rango de colores mayor, se podrían obtener mejores colores en la compresión final. Sin embargo, esta compresión se sale del estándar ITU-R BT.601 (http://en.wikipedia.org/wiki/ITU-R_BT.601) y es posible que los colores finales estén falseados en algunos monitores.  En las Figura 7 y 8 vemos esta opción en TMPGEnc (http://www.tmpgenc.net/) y Cinema Craft Encoder (http://www.cinemacraft.com/).

(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2Fajustes.en.tmpgenc.png&hash=77dc47c46d27ec4cdc2c27979037f595a0757e55)
Figura 7 - Opciones de compresión de color en TMPGEnc


(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2Fajustes.en.cce.png&hash=7645cbbe4406acfc776267130df5136480d79699)
Figura 8 - Ajustes de compresión en Cinema Craft Encoder

La conversión entre espacios de color quedaría como se indica en la Figura 9.

Y'=0,257R' + 0,504G' + 0,098B' + 16

Cb=-0,148R' - 0,391G' + 0,439B' + 128

Cr=0,439R' - 0,368G' - 0,071B' + 128R'=1,164(Y-16) + 1,596(Cr-128)

G'=1,164(Y-16) - 0,813(cr-128) - 0,391(cb-128)

B'=1,164(Y-16) + 2,018(Cb-128)

Figura 9 - Fórmulas de conversión entre espacios de color Y'CbCr y R'G'B'

2.7 YUV es, en realidad, Y'CbCr

Llegados a este punto, en el que ya sabemos qué es cada cosa, llega el momento de dar marcha atrás y olvidarnos de todo lo aprendido, porque lo habitual en el mundo del vídeo digital es referirnos al espacio de color Y'CbCr como YUV. Es decir, aunque ya sabemos que YUV es un espacio de color analógico y Y'CbCr digital, la mayor parte de las veces que nos encontremos con que las siglas YUV se referirán a un espacio de color "genérico" en el que Y contiene el valor de la luminancia (brillo) y U e Y contienen el valor de la crominancia (el color) Ya sabemos que no es lo mismo Y (la suma de RGB) que Y' (la suma de RGB con corrección de gama, esto es, R'G'B') y que mientras que U y V son B-Y y R-Y respectivamente, Cb y Cr se corresponden con B y R. Sin embargo, y como digo, lo habitual en el vídeo digital es referirnos a Y como luminancia y UV como color. Triste después de aprender todo lo anterior ¿verdad?


IMPORTANTE: A partir de este punto, y a pesar de la incorrección que eso supone, me referiré al espacio de color Y'CbCr como YUV. El motivo es que en el siguiente apartado entramos ya en el mundo de la compresión de vídeo y, salvo algún caso aislado, en la mayoría de software se usan, incorrectamente eso sí, las siglas YUV cuando, en realidad, deberían usar Y'CbCr. Y como ejemplo puedes fijarte en la Figura 7 antes mostrada de TMPGEnc en la que se lee "Dar salida a la información YUV en YCbCr [...]" La información de origen también es Y'CbCr, y no YUV, puesto que ya está digitalizada. Para evitar confusiones y facilitar las referencias a las opciones de configuración de la mayoría de programas a partir de este momento usaré las siglas YUV, como decía anteriormente, para designar un espacio de color en el que, grosso modo, la Y representa la luminancia (brillo) y U e Y representan la crominancia (color)

3. Submuestreo Cromático y compresión de vídeo

Al hablar anteriormente del espacio de color YUV dijimos que el ojo humano percibe más información de la luminancia que de la crominancia. Es decir, obtenemos más información del brillo de las imágenes que del color. Esta cualidad puede usarse para reducir de forma notable la información contenida en las imágenes y, de ese modo, facilitar su emisión y almacenamiento. Vimos también cómo abusar de esta reducción lleva consigo posteriores problemas de reproducción, como los sufridos por el formato NTSC en sus orígenes.

Los primeros pasos en la compresión de vídeo digital se dieron en esta dirección, desarrollando diversos sistemas de almacenamiento de vídeo en los que se preservaba la luminancia (el brillo) y se reducía la información de la crominancia (del color) con diversas técnicas. Es importante entender este punto porque de este será siempre el primer paso de cualquier compresión. A esta reducción se le conoce como submuestreo cromático debido a que la reducción se consigue "saltándose" muestras de color. Es decir, si tengo una fuente de vídeo de 720x576 puntos (formato PAL para DV y DVD) y quiero almacenarla, primero tendré que "leer" toda la información de esa imagen para poder convertirla luego al espacio de color YUV (recordemos, Y'CbCr en digital) A esa "lectura" o análisis de la imagen se le llama muestreo. Un muestreo 4:4.4 quiere decir que por cada 4 píxeles recogidos de luminancia (de Y) se almacenan 4 de U y 4 de V. Es decir, hay un muestreo completo. Al no haber pérdida alguna, no hay submuestro.

Partiendo de este punto existen un buen número de alternativas para realizar la reducción en el muestro de la crominancia (submuestreo) La Figura 10 representa los submuestreos YUV más comunes (fíjate cómo en el ejemplo se usan los colores rojo y azul del espacio de color Y'CbCr y no las mezclas Y-B e Y-R del espacio YUV)

(https://videoedicion.org/foro/proxy.php?request=http%3A%2F%2Fwww.videoedicion.org%2F%2Fmateriales%2FImage%2FManuales%2FVideo%2FCompresion%2Fespacios.color.y.compresion%2FSubmuestreos.cromaticos.png&hash=fcee60f8ad8f703814e8a1083a76a6fc5d2832ec)
Figura 10 - Submuestreos cromáticos. Fuente: Wikipedia (http://en.wikipedia.org/wiki/Image:Chroma_subsampling_ratios.png)

3.1. Muestreo 4:4:4

Como ya hemos comentado, usando este muestreo de color no hay pérdida de información. La cantidad de información con la que se trabaja es muy elevada y, por tanto, únicamente se usa en entornos de muy alta calidad. Los formatos como el HDCAM SR pueden grabar en 4:4:4 R'G'B' en conexión dual HD-SDI.

3.2 Muestreo 4:2:2

En este formato se recoge exactamente la mitad de la información cromática. Las diferencias visuales con respecto al muestreo 4:4:4 son prácticamente inexistentes, aunque la información contenida en las imágenes se reduce aproximadamente en un tercio de la original.

Este tipo de muestro es usado por equipos de alta calidad como:

* Digital Betacam

* DVCPRO50 y DVCPRO HD

* Digital-S

* CCIR 601 / Serial Digital Interface / D1

El  nuevo compresor de Apple (lanzado en el 2007 junto con Final Cut Studio 2) ProRes 422, como su nombre sugiere, también permite trabajar con vídeo digital con un muestreo de 4:2:2

3.3. Muestreo 4:1:1

En el muestreo 4:1:1, por cada cuatro muestras de la luminancia se obtiene una de cada valor de crominancia y, con esto, se logra reducir el ancho de banda de la señal hasta la mitad. Algunos de los formatos que usan muestreo 4:1:1 son los siguientes:

* DVCPRO (NTSC y PAL)

* NTSC DV

* DVCAM

* D-7

3.4 Muestreo 4:2:0

En este submuestreo se recoge la misma cantidad de información que en el muestreo anterior (4:1:1) La diferencia está, como vimos en la Figura 8, en el orden en el que se toman las muestras, ya que se obtienen dos muestras de Cb, ninguna de Cr, luego ninguna de Cr y dos de Cb y así sucesivamente. Algunos formatos invierten este orden y comienzan tomando muestras de Cr . En cualquier caso, se obtendrá siempre el 50% de la crominancia (del color) sea cual sea el orden de toma de las muestras

Este submuestreo se usa en los siguientes formatos:

* Todas las versiones de los formatos MPEG, incluyendo el MPEG-2 y sus variantes como el DVD y los formatos de Alta Definición. Algunos perfiles del MPEG-4, no obstante, admiten muestreos más elevando, incluso de 4:4:4

* PAL DV

* DVCAM

* HDV

* La mayoría de archivos JPEG/JFIF, H.261, y MJPEG

* VC-1

4. YUV empaquetados y planares

Una vez que hemos seleccionado qué información queremos guardar existen dos formas de almacenar esa información:

- Empaquetada, si guardamos los tres valores correspondientes a cada pixel en una misma matrix, en un mismo grupo de datos

- Planar, si los valores de cada pixel se almacenan en matrices diferentes, es decir, en diferentes planos matemáticos (de ahí el nombre de planar)

Los formatos empaquetados siempre van a requerir un mismo ancho de banda (cantidad de datos) independientemente de la fuente. Los formatos planares, por su parte, son algo más flexibles y, en determinadas circunstancias, pueden reducir el ancho de banda necesario para trabajar. No obstante, he de admitir que, al menos en el momento de escribir estas líneas, todavía no tengo demasiado claro qué ventajas e inconvenientes tienen cada uno de ellos. Intuyo que no debe estar muy claro porque en los formatos de compresión más usados encontramos de forma indistinta tanto formatos YUV empaquetados como planares. Es decir, a día de hoy no parece haber una preferencia clara por ninguno de ellos; lo que me da a entender que los resultados deben ser muy similares.

5. El FourCC y los formatos YUV

Los tipos de muestreos que vimos en el apartado anterior pueden considerarse "genéricos" y están clasificados según la cantidad de color que se recoge (o se pierde, según cómo se mire) en el submuestreo. Pero, como ya se indicó al hablar del submuestreo 4:2:0, existen numerosas alternativas a la hora de establecer el orden de la toma de datos, es decir, del muestreo. Estos "estilos" de muestreos dan lugar a un buen número de formatos YUV que se diferencian por tanto, no sólo por la cantidad de color recogida, sino también por el orden del muestreo. Tampoco olvidemos que, como vimos en el apartado anterior, también podemos clasificar los formatos YUV en función de la forma de almacenar los datos del muestreo (planares o empaquetados)

Para identificar a toda esta "selva" de formatos se decidió incrustar en cada vídeo un código de 4 bits que lograba indentificar el formato empleado en cada vídeo. Este código se conoce como FourCC, que quiere decir, ni más ni menos, que Four Character-Code o, en cristiano, Código de Cuatro Caracteres. En ingles existe un sencillo juego de palabras puesto que el Código de Cuatro Caracteres (FourCC) puede leerse como Cuatro (Four) Cés (CC) y se pronuncia igual que "fuerzas" (forces) Es los lugares donde se debate compresión digital es fácil encontrar la frase "May the FourCC be with you" Es decir, "Que las cuatro cés te acompañen"  Aunque, claro, en inglés tiene más gracias porque las cuatro cés suenan igual que fuerzas. Bueno, lo habréis pillado, espero.

Si no te has aburrido bastante con este documento y tienes curiosidad por conocer los tipos de formatos YUV existentes, aquí tienes un enlace para entretenerte:

http://www.fourcc.org/yuv.php (http://www.fourcc.org/yuv.php)

Y si después de ver esta lista te quedas con ganas de más, ten en cuenta que el FourCC no sólo identifica los formatos YUV sino, en general, cualquier tipo de compresión aplicada a un vídeo. En el siguiente enlace tienes la lista oficial, según Microsoft:

http://msdn2.microsoft.com/en-us/library/ms867195.aspx (http://msdn2.microsoft.com/en-us/library/ms867195.aspx)

6. Conclusiones

Tal y como avisé en la introducción, de poco o nada te va a servir todo esto en tu "día a día" con el vídeo digital. Pero, quizás, te ocurra como a mí y te guste conocer cómo funcionan las cosas aunque no puedas intervenir de forma directa.

Hace 48 horas poco o nada sabía de todos estos formatos y espacios de color. Este documento refleja todo lo que he aprendido en estos dos días y he tratado de exponerlo de la forma más sencilla posible. Más sencilla, al menos, de lo que yo me he encontrado cuando me lancé a internet a buscar. A tener en cuenta que, aunque he procurado ser lo más riguroso posible en la redacción del texto, no me extrañaría para nada haber metido la pata hasta el fondo por algún lado. Insisto en que soy un "ciudadano de a pie" que ha querido documentarse, pero no un experto de la teoría del color ni de la compresión.

Gracias por la atención prestada. Espero haber aportado algo de luz a las dudas o lagunas que pudieras tener antes de empezar a leer.

Un saludo


7. Bibliografía

Video Demystified, A Handbook for the Digital Engineer (http://www.video-demystified.com/), por Keith Jack. Ed. Elsevier (http://books.elsevier.com/us/newnes/us/subindex.asp?isbn=9780750683951&country=United+States&community=newnes&ref=&mscssid=KQMBLS7FU8B09GL4T0JUH2D8JE2C1077) ISBN 978-0-7506-8395-1

http://www.fourcc.org

http://en.wikipedia.org/wiki/Color

http://en.wikipedia.org/wiki/Color_spaces

http://en.wikipedia.org/wiki/Absolute_color_space

http://en.wikipedia.org/wiki/Adobe_RGB_color_space

http://en.wikipedia.org/wiki/SRGB_color_space

http://en.wikipedia.org/wiki/Lab_color_space

http://en.wikipedia.org/wiki/CIE_1931_color_space

http://en.wikipedia.org/wiki/RGB_color_model

http://en.wikipedia.org/wiki/RGB_color_spaces

http://en.wikipedia.org/wiki/Yuv

http://en.wikipedia.org/wiki/YCbCr

http://en.wikipedia.org/wiki/YPbPr

http://en.wikipedia.org/wiki/Gamma_correction

http://es.wikipedia.org/wiki/Luminancia

http://en.wikipedia.org/wiki/Luma_(video)

http://en.wikipedia.org/wiki/Chroma_subsampling

http://en.wikipedia.org/wiki/Fourcc

http://en.wikipedia.org/wiki/Planar

http://en.wikipedia.org/wiki/Packed_pixel

http://en.wikipedia.org/wiki/CCIR_601

http://en.wikipedia.org/wiki/Serial_Digital_Interface