2012年4月14日土曜日

DSD to PCM Converter

YUKI-SAN の DSD to PCM Converterが DSD128のDoP(DSD over PCM)をサポートし、AES/EBUなどサンプリングレート352.8kHzをサポートしない規格のための、MSB8bitコード 0x09/0xF9を用いるへの代替規格もサポートしてくれました。



左:DSD64_DoP(0x05/0xFA)  中:DSD128_DoP(0x05/0xFA) 右:DSD128_DoP(0x06/0xF9) 
WaveファイルのRIFFタグ情報 

 まだ、DSD128_DoP(0x06/0xF9)を試す環境が準備できていませんが、とりあえずフォーマットを確認するため、DSD64のデータを、DSD64_DoP(0x05/0xFA) へと、AudioGateでDSD128に変換して、 DSD128_DoP(0x05/0xFA)、DSD128_DoP(0x06/0xF9)に変換してみました。
 上記がRIFFタグ情報を覗いてみた様子です。DSD128_DoP(0x05/0xFA)では、2チャンネル、352.8kHz、24bitのwaveファイルとなっています。DSD128_DoP(0x06/0xF9)では、4チャンネル、176.4kHz、24bitのwaveファイルとなっています。


Waveファイル 先頭部分
上:DSD128_DoP(0x06/0xF9) 
中:DSD128_DoP(0x05/0xFA)
下:DSD64_DoP(0x05/0xFA) 

 つぎにデータ部を見てみます。上が、DSD128_DoP(0x06/0xF9)、DSD128_DoP(0x05/0xFA) DSD64_DoP(0x05/0xFA) のデータの先頭部分です。
 0x00002Bまでが、タグ情報で、0x00002Cからがデータ部になっているようです。

  オレンジでハッチングしているのは、DSD128でのLchデータと思われる部分の先頭から20byte分になります。 
 0x05/0xFA方式では、16bit毎にL/Rchが埋め込まれています。
 0x06/0xF9方式では、32bir毎にL/Rchが埋め込まれています。

 これは、4chマルチチャネルのWaveファイルの1番目と2番目のチャネルにLchを、3番目と4番目のチャネルにRchを埋め込んでいるためで、これでDoPの規定に合っていると推測します。


  水色、黄色でハッチングしているのが、0x05/0xFAあるいは0x06/0xF9のコード、0x05/0xFA方式の場合は、DSDデータ16bit- 0x05 - DSDデータ16bit - 0xFAの順序で埋め込まれています。
 0x06/0xF9方式の場合も、DSDデータ16bit- 0x06 - DSDデータ16bit - 0xF9の順序で埋め込まれています。
 
 こちらは、少し私の推測と異なります。 0x06/0xF9方式の場合、4chの各chで0x06/0xF9を交互に埋め込むのではと推測しています。(あまり自信はありません...)

4 件のコメント:

  1. kouさま

    DSD2PCMCをご使用いただき、ありがとうございます。

    >4chの各chで0x06/0xF9を交互に埋め込むのではと推測しています。

    「4chの各chで0x06/0xF9を交互」のつもりで作ってみたのですが違いましたか(笑)

    もしよろしければ、kou様の推測されるデータの配置をもう少し詳しくお教えいただけないでしょうか?
    私の環境ではDSD再生はテストできませんので、kou様のお考えに合わせたいと思っています。

    返信削除
  2. 度々失礼します。

    >4chの各chで0x06/0xF9を交互に埋め込むのではと推測しています。

    の意味がわかりました。
    2chのときのデータと比べると確かに現状は不自然な配置でした。
    修正バージョンをもうすぐアップいたします。

    返信削除
    返信
    1. YUKI-SAN さん
       一応私の考えを書いておきます。
       DoP open Standard Version 1.1 http://dsd-guide.com/usb-link-dsd-audio-pcm-frames-andreas-koch の3. Solutions for double rate DSD (128FS) and beyondの図で、PCM Frame 1というのがwaveファイル上の1ch分に相当し、DSD128の場合、Frame1,2にLch、Frame3,4にRchを割り当てると理解しています。
       よって、0x06/0xf9コードは、0x06,0x06,0x06,0x06,0xF9,0xF9,0xF9,0xF9,0x06,0x06・・・・・という順序で埋め込まれると考えています。

      削除
  3. kouさま

    ありがとうございます。

    >よって、0x06/0xf9コードは、0x06,0x06,0x06,0x06,0xF9,0xF9,0xF9,0xF9,0x06,0x06・・・・・という順序で埋め込まれると考えています。

    おそらくkouさまのお考えが正しいと思われます。
    更新バージョンの0.0.13をリリースいたしました。
    お急ぎいただく必要はございませんので、お時間のあるときにでもお試しいただけますと幸いです。

    返信削除