2012年2月5日日曜日

dcs方式

dcs方式について友人から解説してもらったので、まとめておく。

① PC上で、
dcs方式に対応した再生ソフトを使って、2.8224MHzのDSDを、176k/24bitのPCMフォーマットに偽装するための作業(頭8bit:PCMと区別するために0x55を付ける、実データー:残りの16bitにDSDのLとRを交互に入れる)をして、これを176kHz24bitでUSB経由で伝送する。

② XMOSなどのUSBインターフェースで、
データを受け取ったら、偽造したデータを元のDSD2.8224Mhzに戻す作業をする。スピードを、44.1kHz(176KHzの1/4)に戻し、データ長を16bitの4倍の64bitに、つまり、44.1kX64bit=2.8224MHzのビットレートに並べ変えて連続したLとRのDSDにする。

ということだそうだ。

2.8MのDSDは44.1kのI2Sのビットクロックと同じ速度で動くので、既存の機器で何の問題もないということで、このくらいならXMOSでなくてもFPGAで簡単にできるのとのことらしい。

またdcs方式は、USBに限らず、176/24のフォーマットが扱えれば、WAVEファイルでもI2SでもSPDIFでもAES/EBUでもこの形式でDSD伝送ができるので、理屈的にはほとんどの既存機器をそのまま使えてしまうということらしい。

しかし、dcs対応ソフトは、dcs対応の(ダミアンに機種登録が必要だそうです)USBインターフェースしか認識しないので、やはり再生機器は限られてしまう。

このあたりの解決も必要になるようで、そう簡単ではないらしい。

3 件のコメント:

  1. dCS方式のメリットは、PCから外部装置へ出す手段として、USBはもとより、既存のSPDIF,AES,ADATなど何でも出力可能になるところです。
     しかし既存の装置ではdCS方式のフォーマットをDAC入力のDSDフォーマットに変換する手段を持っていないので、今のところ機種はかなり限定されることになります。既存機種は改造しない限り対応出来ません。変換は結構簡単なので、FPGAならちょろいです。

     詳しいところはよくわかりませんが、HQ Playerは、デバイス(機種)依存なく出せていると思います。以前実験したときは、ADATフォーマット(RME RayDAT)で出力しましたが、ADAT上にdCSフォーマットで出せてはいました。その時は残念ならがDACで再生出来ず、原因不明のまま放置してしましたが... ちょろいと言ったくせにできてません。
     DSDはビット列がPCMのように24bitとか16bit単位ではなく、連続したデータ列なので、デバッグ時の解析が難しいです。

    返信削除
  2. kouさん
    XMOSでdCS方式DSDネイティブ再生ファイルダウンロードNGということですが、kouさんがだめなら私がやっても無駄なので、kouさんが上手くいくのを見守っています。

    >HQ Playerは、デバイス(機種)依存なく出せていると思います。
    そうなんですか。FPGAでDACがdcsに対応しても、再生ソフトがそのDACを認識できないならどうにもならないと思っていましたが、これはありがたいですね。

    また動きがありましたらブログ拝見しますのでよろしくお願いします。

    返信削除
  3. XMOSをdCSに対応させるべくソースを書き換えるのは大変だったでしょうね。
    私はXMOSオリジナルのソースを追い切れず、定義ファイルのパラメータ値を変える程度しかできませんでした。
    基本的に他人の書いたソースを追うのは、自分で一から書く5倍程度の時間がかる印象がありますし、思わぬ所で本人にしかわからない落とし穴があったりで、非常に気を使います。

    176.4k以外のPCMが正しくPCMとして扱われるのかも十分検証してから音量を上げてくださいね。
    開発途上でしょうから、疑ってかかるぐらいが丁度かと思います。

    返信削除