デジタルオーディオのクロックと精度について

shapeimage_1-44

クロックが再生品質に与える影響を考えてみる。

CDの登場以来、「デジタルデータ自体は不変なんだから音が変わるのはおかしい」派と「そんなこと言ったって違うんだもん」派の対立は根深いものがあります。
アナログ変換機能自体の品質とアナログ回路の品質はスペックとしても違いが出てくる部分なので、DACチップとそれ以降のアナログ回路での違いがあることはまだ理解を得られやすいのですが、同じDAコンバーターでも入力する信号の取り扱いで音が違う。という主張に眉をひそめる方は少なくないと思います。

私個人としては「技術的に説明がつく違いがあるなら変わって聞こえることは否定しない」派なのですが、変わる派の主張の中には「プラシーボ」「オカルト」が少なからず含まれていたりするので歩み寄りはなかなか難しい部分でもあります。。

私が「否定しない」とする「技術的に説明がつく、デジタルなのに音が違う事象」の代表格が「クロックの取り扱いと品質」によるものです。
中でも周波数の安定性、特にタイミングの等間隔性の正確さはとても重要に感じています。
(言い方を変えるとジッターの大小です)

周期的なタイミングの変動(周期的なジッター)はその周波数でアナログ出力を変調しているのと同じで、ワウフラッターと似たようなものですが、アナログ機器のワウフラッターと大きく異なるのが周期が短い(変調周波数が高い部分が含まれる)ことと、どんな安物でもアナログ機器のワウフラッターよりレベルは低いので、聞こえ方としては音が揺れたり濁ったりというのではなく、広がりや奥行き感、定位感の違いとして捉えられる人が多く、特性的にはジッター量のほか位相雑音として測定可能な違いがあり、この特性と音の評価に相関が多くみられます。

ただ、クロックの品質だジッターだといってもクロックはいろいろなところにありまして、一体どこのクロックが再生品質に影響を(より多く)与えるのかということが気になります。
そこで今回は、PCからUSBでDDCに接続し、DDCからS/PDIFでDAC装置に接続してアナログ出力を得る構成でクロックの影響を考えてみます。(DAC装置内部では、S/PDIFレシーバーがI2Sに変換してDACチップにデータを渡すこととします。)

では、それぞれの区間ごとに分解してみましょう。

まずは最上流のUSBホスト〜USB DDC(USBデバイス)のUSB区間です。
USBにおけるクロックのマスターはUSBホスト(PC)側であり、USBデバイス(USB DDC)側は信号に間欠的に含まれているマーカーからUSBのシステムクロック(USB1.1=12MHz、USB2.0=120MHz)を抽出、PLL回路などを使いUSBのシステムクロックを再現します。
USBデバイスは必ずスレーブ(マスターに追従する)動作です。

そのうえでオーディオ用のクロックの生成方法には大きくふたつのモードがあります。
アダプティブ(追従)モードの場合は上記で再現したUSBシステムクッロックからオーディオ用のクロックを生成します。
このモードでもUSBデバイス側にオーディオ用クロックチップを積んでいるものもありますが、バッファが溢れたり不足したりで途切れや音飛びが起きないように、PLLでUSBホスト側のクロックに追従させています。
このため送り出し(PC)側のクロック品質に大きく影響されるのに加え、USBケーブルやコネクターの品質、環境に依存する伝送ジッターが乗ってくること、更にUSBデバイス側の追従性能によってクロックの品質が大きく変わり、このモードでは原理的にクロックタイミングに不安定さが排除できません。

アシンクロナスモード(USB AudioClass2.0でサポート)の場合は、USBデバイスからUSBホスト(PC)に対してデータ転送タイミングの制御を行いバッファ量をコントロールできるため、USBデバイス側ではUSBシステムクロックとは独立した(追従、同期が不要な)オーディオ用のクロックでの動作が可能となっており、USBホスト(PC)の出力信号品質や伝送(環境、ケーブル)にまつわる品質劣化、USBデバイスのクロック再現能力による品質劣化の影響を排除できます。

したがって、USB DDCから出力されるS/PDIFに含まれるクロックの品質は、データ転送がアダプティブモードかアシンクロナスモードかで、クロックソース、信号品質劣化の要素が異なります。

どちらが高品質かは、環境や実際の装置で使用されているクロックの品質、部品や回路の性能にも依存するので断定はできませんが、同程度の品質のクロック、PLLを使っていると仮定するならアシンクロナスモードの方が品質は安定していると言えます。

続いてUSB DDC〜DAC装置S/PDIFレシーバー(DAI)のS/PDIF区間です。
S/PDIFもシリアル通信なので、ひとまとまりのデータとデータの間にマーカーとなるプリアンブル信号が挟み込まれています。
このプリアンブル信号同士の間隔がサンプリング周波数xチャネル数(ステレオの場合2fs)の1周期です。
S/PDIFレシーバー(DAI)はプリアンブル信号を抽出してPLL回路でサンプリング周波数を再現し、ここからDACに渡すI2SのLRCK、BCK、MCKなどを生成します。
BCKは通常64fs(サンプリング周波数の64倍)ですので32逓倍。
MCKが256fsとすると128逓倍にもなります。
この倍率の高さがクロックタイミングを不安定にさせる元となります。
更に、S/PDIFは送り出し側の信号品質にもろに影響を受けるほか、Lから始まるプリアンブルとHから始まるプリアンブルがあることも手伝い、伝送に伴う信号品質劣化によるタイミングの揺らぎ(ジッター)の発生が原理的に避けられません。
USBではアシンクロナスモードを使い、レシーバー側からホスト側に転送タイミングの制御を行うことでレシーバー側クロックでの動作が可能でしたが、S/PDIFは送り出し側から受け側への一方通行の信号しかなく、サンプリング周波数に依存した動作を行うので、USBのような制御はできません。
S/PDIFは原則的に送り出し側の信号品質と伝送特性とS/PDIFレシーバー(DAI)の追従、生成クロック性能に大きく影響を受けます。
(余談になりますが、S/PDIFでは同軸より光インターフェース(TOSLINK)が嫌われることが多いのですが、これは電気-光の変換部分であるトランスミッター、レシーバーで信号品質劣化が起きやすいことに起因しています。実際には回路実装、環境、使い方次第では同軸の方が悪いこともあるのですが。。)
なお、装置によっては送り出し側、受け側ともに外部クロックで動作させることで同期をとり、高性能な外部クロックを使うことで送り出し側の品質や伝送上の品質劣化の影響排除が可能なものもあります。
(元々はワードシンクという複数の機器で同期をとるための機能だったりしますが。。)

