@nzato さん
お試しいただきありがとうございます。
Sabreberry32のMasterモード時のI2Sシグナルの流れは以下のようになります。(新しい世代のESSチップとは異なる点があるのでご注意ください)
FIFO - シリアライザ - GPIO
- プリント配線
- PCM I/F - OSF - DPLL/ASRC - DAC
左がラズパイ、右がES9018Q2Cです。
オシレータに同期したBCLK/LRCKがES9018Q2CのPCM I/Fからラズパイに向かって送られ、ラズパイからはDATAを送信します。
OSFは量子化ノイズの低減とLPF簡易化のために必要なものです。
もしMPD側で、Masterモードの上限である192KHzにオーバーサンプリングして再生しようとすると、ES9018Q2C側でもう一度オーバーサンプリングされます。(何倍にサンプリングされるかは不明ですが、44.1KHz/48KHzは352.8KHz/384KHzに8倍オーバーサンプリングされることから推測するに、少なくとも2倍以上でサンプリングされるはずです)
オーバーサンプリングの繰り返しで音質劣化をノイズフロア以下に抑えるためには、前段も後段も長大なタップ数が必要になります。そのような高精度な処理ができないなら、オーバーサンプリングは1度きりにするべきです。
つまり、「SoXオン + OSFオフ」または「SoXオフ + OSFオン」 のどちらかの設定が合理的です。次善の策は、信頼できるアルゴリズム・ソフトで事前に192KHzにリサンプリングしておくことでしょう。リアルタイム処理には精度に限界があり、CPU負荷の増大もデメリットとなるからです。もちろん最善は192KHzのハイレゾをSoXオフ・OSFオフで再生することです※1。
ES9018Q2CのMasterモードもDPLLバンド幅を変更すると音質に差がでます。バンド幅を小さくするほど高音質です。これはつまり、MasterモードであってもDPLL/ASRC有効である限りはデルタシグマに使われるMCLKはDPLL/ASRCによって生成されたものであるということを示唆しているのだと思います。分周されたBCLKで入力された信号から再びDPLL/ASRCで再生成したMCLKがオシレータよりも良質である可能性はゼロでしょう。(DPLLバンド幅の影響を受けるという事実からの推測ですが)
オシレータに同期したI2Sを生成できるなら、そもそもDPLL/ASRCは不要です。DPLL/ASRCをオフにする手段はSYNC Mode(128fsモード)しかありません。
Sabreberry32のパフォーマンスを最大限に発揮できる設定をまとめますと、
- SYNC Mode を使うこと (=DPLL/ASRCを使わない)
- オーバーサンプリングは1度だけ
この条件の範囲でオーバーサンプリングの仕方にはいくつかの選択肢※2がありますので、各人の環境・ライブラリと相談して設定を決めればよいかと思います。
ここまでの議論はすべて机上のもので、実際にはこの通りとはいかない部分があるとは思います。
最終的には耳で判断すればよいことですので、あまり難しく考える必要はないかと思います。
(※1) 192KHzのハイレゾ音源はオーバーサンプリングすべきでないと断言してしまいましたが、定量評価すれば違う結論もあるかもしれません。直感的には、不完全なオーバーサンプリングと引き換えに僅かなS/N向上では割りに合わないと思います。
(※2) オーバーサンプリング設定の選択肢とは以下の2パターンのことです。
- SoX
*:32:*
+ OSFオン
- SoX
192000:32:*
+ OSFオフ