Cloud Gaming论文笔记

1. A Survey on Cloud Gaming: Future of Computer Games

  1. 云游戏是一种新的方式,在任何地方任何时间为玩家提供高质量的游戏体验。复杂的游戏软件在数据中心的强大服务器上运行,渲染的游戏场景通过网络实现传输给玩家,而玩家使用在不同设备上的轻量级软件与游戏进行交互。由于高速网络和云计算的发展,云游戏的前景也变得更好。在云游戏平台上,主要负责两个功能:(1)将玩家命令转换为游戏内部交互的游戏逻辑;(2)实时生成游戏场景的场景渲染器。在客户端上,仅需要命令接收器和视频解码器两个组件。
    Cloud Gaming论文笔记

  2. 云游戏当前所面临的挑战:(1)必须具备一个综合性能评估的环境,评估指标包括QoS、QoE;(2)在云服务器上可以实现更好的资源分配和分布式架构;(3)实现最优编码和自适应传输;(4)游戏类别和主题决定了玩家与游戏内容的交互方式。

  3. 云游戏平台的分类框架展示:
    Cloud Gaming论文笔记

  4. 对于云游戏平台的研究话题主要重叠于以下几个领域:响应时间最小化、图形视频编码、网络感知传输、QoE优化和云资源管理。

  5. cloud server基础设施优化:(1)在服务器之间智能分配资源,主要集中于虚拟机管理和云资源调度,包括GPU虚拟化和利用游戏引擎信息可以大大减少传统压缩算法计算运动估计所需要的资源;(2)创造创新型的分布式结构,比如基于P2P的解决方案,云游戏数据中心的地理分布策略(部署接近云游戏玩家的边缘服务器)。

  6. 网络通信优化中的数据压缩算法:主要用来减少网络流量,这里的数据压缩方案有视频压缩、图像压缩以及混合压缩。“Video rate control strategies for cloud gaming”提出了一种方法来解决云游戏中的视频率控制问题,首先使用了RoI的概念,定义了游戏场景中不同区域的差异化权重值,然后提出了一种macroblock-level率控制方案来优化RoI加权的视频质量。“Graphics-to-video encoding for 3G mobile game viewer multicast using depth values”的方法是在服务器端连接图像渲染器和一个定制的视频编码器,其关键思想是利用三维渲染过程中使用的深度信息来定位RoI,然后分配更多的比特位到重点区域。“Enhancing video encoding for cloud gaming using rendering information”文中利用渲染信息来提高云游戏中的视频编码,从而获得更好的感知视频质量和较短的编码时间,他们分析渲染信息来定位RoI,然后分配更多的比特位到更重要的区域,从而获得较好的感知视频质量,另外,他们使用该信息来加速编码过程,特别是用在动作估计和macroblock模式选择的时间。

  7. 网络通信优化中的传输自适应算法:主要用来应对网络动态变化。由于网络环境的不稳定性,部分网络参数无法进行预测,包括带宽、往返时延RTT、抖动等,从而影响到正常的数据传输。传输自适应算法主要是用来优化玩家的QoE,它基于这样一种场景:玩家更喜欢通过视频画面部分区域质量的降低来获得更流畅的游戏体验。“QoS-aware real-time video encoding: How to improve the user experience of a gaming-on-demand service’'探索了一种方法来使游戏视频传输可以自适应于可变带宽,它通过从网络管理器中实时预测网络状态,并且动态调整编码参数例如帧率和量化,生成特定的自适应比特率视频流。作者为了决定比特率自适应是否应被触发,选择利用RTT抖动参数值来监测网络拥塞状态。”Enabling adaptive high-frame-rate video streaming in mobile cloud gaming applications“提出了一种最新的传输调度框架APHIS来解决无线网络环境中云游戏视频传输中的问题,作者提出一个在线的视频帧选择算法来最小化总失真,主要基于网络状态、输入视频数据和延迟约束。他们又引入一个不同的前向纠错FEC编码方案,来为I帧和P帧以低延迟代价提供差异性保护。该框架可以合理地过滤视频帧和调整数据保护等级,从而优化HFR视频流的质量。


