AMR编码

背景

音频编码技术

  • 音频信号

    音频信号是指人耳可以听到的频率在 20Hz 到 20KHz 之间的声波信号。人的话音信号的频率在 300~3000Hz 之间,该频段的信号也被称为语音信号。我们广义上的音频信号包括了音乐、语音、风声、雨声、鸟叫声、机器声等[4]。

  • 音频编码技术应用背景

    音频信号是模拟信号,在数字化的通信系统中模拟信号是无法被传输的,模拟的音频信号首先要通过数字化,变成数字信号才能被传输。但是信号在数字化之后会使得数字信号的数据量巨大,海量的数据是不方便数据的存储和传输的。因为在通信网络中,带宽是宝贵而且昂贵的,为了降低传输或存储的费用,人们通常要对数字信号进行编码压缩,这样就能够降低数字信号在传输和存储上所花费的代价[5]。

  • 音频编码压缩算法

    根据音频信息自身的相关性和人耳对音频信息的听觉冗余度,人们研究出了很多种音频编码压缩算法。音频信息在编码技术中通常分成两类来处理,分别是语音和音乐,它们各自采用的技术有所差别。现代的音频编码技术研究的一个课题就是如何把语音和音乐的编码融合起来,使得对混合音频(音乐和语音的混合音频)的编码质量高。

语音编码

语音编码在技术上主要有三大类:参数编码、波形编码、混合编码

参数编码
  • 参数编码定义

    利用语音信息的数学模型,对语音信号的特征参数进行提取和编码。在解码的时候,按照语音信号的数学模型,根据特征参数重建语音信号。

    参数编码尽量使重建的语音信号的可懂度高,但是重建的信号波形与原始语音信号的波形相比,往往会差别很大。

  • 参数编码技术的优缺点

    • 优点:编码效率高,压缩比高。
    • 缺点:重建的语音信号自然度低、质量较差。
  • 应用场景

    这种编码技术适用于信道较窄的通讯系统。美国的军方标准 LPC-10,就是从语音信号中提取出来反射系数、增益、基音周期、清 /浊音标志等参数进行编码的。MPEG-4 标准中的 HVXC 声码器用的也是参数编码技术[6]。

波形编码
  • 波形编码定义

    将时域的信号通过采样,编码成数字信号。这种编码的编码方式一般在将模拟信号转变成数字信号的时候使用。波形编码的原理是,对时域的模拟信号进行采样,然后将采样信号的幅度进行量化处理,量化的过程也就是编码的过程。在解码端,将收到的数字信号通过解码和滤波后恢复成为模拟信号。

  • 波形编码技术的优缺点

    • 优点:编码话音质量高,抗干扰性能强。
    • 缺点:编码的码率高,不适用于移动通信系统中[7]。

我们最常使用的 PCM 编码就属于波形编码。

混合编码
  • 混合编码定义

    参数编码具有编码效率高,压缩比高的优点,但是参数编码重建的语音信号自然度低、质量较差。波形编码具有话音质量高的有点,但是波形编码的编码效率低。能否把这两种编码的优点结合在一起,而把它们的缺点摒除?混合编码就是为了解决这一问题而诞生的。

    混合编码克服了波形编码与参数编码的弱点,并结合了波形编码的高质量和参数编码的低数据率的优点[8]。

我们常见的 MPLPC、KPELPC、CELP 等都是属于混合编码。

音乐编码

与语音编码技术不同,音乐的编码技术主要有自适应变换编码(频域编码)、心理声学模型和熵编码等技术

自适应变换编码

音频信号属于时域信号,对时域信号的处理一般是通过某种正交变换,变换的频域上,信号在频域上的能量集中在某一个小范围内,对这个小范围的能量系数进行编码,可以达到压缩码率的目的。理论上的最佳量化很难达到,通常采用自适应比特分配和自适应量化技术来对频域数据进行量化。在 G.722.1 标准中用的是重叠调制变换(MLT),在 Dolby AC-3AAC 标准和 MPEG layer3 标准中使用了改进的余弦变换(MDCT),本质上它们都是余弦变换的改进。

