これは、かつて「AviSynthのぺーじ」として公開されていたものの "残骸" です。ここに記されている内容には、間違いが含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth 付属のドキュメントや AviSynth 公式サイトを参考にすることをおすすめします。私(にーやん)が管理人をつとめる AviSynth Wiki も利用してください。また、このページは、予告なしに削除される可能性もあります。
TomsMoCompプラグイン
 TomsMoCompプラグインは動き補償機能搭載のインターレース解除プラグインです。

 このページでは、TomsMoCompプラグインを使ってインターレース解除する方法を紹介します。

 なお、インターレース解除は必ず行わなければならないものではありません

 MPEG-2などインターレースに対応した動画形式(コーデック)で、インターレースを保持したままエンコードする場合は、以下の記事は関係ありません。

 テンプレートでは、22-24行目にTomsMoCompの設定行があります。
###### 6.インターレース解除 / 24fps化 #####
#//--- インターレース解除 ---//
#TomsMoComp(1, 5, 0)
 TomsMoCompフィルタは次のように記述します。
TomsMoComp(TopFirst, SearchEffort, VerticalFilter)
 TomsMoCompにはTopFirstSearchEffortVerticalFilterの3つのパラメータが用意されており、それぞれ数字で指定します。

 次にそれぞれのパラメータの意味と指定の仕方を見ていきましょう。

TopFirst - フィールドオーダーの指定
 TopFirstで、フィールドオーダーがトップファーストであるかどうかを仮定します。

 トップファーストならば1、トップファーストではない(ボトムファースト)ならば0を指定します。

 ここでは、1はYes(true)、0はNo(false)の意味で使われています。

 また-1を指定すると、AviSynthが報告したフィールドオーダー(AviSynthがどちらのフィールドが優先的であると捉えているか)を自動的にピックアップします。

 フィールドオーダーについては、フィールドオーダーの指定のページを参考に、あらかじめ確認しておいてください。
TopFirst
1
トップファースト
0
ボトムファースト(トップファーストではない)
-1 自動(AviSynthによる判定)

SearchEffort - 動き補償のしきい値
 SearchEffortTomsMoCompプラグインの最大の特徴である動き補償のためのしきい値です。

 動きのあった画素を検索するために、どれくらいたくさんのCPU時間を使用するかを決定するのに使われます。

 指定可能な数値は-1から30までの整数で、このうち動き補償が機能するのは1から30までのときです。

 値が大きいほど動き検索に使用されるCPU時間が多くなりますが、15以上の数値はCPUへの負荷が大きくなるため推奨されていません。

 ただし実際に利用可能な数値は1,3,5,9,11,13,15,19,21,maxで、これら以外の数値を指定した場合、これらの数値の中からもっとも近い値が適用されます。

 SearchEffort0の時は動き補償は無効で、Bob方式でインターレース解除します。

 SearchEffort-1の時はインタレース解除が行われず、画像を垂直方向に2倍に拡大します。この場合、すでにプログレッシブ化(ノンインタレース化)が行われていることが前提となります。
SearchEffort
1-30
数値に応じて動き検索に使用するCPU時間が増加
0
Bob方式でインターレース解除
-1
インターレース解除なし。垂直方向に2倍に拡大

VerticalFilter - 垂直フィルタ
 VerticalFilterは隣接する2ラインを平均化します。これにより、垂直方向の解像度は下がりますが、インターレースの解除残しを目立ちにくくすることができます。

 TopFirst同様、1がtrue(有効)、0がfalse(無効)です。

 下の画像はVerticalFilter(VF)を有効(1)にした場合と、無効(0)にした場合を比較したものです(IrfanView3.85で2倍に拡大したもの)。
VF 1(有効)
VF 0(無効)
 よく見るとVerticalFilterを有効にした画像の方が、若干ぼやけているのがわかると思います。

 もし解除残しの縞が目立つときはVerticalFilterを有効にしてみるのもいいかもしれません。
VerticalFilter
1
有効
0
無効

使用例
 たとえばトップファーストのビデオクリップを「SearchEffort = 5」に設定し、VerticalFilterを使用しないでインターレース解除する場合は、次のように記述します。
TomsMoComp(1, 5, 0)
 トップファーストなので「TopFirst = 1」、VerticalFilterを使用しないので「VerticalFilter = 0」になります。

 数値を記述する順番を間違えないようにしてください。

既知の問題
 TomsMoCompプラグインのSearchEffort値を大きく設定しすぎると、ドット状のノイズが発生します。

 この現象はSearchEffortの値を下げるか0以下に設定することで、ある程度、回避することが可能です。

 下のサンプル画像はTopFirstVerticalFilterの値は固定して、SearchEffort(SE)値のみを変化させたときのものです。
オリジナル
オリジナルです。縞が見られます。
SE 15
 ドット状のノイズが発生しています。
SE 10
 SE15の場合よりはノイズが減っていますが、まだ残っています。
SE 5
 ドット状ノイズは、ほぼなくなりました。
SE 0
 SE0のときは動き補償は行われません。そのためドット状のノイズはありませんが、若干ぼやけた感じにも見えます。
SE -1
 SE-1の時はインターレース解除なしで、画像が垂直方向に2倍に拡大されます。左の画像はSeparateFieldsフィルタでフィールド単位に分離した後、TomsMoCompフィルタをかけたもの。
 このサンプルでは5近くまでSearchEffort値を下げるとドット状のノイズは見られなくなりました。

 またTomsMoCompプラグインの作者であるtrbarry(Tom Barry)氏もホームページTomsMoCompの紹介文に、次のように書いています。
I currently just recommend SE=5 for everything.
(私は、今のところ、すべての場合においてSE(SearchEffort)=5をおすすめします。)

最終更新日 2003年12月28日
前のページ | 次のページ