强化学习驱动的低延迟视频传输

news2024/11/24 16:25:17

随着视频会议、视频直播的流行以及未来AR/VR业务的发展,低延迟视频传输服务被广泛使用,但视频质量(QoE)还不能满足用户要求。那么近年来新兴的AI神经网络是否能为视频传输带来智能化的优化?今天LiveVideoStack大会北京站邀请了来自北京邮电大学的周安福教授,为我们分享关于使用强化学习方法进行低延迟视频传输的相关研究成果 。

文/周安福

编辑/LiveVideoStack

大家好,我是来自北邮的周安福,非常高兴有机会和大家分享我们的工作。由于我身在学术界,所以还请各位工业界同仁多提宝贵意见。我本次报告的标题为:强化学习驱动的低延迟视频传输研究

在正式开始前想先简单提一句,自1986年至今,在四十多年的时间里,视频传输拥塞控制一直是从业者们面临的一个经典问题。随着近年来新兴AI产业的发展与升级,我们自然希望利用人工智能方法对视频传输工作进行优化,但要如何才能使它们结合得更好?我们的整个研究过程并不是一帆风顺的,遇到了很多问题困难,此次主要将针对这些问题和我们提出的解决方案和大家进行分享,力求使强化学习方法真正为视频传输带来帮助,对产业界应用带来助益。

-01-

背景与问题

68ab41fd03457eef86ae93a479c53a42.png

5a09b9e364dff15db1e288de20bf6459.png

此次报告将分三个部分,首先快速介绍背景与问题。我们知道,随着实时视频和实时交互视频业务的持续增长,视频通话、视频会议、VR和4K全息视频、机器人远程操作等应用场景可能占到了当今互联网流量的80%以上。虽然业务量越来越大,但视频质量却不能令人满意。可能大家都曾遇到视频电话卡顿、画面质量低等问题。在此背景下,我们希望了解在实际的商业网络中,低QoE问题究竟有多严重

28701214bf3935d22a37e9b44b58589f.png

我们与淘宝直播合作开展了现网测量研究。测量包括57个国家共749个城市,测量的会话场次和会话时间数量级达到百万,大量的数据集被收集。

07d34c8f241d223dafa99a648068c15b.png

同时我们也搭建了一些实验平台和评测系统辅助进行分析,具体情况见上。

b7cc5b732c75055934aabef67ba59ad4.png

最终的分析结论为:如果将丢包1%或RTT300毫秒作为低QoE标准,那么测量数据中约20%的会话存在低QoE问题,即使基础的网络条件良好但视频质量仍然不佳,情况类似于道路修得宽但汽车跑得慢,想必只能是司机技术的问题。

4e1419ef3bf2aa230b76304010338073.png

那么要如何解决该问题?解决的关键在于传输方法,我们发现TCP、UDP等传输协议一般均是基于经验手工设计,在现代网络中存在带宽估计过于保守、无法适应网络的瞬时变化、在新的网络条件中缺乏灵活性等问题。根本原因在于实时视频场景对网络的带宽要求越来越高,对延迟要求越来越低,同时现代互联网变得高度异构和动态,难以预测。

8a82e72758a1e4dc8cac6f9c9b13ae4d.png

在此具体介绍互联网的高度动态性,目前网络带宽的变化可以说是呈毫秒级,它的状况类似于股市。大量用户传输数据带来的带宽变化相当难以预测,导致以固定规则约束难度相当大。

caad7b5eff915e45d9b19999d6be8e5a.png

我们希望通过强化学习方法来解决这个问题。相信大家可能从AlphaGo开始了解了强化学习,它的本质为不局限于固定规则,以数据驱动,用试错法来间接学习。

这个思路可以被应用在视频传输业务上,通过使AI不断传输视频来学会应对网络变化。其次,在视频传输过程中,一个决定可能对当下和未来都会造成影响。例如传输过程中视频分辨率的切换对网络状况会持续造成影响。强化学习方法不同于监督学习,它通常规划远期结果,适用于以上情况。

-02-

强化学习+低延迟视频:从理论到实际

2.1 离线学习

刚才提到,在使用人工智能优化视频传输的实践过程中我们遇到了很多问题,接下来将向大家具体介绍这些问题和困难。在此之前先简单回顾视频会议/通话系统的哪些要素决定了传输质量。

872649a5861ff86a81be431c7ffc220c.png

从上图可以看到,一个视频源被编码后分为各个视频帧,视频帧被分别打包进行传输,各个数据包通过网络到达接收端,最后经过解码、渲染,被还原为视频画面呈现在观众眼前。

其中有哪些环节决定了用户的体验质量呢?我理解有两点:首先为传输,它的本质为对链路可用带宽进行估计,并将结果发送至编码器,通过与编码器的协作达成视频码率的自适应调整。可想而知,如果协作较好,那么视频播放会比较流畅。

2c927b5b8862192dbf1014f9923aec9b.png

但实际上双方并不够协调。以上为传输实例,图中的黑色线条为真实网络带宽,GCC为Google的视频传输拥塞控制算法,蓝线代表使用它传输非视频文件的速率,过程中不涉及编解码,红线代表它传输视频画面的速率,过程中涉及使用编码器。

通过分析可以看出,在图中M1、M2点网络出现拥塞时,随着带宽下降,红线的视频传输速率发生不正常的大幅下降,原因在于编码器落后于传输层流控。在M3点网络带宽回升时,相较于蓝线,红线的视频传输速率上升过于缓慢,原因在于随着视频传输速率降低,它的帧率也发生降低,正在传输的数据包也变少,这干扰了GCC的带宽估计,使传输速率无法快速回升。

8192b708ba1e0c1eca0cba6ed7b9cf6a.png

我们设计了一个强化学习模型来加强二者的协调性。该模型取消了传输层的主导作用,由神经网络负责收集传输层和编码层信息,计算编码器和传输层的最佳协同码率。

528eab4efebb53a81decac8bba2f126e.png

b3f6dc90f5d1c5796376458209a41837.png

以上为神经网络的建模方法和模型结构,各位如果感兴趣可以查阅我们的论文。

2b4bc0fed9f5306abff84ad98038fe6b.png

值得一提的是,针对视频传输我们对神经网络设计了新的训练方法,首先在惩罚函数的设计上注意额外惩罚视频卡顿,防止高估视频带宽造成视频卡顿。其次是倾向于惩罚码率跳变,保证用户观看体验流畅。第三是注意将监督学习过程中的专家标签调整到略低于网络实时带宽,保证优化结果理想。

fe99317371b4b0651e1105424c6dd0d2.png

以上为神经网络方法(Concerto)的性能测试结果。左侧图中绿线为真实带宽,蓝线代表神经网络方法传输视频的速率。可以看到,蓝绿两条线贴合较紧密,Concerto可以较好的预测可用带宽,取得23%的QoE收益。它带来的吞吐量收益是37%,同时帧延迟和其他传输方法相比几乎没有差距。

270e1d3793d3530f39f9b8862218e55e.png

我们对研究成果感到十分兴奋,并且进行了实际试用。不过虽然Concerto在仿真器中训练后模拟的结果较好,而测试环境一旦更换为实际的testbed,优化效果就出现显著下降。在仿真器和真实环境下算法性能不一致,这是强化学习方法面临的经典“仿真-现实差异”问题。

d251640ebc87236261ec4876dae5f3d6.png

实际在强化学习的训练过程中,由于真实的网络带宽状态瞬息万变,仿真器难以“全真”模拟网络的动态性,并且模拟环境存在时效性,随着网络环境的不断发展更新,模型在仿真器中学习的经验面对实际环境可能变得“过时”。

2.2 从离线到在线

453cdb28ec3d25ca693db5eb5ec893c2.png

因此相较于原流程先收集用户trace,离线在仿真器中学习后再部署,我们思考让AI算法直接在实际网络中学习,面对真实的网络环境。

这也是第二部分从离线到在线的分享内容。该思路是简单并符合直觉的,不过在落地过程中面临很多挑战。

3643f9949588082b4f7bda5222e1508f.png

首先是如何从真实网络海量并发的视频会话中学习?传统的离线学习需要收集大量trace,例如视频会话的丢包、吞吐量,将其聚合后在仿真器中进行训练。而在线学习无法提前收集trace,并且视频会话是大量同时并发进行的,因此如何将序列化的离线学习转变为并行的在线学习是亟需解决的问题。

82f6f4fbdafee73a6cc1da68fe4653d3.png

针对该问题我们提出了两阶段的在线学习架构,第一个阶段针对每个用户训练个人模型,第二阶段考虑不同的权重将各个个人模型进行聚合,最终得到总结全部经验的模型。聚合后的模型再被投放到各用户运行进行迭代,最终形成稳定版本。

