YCbCr-format och chroma subsampling

Chroma subsampling bygger på hur våra ögon fungerar med tappar och stavar. Vi ser inte detaljer i färg och detta utnyttjas flitigt inom videoteknik för att spara på bandbredden. Detaljinformationen ligger i Luma (Y) och färginformationen, Chroma (Cb och Cr) kan reduceras med vad som blir en liten till försumbar kvalitetsförlust. I stort sett all video vi konsumerar som slutprodukt, Youtube, DVD, Blu-ray, digital-TV och så vidare är 4:2:0-subsamplat och därmed kraftigt reducerad färginformation.

Subsampling

Effekt

Bandbredd

4:4:4

Full färgbandbredd

1x

4:2:2

Halverad färgbandbredd

0,67×

4:2:0

1/4-dels färgbandbredd

0,5×

Detta gäller dock inte datorgrafik som har andra förutsättningar. Windows använder så kallad subpixelrendering för att skapa mjukare och behagligare intryck av text, vilket påverkar hur bilden ser ut när vi använder en subsamplad signal.

Klicka för mer information

Överkurs: konvertering mellan RGB och YCbCr

RGB- och YCbCr-signaler har lite olika förutsättningar men ska i rätt sammanhang resultera i identiskt resultat eller åtminstone så identiskt det kan bli. Utan att bli allt för teknisk på djupet sker en omvandling mellan RGB och YCbCr-färgrymd åt båda hållen med intakt innehåll baserat på att man kodar om signalen baserat på förutsättningar för den färgrymd och den EOTF/gamma som används. Till exempel ITU Rec.709 där Y' (luminans justerad för EOTF) är:

Y' = 0,2126R + 0,7152G + 0,0722B

Följande Wikipedia-sida är lite rörig men har mer matematik och förklaringar runt färgrymden och konvertering mellan olika format.

Visa mer

4:2:2-subsampling betyder att den horisontella upplösningen i bilden är halverad horisontellt och färginformationen interpoleras fram från närliggande pixlar. Vid 4:2:0-subsampling är färginformationen halverad både vertikal och horisontellt, alltså en fjärdedel av den ursprungliga informationen.

effekt_text_digital_rgb.png

Text i Windows supixelrenderas med färger. Detta leder till en smetighet när färginformationen först reduceras och sedan interpoleras.

För att komprimera ihop signalen till något som kan sändas som YCbCr 4:2:2 över Displayport-kabeln måste grafikkortet först halvera färgupplösningen genom att räkna samman intilliggande pixlars färginformation.

När denna signal sedan når skärmen interpoleras de hopräknade pixlarna fram igen med effekt att texten blir färgsmetig. Detta påverkas av Cleartype-funktionen. Att stänga av Cleartype avstängt löser inte problemet på något sätt, utan gör bara att det uppenbarar sig annorlunda.

asus_pg27uq_subsamplat_422.jpg

Foto från skärmen på hur 4:2:2-subsampling påverkar textens uteseende.

asus_pg27uq_subsamplat_rgb.jpg

Foto vid RGB-signal. YCbCr 4:4:4 lämnar också texten intakt.

Lustigt nog försvinner så mycket av färginformationen i subpixelrenderingen i textningen vid 4:2:0-subsampling att det inte blir lika synligt. Text blir lite suddigare men smetar inte i färg eftersom så mycket av färginformationen är borta. Dock kan väldigt få datorskärmar återge en 4:2:0-subsamplad bildsignal. De flesta synkar helt enkelt inte mot 4:2:0-signaler.

Effekten av 4:2:0-subsampling har dock tydligt negativ effekt på grafik, särskilt kontrastrika områden kan upplevas pixeliserade. Även den 4:2:2-subsampling vi ser kan påverka spelgrafik en aning med just lite smetningar. Men det är inte nödvändigtvis ett tydligt problem som med texten i Windows.

Olika nivåomfång YCbCr och RGB

RGB-signal för en dator arbetar med ett nivåomfång om 0–255 vid 8-bitars ordlängd. 0 för svart och 255 för vitt. Vilket också kallas ”full range”. För videosammanhang, där YCbCr i första hand är tänkt att verka, är omfånget istället 16–235 för referensnivåer för svart och vitt. Detta har en betydande skillnad för hur bilden kan komma att återges. Växlar du över till YCbCr-signal kan du därför behöva kontrollera inställningar i skärmen. Följande artikel går på djupet om denna skillnad och hur du ankrar nivåer för svart och vitt på rätt sätt:
Bildguiden: Svart och vitt på rätt plats