beagleboard の dsp コアはどのようなアプリケーションに使用できますか? OpenCV でバックグラウンド減算アルゴリズムに DSP アクセラレーションを使用できますか?
4 に答える
はい、できますが、この OpenCV ポート プロジェクトの一部でない場合は、自分でアルゴリズムを実装する必要があります。
BeagleBoard の DSP は、大きすぎない画像サイズ (320x240、おそらく 640x480) には十分強力ですが、最適なスループットが必要な場合は、実装で固定小数点演算などを処理する必要があります。
編集:なぜ固定小数点
TI C6xxx DSP には 2 つの種類があります。小さい数値 (C64xx) にはハードウェア浮動小数点ユニットがありませんが、大きい数値 (C67xx) にはハードウェア浮動小数点ユニットがあります。これは、Intel などのデスクトップ CPU とは異なります。
BeagleBoard-xm には、浮動小数点ユニットを持たない C64xx が組み込まれています。したがって、float を操作する数学関数を呼び出すたびに、浮動小数点の計算がデバイスによってエミュレートされますが、これは低速です。代わりに、これらの演算を固定小数点演算で実装すると、整数型でネイティブ演算を呼び出すため、最大のスループットが得られます。
ビーグル ボードのような異種プラットフォームでのプログラミング モデルは、通常、アプリケーションの計算部分を GPP (ARM) から DSP にオフロードすることです。c64x 用の dsp カーネル ドライバとコンパイラが必要です。詳細については、DSP BIOS プログラミング ガイドを参照してください: http://omappedia.org/wiki/DSPBridge_Project
まだ検討していない場合は、cortex A8 で NEON を使用して画像処理アルゴリズムを試し、パフォーマンスがどの程度向上するかを確認することをお勧めします。これは、DSP ドライバー/コンパイラーを必要とせずに C でプログラムするのはかなり簡単です。