20ASPLOS_Coterie: Exploiting Frame Similarity to Enable High-Quality Multiplayer VR on Commodity Mob

Overview

这是20年另一篇多用户VR的文章。
作者主要通过背景background environment (BE)的缓存复用来减少通信量。考虑到整个BE相似性不高,作者又划分为near BE和far BE。near BE放在client端渲染,far BE前后帧相似性较高,放在Server端渲染,同时客户端缓存和复用。

Challenges

作者基于安卓实现了一个Multi-Furion版本并测量它的性能。发现系统的主要瓶颈在于网络的时延,尤其是多用户带宽不足的情况下。
因此作者提出能够通过单用户间前后帧的相似性、多用户之间的相似性来缓存背景以减小通信量。

Exploiting Frame Similarity

在这里插入图片描述

作者通过测量前后帧的BE的SSIM来计算相似度,SSIM大于0.9可以认为是一样的。由左图可以看到,BE之间相似性较低。
同样情况发生在多用户间的相似性。
原因:作者发现在player所处位置附近会有很多objects,不同帧时间objects不同,同时渲染时这些objects会放大,使得相似性降低。而不同帧之间远处的背景相似性很高。作者选取一个位置和划分半径,分为near BE和far BE,进行了SSIM测量,如右图所示,far BE展示出高度一致性。
在这里插入图片描述因此,对于每一个像素点,需要确定划分半径,然后near BE在客户端渲染,far BE在服务器渲染。划分半径需要考虑到应用的渲染需求和客户端的渲染能力。FI指small objects。
需满足:
在这里插入图片描述
由于 R T F I RT_{FI} RTFI已知且较小,可通过直接测量的 R T F I = 4 m s RT_{FI}=4ms RTFI=4ms
因此
在这里插入图片描述
接下来需要确定半径满足该限制。比如某个点附近object density更大(渲染难度大)、设备资源不足,则应当减小半径,满足该延时条件。
作者观察到,在某一个小局部区域内,密度相似,渲染半径保持类似,因此可以统一求出一个半径。作者设计了一个启发式算法:

  1. 从整个背景图开始,随机选取K个点;
  2. 计算K个点满足条件的最大半径;
  3. 如果K个点的值相等,则认为这块区域属于一致;否则,划分成四等份重复过程。

最后生成一颗树,树的叶子节点表示一个区域。作者经过实验验证K取10时评估结果相对准确。

因此,far BE下载后将被缓存在客户端,之后可以复用相似的BE。注意这个半径的计算是offline完成的。

以上是同一用户前后帧之间的相似性。下面探讨邻近用户之间的相似性。作者设计了一个实验,通过设计不同的命中规则(严格匹配exact和相似similar),来看缓存命中率。
在这里插入图片描述由V3和V5看到,增加了用户相似性并不会增加命中率,因此作者抛弃这种策略。

Design

在这里插入图片描述
这是系统架构图。服务器端准备好了far BE供用户下载,包含编码和发送。客户端下载后,可以缓存在Cache中。由传感器获取位置和操作后,FI和near BE在客户端渲染,far BE由prefetcher决定在缓存中直接取还是去下载。最后将两者合成和播放。这里还涉及到多用户间的FI同步,比如逛博物馆各个人头像的同步,采用unity的PUN。

总的时延包括:
在这里插入图片描述当缓存命中时,客户端可以利用空闲的带宽下载冗余的BE块。
缓存中寻找相似帧BE的步骤包括:

  • 对于每个点grid point,计算其dish_thresh的BE frame。这里点应该是指sensor获取到的坐标。(保证位置的相似性)
  • 位于同一个叶子节点的帧。(使得半径相同)
  • 拥有相同的objects set。(包含的物体一样)

所有符合条件的帧中,选取坐标最相近的帧。确定dish_thresh上,选取同个叶子节点区域上的 l l l个点,计算在该叶子节点对应半径下每个点能达到SSIM大于0.9的最远距离,选取这个区域的最小值作为dish_thresh。

缓存替换方面,选取LRU或FLF。

性能方面,质量达到1080p。帧率60FPS。延迟15.9ms。同时支持4个用户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值