传统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-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
在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(理论值)
相关文章
- 02-12重绘控件中OnPaint、OnDraw、OnDrawItem和DrawItem的区别
- 02-12id 和 instancetype 方法的区别
- 02-12简述id,instancetype和__kindof的区别
- 02-12conn.closed()和conn == null的区别
- 02-12SLC、MLC和TLC三者的区别
- 02-12crontab使用以及/etc/crontab文件和crontab -e命令区别
- 02-12dts中memreserve和reserved-memory的区别 (转)
- 02-12python is和==的区别
- 02-12ElasticStack系列之十九 & bulk时 index 和 create 的区别
- 02-12为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?