HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

发布了 362 篇内容, 共 258.8 次阅读, 收获喜欢 293 次。

关注

评论

发布
暂无评论

OpenHarmony 3.1 Release版本关键特性解析——Enhanced SWAP内存管理

OpenHarmony开发者

内存管理 OpenHarmony

对话ACE第三期有奖调研

OceanBase 数据库

数据库 对话ACE Oracle ACE

druid 源码阅读(八)Druid 回收连接

爱晒太阳的大白

5月月更

互联网出海企业数据库选型问答实录

OceanBase 数据库

云数据库 oceanbase 互联网出海

马斯克推崇的柏拉图式元宇宙,PlatoFarm早已验证出答案

股市老人

javascript 中搜索数组的四种方法

CRMEB

金融任务实例实时、离线跑批Apache DolphinScheduler在新网银行的三大场景与五大优化

白鲸开源

Apache 大数据 开源 DolphinScheduler workflow

堡垒机4a认证是什么意思?是指哪4a?

行云管家

云计算 网络安全 堡垒机 堡垒机认证

密码学系列之:PKI的证书格式表示X.509

程序那些事

Java 密码学 程序那些事 5月月更

AIRIOT物联网低代码平台如何配置三菱PLC驱动?

AIRIOT

物联网 PLC 驱动配置

2022年5月中国数据库排行榜:openGauss 黑马首登顶,AntDB 冲进20强

墨天轮

数据库 opengauss TiDB oceanbase 神通

有数BI大规模报告稳定性保障实践

网易数帆

大数据 BI 网易 稳定性保障

Nebula Graph|如何打造多版本文档中心

NebulaGraph

数据库 图数据库 NebulaGraph

前端常用的站点导航

刘帅强

Hoo研究院 | 币圈后浪—PRISM

区块链前沿News

Hoo

爱番番微前端框架落地实践

百度Geek说

前端

战“码”先锋直播预告丨如何成为一名优秀的OpenHamrony贡献者?

OpenHarmony开发者

OpenHarmony 贡献代码

百问百答第38期:关于nginx监控,我们这样做

博睿数据

博睿数据 nginx监控

钱卫宁:开源是培养数据库人才的关键|OceanBase 数据库大赛访谈

OceanBase 数据库

oceanbase 数据库大赛

龙蜥开发者说:我的操作系统之路,坚持从实践中来,到实践中去 | 第6期

OpenAnolis小助手

Linux 开源 操作系统 龙蜥社区 龙蜥开发者说

CRM系统帮助企业有影响力的营销

低代码小观

CRM 客户关系管理 企业管理系统 CRM系统 客户关系管理系统

熊磊:成功移植OpenHarmony到多套开发板,是最开心的事

OpenHarmony开发者

开发板 OpenHarmony

银行RPA趋向主动触发流程,补足营销场景执行末端的渠道协同能力

易观分析

银行 市场营销

Linux下玩转nginx系列(五)---nginx实现负载均衡

anyRTC开发者

nginx Linux 负载均衡 音视频

Redis io多线程

C++后台开发

redis 后端开发 Linux服务器开发 C++后台开发 单线程

CUDA优化之PReLU性能调优

OneFlow

性能优化 cuda PReLU 朴素实现

总结

Geek_36cc7c

【云计算】云计算四个必学知识看这里!

行云管家

云计算 云服务 企业上云

前端工程化之FaaS SSR方案​

百度Geek说

前端

学Python运维,这知识点你肯定会遇到,【必收藏之】nginx 域名跳转相关配置

梦想橡皮擦

5月月更

RocketMQ—Producer(五)路由队列选择

IT巅峰技术

架构 RocketMQ java

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