Cinelerra имеет два базовых хромакея (во всех форках): "ChromaKey' (в коде HV Адам называет его 'ChromaKey RGB') и 'ChromaKey HSV', а также имеется 'Difference Key'. Кроме того, Cinelerra-GG имеет очень интересный 'CriKey' (a regionally based chroma key with interpolation) и ffmpeg-плагины: F_backgroundkey, F_chromakey, F_chromakey_cuda, F_colorkey, F_hsvkey, F_lumakey.
В статье пойдёт речь о 'Chroma Key HSV'. Этот плагин для Cinelerra-CV был написан Jerome Cornet (France) в феврале 2006 г.
AVID незадолго до этого выпустил тогда в свет свой the SpectraMatte TM chroma key effect; Jerome вдохновился его возможностями: "I told myself that it would be cool to have a similar plugin for Cinelerra. So I completely modified the chromakey plugin to be much more finegrained", взял имевшийся на то время штатный Chroma Key :
и модифицировал его (изменился также диалог выбора цвета):
Модифицированный плагин был хорошо принят в сообществе, ибо выводил работу на качественно новый уровень. По заявкам пользователей Jerome внёс ещё ряд изменений, в частности, внедрив миним. и максим. уровень яркости и написал краткое руководство.
Однако, руководство это написано в армейском стиле "делай раз, делай два, повторяй за мной" - оно больше похоже на частный случай применения и практическое применение плагина вызывает немало вопросов. Кроме того, его настройки по-умолчанию тоже не способствуют пониманию.
А может быть вы хорошо знакомы с ним и даже разобрались с 1 раза ? Крепко "рукопожимаю" вас - это круто. Вы пробовали, но ничего не поняли ? И вас "рукопожимаю". Авансом. Но довольно болтовни - к делу.
Знакомство с плагином я рекомендую начинать с настройками как на скриншоте выше, а не с теми, что по умолчанию. В примерах ниже использовались вот эти картинки (изображения сгенерированы плагином 'ColorSwatch', который будет рассмотрен ниже).
Цвет можно выбрать либо захватив пипеткой "Get color" в окне Compositor (пипетка - на панели слева), а после щелкнув в окне эффекта кнопку "Use color picker | Использовать пипетку", либо щелкнув в окне эффекта кнопку "Color | Цвет" и перейдя в окно выбора цвета. Здесь вы можете использовать Hue и/или R, G, B параметры. 'Saturation' и 'Value' не играют роли, однако рекомендуется установить их на максимум для большей точности.
Далее, в разделе "Key parameters | Параметры ключа" слайдером параметра 'Hue Tolerance' расширяем или сужаем диапазон оттенков, который будет вырезан из видео. Фон далеко не всегда однороден. Увеличивая значение параметра, мы расширяем диапазон и включаем него оттенки/тона, значительно отклоняющиеся от ключевого цвета. И наоборот.
Min Brightness, Max Brightness - задаёт минимальные и максимальные пороговые значения диапазона яркости, по которому будет вырезан выбранный диапазон оттенков. Значения выше максим. и ниже миним. значений станут полностью непрозрачными. Т.о. вы можете включить или исключить из диапазона удаления более светлые или более тёмные участки изображения. Увеличьте значение Min Brightness, чтобы удалялся только фон, а не передний план. Уменьшите значение Max Brightness, если вместе с фоном удалились очень яркие участки (полезно при работе с очень тёмным фоном).
Saturation Offset, Min Saturation.
В идеале, фон должен быть высоко и равномерно насыщен. Если же фон далёк от идеала, эти настройки могут помочь. Оба параметра задают минимальный уровень насыщенности с которого начинается кеинг.
Show Mask | Показать маску
Черным цветом отображаются прозрачные области, белым - непрозрачный передний план.
Поэтому в HV можно дополнительно применить к нижней дорожке плагин 'Background', чтобы вместо шахматного фона по умолчанию (в Cin-HV), фон был чёрного цвета. В прочих форках можно применить эффект "Gradient" и настроить там чёрный или достаточно заглушить нижележ. дорожку. Я уже предложил Адаму сделать возможность отключения прозрачности и включения чёрного фона непосредственно в плагине и он внёс предложение в список TODO.
Alpha Offset | Сдвиг прозрачности
Производится смещение альфа-канала на определённую величину. По сути - это 'Fade', но Jerome назвал его по-другому. При значении = –100 всё изображение исчезает, при значении = 100 всё изображение становится полностью непрозрачным. При помощи ключ. кадров вы можете создать анимированный переход от –100 до 100 объекта переднего плана на фоне остальной композиции.
Контроль за пропуском (отражением цвета) или подавление рассеивания.
Удаляет с объекта паразитные подсветки, отражающиеся от фона, а также окантовку и цветовую кайму вокруг объекта. Удаление производится путём десатурации пикселей, имеющих тон, сходный с ключевым цветом.
'Spill Threshold' - это порог оттенка. Десатурация происходит в зависимости от того, насколько близко расположены цвета к основному удаляемому тону.
Если края маски остаются резкими, изрезанными примените эффект 'Blur | Размытие'. Включите размытие только для альфа-канала, задав Radius = 2 или 3.
А сейчас вторая часть статьи.
Если сравнить плагин от Jerome c вышеупомянутым SpectraMatte, то становится ясно, что SM и мощнее, и богаче в настройках. Jerome не удалось тогда сделать полный аналог SM - оригинальный алгоритм сложнее и работает несколько по-другому. Цитирую комментарий Адама в коде: "He was trying to replicate the Avid SpectraMatte but the problem seems to be harder than he thought."
На новый уровень плагин был выведен Adam Williams в Cinelerra-HV в феврале 2024. С моей подачи. Дело было так. Если вникнуть в работу параметра 'Saturation Offset', то возникает вопрос: "А в чём разница между ним и 'Min Saturation' ?"
Если вы смотрели скринкаст, то видели, что 'Saturation Offset' действует, только если значение 'Min Saturation' > 0. Оба задают миним. уровень насыщенности, но S.O. не может задать уровень меньший, чем заданный при помощи M.S. Т.е. в связке S.O.-M.S. M.S. может действовать как ограничитель. Бред какой-то.
Однако прежде чем приступить к рассмотрению нового алгоритма, рассмотрим плагин 'Color Swatch', который был одновременно написан Адамом как аналог the SpectraGraph display in the SpectraMatte.
'Color Swatch'
'Color Swatch' содержит цветовой круг, представляющий цветовую модель HSV, в которой работает плагин, и позволяет наглядно видеть как работает 'ChromaKey HSV' и какие дальнейшие настройки необходимы с целью достичь желаемого результата. Цвет представлен аналогично цветовому кругу в HSV. Оттенок изменяется вдоль окружности. Однако есть специфика. 'Color Swatch' в Cinelerra-HV имеет два режима.
В режиме 'Constant Brightness' цвета имеют фиксированную яркость (устанавливается слайдером) в любой точке Color Swatch, а вдоль радиуса изменяется насыщенность от 0 (в центре) до 100 на периферии. Режим используется для настройки насыщенности.
В режиме 'Constant Saturation' цвета имеют фиксированную насыщенность (устанавливается слайдером) в любой точке Color Swatch, а вдоль радиуса изменяется яркость от 0 (в центре) до 100 на периферии. Режим используется для настройки миним. и максим. яркости.
Оба режима могут использоваться для настройки прочих параметров.
Слайдеры 'Brightness', 'Saturation' устанавливают яркость и насыщенность с которой в 'Color Swatch' будет отображаться модель и накладываемое исходное изображение. Диапазон значений от 0 до 100. Назначение параметров - облегчить ориентирование и контроль над цветовыми данными в разных условиях. Т.е. эти параметры не влияют на конечный результат, который будет рендериться в файл.
Сектор, представляющий выбранный цветовой диапазон, имеет форму клина и расширяется от центра к периферии. Диапазон оттенков, удаляемых кеером, также удаляется из ColorSwatch. Цвета, удалённые кеером, отображаются прозрачной "шахматкой" или чёрным (см. выше 'Show Mask'). Цвета, сохраняющиеся в изображении, отображаются полностью непрозрачными. Диапазон цвета, который эффект смешивает между фоном и передним планом, отображается как частично прозрачный. Результат изменения параметров хромакея немедленно отображается в ColorSwatch, что позволяет оценивать взаимосвязи между текущим результатом кеинга и цветовыми значениями исходного изображения.
Рассмотрим новый алгоритм.
Здесь всё как и в предыдущей версии: параметр задаёт диапазон оттенков ключевого цвета. Диапазон значений от 0 до 100. В Color Swatch - это ширина (или угол) между краями сектора кеинга (не путать со слайдером 'Angle' в Color Swatch !). Чем больше ширина (угол), тем больший диапазон оттенков включается в сектор кеинга.
В примерах ниже выбран красный. Не используйте красный в качестве фона в сценах, где присутствуют люди.
На скриншоте ниже Color Swatch в режиме 'Constant Brightness':
Если фон чистый, однородный, то значение допуска обычно небольшое, но если в кадрах плохое освещение, фон не чистый зелёный, а ближе к жёлтому, то допуск следует увеличить, включив в диапазон удаления жёлтые оттенки зелёного.
Контролировать допуск можно, включив отображение маски: увеличивайте допуск до тех пор, пока чёрная часть маски не станет чистой, однородной. Однако слишком большой допуск может привести к потере детализации на краях маски, то-есть некоторые участки переднего плана станут частично прозрачными. К тому же, если передний план содержит отражённый от фона цвет, то вместе с удалённым отражённым цветом вы можете потерять детали переднего плана. Если же допуск недостаточен, то фоновый цвет может удалиться не полностью.
Min. Brightness, Max. Brightness
Работают как и в предыдущей версии. Параметры воздействуют только на пиксели, которые уже подверглись действию 'Hue Tolerance'. Диапазон значений 0 - 100.
На скриншоте ниже ColorSwatch переключён в режим 'Constant Saturation':
Saturation Start, Saturation Line
В прошлой жизни 'Saturation Start' назывался 'Saturation Offset' (я говорил о нём выше), а 'Saturation Line' - 'Min. Saturation'. Теперь оба работают аналогично 'Key Saturation' и 'Key Sat Line' (соответственно) в SM.
При помощи этих параметров устанавливают уровень насыщенности с которого начинается кеинг (это их основное назначение, но не единственное - см. ниже).
Увеличение значения этих параметров ведёт к сохранению в композиции цвета низкой насыщенности, который исключается из диапазона кеинга. И наоборот, с понижением параметра всё больше низконасыщенного цвета удаляется.
Возникает вопрос: а в чём разница между 'Saturation Start' и 'Saturation Line' ? Сравним их работу при помощи 'Color Swatch' (режим 'Constant Brightness').
Диапазон значений параметра 'Saturation Line' (Key Sat Line in SM) от 0 до 100.
При этом '0' для 'Saturation Line' - это текущее значение параметра 'Saturation Start' (Key Saturation in SM). При увеличении значения параметра 'Sat. Line' изменяется форма сектора кеинга: вершина треугольника срезается и он превращается в трапецию. По мере увеличения значения параметра уменьшается высота трапеции, при этом ширина сектора кеинга не изменяется.
С увеличением значения всё большее количество низконасыщенных оттенков исключаются из диапазона кеинга и остаются в изображении. Используйте этот параметр для тонкой настройки порога с которого начинается удаление низконасыщенных частей изображения.
На скриншоте ниже (и далее) Color Swatch в режиме 'Constant Brightness':
На скриншоте ниже то же самое, но 'Desaturate only' = Off :
Оба параметра также используются (путём повышения значения параметров) для восстановления участков переднего плана, содержащих ключевой цвет, но низкого уровня насыщенности, которые были непреднамеренно удалены параметром 'Hue Tolerance'. Обычно такие участки - это результат отражения фонового цвета на передний план.
Если включить отображение маски, то белый представляет участки переднего плана, а чёрный - фон, вырезанный кеером. Увеличение значения параметров 'Saturation Start' и 'Saturation Line' добавляет белого в маску (очищает белый в маске). Если в чёрных участках появляется серый, уменьшите значение параметра.
Если удалились участки переднего плана, которые планируется оставить в композиции (такое происходит при заданных низких значениях параметра), увеличьте значение, чтобы восстановить их, но чрезмерное увеличение зачастую приводит к увеличению отражённого фонового цвета (ниже мы ещё вернёмся к этом моменту).
Кроме того, чрезмерное увеличение параметров 'Saturation Start' и 'Saturation Line' может привести к отмене результатов действия 'Hue Tolerance', а также снижает эффективность 'In Slope' и 'Out Slope'.
Как я уже говорил выше, при повышении значения 'Saturation Start' (Key Saturation in SM) возможно ещё большее увеличение отражённого на передний план цвета (рассеивания на передний план). Поэтому 'Saturation Start', как правило, применяется в связке с 'Spill Saturation', который мы рассмотрим в следующем разделе.
Spill Supression
Раздел 'Spill Supression' включает в себя параметры 'Spill Saturation' и 'Spill Angle' ('Spill Angle Offset' in SM), а также чекбокс 'Desaturate only' задача которых - подавление цвета, который отражается от фона на объект. Также применяются для удаления каймы, окантовки фонового цвета по краям объекта переднего плана.
При помощи комбинации этих двух параметров по обеим сторонам сектора кеинга создаётся охватывающая его дополнительная зона (the spill correction zone), в которой и происходит подавление отражённого цвета.
'Spill Saturation' задаёт уровень насыщенности, с которого начинается подавление рассеивания цвета. Значение параметра 'Spill Saturation' - это значение в точке на острие дополнительной зоны (the spill correction zone), охватывающей зону кеинга. Т.е. параметр определяет положение the spill correction zone. Данный параметр применяется в связке 'Saturation Start' и действует, только если 'Saturation Start' ('Key Saturation' in SM) > 0. Диапазон значений от 0 до 100, при этом за 0 этот параметр принимает текущее значение 'Saturation Start', а 100 - это нулевая насыщенность (центр Color Swatch).
Если вы увеличили значение 'Saturation Start', то вероятно увеличилось и количество отражённого на объект фонового цвета, так как низконасыщенные оттенки были исключены из диапазона кеинга (потому что сектор кеинга сместился, а вместе с ним и зона подавления).
Поэтому одновременно увеличению 'Saturation Start', следует увеличивать значение 'Spill Saturation' на величину, эквивалентную увеличению значения 'Saturation Start'. Tаким образом, в данном случае, 'Spill Saturation' действует в противоположную сторону от 'Saturation Start' и возвращает низконасыщенные оттенки в диапазон подавления, удаляя тем самым нежелательный отраженный цвет, появившийся после задействования 'Saturation Start'.
Этот шаг необходим, только если вы изменяли параметр 'Saturation Start'; в остальных случаях параметр 'Spill Saturation' не играет роли.
'Spill Saturation' применяется в комбинации с 'Spill Angle' ('Spill Angle Offset' in SM).
'Spill Angle' - это основной параметр для контроля пропуска цвета (подавления рассеивания). Он задаёт диапазон оттенков, подвергаемых коррекции (подавлению рассеивания цвета).Диапазон задаётся путём увеличения или уменьшения угла сектора подавления рассеивания. По умолчанию угол сектора подавления рассеивания такой же как и сектора ключевого цвета (Hue Tolerance).
В большинстве случаев следует придерживаться низких значений 'Spill Angle', чтобы не затронуть цветовые значения, не требующие коррекции. Высокие значения параметра могут привести к нежелательной цветокоррекции переднего плана.
Например, если ключевой цвет - зелёный, то значения зеленовато-синих оттенков заменяются значениями синего цвета, а зелёно-оранжевые пиксели заменяются значениями оранжевого.
Другой пример: частич. прозрачн. красный объект на синем фоне может содержать смесь синего и красного. Повышение значение параметра 'Spill Angle' удалит синий из сине-красных участков и заменит его чистым красным. Чем больше значение параметра, тем больше оттенков подвергнется коррекции. В большинстве случаев устанавливается относительно небольшое значение для этих параметров.
Имейте в виду, что высокие значения параметра, применённые к многоцветному изображению, могут затронуть насыщенность и цветовой баланс в участках где коррекция не требуется. Увеличивайте значение параметра, пока не начнёте видеть изменение цвета; затем отступите немного назад. Возможно, вам придётся снова откорректировать 'Spill Saturation' и найти оптимальное соотношение между этими 2-я параметрами.
Если включить параметр 'Desaturate only', то вместо замены цвет. значений будет происходить десатурация цвета. Это поведение исходного варианта от Jerome.
Ниже на составном скриншоте верхняя часть - 'Sat. Line' = 0, нижн. часть - 'Sat. Line' = 20 :
'In Slope' ('Inner Softness' в SM) и 'Out Slope' ('Outer Softness' в SM)
Данные параметры регулируют градиент смешивания прозрачных и непрозрачных участков, то есть то, как будут смешиваться пиксели переднего плана и фона в финальной композиции. Или другими словами, градуированный переход между прозрач. и непрозрач. участками.
'In Slope' устанавливает спад (переход) от опакового до прозрачного в секторе кеинга (градиент расширяется от границ сектора кеинга в направлении значения ключевого цвета (от краёв внутрь сектора) ). В Color Swatch это отображается как участок плавного (градуированного) перехода между границами сектора и сплошным чёрным региона кеинга.
Изменяя параметр, вы можете задать ширину спада (перехода). Диапазон значений от 0 до 100.
С увеличением значения параметра, цвета на границе сектора кеинга плавно переходят в фон, а не полностью удаляются. Когда 'In Slope' = 100, градиент расширяется внутрь от краёв сектора кеинга в направлении значения ключевого цвета на весь диапазон сектора кеинга. Чем меньше значение, тем уже градуированный переход и больше цветовых значений вблизи границ сектора кеинга будет полностью прокеено (удалено), а не смешено между перед. планом и фоном. Когда 'In Slope' = 0, градиент вообще не расширяется и = 0.
'Out Slope' действует аналогично предыдущему, разница в том, что он устанавливает спад (полупрозрачный градуированный переход) для пикселей с внешней стороны сектора кеинга. От внешней границы сектора кеинга в сторону непрозрач. участков переднего плана создаётся полупрозрачный переход, который с увеличением параметра расширяется, превращая захватываемые им непрозрачные участки переднего плана в полупрозрачные.
В Color Swatch это отображается как участок за пределами сектора кеинга, где сплошной полностью непрозрачный цвет переднего плана заканчивается и начинается плавный (градуированный) переход к границе сектора.
Можно описать его работу и по-другому: от полностью непрозрачных участков переднего плана (за пределами сектора кеинга) создаётся полупрозрачный градуированный переход в направлении к границе сектора кеинга. С увеличением параметра место (полностью непрозрачное), где начинается переход, отодвигается в сторону переднего плана.
Изменяя параметр, вы можете задать ширину спада. Диапазон значений от 0 до 100. Чем меньше значение, тем уже градуированный переход и больше цветовых значений переднего плана полностью непрозрачны. Когда 'Out Slope' = 0, градиент вообще не расширяется и = 0. И наоборот, увеличение значения параметра уменьшает диапазон полностью непрозрачных цвет. значений переднего плана и расширяет полупрозрачный градуированный переход.
То же самое, но с увеличением параметра 'Saturation Line':
То есть речь идёт о том, что, как и в предыдущей версии, после этапа восстановления низконасыщенных участков, маска обычно имеет резкие, жёсткие края. Поэтому вы увеличиваете значение 'Saturation Line' до тех пор, пока не восстановите низконасыщенные участки, а затем переходите на использование 'In Slope' и 'Out Slope', чтобы "смягчить" края, то-бишь создать градиентный полупрозрачный переход, а также задать частичную прозрачность участкам, которые по плану должны быть прокеены частично. Большая часть таких участков на данном этапе обычно полностью непрозрачны, поэтому увеличивайте 'Out Slope' и уменьшайте 'In Slope' до тех пор, пока альфа-канал (маска) корректно их не отобразит. Если участки переднего плана, которые должны быть полностью непрозрачны, стали вместо этого частично прозрачными, уменьшите значение 'Out Slope' и увеличьте значение 'In Slope'.
Если передний план не содержит частично прозрачных участков, требуется лишь минимальная регулировка этих параметров.
Alpha Offset
Alpha Offset в Cinelerra-HV - это аналог параметра 'Opacity' в SM.
Работает аналогично предыдущей версии от Jerome (как описано в 1-й части статьи).
Плагину нужен 'Matte Blur' (Blur, Erode, Dilate как в SM). Адам внёс предложение в TODO. Пока же для сглаживания резких краёв можно применять эффект 'Blur', установив 'Blur Alpha' = 2 - 3 и отключив размытие R, G, B.
Комментариев нет:
Отправить комментарий