18eb62a2afa3e407c138d52dd3d8378b.png

以上方法的优势是通过加权聚合学习可以做到千人千面的个性化优化,针对5G用户或家庭WIFI等不同的环境,可以利用提高特定环境模型权重的方法进行定制优化。

adf23c9e2743339592c3608eec0c3cbd.png

第二个挑战是,与在仿真器环境下神经网络可以完全控制传输层传输这一情况不同,真实系统中编码器的数据传输要依据实际的画面和网络情况变化,它无法忠实执行神经网络的策略,这为在线训练带来了不利影响。

27ed029b58542a389bb5d3e3f48e6e19.png

针对这个问题,我们考虑将实际环境中编码器执行神经网络决策的偏差再一次输入到神经网络中,使神经网络了解并学会容忍决策偏差。

a35c2419ac84f47c6f4dd88b096dc485.png

新的训练方法随之形成,与原方案的对比情况见上图,其中绿色点为离线方案,红色点为在线方案。可以看到,新方案的对视频的优化性能提升很大。

d2860aae325751a9db7b728f83e65523.png

以上是利用训练后的神经网络在淘宝直播平台上的视频传输性能测试结果。可以看到丢包率、RTT和卡顿率都出现了减少。

2.3 从不可靠到可靠

9c237f969e6785ab756744c34da4a76c.png

接下来看最后一个问题。由于强化学习方法本质上需要试错,那么它不总是可靠的,在某些场景下会”翻车“。在使用它优化视频传输时也出现了对部分视频会话场景优化效果不好的情况。

经过分析发现,在这类场景下,虽然基于强化学习的方法在传输层具有明显收益,但这种收益未能转化成应用层的视频QoE收益,反而出现了帧延迟、帧抖动和卡顿率增长。

87867f2f9ba34729e8254451fb413190.png

我们剖析了问题成因,发现强化学习方法带来了长尾效应,造成传输时可能发生少量数据包发送延迟大的问题。然而,这些少量数据包的大延迟导致整帧画面的过长等待。

f303671bc9e0d1eaa5516483947eba27.png

究其根本在于,强化学习模型通过“试错”的方法来进行训练。具体分析见上图,其中黑线代表网络带宽,黄线代表GCC算法的传输速率,可以看到它稳定处于可用带宽下方。绿线代表强化学习模型的传输速率,可以看到有时它的速率会严重超出或低于可用带宽,这实际是算法在进行“试错”,这种Overshooting造成了视频QoE的严重下降。

a2394001c1f1600e8c74f6d995e4c5c3.png

我们希望强化学习模型更加可靠,尽量避免长尾效应。因此,考虑到规则方案的确定性能力,我们利用这个特性为强化学习方法设置了一个传输速率的最低门槛,通过将网络信息同时输入到两种算法中,融合二者形成新的神经网络来进行决策。

99d6d0419f72e11ed8dd26a7b87755d8.png

前人曾经做过类似工作,它被称作决策级融合,通过收集规则和强化学习算法分别的预测结果来做出最终决策,但整个过程显得生搬硬套,二者只能算作一种无机结合。为了使二者能深度融合,我们采用了一种特征级融合思路,通过将GCC规则算法黑盒化为神经网络,结合二者的神经元来进行训练。

dc1e321b6773d003f8d3122465492562.png

融合后的模型测试效果见上图,图中红线代表融合模型Loki,紫色线代表纯强化学习OnRL模型,可以看到长尾效应被彻底消除,Loki模型将95分位卡顿率降低了26.3%~44.24%,这是特征级融合的好处,它与决策级融合模型的具体比较情况可以在上述论文成果中查阅。

2172da824173c76137df259311cfb35f.png

在此展示特征级融合效果的一个showcase,详细介绍也可以参考我们的论文成果。其中左侧第一个情景为带宽升高,在该情景下应该由强化学习模型起主导作用,因为它可以充分利用有效带宽,可以看到RL模型的注意力较强。在相反的带宽降低的情景下,应该由规则算法做主导,避免激进决策影响传输质量,右侧图中展示的实际情况也是如此。

-03-

现网验证

2bec42904dc70a2738ac9b4bbd3ee00b.png

最终简单介绍现网验证情况,首先上图为实验情况,我们将GCC改为强化学习驱动的RTC controller,右侧为效应场景。

