YCbCr


YCbCr, Y′CbCr, или Y Pb/Cb Pr/Cr, также пишется как Y’CBCR или YCBCR — семейство цветовых пространств, которые используются для передачи цветных изображений в компонентном видео и цифровой фотографии.
Y' — компонента яркости, CB и CR являются синей и красной цветоразностными компонентами. Y' (с апострофом) отличается от Y, которой обозначают яркость без предыскажения. Апостроф означает, что интенсивность света кодируется нелинейно с помощью гамма-коррекции.
Y’CbCr не является абсолютным цветовым пространством; скорее это способ кодирования информации сигналов RGB. Для систем отображения используются сигналы основных цветов RGB (красный, зелёный и синий). Эти сигналы не являются эффективными для хранения и передачи изображений, так как они имеют большую избыточность. Поэтому перевод в систему Y’CbCr позволяет передать информацию о яркости с полным разрешением, а для цветоразностных компонент произвести субдискретизацию, то есть выборку с уменьшением числа передаваемых элементов изображения, так как человеческий глаз менее чувствителен к перепадам цвета. Это повышает эффективность системы, позволяя уменьшить поток видеоданных. Значение, выраженное в Y’CbCr будет предсказуемо, если первично использовались сигналы основных цветов RGB.
Формулы преобразования
YCbCr иногда сокращают до YCC. Y’CbCr часто называют YPbPr, когда речь идет о системах аналогового компонентного видео, хотя термин Y’CbCr обычно используется для обеих систем.
Y’CbCr часто путают с цветовым пространством YUV, и, как правило, термины YCbCr и YUV используются как взаимозаменяемые, что приводит к некоторой путанице. Когда речь идет о видео или сигналах в цифровой форме, термин «YUV» в основном означает «Y’CbCr».
Сигналы Y’CbCr (до нормирования и смещения для перевода сигналов в цифровую форму) называют YPbPr. Они формируются с применением гамма-коррекции из соответствующих RGB источников с помощью двух определенных констант KB и KR следующим образом:
[math]\displaystyle{ \begin{align} Y' &= K_R \cdot R' + (1 - K_R - K_B) \cdot G' + K_B \cdot B'\\ P_B &=\frac12 \cdot \frac{B' - Y'}{1 - K_B}\\ P_R &=\frac12 \cdot \frac{R' - Y'}{1 - K_R} \end{align} }[/math]
где KB и KR коэффициенты, которые обычно выводятся из определения соответствующего пространства RGB.
Здесь апостроф ' означает компоненты с гамма-коррекцией, поэтому R', G' и B' располагаются в пределах от 0 до 1, где 0 соответствует минимальной интенсивности (например, для отображения чёрного цвета) и 1 соответствует максимуму (например, для отображения белого цвета). Результирующее значение яркости (Y) будет иметь пределы от 0 до 1, а значения цветности (PB и PR) будут расположены в пределах от −0.5 до +0.5. Обратный процесс преобразования может быть легко получен путём обращения представленных выше уравнений.
При представлении сигналов в цифровой форме, результат нормируется и округляется, и, как правило, добавляется смещение. Так, например, нормирование и смещение, применяемое к компоненте Y' согласно спецификации (например, MPEG-2[1]), приводит к значению 16 для чёрного и значению 235 для белого при использовании 8-битного представления. Стандарт имеет 8-битные цифровые версии Cb и Cr, нормированные в другом диапазоне: от 16 до 240.
Нормирование приводит к использованию меньшего диапазона цифровых значений. В этом случае имеется некоторый запас, который может быть использован в случае превышения порога входными данными, таким образом устраняя необходимость их отсечения. Дополнительные диапазоны могут быть использованы для расширения цветовой палитры, как например в пространстве xvYCC .
Так как в пространстве YCRCB можно представить существенно более широкую гамму значений сигнала, чем поддерживаемая в соответствующих диапазонах сигналов R, G и B, то существует вероятность получения таких сигналов Y, CR и CB, которые, несмотря на пригодность каждого из них по отдельности, могут, при преобразовании к RGB, привести к получению значений, лежащих вне допустимых пределов. Это можно предотвратить наложив ограничения на сигналы Y, CR и CB, также такие ограничения применяются для поддержания значений яркости и цветовых оттенков, при этом субъективные искажения минимизируются посредством потери только насыщенности цвета.
Преобразования по рекомендации ITU-R BT.601
Форма Y’CbCr, которая была определена для телевидения стандартной чёткости (стандарт МСЭ-R BT.601 (бывшая CCIR 601)) для использования с цифровыми компонентным видео формируется из соответствующего пространства RGB следующим образом:
- [math]\displaystyle{ K_B = 0.114 }[/math]
- [math]\displaystyle{ K_R = 0.299 }[/math]
Из приведенных выше констант и формул, могут быть получены следующие уравнения для МСЭ-R BT.601. Преобразование аналоговых компонент R’G’B' в аналоговые YPbPr происходит следующим образом:
- [math]\displaystyle{ \begin{align} Y' &= & 0.299 \cdot R' &+& 0.587 \cdot G' &+& 0.114 \cdot B'\\ P_B &= -& 0.168736 \cdot R' &-& 0.331264 \cdot G' &+& 0.5 \cdot B'\\ P_R &= & 0.5 \cdot R' &-& 0.418688 \cdot G' &-& 0.081312 \cdot B' \end{align} }[/math]
Цифровые(дискретные-квантованные отсчёты) компоненты Y’CbCr (8 бит) рассчитываются из аналоговых R’G’B 'следующим образом:
- [math]\displaystyle{ \begin{align} Y' &=& 16 &+& ( 65.481 \cdot R' &+& 128.553 \cdot G' &+& 24.966 \cdot B')\\ C_B &=& 128 &+& (-37.797 \cdot R' &-& 74.203 \cdot G' &+& 112.0 \cdot B')\\ C_R &=& 128 &+& (112.0 \cdot R' &-& 93.786 \cdot G' &-& 18.214 \cdot B') \end{align} }[/math]
или просто покомпонентно
- [math]\displaystyle{ \begin{align} Y'C_BC_R &=& ( 16, 128, 128 ) + ( 219, 224, 224 ) \cdot Y'P_BP_R\\ \end{align} }[/math]
Полученные сигналы находятся в диапазоне от 16 до 235, значения от 0 до 15 и от 236 до 255 формируют два запасных диапазона.
Кроме того, цифровые(дискретные-квантованные отсчёты) компоненты Y’CbCr происходит от цифровых(дискретные-квантованные отсчёты) компонент R’dG’dB’d (8 бит на семпл) в соответствии со следующими уравнениями:
- [math]\displaystyle{ \begin{align} Y' &=& 16 &+& \frac{ 65.738 \cdot R'_D}{256} &+& \frac{129.057 \cdot G'_D}{256} &+& \frac{ 25.064 \cdot B'_D}{256}\\ C_B &=& 128 &+& \frac{-37.945 \cdot R'_D}{256} &-& \frac{ 74.494 \cdot G'_D}{256} &+& \frac{112.439 \cdot B'_D}{256}\\ C_R &=& 128 &+& \frac{112.439 \cdot R'_D}{256} &-& \frac{ 94.154 \cdot G'_D}{256} &-& \frac{ 18.285 \cdot B'_D}{256} \end{align} }[/math]
Все значения умножаются. Это позволяет получить значение знаменателя 256, которое может быть рассчитано одним битовым сдвигом .
Обратное преобразование:
- [math]\displaystyle{ \begin{align} R'_D &=& \frac{298.082 \cdot Y'}{256} &&&+& \frac{408.583 \cdot C_R}{256} &-& 222.921\\ G'_D &=& \frac{298.082 \cdot Y'}{256} &-& \frac{100.291 \cdot C_B}{256} &-& \frac{208.120 \cdot C_R}{256} &+& 135.576\\ B'_D &=& \frac{298.082 \cdot Y'}{256} &+& \frac{516.412 \cdot C_B}{256} &&&-& 276.836 \end{align} }[/math]
Обратное преобразование без округления (с использованием значений исходит непосредственно из рекомендации ITU-R BT.601) составляет:
- [math]\displaystyle{ \begin{align} R'_D &=& \frac{255}{219}\cdot(Y'-16) &+&&& \frac{255}{112}\cdot0.701\cdot(C_R-128)\\ G'_D &=& \frac{255}{219}\cdot(Y'-16) &-& \frac{255}{112}\cdot0.886\cdot\frac{0.114}{0.587}\cdot(C_B-128) &-& \frac{255}{112}\cdot0.701\cdot\frac{0.299}{0.587}\cdot(C_R-128)\\ B'_D &=& \frac{255}{219}\cdot(Y'-16) &+& \frac{255}{112}\cdot0.886\cdot(C_B-128) \end{align} }[/math]
Полученные по приведенным выше формулам значения цифровых компонент R’dG’dB’d должны быть ограничены до 8-битного диапазона 0−255.
Эта форма Y’CbCr используется в основном для старых систем телевидения стандартной чёткости, поскольку она использует модель RGB, что соответствует характеристикам излучения люминофоров старых ЭЛТ-мониторов.
Преобразования по рекомендации ITU-R BT.709
В стандарте ITU-R BT.709 указаны различные формы Y’CbCr, в первую очередь для использования в ТВЧ. Новая форма также используется в некоторых компьютерных дисплеях. В этом случае, значения Kb и Kr отличаться, но уравнения с ними будут такими же. Для МСЭ-R BT.709 коэффициенты определены как:
- [math]\displaystyle{ K_B = 0.0722 }[/math]
- [math]\displaystyle{ K_R = 0.2126 }[/math]
Эта форма Y’CbCr основана на модели RGB, который более точно соответствует характеристикам новых ЭЛТ и другим современным дисплеям.
Определения сигналов R’G’B' также отличаются между BT.709 и BT.601. Также они различны в BT.601 в зависимости от типа применяемой телевизионной системы (625 строк, как в PAL и SECAM или 525 строк, как в NTSC), и отличаются некоторыми характеристиками. В разных системах существуют различия при определении координат цветности R, G, B, точкой отсчета белого цвета, поддерживаемой цветовой палитры, гамма-коррекции для получения R’G’B' из RGB, а также нормирования и смещения, которые должны применяться во время преобразования из R’G’B' к Y’CbCr.[2]
Преобразования JPEG
Формат обмена файлами JPEG позволяет использовать Y’CbCr, где Y, CB и CR имеют полный 8-битный диапазон 0-255:
- [math]\displaystyle{ \begin{align} Y' &=& 0 &+ (0.299 & \cdot R'_D) &+ (0.587 & \cdot G'_D) &+ (0.114 & \cdot B'_D)\\ C_B &=& 128 & - (0.168736 & \cdot R'_D) &- (0.331264 & \cdot G'_D) &+ (0.5 & \cdot B'_D)\\ C_R &=& 128 &+ (0.5 & \cdot R'_D) &- (0.418688 & \cdot G'_D) &- (0.081312 & \cdot B'_D) \end{align} }[/math]
И обратно:
- [math]\displaystyle{ \begin{align} R &=& Y &&& + 1.402 \cdot &(C_R-128) \\ G &=& Y &- 0.34414 \cdot &(C_B-128)& - 0.71414 \cdot &(C_R-128) \\ B &=& Y &+ 1.772 \cdot &(C_B-128)& \end{align} }[/math]
CbCr плоскости при различных значениях Y
-
Y=0
-
Y=0.5
-
Y=1
См. также
Примечания
- ↑ e.g. the MPEG-2 specification, ITU H.262 2000 E pg. 44
- ↑ Charles Poynton, Digital Video and HDTV, Chapter 24, pp. 291—292, Morgan Kaufmann, 2003.
Ссылки
- Рекомендация МСЭ-R BT. 601-7 (03/2011) Студийные параметры кодирования цифрового телевидения для стандартного 4:3 и широкоэкранного 16:9 форматов
- Charles Poynton — Color FAQ (англ.)
- Charles Poynton — Video engineering (англ.)
- Color Space Visualization (англ.)
- PC Magazine Encyclopedia: YCbCr (англ.)
- YUV, YCbCr, YPbPr color spaces. (англ.)
- Color formats (англ.)
- Color conversion (англ.)