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

フィールドオーダーの確認

 次のビデオクリップを使って、AviUtlでフィールドオーダーを確認する方法(※)を紹介したいと思います。このビデオクリップでは、画面真ん中のロゴが時計回りに回転しています。
0 1 2 3 4






(1)AviUtlにおけるフィールドオーダーの指定

 AviUtlでは、メニューの[設定]->[インターレースの解除]からフィールドオーダーを設定することができます(AviUtl97d以降)。

 ここでは、とりあえず[ボトムフィールド->トップフィールド]にしてみることにします。

(2)ビデオクリップを60fpsで読み込む

 [ファイル]->[開く]からビデオクリップを開きます。
 その際、ファイル選択画面左下の[60fps読み込み]にチェックを入れてください。

 これにより30fps(29.97fps)のビデオクリップが倍の60fps(59.94fps)に展開して表示されます。
0(0B) 1(0T) 2(1B) 3(1T) 4(2B)





5(2T) 6(3B) 7(3T) 8(4B) 9(4T)





 60fps読み込みしました。フレーム数は倍になっています。

 カッコ内の数字は元のフレーム番号を表しています。またBはボトムフィールド、Tはトップフィールドの意味です。

 AviUtlのフィールドオーダーを[ボトムフィールド->トップフィールド]にしていますので、60fps読み込みしたクリップは「ボトム->トップ->ボトム->トップ->・・・」の並び順(フィールドオーダー)になっています。

 フレーム番号6(3B)からフレーム番号8(4B)を見てください。

 フレーム番号6(3B)からフレーム番号7(4T)にかけて、時計回りに回転しているはずの画像が逆方向(反時計回り)に動いています。そしてフレーム番号8(4B)で、また時計回りに回転しています。

 この状態で(フィールドオーダーで)ビデオクリップを再生すると、カクカクと不自然な動きになってしまいます。

 このようにビデオクリップ内のオブジェクトが本来動くべき方向とは逆方向に動いたり、また元の方向に動いたりというように、画像が行ったり来たりする場合、フィールドオーダーが間違っていることになります。

(3)フィールドオーダーを変更して読み込む

 今度はAviUtlのフィールドオーダーを[トップフィールド->ボトムフィールド]に変更して読み込んでみます。
0(0T) 1(0B) 2(1T) 3(1B) 4(2T)





5(2B) 6(3T) 7(3B) 8(4T) 9(4B)





 ロゴは時計回りに回転しています。行ったり来たり、不自然な動きをしていません。

 よって、このビデオクリップのフィールドオーダーはトップファースト([トップフィールド->ボトムフィールド]の順)であるということになります。

[D2Vファイルを開くときの注意]
 AviUtlでD2Vファイルを開くためには、AviUtlとDVD2AVIがともにVFAPI登録されていなければなりません。

 それぞれデフォルトで初回起動時にVFAPI登録されるようになっていますが、もしD2Vファイルが開けなかったときは設定を確認してください。
 AviUtlは[ファイル]->[環境設定]->[システムの設定]で「aviutl.vfpをVFAPI登録する」にチェック(左図)、DVD2AVIは[Help]->[VFAPI Plug-In]にチェックが入っていればOKです。
※この判別法はネーサさんに教えていただきました。ありがとうございました。

フィールドオーダーの指定

 フィールドオーダーの確認が済んだら、AviSynthでフィールドオーダーを設定しましょう。

 Template.avsの13-17行目を見てください。
###### 4.フィールドオーダーの指定 #####
#//--- トップファースト ---//
#AssumeFrameBased().ComplementParity()
#//--- ボトムファースト ---//
#AssumeFrameBased()
 「AssumeFrameBased().ComplementParity()」でトップファースト([トップフィールド->ボトムフィールド])、「AssumeFrameBased()」でボトムファースト([ボトムフィールド->トップフィールド])になります。

 あてはまる行の#を削除してください。
[AviSynth2.0.4以降の場合]
 AviSynth2.0.4から、AssumeTFF/AssumeBFFフィルタを使ってフィールドオーダーを指定することもできるようになりました。
###### 4.フィールドオーダーの指定 #####
#//--- トップファースト ---//
#AssumeTFF()
#//--- ボトムファースト ---//
#AssumeBFF()
最終更新日 2003年11月24日
前のページ | 次のページ