以前 HQ Player dCS方式DSDネイティブ出力が手持ちのDDCでも出来るか ということでこの時はSPDIFでの確認ですが、結果ノイズだらけで再生できずで頓挫してしまいましたが、いろいろ情報やツールも出揃ってきたので、ADATで再挑戦してみます。
まずはADAT上のDoPのフォーマットについて...
ADAT SMUXのチャネルマッピング
上図はADAT(SMUX)のPCMデータのマッピングです。ADATは伝送速は、11.2896Mbit/s(44.1kHz系列) or 12.288Mbit/s(48kHz系列) 固定で、44.1k/48kHz時は8ch、88.2k/96kHz時は、4ch、176.4k/192kHz時は、2chを伝送することが出来ます。
ステレオで扱う場合、44.1k/48kHz時は4つのステレオチャネル(a,b,c,d chとします)をa_ch L/R,b_ch L/R,c_ch L/R d_ch L/Rという順序でチャネル割当されます。
88.2k/96kHz時は、2つのステレオチャネル(a,b chとします)をa_ch L 2sample /a_ch R 2sample , b_ch L 2sample /b_ch R 2sample ,という順序でチャネル割当されます。
176.4k/192kHz 時は、1つのステレオチャネル(a chとします)をa_ch L 4sample /a_ch R 4sample という順序でチャネル割当されます。
DoPでDSD64を伝送する場合、176.4kHzのモードを使用します。
DoP DSD64のチャネルマッピングと受信後のフォーマット変換(*差替版)
1フレーム中のLch 4sample分の内、最初の1sampleの下位16bitをMSB側として、次の1sampleの 下位16bitをLSB側として32bitに連結し、FPGA内部バッファに書き込みます。その他も同様に2sample分の下位16bitを結合して32bit化してFPGA内部バッファに書き込みます。
*上記でも問題なく処理できますが、DSD128と制御方法を揃えるため、Upper側16bit、Lower側16bitを個別にメモリへライトすることにしました。
DoPでDSD128を伝送する場合、1本のADATラインでは伝送容量が不足するため、2つのADATラインを使います。各ラインは176.4kHzのモードを使用します。
DoP DSD128のチャネルマッピングと受信後のフォーマット変換 (*差替版)
前回の時は、内部ではDoPのフォーマットのまま扱い、出力時にDSDフォーマットに変換する方式をとっていましたが、プレーンDSDの入出力とDoPの入出力を相互にうまく扱うには一旦DSD(メモリ格納時32bit化)して扱う方が、処理し易いと思われるので、入力側でDSD化するように変更することにしました。
0 件のコメント:
コメントを投稿