YCbCr
YCbCr nebo Y'CbCr patří do rodiny barevného modelu, používá se u videa a nebo u digitální fotografie. Y' je řazen do luminance (jasu) komponentu a Cb s Cr jsou modrý a červený chrominanční komponent. Náplní Y je odlišení luminance. Y'CbCr je často zaměňován s YUV barevným modelem, a příznačné termíny YCbCr a YUV se zaměňují, což vede ke zmatku. Když se odvolává na signál ve video nebo digitální formě, termín "YUV" pravděpodobně opravdu znamená "Y'CbCr". YCbCr je někdy krácen na YCC. Když se používá pro analogové video, Y'CbCr je často nazýván YPbPr, ačkoli termín Y'CbCr je všeobecně používán pro oba systémy, bez rozlišení.
Y'CbCr je způsob kódování RGB informací. Přímé zobrazení barev závisí na aktuálním užití barev RGB v signálu. Proto je vyjádřena hodnota jako Y'CbCr jenom předpokládaná, použijeme-li obvyklé RGB vybarvení, nebo ICC profilu.
Odůvodnění
Video CRT je zobrazováno s pomocí červených, zelených a modrých potenciálových signálů, ale tento model RGB signálů není účinný pro zobrazení umístění a zprostředkování, proto je hodně vzájemné nadbytečnosti. Rozložení jako Y'CbCr jsou použity na oddělení jasového signálu (Y') který může být uchováván s vysokým rozlišením nebo vysílán s velkou šířkou pásma, a dva chromatické komponenty (Cb a Cr), které mohou být s redukovanou šířkou pásma, s dílčími vzorky, komprimované, nebo jinak odděleně zpracovávané pro zlepšenou účinnost systému.
Technické detaily
Y'CbCr signály se nazývají YPbPr a jsou tvořeny z odpovídajícího gama-nastavení RGB (červená, zelená a modrá); jako zdrojje použit dvou definovaných konstant Kb a Kr tímto způsobem:
YPbPr (analogová verze Y'CbCr) z R'G'B'
Y' = Kr * R' + (1 - Kr - Kb) * G' + Kb * B' Pb = 0.5 * (B' - Y') / (1 - Kb) Pr = 0.5 * (R' - Y') / (1 - Kr) .................................................... R', G', B' in [0; 1] Y' in [0; 1] Pb in [-0.5; 0.5] Pr in [-0.5; 0.5]
,
kde Kb a Kr jsou obyčejně odvozeny od odpovídajícího RGB prostoru.
Hlavní symboly (') znamenají použití gamma korekce; tedy R', G' a B' a jmenovitý rozsah z 0 do 1, kde 0 představuje minimální intenzitu (např. pro zobrazení černé barvy) a 1 je maximální intezita (např. pro zobrazení bílé barvy). Výsledná hodnota světlosti (Y) bude mít jmenovitý rozsah z intervalu mezi 0 a 1. Hodnoty sytosti barvy (Cb a Cr) budou mít nominální hodnoty z -0.5 do +0.5. Proces opačné změny je snadno odvozen převrácením výše uvedených rovnic.
Když se signály reprezentují v digitální formě, výsledky jsou změněny v měřítku a otočeny, ořezy jsou typicky přidány. Například změna měřítka a offset (ořez) použitý pro Y' component za specifikaci (např. MPEG-2. Při použití 8bitového vyjádření je výsledek v hodnotě 16 pro černou a 235 pro bílou barvu. Standard má 8-bit digitální verzi z Cb a Cr stupnici do odlišné stupnice 16 na 240. Z toho plyne, že změněním měřítka pomocí zlomku (235-16)/(240-16) = 219/224 je nutná, když děláme barevnou matici nebo pracujeme v YCbCr prostoru, výsledek je v dávkové deformaci.
Změna měřítka, aby výsledek při použití menšího rozměru digitálních hodnot, se může ukázat jako žádoucí pro znázornění jmenovitého rozsahu vkládaných dat umožňujících pro některé "překmity" a "podkmity" během procesu bez způsobení nežádoucích ořezů.
Uspořádání Y'CbCr, které je definováno v SDTV použité ITU-R BT.601 (formálně CCIR 601) standard pro použití s digitálním component video je odvozeno z komprese RGB prostoru tímto způsobem:
Kb = 0.114 Kr = 0.299
Z předchozích konstant a vzorců může být odvozeno pro ITU-R BT.601:
Nejdříve analogové YPbPr:
YPbPr (ITU-R BT.601)
Y' = + 0.299 * R' + 0.587 * G' + 0.114 * B' Pb = - 0.168736 * R' - 0.331264 * G' + 0.5 * B' Pr = + 0.5 * R' - 0.418688 * G' - 0.081312 * B' ........................................................ R', G', B' in [0; 1] Y' v [0; 1] Pb v [-0.5; 0.5] Pr v [-0.5; 0.5]
Potom je toto převedeno pro Y'CbCr:
Y'CbCr (601) z R'G'B'
Y' = 16 + 65.481 * R' + 128.553 * G' + 24.966 * B' Cb = 128 - 37.797 * R' - 74.203 * G' + 112.0 * B' Cr = 128 + 112.0 * R' - 93.786 * G' - 18.214 * B' ........................................................ R', G', B' v [0; 1] Y' v {16, 17, ..., 235} s "footroom" v {1, 2, ..., 15} "headroom" v {236, 237, ..., 254} sync. v {0, 255} Cb, Cr v {16, 17, ..., 240}
Pokud je R', G' a B' dáno s 8-bit digitální přesností, poté
YCbCr (601) z "digital 8-bit R'G'B' "
Y' = 16 + 1/256 * ( 65.738 * R'd + 129.057 * G'd + 25.064 * B'd) Cb = 128 + 1/256 * (-37.945 * R'd - 74.494 * G'd + 112.439 * B'd) Cr = 128 + 1/256 * (112.439 * R'd - 94.154 * G'd - 18.285 * B'd) ........................................................................ R'd, G'd, B'd in {0, 1, 2, ..., 255} Y' v {16, 17, ..., 235} s "footroom" v {1, 2, ..., 15} "headroom" v {236, 237, ..., 254} sync. v {0, 255} Cb, Cr v {16, 17, ..., 240}
Tento vzorec Y'CbCr se primárně používá pro starší SDTV systémy, jak se používá v RGB modelu, který vyhovuje emisním fosforovým charakteristikám starších CRT obrazovek s katodovým paprskem.
Odlišnost od Y'CbCr je specifikována v normě ITU-R BT.709, převážně pro použití televize HDTV. Novější vzorec je také využit v některých počítačových aplikacích zaměřených na vizuální nebo grafický výstup. V tomto případě se hodnoty Kb a Kr liší, ale vzorce pro jejich použití jsou stejné. Pro normu ITU-R BT.709, jsou tyto konstanty:
Kb = 0.0722 Kr = 0.2126
Forma Y'CbCr je založena na RGB modelu, který více vyhovuje emisním charakteristikám fosforu novějších CRT a jiných moderních obrazových zařízení.
Všimněme si, že definice R', G', a B' barevných primárních signálů se také liší mezi BT.601 a BT.709. Tedy správná konverze YCbCr z jednoho tvaru do druhého není jen záležitostí invertování jedné matice (matrix) a aplikování té další. Vlastně, když je YCbCr použito správně, hodnoty Kb a Kr jsou odvozeny z přesné specifikace RGB barevných primárních signálů, takže jasový signál (Y') maximálně souhlasí gamma korigovanému měření jasu (charakteristicky založenému na měřeních reakce lidského zrakového systému na barevné podněty podle Mezinárodní komise pro osvětlování z roku 1931).
Ačkoli výše zmíněné dva vzorce Y'CbCr jsou převládající, existují i jiné varianty. Například norma SMPTE 240M specifikuje YCbCr při použití Kb = 0.087 a Kr = 0.212.
Protože rovnice, které definují YCbCr jsou formulovány ve tvaru, který natáčí celou nominální RGB barevnou kostku a mění její měřítko, aby se vešla dovnitř (větší) YCbCr barevné kostky, existují některé body uvnitř YCbCr barevné kostky, které nemohou být zastoupeny v odpovídající RGB oblasti (alespoň ne uvnitř nominálního RGB rozsahu). Toto způsobuje určité potíže ve stanovení, jak správně interpretovat a zobrazit některé YCbCr signály.
JPEG dovoluje Y'CbCr kde Y', Cb a Cr mají plnou hodnotu 256:
JPEG-Y'CbCr (601) z "digital 8-bit R'G'B' "
Y' = + 0.299 * R'd + 0.587 * G'd + 0.114 * B'd Cb = 128 - 0.168736 * R'd - 0.331264 * G'd + 0.5 * B'd Cr = 128 + 0.5 * R'd - 0.418688 * G'd - 0.081312 * B'd ........................................................................ R'd, G'd, B'd v {0, 1, 2, ..., 255} Y', Cb, Cr v {0, 1, 2, ..., 255}
Reference
V tomto článku byl použit překlad textu z článku YCbCr na anglické Wikipedii.