YCbCr

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Barevný obrázek a jeho prvky Y, Cb a Cr. Poznamenejme, že Y-ový obrázek je v podstatě černobílá kopie hlavního obrázku a že bílý sníh je představitelem průměrné hodnoty v Cr Cb. Hnědá barva stavení reprezentuje slabé Cb a silné Cr. Zelená tráva je představitelem slabé Cb a Cr; Modrá obloha je reprezentantem silné Cb a slabé Cr

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ám 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 není absolutní barevný model. Je to 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řená hodnota jako Y'CbCr jenom předpokládaná, použijeme-li obvyklé RGB vybarvení, nebo ICC profilu.

Odůvodnění[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Y'CbCr signály se nazývají YPbPr, a jsou tvořeny z odpovídajícího gama-nastavení RGB (červená, zelená a modrá) zdrojem je 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]

Y' =  Kr * R' + (1 - Kr - Kb) * G' + Kb * B' \,

Pb =\frac12 * \frac{B' - Y'}{1 - Kb}

Pr =\frac12 * \frac{R' - Y'}{1 - Kr}

Kde Kb a Kr jsou obyčejně odvozeny od odpovídajícího RGB prostoru.

Hlavní symboly (') tady 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í (např. pro zobrazení bílé barvy). Výsledná hodnota světlosti (Y) bude mít jmenovitý rozsah z 0 do 1, a hodnoty sytosti barvy (Cb a Cr) budou mít nominální hodnoty z -0.5 do +0.5. Proces opačné změny může být 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 Za použití 8-bitového vyjádření je výsledek v hodnotě 16 pro černou a 235 pro bílou. 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 obrazovek CRT 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}


Zdroje[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku YCbCr na anglické Wikipedii.