云游戏概述
云游戏(Cloudgaming)是以云计算为基础的游戏方式,本质上为交互性的在线视频流,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。目前国内云游戏厂商大致分为两类:这一种是基于X86架构,主要解决PC游戏云化,即端游云游;第二种是基于ARM架构,主要解决移动游戏云化,即手游云游。本方案主要是针对手游云游。
云游戏系统实现框图:流化、传输、渲染交互三大块组成
流化:在云端边缘计算节点中实现抓屏、编码、网络传输、解码等流化过程。
流化处理主要是采集游戏音视频数据编码为音视频流,为了提高处理效率与降低延时,云游戏视频处理直接从GPU显存获取游戏画面,然后传到编码模块进行编码输出,减少了GPU与CPU之间拷贝导致的性能损失;音频处理直接从声卡获取游戏声音数据进行编码输出
传输:通过边缘网络来实现,选择最短的链路打通边缘节点与终端用户的网络通道。云游戏为了降低延时,传输采用实时流协议,如:常用的RTP/RTSP/RTC等协议,同时根据当前国内的网络环境,针对云游场景进行了专门的自适应抗抖动优化。
传输自适应抗抖动处理:根据网络状况与终端渲染播放能力进行综合判断,自动调整视频流的码率,分辨率, 帧率,实现在弱网、网络切换以及弱终端的最优体验。
渲染交互:在用户终端中实现,完成对游戏数据流的本地渲染呈现以及交互控制。
流化根据实现方式的不同,可分为视频流与指令流两种形态。游戏运行在带有GPU的边缘计算节点,将GPU生成的游戏图像转换为H.264/H265的视频流以及音频数据,通过网络传到终端,同时终端将操作指令如鼠标,键盘,触控等数据回传到服务器中。
云游戏三个挑战及其应对
1. 画质和成本:画质要求高,码率大。云游戏成本主要源于硬件与流量,提高单台机器的编码并发数,提升编码压缩比降低成本。CPU/GPU虚拟化,将资源利用最大化;针对不同的游戏场景,虚拟出不同的虚拟机,满足低成本需求。用软件编码器,一路H.265视频编码就要消耗掉一个CPU核的资源,跑三四路1080P就把CPU资源吃光了,未来趋势是使用硬件编码代替软件编码
2. 维护:包括功耗,设备空间或者设备密度,设备升级,修复故障设备代价,设备监测工具软件。U.2盘热插拔特性避免GPU卡冷复位服务器中断运营的致命缺陷
3. 延时:云游戏的延时在整个链路上由如下几个部分组成:延时主要来自于输入、网络传输、编码、解码,终端渲染几个部分;通过对整体链路的优化,将总延时控制在了50ms以内,保证一个好的游戏体验。使用硬件编码代替软件编码大幅降低延时
硬件云游戏编码卡特点
1. 适用主流X86服务器,华为鲲鹏ARM服务器、AmpereARM服务器,飞腾ARM服务器
2. 物理机,容器/Anbox,SRIOV虚拟机,直通虚拟机等隔离构架的云端芯片硬件编码
3. U.2卡不占用服务器PCIe槽位,支持热插播
4. 1U服务器160路720P或者80路1080P并发/2U服务器384路720P或者192路1080P并发
5. 云游戏应用高画质要求,画质优于X265/X264,高动态编码画质不受CPU负载影响
6. 支持4KP60/1080P240/1080P120/1080P60/720P240/720P120/720P60分辨率和帧率
7. 单卡多路并发编码延时不受CPU负载影响,720P3毫秒/1080P7毫秒编码延时
8. 无缝适配英伟达Nvidia/AMD主流显卡渲染方案
虚拟化特性
1. 安卓容器Docker:Anbox云手游
2. SR-IOV:超低延时,硬件的虚拟化,提高性能和可伸缩性
3. 虚机VM直通虚拟化:提升服务器效率
云游戏展望:原生云游戏
1. 移动,联通,电信三大电信运营商都头疼在边缘云找到应用场景(很多5G边缘节点关闭),专家预测如果云游戏运营成本降低90%,会引爆云游戏==》加速边缘云应用早日落地,随5G技术成熟和云游戏成本的降低,许多专家预言三年内云游戏会有机会取得突破,编码技术在云游戏产业生态,起至关重要角色。芯片厂家只有芯片/板卡订货数量巨大,成本才会平民化。
2. 云原生游戏:打破服务端-客户端的界线,统一“超级虚拟游戏机”系统。原生云游:免下载,免安装,随时随地进行游戏的特性,让用户无需考虑设备配置,通过5G网络和简单的外设装备、转接设备就可以通过任意终端玩转各种游戏。 云产品的API标准化就是各个云计算厂商的关键
3. 算力越大(并发编码路数),同时支持在线玩家越多,单路成本越低
4. 元宇宙会成为互联网的最终形态
总结
1. 游戏音视频画面的采集、编码、传输、解码、渲染等整个流程也是相互联动和影响的。采集和编码如何实现pipeline,包括编码多tile/slice/分层/RPS、RDO/模式选择快速算法/码控/编码参数动态调整、传输Pacing、丢包快速重传以及跳帧等各种优化措施等都要加以考量,从而保障游戏画面的高质量与实时性。
2. 编码和传输相结合,我们会根据用户实时网络情况的BWE(带宽评估)、NCC(网络拥塞控制)、Pacing Rate(发送速率)等针对性调优;编码码控这方面会根据用户网络情况做自适应策略控制调整,对低延迟、流畅度、清晰度等分不同优先级作调整。
3. 云端计算资源是有限的,低延时、高帧率、高清晰度是相互矛盾的,我们根据用户网络环境和设备硬件配置情况不同的场景有不同解决方案。资源管理工具:起到负载感知和资源规划作用,实时监测编码路数,卡的载荷,并有效监测卡的状态。
4. 编码参数:通过视频场景分类实时识别,根据场景识别结果,不同场景配置不同最优编码参数,根据视频源码率、帧率、分辨率、纹理和运动变化幅度等情况以及综合机器负载和画质效果选择最优编码参数。比如:对于场景纹理和运动变化幅度大的低延时场景,我们通过设置修改默认来解决场景切换人,草,树糊掉问题。
5. 通过音频硬件编码加速技术,将每帧编码的时间控制在5ms以内,极大的降低编码所带来的延迟。在视频压缩技术上,通过与游戏引擎相结合,根据游戏内容动态调整视频编码,可以在不降低视频质量的情况下,降低30%的网络带宽占用。
6. 得益于 HEVC ( H.265 )算法高效的视频编码能力,使码率不怎么高也能做到极其清晰的画面,H.265视频压缩技术降低30%的网络带宽占用。
7. 维护机制:PCIe总线复位,避免由于单卡故障,复位整个服务器,引起运营中断
8. 未来云游戏向原生云游戏方向发展,高画质,高分辨率,高帧率,强交互的低延时需求会逐渐变成现实。元宇宙也会逐渐走进人们的视野。