写点什么

龙游神州:揭秘云 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:287305
用户头像
鲁冬雪 GMI Cloud Head of China Marketing

发布了 366 篇内容, 共 296.5 次阅读, 收获喜欢 300 次。

关注

评论

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

多年锤炼,迈向Kata 3.0 !走进开箱即用的安全容器体验之旅| 龙蜥技术

OpenAnolis小助手

开源 容器 云原生 龙蜥技术 Kata Containers

PingCode 性能测试之负载测试实践

PingCode研发中心

软件测试 PingCode

图像检索(image retrieval)

Geek_e369a5

图像搜索 图像检索

华为云数据库DDS产品深度赋能

程思扬

数据库 华为云 DDS

一加10 Pro和iPhone 13怎么选?

Geek_8a195c

Python|字符串操作

AXYZdong

7月月更

科普达人丨一文看懂阿里云的秘密武器“神龙架构”

阿里云弹性计算

云计算 虚拟化 资源管理 神龙架构

2022年国内云管平台厂商哪家好?为什么?

行云管家

云计算 云管平台 云管平台厂商

如何实现一个延时队列 ?

领创集团Advance Intelligence Group

延时队列 Redis 数据结构 redis 底层原理

智捷云——元宇宙综合解决方案服务商

智捷云

区块链 元宇宙 智捷云 区块链技术开发

什么是低代码开发?

AIRIOT

低代码 物联网 低代码,项目开发

华为云ModelArts的使用教程(附详细图解)

逝缘~

华为 华为云 7月月更

实时云交互如何助力教育行业发展

3DCAT实时渲染

实时云渲染 云交互

Helix Swarm中文包发布,Perforce进一步提升中国用户体验

龙智—DevSecOps解决方案

perforce Helix Core Helix Swarm

都在说DevOps,你真正了解它吗?

龙智—DevSecOps解决方案

DevOps 运维 开发

Lombok使用引发的血案

技术小生

7月月更

【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子

萧然🐳

游戏开发 Unity ScrollView 7月月更 UGUI

五千字讲清楚团队自组织建设 | Liga 妙谈

LigaAI

团队管理 个人提升 敏捷开发管理 LigaAI 自组织协作

Numpy 的仿制 2

祖维

c slice Numpy

产品好不好,谁说了算?Sonar提出分析的性能指标,帮助您轻松判断产品性能及表现

龙智—DevSecOps解决方案

【一库】vueuse:我不许身为vuer,你的工具集只有lodash!

摸鱼的春哥

Vue 前端 Vue3 7月月更

31年前的Beyond演唱会,是如何超清修复的?

字节跳动视频云技术团队

2022年中国移动阅读市场年度综合分析

易观分析

移动阅读

第十八届IET交直流输电国际会议(ACDC2022)于线上成功举办

E科讯

深入JS中几种数据类型的解构赋值细节

猪痞恶霸

前端 js ES6 7月月更

DataKit——真正的统一可观测性 Agent

观测云

OPPO 小布预训练大模型揭秘:可大规模工业化应用的十亿级模型

OPPO小布助手

AI 智能助手 预训练模型 预训练

LeetCode-168. Excel表列名称(java)

bug菌

LeetCode 7月月更

对话龙智高级咨询顾问、Atlassian认证专家叶燕秀:Atlassian产品进入后Server时代,中国用户应当何去何从?

龙智—DevSecOps解决方案

Server Atlassian Jira DC版

容器环境minor gc异常频繁分析

wgy

Java minor gc

太方便了,钉钉上就可完成代码发布审批啦!

阿里云云效

云计算 阿里云 钉钉 jenkins 代码

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