全稱Adaptive Multi-Rate,自適應多速率編碼,主要用於移動設備的音頻,壓縮比比較大,但相對其餘的壓縮格式質量比較差,因爲多用於人聲,通話,效果仍是很不錯的。 網絡 1、分類 ide 1. AMR: 又稱爲AMR-NB,相對於下面的WB而言, 編碼 語音帶寬範圍:300-3400Hz, spa 8KHz抽樣 code 2. AMR-WB:AMR WideBand, orm 語音帶寬範圍: 50-7000Hz ip 16KHz 抽樣 ci 「AMR-WB」全稱爲「Adaptive Multi-rate - Wideband」,即「自適應多速率寬帶編碼」,採樣頻率爲16kHz,是一種同時被國際標準化組織ITU-T和3GPP採用的寬帶語音編碼標準,也稱 爲G722.2標準。AMR-WB提供語音帶寬範圍達到50~7000Hz,用戶可主觀感覺到話音比之前更加天然、溫馨和易於分辨。 it 與之做比較,如今GSM用的EFR(Enhenced Full Rate,加強型全速率編碼)採樣頻率爲8kHz,語音帶寬爲200~3400Hz。 io 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固定電話。
2、編碼方式 1. AMR-NB: AMR 一共有16種編碼方式, 0-7對應8種不一樣的編碼方式, 8-15 用於噪音或者保留用。
2. AMR-WB:
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
Number of bits in Classes A, B, and C for each AMR codec mode
2. AMR-WB: Composition of AMR-WB IF2 Frames for all Frame Types
|
4、PCM16和AMR之間的轉換
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 number和32bit channle description域。
AMR-NB 的magic number:"#!AMR_MC1.0\n"
(or 0x2321414d525F4D43312E300a in hexadecimal).
AMR-WB的magic number:"#!AMR-WB_MC1.0\n"
(or 0x2321414d522d57425F4D43312E300a in hexadecimal).
32bit的channel description域的定義以下:
其中 reserved bits必須爲0, CHAN:表示當前文件中含有幾個聲道。
幀頭的格式:
幀頭的格式如圖2 所示, 它佔1個字節(8個bit)
P爲填充爲設置爲0
FT爲編碼模式, 即上面提到的16中編碼模式。
Q爲幀質量指示器,若是爲0代表幀被損壞。
圖3 列舉了AMR-NB 5.9Kbit的一個幀的格式,
對於5.9kbit一幀的有118bit的數據,15*8=120=118+2, 因此在最後有2個bit的填充位。
參考文獻:
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而言, 語音帶寬範圍: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固定電話。
2、編碼方式 1. AMR-NB: AMR 一共有16種編碼方式, 0-7對應8種不一樣的編碼方式, 8-15 用於噪音或者保留用。
2. AMR-WB:
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
Number of bits in Classes A, B, and C for each AMR codec mode
2. AMR-WB: Composition of AMR-WB IF2 Frames for all Frame Types
|
4、PCM16和AMR之間的轉換
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 number和32bit channle description域。
AMR-NB 的magic number:"#!AMR_MC1.0\n"
(or 0x2321414d525F4D43312E300a in hexadecimal).
AMR-WB的magic number:"#!AMR-WB_MC1.0\n"
(or 0x2321414d522d57425F4D43312E300a in hexadecimal).
32bit的channel description域的定義以下:
其中 reserved bits必須爲0, CHAN:表示當前文件中含有幾個聲道。
幀頭的格式:
幀頭的格式如圖2 所示, 它佔1個字節(8個bit)
P爲填充爲設置爲0
FT爲編碼模式, 即上面提到的16中編碼模式。
Q爲幀質量指示器,若是爲0代表幀被損壞。
圖3 列舉了AMR-NB 5.9Kbit的一個幀的格式,
對於5.9kbit一幀的有118bit的數據,15*8=120=118+2, 因此在最後有2個bit的填充位。
參考文獻:
RFC3267 RTP Payload Format for AMR and AMR-WB
3GPP TS 26.201 V6.0.0
3GPP TS 26.101 V6.0.0