【音视频第13天】另外一种拥塞控制算法-TransportCC

news2025/1/20 18:33:02

目录

    • 与Goog-REMB区别
    • TrendLine滤波器

与Goog-REMB区别

与Goog-REMB有两个区别:
将拥塞评估算法从接收端移动到了发送端,评估和控制是一体的。TransportCC是发送端评估发送端接着改变码率,REMB是接收端评估,把评估出来的值给发送端,然后发送端再控制码率发送。
滤波器从卡尔曼滤波器变成了TrendLine滤波器来进行拥塞评估。

TrendLine滤波器

卡尔曼滤波器:基本思想是通过已有的观测数据,总能找到⼀条线,使得所有观测数据到这条线的误差(距离)的平⽅和最⼩,⽽这条线就是Trendline要求得的值。从(0,0)点出发,⼀定有⼀条直线y=k·x+b,使得从测量值到该直线的误差的平⽅和最⼩,如图10.6所⽰。这条直线的斜率就是数据⾛向的趋势,有时候它是上扬的,有时候它是下降的。WebRTC发送端拥塞评估算法正是利⽤这个趋势来评估下⼀个时刻的⽹络拥塞状态的,如果斜率向上,说明线路拥塞,如果斜率向下,说明拥塞缓解。
在这里插入图片描述
WebRTC可以获得每个包组接收与发送的时延差,即di。每隔⼀段时间(⼀个窗⼝期)就计算⼀下这段时间内所有的di值,然后通过最⼩
⼆乘法求出直线的斜率,再根据这条直线的斜率评估出下⼀时刻的⽹络状态和码流⼤⼩。
在这里插入图片描述
在上述公式中,di表⽰当前包组到达时⻓与包组发送时⻓之差。正常情况下该值有正有负,即当⽹络状况不好时该值不断增⻓,⽽⽹络
状况变好时该值不断下降,所以⻓时间看di的累加值应该趋于0。WebRTC将累计的di作为yi值,同时考虑到某个时刻包组可能出现较⼤
的抖动,为了使yi更平滑,真正的yi由式(10.19)得出。其中,α=0.9。xi的计算⾮常简单,如式(10.20)所⽰。它是当前包组最后⼀个包的接收时间与传输开始时第⼀个包的接收时间之差。你可能会觉得这个值⾮常⼤,不过没关系,因为后⾯的计算⽤的都是相对值。
在这里插入图片描述
有了xi和yi之后,就可以求它们的平均值了。这⾥需要注意的是,WebRTC中是按窗⼝求平均值的,默认窗⼝⼤⼩n=20(窗⼝⼤⼩是可以动态变化的)。求x、y平均值的公式如下:
在这里插入图片描述
有了x,y以及它们在窗⼝内的平均值 和 后,就可以通过它们找到⼀条误差平⽅和最⼩的直线,并求出它的斜率,公式如下:
在这里插入图片描述
实际上,这⾥求出的ki值与接收端延时拥塞控制算法中的mi值表达的是同⼀个含义,即在这个窗⼝期内发送队列的增⻓梯度。因此,
像过载状态检测、⽬标码流的控制等都可以延⽤之前的算法,⽽WebRTC也正是这样做的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/427659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STL源码剖析-分配器 Allocator

分配器(Allocator) 分配器给容器用的,是一个幕后英雄的角色。分配器的效率非常重要。因为容器必然会使用到分配器来负责内存的分配,它的性能至关重要。 在C中,内存分配和操作通过new和delete完成。 new中包含两个操作,第一步是…

HTML5 Input 类型

文章目录HTML5 Input 类型Input 类型: colorInput 类型: dateInput 类型: datetimeInput 类型: datetime-localInput 类型: emailInput 类型: monthInput 类型: numberInput 类型: rangeInput 类型: searchInput 类型: telInput 类型: timeInput 类型: urlInput 类型: weekHTML…

手撕哈希表

🌈感谢阅读East-sunrise学习分享——[进阶数据结构]哈希表 博主水平有限,如有差错,欢迎斧正🙏感谢有你 码字不易,若有收获,期待你的点赞关注💙我们一起进步🚀 🌈我们上一…

SNN demo

记录一个同门给的SNN demo,仅供自己参考 1 SNN和ANN代码的差别 SNN和ANN的深度学习demo还是差一些的,主要有下面几个: 输入差一个时间维度T,比如:在cv中,ANN的输入是:[B, C, W, H]&#xff0c…

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971) 0x00 前言 Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中&#x…

浅说情绪控制被杏仁体劫持

2023年4月16号,没想到被杏仁体劫持那么严重,触发手抖和口干的症状,这个还真是自己万万没有想到的。 人生要修炼两条线:一条明线是做的事情,那是自己要做的具体事情。 一条暗线是修炼的自己,这次也做了测试…

云安全——Docker Daemon

0x00 前言 其他云安全相关内容,请参考:云安全知识整理 0x01 Docker Daemon Daemon是Docker的守护进程,Docker Client通过命令行与Docker Damon通信,完成Docker相关操作,2375端口是Daemon的未授权端口。 0x01 2375 …

设计模式之监听模式

本文将会介绍设计模式中的监听模式。   监听模式是一种一对多的关系,可以有任意个(一个或多个)观察者对象同时监听某一个对象。监听的对象叫观察者(Observer),被监听的对象叫作被观察者(Obser…

QObject对象生命周期管理

QObject对象生命周期管理 1.C中对象的生命周期管理是一个非常重要的话题,因为C需要程序员自己手动管理内存,而这也是C程序经常容易出现内存问题的重要原因。 1.1 特别是多线程环境下如何正确管理好对象的生命周期,更是C程序开发中的一个难点…

对抗样本-(CVPR 2022)-通过基于对象多样化输入来提高有针对性对抗样本的可迁移性

论文地址:https://arxiv.org/abs/2203.09123 代码地址:https://github.com/dreamflake/ODI 摘要:本文提出了一种新的方法来生成有针对性的对抗样本,该方法通过使用多种不同的输入图像来生成更加丰富和多样化的图像。具体而言&…

hashlib模块

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 hashlib模块专栏:《python从入门到实战》 哈希算法,也叫摘要算法。 加密&…

Postcat 插件上线,支持 ApiPost 格式导入

作为开源的 API 管理工具,Postcat 已经支持 Postman、swagger、Eolink 等平台的数据导入导出。 前不久有用户跟我们提需求,想要 Postcat 支持国内的一些主流的 API 管理工具,好消息是现在不就支持了么! 最近我们的插件广场上线了一…

etcd概述

本文主要介绍了 etcd 相关概念,以及 etcd 的主要使用场景 1. 介绍 etcd 是云原生架构中的基础组件,由 CNCF 孵化托管。etcd 在微服务和 kubernetes 集群中不仅可以作为服务注册中心用于服务发现,还可以作为 key-value 存储中间件etcd 是 Co…

Spring的Bean初始化过程和生命周期

Spring的Bean初始化过程和生命周期一、Spring创建bean的流程图二、Spring创建bean的详细流程1.加载bean信息2.实例化bean3.bean属性填充4.初始化bean5.后置操作三、bean的生命周期四、总结Spring的核心功能有三点IOC、DI、AOP,IOC则是基础,也是Spring功能…

Python+Requests模拟发送post请求

模拟发送post请求 发送post请求的基础知识dumps和loads 代码示例: # 发送post请求 import requests,json # 发送post请求的基础知识dumps和loads str_dict {name:xiaoming,age:20,sex:男} print(type(str_dict)) str1 json.dumps(str_dict) # 1,json.dumps 是把…

git 本地新建并提交上传仓库

初始化步骤基本解释 新建readme touch README.md 初始化仓库 git init 添加仓库下所有文件 git add . 提交 备注到本地 git commit -m "备注" 链接远程git库 git remote add origin 新建库ssh链接 上传代码 git push -u origin master 初始化操作步骤 touch README.…

【Ubuntu】Ubuntu20基础配置+go开发配置

这里写自定义目录标题1 基础配置1.1 安装ifconfig网络管理工具1.2 初始化root密码1.3 换镜像源1.4 关闭息屏休眠1.5 关闭自动更新2 开发环境2.1 go2.1.1 建立软件目录并安装软件2.1.2 建立go工作目录2.1.3 配置环境变量2.2 mysql2.2.1 安装2.2.2 建立对外用户并更改密码2.2.3 修…

江苏三年制专转本法学类考纲配套课程网课题库

江苏三年制专转本法学类考纲配套课程网课题库1、江苏专转本的考试科目都有哪些? 2022年开始江苏专转本成绩主要由语文/数学英语/日语专业课三科的成绩构成,满分500分。分别给大家解释一下 语文/数学:满分150分(文科考语文&#xf…

[源码解析]socket系统调用上

文章目录socket函数API内核源码sock_createinet_createsock_allocsock_map_fd相关数据结构本文将以socket函数为例,分析它在Linux5.12.10内核中的实现,先观此图,宏观上把握它在内核中的函数调用关系:socket函数API socket 函数原…

王小川,才是深「爱」李彦宏的那个人?

在推出中国首个类ChatGPT产品「文心一言」后,李彦宏在接受专访时断言,中国基本不会再出一个OpenAI了,「创业公司重新做一个ChatGPT其实没有多大意义,基于大语言模型开发应用机会很大,没有必要再重新发明一遍轮子。」 听…