3

産業用ビジョン アプリケーションの開発者として、私は 6000x4000 ピクセル以上のかなりぎこちない画像をよく使用します。

カメラと画像処理が新しい画像の安定したストリームに取り組んでいる間 (そしてこの処理が主なタスクです)、ユーザーが他の画像を並行して快適に表示できるようにしたいと考えています。

プロセッサ (GDI など) でこれを行うと、パフォーマンスが大幅に低下します。たとえば、画像を分析するのに 0.2 秒かかりますが、1 回のズーム (コントロールに合わせてサイズを変更) で表示するには 0.8 秒かかります。

Photoshop では、グラフィック カードの非常に高速なメモリと処理の助けを借りて表示とズームが可能であるため、自分のコードでこれを実験できるかどうか、またその方法を誰かに教えてもらえないかと考えました。これは私の 76MB の rgb-data に相当しますか?) そして、ユーザーが操作するためにユーザーがコントロール/カードにズームして移動する手間をかけずに、何らかのコントロールに表示させます。

3D の外観は必要なく、2D-rgb-image で移動してサイズ変更するだけです。プロセッサの負荷が低く、高速で快適な表示を実現することを目的としています。

==>これは可能ですか(テクスチャなどとして)?==> >=256MB の現在のローエンド 3D カードに制限はありますか? ==> 誰かが予想される期間を提案できますか (データのコピー、ズーム)?

4

4 に答える 4

2

最大テクスチャ サイズ (カードごとに異なります) によって制限されるため、大きな画像をいくつかの小さなテクスチャに分割する必要があります。カードが AGP または PCI-E である限り、実際のテクスチャ データをビデオ メモリに取得するのは非常に高速です。

于 2009-04-02T11:20:33.450 に答える
1

ピクセル形式とは何ですか? サイズ番号は、これが 8 ビット RGB で機能するようです。6000x4000 ピクセルの単一の画像には、約 69 MB のスペースが必要です。そのため、Windows や他のアプリからのオーバーヘッドがあまりないと仮定すると、ローエンドのグラフィックス カードのテクスチャ メモリに収まるはずです。確かに、グラフィック カードのメモリにアップロードするにはしばらく時間がかかります。ただし、システムの負荷やハードウェア/バスの構成によって異なる可能性が非常に高いため、見積もりを出すのは困難です。

テクスチャサイズの最大制限がもっと心配です。今日のハイエンド カードはテクスチャで最大 4096x4096 テクセルに達していると思います。つまり、画像を 1 つのテクスチャに収めることはできません。

これをテストするために DirectX をセットアップするのはそれほど難しいことではありません。チュートリアルはたくさんあります。テクスチャを使用してレンダリングする方法を示すクイック リンクを次に示します。初期化の方法については、同じチュートリアル シリーズの前の部分を参照してください。

于 2009-04-02T10:03:20.467 に答える
0

Direct3Dでこれを行うことができます。テクスチャードクワッドを描画することで、パンやズーム用の大きな画像を簡単に処理できます。

画像のサイズと画面のサイズ(6Kx4Kのディスプレイはありませんか?)により、大きな画像をオンデマンドでテクスチャにページングするシステムを作成する必要があります。入力データのサイズを考えると、カードにデータを取り込む速度の主な要因は、ディスクとカード間のI/O帯域幅であることがわかると思います。ポイントサンプリングされた低解像度バージョンを計算するだけでなく、2次元の空間コヒーレンス(つまり、スキャンラインストレージレイアウトではなくタイルストレージレイアウト)を活用する画像をディスクに保存する方法を作成する価値がある場合があります。これはすべて、非圧縮RGBを使用して自分で行うことができます。これを行うために、JPEG2000は必要ありません。画像を選択したら、優先度の低いバックグラウンドプロセスとしてこのデータストレージを実行できます。最初に何を取得しますか?

于 2009-07-20T02:38:31.253 に答える
0

そのようなタスク専用に設計された形式を使用することをお勧めします。JPEG2000です。必要な機能は、ROI (Regions of Interest) およびプログレッシブ トランスミッションと呼ばれます。必要に応じてロスレスにすることができます。

于 2009-04-02T11:00:25.120 に答える