1.本发明涉及数据处理技术领域,特别涉及一种点云属性编码方法、点云属性解码方法及存储介质。
背景技术:2.现有点云属性编码技术的主要步骤为:
3.1)将点云按照某种特定顺序排列为一维序列,按照顺序对每一点依次进行编码;
4.2)利用前序已编码点的信息,对某一点的属性值进行预测,并求得预测值与真实属性值的残差;
5.3)根据提前设定的量化精度对2)中残差进行量化,得到残差量化系数,将残差量化系数进行熵编码,完成该点的编码;如果使用变换技术,则进一步对2)中残差进行变换,得到变换系数,接着对变换系数进行量化,得到变换量化系数,将变换量化系数进行熵编码得到码流,完成该点的编码。
6.对应解码技术的主要步骤为:
7.4)对码流进行相应的熵解码得到量化系数,对量化系数进行逆量化,得到重建残差;如果使用变换技术,则对码流进行相应的熵解码得到量化系数,对量化系数进行逆量化和逆变换,得到重建残差。
8.5)将重建残差与2)中预测值相加,得到重建属性值,将其用于后序点的预测。
9.但是,现有预测技术基于几何距离近的点相关性高的假设进行预测,在距离较大时预测误差也较大,并且由于后续点要基于之前重建的点进行预测,因而还存在量化误差累积的缺陷,导致解码重建点云的总体平均误差较大,精度低。
10.因而现有技术还有待改进和提高。
技术实现要素:11.本发明的主要目的在于提供一种点云属性编码方法、点云属性解码方法及存储介质,旨在解决现有技术中对点云进行重建时精度差的问题。
12.为了达到上述目的,本发明采取了以下技术方案:
13.一种点云属性编码方法,所述点云属性编码方法包括以下步骤:
14.根据预设规则基于待编码点云数据得到目标排序码,并按照所述目标排序码对所述待编码点云数据进行排序,获取第一排序点云数据;其中,所述预设规则为原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则,所述待编码点云数据为属性待编码的点云数据;
15.从所述第一排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待编码点与最相邻点之间的差值距离;其中,所述预设距离计算方法为几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法;
16.比较所述差值距离与阈值距离,根据比较结果调整当前量化参数,得到当前调整
量化参数,或根据比较结果选择不同的舍入区间,得到当前调整量化舍入方法;
17.利用所述当前调整量化参数或所述当前调整量化舍入方法对输入系数进行量化得到量化系数后,对所述量化系数进行熵编码,得到码流;其中,所述输入系数包括残差系数和变换系数。
18.所述点云属性编码方法中,所述比较所述差值距离与阈值距离,根据比较结果调整当前量化参数,得到当前调整量化参数,或根据比较结果选择不同的舍入区间,得到当前调整量化舍入方法的步骤包括:
19.将所述差值距离与所述阈值距离进行比较;
20.若所述差值距离大于所述阈值距离,则将初始量化参数加上偏移值,得到当前调整量化参数,或选择第一舍入区间作为所述当前调整量化舍入方法;
21.若所述差值距离不大于所述阈值距离,则选择所述初始量化参数作为当前调整量化系数,或选择第二舍入区间作为所述当前调整量化舍入方法。
22.所述点云属性编码方法中,所述利用所述当前调整量化参数或所述当前调整量化舍入方法对输入系数进行量化得到量化系数后,对所述量化系数进行熵编码,得到码流的步骤包括:
23.对当前待编码点的属性值进行预测得到预测值,计算所述预测值与当前待编码点的真实属性值的残差系数;利用所述当前调整量化参数或所述当前调整量化舍入方法对所述残差系数进量化得到的残差量化系数,对所述残差量化系数进行熵编码,得到所述码流;其中,所述输入系数包括所述残差系数,所述量化系数包括所述残差量化系数;
24.或,对当前待编码点的属性值进行预测得到所述预测值,计算所述预测值与当前待编码点的真实属性值的残差系数,并对所述残差系数进行变换,得到变换系数;利用所述当前调整量化参数或所述当前调整量化舍入方法对所述变换系数进行量化得到的变换量化系数,对所述变换量化系数进行熵编码,得到所述码流;其中,所述输入系数包括所述变换系数,所述量化系数包括所述变换量化系数。
25.一种计算机可读存储介质,所述计算机可读存储介质上存储有点云属性编码程序,所述点云属性编码程序被处理器执行时实现如上所述的点云属性编码方法的步骤。
26.一种点云属性解码方法,所述点云属性解码方法包括以下步骤:
27.根据预设规则基于待解码点云数据进行排序,获取第二排序点云数据;其中,所述待解码点云数据为属性待解码的点云数据;
28.从所述第二排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待解码点与最相邻点之间的差值距离;
29.比较所述差值距离与阈值距离,根据比较结果调整当前逆量化参数,得到当前调整逆量化参数;
30.对编码得到的码流进行熵解码得到重建量化系数,根据所述当前调整逆量化参数对所述重建量化系数进行逆量化,得到重建输入系数。
31.所述点云属性解码方法中,所述根据预设规则基于待解码点云数据进行排序,获取第二排序点云数据的步骤具体包括:
32.根据原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则获取所述待解码点云数据对应的目标排序码;其中,所述目标排序码为输入序号或莫顿码或希尔伯特码;
33.按照所述目标排序码由小到大或由大到小的顺序对所述待解码点云数据中的点进行排序,得到所述第二排序点云数据。
34.所述点云属性解码方法中,所述从所述第二排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待解码点与最相邻点之间的差值距离的步骤具体包括:
35.根据几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法,搜索距离当前待解码点最近的点,作为当前待解码点的最相邻点;其中,n为大于1的正整数;
36.或,将当前待解码点的前m个点作为当前待解码点的最相邻点;
37.计算当前待解码点与所述最相邻点之间的距离差值作为所述差值距离。
38.所述点云属性解码方法中,所述比较所述差值距离与阈值距离,根据比较结果调整当前逆量化参数,得到当前调整逆量化参数的步骤包括:
39.将所述差值距离与所述阈值距离进行比较;
40.若所述差值距离大于所述阈值距离,则将初始逆量化参数加上偏移值,得到当前调整逆量化参数;
41.若所述差值距离不大于所述阈值距离,则选择所述初始逆量化参数作为当前调整逆量化参数。
42.所述点云属性解码方法中,所述对编码得到的码流进行熵解码得到重建量化系数,根据所述当前调整逆量化参数对所述重建量化系数进行逆量化,得到重建输入系数的步骤具体包括:
43.对编码得到的码流进行熵解码,得到变换重建量化系数或残差重建量化系数;
44.利用所述当前调整逆量化参数对所述变换重建量化系数或所述残差重建量化系数进行逆量化,相应地得到变换重建系数或残差重建系数;其中,所述重建输入系数包括所述变换重建系数和所述残差重建系数。
45.一种计算机可读存储介质,所述计算机可读存储介质上存储有点云属性解码程序,所述点云属性解码程序被处理器执行时实现如上所述的点云属性解码方法的步骤。
46.相较于现有技术,本发明提供的点云属性编码方法、点云属性解码方法及存储介质,所述编码方法包括:根据预设规则基于待编码点云数据得到目标排序码,并根据目标排序码对待编码点云数据进行排序;按照排序依次对待编码点云数据中的点进行属性编码:计算当前待编码点与最相邻点之间的差值距离,并与阈值距离比较,根据比较结果调整当前量化参数得到当前调整量化参数或选择舍入区间得到当前调整量化舍入方法;根据当前调整量化参数或当前调整量化舍入方法对输入系数进行量化,得到量化系数;对量化系数进行熵编码得到码流。通过在对点云数据进行编码时,计算当前待编码点与最相邻点之间的差值距离后,与阈值距离比较,根据比较结果调整当前量化参数或选择舍入区间得到当前调整量化舍入方法,再利用得到的当前调整量化参数或当前调整量化舍入方法对输入系数进行量化得到量化系数,即通过对距离的判定,筛选预测误差较大的点,调整量化参数或量化舍入方法,减小了预测误差,从而有效地提升重建点云数据的精度。
附图说明
47.图1为本发明提供的点云属性编码方法的较佳实施例的流程图;
48.图2为本发明提供的点云属性编码方法的较佳实施例中最相邻点的确定方法示意
图;
49.图3为本发明提供的点云属性编码方法的较佳实施例中步骤s30的流程图;
50.图4为本发明提供的点云属性编码方法的较佳实施例中步骤s40的流程图;
51.图5为本发明提供的点云属性编码方法的较佳实施例中步骤s40的另一种流程图;
52.图6为本发明提供的点云属性解码方法的较佳实施例的流程图;
53.图7为本发明提供的点云属性编码方法的较佳实施例中步骤s100的流程图;
54.图8为本发明提供的点云属性编码方法的较佳实施例中步骤s200的流程图;
55.图9为本发明提供的点云属性编码方法的较佳实施例中步骤s300的流程图;
56.图10为本发明提供的点云属性编码方法的较佳实施例中步骤s400的流程图。
具体实施方式
57.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
58.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
59.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
60.下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
61.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
62.随着科学技术的迅速发展,尤其是计算机技术的发展,三维重构等技术已经广泛应用到了建筑设计、游戏开发、文物保护等各个领域。其中,点云压缩编码和解码技术是三维重建的关键技术之一。点云是三维扫描设备对物体表面采样所获取的,每个点云中可能包括各种不同的属性信息,例如颜色信息、反射率信息等。点云压缩编码和解码的目的是在保留海量点云数据原有属性信息的基础上尽可能地去除冗余,提高系统存储和传输效率。
63.本发明提供了一种点云属性编码方法、点云属性解码方法及存储介质。本技术中
通过在对点云数据进行编码时,计算当前待编码点与最相邻点之间的差值距离后,与阈值距离比较,根据比较结果调整当前逆量化参数,或选择不同的舍入区间作为当前量化舍入方法,再利用得到的当前调整逆量化参数或当前调整量化舍入方法,对输入系数进行量化和熵编码,得到码流;以及通过在对点云数据进行解码时,同样计算当前待编码点与最相邻点之间的差值距离后,与阈值距离比较,根据比较结果调整当前逆量化参数,再利用得到的当前调整逆量化参数对经过熵解码后的码流进行逆量化,得到重建输入系数;即在编码和解码时,均通过对距离的判定,筛选误差点,调整了量化参数,从而减少了预测时存在量化误差累积的缺陷,而导致解码重建点云的总体平均误差增大的问题,有效地提升了重建点云数据的精度。
64.下面通过具体示例性的实施例对点云属性编码方法设计方案进行描述,需要说明的是,下列实施例只用于对发明的技术方案进行解释说明,并不做具体限定:
65.请参阅图1,本发明提供的一种点云属性编码方法,包括以下步骤:
66.s10、根据预设规则基于待编码点云数据得到目标排序码,并按照所述目标排序码对所述待编码点云数据进行排序,获取第一排序点云数据,所述第一排序点云数据属于一种一维序列。其中,所述预设规则为原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则,所述待编码点云数据为属性待编码的点云数据,所述原始序号排列规则是指采用待编码点云数据在输入时的原始输入序号顺序的规则。
67.其中,点云数据是指一个三维坐标系统中一组向量的集合。本实施例中,所述待编码点云数据可以是扫描获得的点云数据,例如激光雷达扫描点云,还可以是vr使用点云等,各点云以点的形式记录,每一个点包含有三维坐标和属性信息(例如颜色信息和反射率信息)。
68.具体地,在对所述待编码点云数据进行编码时,首先,将待编码点云数据按原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则转换为多个目标排序码,再将多个目标排序码按照由小到大或由大到小的顺序进行排序,得到所述第一排序点云数据,从而实现将待编码点云数据进行有效排序,便于按照所述第一排序点云数据进行依次编码。
69.s20、从所述第一排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待编码点与最相邻点之间的差值距离;其中,n为大于1的正整数,所述预设距离计算方法为几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法。
70.具体地,所述几何距离可以是欧氏距离,即计算两点(例如当前待编码点a和已编码点p)间在x、y、z轴上的距离,记作dg。一些情况下点云可能有多种属性,比如颜色属性和反射率属性。在已经完成了反射率属性后,就可以得到所有点的反射率属性重建值。那么在编码颜色的时候,所述属性距离可以等于点a和点p的反射率属性重建值的差值的绝对值,记作da,则综合距离dc=dg+da*c,其中,c是可调节参数。
71.那么,当对待编码点云数据进行排序后,从所述第一排序点云数据中的第n个点开始,按照所述第一排序点云数据依次对待编码点云数据进行编码,编码过程如下:
72.利用几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法计算出当前待编码点与最相邻点之间的差值距离d。还可以是根据所述第一排序点云数据的编码排序,将当前待编码点的前一个点直接当作最相邻点,并计算当前待编码点与最相邻点之间的差值距离,从而可以根据多种方式精准地计算出当前待编码点与最相邻点之间的差值
距离,为调整当前量化参数或当前量化舍入方法作依据。或者将排序距离直接做为差值距离,用以调整当前量化参数或当前量化舍入方法,两个点云数据点的所述排序距离为所述第一排序点云数据两点间的点数加1,排序距离是计算复杂度最低的距离计算方法。
73.所述最相邻点的确定方法具体可参阅图2:
74.1、根据几何距离确定所述最相邻点:
75.基于已知的坐标信息,计算1-7号数据点(已编码点)与8号点(当前待编码点)的欧氏距离(或者是曼哈顿距离,欧氏距离的平方等),比较得到距离最小的数据点,作为8号点的最相邻点。
76.2、根据几何距离和属性距离构成的综合距离确定所述最相邻点:
77.基于已知的坐标信息和已知的其他属性信息,计算1-7号数据点与8号点的综合距离,比较得到距离最小的数据点,作为8号点的最相邻点。例如,当前编码的属性是颜色属性,已知的属性是反射率属性,那么,综合距离dc:dc=dg+da*c。其中,c是可调节参数;dg为欧氏距离;da为反射率属性的距离,等于1-7号点和8号点反射率属性重建值的差值的绝对值。
78.3、根据排序距离确定所述最相邻点:
79.将8号点的前一个点(7号数据点)直接当作最相邻点,最近排序距离为:8-7=1。
80.s30、比较所述差值距离与阈值距离,根据比较结果调整当前量化参数,得到当前调整量化参数,或根据比较结果选择不同的舍入区间,得到当前调整量化舍入方法。
81.具体地,在计算出当前待编码点与最相邻点之间的差值距离后,比较所述差值距离与所述阈值距离t,并根据比较结果调整当前量化参数,得到当前调整量化参数,或根据比较结果选择不同的舍入区间,得到当前调整量化舍入方法,实现了根据所述预设阈值相应地调整前量化参数或当前量化舍入方法,从而筛选出误差点,提升重建点云时的精度;且通过自定义右移舍入区间,可以获得更多更小的量化系数,从而降低编码长度,尽管会引入更大的平均量化误差,但是平衡了优缺点,从而提高了总体编码效率。
82.更进一步地,请参阅图3,所述s30、比较所述差值距离与阈值距离,根据比较结果调整当前量化参数,得到当前调整量化参数,或根据比较结果选择不同的舍入区间,得到当前调整量化舍入方法的步骤包括:
83.s31、将所述差值距离与所述阈值距离进行比较;
84.s32、若所述差值距离大于所述阈值距离,则将初始量化参数加上偏移值,得到当前调整量化参数,或选择第一舍入区间作为所述当前调整量化舍入方法;
85.s33、若所述差值距离不大于所述阈值距离,则选择所述初始量化参数作为当前调整量化系数,或选择第二舍入区间作为所述当前调整量化舍入方法。其中,所述第一舍入区间可以是五舍六入,所述第二舍入区间可以是七舍八入。
86.具体地,在计算出当前待编码点与最相邻点之间的差值距离后,将所述差值距离与所述阈值距离t进行比较,用户可以根据比较结果选择调整当前量化参数:若所述差值距离d大于所述阈值距离t时,即d》t时,将初始量化参数qp
old
加上一个用户预设的偏移值qp
shift
,得到当前调整量化参数qp
new
:qp
new
=qp
old
+qp
shift
,其中qp
new
为大于0的正整数;而若所述差值距离d不大于所述阈值距离t时,即d《=t时,选择所述初始量化参数作为当前调整量化系数;
87.或者,还可以根据比较结果选择改变量化方法:因为通常的量化方法为均匀量化,即当前量化系数=round(输入系数/当前量化参数),其中,round为舍入区间,因为此时情况下,所述输入系数和所述当前量化参数均不变,所以可以通过改变舍入区间来改变所述量化方法,具体为:若所述差值距离大于所述阈值距离时,提高舍入区间的精度,选择第一舍入区间(五舍六入)作为所述当前量化舍入方法;若所述差值距离不大于所述阈值距离时,选择第二舍入区间(七舍八入)作为所述当前量化舍入方法,从而在所述差值距离大于所述阈值距离时,选用舍入精度更大的舍入区间,有助于提升构造重建单元数据的准确性。
88.其中,t与点云的具体分布相关,可根据以下公式计算得到:
[0089][0090]
其中,maxsize为点云几何坐标定点化后的最小包围盒平均(或最大)边长尺寸,即用一个立方体把点云包起来,这个立方体尺寸是最小,n为点云几何点个数,a为可调参数。例如a设为12,即t为点a所在宏块的斜对角点曼哈顿距离,宏块边长尺寸为需要说明的是在比较所述差值距离与所述阈值距离,并根据比较结果调整当前量化参数,或在比较所述差值距离与所述阈值距离,并根据比较结果选择不同的舍入区间,两次的阈值距离可以是同一个数值,也可以是不同数值。
[0091]
实际应用中的另一中距离阈值t的确定方法。假设所述宏块边长尺寸可以表示为2的指数的形式。t按照下述公式计算:
[0092]
l0=3*(log2(maxsize)-((log2(n/4))/2));
[0093]
t=(2^(l0/3))*b;
[0094]
其中b为可调参数,应用中b可以等于6。进一步的,或者,可以动态调整l0,从而调整t。根据上述公式确定初始l(初始状态:l=l0),之后可以动态调整l的大小。具体的规则为,统计kn个点云分组组内点的个数的平均值bn,如果bn的值小于bn1,则l=l+1;如果bn的值大于bn2,则l=l-1;否则,l不变(bn1和bn2是可变参数,bn1《bn2,bn1和bn2为大于0的正整数)。每km个点云分组,进行一次判断和调整(kn和km是可变参数,kn《km,kn和km为大于1的正整数。km一般为kn的倍数)。最后根据调整的l,计算t=(2^(l/3))*b。
[0095]
通过在计算当前待编码点与最相邻点之间的差值距离后,将所述差值距离与所述阈值距离进行比较,即通过距离的判定,并根据比较结果调整当前量化参数或当前量化舍入方法,从而有效地筛选出误差点,提升了重建点云时的精度。
[0096]
进一步地,请继续参阅图1,s40、利用所述当前调整量化参数或所述当前调整量化舍入方法对输入系数进行量化得到量化系数后,对所述量化系数进行熵编码,得到码流;其中,所述输入系数包括残差系数和变换系数。
[0097]
具体地,在得到所述当前调整量化参数或所述当前调整量化舍入方法后,利用所述当前调整量化参数或所述当前调整量化舍入方法对残差系数或变换系数进行量化得到量化系数后,对所述量化系数进行熵编码操作,得到码流,并同时得到重建点云数据,完成了当前待编码点的编码,从而能够根据调整后的当前量化参数或当前量化舍入方法对残差系数或变换系数进行量化和熵编码后,得到更加精准的重建点云数据和码流。
[0098]
更进一步地,请参阅图4,所述s40、利用所述当前调整量化参数或所述当前调整量化舍入方法对输入系数进行量化得到量化系数后,对所述量化系数进行熵编码,得到码流的步骤包括:
[0099]
s41、对当前待编码点的属性值进行预测得到预测值,计算所述预测值与当前待编码点的真实属性值的残差系数;
[0100]
s42、利用所述当前调整量化参数或所述当前调整量化舍入方法对所述残差系数进量化得到的残差量化系数,对所述残差量化系数进行熵编码,得到所述码流;其中,所述输入系数包括所述残差系数,所述量化系数包括所述残差量化系数;
[0101]
或请参阅图5,所述s40、利用所述当前调整量化参数或所述当前调整量化舍入方法对输入系数进行量化得到量化系数后,对所述量化系数进行熵编码,得到码流的步骤包括:
[0102]
a41、对当前待编码点的属性值进行预测得到所述预测值,计算所述预测值与当前待编码点的真实属性值的残差系数,并对所述残差系数进行变换,得到变换系数;
[0103]
a42、利用所述当前调整量化参数或所述当前调整量化舍入方法对所述变换系数进行量化得到的变换量化系数,对所述变换量化系数进行熵编码,得到所述码流;其中,所述输入系数包括所述变换系数,所述量化系数包括所述变换量化系数。
[0104]
具体地,在对当前待编码点进行编码时,利用前序已编码点的信息,对当前待编码点的属性值进行预测得到所述预测值(拟合值)。
[0105]
例如一种通用预测值计算方法:设当前待编码点为i,在已经编码的点集中,找三个距离i几何距离(例如欧式距离)最近的邻居点,那么,当前待编码点i的属性预测值就是三个邻居点重建属性值的加权平均值。其中,权值可以是邻居点到i距离的倒数。所以一般就利用当前待编码点的几何信息,以及邻居点的几何信息和属性信息,对当前待编码点的属性值进行预测。
[0106]
接下来,用户可以选择使用所述残差系数或所述变换系数:当选择使用所述残差系数时,则计算所述预测值与当前待编码点的真实属性值(有关点云数据的输入文本中记录的值)的残差系数;然后,利用得到的所述当前调整量化参数或所述当前调整量化舍入方法对所述残差系数进量化,得到所述残差量化系数,最后对所述残差量化系数进行熵编码,得到所述码流,并同时得到重建点云数据,从而完成当前待编码点的编码。
[0107]
而当选择使用所述变换系数时,则计算当前待编码点的预测值与当前待编码点的真实属性值的残差系数,并进一步地计算后序点的预测值与后续的真实属性值的残差系数,对得到的两个残差系数进行二元变换,得到变换系数。例如:设当前待编码点为i,计算i的残差值(残差系数)ri;继续处理点i+1,计算i+1的残差值r
i+1
。可以得到残差向量(ri,r
i+1
),可以对所述残差向量做二元变换,变换输出得到所述变换系数(ci,c
i+1
)。接着可以同样处理点i+2和i+3,以此类推,也可以做k元变换,不局限于二元变换。
[0108]
而针对所述k元变换的变换系数进行量化时,可以使用进行变换的某个点对应的当前调整量化参数或所述当前调整量化舍入方法对所述k元变换的所有变换系数进行量化。例如,当前待编码点i与后序点i+1为一组进行二元变换,使用点i+1得到的当前调整量化参数或所述当前调整量化舍入方法,对变换系数ci和c
i+1
进行量化。
[0109]
再者,同理利用所述当前调整量化参数或所述当前调整量化舍入方法对所述变换
系数进行量化,得到所述变换量化系数,并对所述变换量化系数进行熵编码,同样得到所述码流,并同时得到重建点云数据,从而完成当前待编码点的编码。
[0110]
其中,利用所述当前调整量化参数或所述当前调整量化舍入方法对点云属性数据进行量化,所述点云属性数据可以是点云颜色属性的三个通道(例如r,g,b三个通道),也可以是颜色属性的某一个或某两个通道(例如色度通道cb,cr这两个通道)。
[0111]
进一步地,本发明实施例中,基于avs-pcc pcrm软件v7.0版本[1],测试了本技术中的所述点云属性编码方法与平台原始方法对比的实验结果,结果如表1-表2所示。
[0112][0113]
表1
[0114][0115]
表2
[0116]
其中,表1为在有限有损几何、有损属性条件下的亮度、色度以及反射率的率失真数据对比表;表2为在无损几何、有损属性条件下的亮度、色度以及反射率的率失真数据对比表;根据表1-2中的数据显示,相比测试平台pcrm的基准结果,在有限有损几何、有损属性条件下,在无损几何、有损属性条件下,对于亮度属性,本发明的端到端属性率失真分别微小增加了0.5%,0.4%;对于色度cb属性,本发明的端到端属性率失真分别明显减少了9.3%,12.9%;对于色度cr属性,本发明的端到端属性率失真分别明显减少了13.2%,16.7%;本发明实施例提供的点云属性编码方法有效地减少了端到端属性率失真,具有更好的编码效果。
[0117]
进一步地,本发明提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有点云属性编码程序,所述点云属性编码程序被处理器执行时实现如上所述的点云属性编码方法的步骤;由于上述对该所述点云属性编码方法的步骤进行了详细的描述,在此不再赘述。
[0118]
进一步地,请参阅图6,本发明提供的一种点云属性解码方法,所述点云属性解码方法包括以下步骤:
[0119]
s100、根据预设规则基于待解码点云数据进行排序,获取第二排序点云数据。其中,所述预设规则为原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则,所述待解码点云数据为属性待解码的点云数据,所述原始序号排列规则是指采用待编码点云数据在输入时的原始输入序号顺序的规则。
[0120]
具体地,在对所述待解码点云数据进行解码时,同理,首先,将待解码点云数据按编码时同样的预设规则(原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则)转换为多个目标排序码,再将多个目标排序码按照编码时同样的排序方法(由小到大或由大到
小)进行排序,得到所述第二排序点云数据,从而实现将待解码点云数据进行有效排序,便于按照所述第二排序点云数据进行依次解码。
[0121]
需要说明的是,由于是对编码后的点云数据进行解码,使用的是同样的预设规则和排序方法对待解码点云数据进行排序的,所以,所述第一排序点云数据和所述第二排序点云数据的排序相同,这里只为了区分编码排序和解码排序。
[0122]
更进一步地,请参阅图7,所述s100、根据预设规则基于待解码点云数据进行排序,获取第二排序点云数据的步骤具体包括:
[0123]
s110、根据原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则获取所述待解码点云数据对应的目标排序码;其中,所述目标排序码为输入序号或莫顿码或希尔伯特码;
[0124]
s120、按照所述目标排序码由小到大或由大到小的顺序对所述待解码点云数据中的点进行排序,得到所述第二排序点云数据。
[0125]
具体地,同理,在对所述待解码点云数据进行解码时,首先,将待解码点云数据按编码时同样的预设规则(原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则)转换为多个目标排序码,再将多个目标排序码按照编码时同样的预设顺序(由小到大或由大到小)进行排序,得到所述第二排序点云数据。具体为输入依次当前待解码点的三维坐标,按照莫顿序计算规则或希尔伯特序计算规则相应地输出一个数字(称为目标排序码,包括莫顿码或希尔伯特码等),再按照输出数字的大小,由小到大或由大到小的顺序重新排列点,得到所述第二排序点云数据。
[0126]
进一步地,请继续参阅图6,s200、从所述第二排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待解码点与最相邻点之间的差值距离。
[0127]
具体地,同理,当对待解码点云数据进行排序后,从所述第二排序点云数据中的第n个点开始,按照所述第二排序点云数据依次对待解码点云数据进行解码,解码过程如下:
[0128]
利用所述几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法计算出当前待解码点与最相邻点之间的差值距离。还可以是根据所述第二排序点云数据的解码排序,将当前待解码点的前m个点直接当作最相邻点,并计算当前待解码点与最相邻点之间的差值距离,从而可以根据多种方式精准地计算出当前待解码点与最相邻点之间的差值距离,为调整当前量化参数或当前量化舍入方法作依据。
[0129]
更进一步地,请参阅图8,所述s200、从所述第二排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待解码点与最相邻点之间的差值距离的步骤具体包括:
[0130]
s210、根据几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法,搜索距离当前待解码点最近的点,作为当前待解码点的最相邻点;
[0131]
s220、或,将当前待解码点的前m个点作为当前待解码点的最相邻点;
[0132]
s230、计算当前待解码点与所述最相邻点之间的距离差值作为所述差值距离。
[0133]
具体地,当对待解码点云数据进行排序后,从所述第二排序点云数据中的第n个点开始,按照所述第二排序点云数据依次对待解码点云数据进行解码,解码过程如下:
[0134]
利用几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法计算出当前待解码点与最相邻点之间的差值距离d。还可以是根据所述第二排序点云数据的解码排序,将当前待解码点的前m个点直接当作最相邻点,具体确定所述最相邻点的方法类似于
编码过程中确定所述最相邻点的方法,最后,计算当前待解码点与最相邻点之间的差值距离。
[0135]
进一步地,请继续参阅图6,s300、比较所述差值距离与阈值距离,根据比较结果调整当前逆量化参数,得到当前调整逆量化参数。
[0136]
具体地,在计算出当前待解码点与最相邻点之间的差值距离后,比较所述差值距离与所述阈值距离,并根据比较结果调整当前逆量化参数,得到当前调整逆量化参数,有效地实现根据所述预设阈值相应地调整前逆量化参数,从而筛选出误差点,提升重建点云时的精度;因为舍入区间的调整不影响解码过程,所以不需要根据比较结果选择改变当前量化舍入方法。
[0137]
更进一步地,请参阅图9,所述s300、比较所述差值距离与阈值距离,根据比较结果调整当前逆量化参数,得到当前调整逆量化参数的步骤包括:
[0138]
s310、将所述差值距离与所述阈值距离进行比较;
[0139]
s320、若所述差值距离大于所述阈值距离,则将初始逆量化参数加上偏移值,得到当前调整逆量化参数;其中,所述初始逆量化参数等于所述初始量化参数;
[0140]
s330、若所述差值距离不大于所述阈值距离,则选择所述初始逆量化参数作为当前调整逆量化参数。
[0141]
具体地,在计算出当前待解码点与最相邻点之间的差值距离后,将所述差值距离与所述阈值距离进行比较,并根据比较结果选择调整当前逆量化参数:若所述差值距离d大于所述阈值距离t时,即d》t时,将初始逆量化参数qp’old
加上同一个偏移值qp
shift
,得到当前调整逆量化参数qp’new
:qp’new
=qp’old
+qp
shift
;而若所述差值距离d不大于所述阈值距离t时,即d《=t时,选择所述初始逆量化参数作为当前调整逆量化参数;其中,由于所述初始逆量化参数等于所述初始量化参数,且偏移值相同,所以所述当前调整逆量化参数等于所述当前调整量化参数。
[0142]
进一步地,请继续参阅图6,s400、对编码得到的码流进行熵解码得到重建量化系数,根据所述当前调整逆量化参数对所述重建量化系数进行逆量化,得到重建输入系数。
[0143]
具体地,所述当前待编码点云数据经过编码后,得到所述码流,在进行解码时,对编码得到的码流进行熵解码得到重建量化系数,根据所述当前调整逆量化参数对所述重建量化系数进行逆量化,得到重建输入系数,从而实现将经过编码后的码流重建还原得到重建输入系数,即变换重建系数或残差重建系数。
[0144]
更进一步地,请参阅图10,所述s400、对编码得到的码流进行熵解码得到重建量化系数,根据所述当前调整逆量化参数对所述重建量化系数进行逆量化,得到重建输入系数的步骤具体包括:
[0145]
s410、对编码得到的码流进行熵解码,得到变换重建量化系数或残差重建量化系数;
[0146]
s420、利用所述当前调整逆量化参数对所述变换重建量化系数或所述残差重建量化系数进行逆量化,相应地得到变换重建系数或残差重建系数;其中,所述重建输入系数包括所述变换重建系数和所述残差重建系数。
[0147]
具体地,所述当前待编码点云数据经过编码后,得到所述码流,在进行解码时,对编码得到的码流进行熵解码,得到变换重建量化系数或残差重建量化系数;然后,利用所述
当前调整逆量化参数对所述残差重建量化系数进行逆量化,得到变换重建系数,并对所述变换重建系数进行离散余弦逆变换和预测,得到重建属性值;或,利用所述当前调整逆量化参数对所述残差重建量化系数进行逆量化,得到所述残差重建系数,并对所述残差重建系数进行预测,得到重建属性值,从而实现对经过编码后的所述当前待编码点云数据进行熵解码和逆量化操作后,还原得到所述重建输入系数,最终还原得到所述重建属性值,即重建点云数据。
[0148]
进一步地,本发明提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有点云属性解码程序,所述点云属性解码程序被处理器执行时实现如上所述的点云属性解码方法的步骤;由于上述对该所述点云属性解码方法的步骤进行了详细的描述,在此不再赘述。
[0149]
综上所述,本发明提供的一种点云属性编码方法、点云属性解码方法及存储介质,所述编码方法包括:根据预设规则基于待编码点云数据得到目标排序码,并根据目标排序码对待编码点云数据进行排序;按照排序依次对待编码点云数据中的点进行属性编码:计算当前待编码点与最相邻点之间的差值距离,并与阈值距离比较,根据比较结果调整当前量化参数得到当前调整量化参数或选择量化舍入区间得到当前调整量化舍入方法;根据当前调整量化参数或当前量调整化舍入方法对输入系数进行量化,得到量化系数;对量化系数进行熵编码得到码流。通过在对点云数据进行编码时,计算当前待编码点与最相邻点之间的差值距离后,与阈值距离比较,根据比较结果调整当前量化参数或选择舍入区间得到当前调整量化舍入方法,再利用得到的当前调整量化参数或当前调整量化舍入方法对输入系数进行量化得到量化系数,即通过对距离的判定,筛选预测误差较大的点,调整量化参数或量化舍入方法,减小了预测误差,从而有效地提升重建点云数据的精度。
[0150]
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
技术特征:1.一种点云属性编码方法,其特征在于,所述点云属性编码方法包括以下步骤:根据预设规则基于待编码点云数据得到目标排序码,并按照所述目标排序码对所述待编码点云数据进行排序,获取第一排序点云数据;其中,所述预设规则为原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则,所述待编码点云数据为属性待编码的点云数据;从所述第一排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待编码点与最相邻点之间的差值距离;其中,n为大于1的正整数,所述预设距离计算方法为几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法;比较所述差值距离与阈值距离,根据比较结果调整当前量化参数,得到当前调整量化参数,或根据比较结果选择不同的舍入区间,得到当前调整量化舍入方法;利用所述当前调整量化参数或所述当前调整量化舍入方法对输入系数进行量化得到量化系数后,对所述量化系数进行熵编码,得到码流;其中,所述输入系数包括残差系数和变换系数。2.根据权利要求1所述的点云属性编码方法,其特征在于,所述比较所述差值距离与阈值距离,根据比较结果调整当前量化参数,得到当前调整量化参数,或根据比较结果选择不同的舍入区间,得到当前调整量化舍入方法的步骤包括:将所述差值距离与所述阈值距离进行比较;若所述差值距离大于所述阈值距离,则将初始量化参数加上偏移值,得到当前调整量化参数,或选择第一舍入区间作为所述当前调整量化舍入方法;若所述差值距离不大于所述阈值距离,则选择所述初始量化参数作为当前调整量化系数,或选择第二舍入区间作为所述当前调整量化舍入方法。3.根据权利要求1所述的点云属性编码方法,其特征在于,所述利用所述当前调整量化参数或所述当前调整量化舍入方法对输入系数进行量化得到量化系数后,对所述量化系数进行熵编码,得到码流的步骤包括:对当前待编码点的属性值进行预测得到预测值,计算所述预测值与当前待编码点的真实属性值的残差系数;利用所述当前调整量化参数或所述当前调整量化舍入方法对所述残差系数进量化得到的残差量化系数,对所述残差量化系数进行熵编码,得到所述码流;其中,所述输入系数包括所述残差系数,所述量化系数包括所述残差量化系数;或,对当前待编码点的属性值进行预测得到所述预测值,计算所述预测值与当前待编码点的真实属性值的残差系数,并对所述残差系数进行变换,得到变换系数;利用所述当前调整量化参数或所述当前调整量化舍入方法对所述变换系数进行量化得到的变换量化系数,对所述变换量化系数进行熵编码,得到所述码流;其中,所述输入系数包括所述变换系数,所述量化系数包括所述变换量化系数。4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有点云属性编码程序,所述点云属性编码程序被处理器执行时实现如权利要求1-3任意一项所述的点云属性编码方法的步骤。5.一种点云属性解码方法,其特征在于,所述点云属性解码方法包括以下步骤:根据预设规则基于待解码点云数据进行排序,获取第二排序点云数据;其中,所述待解码点云数据为属性待解码的点云数据;
从所述第二排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待解码点与最相邻点之间的差值距离;比较所述差值距离与阈值距离,根据比较结果调整当前逆量化参数,得到当前调整逆量化参数;对编码得到的码流进行熵解码得到重建量化系数,根据所述当前调整逆量化参数对所述重建量化系数进行逆量化,得到重建输入系数。6.根据权利要求5所述的点云属性解码方法,其特征在于,所述根据预设规则基于待解码点云数据进行排序,获取第二排序点云数据的步骤具体包括:根据原始序号排列规则、莫顿序计算规则或希尔伯特序计算规则获取所述待解码点云数据对应的目标排序码;其中,所述目标排序码为输入序号或莫顿码或希尔伯特码;按照所述目标排序码由小到大或由大到小的顺序对所述待解码点云数据中的点进行排序,得到所述第二排序点云数据。7.根据权利要求5所述的点云属性解码方法,其特征在于,所述从所述第二排序点云数据中的第n个点开始,根据预设距离计算方法计算当前待解码点与最相邻点之间的差值距离的步骤具体包括:根据几何距离计算方法,或几何距离和属性距离构成的综合距离计算方法,搜索距离当前待解码点最近的点,作为当前待解码点的最相邻点;或,将当前待解码点的前m个点作为当前待解码点的最相邻点;计算当前待解码点与所述最相邻点之间的距离差值作为所述差值距离。8.根据权利要求5所述的点云属性解码方法,其特征在于,所述比较所述差值距离与阈值距离,根据比较结果调整当前逆量化参数,得到当前调整逆量化参数的步骤包括:将所述差值距离与所述阈值距离进行比较;若所述差值距离大于所述阈值距离,则将初始逆量化参数加上偏移值,得到当前调整逆量化参数;若所述差值距离不大于所述阈值距离,则选择所述初始逆量化参数作为当前调整逆量化参数。9.根据权利要求5所述的点云属性解码方法,其特征在于,所述对编码得到的码流进行熵解码得到重建量化系数,根据所述当前调整逆量化参数对所述重建量化系数进行逆量化,得到重建输入系数的步骤具体包括:对编码得到的码流进行熵解码,得到变换重建量化系数或残差重建量化系数;利用所述当前调整逆量化参数对所述变换重建量化系数或所述残差重建量化系数进行逆量化,相应地得到变换重建系数或残差重建系数;其中,所述重建输入系数包括所述变换重建系数和所述残差重建系数。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有点云属性解码程序,所述点云属性解码程序被处理器执行时实现如权利要求5-9任意一项所述的点云属性解码方法的步骤。
技术总结本发明公开一种点云属性编码方法、点云属性解码方法及存储介质,所述编码方法包括:基于待编码点云数据得到目标排序码后对待编码点云数据进行排序;按照排序依次进行属性编码:计算当前待编码点与最相邻点之间的差值距离并与阈值距离比较,根据比较结果调整当前量化参数或当前量化舍入方法后,使用当前调整量化参数或当前调整量化舍入方法对输入系数进行量化得到量化系数。通过在编码时,计算当前待编码点与最相邻点之间的差值距离后与阈值距离比较,并根据比较结果调整当前量化参数或当前量化舍入方法后,对输入系数进行量化得到量化系数,即通过对距离的判定筛选预测误差较大的点,调整量化参数减小预测误差,从而提升重建点云数据的精度。重建点云数据的精度。重建点云数据的精度。
技术研发人员:陈悦汝 王静 李革 高文
受保护的技术使用者:鹏城实验室
技术研发日:2022.06.20
技术公布日:2022/11/1