fPMD - PMD for Avisynth 高速化版

fPMD はエモリ氏が公開している PMD for Avisynth の高速化版です。
Ver1.0(2009/07/12)
Ver1.1(2009/07/17)
Ver1.2(2009/07/19)
Ver1.3(2009/07/20)
Ver1.4(2009/07/20)
Ver1.5(2009/07/24)
Ver1.6(2009/08/01)
Ver1.5a(2009/08/09)
Ver1.7(2009/08/09)
Ver1.5b(2009/08/09)
Ver1.7a(2009/08/09)
Ver2.0a(2017/02/12)
Ver2.1(2017/02/19)
Ver2.2(2017/02/26)

PMD フィルタについてはエモリ氏の永遠に工事中PMDのページを参照してください。

fPMD の Ver2 以降では計算式はエモリ氏の PMD フィルタの計算を線形近似したものを使っています。また、PMD フィルタではガウスぼかしの計算で、2桁の整数を用いていますが、fPMD の Ver2 以降では固定小数 4bit の精度で計算した係数を用いています。fPMD ではすべての計算を固定小数点数として計算を行っているため、PMD とは計算精度が異なります。このため、全く同じ結果にはなりません。

PMD では無く fPMD を使うメリットとしては、

雑記/雑感

Ver2 でいろいろ直しました、というか、1から書き直しました。今までは SIMD 化していないソースを作っていなかったのですが、何やってるんだか自分でも分からんくなるので、入れました。非 SIMD の処理はまともに動きますが、糞遅いです(糞遅い原因は short の変数が多いからだと思う)。
Ver2 で AVX2 に対応して速くなりました。表引きを使っていると AVX2 より SSE4.1 のほうが速いという謎な現象がありましたが、表引きをやめて線形近似に変更したところ、AVX2 の処理のほうがかなり速くなりました。

Ver2 では exp(-x^2) の計算を x が 0~4 の範囲を 16 区間に分割して線形近似しています(4 以上では 0 としている)。このため、そこそこ誤差がありますが、得たい結果と大きく外れないと判断してこのようにしました。

Ver2 とそれ以前の違いで注意してほしいのは、

です。

バグを見つけたら

バグを見つけたら、アーカイブの中に入っている説明書に書かれたメールアドレスに詳細を報告していただけると助かります。