Цветовая наука/S2/Web, desktop и default RGB

Web, desktop и default RGB

sRGB

Большой разбор sRGB: зачем HP и Microsoft предложили default RGB для компьютеров и интернета, как IEC 61966-2-1 формализовал пространство, почему primaries совпадают с Rec.709, как работает точная piecewise transfer function, ICC profiles, browser colour management и mixed-media workflow в Resolve.

IEC 61966-2-1D65ICCPiecewise TRCWeb defaultDisplay-referred
Простыми словами

sRGB — это не просто «обычные цвета для интернета». Это конкретное display-referred RGB-пространство: Rec.709 primaries, D65 white point, собственная transfer curve и reference viewing assumptions. Оно стало lingua franca компьютерной графики потому, что позволило файлу не таскать с собой полное описание конкретного монитора.

11 разделов3 первичных источников

Ключевые факты

Определения и цифры, которые стоит держать перед глазами

Red primary
x 0.640 · y 0.330

Та же primary, что в Rec.709.

Green primary
x 0.300 · y 0.600

Та же primary, что в Rec.709.

Blue primary
x 0.150 · y 0.060

Та же primary, что в Rec.709.

White point
D65 · x≈0.3127 · y≈0.3290
Decode breakpoint
C = 0.04045

Ниже: linear = C/12.92.

Power section
Exponent 2.4

Это часть piecewise TRC, а не простая gamma 2.4 для всего диапазона.

Reference white
80 cd/m²

Reference encoding/viewing condition, не требование к яркости каждого ноутбука.

Image state
Display-referred

Ключевое отличие от scene-referred camera working spaces.

sRGB geometry

Те же primaries, что у Rec.709

RGBD65R .640/.330 · G .300/.600 · B .150/.060

Linear sRGB и linear Rec.709 используют одну gamut-геометрию. Полные system definitions всё равно различаются, потому что transfer и viewing assumptions — отдельные слои.

Transfer function

Piecewise, а не простая Gamma 2.2

0.04045((C+0.055)/1.055)^2.4C / 12.92
Decode toe
C ≤ 0.04045
linear = C / 12.92
Power section
((C+0.055)/1.055)^2.4
History

Стандартная интерпретация вместо одного конкретного монитора

1996
HP + Microsoft
Proposal default RGB-пространства для Internet
1999
IEC 61966-2-1
sRGB становится международным стандартом
CSS
Web default
hex / rgb() / named colors разрешаются в sRGB
ICC / browser

Числам нужны source profile и destination

RGB values
#RRGGBB / image pixels
ICC / sRGB definition
source meaning
Display profile
device rendering
Untagged ≠ universal

Многие web-path предполагают, что untagged image — sRGB, но профессиональный mixed-media workflow не должен зависеть от этой догадки, если реальный source state известен.

01

Почему интернету вообще понадобилось default RGB-пространство

В 1990-е desktop-публикация быстро уходила от ситуации, где один файл жил на одном известном устройстве. Изображение проходило Windows, браузер, сканер, принтер, CRT-монитор и сети, а полноценный device profile не всегда был доступен или вообще поддерживался. В 1996 году Hewlett-Packard и Microsoft предложили sRGB как простой device-independent baseline для operating systems и Internet: если ничего более точного о файле не известно, обе стороны могут хотя бы договориться об одном стандартном RGB interpretation. В 1999 году этот подход был формализован IEC 61966-2-1.

02

Что именно определяет sRGB

У пространства есть четыре обязательных слоя. Primaries: R x=0.640 y=0.330, G x=0.300 y=0.600, B x=0.150 y=0.060. White point — D65. Transfer characteristic — отдельная piecewise функция с линейным участком около black. И, наконец, reference display / viewing assumptions, потому что одинаковые RGB numbers без понимания того, какой свет должен выдать дисплей, не завершают colour definition. В современных web-спецификациях sRGB также явно считается display-referred space.

03

Почему gamut sRGB и Rec.709 совпадает

sRGB сознательно унаследовал те же CIE xy primaries и D65, что и Rec.709. Поэтому RGB↔XYZ matrix для linear-light values и сам chromaticity triangle у них совпадают. Но совпадение geometry не превращает два стандарта в полный синоним: sRGB определяет computer/display encoding с собственной transfer curve и viewing assumptions, а Rec.709 родился как television production system с BT.709 OETF и отдельной reference-display логикой через BT.1886. Фраза «gamut одинаков» правильна; фраза «sRGB = Rec.709 во всём» — нет.

04

Точная sRGB transfer function: откуда взялись 12.92 и 2.4

