AviSynthのぺーじ/プリセット1:SelectByString
これは、かつて「にーやんのAviSynthのぺーじ」として公開されていたものを転載したものです。内容は古く、間違いも含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth 付属のヘルプや AviSynth 公式サイトを参考にすることをおすすめします。AviSynth Wiki の AviSynth入門なども活用してください。
プリセットとは †
プリセットとは、あらかじめ設定されているパラメータのサンプルのことです。
たとえば、Vlad59氏作のConvolution3Dフィルタ(プラグイン)には、movieHQ、movieLQなど6つのプリセットが用意されています。
Convolution3Dフィルタでプリセットを指定するには、次のように記述します(movieHQの場合)。
Convolution3D(preset="movieHQ")
これは、次のように個別にパラメータを指定した時と、まったく同じになります。
Convolution3D(0, 3, 4, 3, 4, 2.8, 0)
Convolution3Dフィルタには、matrix, ythresh, cthresh, t_ythresh, t_cthresh, influence, debugの計7つの引数があるのですが、プリセットでは、各プリセットごとに、あらかじめ値が割り振られているため、これを一々調整する必要がありません。
このように、プリセットを利用すれば、細かいパラメータ設定を行わなくても、簡単にフィルタを実行することができます。
ところで、すべてのフィルタに、このようなプリセットが用意されているわけではありません。
しかし関数を利用すれば、自分なりのプリセットを設定することができます。
SelectByStringプラグイン †
では、実際にプリセットを持つ関数を作ってみましょう。
今回は、プリセットの設定に便利な、stickboy氏作のSelectByStringプラグインを使って関数を作成します。
SelectByStringプラグインは、以下のURLから入手できます。
- SelectByString
SelectByStringの書式は、次の通りです。
# 書式 SelectByString(string s,\ string key1, value1\ [, string key2, value2 [, ...]]\ [, "else"])
引数 は、次の通りです。
s | search string |
---|---|
key1, value1 | search stringがkeyNとマッチしたなら、SelectByStringはvalueNを返す。Keysとvaluesはペアでなければならない。 |
"else" | search stringが見つからない場合に返すデフォルト値。 |
KeyN(Nは数字)にプリセット名を、ValueNにKeyNに対応したパラメータ設定を指定します。
そして、sとKeyNが一致した場合に、ValueNを返すという仕組みになっています。
・・・と説明しても、(説明している本人も)何だかよくわからないので、付属の説明書を参考に、実際に関数を作っていくことにします。また、以下のページにも、SelectByStringの使用例が多数掲載されているので、参考にしましょう。
- Wrapper Function
といったところで、また次回。
最終更新日 2004年8月29日