Raspberry PI 2 Bは、リアルタイムオーディオエフェクトアプリケーションに適していますか?


8

オーディオエフェクトアプリケーションのリアルタイムオーディオ処理を含むプロジェクトに取り掛かろうとしています。アプリケーションは、48 kHzのサンプルレートで8つの個別のオーディオ入力チャネルからオーディオを取得して処理することになっています。オーディオ処理アルゴリズムは、8つの個別のオーディオ出力チャネルのオーディオを生成します。オーディオサンプル形式は、16ビットの符号付きLPCMです。リアルタイムオーディオエフェクトアプリケーション用であるため、レイテンシも重要です。オーディオが何も処理されずに入力から出力にループされる場合、往復遅延は12msを超えてはなりません。

アプリケーションは5.33msごとに256 * 8の入力サンプルを(オー​​ディオコールバックを介して)受信し、それらのサンプルを処理して、256 * 8の出力サンプルを(同じくコールバックを介して)送信する必要があります。256 * 8サンプルは、ある種の「インターリーブ」形式で受信/送信されます。

私は現在、さまざまなハードウェアプラットフォームを調査しており、Raspberry PI 2 Bが適切な選択肢になるかどうか疑問に思っていました。ボード自体は馬力が大きいようです(900MHzクアッドコアARM CPU)が、オーディオ入力しかありません。だから私の質問は:

  1. Raspberry PI 2 Bは、リアルタイムのオーディオ処理に適していますか?
  2. 1の答えが「はい」の場合、8つの入力チャネルと8つの出力チャネルを持つRaspberry PI 2 Bのアドオンオーディオボードが市場にあるかどうかを知りたいのですが?ボードは48kHzのサンプルレートをサポートする必要があります。
  3. 1または[2] の答えが「いいえ」の場合、どのHWプラットフォームをお勧めしますか?

私がRaspberry PI 2 Bを検討している理由は魅力的な価格ですが、この種のアプリケーションにより適した他のタイプのボードが市場に出ているかもしれません。

ブロック図


「往復待ち時間は12ミリ秒を超えてはなりません」 .... 「5.33ミリ秒ごとのサンプル」これはPCでも実現可能ですか?問題となるのは処理能力ではなく、非リアルタイムオペレーティングシステムのユーザーランドソフトウェアでこれを完全に実行しています。レイテンシは12msよりもずっと長くなると思います。その質問について確信が持てない場合は、答えはおそらくノーであり、汎用SBCの中に代替手段はありません。しかし、それがPCでできることを知っていれば、チャンスがあります。
ゴルディロックス

回答:


4

短い答えは「はい、いいえ」であり、長い答えは「いいえ」ですが、アプローチによっては「はい」になる場合があります。ハードウェアの一部として、Piは非常に高速で、入力から出力へのデータのシフトをかなり迅速に処理できます。ただし、raspian linuxのデフォルト設定はリアルタイムプラットフォームではありません。さらに、実行するDSPを指定していません。私が大学にいた頃、386年代とWindows 3.1の時代、本格的なサウンド処理をしたい場合は、すべてを機能させるために外部DSPチップが必要でした。

これがPiで機能する場合、いくつかのオプションがあります。最初のオプションは、おそらく最良の方法ですが、ハードウェアで割り込みを使用し、別のDSPモジュールを使用します。何が出ているのかはわかりませんが、ほとんどのPiはUSBとインターフェースしていて、帯域幅に制限があるため、とにかく運が悪いかもしれません。次に、それをカーネルモジュールとしてコーディングして、Piからどのようなスループット/処理能力を得ることができるかを確認します。ユーザーモードのLinuxはリアルタイムではありませんが、概念実証には役立ちます(ユーザーモードで実行すると、プロセスの優先度が高い)カーネルを高速化するには、カーネルに入る必要がある場合があります。最後に、Linuxカーネルは、piバージョンが削減されていても、多くのことを行います。単純なDSPデバイスは必要ありません。PCをネットワークルーターに変えるカーネルがどこかにあると思います。基本的なものだけで十分ですが、Cカーネルのハッキングに慣れる必要があります。

合計を計算してそれをすべて処理しようとする場合は、プロセッサがデータを処理するためにアセンブラを作成し、データをロードするために必要なプロセス命令の数を計算して変更する必要があります。そしてそれを書き、48k * 2を掛けた値が900Mを超えるかどうかを確認し、そうでない場合は、どのマージン(デバイスが実行するすべてのこと)がそのマージンで機能する必要があるかを確認します。通常のカーネルのもの)。うまくいかない可能性が高いと思いますが、それは本当にあなたがしたい処理に依存します。独自のカーネルモジュールを除いて、独自のカーネルをコンパイルして、十分なスペースを確保できる場合があります。あなたはそれを試して見なければならないでしょう。


(処理によって)何をしようとしているのかわからないが、SPIコントローラーインターフェイスがあると思われるst.com/web/en/catalog/sense_power/FM125/CL935/SC534/PF185827を確認してください。Piおよびonsemi.com/PowerSolutions/product.do?id=BELASIGNA%20200
sibaz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.