Architecture

Algorithm
1. 接收端控制
接收端估算one-way delay variation和packet loss ratio,并周期性反馈给发送端,反馈粒度推荐值见上一篇 Real-Time Congestion Control Feedback Interval
- one-way delay variation 测量值
相邻两个包的one way delay的差值

2. 发送端控制
- 基于丢包

- 基于延迟
one-way delay variation 模型

其中第一项指the transmission time variation:描述了相邻两个数据包的大小差异与估计带宽的比值; 第二项one-way queuing time variation,由反馈的one-way delay variation经过卡尔曼滤波所得,第三项network jitter,采用高斯分布进行模拟。
利用估计的one way dely与预定义阈值进行比较,得到当前网络使用状态的signal,即overuse, underuse, normal,最后,经过如下的有限状态机模型,得到bitrate:

其中

R(tk)是500ms窗口的接受速率
- 目标码率
取基于丢包和基于延迟的估算值的较小值作为目标值。
网友评论