niiyan/2007-02-08

Flips(FHorizontal/FVertical/Rotate180) v 1.2(FlipHorizontal/FlipVertical/Turn180 代替版)

  • AviSynth 内蔵フィルタ FlipHorizontal/FlipVertical/Turn180 の代替版。
  • v1.2 での変更点

    FlipHorizontal, Vertical, Turn180 alternative codes. - Doom9's Forum

    Now FHorizontal works in place, creating a New Frame, and when writting to a New Frame chooses between using Non-Temporal instruction (WC) or not.
    This option is used depending on size frames and L2 cache.
    It is mainly usefull when size frames are bigger than L2 cache.

    (FHorizontal は適切に動くようになり、New Frame を生成します。New Frame に書き出すときには、ノンテンポラルな命令(WC*1)を使用するかしないかの間で選択します。このオプションは size frames と L2 キャッシュによって使用されます。おもに size frames が L2 キャッシュより大きいときに有用です。)

MT 0.6(他のフィルタをマルチスレッドで動作させるフィルタ)

  • 他の AviSynth フィルタをマルチスレッドで動作させるフィルタ。
  • 使用するには、MT プラグイン(MT.dll)を読み込むことと、同梱されている avisynth.dll をインストール済みのノーマルの avisynth.dll*2 と置き換える必要がある。
    • ノーマルの avisynth.dll は、念のためバックアップしておくことが推奨されています(MT.html より)
  • 0.6 での変更点

    MT 0.6(+custom avisynth)a filter to run filters multithreaded. Usefull for SMP or HT - Doom9's Forum

    • 0.6 Bugfix: height can be changed with splitvertical=true without crashing. Also includes modified avisynth 2.5.7(バグ修正: splitvertical=true にすると、クラッシュなしでクリップの高さを変更することが可能。修正された avisynth 2.5.7 も同梱。)
  • MT 0.6(+custom avisynth)a filter to run filters multithreaded. Usefull for SMP or HT - Page 22 - Doom9's Forum には、MT とリサイズフィルタを一緒に使用するためのサンプルスクリプトが掲載されています。これは、AviSynth が内部的にはリサイズフィルタを垂直方向と水平方向のリサイズに分けることを利用しています。横方向のリサイズを行うときには splitvertical パラメータ(MT 0.6 で追加)を false に、縦方向のリサイズを行うときには true にします。
  • しかしながら、このサンプルは現時点*3では、少し間違っているように見えます。以下、修正を加えてみました。ただし、手元の環境ではテストできないため、オリジナルおよび修正後のスクリプトが動作するかどうかを確認することができていません。
    • tsp 氏によるオリジナル
      src=avisource("c:\test.avi")
      s.mt("spline36resize(1280,last.height())",splitvertical=false)
      mt("spline36resize(last.width(),704)",splitvertical=true)
      
    • 変更後
      # spline36resize と MT を併用して 1280 x 704 にリサイズ
      src=avisource("c:\test.avi") # 変数 src に代入されているので
      src.mt("spline36resize(1280,src.height())",splitvertical=false) # s と last を src に変更
      mt("spline36resize(last.width(),704)",splitvertical=true) # この行は変更なし
      
    • その2
      # spline36resize と MT を併用して 1280 x 704 にリサイズ
      avisource("c:\test.avi") # クリップを src に代入しない
      mt("spline36resize(1280,last.height())",splitvertical=false) # s(src)は不要
      mt("spline36resize(last.width(),704)",splitvertical=true) # この行は変更なし
      

*1 Write-Combining?
*2 Windows XP なら、C:\Windows\System32 にあります。
*3 2007-02-08 23:52:32 現在。

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