QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

龙游神州:揭秘云 VR 大空间背后的技术魔法

刘志伟;孙金波;Arthur

  • 2024-02-29
    北京
  • 本文字数:2834 字

    阅读完需:约 9 分钟

龙游神州:揭秘云VR大空间背后的技术魔法

龙游神州,一场将古老庙会与现代科技完美融合的云 VR 体验,近期成为北京地坛新春庙会的网红打卡项目。这场由央博数字文化艺术博物馆和火山引擎云游戏团队联手打造的沉浸式体验,究竟是如何通过技术魔法实现的呢?让我们一起来揭开这层神秘的面纱。

系统架构



本项目的技术架构主要由服务端包含云渲染、智能调度、运营监控、媒体服务等能力构建,并在多路并发、超低延时、体验优化、运营监控等大空间技术难点层面做了优化和提升;客户端硬件采用 Pico 4E,无线方案采用企业级 AC + AP,运营方案由 Pico 企业服务提供支持。

核心优化

WiFi 场景 24 路并发实现


24 路并发取决于客户端侧 WiFi 的规划以及 AC 和 AP 的深度优化


通过 AC 将 AP 组合理规划,保证网络连接的稳定性,同时,每个 AP 组均衡分配终端,以保证负载的均衡做到 24 路并发,同时配合 AP 固件优化,做到端到端更低的延迟




端到端低延迟



端到端延迟优化是通过服务端云流化引擎的 RTC 部分实现的。


云 VR 使用了火山引擎智能拥塞控制算法 VICC(Volcano Intelligent Congesttion Control)VICC 是一种自适应的拥塞控制算法,旨在解决全球不同网络环境下,不同音视频应用对带宽利用率和延时的差异化要求。它结合了传统拥塞控制算法(如 GCC 和 BBR)的优点,并且能够根据不不同的网络条件、业务偏好和码率特征进行自适应调整,包括自适应拥塞响应速度、自适应带宽探测幅度、自适应丢包检测策路、自适应抗抖动能力和自适应 Padding。通过这些自适应调整,VICC 算法能够提升各种复杂弱网下的带宽利用率,同时在满足不同延时的条件下,尽量提升带宽的稳定性,为用户提供更好的音视频体验。


VICC 优点如下:


  1. 多种基础网络状态参数展示

评估当前网络状态的重要指标之一是网络状态统计参数,而准确的基础网络状态参数是提高带宽估计准确性和带宽利用率的关键基石。VICC 算法提供了多种基础网络状态参数,部分基础网络状态态统计参数如下:



  1. 自适应拥塞控制

VICC 算法结合了传统拥塞控制算法的优点,并且能够根据不下同的网络条件、业务偏好和码率特征进行自适应调整,包括自适应拥塞响应速度、自适应抗干扰能力、自适应丢包检测、自适应带宽探测幅度、自适应拥塞排空等。


  1. 抗抖动能力强

拥塞响应越灵敏,意味着在网络抖动场景下容易误判,导致算法抗干扰能力下降。VICC 使用蚁穴算法来对抗网络抖动和乱序,通过接收码率和发送码率来度量网络透过率,并结合观察延迟参数变化趋势及关联性,提升自适应抗干扰能力。



帧率优化



帧率优化的实现依赖的是云 VR 引擎中的架构设计和代码实现。


云 VR 引擎,火山引擎自主研发,包含设备模拟(头盔及手柄模拟)、操控模拟、音频采集、图像采集、编码框架、传输框架等功能,架构设计如下


下面两幅图展示了市面上的主流实现及火山引擎的实现对比,可以看到,后者的单帧占用时间更少,帧率更高,关键在于以下几点:

  • 更高的 CPU 利用率,通过对各 API 实现的摸索,通过不同函数处理逻辑的合理分配来达成这点,提高了单位时间内引擎的循环次数

  • 更高的 GPU 利用率,通过渲染函数内部非阻塞处理,使 GPU 指令始终处于填满指令队列状态来实现这点,通过 insight 类软件可以确认这点

  • 多线程无缝协同,CPU 多线程协同每 1 毫秒的增加意味着帧率的损失,尤其在 VR 高帧率场景下,1 毫秒在 1 帧的处理时间的占比比普通应用更大,而各 API 实现的调用时机由 SteamVR 的 vrserver 决定,所以要降低单帧占用时间,则需要降低输出帧延迟,这里我们通过将阻塞处理分配到其他线程,实现了更快的获取帧状态的改变消息,在收到之后立即编码

  • 更高的 vsync 精准度,自研 vsync,拆离渲染、采集,使两者可以 Overlap,使 GPU 在渲染和采集之间无缝衔接,达到每帧总体时间的减少




渲染画质提升


渲染画质提升通过客户端集成火山引擎自研超分算法实现。


重新设计实现基于视口的投影技术,将平面投影转换成球面投影,降低镜目边缘的图像畸变,实现均匀像素密度。同时通过端侧的姿态预测智能算法,在网络时延出现波动时,有效降低黑边现象的出现频率。同时为了提升清晰度,客户端渲染上屏前,使用自研的图像超分算法在将 3K 超分至 4K,提升画质色彩深度,且算法是利用 OpenCL 在 GPU 侧实现,对单帧耗时影响较小。



投影优化


投影优化处理在云 VR 引擎及云流化引擎内部处理,包含渲染分辨率的提升及投影变换两部分


常见投影为 CMP,CMP 的像素密度特点为内密外疏,而这就会造成图像中部细节丢失,而边缘细节完整,这与人眼的视觉特点相背,为解决此问题,采集后若做 EAC 处理,使像素密度更加平均,可以增加图像中部细节的完整性,在云 VR 引擎初始化时,首先提高渲染分辨率,在采集完成后再对渲染后的图像做投影变换,具体原理可参考 https://blog.google/products/google-ar-vr/bringing-pixels-front-and-center-vr-video/


其他功能


QoS 实时运营监控


云 VR 大空间项目是一个线下项目,顾客的实时体验监控是运营人员比较关心的一个问题,客户端复用信令通道,以及数据包压缩技术,可以做到客户端不增加任何 QPS 情况下,实时上行传输设备帧率、码率、时延、丢包、电量等信息,使运营监控端可以实现毫秒级监控,做到追踪单个视频帧在各传输阶段的时延。

硬件方案


便捷易用的大空间能力


在以上火山引擎云游戏提供的 VR 实时云渲染技术方案之外,PICO Business 提供的大空间功能也是不可或缺的一环。


PICO Business 包括了企业级硬件、企业级 OS、企业级软件平台和企业级服务等内容,为企业用户提供全面成熟的 XR 解决方案与最佳实践,帮助用户提升业务效率,降低部署的成本和门槛,解决业务中面临的技术挑战,创造全新价值。借助 PICO Business,开发者可以快速实现面向文旅、培训、医疗、营销、线下娱乐等场景的的一体化解决方案。



大空间是 PICO Business 的一个重要产品。大空间功能是通过 SLAM 建图实现,即利用某台设备运行视觉 SLAM 定位对空间进行扫描,设备通过相机拍摄照片,并从照片中提取特征(如桌子的边缘)并记录特征的 3 维坐标(此 3 维坐标所在坐标系即为地图坐标系),此类信息最终都存储在地图中。设备开机后会对空间内提取特征,算法会将新提取的特征与地图内的进行匹配,当匹配成功后,利用 pnp 算法(该算法利用地图内特征的像素坐标、该特征的 3 维坐标、特征在当前设备上的像素坐标)可以计算出设备在地图坐标系下的位姿,即实现了使用地图坐标系。该方案仅需要头戴设备就可以完成,不依赖外部基站,部署简单易用,成本低。另外地图数据可以同步至其他设备,多台 VR 共享同一份 SLAM 地图,即共享同一地图坐标系,达到大空间多设备共享协作的目的,整合方案非常便捷。


技术细节参考 https://business.picoxr.com/cn/doc/Enterprise-Settings-LBE-v1.3#4ab364ef

总结和展望


火山引擎始终坚持在音视频与 AI 领域不断创新。未来火山引擎云游戏将持续深耕技术研发,依托高性能算力和低延迟传输方案,为各类互动场景提供有力支持,让更多用户畅享云技术带来的流畅高清影音体验。未来,随着 OpenXR 标准的逐步落地,云 XR 将是下一个技术目标,会有更多的性能优化及功能的扩展。

2024-02-29 14:287171
用户头像
鲁冬雪 GMI Cloud China Marketing Manager

发布了 364 篇内容, 共 278.4 次阅读, 收获喜欢 298 次。

关注

评论

发布
暂无评论
发现更多内容

Python 缩进语法的起源:上世纪 60-70 年代的大胆创意!

Python猫

Python

多样化数据看板,瓴羊Quick BI满足企业经营管理需求

对不起该用户已成仙‖

软件测试丨基于Junit4,利用xUnit框架让你的测试用例可维护性大幅提升

测试人

软件测试 单元测试 自动化测试 测试框架 测试开发

开发小游戏的流程及难点汇总

Onegun

小程序 小程序容器 小游戏 小游戏开发

盘点新能源汽车常用的8种传感器

元器件秋姐

传感器 新能源汽车 智能传感器 新能源 IGBT

掌握分布式环境缓存更新策略,提高缓存与数据库双写一致性!

C++后台开发

数据库 redis 分布式 中间件 后端开发

YMatrix 创始人姚延栋,获“最具发展潜力与创新影响力的创业者”称号

YMatrix 超融合数据库

创业 超融合数据库 YMatrix

我们是如何追逐元宇宙、XR等“概念股”浪潮的?

阿里巴巴终端技术

3D渲染 3D vr

持续应用安全(CAS)研讨之:Fuzzing

云起无垠

为云原生插上翅膀,天翼云弹性存储CStor-CSI助力容器腾飞

天翼云开发者社区

容器 云原生 云存储

做7秒动画赢13W大奖?总奖池超80W、国内最火爆的3D渲染动画创作大赛开始报名!

Renderbus瑞云渲染农场

3D渲染动画大赛 3D动画制作 瑞云渲染CG竞赛

去哪儿是如何做到大规模故障演练的?

TakinTalks稳定性社区

自动化 混沌工程 故障演练

JAVA中的注解可以继承吗?

JAVA旭阳

Java

易观千帆 | 10月手机银行APP用户体验GX评测

易观分析

手机银行 GX评测

极客时间运维进阶训练营第八周作业

独钓寒江

详述TLS握手流程

穿过生命散发芬芳

TLS 12月月更

企业数字化转型关键路径:构建数据驱动的管控体系

元年技术洞察

数字化转型 数据驱动 方舟平台

如何在Android安卓环境运行小程序游戏

Onegun

安卓 andiod 小游戏

DTCC2022预告 | 玖章算术叶正盛:程序员必须掌握的数据库原理

NineData

数据库 数据迁移 数据管理 DTCC2022 NineData

构建数字时代下的软件供应链安全体系

云起无垠

软件 软件供应链安全

Guitar Pro2023吉他软件最新版本安装包下载

茶色酒

Guitar Pro Guitar Pro8

如何绘制甘特图?这里有一份最全的教学指南(建议收藏使用)!

PMO实践

甘特图 PMO 项目经理

银行普惠金融可持续发展能力建设——风控科技应用

易观分析

金融 银行

小游戏开发者变现攻略

Onegun

小程序 超级app 小游戏

应用并管控“两库”是信创软件安全的核心能力

云起无垠

Fuzzing

如何设计一个高性能的图 Schema

NebulaGraph

图数据库 图建模

带你手把手实操一个RPC框架

得物技术

架构 中间件 java client prc 12 月 PK 榜

服开与编排,老兵新传

鲸品堂

电信运营商 12 月 PK 榜

什么是BPM系统?BPM流程管理系统介绍

优秀

BPM 业务流程管理

手动测试依然很重要

FunTester

新思科技发布第13版软件安全构建成熟度模型报告

InfoQ_434670063458

安全评估 新思科技 BSIMM

龙游神州:揭秘云VR大空间背后的技术魔法_音视频(前端)_InfoQ精选文章