2013年1月5日土曜日

GenericFilters

VapourSynth用のプラグインを書きました

GenericFilters-0.2.0.7z
https://github.com/chikuzen/GenericFilters

名前のとおり、デジタル画像処理で一般的によく知られているフィルタ(畳み込み演算、二値化、膨張、収縮、メディアン等)の詰め合わせです。
avisynthで言えばmasktoolsにあたります。
VapourSynthは標準フィルタとして画像合成用のLut/Lut2/Expr/MaskedMergeを装備しているので、これらと組み合わせれば大幅に出来ることが増えます。

これを書くためにまず試作品としてConvo2Dを書き、ついでこれを書いたわけですが、最初はC言語オンリーだったので遅いったらありません。
とりあえず色々チュ-ニングしては見ましたが、やはり根本的な解決には至らず、今回とうとうSIMD(SSE2)に手を出してしまいました。

intrinsicなので多少はラクなのでしょうが、いや疲れたのなんのって、頭の中がバイト列の組み合わせパズルで占領されてしまいました。

UtVideoの梅澤さんに「よくアセンブラとか書けますね」って聞いてみたら、intrinsicよりMASMやNASMのほうが彼にはとってはラクなのだとか…怖いなぁ。

0 件のコメント:

コメントを投稿