视频编解码 — 带宽预测

news/2024/11/16 13:22:29/

目录

一、带宽预测作用

二、基于延时的带宽预测算法:

1、算法流程

2、计算延时

3、Trendline Filter

4、网络状态判断

5、带宽调整更新

三、基于丢包的带宽预测算法

1、带宽调整

四、最大带宽探测算法

五、最终的预测选择


一、带宽预测作用

        控制音视频发送的数据量不会在网络带宽不够的时候,发送超出网络带宽的数据量。导致出现长延时和高丢包等问题,从而引发高延时或者卡顿的问题。

        预测出实际的带宽,就可以控制音视频数据的发送数据量。如控制音视频数据的编码码率或者直接控制发送RTP包的速度

WebRTC中主要的带宽预测算法:

1、基于延时的带宽预测算法

2、基于丢包的带宽预测算法

3、最大带宽探测算法

二、基于延时的带宽预测算法:

        主要是通过计算一组RTP包的发送时长接收时长,来判断当前延时的变化趋势

        不断的实时调整更新带宽,来预测带宽

1、算法流程

  1. 计算一组RTP包的发送时长和接收时长,计算延时
  2. 根据当前延时和历史延时的大小来计算延时变化趋势
  3. 根据延时变化趋势判断网络状况;
  4. 根据网络状况调整更新预测带宽值; 

2、计算延时

WebRTC中延时的是将RTP包按照发送时间来分组的,并且要求当前组中的第一个包和最后一个包的发送时间相差不能大于5ms,大于5ms则是新的一组的开始。

1、发送端在发送一个RTP包的时候,记录每一个包序号和实际发送时间,并将这些信息记录到一个历史数据里面。

2、接收端收到每一个包的时候,记录包序号和实际接收时间,每隔一段时间将这些信息组成Transport-CC发送到发送端。信息包括,每个包序号的包是不是接收到了;当前包相比前一个包的接收间隔。

3、发送端收到接收端的报文,就知道每一个包有没有被收到接收RTP包的时间。

4、通过以上信息计算出前后两组包之间的发送时长和接收时长。

  • 接收时长>发送时长,网络承受不了当前数据量,产生了缓存,从而产生延时
  • 接收时长=发送时长,没有延时
  • 接收时长<发送时长,之前网络带宽不够已经缓存了一部分数据,但网络在变好,快速从缓存中将数据发出 

        为了避免网络抖动引起的噪声,需要通过当前延时和历史延时数据来判断延时的变化趋势,来平滑掉网络噪声引起的单个延时抖动。

3、Trendline Filter

        平滑使用的滤波器Trendline Filter,用来计算得到延时变化趋势的。

        Trendline Filter 保存了20个最近的延时数据,是经过平滑后的累计延时,它是通过前面计算得到的延时和历史累计延时加权计算之后得到。

        使用最小二乘法,拟合曲线。

        延时趋势还不能直接说明网络的变化方向,需要过载检测器

4、网络状态判断

过载检测器:

        1、通过当前的延时趋势延时阈值来判断当前网络处于过载、欠载还是正常状态。

        2、通过当前的延时趋势来更新阈值

有了延时趋势和延时阈值之后,可以计算网络状态。进而调整当前带宽值。这就需要速度控制器

5、带宽调整更新

速率控制器主要工作是更新预测带宽值。维护一个状态机,状态机主要用来根据过载检测器得到网络状态和状态机目前所处的状态,来更新状态机的状态。上升、下降、保持。

  1. 下降状态,下降带宽,预估带宽等于0.85倍的接收码率
  2. 上升状态,调高预估带宽 

        当前接收码率距离最大带宽比较远:当前接收码率大于最大带宽加上3倍的最大带宽标准差,或者小于最大带宽减去3倍标准差,使用乘性增,每隔1秒将预估带宽乘以1.08倍,但预估带宽不能大于1.5倍的接收码率。

        当前接收码率距离最大带宽很近:当前接收码率大于最大带宽减去3倍标准差,并小于最大带宽加上3倍标准差。使用加性增。预估带宽没隔一个RTT,增加半个包的大小。

三、基于丢包的带宽预测算法

根据Transport-CC报文的信息计算丢包率,再根据丢包率的多少,进行带宽调整。

丢包率的计算:

lossrate = packet(lost))/packet(all)

1、带宽调整

  • 丢包率<2%,认为网络状况很好,需要调整高带宽值。带宽值等于过去1s钟所有预测得到的带宽值的最小值 * 1.08
  • 2%<丢包率<10%,不做带宽调整
  • 丢包率>20%,需要降低带宽值,带宽值等于当前预估带宽值*(1-0.5*丢包率) 

在网络变差的时候,预估带宽会快速的被下调,但网络变好的时候,会比较缓慢的上升。这就有个问题,如画面从静止突然剧烈运动,即便实际带宽足够,还是会因为预估带宽不够而限制发送码率,从而导致出现模糊和马赛克等问题。这就需要第三种预测算法,快速探测出最大带宽。

