音频的帧、采样率、Hz、比特率
下面的概念非官方,只是自己的理解
1.采样率:
表示每秒采集多少次声音数据,以秒为单位,大部分会将其转换为ms(毫秒)计算。
eg.44100Hz(秒)
2.位深度:
表示每次采集声音数据的大小,单位为位(bit)。
eg. 在Android中的AudioFormat.ENCODING_PCM_16BIT表示一次采集16bit。
3.通道数:
音频的声道数
1个采样点只针对一个声道,而实际上可能会有一或多个声道。
总结一:
由1,2,3概念得:
一次的采集数据大小*一秒的采集次数*通道数=采样率*位深度*通道数=一秒的采集数据总数(bit)
4.比特率(码率)
每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,传送的数据越大,音质越好.
公式:
比特率 =采样率 x 采用位数 x声道数.
1kbps=1000bit/s=1000/8(B/s).
1Mbps=1024Kbps=1024*1024bit/s
注意:大写K----1024,小写k------1000
例题1:
已知音频码率为m(单位kbps),视频码率为v(单位B/s),传输时间为t(单位s),根据上面的公式,计算输出文件大小(单位 M)???
统一音视频码率的单位:
m2=m*1000/8(B/s)
文件大小=音频的大小+视频大小=(音频码率+视频码率)*t=(m2+v)*t(单位B)=(m*1000/8+v)*t/1024/1024(单位M)
5.帧:
对于声音来说,播放一下的单位,对视频来说,就是一个画面。在目前的声卡驱动程序中,其内部缓冲区也是采用Frame作. 为单位来分配和管理的。
1单位的Frame=1个采样点的字节数×声道数
公式:
音频帧的播放时间=采集一帧的时间=一个AAC帧对应的采样样本的个数/采样频率
大前提:采样率为44100Hz,位深度为8bit,通道数1个。
例题1:
构建一个ACC帧需要1024个sample的采样数据,计算该帧的播放时间???
一个sample=采集一次
1024/44100=0.02322s=23.22ms(四舍五入)
例题2:
mp3 每帧均为1152个字节,采样率为44100Hz,计算该帧的播放时间???
已知:
由大前提可知:一次的采样大小=位深度*通道数=8bit=1byte(字节)
所以
播放时间*采样率*一次的采样大小=1152
==》播放时间=1152/采样率*1=1152/44100=0.02608s(四舍五入)=26.08ms
由前5个概念,我们可以直到帧率(f)与码率(m)的关系:
RGB24每帧的大小:size=width×heigth×3 Byte
RGB32每帧的大小是:size=width×heigth×4 Byte
YUV420每帧的大小是:size=width×heigth×1.5 Byte
m=f*size*8 bps
参考文档:
https://www.cnblogs.com/renhui/p/7463287.html
https://www.cnblogs.com/cai1432452416/p/11828008.html(视频转换(压缩)时比特率和分辨率对照表)