10b32bd7f13775300af8dda1c1cc38e8.png

Loki模型在超过一亿的视频场景下进行了大规模实际部署,可以看到它在不同情况下将卡顿率降低了13.98%~27.27%,将视频质量提升了约1%~5%。

93937e0a46f85af364cc33107f2960ea.png

该优化服务收获了很多用户,也获得了阿里巴巴和中国电子学会的相关奖项。

62986dc1fbef97b0e65e23c11873c27c.png

最后进行未来展望。除了视频质量提升外,各位从业者对成本控制可能也较为关注。当前网络大的发展趋势是向Web 3.0来演进,由于它是分布式的,用户也会拥有自己的数据。我们在思考是否可以让用户也参与视频的直播和分发。

这与传统p2p的思路一致,不过p2p在设计时并未考虑视频传输的延迟和苛刻的质量要求,如何使用p2p方法把视频传输做好是我们当前主要的探索方向。

728be9959be10cfba0d877f02a3de73b.png

第二个方向是如何做好远程控制,我们知道无论如何优化,网络总是存在延迟卡顿的,如何在上层消除延迟带来的不利影响,真正实现实时远程操控也是我们正在探索的问题。

bc053a17a0d64b5a394d59f37ed250f3.png

刚才分享的内容均可以从以上论文中查阅,也欢迎大家就有关问题进行交流,今天我的分享到此结束,谢谢大家!


befd33684e7fe88e232e004efed2c692.png

扫描图中二维码或点击“阅读原文 

查看更多LiveVideoStackCon 2023上海站精彩话题

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

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

相关文章

macos m1 pip install lightgbm error

MacOS M1电脑,执行 pip install lightgbm 错误如下: 尝试如下操作: 参考链接如下: https://github.com/Microsoft/LightGBM/issues/1324 brew install cmake brew install gcc git clone --recursive https://github.com/Micro…

Unity之OpenXR+XR Interaction Toolkit接入HTC Vive解决手柄无法使用的问题

