丢包容错处理(PLC)是一种在VoIP等实时通信中掩盖网络丢包影响的技术,通过接收端对丢失数据包进行补偿,以保持语音/视频流畅。其核心方法包括插入、插值和基于重构的语音合成,常结合前向纠错与自适应码率控制,广泛应用于音频通信、视频会议等场景,提升用户体验。
一、丢包容错处理机制是什么
丢包容错处理(packet loss concealment)是一种用于掩盖VoIP通信中丢包影响的技术。当语音信号以 VoIP 数据包的形式在 IP网络上发送时,数据包可能(而且很可能)会经过不同的路径。因此,数据包可能会延迟到达、损坏,或者根本无法到达。例如,当服务器缓冲区已满,无法接收更多数据时,数据包可能会被拒绝,这就是丢包的一个例子。其他情况包括网络拥塞导致显著延迟。在 VoIP 连接中,诸如自动重传请求(ARQ)之类的错误控制技术通常不可行,接收方应该能够应对丢包。丢包隐藏是指在设计中加入一些方法来考虑和补偿语音数据包的丢失。
二、丢包容错处理(packet loss concealment)的工作原理
丢包处理方法一般分为发送端丢包恢复和接收端丢包隐藏(PLC)。
发送端丢包处理主要体现在传输过程中对冗余数据的处理。冗余数据可用于两种情况。一种是基于纠错编码结果进行丢包修复,即前向纠错;另一种与数据包中的信息相关,即低比特冗余信息。
丢包补偿(PLC)仅在接收端执行,用于处理丢包。它不占用额外带宽,也不会引入过多的延迟,因此被广泛应用于实时语音通信。PLC的核心思想是通过大脑的感知效应,主观地填充语音,从而达到掩盖数据包丢失的目的。PLC可以分为三类:插入、插值和重构。
这种插入方法可以通过在丢失的数据包中插入一个波形来实现掩盖丢包的目的。该波形与丢失数据包中的原始波形无关,主要用于掩盖或转移丢失的数据包。
插值方法也引入了丢失数据包中的一段波形来替代原始波形。该方法考虑了信号的相关性,即通过丢失数据包附近正确接收的数据包,找到与丢失信号最相似的波形进行替代。插值方法分为三类:波形替换、音高波形复制和时域校正。
根据一定的匹配原理,波形替换的核心思想是在丢失数据包周围的波形中找到与丢失数据包中最相似的波形来替代丢失信号。音高波形复制优于波形替换,因为它可以使用音高检测算法来优化波形替换。如果丢失的信号属于清音语音信号,则直接使用丢失信号之前的波形进行替代;而对于丢失数据包中的浊音语音信号,则首先估计语音信号的音高周期,然后根据估计的音高周期截取丢失数据包之前的合适波形进行替代。虽然该方法的计算量稍高,但其对丢包的隐藏效果要好得多。该方法已被ITU-T G.711采纳。
时域校正的核心思想是将丢失数据包前后的波形向内延伸,直至覆盖丢失数据包中的所有间隙。该方法能够在时域上改变语音信号的长度,同时保持基频不变。时域校正的代表性方法有重叠相加法(OLA)、同步重叠相加法(SOLA)和波形相似性重叠相加法(WSOLA)
基于重构的PLC利用语音编码信息重构编解码器参数,从而合成丢失数据包中的语音,因此具有更好的PLC性能。例如,在ITU-T G.723.1语音编码标准中,解码器根据丢失数据包中清音和浊音信号的判断结果插值线性预测器系数,并决定是使用前一个数据包的周期性激励还是生成匹配的随机信号。此外,一些非线性模型,例如隐马尔可夫模型和高斯混合模型,也被用于预测丢失数据包的编解码器参数,以重构丢失数据包的语音信号
三、应用场景
1.音频通信
在 VoIP 或语音通话中,PLC 技术可以有效减少因网络丢包导致的语音中断问题,提高语音通话的流畅性。PLC 技术通过以下方式处理音频丢包:
- 预测丢失音频帧:利用已接收的音频帧信息,通过算法预测丢失帧的内容。例如,基于前一帧的基音周期和残差信号,重建丢失的音频帧
- 平滑过渡:当连续多帧丢失时,PLC会对补偿后的音频帧进行增益调整,避免因重复播放导致的音质问题。
- 智能算法:如采用低复杂度的生成对抗网络(GAN)来补偿丢失的音频帧,确保音频的连贯性和清晰度。
2.视频通信
虽然 PLC 技术最初主要用于音频处理,但其理念也逐渐应用于视频领域。在视频流媒体中,PLC可以帮助减少因丢包导致的视频卡顿或画面撕裂现象。通过预测或重复显示丢失的视频帧,保持视频的连贯性。如:
- 帧预测与插值:在视频会议中,当视频帧丢失时,PLC技术可以通过分析前后帧的内容,预测并插值丢失的帧。
- 运动补偿:利用视频帧之间的运动信息,通过运动补偿技术填补丢失的帧,减少卡顿现象。
3.综合应用与优化
- 与FEC结合:PLC技术常与前向纠错(FEC)技术结合使用。FEC通过发送冗余数据来减少丢包的影响,而PLC则在接收端对已丢失的数据进行补偿。
- 自适应码率控制:在视频通信中,PLC技术还可以与自适应码率控制(ABC)技术配合,根据网络状况动态调整视频流的码率,以减少丢包。