点云属性编码方法、装置、解码方法、装置及相关设备与流程

文档序号:32520160发布日期:2022-12-13 19:06阅读:33来源:国知局
点云属性编码方法、装置、解码方法、装置及相关设备与流程

1.本发明涉及数据处理技术领域,尤其涉及的是一种点云属性编码方法、装置、解码方法、装置及相关设备。


背景技术:

2.随着科学技术的迅速发展,尤其是计算机技术的发展,三维重构等技术已经广泛应用到了建筑设计、游戏开发、文物保护等各个领域。其中,点云压缩编码和解码技术是三维重建的关键技术之一。点云是三维扫描设备对物体表面采样所获取的,每个点云中可能包括各种不同的属性信息,例如颜色信息、反射率信息等。点云压缩编码和解码的目的是在保留海量点云数据原有属性信息的基础上尽可能地去除冗余,提高系统存储和传输效率。
3.现有技术中,在进行点云属性压缩时,通常先对点云进行分组,然后依次对每组进行属性压缩。对点云进行分组过程中,通常按照特定的一维点云顺序对所有点云数据进行分组。现有技术的问题在于,仅仅依赖一维排列顺序分组,分组无法有效体现点云数据之间的相关关系,影响分组后进行组内变换时去相关性的效率,且影响编码效率。
4.因此,现有技术还有待改进和发展。


技术实现要素:

5.本发明的主要目的在于提供一种点云属性编码方法、装置、解码方法、装置及相关设备,旨在解决现有技术中按照特定的一维点云顺序对所有点云数据进行分组的方案中,依赖一维排列顺序分组,分组无法有效体现点云数据之间的相关关系,影响分组后进行组内变换时去相关性的效率,且影响编码效率的问题。
6.为了实现上述目的,本发明第一方面提供一种点云属性编码方法,其中,上述方法包括:
7.一种点云属性编码方法,其特征在于,上述方法包括:
8.对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据;
9.基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组;
10.基于所有上述待编码组进行点云属性编码。
11.可选的,上述各上述排序点云数据之间的相关性包括各上述排序点云数据在空间上的位置关系。
12.可选的,上述对所有待编码点云数据进行排序,获取排序点云数据,包括:
13.分别获取各上述待编码点云数据对应的目标编码,其中,上述目标编码为莫顿码或希尔伯特码;
14.按照上述目标编码由小到大的顺序对各上述待编码点云数据进行排序,获取排序点云数据。
15.可选的,上述基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组,包括:
16.获取目标尺寸;
17.基于上述目标尺寸对目标空间进行划分,获得多个空间块,其中,上述目标空间为所有上述排序点云数据所在的空间,上述各空间块的尺寸与上述目标尺寸相同;
18.对于每一个上述空间块,分别将上述空间块内的所有排序点云数据划分为一个待编码组。
19.可选的,上述基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组,包括:
20.获取目标位数;
21.比较各上述排序点云数据的目标编码;
22.基于上述目标编码的后目标位数位对各上述排序点云数据进行分组,获取待编码组。
23.可选的,上述基于上述目标编码的后目标位数位对各上述排序点云数据进行分组,获取待编码组,包括:
24.将上述目标编码的后目标位数位相同的排序点云数据划分为一个待编码组,对所有上述排序点云数据进行划分,获得所有待编码组。
25.可选的,上述获取目标位数包括:
26.获取上述排序点云数据的个数和所有上述排序点云数据对应的最大边长尺寸,其中,上述最大边长尺寸为所有上述排序点云数据对应的最小矩形包围盒的最长边的长度;
27.获取上述待编码组的目标平均点数;
28.计算上述目标位数,其中,l为上述目标位数,maxsize为上述最大边长尺寸,n为上述排序点云数据的个数,k
mean
为上述目标平均点数。
29.可选的,上述基于所有上述待编码组进行点云属性编码,包括:
30.获取点数最大值;
31.对于每一个上述待编码组,当上述待编码组内的排序点云数据的个数大于上述点数最大值时,将上述待编码组作为待细分编码组,反之则将上述待编码组作为合格编码组;
32.对于每一个待细分编码组,将上述待细分编码组内的排序点云数据重新划分,获取多个目标细分编码组,其中,上述目标细分编码组内的排序点云数据的个数不大于上述点数最大值;
33.将各上述合格编码组和各上述目标细分编码组作为目标待编码组;
34.基于所有上述目标待编码组进行点云属性编码。
35.可选的,每一个上述待细分编码组对应的多个目标细分编码组中,一个目标细分编码组内的排序点云数据的个数不大于上述点数最大值,其它所有目标细分编码组内的排序点云数据的个数等于上述点数最大值。
36.可选的,上述基于所有上述目标待编码组进行点云属性编码,包括:
37.分别基于各上述目标待编码组内排序点云数据的个数对上述目标待编码组进行
离散余弦正变换,获取各上述目标待编码组的变换系数;
38.分别对各上述目标待编码组的变换系数进行量化和熵编码。
39.本发明第二方面提供一种点云属性编码装置,其中,上述装置包括:
40.待编码点云排序模块,用于对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据;
41.待编码点云分组模块,用于基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组;
42.点云编码模块,用于基于所有上述待编码组进行点云属性编码。
43.本发明第三方面提供一种点云属性解码方法,其中,上述方法包括:
44.对所有待解码点云数据进行排序,获取待解码排序点云数据,其中,上述待解码点云数据为属性待解码的点云数据;
45.基于各上述待解码排序点云数据之间的相关性,对各上述待解码排序点云数据进行分组,获取待解码组;
46.基于所有上述待解码组进行点云属性解码。
47.可选的,上述各上述待解码排序点云数据之间的相关性包括各上述待解码排序点云数据在空间上的位置关系。
48.可选的,上述基于所有上述待解码组进行点云属性解码,包括:
49.分别对各上述待解码组进行熵解码和逆量化,获取各上述待解码组的变换系数;
50.分别基于各上述待解码组内待解码排序点云数据的个数对上述待解码组的变换系数进行离散余弦逆变换,得到各上述待解码组对应的属性重建值。
51.本发明第四方面提供一种点云属性解码装置,其中,上述装置包括:
52.待解码点云排序模块,用于对所有待解码点云数据进行排序,获取待解码排序点云数据,其中,上述待解码点云数据为属性待解码的点云数据;
53.待解码点云分组模块,用于基于各上述待解码排序点云数据之间的相关性,对各上述待解码排序点云数据进行分组,获取待解码组;
54.点云解码模块,用于基于所有上述待解码组进行点云属性解码。
55.本发明第五方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的点云属性编码程序,上述点云属性编码程序被上述处理器执行时实现任意一项上述点云属性编码方法的步骤。
56.本发明第六方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有点云属性编码程序,上述点云属性编码程序被处理器执行时实现任意一项上述点云属性编码方法的步骤。
57.由上可见,本发明方案中的点云属性编码方法包括:对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据;基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组;基于所有上述待编码组进行点云属性编码。与现有技术相比,本发明方案中对待编码数据进行排序后基于相关性进行分组获得待编码组,然后基于待编码组进行点云属性编码。有利于使分组内的点云数据之间的相关性更强,提高分组后进行组内变换时去相关性的效率,有利于提高编码效率。
附图说明
58.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
59.图1是本发明实施例提供的一种点云属性编码方法的流程示意图;
60.图2是本发明实施例图1中步骤s100的具体流程示意图;
61.图3是本发明实施例图1中步骤s200的具体流程示意图;
62.图4是本发明实施例图1中步骤s200的另一种具体流程示意图;
63.图5是本发明实施例图1中步骤s300的具体流程示意图;
64.图6是本发明实施例图5中步骤s305的具体流程示意图;
65.图7是本发明实施例提供的一种点云属性编码装置的结构示意图;
66.图8是本发明实施例提供的一种点云属性解码方法的流程示意图;
67.图9是本发明实施例图8中步骤a300的具体流程示意图;
68.图10是本发明实施例提供的一种点云属性解码装置的结构示意图;
69.图11是本发明实施例提供的一种智能终端的内部结构原理框图。
具体实施方式
70.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
71.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
72.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
73.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
74.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当

