AviSynthのぺーじ/フィルタをかける前に

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

色空間についての注意

 AviSynthで扱える色空間(カラーフォーマット)は、RGB24、RGB32、YUY2、YV12です(※)。

 ただし、すべてのフィルタがこれらの色空間すべてに対応しているわけではありません。

 ビデオクリップの色空間に対応していないフィルタをかけようとするとエラーが出てしまいます。

 このため、自分が使用しているビデオクリップの色空間が何であるかということと、使用するフィルタがどの色空間に対応しているのかということを、あらかじめ把握しておくほうがいいでしょう。

※AviSynth1.0/2.0ではYV12に対応していません。またI420は、UVプレーンの順番が逆であること以外はYV12と同じですので、このページではI420をYV12に含める形で解説しています。

色空間の確認

 MPEG-2ソースの場合、MPEG2DEC(2)ならYUY2、MPEG2Dec3(dg)ならYV12です。

 AVIソースの場合、コーデックやpixel_typeパラメータによって異なります。

 どの色空間であるかを確認するには、「AVIソースの読み込み」でも紹介しているinfoフィルタを使う方法があります。

 infoフィルタの使い方は、スクリプト内の色空間を調べたい位置に、次のように記述するだけでOKです。

info()
avi_colorspace_hfyu_yuy2.png

 infoフィルタを使うと、このように画面上にビデオクリップの情報が表示されます。

 上から2つ目のColorSpaceが色空間です。この例の場合、YUY2であることがわかります。

 ただし、infoフィルタはAviSynth2.5から追加されたフィルタですので、AviSynth1.0/2.0では使用することができません。

フィルタ別色空間対応表

 チュートリアルで紹介している各フィルタが、どの色空間に対応しているかを表にまとめました。

 ○が対応、-が未対応を表しています。

RGB24RGB32YUY2YV12
AssumeFrameBased
ComplementParity
Trim
TomsMoComp--
IT--
Crop
Convolution3D---*1
LanczosResize
BilinearResize
BicubicResize
PointResize

色空間の変換

 Convertフィルタを使って色空間を変換することができます。

 これにより、対応していない色空間のビデオクリップに対しても、フィルタをかけることができるようになります。

# RGB24へ変換
ConvertToRGB24()
# RGB32へ変換
ConvertToRGB32()
# YUY2へ変換
ConvertToYUY2()
# YV12へ変換(AviSynth2.5.0以降)
ConvertToYV12()

 また、AviSynth2.5.1/2.5.2からは、interlacedオプションが追加されています。

 ビデオクリップがインターレースの場合(インターレース解除や逆テレシネを行う前や、インターレースを保持したままである場合)に、このオプションを有効にします。

 interlacedオプションを有効にするためには、次のようにカッコの中にinterlaced=true(または単にtrue)と記述します。

ConvertToYV12(interlaced=true)

 interlaced=false(あるいは単にfalse)とした時や、かっこ内に何も書かなかった時(省略時)は、interlacedオプションは無効になります。

チュートリアルで紹介しているフィルタについて

 チュートリアルで紹介しているフィルタは、次の4点を考慮して選んだものです。私がおすすめしているフィルタというわけではありません。

  1. AviSynth1.0/2.0でも2.5でも(LoadPluginExなしに)使うことができる。
  2. 新たなDLLのインストールを必要としない。
  3. 比較的よく使われていると考えられる。
  4. YUY2に対応している。

フィルタの順番について

 AviSynthのフィルタは、スクリプトの上の行から順番にかかります。

 このため、どのフィルタをどの順番に記述するかで、結果が大きく異なることがあります。

 テンプレートでのフィルタの順番は、チュートリアルでの紹介順ですので、実際に使用する際は自分なりにフィルタの順番も調節するなどしてください。

#//--- サイズ変更 ---//
LanczosResize(320, 240)
#//--- ノイズ除去 ---//
Convolution3D(preset="movieHQ")

 たとえば、このようにサイズ変更とノイズ除去の順番を入れ替えるだけでも、画質やエンコード速度に影響が出てくると考えられます。

 フィルタをかける順番には注意してください。

最終更新日 2004年2月10日


*1 Convolution3DYV12はYV12に対応しています(YUY2には未対応)

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