一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于投影的网格压缩的制作方法

2022-06-18 08:23:55 来源:中国专利 TAG:

基于投影的网格压缩
1.相关申请的引用
2.本技术要求2020年3月18日提交的序列号为62/991,128的美国临时专利申请“projection-based mesh compression”的按照35u.s.c.
§
119(e)的优先权,该申请通过引用整体包含在本文中。
技术领域
3.本发明涉及三维图形。更具体地,本发明涉及三维图形的编码。


背景技术:

4.最近,基于从3d到2d的投影来压缩点云的新方法正在标准化。也称为v-pcc(基于视频的点云压缩)的这种方法将3d点云数据映射成几个2d面元,然后进一步将面元排列成图集图像,随后用视频编码器对图集图像进行编码。图集图像对应于点的几何形状、相应的纹理和占据地图,占据地图指示对于点云重建,将考虑位置中的哪些位置。
5.在2017年,mpeg发布了关于点云的压缩的提案征集(cfp)。在评估了几种提案之后,目前mpeg正在考虑用于点云压缩的两种不同技术:3d原生编码技术(基于八叉树和类似的编码方法),或者3d到2d投影,随后是传统的视频编码。在动态3d场景的情况下,mpeg正在使用基于面元表面建模,面元从3d图像到2d图像的投影,以及用诸如hevc之类的视频编码器对2d图像编码的测试模型软件(tmc2)。这种方法已被证明比原生3d编码更高效,并且能够在可接受的质量下实现有竞争力的比特率。
6.归因于基于投影的方法(也称为基于视频的方法或v-pcc)编码3d点云的成功,预计该标准在未来的版本中将包括更多的3d数据,比如3d网格。然而,该标准的当前版本只适合于一组不相连的点的传输,从而,不存在发送点的连通性的机制,这在3d网格压缩中是所需的。
7.提出了将v-pcc的功能也扩展到网格的方法。一种可能的方式是使用v-pcc对顶点进行编码,然后使用诸如tfan或edgebreaker之类的网格压缩方法对连通性进行编码。这种方法的局限性在于原始网格必须是密集的,使得从顶点生成的点云不稀疏,并且在投影之后可被有效编码。此外,顶点的顺序影响连通性的编码,从而提出了重新组织网格连通性的不同方法。编码稀疏网格的备选方式是使用raw面元数据来编码3d中的顶点位置。由于raw面元直接编码(x,y,z),因此在这种方法中,所有的顶点都被编码为raw数据,而连通性则通过类似的网格压缩方法来编码,如前所述。在raw面元中,可以按任何优选的顺序来发送顶点,从而可以使用从连通性编码产生的顺序。该方法可以对稀疏点云进行编码,然而,raw面元对3d数据的编码效率不高,并且诸如三角形面的属性之类的更多数据可能会从这种方法中丢失。


技术实现要素:

8.本文中描述了一种使用基于投影的方法并利用已经为基于投影的点云压缩生成
的工具和语法来压缩未跟踪和跟踪网格的方法。类似于v-pcc方法,网格被分割成表面面元,其中不同之处在于这些分割遵循网格的连通性。每个表面面元(或3d面元)随后被投影到2d面元,从而在网格的情况下,三角形表面采样类似于在计算机图形学中使用的常见光栅化方法。对于每个面元,投影顶点的位置连同这些顶点的连通性一起保存在列表中。采样的表面类似于点云,并且采用用于点云压缩的相同方法进行编码。另外,每个面元地对顶点和连通性的列表进行编码,并将数据连同编码的点云数据一起发送。
9.在一个方面,一种在设备的非临时性存储器中编程的方法。所述方法包括对输入网格进行网格体素化,实现面元生成,所述面元生成将网格分割成包括光栅化网格表面及顶点位置和连通性信息的面元,从光栅化网格表面生成基于视频的点云压缩(v-pcc)图像,利用顶点位置和连通性信息实现基础网格编码,并基于v-pcc图像和基础网格编码生成v-pcc比特流,其中v-pcc比特流包括用于点云重建和网格重建的信息。网格体素化包括移动和/或缩放网格值以避免负值和非整数值。网格体素化包括找出低于零的最低顶点值并移动网格值,使得最低顶点值在零以上。实现面元生成包括:计算每个三角形的法线,其中计算三角形的法线包括使用边之间的叉积,按照法线对三角形进行分类,以及通过分析邻近的三角形来实现细化处理。该方法还包括显示部分包括点云且部分包括网格的内容。跟踪顶点的增量位置信息包含在比特流中。该方法还包括实现缝合(zippering),所述缝合包括:将顶点分类为边界顶点或非边界顶点,确定边界顶点的近邻,并合并邻近的边界顶点。
10.在另一个方面,一种设备包括用于存储应用的非临时性存储器和耦接到所述存储器的处理器,所述应用用于:对输入网格进行网格体素化,实现面元生成,所述面元生成将网格分割成包括光栅化网格表面及顶点位置和连通性信息的面元,从光栅化网格表面生成基于视频的点云压缩(v-pcc)图像,利用顶点位置和连通性信息实现基础网格编码,并基于v-pcc图像和基础网格编码生成v-pcc比特流,其中v-pcc比特流包括用于点云重建和网格重建的信息,所述处理器被配置成处理所述应用。网格体素化包括移动和/或缩放网格值以避免负值和非整数值。网格体素化包括找出低于零的最低顶点值并移动网格值,使得最低顶点值在零以上。实现面元生成包括:计算每个三角形的法线,其中计算三角形的法线包括使用边之间的叉积,按照法线对三角形进行分类,以及通过分析邻近的三角形来实现细化处理。在所述设备中,所述应用还被配置成显示部分包括点云且部分包括网格的内容。跟踪的顶点的增量位置信息包含在比特流中。在所述设备中,所述应用还被配置成实现缝合,所述缝合包括:将顶点分类为边界顶点或非边界顶点,确定边界顶点的近邻,并合并邻近的边界顶点。
11.在另一个方面,一种系统包括用于获取三维内容的一个或多个相机,和用于通过以下操作对三维内容进行编码的编码器:对三维内容的输入网格进行网格体素化,实现面元生成,所述面元生成将网格分割成包括光栅化网格表面及顶点位置和连通性信息的面元,从光栅化网格表面生成基于视频的点云压缩(v-pcc)图像,利用顶点位置和连通性信息实现基础网格编码,并基于v-pcc图像和基础网格编码生成v-pcc比特流,其中v-pcc比特流包括用于点云重建和网格重建的信息。网格体素化包括移动和/或缩放网格值以避免负值和非整数值。网格体素化包括找出低于零的最低顶点值并移动网格值,使得最低顶点值在零以上。实现面元生成包括:计算每个三角形的法线,其中计算三角形的法线包括使用边之间的叉积,按照法线对三角形进行分类,以及通过分析邻近的三角形来实现细化处理。所述
编码器还被配置成显示部分包括点云且部分包括网格的内容。跟踪的顶点的增量位置信息包含在比特流中。所述编码器还被配置成实现缝合,所述缝合包括:将顶点分类为边界顶点或非边界顶点,确定边界顶点的近邻,并合并邻近的边界顶点。
附图说明
12.图1图解说明按照一些实施例的实现基于投影的网格压缩的方法的流程图。
13.图2图解说明按照一些实施例的网格体素化的示图。
14.图3图解说明按照一些实施例的面元生成的示图。
15.图4图解说明按照一些实施例的涉及面元投影和面元光栅化的面元生成的示图。
16.图5图解说明按照一些实施例的用于基础网格编码/信令的数据结构。
17.图6图解说明按照一些实施例的组合点云和网格信息的例子。
18.图7a和7b图解说明按照一些实施例的组合未跟踪和跟踪网格信息的例子。
19.图8图解说明按照一些实施例的v-pcc图像生成的示图。
20.图9图解说明按照一些实施例的网格重建的示图。
21.图10图解说明按照一些实施例的缝合算法的示图。
22.图11图解说明按照一些实施例将顶点分类为边界或非边界的示图。
23.图12图解说明按照一些实施例的备选连通性编码的示图。
24.图13图解说明按照一些实施例的配置成实现基于投影的网格压缩方法的示例性计算设备的方框图。
具体实施方式
25.本文中描述了一种使用基于投影的方法并利用已经为基于投影的点云压缩生成的工具和语法来压缩未跟踪和跟踪网格的方法。未跟踪网格是其中每帧具有不同的网格和不同的连通性的网格。跟踪网格具有带网格的第一帧,然后该网格被跟踪,并且该网格的结构保持不变而其位置随时间变化。类似于v-pcc方法,网格被分割成表面面元,其中不同之处在于这些分割遵循网格的连通性。每个表面面元(或3d面元)随后被投影到2d面元,从而在网格的情况下,三角形表面采样类似于在计算机图形学中使用的常见光栅化方法。对于每个面元,投影顶点的位置连同这些顶点的连通性一起保存在列表中。采样的表面类似于点云,并且采用用于点云压缩的相同方法进行编码。另外,按每个面元对顶点和连通性的列表进行编码,并将数据连同编码的点云数据一起发送。
26.引入两个新的语法元素来描述网格信息:网格面元数据单元和跟踪网格面元数据单元。网格面元数据单元能够指示顶点位置和它们各自的连通性。或者,允许经由占据地图而不是经由面元数据来发送顶点的位置。对于跟踪网格的情况,引入能够在跟踪网格的情况下传送两种典型运动:全局运动和表面运动的语法元素。跟踪网格面元数据单元语法元素通过面元的平移和旋转来表示全局运动,而表面运动(例如织物褶皱运动)通过顶点位移来表示。
27.可以将附加的连通性数据解释成为每个面元生成的基础网格,从而赋予解码器使用或不使用该附加数据的灵活性。所述语法还允许编码器混合内容,并使点云和网格共存(例如,可能希望将点云用于诸如头发之类的更精细结构,而将网格用于平面),甚至使点云
与跟踪网格和未跟踪网格共存(例如,难以跟踪的表面部分能够作为未跟踪部分发送,或者甚至变形过大的跟踪部分能够被点云层隐藏)。这种数据能够用于改善渲染和用于点滤波算法。此外,网格采用基于投影的压缩的相同原理进行编码,这导致与点云的基于投影的编码的当前v-pcc方法的更好集成。
28.图1图解说明按照一些实施例的实现基于投影的网格压缩的方法的流程图。在步骤100,接收或获取输入网格。例如,下载输入网格(例如,从网络设备)或者通过设备(例如,相机或自主车辆)获取/捕捉输入网格。
29.在步骤102,进行网格体素化。网格能够具有浮点的顶点位置,因此这些位置被转换为整数空间。v-pcc假设体素化的点云。
30.在步骤104,实现面元生成(或创建)。面元生成包括:法线计算、邻接计算、初始分割;细化、面元投影和面元光栅化。法线计算是计算每个三角形的法线(例如,三角形的边的叉积)。邻接计算涉及计算每个三角形的邻接(例如,网格中的哪些三角形邻近或接触当前三角形或其他三角形)。初始分割包括按照取向对法线分类。例如,三角形的法线能够指向上、下、左、右、前或后,并且能够基于方向/取向来分类。在一些实施例中,三角形是基于其法线的取向用颜色编码的(例如,法线指向上的所有三角形都被着色为绿色)。细化涉及定位异常值(例如,被蓝色三角形包围的单个红色三角形)并消除异常值(例如,改变单个红色三角形以匹配其为蓝色的近邻)。细化是通过分析近邻并平滑取向(例如,调整法线的取向)来进行的。一旦存在平滑表面,则进行面元投影,面元投影涉及针对三角形的特定分类(例如,基于取向的)投影面元。通过投影,将顶点和连通性显示在面元上。例如,本例中的身体和面部是分开的投影,因为存在将这两者分开的分类不同的三角形。不过v-pcc并不理解这个;相反,v-pcc理解点,因此投影被光栅化(例如,对表面上的点采样,包括点的距离,以生成几何图像和表面的属性)。光栅化的网格表面非常类似于v-pcc图像。
31.面元生成的结果是光栅化网格表面以及顶点位置和连通性。在步骤106,在v-pcc图像生成/创建中使用光栅化网格表面。在步骤108,顶点位置和连通性用于基础网格编码。在步骤110,从生成的v-pcc图像和基础网格编码生成v-pcc比特流。在一些实施例中,基础网格编码不涉及任何附加编码,顶点位置和连通性直接转到v-pcc比特流。
32.v-pcc比特流使得能够在步骤112进行点云重建,和/或在步骤114进行网格构建。点云和/或网格能够从v-pcc比特流中提取,这提供了显著的灵活性。在一些实施例中,可以实现较少或额外的步骤。在一些实施例中,步骤的顺序被更改。
33.图2图解说明按照一些实施例的网格体素化的示图。每帧具有不同的边界框。获得每帧的边界框(例如,t=1、t=16和t=32时的帧200)。然后,从许多边界框计算序列边界框202,sequencebb=(minpoint,maxpoint)。序列边界框202包含所有的顶点,而与帧无关。计算适合由bitdepth定义的范围内的最大范围的比例,maxrange=max(maxpoint[0..2]-minpoint[0..2]),scale=(2
bitdepth-1)/maxrange。对结果进行按比例缩放并移动最小值,voxelizedpoint=floor(scale*originalpoint minpoint)。比例和移动量能够是用户定义的,或者可以是计算机基于学习算法(例如,通过分析边界框并自动计算比例和移动量)生成的。
[0034]
在一些实施例中,网格体素化涉及将输入网格的点的位置的浮点值转换为整数。整数的精度能够由用户设定或自动设定。在一些实施例中,网格体素化包括移动值,从而不
存在负数。
[0035]
例如,原始网格低于轴线,结果产生负数。通过网格体素化,网格被移动和/或缩放以避免负值和非整数值。在一种实现中,找出低于零的最低顶点值,然后能够移动这些值,使得最低顶点值在零以上。在一些实施例中,值的范围适合于指定的比特范围(bitrange)(例如,通过缩放),比如11比特。
[0036]
体素化网格210是缩放和移动之后的原始网格。例如,体素化网格210是在它已增长并且已被移动之后的原始网格,使得它仅仅是正值,这在某些情况下对编码来说更好。
[0037]
图3图解说明按照一些实施例的面元生成的示图。如上所述,面元生成涉及法线计算、邻接计算、初始分割和分割细化。计算每个三角形的法线涉及三角形的边之间的叉积。法线能够表示为箭头或尖状物,如图像300中所示。邻接计算判定三角形是否共享顶点,如果是,则三角形是近邻。如图所示,所有的灰色三角形302都是中间的白色三角形304的近邻。初始分割和分割细化是通过以下操作与v-pcc相同地进行的:分析法线的取向,对法线的取向进行分类(例如,向上、向下、向左、向右、向前、向后),并判定法线的取向是否与所有分类相同的邻近法线分类不同(例如,第一面元被分类为向上306,而大部分或所有相邻面元被分类为向前),然后改变面元的法线的分类以匹配近邻的取向(例如,将第一面元分类改变为向前308)。
[0038]
如上所述,实现将网格分割成面元的面元生成。面元生成还生成1)光栅化网格表面以及2)顶点位置和连通性信息。光栅化网格表面是经历v-pcc图像生成并被编码为v-pcc图像的一组点。接收所述顶点位置和连通性信息用于基础网格编码。
[0039]
本文中所述的面元生成类似于v-pcc中的面元生成。不过,不是计算每个点的法线,而是计算每个三角形的法线。每个三角形的法线是通过使用边之间的叉积确定法线向量来计算的。然后,按照法线对三角形进行分类。例如,法线被分成n个(例如,6个)类别,比如前、后、上、下、左和右。法线用不同的颜色指示以表示初始分割。图3表示了灰度级中的不同颜色,比如黑色和浅灰色,作为指示不同法线的不同颜色。尽管可能难以看到,顶面(例如,人的头顶、球的顶部和运动鞋的顶部)是一种颜色(例如,绿色),人/球的第一侧面非常暗,表示另一种颜色(例如,红色),球的底部是另一种颜色(例如,紫色),而大部分为浅灰色的人和球的正面代表另一种颜色(例如,青色)。
[0040]
通过将法线的乘积乘以方向,能够找出主方向。通过查看邻近的三角形,能够实现平滑/细化处理。例如,如果数量在阈值以上的邻近三角形都是蓝色,则该三角形也被分类为蓝色,即使存在最初指示该三角形为红色的异常。
[0041]
生成三角形的连接组件,以识别三角形中的哪些三角形具有相同的颜色(例如,共享至少一个顶点的类别相同的三角形)。
[0042]
连通性信息描述这些点在3d中是如何连接的。这些连接一起产生三角形(更具体地说,共享3点的3个不同连接),从而产生表面(由一批三角形来描述)。尽管本文中描述的是三角形,不过也允许其他几何形状(例如,矩形)。
[0043]
通过识别具有不同颜色的三角形,颜色能够用于对连通性进行编码。由三个连接识别的每个三角形用唯一的颜色编码。
[0044]
图4图解说明按照一些实施例的涉及面元投影和面元光栅化的面元生成的示图。面元投影包括产生三角形的组件。由至少一个顶点连接的(例如,相邻的)并且属于同一类
别的所有三角形被一起分组为一个面元。
[0045]
面元投影还包括将每个三角形投影到画布上的面元。如果顶点的投影位置已经被占据,则在另一个面元中编码该三角形,因此该三角形进入缺失三角形列表中,以便稍后再次处理。
[0046]
如果三角形产生导致超过最大允许深度的深度值的边界框,则这些值不被投影,并且也进入缺失三角形列表中。
[0047]
面元光栅化包括对投影三角形进行光栅化,以生成用于点云表示(几何形状和属性)的点。循环进行面元投影和面元光栅化,直到所有三角形都被投影为止。
[0048]
在所有三角形都被投影之后,将缺失三角形列表中的三角形组合在一起作为面元,并再次尝试将它们投影到新的面元中。
[0049]
通过将网格投影到2d表面上,三角形的投影所覆盖的区域也由像素的集合确定。如果分组的像素用不同的颜色编码,则三角形可以通过图像中的不同颜色来识别。一旦已知三角形,通过仅识别形成三角形的三个连接就可以获得连通性。
[0050]
每个三角形被投影到面元上。如果顶点的投影位置已经被占据,则在另一个面元中编码该三角形,因此该三角形进入缺失三角形列表中,以便稍后再次处理。或者,地图能够用于识别重叠的顶点并且仍然能够表示具有重叠顶点的三角形。在另一个备选方案中,点能够被分隔成独立的层(例如,一组点在一层中,另一组点在另一层中)。
[0051]
图像400表示具有由至少一个顶点连接的相同分类的三角形的空白面元。图像402表示具有示出顶点和连通性的三角形的面元。图像404表示具有属性信息的面元。
[0052]
图5图解说明按照一些实施例的用于基础网格编码/信令的数据结构。关于基础网格信令,分组和图集流用于与视频序列关联的元数据。通过添加顶点在2d空间中的位置来添加元数据。
[0053]
数据结构包括报头、分块组层、以及面元信息,比如面部数、顶点数、带有面部信息的从0到面部数的列表、以及带有顶点信息的从0到顶点数的列表。顶点信息是顶点在2d空间中的位置。利用这些列表,能够从点云重建网格。通过传送顶点列表和连通性信息,能够在没有任何压缩的情况下执行所述传送。在一些实施例中,为了利用压缩,能够使用tfan或edgebreaker对面元连通性进行编码。在一些实施例中,能够使用顶点的平行四边形预测。在一些实施例中,实现dpcm编码。在一些实施例中,使用占据地图对顶点列表进行编码(例如,通过包含标志来指示点是否存在,以及使用标志来指示该点是否是顶点)。
[0054]
面元中的点的列表是三角形的顶点,并且网格的连通性即使在投影之后也是相同的。
[0055]
对连通性进行编码(例如,基于颜色码)。在一些实施例中,对整数值的列表进行编码。能够使用列表中的差分脉冲编码调制(dpcm)。在一些实施例中,能够对列表进行细化,或者能够实现智能网格编码(例如,edgebreaker)。在一些实施例中,更复杂的方法也是可能的(例如,使用edgebreaker或tfan,两者都是编码算法)。
[0056]
能够按每个面元发送额外的信息。在每个面元信息内,发送连接的组件(例如,顶点)的列表和顶点在2d空间中的位置。更有效的表示法可以对面部和顶点使用dpcm方案,如本文中所述。
[0057]
跟踪网格面元数据单元能够使用面元来指示连通性从一帧到另一帧没有改变。这
对于跟踪网格的情况来说特别有用,因为只发送增量位置。在跟踪网格的情况下,全局运动能够由边界框位置和旋转(新引入的使用四元数的语法元素)以及由顶点运动捕捉的表面运动捕捉。发送增量顶点信息的比特数能够在afps中发送。或者,运动信息能够作为单应性变换来发送。
[0058]
图6图解说明按照一些实施例的组合点云和网格信息的例子。如上所述,点云和网格信息能够被组合。例如,纯点云面元能够用于头部,而点云和网格面元用于身体。
[0059]
图7a和7b图解说明按照一些实施例的组合未跟踪和跟踪网格信息的例子。为了避免跟踪问题,一些实现将网格分割成跟踪部分和未跟踪部分。跟踪部分在时间上是一致的,并且能够用tracked_mesh_patch_data_unit()表示,而未跟踪部分是新的每帧,并且能够用mesh_patch_data_unit()表示。由于如本文中所述,点云能够被混合到几何形状中,因此能够改善表面表示,例如,保留原始网格和在网格之上插入点云以隐藏缺陷。
[0060]
图8图解说明按照一些实施例的v-pcc图像生成的示图。占据地图和几何形状是如通常对于v-pcc那样生成的。属性地图是从未压缩的几何形状生成的。属性传送能够使用网格来进行。
[0061]
图9图解说明按照一些实施例的网格重建的示图。一旦生成/接收到面元,连通性就使用新的顶点编号,但是面元能够被加在一起。每个面元类似于一个微型网格,因此所有的面元被连结在一起。尽管可能存在顶点转换,但是面元被连结在一起以形成网格。然而,由于一些顶点因为压缩而不匹配,因此应当采取进一步的步骤。能够实现缝合算法来解决顶点未对齐的问题。
[0062]
图10图解说明按照一些实施例的缝合算法的示图。缝合算法包括将顶点分类为边界顶点和非边界顶点。分类能够以任何方式进行,比如判定是否任何其他顶点在指定方向上连接到该顶点。然后,确定边界的最近近邻,并合并这些邻近边界的顶点(例如,放在同一位置)。另外,在v-pcc中,三个坐标中的两个坐标是无损编码的,因此从x,y,z,可以知道其中的两个坐标是精确的,这能够帮助确定接近的点。类似地,如果通过只改变法向坐标而产生的线条彼此交叉,则认为这两点是匹配的。能够实现自适应方法:给定在面元的边界处的参考点,允许这些点不断增加地变化,直到它们遇到至少一个潜在的候选点为止,新的距离将用于修改来自其他面元的候选点,并且在多个匹配的候选点的情况下,将参考点修改为产生数量最多的匹配的值。利用新的修改的参考点,搜索来自邻近面元的最近的边界像素。如果找到匹配,则将边界顶点值修改为参考点,并从列表中去除边界顶点。否则,在非边界顶点的列表中针对匹配进行搜索。如果找到匹配,则将非边界顶点值修改为参考点。
[0063]
图11图解说明按照一些实施例将顶点分类为边界或非边界的示图。如果顶点连接到开放区域(例如,黑色区域),则该顶点是边界。在另一个例子中,占据地图中的邻近顶点的零值指示该顶点是边界顶点。
[0064]
图12图解说明按照一些实施例的备选连通性编码的示图。能够使用特定值来指示顶点的存在以及边的存在。例如,该图像表示了占据地图,其中面元之一包含指示顶点的点和指示边的黑线。
[0065]
图13图解说明按照一些实施例的配置成实现基于投影的网格压缩方法的示例性计算设备的方框图。计算设备1300能够用于获取、存储、计算、处理、传送和/或显示诸如包括3d内容的图像和视频之类的信息。计算设备1300能够实现基于投影的网格压缩的任何方
面。通常,适合于实现计算设备1300的硬件结构包括网络接口1302、存储器1304、处理器1306、一个或多个i/o设备1308、总线1310和存储设备1312。处理器的选择并不重要,只要选择具有足够速度的适当处理器即可。存储器1304能够是本领域已知的任何常规计算机存储器。存储设备1312能够包括硬盘驱动器、cdrom、cdrw、dvd、dvdrw、高清光盘/驱动器、超高清驱动器、闪存卡或任何其他存储设备。计算设备1300能够包括一个或多个网络接口1302。网络接口的例子包括连接到以太网或其他类型的lan的网卡。i/o设备1308能够包括以下中的一个或多个:键盘、鼠标、监视器、屏幕、打印机、调制解调器、触摸屏、按钮接口和其他设备。用于实现基于投影的网格压缩方法的一个或多个基于投影的网格压缩应用1330可能存储在存储设备1312和存储器1304中,并且按照通常处理应用的方式被处理。计算设备1300中能够包括图13中所示的更多或更少的组件。在一些实施例中,包括基于投影的网格压缩硬件1320。尽管图13中的计算设备1300包括用于基于投影的网格压缩方法的应用1330和硬件1320,不过基于投影的网格压缩方法能够在计算设备上用硬件、固件、软件或它们的任何组合来实现。例如,在一些实施例中,基于投影的网格压缩应用1330是在存储器中编程并使用处理器执行的。在另一个例子中,在一些实施例中,基于投影的网格压缩硬件1320是编程的硬件逻辑,其包括专门为实现基于投影的网格压缩方法而设计的逻辑门。
[0066]
在一些实施例中,基于投影的网格压缩应用1330包括几个应用和/或模块。在一些实施例中,模块还包括一个或多个子模块。在一些实施例中,能够包括更少或额外的模块。
[0067]
适当的计算设备的例子包括个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助手、蜂窝/移动电话机、智能家电、游戏机、数字相机、数字摄像机、照相手机、智能电话机、便携式音乐播放器、平板计算机、移动设备、视频播放器、视频光盘刻录机/播放器(例如,dvd刻录机/播放器、高清光盘刻录机/播放器、超高清光盘刻录机/播放器)、电视机、家庭娱乐系统、增强现实设备、虚拟现实设备、智能珠宝(例如智能手表)、车辆(例如自动驾驶车辆)或任何其他适当的计算设备。
[0068]
为了利用基于投影的网格压缩方法,设备获取或接收3d内容,并以优化的方式处理和/或发送所述内容,以使得能够适当、高效地显示3d内容。基于投影的网格压缩方法能够在用户帮助下实现,或者能够在没有用户参与的情况下自动实现。
[0069]
操作中,与以前的实现相比,基于投影的网格压缩方法能够实现更高效、更精确的基于投影的网格压缩。
[0070]
在示例性实现中,本文中描述的基于投影的网格压缩在tmc2v8.0之上仅用一帧和一个地图来实现。来自该实现的信息包括:
[0071]
比特流统计数据:
[0072]
头部:16b 128b
[0073]
vpcc单元大小[vpcc_vps]:31b 248b
[0074]
vpcc单元大小[vpcc_ad]:190396b 1523168b
[0075]
vpcc单元大小[vpcc_ovd]:29591b 236728b(ocm视频=29583b)
[0076]
vpcc单元大小[vpcc_gvd]:59108b 472864b(geo视频=59100b)
[0077]
vpcc单元大小[vpcc_avd]:172441b 1379528b(tex视频=172433b)
[0078]
总元数据:220050b 1760400b
[0079]
总几何形状:59100b 472800b
[0080]
总纹理:172433b 1379464b
[0081]
总计:451583b 1379464b
[0082]
总比特流大小451599b
[0083]
基于投影的网格压缩的一些实施例
[0084]
1.一种在设备的非临时性存储器中编程的方法,包括:
[0085]
对输入网格进行网格体素化;
[0086]
实现面元生成,所述面元生成将网格分割成包括光栅化网格表面及顶点位置和连通性信息的面元;
[0087]
从光栅化网格表面生成基于视频的点云压缩(v-pcc)图像;
[0088]
利用顶点位置和连通性信息实现基础网格编码;和
[0089]
基于v-pcc图像和基础网格编码生成v-pcc比特流,其中v-pcc比特流包括用于点云重建和网格重建的信息。
[0090]
2.按照条款1所述的方法,其中网格体素化包括移动和/或缩放网格值以避免负值和非整数值。
[0091]
3.按照条款2所述的方法,其中网格体素化包括找出低于零的最低顶点值并移动网格值,使得最低顶点值在零以上。
[0092]
4.按照条款1所述的方法,其中实现面元生成包括:
[0093]
计算每个三角形的法线,其中计算三角形的法线包括使用边之间的叉积,
[0094]
按照法线对三角形进行分类,以及
[0095]
通过分析邻近的三角形来实现细化处理。
[0096]
5.按照条款1所述的方法,还包括显示部分包括点云且部分包括网格的内容。
[0097]
6.按照条款1所述的方法,其中跟踪的顶点的增量位置信息包含在比特流中。
[0098]
7.按照条款1所述的方法,还包括实现缝合,所述缝合包括:
[0099]
将顶点分类为边界顶点或非边界顶点;
[0100]
确定边界顶点的近邻;以及
[0101]
合并邻近的边界顶点。
[0102]
8.一种设备,包括:
[0103]
用于存储应用的非临时性存储器,所述应用用于:
[0104]
对输入网格进行网格体素化;
[0105]
实现面元生成,所述面元生成将网格分割成包括光栅化网格表面及顶点位置和连通性信息的面元;
[0106]
从光栅化网格表面生成基于视频的点云压缩(v-pcc)图像;
[0107]
利用顶点位置和连通性信息实现基础网格编码;和
[0108]
基于v-pcc图像和基础网格编码生成v-pcc比特流,其中v-pcc比特流包括用于点云重建和网格重建的信息;以及
[0109]
耦接到所述存储器的处理器,所述处理器被配置成处理所述应用。
[0110]
9.按照条款8所述的设备,其中网格体素化包括移动和/或缩放网格值以避免负值和非整数值。
[0111]
10.按照条款9所述的设备,其中网格体素化包括找出低于零的最低顶点值并移动
网格值,使得最低顶点值在零以上。
[0112]
11.按照条款8所述的设备,其中实现面元生成包括:
[0113]
计算每个三角形的法线,其中计算三角形的法线包括使用边之间的叉积,
[0114]
按照法线对三角形进行分类,以及
[0115]
通过分析邻近的三角形来实现细化处理。
[0116]
12.按照条款8所述的设备,其中所述应用还被配置成显示部分包括点云且部分包括网格的内容。
[0117]
13.按照条款8所述的设备,其中跟踪的顶点的增量位置信息包含在比特流中。
[0118]
14.按照条款8所述的设备,其中所述应用还被配置成实现缝合,所述缝合包括:
[0119]
将顶点分类为边界顶点或非边界顶点;
[0120]
确定边界顶点的近邻;以及
[0121]
合并邻近的边界顶点。
[0122]
15.一种系统,包括:
[0123]
用于获取三维内容的一个或多个相机;和
[0124]
用于通过以下操作对三维内容进行编码的编码器:
[0125]
对三维内容的输入网格进行网格体素化;
[0126]
实现面元生成,所述面元生成将网格分割成包括光栅化网格表面及顶点位置和连通性信息的面元;
[0127]
从光栅化网格表面生成基于视频的点云压缩(v-pcc)图像;
[0128]
利用顶点位置和连通性信息实现基础网格编码;和
[0129]
基于v-pcc图像和基础网格编码生成v-pcc比特流,其中v-pcc比特流包括用于点云重建和网格重建的信息。
[0130]
16.按照条款15所述的系统,其中网格体素化包括移动和/或缩放网格值以避免负值和非整数值。
[0131]
17.按照条款16所述的系统,其中网格体素化包括找出低于零的最低顶点值并移动网格值,使得最低顶点值在零以上。
[0132]
18.按照条款15所述的系统,其中实现面元生成包括:
[0133]
计算每个三角形的法线,其中计算三角形的法线包括使用边之间的叉积,
[0134]
按照法线对三角形进行分类,以及
[0135]
通过分析邻近的三角形来实现细化处理。
[0136]
19.按照条款15所述的系统,还包括显示部分包括点云且部分包括网格的内容。
[0137]
20.按照条款15所述的系统,其中跟踪顶点的增量位置信息包含在比特流中。
[0138]
21.按照条款15所述的系统,还包括实现缝合,所述缝合包括:
[0139]
将顶点分类为边界顶点或非边界顶点;
[0140]
确定边界顶点的近邻;以及
[0141]
合并邻近的边界顶点。
[0142]
通过具体实施例描述了本发明,所述具体实施例包含便于理解本发明的构造和操作的原理的细节。本文中对特定实施例及其细节的这种参考并不意图限制所附的权利要求书的范围。对本领域的技术人员来说,显然可以在为举例说明而选择的实施例中进行其他
各种修改,而不脱离由权利要求书所限定的本发明的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献