AMR音頻編碼器概述及文件格式分析


全稱Adaptive Multi-Rate,自適應多速率編碼,主要用於移動設備的音頻,壓縮比比較大,但相對其他的壓縮格式質量比較差,由於多用於人聲,通話,效果還是很不錯的。
一、分類
1. AMR: 又稱爲AMR-NB,相對於下面的WB而言,
語音帶寬範圍:3003400Hz
8KHz抽樣
2. AMR-WB:AMR WideBand
      語音帶寬範圍: 507000Hz
      16KHz抽樣
“AMR-WB”全稱爲“Adaptive Multi-rate - Wideband”,即自適應多速率寬帶編碼,採樣頻率爲16kHz,是一種同時被國際標準化組織ITU-T3GPP採用的寬帶語音編碼標準,也稱 G722.2標準。AMR-WB提供語音帶寬範圍達到507000Hz,用戶可主觀感受到話音比以前更加自然、舒適和易於分辨。
  與之作比較,現在GSM用的EFR(Enhenced Full Rate,增強型全速率編碼)採樣頻率爲8kHz,語音帶寬爲2003400Hz
  AMR-WB應用於窄帶GSM(全速信道16kGMSK)的優勢在於其可採用從6.6kb/s, 8.85kb/s12.65kb/s三種編碼,當網絡繁忙時C/I惡化,編碼器可以自動調整編碼模式,從而增強QoS。在這種應用中,AMR-WB抗擾度優於AMR-NB
AMR-WB應用於EDGE3G可充分體現其優勢。足夠的傳輸帶寬保證AMR-WB可採用從6.6kb/s23.85kb/s共九種編碼,語音質量超越PSTN固定電話。
 
二、編碼方式
1. AMR-NB:
AMR 一共有16種編碼方式, 0-7對應8種不同的編碼方式, 8-15 用於噪音或者保留用。
Frame Type
Mode Indication
Mode Request
Frame content (AMR mode, comfort noise, or other)
0
0
0
AMR 4,75 kbit/s
1
1
1
AMR 5,15 kbit/s
2
2
2
AMR 5,90 kbit/s
3
3
3
AMR 6,70 kbit/s (PDC-EFR)
4
4
4
AMR 7,40 kbit/s (TDMA-EFR)
5
5
5
AMR 7,95 kbit/s
6
6
6
AMR 10,2 kbit/s
7
7
7
AMR 12,2 kbit/s (GSM-EFR)
8
-
-
AMR SID
9
-
-
GSM-EFR SID
10
-
-
TDMA-EFR SID
11
-
-
PDC-EFR SID
12-14
-
-
For future use
15
-
-
No Data (No transmission/No reception)
 
2. AMR-WB:
Frame Type Index
Mode Indication
Mode Request
Frame content (AMR-WB mode, comfort noise, or other)
0
0
0
AMR-WB 6.60 kbit/s
1
1
1
AMR-WB 8.85 kbit/s
2
2
2
AMR-WB 12.65 kbit/s
3
3
3
AMR-WB 14.25 kbit/s
4
4
4
AMR-WB 15.85 kbit/s
5
5
5
AMR-WB 18.25 kbit/s
6
6
6
AMR-WB 19.85 kbit/s
7
7
7
AMR-WB 23.05 kbit/s
8
8
8
AMR-WB 23.85 kbit/s
9
-
-
AMR-WB SID (Comfort Noise Frame)
10-13
-
-
For future use
14
-
-
speech lost
15
-
-
No Data (No transmission/No reception)
 
-
-
 
 
二、AMR 幀格式:
AMR 有兩種類型的幀格式:AMR IF1  AMR IF2
1. AMR IF1:
  IF1 的幀格式如下圖所示:
FrameType, Mode Indication, Mode Request 對應上面兩個表格裏的數。從上面的表格裏我們可以看出,這三個域的值是相同的。所以在IF2中省略了Mode Indication, Mode Request 兩個域。
Frame Quality Indicator: 0表示bad frame 或者corrupted frame 1表示 good frame
每一幀的數據有分爲三個部分:Class A/B/C
Class A:一幀中最敏感、最重要的數據。一旦這一部份數據有損壞,整個幀就無法解碼,就損壞了。所以,一般在無線傳輸的時候要使用各種冗餘的方式對這部分數據加以保護。
Class B:相對於Class A不那麼重要的數據。
Class C:比Class B還不重要的數據。
 
2. AMR IF2:
  IF2的幀格式如下圖所示:
相對於IF1, IF2 省去了Frame Quality Indicator, Mode Indication, Mode Request CRC 校驗。但是增加了bit 填充。因爲AMR幀中數據的長度並不是字節(8bit)的整數倍,所以在有些幀的末尾需要增加bit填充,以使整個幀的長度達到字節的整數倍。
有關IF2幀中各個域的信息請參考下面的幀大小節的表格。
 
三、幀大小
1. AMR-NB
Frame Type Index
Frame content
Number of bits in Frame Type
Number of Bits inAMR Core Frame
Number of Bits in 
Bit Stuffing
Number of octets (N)
0
AMR 4,75 
4
95
5
13
1
AMR 5,15
4
103
5
14
2
AMR 5,90
4
118
6
16
3
AMR 6,70
4
134
6
18
4
AMR 7,40
4
148
0
19
5
AMR 7,95
4
159
5
21
6
AMR 10,2
4
204
0
26
7
AMR 12,2
4
244
0
31
8
AMR SID
4
39
5
6
9
GSM-EFR SID
4
43
1
6
10
TDMA-EFR SID
4
38
6
6
11
PDC-EFR SID
4
37
7
6
12-14
For future use
-
-
-
-
15
No Data
4
0
4
1
 
Number of bits in Classes A, B, and C for each AMR codec mode
Frame Type
AMR
codec mode
Total number of bits
Class A
Class B
Class C
0
4,75
95
42
53
0
1
5,15
103
49
54
0
2
5,90
118
55
63
0
3
6,70
134
58
76
0
4
7,40
148
61
87
0
5
7,95
159
75
84
0
6
10,2
204
65
99
40
7
12,2
244
81
103
60
 
2. AMR-WB:
Composition of AMR-WB IF2 Frames for all Frame Types
四、PCM16AMR之間的轉換
Amr 
一幀爲20毫秒
AMR 4.75Kbits/s爲例:

每秒產生的聲音位數 = 4750bits/s
20ms幀佔用的位數 = 4750bits/s / 50frames/s = 95bits
20ms幀佔用的字節數 = 95bits / 8bits/byte = 11.875bytes - 圓整到12字節,不足的補0
加上一個字節的幀頭,所以,20ms一幀的AMR: 12-bytes + 1-byte = 13-bytes

相反,轉換回來就成了
13-bytes * 50frames/s * 8bits/byte = 5200bits/s

注意,這裏兩個數值並不對應,是由於圓整的原因
案例:http://pan.baidu.com/share/link?shareid=247705&uk=2720497303
http://pan.baidu.com/share/link?shareid=247708&uk=2720497303
http://pan.baidu.com/share/link?shareid=247709&uk=2720497303
http://pan.baidu.com/share/link?shareid=247707&uk=2720497303
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章