丢包补偿技术调查

一、基于发送端补偿

基于发送端补偿可以分为两类:主动重传(本文不讨论)和被动通道编码。被动通道编码包含传统的前向差错纠正技术(FEC)和基于交织的技术。按照和媒体内容的关系,前向差错纠正包括与媒体无关的方法和利用音频属性的媒体相关方法。这些总结如图1所示。

图1 基于发送端补偿技术分类

为了便于讨论,我们把一个语音包区分为多个单元。

 

与媒体无关前向差错纠正

这种方式中每n个媒体数据包附带k个校验包。校验包的每个比特都是由相关的数据包的同位置比特产生的。图2是每4个媒体数据包附带1个校验包的情况。

优点:该方式补偿与具体的媒体内容无关,计算量小,易于实施。

缺点:不能立即解码,引入延时,带宽增加。

图2 与媒体无关前向差错纠正

 

媒体相关前向差错纠正

一种简单的抗丢包方式是,采用多个包传送同样的音频单元。一旦丢了一个,信息可以从另外一个包含该单元的恢复出来。图3表示了媒体相关前向差错纠正的原理。

第一个传输的复本称为主要编码,第二个传输的复本称为次要编码。次要编码可以是和第一个相同,但是大部分采用较低码率和较低音质的编码技术。编码器的选择取决于带宽需求和计算复杂度需求。次要编码采用以下方法:

图3 媒体相关前向差错纠正的原理

 

短时能量和过零率测量;

低比特分析合成编码,比如LPC(2.4-5.6kb/s);

全速率GSM编码(13.2kb/s)。

如果主要编码器能做到高音质和低码率,那么次要编码器可以采用和主要编码器一样的方法。比如,ITU G.723.1可以采用这种方式,因其音质好,码率5.3/6.3kb/s,但计算量大。

媒体相关前向差错纠正引起了包大小的额外开销。比如,8kHz PCM U律的主要编码器占用64kb/s带宽,全速率GSM编码的次要编码器占用13.2kb/s带宽,这样就增加了20%的带宽开销。但是,额外的带宽开销并不是固定而是可变的。分析表明,利用语音的特性,并不需要在每个语音包附加媒体相关前向差错纠正,加上这些策略,可以节省30%的带宽。

媒体相关前向差错纠正的一个好处就是不会引入大的延时,最多也就是一个包的延时。这适合实时交互的应用。

 

交织

    当我们考虑比语音包还小的语音单元并且可以承受较大的延时,交织是一种很有用的抗丢包技术。语音单元在传输之前重新排序,这样在传输流中原来领近的语音单元变成有规律间隔的单元,接收端再按原来的顺序排列回来。图4显示20ms包分为5ms单元的例子。可以看到传输的一个丢包变成了分散的多包中的单元丢失。

图4 跨多个包的交织单元

交织带来两个好处:

长时间的丢包给听觉带来不舒适和难以理解,但是短时间的单元丢失是更易被听觉接受的,也容易理解;

错误隐藏比较容易处理短时间的单元丢失,因为时间短语音的变化小。

交织的不足就是也会引入延时,只适合非交互式的应用。交织的另外一大好处就是不会引起带宽需求的增加。

 

二、基于接收端补偿

当发送端不能做到较好的丢包补偿或发送端不能参与丢包补偿时,需要在接受端进行丢包补偿。错误隐蔽算法就是接受端的丢包补偿技术,它产生一个与丢失的语音包相似的替代语音。这种技术的可能性是基于语音的短时语音相似性,它可以处理较小的丢包率(<15%)和较小的语音包(4-40ms)。当丢包的长度达到音素的长度(5-100ms),该技术就不适应了,因为整个音素都会丢失。

 

图5错误隐藏技术分类

从图5可见,基于接收端的差错隐藏技术可以分为三类:

1、 基于插入的方法

插入一个填充包来修复丢包,填充包一般都很简单,比如静音包、噪声包或重复前面的包。虽然容易实现。但这种方法的效果是很差的。该方式的缺点就是没有利用语音的信息来重新产生信号。

 

拼接法(Splicing):直接把丢包两端的语音拼接起来,这种最简单的方法不但打乱了语音的时钟顺序,而且只适合很小的丢包间隔(4-16ms)和极低的丢包率,丢包率大于3%就不能忍受了。

 

静音置换法(Silence substitution):该方法在丢包处加入静音,这样保持了语音的时钟顺序。它只有在很小的包大小(<4ms)和很低的丢包率(<2%)是有效的。随着包大小的增加,他的性能明显下降,到40ms的包大小就完全不能接受了。

 

噪声置换法(Noise substitution):该方法在丢包处加入背景噪声或舒服噪声。它比静音置换法好处是提高了语音的可理解性,效果较好。

 

重复法(Repetition):利用接受到的最近包来重复代替丢失的包,具有低计算量和适度的音质。较长的后续丢失包可以衰减重复的包来产生。比如GSM中,丢包前20ms采用重复,后续320ms的通过衰减重复包到零。

2、 基于插值的方法

该方式通过某种形式的模式匹配和插值技术以期望得到与原来丢包相似的代替包。该方式比插入方法实现难度要大但效果好些。该方式相对插入法的好点就是考虑到了语音的变化信息来产生信号。

 

波形置换法(Waveform substitution):该方式使用丢包前(可选后)的语音来找到合适的信号代替丢包。它通过单端或双端模式来确认合适的基音周期。单端模式时,基因周期重复跨越丢包区域,双端模式时需要对两边的周期进行插值。

 

基音波形复制法(Pitch waveform replication):这是一种带有基音周期检测算法的改进型波形置换法。它利用丢包双端的信息,在无声状态时可以重复前面的包,有声状态时重复基音波形。其效果比波形置换法要好。

 

时间尺度修正法(Time scale modification):该方法允许语音从丢包两端按基音周期伸展来跨越丢包区域,在两者交叠的地方进行平均。该方法计算量较大,但是效果比前面两个好些。

 

3、 基于重构的方法

该方式通过丢包前后的解码信息来重构产生一个补偿包。该方式音质最好但是实现难度也是最大的。重构修复技术使用语音压缩算法的知识来获得编码参数,这样丢失的包就可以合成。该方法依赖于编码算法,但是由于有大量信息可用,效果较好,计算量也大。

 

传输状态插值法(Interpolation of transmitted state):对变换域编码和线性预测编码而言,解码器可以在传输状态之间进行插值。比如 ITU G.723.1对丢包两端的线性预测系数进行插值,使用原先帧的周期激励。这种方法的计算量和解码是一样的,不会增加。

 

基于模型的恢复法(Model-based recovery):该方法把丢包前后的语音嵌入到一个语音模型中用来产生丢失的包。有研究者采用过去的样本对语音进行自回归分析建模。这种方法的适应性是因为,第一,间隔的语音帧如果足够小(8-10ms)就有很强的相关性;第二,大部分的低比特率编码技术就是采用的自回归分析和激励信号的模型。

图6 错误隐藏技术的复杂度和质量关系

要获得好的丢包补偿效果就必须采用复杂的算法。图6显示了各种错误隐蔽算法的复杂度和质量对应关系,可以根据需要采用。比如带有衰减的包重复法是一种折衷方案。

 

三、应用建议

 

非交互式应用

对于非交互式的语音应用,比如多点广播,对延时的要求没有音质高。交织是强烈推荐的丢包补偿技术,对于交织后的语音,还要采用合适的错误隐蔽算法。与媒体无关的前向误差纠正技术也适合这种应用。

 

交互式应用

    交互式的应用比如IP电话,对延时很敏感,因此,交织和与媒体无关的前向误差纠正技术都不适合这种应用。媒体相关的前向误差纠正技术只引入很小的延时和较小的带宽增加,是较好的选择,可以利用低比特率的次要编码器获得丢包补偿效果。另外,还可以采用带有衰减的包重复法等效果较好计算简单的错误隐蔽算法进一步提高音质。

时间: 2024-10-30 03:45:22

丢包补偿技术调查的相关文章

IP通信中音频编解码技术与抗丢包技术概要

此文较长,建议收藏起来看. 一.一个典型的IP通信模型 二.Server2Server技术分类 Server2Server这块也是一个专门的领域,这里只简单分个类. 1.同一国家相同运营商之间: 同一运营商之间也有丢包,在铁通,鹏博士等运营商中尤甚.并且在晚高峰的时候表现更加突出. 2.同一国家不同运营商之间: 在很多时候,由于运营商之间的结算和有限带宽的问题.运营商之间的网络不稳定. 3.不同国家之间: 同一个国家都这么多问题,不同国家的问题回更复杂,在不同的国家要选择好的机房,实时选择实时监

路由器丢包怎么办

一.内存碎片是指路由器内存被划分了许多不连续的块.他将导致内存利用率降低,严重时可能会产生内存错误,影响路由器的性能.它也会导致路由器报文丢失的问题,其实不仅路由器的内存存在碎片问题,普通的硬盘也存在这种问题. 如微软操作系统中就自带一个碎片整理工具,可以保障用户来整理硬盘中的碎片,以提高硬盘的存储容量以及存储性能.这里指的内存碎片其实跟硬盘碎片是类似的. 二.那该如何判断路由器的内存是否存在碎片呢?这里主要借助的是灵科路由器自带的SHOW MEMORY命令.这个命令会显示当前内存的相关信息.

路由不定时丢包原因和解决方法