2. Content-aware Video Encoding for Cloud Gaming

  1. 本文提出了一个内容感知的云游戏视频编码方法CAVE,在有限的带宽要求下提高流视频帧的感知质量。该方法适合于目前最先进的HEVC编码方案,与先前的编码器相比提供客观的比特率节省。该提出方法利用来自游戏的ROI信息,通过将不同数据的比特位分配到视频帧不同区域来优化质量,与基础的HEVC编码器相比可以获得21%到46%的比特率节省。

  2. CAVE有两个主要步骤,首先是从玩家角度出发,根据视频帧区域块的重要性来为这些块分配权重;然后基于它们的权重来分配bits给对应块,同时满足云游戏中的低延迟要求,并实现了编码帧的稳定质量。

  3. 云游戏系统的优化可以被分成两个主要领域:云基础设施,内容和通信。我们主要关注于第二个领域,它主要包括游戏内容的压缩方法和自适应传输方法来处理网络动态性。其中压缩方法主要是减少传输和渲染游戏的图像结构所需要的bits数量,而第二种自适应传输策略则主要优化传输给客户端的结果帧编码,并不要求对游戏内部进行改变,CAVE则属于该策略中的一类。

  4. 本文尝试在相同码率下提高ROIs的质量,但是显著性模型依赖于较高的计算,并且并不总是获取实际用户的注意力。在云游戏平台上实现优化视频流的感知质量并减少带宽消耗的目标也具有一定的挑战性,主要由于以下几个要求:(1) 低延迟:该要求不仅限制了视频帧渲染和编码的时间,也限制了传输这些帧的时间,对将bits分配给帧的速率控制模型施加了额外的约束;(2) 可扩展性:由于云游戏平台多用户的并发性限制了服务器资源的使用,因此负责的图像分析任务不能够在视频帧上实时执行;(3) 云游戏平台的模块化设计:任何的编码优化方法需要通过其公开api接口与编码器进行交互。

  5. CAVE可以满足上述的几个要求,它被作为游戏进程和视频编码器中的一个组件来实现,并不要求改变编码器,也不在服务器上施加高计算开销,并能够实时运行的同时控制编码比特率来满足低延迟要求。其主要过程为:云游戏服务器读取来自客户端的输入信息,并将它们输入到游戏的运行进程中,云游戏引擎从GPU帧缓存中获取游戏帧。CAVE使用游戏帧ROI信息并计算不同编码参数来优化质量,再将这些参数传递给视频编码器中,从而生成编码好的帧给客户端。基于每个视频帧不同区域块的重要性程度,CAVE通过分配不同数量的bits给这些区域块来优化质量。对于区域块权重的计算,仅仅使用基于显著性的方法是不够精确的,还需要考虑玩家注意力和与游戏的交互性。
    Cloud Gaming论文笔记

  6. 权重分配策略:在bottom-up方案中,仅考虑了当前图像画面的显著性,并且图像处理操作分析并不适合于延迟敏感性的云游戏。在top-down方案中,考虑了玩家的注意力,假定游戏开发者公开了每个游戏帧画面中不同目标的简单信息,使用这些信息,一个或多个感兴趣区域被定义为玩家完成任务的重要目标的边界框。CAVE假定包围ROI的边界框的中心是注视点中心,基于该假设,CAVE分配更多的bits给一个ROI来加强其质量。由于一个单一帧中有着多个ROIs,这些ROIs有着不同的类型并被分配不同重要因子,因此提出以下公式: 1 M ∑ i = 1 M e − K d i / F i D \frac{1}{M}\sum_{i=1}^Me^{{-Kd_i}/{F_iD}} M1i=1MeKdi/FiD,这里M表示帧中ROI的数量,K表示一个恒定的比例因子控制ROI和non-ROI区域之间的期望的bit分配和质量差异, d i d_i di表示第i个ROI中心和帧中一个像素点的欧氏距离, F i F_i Fi表示第i个ROI的重要性因子,可以通过先验知识或者完成任务的重要性程度所决定, D D D表示帧的对角线来消除分辨率的依赖。对于属于一个ROI的block,我们分配它一个与K和 F i F_i Fi成比例的权重,来保持ROI内块的相同质量。为了避免对帧中每个像素进行处理,减少计算开销,我们将每个block的中心像素点作为整个block的敏感度值。一个block的权重w计算公式为:
    w [ x , y ] = { e − 1 / ( K F i ) i f   b [ x , y ] ∈ R O I i 1 M ∑ i = 1 M e − K d i / F i D i f   b [ x , y ] ∉ R O I i w[x,y]=\left\{\begin{matrix} e^{-1/(KF_i)} \qquad \qquad \quad if\ b[x,y]\in ROI_i\\ \frac{1}{M}\sum_{i=1}^Me^{{-Kd_i}/{F_iD}} \quad if\ b[x,y]\notin ROI_i \end{matrix}\right. w[x,y]={e1/(KFi)if b[x,y]ROIiM1i=1MeKdi/FiDif b[x,y]/ROIi

  7. ROI信息探索:第一种方法是利用深度学习技术,比如基于图像或者视频的显著性目标检测,但对于实时延迟敏感性游戏来说并不合适。另一种方法是利用游戏开发过程中的信息,比如建立一个缓冲区来存放帧中渲染像素处理信息,可以利用游戏开发者提供的游戏目标标签来在运行过程中提取ROI信息。

  8. 率控制:这里通过指定一个编码比特率来实现期望的目标视频质量,编码器的率控制组件在指定编码比特率的bit预算下将bits分配给blocks和frames。bit分配应该反映出block的重要性,同时仍然可以满足目标比特率,不引入显著的空间和时间变化。本文集中于 λ \lambda λ-domain模型,并将其扩展来支持云游戏的内容感知编码。其整体过程可以描述为:

    (1) 给定一个帧的目标bits数量,计算每个block的目标bits;

    (2) 使用block的目标bits,计算该block的 λ \lambda λ和QP值;

    (3) 在对一个单一帧编码后,更新虚拟缓冲区占用和GPO内的bits数量;

    (4) 使用编码后生成的实际bits数量来更新 α \alpha α β \beta β

    (5) 下一个帧bits的目标数量被计算。

  9. CAVE在GamingAnywhere平台上的实现架构:Video Source模块负责启动视频编码器和CAVE模块,Video Encoder模块则通过Video Buffer与Video Source模块进行交互。
    Cloud Gaming论文笔记

  10. 结果展示:(1) 与其他方法相比,CAVE在ROIs上取得了一致的质量增益;(2) 与没有执行内容感知编码的基础编码器相比,CAVE保持了相同的整体质量;(3) 尽管将bits和QPs不平等地分配到每帧的blocks上,CAVE并没有引入明显的质量波动;(4) CAVE是一个精确的率控制方法,满足了目标码率同时实现了内容感知质量增益;(5) CAVE可以并行实时运行,并没有添加额外的处理计算开销。


相关文章:

  • 2021-06-28
  • 2021-08-26
  • 2021-04-15
  • 2021-09-28
  • 2021-11-12
猜你喜欢
  • 2021-06-08
  • 2021-11-06
  • 2021-08-03
  • 2021-06-12
  • 2021-10-03
  • 2021-04-06
  • 2021-07-07
相关资源
相似解决方案