Système de couleurs YUV

YUV est un système de codage couleur généralement utilisé dans le cadre d’un pipeline d’images couleur. Il code une image couleur ou une vidéo prenant en compte la perception humaine, permettant une réduction de la bande passante pour les composants de chrominance, permettant ainsi de masquer plus efficacement les erreurs de transmission ou les artefacts de compression par la perception humaine. D’autres codages de couleur ont des propriétés similaires, et la raison principale pour implémenter ou étudier les propriétés de Y’UV serait pour l’interfaçage avec une télévision analogique ou numérique ou un équipement photographique qui est conforme à certaines normes Y’UV.

La portée des termes Y’UV, YUV, YCbCr, YPbPr, etc. est parfois ambiguë et se chevauche. Historiquement, les termes YUV et Y’UV étaient utilisés pour un codage analogique spécifique des informations de couleur dans les systèmes de télévision, tandis que YCbCr était utilisé pour le codage numérique des informations de couleurs adaptées à la compression et à la transmission vidéo et image fixe telles que MPEG et JPEG. Aujourd’hui, le terme YUV est couramment utilisé dans l’industrie informatique pour décrire les formats de fichiers qui sont codés en utilisant YCbCr.

Le modèle Y’UV définit un espace colorimétrique en termes de composantes luma (Y ‘) et de chrominance (UV). Le modèle de couleur Y’UV est utilisé dans la norme vidéo PAL couleur composite (sauf PAL-N). Les systèmes en noir et blanc précédents utilisaient seulement l’information luma (Y ‘). Les informations de couleur (U et V) ont été ajoutées séparément via une sous-porteuse afin qu’un récepteur noir et blanc puisse toujours recevoir et afficher une transmission d’image en couleur dans le format noir et blanc natif du récepteur.

Y ‘représente la composante luma (la luminosité) et U et V sont les composantes de chrominance (couleur); la luminance est notée Y et luma par Y ‘- les symboles premiers (‘) dénotent la compression gamma, avec « luminance » signifiant luminosité linéaire de l’espace linéaire, tandis que « luma » est la luminosité perceptive (non linéaire).

Le modèle couleur YPbPr utilisé dans la vidéo composante analogique et sa version numérique YCbCr utilisée dans la vidéo numérique en sont dérivés plus ou moins, et sont parfois appelés Y’UV. (CB / PB et CR / PR sont des écarts par rapport au gris sur les axes bleu-jaune et rouge-cyan, alors que U et V sont respectivement des différences de luminance et de luminance rouge.) L’espace colorimétrique Y’IQ utilisé dans la télévision analogique NTSC Le système de radiodiffusion y est associé, bien que de manière plus complexe. L’espace colorimétrique YDbDr utilisé dans les systèmes de télédiffusion analogiques SECAM et PAL-N est également apparenté.

En ce qui concerne l’étymologie, Y, Y ‘, U et V ne sont pas des abréviations. L’utilisation de la lettre Y pour la luminance peut être reliée au choix des primaires XYZ. Cela se prête naturellement à l’utilisation de la même lettre dans luma (Y ‘), qui se rapproche d’un corrélat de perception de la luminance uniformément perceptuel. De même, U et V ont été choisis pour différencier les axes U et V de ceux des autres espaces, tels que l’espace de chromaticité x et y. Voir les équations ci-dessous ou comparer le développement historique des mathématiques.

Histoire
Y’UV a été inventé lorsque les ingénieurs voulaient la télévision couleur dans une infrastructure en noir et blanc. Ils avaient besoin d’une méthode de transmission de signal compatible avec la télévision en noir et blanc (N & B) tout en ajoutant de la couleur. Le composant luma existait déjà en tant que signal noir et blanc; ils ont ajouté le signal UV à cette solution.

