YCbCr - YCbCr

Wizualizacja przestrzeni barw YCbCr
Płaszczyzna CbCr przy stałej lumie Y′=0,5
Kolorowy obraz i jego składowe Y′, C B i C R. Obraz Y′ jest zasadniczo kopią obrazu głównego w skali szarości.

YCbCr , Y'CbCr lub Y Pb / Cb Pr / Cr , również pisane jako YC B C R lub Y'C B C R , to rodzina przestrzeni kolorów używany jako część rurociągu kolorowego obrazu w filmie i fotografii cyfrowej systemy. Y′ to składowa luma , a C B i CR to składowe chromatyczne niebieskiej i czerwonej różnicy . Y′ (z prim) różni się od Y, które jest luminancją , co oznacza, że ​​natężenie światła jest kodowane nieliniowo w oparciu o kolory podstawowe RGB z korekcją gamma .

Przestrzenie kolorów Y′CbCr są definiowane przez matematyczną transformację współrzędnych ze skojarzonych kolorów podstawowych RGB i punktu bieli. Jeśli bazowa przestrzeń kolorów RGB jest bezwzględna, przestrzeń kolorów Y′CbCr również jest bezwzględną przestrzenią kolorów ; odwrotnie, jeśli przestrzeń RGB jest źle zdefiniowana, tak samo jest z Y′CbCr. Transformacja jest zdefiniowana w ITU-T H.273 . Niemniej jednak ta zasada nie dotyczy baz DCI-D65 używanych przez Netflix z macierzą BT.2020-NCL.

Racjonalne uzasadnienie

Wyświetlacze z lampą elektronopromieniową są sterowane sygnałami napięcia czerwonego, zielonego i niebieskiego, ale te sygnały RGB nie są wydajne jako reprezentacja do przechowywania i transmisji, ponieważ mają dużą nadmiarowość .

YCbCr i Y′CbCr są praktycznym przybliżeniem przetwarzania kolorów i percepcyjnej jednolitości, gdzie podstawowe kolory odpowiadające w przybliżeniu czerwonemu, zielonemu i niebieskiemu są przetwarzane na percepcyjnie znaczącą informację. W ten sposób późniejsze przetwarzanie obrazu/wideo, transmisja i przechowywanie mogą wykonywać operacje i wprowadzać błędy w percepcyjnie znaczący sposób. Y′CbCr służy do oddzielenia sygnału luminancji (Y′), który może być przechowywany z wysoką rozdzielczością lub przesyłany z dużą szerokością pasma, oraz dwóch składowych chrominancji (C B i CR ), które mogą być redukowane, podpróbkowane, skompresowane, lub w inny sposób traktowane oddzielnie w celu poprawy wydajności systemu.

Praktycznym przykładem może być zmniejszenie przepustowości lub rozdzielczości przydzielonej do „koloru” w porównaniu z „czarno-białym”, ponieważ ludzie są bardziej wrażliwi na informacje czarno-białe (patrz przykład obrazu po prawej). Nazywa się to podpróbkowaniem chrominancji .

YCbCr

YCbCr jest czasami skracany do YCC . Y′CbCr jest często nazywany YPbPr, gdy jest używany do analogowego komponentowego wideo, chociaż termin Y′CbCr jest powszechnie używany dla obu systemów, z liczbą pierwszą lub bez.

Y′CbCr jest często mylony z przestrzenią kolorów YUV i zazwyczaj terminy YCbCr i YUV są używane zamiennie, co prowadzi do pewnych nieporozumień. Główną różnicą jest to, że YUV jest dla telewizji analogowej, a YCbCr dla telewizji cyfrowej, różnica polega również na tym, że U max i V max w YCbCr to oba .

Sygnały Y'CbCr (przed skalowania i korekcji umieszczenie sygnałów do postaci cyfrowej) zwane YpbPr i są utworzone z odpowiednich gamma dostosowane RGB (czerwony, zielony, niebieski) źródłowych przy użyciu trzech określonych stałych K R K G , i K B w sposób następujący:

gdzie K R K G i K B są zwykle pochodzą z definicji odpowiednich przestrzeni RGB, a niezbędnych do wypełnienia .

Równoważna manipulacja macierzą jest często określana jako „matryca kolorów”:

I jego odwrotność:

Tutaj symbole pierwsze (′) oznaczają, że stosowana jest korekcja gamma ; zatem R′, G′ i B′ nominalnie mieszczą się w zakresie od 0 do 1, przy czym 0 oznacza minimalną intensywność (np. dla wyświetlania koloru black ) a 1 maksimum (np. dla wyświetlania koloru white ). Wynikowa wartość luminancji (Y) będzie miała wtedy nominalny zakres od 0 do 1, a wartości nasycenia (P B i P R ) będą miały nominalny zakres od -0,5 do +0,5. Proces konwersji odwrotnej można łatwo uzyskać odwracając powyższe równania.

