幀、採樣率、Hz、比特率

                                  音頻的幀、採樣率、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視頻轉換(壓縮)時比特率和分辨率對照表

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