FC2ブログ

ジッタとは何か考える

15/11/03初稿
18/12/17全面改定

 ジッタについて考えてきたことを、本稿でポータル的にまとめておこうと思います。


■ジッタを知る

 以下、「発振器」と「振動子」はごっちゃで記します(主旨に影響ないと思いますので)。ご了承ください。

・そもそもppmはジッタじゃない
 ppmで語られることがありますが、ppmを単位とするのはふつう「発振精度」です。“10年間で何秒の誤差”というヤツですね。クロック周期がぷるぷるするのがジッタですから、基本的に別のパラメータなことは自明でしょう。
 ジッタは「位相雑音」で語るべきものです。
 ホントにどれだけ影響あるのかは別として。

・ジッタを気にすべきは「MCLK」のみ
 最終的にアナログ信号に影響する時間軸の揺れはMCLKのみと考えるべきでしょう(リンク先で概念図を作っています)。だって、DACチップというかDACユニットの(音声再生に関わる回路の)基本クロックはMCLKしかありませんから。だからこその“Master Clock”。「デジタルプロセッサ」としてのDACチップの駆動クロックですし、入力されるデジタル音声信号も、そのパタパタはMCLKのタイミングです。
 DACユニット内にはそれ以外のクロック(制御マイコン用など)もあり得ますが原則アナログ化には関係ありません。「そのジッタがDACチップの電源を揺らす」といった間接的な影響はあるかも知れませんが、もはやジッタというよりノイズと捉えた方がいいでしょう。
 また、「PC側の転送タイミング(例えばUSB Class1の1ms周期)の揺れ」はクロックレベルではありませんから、ジッタとは呼ばず別問題として考えた方がいいと思います。

・送信側(プレーヤ)と受信側(DAC)でMCLKを共有しないと再生できない
 無理に再生するとサンプルダブリや欠損になります。
 極端な例ですが、お互いが±10%精度の10MHz発振器を使っているとして、PCの個体がたまたま9MHz、DACがたまたま11MHzだったとしましょう。同期しないでサンプル転送したら足りなくなるのは明らかですよね。
 ですので、Tx側とRx側で必ずクロックを共有する必要があります。
 ですが、S/PDIFなど大半の機器間I/FではTx側のMCLKをRx側に転送することはできません。
 ですので、Rx側では、PLLを用いてTx側のMCLKに同期したMCLKを生成しています。

・されどPLLは原発振に敵わない
 しかし、PLLのジッタ性能は水晶の固有発振たる発振器の原発振より原則として低いです。生成周波数を可変できるくらいですから仕方ありませんよね。
 I2SのマスターモードだとTx側からクロック(といっても普通MCLKは来ませんが)を転送できますが、たとえばTx側が汎用マイコンなら、それには44.1kHzや48kHzの256倍や512倍といった発振器は搭載されていませんから、当然PLL生成されたものになります。
 「Tx側からデータに同期したクロックが送られてくるからと言って絶対的にありがたいモノとは限らない」と思っています。
 I2SにはRx側からクロックを送ってTxを動作させるスレーブモードもありますが、これに対応したシステムはあるのかな?

 ところで、TxマスターならRxはスレーブですし、TxがスレーブならRxはマスターです。マスター・スレーブはTxとRxに必ず共存するワケですが、本Blogでは、モード表記は基本的にデータ流れの上流側(Tx側)観点で行っています。

 「PC側の転送周期の揺れはジッタではない(別問題)」と記しましたが、「転送されるクロックの揺れはジッタ」でしょう。Rx側がPLLでMCLKを生成する場合は、Tx側から送られてくる転送クロックのジッタはそのままPLL結果に影響することになりますから。

・「クロック」は非同期が理想だが「データレート」は同期必須という矛盾
 MCLKは基本サンプリング周波数「fs(44.1kHzまたは48kHz)」の256倍や512倍の周波数が用いられます。DACユニット内ではDACチップの動作クロックになります。上記の通り、S/PDIFなどではRx側でTx側に同期生成します。
 S/PDIFではTx側のMCLKで司られるビットレートでリアルタイムにサンプル転送してきます。1644なら隙間なく1秒間に88,200サンプル送ってきます。ですので、MCLK同期したシステムではサンプルダブリや欠損は発生しません。

 しかし、DACチップの動作クロックは上記の通りPLLではなく原発振の方が望ましいワケです。
 しかし、クロック同期せずRx側独自のMCLKを用いるとサンプルダブリや欠損が発生します。

 それを発生させないためには、ある程度のバッファを設けリアルタイムより速いビットレートでI/Fし、Rx側からTx側に「待て」「もっと」の制御が出来ればよいワケです。

 USBアシンクロナス転送はそれを可能にしています。1644の場合、Class1なら1ms単位でステレオ44サンプルまたは45サンプルをやりとりし、Rx側はそれをバッファし、独自のMCLKに基づいてそれを再生処理します。MCLKの精度差によってサンプルが余ったり足りなくなったりしますが、その際は「余っちゃうから1回分パス」「足りなくなりそうだから2回分一気に送って」といったやりとりをします。
 これにより、Tx側とRx側が独自のMCLKを持っていてもマクロなデータレートを一致させることができるため、サンプル欠損を防げるというワケです。
 S/PDIFでは不可能なのは一目瞭然でしょう。一方通行ですからTx側はRx側の事情なんて聞く耳持ちません(持てません)し、結果的なビットレートは「サンプルレート×ビット深度×2ch」で固定ですから、レート的にも「待て」は出来ても「おかわり」は出来ません。

・DACのMCLKに原発振を使えるのは事実上USBアシンクロナスモードのみ
 PCを絡めたコンスーマオーディオとして機器に潤沢な選択肢があるという条件では、現時点ではこれしかないハズです。
 I2Sは上記の通りですし、そもそも機器間I/Fではありませんし。
 外部クロックを入れられるPC用サウンドカードもあるようですが、基本、業務用ですよね。
 PCレスならDACユニットのクロックをトランスポートに入れる手があります。両方に外部クロックを入れることもできますが、それはMCLKじゃないと結局PLL生成することになります。

 なので、DACのMCLKの健やかさに重点を置くのなら、表題の理由から機器間I/Fは「USBアイソクロナス・アシンクロナスモード」一択と思っています。
 もちろん、業務用機器も視野に入れたり、MCLK以上に重視すべき点があるならこの限りではありません。例えばハイレゾマルチをやるためにHDMIを使う時など。

 ちなみに「isochronous」は同時・等間隔といった意味。「asynchronous」は非同期(synchronousの否定形)です。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

最新記事
ERIへようこそ

Author:らかせ
「最新記事」または
「メインメニュー」からどうぞ

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です

・一応、拍手にコメント(非公開)付けられるようにしてあります

・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください

・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください

・引用の考え方については「007:諸事」をご参照ください

・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

・Amazonアソシエイトに参加しています(アフィリエイトはAmazonのみです)

カテゴリ
検索フォーム
FC2カウンター