论文阅读[2022sigcomm]GSO-Simulcast Global Stream Orchestration in Simulcast Video

news2024/9/24 23:29:07

GSO-Simulcast Global Stream Orchestration in Simulcast Video

作者:
在这里插入图片描述

1 背景

1视频会议成为全球数十亿人远程协作、学习和个人互动的核心,这些不断增长的虚拟连接需求推动视频会议服务的蓬勃发展
2当前用户越来越希望在低延迟下看到更高质量的视频,对大型会议的需求越来越多,同时希望服务要容易获得
3视频停顿、声音停顿和视频模糊成为当前视频会议服务的前三大问题

2 挑战

1在大规模多方视频会议中提供高质量的实时媒体流
2会议的流畅性受到网络条件最差(慢链接)的参与者的严重影响
3现有方法例如转码会给服务器带来很大的负担,SVC存在编解码器兼容性问题,当前Simulcast存在视频和网络不匹配、易受上行链路拥塞的影响、在大规模会议中可管理性差的问题

3 贡献

1提出了第一个在全球范围内广泛部署的视频会议系统GSO-Simulcast,在大规模部署中显著改善了所有关键的QoE指标
2提出Knapsack-Merge-Reduction算法,大大减小计算消耗

4 关系工作与问题介绍

4.1 用户报告的问题

报告的前三大问题是视频停顿video stalls (29%)、声音停顿video stalls (23%)和视频模糊blurred videos (18%)
所有这些问题都是由慢链接问题引起的。

在这里插入图片描述

4.2 慢链接问题

多方视频会议面临的最大挑战之一是不同参与者所面临的异构网络条件
客户端以不同的比特率对视频源进行多次编码,并将这些流并行发送到SFU(selective-forwarding unit)服务器。SFU服务器根据接收方的网络约束为每个接收方选择一个流来转发。
在这里插入图片描述
具体而言:
A.当发送者推送一个没有人订阅的流时,宝贵的网络资源就被浪费了
B.发送方不知道接收方的网络约束时,容易出现视频和网络不匹配
C.当接收方的下行带宽有限时,来自不同发送方的流被迫相互竞争
在这里插入图片描述

5 系统建模

5.1 服务架构

在这里插入图片描述

在这里插入图片描述

5.2控制算法

算法在 (Knapsack-Merge-Reduction背包-合并-缩减)操作的迭代循环中执行,每一步处理一组特定的约束
目标:控制算法的目标是以最大的QoE效用满足每个订阅者的需求,同时遵守三组约束:网络带宽约束、编解码器能力约束和订阅约束。
网络带宽约束:对客户端i,订阅的流比特率之和不得超过 在这里插入图片描述
,而发布的流比特率之和不得超过在这里插入图片描述

编解码器能力约束:对于每种分辨率,publisher可以以不同的细粒度比特率发送流,但一次只能发送一个流
订阅约束:一个订阅者(subscriber) 只允许从每个发布者(publisher) 中订阅至多一个流

A. Knapsack

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

B. Merge

Step1的结果也等价地确定了包含要求每个发布者端i提供服务的订阅者和流对的集合
在这里插入图片描述

C. Reduction

在这里插入图片描述

5.3 获取全局状况

订阅信息:参与者通过信令通道将其订阅意图传递给会议节点。
编解码器能力信息
编解码能力信息是通过SDP协商过程收集的;
会议节点收集视频编解码器类型和支持的流数量、流分辨率和每种分辨率下的最大比特率
在协商中我们为每个流解析分配一个不同的同步源(SSRC),以促进反馈控制。
带宽信息
在GSO中依赖于发送端带宽估计,它比接收端估计提供更好的精度
下行网络带宽直接从接入节点上报给会议节点
上行带宽在客户端测量的,每个客户端在RTCP数据包中报告带宽信息
带宽根据[27](RTCP message for Receiver Estimated Maximum Bitrate)

5.4 反馈控制

GSO-Simulcast的控制器找到了一个新的解决方案,就会发送控制反馈来为每个发送参与者配置流
控制反馈采用临时最大媒体流比特率请求(TMMBR)消息格式
如果为了不同的目的重用TMMBR,就会产生潜在的歧义。为了消除这种歧义,我们在应用程序定义的类型为204的RTCP数据包中发送TMMBR以进行流编排
因为我们将不同的SSRC分配给不同分辨率的流,所以TMMBR消息中的SSRC字段允许我们指定要配置哪个流
在接收到TMMBR后,发送方会发出相应的临时最大媒体流比特率通知(TMMBN)消息。如果接入节点没有收到相应的TMMBN消息,则重新发送TMMBR消息,从而触发另一个TMMBN的传输

5.5 管理流

A.流优先级

通过为来自不同参与者的流分配不同的QoE效用权重来轻松合并流优先级。例如,我们可以给主持人或演讲者的流更高的QoE权重。

B.对一个发布者的多流订阅

有时接收参与者需要订阅来自发送参与者的多个流。
将一个虚拟发布者X '添加到发布者集合中,通过将X和X '视为不同的发布者,使用相同的问题公式来解决下行链路约束。在Step2的开始将X '与X合并,以便我们再次将它们视为相同的发布者。

6实验结果

6.1控制算法

对比暴力算法
指标:计算时间和QoE optimality
QoE最优性是用GSO控制算法与暴力破解算法在Eq.(1)中QoE总和的比值来衡量的。
在这里插入图片描述

6.2实时瞬态响应

实验方法:20s之后我们将下行带宽限制分别设置为750Kbps、625Kbps、500Kbps和375Kbps,57s后带宽恢复。
GSO-Simulcast能够快速适应带宽的突然变化。
GSO-Simulcast支持的细粒度比特率的好处,在所有情况下,它都完美地符合带宽限制下的视频比特率,从而实现高带宽利用率。
在这里插入图片描述

6.3慢连接实验

高丢包、有限的带宽和抖动
在这里插入图片描述
在这里插入图片描述

6.4客户端的CPU使用率

钉钉App在华为P30上测量的三种不同应用场景(视频会议、音频会议、屏幕共享)下(GSO版本与非GSO版本)的平均CPU利用率
在这里插入图片描述

6.5部署

统计数据每天抽取100万个会议样本,总数据集超过1亿个会议样本
Video stall, voice stall, and video framerate
随着GSO-Simulcast的部署,这三个指标都得到了改善。随着部署规模的扩大,改进变得更加显著
在这里插入图片描述
用户满意度得分(用户积极反馈的百分比)随着部署显著提高(7.2%)
编排频率:GSO-Simulcast控制算法呼叫间隔的CDF,呼叫间隔是两个连续控制事件之间的时间间隔。平均每1.8秒编排一次流。
在这里插入图片描述
在这里插入图片描述

7部署的经验和教训

避免视频质量波动

慢速链路的带宽波动可能导致GSO-Simulcast频繁地来回调整视频比特率,从而导致视频质量振荡,只有对带宽测量有足够的信心时才升级比特率。

寻址带宽高估

类似GCC拥塞控制往往高估了一个小流的链路带宽;通过发送探测数据包,以探测带宽的上限。

减少消息报告频率

实现了一个时间触发器和一个事件触发器。时间触发器定期更新测量值,而事件触发器仅在带宽发生重大变化时才触发更新带宽。

保护音频

需要为音频信号留下足够的带宽空间。当获得带宽测量时,从中减去一个保护带宽,以进一步避免视频流占用音频流的带宽。

8评价

8.1优点

该系统成功在全球范围内广泛部署,扩展性优秀、服务易得
原理较简单,计算开销并不大

8.2缺点

缺乏对会议延迟指标的实验结果
缺乏针对特定场景的深入实验分析,例如用户处于移动状态的情况
对目标QoE建模没有介绍

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

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

相关文章

【C/PTA —— 14.结构体1(课外实践)】

C/PTA —— 14.结构体1(课外实践) 一.函数题6-1 选队长6-2 按等级统计学生成绩6-3 学生成绩比高低6-4 综合成绩6-5 利用“选择排序算法“对结构体数组进行排序6-6 结构体的最值6-7 复数相乘运算 二.编程题7-5 一帮一7-6 考试座位号 一.函数题 6-1 选队长…