参考:《AMR-WB+语音编解码技术的优化与实现_邵鹏》

AMR

AMR(Adaptive Multi-Rate,自适应变码率)语音编码算法由 3GPP 组织在 1998年被规范,3GPP 将其当成 3G 通信系统的基本语音编解码算法。它主要是作为移动终端设备使用的语音编解码算法技术方案。

AMR 语音编解码算法进过一系列的发展,经历了 AMR-NBAMR-WBAMR-WB+的进化过程。

注意:前期的AMR指的就是AMR-NB

AMR-NB

  • 提出AMR-NB算法是由第三代伙伴计划(3rd Generation Partnership Project,简称 3GPP)于 1999 年 8 月制订的基于码激励线性预测(Code Excited Linear Prediction,CELP)算法的语音压缩编码器标准。主要用于第三代移动通信 W-CDMA 系统中。

  • 编解码器使用代数码激励线性预测(ACELP)技术来压缩所有比特率的语音。该编解码器提供用于降低比特率的语音活动检测(VAD)和舒适噪声生成(CNG)算法,以及用于处理帧擦除的固有分组丢失隐藏(PLC)算法。该编解码器主要是为GSM和UMTS网络上的移动电话而开发的。

  • 重要参数:AMR-NB的语音带宽范围为:300~3400hz,采样频率为8kHz20ms/帧,160采样点/帧。

AMR-NB的编码方式,共分为16种,其中0~7对应不同编码方式,8~15用于噪音或者保留用。AMR-NB支持的8种速率模式为:

模式 | 比特率(kbit/s)
---|---
0 | 4.75
1 | 5.15
2 | 5.90
3 | 6.70
4 | 7.40
5 | 7.95
6 | 10.2
7 | 12.2

AMR-NB以更加智能的方式解决信源和信道编码的速率分配问题,根据无线信道和传输状况来自适应地选择一种编码模式进行传输,使得无线资源的配置与利用更加灵活有效。

  • AMR 的基本原理是:信道干扰增加时,采用低编码速率,同时增加更多的校错能力。通过 ACELP(Algebraic Code Excited Linear Prediction)技术,AMR 可以让不同手机系统和通信系统的编解码的技术之间能够保持兼容。

  • AMR 编码器的主要有三部分组成,LPC 分析、基音搜索、代数码书搜索。下面对它们进行简要的说明。

  • 突出的特点

    • 基于3GPP规范
    • 优化的ASM / C实施
    • 可重入实施
    • C可调用的API
    • 对以8 KHz采样的语音信号进行操作
    • 分别支持12.2,10.2,7.95,7.40,6.70,5.90,5.15和4.75 kbps的比特率。
    • 比特率可以在20ms帧边界配置。
    • 支持RAW,IF1,IF2和RFC比特流格式。
    • 支持集成的数据包丢失隐藏(PLC)算法。
    • 编解码器支持在初始时可配置的集成语音活动检测(VAD1和VAD2)算法。
    • TI平台上对xDM API的可选支持
    • 该实现支持Little-Endian和Big-Endian(在ARM和C64x +平台上)
  • 测试功能

    • 使用标准以及非标准测试向量的大型数据库测试位精确度。
    • 模块完全可以中断。C64x +的最大中断延迟为6000个周期。
    • 测试模块(C64x +和ARM)的任何非法内存访问。
    • 测试是否符合注册保存要求。
    • 测试输入缓冲区损坏。
    • 测试I / O缓冲区对齐要求。
    • 测试多实例实现。
    • 经过100%代码覆盖率测试。
    • 所有API参数的范围验证。
    • 测试数据包丢失情况,损失5%至25%。
    • 在OMAP3530(Cortex-A8)和DM6446 / DM6467(ARM926EJ-S)平台上验证的ARM实现。
    • TI C64x实现在Spectrum Digital C6416 DSK上得到验证。
    • TI C64x +实现在Spectrum Digital C6455 DSK上得到验证。
    • TI C55x实现在Spectrum Digital C5510 DSK上得到验证。
  • 可用平台

    • ARM9E,ARM11,Cortex-A8,Cortex-A9,TI C55x和TI C64x +。

