Layer

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

[funktioniert noch nicht in AviSynth v2.5]

Dieser Filter kann zwei Clips mit unterschiedlicher Größe (müssen aber im gleichem Farbraum sein) mischen, wobei verschiedene Methoden verwendet werden können. Für eine Pixel-basierte Transparenz-Maske wird der vierte Farbkanal beim Farbraum RGB32 (der A- oder Alpha-Kanal) verwendet.

base_clip: Der unten liegende Clip, der die Größe und die anderen Video- und Audio-Eigenschaften des entstehenden Clips bestimmt.
overlay_clip: Der Clip, der zu base_clip dazugemischt wird.
op: Die Mischoperation, die durchgeführt wird. Das kann sein: "add" (Addieren), "subtract" (Subtrahieren), "brighten" (Aufhellen), "darken" (Verdunkeln), "fast" (die Schnellvariante), "mul" (Multiplizieren).
level: 0-255, gibt die Stärke der durchgeführten Operation an. 0: der base_clip wird nicht verändert, 255: die maximale Stärke wird verwendet.
x, y: Die Verschiebung des overlay_clip gegenüber dem base_clip.
threshold: Gibt es nur für "lighten" and "darken" (ein Schwellenwert).
use_chroma: Gibt an, ob auch die Farbinformation von overlay_clip verwendet wird, der Standardwert ist true (Farbe wird verwendet). Bei false wird nur die Helligkeitsinformation verwendet.

Es gibt einige Unterschiede im Verhalten und der erlaubten Parameter, die vom Farbraum und der verwendeten Mischoperation abhängen:
Diese Operationen verhalten sich für RGB32 und YUY2 gleich:
"fast": use_chroma muss TRUE sein, level und threshold werden nicht verwendet.
        Das Ergebnis ist einfach der Mittelwert zwischen base_clip und overlay_clip.

"add": threshold wird nicht verwendet. Der Unterschied zwischen base_clip und overlay_clip wird
       mit alpha multipliziert und zum base_clip dazugezählt.
       alpha=0 -> nur das base_clip ist sichtbar, alpha=128 -> base_clip und overlay_clip werden
       gleichwertig gemischt, alpha=255 -> nur das overlay_clip ist sichtbar.

"subtract": das gleiche wie bei "add", allerdings wird das overlay_clip vorher invertiert.

Diese Operationen arbeiten (anscheinend) nur in YUY2 korrekt:
"mul": threshold wird nicht verwendet. Der base_clip wird so wie der overlay_clip "eingefärbt",
       use_chroma sollte also true sein. alpha=0 -> nur der base_clip sichtbar, alpha=255 ->
       ungefähr die gleiche Helligkeit wie der base_clip aber mit den Farben vom overlay_clip

"lighten": use_chroma muss TRUE sein. Führt die gleiche Operation wie "add" durch, aber nur wenn
           das Ergebnis HELLER als der base_clip ist, wird der neue Wert auch verwendet. Mit einem
           hohen threshold ist die Operation wahrscheinlicher, mit threshold=255 ist das Ergebnis
           das gleiche wie "add", mit threshold=0 wird der base_clip eher unverändert gelassen,
           abhängig von der Differenz zwischen base_clip und overlay_clip.

"darken": das gleiche wie "lighten", allerdings wird das Ergebnis nur verwendet, wenn der neue Wert
          DUNKLER als base_clip ist.

Siehe auch hier zu den entstehenden Clip-Eigenschaften.



Mask

Mask(clip, clip "mask_clip")

Setzt in clip eine definierte Alpha-Maske (zur Verwendung mit Layer), das mask_clip wird auf Grauwerte umgewandelt und diese werden als Maske (Alpha-Kanal) vom RGB32 verwendet. Bei diesem Kanal bedeutet "schwarz" völlig durchsichtig, "weiß" bedeutet völlig undurchsichtig.



ResetMask

ResetMask(clip)

Setzt die Alpha-Maske vom clip komplett auf undurchsichtig (zur Verwendung mit Layer).

Der Alpha-Kanal eines RGB32-Clip ist nicht immer in einem definierten Zustand (abhängig von der Quelle). Dieser Filter ist die einfachste Art, eine komplett "weiße" Maske zu setzen:



ColorKeyMask

ColorKeyMask(clip, int "color", int "tolerance")

Setzt den Alpha-Kanal (ähnlich wie auch Mask), allerdings durch Vergleichen der Farben. Jedes Pixel mit einem Farbunterschied, der kleiner als tolerance ist, wird auf transparent gesetzt, andernfalls unverändert gelassen (es wird NICHT auf undurchsichtig gesetzt).