AviSynthのぺーじ/フィールドオーダーの指定

これは、かつて「にーやんのAviSynthのぺーじ」として公開されていたものを転載したものです。内容は古く、間違いも含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth 付属のヘルプや AviSynth 公式サイトを参考にすることをおすすめします。AviSynth WikiAviSynth入門なども活用してください。

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

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

01234
telecine000s.pngtelecine001s.pngtelecine002s2.pngtelecine003s2.pngtelecine004s.png

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

au98d_field_first.png

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

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

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

au98d_menu_open.png

 [ファイル]->[開く]からビデオクリップを開きます。

au98d_60fps.png

 その際、ファイル選択画面左下の[60fps読み込み]にチェックを入れてください。

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

0(0B)1(0T)2(1B)3(1T)4(2B)
source000bs.pngsource001bs.pngsource002bs.pngsource003bs.pngsource004bs.png
5(2T)6(3B)7(3T)8(4B)9(4T)
source005bs.pngsource006bs.pngsource007bs.pngsource008bs.pngsource009bs.png

 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)
source000s.pngsource001s.pngsource002s.pngsource003s.pngsource004s.png
5(2B)6(3T)7(3B)8(4T)9(4B)
source005s.pngsource006s.pngsource007s.pngsource008s.pngsource009s.png

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

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

[D2Vファイルを開くときの注意]

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

 それぞれデフォルトで初回起動時にVFAPI登録されるようになっていますが、もしD2Vファイルが開けなかったときは設定を確認してください。

au98d_vfapi.png
d2v_vfapi.png

 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日


*1 この判別法はネーサさんに教えていただきました。ありがとうございました。

最終更新日時: 2014-03-12 (水) 23:37:01 (1894d)