来源:SIGGRAPH 2020
内容整理:桂文煊
在沉浸式视频中,主要挑战之一是以一种合理的方式对其进行压缩,即可以以合理的比特率进行流式传输,并实时解码和渲染。本文开发了一种压缩多平面图像(MPI)的新方法,可以在 PC 端上实时播放,并为用户提供无需头戴设备的沉浸式观看视频体验。

目录

  • 沉浸式视频的背景以及挑战

  • Multi Plane Images(MPI)

  • 对MPI进行压缩

    • 压缩测试方案

    • 将RGBA图像转化到YUV4:2:0

    • 采用同一个RGB纹理图

    • 采用同一张alpha图

    • 压缩小结

  • 未来工作

沉浸式视频的背景以及挑战

传统的视频内容往往只能给用户提供一个固定视角的画面,其视频背景给用户的感觉就如一张贴图一般,缺乏真实性。为了为用户提供一个更好的视频观看体验,沉浸式视频如今已经成为了研究人员们新兴的研究方向。在本文中,沉浸式视频指代的是视频内容随着人体头部的移动也相应进行移动的视频。对于沉浸式视频的传统做法是利用多个相机来拍摄不同角度的视频内容。理想情况下,无限个相机可以提供各个角度的视频,但受限于设备价格与设备摆放的问题,无限相机显然是不可能的。在实际操作中,往往采用固定数量的相机来获取多视角的图像。但当人的观察角度处于两个相机之间时,视频内容需要根据已知相机作为参考。获取场景中的深度图是常见的一种处理办法。其通过参考相机的参数以及其拍摄的参考图像,将图像从相机空间转换至世界空间,从而获取最终的输出图像。这种方法不仅计算复杂,而且对于某些像素点来说,其深度值是不定的。该工作采取了一种比较新颖的新视角合成方法:Multi Plane Images (MPI)

Multi Plane Images(MPI)

这种方法一般适用于处于同一水平基线的左右视角图像作为输入的情况。其利用一个深度神经网络模型推断出 MPI 的场景表达,并且重建出最终所要生成的图像。示意图如图1所示。

图1 MPI合成新视角示意图

MPI场景表达方式包含多个平面,每个平面d编码两种信息,一种是RGB颜色图像,另一种是透明度alpha图,因此整个MPI可表示为RGBA图像的集合,如图2所示。(作者采用了32个平面)

图2 MPI实例

强大的GPU算力对于静态图像的渲染是非常轻松的,因而对于MPI方法中新视角的合成是非常容易实现的。但其中存在着带宽问题。在30fps下, 一个32层、1920×1080分辨率的MPI场景需要占据8GB每秒的带宽,这对于绝大多数用户显然是难以承受的。因而对于MPI必须要进行压缩。

对MPI进行压缩

压缩测试方案

压缩是为了使MPI能以合适的比特率进行流式传输,但其对于最终输出的图像质量不能有太大的损失。作者用以下办法对压缩中存在的损失进行测试。

图3 测试内容

测试内容如图3所示。作者采用4x4的相机阵列,并且标记了一些相机之间的中点c0、c1、c2、c3,如图4所示。作者对这些位置中得到图像的PSNR值进行测试,并且最终结合比特率进行了比较。

图4 相机阵列以及参考点示意图

将RGBA图像转化到YUV4:2:0

由于绝大部分的用户所使用的电子设备都已经具备了硬件解码器,所以作者采取了一种标准的视频压缩算法,例如HEVC。压缩后得到的结果如图5所示。

图5 32YUVA测试结果

可以看出压缩后的PSNR值仍然非常高,在图像质量只有较小的降低,但其在比特率上有着1.8倍的降低。

采用同一个RGB纹理图

在进行了比较经典的YUV视频压缩后,32个YUV图和32个alpha图仍然有比较重的传输负担。考虑到32张RGB纹理有着很强的一致性,作者在此保持32个alpha图不变的情况下,采用了原始相机图片作为32个平面统一的RGB纹理。再度压缩后得到的结果如图6所示。

图6 1YUV-32A测试结果

可以看出在几个参考点上PSNR值只有很小幅的降低,而在相机位置上质量甚至有所增加,这是由于所选取的RGB纹理图是原始相机图片。而在比特率上又进行了32倍的大幅度降低。

采用同一张alpha图

由于alpha图的稀疏性,可以模仿对于RGB纹理的操作,将32张alpha图编码为一张alpha map,示例如图7所示。

图7 alpha map示意图

再度压缩后测试结果如图8所示。

图8 1YUVA测试结果

从结果上可以看出图像质量上有着很小幅的降低,但在比特率上则再度进行了压缩。

压缩小结

作者将32层平面的RGBA图像一步一步压缩为单层的YUVA图像,示意图如图9所示。

几种压缩的结果可由图10直观表示。虽然32YUVA与1YUV-32A能在图像质量上超过1YUVA,但是其需要非常大的比特率进行传输,而在较小的、合适的比特率下(例如20Mbit/s),1YUVA的图像质量远超于其他两种。

故这种压缩方法能在保持图像质量可接受的情况下,大幅降低所需要的比特率,其使得MPI的存储以及传输能够更加灵活。

未来工作

1、能够具有更加丰富的测试内容

2、跨相机压缩