【Selenium+Webmagic】基于JAVA语言实现爬取js渲染后的页面,附有代码

事先声明 笔者最近需要查看一些数据,自己挨个找太麻烦了,于是简单的学了一下爬虫。笔者在这里声明,爬的数据只为学术用,没有其他用途,希望来这篇文章学习的同学能抱有同样的目的。 枪本身不坏,坏的是使用枪…

20:kotlin 类和对象 --泛型(Generics)

类可以有类型参数 class Box<T>(t: T) {var value t }要创建类实例&#xff0c;需提供类型参数 val box: Box<Int> Box<Int>(1)如果类型可以被推断出来&#xff0c;可以省略 val box Box(1)通配符 在JAVA泛型中有通配符?、? extends E、? super E&…

peft / bitsandbytes包windows安装问题

peft / bitsandbytes包windows安装问题 环境版本安装peftCUDA Setup failed despite GPU being available报错信息解决方法 ImportError: cannot import name is_npu_available from accelerate.utils报错信息解决方法 AttributeError: NoneType object has no attribute cuDev…

linux部署前端静态页面(实战)

Linux基本命令&#xff08;学习笔记&#xff09;零基础入门linux系统运维_linux find exec rm_Z_Xshan的博客-CSDN博客 如果linux不熟可以看我之前写的入门教程 感谢支持&#xff01;&#xff01; 一、服务器 这里去购买云服务器&#xff0c;如果是练习可以用虚拟机&#xff…

内网穿透的应用-公网环境下移动端通过群晖管家+cpolar远程管理家中本地局域网内黑群晖设备

白嫖怪狂喜&#xff01;黑群晖也能使用群晖管家啦&#xff01; 文章目录 白嫖怪狂喜&#xff01;黑群晖也能使用群晖管家啦&#xff01;1.使用环境要求&#xff1a;2.下载安装群晖管家app3.随机地址登陆群晖管家app4.固定地址登陆群晖管家app 自己组装nas的白嫖怪们虽然也可以通…

软件设计中如何画各类图之五用例图(Use Case Diagram):系统功能需求与用户交互的图形化描述

目录 1 前言2 用例图基本介绍3 用例图的符号及说明3.1 用例&#xff08;Use Case&#xff09;3.2 参与者&#xff08;Actor&#xff09;3.2 关系&#xff08;Relationships&#xff09; 4 画用例图的步骤4.1 确定系统边界4.2 识别参与者4.3 定义用例4.4 绘制关系4.5 完善细节 5…

CopyOnWriteArrayList怎么用

什么是CopyOnWriteArrayListCopyOnWriteArrayList常用方法CopyOnWriteArrayList源码详解CopyOnWriteArrayList使用注意点CopyOnWriteArrayList存在的性能问题CopyOnWriteArrayList 使用实例基本应用实例并发应用实例 拓展写时复制 什么是CopyOnWriteArrayList CopyOnWriteArra…

2023经典软件测试面试题

1、问&#xff1a;你在测试中发现了一个bug&#xff0c;但是开发经理认为这不是一个bug&#xff0c;你应该怎样解决&#xff1f; 首先&#xff0c;将问题提交到缺陷管理库里面进行备案。 然后&#xff0c;要获取判断的依据和标准&#xff1a; 根据需求说明书、产品说明、设计…

2024清理软件排名第一的是CCleaner

CCleaner2024版是一款专业好用的系统优化和隐私保护工具。CCleaner官方版主要用来清除Windows系统不再使用的垃圾文件和使用者的上网记录以空出硬盘容量&#xff0c;按工具同时注重保护用户隐私&#xff0c;被誉为“世界上最受欢迎的PC清洁剂”。 CCleaner下载如下&#xff1a…

【23真题】押题卷的漏网之鱼!

