Quasi tutto il video che guardiamo ogni giorno, dalle piattaforme di streaming alle riprese dello smartphone, conserva il colore con una risoluzione inferiore a quella dell'immagine. Non è un difetto nascosto ma una scelta deliberata, basata su una caratteristica della visione umana: siamo molto più sensibili alle variazioni di luminosità che a quelle di colore. Il sottocampionamento cromatico sfrutta questa asimmetria per risparmiare dati senza che l'occhio, nella maggior parte dei casi, se ne accorga.
Luminanza e crominanza
Gli schermi lavorano in RGB, ma il video viene quasi sempre codificato in un modello chiamato Y'CbCr:
- Y' (luma) rappresenta la luminosità, in pratica un'immagine in bianco e nero;
- Cb e Cr (croma) rappresentano la differenza di blu e di rosso rispetto alla luminosità.
Separare i dati in questo modo permette di trattare luminosità e colore in maniera diversa. La luma viene sempre conservata alla risoluzione piena; i due canali di croma possono essere ridotti.
Come si leggono le sigle
La notazione J:a:b descrive un blocco di riferimento largo 4 pixel e alto 2:
- il primo numero (4) è la larghezza del blocco;
- il secondo indica quanti campioni di colore ci sono nella prima riga;
- il terzo indica quanti campioni di colore nuovi ci sono nella seconda riga.
| Schema | Risoluzione del colore | Dati rispetto a 4:4:4 | Uso tipico |
|---|---|---|---|
| 4:4:4 | piena in entrambe le direzioni | 100% | grafica, effetti visivi, registrazione di schermo |
| 4:2:2 | metà orizzontale, piena verticale | circa 67% | produzione broadcast, montaggio |
| 4:2:0 | metà orizzontale e metà verticale | 50% | distribuzione, streaming, dischi, smartphone |
In 4:2:0, quindi, un solo campione di colore è condiviso da un quadrato di 2×2 pixel. In un video Full HD la luma è a 1920×1080, mentre ciascun canale di croma è a 960×540.
Quando non si nota
Sulle riprese naturali, come paesaggi, persone o interni, il 4:2:0 è praticamente invisibile. I bordi tra colori diversi nella realtà sono raramente netti al singolo pixel, e la luma conserva tutti i dettagli che l'occhio usa per percepire la nitidezza.
Quando si nota
I problemi emergono quando i bordi di colore sono netti e sottili.
- Testi colorati su fondo colorato: una scritta rossa su fondo blu può apparire con contorni sbavati o una leggera frangia.
- Registrazioni dello schermo: interfacce, codice e fogli di calcolo hanno caratteri sottili e colori pieni. In 4:2:0 il testo colorato perde definizione, mentre il testo bianco o nero resta nitido perché dipende soprattutto dalla luma.
- Chroma key: per scontornare un soggetto su fondo verde serve un bordo di colore preciso. Con poco colore, il contorno di capelli e dita diventa irregolare.
- Correzione colore spinta: aumentare molto la saturazione o separare tonalità vicine evidenzia i blocchi di colore.
Implicazioni pratiche
Per chi riprende
Molte fotocamere registrano in 4:2:0 a 8 bit nei formati di consumo e offrono 4:2:2 a 10 bit nelle modalità più avanzate. Se sapete già che farete chroma key o una correzione colore importante, conviene registrare in 4:2:2 quando possibile.
Per chi monta
Durante il montaggio è meglio non ridurre ulteriormente il colore. Un codec intermedio in 4:2:2 o 4:4:4 conserva le informazioni durante le varie lavorazioni; il passaggio a 4:2:0 va fatto solo nell'esportazione finale.
Per chi registra lo schermo
Per tutorial e dimostrazioni software, una registrazione in 4:4:4 o, almeno, una scelta di colori ad alto contrasto con testo chiaro su fondo scuro o viceversa riduce molto il problema. Ricordate però che la maggior parte delle piattaforme ricodifica in 4:2:0: un testo troppo piccolo e colorato sarà comunque sacrificato.
Con FFmpeg
Il formato dei pixel si controlla con l'opzione -pix_fmt. Per la massima compatibilità in distribuzione:
ffmpeg -i ingresso.mov -c:v libx264 -pix_fmt yuv420p uscita.mp4
Molti lettori hardware e alcuni browser non riproducono H.264 in 4:2:2 o 4:4:4: se un file esportato si vede su computer ma non sul televisore, il formato dei pixel è uno dei primi parametri da controllare.
Sottocampionamento e bit depth
Sono due cose diverse, spesso citate insieme. Il sottocampionamento riguarda quanti campioni di colore ci sono; la profondità di bit riguarda quanti livelli può assumere ogni campione. Un video 4:2:0 a 10 bit ha meno campioni di colore di un 4:2:2 a 8 bit, ma gradazioni più fini, e quindi meno bande nei cieli e nelle sfumature.
In sintesi
- Il video separa luminosità (luma) e colore (croma) e riduce la risoluzione del colore.
- 4:2:0 conserva un campione di colore ogni 2×2 pixel ed è lo standard per la distribuzione.
- Su riprese naturali non si nota; su testi colorati, schermate e chroma key sì.
- Registrate e montate in 4:2:2 o 4:4:4 se prevedete lavorazioni pesanti.
- Per la compatibilità finale esportate in yuv420p.