信号処理の話
MMX・SSEには、積和演算をしてくれるニモニック(命令)があります。 MMXであればこんな感じ
AAAA BBBB CCCC DDDD // 16bit * 4 * * * * aaaa bbbb cccc dddd \ / \ / EEEEEEEE FFFFFFFF // 32bit * 2 ↑乗算結果を足す
「(AAAA * aaaa) + (BBBB * bbbb) = EEEEEEEE」という演算が2本一度に出来るわけです。 マルチメディア関係でこの「積和演算」を利用するって話は聞いていたのですが、いまいちピンと来なかった私。
しかし本日 「フィルターで多用する」 という話を聞いてようやく便利さが理解できました。 つまりは、ソースとなるデータ A, B, C, D ≒ A[0], A[-1], A[-2], A[-3] *1 に、フィルター係数 *2 を乗算してあげてフィルターをかける。 で、最後の加算でデータを足して合成すると。 最終的に E + F を行ってあげれば、とりあえず4サンプリングのフィルタリングは完成と。 なるほどなるほど ………あってるよなぁ?(ぉ
しかしなー、明らかに知識量が不足していると痛感。 信号処理が分かってないことを始め、 bitmap もまだ素直に扱えないし…。 先は長い…
つか、終わりが見えん。orz