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

COLOR PIPELINE · RGB И ALPHA

Тот же слой. Совсем другой край.

Сравните смешивание света и кодов, ошибочное чтение alpha, фильтрацию скрытого RGB и кривую на premultiplied-слое. Картинка и значения пересчитываются вместе.

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

COMPOSITING DESK / 02RGB + ALPHA
Опора · линейный premult RGB
Смешать коды sRGB

Тестовая фигура с мягким краем на непрозрачном фоне. Пиксели рассчитываются; это не CSS blur или режимы смешивания браузера.

Опорный RGB при выбранной α0.5090 · 0.5090 · 0.5090
Проверяемый RGB при выбранной α0.2862 · 0.2862 · 0.2862
max |ΔRGB|0.222807Линейные значения до ограничения предпросмотра. Не ΔE.
График, формула и ограничения+
Красный канал в зависимости от alpha
0.00.51.00255075100α %
ОпораПроверка
Cₒ = Cₛ + Cᵦ (1 − αₛ)
αₒ = αₛ + αᵦ (1 − αₛ)

Здесь C — premultiplied RGB. В hero фон непрозрачный; формула работает и с прозрачным фоном. Alpha не получает функцию sRGB. Для экрана кодируется только итоговый непрозрачный предпросмотр.

Опыт края — линейная интерполяция двух отсчётов, не конкретное размытие или keyer. Степенная кривая — учебная операция, не корректор Resolve. Широкий охват, линейное кодирование и правило alpha — независимые свойства.

Синтетический scene-linear RGB в базисе sRGB/Rec.709; 8-битный SDR-предпросмотр. Не декодер файлов, хромакей, HDR-вывод или эмуляция Resolve.

SOURCE OVER / INDEPENDENT MODEL
COLOR SCIENCE / 02 / PRODUCTION

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

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

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

Линейный композитинг и прозрачность

Прозрачный край хранит и цвет, и правило участия этого цвета в композиции. Ошибка появляется не только из-за маски: можно повторно умножить RGB на alpha, смешать коды вместо света или отфильтровать скрытый цвет прозрачного пикселя. Здесь каждая причина проверяется отдельно.

  • Различать линейное кодирование RGB и соглашение straight/premult.
  • Находить источник тёмных и цветных кайм по контрольному краю.
  • Передавать графику вместе с понятными правилами цвета и alpha.
Схематическая иллюстрация главы, не интерфейс Fusion. Лаборатория вычисляет синтетические тестовые пиксели в линейном базисе sRGB/Rec.709.
01

До Merge: какое представление у каждого слоя?

До смешивания нужно знать как минимум три независимые характеристики: цветовой базис RGB, передаточную функцию и соглашение об alpha. «Широкий охват» не означает линейный свет; «premultiplied» не сообщает, в каком пространстве хранится RGB. Два файла с одинаковыми четырьмя числами могут иметь разный смысл, если эти условия различаются.

Для физически осмысленного сложения вкладов подготовьте слои в согласованном scene-linear представлении. Технические преобразования должны привести оба изображения к одному базису и масштабу, а не просто переименовать метку. Лаборатория начинает с уже подготовленных линейных RGB в базисе sRGB/Rec.709. Она не угадывает пространство импортированного файла и не исправляет неправильный вход автоматически.

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

Если EXR и PNG дают разный результат после одной ноды, сначала запишите цветовой вход и alpha каждого. Исправление режима Merge не заменяет декодирование sRGB у графики.

02

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

В простой модели alpha задаёт долю участия переднего плана и ослабления фона. Она может объединять покрытие пикселя геометрией и непрозрачность материала, но сама по себе не описывает преломление, цветное пропускание и сложное рассеяние. Значение 0,5 не является универсальным описанием «стекла наполовину».

Функции sRGB, Log или PQ определены для соответствующих цветовых сигналов, а не для доли покрытия. Нельзя отправлять alpha через ту же гамма-кривую лишь потому, что она находится рядом с RGB. При цветовой обработке следите, какие каналы затронуты. Если меняется сама маска, это отдельная операция с отдельной целью; она не должна случайно скрываться внутри преобразования цвета.

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

В тестовом RGBA измените только функцию кодирования RGB. Если полупрозрачная область стала геометрически плотнее, проверьте, не затронута ли alpha.

03

Source-over: цвет и непрозрачность считаются отдельно

Для premultiplied RGB операция source-over записывается как Cₒ = Cₛ + Cᵦ(1 − αₛ), а итоговая alpha — αₒ = αₛ + αᵦ(1 − αₛ). Здесь C уже содержит вклад с учётом собственной alpha. Формула работает и с прозрачным фоном. Если требуется straight RGB результата, его получают делением Cₒ на αₒ только при ненулевой αₒ.

