Espaces couleurs YCbCr

YCbCr, Y’CbCr , ou Y Pb / Cb Pr / Cr , également écrit comme YC B C R ou Y’C B C R , est une famille d’espaces colorimétriques utilisés dans le pipeline d’images couleur dans la vidéo et la photographie numérique systèmes. Y ‘est la composante luma et CB et CR sont les composantes de la différence de bleu et de la différence de rouge. Y ‘(avec le premier) se distingue de Y, qui est la luminance, ce qui signifie que l’intensité de la lumière est codée de manière non linéaire sur la base des primaires RGB corrigés gamma.

Les espaces colorimétriques Y’CbCr sont définis par une transformation de coordonnées mathématique à partir d’un espace colorimétrique RVB associé. Si l’espace colorimétrique RVB sous-jacent est absolu, l’espace colorimétrique Y’CbCr est également un espace colorimétrique absolu; inversement, si l’espace RVB est mal défini, Y’CbCr l’est aussi.

Raisonnement
Les affichages à tube cathodique sont pilotés par des signaux de tension rouge, vert et bleu, mais ces signaux RVB ne sont pas efficaces en tant que représentation pour le stockage et la transmission, car ils ont beaucoup de redondance.

YCbCr et Y’CbCr sont une approximation pratique du traitement des couleurs et de l’uniformité perceptive, où les couleurs primaires correspondant approximativement au rouge, au vert et au bleu sont transformées en informations perceptuellement significatives. Ce faisant, le traitement, la transmission et le stockage ultérieurs des images / vidéos peuvent effectuer des opérations et introduire des erreurs de manière perceptive. Y’CbCr est utilisé pour séparer un signal luma (Y ‘) qui peut être stocké avec une haute résolution ou transmis à haute bande passante, et deux composantes chroma (CB et CR) qui peuvent être réduites, sous-échantillonnées, compressées ou autrement traités séparément pour améliorer l’efficacité du système.

Un exemple pratique serait de diminuer la bande passante ou la résolution allouée à la «couleur» par rapport au «noir et blanc», puisque les humains sont plus sensibles aux informations en noir et blanc (voir l’exemple d’image à droite). C’est ce qu’on appelle le sous-échantillonnage de la chrominance.

YCbCr
YCbCr est parfois abrégé en YCC. Y’CbCr est souvent appelé YPbPr lorsqu’il est utilisé pour la vidéo composante analogique, bien que le terme Y’CbCr soit couramment utilisé pour les deux systèmes, avec ou sans le premier.

Y’CbCr est souvent confondu avec l’espace colorimétrique YUV, et typiquement les termes YCbCr et YUV sont utilisés de façon interchangeable, ce qui conduit à une certaine confusion. La principale différence est que YUV est analogique et YCbCr est numérique.

Les signaux Y’CbCr (avant la mise à l’échelle et les décalages pour placer les signaux sous forme numérique) sont appelés YPbPr et sont créés à partir de la source RGB (rouge, verte et bleue) ajustée gamma en utilisant trois constantes définies KR, KG et KB comme suit:


où K R , K G et K B sont habituellement dérivés de la définition de l’espace RVB correspondant, et requis pour satisfaire  . (La manipulation de matrice équivalente est souvent appelée « matrice de couleurs ».)

Ici, les symboles principaux signifient que la correction gamma est utilisée; ainsi R ‘, G’ et B ‘vont théoriquement de 0 à 1, 0 représentant l’intensité minimale (par exemple, pour l’affichage de la couleur noire) et 1 le maximum (par exemple, pour l’affichage de la couleur blanche). La valeur luma (Y) résultante aura alors une plage nominale de 0 à 1, et les valeurs de chrominance (PB et PR) auront une plage nominale de -0,5 à +0,5. Le processus de conversion inverse peut être facilement dérivé en inversant les équations ci-dessus.

Lors de la représentation des signaux sous forme numérique, les résultats sont mis à l’échelle et arrondis, et les décalages sont généralement ajoutés. Par exemple, la mise à l’échelle et le décalage appliqués au composant Y ‘par spécification (par exemple MPEG-2) donnent la valeur 16 pour le noir et la valeur 235 pour le blanc lors de l’utilisation d’une représentation à 8 bits. La norme a des versions numérisées 8 bits de CB et CR mises à l’échelle dans une plage différente de 16 à 240. Par conséquent, un rééchelonnement par la fraction (235-16) / (240-16) = 219/224 est parfois nécessaire lors de la matriçage des couleurs ou le traitement dans l’espace YCbCr, entraînant des distorsions de quantification lorsque le traitement ultérieur n’est pas effectué en utilisant des profondeurs de bits plus élevées.

La mise à l’échelle qui conduit à l’utilisation d’une plus petite gamme de valeurs numériques que ce qui peut sembler souhaitable pour la représentation de la plage nominale des données d’entrée permet un certain dépassement et un sous-dépassement pendant le traitement sans nécessiter un écrêtage indésirable. Cette « headroom » et « toe-room » peuvent également être utilisées pour l’extension de la gamme de couleurs nominale, comme spécifié par xvYCC.

La valeur 235 correspond à un dépassement maximum noir à blanc de 255 – 235 = 20, ou 20 / (235 – 16) = 9,1%, ce qui est légèrement supérieur au dépassement maximum théorique (Phénomène de Gibbs) d’environ 8,9% de le pas maximum. La chambre des orteils est plus petite, ne permettant que le dépassement de 16/219 = 7.3%, ce qui est inférieur au dépassement maximum théorique de 8.9%.

