ВИДЕОМОНТАЖЁРDAVINCI RESOLVE · ВИДЕО · AI

СНАЧАЛА СВЕТ. ЗАТЕМ ЧИСЛА.

Три канала. Но не три «истинных цвета».

Соберите цвет из линейных вкладов R, G и B. Затем проследите, как свет становится кодом и почему 0.5 бывает разным.

Читайте числа. Замечайте допущения. Затем переносите принцип на свой материал.

03 / RGB LAB

Свет — не код.

RGB
sRGB · 8 bit188 / 188 / 188округлённый код

Основные цвета sRGB, входные значения линейные и относительные. Плашки кодируются для sRGB-предпросмотра. Разрядность меняет округление, не режим экрана. Это не HDR, не абсолютная яркость и не прогноз субъективной светлоты.

COLOR SCIENCE / 03 / FOUNDATION

Опыт, а не готовый пресет.

Содержание ↓
ИЛЛЮСТРАЦИЯ ТЕМЫ

ГЛАВНОЕ БЕЗ ЛИШНИХ ТЕРМИНОВ

RGB и цифровой цвет

RGB — это три координаты внутри заранее определённой системы. Пока не известны primaries, white point и способ кодирования сигнала, три числа RGB не говорят однозначно, какой свет должен излучить монитор.

  • Различать свет и код
  • Понимать разрядность без мифов
  • Сохранять смысл чисел в цепочке
Редакционная иллюстрация темы. Это не скриншот программы и не измерительная диаграмма.
01

RGB — аддитивная модель света

Дисплей создаёт цвет, складывая свет трёх primaries. Ноль по всем каналам означает отсутствие их вклада, а увеличение каналов добавляет излучение. Это принципиально отличается от субтрактивных моделей печати, где красители удаляют части падающего спектра.

Что это означает на практике

В лаборатории R/G/B задают линейные вклады, а цвет для браузера кодируется в sRGB. Поэтому среднее значение ползунка не обязано давать CSS-код 128. Сложение световых вкладов и арифметика уже закодированных значений — разные операции.

02

R, G и B — не универсальные цвета природы

Каждая RGB-система сама определяет chromaticities своих red, green и blue primaries. Rec.709, Display P3 и Rec.2020 используют разные координаты, поэтому R=1, G=0, B=0 в этих пространствах задаёт разные красные. Буква R описывает канал системы, а не один физически фиксированный оттенок.

Что это означает на практике

Сравните красные primaries sRGB и Display P3 по координатам в следующем опыте. Подпись R одинакова, координаты различаются. Равные белые точки двух систем не заставляют совпасть их красные и зелёные основные цвета.

03

RGB-числа — координаты, а не абсолютный цвет

Тройке RGB нужна определённая система координат и кодирование. Но важно различать контексты: CSS-запись #FF0000 уже означает красный в sRGB — её пространство задано спецификацией. В видеобуфере или файле без надёжного описания одни числа не сообщают, sRGB это, camera RGB или другое представление. Различия устройств и управления цветом — отдельная причина несовпадения отображения.

Что это означает на практике

Снимок экрана не заменяет описание источника: приложение могло уже преобразовать изображение для дисплея. Пипетка на таком снимке читает результат этого тракта, а не обязательно значения оригинального camera RGB.

04

Linear RGB: когда числа пропорциональны свету

В linear-light RGB удвоение значения канала означает удвоение вклада этого primary в физическую интенсивность света. Именно в linear light корректно выполняются многие операции смешивания, blur, compositing и physically meaningful interpolation. Но хранить изображение напрямую в линейной форме при ограниченной bit depth не всегда эффективно.

Что это означает на практике

В простом примере усреднение чёрного и белого даёт 0.5 линейного света. После sRGB-кодирования это примерно 0.735, или код 188 из 255. Среднее кодов 0 и 255 — примерно 128, что соответствует лишь 0.216 линейного света. Это не утверждение о субъективной «половине яркости».

05

Почему обычный RGB-сигнал часто нелинейный

