AviSynthのぺーじ/クロップ

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

Cropフィルタ

 画面端の黒い縁やビデオテープをキャプチャした際に見られる画面下端のノイズなどをカット(クロップ)したい場合には、AviSynth内蔵のCropフィルタを使用します*1

 テンプレートでは30行目にCropフィルタの設定行を設けてあります。

###### 7.その他のフィルタ #####
#//--- クロップ ---//
#Crop(8, 0, 704, 480)

 Cropフィルタには、次の2種類の記述の仕方があります。

#1
Crop(左, 上, クロップ後の幅, クロップ後の高さ)

#2
Crop(左, 上, -右, -下)

 #1#2、どちらの方法で記述してもかまいませんが、#2の方法はAviSynth2.0.1以降でなければ使用できません。

#1の方法

Crop(左, 上, クロップ後の幅, クロップ後の高さ)

 AviSynthのバージョンに関係なく使用できる指定方法です。

 クロップ後の幅クロップ後の高さの4つを整数で指定します。

crop1.png

 上の画像のピンク色の部分がクロップする(切り取る)範囲と考えてください。

 は画像端からのクロップするピクセル数です。

 クロップ後の幅赤の矢印の範囲、クロップ後の高さ青の矢印の範囲になります。

クロップ後の幅 = 元の画像の幅 - (左 + 右)

 クロップ後の幅は、このように元の画像の幅から、端と端のクロップするピクセル数の合計を引いて求めることができます。

 同様に、クロップ後の高さは、元の画像の高さから、端と端のクロップするピクセル数の合計を引いて求めることができます。

クロップ後の高さ = 元の画像の高さ - (上 + 下)

 例えば、720x480のビデオクリップを左右8ずつクロップし、上下クロップなしの場合は次のようになります。

Crop(8, 0, 704, 480)

 「左右8ずつ」クロップするので、左と右のクロップ幅の合計は「8 + 8 = 16」です。

 これを元の画像の幅の720から引いて、クロップ後の幅704になります。

 上下はクロップしないので、クロップ後の高さは元の画像と同じ480です。

#2の方法

Crop(左, 上, -右, -下)

 #2の方法は、四辺のクロップ幅をそれぞれ指定する方法です。

 の指定の仕方は#1の方法と同じですが、クロップ後の幅クロップ後の高さの代わりに、負(マイナス)の符号つきでのクロップ幅を指定します。

 この方法は、AviSynth2.0.1以降でなければ使用できません。

crop2.png

 単純に上下左右のクロップするピクセル数を指定すればOKです。

 ただし、指定する順番を間違えないことと、右と下は負(マイナス)の符号をつけなければならないということに注意してください。

 例えば、720x480のビデオクリップを左右8ずつクロップし、上下クロップなしの場合は次のようになります。

Crop(8, 0, -8, 0)

 最後の0はマイナスの符号をつけてもつけなくてもかまいません。

 左から3つ目と4つ目のパラメータが、0よりも大きい値(0を含まない)ならば#1の指定方法、0以下の値(0を含む)ならば#2の指定方法であると判断されます。

Crop(0, 0, 0, 0)

 つまり、すべて0を指定すると、クロップなしになり、元の画像と同じ大きさのままになります。

alignパラメータ(2.5.3以降)

 AviSynth2.5.3からalignパラメータが追加されました。

 alignパラメータはメモリ上に不連続に配置されたデータを、連続したものに再配置しなおすもので、これにより処理速度が向上する可能性があるとされています。

 #1の方法の場合はクロップ後の高さの後ろに、#2の方法の場合は-下の後ろにそれぞれ付け加えることが可能です(省略することもできます)。

#1
Crop(左, 上, クロップ後の幅, クロップ後の高さ, align)

#2
Crop(左, 上, -右, -下, align)

 alignパラメータを有効にする場合はtrue、無効にする場合はfalseと記述します。

 デフォルトはfalseで、省略した場合もfalseが適用されます。

最終更新日 2004年1月21日


*1 画面下端のノイズをカットしたいだけなら、CropBottomでも可能です。「CropBottom(クロップするライン数)」というように記述します。

最終更新日時: 2014-03-12 (水) 23:36:50 (1835d)