Layer*1 [yuy2][rgb32]

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

このフィルタは、異なるサイズの(だが、同じカラーフォーマットの) 2 つのクリップを、さまざまな演算モードを使ってオーバーレイ*2することができます。
ピクセルの透明度情報については、マスクとして RGB32 の第 4 の色チャンネル(A チャンネル、または、アルファチャンネル*3)が使用されます。

base_clip: 生成されるクリップの大きさと他のすべてのビデオとオーディオのプロパティを決定する基礎をなす*4クリップ。
overlay_clip: base_clip の上に合成されるクリップ。このクリップは、アルファレイヤを含むことができます。
op: 実行される合成演算。次のいずれかの値を取ることができます: "add"、"subtract"、"lighten"、"darken"、"fast"、"mul"
level: 実行される演算の強さ。0 から 257 まで。0: base_clip がそのまま返されます。257 (YUY2 は 256): 最大の強さが使用されます。
x, y: overlay_clip のオフセット*5位置。
threshold: "lighten" と "darken" のみに実装されています。
use_chroma: overlay_clip の色差を使用します。デフォルト true。false の場合、輝度のみ使用されます。

カラーフォーマットと演算の種類によって、挙動や許容されるパラメータにいくつかの違いがあります。詳細は以下の通りです:

これらの演算子は、RGB32 でも YUY2 でも同様に機能します:

"fast": use_chroma は TRUE である必要があり、levelthreshold は使われません。
        結果は、単に base_clipoverlay_clip の平均です。

"add":  threshold は使われません。base_clip と overlay_clip の差は、
        アルファ値を使って掛け算され、base_clip に足されます。
          alpha=0 -> base_clip のみ見える、
          alpha=128 -> base_clip と overlay_clip が均一にブレンドされる、
          alpha=255 -> overlay_clip のみ見える。
        使用される公式:-
          RGB32 :: base += ((overlay-base)*(alpha*level+1)>>8)>>8
          YUY2  :: base += ((overlay-base)*level)>>8

"subtract": "add" と同じですが、overlay_clip は前もって反転されます。

これらの演算子は、YUY2 でのみ正しく動作するようです:

"mul": threshold は使われません。base_clip は overlay_clip と同様に彩色されます。
       このため、use_chroma は TRUE でなくてはなりません。
       alpha=0 -> base_clip のみ見える、alpha=255 -> base_clip とほぼ同じ輝度だが、
       overlay_clip の色を持つ。

"lighten": use_chroma は TRUE である必要があります。"add" と同じ演算を実行しますが、
       結果が base_clip より明るいときのみ新しい値が使われます。threshold が
       高いほど、この演算が行われる可能性が高くなります。つまり、threshold=255 なら
       "add" と同じ、threshold=0 なら base_clip と overlay_clip の差によっては
       おそらく base_clip がそのまま変更なしで渡されます。

"darken": "lighten" と同じですが、結果が base_clip より暗いときにのみ実行されます。


生成されるクリップのプロパティについては、こちらも参照。

 

Mask [rgb32]

Mask (clip, mask_clip)

Layer と一緒に使用するために、mask_clip をグレースケールに変換し、それを RGB32 のマスク(アルファチャンネル)に使用することによって、定義されたアルファマスクを clip に適用します。このチャンネルでは、「黒」は完全に透明を意味し、「白」は完全に不透明を意味します。

 

ResetMask [rgb32]

ResetMask (clip)

Layer と一緒に使用するために、clip に「100% 不透明な」(すなわち白色の)アルファマスクを適用します。

RGB32 クリップのアルファチャンネルは、(ソースによっては)つねに明確に定義されているとは限りません。このフィルタは、純白のマスクを適用するための手っ取り早い方法です:

clip = ResetMask(clip)

 

ColorKeyMask [rgb32]

ColorKeyMask (clip, int color[, int tolB, int tolG, int tolR])

color で指定された色(デフォルト 黒)を比較することによって、アルファチャンネル内のピクセルを消去します。色の差が (tolB, tolR, tolG)*6 (デフォルト 10)より小さいピクセルは、それぞれ透明(つまり黒色に)に設定されます。それ以外のピクセルは変更されません。すなわち、不透明には設定され''ません''(白色には設定されません。そのため、このフィルタを適用する前に ResetMask が必要になるかもしれれません)。これは、統合マスクを複数回の呼び出しによって構築することを可能にします。tolR または tolG が設定されないときは、tolB の値が使われます(古いバージョンの挙動を反映)。通常は、まず ResetMask から始めます。それから、関係のある色が現れる透明な穴をつくるために ColorKeyMask を 2、3 回連続して呼び出します。使用例については、Overlay を参照してください。

v2.58 より古いバージョンの AviSynth では、青、緑、赤に対する個別の許容レベルはありませんでした。唯一、tolerance と呼ばれる許容レベルがあり、青、緑、赤に対して同時に使用されていました。

原文 Date: 2008/02/06 16:40:23
日本語訳 $Date: 2008/08/13 02:48:39 $