YCbCr

YCbCr – model przestrzeni kolorów, używany do cyfrowego przesyłania oraz przechowywania obrazów i wideo. Wykorzystuje do tego trzy typy danych: Y – składową luminancji, Cb – składową różnicową chrominancji Y-B, stanowiącą różnicę między luminancją a niebieskim, oraz Cr – składową chrominancji Y-R, stanowiącą różnicę między luminancją a czerwonym. Kolor zielony jest uzyskiwany na podstawie tych trzech wartości.
YCbCr nie jest bezwzględną przestrzenią kolorów, jest sposobem na opisanie informacji na podstawie danych o kolorze w postaci RGB. Wartość YCbCr można określić tylko na podstawie tych danych.
Wykorzystanie
Wyświetlacze CRT do wyświetlania obrazu wykorzystują sygnały RGB w postaci wartości napięć koloru czerwonego, zielonego i niebieskiego. Sygnały te jednak nie są optymalne dla przechowywania lub wykorzystania pasma transmisji, gdyż zawierają dużo redundantnych danych. Model YCbCr wykorzystuje fakt, że ludzkie oko jest bardziej podatne na informacje o jasności obrazu niż informacje o kolorze. Wykorzystując ten fakt, dane o luminancji przechowywane lub transmitowane są w wysokiej rozdzielczości, a dane o chrominancji (Cb, Cr) są kompresowane, dzięki czemu mogą być przesyłane, wykorzystując mniejszą szerokość pasma.
Praktyczny przykład widoczny jest na obrazku po prawej, gdzie mniejsza ilość pasma jest wykorzystana na informacje o kolorze, a większa na czerń i biel, ponieważ ludzki wzrok jest bardziej czuły na te informacje.
Szczegóły techniczne
Sygnały YCbCr stosowane w systemach analogowych (component video) są nazywane YPbPr i są tworzone na podstawie odpowiadającego obrazu RGB, używając dwóch stałych Kb i Kr w sposób następujący:
YPbPr (analogowa wersja 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' w [0; 1] Pb w [-0.5; 0.5] Pr w [-0.5; 0.5]
gdzie Kb i Kr są wyprowadzane z odpowiadającej przestrzeni RGB.
Symbol prim (') oznacza tutaj, że korekcja gammy jest w użyciu; zatem R', G' i B' są nominalnie wartością między 0 a 1, gdzie 0 oznacza najmniejszą intensywność (np. wyświetlanie koloru czarnego), a 1 największą (np. wyświetlanie koloru białego). Wartość luma (Y) także będzie miała nominalną wartość pomiędzy 0 a 1, a wartości chroma (Cb i Cr) będą między −0,5 a +0,5. Odwrotny proces konwersji może być wyprowadzony poprzez odwrócenie powyższych równań.
Przy reprezentowaniu sygnałów w formie cyfrowej, wyniki są skalowane i zaokrąglane, i zazwyczaj dodawane są offsety. Na przykład skalowanie i offset nakładane na komponent Y' według specyfikacji (np. MPEG-2[1]) daje wyniki w wartościach od 16 dla czarnego i 235 dla białego, używając 8-bitowej reprezentacji. Standard ma 8-bitowe cyfrowe wersje Cb i Cr skalowane do innego przedziału od 16 do 240. W konsekwencji, ponowne skalowanie przez iloraz (235-6)/(240-16) = 219/224 jest czasem wymagane przy matrycowaniu kolorów lub przetwarzaniu w przestrzeni YCbCr.
Forma Y'CbCr zdefiniowana dla telewizji standardowej rozdzielczości w ITU-R BT.601, do użytku z cyfrowym złączem Component video jest wyprowadzana z odpowiadającej przestrzeni RGB w sposób następujący:
Z powyższych stałych i równań, można wyprowadzić co następuje dla ITU-R BT.601 Najpierw analogowe 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' w [0; 1] Pb w [-0.5; 0.5] Pr w [-0.5; 0.5]
Następnie jest to próbkowane 8 bitowo na Y'CbCr:
Y'CbCr (601) z przestrzeni 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' w [0; 1]
Y' w {16, 17, ..., 235}
footroom w {1, 2, ..., 15}
headroom w {236, 237, ..., 254}
sync. w {0, 255}
Cb, Cr w {16, 17, ..., 240}
Jeśli R', G' i B' są dane z 8-bitową dokładnością, wtedy:
YCbCr (601) z cyfrowego 8-bitowego 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 w {0, 1, 2, ..., 255}
Y' w {16, 17, ..., 235}
footroom w {1, 2, ..., 15}
headroom w {236, 237, ..., 254}
sync. w {0, 255}
Cb, Cr w {16, 17, ..., 240}
Ten typ Y'CbCr jest używany dla starszych systemów telewizji standardowej, jako że wykorzystuje model RGB, który pasuje najlepiej do charakterystyk emisji fosforu w starszych kineskopach CRT. Odwrotne równanie do powyższego wygląda następująco:
8-bit R'G'B' z przestrzeni YCbCr (601) ===================================================================== R'd = (298.082 * Y' + 408.583 * Cr) / 256 – 222.921 G'd = (298.082 * Y' – 100.291 * Cb – 208.120 * Cr) / 256 + 135.576 B'd = (298.082 * Y' + 516.412 * Cb ) / 256 – 276.836 .....................................................................
Jeszcze inny typ Y'CbCr jest wyznaczony w standardzie ITU-R BT.709, stworzony dla telewizji wysokiej rozdzielczości HDTV. Ta nowsza forma jest też wykorzystywana w niektórych aplikacjach komputerowych do wyświetlania obrazu. W tym wypadku wartości Kb i Kr się różnią, ale równania pozostają te same dla ITU-R BT.709 stałe wynoszą:
Ten typ Y'CbCr jest oparty na modelu RGB który bardziej pasuje do charakterystyk emisji fosforu nowych CRT i innego współczesnego sprzętu do wyświetlania obrazu.
Choć dwie powyższe formy Y'CbCr są dominujące, istnieją jeszcze inne warianty. Na przykład standard SMPTE 240M określa YCbCr używając Kb = 0,087 i Kr = 0,212.
Definicje sygnałów R', G' i B' różnią się między BT.709 i Bt.601, różnią się także wewnątrz BT.601, zależnie od tego jaki system telewizji jest używany (625 linii w PAL i SECAM lub 525 linii w NTSC) i różnią się w innych specyfikacjach.
Ponieważ równania definiujące YCbCr są tworzone w sposób, który obraca cały nominalny sześcian kolorów RGB i skaluje go żeby wypełnić (większy) sześcian kolorów YCbCr, są takie punkty wewnątrz YCbCr które nie mogą być reprezentowane w odpowiadającym RGB (a przynajmniej nie w nominalnych przedziale RGB). To powoduje problemy w określaniu, jak prawidłowo interpretować i wyświetlać niektóre sygnały YCbCr.
Użycie JPEG ze standardu JFIF dopuszcza Y'CbCr, gdzie Y', Cb i Cr mają wszystkie 256 wartości[2]:
JFIF-Y'CbCr (601) z cyfrowego 8-bitowego 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 w {0, 1, 2, ..., 255}
Y', Cb, Cr w {0, 1, 2, ..., 255}
Konwersja powrotna:
R = Y + 1.402 * (Cr - 128) G = Y – 0.34414 * (Cb - 128) – 0.71414 * (Cr - 128) B = Y + 1.772 * (Cb - 128)
Przypisy
- ↑ Specyfikacja MPEG-2, ITU H.262 2000 E, s. 44.
- ↑ JPEG File Interchange Format Version 1.02. jpeg.org. [zarchiwizowane z tego adresu (2014-09-03)]..
Linki zewnętrzne
- Charles Poynton – Color FAQ
- Charles Poynton – Video engineering
- YCrCb to RGB converter
- Color Space Visualization. couleur.org. [zarchiwizowane z tego adresu (2013-11-28)].
- PC Magazine Encyclopedia: YCbCr
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.