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

 

全稱Adaptive Multi-Rate,自適應多速率編碼,主要用於移動設備的音頻,壓縮比比較大,但相對其餘的壓縮格式質量比較差,因爲多用於人聲,通話,效果仍是很不錯的。 網絡

1、分類 ide

1. AMR: 又稱爲AMR-NB,相對於下面的WB而言, 編碼

語音帶寬範圍:3003400Hz spa

8KHz抽樣 code

2. AMR-WB:AMR WideBand orm

語音帶寬範圍: 507000Hz ip

16KHz 抽樣 ci

「AMR-WB」全稱爲「Adaptive Multi-rate - Wideband」,即自適應多速率寬帶編碼,採樣頻率爲16kHz,是一種同時被國際標準化組織ITU-T3GPP採用的寬帶語音編碼標準,也稱 爲G722.2標準。AMR-WB提供語音帶寬範圍達到507000Hz,用戶可主觀感覺到話音比之前更加天然、溫馨和易於分辨。 it

與之做比較,如今GSM用的EFR(Enhenced Full Rate,加強型全速率編碼)採樣頻率爲8kHz,語音帶寬爲2003400Hz io

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固定電話。

 

2、編碼方式

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)

 

-

-

 

 

2、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幀中各個域的信息請參考下面的幀大小節的表格。

 

3、幀大小

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

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

注意,這裏兩個數值並不對應,是因爲圓整的緣由

 

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

全稱Adaptive Multi-Rate,自適應多速率編碼,主要用於移動設備的音頻,壓縮比比較大,但相對其餘的壓縮格式質量比較差,因爲多用於人聲,通話,效果仍是很不錯的。

1、分類

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固定電話。

 

2、編碼方式

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)

 

-

-

 

 

2、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幀中各個域的信息請參考下面的幀大小節的表格。

 

3、幀大小

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

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

注意,這裏兩個數值並不對應,是因爲圓整的緣由

 

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

相關文章
相關標籤/搜索