Найти в Дзене
Свет и светодиоды

Из sRGB в CIE XYZ

Оглавление

Цветовые пространства

CIE 1931 XYZ - цветовое пространство, которое охватывает все цветовые ощущения, которые видны человеку со средним зрением. Это пространство является базовым, на основе которого определяются многие другие цветовые пространства. Множество цветов в пространстве CIE 1931 XYZ описывается локусом в координатах XY.

Стандартное цветовое пространство (или цветовая модель) для компьютера и Интернета: sRGB. Это пространство учитывает полутона (255 на каждый из трех цветов) и гамма-коррекцию. Подробнее о sRGB можно почитать здесь. А о гамма-коррекции здесь и здесь. Треугольник цветности определяется следующими значениями цветовых координат:

Таблица 1. Координаты sRGB
Таблица 1. Координаты sRGB

В качестве опорного белого цвета в этом пространстве выбран не равноэнергетический цвет Е, а цвет D65. На диаграмме локус и цветовой треугольник sRGB выглядят так:

Локус CIE 1931 XYZ и цветовой треугольник sRGB (рисунок из открытых источников)
Локус CIE 1931 XYZ и цветовой треугольник sRGB (рисунок из открытых источников)

Преобразование sRGB - CIE XYZ

Преобразование производится в 3 этапа. Во-первых, нужно преобразовать нелинейные (гамма откорректированные) значения яркости в линейные. Это делается по следующей формуле:

-3

На втором этапе, для определения цветовых координат нужно перемножить две матрицы:

-4

Матрица коэффициентов 3х3 взята из рекомендации ITU-R BT.709. Те, кто помнит, как перемножать матрицы, может сделать это самостоятельно. Для более ленивых можно рекомендовать стандартную функцию табличного редактора: МУМНОЖ.

И, наконец, на третьем этапе нужно отнормировать координаты X', Y', Z:

-5

Контрольные точки

Для проверки приведенных формул рассмотрим следующие контрольные точки: белый цвет D65 (255, 255, 255), красный цвет (255, 0, 0), зеленый цвет (0, 255, 0) и синий цвет (0, 0, 255).

Для начала применяем к исходным R, G, B формулу (1). Полученные линейные значения Rl, Gl, Bl умножаем на матрицу коэффициентов по формуле (2). И, наконец, нормируем полученные координаты X', Y', Z' в соответствии с формулой (3). Сказанное иллюстрируется следующей таблицей:

Таблица 2. Преобразование sRGB в XYZ
Таблица 2. Преобразование sRGB в XYZ

Сравнивая полученные значения XYZ с исходными, приведенными в таблице 1, можно отметить небольшую разницу. Это вызвано недостаточной точностью коэффициентов матрицы (4 знака после запятой). Увеличение разрядности коэффициентов снимет эту проблему.

Полутона

В пространстве sRGB присутствуют полутона (градации яркости) - 256 на каждый из 3 цветов, всего 16 777 216 цветовых оттенков. Пространство CIE 1931 XYZ в явном виде не предполагает наличия полутонов. Встает вопрос: работают ли вышеприведенные формулы с полутонами? В таблице 3 показано преобразование sRGB в XYZ для цветов половинной яркости:

Таблица 3. Преобразование полутонов
Таблица 3. Преобразование полутонов

Сравнение таблиц 3 и 2 показывает, что преобразование полутонов из sRGB в XYZ работает так же хорошо, как и преобразование цветов максимальной яркости.


В результате, с помощью указанных формул, можно рассчитать координаты любого компьютерного цвета и определить его положение в локусе.

Аналогично можно провести обратную операцию - преобразовать цвет с координатами XYZ в цветовое пространство sRGB и увидеть его на экране компьютера.

Наука
7 млн интересуются