Färgkodning i digital-TV


Färgkodning i digital-TV har som mål att digitalt överföra färginformation för videobild. Det finns ett antal kodningsstandarder, varav vissa (alla?) följer nedan.

RGB 
I RGB-systemet byggs bilden upp av punkter där man anger styrkan av (R) röd, (G) grön och (B) blå färgkomponent. RGB används mest för datorgrafik och för bildgenerering i digitala bildskärmar så som LCD- och plasmaskärmar.

YUV 
YUV-kodning används inom PAL, NTSC och SECAM-systemen. Y luminans anger bildpunktens ljusstyrka (motsvarar svart/vit bild). U och V är färginformation som kan räknas ut med en formel ur motsvarande RGB-värde. 8-bitars värden används
 Y = 0,299*R + 0,587*G + 0,114*B
 U = -0,147*R - 0,289*G + 0,436*B = 0,492*(B-Y)
 V = 0,615*R - 0,515*G - 0,100*B = 0,877*(R-Y)
där R, G och B är värden mellan 0 och 255. U är således begränsad till intervallet -112 t.o.m. +112 medan V ligger mellan -157 och +157.

YIQ

YIQ är en optionell variant av YUV för NTSC-kompositsignal. 8-bitars värden används
 Y = 0,299*R + 0,587*G + 0,114*B
 I = V*cos(33o) - U*sin(33o)
 Q = V*sin(33o) + U*cos(33o)
där U och V värden är enligt YUV-definitionen ovan.

YCbCr
YCbCr utvecklades som en del i standarden ITU-R BT.601 och finns bland annat för standardupplösning (SDTV) och för högupplösande tv-bilder (HDTV).

YCbCr för SDTV
YCbCr för standardupplöst TV.
 Y = 0,299*R + 0,587*G + 0,114*B
 Cb = -0,172*R - 0,339*G + 0,511*B + 128
 Cr = 0,511*R - 0,428*G - 0,083*B + 128
där R, G och B är 8-bitarsvärden mellan 16 och 235 (värden 0-16 och 236-255 får förekomma, men då ser formlerna annorlunda ut).

YCbCr för HDTV
YCbCr för högupplöst TV. 
 Y = 0,213*R + 0,715*G + 0,072*B
 Cb = -0,117*R - 0,394*G + 0,511*B + 128
 Cr = 0,511*R - 0,464*G - 0,047*B + 128
där R, G och B 8-bitarsvärden mellan 16 och 235 (värden 0-16 och 236-255 får förekomma, men då ser formlerna annorlunda ut )

4:4:4 YCbCr-format 
Med denna kodning kommer varje bildpunkt ha ett Y-, Cb- och Cr-värde. Det vill säga varje bildpunkt behöver 3 st 8-bitars värden. Kodningen används för högsta bildkvalitet.
 linje 1: x-x-x-x-x-x
 linje 2: x-x-x-x-x-x
 linje 3: x-x-x-x-x-x
 linje 4: x-x-x-x-x-x
där "x" motsvarar ett vektorvärde (Y,Cb,Cr).

4:2:2 YCbCr-format 
Med denna kodning sparar man bandbredd genom att bara ha färginformation (Cb och Cr) för varannan bildpunkt. Det vill säga man behöver bara 2 st 8-bitars tal per bildpunkt (1 Y + 1/2 Cb + 1/2 Cr). Kodningen används i studiosammanhang.
 linje 1: x-o-x-o-x-o
 linje 2: x-o-x-o-x-o
 linje 3: x-o-x-o-x-o
 linje 4: x-o-x-o-x-o
där "x" motsvarar ett vektorvärde (Y,Cb,Cr) och "o" har enbart luminansvärde (Y).

4:2:0 YCbCr-format 
Med denna kodning används i H.621 och H.263 en färguppgift för fyra närliggande punkter, två från en udda och två från en jämn bildlinje. I MPEG-2 (till exempel Dvd och DVB) och MPEG-4 används också i snitt en färginformation (Cb och Cr) per fyra bildbunkter, men med något annorlunda sätt att interpolera färg för varje bildpunkt. Per bildpunkt kommer man behöva 1,5 st 8-bitars värden per bildpunkt ( (4 st Y + 1 st Cb + 1 st Cr)/4 ).
 linje 1: o-o-o-o-o-o
          Z   Z   Z 
 linje 2: o-o-o-o-o-o
          
 linje 3: o-o-o-o-o-o
          Z   Z   Z
 linje 4: o-o-o-o-o-o
 
 MPEG-2/4: 
där "Z" motsvarar ett vektorvärde (Cb,Cr) och "o" har enbart luminansvärde (Y).

 linje 1: o-o-o-o-o-o
           Z   Z   Z 
 linje 2: o-o-o-o-o-o
          
 linje 3: o-o-o-o-o-o
           Z   Z   Z
 linje 4: o-o-o-o-o-o
 
 H.261/H.263: 
där "Z" motsvarar ett vektorvärde (Cb,Cr) och "o" har enbart luminansvärde (Y).

4:1:1 YCbCr-format 
Med denna kodning använder man en färginformation (Cb och Cr) för fyra horisontella bildpunkter på en bildlinje. Med andra ord behöver man 1,5 st 8-bitars värden per bildpunkt.
 linje 1: x-o-o-o-x-o-o-o-
 linje 2: x-o-o-o-x-o-o-o-
 linje 3: x-o-o-o-x-o-o-o-
 linje 4: x-o-o-o-x-o-o-o-
där "x" motsvarar ett vektorvärde (Y,Cb,Cr) och "o" har enbart luminansvärde (Y).

Källor

TV-teknik