Étant donné que les équations définissant YCbCr sont formées de manière à faire pivoter le cube de couleur RGB nominal et à l’adapter à un cube de couleur YCbCr (plus grand), certains points du cube de couleur YCbCr ne peuvent pas être représentés dans le domaine RVB correspondant. (au moins pas dans la plage nominale RVB). Cela cause certaines difficultés à déterminer comment interpréter et afficher correctement certains signaux YCbCr. Ces valeurs YCbCr hors plage sont utilisées par xvYCC pour coder des couleurs en dehors de la gamme BT.709.

Conversion RVB en YCbCr

Conversion UIT-R BT.601
La forme de Y’CbCr qui a été définie pour l’utilisation de la télévision à définition standard dans la norme ITU-R BT.601 (anciennement CCIR 601) à utiliser avec la composante vidéo numérique est dérivée de l’espace RVB correspondant comme suit:


A partir des constantes et des formules ci-dessus, on peut déduire ce qui suit pour l’UIT-R BT.601.

L’analogue YPbPr de l’analogue R’G’B ‘est dérivé comme suit:


Y’CbCr numérique (8 bits par échantillon) est dérivé de l’analogue R’G’B ‘comme suit:


ou simplement par composants


Les signaux résultants vont de 16 à 235 pour Y ‘(Cb et Cr vont de 16 à 240); les valeurs de 0 à 15 sont appelées footroom, tandis que les valeurs de 236 à 255 sont appelées headroom.

Alternativement, le Y’CbCr numérique peut être dérivé de R’dG’dB’d numérique (8 bits par échantillon, chacun utilisant la gamme complète avec zéro représentant le noir et 255 représentant le blanc) selon les équations suivantes:


Dans la formule ci-dessus, les facteurs d’échelle sont multipliés par  . Cela permet d’obtenir la valeur 256 dans le dénominateur, qui peut être calculée par un seul décalage de bits.

Si la source numérique R’d G’d B’d comprend une réserve pour les pieds et une hauteur libre, le décalage 16 de la marge doit être soustrait en premier de chaque signal, et un facteur d’échelle de  doit être inclus dans les équations.

La transformation inverse est:


La transformée inverse sans arrondi (en utilisant des valeurs provenant directement de la recommandation ITU-R BT.601) est:


Cette forme de Y’CbCr est utilisée principalement pour les systèmes de télévision à définition standard plus anciens, car elle utilise un modèle RVB qui correspond aux caractéristiques d’émission de phosphore des anciens TRC.

Conversion UIT-R BT.709
Une forme différente de Y’CbCr est spécifiée dans la norme ITU-R BT.709, principalement pour l’utilisation de la TVHD. La nouvelle forme est également utilisée dans certaines applications orientées ordinateur. Dans ce cas, les valeurs de Kb et Kr diffèrent, mais les formules pour les utiliser sont les mêmes. Pour l’UIT-R BT.709, les constantes sont:


Cette forme de Y’CbCr est basée sur un modèle RVB qui correspond plus étroitement aux caractéristiques d’émission de luminophores des nouveaux CRT et autres équipements d’affichage modernes.

Les définitions des signaux R ‘, G’ et B ‘diffèrent également entre BT.709 et BT.601, et diffèrent dans BT.601 selon le type de système de télévision utilisé (625 lignes comme PAL et SECAM ou 525 lignes comme dans NTSC), et diffèrent davantage dans d’autres spécifications. Dans différentes conceptions, il existe des différences dans les définitions des coordonnées de chromaticité R, G et B, le point blanc de référence, la gamme de gamme supportée, les fonctions exactes de pré-compensation gamma pour dériver R ‘, G’ et B ‘de R, G, et B, et dans la mise à l’échelle et les décalages à appliquer lors de la conversion de R’G’B ‘à Y’CbCr.Donc, la conversion de Y’CbCr d’une forme à l’autre ne consiste pas simplement à inverser une matrice et à appliquer l’autre. En fait, lorsque Y’CbCr est idéalement conçu, les valeurs de KB et KR sont dérivées de la spécification précise des signaux primaires de couleur RVB, de sorte que le signal luma (Y ‘) corresponde le plus possible à une mesure ajustée par le gamma. de luminance (typiquement basée sur les mesures CIE 1931 de la réponse du système visuel humain aux stimuli de couleur).

Conversion UIT-R BT.2020
La norme ITU-R BT.2020 définit à la fois Y’CbCr à correction gamma et une version à codage linéaire de YCbCr appelée YcCbcCrc. YcCbcCrc peut être utilisé lorsque la priorité la plus élevée est la rétention la plus précise des informations de luminance. Pour YcCbcCrc, les coefficients sont:


Conversion JPEG
L’utilisation JFIF de JPEG prend en charge Y’CbCr où Y ‘, CB et CR ont la plage complète de 8 bits de [0 … 255]. Voici les équations de conversion exprimées en six chiffres décimaux de précision. (Pour les équations idéales, voir UIT-T T.871.) Notez que pour les formules suivantes, la plage de chaque entrée (R, G, B) est également la plage complète de 8 bits [0 … 255].


Et en arrière:

Plan CbCr à Y = 0.5

Y = 0,5

Remarque: quand Y = 0, R, G et B doivent tous être zéro, donc Cb et Cr ne peuvent être que zéro. De même, lorsque Y = 1, R, G et B doivent tous être 1, donc Cb et Cr ne peuvent être que zéro.

Contrairement à R, G et B, les valeurs Y, Cb et Cr ne sont pas indépendantes; le choix arbitraire des valeurs YCbCr peut conduire à une ou plusieurs valeurs RVB hors gamme, c’est-à-dire supérieures à 1,0 ou inférieures à 0,0.