# YCbCr

YCbCr, también conocido como Y'CbCr, Y Pb/Cb Pr/Cr, YC$_B$C$_R$ o Y'C$_B$C$_R$ es una familia de espacio de color usada en sistemas de vídeo y fotografía digital. Y y Y' representan la componente de luma y las señales C$_B$ y C$_R$ son los componentes de crominancia diferencia de azul y diferencia de rojo, respectivamente. Y' se diferencia de Y en que es la señal de luma codificada de manera no lineal basada en las señales primarias RGB con corrección gamma.
Y'C$_B$C$_R$ no es un espacio de color absoluto, sino una forma de codificar información RGB. El color que se muestra depende de la combinación de colores primario RGB usados para mostrar la señal. Por lo tanto, un valor expresado como Y'C$_B$C$_R$ es predecible solo si se usa la cromaticidad de los colores del estándar RGB.

## Justificación

Las imágenes se forman en un tubo de rayos catódicos mediante señales que representan a los colores primarios de la luz, azul, rojo y verde, pero estas señales no son eficientes como representación para el almacenamiento y la transmisión directas, ya que tienen una gran cantidad de redundancia.
Las señales YC$_B$C$_R$ y Y'C$_B$C$_R$ son una aproximación práctica para el procesamiento del color y para la percepción uniforme, en las cuales los colores primarios que corresponden aproximadamente al rojo, verde y azul son procesados en información perceptualmente significativa. De esta manera, el procesamiento, la transmisión y almacenamiento posteriores de imagen o vídeo pueden introducir errores en formas perceptualmente significativas. A partir de la señal del modelo Y'CbCr se separa una señal de luminancia que se puede almacenar con alta resolución o transmitida con un alto ancho de banda, y dos componentes de crominancia que pueden ser de ancho de banda reducido, submuestreados, comprimidos, o tratados de otra manera por separado para mejorar la eficiencia del sistema.
Un ejemplo práctico se obtiene disminuyendo el ancho de banda o la resolución que se asignan a las señales de color, en comparación con las monocromáticas, ya que los seres humanos son más sensibles a la información de blanco y negro.

## Proceso de señales YCbCr

A menudo, el espacio de color YC$_B$C$_R$ es conocido como YP$_B$P$_R$ cuando se usa para el procesamiento de componentes de vídeo analógico, aunque el término Y'C$_B$C$_R$es comúnmente usado para ambos sistemas, con o sin el símbolo de apóstrofo (').
Y'C$_B$C$_R$ es confundido a veces con el espacio de color YUV y generalmente este último término y YC$_B$C$_R$ son usados indistintamente dando lugar a cierta confusión. Cuando se refiere a las señales de vídeo analógicas o en formato digital, el término "YUV" significa "Y'C$_B$C$_R$".
Las señales Y'C$_B$C$_R$, antes de ser colocadas en forma digital, son llamadas YP$_B$P$_R$, y se crean a partir de las señales fuente RGB ajustadas en gamma correspondientes utilizando dos constantes ya definidas K$_B$ y K$_R$ de la siguiente manera:
             $\left\{{\begin{aligned}Y'&=K_{R}*R'+(1-K_{R}-K_{B})*G'+K_{B}*B'\\P_{B}&={\frac {1}{2}}*{\frac {B'-Y'}{1-K_{B}}}\\P_{R}&={\frac {1}{2}}*{\frac {R'-Y'}{1-K_{R}}}\end{aligned}}\right.$
donde K$_B$ y K$_R$ normalmente se derivan de la definición del correspondiente espacio RGB. La manipulación de matrices equivalentes se conoce a menudo como "matrizado de color".
En la ecuación, las variables con apóstrofo (') significan que se utiliza corrección de gamma, por lo que R', G ' y B' nominalmente varían de 0 a 1, donde 0 representa la intensidad mínima (color negro) y 1 la máxima (color blanco). El valor de luma (Y') resultante tendrá entonces un rango nominal de 0 a 1, y los valores de crominancia (P$_B$ y P$_R$) variarán de -0,5 a +0,5. El proceso de conversión inversa se puede fácilmente derivar invirtiendo las ecuaciones anteriores.
Cuando se representan las señales en forma digital, a los resultados se les aplica un factor de escala y se redondean, y se añaden generalmente compensaciones. Por ejemplo, el escalado y desplazamiento aplicados a la componente Y' en una especificación, como por ejemplo, MPEG-2, dan como resultado el valor de 16 para el negro y el valor de 235 para el blanco, cuando se utiliza una representación de 8 bits. La norma tiene versiones digitalizadas de 8 bits de C$_B$ y C$_R$ a escala, de 16 a 240. En consecuencia, el reescalado por un factor de (235-16)/(240-16) = 219/224 veces es necesario cuando se hace matrizaje de color o procesamiento en el espacio YC$_B$C$_R$, lo que resulta en distorsiones de cuantificación cuando el tratamiento posterior no se realiza con mayores profundidades de bits.
El escalado, que se traduce en el uso de un rango más pequeño de valores digitales, de lo que podría parecer deseable para la representación de la gama nominal de los datos de entrada, permite valores por "exceso" y " defecto" durante el proceso sin necesidad de un truncamiento indeseable. Estos márgenes también se pueden utilizar para la ampliación de la gama de colores nominal, según lo especificado por xvYCC.
Puesto que las ecuaciones que definen a YC$_B$C$_R$ se forman de una manera tal que hace girar todo el cubo nominal de color RGB y cambia su tamaño para que se ajuste dentro de un cubo de color YC$_B$C$_R$ más grande, hay algunos puntos dentro del ese cubo de color que no se pueden representar en el dominio de RGB correspondiente (al menos no dentro del rango nominal RGB). Esto provoca cierta dificultad en la determinación de la forma de interpretar y mostrar algunas señales YC$_B$C$_R$ correctamente. Estos valores YC$_B$C$_R$ fuera de la gama son utilizados por xvYCC para codificar colores fuera del espectro de la Recomendación BT.709.

### Conversión JPEG

Los componentes de color digitales de las imágenes JPEG son combinados para la obtención del espacio Y′CbCr donde Y′, C$_B$ y C$_R$ abarcan el rango de 0 a 255 niveles para digitalización a 8 bits:
    ${\begin{aligned}Y'&=&0&+(0.299&\cdot R'_{D})&+(0.587&\cdot G'_{D})&+(0.114&\cdot B'_{D})\\C_{B}&=&128&-(0.168736&\cdot R'_{D})&-(0.331264&\cdot G'_{D})&+(0.5&\cdot B'_{D})\\C_{R}&=&128&+(0.5&\cdot R'_{D})&-(0.418688&\cdot G'_{D})&-(0.081312&\cdot B'_{D})\end{aligned}}$
Las señales del espacio RGB se obtienen a partir de estas ecuaciones:
    ${\begin{aligned}R&=&Y&&&+1.402&\cdot (C_{R}-128)\\G&=&Y&-0.34414&\cdot (C_{B}-128)&-0.71414&\cdot (C_{R}-128)\\B&=&Y&+1.772&\cdot (C_{B}-128)&\end{aligned}}$

## Plano C$_B$-C$_R$ con diferentes valores de Y

* Y=0
* Y=0.5
* Y=1