时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0075]
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0076]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以
采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0077]
随着科学技术的迅速发展,尤其是计算机技术的发展,三维重构等技术已经广泛应用到了建筑设计、游戏开发、文物保护等各个领域。其中,点云压缩编码和解码技术是三维重建的关键技术之一。点云是三维扫描设备对物体表面采样所获取的,每个点云中可能包括各种不同的属性信息,例如颜色信息、反射率信息等。点云压缩编码和解码的目的是在保留海量点云数据原有属性信息的基础上尽可能地去除冗余,提高系统存储和传输效率。
[0078]
现有技术中,在进行点云属性压缩时,通常先对点云进行分组,然后依次对每组进行属性压缩。现有技术的问题在于,对点云进行分组过程中,通常按照特定的一维点云顺序,根据设定的固定值k,依次将k个点分为一组,直到所有点分组完成。现有技术的问题在于,将三维的几何点对应的点云数据转换为一维点云顺序时,简单的顺序信息已经损失了部分三维坐标信息,且仅仅依赖一维排列顺序分组,分组无法有效体现点云数据之间的相关关系,无法有效利用几何点数据之间的空间位置信息,无法保证组内的几何点位置最为相近。从而无法保证组内几何点属性值具有较强的相关性,影响分组后进行组内变换时去相关性的效率,且影响编码效率和属性压缩效果。
[0079]
为了解决现有技术的问题,本发明提供一种点云属性编码方法,在本发明实施例中,对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据;基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组;基于所有上述待编码组进行点云属性编码。与现有技术相比,本发明方案中对待编码数据进行排序后基于相关性进行分组获得待编码组,然后基于待编码组进行点云属性编码。有利于使分组内的点云数据之间的相关性更强,提高分组后进行组内变换时去相关性的效率,有利于提高编码效率。同时,本发明实施例中还提供与上述点云属性编码方法相对应的点云属性编码装置、点云属性解码方法和点云属性解码装置。
[0080]
如图1所示,本发明实施例提供一种点云属性编码方法,具体的,上述方法包括如下步骤:
[0081]
步骤s100,对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据。
[0082]
其中,点云数据是指一个三维坐标系统中一组向量的集合。本实施例中,上述待编码点云数据可以是扫描获得的点云数据,例如激光雷达扫描点云,还可以是vr使用点云等,各点云以点的形式记录,每一个点包含有三维坐标和属性信息(例如颜色信息和反射率信息)。点云编码主要包括几何编码和属性编码,本发明实施例主要实现点云属性编码,例如对点云的颜色属性进行编码。
[0083]
步骤s200,基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组。
[0084]
其中,上述相关性体现上述排序点云数据之间的相关关系。分组时,将相关性强的排序点云数据分到一组。在一种应用场景中,可以预先设定相关性评价规则和相关阈值,对各排序点云数据之间的相关性进行评价,获得对应的相关值,当相关值大于相关阈值时分为同一组。在另一种应用场景中,还可以基于各排序点云数据之间的相关性进行聚类分组,在此不做具体限定。基于上述相关性进行分组,可以有效利用点云数据之间的相关关系,使
得各待编码组内的几何点属性值具有较强的相关性。
[0085]
步骤s300,基于所有上述待编码组进行点云属性编码。
[0086]
由上可见,本发明实施例提供的点云属性编码方法对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据;基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组;基于所有上述待编码组进行点云属性编码。与现有技术相比,本发明方案中对待编码数据进行排序后基于相关性进行分组获得待编码组,然后基于待编码组进行点云属性编码。有利于使分组内的点云数据之间的相关性更强,提高分组后进行组内变换时去相关性的效率,有利于提高编码效率。
[0087]
具体的,本实施例中,上述各上述排序点云数据之间的相关性包括各上述排序点云数据在空间上的位置关系。
[0088]
具体的,当组内的几何点在空间上更接近时,对应的属性值也具有更好的相关性。因此本实施例中,基于各上述排序点云数据在空间上的位置关系进行分组,可以使得各待编码组内的各排序点云数据对应的几何点的属性值的相关性更强,提高组内变换去相关性的效率,得到更好的压缩效果。
[0089]
具体的,本实施例中,如图2所示,上述步骤s100包括:
[0090]
步骤s101,分别获取各上述待编码点云数据对应的目标编码,其中,上述目标编码为莫顿码或希尔伯特码;
[0091]
步骤s102,按照上述目标编码由小到大的顺序对各上述待编码点云数据进行排序,获取排序点云数据。
[0092]
具体的,根据各上述待编码点云数据的几何坐标计算获得其对应的莫顿码或希尔伯特码,然后按照莫顿码或希尔伯特码由小到大的顺序进行排序,获得排序点云数据对应的序列。上述排序过程可以决定分组后的组间顺序,分组即按照排序点云数据中的顺序合并相邻点。
[0093]
本实施例中提供一种分组方法,如图3所示,上述步骤s200包括:
[0094]
步骤s201,获取目标尺寸。
[0095]
步骤s202,基于上述目标尺寸对目标空间进行划分,获得多个空间块,其中,上述目标空间为所有上述排序点云数据所在的空间,上述各空间块的尺寸与上述目标尺寸相同。
[0096]
步骤s203,对于每一个上述空间块,分别将上述空间块内的所有排序点云数据划分为一个待编码组。
[0097]
其中,上述目标尺寸是对目标空间进行划分时需要获得的各个空间块的尺寸,可以预先设定,也可以由用户输入,还可以根据具体的排序点云数据的分布情况和目标空间的大小进行调整,在此不做具体限定。在一种应用场景中,上述目标尺寸是需要获得的各个空间块的边长。
[0098]
具体的,将上述目标空间进行等尺寸划分,获得多个空间块。例如,可以根据目标尺寸采用八叉树的划分方法进行划分:假设上述目标空间的最大边长为h,构造一个h
×h×
h的立方体,第一次划分出8个边长为h/2的立方体;第二次再将每个h/2的立方体划分出8个边长为h/4的立方体,依次类推,直到划分后的块的尺寸达到目标尺寸,获得等尺寸划分的
空间块。每个空间块的几何尺寸为s(即目标尺寸),空间块内的点被划分为一组。
[0099]
本实施例中还提供另一种分组方法,如图4所示,上述步骤s200包括:
[0100]
步骤s201,获取目标位数。
[0101]
步骤s202,比较各上述排序点云数据的目标编码。
[0102]
步骤s203,基于上述目标编码的后目标位数位对各上述排序点云数据进行分组,获取待编码组。
[0103]
其中,上述目标位数是用于进行对比的目标编码的位数值,可以预先设定,也可以由用户输入,还可以根据具体的排序点云数据的分布情况进行计算和调整,在此不做具体限定。具体的,本实施例中,记上述目标位数为l,则基于上述目标编码的后l位对各上述排序点云数据进行分组,获取待编码组。
[0104]
具体的,上述步骤s203包括:将上述目标编码的后目标位数位相同的排序点云数据划分为一个待编码组,对所有上述排序点云数据进行划分,获得所有待编码组。具体的,基于莫顿码或希尔伯特码的后目标位数位进行分组,可以使得获得的各个待编码组内的排序点云数据在空间位置上的相关性更强。
[0105]
本实施例中,上述目标位数根据排序点云数据的实际情况进行计算,具体的,上述步骤s201包括:获取上述排序点云数据的个数和所有上述排序点云数据对应的最大边长尺寸,其中,上述最大边长尺寸为所有上述排序点云数据对应的最小矩形包围盒的最长边的长度;获取上述待编码组的目标平均点数;计算上述目标位数,其中,l为上述目标位数,maxsize为上述最大边长尺寸,n为上述排序点云数据的个数,k
mean
为上述目标平均点数。
[0106]
其中,maxsize是对各排序点云数据的几何坐标定点化后的最大边长尺寸。具体的,原始几何坐标可能是小数,将其转成整数并做一定的放大,使得所有点的坐标不会出现因为转成整数而导致的重合,然后计算所有点云的最小矩形包围盒,将最小矩形包围盒的最长的边的长度作为上述最大边长尺寸maxsize。log2(maxsize)表示以2为底数,以maxsize为真数的对数函数,同理,表示以2为底数,以为真数的对数函数。上述目标平均点数k
mean
是预先设定的进行分组后的所有待编码组中的排序点云数据的个数的目标均值,可以根据实际需求进行设置和调整,在此不做具体限定。根据计算出来的目标位数进行分组后,所有待编码组的实际平均点数k