Transfer function перераспределяет code values относительно света. Исторически это было связано с поведением CRT, а сегодня также помогает эффективнее использовать кодовые уровни и строить согласованную систему camera → signal → display. sRGB, BT.709-style camera encoding, gamma 2.4 display response, PQ, HLG и log curves — разные вещи, хотя в интерфейсах их часто складывают в одно меню Gamma.

Что это означает на практике

sRGB использует линейный участок около чёрного и степенную часть выше порога. Gamma 2.2 — приближение, а не точная формула. В нашем калькуляторе используется составная функция; проверяйте и кодирование, и обратное преобразование, не применяя кривую дважды.

06

0–1, 0–255 и 64–940 — это разные способы записать похожую идею

Для full-range 8-bit кодов доступны 256 уровней на канал: 0–255. 10-bit даёт 1024 кода: 0–1023. Номинальные видеоуровни 64–940 относятся к 10-bit luma и соответствующему video-range RGB; у цветоразностных компонентов другой номинальный интервал, обычно 64–960 с нейтралью 512. Float может хранить значения вне 0–1. Разрядность, диапазон и охват описывают разные ограничения.

Что это означает на практике

Ползунок разрядности в опыте меняет шаг округления, а не спектры primaries. Больше кодов уменьшает ошибку квантования при тех же условиях, но не превращает sRGB в P3 и не гарантирует отсутствие полос после тяжёлой обработки или сжатия.

07

Как RGB переводится из одного пространства в другое

Если две RGB-системы описаны через CIE coordinates и white point, linear RGB можно преобразовать через матрицы, часто с промежуточным XYZ. Если white points различаются, может понадобиться chromatic adaptation. Если target gamut уже исходного, одного matrix transform недостаточно для красивого поведения out-of-gamut цветов — появляется задача gamut mapping.

Что это означает на практике

Сначала снимите передаточную функцию, затем преобразуйте линейные координаты, потом закодируйте выход. Для sRGB и Display P3 белый D65 общий, поэтому отдельная адаптация белого в нашем опыте не нужна. Случайная матрица поверх нелинейных кодов решает другую задачу.

08

Отрицательные и >1 значения не всегда ошибка

Отрицательная RGB-компонента после преобразования обычно означает, что цвет лежит вне положительных смесей выбранных primaries; это не «отрицательный свет». Значение выше 1 может означать превышение опорного уровня, а не обязательно ошибку файла. Float сохраняет такие числа для дальнейшей обработки, но не гарантирует, что каждый инструмент работает с ними корректно. Раннее отсечение уничтожает информацию, которую последующие преобразования могли бы использовать.

Что это означает на практике

Проверяйте значения до финального вывода, а не стирайте все отрицательные компоненты после каждой ноды. На границе ограниченного целевого пространства всё равно понадобится осознанная обработка. Сохранить float — значит сохранить возможность решения, а не уже решить задачу отображения.

09

Alpha — не четвёртый цветовой канал

Alpha обычно описывает transparency или coverage. В premultiplied representation RGB уже умножен на alpha, в straight/unpremultiplied — хранится отдельно. Для compositing это критично, но alpha не расширяет цветовой gamut и не является дополнительным primary.

Что это означает на практике

При straight RGB значение цвета может существовать даже при нулевой alpha; в premultiplied форме оно умножено на alpha. Деление на ноль не восстанавливает скрытый цвет. Для прозрачных краёв важно знать, в каком виде данные ожидает следующий инструмент.

10

Что RGB означает внутри Resolve

В Resolve один и тот же pixel может последовательно существовать как camera-space RGB, timeline/working RGB и output/display RGB. Поэтому вопрос «какие здесь RGB?» всегда должен продолжаться вопросом «в каком color space и gamma находится нода в этой точке pipeline?».

Что это означает на практике

Название рабочего пространства и кривая должны быть известны до настройки эффекта или LUT. Не добавляйте CST только потому, что он есть в чужом проекте: RCM или ACES могут уже выполнять нужное преобразование. Проверяйте состояние сигнала в выбранной точке.

МОДЕЛЬ, КОТОРУЮ МОЖНО ПРОВЕРИТЬ

Одно число в разных ролях

