UAC 传输速度

欢迎加入字节流官方QQ群:952873936或联系站长进行技术交流。

传统3.5mm模拟耳机逐步被USB数字耳机代替。采用USB协议进行音频播放使用USB Audio Class协议(简称UAC).

UAC2.0由于支持USB High Speed,从而天生带有高带宽、低延时的优势。这些优势转化为对于Hi-Resolution Auido的支持。

  • UAC1.0最高只支持到双声道192Khz 16b的音源:(2 x 192 x 16) / 1024 = 6Mb = 6Mb/8 = 0.75MB
  • UAC2.0可以最高支持15声道384Khz 32b的音源:(15 x 384K x 32) /1024 = 180Mb = 18Mb/8 = 3MB

UAC同步/等时传输速度 - UAC-USB Isochronous Endpoint

  • UAC1 最高速度: ≤8.2Mb/s
  • UAC2 标准速度: ≤65.5Mb/s 最高速度: ≤196.6Mb/s

UAC2.0支持更多的设备描述,增加clock domain、clock description、clock control支持, 添加sampling rate converter unit支持,UAC2.0协议文档:http://dl.project-voodoo.org/usb-audio-spec/USB%20Audio%20v2.0/Audio20%20final.pdf

Linux中的UAC支持

在kernel/msm-3.18/sound/usb/mixer.c

/*support for UAC2 effect units */

可以看到驱动代码已经支持UAC2.0了,就看有没有支持UAC2.0的codec做出来了。

采样率48000,位深度 16bit ,通道数2,设备1秒内可以采集到多少音频数据?

48000Hz x 16b x 2ch = 1536000(bit)
(48000Hz x 16b x 2) / 8 = 192000 (Byte) = 192(KB)
192(KB) / 1024 = 0.1875(MB)
设备在一秒内可以采集192KByte数据.


如果16000hz 16bit,计算UAC1.0和UAC2.0理论上最多支持多少通道?

UAC1.0 high speed支持通道数:8.2Mb / (16000 x 16 / 1024 / 1024) = 8.2Mb / 0.25Mb = 32.8 = 32(理论值)
UAC2.0 full speed支持通道数:65.5Mb / (16000 x 16 / 1024 / 1024) = 65.5Mb / 0.25Mb = 262(理论值)
UAC2.0 high speed支持通道数:196.6Mb / (16000 x 16 / 1024 / 1024) = 196.6Mb / 0.25Mb = 786(理论值)

微信公众号
字节流公众号  字节流QQ群:952873936
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!