mean
与上述目标平均点数k
mean
相近。上述目标位数l的计算公式基于点云的统计特性得到,即n近似正比于maxsize的平方。
[0107]
在一种应用场景中,上述两种分组方法可以互相对应。具体的,可以设置s=2
l/3
,使用莫顿码作为目标编码时,根据上述计算规则,当l为3的倍数时,两种分组方法等价。若s不为2的指数形式,则第一种分组方法(划分空间块的方法)更好。第二种分组方法(即将目标编码的后l位相同的排序点云数据划分为一组的方法)给出了一些特例(如s为2的指数形式)下的实现方法,并且具有一定的扩展性(例如可以更好的适用于使用希尔伯特码作为目标编码的场景)。
[0108]
本实施例中,基于上述分组方法,可以充分利用点云的三维坐标信息对点(即排序点云数据对应的几何点)进行分组,保证组内几何点在空间上更加相近,从而使各点的属性
值更具有相关性,最终提高之后组内变换去相关性的效率,得到更好的压缩效果。具体的,能量越集中分布,去除的相关性就越多,当组内点云的相关性较高时,变换后更容易使得能量集中在dc系数和前几个ac系数上,能获得更多的数值小的后几个ac系数或者更多的零,可以提升编码效率和编码效果。进一步的,基于本发明实施例提供的分组方法,还可以有效的利用三维坐标信息,实现动态自适应分组,针对不同类型的点云(例如稀疏的激光雷达扫描点云或稠密的vr使用点云)动态调整分组参数(如调整目标位数l),提高分组效率和编码效果。具体的,假设一个点云的密度是均匀的,在设定上述目标平均点数k
mean
相同的情况下,对于一个稀疏的点云,计算出的l的值较大;对于一个稠密的点云,计算出的l的值较小。基于上述分组方法,使得获得的待编码组的数目不会过多,且各待编码组的尺寸保持较小,提升后续变换的性能。如果待编码组的尺寸过大,组内点的相关性就会下降,变换效果不佳。如果待编码组的数目过多,需要对每一个待编码组分别进行变换,需要的处理时间就会越长,影响点云属性编码的效率。
[0109]
具体的,本实施例中,分组后的各上述待编码组按照步骤s100中的顺序进行排列,对应着编码或解码顺序,例如,将各个待编码组内的排序点云数据中,对应的排序最靠前的排序点云数据对应的排序作为该待编码组的排序,使得各个待编码组分别按照其中排序最靠前的排序点云数据对应的排序进行排序,各个待编码组的排序与步骤s100中的排序保持对应,作为组间顺序。
[0110]
可选的,可以直接对获得的上述待编码组进行点云属性编码,也可以对其中部分包含的排序点云数据较多的待编码组进行进一步细分后再进行点云属性编码。具体的,本实施例中,通过上述分组方法划分获得的各个待编码组内的排序点云数据的个数可能是不确定的,而编码过程中进行离散余弦正变换时需要提供对应大小的变换矩阵。如果各个待编码组内的排序点云数据的个数不确定,则可能出现预先提供的变换矩阵的大小不能满足待编码组的情况,需要实时调整对应的变换矩阵的大小,降低编码效率。因此,可以对包含的排序点云数据较多的待编码组进行进一步细分,限定每个分组内最大的点数,从而可以获得需要预先提供的变换矩阵的大小的最大值并预先提供所需的所有变换矩阵,提高处理速度。
[0111]
具体的,本实施例中,如图5所示,上述步骤s300包括:
[0112]
步骤s301,获取点数最大值。
[0113]
步骤s302,对于每一个上述待编码组,当上述待编码组内的排序点云数据的个数大于上述点数最大值时,将上述待编码组作为待细分编码组,反之则将上述待编码组作为合格编码组。
[0114]
步骤s303,对于每一个待细分编码组,将上述待细分编码组内的排序点云数据重新划分,获取多个目标细分编码组,其中,上述目标细分编码组内的排序点云数据的个数不大于上述点数最大值。
[0115]
步骤s304,将各上述合格编码组和各上述目标细分编码组作为目标待编码组。
[0116]
步骤s305,基于所有上述目标待编码组进行点云属性编码。
[0117]
其中,上述点数最大值为每个待编码组中的点数最大值,即设定的每个待编码组中最多包含的排序点云数据的个数,本实施例中,以k
max
代表上述点数最大值,上述点数最大值可以预先设定,也可以根据实际需求进行设置和调整,在此不做具体限定。对于获得的
每一个待编码组,分别判断其中的排序点云数据的个数是否大于上述点数最大值k
max
,当某待编码组内的排序点云数据的个数大于上述点数最大值k
max
时,该待编码组需要进行进一步的细分组,将上述待编码组作为待细分编码组并进行细分组,反之则将该待编码组作为无需进一步细分组的合格编码组。
[0118]
对于待细分编码组进行进一步细分组,将一个待细分编码组划分为多个目标细分编码组,其中,每个目标细分编码组内的排序点云数据的个数不大于上述点数最大值k
max
。将所有合格编码组和所有目标细分编码组都分别作为目标待编码组,对目标待编码组进行点云属性编码。
[0119]
具体的,经过分组和细分组处理后获得的各个目标待编码组中,第i个目标待编码组有ki个几个点,ki=1,

