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

点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法与流程

2023-02-02 23:35:05 来源:中国专利 TAG:


1.实施方式涉及用于处理点云内容的方法和设备。


背景技术:

2.点云内容是由点云表示的内容,点云是属于表示三维空间(或体积)的坐标系的点的集合。点云内容可以表示以三维配置的媒体,并用于提供诸如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、扩展现实(xr)和自动驾驶这样的各种服务。然而,需要几万到几十万个点数据来表示点云内容。因此,需要高效处理大量点数据的方法。


技术实现要素:

3.技术问题
4.为解决上述问题而设计的本公开的目的是提供用于高效发送和接收点云的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
5.本公开的另一目的是提供用于应对等待时间和编码/解码复杂度的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
6.本公开的另一目的是提供高效地发送和接收几何点云压缩(g-pcc)比特流的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
7.本公开的另一目的是提供通过考虑非对称点分布执行属性压缩来将几何编码层与属性编码层可缩放编码进行匹配的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
8.本公开的另一目的是提供通过在可缩放点云编码中使用基于lod的可缩放层来基于非对称邻居节点配置可缩放层而增加具有非对称点分布的内容的属性压缩效率的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
9.本公开的目的不限于以上提到的目的,并且本领域的普通技术人员在查阅了以下描述后,以上未提到的本公开的其它目的将变得清楚。
10.技术方案
11.本公开的上述目的和其它目的可以通过提供发送点云数据的方法来实现。所述方法可以包括以下步骤:获取点云数据;通过应用几何树对包括所述点云数据的点的位置的几何信息进行编码;基于所述几何树对包括所述点云数据的所述点的属性值的属性信息进行编码;以及发送编码后的几何信息、编码后的属性信息和信令信息。
12.在一个实施方式中,对所述属性信息进行编码的步骤可以包括:基于所述几何树生成细节层次(lod);以及基于所述lod压缩所述属性信息。
13.在一个实施方式中,所述几何树可以是通过八叉树、四叉树或二叉树中的两者或更多者的组合生成的。
14.在一个实施方式中,生成所述lod的步骤可以包括:将从所述几何树中的当前深度
的占用节点分割的一个或更多个子节点配置为邻居;以及从属于被配置为所述邻居的所述一个或更多个子节点的点当中选择一个点,其中,对所述邻居进行配置和所述选择可以是对所述当前深度的所述占用节点中的每一者执行的,以生成与所述当前深度相对应的lod。
15.在一个实施方式中,被配置为所述邻居的子节点的数目可以根据所述当前深度的树类型是八叉树、四叉树还是二叉树而变化。
16.在一个实施方式中,所述点的所述选择可以是基于属于被配置为所述邻居的所述一个或更多个子节点的所述点的莫顿码顺序而执行的。
17.根据实施方式的发送点云数据的装置可以包括:获取器,所述获取器被配置为获取点云数据;几何编码器,所述几何编码器被配置为通过应用几何树对包括所述点云数据的点的位置的几何信息进行编码;属性编码器,所述属性编码器被配置为基于所述几何树对包括所述点云数据的所述点的属性值的属性信息进行编码;以及发送器,所述发送器被配置为发送编码后的几何信息、编码后的属性信息和信令信息。
18.在一个实施方式中,所述属性编码器可以包括:lod生成器,所述lod生成器被配置为基于所述几何树生成细节层次(lod);以及压缩器,所述压缩器被配置为基于所述lod压缩所述属性信息。
19.在一个实施方式中,所述几何树可以是通过八叉树、四叉树或二叉树中的两者或更多者的组合生成的。
20.在一个实施方式中,所述lod生成器可以被配置为:将从所述几何树中的当前深度的占用节点分割的一个或更多个子节点配置为邻居;以及从属于被配置为所述邻居的所述一个或更多个子节点的点当中选择一个点,其中,所述配置和所述选择可以是对所述当前深度的所述占用节点中的每一者执行的,以生成与所述当前深度相对应的lod。
21.在一个实施方式中,被配置为所述邻居的子节点的数目可以根据所述当前深度的树类型是八叉树、四叉树还是二叉树而变化。
22.在一个实施方式中,所述lod生成器可以基于属于被配置为所述邻居的所述一个或更多个子节点的所述点的莫顿码顺序选择所述点。
23.根据实施方式的接收点云数据的方法可以包括以下步骤:接收几何信息、属性信息和信令信息;基于所述信令信息和几何树对所述几何信息进行解码;基于所述信令信息和所述几何树对所述属性信息进行解码;以及对基于解码后的几何信息和解码后的属性信息重构的所述点云数据进行渲染。
24.在一个实施方式中,解码后的几何信息可以包括重构的点云数据的点的位置,并且解码后的属性信息可以包括重构的点云数据的点的属性值。
25.在一个实施方式中,对所述属性信息进行解码的步骤可以包括:基于所述几何树生成细节层次(lod);以及基于所述lod重构所述属性信息。
26.在一个实施方式中,所述几何树可以是通过八叉树、四叉树或二叉树中的两者或更多者的组合生成的。
27.在一个实施方式中,生成所述lod的步骤可以包括:将从所述几何树中的当前深度的占用节点分割的一个或更多个子节点配置为邻居;以及从属于被配置为所述邻居的所述一个或更多个子节点的点当中选择一个点,其中,对所述邻居进行配置和所述选择可以是对所述当前深度的所述占用节点中的每一者执行的,以生成与所述当前深度相对应的lod。
28.在一个实施方式中,被配置为所述邻居的子节点的数目可以根据所述当前深度的树类型是八叉树、四叉树还是二叉树而变化。
29.在一个实施方式中,所述点的所述选择可以是基于属于被配置为所述邻居的所述一个或更多个子节点的所述点的莫顿码顺序而执行的。
30.根据实施方式的接收点云数据的装置可以包括:接收器,所述接收器被配置为接收几何信息、属性信息和信令信息;几何解码器,所述几何解码器被配置为基于所述信令信息和几何树对所述几何信息进行解码;属性解码器,所述属性解码器被配置为基于所述信令信息和所述几何树对所述属性信息进行解码;以及渲染器,所述渲染器被配置为对基于解码后的几何信息和解码后的属性信息重构的所述点云数据进行渲染。
31.在一个实施方式中,解码后的几何信息可以包括重构的点云数据的点的位置,并且解码后的属性信息可以包括重构的点云数据的点的属性值。
32.在一个实施方式中,所述属性解码器可以包括:细节层次(lod)生成器,所述lod生成器被配置为基于所述几何树生成lod;以及重构器,所述重构器被配置为基于所述lod重构所述属性信息。
33.在一个实施方式中,所述几何树可以是通过八叉树、四叉树或二叉树中的两者或更多者的组合生成的。
34.在一个实施方式中,所述lod生成器可以被配置为:将从所述几何树中的当前深度的占用节点分割的一个或更多个子节点配置为邻居;并且从属于被配置为所述邻居的所述一个或更多个子节点的点当中选择一个点,其中,所述配置和所述选择可以是对所述当前深度的所述占用节点中的每一者执行的,以生成与所述当前深度相对应的lod。
35.在一个实施方式中,被配置为所述邻居的子节点的数目可以根据所述当前深度的树类型是八叉树、四叉树还是二叉树而变化。
36.在一个实施方式中,所述lod生成器可以基于属于被配置为所述邻居的所述一个或更多个子节点的所述点的莫顿码顺序选择所述点。
37.有益效果
38.根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云接收装置可以提供高质量的点云服务。
39.根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云接收装置可以实现各种视频编解码方法。
40.根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云接收装置可以提供诸如自动驾驶服务(或自主驾驶服务)这样的通用点云内容。
41.根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以执行点云数据的空间自适应分割以独立地对点云数据进行编码和解码,由此提高并行处理并提供可扩展性。
42.根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以通过以图块和/或切片为单位对点云数据进行分割来执行编码和解码并因此用信号通知其必要数据,由此提高点云的编码和解码性能。
43.根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可以通过在可缩放点云编码中使用基于lod的可缩放层配置使用非对称邻
居节点的可缩放层来提高具有非对称点分布的内容的属性压缩效率。
44.根据实施方式的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法可以使用用于几何压缩的基于ot/qt/bt的几何树结构生成用于属性压缩的lod,从而将几何的点的数目与针对在可缩放表示中的对应深度处的lod配置的属性的点的数目进行匹配。根据实施方式,可以基于点云数据的分层结构输出中间层。这种情况可以被定义为可缩放表示。
45.根据实施方式的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法可以被限制为仅针对与用于几何压缩的几何树结构中的基于qt(三维空间中的ot)的lod生成方法匹配的深度生成lod。因此,可以在可缩放表示中防止几何与属性之间的点失配。
46.根据实施方式的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法可以在针对可缩放编码应用字段执行基于qtbt的几何编码时,根据几何树中的深度以一对一对应的方式将点/节点与属性信息匹配。因此,可以针对所有深度或针对某些匹配深度启用可缩放表示。
附图说明
47.附图被包括进来以提供对本公开的进一步理解,并且被并入本技术的部分中并构成本技术的部分,附图例示了本公开的实施方式并与说明书一起用来说明本公开的原理。
48.图1例示了根据实施方式的示例性点云内容提供系统。
49.图2是例示了根据实施方式的点云内容提供操作的框图。
50.图3例示了根据实施方式的捕获点云视频的示例性过程。
51.图4例示了根据实施方式的点云视频编码器的示例性框图。
52.图5例示了根据实施方式的3d空间中的体素的示例。
53.图6例示了根据实施方式的八叉树和占用代码的示例。
54.图7例示了根据实施方式的邻近节点图案的示例。
55.图8例示了根据实施方式的针对每个lod的点云内容的点配置的示例。
56.图9例示了根据实施方式的针对每个lod的点云内容的点配置的示例。
57.图10例示了根据实施方式的点云视频解码器的框图的示例。
58.图11例示了根据实施方式的点云视频解码器的示例。
59.图12例示了根据实施方式的发送装置的点云视频编码的配置。
60.图13例示了根据实施方式的接收装置的点云视频解码的配置。
61.图14例示了根据实施方式的可结合点云数据方法/装置操作的示例性结构。
62.图15是例示了根据实施方式的由非对称分布的点组成的点云数据的示例的图。
63.图16是例示了基于3d空间中的八叉树对立方体进行分割的示例的图。
64.图17的(a)至图17的(c)是例示了基于3d空间中的四叉树分割立方体的示例的图。
65.图18的(a)至图18的(c)是例示了基于3d空间中的二叉树分割立方体的示例的图。
66.图19的(a)和图19的(b)例示了在2d空间中分割边界框的示例。
67.图20是例示了根据实施方式的由属性编码器基于八叉树生成lod的示例的图。
68.图21是例示了根据实施方式的3d立方体中的莫顿码顺序的示例的图。
69.图22是例示了根据实施方式的根据针对2d平面中的节点的lod生成的属性选择过程的示例的图。
70.图23是例示了根据实施方式的由属性编码器根据针对2d平面中的节点的lod生成的属性选择过程的另一示例的图。
71.图24的(a)和图24的(b)是例示了基于用于分割分布在2d平面中的点云数据的几何树结构的每个深度的lod生成的示例的图。
72.图25的(a)和图25的(b)是例示了基于用于分割分布在2d平面上的点云数据的几何树结构的每个深度的lod生成的其它示例的图。
73.图26是例示了用于分割分布在2d平面中的点云数据的几何树结构中的某些深度处的lod生成的示例的图。
74.图27是例示了用于分割分布在2d平面中的点云数据的几何树结构中的某些深度处的lod生成的另一示例的图。
75.图28的(a)和图28的(b)是例示了根据上文描述的条件的用于分割分布在2d平面中的点云数据的几何树结构中的某些深度处的lod跳过的配置的示例的图。
76.图29是例示了根据上文描述的条件的用于分割分布在2d平面中的点云数据的几何树结构中的某些深度处的lod跳过的配置的另一示例的图。
77.图30是例示了基于用于分割分布在2d平面中的点云数据的几何树结构的每个深度的lod生成的另一示例的图。
78.图31例示了根据实施方式的用于发送/接收的点云数据的示例性比特流结构。
79.图32例示了根据实施方式的用于发送/接收的点云数据的示例性比特流结构。
80.图33例示了根据实施方式的点云数据的比特流中的元素之间的连接关系。
81.图34示出了根据本公开的序列参数集的语法结构的实施方式。
82.图35示出了根据实施方式的几何参数集的语法结构的示例。
83.图36示出了根据实施方式的属性参数集的语法结构的示例。
84.图37示出了根据实施方式的包括与基于lod的属性压缩相关的信息的属性参数集的语法结构的示例。
85.图38示出了根据实施方式的geometry_slice_bitstream()的示例性语法结构。
86.图39示出了根据实施方式的几何切片头的示例性语法结构。
87.图40示出了根据实施方式的几何切片数据的示例性语法结构。
88.图41示出了根据实施方式的attribute_slice_bitstream()的示例性语法结构。
89.图42示出了根据实施方式的属性切片头的示例性语法结构。
90.图43示出了根据实施方式的包括与基于lod的属性压缩相关的信息的属性参数集的示例性语法结构。
91.图44示出了根据实施方式的属性切片数据的示例性语法结构。
92.图45例示了根据实施方式的点云发送装置的另一示例。
93.图46是例示了根据实施方式的属性编码器的示例性详细框图。
94.图47是例示了根据实施方式的示例性lod生成方法的流程图。
95.图48例示了根据实施方式的点云接收装置的另一示例。
96.图49是例示了根据实施方式的属性解码器的示例性详细框图。
97.图50是例示了根据实施方式的发送点云数据的方法的流程图。
98.图51是例示了根据实施方式的接收点云数据的方法的流程图。
具体实施方式
99.现在,将参照附图根据本文中公开的示例性实施方式详细给出描述。为了参照附图简要描述,可为相同或等同的部件提供相同的标号,其描述将不再重复。应该注意,以下示例仅用于体现本公开,并不限制本公开的范围。本公开所属技术领域的专家从本公开的详细描述和示例中可以容易地推断出的内容将被解释为在本公开的范围内。
100.本说明书中的详细描述应该在所有方面都被解释为例示性而非限制性的。本公开的范围应该由所附权利要求及其法律等同物来确定,并且落入所附权利要求的含义和等同范围内的所有改变旨在被涵盖在本文中。
101.现在,将详细参照本公开的优选实施方式,在附图中例示了这些实施方式的示例。下文将参照附图给出的详细描述旨在解释本公开的示例性实施方式,而非示出可以根据本公开实现的仅有的实施方式。以下详细描述包括具体细节,以提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本公开。虽然在本说明书中使用的大多数术语已选自本领域中广泛使用的通用术语,但申请人已任意选择一些术语,并且在下面的描述中将根据需要详细解释它们的含义。因此,应当基于术语的本意而非它们的简单名称或含义来理解本公开。另外,以下的附图和详细描述不应该被解释为限于具体描述的实施方式,而应该被解释为包括附图和详细描述中描述的实施方式的等同物或替代物。
102.图1示出了根据实施方式的示例性点云内容提供系统。
103.图1中例示的点云内容提供系统可以包括发送装置10000和接收装置10004。发送装置10000和接收装置10004能够进行有线或无线通信,以发送和接收点云数据。
104.根据实施方式的点云数据发送装置10000可以保护和处理点云视频(或点云内容),并发送该点云视频(或点云内容)。根据实施方式,发送装置10000可以包括固定站、基站收发器系统(bts)、网络、人工智能(ai)装置和/或系统、机器人、ar/vr/xr装置和/或服务器。根据实施方式,发送装置10000可以包括被配置为使用无线电接入技术(例如,5g新rat(nr)、长期演进(lte))与基站和/或其它无线装置执行通信的装置、机器人、车辆、ar/vr/xr装置、便携式装置、家用电器、物联网(iot)装置和ai装置/服务器。
105.根据实施方式的发送装置10000包括点云视频获取单元10001、点云视频编码器10002和/或发送器(或通信模块)10003。
106.根据实施方式的点云视频获取单元10001通过诸如捕获、合成或生成这样的处理过程获取点云视频。点云视频是由作为处于3d空间中的点的集合的点云表示的点云内容,并可以被称为点云视频数据。根据实施方式的点云视频可以包括一个或更多个帧。一帧表示静止图像/图片。因此,点云视频可以包括点云图像/帧/图片,并可以被称为点云图像、帧或图片。
107.根据实施方式的点云视频编码器10002对所获取的点云视频数据进行编码。点云视频编码器10002可以基于点云压缩编码对点云视频数据进行编码。根据实施方式的点云压缩编码可以包括基于几何的点云压缩(g-pcc)编码和/或基于视频的点云压缩(v-pcc)编
码或下一代编码。根据实施方式的点云压缩编码不限于上述实施方式。点云视频编码器10002可以输出包含编码后的点云视频数据的比特流。比特流可以不仅包含编码后的点云视频数据,而且包含与点云视频数据的编码相关的信令信息。
108.根据实施方式的发送器10003发送包含编码后的点云视频数据的比特流。根据实施方式的比特流被封装在文件或段(例如,流传输段)中,并通过诸如广播网络和/或宽带网络这样的各种网络传输。尽管未在图中示出,但发送装置10000可以包括被配置为执行封装操作的封装器(或封装模块)。根据实施方式,封装器可以被包括在发送器10003中。根据实施方式,文件或段可以通过网络发送到接收装置10004,或被存储在数字存储介质(例如,usb、sd、cd、dvd、蓝光、hdd、ssd等)中。根据实施方式的发送器10003能够通过4g、5g、6g等网络与接收装置10004(或接收器10005)进行有线/无线通信。另外,发送器可以根据网络系统(例如,4g、5g或6g通信网络系统)执行必要的数据处理操作。发送装置10000可以以按需方式发送封装后的数据。
109.根据实施方式的接收装置10004包括接收器10005、点云视频解码器10006和/或渲染器10007。根据实施方式,接收装置10004可以包括被配置为使用无线电接入技术(例如,5g新rat(nr)、长期演进(lte))与基站和/或其它无线装置执行通信的装置、机器人、车辆、ar/vr/xr装置、便携式装置、家用电器、物联网(iot)装置和ai装置/服务器。
110.根据实施方式的接收器10005从网络或存储介质接收包含点云视频数据的比特流或其中封装有比特流的文件/段。接收器10005可以根据网络系统(例如,4g、5g、6g等通信网络系统)执行必要的数据处理。根据实施方式的接收器10005可以对接收到的文件/段进行解封装并输出比特流。根据实施方式,接收器10005可以包括被配置为执行解封装操作的解封装器(或解封装模块)。解封装器可以被实现为与接收器10005分开的元件(或部件或模块)。
111.点云视频解码器10006对包含点云视频数据的比特流进行解码。点云视频解码器10006可以根据对点云视频数据进行编码的方法(例如,在点云视频编码器10002的操作的逆过程中)对点云视频数据进行解码。因此,点云视频解码器10006可以通过执行点云解压缩编码来解码点云视频数据,点云解压缩编码是点云压缩的逆过程。点云解压缩编码包括g-pcc编码。
112.渲染器10007对解码后的点云视频数据进行渲染。根据实施方式,渲染器10007可以根据视口对解码后的点云数据进行渲染。渲染器10007可以通过不仅渲染点云视频数据而且渲染音频数据来输出点云内容。根据实施方式,渲染器10007可以包括被配置为显示点云内容的显示器。根据实施方式,显示器可以被实现为单独的装置或部件,而不是被包括在渲染器10007中。
113.图中虚线所指示的箭头表示由接收装置10004获取的反馈信息的传输路径。反馈信息是用于反映与消费点云内容的用户的交互性的信息,并包括关于用户的信息(例如,头部取向信息、视口信息等)。特别地,当点云内容是需要与用户交互的服务(例如,自动驾驶服务等)的内容时,反馈信息可以被提供到内容发送方(例如,发送装置10000)和/或服务提供商。根据实施方式,反馈信息可以在接收装置10004和发送装置10000中使用,或可以不提供。
114.根据实施方式的头部取向信息可以表示关于用户头部的位置、取向、角度和运动
的信息。根据实施方式的接收装置10004可以基于头部取向信息来计算视口信息。视口信息是与用户正在观看的点云视频的区域(也就是说,客户当前正在观看的区域)有关的信息。也就是说,视口信息是关于用户当前在点云视频中查看的区域的信息。换句话说,视口或视口区域可以表示用户在点云视频中正在观看的区域。视点是用户在点云视频中正在观看的点,并且可以表示视口区域的中心点。也就是说,视口是以视点为中心的区域,并且该区域的大小和形状可以由视场(fov)确定。因此,接收装置10004可以基于装置所支持的竖直或水平fov以及头部取向信息来提取视口信息。另外,接收装置10004可以基于头部取向信息和/或视口信息来执行凝视分析等,以确定用户消费点云视频的方式、用户在点云视频中凝视的区域以及凝视时间。根据实施方式,接收装置10004可以将包括凝视分析结果的反馈信息发送到发送装置10000。根据实施方式,诸如vr/xr/ar/mr显示器的装置可以基于用户头部的位置/取向和由装置支持的垂直或水平fov来提取视口区域。根据实施方式,头部取向信息和视口信息可以称为反馈信息、信令信息或元数据。
115.可以在渲染和/或显示处理中获取根据实施方式的反馈信息。反馈信息可以由接收装置10004中包括的一个或更多个传感器来取得。根据实施方式,反馈信息可以由渲染器10007或单独的外部元件(或装置、部件等)来取得。图1中的虚线表示发送由渲染器10007取得的反馈信息的处理。反馈信息不仅可以被发送到发送侧,而且可以由接收侧消费。也就是说,点云内容提供系统可以基于反馈信息来处理(编码/解码/渲染)点云数据。例如,点云视频解码器10006和渲染器10007可以基于反馈信息(也就是说,头部取向信息和/或视口信息)来仅针对用户当前正观看的区域的点云视频优先进行解码和渲染。
116.接收装置10004可以将反馈信息发送到发送装置10000。发送装置10000(或点云视频编码器10002)可以基于反馈信息来执行编码操作。因此,点云内容提供系统可以基于反馈信息来高效地处理必要数据(例如,对应于用户头部位置的点云数据)而不是处理(编码/解码)整个点云数据,并向用户提供点云内容。
117.根据实施方式,发送装置10000可以被称为编码器、发送装置、发送器、发送系统等,并且接收装置10004可以被称为解码器、接收装置、接收器、接收系统等。
118.(通过获取/编码/发送/解码/渲染的一系列处理)在根据实施方式的图1的点云内容提供系统中处理的点云数据可以被称为点云内容数据或点云视频数据。根据实施方式,点云内容数据可以被用作涵盖与点云数据相关的元数据或信令信息的概念。
119.图1中例示的点云内容提供系统的元件可以由硬件、软件、处理器和/或其组合来实现。
120.图2是例示了根据实施方式的点云内容提供操作的框图。
121.图2的框图示出了图1中描述的点云内容提供系统的操作。如上所述,点云内容提供系统可以基于点云压缩编码(例如,g-pcc)来处理点云数据。
122.根据实施方式的点云内容提供系统(例如,点云发送装置10000或点云视频获取单元10001)可以获取点云视频(20000)。点云视频由属于用于表示3d空间的坐标系的点云表示。根据实施方式的点云视频可以包括ply(多边形文件格式或斯坦福三角格式)文件。当点云视频具有一个或更多个帧时,所获取的点云视频可以包括一个或更多个ply文件。ply文件包含诸如点几何结构和/或属性这样的点云数据。几何结构包括点的位置。每个点的位置可以由表示三维坐标系(例如,由x、y和z轴构成的坐标系)的参数(例如,x、y和z轴的值)来
表示。属性包括点的属性(例如,关于每个点的纹理、颜色(ycbcr或rgb)、反射率r、透明度等的信息)。点有一个或更多个属性。例如,点可以有作为颜色的属性或作为颜色和反射率的两个属性。根据实施方式,几何结构可以被称为位置、几何信息、几何数据等,并且属性可以被称为属性、属性信息、属性数据等。点云内容提供系统(例如,点云发送装置10000或点云视频获取单元10001)可以根据与点云视频的获取处理相关的信息(例如,深度信息、颜色信息等)取得点云数据。
123.根据实施方式的点云内容提供系统(例如,发送装置10000或点云视频编码器10002)可以对点云数据进行编码(20001)。点云内容提供系统可以基于点云压缩编码对点云数据进行编码。如上所述,点云数据可以包括点的几何结构和属性。因此,点云内容提供系统可以执行对几何结构进行编码的几何编码,并输出几何比特流。点云内容提供系统可以执行对属性进行编码的属性编码,并输出属性比特流。根据实施方式,点云内容提供系统可以基于几何编码来执行属性编码。根据实施方式的几何比特流和属性比特流可以被复用并作为一个比特流输出。根据实施方式的比特流还可以包含与几何编码和属性编码相关的信令信息。
124.根据实施方式的点云内容提供系统(例如,发送装置10000或发送器10003)可以发送编码后的点云数据(20002)。如图1中例示的,编码后的点云数据可以由几何比特流和属性比特流表示。另外,编码后的点云数据可以以比特流的形式连同与点云数据的编码相关的信令信息(例如,与几何编码和属性编码相关的信令信息)一起发送。点云内容提供系统可以封装携带编码后的点云数据的比特流,并以文件或段的形式发送该比特流。
125.根据实施方式的点云内容提供系统(例如,接收装置10004或接收器10005)可以接收包含编码后的点云数据的比特流。另外,点云内容提供系统(例如,接收装置10004或接收器10005)可以对比特流进行解复用。
126.点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以对在比特流中发送的编码后的点云数据(例如,几何比特流、属性比特流)进行解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以基于与比特流中包含的点云视频数据的编码相关的信令信息对点云视频数据进行解码。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以对几何比特流进行解码,以重构点的位置(几何结构)。点云内容提供系统可以通过基于重构的几何结构对属性比特流进行解码来重构点的属性。点云内容提供系统(例如,接收装置10004或点云视频解码器10005)可以基于根据重构的几何结构的位置和解码后的属性来重构点云视频。
127.根据实施方式的点云内容提供系统(例如,接收装置10004或渲染器10007)可以渲染解码后的点云数据(20004)。点云内容提供系统(例如,接收装置10004或渲染器10007)可以使用各种渲染方法来渲染通过解码处理解码的几何结构和属性。点云内容中的点可以被渲染为具有一定厚度的顶点、以对应顶点位置为中心的具有特定最小尺寸的立方体或以对应顶点位置为中心的圆。通过显示器(例如,vr/ar显示器、常见显示器等)向用户提供渲染后的点云内容的全部或部分。
128.根据实施方式的点云内容提供系统(例如,接收装置10004)可以保护反馈信息(20005)。点云内容提供系统可以基于反馈信息来编码和/或解码点云数据。根据实施方式的点云内容提供系统的反馈信息和操作与参考图1描述的反馈信息和操作相同,因此省略
对其的详细描述。
129.图3例示了根据实施方式的捕获点云视频的示例性处理。
130.图3例示了参考图1至图2描述的点云内容提供系统的示例性点云视频捕获处理。
131.点云内容包括表示位于各种3d空间(例如,表示真实环境的3d空间、表示虚拟环境的3d空间等)中的对象和/或环境的点云视频(图像和/或视频)。因此,根据实施方式的点云内容提供系统可以使用一个或更多个相机(例如,能够对深度信息进行保护的红外相机、能够提取与深度信息对应的颜色信息的rgb相机等)、投影仪(例如,用于对深度信息进行保护的红外图案投影仪)、lidra等来捕获点云视频。根据实施方式的点云内容提供系统可以从深度信息中提取由3d空间中的点构成的几何结构的形状,并从颜色信息中提取每个点的属性以对点云数据进行保护。可以基于面向内技术和面向外技术中的至少一种来捕获根据实施方式的图像和/或视频。
132.图3的左部例示了面向内技术。面向内技术是指用设置在中心对象周围的一个或更多个相机(或相机传感器)捕获中心对象的图像的技术。可以使用面向内技术生成向用户提供关键对象的360度图像的点云内容(例如,向用户提供对象(例如,诸如角色、玩家、对象或演员这样的关键对象)的360度图像的vr/ar内容)。
133.图3的右部例示了面向外技术。面向外技术是指用设置在中心对象周围的一个或更多个相机(或相机传感器)捕获中心对象的环境而非中心对象的图像的技术。可以使用面向外技术生成用于提供从用户的角度出现的周围环境的点云内容(例如,表示可以提供给自动驾驶车辆的用户的外部环境的内容)。
134.如图3中所示,可以基于一个或更多个相机的捕获操作来生成点云内容。在这种情况下,坐标系在每个相机当中是不同的,因此,点云内容提供系统可以在捕获操作之前校准一个或更多个相机以设置全局坐标系。另外,点云内容提供系统可以通过将任意图像和/或视频与通过上述捕获技术捕获的图像和/或视频进行合成来生成点云内容。点云内容提供系统在其生成表示虚拟空间的点云内容时不可以执行图3中描述的捕获操作。根据实施方式的点云内容提供系统可以对所捕获的图像和/或视频执行后处理。换句话说,点云内容提供系统可以去除不需要的区域(例如,背景),识别所捕获的图像和/或视频连接到的空间,并且当存在空间孔时执行填充空间孔的操作。
135.点云内容提供系统可以通过对从每个相机保护的点云视频的点执行坐标变换来生成一条点云内容。点云内容提供系统可以基于每个相机位置的坐标对点执行坐标变换。因此,点云内容提供系统可以生成表示一个宽范围的内容,或可以生成具有高密度点的点云内容。
136.图4例示了根据实施方式的示例性点云视频编码器。
137.图4示出了图1的点云视频编码器10002的示例。点云视频编码器重构并编码点云数据(例如,点的位置和/或属性),以根据网络条件或应用来调整点云内容的质量(例如,无损、有损或接近无损)。当点云内容的总大小大时(例如,对于30fps,给出60gbps的点云内容),点云内容提供系统可能无法实时地流传输该内容。因此,点云内容提供系统可以基于最大目标比特率重构点云内容,以根据网络环境等提供该点云内容。
138.如参考图1至图2描述的,点云视频编码器可以执行几何编码和属性编码。几何编码在属性编码之前执行。
139.根据实施方式的点云视频编码器包括坐标变换单元40000、量化单元40001、八叉树分析单元40002、表面近似分析单元40003、算术编码器40004、几何重构单元40005、颜色变换单元40006、属性变换单元40007、raht单元40008、lod生成器40009、提升变换单元40010、系数量化单元40011和/或算术编码器40012。
140.坐标变换单元40000、量化单元40001、八叉树分析单元40002、表面近似分析单元40003、算术编码器40004和几何重构单元40005可以执行几何编码。根据实施方式的几何编码可以包括八叉树几何编码、直接编码、trisoup(trisoup)几何编码和熵编码。直接编码和trisoup几何编码被选择性地或组合地应用。几何编码不限于上述示例。
141.如图中所示,根据实施方式的坐标变换单元40000接收位置并将其变换为坐标。例如,位置可以被变换为三维空间(例如,由xyz坐标系表示的三维空间)中的位置信息。根据实施方式的三维空间中的位置信息可以被称为几何信息。
142.根据实施方式的量化单元40001对几何信息进行量化。例如,量化单元40001可以基于所有点的最小位置值(例如,x、y和z轴中的每一个上的最小值)来量化点。量化单元40001执行以下量化操作:将每个点的位置值与最小位置值之间的差乘以预设的量化缩放值,然后通过对通过乘法获得的值进行四舍五入来找到最接近的整数值。因此,一个或更多个点可以具有相同的量化位置(或位置值)。根据实施方式的量化单元40001基于量化位置来执行体素化,以重构量化点。体素化意味着在3d空间中表示位置信息的最小单位。根据实施方式的点云内容(或3d点云视频)的点可以被包括在一个或更多个体素中。作为体积与像素的复合词的术语体素是指当基于表示3d空间的轴(例如,x轴、y轴和z轴)将3d空间划分为单元(单元=1.0)时生成的3d立方空间。量化单元40001可以将3d空间中的点的组与体素匹配。根据实施方式,一个体素可以仅包括一个点。根据实施方式,一个体素可以包括一个或更多个点。为了将一个体素表示为一个点,可以基于体素中包括的一个或更多个点的位置来设置体素的中心点的位置。在这种情况下,可以组合一个体素中包括的所有位置的属性并将这些属性分配给该体素。
143.根据实施方式的八叉树分析单元40002执行八叉树几何编码(或八叉树编码)从而以八叉树结构呈现体素。八叉树结构表示基于八叉树结构与体素匹配的点。
144.根据实施方式的表面近似分析单元40003可以对八叉树进行分析和近似。根据实施方式的八叉树分析和近似是分析包含多个点的区域以高效提供八叉树和体素化的处理。
145.根据实施方式的算术编码器40004对八叉树和/或近似的八叉树执行熵编码。例如,编码方案包括算术编码。作为编码的结果,生成几何比特流。
146.颜色变换单元40006、属性变换单元40007、raht单元40008、lod生成器40009、提升变换单元40010、系数量化单元40011和/或算术编码器40012执行属性编码。如上所述,一个点可以具有一个或更多个属性。根据实施方式的属性编码同样应用于一个点所具有的属性。然而,当属性(例如,颜色)包括一个或更多个元素时,属性编码独立地应用于每个元素。根据实施方式的属性编码包括颜色变换编码、属性变换编码、区域自适应分层变换(raht)编码、基于内插的分层最近邻预测(预测变换)编码和具有更新/提升步骤(提升变换)的基于内插的分层最近邻预测编码。根据点云内容,可以选择性使用上述的raht编码、预测变换编码和提升变换编码,或者可以使用一个或更多个编码方案的组合。根据实施方式的属性编码不限于上述示例。
147.根据实施方式的颜色变换单元40006执行变换属性中包括的颜色值(或纹理)的颜色变换编码。例如,颜色变换单元40006可以变换颜色信息的格式(例如,从rgb到ycbcr)。可以根据属性中包括的颜色值可选地应用根据实施方式的颜色变换单元40006的操作。
148.根据实施方式的几何重构单元40005重构(解压缩)八叉树和/或近似的八叉树。几何重构单元40005基于分析点的分布的结果来重构八叉树/体素。重构的八叉树/体素可以被称为重构的几何结构(恢复的几何结构)。
149.根据实施方式的属性变换单元40007执行属性变换,以基于未被执行几何编码的位置和/或重构的几何结构来变换属性。如上所述,由于属性取决于几何结构,因此属性变换单元40007可以基于重构的几何信息来变换属性。例如,基于体素中包括的点的位置值,属性变换单元40007可以变换该位置处的点的属性。如上所述,当基于体素中包括的一个或更多个点的位置来设置体素中心的位置时,属性变换单元40007变换所述一个或更多个点的属性。当执行trisoup几何编码时,属性变换单元40007可以基于trisoup几何编码来变换属性。
150.属性变换单元40007可以通过计算从每个体素的中心的位置(或位置值)起特定位置/半径内的邻居点的属性或属性值(例如,每个点的颜色或反射率)的平均值来执行属性变换。属性变换单元40007可以在计算平均值时根据该中心到每个点的距离来应用权重。因此,每个体素都有位置和计算出的属性(或属性值)。
151.属性变换单元40007可以基于k-d树或莫顿码(morton code)搜索存在于距每个体素的中心的位置特定位置/半径内的邻居点。k-d树是二叉搜索树,并支持能够基于位置来管理点数据结构以便可以快速执行最近邻搜索(nns)的。通过将表示所有点的3d位置的坐标(例如,(x,y,z))呈现为位值并混合所述位来生成莫顿码。例如,当表示点的位置的坐标为(5,9,1)时,坐标的位值为(0101,1001,0001)。以z、y和x的顺序根据位索引混合位值产生010001000111。该值被表示为十进制数1095。也就是说,具有坐标(5,9,1)的点的莫顿码值为1095。属性变换单元40007可以基于莫顿码值对点进行排序,并通过深度优先遍历处理执行nns。在属性变换操作之后,当在用于属性编码的另一变换处理中需要nns时,使用k-d树或莫顿码。
152.如图中所示,变换后的属性被输入到raht单元40008和/或lod生成器40009。
153.根据实施方式的raht单元40008基于重构的几何信息执行用于预测属性信息的raht编码。例如,raht单元40008可以基于与八叉树中较低层次的节点关联的属性信息来预测八叉树中较高层次的节点的属性信息。
154.根据实施方式的lod生成器40009生成细节层次(lod)。根据实施方式的lod是点云内容的细节度。随着lod值的减小,表明点云内容的细节度下降。随着lod值的增大,表明点云内容的细节增强。可以按lod对点进行分类。
155.根据实施方式的提升变换单元40010执行基于权重来变换点云的属性的提升变换编码。如上所述,可以可选地应用提升变换编码。
156.根据实施方式的系数量化单元40011基于系数对属性编码后的属性进行量化。
157.根据实施方式的算术编码器40012基于算术编码对量化后的属性进行编码。
158.尽管在该图中未示出,但图4的点云视频编码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置为与点
云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图4的点云视频编码器的元件的操作和/或功能中的至少一者。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图4的点云视频编码器的元件的操作和/或功能。根据实施方式的一个或更多个存储器可以包括高速随机存取存储器,或包括非易失性存储器(例如,一个或更多个磁盘存储装置、闪存装置或其它非易失性固态存储装置)。
159.图5示出了根据实施方式的体素的示例。
160.图5示出了位于由三个轴即x轴、y轴和z轴构成的坐标系表示的3d空间中的体素。如参考图4描述的,点云视频编码器(例如,量化单元40001)可以执行体素化。体素是指当基于表示3d空间的轴(例如,x轴、y轴和z轴)将3d空间划分为单元(单元=1.0)时生成的3d立方空间。图5示出了通过八叉树结构生成的体素的示例,在该八叉树结构中,由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框被递归地细分。一个体素包括至少一个点。可以根据与体素组的位置关系来估计体素的空间坐标。如上所述,体素具有像2d图像/视频的像素一样的属性(诸如,颜色或反射率)。体素的细节与参考图4描述的细节相同,因此省略对其的描述。
161.图6示出了根据实施方式的八叉树和占用代码的示例。
162.如参考图1至图4描述的,点云内容提供系统(点云视频编码器10002)或点云视频编码器的八叉树分析单元40002基于八叉树结构来执行八叉树几何编码(或八叉树编码),以高效地管理体素的区域和/或位置。
163.图6的上部示出了八叉树结构。根据实施方式的点云内容的3d空间由坐标系的轴(例如,x轴、y轴和z轴)表示。八叉树结构是通过递归细分由两个极点(0,0,0)和(2d,2d,2d)定义的立方轴对齐的边界框来创建的。这里,2d可以被设置为构成围绕点云内容(或点云视频)的所有点的最小边界框的值。这里,d表示八叉树的深度。在式1中确定d的值。在式1中,(x
intn
,y
intn
,z
intn
)表示量化点的位置(或位置值)。
164.[式1]
[0165][0166]
如图6的上部的中间所示,整个3d空间可以根据分区被划分为八个空间。每个划分空间由具有六个面的立方体表示。如图6的右上侧所示,基于坐标系的轴(例如,x轴、y轴和z轴)再次划分八个空间中的每一个。因此,每个空间被划分成八个更小的空间。所划分的更小空间也由具有六个面的立方体表示。应用该划分方案,直到八叉树的叶节点成为体素为止。
[0167]
图6的下部示出了八叉树占用代码。生成八叉树的占用代码,以指示通过划分一个空间而产生的八个划分空间中的每一个是否包含至少一个点。因此,单个占用代码由八个子节点表示。每个子节点表示所划分空间的占用,并且子节点具有1位的值。因此,占用代码被表示为8位代码。也就是说,当在与子节点对应的空间中包含至少一个点时,该节点被赋予值1。当在对应于子节点的空间中不包含点(空间为空)时,该节点被赋予值0。由于图6中示出的占用代码为00100001,因此它指示与八个子节点当中的第三个子节点和第八个子节点对应的空间各自包含至少一个点。如图中所示,第三个子节点和第八个子节点中的每一
个具有8个子节点,并且子节点用8位占用代码表示。该图示出第三个子节点的占用代码为10000111,并且第八个子节点的占用代码为01001111。根据实施方式的点云视频编码器(例如,算术编码器40004)可以对占用代码执行熵编码。为了提高压缩效率,点云视频编码器可以对占用代码执行帧内/帧间编码。根据实施方式的接收装置(例如,接收装置10004或点云视频解码器10006)基于占用代码来重构八叉树。
[0168]
根据实施方式的点云视频编码器(例如,八叉树分析单元40002)可以执行体素化和八叉树编码,以存储点的位置。然而,点并不总是均匀地分布在3d空间中,因此会有其中存在较少点的特定区域。因此,对整个3d空间执行体素化是低效的。例如,当特定区域包含的点较少时,不需要在特定区域中执行体素化。
[0169]
因此,对于上述特定区域(或八叉树的叶节点以外的节点),根据实施方式的点云视频编码器可以跳过体素化并执行直接编码,以对特定区域中包括的点的位置直接进行编码。根据实施方式的直接编码点的坐标被称为直接编码模式(dcm)。根据实施方式的点云视频编码器还可以基于表面模型来执行trisoup几何编码,以基于体素来重构特定区域(或节点)中的点的位置。trisoup几何编码是将对象表示为一系列三角形网格的几何编码。因此,点云视频解码器可以从网格表面生成点云。可以选择性执行根据实施方式的trisoup几何编码和直接编码。另外,可以结合八叉树几何编码(或八叉树编码)来执行根据实施方式的trisoup几何编码和直接编码。
[0170]
为了执行直接编码,应该启用使用直接模式以应用直接编码的选项。将被应用直接编码的节点不是叶节点,并且在特定节点内应该存在少于阈值的点。另外,将应用直接编码的点的总数不应超过预设阈值。当满足以上条件时,根据实施方式的点云视频编码器(或算术编码器40004)可以对点的位置(或位置值)执行熵编码。
[0171]
根据实施方式的点云视频编码器(例如,表面近似分析单元40003)可以确定八叉树的特定层次(小于八叉树的深度d的层次),并且可以从该层次开始使用表面模型来执行trisoup几何编码,以基于体素来重构节点的区域中的点的位置(trisoup模式)。根据实施方式的点云视频编码器可以指定将应用trisoup几何编码的层次。例如,当特定层次等于八叉树的深度时,点云视频编码器不在trisoup模式下操作。换句话说,根据实施方式的点云视频编码器可以仅在所指定的层次小于八叉树的深度值时才在trisoup模式下操作。根据实施方式的所指定层次处的节点的3d立方区域被称为块。一个块可以包括一个或更多个体素。块或体素可以对应于砖。几何结构被表示为每个块内的表面。根据实施方式的表面可以与块的每个边缘最多相交一次。
[0172]
一个块有12个边缘,因此在一个块中至少存在12个交点。每个交点被称为顶点(或顶端点)。当在共享边缘的所有块当中至少存在一个与该边缘相邻的被占用体素时,检测到沿该边缘存在的顶点。根据实施方式的被占用体素是指包含点的体素。沿着边缘检测到的顶点的位置是沿着共享该边缘的所有块当中的与该边缘相邻的所有体素的边缘的平均位置。
[0173]
一旦检测到顶点,根据实施方式的点云视频编码器就可以对边缘的起始点(x,y,z)、边缘的方向矢量(δx,δy,δz)和顶点位置值(边缘内的相对位置值)执行熵编码。当应用trisoup几何编码时,根据实施方式的点云视频编码器(例如,几何重构单元40005)可以通过执行三角形重构、上采样和体素化处理来生成恢复后的几何结构(重构的几何结构)。
[0174]
处于块的边缘处的顶点确定穿过块的表面。根据实施方式的表面是非平面多边形。在三角形重构处理中,基于边缘的起始点、边缘的方向矢量和顶点的位置值来重构由三角形表示的表面。根据式2,通过以下操作执行三角形重构处理:

计算每个顶点的质心值,

从每个顶点值减去中心值,以及

估计通过减法而获得的值的平方和。
[0175]
[式2]
[0176][0177]
然后,估计和的最小值,并根据具有最小值的轴来执行投影处理。例如,当元素x为最小时,每个顶点相对于块的中心投影到x轴上,并投影到(y,z)平面上。当通过投影到(y,z)平面上而获得的值为(ai,bi)时,通过atan2(bi,ai)估计θ的值,并根据θ的值对顶点进行排序。下面的表1示出了根据顶点的数目来创建三角形的顶点组合。顶点被从1到n地排序。下面的表1示出对于四个顶点,可以根据顶点的组合来构造两个三角形。第一个三角形可以由排序的顶点当中的顶点1、2和3组成,并且第二个三角形可以由排序顶点当中的顶点3、4和1组成。
[0178]
表1.由按1,

,n排序的顶点形成的三角形[表1]
[0179][0180]
执行上采样处理,以沿着三角形的边在中间添加点并执行体素化。所添加的点是基于上采样因子和块的宽度产生的。所添加的点被称为细化顶点。根据实施方式的点云视频编码器可以对细化顶点进行体素化。另外,点云视频编码器可以基于体素化位置(或位置值)来执行属性编码。
[0181]
图7例示了根据实施方式的邻居节点模式的示例。为了提高点云视频的压缩效率,
根据实施方式的点云视频编码器可以基于上下文自适应算术编码来执行熵编码。
[0182]
点云视频编码器可以基于上下文自适应算术编码来熵编码,以增强点云视频的压缩效率。
[0183]
如参考图1至图6描述的,图1的点云内容提供系统或点云视频编码器10002或图4的点云视频编码器或算术编码器40004可以立即对占用代码执行熵编码。另外,点云内容提供系统或点云视频编码器可以基于当前节点的占用代码和邻居节点的占用来执行熵编码(帧内编码),或基于前一帧的占用代码来执行熵编码(帧间编码)。根据实施方式的帧表示同时产生的点云视频的集合。根据实施方式的帧内编码/帧间编码的压缩效率可以取决于被参考的邻居节点的数目。当位增加时,操作变复杂,但编码可以偏向一侧,从而可以增加压缩效率。例如,当给定3位上下文时,需要使用23=8种方法执行编码。为进行编码而划分的部分影响了实现方式的复杂度。因此,必须满足适当水平的压缩效率和复杂度。
[0184]
图7例示了基于邻居节点的占用来获得占用模式的处理。根据实施方式的点云视频编码器确定八叉树的每个节点的邻居节点的占用,并获得邻居模式的值。使用该邻居节点模式来推断节点的占用模式。图7的上部示出了与节点对应的立方体(处于中间的立方体)以及与立方体共享至少一个面的六个立方体(邻居节点)。图中示出的节点是相同深度的节点。图中示出的数字分别表示与六个节点关联的权重(1、2、4、8、16和32)。根据邻居节点的位置依次指派权重。
[0185]
图7的下部示出了邻居节点模式值。邻居节点模式值是乘以被占用邻居节点(具有点的邻居节点)的权重的值之和。因此,邻居节点模式值为0至63。当邻居节点模式值为0时,指示该节点的邻居节点当中不存在具有点的节点(未占用节点)。当邻居节点模式值为63时,指示所有邻居节点都是被占用节点。如图中所示,由于被指派权重1、2、4和8的邻居节点是被占用节点,因此邻居节点模式值为15即1、2、4和8之和。点云视频编码器可以根据邻居节点模式值执行编码(例如,当邻居节点模式值为63时,可以执行64种编码)。根据实施方式,点云视频编码器可以通过改变邻居节点模式值(例如,基于通过其将64改变为10或6的表)来降低编码复杂度。
[0186]
图8例示了根据实施方式的每个lod中的点配置的示例。
[0187]
如参考图1至图7描述的,在执行属性编码之前,重构(解压缩)编码后的几何结构。当应用直接编码时,几何重构操作可以包括改变直接编码后的点的放置(例如,将直接编码后的点放置在点云数据的前面)。当应用trisoup几何编码时,通过三角形重构、上采样和体素化来执行几何重构处理。由于属性取决于几何结构,因此基于重构的几何结构执行属性编码。
[0188]
点云视频编码器(例如,lod生成器40009)可以通过lod对点进行分类(或重新组织)。图8示出了与lod对应的点云内容。图8中的最左侧图片表示原始点云内容。图8左侧起的第二个图片表示最低lod中的点的分布,并且图8中的最右侧图片表示最高lod中的点的分布。也就是说,最低lod中的点稀疏地分布,并且最高lod中的点密集地分布。也就是说,随着lod在由图8底部处指示的箭头所指的方向上上升,点之间的空间(或距离)变窄。
[0189]
图9例示了根据实施方式的每个lod的点配置的示例。
[0190]
如参考图1至图8描述的,点云内容提供系统或点云视频编码器(例如,图1的点云视频编码器10002、图4的点云视频编码器或lod生成器40009)可以生成lod。通过根据设置
的lod距离值(或一组欧几里得距离)将点重新组织为一组细化层次来生成lod。lod生成处理不仅由点云视频编码器执行,而且由点云视频解码器执行。
[0191]
图9的上部示出了分布在3d空间中的点云内容的点的示例(p0至p9)。在图9中,原始顺序表示lod生成之前点p0至p9的顺序。在图9中,基于lod的顺序表示根据lod生成的点的顺序。通过lod重新组织点。另外,高lod包含属于较低lod的点。如图9中所示,lod0包含p0、p5、p4和p2。lod1包含lod0的点、p1、p6和p3。lod2包含lod0的点、lod1的点、p9、p8和p7。
[0192]
如参考图4描述的,根据实施方式的点云视频编码器可以选择性或组合地执行基于lod的预测变换编码、基于lod的提升变换编码和raht变换编码。
[0193]
根据实施方式的点云视频编码器可以为点生成预测器,以执行基于lod的预测变换编码来设置每个点的预测属性(或预测属性值)。也就是说,可以针对n个点生成n个预测器。根据实施方式的预测器可以基于每个点的lod值、与存在于针对每个lod的设定距离内的邻居点有关的加索引信息以及到邻居点的距离来计算权重(=1/距离)。
[0194]
根据实施方式的预测属性(或属性值)被设置为通过将每个点的预测器中设置的邻居点的属性(或属性值)(例如,颜色、反射率等)乘以基于到每个邻居点的距离计算出的权重(或权重值)而获得的值的平均值。根据实施方式的点云视频编码器(例如,系数量化单元40011)可以对通过从每个点的属性(即,原始属性值)中减去每个点的预测属性(或属性值)而获得的每个点的残差(可以被称为残差属性、残差属性值、属性预测残差值或预测错误属性值等)进行量化和逆量化。如表2中所示来配置针对发送装置中的残差属性值执行的量化处理。如表3中所示来配置针对接收装置中的残差属性值执行的逆量化处理。
[0195]
[表2]
[0196]
int pccquantization(int value,int quantstep){if(value》=0){return floor(value/quantstep 1.0/3.0);}else{return-floor(-value/quantstep 1.0/3.0);}}
[0197]
[表3]
[0198]
int pccinversequantization(int value,int quantstep){if(quantstep==0){return value;}else{return value*quantstep;}}
[0199]
当每个点的预测器具有邻居点时,根据实施方式的点云视频编码器(例如,算术编码器40012)可以如上所述对量化和逆量化后的残差属性值执行熵编码。
[0200]
1)创建用于存储每个点的权重值的数组quantization weight(qw)(量化权重)。qw的所有元素的初始值为1.0。将在预测器中登记的邻居节点的预测器索引的qw值乘以当
前点的预测器的权重,并将通过乘法而获得的值相加。
[0201]
2)提升预测处理:从现有属性值中减去通过将点的属性值乘以权重而获得的值,以计算预测属性值。
[0202]
3)创建被称为更新权重(updateweight)的临时数组,并将该临时数组更新并初始化为零。
[0203]
4)将通过将针对所有预测器计算出的权重乘以存储在qw中的与预测器索引对应的权重而计算出的权重累加地添加到更新权重数组以作为邻居节点的索引。将通过将邻居节点的索引的属性值乘以计算出的权重而获得的值累加地添加到更新数组。
[0204]
5)提升更新处理:将针对所有预测器的更新数组的属性值除以预测器索引的更新权重数组的权重值,并将现有的属性值与通过除法而获得的值相加。
[0205]
6)通过针对所有预测器将通过提升更新处理而更新的属性值乘以(存储在qw中的)通过提升预测处理而更新的权重来计算预测属性。根据实施方式的点云视频编码器(例如,系数量化单元40011)对预测的属性值进行量化。另外,点云视频编码器(例如,算术编码器40012)对量化后的属性值执行熵编码。
[0206]
根据实施方式的点云视频编码器(例如,raht单元40008)可以执行raht变换编码,其中使用与八叉树中较低层次的节点关联的属性来预测较高层次的节点的属性。raht变换编码是通过八叉树后向扫描进行的属性帧内编码的示例。根据实施方式的点云视频编码器从体素扫描整个区域,并在每个步骤中重复将体素合并成较大块的合并处理,直至到达根节点。根据实施方式的合并处理仅在被占用节点上执行。合并处理不在空节点上执行。合并处理在空节点正上方的较高模式下执行。
[0207]
下面的式3表示raht变换矩阵。在式3中,表示层次l处的体素的平均属性值。可以基于和来计算和的权重是和
[0208]
[式3]
[0209][0210]
这里,是低通值并被用在下一更高层次处的合并处理中。表示高通系数。每个步骤中的高通系数被量化并经历熵编码(例如,通过算术编码器40012编码)。权重被计算为如式4地通过和计算根节点。
[0211]
[式4]
[0212][0213]
gdc的值也像高通系数一样被量化并经历熵编码。
[0214]
图10例示了根据实施方式的点云视频解码器。
[0215]
图10中例示的点云视频解码器是图1中描述的点云视频解码器10006的示例,并可
以执行与图1中例示的点云视频解码器10006的操作相同或类似的操作。如图中所示,点云视频解码器可以接收一个或更多个比特流中包含的几何比特流和属性比特流。点云视频解码器包括几何解码器和属性解码器。几何解码器对几何比特流执行几何解码,并输出解码后的几何结构。属性解码器基于解码后的几何对属性比特流执行属性解码,并输出解码后的属性。使用解码后的几何结构和解码后的属性来重构点云内容(解码后的点云)。
[0216]
图11例示了根据实施方式的点云视频解码器。
[0217]
图11中例示的点云视频解码器是图10中例示的点云视频解码器的示例,并可以执行作为图1至图9中例示的点云视频编码器的编码操作的逆处理的解码操作。
[0218]
如参考图1和图10描述的,点云视频解码器可以执行几何解码和属性解码。几何解码是在属性解码之前执行的。
[0219]
根据实施方式的点云视频解码器包括算术解码器(算术解码)11000、八叉树合成器(合成八叉树)11001、表面近似合成器(合成表面近似)11002和几何重构单元(重构几何结构)11003、坐标逆变换器(逆变换坐标)11004、算术解码器(算术解码)11005、逆量化单元(逆量化)11006、raht变换器11007、lod生成器(生成lod)11008、逆提升器(逆提升)11009和/或逆颜色变换单元(逆变换颜色)11010。
[0220]
算术解码器11000、八叉树合成器11001、表面近似合成器11002和几何重构单元11003以及坐标逆变换器11004可以执行几何解码。根据实施方式的几何解码可以包括直接解码和trisoup几何解码。直接解码和trisoup几何解码被选择性应用。几何解码不限于上述示例,并作为参考图1至图9描述的几何编码的逆处理来执行。
[0221]
根据实施方式的算术解码器11000基于算术编码对接收到的几何比特流进行解码。算术解码器11000的操作对应于算术编码器40004的逆处理。
[0222]
根据实施方式的八叉树合成器11001可以通过从解码后的几何比特流(或作为解码结果而被保护的关于几何结构的信息)获取占用代码来生成八叉树。如参考图1至图9详细描述地配置占用代码。
[0223]
当应用trisoup几何编码时,根据实施方式的表面近似合成器11002可以基于解码后的几何结构和/或所生成的八叉树来合成表面。
[0224]
根据实施方式的几何重构单元11003可以基于表面和/或解码后的几何结构来重新生成几何结构。如参考图1至图9描述的,直接编码和trisoup几何编码被选择性应用。因此,几何重构单元11003直接导入并添加关于应用了直接编码的点的位置信息。当应用trisoup几何编码时,几何重构单元11003可以通过执行几何重构单元40005的重构操作(例如,三角形重构、上采样和体素化)来重构几何结构。细节与参考图6描述的细节相同,因此省略对其的描述。重构的几何结构可以包括不包含属性的点云图片或帧。
[0225]
根据实施方式的坐标逆变换器11004可以通过基于重构的几何结构变换坐标来获取点的位置。
[0226]
算术解码器11005、逆量化单元11006、raht变换器11007、lod生成器11008、逆提升器11009和/或逆颜色变换单元11010可以执行参考图10描述的属性解码。根据实施方式的属性解码包括区域自适应分层变换(raht)解码、基于内插的分层最近邻预测(预测变换)解码和具有更新/提升步骤(提升变换)的基于内插的分层最近邻预测解码。可以选择性使用上述三种解码方案,或可以使用一种或更多种解码方案的组合。根据实施方式的属性解码
不限于上述示例。
[0227]
根据实施方式的算术解码器11005通过算术编码对属性比特流进行解码。
[0228]
根据实施方式的逆量化单元11006对作为解码结果而被保护的关于解码后的属性比特流或属性的信息进行逆量化,并输出逆量化后的属性(或属性值)。可以基于点云视频编码器的属性编码来选择性应用逆量化。
[0229]
根据实施方式,raht变换器11007、lod生成器11008和/或逆提升器11009可以处理重构的几何结构和逆量化后的属性。如上所述,raht变换器11007、lod生成器11008和/或逆提升器11009可以选择性执行与点云视频编码器的编码对应的解码操作。
[0230]
根据实施方式的逆颜色变换单元11010执行逆变换编码,以对解码后的属性中包括的颜色值(或纹理)进行逆变换。可以基于点云视频编码器的颜色变换单元40006的操作选择性执行逆颜色变换单元11010的操作。
[0231]
尽管在该图中未示出,但图11的点云视频解码器的元件可以由包括一个或更多个处理器或集成电路的硬件、软件、固件或其组合来实现,该处理器或集成电路被配置为与点云内容提供设备中包括的一个或更多个存储器通信。所述一个或更多个处理器可以执行上述图11的点云视频解码器的元件的操作和/或功能中的至少一个或更多个。另外,一个或更多个处理器可以操作或执行软件程序和/或指令的集合,以执行图11的点云视频解码器的元件的操作和/或功能。
[0232]
图12例示了根据实施方式的发送装置。
[0233]
图12中示出的发送装置是图1的发送装置10000(或图4的点云视频编码器)的示例。图12中例示的发送装置可以执行与参考图1至图9描述的点云视频编码器的操作和方法相同或类似的操作和方法中的一个或更多个。根据实施方式的发送装置可以包括数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码发生器12003、表面模型处理器12004、帧内/帧间编码处理器12005、算术编码器12006、元数据处理器12007、颜色变换处理器12008、属性变换处理器12009、lod/提升/raht变换处理器12010、算术编码器12011和/或发送处理器12012。
[0234]
根据实施方式的数据输入单元12000接收或获取点云数据。数据输入单元12000可以执行与点云视频获取单元10001的操作和/或获取方法(或参考图2描述的获取处理20000)相同或类似的操作和/或获取方法。
[0235]
数据输入单元12000、量化处理器12001、体素化处理器12002、八叉树占用代码发生器12003、表面模型处理器12004、帧内/帧间编码处理器12005和算术编码器12006执行几何编码。根据实施方式的几何编码与参考图1至图9描述的几何编码相同或类似,因此省略对其的详细描述。
[0236]
根据实施方式的量化处理器12001对几何结构(例如,点的位置值)进行量化。量化处理器12001的操作和/或量化与参考图4描述的量化单元40001的操作和/或量化相同或类似。细节与参考图1至图9描述的细节相同。
[0237]
根据实施方式的体素化处理器12002对点的量化后位置值进行体素化。体素化处理器12002可以执行与参考图4描述的量化单元40001的操作和/或体素化处理相同或类似的操作和/或处理。细节与参考图1至图9描述的细节相同。
[0238]
根据实施方式的八叉树占用代码发生器12003基于八叉树结构对点的体素化位置
执行八叉树编码。八叉树占用代码发生器12003可以生成占用代码。八叉树占用代码发生器12003可以执行与参考图4和图6描述的点云视频编码器(或八叉树分析单元40002)的操作和/或方法相同或类似的操作和/或方法。细节与参考图1至图9描述的细节相同。
[0239]
根据实施方式的表面模型处理器12004可以基于表面模型来执行trisoup几何编码,以基于体素来重构特定区域(或节点)中的点的位置。表面模型处理器12004可以执行与参考图4描述的点云视频编码器(例如,表面近似分析单元40003)的操作和/或方法相同或类似的操作和/或方法。细节与参考图1至图9描述的细节相同。
[0240]
根据实施方式的帧内/帧间编码处理器12005可以对点云数据执行帧内/帧间编码。帧内/帧间编码处理器12005可以执行与参考图7描述的帧内/帧间编码相同或类似的编码。细节与参考图7描述的细节相同。根据实施方式,帧内/帧间编码处理器12005可以被包括在算术编码器12006中。
[0241]
根据实施方式的算术编码器12006对点云数据的八叉树和/或近似的八叉树执行熵编码。例如,编码方案包括算术编码。算术编码器12006执行与算术编码器40004的操作和/或方法相同或类似的操作和/或方法。
[0242]
根据实施方式的元数据处理器12007处理关于点云数据的元数据(例如,设定值),并将其提供到诸如几何编码和/或属性编码这样的必要处理过程。另外,根据实施方式的元数据处理器12007可以生成和/或处理与几何编码和/或属性编码相关的信令信息。可以与几何编码和/或属性编码分开地对根据实施方式的信令信息进行编码。可以对根据实施方式的信令信息进行交织。
[0243]
颜色变换处理器12008、属性变换处理器12009、lod/提升/raht变换处理器12010和算术编码器12011执行属性编码。根据实施方式的属性编码与参考图1至图9描述的属性编码相同或类似,因此省略对其的详细描述。
[0244]
根据实施方式的颜色变换处理器12008执行颜色变换编码,以变换属性中包括的颜色值。颜色变换处理器12008可以基于重构的几何结构来执行颜色变换编码。重构的几何结构与参考图1至图9描述的相同。另外,它执行与参考图4描述的颜色变换单元40006的操作和/或方法相同或类似的操作和/或方法。省略对其的详细描述。
[0245]
根据实施方式的属性变换处理器12009执行属性变换,以基于重构的几何结构和/或未被执行几何编码的位置来变换属性。属性变换处理器12009执行与参考图4描述的属性变换单元40007的操作和/或方法相同或类似的操作和/或方法。省略对其的详细描述。根据实施方式的lod/提升/raht变换处理器12010可以通过raht编码、预测变换编码和提升变换编码中的任一种或其组合对变换后的属性进行编码。lod/提升/raht变换处理器12010执行与参考图4描述的raht单元40008、lod生成器40009和提升变换单元40010的操作相同或类似的操作中的至少一者。另外,预测变换编码、提升变换编码和raht变换编码与参考图1至图9描述的那些相同,因此省略对其的详细描述。
[0246]
根据实施方式的算术编码器12011可以基于算术编码对编码后的属性进行编码。算术编码器12011执行与算术编码器40012的操作和/或方法相同或类似的操作和/或方法。
[0247]
根据实施方式的发送处理器12012可以发送包含编码后的几何结构和/或编码后的属性和/或元数据(或元数据信息)的每个比特流,或发送配置有编码后的几何结构和/或编码后的属性和/或元数据的一个比特流。当根据实施方式的编码后的几何结构和/或编码
后的属性和/或元数据被配置成一个比特流时,该比特流可以包括一个或更多个子比特流。根据实施方式的比特流可以包含信令信息,该信令信息包括用于序列级信令的序列参数集(sps)、用于几何信息编码的信令的几何参数集(gps)、用于属性信息编码的信令的属性参数集(aps)以及用于图块级信令的图块参数集(tps或图块清单)和切片数据。切片数据可以包括关于一个或更多个切片的信息。根据实施方式的一个切片可以包括一个几何比特流geom00以及一个或更多个属性比特流attr00和attr10。根据实施方式的tps(或图块清单)可以包括关于一个或更多个图块的每个图块的信息(例如,关于边界框的高度/大小信息和坐标信息)。几何比特流可以包含头部和有效载荷。根据实施方式的几何比特流的头部可以包含gps中包括的参数集标识符(geom_parameter_set_id)、图块标识符(geom_tile_id)和切片标识符(geom_slice_id)以及关于有效载荷中包含的数据的信息。如上所述,根据实施方式的元数据处理器12007可以生成和/或处理信令信息,并将其发送到发送处理器12012。根据实施方式,用于执行几何编码的元件和用于执行属性编码的元件可以彼此共享数据/信息,如虚线所指示的。根据实施方式的发送处理器12012可以执行与发送器10003的操作和/或发送方法相同或类似的操作和/或发送方法。细节与参考图1和图2描述的细节相同,因此省略对其的描述。
[0248]
图13例示了根据实施方式的接收装置。
[0249]
图13中例示的接收装置是图1的接收装置10004(或图10和图11的点云视频解码器)的示例。图13中例示的接收装置可以执行与参考图1至图11描述的点云视频解码器的操作和方法相同或类似的操作和方法中的一个或更多个。
[0250]
根据实施方式的接收装置可以包括接收器13000、接收处理器13001、算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器(三角形重构、上采样、体素化)13004、逆量化处理器13005、元数据解析器13006、算术解码器13007、逆量化处理器13008、lod/提升/raht逆变换处理器13009、颜色逆变换处理器13010和/或渲染器13011。根据实施方式的用于解码的每个元件可以执行根据实施方式的用于编码的对应元件的操作的逆处理。
[0251]
根据实施方式的接收器13000接收点云数据。接收器13000可以执行与图1的接收器10005的操作和/或接收方法相同或类似的操作和/或接收方法。省略对其的详细描述。
[0252]
根据实施方式的接收处理器13001可以从接收到的数据获取几何比特流和/或属性比特流。接收处理器13001可以被包括在接收器13000中。
[0253]
算术解码器13002、基于占用代码的八叉树重构处理器13003、表面模型处理器13004和逆量化处理器13005可以执行几何解码。根据实施方式的几何解码与参考图1至图10描述的几何解码相同或类似,因此省略对其的详细描述。
[0254]
根据实施方式的算术解码器13002可以基于算术编码对几何比特流进行解码。算术解码器13002执行与算术解码器11000的操作和/或编码相同或类似的操作和/或编码。
[0255]
根据实施方式的基于占用代码的八叉树重构处理器13003可以通过从解码后的几何比特流(或作为解码结果而被取得的关于几何结构的信息)获取占用代码来重构八叉树。基于占用代码的八叉树重构处理器13003执行与八叉树合成器11001的操作和/或八叉树生成方法相同或相似的操作和/或方法。当应用trisoup几何编码时,根据实施方式的表面模型处理器13004可以基于表面模型方法来执行trisoup几何解码和相关的几何重构(例如,
三角形重构、上采样、体素化)。表面模型处理器13004执行与表面近似合成器11002和/或几何重构单元11003的操作相同或类似的操作。
[0256]
根据实施方式的逆量化处理器13005可以对解码后的几何结构进行逆量化。
[0257]
根据实施方式的元数据解析器13006可以解析接收到的点云数据中包含的元数据,例如,设定值。元数据解析器13006可以传递元数据以进行几何解码和/或属性解码。元数据与参考图12描述的元数据相同,因此省略对其的详细描述。
[0258]
算术解码器13007、逆量化处理器13008、预测/提升/raht逆变换处理器13009和颜色逆变换处理器13010执行属性解码。属性解码与参考图1至图10描述的属性解码相同或类似,因此省略对其的详细描述。
[0259]
根据实施方式的算术解码器13007可以通过算术编码对属性比特流进行解码。算术解码器13007可以基于重构的几何对属性比特流进行解码。算术解码器13007执行与算术解码器11005的操作和/或编码相同或类似的操作和/或编码。
[0260]
根据实施方式的逆量化处理器13008可以对解码后的属性比特流进行逆量化。逆量化处理器13008执行与逆量化单元11006的操作和/或逆量化方法相同或相似的操作和/或方法。
[0261]
根据实施方式的预测/提升/raht逆变换处理器13009可以处理重构的几何和逆量化后的属性。预测/提升/raht逆变换处理器13009执行与raht变换器11007、lod生成器11008和/或逆提升器11009的操作和/或解码相同或类似的操作和/或解码中的一个或更多个。根据实施方式的颜色逆变换处理器13010执行逆变换编码,以对解码后的属性中包括的颜色值(或纹理)进行逆变换。颜色逆变换处理器13010执行与逆颜色变换单元11010的操作和/或逆变换编码相同或类似的操作和/或逆变换编码。根据实施方式的渲染器13011可以渲染点云数据。
[0262]
图14示出了根据实施方式的可与用于发送和接收点云数据的方法/装置在工作时连接的示例性结构。
[0263]
图14的结构表示其中服务器17600、机器人17100、自动驾驶车辆17200、xr装置17300、智能电话17400、家用电器17500和/或头戴式显示器(hmd)17700中的至少一个连接到云网络17000的配置。机器人17100、自动驾驶车辆17200、xr装置17300、智能电话17400或家用电器17500被称为装置。另外,xr装置17300可以对应于根据实施方式的点云压缩数据(pcc)装置,或可以在工作时连接到pcc装置。
[0264]
云网络17000可以表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,可以使用3g网络、4g或长期演进(lte)网络或5g网络配置云网络17000。
[0265]
服务器17600可以通过云网络17000连接到机器人17100、自动驾驶车辆17200、xr装置17300、智能电话17400、家用电器17500和/或hmd 17700中的至少一个,并可以辅助连接的装置17100至17700的处理中的至少一部分。
[0266]
hmd 17700表示根据实施方式的xr装置和/或pcc装置的实现方式类型中的一种。根据实施方式的hmd型装置包括通信单元、控制单元、存储器、i/o单元、传感器单元和电源单元。
[0267]
下文中,将描述应用了上述技术的装置17100至17500的各种实施方式。根据上述实施方式,图14中例示的装置17100至17500可以在工作时连接/联接到点云数据发送装置
和接收器。
[0268]
《pcc xr》
[0269]
xr/pcc装置17300可以采用pcc技术和/或xr(ar vr)技术,并可以被实现为hmd、设置在车辆中的平视显示器(hud)、电视机、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、静止机器人或移动机器人。
[0270]
xr/pcc装置17300可以分析通过各种传感器或从外部装置获取的3d点云数据或图像数据,并生成关于3d点的位置数据和属性数据。由此,xr/pcc装置17300可以获取关于周围空间或真实对象的信息,并渲染和输出xr对象。例如,xr/pcc装置17300可以将包括关于识别到的对象的辅助信息的xr对象与识别到的对象匹配,并输出匹配的xr对象。
[0271]
《pcc 自动驾驶 xr》
[0272]
自动驾驶车辆17200可以通过应用pcc技术和xr技术被实现为移动机器人、车辆、无人驾驶飞行器等。
[0273]
应用xr/pcc技术的自动驾驶车辆17200可以表示设置有用于提供xr图像的装置的自动驾驶车辆或作为xr图像中的控制/交互目标的自动驾驶车辆。具体地,作为xr图像中的控制/交互目标的自动驾驶车辆17200可以与xr装置17300区分开,并可以在工作时连接到xr装置1730。
[0274]
具有用于提供xr/pcc图像的装置的自动驾驶车辆17200可以从包括相机的传感器获取传感器信息,并基于所获取的传感器信息输出生成的xr/pcc图像。例如,自动驾驶车辆17200可以具有hud并向其输出xr/pcc图像,由此向乘员提供与真实对象或屏幕上存在的对象相对应的xr/pcc对象。
[0275]
当xr/pcc对象被输出到hud时,可以输出xr/pcc对象的至少一部分以与乘员眼睛所指向的真实对象交叠。另一方面,当xr/pcc对象被输出到设置在自动驾驶车辆内部的显示器上时,可以输出xr/pcc对象的至少一部分以与屏幕上的对象交叠。例如,自动驾驶车辆17200可以输出与诸如道路、另一车辆、交通信号灯、交通标牌、两轮车、行人和建筑物这样的对象相对应的xr/pcc对象。
[0276]
根据实施方式的虚拟现实(vr)技术、增强现实(ar)技术、混合现实(mr)技术和/或点云压缩(pcc)技术适用于各种装置。
[0277]
换句话说,vr技术是只提供真实世界对象、背景等的cg图像的显示技术。另一方面,ar技术是指在真实对象的图像上示出虚拟创建的cg图像的技术。mr技术与上述ar技术的类似之处在于,待示出的虚拟对象与真实世界混合并结合。然而,mr技术与ar技术的不同之处在于,ar技术明确区分了真实对象与作为cg图像创建的虚拟对象,并使用虚拟对象作为真实对象的补充对象,而mr技术将虚拟对象视为与真实对象具有等同特性的对象。更具体地,mr技术应用的示例是全息图服务。
[0278]
最近,vr、ar和mr技术有时被称为扩展现实(xr)技术,而没有被明确彼此区分开。因此,本公开的实施方式适用于vr、ar、mr和xr技术中的任一种。基于pcc、v-pcc和g-pcc技术的编/解码适用于这种技术。
[0279]
根据实施方式的pcc方法/装置可以应用于提供自动驾驶服务的车辆。
[0280]
提供自动驾驶服务的车辆连接到pcc装置,以用于有线/无线通信。
[0281]
当根据实施方式的点云压缩数据(pcc)发送/接收装置连接到车辆以用于有线/无
线通信时,该装置可以接收/处理与可以和自动驾驶服务一起提供的ar/vr/pcc服务相关的内容数据并将其发送到车辆。在pcc发送/接收装置被安装在车辆上的情况下,pcc发送/接收装置可以根据通过用户接口装置输入的用户输入信号来接收/处理与ar/vr/pcc服务相关的内容数据,并将其提供给用户。根据实施方式的车辆或用户接口装置可以接收用户输入信号。根据实施方式的用户输入信号可以包括指示自动驾驶服务的信号。
[0282]
如上所述,点云数据可以由一组点组成,并且每个点可以具有几何信息和属性信息。几何信息是关于每个点的三维位置信息(xyz),并且属性信息是颜色(rgb、yuv等)和/或所述点的反射率值。
[0283]
点云数据的编码过程包括压缩几何信息并基于根据通过压缩而改变的位置信息获得的关于重构的几何(重构的几何=解码后的几何)的信息重构的几何信息来压缩属性信息。另外,点云数据的解码过程包括:接收编码后的几何比特流和属性比特流;解码几何信息;以及基于通过解码重构的几何信息来解码属性信息。根据实施方式,点云数据的编码过程可以由图1的点云视频编码器10002、图2的编码20001、图4的点云视频编码器、图12的点云视频编码器或图45的几何编码器51003和属性编码器51004执行。点云数据的解码过程可以由图1的点云视频解码器10006、图2的解码20003、图11的点云视频解码器、图13的点云视频解码器或图48的几何解码器61003和属性解码器61004执行。根据实施方式,下面描述的几何信息的编码可以由图45的几何编码器51003执行,并且属性信息的编码可以由图45的属性编码器51004执行。稍后将详细描述图45和图48。
[0284]
根据实施方式,几何编码器51003可以使用基于八叉树、基于四叉树(以下称为qt)或基于二叉树(以下称为bt)的压缩方法进行几何信息压缩。在本公开中,为简单起见,用于几何压缩的八叉树、四叉树或二叉树被称为几何树。也就是说,几何树可以是八叉树、四叉树或二叉树中的一者或更多者。
[0285]
根据实施方式,为了提高非对称分布的点的几何压缩效率,几何编码器51003可以基于四叉树(以下称为qt)或二叉树(以下称为bt)来压缩几何信息。
[0286]
也就是说,对于构成八叉树的8个节点位置,当点朝向一个平面或一个线段偏置分布时,可以通过另外使用qt或bt来减少用于几何压缩的比特的数目。
[0287]
图15是例示了根据实施方式的由非对称分布的点组成的点云数据的示例的图。
[0288]
根据实施方式,几何编码器51003可以基于ot、qt和bt中的一者或更多者来分割如图15所示的点云数据的边界框(其可以与下面的b可互换地使用)以压缩几何信息。
[0289]
图16是例示了基于3d空间中的ot对立方体进行分割的示例的图。
[0290]
在实施方式中,当点云数据的点均匀分布时,将立方体(即,3d立方体)等分组成八个立方体的基于ot的分割方法可以用于关于点云数据的几何信息的压缩。在该方法中,重复通过将8个节点当中的占用节点的每一侧划分成两半来将该节点划分成8个立方体的过程。每个节点是否被占用可以通过按顺序使用1比特来指示为0或1。也就是说,当立方体被划分成8个立方体时,可以使用8个比特来指示8个子节点是否被占用。例如,在图16中,当8个节点当中的节点0、3、4和5被占用时,相应节点的占用可以被指示为10011100。也就是说,当执行基于ot的分割方法时,针对8个子节点表达一个占用代码。换句话说,当基于ot对3d立方体进行分割时,生成8立方体节点,并且将占用代码表示为8比特代码。在实施方式中,8个立方体节点可以称为8个子节点。
[0291]
图17的(a)至图17的(c)是例示了基于3d空间中的qt分割立方体的示例的图。
[0292]
图18的(a)至图18的(c)是例示了基于3d空间中的bt分割立方体的示例的图。
[0293]
在实施方式中,当点云数据的点分布不均匀时,可以通过根据点分布的特性使用qt和/或bt来减少用于指示占用的比特的数目。
[0294]
根据实施方式,在qt的情况下,可以沿着x-y轴、y-z轴或x-z轴分割3d立方体,如图17的(a)至图17的(c)所示。因此,当基于qt分割3d立方体时,生成四个长方体节点,并且将占用代码表示为4比特代码。在这种情况下,可以将占用代码从用于基于八叉树的分割的占用代码减少4个比特。在实施方式中,4个长方体节点可以称为4个子节点。也就是说,一个父节点可以具有4个子节点。例如,当3d立方体基于qt沿着x-y轴分割并且四个节点当中的节点0和节点6被占用时,每个节点的占用可以由1001指示,同时指示分割是基于x-y方向上的qt的。
[0295]
根据实施方式,在bt的情况下,可以沿着x轴、y轴或z轴分割3d立方体,如图18的(a)至图18的(c)所示。因此,当基于bt分割3d立方体时,生成两个长方体节点,并且将占用代码表示为2比特码。在这种情况下,可以将占用代码从用于基于ot分割的占用代码减少6个比特。在实施方式中,两个长方体节点可以称为两个子节点。也就是说,一个父节点可以具有两个子节点。
[0296]
根据实施方式,可以根据参数k和m来确定点云数据的ot、qt和bt的顺序。
[0297]
根据实施方式,参数k可以表示在开始分割3d边界框时执行qtbt的次数,并且参数m可以表示紧接在分割叶节点层次之前执行的ot的数目。
[0298]
根据实施方式,对于具有尺寸为2
dx
、2
dy
和2
dz
的边界框的点云,参数k可以具有在从0到max(dx,dy,dz)-min(dx,dy,dz)的如下范围内的值。参数m可以具有在从0到min(dx,dy,dz)的如下范围内的值。
[0299]
k(0≤k≤max(dx,dy,dz)-min(dx,dy,dz))
[0300]
也就是说,参数k表示ot之前的qt和bt的最大数目(ot之前的qt和bt的最大次数)。
[0301]
m(0≤m≤min(dx,dy,dz))
[0302]
也就是说,参数m表示qt和bt的最小大小。当x轴尺寸(dx)、y轴尺寸(dy)和z轴尺寸(dz)小于或等于m时,可以不执行qt和bt(如果dx、dy、dz≤m,则不执行qt和bt)。
[0303]
另外,当x轴尺寸(dx)、y轴尺寸(dy)和z轴尺寸(dz)彼此不同时(当dx≠dy≠dz时),在qt之前执行bt。m=0意味着紧接在分割叶节点层次之前执行至少0次或更多次ot。例如,当m=0时,ot可以不紧接在分割叶节点层次之前执行,但是ot可以执行预定次数,诸如一次或两次。
[0304]
这里,min()、med()和max()是用于找到最小值、中值和最大值的函数,并且dx、dy和dz是针对特定深度的子节点的xyz轴中的每一者的大小的log2值。
[0305]
根据实施方式,ot/qt/bt的次数可以根据如下所述的边界框的大小来确定。
[0306]
n(ot)=min(dx,dy,dz)
[0307]
n(qt)=med(dx,dy,dz)-min(dx,dy,dz)
[0308]
n(bt)=max(dx,dy,dz)-med(dx,dy,dz)
[0309]
例如,当执行基于qt/bt的分割时,分割的执行总数是n(ot) n(qt) n(bt)=max(dx,dy,dz),其等于基于ot的分割的执行总数max(dx,dy,dz)。ot/qt/bt的顺序由参数k和m
确定。
[0310]
图19的(a)和图19的(b)示出了在2d空间中分割边界框的示例。在图19的(a)和图19的(b)中,x标记指示在边界框中存在点的位置。
[0311]
图19的(a)示出了仅基于qt在2d空间中的16
×
4边界框中分布的点云数据的分割顺序的示例,并且图19的(b)示出了基于qt和bt在2d空间中的16
×
4边界框中分布的点云数据的分割顺序的示例。
[0312]
图19的(a)和图19的(b)的示例可以根据ot、qt和bt的使用而推广到3d空间中的分割顺序。在这种情况下,qt在3d空间中变成ot,并且bt在3d空间中变成qt或bt。
[0313]
在图19的(a)和图19的(b)的示例中,分割被执行四次,直到1
×
1叶节点。
[0314]
当仅基于qt(3d空间中的ot)执行分割时,如图19的(a)所示,执行分割,假设16
×
4大小的边界框具有16
×
16的大小。在图中,分割前进到右侧,并且在每个阶段,被占用的节点根据qt(3d空间中的ot)被实线或虚线划分。每个阶段的单元节点大小可以表示为16
×
4、8
×
8、4
×
4、2
×
2或1
×
1。也就是说,在图19的(a)中,每个阶段的边界框中的虚线或实线指示当基于qt执行分割时每个深度处的节点。
[0315]
当如图19的(b)所示基于qt(3d空间中的ot)和bt(3d空间中的qt)的组合来执行分割时,可以使用16
×
4的非对称边界框,可以执行qt两次,并且可以执行bt两次直到到达1
×
1叶节点。作为示例,在图19的(b)的情况下,参数k和m被设置为k=0并且m=0,并且根据qt、qt、bt和bt以这种顺序进行分割。在这种情况下,相应阶段的单元节点大小可以表示为16
×
4、8
×
2、4
×
1、2
×
1和1
×
1。
[0316]
属性信息的压缩可以由属性编码器51004基于细节层次(lod)执行。在这种情况下,属性编码器51004可以使用各种方法生成lod。在实施方式中,属性编码器51004可以基于八叉树生成lod。
[0317]
根据实施方式,lod指示点云数据(或点云内容)的细节程度。lod值的减小意味着点云内容的细节的降级,并且lod值的增加意味着点云内容的细节的增强。也就是说,lod被配置为使得点的密度随着lod上升而增加。由几何编码器51003重构的几何的点(也就是说,重构位置)可以由属性编码器51004根据lod进行分类。
[0318]
在实施方式中,当使用预测变换编码技术和提升变换编码技术时,可以通过将点划分为lod来对点进行分组。
[0319]
该操作可以称为lod生成过程,并且具有不同lod的组可以称为集合lod
l
。这里,l表示lod,并且是从0开始的整数。点云内容的细节在lod0中是最低的,并且点云内容的细节随着l的增加而增加。
[0320]
图20是例示了根据实施方式的由属性编码器51004基于八叉树生成lod的示例的图。在图20中,点可以是所捕获的点云的点,或者由几何编码器51003重构的几何点。
[0321]
根据实施方式,当基于八叉树生成lod时,八叉树的每个深度层次可以与每个lod匹配,如图20所示。也就是说,在基于八叉树的lod生成方法中,基于以下原理生成lod:随着八叉树结构中的深度层次(在从根到叶的方向上)增加,表示点云数据的细节增加。根据实施方式,基于八叉树的lod配置可以从根节点前进到叶节点,或者从叶节点前进到根节点。
[0322]
在该示例中,示出了基于莫顿码顺序来布置每个深度层次处的点,并且选择子节点当中的第一节点作为父节点的参考或保留节点。附图标记50001表示属于lod n-x的点的
示例。换句话说,属于lod n-x的点对应于对应深度层次处的占用节点的数目。
[0323]
图21是例示了根据实施方式的3d立方体中的莫顿码顺序的示例的图。
[0324]
也就是说,基于每个点的x、y和z位置值生成点云中的每个点的莫顿码。一旦通过该过程生成了点云中的点的莫顿码,就可以按莫顿码的顺序对点云中的点进行排序。根据实施方式,可以以莫顿码的升序对点云中的点进行排序。以莫顿码的升序排序的点的顺序可以称为莫顿顺序。
[0325]
根据实施方式,当属性编码器51004基于如上所述的八叉树生成lod时,可以支持空间可缩放性。利用空间可缩放性,当源点云是密集的时,可以将较低分辨率点云作为具有较小解码器复杂性和/或具有较小带宽的缩略图来访问。通过在几何编码/解码中调整八叉树的深度层次,可以通过对占用比特进行编码或解码直到所选择的深度层次的过程来提供几何的空间可缩放性功能。而且,在属性编码/解码中,属性的空间可缩放性功能可以通过从八叉树的所选择的深度层次生成lod并配置属性将被编码/解码的点的过程来提供。
[0326]
也就是说,在可缩放属性编码中,分辨率可以根据基于八叉树的几何编码的深度而增加。换句话说,随着八叉树被分割,细节增加。在这种情况下,可以通过在每一深度(或深度层次)处将属性与占用节点匹配而启用可缩放表示。为此,在可缩放属性编码的过程中,执行基于八叉树的lod生成,并且根据单元节点而不是根据距离来执行选择。在这种情况下,可以将具有与父节点相同的节点的子节点定义为邻居(或邻居搜索范围),并且可以在邻居节点(或点)内选择一个属性并将其与父节点匹配。例如,可以选择8个子节点当中的第一子节点的属性作为父节点的属性。
[0327]
图22是例示了根据实施方式的根据针对2d平面中的节点(或点)的lod生成的属性选择过程的示例的图。
[0328]
在图22中,x标记指示点存在于大小为16
×
4的边界框中的位置。在每个阶段的边界框中的虚线或实线表示根据在每个阶段的基于qt分割的每个深度处的节点。也就是说,在图22中,分割前进到右侧,并且在每个阶段的单元节点大小可以表示为16
×
4、8
×
8、4
×
4、2
×
2或1
×
1。
[0329]
当基于用于如图22所示的分割的树结构执行lod生成时,操作可以从叶前进到根,或者可以根据需要从根前进到叶。所生成的lod可以被配置为使得lod在从根到叶的方向上增加。另外,每个阶段处的圆圈可以表示构成每个lod的点,并且max lod(例如,lod4)可以包含所有点。作为另一示例,在图22中,当基于构成lod3的点生成lod2时,构成lod2的点的数目是4,因为该深度层次处的占用节点的数目是4。
[0330]
如上文所描述的,当使用基于八叉树的几何压缩方法时,通过配置对应于八叉树层结构的属性来支持可缩放编码。在这种情况下,在几何信息树的深度处使用的单元节点的宽度、深度和高度的比率是相同的。而且,在特定八叉树深度处包括的几何信息和属性信息以一对一的对应方式彼此匹配。换句话说,一旦几何编码器51003执行基于八叉树的几何压缩并且属性编码器51004基于八叉树生成lod并执行属性压缩,则几何的点的数目与属性的点的数目相同。因此,当部分八叉树解码后的点云被提供给接收侧上的属性解码器61004时,属性解码器61004可以从所提供的深度层次准确地执行可缩放属性解码。
[0331]
图23是例示了根据实施方式的由属性编码器51004根据针对2d平面中的节点(或点)的lod生成的属性选择过程的另一示例的图。
[0332]
在图23中,x标记指示点存在于大小为16
×
4的边界框中的位置。每个阶段处的边界框中的虚线或实线表示根据每个阶段处的基于qt或基于bt的分割的每个深度处的节点。也就是说,图23示出了k=1和m=1并且分割根据bt、qt、bt和qt以这种顺序进行到右侧的情况。换句话说,当基于参数k=1并且m=1执行基于bt的分割时,基于bt执行初始分割,并且基于叶节点生成中的qt执行分割。因此,根据bt、qt、bt和qt以这种顺序分割边界框。在这种情况下,该阶段的单元节点大小可以表示为16
×
4、8
×
4、4
×
2、2
×
2或1
×
1。
[0333]
即使当基于用于如图23所示的分割的几何树结构执行lod生成时,lod生成也可以从叶前进到根,或者可以根据需要从根前进到叶。此外,所生成的lod可以被配置为使得lod在从根到叶的方向上增加。在这种情况下,lod可以配置有在每个阶段的节点的代表性点。作为示例,每个阶段处的圆圈可以表示构成每个lod的点,并且max lod(例如,lod 4)可以包含所有点。作为另一示例,在图23中,当基于构成lod3的点生成lod2时,构成lod2的点的数目是5,因为该深度层次处的占用节点的数目是5。
[0334]
当bt(3d空间中的bt或qt)用于如图23所示的几何编码时,lod可以被配置在具有与上述图22的示例中的点的数目不同的数目的点的特定深度层次处。这是因为可以根据lod生成中的邻居搜索范围的设置来改变所选择的点。例如,在八叉树结构中,邻居搜索范围(即,子节点的数目)可以是8。在四叉树结构中,邻居搜索范围可以是4。在二叉树结构中,邻居搜索范围可以是2。
[0335]
根据实施方式,在如图22所示的基于qt的lod配置的情况下,属于lod2的点的数目可以是4。另一方面,在如图23所示的基于qtbt的lod配置的情况下,属于lod2的点的数目可以是5。因此,当几何编码器51003通过基于ot/qt/bt生成几何树来压缩几何信息但是属性编码器51004基于ot配置lod时,可以在特定深度(例如,lod2)处在几何与属性之间发生点的失配。换句话说,当使用lod2执行可缩放呈现时,几何中的点的数目可以不同于针对lod配置的属性中的点的数目。因此,错误的属性可以与几何匹配,或者可以存在具有失配的属性的点。
[0336]
因此,当ot/qt/bt用于分割边界框以考虑几何信息的压缩中的非对称点分布时,在几何树的每个深度中使用的单元节点可以具有不同的宽度、深度和高度的比率。例如,在图23中,根据2d平面的相应阶段处的单元节点是16
×
4、8
×
4、4
×
2、2
×
2和1
×
1。在这种情况下,当在可缩放属性编码中不考虑几何编码的层结构时,由于任何可缩放层的几何信息与属性信息之间缺乏一对一匹配,可缩放点云表示可能是不准确的。换句话说,当几何编码器51003通过基于ot/qt/bt生成几何树来压缩几何信息并且属性编码器51004通过基于ot生成lod来压缩属性信息时,用于几何的点的数目可以不同于用于属性的点的数目。在这种情况下,对应深度处的可缩放点云表示可能是不准确的。
[0337]
为了解决该差异问题,可以在可扩展点云编码中使用非对称邻居节点来配置基于lod的可缩放层。由此,可以增加具有非对称点分布的内容的属性压缩效率。换句话说,在几何编码器51003通过基于ot/qt/bt生成几何树来执行几何压缩的情况下,属性编码器51004通过基于ot/qt/bt生成lod来执行属性压缩。因此,在每个深度处,几何的点的数目与属性的点的数目一致。
[0338]
本公开提供了用于可缩放点云编码的方法当中的基于非对称节点分割的压缩方法。当使用基于ot/qt/bt的几何压缩方法时,本公开中描述的基于非对称节点分割的压缩
方法可以用作可缩放属性压缩方法。本公开中提出的方法不仅可以用于可缩放点云编码,还可以用作用于在低延迟环境中自适应地提供点云服务的方法。另外,本公开中提出的基于预测的属性压缩方法可以独立于几何压缩方法而使用,并且可以用于基于本公开中提出的方法的几何压缩以及属性压缩。本公开中提出的lod生成方法不仅可以用于可缩放编码应用领域,还可以用于一般点云压缩。
[0339]
接下来,将对考虑非对称点分布的可缩放属性编码方法进行描述,包括考虑长方体节点的lod生成方法和当使用基于ot/qt/bt的几何压缩时根据层考虑节点变化的属性编码方法,或者对用于使用基于ot的可扩展属性压缩的约束和信令进行描述。
[0340]
实施方式1
[0341]
当通过基于ot/qt/bt生成几何树来执行几何编码时,可以在几何树的每个深度处使用非对称(或长方体)节点。在这种情况下,当考虑可缩放编码时,在几何树中逐深度地支持可缩放性。实施方式1是通过根据几何树结构生成lod来执行的属性编码的示例。在本公开的实施方式中,考虑用于可缩放编码的几何树的非对称节点来生成lod。
[0342]
根据实施方式,首先,为了考虑在特定方向上分布的点的分布特性,作为示例,基于非立方体节点来执行邻居搜索。根据实施方式,当每个深度处的节点的尺寸是在几何编码中使用的几何树结构中的2
dx
、2
dy
和2
dz
时,dx、dy和dz可以具有不同的值。然而,在实施方式中,当(k)被假定为第k深度时,可以建立dx(k)》=dx(k 1)、dy(k)》=dy(k 1)和dz(k)》=dz(k 1)的关系。作为示例,在基于八叉树的lod生成中,可以基于立方体节点来执行邻居搜索。在这种情况下,仅考虑dx=dy=dz的情况。
[0343]
另外,可以配置用于针对在对应深度处给出的邻居搜索范围选择lod的点的准则。在深度处给出的邻居搜索范围取决于操作是基于ot、qt还是bt。例如,基于ot的操作的邻居搜索范围(即,子节点的数目)可以是8。基于qt的操作的邻居搜索范围可以是4。基于bt的操作的邻居搜索范围可以是2。在实施方式中,可以在邻居搜索范围内选择根据莫顿码顺序的顺序排序的第一个点(即,根据莫顿码顺序的顺序排序的占用节点当中的第一个占用节点)。在另一实施方式中,可以根据深度选择不同位置处的点。例如,当针对第k lod选择根据邻居搜索范围内的莫顿码顺序排序的点当中的第一个点时,可以针对第k-1lod选择根据邻居搜索范围内的莫顿码顺序排序的点当中的最后一个点。在另一实施方式中,可以选择位于距节点中心一近距离处的点。在实施方式中,用于标识在深度处使用的点选择方法的信息(例如,lod_sampling_method)可以通过信令信息来用信号通知。信令信息可以至少是属性参数集或属性切片头。在本公开中,为简单起见,用于标识深度处使用的点选择方法的信息(例如,lod_sampling_method)可以称为用于标识lod采样方法的信息。
[0344]
图24的(a)和图24的(b)是例示了基于用于分割分布在2d平面中的点云数据的几何树结构的每个深度的lod生成的示例的图。
[0345]
图24的(a)和图24的(b)例示了当几何编码器51003执行几何编码并且基于被设置为k=0和m=0的参数根据qt、qt、bt和bt以这种顺序来配置几何树时qt/bt被用于分割边界框的示例。根据实施方式,属性编码器51004可以基于具有图24的非正方形节点的几何树结构执行lod生成。在这种情况下,可以考虑几何树的每个深度处的非对称节点来生成lod。例如,当lod4被假定为max lod时,lod4包含边界框的所有点。另外,对于较低lod(小编号的lod)配置,可以在构成较高lod(大编号的lod)的点当中按具有较低lod所对应的深度的单
元节点大小的节点单元配置邻居,并且可以从被配置为邻居的点当中选择特定点。由此,可以配置较低的lod。在图24中,相应深度处的单元节点大小可以表示为16
×
4、8
×
2、4
×
1、2
×
1和1
×
1。例如,lod3可以通过在构成lod4的点当中按具有2
×
1的大小的节点(bt)单元配置邻居(邻居搜索范围)并且在被配置为邻居的点当中选择特定点来配置lod3。lod2可以通过在构成lod3的点当中按具有4
×
1的大小的节点(bt)单元配置邻居并且在被配置为邻居的点当中选择特定点来配置。lod1可以通过在构成lod2的点当中按具有8
×
2的大小的节点(qt)单元配置邻居并且在被配置为邻居的点当中选择特定点来配置。lod0可以通过将lod1中包含的四个点配置为邻居并且从被配置为邻居的四个点当中选择特定点来配置。
[0346]
图24的(a)例示了在针对每个深度的点选择过程中在莫顿码方面选择第一个点的示例。也就是说,对于lod3到lod0,在从被配置为邻居的点当中选择特定点时,从根据莫顿码顺序排序的邻居点选择第一个点。
[0347]
图24的(b)例示了在点选择过程中根据深度在莫顿码方面选择第一个点或最后一个点的示例。更具体地,该图例示了在点选择过程中的连续深度处在莫顿码方面交替地选择第一位置和最后位置处的点的示例。换句话说,对于lod3,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择第一个点。对于lod2,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择最后一个点。对于lod1,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择第一个点。对于lod0,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择最后一个点。
[0348]
与图24的(a)相比,图24的(b)中的点分布可以被配置为使得较低lod的点更接近于节点的中心。图24的(a)中的点50003和50005是对应深度处的基于莫顿码选择的第一个点,并且图24的(b)中的点50007和50009是对应深度处的基于莫顿码选择的最后一个点。
[0349]
图25的(a)和图25的(b)是例示了基于用于对分布在2d平面上的点云数据进行分割的几何树结构的每个深度的lod生成的其它示例的图。
[0350]
图25的(a)和图25的(b)例示了当几何编码器51003执行几何编码并且基于被设置为k=1和m=0的参数根据bt、qt、qt和bt以这种顺序来配置几何树时qt/bt被用于分割边界框的示例。根据实施方式,属性编码器51004可以基于具有图25的非正方形节点的几何树结构执行lod生成。在这种情况下,可以考虑几何树的每个深度处的非对称节点来生成lod。例如,当lod4被假定为max lod时,lod4包含边界框的所有点。另外,对于较低lod(小编号的lod)配置,可以在构成较高lod(大编号的lod)的点当中按具有较低lod所对应的深度的单元节点大小的节点单元配置邻居,并且可以从被配置为邻居的点当中选择特定点。由此,可以配置较低的lod。在图25中,相应深度处的单元节点大小可以表示为16
×
4、8
×
4、4
×
2、2
×
1和1
×
1。例如,lod3可以通过在构成lod4的点当中按具有2
×
1的大小的节点(bt)单元配置邻居(邻居搜索范围)并且在被配置为邻居的点当中选择特定点来配置lod3。lod2可以通过在构成lod3的点当中按具有4
×
2的大小的节点(qt)单元配置邻居并且在被配置为邻居的点当中选择特定点来配置。lod1可以通过在构成lod2的点当中按具有8
×
4的大小的节点(qt)单元配置邻居并且在被配置为邻居的点当中选择特定点来配置。lod0可以通过将lod1中包含的两个点配置为邻居并且从被配置为邻居的两个点当中选择特定点来配置。
[0351]
图25的(a)例示了在针对每个深度的点选择过程中在莫顿码方面选择第一个点的示例。也就是说,对于lod3到lod0,在从被配置为邻居的点当中选择特定点时,从根据莫顿
码顺序排序的邻居点选择第一个点。
[0352]
图25的(b)例示了在点选择过程中根据深度在莫顿码方面选择第一个点或最后一个点的示例。更具体地,该图例示了在点选择过程中的连续深度处在莫顿码方面交替地选择第一位置和最后位置处的点的示例。换句话说,对于lod3,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择第一个点。对于lod2,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择最后一个点。对于lod1,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择第一个点。对于lod0,可以从邻居搜索范围中的根据莫顿码顺序排序的点当中选择最后一个点。
[0353]
如在图24的(a)和图24的(b)的情况下,可以看出,与图25的(a)相比,图25的(b)中的点分布可以被配置为使得较低lod的点更靠近节点的中心。
[0354]
实施方式2
[0355]
当通过基于ot/qt/bt生成几何树来执行几何编码时,可以在几何树的每个深度处使用非对称(或长方体)节点。在这种情况下,当考虑可缩放编码时,在几何树中逐深度地支持可缩放性。实施方式2是添加约束以考虑几何编码中基于八叉树的lod生成的特性的示例。也就是说,当针对来自叶层次的某一深度范围确保立方体节点时(即,当单元节点的大小在xyz方向上相同时),可以通过允许属性编码器51004执行基于八叉树的lod生成来针对对应深度范围确保可缩放性。为此,在本公开中,属性压缩可以被限制为仅使用当靠近叶节点的深度是对称节点时生成的lod来执行。
[0356]
图26是例示了用于对分布在2d平面中的点云数据进行分割的几何树结构中的某些深度处的lod生成的示例的图。图26例示了当几何编码器51003执行几何编码并且基于被设置为k=1和m=1的参数根据bt、qt、bt和qt以这种顺序配置几何树时qt/bt被用于分割边界框的示例。在图26中,假设包括叶层次的两个深度层次具有立方体节点。在这种情况下,作为实施方式,属性编码器51004可以仅在包括叶层次的两个连续深度层次处生成lod。
[0357]
图27是例示了对分布在2d平面中的点云数据进行分割的几何树结构的某些深度中的lod生成的另一示例的图。图27例示了当几何编码器51003执行几何编码并且基于被设置为k=2和m=0的参数根据bt、qt、bt和qt以这种顺序配置几何树时qt/bt被用于分割边界框的示例。在图27中,假设包括叶层次的三个深度层次具有立方体节点。在这种情况下,作为实施方式,属性编码器51004可以仅在包括叶层次的三个连续深度层次处生成lod。
[0358]
在本公开中,通过施加如下限制可以在可缩放呈现中防止几何与属性之间的点失配:应该仅针对与用于几何压缩的几何结构中的基于qt(3d空间中的ot)的lod生成方法匹配的深度生成lod。
[0359]
在实施方式中,可以通过信令信息用信号通知指示lod的最大数目的信息(例如,max_num_lod)和/或lod起始深度信息(例如,lod_starting_depth)。信令信息可以至少是属性参数集或属性切片头。
[0360]
换句话说,可以通过用信号通知指示lod的最大数目的信息(例如,max_num_lod)向接收装置的属性解码器61004通知可缩放编码中使用的lod的数目,或者可以通过用信号通知lod起始深度信息(例如,lod_starting_depth)向接收装置的属性解码器61004通知lod0开始的位置。根据实施方式,lod起始深度信息(例如,lod_starting_depth)可以指示可以与基于八叉树的lod生成匹配的最大lod深度。也就是说,它可以指示来自叶层次的深
度的数目。作为示例,在图26中,由lod起始深度信息(例如,lod_starting_depth)指示的深度的数目为2,其是对应于lod0的深度。作为示例,在图27中,从叶层次开始匹配基于八叉树的lod生成的深度的数目可以是3,其是对应于lod0的深度。
[0361]
根据实施方式,指示lod的最大数目的信息(例如,max_num_lod)和lod起始深度信息(例如,lod_starting_depth)可以具有以下值。
[0362]
max_num_lod=max_dimension-min_dimension-m
[0363]
lod_starting_depth=max_dimension-m
[0364]
另外,可以添加当几何编码由几何编码器51003执行时k m=max_dimension-min_dimension应成立的约束。
[0365]
根据实施方式,max_dimension表示max(dx,dy,dz),min_dimension表示min(dx,dy,dz)。
[0366]
实施方式3
[0367]
当通过基于ot/qt/bt生成几何树来执行几何编码时,可以在几何树的每个深度处使用非对称(或长方体)节点。当考虑可缩放编码时,在几何树中逐深度地支持可缩放性。实施方式3是如下示例,其中在几何树的几何与属性之间的点失配发生的深度处跳过lod生成,或者在所述深度处生成的lod不在属性压缩中使用,并且指示跳过的信息(例如,lod_skip_flag)是通过信令信息来用信号通知的。信令信息可以至少是属性参数集或属性切片头。
[0368]
在一个实施方式中,可以跳过生成对应于几何树的发生几何与属性之间的点失配的深度的lod,并且指示跳过的lod跳过信息(例如,lod_skip_flag)可以用信号通知并通知给接收装置的属性解码器61004。在这种情况下,在实施方式中,在考虑每个深度的非对称节点的情况下,可以在除发生失配的几何的深度之外的其余深度处生成lod。例如,等于1的lod跳过信息(例如,lod_skip_flag)可以指示几何树的深度处的几何与属性之间的点失配,和/或已在该深度处跳过lod生成。等于0的lod跳过信息(例如,lod_skip_flag)可以指示所述点在所述深度处在几何与属性之间匹配,和/或已在所述深度处生成lod。
[0369]
在另一实施方式中,在几何树的深度(其中发生几何与属性之间的点失配)处生成的lod可以不用于属性压缩,并且指示跳过的lod跳过信息(例如,lod_skip_flag)可以用信号通知并被通知给接收装置的属性解码器61004。在这种情况下,在实施方式中,在考虑每个深度的非对称节点的情况下,可以使用在除了经历失配的几何的深度外的其余深度处生成的lod执行属性压缩。例如,等于1的lod跳过信息(例如,lod_skip_flag)可以指示几何树的深度处的几何与属性之间的点失配,和/或在所述深度处生成的lod不用于属性压缩。等于0的lod跳过信息(例如,lod_skip_flag)可以指示点在所述深度处在几何与属性之间匹配,和/或在所述深度处生成的lod用于属性压缩。
[0370]
也就是说,当lod跳过信息(例如,lod_skip_flag)的值为1时,对应于该深度的lod可以不用于属性压缩。另选地,lod可以针对深度定义,但是可以不用于可缩放呈现。
[0371]
根据实施方式,lod跳过信息(例如,lod_skip_flag)的设置可以符合以下条件。
[0372]
if dx_ot=dx&dy_ot=dy&dz_ot=dz lod_skip_flag=0
[0373]
else lod_skip_flag=1
[0374]
这里,dx_ot、dy_ot和dz_ot可以表示边界框中的xyz轴节点大小,其中,当使用基
于ot的分割时,点实际上是分布的,并且dx、dy和dz可以表示当使用基于qtbt的分割时的xyz轴节点大小。
[0375]
换句话说,仅在使用基于ot的分割时的x轴节点大小(dx_ot)与使用基于qtbt的分割时的边界框中的x轴节点大小(dx)相同、使用基于ot的分割时的y轴节点大小(dy_ot)与使用基于qtbt的分割时的y轴节点大小(dy)相同并且使用基于ot的分割时的z轴节点大小(dz_ot)与使用基于otbt的分割时的z轴节点大小(dz)相同时,才可以将lod跳过信息(例如,lod_skip_flag)设置为0。此外,如果大小在xyz轴上的任一个上不是相同的,则lod跳过信息(例如,lod_skip_flag)可以被设置为1。
[0376]
换句话说,在跳过lod的情况下,通过可缩放编码提供分层结构,但lod在结构上不与几何匹配。因此,lod跳过信息(例如,lod_skip_flag)可以用于通知不适合输出(或使用)lod进行属性压缩。
[0377]
图28的(a)和图28的(b)是例示了根据以上描述的条件在用于对分布在2d平面中的点云数据进行分割的几何树结构中的某些深度处的lod跳过的设置的示例的图。图28的(a)和图28的(b)例示了当几何编码器51003执行几何编码并且基于被设置为k=1和m=1的参数根据bt、qt、bt和qt以这种顺序配置几何树时qt/bt用于分割边界框的示例。图28的(a)例示了基于根节点针对第三深度设置lod跳过的示例,并且图28的(b)例示了基于根节点针对三个深度设置lod跳过的示例。
[0378]
根据实施方式,在图28的(a)中,lod0和lod1表示一个长方体节点包含在立方体节点中的情况。在这种情况下,因为它们与几何匹配,所以可以设置不跳过lod。
[0379]
图29是例示了根据以上描述的条件在用于分割分布在2d平面中的点云数据的几何树结构中的某些深度处的lod跳过的设置的另一示例的图。图29例示了当几何编码器51003执行几何编码并且基于被设置为k=2和m=0的参数根据bt、bt、qt和qt以这种顺序配置几何树时qt/bt用于分割边界框的示例。在图29的示例中,针对两个深度设置lod跳过。
[0380]
图30是例示了基于用于分割分布在2d平面中的点云数据的几何树结构的每个深度的lod生成的另一示例的图。图30例示了当几何编码器51003执行几何编码并且基于被设置为k=2和m=0的参数根据bt、bt、qt和qt以这种顺序配置几何树时qt/bt用于分割边界框的示例。根据实施方式,属性编码器51004可以基于具有图30的非立方体节点的几何树结构来执行lod生成。
[0381]
根据实施方式,lod跳过信息(例如,lod_skip_flag)也可以应用于图30所示的几何树结构。也就是说,可以看出,图30的几何的每个深度具有与基于qt的lod生成方法中的节点大小相同的节点大小。因此,当属性编码器51004预先标识该特性时,可以用信号通知lod跳过信息(例如,lod_skip_flag),使得针对所有lod设置lod跳过信息(例如,lod_skip_flag)=0。
[0382]
根据实施方式,发送装置的几何编码器51003和/或属性编码器51004可以通过组合上述实施方式1至3中的一者或更多者来执行几何信息压缩和/或属性信息压缩或执行可缩放属性编码。另外,接收装置的几何解码器61003和/或属性解码器61004可以通过组合上述实施方式1至3中的一者或更多者来执行几何信息重构和/或属性信息重构或执行可缩放属性解码。
[0383]
接下来,将描述用于用信号通知与上述基于lod的属性压缩相关的信息的信令信
息、包括该信令信息的比特流结构。根据实施方式,与基于lod的属性压缩相关的信息可以包括用于标识lod采样方法的信息(例如,lod_sampling_method)、指示lod的最大数目的信息(例如,max_num_lod)、lod起始深度信息(例如,lod_starting_depth)或lod跳过信息(例如,lod_skip_flag)中的至少一者。与基于lod的属性压缩相关的信息可以称为与基于lod的属性编码相关的信息。
[0384]
根据配置,当几何信息由点云视频编码器编码时,作为结果生成几何比特流。当属性信息被编码时,作为结果生成属性比特流。根据实施方式的几何比特流和属性比特流可以作为一个比特流被复用并输出。根据实施方式的比特流还可以包括与几何编码和属性编码相关的信令信息。在实施方式中,信令信息可以包括与基于lod的属性压缩相关的信息。
[0385]
图31例示了根据实施方式的用于发送/接收的点云数据的比特流结构的示例。
[0386]
当根据实施方式的几何比特流、属性比特流和/或信令比特流(或信令信息)被配置为一个比特流(或g-pcc比特流)时,比特流可以包括一个或更多个子比特流。根据实施方式的比特流可以包括用于序列级信令的序列参数集(sps)、用于用几何信息编码的信令的几何参数集(gps)、用于属性信息编码的信令的一个或更多个属性参数集(aps)(aps0、aps1)、用于图块级信令的图块参数集(tps或图块清单)以及一个或更多个切片(切片0至切片n)。也就是说,根据实施方式的点云数据的比特流可以包括一个或更多个图块,并且每个图块可以是包括一个或更多个切片(切片0至切片n)的一组切片。根据实施方式的图片清单(或tps)可以包含关于一个或更多个图块中的每一个的信息(例如,关于图块边界框的坐标值信息和高度/大小信息)。每个切片可以包括一个几何比特流(geom0)以及一个或更多个属性比特流(attr0和attr1)。例如,第一切片(切片0)可以包括一个几何比特流(geom00)以及一个或更多个属性比特流(attr0、attr10)。
[0387]
每个切片中的几何比特流可以由几何切片头(geom_slice_header)和几何切片数据(geom_slice_data)构成。根据实施方式,geom_slice_header可以包括gps中所包括的参数集的标识信息(geom_parameter_set_id)、图块标识符(geom_tile_id)和切片标识符(geom_slice_id)以及关于几何切片数据(geom_slice_data)中所包含的数据的信息(geomboxorigin、geom_box_log2_scale、geom_max_node_size_log2、geom_num_points)。geomboxorigin是指示几何切片数据的框的原点的几何框原点信息,geom_box_log2_scale是指示几何切片数据的对数缩放(log scale)的信息,geom_max_node_size_log2是指示根几何八叉树节点大小的信息,并且geom_num_points是与几何切片数据的点的数目相关的信息。根据实施方式,geom_slice_data可以包括关于对应切片中的点云数据的几何信息(或几何数据)。
[0388]
每个切片中的每个属性比特流可以由属性切片头(attr_slice_header)和属性切片数据(attr_slice_data)构成。根据实施方式,attr_slice_header可以包括关于对应属性切片数据的信息。属性切片数据可以包含关于对应切片中的点云数据的属性信息(或属性数据)。当在一个切片中存在多个属性比特流时,每个比特流可以包含不同的属性信息。例如,一个属性比特流可以包含对应于颜色的属性信息,而另一属性流可以包含对应于反射率的属性信息。
[0389]
图32例示了根据实施方式的用于发送/接收的点云数据的示例性比特流结构。
[0390]
图33例示了根据实施方式的点云数据的比特流中的元素之间的连接关系。
[0391]
图32和图33中例示的点云数据的比特流结构可以表示图31中示出的点云数据的比特流结构。
[0392]
根据实施方式,sps可以包括用于标识sps的标识符(seq_parameter_set_id),并且gps可以包括用于标识gps的标识符(geom_parameter_set_id)和指示gps所属的活动sps的标识符(seq_parameter_set_id)。aps可以包括用于标识aps的标识符(attr_parameter_set_id)和指示aps所属的活动sps的标识符(seq_parameter_set_id)。根据实施方式,几何数据可以包括几何切片头和几何切片数据。几何切片头可以包括由对应的几何切片引用的活动gps的标识符(geom_parameter_set_id)。此外,几何切片头还可以包括用于标识对应几何切片的标识符(geom_slice_id)和/或用于标识对应图块的标识符(geom_tile_id)。几何切片数据可以包括属于对应切片的几何信息。根据实施方式,属性数据可以包括属性切片头和属性切片数据。属性切片头可以包括将由对应属性切片引用的活动aps的标识符(attr_parameter_set_id)和用于标识与属性切片相关的几何切片的标识符(geom_slice_id)。属性切片数据可以包括属于对应切片的属性比特流。
[0393]
也就是说,几何切片引用gps,gps引用sps。另外,sps列出可用的属性,为每个属性指派标识符,并标识解码方法。根据标识符,将属性切片映射到输出属性。属性切片取决于前面(解码后的)几何切片和aps。aps引用sps。
[0394]
根据实施方式,可以在点云数据的参数集和/或对应的切片头中新定义对点云数据进行编码所必需的参数。例如,当执行属性信息的编码时,可以在aps中添加参数。当执行基于图块的编码时,可以在图块和/或切片头中添加参数。
[0395]
如图31至图33所示,点云数据的比特流提供了图块或切片,使得点云数据可以按区域分割和处理。根据实施方式,比特流的相应区域可以具有不同的重要性。因此,当点云数据被分割为图块时,可以向各图块应用不同的滤波器(编码方法)和不同的滤波器单元。当点云数据被分割为切片时,可以向各切片应用不同的滤波器和不同的滤波器单元。
[0396]
当点云数据被分割和压缩时,根据实施方式的发送装置和接收装置可以以高级语法结构发送和接收比特流,以在分割区域中选择性发送属性信息。
[0397]
根据实施方式的发送装置可以根据图31至图33所示的比特流结构发送点云数据。因此,可以提供对重要区域应用不同的编码操作并使用良好质量的编码方法的方法。另外,可以根据点云数据的特性支持高效的编码和发送,并且可以根据用户要求提供属性值。
[0398]
根据实施方式的接收装置可以根据图31至图33所示的比特流结构接收点云数据。因此,可以向相应区域(分割为图块或切片的区域)应用不同的滤波(解码)方法,而非向整个点云数据应用复杂解码(滤波)方法。因此,向用户提供了重要区域中更好的图像质量,并且可以确保系统的适当等待时间。
[0399]
在稍后描述的本公开的语法中使用的术语的字段可以具有与参数或元素相同的含义。
[0400]
图34示出了根据本公开的序列参数集(sps)(seq_parameter_set())的语法结构的实施方式。sps可以含有关于点云数据比特流的序列信息。
[0401]
根据实施方式的sps可以包括main_profile_compatibility_flag字段、unique_point_positions_constraint_flag字段、level_idc字段、sps_seq_parameter_set_id字段、sps_bounding_box_present_flag字段、sps_source_scale_factor_numerator_minus1
字段、sps_source_scale_factor_denominator_minus1字段、sps_num_attribute_sets字段、log2_max_frame_idx字段、axis_coding_order字段、sps_bypass_stream_enabled_flag字段以及sps_extension_flag字段。
[0402]
main_profile_compatibility_flag字段可以指示比特流是否符合主配置文件。例如,等于1的main_profile_compatibility_flag可以指示比特流符合主配置文件。例如,等于0的main_profile_compatibility_flag可以指示比特流符合不同于主配置文件的配置文件。
[0403]
当unique_point_positions_constraint_flag等于1时,在当前sps引用的每个点云帧中,所有输出点可以具有唯一位置。当unique_point_positions_constraint_flag等于0时,在当前sps引用的任何点云帧中,两个或更多个输出点可以具有相同位置。例如,即使当所有点在相应切片中唯一时,帧中的切片和其它点也可以重叠。在这种情况下,将unique_point_positions_constraint_flag设置为0。
[0404]
level_idc指示比特流符合的层次。
[0405]
sps_seq_parameter_set_id提供由其它语法元素引用的sps的标识符。
[0406]
sps_bounding_box_present_flag字段指示边界框是否存在于sps中。例如,等于1的sps_bounding_box_present_flag指示边界框存在于sps中,并且等于0的sps_bounding_box_present_flag指示边界框的大小是未定义的。
[0407]
根据实施方式,当sps_bounding_box_present_flag等于1时,sps还可以包括sps_bounding_box_offset_x字段、sps_bounding_box_offset_y字段、sps_bounding_box_offset_z字段、sps_bounding_box_offset_log2_scale字段、sps_bounding_box_size_width字段、sps_bounding_box_size_height字段以及sps_bounding_box_size_depth字段。
[0408]
sps_bounding_box_offset_x指示笛卡尔坐标中的源边界框的x偏移。当不存在源边界框的x偏移时,sps_bounding_box_offset_x的值为0。
[0409]
sps_bounding_box_offset_y指示笛卡尔坐标中的源边界框的y偏移。当不存在源边界框的y偏移时,sps_bounding_box_offset_y的值为0。
[0410]
sps_bounding_box_offset_z指示笛卡尔坐标中的源边界框的z偏移。当不存在源边界框的z偏移时,sps_bounding_box_offset_z的值为0。
[0411]
sps_bounding_box_offset_log2_scale指示用于缩放经量化的x、y和z源边界框偏移的比例因子。
[0412]
sps_bounding_box_size_width指示笛卡尔坐标中的源边界框的宽度。当源边界框的宽度不存在时,sps_bounding_box_size_width的值可以为1。
[0413]
sps_bounding_box_size_height指示笛卡尔坐标中的源边界框的高度。当源边界框的高度不存在时,sps_bounding_box_size_height的值可以为1。
[0414]
sps_bounding_box_size_depth指示笛卡尔坐标中的源边界框的深度。当不存在源边界框的深度时,sps_bounding_box_size_depth的值可以为1。
[0415]
sps_source_scale_factor_numerator_minus1加1指示源点云的比例因子分子。
[0416]
sps_source_scale_factor_denominator_minus1加1指示源点云的比例因子分母。
[0417]
sps_num_attribute_sets指示比特流中的编码后的属性的数目。
[0418]
根据实施方式的sps包括迭代语句,其重复与sps_num_attribute_sets字段的值一样多的次数。在实施方式中,i被初始化为0,并且每次迭代语句被执行时递增1。重复所述迭代语句直到i的值变为等于sps_num_attitude_sets字段的值。迭代语句可以包括attribute_dimension_minus1[i]字段以及attribute_instance_id[i]字段。attribute_dimension_minus1[i]加1指示第i属性的分量的数目。
[0419]
attribute_instance_id[i]字段指定第i属性的实例id。
[0420]
根据实施方式,当attribute_dimension_minus1[i]字段的值大于1时,迭代语句还可以包括attribute_secondary_bitdepth_minus1[i]字段、attribute_cicp_colour_primaries[i]字段、attribute_cicp_transfer_characteristics[i]字段、attribute_cicp_matrix_coeffs[i]字段和attribute_cicp_video_full_range_flag[i]字段。
[0421]
attribute_secondary_bitdepth_minus1[i]加1指定第i属性信号的次级分量的比特深度。
[0422]
attribute_cicp_colour_primaries[i]指示第i属性的颜色属性源原色的色度坐标。
[0423]
attribute_cicp_transfer_characteristics[i]或者指示作为具有0到1的标称实值范围的源输入线性光强度的函数的颜色属性的参考光电传输特性函数,或者指示作为输出线性光强度的函数的参考电光转换特性函数的逆。
[0424]
attribute_cicp_matrix_coeffs[i]描述用于从第i属性的绿色、蓝色和红色或y、z和x原色推导亮度和色度信号的矩阵系数。
[0425]
attribute_cicp_video_full_range_flag[i]指定从第i属性的e'y、e'pb和e'pr或e'r、e'g和e'b实值分量信号推导的亮度和色度信号的黑色等级和范围。
[0426]
known_attribute_label_flag[i]字段指示针对第i属性用信号通知known_attribute_label[i]字段还是attribute_label_four_bytes[i]字段。例如,当known_attribute_label_flag[i]等于0时,这指示针对第i属性用信号通知known_attribute_label[i]字段。known_attribute_label_flag[i]等于1指示针对第i属性用信号通知attribute_label_four_bytes[i]字段。
[0427]
known_attribute_label[i]指定第i属性的类型。例如,等于0的known_attribute_label[i]可以指定第i属性是颜色。等于1的known_attribute_label[i]可以指定第i属性是反射率。等于2的known_attribute_label[i]可以指定第i属性是帧索引。而且,等于4的known_attribute_label[i]指定第i属性是透明度。等于5的known_attribute_label[i]指定第i属性是法线(normals)。
[0428]
attribute_label_four_bytes[i]指示具有4字节代码的已知属性类型。
[0429]
根据实施方式,等于0的attribute_label_four_bytes[i]可以指示第i属性是颜色。等于1的attribute_label_four_bytes[i]可以指示第i属性是反射率。等于2的attribute_label_four_bytes[i]可以指示第i属性是帧索引。等于4的attribute_label_four_bytes[i]可以指示第i属性是透明度。等于5的attribute_label_four_bytes[i]可以指示第i属性是法线。
[0430]
log2_max_frame_idx指示用以用信号通知语法变量frame_idx的比特的数目。
[0431]
axis_coding_order指定x、y和z输出轴标记与重构的点云recpic[pointidx][axis]中的三个位置分量之间的对应关系,其中轴=0
··
2。
[0432]
等于1的sps_bypass_stream_enabled_flag指定可以在读比特流时使用旁路编码模式。作为另一示例,等于0的sps_bypass_stream_enabled_flag指定在读比特流时不使用旁路编码模式。
[0433]
sps_extension_flag指示sps_extension_data语法结构是否存在于sps语法结构中。例如,等于1的sps_extension_present_flag指示sps_extension_data语法结构存在于sps语法结构中。sps_extension_present_flag等于0指示该语法结构不存在。
[0434]
当sps_extension_flag字段的值为1时,根据实施方式的sps还可以包括sps_extension_data_flag字段。
[0435]
sps_extension_data_flag可以具有任何值。
[0436]
图35示出了根据本公开的gps(geometry_parameter_set())的语法结构的实施方式。gps可以包括关于对包括在一个或更多个切片中的点云数据的几何信息进行编码的方法的信息。
[0437]
根据实施方式,gps可以包括gps_geom_parameter_set_id字段、gps_seq_parameter_set_id字段、gps_box_present_flag字段、unique_geometry_points_flag字段、geometry_planar_mode_flag字段、geometry_angular_mode_flag字段、neighbour_context_restriction_flag字段、inferred_direct_coding_mode_enabled_flag字段、bitwise_occupancy_coding_flag字段、adjacent_child_contextualization_enabled_flag字段、log2_neighbour_avail_boundary字段、log2_intra_pred_max_node_size字段、log2_trisoup_node_size字段、geom_scaling_enabled_flag字段、gps_implicit_geom_partition_flag字段以及gps_extension_flag字段。
[0438]
gps_geom_parameter_set_id字段提供由其它语法元素引用的gps的标识符。
[0439]
gps_seq_parameter_set_id字段指定针对活动sps的sps_seq_parameter_set_id的值。
[0440]
gps_box_present_flag字段指定是否在引用当前gps的几何切片头中提供附加边界框信息。例如,等于1的gps_box_present_flag字段可以指定在引用当前gps的几何切片头中提供附加边界框信息。因此,当gps_box_present_flag字段等于1时,gps还可以包括gps_gsh_box_log2_scale_present_flag字段。
[0441]
gps_gsh_box_log2_scale_present_flag字段指定是否在引用当前gps的每个几何切片头中用信号通知gps_gsh_box_log2_scale字段。例如,等于1的gps_gsh_box_log2_scale_present_flag字段可以指定在引用当前gps的每个几何切片头中用信号通知gps_gsh_box_log2_scale字段。作为另一示例,等于0的gps_gsh_box_log2_scale_present_flag字段可以指定在每个几何切片头中不用信号通知gps_gsh_box_log2_scale字段并且在当前gps的gps_gsh_box_log2_scale字段中用信号通知针对所有切片的公共缩放(common scale)。
[0442]
当gps_gsh_box_log2_scale_present_flag字段等于0时,gps还可以包括gps_gsh_box_log2_scale字段。
[0443]
gps_gsh_box_log2_scale字段指示针对引用当前gps的所有切片的边界框原点的
共同缩放因子。
[0444]
unique_geometry_points_flag指示所有输出点是否在当前引用gps的所有切片中的一个切片中具有唯一位置。例如,等于1的unique_geometry_points_flag指示在引用当前gps的所有切片中,所有输出点在切片内具有唯一位置。等于0的unique_geometry_points_flag字段指示在引用当前gps的所有切片中,输出点中的两个或更多个可以在切片内具有相同位置。
[0445]
geometry_planar_mode_flag字段指示是否激活平面编码模式。例如,等于1的geometry_planar_mode_flag指示平面编码模式是激活的。等于0的geometry_planar_mode_flag指示平面编码模式不是激活的。
[0446]
当geometry_planar_mode_flag字段的值为1(也就是说,“真”)时,gps还可以包括geom_planar_mode_th_idcm字段、geom_planar_mode_th[1]字段以及geom_planar_mode_th[2]字段。
[0447]
geom_planar_mode_th_idcm字段可以指定直接编码模式的激活阈值的值。
[0448]
geom_planar_mode_th[i]针对0

2的范围中的i指定针对平面编码模式沿着用于平面编码模式的第i最可能方向的激活的阈值的值是有效的。
[0449]
geometry_angular_mode_flag指示角度编码模式是否激活的。例如,等于1的geometry_angular_mode_flag字段可以指示角度编码模式是激活的。等于0的geometry_angular_mode_flag字段可以指示角度编码模式不是激活的。
[0450]
当geometry_angular_mode_flag字段的值是1(也就是说,真)时,gps还可以包括lidar_head_position[0]字段、lidar_head_position[1]字段、lidar_head_position[2]字段、number_lasers字段、planar_buffer_disabled字段、implicit_qtbt_angular_max_node_min_dim_log2_to_split_z字段以及implicit_qtbt_angular_max_diff_to_split_z field字段。
[0451]
lidar_head_position[0]字段、lidar_head_position[1]字段和lidar_head_position[2]字段可以指定具有内部轴的坐标系中的激光雷达头的(x,y,z)坐标。
[0452]
number_lasers指定用于角度编码模式的激光的数目。
[0453]
根据实施方式的gps包括迭代语句,该迭代语句被重复与number_lasers字段的值一样多的次数。在实施方式中,i被初始化为0,并且每次迭代语句被执行时递增1。重复迭代语句,直到i的值变得等于number_lasers字段的值。该迭代语句可以包括laser_angle[i]字段和laser_correction[i]字段。
[0454]
laser_angle[i]指定第i激光的仰角相对于由第0和第一内部轴限定的水平面的切线。
[0455]
laser_correction[i]指定沿着第二内部轴的相对于lidar_head_position[2]的第i激光位置的校正。
[0456]
等于1的planar_buffer_disabled指示利用缓冲器跟踪最近节点不用于在平面模式下编码平面模式标志和平面位置的过程中。等于0的planar_buffer_disabled指示使用利用缓冲器跟踪最近节点。
[0457]
implicit_qtbt_angular_max_node_min_dim_log2_to_split_z指定节点大小的log2值,低于所述节点大小的log2值,节点的水平拆分优于垂直拆分。
[0458]
implicit_qtbt_angular_max_diff_to_split_z指定针对节点允许的最大垂直与水平节点大小比率的log2值。
[0459]
等于0的neighbour_context_restriction_flag指示当前节点的几何节点占用是用从位于当前节点的父节点内部的相邻节点确定的上下文来编码的。等于1的neighbour_context_restriction_flag指示当前节点的几何节点占用是用从位于当前节点的父节点内部或外部的相邻节点确定的上下文来编码的。
[0460]
inferred_direct_coding_mode_enabled_flag字段指示direct_mode_flag字段是否存在于几何节点语法中。例如,等于1的inferred_direct_coding_mode_enabled_flag字段指示direct_mode_flag字段可以存在于几何节点语法中。例如,等于0的inferred_direct_coding_mode_enabled_flag字段指示direct_mode_flag字段不存在于几何节点语法中。
[0461]
bitwise_occupancy_coding_flag字段指示是否使用语法元素占用图的逐位上下文化对几何节点占用进行编码。例如,等于1的bitwise_occupancy_coding_flag字段指示几何节点占用是使用语法元素ocupancy_map的逐位上下文化来编码的。例如,等于0的bitwise_occupancy_coding_flag字段指示使用字典编码语法元素ocupancy_byte来编码几何节点占用。
[0462]
adjacent_child_contextualization_enabled_flag字段指示相邻八叉树节点的相邻子节点是否用于逐位占用上下文化。例如,等于1的adjacent_child_contextualization_enabled_flag字段指示相邻八叉树节点的相邻子节点用于逐位占用上下文化。例如,等于0的adjacent_child_contextualization_enabled_flag指示相邻八叉树节点的子节点不用于占用上下文化。log2_neighbour_avail_boundary字段指定在解码过程中使用的变量neighbavailboundary的值。
[0463]
例如,当neighbour_context_restriction_flag字段等于1时,可以将neighbavailabilitymask设置为等于1。例如,当neighbour_context_restriction_flag字段等于0时,neighbavailabilitymask可以被设置为等于1《《log2_neighbour_avail_boundary。
[0464]
log2_intra_pred_max_node_size字段指定有资格用于占用帧内预测的八叉树节点大小。
[0465]
log2_trisoup_node_size字段将变量trisoupnodesize指定为三角形节点的大小。
[0466]
geom_scaling_enabled_flag指示在几何切片解码过程期间是否应用用于几何位置的缩放过程。例如,等于1的geom_scaling_enabled_flag指定在几何切片解码过程期间应用用于几何位置的缩放过程。等于0的geom_scaling_enabled_flag指定几何位置不需要缩放。
[0467]
geom_base_qp指示几何位置量化参数的基值。
[0468]
gps_implicit_geom_partition_flag指示是否针对序列或切片启用隐式几何分割。例如,等于1指定针对序列或切片启用隐式几何分割。等于0的gps_implicit_geom_partition_flag指定针对序列或切片禁用隐式几何分割。当gps_implicit_geom_partition_flag等于1时,用信号通知以下两个字段,即,gps_max_num_implicit_qtbt_
prior_ot字段和gps_min_size_implicit_qtbt字段。
[0469]
gps_max_num_implicit_qtbt_prior_ot指定ot分割之前的隐式qt和bt分割的最大数目。接着,变量k由gps_max_num_implicit_qtbt_before_ot如下初始化。
[0470]
k=gps_max_num_implicit_qtbt_before_ot。
[0471]
gps_min_size_implicit_qtbt指定隐式qt和bt分割的最小大小。然后,变量m由gps_min_size_implicit_qtbt如下初始化。
[0472]
m=gps_min_size_implicit_qtbt
[0473]
gps_extension_flag指示gps_extension_data语法结构是否存在于gps语法结构中。例如,等于1的gps_extension_flag指示gps_extension_data语法结构存在于gps语法中。例如,等于0的gps_extension_flag指示gps_extension_data语法结构不存在于gps语法中。
[0474]
当gps_extension_flag等于1时,根据实施方式的gps还可以包括gps_extension_data_flag字段。
[0475]
gps_extension_data_flag可以具有任何值。其存在及值不影响解码器对配置文件的符合性。
[0476]
图36示出了根据本公开的属性参数集(aps)(attribute_parameter_set())的语法结构的实施方式。根据实施方式的aps可以包含关于对关于包含在一个或更多个切片中的点云数据的属性信息进行编码的方法的信息。
[0477]
根据实施方式的aps可以包括aps_attr_parameter_set_id字段、aps_seq_parameter_set_id字段、attr_coding_type字段、aps_attr_initial_qp字段、aps_attr_chroma_qp_offset字段、aps_slice_qp_delta_present_flag字段以及aps_extension_flag字段。
[0478]
aps_attr_parameter_set_id字段提供由其它语法元素引用的aps的标识符。
[0479]
aps_seq_parameter_set_id字段指定用于活动sps的sps_seq_parameter_set_id的值。
[0480]
attr_coding_type字段指示属性的编码类型。
[0481]
根据实施方式,等于0的attr_coding_type字段可以指示预测权重提升作为编码类型。等于1的attr_coding_type字段可以指示raht作为编码类型。等于2的attr_coding_type字段可以指示固定权重提升。
[0482]
aps_attr_initial_qp字段指定针对引用aps的每个切片的变量sliceqp的初始值。
[0483]
aps_attr_chroma_qp_offset字段指定相对于由语法aps_attr_initial_qp用信号通知的初始量化参数的偏移。
[0484]
aps_slice_qp_delta_present_flag字段指定在属性切片头(ash)中是否存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。例如,等于1的aps_slice_qp_delta_present_flag字段指定在ash中存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。例如,等于0的aps_slice_qp_delta_present_flag字段指定在ash中不存在ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma语法元素。
[0485]
当attr_coding_type字段的值为0或2(也就是说,编码类型是预测权重提升或固
定权重提升)时,根据实施方式的aps还可以包括lifting_num_pred_nearest_neighbours_minus1字段、lifting_search_range_minus1字段以及lifting_neighbour_bias[k]字段。
[0486]
lifting_num_pred_nearest_neighbours加1指定将用于预测的最近邻居的最大数目。根据实施方式,numprednearestneighbours的值被设置为等于lifting_num_pred_nearest_neighbours。
[0487]
lifting_search_range_minus1加1指定用于确定要用于预测的最近邻居并建立基于距离的细节层次(lod)的搜索范围。可以通过将1与lifting_search_range_minus1字段的值加1来获得用于指定搜索范围的变量liftingsearchrange(liftingsearchrange=lifting_search_range_minus1 1)。
[0488]
lifting_neighbour_bias[k]字段指定用于在作为最近邻居推导过程的一部分计算两个点之间的欧几里得距离时对第k分量进行加权的偏置。
[0489]
当attr_coding_type字段的值为2时,也就是说,当编码类型指示固定权重提升时,根据实施方式的aps还可以包括lifting_scalability_enabled_flag字段。
[0490]
lifting_scalability_enabled_flag字段指定属性解码过程是否允许输入几何点的经修剪的八叉树解码结果。例如,等于1的lifting_scalability_enabled_flag字段指定属性解码过程允许输入几何点的经修剪八叉树解码结果。等于0的lifting_scalability_enabled_flag字段指定属性解码过程需要输入几何点的完整八叉树解码结果。
[0491]
根据实施方式,当lifting_scalability_enabled_flag字段的值为假时,aps还可以包括lifting_num_detail_levels_minus1字段。
[0492]
lifting_num_detail_levels_minus1字段指定用于属性编码的细节层次的数目。用于指定lod的数目的变量leveldetailcount可以通过将lifting_num_detail_levels_minus1字段的值加1来获得。(leveldetailcount=lifting_num_detail_levels_minus1 1)。
[0493]
根据实施方式,当lifting_num_detail_levels_minus1字段的值大于1时,aps还可以包括lifting_lod_regular_sampling_enabled_flag字段。
[0494]
lifting_lod_regular_sampling_enabled_flag字段指定是否通过常规采样策略构建细节层次(lod)。例如,等于1的lifting_lod_regular_sampling_enabled_flag指定通过使用常规采样策略构建细节层次(lod)。等于0的lifting_lod_regular_sampling_enabled_flag指定替代地使用基于距离的采样策略。
[0495]
根据实施方式,当lifting_scalability_enabled_flag字段的值为假时,aps还可以包括迭代与lifting_num_detail_levels_minus1字段的值一样多的次数的迭代语句。在实施方式中,将索引(idx)初始化为0并且每当执行迭代语句时递增1,并且迭代所述迭代语句直到索引(idx)大于lifting_num_detail_levels_minus1字段的值。当lifting_lod_regular_sampling_enabled_flag字段的值为真(例如,1)时,该迭代语句可以包括lifting_sampling_period_minus2[idx]字段,并且当lifting_lod_regular_sampling_enabled_flag字段的值为假(例如,0)时,该迭代语句可以包括lifting_sampling_distance_squared_scale_minus1[idx]字段。另外,当idx的值不是0(idx!=0)时,还可以包括lifting_sampling_distance_squared_offset[idx]字段。
[0496]
lifting_sampling_period_minus2[idx]加2指定细节层次idx的采样周期。
[0497]
lifting_sampling_distance_squared_scale_minu1[idx]加1指定用于推导细节层次idx的采样距离的平方的比例因子。
[0498]
lifting_sampling_distance_squared_offset[idx]字段指定用于推导细节层次idx的采样距离的平方的偏移。
[0499]
当attr_coding_type字段的值为0时,也就是说,当编码类型正预测权重提升时,根据实施方式的aps还可以包括lifting_adaptive_prediction_threshold字段、lifting_intra_lod_prediction_num_layers字段、lifting_max_num_direct_predictors字段以及inter_component_prediction_enabled_flag字段。
[0500]
lifting_adaptive_prediction_threshold字段指定启用自适应预测的阈值。根据实施方式,用于指定用于切换自适应预测器选择模式的阈值的变量adaptivepredictionthreshold被设置为等于lifting_adaptive_prediction_threshold字段的值(adaptivepredictionthreshold=lifting_adaptive_prediction_threshold)。
[0501]
lifting_intra_lod_prediction_num_layers字段指定同一lod层中的解码后的点可以被引用以生成目标点的预测值的lod层的数目。例如,等于leveldetailcount的lifting_intra_lod_prediction_num_layers字段指示目标点可以针对所有lod层引用同一lod层中的解码后的点。例如,等于0的lifting_intra_lod_prediction_num_layers字段指示目标点可能不针对任何lod层引用同一lod层中的解码后的点。lifting_max_num_direct_predictors字段指定将用于直接预测的预测子的最大数目。lifting_max_num_direct_predictors字段的值将在0到leveldetailcount的范围内。
[0502]
inter_component_prediction_enabled_flag字段指定多分量属性的主分量是否用于预测非主分量的重构值。例如,如果inter_component_prediction_enabled_flag字段等于1,则指定多分量属性的主分量用于预测非主分量的重构值。等于0的inter_component_prediction_enabled_flag字段指定所有属性分量是独立重构的。
[0503]
根据实施方式,当attr_coding_type字段的值为1时,也就是说,当属性编码类型为raht时,aps还可以包括raht_prediction_enabled_flag字段。
[0504]
raht_prediction_enabled_flag字段指定在raht解码过程中是否启用来自邻居点的变换权重预测。例如,等于1的raht_prediction_enabled_flag字段指定在raht解码过程中启用来自邻居点的变换权重预测。等于0的raht_prediction_enabled_flag指定在raht解码过程中禁用变换权重预测。
[0505]
根据实施方式,当raht_prediction_enabled_flag字段的值为真时,aps还可以包括raht_prediction_threshold 0字段和raht_prediction_threshold1字段。
[0506]
raht_prediction_threshold0字段指定终止来自邻居点的变换权重预测的阈值。
[0507]
raht_prediction_threshold1字段指定跳过来自邻居点的变换权重预测的阈值。
[0508]
aps_extension_flag字段指定aps_extension_data_flag语法结构是否存在于aps语法结构中。例如,等于1的aps_extension_flag指示aps_extension_data语法结构存在于aps语法结构中。例如,等于0的aps_extension_flag指示aps_extension_data语法结构不存在于aps语法结构中。
[0509]
当aps_extension_flag字段的值为1时,根据实施方式的aps还可以包括aps_
extension_data_flag字段。
[0510]
aps_extension_data_flag字段可以具有任何值。其存在及值不影响解码器对配置文件的符合性。
[0511]
根据实施方式的aps还可以包括与基于lod的属性压缩相关的信息。
[0512]
图37示出了根据实施方式的包括与基于lod的属性压缩相关的信息的aps(attribute_parameter_set())的语法结构的实施方式。
[0513]
在图37中,与基于lod的属性压缩相关的信息可以包括constrained_qtbt_flag字段、num_lod_minus1字段以及lod_sampling_method字段。
[0514]
constrained_qtbt_flag字段可以指示生成针对通过点云视频编码器压缩几何信息和/或压缩属性信息的树结构中是否存在约束。例如,等于1的constrained_qtbt_flag可以指示在生成树结构中存在约束。根据实施方式,约束可以是可缩放属性编码的条件,和/或可以指示基于ot的lod生成可以用于特定深度或较低深度(参见上文给出的实施方式2的描述)。例如,等于1的constrained_qtbt_flag字段的值可以用于指示接收装置的属性解码器61004可以使用基于ot/qt/bt的几何树来生成lod。作为另一示例,等于1的constrained_qtbt_flag字段的值可以用于指示接收装置的属性解码器61004可以使用用于基于八叉树的lod生成的几何树的某些深度(例如,从叶节点开始)。
[0515]
根据实施方式,当constrained_qtbt_flag字段的值为1时,与基于lod的属性压缩相关的信息还可以包括指示lod的最大数目的max_num_lod字段和指示lod开始的点的lod_starting_depth字段。根据实施方式,max_num_lod字段可以指示来自几何树中的叶层次的深度大小。而且,接收装置的属性解码器61004可以通过基于constrained_qtbt_flag字段、max_num_lod字段和lod_starting_depth字段仅针对几何树中的对应深度生成基于八叉树的lod来解码属性信息。等于0的constrained_qtbt_flag字段的值可以用于指示接收装置的属性解码器61004应使用基于八叉树的lod生成。
[0516]
num_lod_minus1加1可以指示lod的数目。另选地,其可以与num_tree_depth_minus1字段一起用信号通知以指示几何树中的深度。为了指示树的深度的数目,num_tree_depth_minus1字段可以包括在与基于lod的属性压缩或几何切片头相关的信息中。
[0517]
lod_sampling_method字段可以指示用于在生成lod时选择邻居搜索范围(或配置后的邻居)内的点的采样方法。等于0的lod_sampling_method可以指示可以从配置(或包括)在邻居中的点当中选择第一个点。在实施方式中,第一个点意味着在邻居搜索范围内以莫顿码顺序排序的点当中的第一个点。等于1的lod_sampling_method可以指示可以针对每个深度交替地选择第一个点和最后一个点。这里,第一个点表示在深度的邻居搜索范围内以莫顿码顺序排序的点当中的第一个点,并且最后一个点表示在深度的邻居搜索范围内以莫顿码顺序排序的点当中的最后一个点。等于2的lod_sampling_method可以指示可以从邻居搜索范围内的点当中选择相对于邻居中心具有小欧几里得距离的点。换句话说,等于2的lod_sampling_method可以指示可以选择接近节点中心的点。
[0518]
根据实施方式,当constrained_qtbt_flag字段的值为真(例如,1)时,与基于lod的属性压缩相关的信息还可以包括max_lod_depth_for_octree_based_lod_generation字段。
[0519]
当constrained_qtbt_flag字段的值为1时,max_lod_depth_for_octree_based_
lod_generation字段可以指示可以与基于八叉树的lod生成匹配的最大lod深度。根据实施方式,最大lod深度可以指示来自几何树的叶层次的深度大小。根据实施方式,max_lod_depth_for_octree_based_lod_generation字段可以具有与lod_starting_depth字段相同的含义。
[0520]
根据实施方式,与基于lod的属性压缩相关的信息还可以包括迭代与num_lod_minus1字段的值一样多的次数的循环。在这种情况下,在实施方式中,i可以初始化为0,并且每当执行循环时递增1。循环可以迭代直到i达到num_lod_minus1字段的值为止。该循环可以包括cubic_node_flag字段、node_size_x字段、node_size_y字段和node_size_z字段。
[0521]
等于1的cubic_node_flag可以指示用于lod生成中的邻居搜索的单元节点是具有在xyz侧上具有相同长度的立方体形状(即,规则六面体)的节点。等于0的cubic_node_flag可以指示用于lod生成中的邻居搜索的单元节点是在xyz侧上具有不同长度的长方体(或长方体或非立方体形状)。
[0522]
当cubic_node_flag字段的值是0时,与基于lod的属性压缩相关的信息还可以包括node_direction字段。
[0523]
node_direction字段可以指示具有长方体形状的节点的方向性(即,分割方向)。根据实施方式,0至5的值可以分别指示节点z、y、x、yz、xz和xy方向。例如,当xyz轴上的节点的大小表示为2
dx
、2
dy
和2
dz
时,可以获得(k,k,2k)、(k,2k,k)、(2k,k,k)、(k,2k,2k)、(2k,k,2k)和(2k,2k,k)。这里,k表示单元大小。另选地,可以使用node_size_x、node_size_y和node_size_z字段来用信号通知xyz轴上的节点的大小。
[0524]
node_size_x、node_size_y和node_size_z字段可以指示xyz轴上的节点的大小。
[0525]
根据实施方式,当constrained_qtbt_flag字段的值为1时,循环还可以包括no_representation_flag字段。
[0526]
当在属性编码中执行基于八叉树的lod生成时,no_representation_flag字段可以指示对应深度是否适合于可缩放表示。另选地,no_representation_flag字段可以用于直接告知在所述深度处几何的点的数目不同于属性的点的数目。例如,等于1的no_representation_flag字段可以指示深度不适合于可缩放表示。等于0的no_representation_flag字段可以指示深度适合于可缩放表示,或在所述深度处几何的点的数目与属性的点的数目相同。作为另一示例,no_representation_flag字段可以指示lod是在发生几何与属性之间的点失配的几何树的深度处生成的lod。在这种情况下,lod可以不用于属性压缩,并且接收装置的属性解码器61004可以不将lod用于基于该信息进行属性重构。no_representation_flag字段可以具有与lod_skip_flag字段相同的含义。另选地,lod_skip_flag字段还可以包括在与基于lod的属性压缩相关的信息中。另选地,接收装置的属性解码器61004可以基于包括在循环中的信息来确定是否跳过lod。
[0527]
根据实施方式,图37的与基于lod的属性压缩相关的信息可以包括在图36的aps中的if(lodparameterspresent)语句中或if(attr_coding_type==0)语句中。这仅仅是实施方式,并且与基于lod的属性压缩相关的信息可以包括在图36的aps中的任何位置处。图38示出了根据本公开的几何切片比特流()的语法结构的实施方式。
[0528]
根据实施方式的几何切片比特流(geometry_slice_bitstream())可以包括几何切片头(geometry_slice_header())和几何切片数据(geometry_slice_data())。其可以
称为几何切片。而且,属性切片比特流可以称为属性切片。
[0529]
图38示出了根据实施方式的geometry_slice_bitstream()的示例性语法结构。
[0530]
根据实施方式的几何切片比特流(geometry_slice_bitstream())可以包括几何切片头(geometry_slice_header())和几何切片数据(geometry_slice_data())。
[0531]
图39示出了根据本公开的几何切片头(geometry_slice_header())的语法结构的实施方式。
[0532]
根据实施方式,由发送装置发送的比特流(或由接收装置接收的比特流)可以包含一个或更多个切片。每个切片可以包括几何切片和属性切片。几何切片包括几何切片头(gsh)。属性切片包括属性切片头(ash)。
[0533]
根据实施方式的几何切片头(geometry_slice_header())可以包括gsh_geometry_parameter_set_id字段、gsh_tile_id字段、gsh_slice_id字段、frame_idx字段、gsh_num_points字段和byte_alignment()字段。
[0534]
当包括在gps中的gps_box_present_flag字段的值为真(例如,1)且gps_gsh_box_log2_scale_present_flag字段的值为真(例如,1)时,根据实施方式的几何切片头(geometry_slice_header())还可以包括gsh_box_log2_scale字段、gsh_box_origin_x字段、gsh_box_origin_y字段和gsh_box_origin_z字段。
[0535]
gsh_geometry_parameter_set_id指定活动gps的gps_geom_parameter_set_id的值。
[0536]
gsh_tile_id字段指定由gsh引用的图块id的值。
[0537]
gsh_slice_id指定由其它语法元素引用的切片的id。
[0538]
frame_idx字段指示概念帧号计数器的log2_max_frame_idx 1个最低有效位。具有frame_idx的不同值的连续切片形成不同输出点云帧的部分。具有不具有介入帧边界标记数据单元的frame_idx的相同值的连续切片形成相同输出点云帧的部分。
[0539]
gsh_num_points字段指示切片中的编码后的点的最大数目。根据实施方式,比特流一致性的要求是gsh_num_points大于或等于切片中的解码后的点的数目。
[0540]
gsh_box_log2_scale字段指定切片的边界框原点的缩放因子。
[0541]
gsh_box_origin_x字段指定按gsh_box_log2_scale字段的值缩放的边界框原点的x值。
[0542]
gsh_box_origin_y字段指定按gsh_box_log2_scale字段的值缩放的边界框原点的y值。
[0543]
gsh_box_origin_z字段指定按gsh_box_log2_scale字段的值缩放的边界框原点的z值。
[0544]
这里,变量slice_origin_x、slice_origin_y和slice_origin_z可以如下推导。
[0545]
当gps_gsh_box_log2_scale_present_flag等于0时,将originscale设置为gsh_box_log2_scale。
[0546]
当gps_gsh_box_log2_scale_present_flag等于1时,将originscale设置为gps_gsh_box_log2_scale。
[0547]
当gps_box_present_flag等于0时,推断变量slice_origin_x、slice_origin_y和slice_origin_z的值为0。
[0548]
当gps_box_present_flag等于1时,以下等式将应用于变量slice_origin_x、slice_origin_y和slice_origin_z。
[0549]
slice_origin_x=gsh_box_origin_x《《originscale
[0550]
slice_origin_y=gsh_box_origin_y《《originscale
[0551]
slice_origin_z=gsh_box_origin_z《《originscale
[0552]
当gps_implicit_geom_partition_flag字段的值为真(即,0)时,几何切片头(((geometry_slice_header()))还可以包括gsh_log2_max_nodesize_x字段、gsh_log2_max_nodesize_y_minus_x字段和gsh_log2_max_nodesize_z_minus_y字段。当gps_implicit_geom_partition_flag字段的值为假(即,1)时,几何切片头还可以包括gsh_log2_max_nodesize字段。
[0553]
gsh_log2_max_nodesize_x字段指定x维度中的边界框大小,即,在解码过程中使用的如下maxnodesize_xlog2。
[0554]
maxnodesizexlog2=gsh_log2_max_nodesize_x
[0555]
maxnodesizex=1《《maxnodesizexlog2
[0556]
gsh_log2_max_nodesize_y_minus_x字段指定y维度中的边界框大小,即,在解码过程中使用的如下maxnodesizeylog2。
[0557]
maxnodesizeylog2=gsh_log2_max_nodesize_y_minus_x maxnodesizexlog2。
[0558]
maxnodesizey=1《《maxnodesizeylog2。
[0559]
gsh_log2_max_nodesize_z_minus_y字段指定z维度中的边界框大小,即,在解码过程中使用的如下maxnodesizezlog2。
[0560]
maxnodesizezlog2=gsh_log2_max_nodesize_z_minus_y maxnodesizeylog2
[0561]
maxnodesizez=1《《maxnodesizezlog2
[0562]
当gps_implicit_geom_partition_flag字段的值为1时,如下获得gsh_log2_max_nodesize。
[0563]
gsh_log2_max_nodesize=max{maxnodesizexlog2,maxnodesizeylog2,maxnodesizezlog2}
[0564]
当gps_implicit_geom_partition_flag等于0时,gsh_log2_max_nodesize字段指定根几何八叉树节点的大小。
[0565]
这里,变量maxnodesize和maxgeometryoctreedepth如下推导。
[0566]
maxnodesize=1《《gsh_log2_max_nodesize
[0567]
maxgeometryoctreedepth=gsh_log2_max_nodesize-log2_trisoup_node_size
[0568]
当geom_scaling_enabled_flag字段的值为真时,根据实施方式的几何切片头(geometry_slice_header())还可以包括geom_slice_qp_offset字段和geom_octree_qp_offsets_enabled_flag字段。
[0569]
geom_slice_qp_offset字段指定相对于基本几何量化参数geom_base_qp的偏移。
[0570]
geom_octree_qp_offsets_enabled_flag字段指定在几何切片头中是否存在geom_octree_qp_ofsets_depth字段。例如,等于1的geom_octree_qp_offsets_enabled_flag字段指定在几何切片头中存在geom_octree_qp_ofsets_depth字段。等于0的geom_octree_qp_offsets_enabled_flag指定不存在geom_octree_qp_ofsets_depth字段。
[0571]
geom_octree_qp_offsets_depth字段指定几何八叉树的深度。
[0572]
图40示出了根据本公开的几何切片数据(geometry_slice_data())的语法结构的实施方式。根据实施方式的几何切片数据(geometry_slice_data())可以承载属于对应切片的几何比特流。
[0573]
根据实施方式的geometry_slice_data()可以包括重复与maxgeometryoctreedepth的值一样多的次数的第一迭代语句。在实施方式中,深度被初始化为0并且每次迭代语句被执行时递增1,并且重复第一迭代语句直到深度变得等于maxgeometryoctreedepth为止。第一迭代语句可以包括重复与numnodesatdepth值一样多的次数的第二循环语句。在实施方式中,nodeidx被初始化为0并且每次迭代语句被执行时递增1。重复第二迭代语句,直到nodeidx变为等于numnodesatdepth。第二迭代语句可以包括xn=nodex[depth][nodeidx]、yn=nodey[depth][nodeidx]、zn=nodez[depth][nodeidx]和geometry_node(depth,nodeidx,xn,yn,zn)。maxgeometryoctreedepth指示几何八叉树深度的最大值,并且numnodesatdepth[depth]指示将在对应深度处解码的节点的数目。变量nodex[depth][nodeidx]、nodey[depth][nodeidx]和nodez[depth][nodeidx]指示在给定深度按解码顺序的第idx节点的x、y、z坐标。深度的节点的几何比特流通过geometry__node(depth,nodeidx,xn,yn,zn)发送。
[0574]
当log2_trisoup_node_size字段的值大于0时,根据实施方式的几何切片数据(geometry_slice_data())还可以包括geometry_slice_data()。也就是说,当三角形节点的大小大于0时,经受trisoup几何编码的几何比特流通过geometry_trisoup_data()发送。
[0575]
图41示出了根据本公开的attribute_slice_bitstream()的语法结构的实施方式。
[0576]
根据实施方式的属性切片比特流(attribute_slice_bitstream())可以包括属性切片头(attribute_slice_header())和属性切片数据(attribute_slice_data())。
[0577]
图42示出了根据本公开的属性切片头(attribute_slice_header())的语法结构的实施方式。
[0578]
根据实施方式的属性切片头(attribute_slice_header())可以包括ash_attr_parameter_set_id字段、ash_attr_sps_attr_idx字段、ash_attr_geom_slice_id字段、ash_attr_layer_qp_delta_present_flag字段和ash_attr_region_qp_delta_present_flag字段。
[0579]
当aps的aps_slice_qp_delta_present_flag字段的值为真(例如,1)时,根据实施方式的属性切片头(attribute_slice_header())还可以包括ash_attr_qp_delta_luma字段。当attribute_dimension_minus1[ash_attr_sps_attr_idx]字段的值大于0时,属性切片头还可以包括ash_attr_qp_delta_chroma字段。
[0580]
ash_attr_parameter_set_id字段指定当前活动aps的aps_attr_parameter_set_id字段的值。
[0581]
ash_attr_sps_attr_idx字段指定当前活动sps中的属性集。
[0582]
ash_attr_geom_slice_id字段指定当前几何切片头的gsh_slice_id字段的值。
[0583]
ash_attr_qp_delta_luma字段指定从活动属性参数集中的初始切片qp推导的亮
度增量量化参数qp。
[0584]
ash_attr_qp_delta_chroma字段指定从活动属性参数集中的初始切片qp推导的色度增量qp。
[0585]
如下推导变量initialsliceqpy和initialsliceqpc。
[0586]
initialsliceqpy=aps_attrattr_initial_qp ash_attr_qp_delta_luma
[0587]
initialsliceqpc=aps_attrattr_initial_qp aps_attr_chroma_qp_offset ash_attr_qp_delt a_chroma
[0588]
ash_attr_layer_qp_delta_present_flag字段指定针对每一层ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段是否存在于ash中。例如,当ash_attr_layer_qp_delta_present_flag字段的值为1时,其指示ash_attr_layer_qp_delta_luma字段和ash_attr_layer_qp_delta_chroma字段存在于ash中。当值为0时,其指示字段不存在。
[0589]
当ash_attr_layer_qp_delta_present_flag字段的值为真时,ash还可以包括ash_attr_num_layer_qp_minus1字段。
[0590]
ash_attr_num_layer_qp_minus1加1指示用信号通知ash_attr_qp_delta_luma字段和ash_attr_qp_delta_chroma字段所通过的层的数目。当不用信号通知ash_attr_num_layer_qp字段时,ash_attr_num_layer_qp字段的值将为0。根据实施方式,可以通过将ash_attr_num_layer_qp_minus1字段的值加1来获得指定层的数目的numlayerqp(numlayerqp=ash_attr_num_layer_qp_minus1 1)。
[0591]
根据实施方式,当ash_attr_layer_qp_delta_present_flag字段的值为真时,几何切片头可以包括迭代与numlayerqp的值一样多的次数的循环。在这种情况下,在实施方式中,i可以初始化为0并且每当执行循环时递增1,并且循环迭代直到i的值达到numlayerqp的值。该循环包括ash_attr_layer_qp_delta_luma[i]字段。而且,当attribute_dimension_minus1[ash_attr_sps_attr_idx]字段的值大于0时,循环还可以包括ash_attr_layer_qp_delta_chroma[i]字段。
[0592]
ash_attr_layer_qp_delta_luma字段指示每一层中的来自initialsliceqpy的亮度增量量化参数qp。
[0593]
ash_attr_layer_qp_delta_chroma字段指示每一层中的来自initialsliceqpc的色度增量量化参数qp。
[0594]
如下推导变量sliceqpy[i]和sliceqpc[i],其中i=0,

,numlayerqpnumqplayer-1。
[0595]
for(i=0;i《numlayerqpnumqplayer;i ){
[0596]
sliceqpy[i]=initialsliceqpy ash_attr_layer_qp_delta_luma[i]
[0597]
sliceqpc[i]=initialsliceqpc ash_attr_layer_qp_delta_chroma[i]
[0598]
}
[0599]
等于1的ash_attr_region_qp_delta_present_flag指示根据实施方式,在当前属性切片头(attribute_slice_header())中存在ash_attr_region_qp_delta、区域边界框原点和大小。等于0的ash_attr_region_qp_delta_present_flag指示ash_attr_region_qp_delta、区域边界框原点和大小不存在于当前属性切片头中。
[0600]
也就是说,当ash_attr_layer_qp_delta_present_flag字段的值为1时,属性切片头还可以包括ash_attr_qp_region_box_origin_x字段、ash_attr_qp_region_box_origin_y字段、ash_attr_qp_region_box_origin_z字段、ash_attr_qp_region_box_width字段、ash_attr_qp_region_box_height字段、ash_attr_qp_region_box_depth字段和ash_attr_region_qp_delta字段。
[0601]
ash_attr_qp_region_box_origin_x字段指示相对于slice_origin_x的区域边界框的x偏移。
[0602]
ash_attr_qp_region_box_origin_y字段指示相对于slice_origin_y的区域边界框的y偏移。
[0603]
ash_attr_qp_region_box_origin_z字段指示相对于slice_origin_z的区域边界框的z偏移。
[0604]
ash_attr_qp_region_box_size_width字段指示区域边界框的宽度。
[0605]
ash_attr_qp_region_box_size_height字段指示区域边界框的高度。
[0606]
ash_attr_qp_region_box_size_depth字段指示区域边界框的深度。
[0607]
ash_attr_region_qp_delta字段指示来自由ash_attr_qp_region_box字段指定的区域的sliceqpy[i]和sliceqpc[i]的增量qp(delta qp)。
[0608]
根据实施方式,将指定区域框增量量化参数的变量regionboxdeltaqp设置为等于ash_attr_region_qp_delta字段的值(regionboxdeltaqp=ash_attr_region_qp_delta)。
[0609]
根据实施方式的属性切片头还可以包括与基于lod的属性压缩相关的信息。
[0610]
图43是例示了根据实施方式的包括与基于lod的属性压缩相关的信息的属性切片头(attribute_slice_header())的语法结构的实施方式的图。
[0611]
图43的与基于lod的属性压缩相关的信息可以包括constrained_qtbt_flag字段、num_lod_minus1字段和lod_sampling_method字段。根据constrained_qtbt_flag字段的值,与基于lod的属性压缩相关的信息还可以包括max_lod_depth_for_octree_based_lod_generation字段。与基于lod的属性压缩相关的信息还可以包括迭代与num_lod_minus1字段的值一样多的次数的循环。所述循环可以包括cubic_node_flag字段、node_size_x字段、node_size_y字段和node_size_z字段。根据cubic_node_flag字段的值,所述循环还可以包括node_direction字段,并且根据constrained_qtbt_flag字段的值还可以包括no_representation_flag字段。
[0612]
包括在图43的与基于lod的属性压缩相关的信息中的字段具有与图37中的字段相同的含义。因此,对于字段的细节,参见图37的详细描述。
[0613]
根据实施方式,图43的与基于lod的属性压缩相关的信息可以包括在图43的属性切片头中的if(aps_slice_qp_delta_present_flag)语句之前。这仅仅是实施方式,并且与基于lod的属性压缩相关的信息可以被包括在图43的aps中的任何位置处。
[0614]
图44是示出了根据本公开的属性切片数据(attribute_slice_data())的语法结构的实施方式的图。根据实施方式的属性切片数据(attribute_slice_data())可以承载属于对应切片的属性比特流。根据实施方式的属性切片数据可以包括与点云中的一些或全部相关的属性或属性相关数据。
[0615]
在图44中,zerorun字段指定predindex或残差之前的0的数目。
[0616]
predindex[i]字段指定用于解码属性的第i点的值的预测子索引。predindex[i]字段的值在从0到max_num_predictor字段的值的范围内。
[0617]
可以通过根据下面描述的实施方式的点云发送/接收装置/方法的元件来执行上述实施方式的操作。根据实施方式的每个元件可以对应于硬件、软件、处理器和/或其组合。尽管该实施方式描述了压缩点云数据的属性信息的方法,但是本文描述的方法可以应用于几何信息压缩和其它压缩方法。
[0618]
图45例示了根据实施方式的点云发送装置的另一示例。图45中所示的点云发送装置的元件可以被实现为硬件、软件、处理器和/或其组合。
[0619]
根据实施方式,点云发送装置可以包括信令处理器51002、几何编码器51003、属性编码器51004和发送处理器51005。
[0620]
几何编码器51003和属性编码器51004可以执行关于图1的点云视频编码器10002、图2的编码20001、图4的点云视频编码器和图12的点云视频编码器描述的操作中的一些或全部。
[0621]
在一个实施方式中,几何编码器51003通过基于ot或ot/qt/bt如上所述对由对称地或非对称地分布的点组成的点云数据进行分割来生成几何树,并且基于所生成的几何树压缩点云数据的几何信息。
[0622]
对于通过由几何编码器51003基于ot或ot/qt/bt分割点云数据来生成几何树的细节,参考上面给出的图16至图30的描述。
[0623]
几何编码器51003基于通过压缩而改变的位置重构几何信息,并且将重构的(或解码后的)几何信息输出到属性编码器51004。
[0624]
属性编码器51004基于尚未执行几何编码的位置和/或重构的几何信息压缩属性信息。属性编码器51004可以通过将实施方式1至3中的一个或两个或更多个组合来执行编码属性信息或执行可缩放属性编码。
[0625]
信令处理器51002可以生成和/或处理编码/解码/渲染几何信息和属性信息所必需的信令信息,并且将其提供给几何编码器51003、属性编码器51004和/或发送处理器51005。另选地,信令处理器51002可以接收由几何编码器51003、属性编码器51004和/或发送处理器51005生成的信令信息。信令处理器51002可以提供从接收装置反馈到几何编码器51003、属性编码器51004和/或发送处理器51005的信息(例如,头部取向信息和/或视口信息)。
[0626]
在本公开中,可以以参数集(序列参数集(sps)、几何参数集(gps)、属性参数集(aps)、图块参数集(tps)(或图块清单)等)为单位用信号通知和发送信令信息。而且,其可以以每个图像的编码单位(诸如,切片或图块)用信号通知和发送。
[0627]
根据实施方式,信令处理器51002可以至少向aps或属性切片头用信号通知上述基于lod的属性压缩相关信息,以向几何编码器51003、属性编码器51004和/或发送处理器51005提供相该信息。
[0628]
根据实施方式的方法/装置可以用信号通知相关信息以添加/执行实施方式的操作。根据实施方式的信令信息可以由发送装置和/或接收装置使用。
[0629]
发送处理器51005可以执行与图12的发送处理器12012的操作和/或发送方法相同或相似的操作和/或发送方法,并且执行与图1的发送器1003的操作和/或发送方法相同或
相似的操作和/或发送方法。针对细节,参考图1或图12的描述。在此将省略对其的描述。
[0630]
发送处理器51005可以发送从几何编码器51003输出的几何比特流、从属性编码器51004输出的属性比特流和通过将比特流复用到一个比特流中或通过将比特流封装于文件或片段中而从信令处理器51002输出的信令比特流。在本公开的实施方式中,文件可以呈isobmff文件格式。
[0631]
根据实施方式,文件或片段可以被发送到接收装置或被存储在数字存储介质(例如,usb、sd、cd、dvd、蓝光、hdd、ssd等)中。根据实施方式的发送处理器51005能够通过4g、5g、6g等的网络与接收装置执行有线/无线通信。另外,发送处理器51005可以根据网络系统(例如,4g、5g或6g通信网络系统)执行必要的数据处理操作。而且,发送处理器51005可以以按需方式发送封装的数据。
[0632]
图46是根据实施方式的属性编码器51004的示例性详细框图。图46所示的属性编码器的元件可以实现为硬件、软件、处理器和/或其组合等。
[0633]
根据实施方式,属性编码器51004可以包括lod生成器53001、属性压缩器53002、属性变换器53003和量化器53004。
[0634]
lod生成器53001基于尚未执行几何编码的位置和/或重构的几何信息生成lod。lod生成器53001基于图16至图30通过上述实施方式1至3中的一个或两个或更多个实施方式的组合来生成lod。
[0635]
也就是说,lod生成器53001基于如上所述的几何树结构生成lod,并且通过在生成lod中将对应的几何深度的节点定义为邻居(或邻居搜索范围)来执行子采样。然后,构建几何树,并且通过与基于lod的属性压缩相关的信息来用信号通知根据lod层的节点大小信息,例如,num_lod_minus1字段、cubic_node_flag字段、node_direction字段、node_size_x字段、node_size_y字段和node_size_z字段。另外,当lod生成器53001被配置为使用几何树执行基于八叉树的lod生成时,可以通过与基于lod的属性压缩相关的信息(例如,constrained_qtbt_flag字段和max_lod_depth_for_octree_based_lod_generation字段)用信号通知相关信息。而且,lod采样方法可以通过与基于lod的属性压缩相关的信息(例如,lod_sampling_method字段)来传递。针对包括在与基于lod的属性压缩相关的信息中的num_lod_minus1字段、cubic_node_flag字段、node_direction字段、node_size_x字段、node_size_y字段、node_size_z字段、constrained_qtbt_flag字段、max_lod_depth_for_octree_based_lod_generation字段和lod_sampling_method字段的细节,参考图37的描述。
[0636]
属性压缩器53002基于由lod生成器53001生成的lod执行属性预测,并且基于预测的属性信息生成残差属性信息。残差属性信息由属性变换器53003变换到压缩域,然后由量化器53004量化。然后,以属性比特流的形式对量化残差属性信息进行熵编码和输出。残差属性信息具有与预测误差属性信息相同的含义。
[0637]
图47是例示了根据实施方式的示例性基于几何树的lod生成方法的流程图。
[0638]
首先,假设与基于lod的属性压缩相关的信息(包括关于由几何编码器51003用于压缩几何信息的基于ot或ot/qt/bt的几何树结构的信息)经由信令处理器51002被提供给属性编码器51004。而且,假设几何树的深度为n。
[0639]
在操作55001,当点云数据、包括几何树信息的与基于lod的属性压缩相关的信息
和深度信息(n)被输入时,确定包括在与基于lod的属性压缩相关的信息中的constrained_qtbt_flag字段的值是否为1。
[0640]
当constrained_qtbt_flag字段的值为1时,过程进行到操作55002。当constrained_qtbt_flag字段的值为0时,过程进行到操作55003。
[0641]
当constrained_qtbt_flag字段的值为1时,其可以指示在生成几何树结构时存在约束。这里,约束可以是可缩放属性编码的条件,并且可以指示基于ot的lod生成可以用于特定深度或较低深度。而且,等于1的constrained_qtbt_flag字段的值可以用于指示接收装置可以使用基于ot的lod生成。等于0的constrained_qtbt_flag字段的值可以用于指示接收装置应使用基于几何树的lod生成。
[0642]
在操作55002,通过基于ot的分割生成的立方体节点被配置用于对应深度处的邻居搜索。
[0643]
在操作55003,过程进行到操作55004或操作55005,这取决于包括在与基于lod的属性压缩相关的信息中的cubic_node_flag字段和node_direction字段的值。
[0644]
等于1的cubic_node_flag可以指示在lod生成中用于邻居搜索的单元节点是具有在xyz侧上具有相同长度的立方体形状的节点。等于0的cubic_node_flag可以指示在lod生成中用于邻居搜索的单元节点是在xyz侧上具有不同长度的长方体形状。node_direction字段可以指示具有长方体形状的节点的方向性(即,分割方向)。另选地,可以通过node_size_x、node_size_y和node_size_z字段来指示xyz轴方向上的节点的大小。
[0645]
根据实施方式,node_direction字段的值0至5可以分别指示节点z、y、x、yz、xz和xy方向。例如,当xyz轴上的节点的大小表示为2
dx
、2
dy
和2
dz
时,可以获得(k,k,2k)、(k,2k,k)、(2k,k,k)、(k,2k,2k)、(2k,k,2k)和(2k,2k,k)。这里,k表示单元大小。
[0646]
因此,当cubic_node_flag字段的值为1时,该过程进行到操作55002以进行基于ot的lod生成。当cubic_node_flag字段的值为0并且node_direction字段的值为3、4和5中的一个时,过程进行到操作55004,以进行基于qt的lod生成。另外,当cubic_node_flag字段的值为0并且node_direction字段的值为0、1和2中的一个时,过程进行到操作55005以进行基于bt的lod生成。
[0647]
在操作55004,通过基于qt的分割生成的长方体节点被配置用于对应深度处的邻居搜索。
[0648]
在操作55005,通过基于bt的分割生成的长方体节点被配置用于对应深度处的相邻搜索。
[0649]
在操作55006,基于包括在基于lod的属性压缩相关信息中的lod_sampling_method字段的值,从操作55002、55004和55005中的一个提供的立方体节点或长方体节点当中选择属于lod的点。
[0650]
例如,在操作55006,当lod_sampling_method字段的值为0时,可以选择第一个点。当值为1时,可以在lod中交替地选择第一个点和最后一个点。当所述值为2时,可以选择相对于邻居中心具有小欧几里德距离的点。
[0651]
在操作55007,检查当前深度。当存在用于lod生成的剩余深度时,深度变量n减小1(操作55008),过程进行到操作55001。当针对所有深度完成lod生成时,终止lod生成。
[0652]
因此,当constrained_qtbt_flag字段的值为0(或可以根据接收装置的选择使用
值1)时,根据几何树的深度的节点的形状变为立方体或长方体。一旦通过与基于lod的属性压缩相关的信息的信令确定了节点形状(邻居搜索),就针对每个节点选择对应于lod的点。在该操作中,可以使用在lod_sampling_method中用信号通知的方法。通过执行该过程直到根层次或对应于n-max_lod_depth_fr_octree_based_lod_generation的深度,可以生成lod。
[0653]
图48例示了根据实施方式的点云接收装置的另一示例。图48所示的点云接收装置的元件可以被实现为硬件、软件、处理器和/或其组合。
[0654]
根据实施方式,点云接收装置可以包括接收处理器61001、信令处理器61002、几何解码器61003、属性解码器61004和后处理器61005。
[0655]
根据实施方式的接收处理器61001可以接收一个比特流,或者可以分别接收几何比特流、属性比特流和信令比特流。当接收到文件和/或片段时,接收处理器61001可以对接收到的文件和/或片段进行解封装,并输出比特流。
[0656]
当接收(或解封装)一个比特流时,根据实施方式的接收处理器61001可以从一个比特流解复用几何比特流、属性比特流和/或信令比特流,并且将解复用的信令比特流输出到信令处理器61002,将解复用的几何比特流输出到几何解码器61003,并且将解复用的属性比特流输出到属性解码器61004。
[0657]
当分别接收(或解封装)几何比特流、属性比特流和/或信令比特流时,根据实施方式的接收处理器61001可以将信令比特流发送到信令处理器61002,将几何比特流发送到几何解码器61003,并且将属性比特流发送到属性解码器61004。
[0658]
信令处理器61002可以从输入信令比特流解析并处理包括在信令信息(例如,sps、gps、aps、tps、元数据等)中的信息,并将其提供到几何解码器61003、属性解码器61004和后处理器61005。在另一实施方式中,在解码对应切片数据之前,信令处理器61002还可以解析包括在几何切片头和/或属性切片头中的信令信息。
[0659]
根据实施方式,信令处理器61002至少可以解析和处理在aps或属性切片头中用信号通知的与基于lod的属性压缩相关的信息,并且将其提供给几何解码器61003、属性解码器61004和后处理器61005。
[0660]
根据实施方式,几何解码器61003可以通过基于信令信息针对压缩后的几何比特流执行图45的几何编码器51003的操作的逆过程来重构几何。由几何解码器61003重构(或恢复)的几何信息被提供给属性解码器61004。属性解码器61004可以通过基于信令信息和重构的几何信息对压缩后的属性比特流执行图45的属性编码器51004的操作的逆过程来重构属性。
[0661]
根据实施方式,后处理器61005可以将由几何解码器61003重构和输出的几何信息(即,位置)与由属性解码器61004重构和输出的属性信息进行匹配,以重构和显示/渲染点云数据。
[0662]
图49是例示了根据实施方式的属性解码器61004的示例性详细框图。图49中所示的属性解码器的元件可以实现为硬件、软件、处理器和/或其组合。
[0663]
根据实施方式,属性解码器61004可以包括解量化器63001、逆变换器63002、lod生成器63003和属性重构器63004。
[0664]
根据实施方式,属性解码器61004通过执行发送装置的属性编码器51004的操作的
逆过程来重构属性信息。换句话说,解量化器63001可以对包括在属性比特流中的残差属性信息进行熵解码,然后对其进行解量化。然后,逆变换器63002通过属性变换器53003的操作的逆过程来处理解量化的残差属性信息,然后输出到属性重构器63004。
[0665]
属性重构器63004基于由lod生成器63003生成的lod执行属性预测,并且基于预测的属性信息和从逆变换器63002输出的残差属性信息重构属性信息。
[0666]
lod生成器63003以与用于发送装置的lod生成器53001的lod生成方法相同或相似的方式生成lod。例如,lod生成器63003可以基于参考图16至图30描述的几何树结构生成lod。
[0667]
根据实施方式,lod生成器63003可以基于constrained_qtbt_flag字段的值而使用不同类型的lod生成。例如,当constrained_qtbt_flag字段的值为1时,lod生成器63003可以执行基于ot的lod生成或基于ot/qt/bt的lod生成。允许可缩放表示的深度的程度可以通过max_lod_depth_for_octree_based_lod_generation字段来确定。例如,当constrained_qtbt_flag字段的值为0时,lod生成器63003可以基于由ot/qt/bt的组合生成的几何树来执行仅lod生成,并且构造几何树。可以基于num_lod_minus1、cubic_node_flag、node_direction、node_size_x、node_size_y和node_size_z字段来确定根据lod层的节点大小信息。根据实施方式,可以基于no_representation_flag字段来确定lod是否可用于可缩放表示(即,几何层是否匹配属性层)。例如,可以仅在no_representation_flag字段的值为0时在可缩放表示中使用lod。
[0668]
因此,当由发送装置通过基于ot/qt/bt生成几何树来执行几何压缩时,还可以通过基于ot/qt/bt生成lod来压缩属性信息。由此,几何的点的数目可以与属性的点的数目匹配。
[0669]
图50是例示了根据实施方式的发送点云数据的方法的流程图。
[0670]
根据实施方式的发送点云数据的方法可以包括:获取点云数据(71001);对点云数据进行编码(71002);以及发送编码后的点云数据和信令信息(71003)。在这种情况下,包含编码后的点云数据和信令信息的比特流可以封装到文件中并且被发送。
[0671]
在获取点云数据的操作71001中,可以执行图1的点云视频获取单元10001的操作的部分或全部,或者可以执行图12的数据输入单元12000的操作的部分或全部。
[0672]
在对点云数据进行编码的操作71002中,可以执行图1的点云视频编码器10002、图2的编码20001、图4的点云视频编码器、图12的点云视频编码器、图14的点云编码、图15的点云编码以及图18的点云视频编码器的操作中的一些或全部。
[0673]
根据实施方式的对点云数据71002进行编码的操作71002可以包括对点云数据的几何数据(或称为几何信息)进行编码以及对点云数据的属性数据(或称为属性信息)进行编码。
[0674]
在对几何信息进行编码的操作中,基于ot或ot/qt/bt来分割所获取的点云数据以压缩几何信息。对于通过在对几何信息进行编码的操作中基于ot或ot/qt/bt分割点云数据来生成几何树的细节,参考图16至图30的描述。在此将省略对其的描述。在对几何信息进行编码的操作中,基于通过压缩而改变的位置来重构几何信息,并且将重构的(或解码后的)几何信息输出到对属性信息进行编码的操作。在对属性信息进行编码的操作中,基于重构的几何信息和/或尚未执行几何编码的位置来压缩属性信息。在对属性信息进行编码的操
作中,可以由上述实施方式1至3中的一个或两个或更多个的组合来执行对属性信息的编码或可缩放属性编码。可以根据图47的流程图执行根据实施方式的属性信息的编码。
[0675]
在本公开中,信令信息可以是sps、gps、aps、tps、元数据等,并且几何切片头和/或属性切片头也可以称为信令信息。可以至少在aps或属性切片头中用信号通知压缩几何和压缩属性信息所需的与基于lod的属性压缩相关的信息。以上已经详细描述了与基于lod的属性压缩相关的信息,因此将省略对其的描述。
[0676]
图51是例示了根据实施方式的接收点云数据的方法的流程图。
[0677]
根据实施方式的接收点云数据的方法可以包括:接收编码后的点云数据和信令信息(81001),基于信令信息对点云数据进行解码(81002),以及对解码后的点云数据进行渲染(81003)。
[0678]
根据实施方式的接收点云数据和信令信息的操作81001可以由图1的接收器10005、图2的发送20002或解码20003或图13的接收器13000或接收处理器13001来执行。
[0679]
基于信令信息对点云数据进行解码的操作81002可以包括对几何信息进行解码和基于解码后的/重构的几何和信令信息对属性信息进行解码。信令信息可以是sps、gps、aps、tps、元数据等,并且几何切片头和/或属性切片头也可以称为信令信息。至少aps或属性切片头可以包括与基于lod的属性压缩相关的信息。以上已经详细描述了与基于lod的属性压缩相关的信息,因此将省略对其的描述。
[0680]
在根据实施方式的对几何信息进行解码的操作中,可以执行图1的点云视频解码器10006、图2的解码20003、图11的点云视频解码器、图13的点云视频解码器和图48的几何解码器的操作中的一些或全部。
[0681]
在根据实施方式的对属性信息进行解码的操作中,可以执行图1的点云视频解码器10006、图2的解码20003、图11的点云视频解码器、图13的点云视频解码器和图48的属性解码器的操作中的一些或全部。
[0682]
在根据实施方式的渲染操作81003中,可以根据各种渲染方法渲染基于解码后的几何信息和解码后的属性信息重构的点云数据。例如,点云内容的点可以被渲染为具有特定厚度的顶点、具有以顶点的位置为中心的特定最小大小的立方体、或以顶点的位置为中心的圆。渲染后的点云内容的区域的全部或部分可以通过显示器(例如,vr/ar显示器、通用显示器等)提供给用户。对点云数据进行渲染的操作81003可以由图1的渲染器10007、图2的渲染20004或图13的渲染器13011执行。
[0683]
本公开中描述的基于几何树的lod生成方法是用于划分点云数据的方法并且可以用于属性编码。具体地,当在可缩放编码应用中执行基于qtbt的几何编码时,可根据几何树的深度以一对一对应方式将属性信息与对应点/节点匹配。因此,可以针对所有深度或某些匹配深度启用可缩放表示。
[0684]
本公开提出了在点云数据具有非对称分布时提高压缩效率的lod生成方法。根据本公开中描述的实施方式的操作,可以对非对称分布的点云数据执行可缩放属性编码。更具体地,可以考虑非对称长方体节点来生成lod,并且可以根据考虑基于qtbt的几何压缩的层基于节点的变化来执行属性编码。此外,根据实施方式的发送/接收方法/装置可以执行基于ot的可缩放属性压缩。因此,点云数据的压缩效率可以提高。
[0685]
上述每个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程
的软件、处理器或硬件部分。在以上实施方式中描述的每个步骤可以由处理器、软件或硬件部分执行。在以上实施方式中描述的每个模块/块/单元可以作为处理器、软件或硬件操作。另外,实施方式提出的方法可以被作为代码执行。该代码可以被写到处理器可读存储介质上,因此,供被由设备提供的处理器读取。
[0686]
在本说明书中,当部分“包括”或“包含”元件时,这意味着,该部分还包括或包括另一个元件,除非另外提到。另外,说明书中公开的术语“...模块(或单元)”意指用于处理至少一个功能或操作的单元,并且可以由硬件、软件或硬件与软件的组合来实现。
[0687]
尽管为了简便起见参考附图中的每一个说明了实施方式,但可以通过合并在附图中例示的实施方式来设计新的实施方式。如果本领域的技术人员设计出记录有用于执行以上描述中提到的实施方式的程序的计算机可读的记录介质,则该记录介质可以落入所附权利要求书及其等同物的范围内。
[0688]
设备和方法可以不受上述实施方式的配置和方法的限制。上述实施方式可以通过完全或部分地相互选择性组合来配置,以使得能够进行各种修改。
[0689]
尽管已经参考附图描述了优选实施方式,但本领域技术人员将领会,在不脱离在所附权利要求书中描述的本公开的精神或范围的情况下,可以在实施方式中进行各种修改和变形。这种修改将不被独立于实施方式的技术思路或观点来理解。
[0690]
实施方式的设备的各种元件可以由硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由单个芯片(例如,单个硬件电路)来实现。根据实施方式,根据实施方式的部件可以被分别实现为单独的芯片。根据实施方式,根据实施方式的设备的至少一个或更多个部件可以包括能够执行一个或更多个程序的一个或更多个处理器。所述一个或更多个程序可以执行根据实施方式的操作/方法中的任一个或更多个,或包括用于执行其的指令。用于执行根据实施方式的设备的方法/操作的可执行指令可以被存储在非暂态crm或配置为由一个或更多个处理器执行的其它计算机程序产品中,或可以被存储在暂态crm或配置为由一个或更多个处理器执行的其它计算机程序产品中。另外,根据实施方式的存储器可以被用作不仅覆盖易失性存储器(例如,ram)而且覆盖非易失性存储器、闪存存储器和prom的概念。另外,它还可以按诸如通过互联网发送这样的载波形式实现。另外,处理器可读记录介质可以分布于通过网络连接的计算机系统,使得处理器可读代码可以以分布式方式来存储和执行。在本文献中,术语“/”和“,”应该被解释为指示“和/或”。例如,表述“a/b”可以意指“a和/或b”。另外,“a、b”可以意指“a和/或b”。另外,“a/b/c”可以意指“a、b和/或c中的至少一个”。“a、b、c”可以意指“a、b和/或c中的至少一个”。
[0691]
另外,在本文献中,术语“或”应该被解释为“和/或”。例如,表述“a或b”可以意指1)仅a、2)仅b和/或3)a和b二者。换句话说,本文献中的术语“或”应该被解释为“另外地或另选地”。
[0692]
实施方式的各种元件可以通过硬件、软件、固件或其组合来实现。实施方式中的各种元件可以由诸如单个硬件电路的单个芯片来执行。根据实施方式,元件可以分别由单独的芯片选择性地执行。根据实施方式,实施方式的元件中的至少一个可以在包括用于执行根据实施方式的操作的指令的一个或更多个处理器中执行。
[0693]
可以使用诸如第一和第二这样的术语来描述实施方式的各种元素。然而,根据实施方式的各种部件不应该受以上术语限制。这些术语只是用于将一个元素与另一个区分
开。例如,第一用户输入信号可以被称为第二用户输入信号。类似地,第二用户输入信号可以被称为第一用户输入信号。这些术语的使用应该被解释为不脱离各种实施方式的范围。第一用户输入信号和第二用户输入信号二者都是用户输入信号,但不意指相同的用户输入信号,除非上下文另有明确指示。
[0694]
用于描述实施方式的术语仅是出于描述特定实施方式的目的使用的,并不旨在是限制实施方式。如对实施方式的描述和权利要求书中所使用的,单数形式“一”、“一个”和“该”包括复数指示物,除非上下文另有明确规定。表述“和/或”用于包括所有可能的术语组合。诸如“包括”或“具有”这样的术语旨在指示图、数字、步骤、元件和/或部件的存在,而应当被理解为不排除图、数字、步骤、元件和/或部件的附加存在的可能性。如本文中使用的,诸如“如果”和“当”这样的条件表述不限于可选情况,而旨在当满足特定条件时被解释为根据特定条件执行相关操作或解释相关定义。
[0695]
本发明的模式
[0696]
如上所述,已经以执行实施方式的最佳模式描述了相关内容。
[0697]
工业实用性
[0698]
如上所述,实施方式可以完全或部分应用于点云数据发送/接收装置和系统。本领域的技术人员将清楚,可以在实施方式的范围内对实施方式进行各种修改或变形。因此,实施方式旨在涵盖本公开的修改和变形,前提是它们落入所附权利要求书及其等同物的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献