« DirectShowのデバッグ支援 | メイン | WMリーダーの構造 »

2005年10月17日

吉里吉里 ムービー拡張日誌2:: DirectX Video Acceleration

    

ムービーのハードウェアデコード支援機能を使用するための機能としてDirectX Video Acceleration(DirectX VA or DXVAと略記されている)と言うものがある。
これ用のインターフェイスであるIAMVideoAcceleratorはVideo Mixing Renderer フィルタの入力ピン、オーバーレイ ミキサのピン 0でサポートされている。
これらはデコーダーを作る人以外は特に関係なさそうだが、WMF SDKを使ってWMV用のフィルタでハードウェアデコード支援機能使う場合は関係してくる。
とは言っても、細部は特に気にする必要はなく、単にWMF SDKとDirectX VAのネゴシエーションの手順だけわかれば良さそうだ。
でも、少し気になったので見てみた。

IAMVideoAcceleratorを使えば、動き補償や逆離散コサイン変換などをハードウェアに任せられるようになるようだ。
つまり、これを使えばTheoraのデコードが軽くなるかもしれない。(デコードプロセスによっては使えないかもしれないが)
動き補償や逆離散コサイン変換などのデコード処理をしなくていいし、圧縮データをビデオカードに送ることになるので転送量も減る。
問題はハードウェアがサポートしていないと使えないことだが、動き補償(Motion compensation)や逆離散コサイン変換(IDCT)程度であれば、数年前のビデオカードでもサポートしていたはず。(GeForce4 MXは確認した。もっと前のものでもサポートしていたはず)
GeForce 6600を見ると、デコード部がプログラミング可能とか。
プログラマブルシェーダーみたいなものだろうけど、いつの間にかそういう機能が積まれていたようだ。

にしても、DirectShowのフィルタを作るのでも情報が少なくマニアックなのにDirectX VAとか使い出したら余計に濃くなりそうだ。
後、Windows以外ではどうなのかと言うのも問題。
ハードウェア的には機能があるのでドライバがあれば何とかなる話だと思うけど、統一されたアクセス手段があるのかどうか。。。
まあ、Windows以外は考えない。CPUのみでやる。と言うのでも良いと思うが。



投稿者 Takenori : 2005年10月17日 19:45




comments powered by Disqus
Total : Today : Yesterday : なかのひと