La représentation UV de la chrominance a été choisie sur les signaux R et B droits car U et V sont des signaux de différence de couleur. En d’autres termes, les signaux U et V indiquent à la télévision de décaler la couleur d’un certain pixel sans modifier sa luminosité. Ou les signaux U et V indiquent au moniteur de rendre une couleur plus brillante au détriment de l’autre et de combien elle devrait être décalée. Plus les valeurs U et V sont élevées (ou plus basses quand négatives), plus le pixel est saturé (coloré). Plus les valeurs U et V se rapprochent de zéro, moins la couleur change de couleur, ce qui signifie que les lumières rouge, verte et bleue seront plus brillantes, produisant un pixel plus gris. C’est l’avantage d’utiliser des signaux de différence de couleur, c’est-à-dire qu’au lieu de dire combien de rouge il y a à une couleur, cela indique combien il est plus rouge que le vert ou le bleu. À son tour, cela signifiait que lorsque les signaux U et V seraient nuls ou absents, cela afficherait simplement une image en niveaux de gris. Si R et B devaient être utilisés, ils auraient des valeurs non nulles même dans une scène N & B, nécessitant les trois signaux porteurs de données. C’était important dans les premiers jours de la télévision couleur, parce que les vieux signaux de télévision en noir et blanc n’avaient pas de signaux U et V, ce qui signifie que la TV couleur ne ferait que l’afficher comme B & W TV. De plus, les récepteurs noir et blanc pourraient prendre le signal Y ‘et ignorer les signaux de couleur U et V, rendant Y’UV rétrocompatible avec tous les équipements noir et blanc existants, l’entrée et la sortie. Si la norme TV couleur n’utilisait pas les signaux de différence de couleur, cela pourrait signifier qu’une TV couleur ferait des couleurs amusantes à partir d’une diffusion N & B ou aurait besoin de circuits supplémentaires pour traduire le signal N & B en couleur. Il était nécessaire d’assigner une bande passante plus étroite au canal de chrominance car il n’y avait pas de bande passante supplémentaire disponible. Si une partie des informations de luminance arrivait via le canal de chrominance (comme cela aurait été le cas si les signaux RB étaient utilisés à la place des signaux UV différentiels), la résolution N & B aurait été compromise.

Conversion de / vers RGB
SDTV avec BT.601
Les signaux Y’UV sont généralement créés à partir d’une source RGB (rouge, verte et bleue). Les valeurs pondérées de R, G et B sont sommées pour produire Y ‘, une mesure de luminosité ou de luminance globale. U et V sont calculés comme des différences d’échelle entre Y ‘et les valeurs B et R.

BT.601 définit les constantes suivantes:


Y’UV est calculé à partir de RGB comme suit:


Les plages résultantes de Y ‘, U et V sont respectivement [0, 1], [-Umax, Umax] et [-Vmax, Vmax].

Inverser la transformation ci-dessus convertit Y’UV en RGB:


De manière équivalente, substituer des valeurs pour les constantes et les exprimer en tant que matrices donne ces formules pour BT.601:


HDTV avec BT.709

Pour la TVHD, l’ATSC a décidé de modifier les valeurs de base pour WR et WB par rapport aux valeurs précédemment sélectionnées dans le système SDTV. Pour la TVHD, ces valeurs sont fournies par Rec. 709. Cette décision a également eu un impact sur la matrice pour la conversion Y’UV↔RGB, de sorte que les valeurs de ses membres sont également légèrement différentes. En conséquence, avec SDTV et HDTV, il y a généralement deux représentations Y’UV distinctes possibles pour n’importe quel triple RGB: un SDTV-Y’UV et un HDTV-Y’UV. Cela signifie en détail que lors de la conversion directe entre SDTV et HDTV, l’information luma (Y ‘) est à peu près la même mais la représentation de l’information de canal de chrominance (U & V) doit être convertie. Toujours en couverture de l’espace colorimétrique CIE 1931, la Rec. L’espace colorimétrique 709 est presque identique à Rec. 601 et couvre 35,9%. Contrairement à cette UHDTV avec Rec. 2020 couvre une zone beaucoup plus large et verrait plus loin son propre jeu de matrice pour YUV / Y’UV.

BT.709 définit ces valeurs de poids:


Les matrices de conversion et les formules pour BT.709 sont les suivantes:


Remarques
Les poids utilisés pour calculer Y ‘(rangée supérieure de la matrice) sont identiques à ceux utilisés dans l’espace colorimétrique Y’IQ.
Les valeurs égales de rouge, vert et bleu (c’est-à-dire les niveaux de gris) donnent 0 pour U et V. Noir, RGB = (0, 0, 0), donne YUV = (0, 0, 0). Blanc, RVB = (1, 1, 1), donne YUV = (1, 0, 0).
Ces formules sont traditionnellement utilisées dans les téléviseurs et équipements analogiques; Y’CbCr utilise de l’équipement numérique comme la TVHD et les caméscopes numériques.

Approximations numériques
Avant le développement de processeurs SIMD à virgule flottante rapide, la plupart des implémentations numériques de RGB → Y’UV utilisaient des mathématiques entières, en particulier des approximations à virgule fixe. L’approximation signifie que la précision des nombres utilisés (données d’entrée, données de sortie et valeurs constantes) est limitée, et donc une perte de précision typiquement autour du dernier chiffre binaire est acceptée par celui qui utilise cette option dans un compromis typiquement des vitesses de calcul améliorées.

Dans les exemples suivants, l’opérateur  »  « Dénote un décalage à droite de a b positions binaires. Pour plus de clarté, les variables utilisent deux caractères suffixes: « u » est utilisé pour la représentation finale non signée, et « t » est utilisé pour la valeur intermédiaire réduite. Les exemples ci-dessous sont donnés uniquement pour BT.601. Le même principe peut être utilisé pour effectuer des opérations fonctionnellement équivalentes en utilisant des valeurs qui correspondent aux données qui suivent la norme BT.709 ou toute autre norme comparable.

Les valeurs Y ‘sont classiquement décalées et mises à l’échelle [16, 235] (appelées «swing» ou «niveaux TV») plutôt que d’utiliser la plage complète de [0, 255] (Full Swing ou « PC levels » « ). Cette pratique a été normalisée dans SMPTE-125M afin de prendre en compte les dépassements de signal (« ringing ») dus au filtrage.La valeur 235 correspond à un dépassement maximal noir à blanc de 255 – 235 = 20 ou 20 / (235 – 16) = 9,1%, ce qui est légèrement supérieur au dépassement maximal théorique (phénomène de Gibbs) d’environ 8,9% du étape maximale. La chambre des orteils est plus petite, ne permettant qu’un dépassement de 16/219 = 7,3%, ce qui est inférieur au dépassement maximal théorique de 8,9%. C’est pourquoi 16 est ajouté à Y ‘et pourquoi les coefficients Y’ dans la transformation de base totalisent 220 au lieu de 255. Les valeurs U et V, qui peuvent être positives ou négatives, sont additionnées de 128 pour les rendre toujours positives, donnant une gamme de studio de 16-240 pour U et V. (Ces plages sont importantes dans le montage vidéo et la production, car l’utilisation d’une mauvaise plage se traduira par une image avec des noirs et blancs « clippés », ou une image à faible contraste.)

Balançoire de studio pour BT.601
Pour obtenir la représentation traditionnelle en 8 bits de Y’UV pour SDTV / BT.601, les opérations suivantes peuvent être utilisées:

1. Transformation de base de valeurs RVB 8 bits en valeurs 16 bits (Y ‘: non signé, U / V: signé, les valeurs de la matrice sont arrondies de sorte que plus tard sur la plage Y’ désirée de [16..235] et U / V intervalle de [16..240] est atteint):


