Condividi tramite


Informazioni sul video YUV

Il video digitale viene spesso codificato in un formato YUV . Questo articolo illustra i concetti generali del video YUV, insieme ad alcune terminologie, senza approfondire la matematica dell'elaborazione video YUV.

Se si è lavorato con la grafica computer, probabilmente si ha familiarità con il colore RGB. Un colore RGB viene codificato usando tre valori: rosso, verde e blu. Questi valori corrispondono direttamente alle parti dello spettro visibile. I tre valori RGB formano un sistema di coordinate matematiche, denominato spazio dei colori. Il componente rosso definisce un asse di questo sistema di coordinate, il blu definisce il secondo e il verde definisce il terzo, come illustrato nella figura seguente. Qualsiasi colore RGB valido rientra da qualche parte all'interno di questo spazio di colore. Ad esempio, pure magenta è il 100% blu, il 100% rosso e il 0% verde.

diagram showing rgb color space

Anche se RGB è un modo comune per rappresentare i colori, sono possibili altri sistemi di coordinate. Il termine YUV fa riferimento a una famiglia di spazi di colore, tutti i quali codificano le informazioni sulla luminosità separatamente dalle informazioni sul colore. Come RGB, YUV usa tre valori per rappresentare qualsiasi colore. Questi valori sono detti Y', U e V. (infatti, questo uso del termine "YUV" è tecnicamente impreciso. Nel video del computer il termine YUV si riferisce quasi sempre a uno spazio di colore specifico denominato Y'CbCr, illustrato più avanti. Tuttavia, YUV viene spesso usato come termine generale per qualsiasi spazio di colore che funziona lungo gli stessi principi di Y'CbCr.