四、最大带宽探测算法

  1. 发送端设定一个探测的目标带宽,一般发送时间是15ms,并给这些RTP包标上id
  2. 接收端收到统计包序号和接收时间,将结果组成Transport-CC 报文反馈给发送端
  3. 接收端收到Transport-CC报文后,根据id取出和发送时间并且和本端的历史数据送入到带宽计算器中 
  • 根据发送端的探测RTP包总大小和探测RTP包的发送时间相除,得到发送端的最大带宽值
  • 根据接收端收到的探测RTP包总大小和探测RTP包的总接收时间相除,得到接收端的最大带宽值
  • 取两者中的最小值作为探测到的网络最大带宽值。如果接收端的最大带宽小于0.9倍的发送带宽,说明当前探测目标带宽已经最大,为保险起见,最后将最大带宽取接收端最大带宽的0.95倍。

        如果当前过载检测器检测不是在过载状态,预估带宽值更新为探测到的最大带宽值

适用范围:

最大带宽探测算法,一般在程序刚启动的时候使用,并在程序运行的过程中进行周期性的探测。也可以再实际发送带宽很小的时候探测,防止出现因为实际发送码率很小,无法准确预测网络当前最大带宽的问题。

五、最终的预测选择

  1. 如果不是处于过载状态同时探测了最大带宽,预估带宽更新为探测到的最大带宽
  2. 取基于延时和基于丢包带宽预测得到的预估带宽的最小值。 


http://www.ppmy.cn/news/598674.html

相关文章

AV1:为互联网提供开放、免费的视频编解码工具

从学术研究到进入工业界&#xff0c;Zoe Liu一直在算法和音视频领域&#xff0c;目前在谷歌编解码团队为编解码器AV1做开发支持。Zoe畅谈了评定编解码器的标准&#xff0c;以及AV1的最新进度。本文是『下一代编码器』系列采访之一&#xff0c;欢迎自荐或推荐技术人加入『下一代…

视频编解码 — H264结构

目录 帧类型 GOP Slice 宏块 码流格式 NALU 帧类型 帧类型预测方式参考帧特点I帧帧内编码帧帧内预测无能独立编解码&#xff0c;压缩率小P帧前向编码帧帧间/帧内预测参考前面已经编码的帧和P帧压缩率比I帧高&#xff0c;必要参考帧才能解码B帧双向编码帧帧间/帧内预测参考…

视频编解码流程

相关索引&#xff1a;https://blog.csdn.net/knowledgebao/article/details/84776869 编解码大概流程图(上边是编码&#xff0c;下边是解码)&#xff1a; 1&#xff0c;编码过程&#xff1a; Motion Estimate(运动估计&#xff0c;运动搜索): 从前几帧中寻找匹配的宏块&#xf…

Hi35xx视频编解码器

这些都是概念性的东东&#xff0c;不过&#xff0c;能够理解&#xff0c;懂&#xff0c;肯定非常ok了。 视频编解码器是一个支持H.264、JPEG/MJPEG协议的视频编码和视频解码的处理单元&#xff0c;它由运行于ARM处理器上的Video Codec Firmware 和内嵌的视频编解码硬件加速引擎…

3-视频编解码基础

视频编解码基础.md 视频编解码算法分为传统算法和基于深度学习的方法&#xff0c;本文主要介绍视频编解码技术的原理&#xff0c;部分内容和图片参考网上技术博客&#xff08;链接已放在文章末尾&#xff09;。 毕设项目演示地址: 链接 毕业项目设计代做项目方向涵盖&#xff…

视频监控与视频编解码技术

视频监控与视频编解码技术 参考文献链接 https://mp.weixin.qq.com/s/UW4Z0vu_Wypc0ddymrOkpg https://mp.weixin.qq.com/s/RfsTTNekpJeIX5DH4ViAqg https://mp.weixin.qq.com/s/smj5bsqXgKuz7RvoLqFKjg https://mp.weixin.qq.com/s/p5gB7q03YfhN-0N7LvQ43g 安防智能视频监控系…

视频编解码之H.264

编解码的必要性 1.为什么要压缩 节省传输带宽;编码可以将数据进行压缩,减少传输资源浪费。节省存储空间:当显示器正在播放一个1280*720视频,帧率是25,那么一秒所产生正常的数据大小为:1280*720(位像素)*25(张) / 8(1字节8位)(结果:B) / 1024(结果:KB) / 1024 (结果:MB) …

视频编解码(三):H265编码器

一、H265编码框架 1&#xff09;帧内预测&#xff1a;利用当前图像已编码像素生成预测像素值&#xff0c;主要去除空间冗余信息。 35种预测模式&#xff1a;33种帧内预测模式DC预测模式planar预测模式 2&#xff09;帧间预测&#xff1a;利用当前图像已经编码图像重…