2. Réduire (« >> 8 ») à 8 bits avec arrondi (« +128 ») (Y ‘: non signé, U / V: signé):


3. Ajoutez un décalage aux valeurs pour éliminer les valeurs négatives (tous les résultats sont non signés sur 8 bits):


Full swing pour BT.601
Pour obtenir une représentation 8 bits de Y’UV « full-swing » pour SDTV / BT.601, les opérations suivantes peuvent être utilisées:

1. Transformation de base de valeurs RVB 8 bits en valeurs 16 bits (Y ‘: non signé, U / V: signé, les valeurs matricielles sont arrondies de sorte que la plage Y’UV souhaitée de chaque [0..255] soit atteinte plus tard alors qu’aucun débordement ne peut se produire):


2. Redescendre (« >> 8 ») en valeurs de 8 bits avec arrondi (« +128 ») (Y ‘: non signé, U / V: signé):


3. Ajoutez un décalage aux valeurs pour éliminer les valeurs négatives (tous les résultats sont non signés sur 8 bits):


Systèmes de luminance / chrominance en général

Le principal avantage des systèmes luma / chroma tels que Y’UV, et de ses proches Y’IQ et YDbDr, est qu’ils restent compatibles avec la télévision analogique en noir et blanc (largement due au travail de Georges Valensi). Le canal Y ‘enregistre toutes les données enregistrées par les caméras en noir et blanc, de sorte qu’il produit un signal adapté à la réception sur les anciens monochromes. Dans ce cas, les U et V sont simplement rejetés. Si la couleur est affichée, les trois canaux sont utilisés et les informations RVB d’origine peuvent être décodées.

Un autre avantage de Y’UV est que certaines informations peuvent être ignorées afin de réduire la bande passante. L’oeil humain a une sensibilité spatiale relativement faible à la couleur: la précision de l’information de luminosité du canal de luminance a beaucoup plus d’impact sur les détails de l’image discernés que sur les deux autres. Comprendre cette lacune humaine, les normes telles que NTSC et PAL réduisent considérablement la bande passante des canaux de chrominance. (La bande passante est dans le domaine temporel, mais cela se traduit dans le domaine spatial lorsque l’image est scannée.)

Par conséquent, les signaux U et V résultants peuvent être sensiblement « compressés ». Dans les systèmes NTSC (Y’IQ) et PAL, les signaux de chrominance avaient une largeur de bande significativement plus étroite que celle de la luminance. Les premières versions de NTSC alternaient rapidement entre des couleurs particulières dans des zones d’image identiques pour les faire apparaître à l’œil humain, tandis que toutes les normes vidéo analogiques et même numériques utilisent le sous-échantillonnage chromatique en enregistrant les informations de couleur d’une image à résolution réduite. Seule la moitié de la résolution horizontale par rapport à l’information de luminosité est conservée (appelée sous-échantillonnage de chrominance 4: 2: 2), et souvent la résolution verticale est également réduite de moitié (donnant 4: 2: 0). La norme 4: x: x a été adoptée en raison de la norme NTSC de couleur la plus ancienne qui utilisait un sous-échantillonnage chromatique de 4: 1: 1 (où la résolution de couleur horizontale est écartée alors que la verticale est pleine résolution). résolution de couleur d’un quart de plus que la résolution de luminosité. Aujourd’hui, seuls les équipements haut de gamme traitant des signaux non compressés utilisent un sous-échantillonnage de chrominance de 4: 4: 4 avec une résolution identique pour les informations de luminosité et de couleur.

Les axes I et Q ont été choisis en fonction de la largeur de bande nécessaire à la vision humaine, l’un étant celui qui nécessite le plus de bande passante et l’autre (fortuitement à 90 degrés) le minimum. Cependant, la vraie démodulation I et Q était relativement plus complexe, nécessitant deux lignes à retard analogiques, et les récepteurs NTSC l’utilisaient rarement.

