マルチチャンネル4chのI2Sデータの変換
マルチ チャンネル 4ch のI2Sデータから 2ch分だけ 取り出して ステレオ出力に変換する回路を考えてみた。
ここで扱う デジタルオーディオデータフォーマットは、BCK 64fs データ長さ24ビットのI2S想定している。
25ビットから32ビット目のデータは零(データ信号がLOW状態)を仮定している。
① 4chの multi channel (ステレオ2個分)から、それぞれステレオ分のLchとRchを抜きとる回路
② 4chの multi channel (ステレオ2個分)から、それぞれステレオ分のRchとRchを抜きとる回路
32ビットのシフトレジスタ回路を使って DATA2側の信号を 32 BCK分 遅らせている。
だんだん、構成が複雑になって行き、ロジックICの組み合わせで工作するのは難しくなっていった。 FPGA等が必要そうだ。
■ソフト
S24_LE S16_LEからS32_LE 4chへの変換ソフト
多チャンネルのWAVファイルを生成できるPCアプリは以外と少ない。
そこで、試しに、ステレオ(2ch)のWAVファイルから4chのWAVファイルを作るPCソフトを作ってみた。
サラウンド合成ではなく、単純にステレオ信号(又はモノ信号)を3chと4chをコピーしただけのものである。
Linuxのaplayでは、24bitデータでは動作してくれないケースもあるので、ついでに、下位ビットに零を追加してS32_LE(32ビットデータ)にフォーマット変換するようにした。
■参考になる資料
- WaveGene V1.50 (2013/01/15 update) 8chまでの数々のテスト信号が生成できるソフト。便利なのでよく利用しています。
- Merge I2S streams 複数のI2Sデータを サンプリング周波数を倍(倍々)にして 1本のI2Sにマージして伝送するアイデアが書かれている。
実現のためには、複数のI2Sを1本のI2Sに変換するハード(けっこ複雑なのでFPGAなどで合成?)と、マージされた信号からそれぞれを(チャンネル情報をどのように埋め込むか?)分離するソフトが必要になる。
OS(Linux,Windows)側ではBIT PERFECTで録音再生されることが前提になるだろう。
■
警告
この回路は実際に動作確認されたものではありません。
■免責
(1)回路図やプログラムやデータの使用により、使用者に損失が生じたとしても、その責任
を負いません。
(2)回路図やプログラムやデータにバグや欠陥があったとしても、修正や改良の義務を負い
ません。