,k
max
,k
max
是点数最大值,即每个目标待编码组内的点数的最大值。本发明可以动态的控制ki的数值,即在分组过程中不同组包含的点数可以不相同,且对ki的数值进行了限定,便于进行变换处理。
[0120]
本实施例中,可以设置以使得分组获得的各待编码组中的点数符合要求,减少进一步进行细分组的需要。
[0121]
具体的,本实施例中,每一个上述待细分编码组对应的多个目标细分编码组中,一个目标细分编码组内的排序点云数据的个数不大于上述点数最大值,其它所有目标细分编码组内的排序点云数据的个数等于上述点数最大值。
[0122]
具体的细分组获得目标细分编码组的方法可以根据实际需求进行设定和调整,在此不做具体限定。在一种应用场景中,对于某一个待细分编码组,首先按照k
max
(和各排序点云数据的顺序)对排序点云数据进行等个数分组,将最后遗留的排序点云数据作为最后一个组。例如,一个待细分编码组内包括10个排序点云数据,设定的k
max
为8,则获得两个包含的排序点云数据的个数分别为8和2的目标细分编码组。
[0123]
具体的,本实施例中,如图6所示,上述步骤s305包括:
[0124]
步骤s3051,分别基于各上述目标待编码组内排序点云数据的个数对上述目标待编码组进行离散余弦正变换,获取各上述目标待编码组的变换系数。
[0125]
步骤s3052,分别对各上述目标待编码组的变换系数进行量化和熵编码。
[0126]
具体的,本实施例中限定了各上述目标待编码组组内排序点云数据的个数ki的最大值为k
max
,则可以预先提供ki=1,

