YUY2 から RGB24 への高速変換
-
19-09-2019 - |
質問
私はウェブカメラからの画像をリアルタイムで変換するプログラムを書いています。他のほとんどすべての Web カメラと同様に、私の noname は YUY2 形式 (bmiHeader.biCompression に記述されている) でデータを提供します。に従ってCPU側でストレート変換を試してみました http://www.fourcc.org/yuv.php#YUY2, 、しかし、それは非常に遅くて間違っています:)。
ソース出力ピンをレンダラーに接続すると、画像とフレームレートは良好です。
そこで、ビデオ カード上で YUY2 から RGB24 への高速変換を実行し、画面上にレンダリングせずに結果が得られる DirectShow フィルター、またはおそらく何らかのコーデックを探しています。
私が使用しているもの:
- 32 ビット Windows XP SP3。
- VC++2005
- 最近ダウンロードした Windows SDK。
- DirectX 2009 年 8 月。
解決
私は、現時点で利用可能なコードを持っていません。しかし、その非常に高速変換を行うためにGDIを使用して見てみましょう。
基本的に、ソースフレームをキャプチャビットマップに正しいフォーマット(RGB24)とブリットのメモリDIBを作成します。変換がブリッティングの際に発生し、私の経験では非常に高速です。
私はウェブカメラからフレームを取得し、その後、私はJPEGファイルまたはビットマップのいずれかとして必要なフレームレートでハードドライブにフレームをドロップすることができ、これを使用します。
DC
他のヒント
あなたはVirtualDubのかすみライブラリを使用することができます http://virtualdub.sourceforge.net/する
所属していません StackOverflow