Contents
iFilterTのTは、Temporal(時間軸)のTです。
以前、Doom9フォーラムで、2D(Spatial/空間軸)フィルタにはiFilterの手法を、時間軸フィルタにはiFilterT関数の手法を使うという話が出たことがあったので、こういう名前にしました。
しかし、iFilterが2Dフィルタ用、iFilterTが時間軸フィルタ用、というわけではありません。2Dフィルタに関しては、iFilter/iFilterT、いずれにおいても使用することが可能です。ただし、時間軸フィルタを使用したいときには、どちらの関数(手法)を使うべきか、注意を払う必要があります。
iFilter関数は、トップ/ボトム(偶数/奇数)の両フィールドを交互に並べたクリップを生成して、それに対してフィルタをかけます。このとき、たとえば前後合わせて3フレーム(フィールド)を参照するタイプの時間軸フィルタを使用すると・・・
[トップ] [ボトム] [トップ](または、[ボトム] [トップ] [ボトム])
このように、異なるフィールドの画像を参照します。これにより、異なるフィールドの成分がブレンドされる可能性があります。
一方、iFilterT関数では、フィールド別に処理を行うため・・・
[トップ] [トップ] [トップ](または、[ボトム] [ボトム] [ボトム])
このように、同じフィールドの画像を参照します。異なるフィールドの成分がブレンドされることはありません。
たとえば、テレシネ(3:2プルダウン)されたソース(トップファースト)の場合で考えてみます。
[0] [1] [2] [3]・・・(数字はフレーム番号)
これをテレシネされる前の画像とします。
[0T] [1T] [1T] [2T] [3T]・・・(トップフィールド) [0B] [1B] [2B] [3B] [3B]・・・(ボトムフィールド) ------------------------ [0f] [1f] [2f] [3f] [4f]・・・(フレーム)
テレシネされた後は、こんな感じになります(例)。Tはオリジナル画像のトップが、Bはオリジナル画像のボトム、fはテレシネ後のフレームを表します。つまり、[0T]と[0B]が[0f](0フレーム)を構成しているということです。
[0T] [0B] [1T] [1B] [1T] [2B] [2T] [3B] [3T] [3B]・・・
AviSynthでフィールド分離(SeparateFields)すると、このような画像の並び順になります(数字は、オリジナルの画像の番号です)。
このビデオに対して時間軸フィルタをかける(つまりiFilterの方法を使用する)と・・・
[1T] [2B] [2T]
このような並び順で、元々別の画像の、異なるフィールドを参照することになり、マズい結果になるかもしれません。
お願い
専門的な知識があるわけではないので、かなりいい加減な説明かもしれません。そのまま鵜呑みにしないようにしてください。あくまでも参考程度に・・・。もし間違っていたら、さりげなく教えてもらえると助かります。