关于路由器丢包的原因有很多种,本篇介绍如何判断是否是路由器丢包和解决的方法. 一.内存碎片是指路由器内存被划分了许多不连续的块.他将导致内存利用率降低,严重时可能会产生内存错误,影响路由器的性能.它也会导致路由器报文丢失的问题,其实不仅路由器的内存存在碎片问题,普通的硬盘也存在这种问题. 如微软操作系统中就自带一个碎片整理工具,可以保障用户来整理硬盘中的碎片,以提高硬盘的存储容量以及存储性能.这里指的内存碎片其实跟硬盘碎片是类似的. 二.那该如何判断路由器的内存是否存在碎片呢?这里主要借助的是灵

系统原因导致的丢包问题如何破?

本期分享专家:枫凡,曾就职于安恒信息.目前在阿里云从事ECS产品的技术支持,专注于云计算相关的安全问题以及网络问题.坚信:"不忘初心,方得始终" 在你发现网站访问慢.业务不稳定的时候,你是不是也发现了服务器的ping值很高,还经常会有丢包的情况,这些病症技术专家经常见到,也经常帮客户分析治疗此类病症,总结起来可能的原因有这几点:运营商的网络影响.带宽跑满啦.本地网络问题.系统层面的问题等. 不过专家还说了 ,丢包只是问题的现象,要解决丢包的病症还得找到病根.今天专家枫凡坐诊为您分析丢包

ping 丢包或不通时链路测试说明

当客户端访问目标服务器出现 ping 丢包或 ping 不通时,可以通过 tracert 或 mtr 等工具进行链路测试来判断问题来源.本文先介绍了进行链路测试的相关工具,然后对测试结果分析及测试步骤进行了说明. 链路测试工具介绍 根据操作系统类型的不同,链路测试所使用的工具也有所不同.分别简要介绍如下. Linux 环境下链路测试工具介绍 Windows 环境下链路测试工具介绍 Linux 环境下链路测试工具介绍 traceroute 命令行工具 mtr 命令行工具(建议优先使用) trace

Silverlight技术调查(4)——完成的调查结果

原文 Silverlight技术调查(4)--完成的调查结果 客户端使用Silverlight+DXperience,可以在线编辑各种常见文本及富文本文档(doc.docx.rtf.txt.html--),Silverlight使用了异步提交和响应(通过WebClient和WebRequest),提交时,自行编排HTTP请求格式(请参见相应RFC标准):编辑的数据流上传至Servlet后,Servlet使用commons-fileupload-1.2.2解包数据,获取附加的请求参数及附件内容.

tplink无线路由器下的电脑ping外网丢包?

问题介绍 通过路由器上网,出现网速慢或不稳定,此时ping外网丢包,如下图:   ping丢包一般为物理连接质量或线路拥塞导致,下面我们针对最有可能导致此类问题的因素进行分析和排查,请按照以下操作检查: 排查方法 1.降低无线信号干扰 无线信号受到强烈干扰极易造成丢包,表现出来就是网速慢.掉线.常见干扰源有两种:一是微波炉.2.4G无绳电话.无线鼠标键盘等:二是周围其他的无线路由器.当干扰非常严重的时候无线终端可能会出现网速不稳定,丢包等情况.降低无线干扰,建议您: a.尽可能避免在使用无线路由

《Cisco QoS认证考试指南(第2版)》——1.3节QoS:调整带宽、延迟、抖动和丢包

1.3 QoS:调整带宽.延迟.抖动和丢包Cisco QoS认证考试指南(第2版)不同的终端用户流量对网络性能的要求有所不同.比如文件传输应用只关注吞吐量,而对个别数据包的延迟并不关注:交互式应用需要一致的响应时间:语音呼叫需要一致的低延迟:视频会议需要一致的低延迟和高吞吐量. 用户可能会对应用性能和网络性能提出一些合理的抱怨.当然,终端用户总是认为网络要对所有的性能问题负责,无论这是否属实!用户合理的抱怨可能包括如下这些. 我的应用很慢.我的文件需要传输很长时间.视频卡住了.电话延迟太大,我和

麦包包无线产品新尝试,装饰箱包也能提醒丢包

11月4日消息,时尚箱包电商 麦包包 在发力无线业务的过程中,除了会员端.市场端的推广和维护外,也针对无线产品做了一些新的尝试.日前,麦包包自主研发的第一款智能挂件已经面世,可在装饰箱包的同时实现防丢包提醒功能. 亿邦动力网获悉,麦包包的"智能挂件"是针对箱包饰品研发的一款智能报警器,通过蓝牙4.0技术与手机连接.当手机与挂件超出安全距离后便会自动报警,通过手机发出报警音提醒. 据麦包包方面介绍,这个挂件精致小巧,外形类似 一个 钥匙链,用户可将它佩戴在包包上,或者把它与其他随身物品放