sRGB

sRGB (стандартный Red Green Blue) — это цветовое пространство RGB, которое HP и Microsoft совместно создали в 1996 году для использования на мониторах, принтерах и в Интернете. Впоследствии он был стандартизован IEC как IEC 61966-2-1: 1999. Часто это цветное пространство по умолчанию для изображений, которые не содержат информации о цветовом пространстве, особенно если пиксели изображений хранятся в 8-битных целых числах на цветной канал.

sRGB использует праймеры ITU-R BT.709, такие же, как в студийных мониторах и HDTV, функция передачи (гамма-кривая), типичная для ЭЛТ, и среда просмотра, предназначенная для соответствия типичным условиям домашнего и офисного просмотра. Эта спецификация позволила sRGB быть непосредственно отображена на обычных мониторах CRT того времени, что очень помогло ее принятию.

Диапазон sRGB

цветность красный зеленый синий Белая точка
Икс 0,6400 0,3000 0,1500 0,3127
Y 0,3300 0,6000 0,0600 0,3290
Y 0,2126 0,7152 0,0722 1,0000

sRGB определяет цветности красных, зеленых и синих праймериз, цвета, где один из трех каналов отличен от нуля, а два других равны нулю. Гамма цветности, которая может быть представлена ​​в sRGB, является цветовым треугольником, определенным этими праймерами. Как и в любом цветовом пространстве RGB, для неотрицательных значений R, G и B невозможно представить цвета вне этого треугольника, который хорошо находится внутри диапазона цветов, видимых человеку с нормальным треххроматическим зрением.

sRGB иногда избегают высококлассных специалистов в области печати, поскольку его цветовая гамма невелика, особенно в сине-зеленых тонах, включая все цвета, которые можно воспроизвести в печати CMYK.

Передаточная функция sRGB («гамма»)

эффективная гамма в каждой точке. Ниже сжатого значения 0,04045 или линейной интенсивности 0,00313 кривая линейна, поэтому гамма равна 1. За красной кривой находится пунктирная черная кривая, показывающая точный закон мощности гамма = 2,2.

sRGB также определяет нелинейное преобразование между интенсивностью этих первичных чисел и фактическим сохраненным числом. Кривая похожа на гамма-отклик дисплея ЭЛТ. Это нелинейное преобразование означает, что sRGB — это разумно эффективное использование значений в файле изображения на основе целого числа, чтобы отображать различимые в человеческом свете уровни освещенности.

В отличие от большинства других цветовых пространств RGB, гамма sRGB не может быть выражена как одно числовое значение. Общая гамма составляет приблизительно 2,2, состоящая из линейного участка (гамма 1,0) вблизи черного, а нелинейный участок в другом месте с показателем 2,4 и гамма (наклон логарифмического выхода по сравнению с входным логом) изменяется от 1,0 до 2,3. Цель линейного сечения заключается в том, что кривая не имеет бесконечного наклона в нуле, что может вызвать численные проблемы.

Спецификация преобразования
Прямое преобразование (CIE XYZ в sRGB)
Значения CIE XYZ должны быть масштабированы так, чтобы Y из D65 («белый») был 1,0 (X, Y, Z = 0,9505, 1,0000, 1,0890). Это обычно верно, но некоторые цветовые пространства используют 100 или других значений (например, в статье Lab).

Первым шагом в вычислении sRGB из CIE XYZ является линейное преобразование, которое может быть выполнено с помощью матричного умножения.(Числовые значения ниже соответствуют значениям в официальной спецификации sRGB, которые исправили небольшие ошибки округления в оригинальной публикации создателями sRGB и предполагают стандартный колориметрический наблюдатель 2 ° для CIE XYZ)


Важно отметить, что эти линейные значения RGB не являются конечным результатом, поскольку они еще не были скорректированы для гамма-коррекции. Следующая формула преобразует линейные значения в sRGB:


где {\ displaystyle a = 0.055} a = 0.055 и где {\ displaystyle C} C — {\ displaystyle R} R, {\ displaystyle G} G или {\ displaystyle B} B.
Эти значения с гамма-коррекцией находятся в диапазоне от 0 до 1. Если требуются значения в диапазоне от 0 до 255, например, для видеодисплея или 8-битной графики, обычная техника заключается в умножении на 255 и округление до целого.

Значения обычно обрезаются до диапазона от 0 до 1. Это отсечение может быть выполнено до или после вычисления гаммы или выполнено как часть преобразования в 8 бит.

Обратное преобразование
Опять же, значения компонента sRGB  ,  ,  находятся в диапазоне от 0 до 1. (Диапазон от 0 до 255 можно просто разделить на 255,0).


где {\ displaystyle a = 0.055} a = 0.055 и где {\ displaystyle C} C — {\ displaystyle R} R, {\ displaystyle G} G или {\ displaystyle B} B.
Затем следует умножение матрицы на линейные значения для получения XYZ:


Теория преобразования

Часто небрежно заявляется, что дешифрирующая гамма для данных sRGB равна 2,2, но приведенное выше преобразование показывает показатель 2,4.Это связано с тем, что чистый эффект кусочного разложения обязательно является изменяющимся мгновенным гаммам в каждой точке диапазона: он переходит от гамма-1 в нуле до гамма 2,4 при максимальной интенсивности, при этом медианное значение близко к 2.2. Преобразование было рассчитано на приближение гамма около 2,2, но с линейной частью вблизи нуля, чтобы избежать бесконечного наклона при K = 0, что может вызвать численные проблемы. Условие непрерывности кривой  , которая определена выше как кусочная функция  , является


Решение  и стандартное значение  дает два решения,  ≈  или  ≈  , В стандарте IEC 61966-2-1 используется округленное значение  , Однако, если мы наложим условие, что склоны совпадают, тогда мы должны иметь


Теперь мы имеем два уравнения. Если мы возьмем два неизвестных, чтобы быть {\ displaystyle K_ {0}} K_ {0} и {\ displaystyle \ phi} \ phi, тогда мы можем решить, чтобы дать


Подставляя  а также  дает  ≈  а также  ≈  , с соответствующим порогом линейной области в  ≈  , Эти значения, округленные до  ,  , а также  , иногда описывают преобразование sRGB. Публикации создателей sRGB округлены до  а также  , что приводит к небольшому разрыву кривой. Некоторые авторы приняли эти значения, несмотря на разрыв. Для стандарта округленное значение  был сохранен, и  значение было пересчитано, чтобы сделать полученную кривую непрерывной, как описано выше, что привело к разрыву склона с 12,92 ниже пересечения с 12,70 выше.

Просмотр среды

параметр Стоимость
Уровень яркости экрана 80 кд / м 2
Светлая светлая точка x = 0,3127, y = 0,3290 (D65)
Коэффициент отражения объемного изображения 20% (~ средний серый)
Кодирование уровня окружающей освещенности 64 люкс
Кодирование внешней белой точки x = 0,3457, y = 0,3585 (D50)
Кодирующий просмотр вспышки 1,0%
Типичный уровень внешней освещенности 200 люкс
Типичная окружающая белая точка x = 0,3457, y = 0,3585 (D50)
Типичная вспышка 5,0%

Спецификация sRGB предполагает тускло освещенную среду кодирования (создания) с внешней коррелированной цветовой температурой (CCT) 5000 К. Интересно отметить, что это отличается от CCT источника света (D65). Использование D50 для обоих привело бы к тому, что белая точка большинства фотобумаг выглядела чрезмерно синей. Другие параметры, такие как уровень яркости, являются типичными для ЭЛТ-монитора.

Для достижения оптимальных результатов ICC рекомендует использовать среду просмотра кодировки (т. Е. Тусклое, диффузное освещение), а не менее жесткую типичную среду просмотра.

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

Если цветовое пространство изображения неизвестно и это формат изображения с 8-16 бит, предполагая, что он находится в цветовом пространстве sRGB, это безопасный выбор. Это позволяет программе определять цветовое пространство для всех изображений, что может быть намного проще и надежнее, чем пытаться отслеживать «неизвестное» цветовое пространство. Может использоваться профиль ICC; ICC распределяет три таких профиля: два профиля, соответствующие версии 4 спецификации ICC, которую они рекомендуют, и один профиль, соответствующий версии 2, который по-прежнему широко используется.

Изображения, предназначенные для профессиональной печати с использованием полноцветного рабочего процесса, например допечатной обработки, иногда используют другое цветовое пространство, такое как Adobe RGB (1998), которое обеспечивает более широкий диапазон. Такие изображения, используемые в Интернете, могут быть преобразованы в sRGB с использованием инструментов управления цветом, которые обычно включаются в программное обеспечение, которое работает в этих других цветовых пространствах.

Два доминирующих интерфейса программирования для 3D-графики, OpenGL и Direct3D, включили поддержку гамма-кривой sRGB. OpenGL поддерживает текстуры с цветовыми компонентами, закодированными гамма-кодированием sRGB (впервые представленный с расширением EXT_texture_sRGB, добавленный к ядру в OpenGL 2.1) и рендеринг в гамма-кодированные рамки sRGB (впервые введенный с расширением EXT_framebuffer_sRGB, добавленный к ядру в OpenGL 3.0). Direct3D поддерживает гамма-текстуры sRGB и рендеринг в гамма-поверхности sRGB, начиная с DirectX 9. Корректная mipmapping и интерполяция γ-текстур sRGB имеет прямую аппаратную поддержку в блоках текстурирования большинства современных графических процессоров (например, nVidia GeForce 8 выполняет преобразование из 8-битной текстуры в линейную значения перед интерполяцией этих значений) и не имеет каких-либо ограничений производительности.