【AviUtl】負荷軽減にはリサイズフィルタがオススメ!【Tips】

20161105022849

Blenderのカラーマップ(サイズ 1024x1024)を10回程、obj.getpixelで1点1点読み込み、そのままobj.putpixelで1点1点書き込むという無意味な処理をして、その時間を計測してみました。

1048576(=1024^2)を10回繰り返しているので、処理回数としては10485760回──つまり計10485760個の点を読み込んだり、書き込んだりしたということです。

上の画像で言えば、画面中央の0.623という数値が処理完了までに掛かった時間……さすが旧世代PC、遅すぎる。ヘ(゚∀゚ヘ)ヘ(゚∀゚ヘ)ヘ(゚∀゚ヘ)ポー!!

ちなみにこの処理を行うに際して、画像→リサイズフィルタ(50%)→計測用アニメーション効果という順でフィルタ効果が追加されている状態です。

 

20161105024311

一方、こちらは同じ処理を拡大率フィルタ(50%)で行った結果です。フィルタの順序は画像→拡大率フィルタ(50%)→計測用アニメーション効果という状態。

画面中央の2.525という数値が処理完了までに掛かった時間で、この数値はリサイズフィルタを使用した場合の約4倍

 

20161105024918

更にこちらはリサイズ(50%)や拡大率(50%)を追加せずに、画像をそのまま(拡大率100%)の状態で、画像→計測用アニメーション効果というフィルタの序列で計測したものです。

画面中央の2.577という数値が処理完了までに掛かった時間。

計測結果と比較

  • 何もなし(100%):2.577秒
  • 拡大率フィルタ(50%):2.525秒
  • リサイズフィルタ(50%):0.623秒

 

特に何もせずに計測したもの(オブジェクトの拡大率100%)と拡大率フィルタ(50%)を使って計測したものはほぼ同値。それに対して、リサイズフィルタ(50%)のものは1/4程度の値となっています。

20161105025819

更にリサイズフィルタ(25%)で同様の処理をした場合、処理に掛かった時間は約0.1567秒。これはリサイズ(50%)の処理の更に約1/4程度(100%のものから比べると、1/16程度)の時間!

 

計測結果からわかること

この結果から何がわかるかといえば、画像の縦横の長さが1/2になれば面積は1/4、縦横の長さが1/4になれば面積は1/16になるので、リサイズフィルタを使うと、それがそのまま処理時間にも反映されているということです。

つまりリサイズフィルタは縮小した場合、縦横の全ての点を読み込まず、リサイズの拡大率(リサイズの項目)の値に見合った必要な点のみ読み込んで表示しているということがわかります。

一方、拡大率フィルタは50%でも、処理に掛かった時間は何もなしの100%の状態と同じでした。ここから推察されるのは、拡大率フィルタの場合はその拡大率の値にかかわらず(実際に表示される面積にかかわらず)、縦横全ての点が読み込まれているということです。

 

結論という名のまとめ

20161105031930

ちょっとだけ検証記事っぽく書いてみましたが、つまりは大きめの動画ファイルや画像ファイルなどを縮小して使う場合、どうしても処理が重くなりがちです。

なので、リサイズフィルタと拡大率フィルタを使用した差が『もしも、見分けがつかない程度の差』であるのであれば、映像の大きさを変更する処理についてはリサイズ』フィルタを使ったほうが処理が軽く、加工編集作業もしやすく、その後のエンコード時間も短くなるのでオススメ!ということです。

 

また、リサイズの下位に追加する各フィルタ効果についても、上位のフィルタ効果(リサイズ(縮小処理)の場合は処理する画素数が少なくなる)が引き継がれるので、全体的な処理が軽くなる、という恩恵が受けられます

幾重にもフィルタを掛けて処理する人には、その影響が倍々になってくるものなので、画像や動画の縮小では、大きな見た目の差が出ないときはリサイズフィルタを使用することをオススメします。

 

 

20161105032558

実際、上の画像の細かな差異は見分けがつかないレベルですし……。まあ、写真等の画像になると、ちょっとした差が気になることが出てくるかもしれませんが、それでも、余程に細かく見る人しか気づかないレベルの……はずです、たぶん。

ちなみに左が拡大率フィルタ、右がリサイズフィルタです。見分けは……。

関連記事
スポンサーサイト

0 Comments

Post a comment