アカウント名:
パスワード:
Isochronous転送はエラー訂正を行わない。Bulk転送ではエラー訂正が行われる。Bulk転送の方が正確なデータが送られるのだから音が良くなるのは当然。
安いプリアンプなら多少波形が乱れたところで元の音質が悪いから関係ないけど、高いプリアンプなら正確な波形を入力することで音が向上するという単純な話。
# と、思うんだけど、ドライバーの提供会社が電源云々言っていると言うことは# 俺の理解が間違ってるんだろうか……。
USBアナライザ等で信号を見れば分かるが、滅多にデータ化けは発生しない。そもそもエラー検出が16bitCRCなんて頼り無い方式だから、派手にノイズが乗る環境だとバルク転送でもエラーを見落としてデータが化ける。
現実にはデータが化けることは滅多に無いから、素のエラー率は十分に低く、通常の音楽再生程度だと、アイソクロナスでも誤り無く転送出来ているのが普通。
で、バルクとアイソクロナスで違うのは、バルク転送だと自動的にフロー制御が付与される事。結果、アイソクロナスだと正確に1ms間隔でデータが送られるので、電源ノイズの周期性が高くなる。バルク転送だと、受け手側のバッファが満杯だとNAKを返してデータを受け取らないから、データ転送にランダム性が発生し、電源ノイズのスペクトルが広がる。ノイズの量的にはバルク転送の方が不利な筈だけど、周期性が低いから聴覚的には良い結果になるのかも。
以前から気になってたけど、その「正確に1ms間隔」ってどのくらい正確なんでしょうか。USBのチップでやってれば確実だけど、ソフトウェア制御が絡むと怪しそう。
Full Speed で 1ms, High Speed で 125us の周期的なパケット送出は USB の Host Controller のハードウエアでスケジュールしています。このスケジューラーは 1ms または 125us 期間のうち、何処かの時刻でパケット送出を組み入れます。大抵は SOF(Start Of Frame)の直後辺りに集中します。
Host Controller driver と UAC(USB Audio Class) driver は 1ms あるいは 125us でパケットを送出しても underflow を起こさないように Host Controller にデータを供給する必要があります。大抵は Link List, Scatter/Gather, FIFO に依るバッファ構造が有るので unde
定間隔で出すお仕事はチップ(USBホストコントローラー)がやるよ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
電源とか関係なく (スコア:0)
Isochronous転送はエラー訂正を行わない。Bulk転送ではエラー訂正が行われる。
Bulk転送の方が正確なデータが送られるのだから音が良くなるのは当然。
安いプリアンプなら多少波形が乱れたところで元の音質が悪いから関係ないけど、
高いプリアンプなら正確な波形を入力することで音が向上するという単純な話。
# と、思うんだけど、ドライバーの提供会社が電源云々言っていると言うことは
# 俺の理解が間違ってるんだろうか……。
Re: (スコア:3, 参考になる)
USBアナライザ等で信号を見れば分かるが、滅多にデータ化けは発生しない。
そもそもエラー検出が16bitCRCなんて頼り無い方式だから、派手にノイズが乗る環境だとバルク転送でもエラーを見落としてデータが化ける。
現実にはデータが化けることは滅多に無いから、素のエラー率は十分に低く、通常の音楽再生程度だと、アイソクロナスでも誤り無く転送出来ているのが普通。
で、バルクとアイソクロナスで違うのは、バルク転送だと自動的にフロー制御が付与される事。
結果、アイソクロナスだと正確に1ms間隔でデータが送られるので、電源ノイズの周期性が高くなる。
バルク転送だと、受け手側のバッファが満杯だとNAKを返してデータを受け取らないから、データ転送にランダム性が発生し、電源ノイズのスペクトルが広がる。
ノイズの量的にはバルク転送の方が不利な筈だけど、周期性が低いから聴覚的には良い結果になるのかも。
-- Buy It When You Found It --
Re:電源とか関係なく (スコア:1)
以前から気になってたけど、その「正確に1ms間隔」ってどのくらい正確なんでしょうか。
USBのチップでやってれば確実だけど、ソフトウェア制御が絡むと怪しそう。
Re: (スコア:0)
Full Speed で 1ms, High Speed で 125us の周期的なパケット送出は USB の Host Controller のハードウエアでスケジュールしています。このスケジューラーは 1ms または 125us 期間のうち、何処かの時刻でパケット送出を組み入れます。大抵は SOF(Start Of Frame)の直後辺りに集中します。
Host Controller driver と UAC(USB Audio Class) driver は 1ms あるいは 125us でパケットを送出しても underflow を起こさないように Host Controller にデータを供給する必要があります。大抵は Link List, Scatter/Gather, FIFO に依るバッファ構造が有るので unde
Re: (スコア:0)
定間隔で出すお仕事はチップ(USBホストコントローラー)がやるよ