【音视频】AMR-WB音频在RTP协议和文件存储中的格式


AMR-WB音频在RTP协议和文件存储中的格式

1. 什么是AMR-WB

​ 自适应多速率宽带(AMR-WB)是一项专利宽带语音音频编码标准,该标准基于自适应多速率编码而开发。 与AMR-NB(NarrowBand)相比,AMR-NB的音频带宽通常为300-3400Hz。但是AMR-WB的带宽达到了50-7000 Hz。从而提高了语音质量。 AMR-WB由诺基亚和VoiceAge开发。并且在 2000 年 12 月,3GPP选择自适应多速率宽带语音编码 AMR-WB算法作为第三代移动通信(3G)系统使用的语音编解码算法。

2. 什么是RTP

​ RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议)。RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。

3. AMR-WB音频如何在RTP中存储

​ AMR-WB共有两种模式,分别为节省带宽模式和字节对齐模式。两种模式的包结构有所不同。

3.1. 节省带宽模式

3.1.1. 单通道单帧场景

16137202048073.png

CMR(codec mode request)占4bits,模式请求字段。CMR=15代表接收方不需要对数据进行编码保留原样即可。

The table of contents (ToC)占6bits,内容信息表。具体格式如下:

16137202124716.png

​ F为1代表此帧不是包中的最后一帧,后面还有其他帧。F为0代表此帧为最后一帧,单通道单帧场景下只有一个TOC,TOC中的F必定为0。

​ FT代表帧类型,根据RTP类型的不同,帧类型所对应的表也有所不同。上面的FT=4代表AMR-NB的帧类型为4,根据对应表为7.4kbits/s 。如果此包为20ms,那么可以计算7.4 * 1000 / 50 = 148,正好为SpeechData的长度。

​ Q代表此帧是否为好帧,1为好帧,0为坏帧。有时需要根据具体场景,决定是否需要保留坏帧。

16137202273453.png

3.1.2. 单通道多帧场景

16137202351830.png

​ 此包为AMR-WB的单通道多帧数据包。CMR为1,要求接收方的编码器需要将编码模式更改为AMR-WB 8.85 kbps。

16137202204958.png

​ 此包一共包括4帧。其中第一帧的TOC-FT=0,代表此帧为AMR-WB 6.60kbit/s。第二帧的TOC-FT=9,代表此帧为AMR-WB SID。第三帧的TOC-FT=15,代表此帧为No Data。第四帧的TOC-FT=1,代表此帧为AMR-WB 8.85kbit/s。前三帧的TOC-F均为1,最后一帧的TOC-F为0,代表第四帧为包内的最后一帧。四帧的Q值均为0,证明没有坏帧。

​ 此包的Speech Data共有四帧四组,其中一组没有长度:

​ 1. 第一组长度为 6.60 * 1000 / 50 = 132 bit。

​ 2. 第二组的长度根据 3GPP TS 26.201 文档得知SID长度为40 bit。

​ 3. 第三帧因为FT = 15,代表No Data。故为0。

​ 4. 第四组长度为 8.85 * 1000 / 50 = 177 bit。

3.1. 字节对齐模式

​ 字节对齐模式的整体格式与节省带宽相同,需要注意的是CMR、TOC、Speech Data各段长度需要按照字节对齐即可。此处举一个单通道多帧的例子:

16137202481799.png

可以看到CMR,TOC和Speech Data之后都有按照字节对齐。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM