USBハブで高音質2008/07/06 14:01

 ヒューストンさんからのコメントでUSBオーディオを複数繋げる事によって音質が上がっていく理由が少しわかってきた。

 確かにusbccgp.sysが立ち上がっていてオーディオインターフェースも繋げている分だけ認識している。これはレジストリから見ていくとわかる。

 帯域幅の確認は、デバイスマネージャからUSBのホストコントローラーを
プロパティ〜詳細設定
で見ていくと「帯域幅を消費しているデバイス」で「USB複合デバイス」が15%の値になっている。しかしこの値はデバイスを複数にすれば必ず出てくるものらしく2個繋げようが8個繋げようが15%は変わらなかった。

 ここで少しひらめいた。

 音を出している302UはUSBの1.1なので直接繋ぐとUSBホストコントローラーはUHCIになっている。USBホストコントローラーはUSB2.0に対応したEHCIもあって、こちらはUSB2.0に対応したUSBハブを繋げているのでこれを認識している。そのUSBハブの下にはUSB1.1のオーディオインターフェースが繋いであるだけ。ということは2.0のUSBハブをかませば1.1のオーディオインターフェースもEHCIで動く事になる。
 やってみなくては!

 ハブをかましての実験なんて以前どこかでやっていたなー。
302Uを2.0のUSBハブに接続。音出し。

 これは情報量が上がった。シンバルの音が今まで聞こえなかった音が出ている。
 ということはもしかしてUSBハブの種類でまた音が変わるのかしら?使っているUSBハブはバスパワーで動いているものだ。電源で動くやつを使ってバッテリーにしてみるかな。

 USBでもLANと同じ事をやるようになるとは。

コメント

_ ヒューストン ― 2008/07/07 14:25

Utaさん

たしかにUSB2.0のハブを経由すると、最終のデバイスがUSB1.1でもハブまでは2.0扱いになり、コントローラーはEHCLになりますね。
EHCLはUHCLに比べて10倍以上の能力を持っていますから、効果は抜群でしょう。 また、ハブもUSBではデバイスと同じように認識されますので、処理帯域も上がるはずです。
こんなことは私は考えつきませんでしたが、こりゃ良いアイデアです。
私も早速試してみます。

ただし、2.0と1.1ではホストコントローラーが違いますから、1,1へつないでいるデバイスの効果は期待できなくなるかもしれません。
もし、そうでないなら、コントローラー周辺のI/O関係の帯域も増加していることになりますね。

ところで、ハブを追加すると、1階層あたり4bitの同期データが失われます。
USB2.0では同期データは32bitですので、音を出しているデバイス側が同期bitとしていくら使っているか次第ですが、ハブの階層を増やしてゆくとどこかで音質への悪影響が出てくると思われます。 せいぜい3階層位が限界かもしれません。

また、このような音質向上は、USBデバイス側がコンピューターからのデータに時間的な同期を取っているために生ずることは間違いのないところのようです。
そうであるならば、USBデバイス側で同期をとらないで、精度のよいクロックを使っている場合には、この方式での音質向上は生じないことになります。

コンピューターで何の音声データの加工を行わず、コンピューターにトランスポンダーとしての機能しか期待しないのであれば、DAC側のクロックの精度が音質を決める大きな要素になるのでしょうね。

今のところ、XPでは同期をとらないIsochronous転送がサポートされていないのですが、Vistaではサポートされているようですので、外部クロックなどを使おうとするとVista にしないといけないのかもしれません。

私は、Vistaは使いづらくって、いまだXPオンリーですので、Utaさんの実験結果がとても参考になります。
これからもよろしくお願いいたします。

そういえば、マイクロソフトは、USB2.0ではコントローラーの使用帯域の表示が正確でない、としており、いまだ改善されたか情報が見つかっていませんので、この辺はご承知おきください。

_ ヒューストン ― 2008/07/07 21:20

Utaさん

複合デバイスの帯域の表示の件を書くのを忘れたので、追加します。

帯域表示は、ハブでまとめているもの意外は各ホストコントローラーごとに表示されます。 しかし、複合デバイスではコントローラーが共通化されているので、実際の処理能力はこれらの値の合計なのではないかと考えています。
台数が増えるにしたがって音質がよりよくなる理由は、これだけではないのかもしれませんが、そう考えるとつじつまが合うように思えます。

また、私の場合は、USB1,1だけですが、USBデバイスをハブなしで2台接続したときは、一方が予約20%、複合デバイス31%、他方が予約10%、複合デバイス31%、ハブ経由ではどちらかに複合デバイスが二つとも一緒に表示されています。 ハブ経由の方がよさそうに聞こえますが、差は小さくなっています。

複合デバイスになったとき、どれだけの帯域と設定されるかは、各々のコンピューターの初期設定次第、またコントローラーやコンピューターのメーカーによっても違うのだと思います。

あまり参考にはなりませんが、何かのお役に立てれば幸いです。

_ よんまる ― 2008/07/07 23:22

こちらでも以前からUSBハブを使っています。

USBデバイスはSE-U55SXとSE-U55(無印:GXの二つくらい前の機種で中古で入手)を使っています。
ハブはPCとSE-U55の間に挟んでいます(SXはハブをかますと認識しませんでした)
SE-U55のアナログ出力からアンプにつないで音を鳴らさない場合、PC直結では12時のボリューム位置でHDの動作音がスピーカーから出ていましたが、ハブをかまし、さらにUSBケーブルを小提琴奏者さん推奨品に交換したところ、ボリューム全開でも少ししか(アンプに何もつないでいないときと同程度)ノイズが出なくなりました。USBハブでもノイズが多少洗濯されているようです。

なおSE-U55無印とSE-U55SXの比較ではあらゆるケースでSXが高音質でしたが、やはり2台認識させたほうが良好でした。さらに無印にはGXやSXではなくなってしまった同軸出力がついていたため、PCからUSBで無印に出力し、さらに無印から同軸でSXに出力、SXのセレクタを「デジタル」にしてSXのアナログから音をとるとPCからSXへ出力した場合よりも高音質でした。
数珠繋ぎのによるデータたたきなおし効果かもしれませんし、SXがPCから自立したことによるのかもしれません。

_ uta ― 2008/07/08 18:46

ヒューストンさん
 どうやら全てEHCIに繋いだ方がよいようです。当方ではかなり変わりました。
いろいろ教えて頂けて助かります。こちらも色々試しながらアップしていきます。

よんまるさん
 何でSXをハブに繋ぐと認識しないんでしょうね?
うちもSXを繋げていますが1.1のハブでも2.0のハブでも認識してくれます。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://utablo.asablo.jp/blog/2008/07/06/3613340/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。