DirectShowのフィルタへの変換はすでにテンプレートっぽいものがあるのでそれはそれであっさりとできました。
ほとんど問題もなく実装できました。バグらしいバグも見つけられなくて再生してみました。
・・・遅すぎる・・・
ま、そりゃそうだといわんばかりの状態ですね。なんていったってDCT変換を浮動小数(一応SSE)で実装していますので。
しかも、DCT変換は高速コサイン変換の式(汎用式)をそのまま使っているという考えなしの状態。
CPUにCore2Quadを使っているはずなのに使用率が1コアで50%を超えるという非常識事態に。
さらに、拡張命令の使用が一つでも落ちるとたちまちフレーム落ちを起こすというあり得ない状態が・・・。
というわけで、まずは高速化のためにDCT変換部をIntelのAP-922やAP-945の勧告に従って改良を行うところから始めましょう。
資料を探すのに少し苦労しました。AP-922が古すぎるせいで簡単に見つからないし、見たところで数学レベルで式がわからないし・・・。
とりあえず、自分で行列を再計算してなぜそうなるのかを理解して、それからがんばって自分の形にあった実装を行うことにしました。
まずは浮動小数演算で高速になるように組んだ後に整数演算を組まないとだめですね・・・。