Держите рядом смысл, расчёт и границу применимости.

sRGB⁻¹(0.5) ≈ 0.214041; sRGB(0.5) ≈ 0.735357

Слева: декодирование значения 0.5. Справа: кодирование половины линейного уровня. Это относительные числа, не ниты и не модель субъективной светлоты.

ПонятиеЧто описываетКакой вывод делать нельзя
0.5 linearПоловина выбранного линейного вклада.Не обязательно код 128 и не «вдвое темнее на глаз».
0.5 sRGBНелинейный код; примерно 0.214 linear.Не половина физического света.
8 / 10 bit256 / 1024 дискретных кода на канал.Не размер цветового охвата.
AlphaПрозрачность или покрытие в композитинге.Не четвёртый основной цвет.

СДЕЛАТЬ. СРАВНИТЬ. ОБЪЯСНИТЬ.

Из света — в код, без подмены математики.

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

  1. 01

    Начните с нейтрали

    Включите пресет половины линейного уровня. Сверьте три вклада и sRGB-коды.

    ПРОВЕРКА

    Все каналы равны, код примерно 188 при 8 bit.

  2. 02

    Отделите один канал

    Уберите два вклада, оставив R. Затем верните G и B.

    ПРОВЕРКА

    Меняется смесь, а определения primaries остаются sRGB.

  3. 03

    Смените разрядность

    Выберите 10 bit и затем диагностический режим 3 bit.

    ПРОВЕРКА

    Шаг округления меняется; ступени 3 bit не выданы за обычное видео.

  4. 04

    Сравните два усреднения

    В режиме смешивания переместите долю между чёрным и белым. Сопоставьте код и линейный вклад.

    ПРОВЕРКА

    Можете объяснить, почему одинаковая доля не гарантирует одинаковый результат двух методов.

Проверьте понимание

0 / 4

Отмечайте то, что можете объяснить самостоятельно.

ПРОВЕРЬТЕ СВОЁ ОБЪЯСНЕНИЕ

Ситуация, а не вопрос с подвохом.

Сначала сформулируйте ответ. Затем откройте разбор.

01Почему ползунок 0.5 даёт 188, а не 128?

Ползунок задаёт линейный вклад. Для показа он кодируется sRGB, где 0.5 linear превращается примерно в 0.735. После округления к 8-bit сетке это 188.

02Почему float не спас от обрезанных светов?

Float хранит широкий диапазон значений, но не возвращает детали, уже потерянные на съёмке или ранее отсечённые. Проверьте, где именно произошло ограничение, вместо смены формата вслепую.

03Будет ли HEX разным в любом приложении?

Нет: CSS определяет HEX через sRGB. Неопределённость относится к данным без известного контекста и к нарушенному воспроизведению, а не к отсутствию определения у самого CSS-формата.

Не сокращайте объяснение до этих ошибок

  • Считать 255,0,0 одним универсальным красным.
  • Путать linear RGB с gamma/log-encoded RGB.
  • Считать alpha четвёртым primary.
  • Клиповать отрицательные/>1 working values слишком рано.
COLOR / DAVINCI RESOLVE

От модели — к рабочему процессу.

Главное практическое правило: RGB без контекста — просто числа. Перед любым CST, LUT или ручным transform сначала установите, что эти числа означают на входе.

Color Management ↗Scopes ↗Color Space Transform ↗

ПРОВЕРЯЙТЕ ПЕРВООСНОВУ

Источники и границы моделей.

Редакционная проверка: 30 сентября 2026. Ссылки указывают на определения и формулы; упражнения — самостоятельные учебные примеры.

  1. [5]
    ICC · sRGB ↗

    Координаты основных цветов, D65 и составная передаточная функция.

  2. [7]
    W3C · CSS Color 4 ↗

    Определения и численные преобразования. Candidate Recommendation Draft от 26.09.2026, не окончательная Recommendation.

  3. [8]
    ITU-R · BT.709-6 ↗

    Параметры HDTV; не универсальный пресет для любого файла.

  4. [10]
    Blackmagic Design · Color ↗

    Практическая связь с управлением цветом и инструментами Resolve.