AMR-WB

  • 提出:自适应多速率 - 宽带(AMR-WB)语音编码标准由3GPP在2002年开发。它也被ITU-T采用为G.722.2标准。该编解码器对以16KHz采样的语音信号进行操作,并产生比特率范围为6.6kbps至23.85kbps的压缩比特流。可以在20ms帧边界处改变比特率。用于各种比特率模式的编码方案基于代数码激励线性预测算法。它还具有集成的语音活动检测器和丢包隐藏算法。该编解码器的主要应用包括3G无线宽带电话应用和VoIP,如音频电话会议和流媒体。

  • 重要参数:AMR-WB的语音带宽范围为:50~7000Hz,采样频率为8kHz20ms/帧,320采样点/帧。

    模式 | 比特率(kbit/s)
    —|—
    0 | 6.60
    1 | 8.85
    2 | 12.65
    3 | 14.25
    4 | 15.85
    5 | 18.25
    6 | 19.85
    7 | 23.05
    8 | 23.85

  • 突出的特点

    • 基于3GPP规范。
    • 优化的ASM / C实施。
    • 可重入实施。
    • C可调用的API。
    • 对以16 KHz采样的语音信号进行操作。
    • 支持从6.6kbps到23.85kbps的比特率。
    • 比特率可以在20ms帧边界配置。
    • 支持RAW,IF1,IF2和RFC比特流格式。
    • 支持集成的语音活动检测(VAD)算法。
    • 支持集成的数据包丢失隐藏(PLC)算法。
    • 可选的xDM API支持
    • 该实现支持Little-Endian和Big-Endian(在ARM和C64x +平台上)。
  • 测试功能

    • 与标准测试向量精确比特。
    • 模块完全可以中断。C64x +的最大中断延迟为6000个周期。
    • 测试模块(C64x +和ARM)的任何非法内存访问。
    • 测试是否符合注册保存要求。
    • 测试输入缓冲区损坏。
    • 测试I / O缓冲区对齐要求。
    • 测试多实例实现。
    • 经过100%代码覆盖率测试。
    • 所有API参数的范围验证。
    • 测试数据包丢失情况,损失5%至25%
    • 在OMAP3530(Cortex-A8)和DM6446 / DM6467(ARM926EJ-S)平台上验证的ARM实现。
    • TI C64x +实现在Spectrum Digital C6455 DSK和DM6446 EVM上得到验证。
    • TI C55x实现在Spectrum Digital C5510 DSK上得到验证。
  • 可用平台

    • ARM9E,ARM11,Cortex-A8,Cortex-A9,TI C55x和TI C64x +。

G.722.2 AMR-WB与3GPP AMR-WB的编解码器相同。 相应的3GPP规范是用于语音编解码器的TS 26.190和用于声音活动检测器的TS 26.194。

AMR-WB+

  • 提出2004年3GPP 组织将 AMR-WB+编码算法公布。AMR-WB+作为 AMR-WB的升级版,使用了ACELP和TCX(Transform Coded Excitation)技术,能够提供高品质的语音和其它音频内容。

    ARM-WB+是 3GPP 组织最为看好的语音编解码算法标准,也被看作是未来移动通信技术上被使用的语音编解码算法标准。

  • 应用
    AMR-WB+能够对立体声音频信号进行编码,而且支持的采样频率更高,编码速率也更高。AMR-WB+使用了高效率的“参数立体声”(PS)技术,参数立体声技术能够以低码率传输高品质的立体声。

  • 重要参数:编解码器以8-48KHz采样率的语音和音频信号运行,并生成比特率范围为6-36 kbps的压缩比特流单声道和单声道信号分别为8到48 kbps。

