Acerca del vídeo de YUV

El vídeo digital se codifica a menudo en formato YUV . En este artículo se explican los conceptos generales del vídeo YUV, junto con cierta terminología, sin profundizar en las matemáticas del procesamiento de vídeo YUV.

Si ha trabajado con gráficos informáticos, probablemente esté familiarizado con el color RGB. Un color RGB se codifica con tres valores: rojo, verde y azul. Estos valores corresponden directamente a partes del espectro visible. Los tres valores RGB forman un sistema de coordenadas matemáticas, denominado espacio de colores. El componente rojo define un eje de este sistema de coordenadas, el azul define el segundo y el verde define el tercero, como se muestra en la ilustración siguiente. Cualquier color RGB válido cae en algún lugar dentro de este espacio de color. Por ejemplo, magenta pura es 100% azul, 100% rojo y 0% verde.

diagrama que muestra el espacio de color rgb

Aunque RGB es una manera común de representar colores, otros sistemas de coordenadas son posibles. El término YUV hace referencia a una familia de espacios de color, todos los cuales codifican la información de brillo por separado de la información de color. Al igual que RGB, YUV usa tres valores para representar cualquier color. Estos valores se denominan Y', U y V. (De hecho, este uso del término "YUV" es técnicamente inexacto. En el vídeo del equipo, el término YUV casi siempre hace referencia a un espacio de color determinado denominado Y'CbCr, que se describe más adelante. Sin embargo, YUV se suele usar como término general para cualquier espacio de colores que funcione a lo largo de los mismos principios que Y'CbCr).

