爲什麼USB Audio會產生jitter或數據丟失

1.  Host太繁忙,導致Host USB的數據包未來得及在指定時間(比如1ms)送到USB buffer處。

2. Device端的USB(PHY)和audio clock(I2S, LRCLK)的clock無法精確同步,比如full speed的usb的

clock爲12M, 當audio的採樣率爲44.1khz時,USB的clock就無法整除Audio的clock, 這樣USB就無法

傳送和audio 碼流相匹配的數據量。

3. Device端的系統過於繁忙,使得USB收到的數據無法及時的通過DMA傳到I2S controller的FIFO裏,

或無法及時通知ALSA數據已經收到。

4. 如果audio的clock需要改變。


從根本上解決USB audio數據丟失的問題,就必須採用Async方式,設備端的audio clock不改變,用feedback

的方式改變host發送數據的快慢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章