Для encoded component C в диапазоне 0–1 переход к linear-light Cl делается piecewise. При C≤0.04045: Cl=C/12.92. Выше: Cl=((C+0.055)/1.055)^2.4. В обратную сторону linear→encoded breakpoint находится около 0.0031308: сначала 12.92·Cl, затем 1.055·Cl^(1/2.4)−0.055. Поэтому sRGB не является простой power gamma 2.2 и не является чистой gamma 2.4. Линейный toe около black убирает проблему бесконечного slope у простой power-функции и фиксирует точное стандартизированное кодирование.

05

Reference display: почему у sRGB есть не только chromaticities

В web/CSS reference model для sRGB указывается D65, white luminance 80 cd/m², black luminance 0.20 cd/m² и display-referred image state. Эти числа не означают, что каждый ноутбук обязан физически работать именно на 80 nits. Они описывают reference encoding/viewing condition, от которого строится colour-managed interpretation. Реальный consumer display может быть 120, 300 или 1000 nits, но colour management должен сохранять относительный appearance в пределах возможностей устройства.

06

ICC profile: что именно говорит приложению файл

ICC profile не «улучшает цвета» сам по себе. Он сообщает color-management system, как интерпретировать RGB numbers конкретного image space и как связать их с profile connection space. У файла с embedded sRGB profile приложение получает явное source definition. Untagged image оставляет интерпретацию на default policy приложения: многие web contexts предполагают sRGB, но профессиональный pipeline не должен строиться на догадке, если source profile известен.

07

Почему sRGB до сих пор default в CSS и браузерах

Legacy CSS colors — hex, rgb(), hsl(), named colors — исторически разрешаются в sRGB. Это одна из причин огромной устойчивости пространства: миллиарды web-assets уже предполагают его. CSS Color 4 добавил явные пространства color(display-p3 …), color(rec2020 …), Lab/OKLab и другие, но обычный #ff0000 по-прежнему означает sRGB red, а не «красный, максимально возможный на текущем мониторе».

08

Wide-gamut web не отменяет sRGB

Современный browser может принять Display P3 image/CSS color и на P3-capable display показать более насыщенные chromaticities. На sRGB-only устройстве этот же content должен быть gamut-mapped или fallback должен быть подготовлен автором. Поэтому wide-gamut web — это не переход от «старого плохого sRGB» к «новому хорошему P3», а появление нескольких явно управляемых colour spaces и необходимость знать capabilities target display.

09

Почему PNG из Figma и Rec.709 video могут не совпасть в Resolve

Still graphics из Photoshop/Figma часто приходят как sRGB/ICC display-referred assets, а video timeline может быть Rec.709 Gamma 2.4, DWG/Intermediate или ACES. Даже при одинаковых primaries нельзя автоматически считать их одной и той же signal state. Если Resolve или OS интерпретируют still как sRGB, а video viewer работает с другой output transfer, средние тона и black perception могут разойтись. Правильный mixed-media workflow начинается с явной source tagging/interpretation каждого типа asset.

10

sRGB → Rec.709: когда matrix не нужна, но transform всё равно может быть нужен

Поскольку primaries и D65 одинаковы, chromatic adaptation и gamut matrix между linear sRGB и linear Rec.709 не требуются. Но display-referred sRGB asset и television Rec.709 master могут использовать разные transfer/rendering assumptions. Поэтому точный conversion может состоять только из linearization + re-encoding/output rendering, без изменения chromaticity coordinates. Это хороший пример того, почему color space нельзя сводить к одному gamut triangle.

11

Практический workflow: web graphic → Resolve → video master

1) Проверьте embedded ICC/source tag. 2) Определите timeline working space и output. 3) Не делайте RGB values «универсальными» вручную. 4) Если graphics должны сохранять display appearance, используйте корректный input interpretation/transform. 5) Финальный Rec.709 master проверяйте на reference video path, а web still — в colour-managed browser. Одна и та же картинка может требовать двух разных delivery encodings при сохранении визуально близкого appearance.

Что это меняет в постпродакшне

Если в Resolve лежит PNG/JPEG из web-design, сначала спросите «это sRGB asset или просто untagged RGB?». Только потом решайте, как вводить его в video pipeline. Совпадение primaries с Rec.709 не отменяет разницу transfer/display intent.

Типичные ошибки
Считать sRGB простой Gamma 2.2.
Считать sRGB и Rec.709 полностью идентичными.
Игнорировать embedded ICC profile.
Считать untagged RGB автоматически корректным sRGB во всех приложениях.
Вставлять sRGB graphics в scene-referred timeline без явной интерпретации.
Проверять wide-gamut web только на одном мониторе.