アイソクロナス vs バルク(その1)

皆さんはパソコンにUSBアダプターを繋いで音楽を聴くときにどのようにしておられますか?

 オーディオマニアではない方も含めてPCで音楽を聴く方を母集団とした場合、おそらく圧倒的に「ながら族(死語?)」が多いのではないでしょうか。すなわち、音楽を聴きつつ、ネットを徘徊しつつ、メールを書き、USBメモリにファイルをコピーし、そしてプリンタを使ったりするのだと思います。

そうなんです、コンピュータの仕様を決める人達は、あそらくそのような場合でもPCからUSBアダプタに転送している音楽が途切れたりしてはいけない、ということを最重視したと思います。

そして、その結果、USBオーディオの転送に「アイソクロナス転送」が採用されたにちがいありません。

「アイソクロナス転送」とは、 一定時間ごとにある程度の量のデータのやりとりを行いたいときに用いられます。つまり、アイソクロナス転送では一定時間ごとに必ず転送を行うチャンスが与えられるわけです。

たとえば16bit/48kHzのステレオPCMデータをUSBアダプタに転送する場合、下の図のように、PCが音頭をとって1msという決められた期間内に48 x 2 x 2 = 192バイトの荷物(データ)が毎回USBアダプタに送られることになっています。1秒間では48,000 x 2 x 2 バイトで16bit/48kHzのステレオデータが転送されるわけです。

 USBのバスに色々なデバイスが繋がって、それぞれが転送をしていても、1msの間に192バイトが転送されることが約束されていますから、連続したオーディオデータを安定して送ることができます。

ちなみに、それと引き換えにデータを受信した側(この場合はUSBアダプタ)が、データが化けずに正しく受け取れたよ、という「返事」を出さないようになっています。 つまり、データが化けて何となく音が悪くなっているように感じることもあり得ることになります。

また、PCの(PLLやスペクトラム拡散された)時間軸の揺らいだクロックでタイミングを作られた「1ms」という間隔でデータが送られてくるわけですから、受信側ではどのようにしてもその影響を受けることになります。どんなに上手に設計しても程度の差こそあれ、ジッタを発振器の精度までは減らすことはできません(それでも十分高音質なアダプタが存在し得るということは否定できませんが)。

(2/15追記) 上記クロックの制約は、PCM270X系のいわゆる「Isochronous (adaptive)」という方式でLSI化されたチップを使う場合のことであり、USB自体の制約ではありません。

当然、専用に設計されたUSBオーディオクラスという決まりの上で管理されますので、DSD信号は転送できません。

また、PC(OS)側のカーネルミキサーと呼ばれるミドルウェアによって勝手に音が変えられる場合があり、それを回避するのも面倒だったり、という問題もあるようです。

さて、一番最初の質問に戻りますね。ちなみに、私はオーディオマニアで、PCで音楽を聴く際には、トランスポートとして専用のPCを用意し(ちなみに現在はそれがThinkPad X31だったりするのですが)、 音楽を聴くためのソフトだけを立ち上げ、そのPC上ではほかの作業を一切しないようにして聴きます。

オーディオマニアってそういう方がほとんどではないでしょうか?

続く