今天分享的是23年中国计量大学805的信号与系统试题及解析。第二大题的第1小题这类题&#xff01;太经典了&#xff0c;他那个相位图像&#xff0c;怎么看都是24真题的样子图片。但是我出的话&#xff0c;会把幅频特性从三角变为矩形&#xff0c;再加上个信号是否无失真的判断。…

JavaEE进阶学习:Spring Boot 配置文件

1.配置文件的作用 整个项目中所有重要的数据都是在配置文件中配置的&#xff0c;比如&#xff1a; 数据库的连接信息&#xff08;包含用户名和密码的设置&#xff09;&#xff1b;项目的启动端口&#xff1b;第三方系统的调用秘钥等信息&#xff1b;用于发现和定位问题的普通…

【Unity动画】Unity 动画播放的流程

本文以2D为案例&#xff0c;讲解Unity 播放动画的流程 准备和导入2D动画资源 外部导入序列帧生成的 Unity内部制作的 外部导入的3D动画 2.创建动画过程 打开时间轴Ctrl6 选中场景中的一个未来需要播放动画的物体 回到时间轴点击Create一个新动画片段 拖动2D动画资源放入…

Spark---Spark on Hive

1、Spark On Hive的配置 1&#xff09;、在Spark客户端配置Hive On Spark 在Spark客户端安装包下spark-2.3.1/conf中创建文件hive-site.xml&#xff1a; 配置hive的metastore路径 <configuration><property><name>hive.metastore.uris</name><v…

景联文科技解读《2023人工智能基础数据服务产业发展白皮书》,助力解决数据标注挑战

前段时间&#xff0c;国家工业信息安全发展研究中心发布《2023人工智能基础数据服务产业发展白皮书》&#xff08;以下简称“白皮书”&#xff09;。 《白皮书》指出&#xff0c;2022年&#xff0c;中国人工智能基础数据服务产业的市场规模为45亿元&#xff0c;预计今年将达到5…

Mybatis异常org.apache.ibatis.binding.BindingException: Parameter “xxx“ not found

问题1: 可能是 mybatis 的xml&#xff0c;对应的mapper接口缺少Param注解&#xff0c;或者Param注解的value与xml的不一致 切记只要参数不是一个集合类型向下图或者多个参数值就要加Param注解 问题2: mybatis的xml&#xff0c;存在多余的注释。注释中包含#{}、${}。注释掉的代…

游戏开发增笑-扣扣死-Editor的脚本属性自定义定制-还写的挺详细的,旧版本反而更好

2012年在官方论坛注册的一个号&#xff0c;居然被禁言了&#xff0c;不知道官方现在是什么辣鸡&#xff0c;算了&#xff0c;大人不记狗子过 ”后来提交问题给CEO了&#xff0c;结果CEO百忙之中居然回复了&#xff0c;也是很低调的一个人&#xff0c;毕竟做技术的有什么坏心思呢…

Leetcode周赛374补题(3 / 3) - EA专场

不愧是EA的题&#xff0c;我最爱的模拟人生……好难&#xff0c;呜呜 目录 1、找出峰值 - 暴力枚举 2、需要添加的硬币的最小数量 - 思维 贪心 3、统计完全子字符串 - 滑窗 分组循环 1、找出峰值 - 暴力枚举 2951. 找出峰值 class Solution {public List<Integer> …

Video Studio会声会影2024中文直装旗舰版

Corel Video Studio会声会影2024中文直装旗舰版是一款很流行的视频编辑处理软件&#xff0c;由于其简单易用&#xff0c;且功能不错&#xff0c;在国内拥有众多使用者&#xff0c;小编之前给大家分享过Corel Video Studio Ultimate会声会影2024旗舰版中文版&#xff0c;今天再为…

知识蒸馏的蒸馏损失方法代码总结(包括:基于logits的方法:KLDiv,dist,dkd等,基于中间层提示的方法:)

有两种知识蒸馏方法&#xff1a;一种利用教师模型的输出概率&#xff08;基于logits的方法&#xff09;[15,14,11]&#xff0c;另一种利用教师模型的中间表示&#xff08;基于提示的方法&#xff09;[12,13,18,17]。基于logits的方法利用教师的输出作为辅助信号来训练一个较小的…