AMR音频编码器概述及文件格式分析(1)

全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。
一、分类
1. AMR: 又称为AMR-NB,相对于下面的WB而言,
语音带宽范围:300-3400Hz,
8KHz抽样
2. AMR-WB:AMR WideBand,
语音带宽范围: 50-7000Hz
16KHz 抽样
“AMR-WB”全称为“Adaptive Multi-rate -   Wideband”,即“自适应多速率宽带编码”,采样频率为16kHz,是一种同时被国际标准化组织ITU-T和3GPP采用的宽带语音编码标准,也称 为G722.2标准。AMR-WB提供语音带宽范围达到50~7000Hz,用户可主观感受到话音比以前更加自然、舒适和易于分辨。
与之作比较,现在GSM用的EFR(Enhenced Full  Rate,增强型全速率编码)采样频率为8kHz,语音带宽为200~3400Hz。
AMR-WB应用于窄带GSM(全速信道16k,GMSK)的优势在于其可采用从6.6kb/s,   8.85kb/s和12.65kb/s三种编码,当网络繁忙时C/I恶化,编码器可以自动调整编码模式,从而增强QoS。在这种应用中,AMR-WB抗扰 度优于AMR-NB。
AMR-WB应用于EDGE、3G可充分体现其优势。足够的传输带宽保证AMR-WB可采用从6.6kb/s到23.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 in AMR 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
Frame Type Index
Frame content
Number of bits in Frame Type
Number of bits in Frame Quality  Indicator
Number of Bits in AMR-WB Core  Frame
Number of Bits in Bit Stuffing
Number of octets (N)
0
AMR-WB 6.60 kbit/s
4
1
132
7
18
1
AMR-WB 8.85 kbit/s
4
1
177
2
23
2
AMR-WB 12.65 kbit/s
4
1
253
6
33
3
AMR-WB 14.25 kbit/s
4
1
285
6
37
4
AMR-WB 15.85 kbit/s
4
1
317
6
41
5
AMR-WB 18.25 kbit/s
4
1
365
6
47
6
AMR-WB 19.85 kbit/s
4
1
397
6
51
7
AMR-WB 23.05 kbit/s
4
1
461
6
59
8
AMR-WB 23.85 kbit/s
4
1
477
6
61
9
AMR-WB SID (Comfort Noise Frame)
4
1
40
3
6
10-13
For future use
-
-
-
-
-
14
speech lost
4
1
0
3
1
15
No Data (No transmission/No  reception)
4
1
0
3
1
Frame  Type

AMR-WB
            codec  mode

Total number of  bits
Class  A
Class  B
Class  C
0
6.60
132
54
78
0
1
8.85
177
64
113
0
2
12.65
253
72
181
0
3
14.25
285
72
213
0
4
15.85
317
72
245
0
5
18.25
365
72
293
0
6
19.85
397
72
325
0
7
23.05
461
72
389
0
8
23.85
477
72
405
0

你可能感兴趣的:(c,网络,Class,each,电话,Codec)