Il componente Y, chiamato anche luma, rappresenta il valore di luminosità del colore. Il simbolo primo (') viene usato per distinguere luma da un valore strettamente correlato, la luminanza, che è designata Y. La luminanza è derivata da valori RGB lineari, mentre luma è derivato dai valori RGB non lineari (corretti dal gamma). La luminanza è una misura più vicina della luminosità, ma luma è più pratica da usare per motivi tecnici. Il simbolo primo viene omesso di frequente, ma gli spazi di colore YUV usano sempre luma, non la luminanza.

Luma è derivata da un colore RGB prendendo una media ponderata dei componenti rossi, verdi e blu. Per la televisione a definizione standard, viene usata la formula seguente:

Y' = 0.299R + 0.587G + 0.114B

Questa formula riflette il fatto che l'occhio umano è più sensibile a determinate lunghezze d'onda di luce rispetto ad altri, che influisce sulla luminosità percepita di un colore. La luce blu appare dimmest, verde appare più brillante, e rosso è da qualche parte tra. Questa formula riflette anche le caratteristiche fisiche dei fosfori usati nei primi televisori. Una formula più recente, tenendo conto della tecnologia televisiva moderna, viene usata per la televisione ad alta definizione:

Y' = 0.2125R + 0.7154G + 0.0721B

L'equazione luma per la televisione a definizione standard è definita in una specifica denominata ITU-R BT.601. Per la televisione ad alta definizione, la specifica pertinente è ITU-R BT.709.

I componenti you e V, chiamati anche valori di colorazione o valori di differenza di colore , vengono derivati sottraendo il valore Y dai componenti rosso e blu del colore RGB originale:

U = B - Y'

V = R - Y'

Insieme, questi valori contengono informazioni sufficienti per recuperare il valore RGB originale.

Vantaggi di YUV

La televisione analogica usa in parte YUV per motivi storici. I segnali televisivi analogici sono stati progettati per essere compatibili con le versioni precedenti con televisori neri e bianchi. Il segnale televisivo a colori trasporta le informazioni del colore (tu e V) sovrapposte al segnale luma. I televisori neri e bianchi ignorano il chroma e visualizzano il segnale combinato come immagine in scala di grigio. Il segnale è progettato in modo che il croma non interferisca significativamente con il segnale luma. I televisori a colori possono estrarre il croma e convertire il segnale in RGB.

YUV ha un altro vantaggio che è più rilevante oggi. L'occhio umano è meno sensibile ai cambiamenti di tonalità rispetto ai cambiamenti di luminosità. Di conseguenza, un'immagine può avere meno informazioni di croma rispetto alle informazioni luma senza sacrificare la qualità percepita dell'immagine. Ad esempio, è comune esempi dei valori di croma a metà della risoluzione orizzontale degli esempi di luma. In altre parole, per ogni due campioni luma in una riga di pixel, è presente un esempio U e un esempio V. Supponendo che vengano usati 8 bit per codificare ogni valore, è necessario un totale di 4 byte per ogni due pixel (due Y, un U e una V), per una media di 16 bit per pixel o 30% minore della codifica RGB equivalente a 24 bit.

YUV non è intrinsecamente più compatta di RGB. A meno che il chroma non sia inattivo, un pixel YUV è la stessa dimensione di un pixel RGB. Inoltre, la conversione da RGB a YUV non è perdita. Se non esiste alcun downampling, un pixel YUV può essere convertito in RGB senza perdita di informazioni. Il downsampling rende più piccola un'immagine YUV e perde anche alcune delle informazioni sul colore. Se eseguita correttamente, tuttavia, la perdita non è significativa in modo percettivo.

YUV nel video computer

Le formule elencate in precedenza per YUV non sono le conversioni esatte usate nel video digitale. Il video digitale usa in genere una forma di YUV denominata Y'CbCr. Essenzialmente, Y'CbCr funziona ridimensionando i componenti YUV negli intervalli seguenti:

Componente Intervallo
Y' 16–235
Cb/Cr 16-240, con 128 che rappresentano zero

 

Questi intervalli presuppongono 8 bit di precisione per i componenti Y'CbCr. Ecco la derivazione esatta di Y'CbCr, usando la definizione BT.601 di luma:

  1. Iniziare con i valori RGB nell'intervallo [0...1]. In altre parole, il nero puro è 0 e bianco puro è 1. Importante, questi sono valori RGB non lineari (corretti da gamma).

  2. Calcolare luma. Per BT.601, Y' = 0,299R + 0,587G + 0,114B, come descritto in precedenza.

  3. Calcolare i valori di differenza di croma intermedi (B - Y) e (R - Y'). Questi valori hanno un intervallo di +/- 0,886 per (B - Y') e +/- 0,701 per (R - Y').

  4. Ridimensionare i valori di differenza di chroma come indicato di seguito:

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

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

    Questi fattori di ridimensionamento sono progettati per assegnare entrambi i valori allo stesso intervallo numerico, +/- 0,5. Insieme definiscono uno spazio di colore YUV denominato Y'PbPr. Questo spazio dei colori viene usato nel video del componente analogico.

  5. Ridimensionare i valori Y'PbPr per ottenere i valori Y'CbCr finali:

    Y' = 16 + 219 × Y'

    Cb = 128 + 224 × Pb

    Cr = 128 + 224 × Pr

Questi ultimi fattori di ridimensionamento producono l'intervallo di valori elencati nella tabella precedente. Naturalmente, è possibile convertire RGB direttamente in Y'CbCr senza archiviare i risultati intermedi. I passaggi sono elencati separatamente qui per illustrare come Y'CbCr deriva dalle equazioni YUV originali fornite all'inizio di questo articolo.

La tabella seguente mostra i valori RGB e YCbCr per vari colori, usando di nuovo la definizione BT.601 di luma.

Color R G B Y' Cb Cr
Black 0 0 0 16 128 128
Red 255 0 0 81 90 240
Green 0 255 0 145 54 34
Blu 0 0 255 41 240 110
azzurro 0 255 255 170 166 16
Fucsia 255 0 255 106 202 222
Giallo 255 255 0 210 16 146
White 255 255 255 235 128 128

 

Come illustrato in questa tabella, Cb e Cr non corrispondono alle idee intuitive sul colore. Ad esempio, il bianco puro e il nero puro contengono entrambi livelli neutrali di Cb e Cr (128). I valori più alti e minimi per Cb sono rispettivamente blu e giallo. Per Cr, i valori più alti e minimi sono rossi e ciano.

Ulteriori informazioni

Tipi di supporti video

Tipi di supporti