質問

これが正しいフォーラムかどうかはわかりません。とにかくここに質問があります。アプリケーションの1つでは、医療画像を表示し、その上にいくつかのアルゴリズムが生成されました。実際のビットマップは、16ビットグレースケールビットマップです。これから、例えば、検索テーブルに基づいてカラービットマップを生成します

(0-100)->green 
(100-200)->blue
(200>above)->red

ディスプレイは、256x256の小さな画像でうまく機能しています。しかし、ディスプレイ領域が大きくなると、1024x1024色のグレースケールからカラービットマップ変換が時間がかかり、相互作用はもうスムーズではありません。最近では、汎用GPUプログラミングについて多くのことを聞いてきました。展開には、ハイエンド(nvidia quadrofx)グラフィックスカードがあります。

私たちのアプリケーションは.NET/C#を使用して構築されています。必要に応じて、C ++/CLIを少し追加できます。ここで、私の質問は、このビットマップ変換をグラフィックスプロセッサにオフロードできますか?さらに読むのはどこで探すべきですか?

役に立ちましたか?

解決

はい - そして、あなたは(明らかに)ビットマップを表示しているので、GPGPUルート(例:OpenCLまたはCUDA)に行く必要はありません。プログラム可能なシェーダーを使用することができます。あなたが言っていることを理解していれば、それは非常に簡単なものになります。

シェーダーの書き方に関しては、描画の残りの部分に(ほとんど)依存します。明らかな例として、既に描画にWPFを使用している場合は、おそらくHLSLシェーダーを使用することをお勧めします(WPFはピクセルシェーダーをかなり直接サポートします)。

また、古いハードウェアをサポートしなければならなかった場合、このようなテーブルの検索はあなたが たぶん......だろう プログラム可能なシェーダーがなくても、実際にGPUで非常に簡単に管理します。最近のハードウェアのみをサポートする必要がある限り、シェーダーはおそらくより簡単になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top