WebRTC之Trendline滤波器
简述
在GCC(Google Congestion Control)拥塞控制算法中,包含了两种带宽估计算法,分别是基于延迟的带宽估计算法和基于丢包的带宽估计算法。
其中,基于延迟的带宽估计算法有新旧两个不同的实现版本,分别是:旧版使用基于接收端的Kalman滤波器带宽估计算法,新版使用基于发送端的Trendline滤波器带宽估计算法。
在WebRTC中,为了向前兼容仍保留了旧版的实现,且对于视频流会同时开启两种基于延迟的带宽估计算法。因此,如果存在视频流时,GCC还好收到从接收端返回的带宽估计值:REMB(Remote Estimated Maximum Bitrate)。GCC算法最终会选取这三个带宽估计值中的最小值作为当前的带宽估计值。
本文介绍的是新版基于延迟的带宽估计算法中的Trendline滤波器,可根据数据包的延迟梯度的变化预测带宽的变化趋势,以此为参考对当前码率进行相应的调整,进而获得更为接近真实情况的带宽估计值。
