Facebook研发新一代360全景视频编码和虚拟现实技术

2016-01-27 15:12
Facebook研发新一代360全景视频编码和虚拟现实技术
`通过对原来360全景视频等效矩形的设计转为立方体格式(cube format),大小减少为原来的25%。
`我们正在对源代码制作一个可供我们使用的过滤器能够将360全景视频转化为立方体格式(cube format)。
`360全景视频对虚拟现实来说是一个独特的挑战,包括更大的文件大小和无需等待缓冲的要求。
`锥体几何编码对360视频来说减少了80%的原始文件大小。
`视点相关的自适应比特率流是我们能够优化虚拟现实中的体验。

视频越来越成为我们所关心的人分享人和事的途径。360视频和虚拟现实两者也都能够创造身临其境的场景。当然,所有这种丰富的创造需要一整套新的,困难的工程挑战。文件大小是如此之大,以至于在360视频或虚拟现实中会成为视频质量的障碍。我们已经在此做出了两次里程碑式的努力,构建了传统测绘技术并且能在计算机图形学,图像处理和压缩当中成为一个强有力的工具。我们构筑了这两种巧妙的想法并延伸开去让其能满足下一代显示质量的高带宽需求。首先,我们会围绕我们360视频过滤器和源代码来讨论我们将要做的工作。

我们在构筑360全景视频新闻遇到了几个工程上面的挑战。我们的主要目标是解决铺平360视频球体到2D平面视角时等效矩形布局的缺点。这种布局创建在扭曲的图像上,并包含了顶部和底部的冗余信息——就像南极洲延伸到平面地图上成为一块线性陆地,即使实际上在地球上它是一块圆形的陆地。

我们的解决方案是重新映射等效矩形的多维数据布局。我们通过转化视频顶部和底部的25%多位数据集到另一个,并划分中间50%的多维数据集到另外4四个多维数据集,然后把它们两行对齐。这比原来减少了25%的大小,更重要的是这提升了Facebook的工作效率。

视频在使用多维数据集映射时有几个额外的好处:
多维数据集在面上不存在几何失真。所以每个面看起来就好比你向前看——摄像机的正面透视,扭曲或变换对象其周边的区域。这很重要因为视频编码器会假定矢量运动为直线。这就是为什么编码比等效矩形的弯曲运动要更佳。

立方体像素贴图分布更均匀——每个面都一样重要。 在等效矩形映射中没有极点,这也不会包含冗余信息。

多维数据集映射会是更容易的项目,每个面被绘制成都有相应数据集的面。 多维数据集映射在计算机图形学中的应用有很长一段时间了,主要用于创建空间和映像,我们希望能拥有能给任何需求高质量视频的能力。今天,我们所做的源代码可作为ffmpeg的插件用在GitHub的筛选器中,它把用户上传的360视频从等效矩形转化为立方体格式的流。我们渴望用户能够采用这个工具,我们迫不及待想看到大厦开始高筑。

为VR虚拟现实优化360全景视频
大小是360视频的主要挑战之一。多维数据映射能帮助我们降低比特率和节省存储空间,并且能够快速实现因此人们不用等待缓冲,同时能够维持视频的质量和分辨率。这些技术障碍也是我们在播放360视频时的主要问题。在Gear VR中最大的视觉问题,例如,6K-这只是给一只眼睛的。6K视频在60帧率时大约是全高清视频的20倍以上,平均比特率为245Mbps。然而,大多数移动智能手机只能播放4K视频。

我们可以通过执行依赖于视角的流来避开这个问题。在360全景画幅外,我们流媒体的视野,例如96度的Gear VR。如此结果意味着FOV小于4K分辨率的解决方案可以与当前的移动智能硬件解码。

这解决了大小问题而不会牺牲质量,然而这仍不是最佳。360视频的标志是用户可以自行控制角度来体验沉浸感。特别是在虚拟现实中,我们不得不快速或者连续头部运动。如果我们的流媒体只是定义视角和头部移动,部分新的FOV就不会呈现图像。因此我们需要流(stream)不仅仅是可见的FOV。

锥体编码
用多维数据集,我们把一个球体置入多维数据集,然后扩大并填充,直到填满多位数据集。我们基于这种想法创建了锥形编码,将360视频应用于VR领域。

我们开始把球体置入锥体,因此,基于球体的的高分辨率逐渐填充直至它们达到相对的视区。我们可以铺开伸展适应整个360图像成为一个长方形框架,从而减少处理了80%的原始文件大小。

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术

Facebook研发新一代360全景视频编码和虚拟现实技术
360视频在等效矩形布局

当360视频被上传时,我们在每30个视区中将等效矩形转化为锥体格式,且我们为每种流创建了5种不同的分辨率,总共150个不同版本的同一视频。我们选择了在储存服务器上预生成视频,而不是为每个客户要求的在真正的时间线上进行编码。而这也需要更多饿存储空间,并且会影响到切换视角时的延迟时间,它在服务器端的设置十分简单,并不需要额外的软件。

由于视角不断会变化,因此如果流媒体在播放时需要缓冲也便没了意义。我们将每个视频流分成了视图自适应比特率播放。每秒(或者更少),我们基于观众的网络条件,视角方向和时间来确定流媒体流向。我们必须仔细:等待不足会导致流媒体读取方向或者分辨率错误,而等待太久会导致缓冲时间的加长。(大概就是视频网站缓冲前的加载?)


为VR编码360视频

我们在运行多个迭代测试来控制网络环境,日志记录信息例如中心角到观众视角的距离,每个视区的延迟时间,缓冲时间和网络带宽,并优化算法。对于未来,我们正在对机器学习如何选择视频,并对头部运动视角转移进行预测展开工作。

构建新一代的沉浸式内容意味着解决更新,更难的工程挑战。我们很兴奋能在360视频上不断取得进展,我们期待与工程界分享新的工具和知识。

来源:https://code.facebook.com
本文为作者 倪雷尔 分享,影视工业网鼓励从业者分享原创内容,影视工业网不会对原创文章作任何编辑!如作者有特别标注,请按作者说明转载,如无说明,则转载此文章须经得作者同意,并请附上出处(影视工业网)及本页链接。原文链接 https://cinehello.com/stream/75225