Cependant, cette conversion d’espace colorimétrique est à perte, particulièrement évidente en diaphonie de la lumière au fil porteur de chrominance, et inversement, en équipement analogique (y compris les connecteurs RCA pour transférer un signal numérique, car tout ce qu’ils transportent est une vidéo composite analogique, est soit YUV, YIQ, ou même CVBS). En outre, NTSC et PAL codent les signaux de couleur de manière à mélanger les signaux de chrominance et de luma à bande passante élevée afin de maintenir la compatibilité ascendante avec les équipements de télévision en noir et blanc, ce qui entraîne des artefacts de couleur. Lorsque la norme NTSC a été créée dans les années 1950, ce n’était pas vraiment une préoccupation car la qualité de l’image était limitée par l’équipement de surveillance, et non le signal à bande passante limitée reçu. Cependant, la télévision moderne d’aujourd’hui est capable d’afficher plus d’informations que ce qui est contenu dans ces signaux avec perte. Pour rester en phase avec les capacités des nouvelles technologies d’affichage, des tentatives ont été faites depuis la fin des années 1970 pour conserver plus de signal Y’UV tout en transférant des images, telles que les connecteurs SCART (1977) et S-Video (1987).

Au lieu de Y’UV, Y’CbCr a été utilisé comme format standard pour les algorithmes de compression vidéo courants (numériques) tels que MPEG-2. La télévision numérique et les DVD conservent leurs flux vidéo compressés au format MPEG-2, qui utilise un espace colorimétrique Y’CbCr complet, tout en conservant le processus établi de sous-échantillonnage chromatique. Le format vidéo numérique professionnel CCIR 601 utilise également Y’CbCr au taux de sous-échantillonnage de la chrominance commun de 4: 2: 2, principalement pour la compatibilité avec les normes vidéo analogiques précédentes. Ce flux peut être facilement mélangé dans n’importe quel format de sortie nécessaire.

Y’UV n’est pas un espace de couleur absolu. C’est une façon de coder les informations RVB, et la couleur réelle affichée dépend des colorants RVB réels utilisés pour afficher le signal. Par conséquent, une valeur exprimée en Y’UV n’est prévisible que si des colorants RVB standard sont utilisés (c’est-à-dire un ensemble fixe de chromaticités primaires, ou un ensemble particulier de rouge, vert et bleu).

De plus, la gamme de couleurs et de luminosité (appelée gamme de couleurs) de RGB (que ce soit BT.601 ou Rec.709) est beaucoup plus petite que la gamme de couleurs et de luminosité autorisée par Y’UV. Cela peut être très important lors de la conversion de Y’UV (ou Y’CbCr) en RVB, car les formules ci-dessus peuvent produire des valeurs RVB « invalides » – c’est-à-dire des valeurs inférieures à 0% ou très supérieures à 100% en dehors de la gamme standard 16-235 luma (et 16-240 gamme de chrominance) pour les téléviseurs et le contenu HD, ou en dehors de 0-255 pour la définition standard sur PC). À moins que ces valeurs ne soient traitées, elles seront généralement « tronquées » (c’est-à-dire limitées) à la plage valide du canal affecté. Cela change la teinte de la couleur, ce qui est très indésirable, il est donc souvent considéré comme préférable de désaturer les couleurs offensantes de sorte qu’elles entrent dans la gamme RVB. De même, lorsque RGB à une profondeur de bit donnée est converti en YUV à la même profondeur de bits, plusieurs couleurs RGB peuvent devenir la même couleur Y’UV, entraînant une perte d’information.

Relation avec Y’CbCr
Y’UV est souvent utilisé comme terme pour YCbCr. Cependant, ils sont complètement différents formats avec différents facteurs d’échelle.

Néanmoins, la relation entre eux dans le cas standard est simple. En particulier, le canal Y est le même dans les deux, Cb et U sont proportionnels à (BY), et Cr et V sont tous deux proportionnels à (RY).