CN118175393A - 基于尾延迟探测和帧生成的云游戏视频传输方法 - Google Patents
基于尾延迟探测和帧生成的云游戏视频传输方法 Download PDFInfo
- Publication number
- CN118175393A CN118175393A CN202410257614.1A CN202410257614A CN118175393A CN 118175393 A CN118175393 A CN 118175393A CN 202410257614 A CN202410257614 A CN 202410257614A CN 118175393 A CN118175393 A CN 118175393A
- Authority
- CN
- China
- Prior art keywords
- pruning
- delay
- frame
- model
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 title claims abstract description 37
- 238000001514 detection method Methods 0.000 title claims abstract description 13
- 238000013138 pruning Methods 0.000 claims abstract description 112
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 46
- 230000002787 reinforcement Effects 0.000 claims abstract description 37
- 230000003044 adaptive effect Effects 0.000 claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 230000009471 action Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 14
- 238000012549 training Methods 0.000 claims description 14
- 230000003287 optical effect Effects 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 8
- 230000001934 delay Effects 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 7
- 238000009877 rendering Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 5
- 238000012821 model calculation Methods 0.000 claims description 4
- 230000015556 catabolic process Effects 0.000 claims description 3
- 238000006731 degradation reaction Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 3
- 230000000593 degrading effect Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 8
- 238000012360 testing method Methods 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000002679 ablation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种基于尾延迟探测和帧生成的云游戏视频传输方法,属于网络视频传输优化和图像生成技术领域,将强化学习和经过自适应剪枝的帧生成模型结合,绕过传统云游戏流程中对游戏视频帧的编码、网络传输、解码等阶段,达到补偿云游戏帧尾延迟的目的。本发明根据历史延迟的多维度特征,通过强化学习探测云游戏运行中的尾延迟。在尾延迟即将发生时,触发客户端的帧生成模型生成视频帧,以避免高尾延迟引起的云游戏卡顿问题,并且通过自适应剪枝算法对帧生成模型进行剪枝,以适应具有有限且异构算力的客户端设备。本发明可以减小云游戏中的尾延迟,缓解卡顿现象,提升云游戏的用户体验。
Description
技术领域
本发明属于网络视频传输优化和图像生成技术领域,更具体地说涉及云游戏环境中的强化学习技术、视频帧生成模型和模型剪枝技术。
背景技术
近年来云游戏越来越受欢迎,截至2023年其市值已经达到26.7亿美元,预计市场规模还会迅速增长,到2028年将超过130亿美元。云游戏将游戏存储和渲染卸载到云游戏服务器的行为减轻了游戏对客户端硬件的要求,但这种行为也在云游戏运行的流程中引入了一系列额外处理阶段。与传统本地游戏画面在本地渲染继而显示的流程相比,云游戏流程中额外引入了键鼠信令传输、游戏视频帧编解码、网络传输、排队等阶段,这些额外阶段不可避免地带来额外的延迟。在需要实时交互的游戏中延迟表现对用户体验至关重要,因此优化延迟实现超低延迟交互成为目前云游戏的主要挑战之一。
在现有的云游戏延迟优化方案中,大量研究特别关注百分之99分位的尾部延迟。这是因为单帧的尾部延迟会对用户的游戏体验产生较大影响,例如一个200毫秒的帧级延迟会导致应用层几秒的卡顿,这将导致用户体验严重下降。单帧的高延迟导致长时间卡顿的主要原因是视频帧间编码结构,后续帧需要先前帧到达才能解码,举例而言,如果因为网络波动出现高延迟帧,即高延迟帧的延迟组分中网络传输延迟严重增加,那么尽管其后续帧传输时网络条件恢复稳定,由于需要等待高延迟帧的到达,后续帧的延迟组分中排队延迟增加,导致总延迟仍处于较高水平,最终导致秒级的延迟。
针对云游戏中的高尾延迟问题,现有方案主要集中在自适应比特率调整算法,帧率调整算法,新增或调整网络组件功能等方面。目前最先进的比特率调整方法将基于学习的模型和基于规则的算法融合来自适应调整比特率,在网络不稳定时通过基于规则的方法做出保守的比特率决策,否则通过基于强化学习的方法充分探索网络带宽上限,期望在平均和尾部两种情况下都取得较好性能。帧率调整方法通常通过自适应协调帧率和网络条件来实现低延迟。另外在网络中添加或调整组件的方法希望直接在网络传输过程中实现优化,例如网络中的无线AP处添加模块,估计延迟信息并且将估计的延迟信息转换为反馈信息立即发回发送方,防止传统方法中反馈信息因为网络堵塞无法及时到达。这些方法集中在对云游戏引入的多个阶段中的一个进行优化,意味着这些方法仍然受限于云游戏现有架构的限制,这就导致由于网络物理延迟和视频编码延迟的存在,云游戏系统仍然需要至少承受一个RTT的延迟。因此上述发方法只能有限降低部分情况的延迟,仍然无法完全消除这些额外引入的延迟。
此外,现有方法中还存在延迟补偿这一处理思路,在服务器对游戏的未来状态进行预测,预先渲染游戏帧,这种方法可以提前一个RTT将游戏帧交付给客户端,此方法还实现了状态检查点和回滚功能,可以在预测发生错误时及时回滚游戏状态。延迟补偿思路能够对云游戏引入的多个阶段优化,甚至跳过部分阶段,达成较好的延迟优化效果,然而现有基于预渲染的方法有几个缺陷,首先是预渲染帧仍然需要通过网络传输到达客户端,在网络波动较大的情况下仍会产生较大传输延迟;其次,当预测发生错误时,预渲染和传输错误帧将浪费服务器算力和网络带宽;最后,预渲染技术需要针对不同游戏修改游戏引擎,对于当前游戏市场上众多种类游戏不具有普适性。
因此提出一种能够实现低尾部延迟的云游戏传输优化方案是本领域技术人员亟待解决的技术问题。
发明内容
本发明针对上述研究现状和存在的问题,提出了一种基于尾延迟探测和帧生成技术的云游戏视频传输方法以降低尾延迟,避免云游戏中出现卡顿现象,提升云游戏用户体验。
为实现上述目的,本发明具体技术方案如下:
基于尾延迟探测和帧生成的云游戏视频传输方法,所述方法如下:
提出在客户端使用视频帧生成技术进行延迟补偿,彻底绕过传统云游戏引入的额外阶段,跳出传统云游戏框架进行云游戏的延迟优化。利用客户端算力在客户端本地进行延迟补偿,使得延迟补偿不受网络波动因素影响。
实现基于强化学习的尾延迟触发器模块,通过历史编码信息和各个阶段的延迟信息预先感知网络尾延迟。在尾部延迟将要发生时触发帧生成实现延迟补偿。针对网络环境波动大的特点,在低延迟时段运行传统云游戏流程,保证良好画面质量和节省客户端算力,适时触发的延迟补偿以避免对游戏体验有灾难性影响的卡顿。
提出一种自适应模型剪枝算法。在如今客户端设备算力有限且异构的情况下,自适应模型剪枝算法使得帧生成模型在算力有限的瘦客户端上能够具有可用性并能够充分利用不同客户端异构算力。算法能够通用于如今基于编码器-解码器的帧生成、插帧、帧预测模型,算法剪枝模型卷积核,在保证模型输出质量的条件下有效降低对设备算力的需求。
所述方法的步骤包括:
1)游戏开始前游戏玩家设备通过云游戏服务器下载经过训练和自适应剪枝后的帧生成模型以及基于强化学习的尾延迟触发器。这些帧生成模型对算力要求不同,生成帧的质量有微小差异。用户设备根据自身算力选择使用的帧生成模型。
2)云游戏开始后,客户端向服务器传输键鼠信令,云游戏服务器根据客户端的操作指令进行游戏画面渲染,并采集、编码、拆分成若干数据包通过网络传输至客户端。同时客户端运行尾延迟触发器,收集历史各阶段延迟信息和编码信息,感知尾延迟。
3)在客户端尾延迟触发器未触发的情况下,客户端接收来自服务器的数据包,在单帧的数据包全部到达后将其解包为编码帧,再通过解码器解码获视频帧;如果客户端的尾延迟触发器感知到尾延迟,帧生成模型被触发,通过过去帧生成当前需要帧。直接使用生成的帧进行播放,补偿尾延迟。
4)客户端按照一定帧率播放网络传输到达的和帧生成的视频帧,并继续采集游戏用户的键鼠信令上传到云游戏服务器。
所述尾延迟触发器基于强化学习通过历史视频帧的编解码信息和各阶段延迟的信息提前感知尾延迟。通过尾延迟触发器,实现视频帧质量、客户端算力和延迟的权衡。在感知到尾延迟时,触发帧生成模型,补偿尾延迟,防止卡顿;未感知到尾延迟时,系统按传统云游戏流程运行,节省客户端算力,保证视频质量。
尾延迟触发器基于强化学习实现,模型采用Actor-Critic架构,演员和评论家网络包括三个全连接层,分别有64、64和10个卷积核,ReLU作为激活函数,为了可将输出限制在[0,1]内,演员网络最后一层使用了sigmoid函数。
强化学习动作公式为公式(1),状态公式为公式(2)。为动作,动作公式代表再对接下来I个时间间隔中是否触发每一帧的帧生成。状态为t时刻模型输入的帧信息,代表RTP包数、帧大小、是否为关键帧的标志位、解码时延、排队时延,这些信息能从解码器和抖动缓冲器中获得;/> 表示视频比特率和编码时延,这些信息可以在服务器获得并附加到数据包中发送给客户端;/>表示网络传输时延和视频帧的总时延,可以通过计算视频帧在客户端和服务器不同阶段的时间差得到。除了编解码信息外,在状态中加入详细的分阶段延迟信息能够帮助强化学习智能体更好的感知网络状况。
强化学习奖励函数为公式(3)。通过设置奖励函数,引导强化学习智能体做出合理的动作,此处需要智能体在某一帧延迟大于一个会造成卡顿的阈值即出现尾延迟时,触发帧生成,降低延迟;在延迟不大于阈值时,不触发帧生成来节省算力。公式中,i为帧索引,ε为尾延迟阈值,ρ为负值,是客户端运行帧生成模型的算力消耗惩罚,为原始的多阶段总延迟,β1,β2是权重因子。u,v值为公式(4),(5),其中,/>为运用帧生成后的总延迟。奖励设置为在原始总延迟大于阈值时对触发帧生成动作进行奖励,对不触发帧生成动作进行惩罚,奖励和惩罚的大小与运用帧生成后延迟下相比原始延迟降低的值正相关;在原始总延迟小于阈值时,对不触发帧生成动作进行奖励,对触发帧生成动作进行惩罚,奖励的大小与当前能达到的最小延迟与阈值的差正相关
所述经过自适应剪枝的帧生成模型,输入时间上有先后关系的两视频帧,输出生成帧,生成帧为两先前帧的后续帧。帧生成模型通过修改现有最先进的中间帧插帧模型实现,将输入和参考帧修改为(Xt-1,Xt)和Xt+1,即通过当前帧和前一单位时间的帧来预测后一帧,输入光流改为(Xt-1,Xt)的光流,嵌入设置为1/2,嵌入与输出帧和输入帧的时间间隔有关。
自适应剪枝算法剪枝帧生成模型以适应不同设备算力。由于模型中大多数卷积核的权重接近于0,这样的卷积核的特征图(feature map)对结果影响较小,因此剪枝这部分卷积核可以降低模型的算力需求,最大化效益。基于编码器-解码器结构的网络结构通常较为复杂,简单的根据权重进行剪枝会导致结果较差。因此提出一种两步剪枝算法,将一对编码器和解码器看作一个块,首先对各块分配剪枝比例,然后再进行剪枝。第一步使用动态规划算法,描述如下,
将连续的剪枝比分解为有限的离散的个数P,在此情况下,给定剪枝比例k,模型块集合B,单位剪枝比例1/P,得到所有块的单位剪枝比例总数n=(k·|B|)/(1/P)。Φ为作为评价剪枝后性能的评价,为公式(6)所示,Tori为未剪枝原始模型的推断时间,T(b,Pb)为于b层剪枝Pb比例后模型的推断时间,PSNRori为原始模型推断结果的质量,PSNR为剪枝后模型的推断结果质量,在推断设备相同的情况下,推断时间的差异为模型算力要求的差异,因此Φ代表模型算力要求减少量与推断结果质量下降量的比值。dp(b,x)是在选择x个单位剪枝比例时,前b块可以得到的最大Φ值,算法输出为各层的剪枝分配比列M(b,Pb),动态规划的状态转移方程为公式(7)。
算法执行步骤如下:
(1)对x∈{0,1,..,n},初始化dp(B,x)=0;
(2)初始化集合B'为空,此集合代表已经进行决策的块集合;
(3)对于B中每个块b*,进行以下步骤,
(3-1)对于x,从1到n进行以下步骤,
(3-1-1)将b*加入B',令dp(B'∩b*,x)=dp(B',x);
(3-1-2)对于j,从1到min(P,x)进行以下步骤,
若在b*层剪枝比例j则有dp(B'∩b*,x)=dp(B',x-j)+Φ(b*,j),选择在b*层不进行剪枝则有dp(B'∩b*,x)=dp(B',x),选择两种情况的较大值作为dp(B'∩b*,x)。
(3-1-3)记录(3-1-2)中选择的路径,更新M(b,Pb)。
通过算法获取剪枝比例分配后,进行第二步,块内的剪枝将根据第一步的分配策略剪枝各块,通常情况直接根据权重剪枝模型的卷积核,然而某些层可以与不相邻的层直接建立连接,对于这些层根据其连接层剪枝的索引进行剪枝。
所述基于尾延迟探测和帧生成的云游戏视频传输方法符合在波动网络环境中云游戏对网络低延迟的实际需求,适应用户群体设备算力异构且有限的特点,能够提升云游戏的用户体验。
本发明相较现有技术具有以下有益效果:
本发明运用视频帧生成技术在云游戏场景下针对尾延迟实现了延迟补偿。相比传统方法,通过帧生成技术进行延迟补偿能够完全跳过云游戏相比传统游戏带来的额外阶段,有效减少了尾延迟发生,降低了整体延迟。相比其他延迟补偿方法,通过帧生成进行延迟补偿完全跳过了网络传输阶段,提供更低的延迟,此外帧生成模型对不同游戏具有通用性,相比修改游戏引擎实现预渲染,帧生成模型的实现和部署成本更低。
附图说明
图1是本发明的流程图;
图2是本发明的基于强化学习的尾延迟触发器模型图;
图3是本发明的帧生成模型图;
图4是本发明与传统算法的游戏帧延迟积累分布对比图;
图5是本发明与传统算法的帧抖动对比图;
图6是本发明与传统算法的卡顿率对比图;
图7是本发明与传统算法的视频帧平均质量对比图;
图8是本发明尾延迟触发器与其他触发方法的帧延迟积累分布对比图;
图9是本发明尾延迟触发器与其他触发方法的帧抖动和卡顿率对比图;
图10是本发明自适应剪枝算法与其他剪枝算法方法的性能对比图;
图11是本发明自适应剪枝算法与其他剪枝算法方式的生成帧质量对比图。
具体实施方式
为了更清楚地说明本发明技术方案,下面将结合附图和实施例进行详细说明。
本发明提供的一种基于尾延迟探测和帧生成的云游戏视频传输方法,包括:
1)开启云游戏,云游戏服务器运行游戏,基于客户端发来的操作指令进行游戏画面渲染,客户端运行基于强化学习的尾延迟触发器和经过自适应模型剪枝的帧生成模型;
2)云游戏客户端向云游戏服务器发送键鼠操作指令,服务器基于指令进行游戏画面的渲染,然后采集游戏画面,编码并拆分成若干数据包通过网络传输至客户端;
3)客户端基于强化学习的尾延迟触发器利用历史延迟信息和编码信息感知尾延迟,如果尾延迟触发器未感知到尾延迟,客户端接收服务器发送的数据包,逐个等待单帧的所有数据包到达,将其解包为编码帧,并送入解码器解码为能够播放的视频帧;如果客户端的尾延迟触发器感知到尾延迟,则触发客户端的帧生成模型生成预测帧,预测帧代替客户端处未到达的高延迟帧,补偿高延迟帧带来的延迟;
4)客户端将通过网络传输到达的视频帧和通过帧生成产生的帧按照固定帧率进行播放,同时继续采集客户端游戏用户的操作指令上传到服务器。
所述基于强化学习的尾延迟触发器是:
客户端通过到达的数据包收集编解码、网络传输等每个阶段的延迟信息和编码信息,将收集到的信息作为强化学习模型的输入,强化学习感知网络状况,预测未来帧是否出现尾延迟,如果未出现高延迟帧,则不打断正在进行的传统多阶段云游戏流程,匹配良好网络状态的高质量视频帧将被客户端接收并播放,如果强化学习模型预测到未来将会出现尾延迟,则触发经过剪枝的轻量级帧生成模型,通过客户端现有帧直接生成预测的游戏帧,跳过高延迟帧的云游戏编解码和传输阶段,补偿尾延迟。
所述基于强化学习的尾延迟触发器采用Actor-Critic架构,模型包括三个全连接(FC)层,使用ReLU作为激活函数,演员(Actor)网络中最后一层需要输出动作的概率分布,因此使用sigmoid激活函数将输出限制在[0,1]范围内;
公式(1)是强化学习的动作公式,
表示接下来I个时间间隔中是否对每一帧的进行触发,的取值范围为{0,1};
公式(2)是强化学习的状态公式,
其中,代表RTP包数、帧大小、是否为关键帧、解码时延、排队时延,这些信息能从解码器和抖动缓冲器中获得;/>表示视频比特率和编码时延,这些信息在服务器获得并附加到数据包中发送给客户端;/>表示网络传输时延和帧的总时延;此处的t是状态的时刻;
公式(3)为强化学习的奖励公式,
其中,i为帧索引,ε为延迟阈值,ρ是负值,为对客户端运行视频帧生成的计算资源消耗惩罚,为原始多阶段延迟之和,β1,β2是权重因子;
公式(4),(5)为u,v值,
其中,为运用帧生成后的总延迟。
所述帧生成模型:
帧生成模型基于插帧模型实现,原帧插帧模型为编码器-解码器(encoder-decoder)结构,高效的合成中间帧,模型以两幅图片作为输入,依次通过多个编码器进行处理,每个编码器和前一个解码器的输出结合光流作为下一解码器输入,此外,嵌入(embedding)用来控制输出帧的时间偏移;
将原模型的功能从中间帧插帧任务扩展为视频单帧预测帧的生成,将训练集输入和参考帧(ground truth)修改为(Xt-1,Xt)和Xt+1,输入光流改为(Xt-1,Xt)的光流,嵌入设置为1/2。
所述自适应模型剪枝:
提出的自适应模型剪枝算法对现有的基于编码器-解码器结构的模型具有通用性,模型中存在大量权重接近于0的卷积核,这些卷积核对输出结果质量影响较小,剪枝这些卷积核能在略微劣化模型输出结果的条件下降低模型算力需求;
自适应模型剪枝算法尽量降低模型算力需求和尽量减少输出劣化,在云游戏开始之前,针对游戏训练帧生成模型,在帧生成模型中,将一对编码器和解码器视作一个块,选用的帧生成模型共有四个块,自适应模型剪枝算法分为两步,第一步决策需要剪枝的块和剪枝比例,第二步决定块内的剪枝策略,第一步要决策的问题是在总剪枝量一定的情况下,选择需要剪枝的块和选中块需要剪枝的比例,自适应模型剪枝算法基于动态规划算法实现,算法描述如下,
将连续的剪枝比分解为有限的离散的个数P,在此情况下,给定剪枝比例k,模型块集合B,单位剪枝比例1/P,得到所有块的单位剪枝比例总数n=(k·|B|)/(1/P),Φ作为评价剪枝后性能的评价,为公式(6)所示,Tori为未剪枝原始模型的推断时间,T(b,Pb)为于b层剪枝Pb比例后模型的推断时间,PSNRori为原始模型推断结果的质量,PSNR为剪枝模型的推断结果质量,dp(b,x)是在选择x个单位剪枝比例时,前b块可以得到的最大Φ值,算法输出为各层的剪枝分配比列M(b,Pb),动态规划的状态转移方程为公式(7),
算法执行步骤如下:
(1)对x∈{0,1,..,n},初始化dp(B,x)=0;
(2)初始化集合B'为空,此集合代表已经进行决策的块集合;
(3)对于B中每个块b*,进行以下步骤,
(3-1)对于x,从1到n进行以下步骤,
(3-1-1)将b*加入B',令dp(B'∩b*,x)=dp(B',x);
(3-1-2)对于j,从1到min(P,x)进行以下步骤,
若在b*层剪枝比例j则有dp(B'∩b*,x)=dp(B',x-j)+Φ(b*,j),选择在b*层不进行剪枝则有dp(B'∩b*,x)=dp(B',x),选择两种情况的较大值作为dp(B'∩b*,x);
(3-1-3)记录(3-1-2)中选择的路径,更新M(b,Pb);
第二步决定块内剪枝策略,通常情况直接根据权重剪枝模型的卷积核,优先剪枝权重较小的卷积核,对于与不相邻的层直接建立连接的层,根据其连接层剪枝的卷积核索引进行剪枝。
实施例1:
本发明搭建了图1所示的测试平台,包括两个主要部分。(1)服务器,配备了20个CPU和64GB内存,主要功能:云游戏传输的服务器、流量控制和帧生成模型的训练与自适应剪枝。(2)客户端,配备单CPU和RTX3090显卡,主要功能:作为云游戏传输的客户端、运行尾延迟触发器、视频帧生成模型。服务器使用libx264对预先录制的视频进行回放和编码,将编码后的视频流基于WebRTC传输给客户端。在客户端运行游戏前,服务器提前通过自适应剪枝算法完成帧生成模型的训练,并根据客户端的算力为客户端选择合适的模型。客户端通过libx264对服务器传来的WebRTC视频流进行解码,尾延迟触发器根据网络状况触发,根据尾延迟触发器结果帧生成模型生成视频帧,来补偿网络状况的影响。
在进行云游戏流程前,云游戏服务器要收集游戏数据集,针对游戏训练帧生成模型。对训练完成的完整帧生成模型,再通过自适应模型剪枝算法训练多个不同算力要求的模型。在客户端接入云游戏服务后,从服务器获取适应硬件算力的帧生成模型和基于强化学习的尾延迟触发器。云游戏运行过程中,尾延迟触发器通过持续观察网络状态,即时预测尾延迟现象。图2是尾延迟触发器的强化学习模型,展示了结构,各层通道数,输入状态和输出动作,其中输入状态有l个。根据过去网络信息尾延迟触发器的智能体选择是否触发帧生成,完成一步动作后,再次通过到达的数据包带来的网络信息和先前信息再次做出动作,预测尾延迟。尾延迟触发器对网络需要及时的感知检测,但过于频繁调用尾延迟触发器对用户算力的消耗较大,因此需要权衡动作公式中的I值的设置,如果设为10,即每次决策10个帧是否需要触发帧生成,在视频帧率为30的场景中,尾延迟触发器的调用间隔约为0.33s
在视频传输与播放中,尾延迟触发器未做出帧预测触发动作时,服务器对回放的视频帧进行捕获并编码为视频流,再将其拆分为数据包基于WebRTC传输至客户端,客户端接收后解码为视频帧然后按固定帧率播放;否则需要使用帧生成模型的生成帧。本发明在具体实施中选用了帧间插帧模型IFRNet作为原始模型,通过修改模型和训练的输入使其成为一个帧生成模型,模型结构如图3所示,输入为先后顺序的两帧先前帧,输出为预测的后续帧。由于帧生成模型有4个编码器解码器对,所以自适应模型剪枝算法输入的B为4,在具体实施中将P设为10,即单位剪枝比例设为0.1。
为了证明本发明的有效性,将本发明与传统云游戏方法(使用基于GCC的WebRTC实现的云游戏方法)进行了比较。游戏视频格式选取720p30帧,收集了54000帧游戏视频,其中80%作为帧生成模型的训练集,20%作为测试集和传输测试视频。初始完整模型训练迭代1000次,而后进行剪枝再训练,对不同的剪枝比例设置训练迭代100次。在传输测试中,选用各层平均40%剪枝比例的帧生成模型。网络数据集选用了现有的Twitch、FCC、Ghent、Lumous5G数据集和在商用云游戏平台云原神上收集的真实网络数据集,这里取名为Genshin,为方便介绍,后文以及附图中中5个数据集分别简写为T、F、G、L、GS。对于尾延迟触发器,选取上述网络数据集中80%用于训练,剩下20%用于测试和作为传输测试中的网络条件。在强化学习参数的具体设置中,设置状态长度为1秒,根据视频格式,输入状态的l为30,这样能够更好的适应网络变化。将动作长度I设为10,根据经验,这样设置能够防止过于频繁的调用强化学习模型,较好的兼顾决策的及时性和用户有限的算力。在奖励公式中将ε设置为100毫秒,权重因子β1,β2设置为0.8和2。
图4至图7为本发明的优化方案与传统方法的性能对比,对比集中关注延迟、视频帧延迟抖动、卡顿率和视频质量(用视频的平均PSNR衡量)。图4是进行云游戏时视频各帧对应延迟的积累分布(CDF)图,在不同网络条件下,本发明显著降低了延迟,尤其是在本发明着重关注的尾延迟方面,延迟大于100ms帧的比例相比传统方法平均降低了77.0%,同时百分之95分位和百分之99分位延迟分别平均下降了53.3%和63.9%。本发明也显著降低了严重影响用户体验的灾难性事件的比例,图5展示了本发明与传统在不同网络条件下的帧抖动,相比传统方法,本发明帧抖动平均降低了34.0%;图6展示了两者卡顿率的对比,本发明卡顿率相比传统方法平均降低了70.3%。本发明对视频帧的质量没有明显影响,图7展示了本发明与传统方法在测试中所有帧的平均质量,本发明传输视频帧的平均PSNR相比传统方法仅降低了0.45dB。
为证明本发明中尾延迟触发器的有效性,将本发明与其他触发方法进行对比。对比方法有3种:方法一,在10帧中随机选择触发x帧的帧预测;方法二,在尾延迟触发器感知到尾延迟后连续触发x帧的帧预测;方法三,修改尾延迟触发器的强化学习模型,将多阶段延迟信息删除,仅保留历史编码信息作为强化学习的状态。此处x为尾延迟触发器在同等网络状况下每10帧的触发次数。对比测评结果如图8与图9,图8展示了本发明尾延迟触发器与上述三种方法在云游戏传输中各帧延迟的积累分布,尾延迟触发器的百分之95分位和百分之99分位延迟相比其他方法分别平均下降了37.6%和43.4%。图9展示了本发明方法与其他方法的帧抖动和卡顿率的对比,本发明方法帧抖动和卡顿率平均为其他方法的75.9%和44.6%。
为证明本发明自适应模型剪枝算法的有效性,对算法输出模型进行测评并进行消融实验。将平均每个block剪枝80%后的模型的推断结果与参考帧进行对比,两者视觉效果相近,客观质量评价PSNR前者仅比后者下降0.12%,高比例剪枝模型依然能够取得较好的推断结果。消融测评中,与如下两种方法进行对比:方法一,在块间平均分配剪枝比例;方法二,对每个块都仅根据块的卷积核的权重进行剪枝。与方法一的对比实验使用Φ作为性能评价标准,比较了20%、40%、60%、80%这4种剪枝比例下两种方法的性能差异,结果如图10所示,本发明算法相较方法一平均领先16.7%。与方法二的对比使用PSNR作为评价标准,在模型的块1上进行了4种不同比例的剪枝,图11展示了剪枝模型推断结果的质量对比,方法二相较本发明算法表现平均降低4.7%。消融实验分别验证了自适应模型剪枝算法两个步骤的有效性。
Claims (5)
1.基于尾延迟探测和帧生成的云游戏视频传输方法,其特征在于,包括:
1)开启云游戏,云游戏服务器运行游戏,基于客户端发来的操作指令进行游戏画面渲染,客户端运行基于强化学习的尾延迟触发器和经过自适应模型剪枝的帧生成模型;
2)云游戏客户端向云游戏服务器发送键鼠操作指令,服务器基于指令进行游戏画面的渲染,然后采集游戏画面,编码并拆分成若干数据包通过网络传输至客户端;
3)客户端基于强化学习的尾延迟触发器利用历史延迟信息和编码信息感知尾延迟,如果尾延迟触发器未感知到尾延迟,客户端接收服务器发送的数据包,逐个等待单帧的所有数据包到达,将其解包为编码帧,并送入解码器解码为能够播放的视频帧;如果客户端的尾延迟触发器感知到尾延迟,则触发客户端的帧生成模型生成预测帧,预测帧代替客户端处未到达的高延迟帧,补偿高延迟帧带来的延迟;
4)客户端将通过网络传输到达的视频帧和通过帧生成产生的帧按照固定帧率进行播放,同时继续采集客户端游戏用户的操作指令上传到服务器。
2.根据权利要求1所述的基于尾延迟探测和帧生成的云游戏视频传输方法,其特征在于,所述基于强化学习的尾延迟触发器是:
客户端通过到达的数据包收集编解码、网络传输等每个阶段的延迟信息和编码信息,将收集到的信息作为强化学习模型的输入,强化学习感知网络状况,预测未来帧是否出现尾延迟,如果未出现高延迟帧,则不打断正在进行的传统多阶段云游戏流程,匹配良好网络状态的高质量视频帧将被客户端接收并播放,如果强化学习模型预测到未来将会出现尾延迟,则触发经过剪枝的轻量级帧生成模型,通过客户端现有帧直接生成预测的游戏帧,跳过高延迟帧的云游戏编解码和传输阶段,补偿尾延迟。
3.根据权利要求2所述的基于尾延迟探测和帧生成的云游戏视频传输方法,其特征在于,所述基于强化学习的尾延迟触发器采用Actor-Critic架构,模型包括三个全连接(FC)层,使用ReLU作为激活函数,演员(Actor)网络中最后一层需要输出动作的概率分布,因此使用sigmoid激活函数将输出限制在[0,1]范围内;
公式(1)是强化学习的动作公式,
表示接下来I个时间间隔中是否对每一帧的进行触发,的取值范围为{0,1};
公式(2)是强化学习的状态公式,
其中,代表RTP包数、帧大小、是否为关键帧、解码时延、排队时延,这些信息能从解码器和抖动缓冲器中获得;/>表示视频比特率和编码时延,这些信息在服务器获得并附加到数据包中发送给客户端;/>表示网络传输时延和帧的总时延;此处的t是状态的时刻;
公式(3)为强化学习的奖励公式,
其中,i为帧索引,ε为延迟阈值,ρ是负值,为对客户端运行视频帧生成的计算资源消耗惩罚,为原始多阶段延迟之和,β1,β2是权重因子;
公式(4),(5)为u,v值,
其中,为运用帧生成后的总延迟。
4.根据权利要求1所述的基于尾延迟探测和帧生成的云游戏视频传输方法,其特征在于,所述帧生成模型:
帧生成模型基于插帧模型实现,原帧插帧模型为编码器-解码器encoder-decoder结构,高效的合成中间帧,模型以两幅图片作为输入,依次通过多个编码器进行处理,每个编码器和前一个解码器的输出结合光流作为下一解码器输入,此外,嵌入embedding用来控制输出帧的时间偏移;
将原模型的功能从中间帧插帧任务扩展为视频单帧预测帧的生成,将训练集输入和参考帧ground truth修改为(Xt-1,Xt)和Xt+1,输入光流改为(Xt-1,Xt)的光流,嵌入设置为1/2。
5.根据权利要求1所述的基于尾延迟探测和帧生成的云游戏视频传输方法,其特征在于,所述自适应模型剪枝:
提出的自适应模型剪枝算法对现有的基于编码器-解码器结构的模型具有通用性,模型中存在大量权重接近于0的卷积核,这些卷积核对输出结果质量影响较小,剪枝这些卷积核能在略微劣化模型输出结果的条件下降低模型算力需求;
自适应模型剪枝算法尽量降低模型算力需求和尽量减少输出劣化,在云游戏开始之前,针对游戏训练帧生成模型,在帧生成模型中,将一对编码器和解码器视作一个块,选用的帧生成模型共有四个块,自适应模型剪枝算法分为两步,第一步决策需要剪枝的块和剪枝比例,第二步决定块内的剪枝策略,第一步要决策的问题是在总剪枝量一定的情况下,选择需要剪枝的块和选中块需要剪枝的比例,自适应模型剪枝算法基于动态规划算法实现,算法描述如下,
将连续的剪枝比分解为有限的离散的个数P,在此情况下,给定剪枝比例k,模型块集合B,单位剪枝比例1/P,得到所有块的单位剪枝比例总数n=(k·|B|)/(1/P),Φ作为评价剪枝后性能的评价,为公式(6)所示,Tori为未剪枝原始模型的推断时间,T(b,Pb)为于b层剪枝Pb比例后模型的推断时间,PSNRori为原始模型推断结果的质量,PSNR为剪枝模型的推断结果质量,dp(b,x)是在选择x个单位剪枝比例时,前b块可以得到的最大Φ值,算法输出为各层的剪枝分配比列M(b,Pb),动态规划的状态转移方程为公式(7),
算法执行步骤如下:
(1)对x∈{0,1,..,n},初始化dp(B,x)=0;
(2)初始化集合B'为空,此集合代表已经进行决策的块集合;
(3)对于B中每个块b*,进行以下步骤,
(3-1)对于x,从1到n进行以下步骤,
(3-1-1)将b*加入B',令dp(B'∩b*,x)=dp(B',x);
(3-1-2)对于j,从1到min(P,x)进行以下步骤,
若在b*层剪枝比例j则有dp(B'∩b*,x)=dp(B',x-j)+Φ(b*,j),选择在b*层不进行剪枝则有dp(B'∩b*,x)=dp(B',x),选择两种情况的较大值作为dp(B'∩b*,x);
(3-1-3)记录(3-1-2)中选择的路径,更新M(b,Pb);
第二步决定块内剪枝策略,通常情况直接根据权重剪枝模型的卷积核,优先剪枝权重较小的卷积核,对于与不相邻的层直接建立连接的层,根据其连接层剪枝的卷积核索引进行剪枝。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257614.1A CN118175393A (zh) | 2024-03-07 | 2024-03-07 | 基于尾延迟探测和帧生成的云游戏视频传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257614.1A CN118175393A (zh) | 2024-03-07 | 2024-03-07 | 基于尾延迟探测和帧生成的云游戏视频传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118175393A true CN118175393A (zh) | 2024-06-11 |
Family
ID=91347863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410257614.1A Pending CN118175393A (zh) | 2024-03-07 | 2024-03-07 | 基于尾延迟探测和帧生成的云游戏视频传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118175393A (zh) |
-
2024
- 2024-03-07 CN CN202410257614.1A patent/CN118175393A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yeo et al. | Neural adaptive content-aware internet video delivery | |
CN103155580B (zh) | 不同质量级别的自适应视频流 | |
US9571827B2 (en) | Techniques for adaptive video streaming | |
CN108965949B (zh) | 一种视频业务中满足用户个性化体验的码率自适应方法 | |
CN111669617B (zh) | 一种基于智能边缘的直播视频流的传输方法 | |
CN116962414A (zh) | 一种基于无服务器计算的自适应视频流传输方法及系统 | |
CN112866746A (zh) | 一种多路串流云游戏控制方法、装置、设备及存储介质 | |
CN115022684A (zh) | 一种quic协议下基于深度强化学习的视频流自适应传输方法 | |
KR102129115B1 (ko) | 컨텐츠 인지 신경망을 이용하여 실시간으로 적응형 비디오를 전송하는 방법 및 장치 | |
CN114040257A (zh) | 一种自适应视频流传输播放方法、装置、设备及存储介质 | |
CN111225243B (zh) | 一种视频块调度方法及系统 | |
EP4013006A1 (en) | Method for playing on a player of a client device a content streamed in a network | |
CN113490239A (zh) | 基于自适应网络编码的异构无线链路并发传输控制方法 | |
JP2023515003A (ja) | ネットワークでストリーミングされたコンテンツをクライアントデバイスのプレーヤで再生する方法 | |
CN118175393A (zh) | 基于尾延迟探测和帧生成的云游戏视频传输方法 | |
EP2227023A1 (en) | Video streaming | |
CN114747225A (zh) | 用于选择流送媒体内容项的格式的方法、系统和介质 | |
US7533075B1 (en) | System and method for controlling one or more signal sequences characteristics | |
CN114173132A (zh) | 一种面向动态比特率视频的自适应比特率选择方法及系统 | |
CN114666620B (zh) | 基于视觉敏感度的自适应流媒体方法 | |
CN118042069B (zh) | 一种网络会议视频码流自适应传输方法及系统 | |
CN112040235B (zh) | 视频资源的编码方法和装置,视频资源的解码方法和装置 | |
CN113411628B (zh) | 直播视频的码率自适应方法、装置、电子设备及可读介质 | |
WO2023181205A1 (en) | Video player, video playback method, and program | |
CN112333456B (zh) | 一种基于云边协议的直播视频传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |