YUV: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.8.7 |
Arcadius (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
[[ |
[[Файл:YUV UV plane.svg|thumb|300px|Цветовая плоскость U—V (при Y=0,5), представленная в цветовой гамме RGB]] |
||
[[Файл:Barn-yuv.png|right|thumb|150px|Фотография и её YUV-компоненты |
[[Файл:Barn-yuv.png|right|thumb|150px|Фотография и её YUV-компоненты]] |
||
'''YUV''' — [[цветовая модель]], в которой цвет состоит из трёх компонентов — яркость ( |
'''YUV''' — [[цветовая модель]], в которой цвет состоит из трёх компонентов — яркость Y (Luma) и два цветоразностных компонента UV (Chroma). |
||
Компоненты |
Компоненты YUV определены на основе компонент [[RGB]] следующим образом: |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
Y &= K_R \cdot R + ( 1 - K_R - K_B) \cdot G + K_B \cdot B \\ |
Y &= K_R \cdot R + ( 1 - K_R - K_B) \cdot G + K_B \cdot B \\ |
||
U &= B - Y \\ |
U &= B - Y \\ |
||
V &= R - Y \\ |
V &= R - Y \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
Обратное преобразование в |
Обратное преобразование в RGB: |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
R &= Y + V \\ |
R &= Y + V \\ |
||
G &= Y - \frac{K_R \cdot V + K_B \cdot U}{1 - K_R - K_B} \\ |
G &= Y - \frac{K_R \cdot V + K_B \cdot U}{1 - K_R - K_B} \\ |
||
B &= Y + U \\ |
B &= Y + U \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
Обратное преобразование сохраняет диапазон изменения компонент |
Обратное преобразование сохраняет диапазон изменения компонент RGB, но диапазон изменения компонент U и V больше, чем у Y, что не удобно для кодирования и передачи сигнала / данных. Поэтому вводится нормировка. |
||
== Нормировка YUV; формат [[YPbPr]] == |
|||
Если принять, что компоненты |
Если принять, что компоненты RGB изменяются в диапазоне [0, A), тогда, по определению, компонента U изменяется в интервале [−(1 — K<sub>B</sub>) A, (1 — K<sub>B</sub>) A), а V в интервале [−(1 — K<sub>R</sub>) A, (1 — K<sub>R</sub>) A). |
||
Для приведения к интервалу [ |
Для приведения к интервалу [−A/2, A/2) компоненты U и V нормируют: |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
U &= \frac{1}{2} \cdot \frac{B - Y}{1 - K_B} \\ |
U &= \frac{1}{2} \cdot \frac{B - Y}{1 - K_B} \\ |
||
V &= \frac{1}{2} \cdot \frac{R - Y}{1 - K_R} \\ |
V &= \frac{1}{2} \cdot \frac{R - Y}{1 - K_R} \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
Обратное преобразование в |
Обратное преобразование в RGB: |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
R &= Y + 2 \cdot V \cdot (1 - K_R) \\ |
R &= Y + 2 \cdot V \cdot (1 - K_R) \\ |
||
G &= Y - \frac{2 K_R \cdot V \cdot (1 - K_R) + 2 K_B \cdot U \cdot (1 - K_B)}{1 - K_R - K_B} \\ |
G &= Y - \frac{2 K_R \cdot V \cdot (1 - K_R) + 2 K_B \cdot U \cdot (1 - K_B)}{1 - K_R - K_B} \\ |
||
B &= Y + 2 \cdot U \cdot (1 - K_B) \\ |
B &= Y + 2 \cdot U \cdot (1 - K_B) \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
Этот способ представления компонент используется для аналогового формата |
Этот способ представления компонент используется для аналогового формата YPbPr. |
||
== Цифровое представление YUV; формат [[YCbCr]] == |
|||
Цифровое представление |
Цифровое представление YUV — это формат YCbCr. В основном, для цифрового формата данных используются целые неотрицательные числа из диапазонов размера степени двойки. Чаще — 8, 10 бит и так далее. Поскольку U и V могут быть отрицательными, то для них вводят смещение — половина от уровней квантования (кодирования). Также для прореживания менее информативных компонент применяют пространственное кодирование, например YUYV или YUV422. |
||
;YCbCr или YCrCb? |
|||
В рекомендации BT.601 |
В рекомендации BT.601 чаще встречается последовательность Cr, Cb — в тексте, формулах, но в Приложении 2 BT.601 — уже Cb, Cr. В последующих рекомендациях той же группы последовательность Cb, Cr сохраняется. Хотя эти рекомендации не регламентируют последовательность записи Cb, Cr в адресном пространстве, казус в очерёдности (Cr, Cb) был принят и воплощён, например, в [[OpenCV]]<ref>Функция [https://docs.opencv.org/3.4.1/df/d4e/group__imgproc__c.html#gga7ee8d0f117a79ca7eb1e0076a9182bcbafb02fdbcb86a95df995f251025f42e73 cv::cvtColor с параметром CV_YCrCb2BGR] {{Wayback|url=https://docs.opencv.org/3.4.1/df/d4e/group__imgproc__c.html#gga7ee8d0f117a79ca7eb1e0076a9182bcbafb02fdbcb86a95df995f251025f42e73 |date=20211122025812 }}</ref>, что затронуло не только названия параметров, но и очерёдность в адресном пространстве. |
||
Тем не менее T-REC-T.871 строго задаёт последовательность |
Тем не менее T-REC-T.871 строго задаёт последовательность — Cb, Cr: «If three components are used, they shall be present in the image with the ordering of the components such that the first component is the Y channel, the second component is the ''C<sub>B</sub>'' channel, and the third component is the ''C<sub>R</sub>'' channel». |
||
component is the Y channel, the second component is the ''C<sub>B</sub>'' channel, and the third component is the ''C<sub>R</sub>'' channel." |
|||
== Коэффициенты K<sub>R</sub> K<sub>B</sub> == |
|||
В рекомендации [[:en:Rec. 601|BT.601]] определены следующие значения для |
В рекомендации [[:en:Rec. 601|BT.601]] определены следующие значения для K<sub>R</sub> и K<sub>B</sub>: |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
K_R &= 0.299 \\ |
K_R &= 0.299 \\ |
||
K_B &= 0.114 \\ |
K_B &= 0.114 \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
Эти же значения используются для преобразования цветового пространства в |
Эти же значения используются для преобразования цветового пространства в YPbPr и [[JPEG]] (JFIF)<ref>{{Cite web |url=https://www.itu.int/rec/T-REC-T.871-201105-I |title=ITU T-REC-T.871 T.871 : Information technology - Digital compression and coding of continuous-tone still images: JPEG File Interchange Format (JFIF) |access-date=2018-05-24 |archive-date=2018-05-25 |archive-url=https://web.archive.org/web/20180525063620/https://www.itu.int/rec/T-REC-T.871-201105-I |deadlink=no }}</ref>. |
||
По рекомендации [[:en:Rec. 709|BT.709]] определены значения |
По рекомендации [[:en:Rec. 709|BT.709]] определены значения K<sub>R</sub> и K<sub>B</sub>: |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
K_R &= 0.2126 \\ |
K_R &= 0.2126 \\ |
||
K_B &= 0.0722 \\ |
K_B &= 0.0722 \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
B рекомендации [[:en:Rec. 2020|BT.2020]] |
B рекомендации [[:en:Rec. 2020|BT.2020]] |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
K_R &= 0.2627 \\ |
K_R &= 0.2627 \\ |
||
K_B &= 0.0593 \\ |
K_B &= 0.0593 \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
При этом для сохранения постоянства яркости учитывают нелинейное соответствие |
При этом для сохранения постоянства яркости учитывают нелинейное соответствие RGB и яркости и вводят различные множители для отрицательных и положительных значений U и V. В традиционном варианте, с непостоянной яркостью, множители — постоянные величины. |
||
== Кодирование == |
|||
;YUV в JPEG (T-REC-T.871) |
|||
В рекомендации T-REC-T.871 определены преобразования для представления |
В рекомендации T-REC-T.871 определены преобразования для представления YUV в цифровой форме YCbCr: |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
Y &= 0.299 \cdot R + 0.587 \cdot G + 0.114 \cdot B \\ |
Y &= 0.299 \cdot R + 0.587 \cdot G + 0.114 \cdot B \\ |
||
C_B &= \frac{1}{2} \cdot \frac{B - Y}{1 - 0.114} + 128 \approx -0.1687 \cdot R - 0.3313 \cdot G + 0.5 \cdot B + 128 \\ |
C_B &= \frac{1}{2} \cdot \frac{B - Y}{1 - 0.114} + 128 \approx -0.1687 \cdot R - 0.3313 \cdot G + 0.5 \cdot B + 128 \\ |
||
C_R &= \frac{1}{2} \cdot \frac{R - Y}{1 - 0.299} + 128 \approx 0.5 \cdot R - 0.4187 \cdot G - 0.0813 \cdot B + 128 \\ |
C_R &= \frac{1}{2} \cdot \frac{R - Y}{1 - 0.299} + 128 \approx 0.5 \cdot R - 0.4187 \cdot G - 0.0813 \cdot B + 128 \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
По сути, с учётом смещения нуля это преобразование аналогично |
По сути, с учётом смещения нуля это преобразование аналогично YPbPr — все компоненты занимают полный диапазон, доступный для данной разрядности данных. |
||
Обратное преобразование в |
Обратное преобразование в RG': |
||
<math>\begin{align} |
<center><math>\begin{align} |
||
R &= Y + 1.402 \cdot (C_R - 128) \\ |
R &= Y + 1.402 \cdot (C_R - 128) \\ |
||
G &= Y - (0.114 \cdot 1.772 \cdot (C_B - 128) + 0.299 \cdot 1.402 \cdot (C_R - 128)) / 0.587 \approx Y - 0.3441 \cdot (C_B - 128) - 0.7141 \cdot (C_R - 128)\\ |
G &= Y - (0.114 \cdot 1.772 \cdot (C_B - 128) + 0.299 \cdot 1.402 \cdot (C_R - 128)) / 0.587 \approx Y - 0.3441 \cdot (C_B - 128) - 0.7141 \cdot (C_R - 128)\\ |
||
B &= Y + 1.772 \cdot (C_B - 128) \\ |
B &= Y + 1.772 \cdot (C_B - 128) \\ |
||
\end{align}</math> |
\end{align}</math></center> |
||
При этом каждую вычисленную компоненту следует привести к [0,255] |
При этом каждую вычисленную компоненту следует привести к [0,255] — отсечь. |
||
;YUV в телевизионных стандартах |
|||
Преобразования в рекомендациях BT.601, BT.709, BT.2020 так же относятся к представлению |
Преобразования в рекомендациях BT.601, BT.709, BT.2020 так же относятся к представлению YUV цифровой форме YCbCr, основное отличие которых от T-REC-T.871 в том, что диапазоны изменения компонент меньше, чем доступный для данной разрядности данных: для Y это 220 (8 бит) или 877 (10 бит) и минимальное значение 16 (8 бит) или 64 (10 бит), а для U и V — 225 (8 бит) или 897 (10 бит) и ноль соответствует значению 128 (8 бит) или 512 (10 бит). Это сделано для того, чтобы использовать крайние значения (0 и 255 (8 бит)) для передачи данных синхронизации. |
||
Преобразование для BT.601 |
Преобразование для BT.601 YCbCr осуществляется по следующим формулам: |
||
<center><math>\begin{align} |
<center><math>\begin{align} |
||
Строка 108: | Строка 108: | ||
\end{align}</math></center> |
\end{align}</math></center> |
||
Обратное преобразование для BT.601 в |
Обратное преобразование для BT.601 в RGB YCbCr из RGB осуществляется по следующим формулам: |
||
<center><math>\begin{align} |
<center><math>\begin{align} |
||
Строка 116: | Строка 116: | ||
\end{align}</math></center> |
\end{align}</math></center> |
||
где R, G, B — соответственно, |
где R, G, B — соответственно, цифровое представление интенсивности цветов красного, зелёного и синего; Y — яркостная составляющая; U и V — цветоразностные составляющие. По BT.601 и BT.709 цифровое представление интенсивности цветов означает, что исходную величину интенсивности, прошедшую предварительную гамма-коррекцию и находящуюся в диапазоне [0,1], следует умножить на 219 и прибавить 16, например R = 219 R' + 16. |
||
⚫ | Модель широко применяется в телевещании и хранении/обработке видеоданных. Яркостная компонента содержит «черно-белое» (в оттенках серого) изображение, а оставшиеся две компоненты содержат информацию для восстановления требуемого цвета. Это было удобно в момент появления цветного телевидения для совместимости со старыми черно-белыми телевизорами. |
||
⚫ | |||
Это было удобно в момент появления цветного ТВ для совместимости со старыми черно-белыми телевизорами. |
|||
В цветовом пространстве YUV есть один компонент, который представляет яркость (сигнал яркости), и два других компонента, которые представляют цвет (сигнал цветности). В то время как яркость передаётся со всеми деталями, некоторые детали в компонентах цветоразностного сигнала, лишённого информации о яркости, могут быть удалены путём понижения разрешения отсчётов (фильтрация или усреднение), что может быть сделано несколькими способами (то есть существует много форматов для сохранения изображения в цветовом пространстве YUV). |
В цветовом пространстве YUV есть один компонент, который представляет яркость (сигнал яркости), и два других компонента, которые представляют цвет (сигнал цветности). В то время как яркость передаётся со всеми деталями, некоторые детали в компонентах цветоразностного сигнала, лишённого информации о яркости, могут быть удалены путём понижения разрешения отсчётов (фильтрация или усреднение), что может быть сделано несколькими способами (то есть существует много форматов для сохранения изображения в цветовом пространстве YUV). |
||
YUV часто путают с цветовым пространством |
YUV часто путают с цветовым пространством YCbCr, и, как правило, термины YCbCr и YUV используются как взаимозаменяемые, что приводит к дополнительной путанице. Когда речь идёт о видео или [[Цифровая обработка сигналов|сигналах в цифровой форме]], особенно в контексте телевизионного вещания, термин «YUV» в основном означает «Y’CbCr» в терминах одной из рекомендаций BT.601, BT.709 и BT.2020. Если говорят о JPEG или MPEG или в контексте [[Цифровая обработка изображений|обработки изображений]], то имеют в виду T-REC-T.871 YCbCr. |
||
== См. также == |
== См. также == |
||
* [[Цветовая субдискретизация]] |
* [[Цветовая субдискретизация]] |
||
* [[YPbPr]] |
|||
== Примечания == |
== Примечания == |
||
{{примечания}} |
{{примечания}} |
||
== |
== Ссылки == |
||
* [http://compression.ru/download/articles/color_space/ch03.pdf Color Spaces] |
* [http://compression.ru/download/articles/color_space/ch03.pdf Color Spaces] |
||
* [https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.871-201105-I!!PDF-E&type=items ITU T-REC-T.871-201105] |
* [https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.871-201105-I!!PDF-E&type=items ITU T-REC-T.871-201105] |
||
Строка 140: | Строка 137: | ||
* [https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2020-2-201510-I!!PDF-R.pdf ITU R-REC-BT.2020-2-201510] |
* [https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2020-2-201510-I!!PDF-R.pdf ITU R-REC-BT.2020-2-201510] |
||
* [https://web.archive.org/web/20180525205643/https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-1-201706-I!!PDF-R.pdf ITU R-REC-BT.2100-1-201706] |
* [https://web.archive.org/web/20180525205643/https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-1-201706-I!!PDF-R.pdf ITU R-REC-BT.2100-1-201706] |
||
== Ссылки == |
|||
* [http://www.fourcc.org/yuv.php Варианты упаковки значений YUV]{{ref-en}} |
* [http://www.fourcc.org/yuv.php Варианты упаковки значений YUV]{{ref-en}} |
||
Текущая версия от 21:23, 17 июня 2024
YUV — цветовая модель, в которой цвет состоит из трёх компонентов — яркость Y (Luma) и два цветоразностных компонента UV (Chroma).
Компоненты YUV определены на основе компонент RGB следующим образом:
Обратное преобразование в RGB:
Обратное преобразование сохраняет диапазон изменения компонент RGB, но диапазон изменения компонент U и V больше, чем у Y, что не удобно для кодирования и передачи сигнала / данных. Поэтому вводится нормировка.
Нормировка YUV; формат YPbPr
[править | править код]Если принять, что компоненты RGB изменяются в диапазоне [0, A), тогда, по определению, компонента U изменяется в интервале [−(1 — KB) A, (1 — KB) A), а V в интервале [−(1 — KR) A, (1 — KR) A).
Для приведения к интервалу [−A/2, A/2) компоненты U и V нормируют:
Обратное преобразование в RGB:
Этот способ представления компонент используется для аналогового формата YPbPr.
Цифровое представление YUV; формат YCbCr
[править | править код]Цифровое представление YUV — это формат YCbCr. В основном, для цифрового формата данных используются целые неотрицательные числа из диапазонов размера степени двойки. Чаще — 8, 10 бит и так далее. Поскольку U и V могут быть отрицательными, то для них вводят смещение — половина от уровней квантования (кодирования). Также для прореживания менее информативных компонент применяют пространственное кодирование, например YUYV или YUV422.
- YCbCr или YCrCb?
В рекомендации BT.601 чаще встречается последовательность Cr, Cb — в тексте, формулах, но в Приложении 2 BT.601 — уже Cb, Cr. В последующих рекомендациях той же группы последовательность Cb, Cr сохраняется. Хотя эти рекомендации не регламентируют последовательность записи Cb, Cr в адресном пространстве, казус в очерёдности (Cr, Cb) был принят и воплощён, например, в OpenCV[1], что затронуло не только названия параметров, но и очерёдность в адресном пространстве.
Тем не менее T-REC-T.871 строго задаёт последовательность — Cb, Cr: «If three components are used, they shall be present in the image with the ordering of the components such that the first component is the Y channel, the second component is the CB channel, and the third component is the CR channel».
Коэффициенты KR KB
[править | править код]В рекомендации BT.601 определены следующие значения для KR и KB:
Эти же значения используются для преобразования цветового пространства в YPbPr и JPEG (JFIF)[2].
По рекомендации BT.709 определены значения KR и KB:
B рекомендации BT.2020
При этом для сохранения постоянства яркости учитывают нелинейное соответствие RGB и яркости и вводят различные множители для отрицательных и положительных значений U и V. В традиционном варианте, с непостоянной яркостью, множители — постоянные величины.
Кодирование
[править | править код]- YUV в JPEG (T-REC-T.871)
В рекомендации T-REC-T.871 определены преобразования для представления YUV в цифровой форме YCbCr:
По сути, с учётом смещения нуля это преобразование аналогично YPbPr — все компоненты занимают полный диапазон, доступный для данной разрядности данных.
Обратное преобразование в RG':
При этом каждую вычисленную компоненту следует привести к [0,255] — отсечь.
- YUV в телевизионных стандартах
Преобразования в рекомендациях BT.601, BT.709, BT.2020 так же относятся к представлению YUV цифровой форме YCbCr, основное отличие которых от T-REC-T.871 в том, что диапазоны изменения компонент меньше, чем доступный для данной разрядности данных: для Y это 220 (8 бит) или 877 (10 бит) и минимальное значение 16 (8 бит) или 64 (10 бит), а для U и V — 225 (8 бит) или 897 (10 бит) и ноль соответствует значению 128 (8 бит) или 512 (10 бит). Это сделано для того, чтобы использовать крайние значения (0 и 255 (8 бит)) для передачи данных синхронизации.
Преобразование для BT.601 YCbCr осуществляется по следующим формулам:
Обратное преобразование для BT.601 в RGB YCbCr из RGB осуществляется по следующим формулам:
где R, G, B — соответственно, цифровое представление интенсивности цветов красного, зелёного и синего; Y — яркостная составляющая; U и V — цветоразностные составляющие. По BT.601 и BT.709 цифровое представление интенсивности цветов означает, что исходную величину интенсивности, прошедшую предварительную гамма-коррекцию и находящуюся в диапазоне [0,1], следует умножить на 219 и прибавить 16, например R = 219 R' + 16.
Модель широко применяется в телевещании и хранении/обработке видеоданных. Яркостная компонента содержит «черно-белое» (в оттенках серого) изображение, а оставшиеся две компоненты содержат информацию для восстановления требуемого цвета. Это было удобно в момент появления цветного телевидения для совместимости со старыми черно-белыми телевизорами.
В цветовом пространстве YUV есть один компонент, который представляет яркость (сигнал яркости), и два других компонента, которые представляют цвет (сигнал цветности). В то время как яркость передаётся со всеми деталями, некоторые детали в компонентах цветоразностного сигнала, лишённого информации о яркости, могут быть удалены путём понижения разрешения отсчётов (фильтрация или усреднение), что может быть сделано несколькими способами (то есть существует много форматов для сохранения изображения в цветовом пространстве YUV).
YUV часто путают с цветовым пространством YCbCr, и, как правило, термины YCbCr и YUV используются как взаимозаменяемые, что приводит к дополнительной путанице. Когда речь идёт о видео или сигналах в цифровой форме, особенно в контексте телевизионного вещания, термин «YUV» в основном означает «Y’CbCr» в терминах одной из рекомендаций BT.601, BT.709 и BT.2020. Если говорят о JPEG или MPEG или в контексте обработки изображений, то имеют в виду T-REC-T.871 YCbCr.
См. также
[править | править код]Примечания
[править | править код]- ↑ Функция cv::cvtColor с параметром CV_YCrCb2BGR Архивная копия от 22 ноября 2021 на Wayback Machine
- ↑ ITU T-REC-T.871 T.871 : Information technology - Digital compression and coding of continuous-tone still images: JPEG File Interchange Format (JFIF) . Дата обращения: 24 мая 2018. Архивировано 25 мая 2018 года.
Ссылки
[править | править код]- Color Spaces
- ITU T-REC-T.871-201105
- ITU R-REC-BT.601-7-201103
- ITU R-REC-BT.709-6-201506
- ITU R-REC-BT.2020-2-201510
- ITU R-REC-BT.2100-1-201706
- Варианты упаковки значений YUV (англ.)
В статье не хватает ссылок на источники (см. рекомендации по поиску). |