音频的帧、采样率、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

 

参考文档:

               

                 (视频转换(压缩)时比特率和分辨率对照表)