AviSynthのぺーじ/サイズ変更
これは、かつて「にーやんのAviSynthのぺーじ」として公開されていたものを転載したものです。内容は古く、間違いも含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth 付属のヘルプや AviSynth 公式サイトを参考にすることをおすすめします。AviSynth Wiki の AviSynth入門なども活用してください。
AviSynth内蔵のリサイズフィルタ †
AviSynth内蔵のリサイズフィルタを紹介します。
AviSynthに内蔵されているリサイズフィルタは、BicubicResize、BilinearResize、LanczosResize、PointResizeの4つです*1。
フィルタの設定は、次のように行います。
BicubicResize(幅, 高さ, "b", "c") BilinearResize(幅, 高さ) LanczosResize(幅, 高さ) PointResize(幅, 高さ)
基本的には「フィルタ名(リサイズ後の幅, リサイズ後の高さ)」というように指定します。
ただしBicubicResizeフィルタにのみ、オプションでbパラメータとcパラメータが設けられており、この2つのパラメータだけは小数で指定します(省略可能)。
BicubicResizeフィルタでは三次式を使って画像補間が行われますが、bパラメータとcパラメータは、この三次式の調整に使用されます*2。
デフォルトは共に1/3で、b = 0、c = 0.75ならば、VirtualDubのprecise bicubicフィルタと同等になります。 テンプレートでは34行目にサイズ変更の行があります。
#//--- サイズ変更 ---// #LanczosResize(320, 240)
サンプルではLanczosResizeフィルタになっていますので、他のフィルタを使用したい場合はフィルタの種類も変更してください。
参考URL:縮小アルゴリズム †
まるも製作所の「日々の戯言」で、縮小アルゴリズムについて解説されています。
- 縮小アルゴリズム(1)-(4) ※2000年12月18日から21日まで
- 縮小アルゴリズム(5)-(9) ※2001年7月4日から7月9日まで
拡張書式 - クロップ&リサイズ †
AviSynth内蔵のリサイズフィルタには、オプションでクロップ用のパラメータも用意されています。
BicubicResize(幅, 高さ, "b", "c", "左", "上", "クロップ後の幅", "クロップ後の高さ") BilinearResize(幅, 高さ, "左", "上", "クロップ後の幅", "クロップ後の高さ") LanczosResize(幅, 高さ, "左", "上", "クロップ後の幅", "クロップ後の高さ") PointResize(幅, 高さ, "左", "上", "クロップ後の幅", "クロップ後の高さ")
"左", "上", "クロップ後の幅", "クロップ後の高さ"の部分がクロップ用のパラメータで、Cropフィルタの#1の記述方法と同じ指定の仕方になります。
# 使用例 LanczosResize(320, 240, 0, 8, 704, 480)
こちらが使用例です。
この指定方法では、リサイズ前にクロップが適用されるため、次のように記述した場合とほぼ一緒になります。
Crop(0, 8, 704, 480) LanczosResize(320, 240)
ただし、リサイズフィルタの内部でクロップする場合は、小数での指定ができる点が大きく異なります*3。
またYUY2やYV12モードであっても、奇数単位でのクロップが可能になります。
最終更新日 2004年3月9日
*1 AviSynth2.5.4現在。LanczosResizeはAviSynth2.0.6から、PointResizeは2.0.7から導入されています。
*2 マニュアルによると、bパラメータとcパラメータは、それぞれ「ぼかし(blur)」と「リンギング(ringing)」に利用されるとあります。
*3 幅と高さは小数で指定することはできません。小数で指定できるのは、赤字の部分、bパラメータとcパラメータです。