论文学习笔记001——ACM MM'18 《CloudVR: Cloud Accelerated Interactive Mobile Virtual Reality》
1. 概要
这篇文章提出了一个CloudVR系统来在移动平台上通过云服务(即一个client-server模型)传输交互性的VR内容,并对服务器端的运算负载和带宽需求进行优化,以减少端到端延时,另外还对多用户场景下的模型扩展提出了相关设计。这一设计的目的是为了降低VR图形渲染对于高性能PC的需求,从而在移动端实现高质量的VR图形表现,主要挑战是在分布式的渲染系统中降低延时。
论文原文:CloudVR: Cloud Accelerated Interactive Mobile Virtual Reality
2. CloudVR架构
服务器端:
Panoramic projection - 全景映射,传输时采用了立方体的数据结构存储视频数据,在渲染端需要将其转换为球形的全景视频形式;
The modified camera captures the player surroundings using square views with an edge-to-edge field of view of 90 degrees. The square views are stored to a cube map texture, a data structure for capturing full surroundings as viewed from an object in the scene. The cube map is projected to a single, flattened panoramic equirectangular video frame that is then passed to the DLL plugin for encoding and transmission.
NVENC - 英伟达的视频编码SDK,使用GPU上的专用芯片对视频帧进行编码,编码后生成h.264码流;
TCP Socket - 传输协议,将视频流传输给客户端。
客户端:
使用Unity搭建,在低延时下对视频流进行读取、解码和映射,采用单帧缓冲,解码的方式。
用户头部姿态和控制信息(如手柄)使用Google VR SDK完成。
网络协议:
基于HTTP的协议如MPEG-DASH和HLS不适用于实时系统,因此该系统使用了最简单的方式:原始H.264流通过TCP套接字连接进行传输。
3. 渲染优化
360°虚拟环境的渲染需要很大的计算消耗,并且远程渲染可能导致的延迟变化可能影响用户的体验质量。文章给出两个优化方法:自定义视锥体裁剪(Custom Frustum Culling)和多分辨率渲染(Multi-resolution rendering)。
4. 偏好评估
4.1 CloudVR vs. Standalone Mobile Client
设备:
Recent models | Older models |
---|---|
Google Pixel 2 XL | Huawei Mate 9 |
Samsung Galaxy S7 | Huawei Nexus 6P |
测试结果: