云游戏画质分析 码率与压缩伪影

# 《云游戏画质核心影响因素:码率的作用机制与基础特性》

云游戏的本质是“云端计算,端侧显示”,整个运行流程完全依赖串流传输技术支撑。简单来说,用户的操作指令通过网络发送到云端服务器,服务器调用GPU完成游戏画面的实时渲染,再把渲染好的画面进行编码压缩,通过公网传输到用户本地设备,最后由本地设备解码出画面显示给用户。和本地游戏直接在设备GPU渲染输出不同,云游戏从渲染到显示中间多了一道编码压缩和网络传输的环节,这也是云游戏画质和本地游戏差异最大的地方。现在主流云游戏都采用GPU虚拟化部署,单卡物理GPU需要切分成多个vGPU同时服务多个用户,编码资源本身也有限,这就给码率控制提出了额外要求。

码率其实就是单位时间内视频串流需要传输的数据量,单位通常是Mbps,是控制云游戏画质和带宽占用最核心的参数。现在云游戏常用的码率控制模式主要分两种,CBR固定码率和VBR动态可变码率。CBR就是整个串流过程中码率保持固定数值,好处是带宽占用稳定,不容易出现突发卡顿,适合网络波动大的用户,但缺点是静态场景会浪费带宽,动态复杂场景又会因为码率不够出现画质损失。VBR则会根据画面内容动态调整码率,静态简单画面分配少码率,复杂动态画面分配更多码率,能在平均码率相同的前提下获得更好的整体画质,但对带宽预留要求更高,高峰时段容易出现排队占用资源的问题。

码率高低直接决定了画面细节的保留程度,这个逻辑其实很好理解:码率越高,单位时间能传输的数据越多,编码的时候就不需要过度压缩,画面里的纹理、渐变这些细节就能保留得更完整。如果码率不够,编码算法就必须砍掉更多无关数据来压缩体积,自然就会出现画质损失。

对应不同的分辨率和刷新率,云游戏对码率也有不同的最低要求。按照现在行业的通用标准,1080P 30帧的云游戏,码率至少需要5-8Mbps才能保证基础画质没有明显瑕疵;如果是1080P 60帧,最低码率需求大概在10-15Mbps。升到2K分辨率之后,2K 30帧需要12-18Mbps,2K 60帧最低要20-25Mbps才能玩。目前主流的4K 60帧云游戏,最低码率要求要达到40-50Mbps,如果是支持HDR的画面,还要额外上浮10%-15%的码率才能满足需求。如果实际可用码率低于这个最低标准,基本都会出现明显的画质缺陷,影响游戏体验。

《云游戏典型画质缺陷:压缩伪影的产生原理与表现类型》

压缩伪影是云游戏最常见的画质瑕疵,它和传输码率、编码算法直接相关,想要说清它的来源,得先从当前主流视频编码的基本逻辑讲起。现在不管是H.264还是H.265编码,都会先把一帧画面切分成不同大小的块,再对每个块做变换编码,丢弃人眼不敏感的高频信息来压缩体积。码率越低,编码需要丢弃的信息就越多,当丢弃的信息多到打破了块与块之间的画面连续性,或者丢失了关键的纹理色彩信息,就会产生能被肉眼察觉的压缩伪影。

在云游戏里,最常见的压缩伪影有四类,对应不同的游戏场景会有不同表现。第一种是块效应,大多出现在快速运动场景里,比如玩动作游戏连续挥砍、赛车游戏高速过弯的时候,低码率下编码块的边界会变得清晰可见,整个画面像是被一块块马赛克拼起来,运动越快,块边界越突兀。第二种是整体模糊,常出现在有精细纹理的场景里,比如开放世界游戏的草地、角色衣物的针织纹理,低码率下高频细节被大量丢弃,原本清晰的纹理会糊成一团,凑近屏幕看就像蒙了一层磨砂玻璃。第三种是色带,一般出现在大平面纯色场景,比如游戏里开阔的晴空、平滑的岩壁,原本渐变自然的色彩会硬生生分成好几条明显的色带,层次感完全消失。第四种是动态失真,也就是快速运动时画面出现错块、扭曲,比如格斗游戏里角色快速出拳,拳的部位可能直接变形错位,半天才能恢复正常。

很多人会奇怪,同样是在线压缩传输,为什么云游戏的压缩伪影比普通在线视频显眼得多,影响体验?其实原因很简单,普通在线视频是预编码好的文件,平台可以提前给不同场景分配合适的码率,用户只是被动观看,哪怕有轻微伪影也不容易注意到。但云游戏是实时编码实时传输,画面完全由用户操作动态生成,码率波动很难提前预判,而且玩家需要盯着画面找细节、做操作,比如射击游戏要找远处草丛里的敌人,压缩带来的模糊和块效应,不光看着不舒服,还会直接影响操作判断,对体验的影响自然比普通在线视频大得多。

《码率优化与压缩伪影抑制:现有技术路径与未来方向》

低码率高画质是当前云游戏行业的核心刚需——国内家庭宽带平均下行带宽虽已突破500Mbps,但仍有大量三四线城市及移动场景用户带宽不足50Mbps;同时云端GPU编码单元占用直接影响平台运营成本,单卡同时编码的串流路数越多,单用户分摊的成本越低。所有优化方案本质上都是围绕“满足带宽限制、降低云端编码资源占用”这两个前提,实现压缩伪影的有效抑制。

目前行业已经落地了多个不同技术路线的方案。第一个方向是基于AI的编码优化,这类方案是把AI预处理加入编码前流程,提前识别画面中用户视觉敏感的区域,再调整编码的参数分配,比如主流的AV1编码就已经加入了AI预设。它的优势是优化效果明显,同等画质下能降低15%-20%的码率需求,缺点是会额外增加云端的计算负载,反而拉高了部分运营成本。

第二个方向是场景自适应码率分配,这个技术比较好理解,就是根据当前游戏画面的内容动态分配码率:快速运动的画面、玩家当前操作的主角区域多给码率,静止的背景、UI界面这些用户关注度低的区域少给码率。它不用改动编码底层逻辑,实现起来门槛低,对算力额外消耗也很小,缺点是优化效果受场景限制,比如全场景高速运动的竞技类游戏,能省出来的码率空间非常有限。

第三个是基于游戏语义的分区编码压缩,这个方案需要游戏厂商配合开放接口,直接获取游戏的场景分层信息,比如角色模型、背景植被、UI面板分别分区,不同区域用不同压缩率压缩。它的优化效率是目前所有方案里最高的,同等码率下伪影抑制效果能提升30%以上,但缺点也很明显,需要对接不同游戏的接口,适配成本极高,目前只有头部平台的少数爆款游戏能用。

第四个方向是端侧伪影修复,把压缩后的画面拿到用户终端设备做AI后处理,修复已经产生的块效应、模糊这些伪影。这个方案把算力压力从云端转移到了用户手机、电视的本地芯片,不用增加平台成本,适配也很灵活,但受限于端侧算力,修复效果一般,复杂伪影很难处理干净。

现在来看,云游戏的码率画质矛盾还没有完美的解决方案,多数方案都存在算力成本和优化效果的 trade-off,而且面对不同类型游戏的适配性普遍较差。未来随着终端AI芯片性能的提升,结合AV1、VVC新一代编码标准的普及,大概率会走“云端AI语义编码+端侧AI修复”的混合路线,在更低码率下实现接近本地游戏的画质体验。
share