amr nb和wb的帧结构百锐科技

    技术2022-05-19  19

    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 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

    AMRcodec 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-WBcodec 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

     

     

    四、PCM16AMR之间的转换Amr 一帧为20毫秒AMR 4.75Kbits/s为例:每秒产生的声音位数 = 4750bits/s20ms帧占用的位数 = 4750bits/s / 50frames/s = 95bits20ms帧占用的字节数 = 95bits / 8bits/byte = 11.875bytes - 圆整到12字节,不足的补0加上一个字节的帧头,所以,20ms一帧的AMR: 12-bytes + 1-byte = 13-bytes相反,转换回来就成了13-bytes * 50frames/s * 8bits/byte = 5200bits/s注意,这里两个数值并不对应,是由于圆整的原因

     

    五、 AMR 文件的存储格式(RFC 3267):

    AMR IF1, IF2定义了 AMR的帧格式, 用于无线传输用。 RFC 3267定义了把AMR数据存成文件的文件格式。

    AMR的文件格式如下图1所示:

    它包含一个文件头,然后就是一帧一帧的AMR数据了。

     

    <!--[if !supportLists]-->1.       <!--[endif]-->文件头格式:

     AMR 文件支持单声道和多声道。单声道和多声道的文件头是不同的。

     单声道:

     AMR-NB文件头: "#!AMR/n" (or 0x2321414d520a in hexadecimal)(引号内的部分)

     AMR-WB 文件头:"#!AMR-WB/n" (or 0x2321414d522d57420a in hexadecimal).(引号内)

    多声道:

    多声道的文件头包含一个magic number32bit channle description域。

    AMR-NB magic number"#!AMR_MC1.0/n"

    (or 0x2321414d525F4D43312E300a in hexadecimal).

    AMR-WBmagic number"#!AMR-WB_MC1.0/n"

                             (or 0x2321414d522d57425F4D43312E300a in hexadecimal).

    32bitchannel description域的定义如下:

    其中 reserved bits必须为0 CHAN:表示当前文件中含有几个声道。

     

    帧头的格式:

    帧头的格式如图2 所示, 它占1个字节(8bit

    P为填充为设置为0

    FT为编码模式, 即上面提到的16中编码模式。Q为帧质量指示器,如果为0表明帧被损坏。

     

    3 列举了AMR-NB 5.9Kbit的一个帧的格式,

    对于5.9kbit一帧的有118bit的数据,15*8=120=118+2, 所以在最后有2bit的填充位。

     

     

    参考文献:

    RFC3267 RTP Payload Format for AMR and AMR-WB

    3GPP TS 26.201 V6.0.0

    3GPP TS 26.101 V6.0.0


    最新回复(0)