,k
max
对应的变换矩阵,从而提高变换效率。
[0127]
具体的,对上述目标待编码组按照上述步骤s100的顺序依次进行属性编码,其中,各目标待编码组对应的排序可以根据各目标待编码组中排序最靠前的排序点云数据对应的排序确定。在以组为单位进行编码时,可以对点云属性值(或基于属性预测值得到的点云属性残差值)进行ki元离散余弦(dct)正变换,得到变换系数。在一种应用场景中,可以计算变换系数的预测值,求得变换系数残差。对编码时得到的变换系数或变换系数残差进行相应的量化,得到量化变换系数或量化变换系数残差,再对量化变换系数或量化变换系数残差进行熵编码写入码流。其中不同ki元dct变换得到的直流(dc)系数和交流(ac)系数可以采用不同的量化步长。具体量化方法可以采用均匀量化,带死区的均匀量化,非均匀量化等。具体的,对各上述目标待编码组进行编码的方法还可以参照现有技术中的其它编码方法,在此不做具体限定。
[0128]
进一步的,本发明实施例中,基于avs-pcc pcrm软件v3.0版本,测试了本实施例方法与anchor对比的实验结果,结果如下表1和表2所示。
[0129]
表1
[0130][0131]
表2
[0132][0133]
表1为在有限有损几何、有损属性条件下的亮度、色度以及反射率的率失真数据对比表,表2为在无损几何、有损属性条件下的亮度、色度以及反射率的率失真数据对比表。根据表1和表2可知,相比测试平台pcrm的基准结果,在有限有损几何、有损属性条件以及无损几何、有损属性条件下,对于亮度属性,本发明的端到端属性率失真分别减少了20.2%,27.3%;对于色度cb属性,本发明的端到端属性率失真分别减少了47.4%,39.7%;对于色度cr属性,本发明的端到端属性率失真分别减少了48.3%,41.3%;本发明实施例提供的点云属性编码方法达到了更好的编码效果。
[0134]
如图7所示,对应于上述点云属性编码方法,本发明实施例还提供一种点云属性编码装置,上述点云属性编码装置包括:
[0135]
待编码点云排序模块410,用于对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据。
[0136]
其中,点云数据是指一个三维坐标系统中一组向量的集合。本实施例中,上述待编码点云数据可以是扫描获得的点云数据,例如激光雷达扫描点云,还可以是vr使用点云等,各点云以点的形式记录,每一个点包含有三维坐标和属性信息(例如颜色信息和反射率信息)。点云编码主要包括几何编码和属性编码,本发明实施例中主要实现点云属性编码,例如对点云的颜色属性进行编码。
[0137]
待编码点云分组模块420,用于基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组。
[0138]
其中,上述相关性体现上述排序点云数据之间的相关关系。分组时,将相关性强的排序点云数据分到一组。在一种应用场景中,可以预先设定相关性评价规则和相关阈值,对各排序点云数据之间的相关性进行评价,获得对应的相关值,当相关值大于相关阈值时分为同一组。在另一种应用场景中,还可以基于各排序点云数据之间的相关性进行聚类分组,
在此不做具体限定。基于上述相关性进行分组,可以有效利用点云数据之间的相关关系,使得各待编码组内的几何点属性值具有较强的相关性。
[0139]
点云编码模块430,用于基于所有上述待编码组进行点云属性编码。
[0140]
由上可见,本发明实施例提供的点云属性编码装置通过待编码点云排序模块410对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据;通过待编码点云分组模块420基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组;通过点云编码模块430基于所有上述待编码组进行点云属性编码。与现有技术相比,本发明方案中对待编码数据进行排序后基于相关性进行分组获得待编码组,然后基于待编码组进行点云属性编码。有利于使分组内的点云数据之间的相关性更强,提高分组后进行组内变换时去相关性的效率,有利于提高编码效率。
[0141]
具体的,本实施例中,上述各上述排序点云数据之间的相关性包括各上述排序点云数据在空间上的位置关系。
[0142]
具体的,本实施例中,上述待编码点云排序模块410、待编码点云分组模块420以及点云编码模块430进行上述处理的具体方法流程可以参照对应的点云属性编码方法中的具体描述,在此不再赘述。
[0143]
如图8所示,对应于上述点云属性编码方法,本发明实施例还提供一种点云属性解码方法,上述方法包括:
[0144]
步骤a100,对所有待解码点云数据进行排序,获取待解码排序点云数据,其中,上述待解码点云数据为属性待解码的点云数据。
[0145]
点云解码主要包括几何解码和属性解码,本发明实施例中主要实现点云属性解码,例如对点云的颜色属性进行解码。
[0146]
步骤a200,基于各上述待解码排序点云数据之间的相关性,对各上述待解码排序点云数据进行分组,获取待解码组。
[0147]
其中,上述相关性体现上述排序点云数据之间的相关关系。分组时,将相关性强的待解码排序点云数据分到一组。在一种应用场景中,可以预先设定相关性评价规则和相关阈值,对各待解码排序点云数据之间的相关性进行评价,获得对应的相关值,当相关值大于相关阈值时分为同一组。在另一种应用场景中,还可以基于各待解码排序点云数据之间的相关性进行聚类分组,在此不做具体限定。基于上述相关性进行分组,可以有效利用点云数据之间的相关关系,使得各待解码组内的几何点属性值具有较强的相关性。
[0148]
步骤a300,基于所有上述待解码组进行点云属性解码。
[0149]
由上可见,对应于上述点云属性编码方法,本发明实施例提供的点云属性解码方法对所有待解码点云数据进行排序,获取待解码排序点云数据,其中,上述待解码点云数据为属性待解码的点云数据;基于各上述待解码排序点云数据之间的相关性,对各上述待解码排序点云数据进行分组,获取待解码组;基于所有上述待解码组进行点云属性解码。与现有技术相比,有利于使分组内的点云数据之间的相关性更强,有利于提高解码效率。
[0150]
具体的,本实施例中,上述各上述待解码排序点云数据之间的相关性包括各上述待解码排序点云数据在空间上的位置关系。
[0151]
具体的,本实施例中,上述步骤a100包括:别获取各上述待解码点云数据对应的目
标编码,其中,上述目标编码为莫顿码或希尔伯特码;按照上述目标编码由小到大的顺序对各上述待解码点云数据进行排序,获取待解码排序点云数据。
[0152]
对应于上述点云属性编码方法,本发明实施例提供的点云属性解码方法也可以采用不同的分组方法。在一种应用场景中,上述步骤a200包括:获取目标尺寸;基于上述目标尺寸对目标空间进行划分,获得多个空间块,其中,上述目标空间为所有上述待解码排序点云数据所在的空间,上述各空间块的尺寸与上述目标尺寸相同;对于每一个上述空间块,分别将上述空间块内的所有待解码排序点云数据划分为一个待解码组。在另一种应用场景中,上述步骤a200包括:获取目标位数;比较各上述排序点云数据的目标编码;基于上述目标编码的后目标位数位对各上述待解码排序点云数据进行分组,获取待解码组。具体的分组处理过程可以参照上述点云属性编码方法中的描述,在此不再赘述。
[0153]
可选的,可以直接对获得的上述待解码组进行点云属性解码,也可以对其中部分包含的待解码排序点云数据较多的待解码组进行进一步细分后再进行点云属性解码。
[0154]
当直接对获得的上述待解码组进行点云属性解码时,如图9所示,上述步骤a300包括:
[0155]
步骤a301,分别对各上述待解码组进行熵解码和逆量化,获取各上述待解码组的变换系数。
[0156]
步骤a302,分别基于各上述待解码组内待解码排序点云数据的个数对上述待解码组的变换系数进行离散余弦逆变换,得到各上述待解码组对应的属性重建值。
[0157]
具体的,本实施例中,对其中部分包含的待解码排序点云数据较多的待解码组进行进一步细分后再进行点云属性解码,上述步骤a300包括:获取点数最大值;对于每一个上述待解码组,当上述待解码组内的待解码排序点云数据的个数大于上述点数最大值时,将上述待解码组作为待细分解码组,反之则将上述待解码组作为合格解码组;对于每一个待细分解码组,将上述待细分解码组内的待解码排序点云数据重新划分,获取多个目标细分解码组,其中,上述目标细分解码组内的待解码排序点云数据的个数不大于上述点数最大值;将各上述合格解码组和各上述目标细分解码组作为目标待解码组;基于所有上述目标待解码组进行点云属性解码。
[0158]
其中,上述点数最大值为每个待解码组中的点数最大值,即设定的每个待解码组中最多包含的排序点云数据的个数。具体的进行细分组并获得目标待解码组的方法流程可以参照上述点云属性编码方法中的描述,在此不再赘述。
[0159]
本实施例中,在以组为单位进行解码时,可以对码流(即所有待解码组或目标待解码组)进行熵解码获得量化变换系数或量化变换系数残差,再进行逆量化得到变换系数或变换系数残差。对于得到的变换系数残差,基于与编码时相同的变换系数预测方法,相加可以求得变换系数。接着对变换系数进行k
′i(各待解码组或目标待解码组中待解码排序点云数据的个数)元dct逆变换,得到点云重建属性值或者点云重建属性残差值。对于获得的点云重建属性残差值,基于与编码时相同的属性值预测方法,最终相加可以求得重建属性值。具体的,对各上述待解码组或目标待解码组进行解码的方法还可以参照现有技术中的其它解码方法,在此不做具体限定。
[0160]
如图10所示,对应于上述点云属性解码方法,本发明实施例还提供一种点云属性解码装置,上述点云属性解码装置包括:
[0161]
待解码点云排序模块510,用于对所有待解码点云数据进行排序,获取待解码排序点云数据,其中,上述待解码点云数据为属性待解码的点云数据。
[0162]
其中,点云数据是指一个三维坐标系统中一组向量的集合。本实施例中,上述待解码点云数据可以是扫描获得的点云数据,例如激光雷达扫描点云,还可以是vr使用点云等,各点云以点的形式记录,每一个点包含有三维坐标和属性信息(例如颜色信息和反射率信息)。点云解码主要包括几何解码和属性解码,本发明实施例中主要实现点云属性解码,例如对点云的颜色属性进行解码。
[0163]
待解码点云分组模块520,用于基于各上述待解码排序点云数据之间的相关性,对各上述待解码排序点云数据进行分组,获取待解码组。
[0164]
其中,上述相关性体现上述待解码排序点云数据之间的相关关系。分组时,将相关性强的待解码排序点云数据分到一组。
[0165]
点云解码模块530,用于基于所有上述待解码组进行点云属性解码。
[0166]
由上可见,本发明实施例提供的点云属性解码装置通过待解码点云排序模块510对所有待解码点云数据进行排序,获取待解码排序点云数据,其中,上述待解码点云数据为属性待解码的点云数据;通过待解码点云分组模块520基于各上述待解码排序点云数据之间的相关性,对各上述待解码排序点云数据进行分组,获取待解码组;通过点云解码模块530基于所有上述待解码组进行点云属性解码。与现有技术相比,本发明方案中对待解码数据进行排序后基于相关性进行分组获得待解码组,然后基于待解码组进行点云属性解码。有利于使分组内的点云数据之间的相关性更强,提高分组后进行组内变换时去相关性的效率,有利于提高解码效率。
[0167]
具体的,本实施例中,上述待解码点云排序模块510、待解码点云分组模块520以及点云解码模块530进行上述处理的具体方法流程可以参照对应的点云属性编码方法和/或点云属性解码方法中的具体描述,在此不再赘述。
[0168]
可选的,本实施例中,上述点云属性解码装置还可以参照上述点云属性编码方法中的具体步骤进行对应的解码,例如,基于上述点云属性编码方法中对应的量化步长进行逆量化等,在此不再赘述。如此,可以实现对基于上述点云属性编码方法或装置进行编码的数据进行解码。
[0169]
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图11所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和点云属性编码程序。该内存储器为非易失性存储介质中的操作系统和点云属性编码程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该点云属性编码程序被处理器执行时实现上述任意一种点云属性编码方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
[0170]
本领域技术人员可以理解,图11中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0171]
在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存
储在上述存储器上并可在上述处理器上运行的点云属性编码程序,上述点云属性编码程序被上述处理器执行时进行以下操作指令:
[0172]
对所有待编码点云数据进行排序,获取排序点云数据,其中,上述待编码点云数据为属性待编码的点云数据;
[0173]
基于各上述排序点云数据之间的相关性,对各上述排序点云数据进行分组,获取待编码组;
[0174]
基于所有上述待编码组进行点云属性编码。
[0175]
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有点云属性编码程序,上述点云属性编码程序被处理器执行时实现本发明实施例提供的任一种点云属性编码方法的步骤。
[0176]
可选的,上述智能终端和计算机可读存储介质中也可以存储点云属性解码程序,以实现上述点云属性解码方法的步骤。
[0177]
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0178]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0179]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0180]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0181]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0182]
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以
包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
[0183]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1