Layer [yuy2][rgb32]

Layer (base_clip, overlay_clip, string "op", int "level", int "x", int "y", int "threshold", bool "use_chroma")

Этот фильтр может наложить два клипа разных размеров (но с одинаковым форматом цвета) используя разные режимы работы.
Для попиксельной прозрачности информация из 4-го цветового канала RGB32 (А- или альфа-канал) используется как маска.

Base_clip: подлежащий клип, который определяет размер и все остальные видео и аудио свойства результата.
Overlay_clip: клип, который накладывется на клип. Этот клип может содержать альфа слой.
op: производимая операция наложения, которая может быть: "add", "subtract", "lighten", "darken", "fast", "mul".
level: 0-257, интенсивность выполняемой операции. 0: base_clip возвращается неизмененным, 257 (256 для YUY2): используется максимальная интенсивность.
x, y: сдвиг положения overlay_clip
threshold: (порог) - реализовано только для "lighten" and "darken".
use_chroma: использовать цвет overlay_clip, по умолчанию =true. Когда false, используется только яркость.

В поведении фильтра и разрешенных параметрах есть различия в зависимости от формата цвета и операции:

Эти операции работают одинаково для RGB32 или YUY2:

"fast": use_chroma должно быть TRUE, level и threshold не используется.
        Результат просто среднее между base_clip и overlay_clip.

"add":  threshold не используется. 
        Разница между base_clip и overlay_clip умножается на alpha и добавляется к base_clip.
        alpha=0 -> виден только base_clip,
        alpha=128 -> base и overlay одинаково смешаны,
        alpha=255 -> виден только overlay.
	Используется формула :-
	  RGB32 :: base += ((overlay-base)*(alpha*level+1)>>8)>>8
	  YUY2  :: base += ((overlay-base)*level)>>8

"subtract": также как add, но overlay_clip предварительно инвертируется.

Эти операторы похоже работают правильно только в YUY2:

"mul": threshold не используется. 
      The base_clip окрашивается как overlay_clip, так что use_chroma должно быть TRUE.
      alpha=0 -> виден только base_clip, alpha=255 -> примерно такая же яркость как Base,
      но цвета из Overlay

"lighten": use_chroma должно быть TRUE. производит аналогичное дейтсвие как "add",
           но только когда результат ЯРЧЕ, чем base, то используются новые значения.
           С большим значением threshold, действие более вероятно,
           так что с threshold=255 это аналогично "add",
           с threshold=0, base_clip более вероятно проходит без изменений,
           в зависимости от разницы между base_clip и overlay_clip.

"darken":  аналогично "lighten", но это производится только когда результат ТЕМНЕЕ, чем base.


Также см здесь для информации о свойствах результирующего клипа.

 

Mask [rgb32]

Mask (clip, mask_clip)

Прикладывает определенную альфа-маску к clip для использования с Layer конвертируя mask_clip в бесцветный (серый) и используя результат как маску (альфа-канал) в RGB32. В этом канале "черное" означает полностью прозрачное, "белое" означает полностью непрозрачное.

 

ResetMask [rgb32]

ResetMask (clip)

Прикладывает "полностью непрозрачную" (то есть белую) альфа-маску к clip для использования с Layer.

Альфа-канал RGB32-клипа не всегда хорошо определен (в зависимости от источника),
       этот фильтр является наиболее быстрым путем приложения полностью белой маски:

clip=ResetMask(clip)

 

ColorKeyMask [rgb32]

ColorKeyMask (clip, int "color", int "tolB", int "tolG", int "tolR")

Очищает пикселы в альфа-канале путем сравнения с color (по умолчанию черным). Каждый писел со цветом, отличающимся менее чем на tolB, tolG, tolR (по умолчанию 10), устанавливается прозрачным (то есть черным), иначе он остается неизменным, то есть он НЕ устанавливается непрозрачным. (значит он не устанавливается белым, вот почему Вам может понадобиться ResetMask перед применением данного фильтра). Если tolR или tolG не установлены, они получают величину tolB (что отражает старое поведение). Обычно вы начинаетсе с ResetMask, затем делаете несколько вызовов ColorKeyMask, чтобы сделать прозачные дырки там, где имеется интересующий цвет. См Overlay для примеров.

Для версий AviSynth ранее v2.58, не было отдельных уровней точности для синего, зеленого и красного. Был только один уровень точности называемый tolerance и он использовался для всех цветовых каналов одновременно.

$English Date: 2008/02/06 16:40:23 $
Русский перевод 10.05.2005 Drakon Rider drakan.ru
Обновление 24.11.2006-06.02.2008 Fizick avisynth.org.ru