前言 随着Unity版本的不断进化,VR的接口逐渐统一,现在大部分的VR项目都开始使用OpenXR开发了。基于OpenXR,我们可以快速适配HTC,Pico,Oculus,等等设备。 今天我们要说的问题就是,当我们按照官方的标准流程配置完OpenXR后(参考:Unity之OpenXR+XR Interaction Toolkit…

西门子S7-200 CPU输入/输出接线说明

总结来看,S7-200系列PLC提供4个不同的基本型号的8种CPU,其接线方式也可大致分为6种: 1.CPU SR20接线 2.CPU SR40接线 3.CPU CR40接线 4.CPU ST40接线 5. CPU SR60接线 6. CPU ST60接线 除了CPU外,我们还需要了解200smart PLC的数…

排序算法大总结(插入、希尔、选择、堆、冒泡、快速、归并、计数)

1. 排序概要2. 插入排序直接插入排序希尔排序(缩小增量排序) 3.选择排序直接选择排序堆排序 4. 交换排序冒泡排序快速排序霍尔版本(hoare)挖坑法双指针版本快排优化快速排序非递归 5. 归并排序归并递归版本归并非递归版本 6.计数排…

物联网开发项目中具备哪些特点?

物联网开发是一项由设备、传感器、系统和应用程序组成的复杂技术。许多公司已经制定了计划,准备将物联网技术整合到他们的系统中,以帮助提高效率和生产力。在许多方面,物联网都是一项技术投资,但与其他投资相比,它可以…

RFID如何提升工业物流管理效率?

RFID技术目前已经在工业物流行业中广泛应用,企业只要将附带产品信息的RFID标签贴在货物上,利用工业读写器,可以快速准确地读取货物信息,提高仓库管理效率。 RFID如何提升工业物流管理效率? 1、跟踪货物 RFID技术可帮助企业跟踪货…

声表面波滤波器圆片级互连封装技术研究

陈作桓,于大全,张名川 厦门大学,厦门云天半导体科技有限公司 摘要 射频前端模块是无线通信的核心,滤波器作为射频前端的关键器件,可将带外干扰和噪声滤除以保留特定频段内的信号,满足射频系统的通讯要求…

B站刚崩,唯品会又崩:亿级用户网站的架构硬伤与解决方案

说在前面 在40岁老架构师尼恩的数千读者的社区中,一直在指导大家简历和职业升级。前几天,指导了一个华为老伙伴的简历,小伙伴的优势在异地多活,但是在简历指导的过程中,尼恩发现: 异地多活的概念、异地多活…

Segment Anything模型用于地理空间数据

原文地址:https://samgeo.gishub.org/examples/satellite/ 此笔记本通过几行代码展示了如何使用 Segment Anything Model (SAM) 来使用分段卫星图像。确保为此jupyter notebook使用 GPU 运行时。 安装依赖 取消注释并运行以下单元格以安装所需的依赖项。 # %pip ins…

如何批量删除文件名称中的内容

网上有很多,这里自己要用就整理一下。 最好的还是知乎大佬张三丰的方式,放在参考内第一个链接。 首先打开命令行提示符 另一种方式按住WinR 输入powershell 弹出窗口: 我这里为了展示,在C盘新建了一个文件夹命名为1 里面新建了…

比起各式各样的AI应用,我们可能更需要AI for OS

刚刚过去的五月,是一个炙热的AI之夏。前有2023谷歌 I/O开发者大会“炸场”,开建AI全宇宙,后有2023微软Build大会,一切都与AI相关。 AI被谷歌和微软应用到各个产品,落地速度一路狂飙。不过,应用层面&#xf…

开启未来科技之门:选择IT相关专业,迈向成功的高考生小贴士!

毕业在即,许多即将高考的学生正面临选择未来专业的重要决策。在当今数字化时代,IT行业成为一个备受瞩目的领域,为学生们提供了广阔的就业前景和丰富的发展机会。本文将为高考生提供一些关于选择IT相关专业的小贴士,以帮助他们做出…

写对二分查找不是套模板并往里面填空,需要仔细分析题意

视频讲解:《算法不好玩》二分查找专题 (已经录制的部分,能够帮助大家完全搞懂二分查找算法,非常适合初学的朋友们)。 2022 年 12 月 27 日补充:有时间的话请大家先看上面的视频,2 倍速看完就好…

JAVA基础 - 使用CommandLine解析命令行参数

它是什么 commons-cli 是一个强大而的开源的命令行参数传递与解析的解决方案,用于接收MAIN方法的args参数。可以通过设置短选项(即选项名简写)、长选项(即全写)、设置是否需要携带选项参数(指定为 false 时…

jenkins python api与json api不同

查看jenkins的python api与json api,感觉两者相差不多,但还是有所区别,所以用BeyondCompare进行对比分析。 1、jenkins base url的api对比 左侧的为:http://server:port/jenkins/api/python?prettytrue 右侧的为:h…

提示工程师指南4-ChatGPT Prompt Engineering

ChatGPT Prompt Engineering 在这个部分,我们将介绍 ChatGPT 的最新提示工程技术,包括技巧、应用、限制、论文和额外的阅读材料。 主题: 与 ChatGPT 对话 Python 笔记本 请注意,本部分正在紧密开发中。 文章目录 ChatGPT Promp…

【爬虫】3.4 爬取网站复杂数据

1. Web服务器网站 进一步把前面的Web网站的mysql.html, python.html, java.html丰富其中 的内容&#xff0c;并加上图形&#xff1a; mysql.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>my…

手把手教你看懂51单片机原理图

最近当了单片机课设的助教,又再次接触了51单片机。发现初学者还看不太原理图&#xff0c;不能理解单片机 led灯&#xff0c;蜂鸣器&#xff0c;数码管是怎么操作的。现在结合原理图讲解一下怎么操作这些外设模块&#xff01;我们就以一些初始化代码进行讲解。 注&#xff1a;这…

开始使用Vue 3时应避免的10个错误

本文首发于微信公众号&#xff1a;大迁世界, 我的微信&#xff1a;qq449245884&#xff0c;我会第一时间和你分享前端行业趋势&#xff0c;学习途径等等。 更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi &#xff0c;包含一线大厂面试完整考点、资料以及我的…

华为OD机试真题 Java 实现【在字符串中找出连续最长的数字串】【2023 B卷 100分】,附详细解题思路

一、题目描述 输入一个字符串&#xff0c;返回其最长的数字子串&#xff0c;以及其长度。 若有多个最长的数字子串&#xff0c;则将它们全部输出&#xff08;按原字符串的相对位置&#xff09;。 本题含有多组样例输入。 数据范围&#xff1a; 字符串长度 1≤n≤200 &…