El componente Y, también llamado luma, representa el valor de brillo del color. El símbolo primo (') se usa para diferenciar luma de un valor estrechamente relacionado, luminancia, que se designa Y. Luminance se deriva de valores RGB lineales , mientras que luma se deriva de valores RGB no lineales (corregidos en gamma). Luminance es una medida más cercana del brillo verdadero, pero luma es más práctico de usar por motivos técnicos. El símbolo primo se omite con frecuencia, pero los espacios de color YUV siempre usan luma, no luminancia.

Luma se deriva de un color RGB tomando un promedio ponderado de los componentes rojo, verde y azul. Para la televisión de definición estándar, se usa la fórmula siguiente:

Y' = 0.299R + 0.587G + 0.114B

Esta fórmula refleja el hecho de que el ojo humano es más sensible a ciertas longitudes de onda de luz que otras, lo que afecta al brillo percibido de un color. La luz azul aparece más dimmest, el verde aparece más brillante y el rojo está en algún lugar entre sí. Esta fórmula también refleja las características físicas de los fósforos utilizados en los televisores tempranos. Una fórmula más reciente, teniendo en cuenta la tecnología de televisión moderna, se usa para televisión de alta definición:

Y' = 0.2125R + 0.7154G + 0.0721B

La ecuación luma para televisión de definición estándar se define en una especificación denominada ITU-R BT.601. Para televisión de alta definición, la especificación pertinente es ITU-R BT.709.

Los componentes you y V, también denominados valores cromáticos o valores de diferencia de color , se derivan restando el valor Y de los componentes rojo y azul del color RGB original:

U = B - Y'

V = R - Y'

Juntos, estos valores contienen suficiente información para recuperar el valor RGB original.

Ventajas de YUV

La televisión analógica utiliza YUV en parte por motivos históricos. Las señales analógicas de televisión de color fueron diseñadas para ser compatibles con versiones anteriores con televisores negros y blancos. La señal de televisión de color lleva la información cromática (usted y V) superpuesta a la señal luma. Los televisores negros y blancos ignoran el cromático y muestran la señal combinada como una imagen de escala de grises. (La señal está diseñada para que el croma no interfiera significativamente con la señal luma). Los televisores de color pueden extraer el cromático y convertir la señal en RGB.

YUV tiene otra ventaja que es más relevante hoy en día. El ojo humano es menos sensible a los cambios en el tono que los cambios en el brillo. Como resultado, una imagen puede tener menos información cromática que la información luma sin sacrificar la calidad percibido de la imagen. Por ejemplo, es habitual muestrear los valores cromáticos a la mitad de la resolución horizontal de las muestras luma. En otras palabras, para cada dos muestras de luma en una fila de píxeles, hay una muestra de U y una muestra V. Suponiendo que se usan 8 bits para codificar cada valor, se necesita un total de 4 bytes para cada dos píxeles (dos Y', una U y una V), para un promedio de 16 bits por píxel, o un 30 % menos que la codificación RGB de 24 bits equivalente.

YUV no es intrínsecamente más compacto que RGB. A menos que el cromático esté en un muestreo inferior, un píxel YUV tiene el mismo tamaño que un píxel RGB. Además, la conversión de RGB a YUV no se pierde. Si no hay ningún muestreo descendente, se puede convertir un píxel YUV en RGB sin pérdida de información. El muestreo descendente hace que una imagen YUV sea más pequeña y también pierde parte de la información de color. Sin embargo, si se realiza correctamente, la pérdida no es perceptualmente significativa.

YUV in Computer Video

Las fórmulas enumeradas anteriormente para YUV no son las conversiones exactas usadas en el vídeo digital. Por lo general, el vídeo digital usa una forma de YUV denominada Y'CbCr. Básicamente, Y'CbCr funciona mediante el escalado de los componentes YUV a los siguientes rangos:

Componente Intervalo
Y' 16–235
Cb/Cr 16–240, con 128 que representa cero

 

Estos intervalos asumen 8 bits de precisión para los componentes Y'CbCr. Esta es la derivación exacta de Y'CbCr, usando la definición BT.601 de luma:

  1. Comience con valores RGB en el intervalo [0...1]. En otras palabras, el negro puro es 0 y el blanco puro es 1. Importantemente, estos son valores RGB no lineales (corregidos gamma).

  2. Calcule el luma. Para BT.601, Y' = 0,299R + 0,587G + 0,114B, como se describió anteriormente.

  3. Calcule los valores intermedios de diferencia de cromática (B - Y') y (R - Y'). Estos valores tienen un intervalo de +/- 0,886 para (B - Y') y +/- 0,701 para (R - Y').

  4. Escale los valores de diferencia de cromática de la siguiente manera:

    Pb = (0,5 / (1 - 0,114)) × (B - Y')

    Pr = (0,5 / (1 - 0,299)) × (R - Y')

    Estos factores de escala están diseñados para proporcionar a ambos valores el mismo intervalo numérico, +/- 0,5. Juntos, definen un espacio de colores YUV denominado Y'PbPr. Este espacio de color se usa en vídeo de componente analógico.

  5. Escale los valores de Y'PbPr para obtener los valores Y'CbCr finales:

    Y' = 16 + 219 × Y'

    Cb = 128 + 224 × Pb

    Cr = 128 + 224 × Pr

Estos últimos factores de escalado generan el intervalo de valores enumerados en la tabla anterior. Por supuesto, puedes convertir RGB directamente en Y'CbCr sin almacenar los resultados intermedios. Los pasos se enumeran por separado aquí para mostrar cómo Y'CbCr deriva de las ecuaciones YUV originales dadas al principio de este artículo.

En la tabla siguiente se muestran los valores RGB y YCbCr para varios colores, usando de nuevo la definición BT.601 de luma.

Color R G B Y' Cb Cr
Negro 0 0 0 16 128 128
Rojo 255 0 0 81 90 240
Verde 0 255 0 145 54 34
Azul 0 0 255 41 240 110
Cian 0 255 255 170 166 16
Fucsia 255 0 255 106 202 222
Amarillo 255 255 0 210 16 146
Blanco 255 255 255 235 128 128

 

Como se muestra en esta tabla, Cb y Cr no corresponden a ideas intuitivas sobre el color. Por ejemplo, el blanco puro y el negro puro contienen niveles neutros de Cb y Cr (128). Los valores más altos y más bajos para Cb son azul y amarillo, respectivamente. Para Cr, los valores más altos y más bajos son rojo y cian.

Para obtener más información

Tipos de medios de vídeo

Tipos de medios