LC3plus

介绍

随着2014年3GPP Enhanced Voice Services (EVS)增强语音服务的引入,超宽带音质丰富了移动语音通信。然而,这种技术的发展伴随着计算复杂度和内存需求的显著增加,只能部署在相对强大的移动电话上。LC3plus的目标是提供EVS的低复杂度对应,从而使低成本终端,如VoIP或DECT也可享受到与EVS一样的超宽带音质。编解码器通过转码允许移动和其它网络间的完美互通,并且非常好的满足了DECT和VoIP终端设备对复杂度的要求。由于编解码器的灵活设计,其应用不仅限于语音业务,还可以扩展到高质量的音乐流。

概述

LC3plus编解码器可以在高度灵活的模式下工作。对于正常运行模式,编解码器支持采样率为8 kHz, 16 kHz, 24 kHz, 32 kHz或48 kHz的多种音频带宽。LC3plus编解码器也可用于流音频,因此也支持CD采样率(44.1 kHz)。它支持使用2.5 ms、5 ms或10 ms帧持续时间进行编码和解码。可以配置从20字节到400字节的压缩帧大小。

LC3plus还包括高解析度编码模式,使用采样率分别为48kHz和96kHz的全频带(FB)和超频带(UB)音频编码,帧持续时间为10ms时最大帧大小为625 bytes。也支持2.5 ms和5ms的帧持续时间。高解析度模式的目标是更高的比特率、更高的信噪比和编码全音频频谱到奈奎斯特频率。

LC3plus编解码器提供了灵活的错误隐藏算法,针对各种音频信号进行了优化。LC3plus进一步与Application Layer Forward Error Correction (AL-FEC) 应用层前向纠错关联,包括一个通道编码器功能,如果传输层中的位错误被传播到应用层,这是必要的。它支持在基于包的网络中使用冗余包作为AL-FEC策略。

RTP payload格式可用于IP/UDP传输,例如VoIP应用。

转码功能

下面图概述了可能的LC3plus配置场景。

如图4.1所示,一个LC3plus编码器获取PCM输入样本并创建压缩帧传输到接收端,接收端解码并恢复PCM数据。配置参数通常需要在编码器和解码器端有相同的采样率,帧持续时间和错误保护启用/禁用标志。这些参数在会话期间通常不会改变。

编码器和解码器端每个采样的位深可能不同,因为这些值独立于传送的LC3plus帧。编码器可以压缩位深24bit的PCM输入,解码器可以渲染成每个采样16bit,反之亦然。

解码器需要LC3plus帧的长度信息(byte_count)来进行解码。另外,解码器接受Bad Frame Indicators (BFI_flag)坏帧指示器。如果BFI_flag不等于0,则LC3plus帧被认为丢失、部分损坏或为低质量的冗余帧,在这种情况下,LC3plus解码器应用丢包隐藏。如果BFI_flag为0,解码器应用常规的过程将帧渲染为PCM数据。

图4.2概述了启用错误保护的LC3plus运行过程,其中通道编码器创建受保护的payload。

通道编码器用gross bytes(通道编码字节加上源编码字节)和用于选择错误保护能力强度的EP_mode进行初始化。EP_mode可以每帧变化。注意,对于错误保护payload,在所有EP模式下,总速率通常保持不变。保护能力的提高伴随着编解码器比特率的降低。 通道编码器要求一个LC3plus帧的码率(byte_count)依赖gross bytes和EP_mode。

LC3plus通道解码器能够通过给定的gross bytes和payload来检测EP模式。它提取潜在纠错了的LC3plus帧和相关的帧大小(byte_count)。该工具提供关于通道特性的进一步信息,例如畸变的比特数。通道解码器控制BFI_flag标示payload是否正确、部分正确或不可靠。

通道编解码器还传输Error Protection Mode Requests (EPMRs) 错误保护模式请求,用2 bit告诉一个双向设置的另一端应该使用哪个EP模式编码。

图4.3概述了编码多个音频通道的LC3plus运行过程。通常音频通道数Nc在编码器和解码器侧是相同的,但是在会话期间由于比特率的限制可能被切换。多个音频通道被压缩为独立的单个通道,需要适当的payload格式进行传播。

编码器压缩Nc个 PCM输入buffer,代表不同的音频通道。每个LC3plus帧可以使用不同的比特率(byte_count)压缩,每个通道的比特率可能随时间逐帧变化。

主要特性

表5.1 普通模式特性概览

特性

支持的范围

帧持续时间

2.5 ms, 5 ms, 10 ms (对于44.1 kHz分别是2.72 ms, 5.44 ms, 10.88 ms)

超前延迟

2.5 ms (对于44.1 kHz是2.72 ms)

总算法延迟