最後にDAC装置内部のS/PDIFレシーバー〜DACチップ間のI2S区間です。
I2Sに含まれるMCK(主にDACチップのシステムクロック)、BCK(PCMデータの各ビットタイミングクロック)、LRCK(サンプリング周波数と左右のチャネル指定クロック)の各クロックの使われ方(サウンドに対する影響度合い)は、DACチップによって大きく異なります。
DACのICチップはアナログ信号に変換する最後の素子ですが、チップによって内部構造(回路構成)が大きく異なるためです。
古のマルチビット型DACはサンプリング周波数の周期でサンプルホールドを入れ替えることで出力を得ますので、クロックのタイミングとしてはLRCKの品質が重要です。
BCKはPCM各ビットのHigh/Lowを判定するトリガーとして機能すればよく、オーバーサンプリングやデジタルフィルターなどの付加機能がなければMCKはそもそも不要です。
オーバーサンプリング機能やデジタルフィルターを搭載していたり、ΔΣを使ったDACの場合は、より高い周波数で動作するためBCKやMCKを逓倍/分周して利用しますので、BCK、MCKの正確性が重要になってきます。
またDACチップによってはSRC(サンプリングレートコンバーター)を搭載していて、BCK、LRCK、DATAの3点セットとは非同期のMCKを入力するとMCKのクロック周波数に合わせてサンプリングレートを変換してDACチップ以前で発生するジッターの影響を排除する。といった機能があるものもあります。
この場合MCKの品質がとても重要になってきますが、細かく言うとBCK、LRCKもSRCのPLL動作を軽くした方がジッターを小さくできるのでBCK、LRCKもある程度以上の品質は必要です。
更に、入力されたMCKからBCK、LRCKを生成、出力できるDACチップもあり、DACチップ側から受け取ったクロックに合わせてデータを出力してもらえれば、DACチップに入力するMCKの品質に注力すればよいことになります。

総合すると、最終的にDACチップに入力する「I2SのMCK、BCK、LRCKの品質がもっとも重要」なことは間違いないのですが、USB DDC、DAC(DAI、DACチップ)全てがスレーブ(追従モード)のクロックで動作したとすると、最上流のUSBホスト(PC)が出力するUSBシステムクロック(マーカー信号)の品質および伝送品質、更に各ステージのクロック追従性能やジッター特性に依存することになります。
また、USB DDCをアシンクロナスモードで動作させたとしてもS/PDIF以降の信号品質劣化は通常避けられません。
装置ベースで考えると、
USB DDCとDACを外部クロックで動作させ、
USB DDCをアシンクロナスモードで動作させて、
やっと外部クロックおよびDAC装置内のS/PDIFレシーバーの(I2S出力)性能に依存したクロック品質になります。

余談ですが、ラズパイと同様に一部で盛り上がりを見せているJPLAYは、乱暴な言い方を許していただければWindowsPCのリソースをこれでもかというほど排他的にオーディオプレーヤーに割り当てることでUSBからのデータ出力品質を上げていると理解しています。
アシンクロナスモードのない(アダプティブモードしかない)USB DACで威力が大きいと言われていることからもJPLAYがUSB出力品質を向上させていることを裏付けます。
ただし、Windowsのカーネルそのものに手を入れているわけではないことにも注意が必要です。

さらに突っ込んで考えたとき、自作ベースでDACに渡すI2Sのクロック品質をいかに高くするか、ということを考えた時、ラズパイのSoC(CPU内蔵チップ)がUSBもS/PDIFも経由せずI2Sを直接出力できたり、外部からのBCK、LRCKに合わせたデータ出力が可能なことの威力(魅力)がお分かりいただけるでしょうか。

なお、そんなにI2Sがスゲーなら、装置間の伝送もI2Sにしちゃえばいいじゃんというアイディアが出てきそうです(実際にI2S出力可能なDDCやI2S入力可能なDAC装置もあったりはします)が、実はそう簡単な話ではありません。
I2Sは装置内部のIC間の規格であり、伝送可能距離は数10cm、装置間伝送のためのコネクタやケーブルの規定もなく、むやみに繋ぐとそれだけで伝送ジッターが問題になってきます。
そうなると、I2Sで受けた先でASRCのお世話になったり、ジッタークリーナーが必要になってきたりと、なんのためにI2Sにしてるのかわからなくなってきたりします。

と、理屈を長々と書いていますが、
この領域の違いが測定ができる環境(測定器)が欲しい!
でも、その前に、いまより性能のいいアナログ領域の測定器のほうがもっと欲しい!!(苦笑)