深度解析谷歌用于传输高质量VR视频的新方法
作者:admin 发表时间:2017-11-30 浏览:66 海淘动态
今天笔者要介绍的是谷歌等角立方体贴图技术,一种用于传输高质量VR视频的新方法。自古以来,制图员一直在寻找能准确反映世界的地图制作方法。这门技术的核心挑战是,把弧形的地球映射至平面纸张和屏幕中。千百年来,坊间出现了无数的解决方案,但至今仍未找到最终统一的答案:每种解决方案都是基于预期用途的权衡取舍。随着谷歌地图和VR视频等服务和应用的出现,其需要在2D屏幕上呈现出关于我们弧形3D世界的准确而有用的信息,所以这个挑战在今天依然存在。传统的制图技术必须解决如何在2D中呈现世界这一基本挑战,而视频传输同样面临新的困难:如何有效利用带宽。传输高质量的视频需要推动网络带宽的限制,尤其是移动网络。当涉及VR视频时,带宽需求更是大为增加,因为图像是在一个完整的球体界面中呈现,而不是传统的小型2D窗口。立体视频会使数据再翻大约1倍。因此,我们需要重点考虑如何充分利用可用带宽。现在,谷歌和YouTube正在进行合作,研发出一种名为等角立方体贴图技术的新方案,在带宽有限的今天可以使360度和VR视频看上去更加逼真。1. 等量矩形投影我们最为熟悉的地图是由经纬线组成的四方网格。这也被称为等量矩形投影。底索指示线的等量矩形投影等量矩形投影的优势在于直观的呈现,使用现有的视频编辑工具进行操作也相对简单。然而,在用于视频传输时,这种方法会产生严重的问题。首先,极点区域会得到大量的像素,而赤道部分则几乎没有。这是一个重大挑战,因为在球形视频中,最重要的内容通常在赤道区域(中央)显示,也就是观众的视平线。另外,这种方法还会导致高度失真,给现有的视频压缩技术带来更大的压力。总之,这些缺点突出了球形视频投影的基本挑战:如何在球形显示表面均匀地分配视频像素。2. 传统立方体贴图游戏行业用于优化等量矩形投影的方法之一就是立方体贴图:将球体变形为立方体,然后展开六个面并平整铺开。如下图所示:最直接的方法是使用简单的径向投影:把球体嵌入立方体中,然后将球体上的图像向外投影到立方体的表面上。这改进了等量矩形投影,但仍不能解决像素密度的不均匀分布。问题是立方体各个面的中心接近球体,而角落则离得更远。在上图中,光线全部在圆周上等距分布,但光线与四方形相交的点不会等距分布。这样的结果是,角落获得的视频像素要比中心更多。因为与红光相比,较长的蓝光在四方形边缘会横跨更多的像素,这又会使得赤道区域获得的像素更少。在完整的三维场景中,该问题会更加明显。3. 等角立方体贴图(EAC)你可以通过改变视频像素呈现的位置来解决这一问题。在上图中,我们把从中心射出的光线看作是观众的视线,其根据角度均匀分布。左边是传统的立方体贴图,从面部位置到像素位置呈线性映射;右边则是更有效的EAC映射。根据样品在立方体表面的位置,传统立方体贴图会呈现出不同长度的样品。EAC则通过特别设计,可确保长度保持一致,从而均匀分配像素。由于各种不同的原因,制图并不容易,2D图像难以完美地延伸至3D:你总是需要权衡取舍,保留一样东西意味着你需要放弃其他东西。具体可以查阅关于保角映射和等面积投影的信息,你将会发现,要保留一些特性总是需要牺牲其他东西。EAC方程式在2D中的数学计算很精确,但在3D中只是等角像素分布的近似值,虽然是相当接近的近似值。4. 均匀性对比要通过肉眼对比不同的投影种类,一项有效的方法是使用饱和度图。饱和度图可以显示视频像素与显示像素密度的颜色编码比率。颜色编码从红色到橙色、黄色、绿色、最后是蓝色。绿色表示最佳像素密度比,接近1:1。红色、橙色和黄色表示密度不足(可用显示像素比视频像素多,视频像素不足以填满);蓝色表示存在浪费的资源(可用显示像素比视频像素少,有多余的视频像素)。你可以通过增加视频的分辨率来改变饱和度图的整体颜色。但对于极不均匀的饱和度图,当你把饱和度最低的区域变为绿色时,这还会增加视频资源被浪费的面积。因此,理想的投影具有颜色均匀的饱和度图,因为它可以通过足够的分辨率形成均匀的绿色。饱和度高度取决于图像的大小,以及输出设备的分辨率。不同的分辨率的选择将改变整体的绿色度或橙色度。下面的饱和度图是从特定的案例研究中提取,用于对比不同投影方法的效果。等量矩形投影(左);标准的立方体贴图(中央);等角立方体贴图(右)很明显,等量矩形投影在极点区域呈现出蓝色(视频像素过多),赤道区域则为橙色(质量糟糕,视频像素过少)。与之对比,标准的立方体贴图把最佳的绿色区域从极点附近移动至赤道。原本极点存在浪费的蓝色区域,但现在已经消失。另外,立方体贴图在边缘处的颜色编码比率更好。赤道区域呈现出最显著的饱和度变化。与等量矩形投影最糟糕的区域相比,立方体各个面中心的质量实际上要更低。最后,EAC投影的饱和度图更为均匀,赤道区域的质量更高。这种均匀性允许最大限度地利用可用带宽,从而在给定情况下可选择任何分辨率提供的最佳像素密度。5. 事实胜于雄辩使用EAC投影的最终结果是,视频观影质量得到了提升。下图是在1080P的谷歌Cardboard头显中,以720P显示的左眼影像截图,分别采用了等量矩形投影和EAC投影 。较大的图像是为了让我们了解具体场景,较小的标注放大区域用以进行对比。正如你所见,在使用EAC投影后图像变得更加清晰。左图:VR头显中看到的图像帧。右图:左边是等量矩形投影;右边是EAC。6. 细节决定成败…以上介绍了EAC投影的大致工作原理。它可以解决立方体各表面在视频的矩形边界和实际数学的布局。将立方体表面上的点映射到视频像素样本的方程很简单。对每个面进行类似的操作。现在,所有六组[0,1]纹理坐标需要被打包成单个视频纹理。如果视频形状和大小受硬件或流传输的局限而受限,这些布局可能需要特别关注,它们或许需要自行分析。把立方体的六个面布局成一个视频矩形有很多方法。另外,当各个面彼此相遇时可能会出现间断处,这在渲染时可能会导致视频编码和像素插值产生问题。在游戏中使用的纹理地图集存在类似的问题,它们通常需要在间断处添加填充来解决。这些细节为抽象EAC概念的部署方式提供了选择和权衡的机会。如果你熟悉OpenGL,你或许已经注意到,这其实可以通过立方体贴图纹理和片段着色器来解决。没错,你是正确的。但实际的数学运算还是留给读者作为练习吧。图像质量对VR十分重要,平衡带宽限制和准确投影之间的关系也很关键。在回顾了等量矩形投影和传统立方体贴图的部分挑战后,我们可以发现等角立方体贴图可提供更好的结果,同时能更有效利用资源。
部分图片内容来自于网友投稿
0/300
微博发布