摘要
本帖参考Adrian Pennington近期发表在IBC的文章MPEG heads to the holograph,重点介绍了MPEG正在推广的基于视频的点云压缩技术 (V-PCC)。V-PCC解决了3D点云(空间中的一组数据点)的编码,以及相关的例如颜色的属性。其目的是启用包括人物角色表示在内的新应用。换句话说,人形化身或全息图作为沉浸式扩展现实的一部分在不久的将来就会实现。
引言
10月初在中国澳门举行的一次会议上,标准组织MPEG将其基于视频的点云压缩(V-PCC)标准升级为委员会草案阶段。
“点云的一个应用是用它来表示人类,动物或其他现实世界的物体,甚至是完整的场景,”Technicolor公司研发的标准总监Ralf Schaefer解释道。为了获得良好的视觉质量,需要足够密度的点云,这可能导致大量的数据。可以理解,这是大众市场应用的一个重要障碍-因此需要一种可行的有损或无损压缩信息的方法。
10月在中国澳门的MPEG会议
扩展现实(XR)
当前技术的局限性意味着虚拟现实被限制在三个自由度(3DoF)。而V-PCC大约有六个自由度(或是能在三维空间中完全身临其境的运动)。好莱坞工作室认为这将成为虚拟和混合现实的最终实现目标。许多公司已经开始将注意力从VR转移到增强现实和混合现实,或者用新的术语说,扩展现实(XR)。例如,Sky和Google投资的VR先锋Jaunt正抛弃VR相机开发,专注于其XR混合现实计算平台。Jaunt最近收购了总部位于芝加哥的Personify制造商,该公司生产称为Teleporter的体积点云解决方案。
Apple拥有最广泛的AR生态系统,并在该领域处于领先地位。其增强现实组件面向希望在iOS设备上添加AR体验的开发人员。它将自身定位为AR和混合现实体验的最终目的,那时iPhone和一般的智能手机会被可穿戴护目镜的形式取代,成为通信,信息和娱乐的消费者界面。微软(Hololens-无线全息计算机设备),谷歌(使用AR工具集Project Tango的眼镜),Facebook(将其Oculus VR头戴设备团队重定向到AR眼镜开发)和Magic Leap都是此方向下一阶段互联网计算的竞争对手。据报道,Apple的技术据称是MPEG V-PCC标准背后的主要驱动因素,这一点不足为奇。“MPEG选择的点云解决方案是Apple提出的,”超高清论坛和视频压缩专家主席Thierry Fautier证实道。
V-PCC方案描述
MPEG实际上正在研究压缩点云的两种方法。 另一种基于几何(G-PCC),使用3D几何定向编码的方法,其用于车辆激光雷达,3D绘图,文化遗产和工业应用。
图1 点云(PCC)
而V-PCC的主要理念是利用现有的视频编解码器来压缩动态点云的几何和纹理信息。(HEVC是基础应用,尽管如果被证明更有效,它可能被换成其他编解码器),从而大大缩短了产品上市时间。
这基本上是通过将点云转换为一组不同的视频序列来实现的。具体地,使用诸如MPEG-AVC,HEVC,AV1等的现有视频编解码器生成和压缩两个视频序列,一个捕获几何信息,另一个捕获点云数据的纹理信息。解释两个视频序列需要附加元数据,即占用图和辅助Patch信息,也分别被生成和压缩。然后将视频生成的比特流和元数据多路复用在一起,以便生成最终点云V-PCC比特流。应注意,元数据信息表示总比特流的相对小的量(5-20%)。大部分信息由视频编解码器处理。下图提供了V-PCC压缩和解压缩过程的概述。
图2 V-PCC编码过程概览
图3 V-PCC解码过程概览
A.Patch的生成和打包——确定如何最好地将输入点云分解为Patch,以及如何最有效地将这些Patch拟合到矩形2D网格中。
利用传统视频编解码器对点云进行编码需要将输入点云映射到常规2D网格。目标是找到时间上一致的低失真内射映射,其将3D点云的每个点分配给2D网格的单元。
最大化时间一致性并最小化距离/角度失真使得视频编码器能够充分利用点云几何和属性信号的时间和空间相关性。内射映射保证所有输入点都由几何和属性图像捕获,并且可以无损失地重建。 简单地将点云投影在立方体的面上或球体上并不能保证由于自动遮挡而导致的无损重建(即,不捕获自动遮挡点),并且在实践中产生显着的扭曲。
为了避免这种限制,V-PCC将输入点云分解为一组Patch,这些Patch可以通过简单的正交投影独立地映射到2D网格,而不会遭受自动遮挡,也不需要对点云几何重新采样。此外,Patch生成过程旨在生成具有平滑边界的Patch,同时最小化它们的数量和映射失真。 为了解决该NP难优化问题,V-PCC应用了下图所示的启发式分割方法。
图4 V-PCC Patch生成过程概览
首先,估计每个点的法线;然后通过将每个点与六个单位立方体定向平面中的一个相关联来获得点云的初始聚类。更确切地说,每个点与具有最接近法线的平面相关联(即,最大化点法线和平面法线的点积)。然后通过基于其法线和其最近邻居的聚类索引迭代地更新与每个点相关联的聚类索引来细化初始聚类。最后一步包括通过应用连接的组件提取过程来提取Patch。
打包过程旨在将提取的Patch映射到2D网格上,同时尝试最小化未使用的空间并保证网格的每个TⅹT块(例如,16ⅹ16块)与唯一的Patch相关联。
V-PCC使用简单的打包策略,迭代地尝试将Patch插入WⅹH网格。W和H是用户定义的参数,其对应于将被编码的几何/纹理图像的分辨率。通过以光栅扫描顺序执行的穷举搜索来确定Patch位置。选择可以保证Patch无重叠插入的第一个位置,并将Patch覆盖的网格单元标记为已使用。如果当前分辨率图像中没有适合Patch的空白区域,则网格的高度H会暂时加倍并再次执行搜索。在该过程结束时,H减少以便仅考虑所使用的网格单元。
B. 图像生成&填充——将点云几何和纹理信息转换成适合于使用传统视频编解码器的时间相关的,分段平滑的2D图像。
图像生成过程利用在打包过程中计算的3D到2D映射,以将点云的几何和纹理存储为图像。下图为生成的几何和纹理图像的示例。
图5 几何(左)和纹理(右)图像实例
为了更好地处理将多个点投影到同一像素的情况,每个Patch被投影到两个图像,称为图层。填充过程旨在填充Patch之间的空白空间,以尝试生成可能更适合于视频编码的分段平滑图像。V-PCC使用简单的填充策略,独立处理每个TⅹT像素块。如果该块是空的(即,其所有像素都属于空白空间),则通过复制前一个T的最后一行或一列来填充该块的像素。按光栅顺序排列T块。如果块已满(即,不包含任何空像素),则不执行任何操作。如果块同时具有空像素和填充像素,则空像素被迭代地填充其非空邻近像素的平均值。
C.辅助Patch和块信息编码
为了使解码器能够从几何和纹理图像重建3D点云,在比特流中编码以下Patch/块元数据信息:
- 对于每个Patch,其投影平面的索引,其3D位置和2D边界框。
- 对于每个TⅹT块,它所属的Patch索引。
Patch元数据被预测并进行算术编码。块到Patch映射信息的编码如下:令L是Patch索引的有序列表,使得它们的2D边界框包含该块。列表中的顺序与用于编码2D边界框的顺序相同。L称为候选Patch列表。Patch之间的空白区域也被视为Patch,并被分配了特殊索引0。此Patch也被添加到所有块的候选Patch列表中。设I是当前TⅹT块所属的Patch的索引,并令J是L中的I的位置。对位置J进行算术编码而不是明确地编码索引I,这可以带来更好的编码效率。
D.占用图编码
占用图由二进制映射组成,该二进制映射指示网格的每个单元是属于空白空间还是属于点云。占用图压缩利用前一小节中描述的辅助信息,以便检测空的TⅹT块(即,具有Patch索引0的块)。剩余的块使用以下过程进行编码。
占用图可以用B0ⅹB0块的精度编码。B0是用户定义的参数。为了实现无损编码,B0应设置为1。实际上,B0 = 2或B0 = 4也是视觉上可接受的结果,同时会显着减少编码占用图所需的位数。
占用图压缩模块首先将二进制值与属于相同TⅹT块的所有B0ⅹB0子块相关联。如果子块包含至少一个非填充像素,则值1与子块相关联,否则值0。如果子块的值为1,则称其为满;否则它就是一个空的子块。如果TⅹT块的所有子块都已满,则该块也称为满。否则,该块被称为非满。然后,对于每个TⅹT块,对flag标识符进行编码,以指示该块是否已满。如果块未满,则通过使用以下策略对指示完整/空子块的位置的附加信息进行编码。首先,编码器选择下图中描绘的四个子块遍历顺序中的一个,并在比特流中明确地发信号表示其索引。然后,根据所选择的遍历顺序对与子块相关联的二进制值进行排序,并使用行程长度算法策略进行压缩。
图6 子块遍历顺序
E.平滑和几何/纹理重建
平滑过程旨在缓解由于压缩失真而可能在Patch边界处出现的潜在不连续性。实现的方法将边界点移动到其最近点的质心。点云几何重建过程利用占用图信息以便检测几何/纹理图像/层中的非空像素。通过利用辅助块/Patch信息和几何图像来计算与那些像素相关联的点的3D位置。
V-PCC规范计划由ISO围绕IBC2019(Q3 2019)发布,因此第一批产品可能会在2020年上市。 “最新一代移动电话已经包括可以作为多个实例运行的视频编码器/解码器以及功能强大的多核CPU,允许在可用设备上实现首批V-PCC。由于V-PCC规范利用现有的视频编解码器,V-PCC编码器的实现将大大受益于视频编码器的现有知识和实现(硬件和软件)。”Ralf Schaefer说。
目前的V-PCC测试模型编码器实施已经提供了125:1的压缩,这意味着根据MPEG,可以以8Mbit / s“具有良好的感知质量”编码100万点的动态点云。与其他体积视频表示相比,捕获和渲染空间信息相对容易,这使得点云在呈现沉浸式体积数据上越来越流行。
捕获点云
点云通常非常适合6个自由度(DoF)的沉浸式媒体应用,因为自由视点在本机上被支持并能避免遮挡。在捕获侧,通常从多视图捕获的深度和/或视差信息推导出点云。这包括光场系统,例如在Google的研究实验室中测试的多个GoPro相机的装置。“在当前的光场相机系统中,当考虑全光相机[例如Lytro开发的相机]时,相机数量或微镜头的数量总是存在限制,”Schaefer说。 “无论是计算还是测量,深度信息都可以与相机获取的纹理相关联。只要有纹理和深度,二次采样的光场就可以用点云来表示。“
V-PCC是MPEG-I的一部分,MPEG-I是一个正在开发的更广泛的标准套件,都是针对沉浸式媒体的。压缩将减少数据,以实现高效的存储和传送,这在未来的应用中至关重要。 MPEG还开始在ISOBMFF文件中存储V-PCC,这是实现这种沉浸式媒体应用程序互操作性的下一步。
结语
六自由度XR不会是最初的2C应用,而更多的是2B应用。发展需要时间,我们期望在2020年以后看到这些应用的普及。
参考文献
[1] Sebastian Schwarz, Marius Preda, Vittorio Baroncini, “Emerging MPEG Standards for Point Cloud Compression”, IEEE Journal on Emerging and Selected Topics in Circuits and Systems, DOI 10.1109/JETCAS, 2018
[2] H. Hoppe, T. DeRose, T. Duchamp, J. A. McDonald, and W. Stuetzle, “Surface reconstruction from unorganized points.” in SIGGRAPH, 1992.