AMR音頻結構

  1. 編碼方式

    AMR有多種編碼方式,每種編碼方式的採樣頻率不同:

     

     

    規格

    比特率(kbps

    音頻幀大小(字節)

    幀頭(字節)

    FT

     0 

     AMR 4.75 

     

     13

     04 00000100 

     0000 

     1

     AMR 5.15

     

     14

     0C 00001100

     0001

     2

     AMR 5.9

     

     16

     14 00010100

     0010

     3

     AMR 6.7

     

     18

     1C 00011100

     0011

     4

     AMR 7.4

     

     20

     24 00100100

     0100

     5

     AMR 7.95

     

     21

     2C 00101100

     0101

     6

     AMR 10.2

     

     27

     34 00110100

     0110

     7

     AMR 12.2

     

     32

     3C 00111100

     0111

     

    說明:

    l         比特率是指將數字聲音由模擬格式轉化成數字格式的採樣率,採樣率越高,還原後的音質就越好。

     

    l         比特率值與現實音頻對照:

    16kbps=電話音質

    24kbps=增加電話音質、短波廣播、長波廣播、歐洲制式中波廣播

    40kbps=美國製式中波廣播

    56kbps=話音

    64kbps=增加話音(手機鈴聲最佳比特率設定值、手機單聲道MP3播放器最佳設定值)

    112kbps=FM調頻立體聲廣播

    128kbps=磁帶(手機立體聲MP3播放器最佳設定值、低檔MP3播放器最佳設定值)

    160kbps=HIFI高保真(中高檔MP3播放器最佳設定值)

    192kbps=CD(高檔MP3播放器最佳設定值)

    256kbps=Studio音樂工作室(音樂發燒友適用)

     

    l         音頻數據幀大小的計算:

    amr 一幀對應20ms,那麼一秒有50幀的音頻數據。由於比特率不同,每幀的數據大小也不同。

    如果比特率是12.2kbs,那麼每秒採樣的音頻數據位數爲:

    12200 / 50 = 244bit = 30.5byte,取整爲31字節。

    取整要四捨五入。

    再加上一個字節的幀頭,這樣數據幀的大小爲32字節。


  2. AMR文件結構

    下面是一個AMR文件示範:

    從圖中可以看出,所有AMR文件頭標誌是6個字節。(最後一個字節是換行符“/n”)

    後面就緊跟的是音頻幀。這個文件是每幀32字節。

     

    文件頭

    語音幀 1

    語音幀 2

     


  3. AMR幀頭格式分析

    AMR語音幀格式爲幀頭和語音數據組成。

    幀頭

    語音數據

     

    AMR語音幀頭佔1個字節,如下圖所示:

    0

    1

    2

    3

    4

    5

    6

    7

    P

    FT

    Q

    P

    P

    0

     

     

     

     

    0

    0

    0

     

    其中:

    P = 0;

    FT:Frame Type,對應不同編碼模式。(參見“2. AMR編碼方式”中表格中的說明)

    Q:幀質量指示器,0:表示爲壞幀。

    後面的P補0。


  4. 異常幀分析

    下圖是一個出現異常幀的示例:(zbc1217.amr)

     

    從上圖可以看見,本amr音頻幀頭都是0x3C,但是在0x000091e6處,幀頭字節爲0x44。與0x3C不一致。而在0x00009243處,才恢復到0x3C。

     

    對異常幀的簡單處理辦法是,遇到異常幀就跳過異常幀。後面的讀幀算法有描述。


  5. 參考資料

    l         rfc3267

    http://www.rfc-editor.org/rfc/rfc3267.txt

    http://ietfreport.isoc.org/rfc/PDF/rfc3267.pdf

    l         3GPP TS 26.104 V 6.1.0 (2004-03)

    http://www.3gpp.org/ftp/Specs/html-info/26104-CRs.htm

    l         3GPP AMR Floating-point Speech Codec

    http://www.3gpp.org/ftp/Specs/html-info/26104.htm

    l         “amr編程彙總”

    http://blog.csdn.net/windcao/archive/2006/01/04/570348.aspx

    l         關於AMR文件格式的解釋

    http://www.mcublog.com/blog/user1/11409/archives/2006/16832.html


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