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

编码和解码的方法、编码器、解码器和软件

2022-06-09 00:11:45 来源:中国专利 TAG:


1.本技术总体涉及点云压缩。优选地,本技术涉及用于改进点云的熵编码的编码和解码方法以及编码器和解码器。


背景技术:

2.3d点云替代3d网格,近来已成为流行的3d媒体信息表征。与点云数据相关联的用例非常多样化,并且包括:
3.·
电影制作中的3d资产(asset),
4.·
用于实时3d沉浸式临场感或虚拟现实(vr)应用的3d资产,
5.·
3d自由视点视频(例如,用于观看体育运动),
6.·
地理信息系统(制图),
7.·
文化遗产(以数字形式存储易损资产),
8.·
自动驾驶(大型3d环境映射),等等。
9.点云是3d空间中的点集,每个点都具有关联的属性,例如颜色、材质特性等。可利用点云将对象或场景重构为这些点的组合。可利用具有不同设置的多个摄像机和深度传感器来采集点云,点云可以由数千个甚至多达数十亿个点组成,以便真实地再现重构的场景。
10.需要存储点云的各个点的位置(通常将x、y、z信息编码为32位或64位的浮点数)和其属性(通常至少呈现24位编码的rgb颜色)。有时点云中具有数十亿个点,因而很容易解释点云的原始数据可多达数千兆字节。因此,迫切需要压缩技术以减少表征点云所需的数据量。
11.针对点云压缩,开发了两种不同的方法:
12.第一,在基于视频的点云压缩(video based point cloud compression,vpcc)方法中,点云压缩通过以下方式进行:使点云在3个不同的轴x、y、z和不同深度上进行多次投影,使得所有的点都出现在一个投影图像中。然后,将投影图像处理成部分(patch)以消除冗余,并重新排列成最终图像,在该最终图像中附加的元数据被用来将像素位置转换为空间中的点位置。然后,使用传统的图像/视频mpeg编码器执行压缩。这种方法的优势在于,其再利用现有的编码器并且自然地支持动态点云(使用视频编码器),但是这种方法几乎不适用于稀疏点云,并且预期使用点云专用方法可以提高压缩增益。
13.第二,在基于几何结构的点云压缩(geometry based point cloud compression,gpcc)方法中,点位置(通常称为几何结构)和点属性(颜色、透明度等)被分别编码。为了对几何结构进行编码,使用了八叉树结构。将整个点云适配到一个立方体,不断地将该立方体分割为八个子立方体,直到每个子立方体只包含单个点。因此,点的位置被树的每个节点的占位信息所取代。由于每个立方体只有8个子立方体,所以3比特就足以对占位进行编码,因此对于深度d的树,需要3d比特来编码一个点的位置。虽然这种变换单独不足以提供显著的压缩增益,但应注意的是,由于是树结构,因此很多点共享相同的节点值,而且由于使用了熵编码器,因可以显著减少信息量。
14.考虑到许多点云包括表面,因此在当前的gpcc设计中,引入了平面编码模式来对适用八叉树的此类节点进行更有效的编码。
15.因此,引入了标志isplanar,该标志指示占位子节点是否属于同一水平面。如果isplanar为真,则利用额外的比特来标志planeposition,以指示该平面是在下平面还是在上平面。
16.通过采用二进制算术编码器对isplanar标志进行编码,其中,利用3比特的上下文信息作为表示垂直于平面的轴的平面上下文信息。此外,如果节点是平面的,则通过采用二进制算术编码器对planeposition信息进行编码,其中,利用72(=2x3x2x2)比特的上下文信息作为包括以下信息项的平面位置上下文信息:
17.a)与当前节点相邻的两个垂直邻节点(neighbor)的占位(4个上下文:00、01、10、11),
18.b)与位于相同坐标和深度处的最近已编码节点的距离d,d被离散化为三个值:“近”或“不太远”或“远”,
19.c)位于相同坐标和深度处的最近已编码节点的平面位置(如果有),以及
20.d)axisidx(值=0、1或2),标识正交于平面的轴。
21.此外,对于稀疏点云数据还引入了角度编码模式,以使用角度上下文来增强平面编码模式,在大多数情况下在稀疏点云数据中相邻节点占位趋于零(即,空)。更具体地,角度编码模式将对planeposition编码时的上下文信息替换为减少的上下文信息,并且仍然使用与平面编码模式相同的上下文模型对isplanar标志进行算术编码。
22.然而,在当前的点云编码和解码方法中,没有考虑相邻节点的信息。
23.因此,本发明的目的是提供一种编码和解码方法以及编码器和解码器,以支持点云的快速且准确的数据压缩。


技术实现要素:

24.在本发明的一方面,提供一种用于对点云进行编码以生成压缩点云数据的比特流的方法,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,所述方法包括以下步骤:
25.确定当前节点的上下文信息,所述上下文信息包括针对至少一个几何轴的平面位置上下文信息,其中,根据在所述至少一个几何轴上与所述当前节点直接相邻的相邻节点的占位以及与所述当前节点具有相同父节点的至少一个同级节点的占位来确定所述当前节点在所述至少一个几何轴上的平面位置上下文信息;以及
26.基于确定的上下文信息对所述当前节点的占位信息进行熵编码,以产生所述比特流的编码数据。
27.其中,所述上下文信息包括当前节点的平面位置上下文信息,其指示当前节点中的平面位置的可能性,即当前节点中的平面位置的预测,其中,基于相邻节点的占位和至少一个同级节点的占位来确定平面位置上下文信息。该相邻节点位于树结构的与当前节点相同的深度d处,并且与当前节点直接相邻,即与当前节点共享公共表面。其中,相邻节点具有与当前节点不同的父节点(在深度d-1处)。此外,根据至少一个或多个同级节点的占位来确
定平面位置上下文信息。至少一个或多个同级节点与当前节点共享公共父节点,并且位于树结构中的相同深度d上。其中,占位指示相应节点是否包括点云的至少一个点。平面位置上下文信息包括关于由通过当前节点的点云表征的可能平面位置或表面位置的信息。其中,考虑关于当前节点的至少一个同级节点和一个相邻节点的占位的信息,以确定用于熵编码的上下文信息。因此,可以对当前子节点的占位做出更可靠的预测,这可以用于通过熵编码器来增加数据的缩减量。以这种方式,遍历完整树以确定每个节点的占位,并为熵编码器提供足够的上下文信息,从而减少用于表征点云所需的数据量。
28.优选地,沿着所考虑的几何轴直接在当前节点之前或之后,相邻节点沿着所考虑的几何轴与当前节点共享公共表面。所述几何轴可以是x、y、z轴之一。例如,如果考虑x轴,则相邻节点沿x轴布置为直接在当前节点前面或后面。因此,所述相邻节点取决于所考虑的轴来选择,以在上下文信息的确定中包括相邻节点的占位信息。
29.优选地,所述至少一个或多个同级节点包括以下之一:
30.沿着几何轴直接在所述当前节点之前的一个同级节点,与所述当前节点共享面,以及优选地,所述一个同级节点的子级节点的占位;或者
31.沿着所述几何轴直接在所述当前节点之后的位于平面中的一组四个同级节点,其中,所述平面垂直于所考虑的几何轴。
32.所述几何轴可以是x、y、z轴之一。所述至少一个或多个同级节点可以包括一个同级节点。因此,如果考虑x轴,所述一个同级节点沿着x轴被布置为直接在当前节点之前。或者,所述至少一个或多个同级节点可以包括布置在垂直于x轴的平面(即y-z平面)中的一组四个同级节点。其中,所述一组四个同级节点布置为沿x轴直接在当前节点之后的平面中。
33.优选地,沿着全部三个几何轴来确定所述平面上下文信息。因此,沿着每个轴来评估由点云的点表示的平面或表面。
34.优选地,对于给定的几何轴,如果当前节点位于父节点的低平面上,则所述平面位置上下文信息根据相邻节点的一组子级节点的占位和位于父节点的高平面中的一组四个同级节点的占位来确定,其中,每个子级节点与当前节点共享面。
35.其中,当前节点的父节点沿着特定轴定义了垂直于该特定轴的两个平面。在八叉树结构中,每个平面由四个节点组成。沿着所述特定轴,首先布置低平面,然后布置高平面。例如,沿着x轴,y-z平面中父节点的最先四个节点形成低平面,而同一父节点中的后面四个节点形成高平面。低平面和高平面的这种顺序也是编码的顺序。此外,树结构中位于深度d 1的相邻节点的一组子级节点的占位被用来确定平面位置上下文信息。其中,相邻节点的所考虑的一组子级节点中的每个子级节点与当前节点共享公共表面。另外,由于当前节点位于低平面上,所以相邻节点被布置为沿着所考虑的轴直接在当前节点之前。其中,子级节点与当前节点不具有相同的父节点。相反,所述一组四个同级节点与当前节点共享公共父节点,并布置在公共父节点的高平面上。因此,所述一组四个同级节点被布置为沿着所考虑的轴直接在当前节点之后。为了确定平面位置上下文信息,关于子级节点的占位和同级节点的占位的信息被包括在内,以提高上下文模型的预测。因此,可以获得足够的信息来提供关于待编码的平面位置上下文信息的可靠预测。
36.优选地,如果所述相邻节点的所述一组子级节点中的至少一个子级节点被占位,并且所述一组同级节点中的所有同级节点未被占位,所述平面位置上下文信息包括平面位
于所述当前节点中的可能性和低平面位置的可能性。
37.优选地,如果所述相邻节点的所述一组子级节点中的所有子级节点未被占位,并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和高平面位置的可能性。
38.优选地,如果所述相邻节点的所述一组子级节点中的所有子级节点未被占位,并且所述一组同级节点中的所有同级节点未被占位,则所述平面位置上下文信息是未知的。
39.优选地,如果所述相邻节点的所述一组子级节点中的至少一个子级节点被占位,并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息是未知的。
40.优选地,对于已编码节点的占位不可用的情况,即adjacent_child_contextualization_enabled_flag设置为零的情况,如果当前节点位于低平面,以下应用:
41.如果所述相邻节点未被占位并且所述一组同级节点中的所有同级节点未被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和低平面位置的可能性;
42.如果所述相邻节点未被占位并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息包括平面位于当前节点中的可能性和高平面位置的可能性;
43.如果所述相邻节点未被占位并且所述一组同级节点中的所有同级节点未被占位,则所述平面位置上下文信息是未知的;以及
44.如果所述相邻节点被占位并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息是未知的。
45.因此,即使在由于数据限制而使已编码节点的占位不再可用的情况下,仍可以关于平面位置上下文信息进行足够的推断。其中,考虑相邻节点的占位,而不是相邻节点的一组子级节点。
46.优选地,对于给定的几何轴,如果当前节点位于父节点的高平面,则根据在父节点的低平面中的一个同级节点的一组子级节点的占位和关于当前节点与一个同级节点相对的相邻节点的占位来确定平面位置上下文信息,其中,每个子级节点与当前节点共享面。其中,当前节点的父节点沿着特定轴定义了垂直于该特定轴的两个平面。每个平面由四个节点组成。沿着所述特定轴,首先布置低平面,然后布置高平面。例如,沿着x轴,y-z平面中父节点的最先四个节点形成低平面,而当前父节点中后面的四个节点形成高平面。低平面和高平面的这种顺序也是编码的顺序。此外,树结构中位于深度d 1的一个同级节点的一组子级节点的占位被用来确定平面位置上下文信息。其中,同级节点的所考虑的一组子级节点中的每个子级节点与当前节点共享公共表面。另外,如果当前节点位于高平面上,所述同级节点被布置为沿着所考虑的轴直接在当前节点之前,即在低平面上。其中,子级节点与当前节点具有相同的父节点。相反,所述相邻节点具有与当前节点不同的父节点(在深度d-1处),并且被布置为沿着所考虑的轴直接在当前节点之后并且关于当前节点与所述一个同级节点相对。为了确定平面位置上下文信息,关于所述一个同级节点的子级节点的占位和相邻节点的占位的信息被包括在内,以提高上下文模型的预测。因此,可以获得足够的信息来提供关于待编码的平面位置上下文信息的可靠预测。
47.优选地,如果所述同级节点的所述一组子级节点中的至少一个子级节点被占位,并且所述相邻节点未被占位,所述平面位置上下文信息包括平面位于所述当前节点中的可能性和低平面位置的可能性。
48.优选地,如果所述同级节点的所述一组子级节点中的所有子级节点未被占位,并且所述相邻节点被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和高平面位置的可能性。
49.优选地,如果所述同级节点的所述一组子级节点中的所有子级节点未被占位,并且所述相邻节点未被占位,则所述平面位置上下文信息是未知的。
50.优选地,如果所述一个同级节点的所述一组子级节点中的至少一个子级节点被占位,并且所述相邻节点被占位,则所述平面位置上下文信息是未知的。
51.优选地,对于已编码节点的占位不可用的情况,即adjacent_child_contextualization_enabled_flag设置为零的情况,如果当前节点位于高平面,以下应用:
52.如果所述一个同级节点被占位,并且所述相邻节点未被占位,所述平面位置上下文信息包括平面位于所述当前节点中的可能性和低平面位置的可能性;
53.如果所述一个同级节点未被占位,并且所述相邻节点被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和高平面位置的可能性;
54.如果所述一个同级节点未被占位,并且所述相邻节点未被占位,则所述平面位置上下文信息是未知的;以及
55.如果所述一个同级节点被占位,并且所述相邻节点被占位,则所述平面位置上下文信息是未知的。
56.因此,即使在由于数据限制而使已编码节点的占位不再可用的情况下,通过同级节点本身和相邻节点的占位,仍可以关于平面位置上下文信息进行足够的推断。其中,考虑一个同级节点本身的占位,而不是同级节点的一组子级节点。
57.优选地,如果所述编码模式是平面编码模式,对于至少一个几何轴,优选地,对于每个几何轴,所述平面位置上下文信息包括以下中的一个或多个:
58.对于当前节点确定的推断平面位置,如上所述;
59.与在相应父节点中位于相同坐标并且在所述基于八叉树的结构中位于相同深度d的最近已编码节点的距离d;
60.在相应父节点中位于相同坐标并且在所述基于八叉树的结构中位于相同深度d的最近已编码节点的平面位置;以及
61.正交于所述平面的轴的指示。
62.其中,具体地,将推断的平面位置离散化为“预测低”、“预测高”和“未知”的值。此外,距离d被离散化为“近”、“不太远”和“远”的值。如果位于相同坐标和深度d处的已编码节点存在,则在上下文信息中也可以包括平面位置,即“高”或“低”。垂直于平面的轴可以具有0、1或2的值。其中,各个节点的坐标是其父节点内的相对位置。具体地,平面位置上下文信息包括上述信息中的一个以上或全部。具体地,在平面编码模式中,平面位置上下文信息可以由上述信息组成。
63.优选地,通过使用具有54(=3
×3×2×
3)上下文比特的二进制算术编码器对平面位置上下文信息进行编码。因此,与现有的平面位置上下文模型相比,通过调整平面位置上
下文信息可以提高编码效率,同时减少所需的信息量。
64.优选地,如果在相应父节点中位于相同坐标以及在基于八叉树的结构中位于相同深度d处的最近已编码节点不存在,则平面位置上下文信息仅包括根据上述至少一个同级节点和相邻节点的占位的当前节点的平面位置。因此,在这种情况下,仅根据从相邻节点和至少一个同级节点收集的信息来确定平面位置上下文信息。更多信息无法获取,因此无法使用。但是由于包括来自相邻节点和至少一个同级节点的信息,因此即使在这种情况下,高效压缩也是可行的。
65.优选地,如果编码模式是角度编码模式并且当前节点不适合角度编码模式,则编码上下文信息包括平面位置上下文信息,其中,平面位置上下文信息仅包括:
66.如上所述,根据至少一个同级节点和相邻节点的占位的当前节点的平面位置。
67.因此,在这种情况下,使用平面编码模式的平面位置上下文信息。
68.在本发明的一方面,提供一种用于对压缩点云数据的比特流进行解码以生成重构点云的方法,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,所述方法包括以下步骤:
69.基于所述当前节点的上下文信息对所述比特流进行熵解码,其中,所述上下文信息包括针对至少一个几何轴的平面位置上下文信息,并且根据在所述至少一个几何轴上与所述当前节点直接相邻的相邻节点的占位以及与所述当前节点具有相同父节点的至少一个同级节点的占位来确定所述当前节点在所述至少一个几何轴上的平面位置上下文信息。
70.其中,所述上下文信息包括当前节点的平面位置上下文信息,其指示当前节点中的平面位置的可能性,即当前节点中的平面位置的预测,其中,基于相邻节点的占位和至少一个同级节点的占位来确定平面位置上下文信息。该相邻节点位于树结构的与当前节点相同的深度d处,并且与当前节点直接相邻,即与当前节点共享公共表面。其中,相邻节点具有与当前节点不同的父节点(在深度d-1处)。此外,根据至少一个或多个同级节点的占位来确定平面位置上下文信息。至少一个或多个同级节点与当前节点共享公共父节点,并且位于树结构中的相同深度d上。其中,占位指示相应节点是否包括点云的至少一个点。平面位置上下文信息包括关于由通过当前节点的点云表示的可能平面位置或表面位置的信息。其中,考虑关于当前节点的至少一个同级节点和一个相邻节点的占位的信息,以确定用于熵编码的上下文信息。因此,可以对当前子节点的占位做出更可靠的预测,这可以用于通过熵编码器来增加数据的缩减量。以这种方式,遍历完整树以确定每个节点的占位,并为熵编码器提供足够的上下文信息。
71.优选地,所述解码方法进一步根据以上关于编码方法所述的特征来构建。这些特征可以与解码方法自由组合。
72.在本发明的一方面,提供了一种编码器,用于对点云进行编码以生成压缩点云数据的比特流,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,所述编码器包括:
73.处理器,以及
74.存储器存储设备,其中,所述存储器存储设备中存储有能够由所述处理器执行的
指令,当所述指令被执行时,使所述处理器执行根据上述用于编码和解码的方法。
75.在本发明的一方面,提供了一种解码器,用于对压缩点云数据的比特流进行解码以生成重构点云,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,所述解码器包括:
76.处理器,以及
77.存储器存储设备,所述存储器存储设备中存储有能够由所述处理器执行的指令,当所述指令被执行时,使所述处理器执行上述解码的方法。
78.在本发明的一方面,提供了一种非暂时性计算机可读存储介质,该介质存储有处理器执行的指令,当所述指令由处理器执行时,使所述处理器执行上述编码和/或解码的方法。
附图说明
79.现在将以举例的方式参考附图,其中附图示出了本技术的示例性实施例,在附图中:
80.图1为示出点云编码器的整体视图的框图,
81.图2为示出点云解码器的整体视图的框图,
82.图3为八叉树数据结构的示意图,
83.图4对每个节点中的八个子节点进行了编号,
84.图5为上下文信息的图示,
85.图6示出了本发明的具体实施例,
86.图7示出了本发明的具体实施例,
87.图8为示出本发明的第一实施例和第二实施例的步骤的流程图,
88.图9为编码器设备的示意图,以及
89.图10为解码器设备的示意图。
具体实施方式
90.本技术描述了用于对点云进行编码和解码的方法以及用于对点云进行编码和解码的编码器和解码器。与子体相关联的当前父节点被进一步分割为多个子体,每个进一步的子体对应于当前父节点的子节点,并且在编码器处,确定当前节点的上下文信息,该上下文信息包括至少一个几何轴的平面位置上下文信息,其中,当前节点在至少一个几何轴上的平面位置上下文信息是根据与当前节点直接相邻的相邻节点在至少一个几何轴上的占位和与当前节点具有相同父节点的至少一个同级节点(sibling node)的占位来确定的。熵编码器基于所确定的平面上下文信息来对占位模式进行编码,以产生用于比特流的编码数据。解码器确定相同的上下文信息,并对比特流进行熵解码,以重构占位模式。
91.通过结合附图研读以下对示例的描述,本领域的普通技术人员将理解本技术的其他方面和特征。
92.有时在下面的描述中,术语“节点(node)”和“子体(sub-volume)”可以互换使用。应理解的是,节点与子体相关联。节点是树上的特定点,该特定点可以是内部节点或叶节
点。子体是节点表征的有界物理空间。术语“体(volume)”可用来指所定义的包含点云的最大有界空间。为了构建互连节点的树结构以对点云数据进行编码,将“体”递归地划分为子体。
93.点云是三维坐标系中的点的集合。这些点通常旨在表征一个或多个对象的外表面。每个点在三维坐标系中都有一个定位(位置)。该位置可以由笛卡尔坐标系或任何其他坐标系中的三个坐标(x,y,z)表示。这些点可以具有例如颜色的其他关联属性,其在某些情况下也可以是三分量值,例如r、g、b或y、cb、cr。取决于所期望的点云数据的应用,其他关联属性还可以包括透明度、反射率、法线矢量等。
94.点云可以是静态的,也可以是动态的。例如,对物体或地形的详细扫描或映射可以是静态点云数据。用于机器视觉用途的基于lidar的环境扫描可以是动态点云数据,因为点云(至少潜在地)随时间(例如,随着每次连续扫描“体”)而变化。因此,动态点云是按时间排序的点云序列。
95.点云数据可以用于许多应用中,例如,包括保藏(对历史文物的扫描)、地图绘制、机器视觉(例如,自动驾驶或半自动驾驶汽车)和虚拟现实系统等。用于如机器视觉等应用的动态点云数据可以与用于如保藏用途的静态点云数据完全不同。例如,汽车视觉通常涉及相对较低的分辨率、无色彩且高动态性的点云,所述点云是通过具有高采集频率的lidar(或类似)传感器获得的。这种点云的目的不是供人类使用或查看,而是用于决策过程中的机器对象检测/分类。例如,典型lidar框架(frame)包含顺序的数万个点,而高质量的虚拟现实应用则需要数百万个点。可以预期,随着计算速度提高和新应用出现,随着时间的推移,将会需要更高分辨率的数据。
96.尽管点云数据很有用,但缺乏有效和高效的压缩——即编码和解码处理——可能会妨碍采用和部署。
97.用于对点云数据进行编码的较为常见机制之一是使用基于树的结构。在基于树的结构中,将点云的有界三维体递归划分为子体。树的节点对应于子体。可以基于树的分辨率和/或子体中是否包含任何点来确定是否进一步划分子体。叶节点可以具有占位标志,该占位标志指示其关联子体是否包含点。分割标志可以表示节点是否具有子节点(即,当前体是否已被进一步分割为子体)。在一些情况下,可以对这些标志进行熵编码,并且在一些情况下,可以使用预测编码。
98.常用的树结构是八叉树。在这种结构中,体/子体都是立方体,并且子体的每次分割都会进一步产生八个子体/子立方体。这种树结构的例子在图3中示出,其具有可以表征包含完整点云的体的节点30。该体被拆分割成八个子体32,每个子体与图3的八叉树中的一个节点相关联。含有点的节点指示包含点云的至少一个点35的占位节点34,而空节点36表征不包含点云的点的子体。如图3所示,占位节点可以进一步被分割成八个子体,这八个子体分别与特定父节点40的各子节点38相关联,以确定父节点40的占位模式。如图3所示,示例性父节点40的占位模式可以以二进制形式表示为“00100000”,其指示被占位的第三子节点38。在一些实施方式中,这种占位模式由二进制熵编码器进行编码以生成点云数据的比特流。
99.现在参考图1,其示出了根据本技术的方面的点云编码器10的简化框图。点云编码器10接收点云数据12,并且可以包括用于产生八叉树的树构建模块,八叉树表征包含点云
的体空间的几何结构,并指示点云的点在该几何结构中的的定位或位置。
100.用于创建八叉树以对点云进行编码的基本处理可以包括:
101.1.在坐标系中从包含点云的有界体(立方体)开始;
102.2.将该有界体分割成8个子体(八个子立方体);
103.3.对于每个子体,如果该子体为空,则用0标记该子体;或者,如果该子体中有至少一个点,则用1标记该子体;
104.4.对于所有标记为1的子体,重复(2)以分割这些子体,直到达到最大分割深度或者在每个子体中至多有一个点。
105.可以以预定顺序(在每个划分出的子体内,在宽度上优先或在深度上优先,并且根据扫描模式/顺序)遍历树,以产生表征每个节点的占位模式的比特序列。
106.然后,可以使用熵编码器16对该比特序列进行编码以产生压缩比特流14。熵编码器16可以使用上下文模型18对比特序列进行编码,该上下文模型18指定了熵编码器16基于上下文确定来对比特进行编码的概率。在对每个比特或定义的比特集进行编码之后,可以自适应地更新上下文模型18。
107.像视频编码或图像编码一样,点云编码可以包括预测性操作,在这些操作中,会努力预测子体的模式,并对预测的残差进行编码,而不是对模式本身进行编码。预测可以是空间的(取决于相同点云中先前编码的子体)或时间的(取决于按时间排序的点云序列中的先前编码的点云)。
108.在图2中示出了与编码器10相对应的示例性点云解码器20的框图。点云解码器20包括熵解码器22,熵解码器22使用与编码器10所使用的相同的上下文模型24。熵解码器22接收压缩数据的输入比特流26,并且对该数据进行熵解码以产生解压缩比特的输出序列。然后,该序列由树重构器转换为经重构的点云数据。树重构器根据解压缩的数据和将树数据二进制化的扫描顺序的知识来重构树结构28。因此,树重构器能够重构点云中点的位置。
109.参照图4,示出了将父节点112被分割为八个子节点110,这八个子节点110为2
×2×
2的立方体,每个立方体具有相同的大小并且其边长是与父节点112相关联的立方体的边长的一半。此外,图4指示父节点112内的子节点110使用的编号。在以下进一步的说明中将使用图4中所示的编号系统。其中,图4还指示出所示出的父节点112在由几何轴x、y、z表示的三维空间中的空间方位。
110.其中,占位模式可以包括关于某个节点是否被占位以及该节点中的点是否属于表面的平面信息。通常,现实世界是由封闭的表面所占据的。对于室内房间尤其如此,对于城市室外场景也是如此。这个事实为熵编码器和解码器所采用。如果可以检测到由点云表征的表面,则可以对该表面上点的分布进行预测,从而可以确定属于该表面的某个节点的占位概率。这可以通过定义用于对比特流中的isplanar标志进行编码和解码的上下文信息来实现。其中,isplanar标志通常是针对某个节点利用平面上下文信息进行编码的二进制值,该isplanar标志用于表征该节点属于某个表面的普遍可能性。除了在节点中存在表面这一事实之外,还可以考虑其他平面信息,例如用于编码指示当前子节点内平面的位置的planeposition标志的平面位置上下文信息。planeposition标志也可以是二进制值,其值“高”和“低”表示节点中的相应位置。该平面信息被用于通过熵编码器/解码器使用平面上下文信息编码到比特流,从而减少比特流的数据。进一步的平面位置信息可以与平面位置
上下文信息相关联,以更可靠地预测相应节点中的表面,从而更可靠地预测相应节点中的占位。
111.此外,存在应用于不同类型点云的使用不同上下文信息的附加编码模式。因此,定义了平面编码模式和角度编码模式。其中,角度编码模式优选地应用于稀疏分布的点云,意图是向熵编码器/解码器提供角度上下文信息。其中,可以在比特流的元数据中指示编码模式。
112.因此,根据本发明,在平面编码模式的情况下,在当前节点中存在平面的情况下,上下文信息包括如上所述的平面上下文信息和平面位置上下文信息。其中,平面上下文包括平面经由当前节点的可能性。此外,如下面更详细地描述的,根据相邻节点和与当前节点具有相同父节点的至少一个同级节点的占位来确定当前节点的平面位置上下文信息。另外,在图5中描绘了平面位置上下文信息。平面位置上下文信息包括以下信息:
113.a)当前节点中的推断出的平面位置,如下文更详细描述的;
114.b)与在相应父节点中位于相同坐标以及在基于八叉树的结构中位于相同深度d处的最近已编码节点的距离d;
115.c)在相应父节点中位于相同坐标以及在基于八叉树的结构中位于相同深度d处的最近已编码节点的平面位置;以及
116.d)正交于平面的轴的指示。
117.其中,具体地,将平面位置上下文信息离散化为值“预测低”、“预测高”和“未知”。此外,距离d被离散化为值“近”、“不太远”和“远”。如果树结构中位于相同坐标和深度d处的已编码节点已经存在,则在上下文信息中也可以包括平面位置,即“高”或“低”。垂直于平面的轴可以具有值0、1或2。其中,各个节点的坐标是其父节点内的相对位置。
118.因此,平面上下文信息是1比特(平面或无平面),并且平面位置上下文信息是3
×3×2×
3=54比特信息。
119.为了确定在平面位置上下文信息中对平面位置的预测,参考图6和图7,图6和图7示出在八叉树结构中具有八个节点的当前父节点132。其中,至少一个子节点被占位。此外,图6和图7中示出了相邻节点126。其中,作为父节点132的子节点,当前节点120的上下文信息应被评估并用于熵编码。其中,如果当前节点120位于八叉树结构中的深度d处,则父节点132处于深度d-1处,而相邻节点126也位于八叉树结构中的深度d处。此外,当前父节点132的子节点被表示为与当前节点120共享公共父节点132的同级节点。其中,相邻节点具有与当前节点不同的父节点。在预测当前节点120在某个八叉树级别d处的上下文信息时,利用沿几何轴x、y、z中的每一个几何轴在八叉树中的三个相邻的相邻节点126的占位信息(如果相邻节点在解码顺序上在当前节点之前,则甚至相邻节点126的子节点(在d 1级)的占位是已知并且可以加以考虑。如果相邻节点126在解码顺序上在当前节点之后,则至少相邻节点126的占位(在d级)是已知的,并且可以用于预测)。由于这三个先前的相邻节点与当前节点120相邻,因此这些相邻节点的占位与待编码的当前节点120的占位之间存在相关性。这些信息易于获得,但目前还没有在现有的编码和解码方法中使用。例如,如果评估当前节点120沿着x轴的上下文信息,则可以考虑沿着x轴直接相邻的相邻节点。因此,在解码期间,先前节点的占位为解码器已知,并可用于确定上下文信息。如果沿着y轴评估上下文信息,则可以考虑沿着y轴直接相邻当前节点120的相邻节点。此信息也为解码器已知,并且可以容
易地用于获取当前节点120的可靠上下文信息。
120.此外,同级节点130的占位也是已知的,因为对于当前父节点132,首先确定其子节点的占位,然后,在后续步骤中,确定子节点的上下文信息。因此,在对当前节点120进行解码时,在解码器侧已知同级节点的占位信息。此信息未被用于当前的编码和解码方法中。因此,本发明还额外使用此信息以提高编码和解码的效率。
121.在考虑当前节点的占位与相邻节点和至少一个同级节点的占位之间的相关性时,还必须考虑待编码的当前节点的位置。其中,平面位置指示当前节点的父节点沿着所考虑的轴的平面和垂直于该几何轴的平面。例如,沿x轴,低平面由子节点0、1、2、3定义,而高平面由子节点4、5、6、7定义。沿y轴,低平面由子节点0、1、4、5定义,高平面由子节点2、3、6、7定义。沿z轴,低平面由子节点0、2、4、6定义,高平面由子节点1、3、5、7定义。
122.现在参考图6,图6示出了以下配置:如何确定平面位置上下文信息,尤其是根据当前节点120的相邻节点126的占位以及当前节点120在同一父节点132内的同级节点的占位信息来确定对于平面位置的预测,其可随后用于熵编码中以压缩点云数据。在这方面,本发明的目的是考虑与当前子节点120直接相邻的相邻节点126的占位以及同级节点的占位,并且在对当前节点进行编码时将这些信息合并到上下文信息中。其中,图6表示待编码的当前节点120处于当前父节点132的低位置的情况。
123.图6(a)示出沿x轴的平面上下文信息的确定。应评估当前节点120的上下文信息,尤其是平面位置上下文信息。因此,评估位于当前父节点132的高平面的一组四个同级节点130的占位以及直接相邻当前节点120的相邻节点126的占位。其中,相邻节点126沿待评估的x轴布置。例如,如图6(a)所示,如果当前节点120位于当前父节点132中的位置0,则要考虑的相邻节点位于直接相邻的相邻父节点中的位置4,依此类推。此外,相邻节点126按照解码顺序、即沿着x轴排列在当前节点120之前。因此,在对当前节点120进行解码时,关于相邻节点126的所有信息已经可用。具体地,关于作为八叉树结构中深度d 1处的相邻节点126的子节点的子级节点(sub-node)的占位信息是已知的。另外,在对当前节点120的信息进行编码期间,关于相邻节点126的信息也是已知的,因为点云的各个点的位置以及因此各个节点的占位完全为编码器已知。
124.具体地,为了确定当前节点120的上下文信息,考虑相邻节点126的第一组子级节点128(作为相邻节点126的子节点)以及第二组130(作为当前父节点120的子节点,即,当前节点120的同级节点)。其中,相邻节点126的第一组四个子级节点128直接相邻当前节点120。因此,第一组子级节点128各自与当前父节点120共享公共表面。由于当前节点120位于其父节点132的低平面中,所以相邻节点126的第一组被考虑的子级节点128位于相邻节点126的高平面上。当前父节点132的第二组四个同级节点130与相邻节点128直接相对。因此,由于当前节点120位于其父节点132的低平面上,第二组四个同级节点130位于公共父节点132的高平面上。因此,通过这两组节点,可以提供上下文信息的可靠确定,并且可以对平面位置进行预测。点云中穿过当前节点120的表面也很可能穿过由第一组128或第二组130限定的平面之一,因此当前节点120的上下文信息强烈依赖于第一组128的占位和/或第二组130的占位。
125.一般而言,对于当前节点位于父节点的低平面上的情况,平面位置上下文信息是根据相邻节点的一组子级节点的占位(其中,每个子级节点与当前节点共享一个面)以及位
于父节点的高平面上的一组四个同级节点的占位来确定的。如果相邻节点的所述一组子级节点中的至少一个子级节点被占位,并且所述一组同级节点中的所有同级节点都未被占位,则平面位置上下文信息包括当前节点中的平面的可能性和低平面位置的可能性。如果相邻节点的所述一组子级节点中的所有子节点都未占位,并且所述一组同级节点中的至少一个同级节点被占位,则平面位置上下文信息包括平面位于当前节点中的可能性和高平面位置的可能性。如果相邻节点的所述一组子级节点中的所有子级节点都未占位,并且所述一组同级节点中的所有同级节点都未占位,则平面位置上下文信息为“未知”。如果相邻节点的所述一组子级节点中的至少一个子级节点被占位,并且所述一组同级节点中的至少一个同级节点被占位,则平面位置上下文信息为“未知”。
126.更具体而言,根据图6(a),如果当前节点位于低平面上,则对于沿x轴的评估以及图4所示的编号系统:
127.·
如果相邻节点126的子级节点4至7中的至少一个被占位,并且所述一组同级节点130中的所有同级节点4至7未被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和低平面位置的可能性。
128.·
如果相邻节点126的子级节点4至7未被占位,并且所述一组同级节点130中的同级节点4至7中的至少一个被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和高平面位置的可能性。
129.·
如果相邻节点126的子级节点4至7未被占位,并且所述一组同级节点130中的同级节点4至7未被占位,则平面位置上下文信息为“未知”。
130.·
如果相邻节点126的子级节点4至7中的至少一个被占位,并且所述一组同级节点130中的同级节点4至7中的至少一个被占位,则平面位置上下文信息为“未知”。
131.因此,对于编码,在对位于低位置的当前节点执行熵编码时,将当前节点中垂直于x轴的平面的位置的概率视为上下文信息。其中,该信息可作为平面编码模式和角度编码模式下的平面位置上下文信息。
132.根据图6(b),对于沿y轴的评估,为了确定当前节点120的平面位置上下文信息,如果当前节点位于低平面上,则设置如下:
133.·
如果相邻节点126的子级节点2、3、6、7中的至少一个被占位,并且所述一组同级节点130中的所有同级节点2、3、6、7未被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和低平面位置的可能性。
134.·
如果相邻节点126的子级节点2、3、6、7未被占位,并且所述一组同级节点130中的同级节点2、3、6、7中的至少一个被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和高平面位置的可能性。
135.·
如果相邻节点126的子级节点2、3、6、7未被占位,并且所述一组同级节点130中的同级节点2、3、6、7未被占位,则平面位置上下文信息为“未知”。
136.·
如果相邻节点126的子级节点2、3、6、7中的至少一个被占位,并且所述一组同级节点130中的同级节点2、3、6、7中的至少一个被占位,则平面位置上下文信息为“未知”。
137.因此,对于编码,在对位于低位置的当前节点执行熵编码时,将当前节点中垂直于y轴的平面的位置的概率视为上下文信息。其中,该信息可作为平面编码模式和角度编码模式下的平面位置上下文信息。
138.根据图6(c),对于沿z轴的评估,为了确定当前节点120的平面上下文信息,如果当前节点位于低平面上,则设置如下:
139.·
如果相邻节点126的子级节点1、3、5、7中的至少一个被占位,并且一组同级节点130中的所有同级节点1、3、5、7未被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和低平面位置的可能性。
140.·
如果相邻节点126的子级节点1、3、5、7未被占位,并且一组同级节点130中的同级节点1、3、5、7中的至少一个被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和高平面位置的可能性。
141.·
如果相邻节点126的子级节点1、3、5、7未被占位,并且一组同级节点130中的同级节点1、3、5、7未被占位,则平面位置上下文信息为“未知”。
142.·
如果相邻节点126的子级节点1、3、5、7中的至少一个被占位,并且一组同级节点130中的同级节点1、3、5、7中的至少一个被占位,则平面位置上下文信息为“未知”。
143.因此,对于编码,在对位于低位置的当前节点执行熵编码时,将当前节点中垂直于z轴的平面的位置的概率视为上下文信息。其中,该信息可作为平面编码模式和角度编码模式下的平面位置上下文信息。
144.如上所示,如果当前节点120位于其父节点132的高平面上,如图7所示,则情况不同。则当前节点120沿着所考虑的轴直接相邻于当前节点120之后的相邻节点126。在这种情况下,在解码器侧,相邻节点126的子节点的占位是未知的,并且仅能利用邻接的相邻节点126本身的占位来确定上下文信息。然而,可以利用一个同级节点134的占位信息来确定当前节点120的上下文信息。其中,同级节点布置为在所考虑的轴上直接在当前节点120之前。具体而言,基于相邻节点126的占位并进一步基于一个同级节点134的一组子级节点136来确定当前节点120的上下文信息,其中,一组子级节点136中的每个子级节点都直接相邻当前节点120,即,与当前节点120共享公共表面。其中,组136优选地通过四个子级节点定义一个平面,其中,该平面垂直于所考虑的几何轴并且直接相邻要在当前父节点132内评估的当前节点120。此外,由一个同级节点134的一组子级节点136形成的平面与相邻节点126相对。由于当前节点120位于当前父节点132的高平面上,因此一个同级节点134位于低平面上,而所考虑的一组子级节点136位于一个同级节点134的高平面上。对于如图7(a)所示的所考虑的x轴的示例,如果当前节点120位于当前父节点132内的位置4,则所考虑的同级节点134位于同一父节点132中的对应位置0。类似地,所考虑的相邻节点126位于相邻父节点(未示出)中的位置0处。
145.具体地,如果当前节点120定位在其父节点132的高平面中,则根据位于父节点132的低平面中的一个同级节点134的一组子级节点136的占位(其中,每个子级节点与当前节点120共享一个表面)以及关于当前节点120与一个同级节点134相对的相邻节点126的占位来确定平面位置上下文信息。
146.一般而言,对于当前节点120位于其父节点132的高平面中的情况:如果一个同级节点134的一组子级节点136中的至少一个子级节点被占位并且相邻节点126未被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和低平面位置的可能性。如果一个同级节点134的一组子级节点中的所有子级节点未被占位并且相邻节点126被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和高平面位置的可能性。如果
一个同级节点134的一组子级节点的所有子级节点未被占位并且相邻节点126未被占位,则平面位置上下文信息是未知的。如果一个同级节点134的一组子级节点中的至少一个子节点被占位并且相邻节点126被占位,则平面位置上下文信息是未知的。
147.更具体而言,根据图7(a),如果当前节点位于高平面上,则对于沿x轴的评估以及图4所示的编号系统:
148.·
如果同级节点134的子级节点4至7中的至少一个被占位,并且相邻节点126未被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和低平面位置的可能性。
149.·
如果同级节点134的子级节点4至7未被占位,并且相邻节点126被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和高平面位置的可能性。
150.·
如果同级节点134的子级节点4至7未被占位,并且相邻节点126未被占位,则平面位置上下文信息为“未知”。
151.·
如果同级节点134的子级节点4至7中的至少一个被占位,并且相邻节点被占位,则平面位置上下文信息为“未知”。
152.因此,对于编码,在对位于低位置的当前节点执行熵编码时,将当前节点中垂直于x轴的平面的位置的概率视为上下文信息。其中,该信息可用作平面编码模式和角度编码模式下的平面位置上下文信息。
153.根据图7(b),对于沿y轴的评估,为了确定当前节点120的平面位置上下文信息,如果当前节点位于高平面上,则设置如下:
154.·
如果同级节点134的子级节点2、3、6、7中的至少一个被占位,并且相邻节点126未被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和低平面位置的可能性。
155.·
如果同级节点134的子级节点2、3、6、7未被占位,并且相邻节点126被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和高平面位置的可能性。
156.·
如果同级节点134的子级节点2、3、6、7未被占位,并且相邻节点126未被占位,则平面位置上下文信息为“未知”。
157.·
如果同级节点134的子级节点2、3、6、7中的至少一个被占位,并且相邻节点126被占位,则平面位置上下文信息为“未知”。
158.因此,对于编码,在对位于低位置的当前节点执行熵编码时,将当前节点中垂直于y轴的平面的位置的概率视为上下文信息。其中,该信息可用作平面编码模式和角度编码模式下的平面位置上下文信息。
159.根据图7(c),对于沿z轴的评估,为了确定当前节点120的平面上下文信息,如果当前节点位于高平面上,则设置如下:
160.·
如果同级节点134的子级节点1、3、5、7中的至少一个被占位,并且相邻节点126未被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和低平面位置的可能性。
161.·
如果同级节点134的子级节点1、3、5、7未被占位,并且相邻节点126被占位,则平面位置上下文信息包括平面位于当前节点120中的可能性和高平面位置的可能性。
162.·
如果同级节点134的子级节点1、3、5、7未被占位,并且相邻节点126未被占位,则
平面位置上下文信息为“未知”。
163.·
如果同级节点134的子级节点1、3、5、7中的至少一个被占位,并且相邻节点126被占位,则平面位置上下文信息为“未知”。
164.因此,对于编码,在对位于低位置的当前节点执行熵编码时,将当前节点中垂直于z轴的平面的位置的概率视为上下文信息。其中,该信息可作为平面编码模式和角度编码模式下的平面位置上下文信息。
165.综上所述,在所有情况下,建立了可被用于熵编码的可靠平面位置上下文信息模型,以考虑表面或平面在各个节点中的出现和位置,并利用这一知识有效地预测熵编码器/解码器进行数据压缩的节点占位。
166.但是,有关已编码节点的信息可能不总是可用的。特别是,如果为了减少内存需求而删除已编码节点的占位信息,则无法再进行上述推断。此行为可在当前gpcc编码器/解码器中通过禁用相邻子节点上下文启用标记(adjacent_child_contextualization_enabled_flag),即将此标记设置为零来实现。然后,推断的基础必须适当调整。对于当前节点120位于低平面的情况,由相邻节点126自身的占位替换关于相邻节点126的一组子级节点的占位的先前信息。类似地,如果当前节点120位于高平面,则一个同级节点134的子级节点的占位信息被一个同级节点本身的占位替换。然后,即使adjacent_child_contextualization_enabled_flag被禁用,也可以基于可用的自适应占位信息进行可靠的推断。
167.更具体而言,对于当前节点位于低平面的情况:如果相邻节点未被占位并且一组同级节点中的所有同级节点未被占位,则平面位置上下文信息包括平面位于当前节点中的可能性和低平面位置的可能性;
168.如果相邻节点未被占位并且一组同级节点中的至少一个同级节点被占位,则平面位置上下文信息包括平面位于当前节点中的可能性和高平面位置的可能性;
169.如果相邻节点未被占位,并且一组同级节点中的所有同级节点都未被占位,则平面位置上下文信息是未知的;以及
170.如果相邻节点被占位,并且一组同级节点中的至少一个同级节点被占位,则平面位置上下文信息是未知的。
171.类似地,如果当前节点位于高平面:
172.如果一个同级节点被占位,并且相邻节点未被占位,则平面位置上下文信息包括平面位于当前节点中的可能性和低平面位置的可能性;
173.如果一个同级节点未被占位,并且相邻节点被占位,则平面位置上下文信息包括平面位于当前节点中的可能性和高平面位置的可能性;
174.如果一个同级节点未被占位,并且相邻节点未被占位,则平面位置上下文信息是未知的;以及
175.如果一个同级节点被占位,并且相邻节点被占位,则平面位置上下文信息是未知的。
176.现在参考图8(a),图8(a)示出用于对点云进行编码以生成压缩点云数据的比特流的方法,其中,点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述
子体与所述基于八叉树的结构的节点相关联,所述方法包括以下步骤:
177.s110:确定包括平面位置上下文信息的当前节点的上下文信息,其中,根据与当前节点直接相邻的相邻节点的占位以及与当前节点具有相同父节点的至少一个同级节点的占位来确定当前节点的平面位置上下文信息;以及
178.s120:基于所确定的上下文信息对父节点的占位模式进行熵编码以产生用于比特流的编码数据。
179.现在参考图8(b),图8(b)示出用于对压缩点云数据的比特流进行解码以生成重构点云的方法,其中,点云的几何结构是通过具有基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与所述基于八叉树的结构的节点相关联,所述方法包括以下步骤:
180.s210:对基于当前节点的上下文信息的比特流进行熵解码,其中,根据与当前节点直接相邻的相邻节点的占位和与当前节点具有相同父节点的至少一个同级节点的占位来确定包括平面位置上下文信息以及所述平面位置上下文信息的当前节点的上下文信息。
181.因此,根据本发明,使用和评估关于相邻节点和同级节点的信息以获得上下文信息模型,该上下文信息模型基于可用数据更可靠地预测表面在当前子节点内的位置。此信息可被用于减少压缩点云数据的数据量,其中,相同的上下文信息模型也被用于解码器,以能够以高效率和准确率对提供的比特流进行解码。由此,相对于先前的编码方法和现有的gpcc规范,可以实现至少1%的显著数据减少。然而,该值取决于点的密度,其中,尤其是室内点云,诸如lidar点云,假定他们可以被视为密集点云。
182.在编码或解码方法的实施例中,沿着几何轴直接在当前节点之前或之后的相邻节点与当前节点共享面。
183.在编码或解码方法的实施例中,所述至少一个或多个同级节点包括以下之一:
184.沿着几何轴直接在所述当前节点之前且与所述当前节点共享面的一个同级节点,以及优选地,所述一个同级节点的子级节点的占位;或者
185.沿着所述几何轴直接在所述当前节点之后的处于的位于平面中的一组四个同级节点,其中,所述平面垂直于所述几何轴。
186.在编码或解码方法的实施例中,沿着全部三个几何轴来确定所述平面上下文信息。
187.在编码或解码方法的实施例中,如果当前节点位于父节点的低平面上,则所述平面位置上下文信息根据相邻节点的一组子级节点的占位和位于父节点的高平面中的一组四个同级节点的占位来确定,其中,每个子级节点与当前节点共享面。
188.在编码或解码方法的实施例中,
189.如果所述一组子级节点中的至少一个子级节点被占位,并且所述一组同级节点中的所有同级节点未被占位,所述平面位置上下文信息包括平面位于所述当前节点中的可能性和低平面位置的可能性;
190.如果所述一组子级节点中的所有子级节点未被占位,并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和高平面位置的可能性;
191.如果所述一组子级节点中的所有子级节点未被占位,并且所述一组同级节点中的
所有同级节点未被占位,则所述平面位置上下文信息是未知的;以及
192.如果所述一组子级节点中的至少一个子级节点被占位,并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息是未知的。
193.在编码或解码方法的实施例中,对于已编码节点的占位不可用的情况,
194.如果所述相邻节点未被占位并且所述一组同级节点中的所有同级节点未被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和低平面位置的可能性;
195.如果所述相邻节点未被占位并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息包括平面位于当前节点中的可能性和高平面位置的可能性;
196.如果所述相邻节点未被占位并且所述一组同级节点中的所有同级节点未被占位,则所述平面位置上下文信息是未知的;以及
197.如果所述相邻节点被占位并且所述一组同级节点中的至少一个同级节点被占位,则所述平面位置上下文信息是未知的。
198.在编码或解码方法的实施例中,如果当前节点位于父节点的高平面上,则所述平面位置上下文信息根据位于父节点的低平面中的一个同级节点的一组子级节点的占位和关于当前节点与所述一个同级节点相对的相邻节点的占位来确定,其中,每个子级节点与当前节点共享面。
199.在编码或解码方法的实施例中,
200.如果所述一组子级节点中的至少一个子级节点被占位,并且所述相邻节点未被占位,所述平面位置上下文信息包括平面位于所述当前节点中的可能性和低平面位置的可能性;
201.如果所述一组子级节点中的所有子级节点未被占位,并且所述相邻节点被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和高平面位置的可能性;
202.如果所述一组子级节点中的所有子级节点未被占位,并且所述相邻节点未被占位,则所述平面位置上下文信息是未知的;以及
203.如果所述一组子级节点中的至少一个子级节点被占位,并且所述相邻节点被占位,则所述平面位置上下文信息是未知的。
204.在编码或解码方法的实施例中,对于已编码节点不可用的情况,
205.如果所述一个同级节点被占位,并且所述相邻节点未被占位,所述平面位置上下文信息包括平面位于所述当前节点中的可能性和低平面位置的可能性;
206.如果所述一个同级节点未被占位,并且所述相邻节点被占位,则所述平面位置上下文信息包括平面位于所述当前节点中的可能性和高平面位置的可能性;
207.如果所述一个同级节点未被占位,并且所述相邻节点未被占位,则所述平面位置上下文信息是未知的;以及
208.如果所述一个同级节点被占位,并且所述相邻节点被占位,则所述平面位置上下文信息是未知的。
209.在编码或解码方法的实施例中,
210.如果在相应父节点中位于相同坐标并且在所述基于八叉树的结构中位于相同深度d的最近已编码节点存在并且是平面的,则所述上下文信息进一步包括以下中的一个或多个:
211.与在相应父节点中位于相同坐标并且在所述基于八叉树的结构中位于相同深度d的最近已编码节点的距离d;
212.在相应父节点中位于相同坐标并且在所述基于八叉树的结构中位于相同深度d的最近已编码节点的平面位置;以及
213.正交于所述平面的轴。
214.在编码或解码方法的实施例中,所述上下文信息包括54比特或更少。
215.在优选实施例中,用于对点云进行编码/解码以生成压缩点云数据的比特流的方法在lidar(光检测和测距)设备中实现。lidar设备包括光传输模块和传感器模块。其中,光传输模块被配置为用激光扫描环境,并且利用传感器模块的传感器来测量由环境中的物体反射的激光的回波(echo)。此外,lidar设备包括评估模块,该评估模块被配置为优选地通过激光返回时间的差异和/或反射的激光的波长的差异来确定点云中的环境的3d表征。因此,回波可以包括对象或环境的多达数百万个位置信息点,从而导致大型点云,这增加了对计算设备进一步处理或评估该点云的需求。在例如自动驾驶的特定应用中,由于安全要求,lidar点云的处理必须几乎是实时的。因此,对点云数据进行有效且准确的压缩是必需的。因此,lidar设备可以包括编码器,该编码器包括处理器和存储器存储设备。存储器存储设备可以存储包含指令的计算机程序或应用,该指令在被执行时使处理器执行诸如本文所述的操作。例如,指令可以编码和输出根据本文描述的方法编码的比特流。附加地或替代地,lidar设备可以包括解码器,该解码器包括处理器和存储器存储设备。存储器存储设备可以包括包含指令的计算机程序或应用,该指令在被执行时促使处理器执行诸如本文所述的操作。因此,通过编码器/解码器,能够对点云数据进行有效且准确的压缩,从而提供了更有效且优选实时地处理所获取的点云数据的可能性。优选地,编码器的处理器和解码器的处理器相同。优选地,编码器的存储器存储设备和解码器的存储器存储设备相同。优选地,编码器和/或解码器的处理器还被配置为进一步处理或评估点云,甚至更优选地实时地处理或评估点云。具体地,对于自动驾驶的示例,点云的评估可以包括确定在驾驶方向上的障碍物。
216.现在参考图8,其示出了编码器1100的示例实施例的简化框图。编码器1100包括处理器1102和存储器存储设备1104。存储器存储设备1104可以存储包含指令的计算机程序或应用,该指令在被执行时促使处理器1102执行诸如本文所述的操作。例如,指令可以编码和输出根据本文描述的方法编码的比特流。应理解的是,指令可以存储在非暂时性计算机可读介质上,例如压缩盘、闪存设备、随机存取存储器、硬盘驱动器等。当指令被执行时,处理器1102执行指令中指定的操作和功能,以便用作实现上述处理的专用处理器。在一些示例中,这样的处理器可以被称为“处理器电路”或“处理器回路”。
217.现在还参考图9,其示出了解码器1200的示例实施例的简化框图。解码器1200包括处理器1202和存储器存储设备1204。存储器存储设备1204可以包括包含指令的计算机程序或应用,该指令在被执行时促使处理器1202执行诸如本文所述的操作。应理解的是,指令可以存储在计算机可读介质上,例如压缩盘、闪存设备、随机存取存储器、硬盘驱动器等。当指
令被执行时,处理器1202执行指令中指定的操作和功能,以便用作实现上述处理和方法的专用处理器。在一些示例中,这样的处理器可以被称为“处理器电路”或“处理器回路”。
218.应理解,根据本技术的解码器和/或编码器可以在多个计算设备中实现,包括但不限于服务器、适当编程的通用计算机、机器视觉系统和移动设备。可以通过包含用于配置一个或多个处理器以执行本文所述功能的指令的软件来实现解码器或编码器。可以将软件指令存储在任何合适的非暂时性计算机可读存储器上,包括cd、ram、rom、闪存等。
219.应理解,本文中描述的解码器和/或编码器以及实现所描述的用于配置编码器或解码器的方法/处理的模块、例程、处理、线程或其他软件组件可以使用标准的计算机编程技术和语言来实现。本技术不限于特定的处理器、计算机语言、计算机编程协议、数据结构,其他这样的实现细节。本领域技术人员将认识到,所描述的处理可以被实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、作为专用集成芯片(asic)的一部分等。
220.本技术还提供了对通过根据本技术的编码处理的应用而产生的数据进行编码的计算机可读信号。
221.可以对所描述的实施例进行某些调整和修改。因此,以上讨论的实施例被认为是说明性的而非限制性的。具体地,实施例可以彼此自由地组合。
再多了解一些

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

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

相关文献