它采用混合编码方法,结合了语音和音频编解码器的强度。与音频编解码器相比,它对语音和混合(语音和音频)内容类型输入信号的性能更好。在内部,编解码器以25.6KHz的标称采样频率工作。通过将内部采样频率从标称采样频率的0.5倍调整到1.5倍来实现逐步比特率和带宽缩放。相应地,它提供的音频带宽范围从6.4KHz(最低比特率)到19.2KHz(最高比特率)。

编码器具有用于在终端设备上实现的低复杂性选项,并且解码器具有固有的分组丢失隐藏机制。该编解码器的主要应用包括移动网络上的低比特率多媒体服务,例如音乐,语音,新闻,体育广播,天气,电影,有声读物,培训,个人对个人MMS,商业广告等。

  • 突出的特点

    • 基于3GPP规范。
    • 优化的ASM / C实施。
    • 可重入实施。
    • C可调用的API。
    • 以8 - 48 KHz采样的语音和混合(语音和音频)信号进行操作
    • 支持比特率,单声道为6 36 kbps,立体声为8 48 kbps。
    • 比特率可以在20ms帧边界配置。
    • 支持RAW,FSF,TIF,IF1,IF2和MMS比特流格式。
    • 支持集成的语音活动检测(VAD)算法。
    • 支持标准中定义的所有模式和ISF。
    • 支持集成的数据包丢失隐藏(PLC)算法。
    • 支持集成的语音活动检测(VAD)算法。
    • C64x +上的Little-endian实现
    • ARM上的小端和大端实现
    • 编码器针对低复杂度用例进行了优化
    • 解码器支持llimiter标志,用于平滑输出信号并避免削波。
    • 强制输出为单声道的选项
    • 选项指定输出PCM样本的采样频率
    • 可选的xDM API支持
  • 测试功能

    • 与标准测试向量精确比特。
    • 模块完全可以中断。C64x +的最大中断延迟为6000个周期。
    • 测试模块(C64x +和ARM)的任何非法内存访问。
    • 测试是否符合注册保存要求。
    • 测试输入缓冲区损坏。
    • 测试I / O缓冲区对齐要求。
    • 测试多实例实现。
    • 经过100%代码覆盖率测试。
    • 所有API参数的范围验证。
    • 测试数据包丢失情况,损失5%至25%
    • 在OMAP3530(Cortex-A8)和DM6446 / DM6467(ARM926EJ-S)平台上验证的ARM实现。
    • TI C64x +实现在Spectrum Digital C6455 DSK和DM6446 EVM上得到验证。
  • 可用平台

    • ARM9E,ARM11,Cortex-A8,Cortex-A9和TI C64x +。

AMR标准文本

  1. AMR-NB(3GPP TS 26.071),来源: 3GPP的文件中转站,https://www.3gpp.org/ftp/Specs/archive/26_series/26.071/
  2. AMR-WB(G722.2),来源ITU网站上,来源:ITU官网, https://www.itu.int/rec/T-REC-G.722.2
  3. AMR-WB+(3GPP TS 26.273),https://www.3gpp.org/ftp/Specs/archive/26_series/26.273/

参考

[1] AMR-NB与AMR-WB的区别:https://wenku.baidu.com/view/e7ee26205901020207409c2a.html

[2] AMR-NB:https://wenku.baidu.com/view/3aae330f7cd184254b3535bf.html

[3] 3GPP规范

[4] AMR-NB:http://www.couthit.com/codec-amr-nb.asp

[5] AMR-WB:http://www.couthit.com/codec-amr-wb.asp

[6] AMR-WB+:http://www.couthit.com/codec-amr-wb-plus.asp

[7] RTP Payload Format for the Extended Adaptive Multi-Rate Wideband (AMR-WB+) Audio Codec:https://tools.ietf.org/html/rfc4352

[8] AMR-WB+语音编解码技术的优化与实现_邵鹏:http://cdmd.cnki.com.cn/Article/CDMD-10614-1013330479.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值