帧持续时间 + 超前延迟 = 5 ms, 7.5 ms, 12.5 ms(除44.1 kHz以外)

支持的采样率

8, 16, 24, 32, 44.1, 48 kHz

音频带宽

Max. 20 kHz for 48 kHz

支持的比特率(每帧每通道)

依赖帧持续时间:

10ms:20 ~ 400 bytes

5ms:20 ~ 200 bytes

2.5ms:20 ~ 100 bytes

LC3plus解码器应能接受每帧最多400字节,而不受帧持续时间的影响

每个音频采样的位深

不受算法的限制,但对16, 24, 32位深有优化

表5.2 高解析度模式特性概览

特性

支持的范围

帧持续时间

2.5 ms, 5 ms, 10 ms

超前延迟

2.5 ms

总算法延迟

帧持续时间 + 超前延迟 = 5 ms, 7.5 ms, 12.5 ms

支持的采样率

48 kHz, 96 kHz

音频带宽

一直到奈奎斯特频率

支持的比特率(每帧每通道)

根据采样率和帧持续时间,推荐以下速率用于正常的通道运行:

48 kHz, 10 ms:156 ~ 625 bytes

96 kHz, 10 ms:187 ~ 625 bytes

48 kHz, 5 ms:93 to 375 bytes

96 kHz, 5 ms:109 ~ 375 bytes

48 kHz, 2.5 ms:54 ~ 210 bytes

96 kHz, 2.5 ms:62 to 210 bytes

对于具有挑战性的通道条件下的回退操作,可以将每帧的最小字节数(nbytesmin)减少为

LC3plus解码器应能接受每帧最少20字节,而不受帧持续时间的影响

每个音频采样的位深

不受算法的限制,但对24, 32位深有优化

编解码过程

LC3plus普通模式的编解码算法与LC3基本一致,只是计算过程中用到的参数不同。

高解析度模式下略有不同。

错误隐藏

丢包隐藏(PLC)的目的是隐藏不可用或损坏的帧数据对解码的影响。

所述丢帧隐藏程序包括针对不同信号类型的三种子方法。在容易出现丢帧错误的情况下,通过选择最合适的方法,可以获得最佳的编解码器性能。三种子方法分别是:

MDCT frame repetition with sign scrambling,MDCT帧重复伴随符号加扰

Time domain concealment,时域隐藏

Frequency domain concealment,频域隐藏

综合PLC算法包括所有三种子隐藏方法和相应的PLC方法选择,以保证一定的服务质量。

PLC触发条件

  1. 解码器接收到一个外部确定的坏帧指示器标志BFI = 1
  2. 章节5.4.2.4特殊解码器模式指示器指示要应用PLC
  3. 章节5.4.2解码器检测到比特错误BEC_detect = 1

PLC方法选择和方法应用 

PLC方法的选择只在一个好帧之后的第一个丢失帧中执行,并且在随后的丢失帧中保持不变。按照一定的准则选择三种隐藏算法之一。

高解析度音频支持

高解析度音频通常代表高采样率,即48 kHz或96 kHz,并且具有高解析度和音频采样的高动态范围,即每个采样至少24位。因此,与常规传输相比,支持的码率明显更高。

LC3plus为采样率在48KHz和96 kHz的音频提供有采样率一半的音频带宽,其中Full-Band High Resolution (FBHR)代表24 kHz的音频带宽,Ultra-Band High Resolution (UBHR)代表48 kHz的音频带宽。

高解析度模式和普通编码模式之间的主要区别在于不同的MDCT窗口,它们表现出更高的阻带衰减,并且使用24位动态的频谱系数量化器。

高解析度模式下对算法的修改

主要是各步骤所使用的参数不同,基本算法没有太大变化,编码时删除了带宽检测和时域攻击检测模块,解码时删除了LTPF模块。

高解析度模式和通道编码

当高解析度模式与章节A.1中指定的通道编码器相结合时,编码器侧的比特率限制用每个通道的gross_bytes来指定。特别地,表5.2中给出的低比特率限制适用于gross_bytes。此外,因为强制要求每个通道的上限是400个gross_bytes,会限制表5.2中10ms帧的最大比特率。对LC3plus payload的通道编码和解码与普通模式相同。 

应用层前向纠错

通道编码器

LC3plus通道编码器支持每个插槽大小40~400 bytes,四种不同的保护级别,也称为EP模式。模式1提供了强大的错误检测能力,模式2到4提供了越来越强的错误纠正能力。EP模式可在运行中切换,使设备能够适应不同的信号强度。 此外,在受保护的LC3帧中传输Error Protection Mode Requests (EPMRs)错误保护模式请求,以便从远程发送方请求具有所需保护强度的受保护LC3帧。