При непрозрачном фоне αᵦ = 1 итоговая alpha равна единице, а формула цвета упрощается до αₛF + (1 − αₛ)B для straight цветов F и B. Именно этот случай показан в первом опыте. Source-over не является перестановочной операцией: заменить порядок переднего и заднего слоя — значит изменить сцену. В обычной арифметике группировку последовательных over можно менять, но промежуточное ограничение диапазона и округление способны нарушить численное равенство.

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

Белый F = 1 на чёрном B = 0 при α = 0,5 даёт линейное значение 0,5. При выводе через sRGB это около 0,735 кода, а не 0,5.

04

Straight и premult: два способа записать слой

Straight RGB хранит цвет отдельно от доли участия. Premultiplied RGB хранит произведение цвета и alpha. Для обычного неэмиссионного слоя переход straight → premult равен C = αF. Обратное деление при α > 0 возвращает F, но при маленькой alpha усиливает численные ошибки, а при нулевой становится неопределённым.

Это не два художественных режима и не выбор «красивее / хуже». При согласованной записи и чтении они описывают одну композицию. Ошибка появляется, когда данные интерпретируются по другому правилу или меняется порядок обработки. Слово straight иногда путают с linear: первое говорит о связи RGB с alpha, второе — о представлении светового сигнала. Можно иметь нелинейно закодированный straight RGB и линейный premult RGB.

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

В режиме «Чтение alpha» согласуйте запись и чтение. Переключайте Straight/Premult: при согласованной паре опорная и проверяемая ветви совпадают.

05

Откуда берутся тёмная кайма и слишком яркий край

Если premultiplied RGB прочитать как straight, композиция ещё раз умножит цвет на alpha. Для исходного цвета F вклад станет α²F вместо αF. Ошибка сильнее заметна в полупрозрачных областях, поэтому центр непрозрачного объекта может выглядеть правильно, а край — темнее.

При обратной ошибке straight RGB принимается за уже взвешенный вклад. Цвет добавляется без необходимого ослабления; при небольшой alpha край получается слишком ярким, иногда выходя за диапазон отображения. Не всякая тёмная кайма вызвана именно этим: похожий симптом дают неверный цветовой вход, обработка скрытого RGB, плохой matte и запечённый старый фон. Поэтому проверять нужно контрольными переключениями, а не сразу размывать или сжимать маску.

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

Задайте α = 0,5 и Premult → Straight. Затем выберите согласованное чтение, не меняя маску. Если ошибка исчезает, причина была в интерпретации, а не в трекинге.

06

Почему усреднение кодов не равно смешиванию света

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

В дизайне бывают намеренные операции над кодами: совпадение с историческим макетом, специальный blend или художественная обработка. Они не запрещены, но должны быть названы и проверены как отдельное решение. Наш опыт сравнивает строго определённые варианты, без HDR-рендеринга и без угадывания настроек приложения. Различие на границе не доказывает, что любая нелинейная художественная операция ошибочна.

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

Поставьте белый объект на тёмный фон и сравните середину мягкого края. Затем используйте цветной фон: изменятся не только общая плотность, но и отношения каналов.

07

Фильтровать нужно вклад вместе с покрытием

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

Если сначала интерполировать straight RGB, скрытый чёрный или пурпурный попадёт в промежуточный цвет. Последующее умножение на alpha не отменит уже выполненное смешивание. В опыте моделируется только линейная интерполяция между двумя отсчётами, не конкретный фильтр Resize, Blur или keyer. Для реального фильтра важны ядро, границы, отрицательные веса и формат хранения. Продление цвета объекта в прозрачную область иногда скрывает симптом, но не заменяет правильную интерпретацию.

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

В режиме края меняйте скрытый RGB между чёрным, пурпурным и цветом объекта. Опорная ветвь не изменится; ошибочная может совпасть только в специально благоприятном случае.

08

Кривая на premult: порядок имеет значение

Для обычной цветовой коррекции отдельного неэмиссионного слоя часто нужна последовательность: получить straight RGB при безопасной alpha, применить нелинейную функцию, затем снова умножить на alpha. В общем случае f(αF) не равно αf(F). Кривая, применённая непосредственно к premult-вкладу, может менять полупрозрачную область иначе, чем непрозрачную часть того же объекта.

Однако не каждая операция требует такого обхода. Линейная матрица без смещения коммутирует с умножением на скалярную alpha: M(αF) = αM(F). Простое экспозиционное усиление тоже линейно. Смещение, нелинейная передаточная функция, ограничение и многие художественные операции таким свойством не обладают. Не добавляйте unpremult/premult вслепую вокруг каждой ноды: сначала определите, что она вычисляет и как обрабатывает нулевые значения.

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

