目录
丢包补偿技术可以分为两类:基于发送端补偿、基于接受端补偿
基于发送端补偿:前向差错纠正、交织和重传技术
基于接受端补偿:错误隐蔽算法
- 主动:主动重传
- 被动:被动通道编码
- 前向差错纠正技术(FEC)
- 与媒体无关的方法
- 利用音频属性的媒体相关方法
- 基于交织的技术
与媒体无关的前向差错纠正
- 前向差错纠正技术(FEC)
- 与媒体无关的方法
- 利用音频属性的媒体相关方法
- 基于交织的技术
每个媒体数据包附带k个校验包,校验包的每个bit都是由相关数据包的同位置bit产生的。
下面是4个媒体数据包附带1个校验包:

TODO:疑问:具体怎么从FEC重构出3号包的呢?
优点:该方式补偿与具体的媒体内容无关,计算量小
缺点:不能立即解码,引入延时,带宽增加
媒体相关前向差错纠正
一种简单的抗丢包方式是,采用多个包传送同样的音频单元。一旦丢了一个,信息可以从另外一个包含该单元的恢复出来。
第一个传输的数据包称为主要编码,第二个传输的复本称为次要编码。
次要编码一般为主要编码的较低码率和较低音质的编码。

编码器的选择取决于带宽需求和计算复杂度需求。
如果主要编码器能做到高音质和低码率,那么次要编码器也可以采用和主要编码器一样的方法。
媒体相关前向差错纠正引起了包大小的额外开销:
8kHz PCM U律的主要编码器占用64kb/s带宽,全速率GSM编码的次要编码器占用13.2kb/s带宽,这样就增加了20%的带宽开销。
额外的带宽开销并不是固定而是可变的。分析表明,利用语音的特性,并不需要在每个语音包附加媒体相关前向差错纠正,加上这些策略,可以节省30%的带宽。
媒体相关前向差错纠正的一个好处就是不会引入大的延时,最多也就是一个包的延时。这适合实时交互的应用。
交织技术
当我们考虑比语音包还小的语音单元并且可以承受较大的延时,交织是一种很有用的抗丢包技术。
语音单元在传输之前重新排序,这样在传输流中原来领近的语音单元变成有规律间隔的单元,接收端再按原来的顺序排列回来。
下面将20ms包分为5ms单元:传输的一个丢包变成了分散的多包中的单元丢失。

交织的好处:
- 基于插入的方法
- 拼接法
- 静音置换法
- 噪声置换法
- 包重复法
- 基于插值的方法
- 波形置换法
- 基音波形复制法
- 时间尺度修正法
- 基于重构的方法
- 传输状态插值法
- 基于模型的恢复法
交织的不足就是也会引入延时,只适合非交互式的应用。交织的另外一大好处就是不会引起带宽需求的增加。
基于接受端丢包补偿技术
它通过产生一个与丢失的语音包相似的替代语音,从而实现基于语音的短时语音相似性。它可以处理较小(<15%)的丢包率和较小的语音包(4~40ms)。
音素概念:
基于接收端的差错隐藏技术可以分为三类:
基于插入方法
缺点:没有利用语音的信息来重新产生信号。
静音置换法: 该方法在丢包处加入静音,这样保持了语音的时钟顺序。它只有在很小的包大小(<4ms)和很低的丢包率(<2%)是有效的。随着包大小的增加,他的性能明显下降,到40ms的包大小就完全不能接受了。
重复法: 利用接受到的最近包来重复代替丢失的包,具有低计算量和适度的音质。较长的后续丢失包可以衰减重复的包来产生。比如GSM中,丢包前20ms采用重复,后续320ms的通过衰减重复包到零。
基于插值方法
波形置换法(Waveform substitution):该方式使用丢包前(可选后)的语音来找到合适的信号代替丢包。它通过单端或双端模式来确认合适的基音周期。单端模式时,基因周期重复跨越丢包区域,双端模式时需要对两边的周期进行插值。
时间尺度修正法(Time scale modification):该方法允许语音从丢包两端按基音周期伸展来跨越丢包区域,在两者交叠的地方进行平均。该方法计算量较大,但是效果比前面两个好些。
基于重构的方法
传输状态插值法(Interpolation of transmitted state):对变换域编码和线性预测编码而言,解码器可以在传输状态之间进行插值。比如 ITU G.723.1对丢包两端的线性预测系数进行插值,使用原先帧的周期激励。这种方法的计算量和解码是一样的,不会增加。

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