图A.1展示了一个通过控制单元操作LC3plus编解码器和通道编码器的例子。

FP(Fixed Part):通信网络中的master

PP(Portable Part):通信网络中的slave

在FP和PP中设置是相同的,但为了简单起见,采用FP视角。在启动时,FEC Control Unit根据目标大小,即受保护的LC3plus帧的字节大小gross_bytes,和初始EP模式进行初始化。然后,FEC控制单元向LC3plus编码器提供当前LC3plus帧的目标大小nbytes_enc,并向FEC编码器提供当前帧的EP模式mfec和FP的EPMR。参数EPMR_FP被添加到要发送给PP的受保护的LC3plus帧数据中。应该注意,nbytes_enc是由通道编码器参数mfec和gross_bytes决定的。一个gross_bytes等于40的例子在表A.1中给出,EP模式1~4,nbytes_enc逐渐减小,纠错能力逐渐提升。

为了确定当前的EP模式和EPMR_FP,控制单元可以依赖于来自解码链的信息。FEC解码器将参数gross_bytes和相应大小的受保护的LC3plus帧作为输入。FEC解码器执行模式检测(EP模式未被显式传输)、错误检测和可能的错误纠正,由此生成error_report值。例如,如果一个被保护的帧是可纠正的,这个值只是给出了被纠正的位数。这是对控制单元选择FP的 EPMR的一个指导。FEC解码器进一步检索PP的EPMR,在最简单的情况下,控制单元可以直接将其转换为EP模式。FEC解码器进一步生成一个坏帧指示器bfi,编码的LC3plus帧大小nbytes_dec以及LC3plus帧本身提供给LC3plus解码器。

EPMR由通道编码器保护,因此对可纠正帧具有很高的置信度。对于无法纠正的帧,仍然可以检索EPMR,甚至经常具有高或非常高的置信度。为了区分这些情况,解码的EPMR(本例中的EPMR_PP)取0到11的值,而编码的EPMR(本例中的EPMR_FP)取0到3的值,其中请求的EP模式为EPMR + 1。如果解码的EPMR,EPMRdec范围在0到3之间,这表明它的值直接对应一个EPMR,并且验证准确性非常高(即置信度大约为)。如果解码的EPMR的范围在4到7之间,这表明EPMR的验证准确性高(即置信度大约为),对应的EPMR为EPMRdec − 4。最后,如果解码的EPMR在8到11之间,这表明没有执行EPMR值的验证,这种情况下,对应的EPMR为EPMRdec − 8,其正确性取决于比特流中2位EPMR位位置的完整性。当接收的EPMRs由FEC控制单元进行评估时,应该考虑到这些因素。

对于立体声,只要gross_bytes不超过160,左右通道的帧都以组合方式进行通道编码。这样做是为了提高低比特率立体声传输的效率。为此,两个LC3plus帧要在通道编码之前进行连接。如果大于160,则两个帧分别进行通道编码,连接两个受保护的LC3plus帧。

冗余帧

利用LC3plus还可以实现基于包的AL-FEC算法。这意味着一个包包含一个主LC3plus编码帧和一个次LC3plus编码帧,次LC3plus编码帧在时间上被延迟了t个包的偏移量。

由于丢包通常与高抖动同时发生,抖动缓冲管理器可以补偿高抖动,并可以转发次LC3plus帧,以补偿丢失的主帧。主帧和次帧在配置和比特率方面可能是相同的,也可能次帧具有较低的比特率和较低的质量。

如果次LC3plus帧包含较低的音频带宽,则该帧应在RTP帧类型描述中标记为次帧。此标志应转发给解码器。对于被标记为次帧的LC3plus帧,解码器应选择通道编码器中的部分隐藏算法或PLC算法作为隐藏策略。

RTP payload 格式

RTP payload格式用于在IP/UDP/RTP网络中传输LC3plus编码的音频。RTP payload格式支持LC3plus编解码器可能产生的所有帧持续时间、音频带宽和比特率的组合。

RTP payload格式还定义了配置参数,这些参数可用于协商如何在特定会话中使用LC3plus编解码器,例如使用Session Description Protocol (SDP) IETF RFC 8866时。

RTP payload格式支持:

  • 不同的音频带宽和采样率
  • 不同的帧持续时间
  • 以不同比特率编码
  • 高解析度编码
  • 每个payload包含多帧
  • 适应快速编解码率的信号传输
  • 单和多音频通道
  • 应用层冗余,包括编解码冗余和分包冗余

payload格式既支持单通道操作,也支持多通道操作,如图B.1和B.2所示。

 

对于多通道操作,多个独立的LC3plus编解码器实例被使用,但是payload格式支持从若干编解码器中将帧打包到同一个RTP包中。

 

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值