В опыте «Кривая и alpha» поставьте степень 1: ветви совпадут. При степени 0,5 и частичной alpha появится разница без изменения исходной маски.

09

Нулевая alpha: делить нельзя, стирать не всегда можно

При α = 0 straight цвет нельзя восстановить делением premult RGB на alpha. Даже очень маленькая alpha может усилить шум или ошибку округления, поэтому политика обработки должна быть явной. Для обычных слоёв, полученных умножением ограниченного straight RGB на alpha, нулевой вклад ожидаем. Но это не универсальная характеристика всех допустимых изображений.

OpenEXR допускает ненулевой RGB при нулевой alpha: такие пиксели могут представлять излучающий вклад, не закрывающий фон. В associated-формуле source-over он добавляется без необходимости деления. Безусловное «очистить RGB там, где alpha = 0» уничтожит эти данные. В hero используются обычные неэмиссионные фигуры; особый случай объяснён здесь и проверяется в математических тестах. Политика для файлов с эмиссией должна сохраняться при обмене.

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

При экспорте свечения сравните и RGB, и alpha в числах. Нулевая маска не даёт права объявить все ненулевые цветовые значения мусором.

10

Графика, сцена и выходной рендеринг

Готовая графика может быть создана для определённого дисплейного вида, а рендер сцены — для последующей обработки в scene-linear. Перед их объединением нужно решить, что требуется сохранить: световой вклад в сцене или конкретный финальный вид логотипа. Простого снятия передаточной функции иногда недостаточно, чтобы обратить уже применённый художественный рендеринг.

Нелинейное отображение слоёв по отдельности до смешивания в общем случае не равно отображению готовой смеси. Поэтому место титров, бликов и графики относительно выходного преобразования выбирается осмысленно и фиксируется. Вводная глава о scene/display уже показывает эту некоммутативность; здесь акцент на alpha и сохранении края. View transform для просмотра должен быть отделён от изменения рабочих данных, иначе можно случайно запечь лишний этап.

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

Сравните титр до и после выходного преобразования при одном целевом мастере. Выберите вариант под задачу, а не под правило «вся графика всегда только до» или «всегда после».

11

PNG, EXR и соглашение на границе приложений

Спецификация PNG задаёт unassociated alpha. OpenEXR описывает premultiplied соглашение для цветовых каналов. Это важные отправные точки, но приложение после чтения может перевести данные в собственное рабочее представление. Смотрите не только расширение файла, но и настройки декодирования, пространство, точность и фактические значения после импорта.

Для передачи материала укажите цветовой вход, alpha-режим, канал или слой, глубину, диапазон и наличие уже применённого рендеринга. Сделайте контрольный файл с непрозрачной серединой, мягким краем и известной alpha. Затем повторно импортируйте экспорт и сравните RGB и alpha по отдельности. Если преобразование меняет формат, убедитесь, что не потерялись отрицательные, надбелые или эмиссионные значения, необходимые следующему этапу.

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

Условный PNG-экспорт может выглядеть хорошо на шахматной подложке и провалиться на белом фоне. Round-trip с двумя однотонными фонами обнаружит ошибку раньше, чем реальная сцена.

12

Диагностика края без «лечения» вслепую

Сначала подтвердите техническое представление и сравните численные значения в непрозрачном центре. Затем проверьте один и тот же край на чёрном, светлом и насыщенном фоне. Если проблема появляется лишь после масштабирования, исследуйте фильтрацию и скрытый RGB; если после кривой — порядок цветовой обработки; если сразу после импорта — вход и соглашение alpha.

Меняйте один фактор за раз и сохраняйте эталонную ветвь. Не начинайте с эрозии маски, подавления цветного ореола или размытия: они могут скрыть симптом ценой потери деталей. После исправления повторите экспорт и импорт, просмотр в движении и проверку всего кадра. Такой порядок не гарантирует отсутствие всех дефектов keying, но отделяет техническую интерпретацию от художественной работы с matte.

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

Для одного дефектного края составьте короткий протокол: первый этап расхождения, RGB/alpha до него, изменённое условие и подтверждение после повторного импорта.

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

Похожий симптом — разные причины

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

Cₒ = Cₛ + (1 − αₛ) Cᵦ ; αₒ = αₛ + (1 − αₛ) αᵦ

C — associated RGB в согласованном линейном базисе. При ненулевой выходной alpha straight цвет равен Cₒ / αₒ. При нулевой alpha деление не определено; исходный associated вклад не стирается автоматически.

ПонятиеЧто описываетКакой вывод делать нельзя
Premult → StraightПовторное умножение на alpha.Не исправлять эрозией, пока не проверено чтение.
Straight → PremultНедостающее взвешивание вклада.Яркий край не обязательно является пересветом исходника.
Смешивание кодовКомпозиция до декодирования RGB.Не равно смешиванию линейного света.
Скрытый RGBЦвет прозрачного соседа попал в фильтрацию straight.Правка маски не отменяет подмешанный цвет.
Кривая на premultНелинейная операция над уже ослабленным вкладом.Не всякая матрица требует unpremult: линейность нужно проверить.
Alpha = 0, RGB ≠ 0Допустимый излучающий вклад в соглашении OpenEXR.Нельзя безусловно стирать или делить на ноль.
PNG / EXRФайловые соглашения и возможное внутреннее преобразование приложения.Расширение не описывает все последующие операции.

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

Разберите один мягкий край четырьмя способами

Работайте с эталонной ветвью и меняйте по одному условию. Для переноса в Fusion подготовьте тестовый слой с известными RGB/alpha и непрозрачный фон; сохраните исходную композицию.

  1. 01

    Сравните свет и код

    Выберите первый опыт, белый объект и тёмный фон. Меняйте alpha от 0 до 1, наблюдая середину края.

    ПРОВЕРКА

    На концах обычные ветви совпадают, а при частичной alpha возникает разница.

  2. 02

    Проверьте соглашение

    Перейдите в чтение alpha. Согласуйте обе пары записи/чтения, затем создайте две ошибки по очереди.

    ПРОВЕРКА

    Согласованные пары дают тот же результат без изменения маски.

  3. 03

    Найдите скрытый цвет

    В опыте края переключите чёрный и пурпурный скрытый RGB, затем продолжение цвета объекта.

    ПРОВЕРКА

    Опорная фильтрация не зависит от скрытого RGB обычного прозрачного пикселя.

  4. 04

    Проверьте порядок и экспорт

    В опыте кривой сравните степени 1 и 0,5. Повторите выбранную схему на тестовой графике в своём приложении, экспортируйте и импортируйте обратно.

    ПРОВЕРКА

    RGB и alpha проверены отдельно на двух фонах; первый этап расхождения назван.

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

0 / 4

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

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

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

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

01Непрозрачный центр верный, край темнее. Нужно сжать matte?

Сначала проверьте premult, прочитанный как straight: повторное умножение даёт α²F. Если согласованное чтение устраняет дефект при прежней маске, эрозия не нужна. Но похожий симптом может иметь другую причину — сравните этапы.

02Любую цветовую матрицу надо окружать unpremult?

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

03В EXR alpha ноль, но RGB светится. Удалить?

Не автоматически. OpenEXR допускает излучающий вклад без закрытия фона. Согласуйте соглашение источника и получателя; деление на нулевую alpha и безусловная очистка потеряют информацию.

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

  • Straight и scene-linear — не синонимы.
  • Повторное умножение на alpha не исправляет неверную интерпретацию.
  • Нельзя безусловно обнулять RGB при нулевой alpha в эмиссионном EXR.
COLOR / DAVINCI RESOLVE

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

В Fusion и Color проверьте, в каком состоянии данные приходят к каждой операции. Название параметра и порядок нод зависят от инструмента; статья не обещает одинаковый интерфейс во всех версиях. Критерий правильности — согласованный численный путь, контролируемая граница и повторяемый экспорт, а не одна универсальная кнопка «исправить alpha».

Color Management ↗Scopes ↗Color Space Transform ↗

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

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

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

  1. [9]
    W3C · Compositing and Blending Level 1 ↗

    Формулы source-over и отдельные значения alpha. Используется математический раздел; наш опыт не воспроизводит весь CSS-процесс. Документ — Candidate Recommendation Draft.

  2. [10]
    OpenEXR · Technical introduction ↗

    Соглашение о premultiplied RGB, композиция и особый случай ненулевого RGB при нулевой alpha. Нельзя безусловно обнулять такие пиксели.

  3. [11]
    W3C · PNG specification, Third Edition ↗

    PNG хранит unassociated alpha. Это правило файла не отменяет возможного преобразования в представление приложения после декодирования.

  4. [12]
    ICC · sRGB registry ↗

    Составная функция sRGB, основные цвета и D65. Она применяется только к цветовым компонентам, а не к alpha.

  5. [14]
    OpenColorIO · Displays and views ↗

    Отдельная стадия отображения и организация view transform; конфигурация и фактический путь обработки должны быть известны.