webrtc 音频 NetEQ 笔记

1.计算当前帧是提前还是延后到

先计算当前帧持续时长

再从定时器获取本地时长,定时器10ms tick一次

得到iat_packets,也就是延迟包数,iat_packets =0,就是提前到了,iat_pakets =1就是正常时间到,iat_packets>1就是延迟到了

然后计算延迟时间,并记录2s以内的总延迟

2.更新统计直方图

这个里面有个容量为100的数组,index是2s内总延迟的包数,数组记录的是延迟包数出现过的概率(通过遗忘因子和历史数据调整过的概率,数据量越大,遗忘因子递增,数据趋于平稳)

通过上面的数组拿到能满足97%概率的延迟包数,定为当前的最佳抖动延迟target_level,并限制一下最大值和最小值

3.将target_level传递到buffer_level_filter

4.根据当前缓冲区大小和缓冲区伸缩变化值,计算filtered_current_level_

5.计算延迟的上下限

6.根据前一次的决策和filtered_current_level_指定当前dsp决策,是应该加速还是减速

参考

《WebRTC语音引擎中NetEQ技术的研究_吴江锐》

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值