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

点云数据编码方法、解码方法、装置、设备及存储介质与流程

2022-06-08 22:44:24 来源:中国专利 TAG:


1.本技术实施例涉及点云应用技术领域,特别涉及一种点云数据编码方法、解码方法、装置、设备及存储介质。


背景技术:

2.随着点云的获取方式的不断变革,点云的获取精度也越来越高,相应的获取成本也在逐渐降低,因此,点云在各种场景中的应用前景也越来越广阔。
3.在相关技术中,主要基于八叉树对点云数据进行编码。对三维(3-dimension,3d)空间中的点云数据,八叉树划分方式是逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点,并通过对八叉树各个子节点的占用与否采用
‘1’

‘0’
指示。在基于八叉树进行编码时,将点云数据的3d坐标信息通过查询莫顿顺序表,转换成对应的莫顿码,并根据每一位莫顿码的排序,获得每层八叉树的对应点。
4.然而,对于稀疏型的点云数据来说,其3d位置分布较为分散,即八叉树中的大部分节点为空,导致基于八叉树的编码复杂度较高,编码效率较低。


技术实现要素:

5.本技术实施例提供了一种点云数据编码方法、解码方法、装置、设备及存储介质,能够降低对点云数据进行编码的复杂度,提高编码效率。所述技术方案如下:
6.根据本技术实施例的一个方面,提供了一种点云数据编码方法,所述方法包括:
7.获取点云数据集,所述点云数据集中包含至少两个数据点;
8.基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
9.按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
10.根据本技术实施例的一个方面,提供了一种点云数据解码方法,所述方法包括:
11.获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
12.获取参考信息;所述参考信息用于指示所述编码队列中的起始参考数据点;
13.基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
14.根据本技术实施例的一个方面,提供了一种点云数据编码装置,所述装置包括:
15.点云获取模块,用于获取点云数据集,所述点云数据集中包含至少两个数据点;
16.队列添加模块,用于基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
17.编码模块,用于按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
18.在一种可能的实现方式中,所述数据点对之间的距离包括:
19.所述数据点对中的两个数据点的位置信息之间的距离;
20.或者,所述数据点对中的两个数据点的属性信息之间的距离;
21.或者,通过所述数据点对中的两个数据点的位置信息之间的距离,以及,所述两个数据点的属性信息之间的距离得到的联合距离。
22.在一种可能的实现方式中,所述编码模块,用于对于所述编码队列中的任意相邻的第一数据点和第二数据点,获取所述第二数据点与所述第一数据点之间的残差信号。
23.在一种可能的实现方式中,所述队列添加模块,用于,
24.基于所述编码队列中已有的数据点与所述点云数据集中的数据点之间的距离,从所述点云数据集中依次选择满足指定条件的数据点添加至所述编码队列。
25.在一种可能的实现方式中,所述指定条件包括:
26.与所述编码队列中的最后一个数据点之间的距离最小;
27.或者,
28.与所述编码队列中已有的数据点之间的距离之和最小。
29.在一种可能的实现方式中,所述装置还包括:
30.初始数据点确定模块,用于在队列添加模块基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列之前,响应于所述编码队列为空,从所述点云数据集中确定初始数据点;
31.初始数据点添加模块,用于将所述初始数据点添加至所述编码队列。
32.在一种可能的实现方式中,所述初始数据点确定模块,用于,
33.从所述点云数据集中随机选择一个数据点,作为所述初始数据点;
34.基于所述点云数据集中包含的数据点的几何特征,从所述点云数据集中确定所述初始数据点;
35.基于所述点云数据集中包含的数据点的统计特征,从所述点云数据集中确定所述初始数据点;
36.或者,响应于所述点云数据集的数据点划分方式,从所述点云数据集中确定所述初始数据点。
37.在一种可能的实现方式中,所述装置还包括:
38.队列调整模块,用于在编码模块按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码之前,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行调整。
39.在一种可能的实现方式中,所述队列调整模块,用于,
40.获取第一距离与第二距离之和;所述第一距离是所述编码队列中的第i个数据点和第i 1个数据点之间的距离;所述第二距离是所述编码队列中的第j个数据点和第j 1个
数据点之间的距离;i、j为大于或者等于1的整数,且i≠j;
41.获取第三距离与第四距离之和;所述第三距离是所述第i个数据点和所述第j 1个数据点之间的距离,所述第四距离是所述第i 1个数据点和所述第j个数据点之间的距离;
42.响应于所述第一距离与所述第二距离之和,大于所述第三距离与所述第四距离之和,交换所述第i 1个数据点与所述第j 1个数据点在所述编码队列中的位置。
43.在一种可能的实现方式中,所述编码模块,用于响应于满足排序终止条件,执行按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码的步骤;
44.所述终止条件包括:
45.所述点云数据集中不存在未被添加至所述编码队列的数据点;
46.或者,
47.所述编码队列中的数据点之间的距离之和达到指定阈值。
48.根据本技术实施例的一个方面,提供了一种点云数据解码装置,所述装置包括:
49.数据获取模块,用于获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
50.参考信息获取模块,用于获取参考信息;所述参考信息用于指示所述编码队列的起始参考数据点;
51.解码模块,用于基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
52.在一种可能的实现方式中,所述参考信息获取模块,用于,
53.获取默认的所述参考信息;
54.解析所述已编码点云数据的码流头信息,获得所述参考信息;
55.基于所述点云数据集的数据点划分方式获取所述参考信息;
56.解析所述点云数据集中的数据点的层级信息,获得所述参考信息。
57.根据本技术实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现上述点云数据编码方法或者点云数据解码方法。
58.根据本技术实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述点云数据编码方法或者点云数据解码方法。
59.还一方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述点云数据编码方法或者点云数据解码方法。
60.本技术实施例提供的技术方案可以包括如下有益效果:
61.编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中
距离靠近的数据点进行依次编码,能够保证编码的准确性的同时,显著的降低编码复杂度,从而提高编码效率。
附图说明
62.图1是本技术示例性示出的一种点云应用框架图;
63.图2是本技术一个实施例提供的通信系统的简化框图;
64.图3是本技术示例性示出的点云编码器和点云解码器在流式传输环境中的放置方式的示意图;
65.图4是本技术一个实施例提供的编码框架示意图;
66.图5是本技术一个实施例提供的点云数据编码及解码方法的流程图;
67.图6是本技术一个实施例提供的点云数据编码流程框架图;
68.图7是本技术一个实施例提供的点云数据编码装置的框图;
69.图8是本技术一个实施例提供的点云数据解码装置的框图;
70.图9是本技术一个实施例提供的计算机设备的结构框图。
具体实施方式
71.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
72.在对本技术实施例进行介绍说明之前,首先对本技术实施例涉及的一些名词概念进行介绍。
73.一、点云
74.点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云中的每个点至少具有三维位置信息,根据应用场景的不同,还可能具有色彩、材质或其他信息。通常,点云中的每个点都具有相同数量的附加属性。
75.点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,因而应用广泛,其主要应用场景可以归为两大类别:
76.a)机器感知点云,例如自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等等;
77.b)人眼感知点云,例如数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
78.点云的获取途径包括且不限于计算机生成、3d激光扫描、3d摄影测量等几种。其中,计算机可以生成虚拟三维物体及场景的点云。3d扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云。3d摄像可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。此外,在医学领域,由磁共振成像(magnetic resonance imaging,mri)、电子计算机断层扫描(computed tomography,ct)、电磁定位信息,可以获得生物组织器官的点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能。伴随着大规模的点云数据不断积累,点云数据的高效存储、传输、发布、共享和标准化,成为点云应用的关键。
79.点云数据从数据的获取方式划分,可以分为密集型点云和稀疏型点云;从数据的
时序类型划分,可以分为静态点云和动态点云。
80.请参考图1,其示出了本技术实施例涉及的一种点云应用框架图。以g-pcc数据为例,在图1中,在发送端,一个真实世界的虚拟场景(a)是由一组摄像机或一个带有多个镜头和传感器的摄像设备11捕捉的。采集结果为源点云数据(b)。一个或多个点云帧被g-pcc编码器12编码为编码后的g-pcc比特流(e),包括编码的几何比特流和属性比特流。然后,文件封装器13根据特定媒体容器文件格式,将一个或多个编码比特流(e)封装成用于文件回放的媒体文件(f),或封装成用于流式传输的初始化段和媒体段的序列(fs)。
81.文件封装器13还将元数据包含到文件或段中,(fs)通过传递机制14传递给用户端;由用户侧的文件封装器15对(fs)进行解封装,得到解封装后的一个或多个编码比特流(e’),并通过g-pcc解码器16对(e’)解码得到解码后的一个或多个点云帧(d’),并由呈现组件17在显示组件18上呈现一个或多个点云帧(d’)对应的虚拟场景(a’)。
82.二、旅行商问题(traveling salesman problem,tsp)
83.tsp问题是一个经典的组合优化问题。经典的tsp可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个非确定性多项式(non-deterministic polynomial,np)完全问题。由于其在交通运输、电路板线路设计以及物流配送等领域内有着广泛的应用,国内外学者对其进行了大量的研究。早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法、模拟退火法、蚁群算法、禁忌搜索算法、贪婪算法和神经网络等。
84.例如,用无向加权图来对tsp建模,则城市是图的顶点,道路是图的边,道路的距离就是该边的长度。它是起点和终点都在一个特定顶点,访问每个顶点恰好一次的最小化问题。通常,该模型是一个完全图(即每对顶点由一条边连接)。如果两个城市之间不存在路径,则增加一条非常长的边就可以完成图,而不影响计算最优回路。
85.在对称tsp问题中,两座城市之间来回的距离是相等的,形成一个无向图。这种对称性将解的数量减少了一半。在非对称tsp问题中,可能不是双向的路径都存在,或是来回的距离不同,形成了有向图。交通事故、单行道和出发与到达某些城市机票价格不同等都是打破这种对称性的例子。
86.如图2所示,其示出了本技术一个实施例提供的通信系统的简化框图。通信系统200包括多个设备,所述设备可通过例如网络250彼此通信。举例来说,通信系统200包括通过网络250互连的第一设备210和第二设备220。在图2的实施例中,第一设备210和第二设备220执行单向数据传输。举例来说,第一设备210可对点云数据例如由第一设备210采集的点云帧流进行编码以通过网络250传输到第二设备220。已编码的点云数据以一个或多个已编码点云比特流形式传输。第二设备220可从网络250接收已编码点云数据,对已编码点云数据进行解码以恢复点云数据,并根据恢复的点云数据呈现点云。单向数据传输在媒体服务等应用中是较常见的。
87.在另一实施例中,通信系统200包括执行已编码点云数据的双向传输的第三设备
cloud compression,v-pcc),以及基于几何模型的点云压缩(geometry-based point cloud compression,g-pcc)。
94.目前的点云编码技术,针对不同的点云数据类型,可以分为基于几何结构的点云编码以及基于投影的点云编码。以国际视音频编解码标准(moving picture expert group,mpeg)中的基于几何结构的点云编码g-pcc,以及中国国家数字视音频编解码标准中点云编码标准(audiovideocodingstandard-pcc,avs-pcc)为例进行介绍。
95.g-pcc及avs-pcc均针对静态的稀疏型点云,其编码框架大致相同,请参考图4,其是本技术一个实施例提供的编码框架示意图。如图4所示,点云编码分为几何结构编码以及属性信息编码。其中,对于几何结构编码,主要操作和处理如下:
96.s41,预处理(pre-processing):包括坐标变换(transformcoordinates)和体素化(voxelize)。
97.即通过缩放和平移的操作,将3d空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
98.s42,几何编码(geometry encoding):几何编码可以包含多种模式,可在不同条件下使用。比如,上述几何编码可以分为基于八叉树的几何编码(octree)和基于三角表示的几何编码(trisoup)等等。
99.s43,几何量化(geometryquantization):量化的精细程度通常由量化参数(quantization parameter,qp)来决定,qp取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,qp取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
100.s44,几何熵编码(geometryentropyencoding):以基于八叉树的几何编码为例,针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(content adaptive binary arithmetic coding,cabac)。
101.对于属性信息编码,主要操作和处理如下:
102.s45,属性重上色(recoloring);有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复3d点云的各点坐标信息。在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
103.s46,属性变换编码(transform):属性变换编码中可以包含三种模式,可在不同条件下使用。
104.预测变换编码(predicting transform):根据距离选择子点集,将点云划分成多个不同的层级(level of detail,lod),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
105.提升变换编码(lifting transform):在lod相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
106.分层区域自适应变换编码(region adaptive hierarchical transform,raht):
属性信息经过raht变换,将信号转换到变换域中,称之为变换系数。
107.s47,属性信息量化(attribute quantization):量化的精细程度通常由量化参数(qp)来决定。在预测变换编码及提升变换编码中,是对残差值进行量化后进行熵编码;在raht中,是对变换系数进行量化后进行熵编码。
108.s48,属性熵编码(attributeentropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
109.在点云数据中,一个数据点可以视为一个tsp问题中的一个城市,两个数据点之间的距离相当于两个城市之间的距离。本技术后续所示的方案,参考tsp问题的解决思路,在对点云数据进行编码时,考虑点云数据中的各个数据点两两之间的距离,确定各个数据点的编码顺序,并按照确定的编码顺序依次进行编码,以保证编码准确性,并提高对点云数据的编码效率。
110.本技术各个实施例所示的方案,提出了一种点云数据编码和解码方案。
111.在点云数据编码方案中,编码端设备获取点云数据集,该点云数据集中包含至少两个数据点;基于目标数据点对之间的距离,将该点云数据集中的各个数据点依次添加至编码队列;按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码,获得该点云数据集对应的已编码点云数据。
112.上述目标数据点对是编码队列中已有的数据点与点云数据集中的数据点构成的数据点对;也就是说,每次向编码队列中添加一个数据点之后,编码队列以及目标数据点对会相应的更新。
113.其中,上述目标数据点对,可以包括点云数据集中的全部数据点两两组成的点对中的部分点对,也可以包括点云数据集中的全部数据点两两组成的点对中的全部点对。
114.在一种可能的实现方式中,上述数据点对之间的距离包括:
115.数据点对中的两个数据点的位置信息之间的距离;
116.或者,数据点对中的两个数据点的属性信息之间的距离;
117.或者,通过数据点对中的两个数据点的位置信息之间的距离,以及,两个数据点的属性信息之间的距离得到的联合距离。
118.在点云解码方案中,解码端设备获取点云数据集对应的已编码点云数据;并获取参考信息;参考信息用于指示编码队列的起始参考数据点;基于参考信息以及已编码点云数据,按照各个数据点在编码队列中的次序,对各个数据点依次进行解码。
119.通过上述方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,能够保证编码的准确性,同时,相比于相关技术中基于八叉树的编码方式,本技术所示的方案能够显著的降低编码复杂度,提高编码效率。
120.本技术所提供的方法可应用于点云数据的编解码环节。
121.请参考图5,其示出了本技术一个实施例提供的点云数据编码及解码方法的流程图。为了便于说明,仅以各步骤执行主体为计算机设备进行介绍说明。该方法可以包括如下几个步骤:
122.步骤501,编码端设备获取点云数据集,该点云数据集中包含至少两个数据点。
123.本技术实施例所示的方案,可以作为点云信号预测的一种选项,可设置为作用于整体原始点云数据,也可以作用于通过八叉树子节点或者其他方式获得的点云数据集(比如整体原始点云数据的一个子集)。
124.步骤502,响应于编码队列为空,编码端设备从该点云数据集中确定初始数据点。
125.在本技术实施例中,编码端设备在编码过程中,首先创建一个空的编码队列,并从点云数据集中选择编码的起始数据点,其中该起始数据点可以是一个数据点,也可以包含多个数据点。
126.在一种可能的实现方式中,上述从该点云数据集中确定初始数据点,可以包括以下方式:
127.1)从该点云数据集中随机选择一个数据点,作为该初始数据点。
128.在本技术实施例中,编码端设备可以随机选择点云数据集中的一个数据点作为初始数据点。
129.2)基于该点云数据集中包含的数据点的几何特征,从该点云数据集中确定该初始数据点。
130.例如,编码端设备可以将上述点云数据集中,处于指定范围内,且法向量差异最大的数据点作为上述初始数据点。
131.3)基于该点云数据集中包含的数据点的统计特征,从该点云数据集中确定该初始数据点。
132.例如,编码端设备可以将上述点云数据集中,在3d空间中位于点云数据集构成的点云的重心位置的数据点,确定为初始数据点。
133.4)响应于该点云数据集的数据点划分方式,从该点云数据集中确定该初始数据点。
134.例如,响应于该点云数据集中的数据点按照八叉树进行划分,将该八叉树的父节点确定为该初始数据点;
135.再例如,响应于该点云数据集中的数据点按照八叉树进行划分,将该八叉树的各个子节点中,包含的数据点的数量最小的子节点,确定为该初始数据点。
136.步骤503,编码端设备将该初始数据点添加至该编码队列。
137.在本技术实施例中,编码端设备可以将确定的初始数据点作为编码队列中最前列的数据点,添加至编码队列中。
138.编码端设备获得添加了初始数据点的编码队列之后,即可以开始基于目标数据点对之间的距离,将该点云数据集中的各个数据点依次添加至编码队列,队列添加过程可以参考后续步骤。
139.步骤504,编码端设备基于该编码队列中已有的数据点与该点云数据集中的数据点之间的距离,从该点云数据集中依次选择满足指定条件的数据点添加至该编码队列。
140.在本技术实施例中,编码端设备开始基于目标数据点对之间的距离,将该点云数据集中的各个数据点依次添加至编码队列之前,可以先获取点云数据集中各个数据点对(点云数据集中各个数据点两两构成的全部或者部分点对)之间的距离,以便后续在编码队列添加过程中使用。
141.在本技术实施例中,数据点对中的两个数据点之间的距离可以通过位置之间的距离来表征。也就是说,上述两个数据点之间的距离是两个数据点的坐标位置之间的距离。
142.或者,上述两个数据点之间的距离可以通过属性之间的距离来表征。也就是说,上述两个数据点之间的距离可以是两个数据点的属性之间的距离(或者称为属性差异,直观的可以表现为色值等属性的差值)。
143.或者,上述两个数据点之间的距离可以通过位置之间的距离和属性之间的距离来联合表征。例如,上述两个数据点之间的距离,可以是两个数据点的位置之间的欧氏距离,与两个数据点的属性之间的欧氏距离的平均或加权平均。
144.在一种可能的实现方式中,该指定条件包括:
145.与该编码队列中的最后一个数据点之间的距离最小;
146.或者,
147.与该编码队列中已有的数据点之间的距离之和最小。
148.在本技术实施例中,编码端设备在向编码队列中添加数据点时,优先将距离编码队列中最后一个数据点最近的其它数据点添加至编码队列,或者,优先将距离编码队列中各个数据点组成的点群最近的其它数据点添加至编码队列,以保证后续的编码准确性。
149.在一种可能的实现方式中,该方法还包括:
150.将满足该指定条件的数据点从点云数据集中删除。
151.在本技术实施例中,上述编码队列的添加步骤也称为编码路径的规划,该编码路径规划方案可以如下:
152.1)建立点云数据点间的距离度量,可以采用各种常用的几何度量方法,例如:欧式距离等。其中,可以选择对所有点两两之间建立连接,即建立完全图;也可以对部分点两两之间建立连接,即有一部分点之间不存在连接关系;也可以根据起始点逐个选择点建立连接。
153.2)设原始点集为u(对应上述点云数据集),已排序的点集为v(对应上述编码队列)。假设只有单一起始数据点x1,根据一定的选点准则,逐一选择下一个次序的数据点x
i 1
加入v。
154.可选地,在将数据点x
i 1
加入v之后,还可以将x
i 1
从u中移除,这种情况下,每个数据点点在编码队列构建过程中只被计算一次;反之,若不将x
i 1
从u中移除,则每个数据点可被计算多次。其中,选择点的准则包括且不局限于以下两种:
155.x
i 1
与xi之间的距离最小;也就是,x
i 1
与xi之间的距离,是u中各个数据点分别到xi之间的距离的最小值。或者,x
i 1
与v的所有点之间的距离之和最小;也就是,x
i 1
与v的所有点之间的距离之和,是u中各个数据点各自与v中所有点的距离之和的最小值。
156.在一种可能的实现方式中,在按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码之前,还包括:
157.基于该编码队列中的相邻数据点之间的距离,对该编码队列中的数据点的顺序进行调整。
158.由于在向编码队列依次添加数据点的过程中,相邻数据点之间的距离并不一定能够保证最小,因此,在本技术实施例中,在向编码队列中添加数据点的过程中,或者在向编码队列中添加数据点之后,编码设备还可以对编码队列中的数据点的顺序进行优化调整,
以提高后续的编码准确性。
159.在一种可能的实现方式中,该基于该编码队列中的相邻数据点之间的距离,对该编码队列中的数据点的顺序进行调整,包括:
160.获取第一距离与第二距离之和;该第一距离是该编码队列中的第i个数据点和第i 1个数据点之间的距离;该第二距离是该编码队列中的第j个数据点和第j 1个数据点之间的距离;i、j为大于或者等于1的整数,且i≠j;
161.获取第三距离与第四距离之和;该第三距离是该第i个数据点和该第j 1个数据点之间的距离,该第四距离是该第i 1个数据点和该第j个数据点之间的距离;
162.响应于该第一距离与该第二距离之和,大于该第三距离与该第四距离之和,交换该第i 1个数据点与该第j 1个数据点在该编码队列中的位置。
163.其中,优化调整方法可以如下:对已排序的点集v中的点对之间进行互换排序,例如,已排序的点对xi,x
i 1
与xj,x
j 1
,i≠j,两对点的距离之和为d1。计算xi,x
j 1
,与xj,x
i 1
的距离之和为d2。若d1》d2,则保持互换后的点间顺序。其中,x
i 1
与xj可以是同一个数据点,也可以是不同的数据点。
164.在一种可能的实现方式中,编码端设备在点云数据集在上述基于tsp的路径规划过程中,编码端设备可以在点云数据集或者编码队列中插入新的数据点(比如,将属于其它点云数据集的数据点插入当前的点云数据集,或者,在编码队列中插入新的数据点)。
165.在一种可能的实现方式中,在上述基于tsp的路径规划过程中,编码端设备也可以在点云数据集或者编码队列中删除已有的数据点。比如,将当前点云数据集中的数据点添加至其它点云数据集时,可以从当前点云数据集中删除该数据点。
166.也就是说,在本技术所示的方案中,在编码过程中的队列添加阶段,编码器可以额外添加数据点,或者,删除已有的数据点,能够提高编码过程的自由度和灵活性。
167.步骤505,编码端设备按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码,获得该点云数据集对应的已编码点云数据。
168.在一种可能的实现方式中,该按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码,包括:
169.响应于满足排序终止条件,执行按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码的步骤;
170.该终止条件包括:
171.该点云数据集中不存在未被添加至该编码队列的数据点;
172.或者,
173.该编码队列中的数据点之间的距离之和达到指定阈值。
174.在本技术实施例中,在进行编码队列添加的过程中,若判断终止准则成立,则编码器设备可以输出编码队列,并进行下一步的编码。其中,上述终止准则可以包括且不局限于以下方法:
175.当所有点被遍历,终止排序;
176.当v中所有点的距离度量之和大于某个设定阈值;
177.当v中所有点的距离度量之和不能再被优化。
178.在一种可能的实现方式中,该按照该各个数据点在该编码队列中的次序,对该各
个数据点依次进行编码,包括:
179.对于该编码队列中的任意相邻的第一数据点和第二数据点,获取该第二数据点与该第一数据点之间的残差信号。
180.其中,上述残差信号,包括对应的数据点的几何残差和属性残差中的至少一种。
181.在本技术实施例所示的方案中,编码端设备可以通过计算预测残差的方式对点云数据进行编码。也就是说,根据不同的条件设定,当排序终止后,残差的计算过程为:以前序点xi为参考点,后序点x
i 1
对应的残差为ri=x
i 1-xi。所得残差可通过常用熵编码器进行编码,比如,通过对残差量化之后,通过熵编码器进行熵编码,以输出已编码点云数据对应的几何比特流和/或属性比特流。
182.步骤506,解码端设备获取点云数据集对应的已编码点云数据。
183.在本技术实施例中,对于上述点云数据集,经过上述步骤编码后得到的已编码点云数据被传输至解码端设备中。
184.步骤507,解码端设备获取参考信息;该参考信息用于指示该编码队列的起始参考数据点。
185.在一种可能的实现方式中,该获取参考信息,包括:
186.获取默认的该参考信息;
187.解析该已编码点云数据的码流头信息,获得该参考信息;
188.基于该点云数据集的数据点划分方式获取该参考信息;
189.或者,解析该点云数据集中的数据点的层级信息,获得该参考信息。
190.在本技术实施例中,解码端设备在解码前,可以获得参考信息,比如,当上述编码过程中以编码队列中的首个数据点作为起始参考数据点为例,确认tsp所选的起始位置信息包含但不限于以下情况:
191.1)解析对应起始位置信息为默认值;
192.2)解析点云码流头信息,仅获得一个起始位置信息;
193.3)解析八叉树或其他划分方式,例如八叉树的当前节点作为起始位置信息,可有一个或多个起始位置信息;
194.4)解析lod头信息,获得起始位置信息,可以有一个或多个起始位置信息。
195.步骤508,解码端设备基于该参考信息以及该已编码点云数据,按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行解码。
196.编码端设备在获取到已编码点云数据之后,通过解析得到参考信息和残差信号,以参考信号指示的数据点作为上述编码队列对应的初始参考数据点,并从初始参考数据点开始,以初始参考数据点的位置信息和属性信息为参考值,依次解码重建上述编码队列中的各个数据点,每次重建一个数据点时,以前一个已重建的数据点为参考,结合对应的残差信号进行重建。
197.在本技术实施例中,解码端设备可以对已编码点云数据进行解析,获得残差信号{r|ri∈rn,i=1,

,n-1},解码目标是要获得重建信号1},解码目标是要获得重建信号其中n为信号的维度(几何信息的维度为3,假设属性信息的维度为3),n为信号个数,可按以下方式进行处理:
198.对几何信息预测或属性信息单独预测时,即n=3,基于解码的起始信号重建信号为tsp优化排序中的前一个信号与对应残差信号之和,即号为tsp优化排序中的前一个信号与对应残差信号之和,即
199.同时对几何和属性信息预测时,即n=6,基于解码的起始信号重建信号为前一个信号与对应残差信号之和,即
200.综上所述,本技术实施例所示的方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,相应的,解码端设备只需要结合参考信息和各个数据点的残差信号即可以重建点云数据,能够保证编解码的准确性,同时,能够显著的降低编解码的复杂度,提高编解码效率。
201.本技术所示的方案的各个步骤,可以组合使用,或者分开单独使用。在本技术上述实施例所示的方案中,提供了一种通过对点云中的数据点排序后,依序进行残差编码的点云信息预测方法,可用于对点云数据的几何信息、属性信息的预测,上述编码方案可以独立于传统的基于八叉树的编码模式来实现。
202.以本技术上述实施例所示的方案应用于编码过程为例,请参考图6,其示出了本技术一个实施例提供的点云数据编码流程框架图。如图6所示,本技术上述实施例涉及的一种示例性的编码流程可以包括如下主要步骤:
203.s61,对点云数据集中的数据点进行预处理。
204.编码器可以对点云数据集中的数据点的位置信息进行预处理(包括坐标系转换和体素化)。
205.可选的,编码器还可以对点云数据集中的数据点的属性信息进行预处理,例如,对点云数据集中的数据点进行颜色转换。
206.s62,对预处理后的点云数据集中的数据点进行距离度量计算,获得各个数据点两两之间的距离信息。
207.其中,上述各个数据点两两之间的距离信息可以是位置距离、属性距离、或者位置和属性的联合距离。
208.s63,按照各个数据点两两之间的距离信息,将点云数据集中的数据点依次添加到编码队列。
209.在本技术实施例中,编码器可以按照各个数据点两两之间的距离信息,从一个或者多个初始数据点开始,依次将点云数据集中距离编码队列的部分或者全部数据点最近的数据点添加至编码队列的末尾,直至满足终止条件。
210.其中,编码器依次将点云数据集中距离编码队列的部分或者全部数据点最近的数据点添加至编码队列的末尾的过程可以参考上述图5所述实施例中的相关步骤,此处不再赘述。
211.s64,对编码队列中的数据点的顺序进行优化调整。
212.编码器在构建编码队列过程中,或者,在构建编码队列之后,可以基于编码队列中各组相邻点对之间的距离,对编码队列中的数据点的顺序进行调整,以进一步提高后续的
编码效果。
213.s65,按照编码队列中的各个数据点的排列顺序依次进行残差编码,获得各个数据点的残差信号。
214.其中,上述对编码队列中的各个数据点依次进行残差编码,可以包括对各个数据点的位置信息和属性信息分别进行残差编码,其中,对属性信息的残差编码可以包括:基于位置信息对应的残差信号/量化后的残差信息进行位置重建和属性重上色,位置重建和属性重上色的结果进行属性信息的残差编码,比如,通过预测变换编码、提升变换编码或者raht变换编码的方式对属性信息进行残差编码,得到属性信息的残差信号。
215.s66,对上述残差信号进行量化和熵编码,输出已编码点云数据。
216.编码器分别对上述各个数据点的位置信息的残差编码和属性信息的残差编码进行量化和熵编码之后,即可以输出已编码点云数据。
217.在解码侧,解码器只需要获取到已编码点云数据后,解析获得参考信号,得到编码队列中首个数据点,基于首个数据点的位置残差和属性残差,按照上述s65和s66的逆过程,对编码队列中的各个数据点依次进行重建。
218.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
219.请参考图7,其示出了本技术一个实施例提供的点云数据编码装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置可以包括:
220.点云获取模块701,用于获取点云数据集,所述点云数据集中包含至少两个数据点;
221.队列添加模块702,用于基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
222.编码模块703,用于按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
223.在一种可能的实现方式中,所述数据点对之间的距离包括:
224.所述数据点对中的两个数据点的位置信息之间的距离;
225.或者,所述数据点对中的两个数据点的属性信息之间的距离;
226.或者,通过所述数据点对中的两个数据点的位置信息之间的距离,以及,所述两个数据点的属性信息之间的距离得到的联合距离。
227.在一种可能的实现方式中,所述队列添加模块702,用于,
228.基于所述编码队列中已有的数据点与所述点云数据集中的数据点之间的距离,从所述点云数据集中依次选择满足指定条件的数据点添加至所述编码队列。
229.在一种可能的实现方式中,所述指定条件包括:
230.与所述编码队列中的最后一个数据点之间的距离最小;
231.或者,
232.与所述编码队列中已有的数据点之间的距离之和最小。
233.在一种可能的实现方式中,所述装置还包括:
234.初始数据点确定模块,用于在队列添加模块702基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列之前,响应于所述编码队列为空,从所述点云数据集中确定初始数据点;
235.初始数据点添加模块,用于将所述初始数据点添加至所述编码队列。
236.在一种可能的实现方式中,所述初始数据点确定模块,用于,
237.从所述点云数据集中随机选择一个数据点,作为所述初始数据点;
238.基于所述点云数据集中包含的数据点的几何特征,从所述点云数据集中确定所述初始数据点;
239.基于所述点云数据集中包含的数据点的统计特征,从所述点云数据集中确定所述初始数据点;
240.或者,响应于所述点云数据集的数据点划分方式,从所述点云数据集中确定所述初始数据点。
241.在一种可能的实现方式中,所述装置还包括:
242.队列调整模块,用于在编码模块703按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码之前,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行调整。
243.在一种可能的实现方式中,所述队列调整模块,用于,
244.获取第一距离与第二距离之和;所述第一距离是所述编码队列中的第i个数据点和第i 1个数据点之间的距离;所述第二距离是所述编码队列中的第j个数据点和第j 1个数据点之间的距离;i、j为大于或者等于1的整数,且i≠j;
245.获取第三距离与第四距离之和;所述第三距离是所述第i个数据点和所述第j 1个数据点之间的距离,所述第四距离是所述第i 1个数据点和所述第j个数据点之间的距离;
246.响应于所述第一距离与所述第二距离之和,大于所述第三距离与所述第四距离之和,交换所述第i 1个数据点与所述第j 1个数据点在所述编码队列中的位置。
247.在一种可能的实现方式中,所述编码模块703,用于响应于满足排序终止条件,执行按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码的步骤;
248.所述终止条件包括:
249.所述点云数据集中不存在未被添加至所述编码队列的数据点;
250.或者,
251.所述编码队列中的数据点之间的距离之和达到指定阈值。
252.综上所述,本技术实施例所示的方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,相应的,解码端设备只需要结合参考信息和各个数据点的残差信号即可以重建点云数据,能够保证编解码的准确性,同时,能够显著的降低编解码的复杂度,提高编解码效率。
253.请参考图8,其示出了本技术一个实施例提供的点云数据解码装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置可以包括:
254.数据获取模块801,用于获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
255.参考信息获取模块802,用于获取参考信息;所述参考信息用于指示所述编码队列的起始参考数据点;
256.解码模块803,用于基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
257.在一种可能的实现方式中,所述参考信息获取模块802,用于,
258.获取默认的所述参考信息;
259.解析所述已编码点云数据的码流头信息,获得所述参考信息;
260.基于所述点云数据集的数据点划分方式获取所述参考信息;
261.解析所述点云数据集中的数据点的层级信息,获得所述参考信息。
262.综上所述,本技术实施例所示的方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,相应的,解码端设备只需要结合参考信息和各个数据点的残差信号即可以重建点云数据,能够保证编解码的准确性,同时,能够显著的降低编解码的复杂度,提高编解码效率。
263.请参考图9,其示出了本技术一个实施例提供的计算机设备的结构框图。该计算机设备可以是上文介绍的发送端设备,也可以是上文介绍的接收端设备。该计算机设备90可以包括:处理器91、存储器92、通信接口93、编码器/解码器94和总线95。
264.处理器91包括一个或者一个以上处理核心,处理器91通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
265.存储器92可用于存储计算机程序,处理器91用于执行该计算机程序,以实现上述图5或图6所示实施例涉及的方法中的全部或部分步骤。
266.通信接口93可用于与其它设备进行通信,如收发点云数据。
267.编码器/解码器94可用于实现编码和解码功能,如对点云数据进行编码和解码。
268.存储器92通过总线95与处理器91相连。
269.此外,存储器92可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘或光盘,eeprom(electrically erasable programmable read-only memory,电可擦除可编程只读存储器),eprom(erasable programmable read-only memory,可擦除可编程只读存储器),sram(static random-access memory,静态随时存取存储器),rom(read-only memory,只读存储器),磁存储器,快闪存储器,prom(programmable read-only memory,可编程只读存储器)。
270.本领域技术人员可以理解,图9中示出的结构并不构成对计算机设备90的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
271.在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序在被处理器执行时实现上述图
5或图6所示实施例涉及的方法中的全部或部分步骤。
272.在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图5或图6所示实施例涉及的方法中的全部或部分步骤。
273.应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
274.以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献