3、提升alpha map的质量

附上演讲视频:

创建沉浸式 VR 视频体验相关推荐

  1. VR与AR:沉浸式与交互式体验的对比

    一.引言 当谈到VR(虚拟现实)和AR(增强现实)时,它们都是与计算机图形和感知技术相关的创新技术. VR(虚拟现实)和AR(增强现实)作为引领未来科技的创新技术,正以惊人的速度改变着我们与数字世界的 ...

  2. 淘宝天猫CTO若海:沉浸式的消费体验是下一步发力方向

    ​每年双 11 开卖的那一刻,千万用户同时在线下单,那个瞬间服务器的压力是平时流量的数百倍,淘宝系统是否能够稳定支撑,是每年所有人关注的热点话题. 时至今日,丝般顺滑已经逐渐成为稳态.从今年开始,双 ...

  3. 【冰城论道】网心科技李浩:打造沉浸式虚拟现实新体验

    2月16日,冰城论道暨第24届中国智能视听与科技创新高峰论坛在哈尔滨举办.网心科技CEO李浩受邀出席论坛,并发表<端边云协同,打造沉浸式虚拟现实新体验>主题演讲,他提出边缘计算从低成本开始 ...

  4. 全景线上展厅虚拟展厅,沉浸式和互动式体验极佳

    VR全景技术作为互联网新兴的技术,在疫情的影响下,全景线上展厅在会展业被广泛应用,传统展会行业的展示皆是线下展示为主,目前大部分VR展厅采用vr全景技术全景展示展会,随着VR全景技术的不断创新,商迪3 ...

  5. 沉浸式音视频互动要通过什么技术来实现?

    随着互联网技术的提升,大家在注重互联网稳定性的同时,也在对使用互联网的沉浸感提出了进一步的要求,人们逐渐沉浸网络之中,而追寻沉浸式音视频的互动成为众多开发商的共同目标.随着 AR.VR.5G.云计算等 ...

  6. 基于zynq的千兆网udp项目_随时随地感受“沉浸式千兆体验”!海南互联网络迈入“三千兆”时代...

    海口网6月18日消息(记者刘杰)18日,海南电信在海口友谊阳光城举办"电信三千兆 智享新生活"发布会."电信三千兆"的发布标志着海南互联网络建设进入一个全新的发 ...

  7. 如何最大化利用CPU性能创作沉浸式VR体验

    -- 本文来自英特尔游戏开发部门的 Justin Link -- 在三年多的时间,我有幸负责管理一家名为Chronosapien的工作室,而我们主要是通过新兴技术组件来创建交互式内容.我们涉足了大量不 ...

  8. VR自行车骑行系统方案,提供沉浸式骑行体验!

    虚拟现实除了能让用户身临其境体验游戏.电影之外,在探险.体育竞技等领域也有着很大的发展前景.安徽佩京推出的VR自行车游戏产品,此产品让用户在娱乐中既锻炼了身体,又体验到了游戏的乐趣. 产品介绍: VR ...

  9. 【大淘宝技术论坛】阿里巴巴内容化电商技术分享淘宝3D沉浸式直播间体验

    大淘宝技术将于1月15日下午举办大淘宝技术论坛,分享阿里巴巴内容化电商技术,邀你体验淘宝3D沉浸式直播间,赶快点击"阅读原文"报名吧! 2021年8月30日,淘宝slogan八年来 ...

最新文章

  1. Linux的ntp服务起不来,CentOS7/Red Hat7 NTP服务无法开机自启动
  2. 安装meme_通过构建Meme生成器学习React
  3. 原创 | 灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?
  4. 视频安防监控系统工程设计规范GB 50395-2007
  5. 用3DSMAX制作室内效果图的九大步骤
  6. 合并空间和时间姿势估算
  7. 二、什么是asp网站
  8. 点击改变文本框选择内容,Jquery datatables 重新加载数据
  9. 洛谷 P1919 【模板】A*B Problem升级版 【快速傅里叶变换 FFT】
  10. 在线格式化xml 工具
  11. HTML5期末大作业:动漫人物介绍网站设计——柯南(5页) 含报告 HTML+CSS+JavaScript dw网页设计 web网页设计与开发
  12. 李宏毅机器学习 Classification
  13. 初学JSP,运行一个JSP小程序
  14. Activity详解—— Activity基本用法
  15. python virtualenv简单使用
  16. Ubuntu18.04LTS搭建CDH6.3.0环境-版本二
  17. 智能电表远程抄表系统
  18. 湖北武汉机械员证书机械设备安全的施工管理建筑七大员培训
  19. 【linux】循序渐进学运维-基础篇-Linux文件管理命令
  20. Android架构详细讲解与C/C++开发支持原理

热门文章

  1. Fibonacci 数列与黄金分割(C/C++)
  2. 蓝牙协议分析(一)--转
  3. coalesce函数用法php,如何使用Oracle中的 COALESCE 函数
  4. 支付宝免签最新转账,直接H5拉起超低风控!
  5. CentOS7.5-1804系统内核升级
  6. All In全闪存存储,这家银行干得漂亮
  7. 腾讯云团队为什么用阿里云的服务名?
  8. canvas 绘制好看的背景
  9. JAVA四大排序介绍
  10. 联想千万元投资个性定制网站