Podczas przedstawiania sygnałów w postaci cyfrowej wyniki są skalowane i zaokrąglane, a przesunięcia są zazwyczaj dodawane. Na przykład skalowanie i przesunięcie zastosowane do komponentu Y′ zgodnie ze specyfikacją (np. MPEG-2 ) daje w wyniku wartość 16 dla czerni i wartość 235 dla bieli, gdy używana jest reprezentacja 8-bitowa. Standard ten 8-bitowych cyfrowych wersji C B i C R skalowane w różnym zakresie od 16 do 240. W związku z tym, przeskalowania przez frakcję (235-16) / (240-16) = 219/224 czasami wymagane jest, gdy robi matrycowanie kolorów lub przetwarzanie w przestrzeni YCbCr, powodujące zniekształcenia kwantyzacji, gdy późniejsze przetwarzanie nie jest wykonywane przy użyciu wyższych głębi bitowych.

Skalowanie, które skutkuje użyciem mniejszego zakresu wartości cyfrowych niż to, co może wydawać się pożądane do reprezentacji nominalnego zakresu danych wejściowych, pozwala na pewne „przeregulowanie” i „niedoregulowanie” podczas przetwarzania bez konieczności niepożądanego obcinania . Te „ przestrzeń nad głową ” i „przestrzeń nad głowami” mogą być również użyte do rozszerzenia nominalnej gamy kolorów , jak określono w xvYCC .

Wartość 235 obejmuje maksymalne przeregulowanie czerni do bieli wynoszące 255 - 235 = 20 lub 20 / (235 - 16) = 9,1%, które jest nieco większe niż teoretyczne maksymalne przeregulowanie ( zjawisko Gibbsa ) wynoszące około 8,9% maksymalny krok. Przestrzeń toe jest mniejsza, pozwalając tylko 16/219 = 7,3% przeregulowania, czyli mniej niż teoretyczne maksymalne przeregulowanie wynoszące 8,9%. Ale ponieważ wartości 0 i 255 są zarezerwowane w HDMI, w rzeczywistości jest to nieco mniej.

Ponieważ równania definiujące Y'CbCr są uformowane w sposób, który obraca cały nominalny sześcian kolorów RGB i skaluje go, aby zmieścił się w (większym) sześcianie kolorów YCbCr, istnieją pewne punkty w sześcianie kolorów Y'CbCr, których nie można przedstawić w odpowiednią domenę RGB (przynajmniej nie w nominalnym zakresie RGB). Powoduje to pewne trudności w określeniu, jak prawidłowo interpretować i wyświetlać niektóre sygnały Y'CbCr. Te wartości Y'CbCr spoza zakresu są używane przez xvYCC do kodowania kolorów spoza gamy BT.709.

Konwersja RGB do YCbCr

Konwersja ITU-R BT.601

Forma Y′CbCr zdefiniowana do użytku w telewizji o standardowej rozdzielczości w standardzie ITU-R BT.601 (dawniej CCIR 601 ) do użytku z cyfrowym komponentowym wideo pochodzi z odpowiedniej przestrzeni RGB (ITU-R BT.470- 6 kolorów podstawowych Systemu M) w następujący sposób:

Z powyższych stałych i wzorów można wyprowadzić następujące wnioski dla ITU-R BT.601.

Analogowy YPbPr z analogowego R'G'B' wyprowadza się w następujący sposób:

Cyfrowe Y′CbCr (8 bitów na próbkę) pochodzi z analogowego R'G'B' w następujący sposób:

lub po prostu komponentowo

Otrzymane sygnały wahają się od 16 do 235 dla Y′ (Cb i Cr w zakresie od 16 do 240); wartości od 0 do 15 nazywane są footroom , a wartości od 236 do 255 nazywane są headroom .

Alternatywnie, cyfrowe Y′CbCr można wyprowadzić z cyfrowego R'dG'dB'd (8 bitów na próbkę, każdy przy użyciu pełnego zakresu, gdzie zero oznacza czerń, a 255 oznacza biel) zgodnie z następującymi równaniami:

W poniższym wzorze współczynniki skalowania są mnożone przez . Pozwala to na umieszczenie w mianowniku wartości 256, którą można obliczyć za pomocą pojedynczego przesunięcia bitowego .

Jeżeli cyfrowe źródło R'd G'd B'd zawiera miejsce na nogi i zapas, przesunięcie 16 miejsca na nogi musi być najpierw odjęte od każdego sygnału, a współczynnik skalowania musi być uwzględniony w równaniach.

Transformacja odwrotna to:

Transformacja odwrotna bez zaokrągleń (przy użyciu wartości pochodzących bezpośrednio z rekomendacji ITU-R BT.601) to:

Ta forma Y′CbCr jest używana głównie w starszych systemach telewizyjnych o standardowej rozdzielczości , ponieważ wykorzystuje model RGB, który pasuje do charakterystyki emisji luminoforu starszych kineskopów kineskopowych .

Konwersja ITU-R BT.709

Zalec. 709 w porównaniu z Rec. 2020

Inna forma Y′CbCr jest określona w standardzie ITU-R BT.709 , głównie do użytku w HDTV . Nowsza forma jest również używana w niektórych aplikacjach zorientowanych na wyświetlacz komputerowy, jako sRGB (chociaż macierz używana dla formy sRGB YCbCr, sYCC , nadal jest BT.601). W tym przypadku wartości Kb i Kr różnią się, ale formuły ich użycia są takie same. Dla ITU-R BT.709 stałe to:

Ta forma Y′CbCr jest oparta na modelu RGB, który bardziej odpowiada charakterystyce emisji luminoforu nowszych CRT i innych nowoczesnych urządzeń wyświetlających. Macierze konwersji dla BT.709 są następujące:

Definicje sygnałów R', G' i B' również różnią się między BT.709 i BT.601 i różnią się w ramach BT.601 w zależności od typu używanego systemu telewizyjnego (625-liniowy jak w PAL i SECAM lub 525-liniowy jak w NTSC ) i różnią się dalej innymi specyfikacjami. W różnych projektach istnieją różnice w definicjach współrzędnych chromatyczności R, G i B, referencyjnego punktu bieli, obsługiwanego zakresu gamy, dokładnych funkcji wstępnej kompensacji gamma w celu wyprowadzenia R', G' i B' z R, G i B oraz w skalowaniu i przesunięciach stosowanych podczas konwersji z R'G'B' na Y′CbCr. Zatem prawidłowa konwersja Y′CbCr z jednej postaci do drugiej nie jest tylko kwestią odwrócenia jednej macierzy i zastosowania drugiej. W rzeczywistości, gdy Y'CbCr przeznaczony jest idealnie wartości K B i K R pochodzą z dokładny opis podstawowych kolorów RGB sygnałów, tak że luminancji (Y ') odpowiada sygnał tak ściśle, jak to możliwe do gamma skorygowany pomiar luminancji (zazwyczaj oparty na pomiarach CIE 1931 reakcji układu wzrokowego człowieka na bodźce barwne).

Konwersja ITU-R BT.2020

W ITU-R BT.2020 norma określa zarówno BT.709 gamma poprawione Y'CbCr przy użyciu tych samych korekcji gamma (z wyjątkiem Y”, który oblicza się inaczej), ale stały luminancji Cb, Cr zwany YcCbcCrc.

Dla obu współczynniki to:

Macierz dekodowania dla BT.2020-NCL jest taka z 14 miejscami po przecinku:

Mniejsze wartości w macierzy nie są zaokrąglane, są to wartości precyzyjne. W przypadku systemów o ograniczonej precyzji (na przykład 8 lub 10 bitów) można zastosować niższą precyzję powyższej macierzy, na przykład zachowując tylko 6 cyfr po przecinku dziesiętnym.

YcCbcCrc może być używany, gdy najwyższym priorytetem jest najdokładniejsze zachowanie informacji o luminancji. Reprezentacja kolorów ma prawdziwą stałą luminancję (CL), gdy kanał luminancji (Y' z Y′CbCr zakodowany za pomocą funkcji transferu BT.709 lub na przykład PQ) pasuje do zakodowanej luminancji (zakodowana luminancja Y BT.709 lub PQ z XYZ), niemniej jednak YcCbcCrc nie zapewnia stałej intensywności (CI), co ma miejsce w IC T C P . BT.2020 nie definiuje PQ, a tym samym HDR, jest dalej zdefiniowany w SMPTE ST 2084 i BT.2100 .

Wyprowadzenie współczynników BT.2020 z prawyborów BT.2020 dodatkowo zmienia przestrzeń.

Konwersja SMPTE 240M

Standard SMPTE 240M definiuje YCC za pomocą następujących współczynników:

Współczynniki pochodzą z podstawowych SMPTE 170M i punktu bieli, tak jak w standardzie 240M.

Konwersja JPEG

Użycie JFIF z JPEG obsługuje zmodyfikowaną Rec. 601 Y′CbCr, gdzie Y′, C B i CR mają pełny 8-bitowy zakres [0...255]. Poniżej znajdują się równania konwersji wyrażone z dokładnością do sześciu cyfr dziesiętnych. (Dla idealnych równań patrz ITU-T T.871.) Zauważ, że dla poniższych wzorów, zakres każdego wejścia (R,G,B) jest również pełnym 8-bitowym zakresem [0...255].

I z powrotem:

Współczynniki dla BT.470-6 System B, G podstawowych

Te współczynniki nie są używane i nigdy nie były używane.

Systemy luminancji oparte na chromatyczności

H.273 opisuje również stałe i niestałe systemy luminancji, które pochodzą ściśle z kolorów podstawowych i punktu bieli, dzięki czemu sytuacje takie jak sRGB/BT.709 domyślne kolory podstawowe JPEG, które wykorzystują macierz BT.601 (pochodzącą z BT.470- 6 System M) nie zdarzają się.

Bibliografia

Zewnętrzne linki