点云编解码方法、装置及系统与流程

文档序号:30529396发布日期:2022-06-25 09:29阅读:214来源:国知局
点云编解码方法、装置及系统与流程

1.本技术涉及编解码技术领域,具体而言,涉及一种点云编码方法及装置、点云解码方法及装置、以及编解码系统。


背景技术:

2.点云是三维物体或场景的一种表现形式,由三维空间中分布的用于表征三维物体或场景的空间结构或表面属性的多个离散点集构成。为了准确地表征三维物体或场景,通常点云中含有的点云点的数量非常巨大。所以,在传输点云数据时,需先对其进行压缩编码处理。激光雷达在采集点云数据时,是一个个点云点依次采集的,目前的点云压缩编码技术无法保留激光雷达采集点云点时的采集顺序,而点云中各点云点的采集顺序在点云的后续应用中往往起着比较重要的作用。因此,有必要提供一种压缩编码技术,可以保留点云的原始采集顺序。


技术实现要素:

3.有鉴于此,本技术提供一种点云编码方法及装置、点云解码方法及装置、编解码系统。
4.根据本技术的第一方面,提供一种点云编码方法,所述方法包括:
5.获取待编码点云中的点云点的位置坐标;
6.基于所述位置坐标对所述点云点进行分组处理,得到一组或多组点云点,其中,所述一组或多组点云点中的每组点云点的所述位置坐标在目标方向上单调递增或单调递减;
7.分别对所述每组点云点进行编码处理,以得到所述待编码点云的码流。
8.根据本技术的第二方面,提供一种点云解码方法,所述方法包括:
9.对待解码的点云码流进行解码处理,得到一组或多组重建点云数据,其中,所述点云码流通过对一组或多组点云点编码得到,所述一组或多组点云点中的每组点云点的位置坐标在目标方向上单调递增或单调递减;
10.针对每组重建点云数据中的位置坐标,基于所述位置坐标在所述目标方向上的单调性对所述每组重建点云数据中的点云点进行排序处理,得到解码后的一组或多组点云点。
11.根据本技术的第三方面,提供一种编码装置,所述编码装置包括处理器、存储器、存储于所述存储器可供所述处理器执行的计算程序,所述处理器执行所述计算机程序时实现以下步骤:
12.获取待编码点云中的点云点的位置坐标;
13.基于所述位置坐标对所述点云点进行分组处理,得到一组或多组点云点,其中,所述一组或多组点云点中的每组点云点的所述位置坐标在目标方向上单调递增或单调递减;
14.分别对所述每组点云点进行编码处理,以得到所述待编码点云的码流。
15.根据本技术的第四方面,提供一种解码装置,所述解码装置包括处理器、存储器、
存储于所述存储器可供所述处理器执行的计算程序,所述处理器执行所述计算机程序时实现以下步骤:
16.对待解码的点云码流进行解码处理,得到一组或多组重建点云数据,其中,所述点云码流通过对一组或多组点云点编码得到,所述一组或多组点云点中的每组点云点的位置坐标在目标方向上单调递增或单调递减;
17.针对每组重建点云数据中的位置坐标,基于所述位置坐标在所述目标方向上的单调性对所述每组重建点云数据中的点云点进行排序处理,得到解码后的一组或多组点云点。
18.根据本技术的第五方面,提供一种编解码系统,所述编解码系统包括编码装置和解码装置,所述编码装置用于获取待编码点云中的点云点的位置坐标,基于所述位置坐标对所述点云点进行分组处理,得到一组或多组点云点,其中,所述一组或多组点云点中的每组点云点的所述位置坐标在目标方向上单调递增或单调递减;分别对所述每组点云点进行编码处理,以得到所述待编码点云的码流;
19.所述解码装置用于对所述码流进行解码处理,得到一组或多组重建点云数据,针对每组重建点云数据中点云点的位置坐标,基于所述位置坐标在所述目标方向上的单调性对所述每组重建点云数据中的点云点进行排序处理,得到解码后的一组或多组点云点。
20.应用本技术提供的方案,在对点云编码之前,可以基于点云点的位置坐标在目标方向上的单调性对点云进行分组处理,得到一组或多组点云点,每组点云点的位置坐标在目标方向上单调递增或单调递减,因而,可以根据位置坐标在目标方向的单调性确定每组点云点的采集顺序,然后分别对每个组内的点云点进行编码,得到点云码流。解码端在接收到点云码流后,可以对其解码,得到一组或多组点云点,然后针对每组点云点,按照其位置坐标在目标方向上的单调性对点云点进行排序,将各组中排序后的点云点合并,即得到解码后的点云。通过这种编解码方式,在点云编解码的过程中可以很好的保留点云的原始采集顺序,便于点云数据的后续应用。
附图说明
21.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
22.图1是本技术一个实施例一种点云编码方法的流程图。
23.图2是本技术一个实施例三维空间点在球坐标系下的坐标示意图。
24.图3(a)-3(c)是本技术一个实施例的码流结构示意图。
25.图4是本技术一个实施例的一种点云解码方法流程图。
26.图5是本技术一个实施例的激光雷达扫描轨迹示意图。
27.图6是本技术一个实施例的码流结构示意图。
28.图7是本技术一个实施例的编码装置的逻辑结构示意图。
29.图8是本技术一个实施例的解码装置的逻辑结构示意图。
具体实施方式
30.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
31.点云可以用于表征三维物体和场景的空间结构和表面属性,点云中的每个点的数据通常包括位置信息和以及该位置对应的属性信息,属性信息可以是颜色、反射率等。由于点云中点云点的数量非常巨大,因而需要对其压缩编码后再进行传输或存储。通常激光雷达在采集点云数据时,都是一个一个点按顺序依次采集的,点云中各点云点的采集顺序对后续的应用会产生一定的影响。比如,点云数据在用于即时定位与地图构建(slam)的场景,其采集顺序会对slam算法产生影响。而目前的编解码技术中,编码端对点云压缩编码后的码流传输至解码端后,解码端对码流进行解码得到的点云数据无法还原点云中各点云点的采集顺序,无法满足点云在后续应用中的需求。
32.基于此,本技术实施例提供一种点云编解码方法,在对点云进行编码之前,可以根据点云中各点云点的位置坐标在目标方向上的单调特性对点云点进行分组处理,每个分组内的点云点的位置坐标在目标方向上单调递增或单调递减,在分组后,分别对每个分组内的点云点进行编码处理,得到点云码流,发送给解码端。解码端获取到点云码流后,可以先对点云码流进行解码处理,得到每个分组的点云点,然后针对每个分组的点云点,依据其位置坐标在目标方向上的单调特性对点云点进行排序,然后将排序处理后的各组点云点合并,即可以得到保留原始采集顺序的点云数据。通过依据点云点在采集过程中位置坐标在目标方向上的单调性对点云点进行分组处理后再编码,可以保留点云的采集顺序,满足点云数据在后续应用中对于是采集顺序的需求。
33.以下分别从编码端和解码端的处理过程对本技术实施例提供的点云编解码方案进行介绍。
34.图1为本技术实施例提供的点云编码方法的处理流程,具体包括以下步骤:
35.s102、获取待编码点云中的点云点的位置坐标;
36.s104、基于所述位置坐标对所述点云点进行分组处理,得到一组或多组点云点,其中,所述一组或多组点云点中的每组点云点的所述位置坐标在目标方向上单调递增或单调递减;
37.s106、分别对所述每组点云点进行编码处理,以得到所述待编码点云的码流。
38.本技术实施例提供的点云编码方法可以用于点云编码装置,点云编码装置可以是一个独立的产品,也可以集成在激光雷达或者其他设备上。
39.本技术实施例的点云可以是由各种点云采集设备采集得到,比如激光雷达,以下以激光雷达为例进行说明。
40.由于激光雷达在对三维场景进行扫描以采集点云数据时,其扫描轨迹通常会呈现一定的规律。因此,激光雷达在一段时间内采集的连续多个点云点的位置坐标通常在某个方向上会呈现出单调特性。比如,激光雷达在连续一段时间内采集的点云点在天顶角方向上的坐标可能依次增大,或者方位角方向上的坐标依次减小,或者可以是点云点在其他坐标系下的坐标在某个方向上依次增大或减小等,点云点在特定方向上的单调性可以依据激
光雷达的扫描轨迹确定。基于激光雷达一段时间内连续采集的点云点的位置坐标在特定方向上的单调性对点云点分组后再进行编码,这样每个组内的点云点的采集顺序可以根据其位置坐标在特定方向上的单调性确定,从而可以保留点云点的原始采集顺序。
41.在对待编码点云进行编码处理之前,可以先获取待编码点云中各点云点的位置坐标,其中,点云点的位置坐标可以是描述点云点在三维空间中的位置信息的各种形式的坐标,比如,可以是点云点在世界坐标系下的坐标,也可以是点云点在球坐标系下的坐标,当然,也可以是其他形式的坐标。其中,具体的位置坐标形式可以根据激光雷达扫描轨迹以及点云位置坐标的单调特性确定。
42.举个例子,点云点p在世界坐标系下的坐标为(x,y,z),点云点在球坐标系下的坐标为点云点p在球坐标系下的示意图如图2所示,其中,r表示径向距离,指从原点到点p的直线距离,θ表示天顶角,指从原点到点p的连线与z轴正半轴的夹角值,表示方位角,指从原点到点p的连线在xoy平面的投影线与x轴正半轴的夹角值。不同坐标系下的点云坐标可以相互转换,可以根据实际需求将激光雷达采集的点云的位置数据进行转换处理。
43.在获取到点云点的位置坐标后,可以根据点云点的位置坐标在目标方向上的单调性对点云点进行分组处理,得到一组或多组点云点。目标方向可以是点云点位置坐标的某个方向,比如,可以是世界坐标系下的x,y,z方向,或者是球坐标系下的天顶角、方位角方向,也可以是其他坐标系下的坐标方向,本技术实施例不作限制。分组后得到的每个组内的点云点的位置坐标在目标方向上单调递增或者单调递减,从而可以根据位置坐标的单调性恢复每个分组内的点云点的原始采集顺序。
44.以下以目标方向为天顶角θ方向为例进行举例说明。假设第n个点云点的坐标为(xn,yn,zn),对应球坐标系坐标为若当前点为当前包内的第一个点,则第n+1个点云点的坐标对应球坐标系下的坐标在天顶角方向的变化情况即为θ
n+1-θn,若大于零即当前包在天顶角方向上变化率为增加的,若小于零即当前包在天顶角方向上变化率为减少的。则对后面的连续的每个点,均计算当前点和前一个点在天顶角方向的变化情况,若变化情况与当前组相同,则将当前点划入当前的组内,若变化情况与当前组不相同,则将当前点划到下一个新的组内,当前点为新的组的第一个点云点。按照这样的方法将输入的点云数据划分为若干个组,每个组内的变化情况是相同的。
45.在对点云点进行分组后,即可以分别对每组点云点进行编码处理,得到待编码点云编码后的码流。其中,待编码点云编码后得到的点云码流结构中可以包括层级、序列、帧、条带、片等不同的单元,每个组的点云点编码后得到的码流可以作为点云码流中的一个序列、一个帧、一个片或者一个条带,具体可以根据实际需求设置。码流结构可参考图3(a)-3(c),比如,在一些场景中,如图3(a)所示,点云码流可以由多个层级组成,每个层级包括一个多个序列,每个序列包括一个或多个帧,每个帧中包括一个或多个条带、每个条带包括一个或多个片,在这种情况下,每个组的点云点编码后得到的码流可以作为点云码流中的一个片,在一些场景中每个条带也可以不包括片,在这种情况下,每个组的点云点编码后得到的码流可以作为点云码流中的一个条带。在一些场景中,如图3(b)所示,点云码流可以由一个或多个层级组成,每个层级包括一个多个序列,每个序列包括一个或多个帧,每个帧中包
括一个或多个片、每个片包括一个或多个条带,在在这种情况下,每个组的点云点编码后得到的码流可以作为点云码流中的一个条带。在一些场景中每个片也可以不包括条带,在这种情况下,每个组的点云点编码后得到的码流可以作为点云码流中的一个片。在一些场景中,如图3(c)所示,每个帧下面也可以不包括条带也不包括片,即帧为最小单元,在这种情况下,每个组的点云点编码后得到的码流可以作为
46.点云码流中的一个帧。
47.对点云进行编码处理可以包括对各点云点的位置信息和属性信息进行编码,位置信息和属性信息的编码可以分开进行。对位置信息进行编码时可以采用八叉树或者多叉树的编码方式进行编码,也可以采用其他方式,本技术实施例不作限制。
48.对点云点分组后编码得到的点云码流可以传输至解码端,解码端可以对点云码流进行解码处理。如图4所示,为本技术实施例提供的解码方法的处理流程示意图,包括以下步骤:
49.s402、对待解码的点云码流进行解码处理,得到一组或多组点云重建数据,其中,所述点云码流通过对一组或多组点云点编码得到,所述一组或多组点云点中的每组点云点的位置坐标在目标方向上单调递增或单调递减;
50.s404、针对每组点云重建数据中的点云点的位置坐标,基于所述位置坐标在所述目标方向上的单调性对所述每组点云重建数据中的点云点进行排序处理,得到解码后的一组或多组点云点。
51.其中,本技术实施例提供的点云解码方法可以用于点云解码装置,该点云解码装置可以是一个独立的设备,也可以集成在对点云数据进行后续处理的设备上,比如、服务器、笔记本电脑、台式电脑等。
52.在获取到待解码的点云码流后,可以基于点云的编码方式对点云进行解码处理,得到重建后的点云的位置坐标和属性信息。由于点云码流中包括一组或者多组点云点对应的码流,因而,解码后可以得到一组或多组点云重建数据,比如,如果码流中一帧数据对应于一组点云点的码流,则可以将每一帧数据作为一组重建数据,每组点云重建数据中的点云点的位置坐标在目标方向上单调递增或单调递减。针对每组点云重建数据中的点云点的位置坐标,可以根据其在目标方向的单调性对该组中的点云点进行排序处理,以恢复解码后的点云点的原始采集顺序,得到解码后的一组或多组点云点。
53.本技术实施例在对点云编码之前,可以基于激光雷达在一段时间内连续采集的点云点的位置坐标在特定方向上的单调性对点云进行分组处理,然后分别对每个组内的点云进行编码,得到点云码流。解码端在接收到点云码流后,可以对其解码,得到一组或多组点云点,然后针对每组点云点,按照其位置坐标在特定方向上的单调性对点云点进行排序,将各组中排序后的点云点合并,即得到解码后的点云。通过这种方式,在点云编解码前后不会改变点云数据的顺序,即解码得到的点云可以恢复其原始的采集顺序,便于后续的应用。
54.由于每个组内的点云点的位置坐标在目标方向上的单调性存在两种情况,单调递增或单调递减。在一些实施例,编码端和解码端可以预先约定好单调性,比如,两端约定好每个组内的点云点的位置坐标在目标方向上均为单调递增或均为单调递减,或者奇数组的点云点的位置坐标在目标方向上单调递增,偶数组的点云点的位置坐标在目标方向上单调递减。这样,编码端编码后的码流中无需包含指示单调性的信息,可以尽量减小编码后的点
云码流的数据量。
55.相应的,解码端在对点云码流解码处理得到一组或多组点云点后,可以根据约定的单调性对每个组内的点云点进行排序处理,以恢复点云的采集顺序。比如,如果约定的单调性为单调递增,则根据点云点的位置坐标在目标方向上依次增大的顺序对点云点进行排序,如果约定的单调性为单调递减,则根据点云点的位置坐标在目标方向上依次减小的顺序对点云点进行排序。
56.在一些实施例中,每个组内的点云点的位置坐标的单调性可能不相同,或者无规律,这时,为了方便解码端知道每个分组中点云点位置坐标的单调性,编码后的码流中也可以包括第一编码信息,用于指示分组得到的一组或多组点云点的位置坐标在目标方向上是单调递增还是单调递减。比如,可以在码流头部信息中加一个比特位用于标识单调性,用1表示单调递增,0表示单调递减,或者0表示单调递增,1表示单调递减。
57.相应的,解码端在对点云码流解码处理得到一组或多组点云点后,可以先获取码流中的第一编码信息,对第一编码信息进行解码处理,以确定每组点云点的位置坐标在目标方向上的单调性,然后根据确定的单调性对每组点云点进行排序处理。
58.在一些实施例中,分组得到的一组或多组点云点在目标方向上的单调性可能无规律,因而,可以对每组点云点的位置坐标在所述目标方向上的单调性进行编码。所以,第一编码信息可以包括分组得到的一组或多组点云点中各个分组对应的单调性的编码信息。
59.相应的,在解码端对码流解码时,可以对各个分组的单调性的编码信息进行进性解码,以确定重建点云数据中各个分组的点云点的位置坐标在目标方向的单调性,并根据单调性对组内的点云点进行排序。
60.在一些实施例中,分组得到的一组或多组点云点可能存在一定的规律,比如,在同一个目标方向上一直都呈现先单调递增,后单调递减的规律,在这种情况下,只要划分每个分组所依据的目标方向一致,那么连续两个分组的单调性必然相反,比如前一个分组的为单调递增,后一个分组必然是单调递减。因而,可以依照各分组单调性的规律对其中的特定的分组的单调性进行编码,其余分组可以依据单调性规律确定。所以,第一编码信息可以包括分组得到的一组或多组点云点中指定分组对应的单调性的编码信息。
61.相应的,在解码端对码流解码时,可以对仅对指定分组的单调性的编码信息进行进性解码,以确定重建点云数据中指定分组的点云点的位置坐标在目标方向的单调性,并根据各个分组的单调性规律和解码得到的指定分组的单调性确定其余分组的单调性。
62.在一些实施例中,为了区分每个分组中点云点对应的单调性的编码信息,每个分组对应的单调性的编码信息记录于该分组的码流的头部信息中。举个例子,如果一组点云点的码流对应点云码流的一帧数据,如果需标识该组的单调性,则将该组的单调性编码信息记录于帧头。从而解码端可以从该分组的码流的头部信息获取该组对应的单调性编码信息,并解码得到该分组点云重建数据对应的单调性。
63.在一些实施例中,划分分组所依据的目标方向相同的连续两个分组的单调性相反。比如,如图5所示,为一种激光雷达采集点云数据时的扫描轨迹,此种情况下,只要目标方向一致,那么连续两个分组的单调性必然是相反的。
64.在一些实施例中,如果划分每个分组所依据的目标方向一致,那么连续两个分组的单调性相反,因而,如果所有分组划分方向都一样,则只需对第一个分组的单调性进行编
码,因此,指定分组可以是一组或多组点云中的第一个分组。
65.相应的,解码端在对点云码流进行解码时,可以先从第一组点云点对应码流的头部信息获取第一编码信息,然后对第一编码信息进行解码,得到第一组重建点云数据对应的单调性。其余各组重建点云数据对应的单调性则与前一组重建点云数据对应的单调性相反,从而可以得到各组点云重建数据的单调性。
66.在一些实施例中,如果所有分组划分方向不完全一样,则只需对目标方向相同的连续几个分组中的第一个分组的单调性进行编码。在这种情况下,指定分组可以是该目标方向相同的连续一个或多个分组中的第一组。举个例子,点云分组后得到1-6个分组,其中,前三个分组依据的目标方向为天顶角方向,后三个分组依据的目标方向为方位角方向,因此,可以仅对1组和3组的单调性编码,其余分组则根据前一个分组的单调性确定,即与前一个分组的单调性相反。
67.相应的,解码端在进行解码时,可以先从目标方向相同的连续一个或多个分组的码流的头部信息获取第一编码信息,然后对第一编码信息进行解码,以确定目标方向相同的连续一个或多个分组中第一组对应的单调性,目标方向相同的连续一个或多个分组中的其余分组的单调性则根据前一个分组的单调性确定,即与前一个分组相反。
68.在一些实施例中,编码端和解码端可以预先约定对点云点分组时所参考的目标方向,因此,编码端的码流中无需标识该方向。相应的,解码端也可以直接依据约定的方向对每个组内的点云点进行排序处理。
69.在一些实施例中,点云分组时所依据的方向可以变动,比如,在一些场景,可以以位置坐标在天顶角方向上的单调性进行分组,在另一些场景,则可以以位置坐标在方位角方向上的单调性进行分组。此时,为了让解码端知道每个分组所参考的目标方向,因而可以在点云的码流中标识出目标方向。所以,在一些实施例中,待编码点云的码流中包括第二编码信息,第二编码信息可以用于指示该目标方向。比如,可以在码流头部信息中添加一个比特位,用1表示天顶角方向,0表示方位角方向。
70.在一些实施例中,目标方向可以依据点云点的位置坐标实时确定。可以根据点云点的位置坐标确定至少两个待选方向,比如,位置坐标为世界坐标系下的坐标,那么待选方向可以是x、y、z三个方向,位置坐标为球坐标系下的坐标,那么待选方向可以是天顶角方向以及方位角方向。针对每个待选方向,可以根据待编码点云中各点云点在该待选方向上的单调性对点云进行分组,并且可以确定第一个分组中点云点的数量,选第一个分组中点云点数量最多待选方向作为目标方向。
71.举个例子,假设当前点云点的位置坐标为球坐标下的坐标,可以分别按照点云点位置坐标在天顶角方向和方位角方向的单调性对其分组。假设第n个点云点的坐标为(xn,yn,zn),对应球坐标系坐标为若当前点为当前组内的第一个点,则第n+1个点云点的坐标对应球坐标系下的坐标个点云点的坐标对应球坐标系下的坐标在天顶角方向的变化情况即为θ
n+1-θn,在方位角的变化情况即为记录两个方向的变化情况,接着计算第n+2个点云点在两个方向的变化情况,直到某个点云点时该点和前一个点在一个方向的变化情况发生了变化,则该组选择按照另一个方向进行划分,接着计算接下来的点云点与前一个点的变化情况,直到选定方向的变化情况发生了变化。这里有一个特殊情况,即两个方向的变
化情况在某个点处同时发生了变化,此时选定两个方向均可以,并且当前点即为新的一个组的第一个点,前一个点为上一个组的最后一个点云点。
72.相应的,解码端在获取到待解码码流后,可以先获取码流中的第二编码信息,然后对第二编码信息进行解码处理,以确定目标方向具体为哪个方向。然后再根据目标方向对每组重建点云数据中的点云点进行排序处理。比如,如果解码得到的目标方向为天顶角方向,则按照点云点的位置坐标在天顶角方向的单调性对点云点进行排序处理。
73.在一些实施例中,每组点云点分组时所依据的目标方向可能各不一样,因此,可以在每组点云点所对应的码流的头部信息中记录第二编码信息,用于指示该组点云点位置坐标呈现单调性的目标方向。当然,在一些实施例中,每组点云点分组所依据的目标方向一致,因而也可以在整个点云的码流的头部信息记录第二编码信息。举个例子,假设待编码点云对应的码流为一个序列,每个组的点云点对应的编码码流为序列中的一帧,如果每个组的点云点分组时所依据的方向均不一样,因此,可以在每个帧的帧头记录第二编码信息。如果每个组点云点分组是所依据的方向一样,因而,可以在序列头中记录第二编码信息,避免每帧中重复记录。
74.相应的,解码端在对解码后的各组点云重建数据中的点云点进行排序处理时,可以先从对应的头部信息获取第二编码信息。比如,可以从码流中每一帧的帧头中获取每个组点云点对应的第二编码信息,对第二编码信息解码,以确定每个组点云点对应的目标方向。
75.目前,针对一些非重复扫描的激光雷达,其在采集三维场景中的点云数据时,其扫描轨迹如图5所示,其中,图中(a)、(b)、(c)分别表示激光雷达在0.2s、0.4s、0.6s的扫描轨迹示意图,在这种情况下,激光雷达在一段时间内扫描得到的多个点云点在球坐标系下的位置坐标在特定方向上才具备单调性。所以,在一些实施例中,点云点的位置坐标可以是点云点在球坐标系下的位置坐标。在一些实施例中,目标方向也可以是球坐标系下的天顶角方向和/或方位角方向。
76.相应的,解码端在对每组点云点进行排序处理时,也可以先确定每组重建点云数据中的点云点在球坐标系下的位置坐标,然后根据位置坐标在天顶角方向和/或方位角方向的单调性对其排序。
77.在一些场景中,激光雷达采集的点云数据是按一个个数据包的形式输出,比如,激光雷达将每1ms内采集的点云数据打包成一个数据包,然后输出给编码端,以便编码端进行编码处理。因此,在一些实施例中,编码端可以先将点云采集端输出的至少两个原始点云数据包按照采集顺序合并,得到待编码点云,然后再进行分组以及编码处理。
78.相应的,解码端可以对各组重建点云数据内的点云点进行排序处理,并将各组排序处理后的一组或多组点云点合并,然后可以进一步对点云点进行分包处理,得到一个或多个点云数据包,从而可以恢复激光雷达输出的原始点云数据包。
79.当然,为了让解码端在对码流进行解码得到各组内的点云点对应的数据后,可以将其进行分包处理,恢复激光雷达输出的原始点云数据包。因而解码端需知道激光雷达输出的各原始点云数据包中点云点的数量。通常激光雷达在一段时间内采集的多个原始点云数据包可以称为激光雷达的一帧数据,其中,一帧数据里面的多个原始点云数据包中的点云点数量可以相同,也可以不同。在一些场景中,激光雷达采集的每个原始点云数据包中点
云点的数量都一致,因而,编码端和解码端可以预先约定每个数据包中的点云点的数量,解码端可以按照约定的数量将解码排序后的点云点进行分包处理。
80.在一些实施例中,编码得到的点云码流中也可以包括第三编码信息,第三编码信息用于指示点云采集端输出的各原始点云数据包中点云点的数量,以便解码端可以根据第三编码信息对解码排序后的点云点进行分包处理。
81.相应的,解码端在得到点云码流后,可以从码流中获取第三编码信息,并对第三编码信息进行解码处理,得到点云采集端输出的各原始点云数据包中点云点的数量,在将各组重建点云数据中的点云点排序并合并后,可以根据解码得到数量将合并后的点云重建数据中的点云点分成一个或多个点云数据包。
82.在一些实施例中,如果每个原始点云数据包的数量相同,则第三编码信息包括一个数量对应的编码信息。比如,每个原始点云数据包中点云点的数量为100个,则第三编码信息通过对数量“100”进行编码得到。
83.相应的,解码端获取到第三编码信息后,可以解码得到一个数量,然后可以将重建点云数据中的点云点按照该数量进行分包处理,分包处理后的每个点云数据包中点云点的数量与该数量一致。比如,解码端对第三编码信息解码处理,确定数量为100,因而,可以对重建点云数据中的点云点分包处理,每个点云数据包中点云点数量为100。
84.在一些实施例中,如果每个原始点云数据包包括的点云点的数量不完全相同,则第三编码信息包括多个数量对应的编码信息。比如,激光雷达采集的原始点云数据有5个,各原始点云数据包中点云点的数量分别为100、150、200、250、300,则第三编码信息通过对数量“100、150、200、250、300”编码得到。
85.相应的,解码端获取到第三编码信息后,可以解码得到多个数量,然后可以将重建点云数据中的点云点按照该数量进行分包处理,分包处理后的每个点云数据包中点云点的数量与该多个数量一致。
86.在一些实施例中,为了尽可能减小第三编码信息的数据量,节约传输带宽或存储空间,第三编码信息中编码的数量比原始点云数据包的数量少1。举个例子,假设有n个原始点云数据包,那么可以只对前n-1个原始点云数据包的数量进行编码,剩余的点云点则默认为最后一个原始点云数据包中的点云点。
87.相应的,解码端在获取第三解码信息后,可以解码得到n-1个数量,其中n为原始点云数据包的数量,然后根据这n-1个数量对重建点云数据中的点云点分包处理,得到点云点数量与这n-1个数量相对应的n-1个原始点云数据包,然后剩余的点云点则作为第n个原始点云数据包的点云点。
88.在一些实施例中,如果每个原始点云数据包括的点云点数量不完全相同,即存在多个数量,这种情况下,在编码端也可以对原始点云数据包的数量进行编码,得到第四编码信息,在编码得到的点云码流中可以包括第四编码信息,以便解码端在进行分包时,可以知道原始点云数据包的数量,然后根据于是点云数据包的数量对重建点云数据中的点云点进行分包处理。
89.相应的,解码端可以从码流中获取第四解码信息,然后可以解码得到原始点云数据包的数量,然后根据原始点云数据包的数量以及每个原始点云数据包中点云点的数量对重建点云数据中的点云点进行分包处理。
90.在一些实施例中,如果原始点云数据包中的点云点数量不同,则需要对多个数量进行编码处理,为了减小编码后的数量的数据量,节省存储空间和传输带宽,针对这多个数量,可以采用基准值和残差的方式表示,其中,基准值可以通过这多个原始点云数据包中点云点数量的均值确定,或者基准值也可以基于点云采集端的采集情况设置,残差可以是每个原始点云数据包中点云点的数量与基准值的差值。举个例子,通常激光雷达输出的每个原始点云数据包的数量相差不大,可能在一个数值上下浮动,举个例子,假设激光雷达输出4个原始点云数据包,每个数据包内的点云点数量分别为102、98、99、101,这时,基准值可以设为100,各数量与基准值的残差分别为2、-2、-1、1。这时在对点云数量进行编码时,可以先对原始点云数据包的数量“4”进行编码,然后可以对基准值“100”进行编码,接下来可以编码各数量与基准值的残差“2、-2、-1、1”。其中,基准值和残差可以采用定长码、变长码、截断莱斯码、指数哥伦布码等任一种进行编码,可以根据实际需求选择。
91.相应的,解码端在获取码流后,可以对第三编码信息进行解码处理,得到基准值和多个残差,然后可以根据基准值和多个残差确定多个数量,即为多个原始点云数据包中对应的数量。
92.在一些实施例中,可以采用前项差分的方式对该多个数量进行编码,其中,该多个数量中的首个数量对应的编码信息通过对首个数量与设定值的差值编码得到,其余数量对应的编码信息通过对其余数量与其余数量的前一个数量的差值编码得到。举个例子,假设激光雷达输出4个原始点云数据包,每个数据包内的点云点数量分别为102、98、99、101,假设设定值为100,当然设定值可以根据具体需求设置,那么该4个原始点云数据包的数量可以通过对100、2、-4、1、2编码得到,即先编码设定值100,然后对2、-4、1、2进行编码。
93.相应的,解码端在进行解码时,可以对第三编码信息进行解码处理,得到设定值、首个原始点云数据包的数量与设定值的第一差值、其余的原始点云数据包的数量与所述其余原始点云数据包的前一个点云数包的数量的第二差值;
94.然后根据设定值和第一差值确定首个原始点云数据包的数量,并根据首个原始点云数据包的数量和第二差值确定其余每个原始点云数据包中的点云点数量。
95.在一些实施例中,该多个数量中的首个数量对应的编码信息通过对首个数量编码得到,其余数量对应的编码信息通过对其余数量与所述其余数量的前一个数量的差值编码得到。举个例子,假设激光雷达输出4个原始点云数据包,每个数据包内的点云点数量分别为102、98、99、101,那么该4个原始点云数据包的数量可以通过对102、-4、1、2编码得到。
96.相应的,解码端在进行解码时,对可以先对第三编码信息进行解码处理,得首个原始点云数据包的数量、其余的原始点云数据包的数量与所述其余原始点云数据包的前一个点云数包的数量的第三差值,然后根据首个点云数据包的数量和第三差值确定所述每个点云数据包中的点云点数量。
97.其中,对原始点云数据包的数量和点云数据包中点云点的数量进行编码的方式很多,比如,可以采用定长码、变长码、截断莱斯码、指数哥伦布码等,具体可以根据实际需求确定本技术实施例不作限制。比如,编码可以采用如下方案:
98.1.先编码原始点云数据包的数目n,接着编码每个原始点云数据包中点云点的数目的比特数,定长码编码n个值。
99.2.先编码原始点云数据包的数目n,接着变长码编码每个原始点云数据包中点云
点的数目(截断莱斯码,指数哥伦布码)。
100.3.先编码原始点云数据包的数目n,接着编码定长码所用比特数,接着定长码编码第一个原始点云数据包所含有点云点的数目,后面的n-1个原始点云数据包所含的点云点数先进行前项差分,对差分值利用有符号指数哥伦布进行编码。
101.4.先编码原始点云数据包的数目n,对每个原始点云数据包中点云点的数量都使用前项差分,对应第一个原始点云数据包中点云点数量则与一个设定的默认值进行前项差分,默认值由编解码端约定好,可以设定为0,或者某个特殊值,不做约束。
102.5.先编码原始点云数据包的数目n,接着编码定长码所用比特数,接着定长码编码一个基准值,该基准值可以为各原始点云数据包中点云点数量的平均值,或者为根据采集端反馈的数值来进行设定,接着对n个原始点云数据包的中含有点云点的数目依次与设定的基准值进行差分,对差分值利用有符号指数哥伦布进行编码。
103.在一些实施例中,第三编码信息或第四编码信息可以记录在待编码点云的码流中的每一序列的头部信息中、每一帧的头部信息中、每一条带的头部信息中和/或每一片的头部信息中。举个例子,通常激光雷达在一段时间内采集的多个原始点云数包称为一帧数据,在一些场景,在对激光雷达采集的点云数据进行编码时,如果激光雷达采集的一帧数据对应编码码流中的一个序列,则可以在每个序列的头部信息中记录原始点云数据包的数量和每个原始点云数据包中点云点的数量,这种情况下,基于单调性对点云进行分组得到的每组点云点的码流可以对应编码码流的一帧。在一些场景,在对激光雷达采集的点云数据进行编码时,如果激光雷达采集的一帧数据对应编码码流中的一个帧,那么如果激光雷达中每帧数据中的原始点云数据包中点云点的数量一致,则可以在码流的序列头中记录原始点云数据包的数量以及原始点云数据包中点云点的数量,如果激光雷达中每帧数据中的原始点云数据包中点云点的数量不一致,则可以在码流的帧头中记录原始点云数据包的数量以及原始点云数据包中点云点的数量,这种情况下,基于单调性对点云进行分组得到的每组点云点的码流可以对应编码码流的一个条带。在一些场景,在对激光雷达采集的点云数据进行编码时,如果激光雷达采集的一帧数据对应编码码流中的一个条带,那么如果激光雷达中每帧数据中的原始点云数据包中点云点的数量一致,则可以在码流的帧头中记录原始点云数据包的数量以及原始点云数据包中点云点的数量,如果激光雷达中每帧数据中的原始点云数据包中点云点的数量不一致,则可以在码流的条带头中记录原始点云数据包的数量以及原始点云数据包中点云点的数量。以此类推,在一些场景中,也可以在码流的片头中记录原始点云数据包的数量以及原始点云数据包中点云点的数量。
104.相应的,解码端在获取到码流后,可以从对应的序列头、帧头、条带头或者片头中获取第三编码信息或第四编码信息,然后对第三编码信息或第四编码信息进行解码,得到原始点云数据包的数量以及各原始点云数据包中点云的数量。
105.在一些实施例中,待编码点云对应的码流信息中还可以包括用于指示码流中是否包含点云点的数量的信息。比如,可以在码流头部信息中增加一个比特位,用1表示码流中包含点云点数量,接下来则是原始点云数据包的数量以及各原始点云数据包中点云点的数量。用0表示码流中不包含点云点数量的信息。
106.相应的,解码端也可以对用于指示码流中是否点云点的数量的编码信息进行解码,确定码流是否包括点云点的数量对应的编码信息,然后进一步解码得到原始点云数据
包的数量以及各原始点云数据包中点云点的数量。
107.为了进一步解释本技术实施例提供的编解码方法,以下结合一个具体的实施例加以解释。
108.非重复扫描激光雷达的扫描轨迹如图5所示,基于其扫描轨迹可知,激光雷达在一段时间内的采集的点云点的位置坐标在球坐标系下的天顶角方向或方位角方向是呈现一定的单调性的。为了在编码过程可以保留点云中点云点的原始采集顺序,以下提供了一种编解码方法,具体如下:
109.通常激光雷达在一段时间内采集的多个点云数据包称为一帧数据,其中,由于采集过程中的波动,一帧数据中的多个点云数据包的数量通常并不相同。其中,激光雷达采集的一帧数据可以作为编码后的码流中的一个序列。在对点云数据编码之前,可以先将一帧数据内的多个点云数据包中的点云点按照采集先后顺序合并处理,得到待编码点云。然后可以将待编码点云中各点云点在世界坐标系下的坐标转化为在球坐标系下的坐标,并根据点云点在球坐标系下的坐标在天顶角方向或方位角方向对其进行分组处理。
110.分组之前,可以先确定分组依据的方向,其中,分组依据的方向可以采用贪心算法确定。即分别依据点云点在这两个方向上的单调性对其进行分组,然后取第一组中点云点数量更多的方向作为分组依据的方向。确定分组依据的方向后,即可以进行分组处理,分组得到的每组点云点的坐标在该方向上都是单调递增或单调递减。分组后,即可以对每组点云点进行编码处理。其中,每组点云点编码后得到的码流对应于点云码流中的一帧,在每帧的帧头中可以增加2个比特位,1个比特位用于标识该组点云点分组时依据的方向,比如,用1表示天顶角方向,0表示方位角。1个比特位用于标识改组点云点在该方向上单调递增还是单调递减,比如,用1表示单调递增,0表示单调递减。其中,在码流的每个序列中,可以编码激光雷达原始输出的一帧数据中的多个点云数据包中点云点的数量信息。首先,可以在序列头用1个比特位标识是否码流是否包含点云数量信息,比如,用1表示包含,0表示不包含。然后可以编码点云数据包的数量,比如有5个点云数据包,则对数量“5”进行编码。接着编码多个点云数据包中点云点的数量,在编码前,可以先对多个点云数据包中点云点的数量求平均,得到基准值,然后计算每个点云数据包与基准值的残差,然后分别对基准值和残差进行编码。确定头部信息后,即可以对各组的点云点的位置信息和属性信息进行编码,其中,可以采用多叉树(例如、八叉树,或者八叉树结合二叉树或者四叉树)的编码方式先对点云的位置信息编码,然后再对属性信息编码,其中编码后的码流结构如图6所示。
111.解码端在接收到码流后,可以从对码流进行解码处理,解码时可以对每个序列的头部信息进行解码,确定该序列中点云数据包的数量,以及各点云数据包中点云点的数量,然后对序列中的每一帧的头部信息进行解码,确定每组点云点的分组时所参考的方向为天顶角方向还是方位角方向,然后确定每组点云点的位置坐标在该方向上是单调递增还是单调递减,然后将解码得到的点云点的位置坐标转换成球坐标系下的坐标,并按照解码得到的方向和单调性对每组点云点进行排序处理,将各组点云点排序后,即合并得到解码后的点云。然后根据解码确定的点云数据包的数量和各点云数据包中点云点的数量对点云点进行分包处理,从而可以还原激光雷达原始输出的点云数据包。
112.相应地,本技术实施例还提供一种编码装置,如图7所示,所述编码装置70包括处理器71、存储器72、存储于所述存储器72可供所述处理器71执行的计算程序,所述处理器71
执行所述计算机程序时实现以下步骤:
113.获取待编码点云中的点云点的位置坐标;
114.基于所述位置坐标对所述点云点进行分组处理,得到一组或多组点云点,其中,所述一组或多组点云点中的每组点云点的所述位置坐标在目标方向上单调递增或单调递减;
115.分别对所述每组点云点进行编码处理,以得到所述待编码点云的码流。
116.在一些实施例中,所述待编码点云的码流包括第一编码信息,所述第一编码信息用于指示所述一组或多组点云点的位置坐标在所述目标方向上的单调性。
117.在一些实施例中,所述第一编码信息包括所述一组或多组点云点中各分组对应的所述单调性的编码信息;或
118.所述第一编码信息仅包括所述一组或多组点云点中指定分组对应的所述单调性的编码信息。
119.在一些实施例中,每个分组对应的所述单调性的编码信息记录于所述每个分组的码流的头部信息中。
120.在一些实施例中,所述目标方向相同的连续两个分组的所述单调性相反。
121.在一些实施例中,若所述一组或多组点云点对应的所述目标方向均相同,则所述指定分组为所述一组或多组点云点中的第一组。
122.在一些实施例中,若所述一组或多组点云点对应的所述目标方向不完全相同,则所述指定分组为所述目标方向相同的连续一个或多个分组中的第一组。
123.在一些实施例中,所述待编码点云的码流包括第二编码信息,所述第二编码信息用于指示所述目标方向。
124.在一些实施例中,所述目标方向基于以下方式确定:
125.基于所述位置坐标确定至少两个待选方向;
126.针对每个所述待选方向,基于所述点云点的位置坐标在所述待选方向上的单调性对所述点云点进行分组处理,并确定分组得到的第一组点云点的数量;
127.将所述第一组点云点的数量最多的待选方向确定为所述目标方向。
128.在一些实施例中,所述第二编码信息记录于所述每组点云点的码流的头部信息中。
129.在一些实施例中,所述位置坐标包括所述点云点在球坐标系下的位置坐标。
130.在一些实施例中,所述目标方向包括天顶角方向和/或方位角方向。
131.在一些实施例中,所述处理器用于还包括:
132.获取点云采集端采集的至少两个原始点云数据包;
133.将所述至少两个原始点云数据包中的点云点按照采集顺序进行合并处理,得到所述待编码点云。
134.在一些实施例中,所述待编码点云的码流中包括第三编码信息,所述第三编码信息用于指示所述至少两个原始点云数据包中的每个原始点云数据包的点云点的数量。
135.在一些实施例中,所述每个原始点云数据包的点云点的数量相同,所述第三编码信息包括一个数量对应的编码信息。
136.在一些实施例中,所述每个原始点云数据包的点云点的数量不完全相同,所述第三编码信息包括多个数量对应的编码信息。
137.在一些实施例中,所述多个数量比所述至少两个原始点云数据包的数量少1。
138.在一些实施例中,所述待编码点云的码流中还包括第四编码信息,所述第四编码信息用于指示所述至少两个原始点云数据包的数量。
139.在一些实施例中,所述多个数量对应的编码信息通过分别对基准值和残差编码得到,所述基准值基于所述至少两个原始点云数据包中点云点的数量的均值确定;
140.所述残差为每个原始点云数据包中点云点的数量与所述基准值的差值。
141.在一些实施例中,所述多个数量中的首个数量对应的编码信息通过对所述首个数量与设定值的差值编码得到,其余数量对应的编码信息通过对所述其余数量与所述其余数量的前一个数量的差值编码得到。
142.在一些实施例中,所述多个数量中的首个数量对应的编码信息通过对所述首个数量编码得到,其余数量对应的编码信息通过对所述其余数量与所述其余数量的前一个数量的差值编码得到。
143.在一些实施例中,所述第三编码信息或所述第四编码信息记录在所述待编码点云的码流中的以下一个或者多个位置:每一序列的头部信息中、每一帧的头部信息中、每一条带的头部信息中和/或每一片的头部信息中。
144.相应地,本技术实施例还提供一种解码装置,如图8所示,所述解码装置80包括处理器81、存储器82、存储于所述存储器82可供所述处理器81执行的计算程序,所述处理器81执行所述计算机程序时实现以下步骤:
145.对待解码的点云码流进行解码处理,得到一组或多组重建点云数据,其中,所述点云码流通过对一组或多组点云点编码得到,所述一组或多组点云点中的每组点云点的位置坐标在目标方向上单调递增或单调递减;
146.针对每组重建点云数据中的位置坐标,基于所述位置坐标在所述目标方向上的单调性对所述每组重建点云数据中的点云点进行排序处理,得到解码后的一组或多组点云点。
147.在一些实施例中,所述位置坐标在所述目标方向上的单调性基于与编码端约定的单调性确定;或
148.所述位置坐标在所述目标方向上的单调性基于所述点云码流中的第一编码信息确定,所述第一编码信息用于指示所述一组或多组点云点的位置坐标在所述目标方向上的单调性。
149.在一些实施例中,所述第一编码信息包括所述一组或多组重建点云数据中各分组对应的所述单调性的编码信息;或
150.所述第一编码信息仅包括所述一组或多组重建点云数据中指定分组对应的所述单调性的编码信息。
151.在一些实施例中,每个分组对应的所述单调性的编码信息记录于所述每个分组的码流的头部信息中。
152.在一些实施例中,所述目标方向相同的连续两个分组的所述单调性相反。
153.在一些实施例中,若所述一组或多组点云点对应的所述目标方向均相同,则所述指定分组为所述一组或多组点云中的第一组,基于所述第一编码信息确定所述位置坐标在所述目标方向上的单调性,包括:
154.对所述第一编码信息解码,以得到所述一组或多组重建点云数据中第一组重建点云数据对应的所述单调性;
155.根据第一组重建点云数据对应的所述单调性确定其余各组重建点云数据对应的所述单调性。
156.在一些实施例中,若所述一组或多组点云点对应的所述目标方向不完全相同,则所述指定分组为所述目标方向相同的连续一个或多个分组中的第一组,基于所述第一编码信息确定所述位置坐标在所述目标方向上的单调性,包括:
157.对所述第一编码信息进行解码,以得到目标方向相同的连续一个或多个分组中的第一组对应的所述单调性;
158.根据所述目标方向相同的连续一个或多个分组中的第一组对应的单调性确定其余分组的单调性。
159.在一些实施例中,所述目标方向基于与编码端约定的方向确定;或
160.所述目标方向基于所述点云码流中的第二编码信息确定,所述第二编码信息用于指示所述目标方向。
161.在一些实施例中,所述第二编码信息记录于所述每组点云重建数据的码流的头部信息中。
162.在一些实施例中,所述位置坐标包括所述点云点在球坐标系下的位置坐标。
163.在一些实施例中,所述目标方向包括天顶角方向和/或方位角方向。
164.在一些实施例中,所述处理器还用于:
165.将所述解码后的一组或多组点云点先合并后再分包处理,得到一个或多个点云数据包。
166.在一些实施例中,所述处理器用于对所述解码后的一组或多组点云点进行分包处理时,具体用于:
167.确定所述一个或多个点云数据包中的每个点云数据包的点云点的数量;
168.基于所述数量对所述解码后的点云进行分包处理。
169.在一些实施例中,所述每个点云数据包的点云点数量基于与编码端约定的数量确定;或者
170.所述每个点云数据包的点云点数量基于所述点云码流中的第三编码信息确定,所述第三编码信息用于指示点云采集端采集的每个原始点云数据包的点云点数量,编码前的一组或多组点云点通过对所述原始点云数据包合并后再分组得到。
171.在一些实施例中,所述第三编码信息包括一个数量对应的编码信息,每个所述原始点云数据包的点云点数量相同。
172.在一些实施例中,所述第三编码信息包括多个数量的编码信息,每个所述原始点云数据包的点云点数量与所述多个数量相对应。
173.在一些实施例中,所述处理器用于基于所述点云码流中的第三编码信息确定所述每个原始点云数据包中的点云点数量时,具体用于:
174.对所述第三编码信息进行解码处理,得到基准值和残差;
175.根据所述基准值和所述残差确定所述每个原始点云数据包中点云点的数量。
176.在一些实施例中,所述处理器用于基于所述点云码流中的第三编码信息确定所述
每个原始点云数据包中的点云点数量时,具体用于:
177.对所述第三编码信息进行解码处理,得到设定值、首个原始点云数据包的数量与所述设定值的第一差值、其余的原始点云数据包的数量与所述其余原始点云数据包的前一个点云数包的数量的第二差值;
178.基于所述设定值、所述第一差值和所述第二差值确定所述每个原始点云数据包中的点云点数量。
179.在一些实施例中,所述处理器用于基于所述点云码流中的第三编码信息确定所述每个点云数据包中的点云点数量时,具体用于:
180.对所述第三编码信息进行解码处理,得首个原始点云数据包的数量、其余原始点云数据包的数量与所述其余原始点云数据包的前一个点云数包的数量的第三差值;
181.基于所述首个原始点云数据包的数量以及所述第三差值确定所述每个点云数据包中的点云点数量。
182.在一些实施例中,所述点云码流中还包括第四编码信息,所述处理器用于将所述解码后的一组或多组点云点进行合并后再分包处理时,具体用于:
183.对所述第四编码信息进行解码处理,得到所述原始点云数据包的数量;
184.基于所述原始点云数据包的数量将所述解码后的一组或多组点云合并后再进行分包处理。
185.在一些实施例中,所述第三编码信息或所述第四编码信息记录在所述点云码流中的以下一个或者多个位置:每一序列的头部信息中、每一帧的头部信息中、每一条带的头部信息中和/或每一片的头部信息中。
186.此外,本技术实施例还提供一种编解码系统,所述编解码系统包括编码装置和解码装置,所述编码装置用于获取待编码点云中的点云点的位置坐标,基于所述位置坐标对所述点云点进行分组处理,得到一组或多组点云点,其中,所述一组或多组点云点中的每组点云点的所述位置坐标在目标方向上单调递增或单调递减;分别对所述每组点云点进行编码处理,以得到所述待编码点云的码流;
187.所述解码装置用于对所述码流进行解码处理,得到一组或多组重建点云数据,针对每组重建点云数据中点云点的位置坐标,基于所述位置坐标在所述目标方向上的单调性对所述每组重建点云数据中的点云点进行排序处理,得到解码后的一组或多组点云点。
188.相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的点云编码方法和点云解码方法。
189.本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
190.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
191.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
192.以上对本发明实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1