CN114598892B - 点云数据编码方法、解码方法、装置、设备及存储介质 - Google Patents
点云数据编码方法、解码方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114598892B CN114598892B CN202011440832.7A CN202011440832A CN114598892B CN 114598892 B CN114598892 B CN 114598892B CN 202011440832 A CN202011440832 A CN 202011440832A CN 114598892 B CN114598892 B CN 114598892B
- Authority
- CN
- China
- Prior art keywords
- data
- point
- point cloud
- queue
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 230000004044 response Effects 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 235000019801 trisodium phosphate Nutrition 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000013139 quantization Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004040 coloring Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002595 magnetic resonance imaging Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种点云数据编码方法、解码方法、装置、设备及存储介质,涉及点云应用技术领域。所述方法包括:获取点云数据集,所述点云数据集中包含至少两个数据点;基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据;上述方案能够显著的降低点云数据的编码复杂度,提高点云数据的编码效率。
Description
技术领域
本申请实施例涉及点云应用技术领域,特别涉及一种点云数据编码方法、解码方法、装置、设备及存储介质。
背景技术
随着点云的获取方式的不断变革,点云的获取精度也越来越高,相应的获取成本也在逐渐降低,因此,点云在各种场景中的应用前景也越来越广阔。
在相关技术中,主要基于八叉树对点云数据进行编码。对三维(3-Dimension,3D)空间中的点云数据,八叉树划分方式是逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点,并通过对八叉树各个子节点的占用与否采用‘1’和‘0’指示。在基于八叉树进行编码时,将点云数据的3D坐标信息通过查询莫顿顺序表,转换成对应的莫顿码,并根据每一位莫顿码的排序,获得每层八叉树的对应点。
然而,对于稀疏型的点云数据来说,其3D位置分布较为分散,即八叉树中的大部分节点为空,导致基于八叉树的编码复杂度较高,编码效率较低。
发明内容
本申请实施例提供了一种点云数据编码方法、解码方法、装置、设备及存储介质,能够降低对点云数据进行编码的复杂度,提高编码效率。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种点云数据编码方法,所述方法包括:
获取点云数据集,所述点云数据集中包含至少两个数据点;
基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
根据本申请实施例的一个方面,提供了一种点云数据解码方法,所述方法包括:
获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
获取参考信息;所述参考信息用于指示所述编码队列中的起始参考数据点;
基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
根据本申请实施例的一个方面,提供了一种点云数据编码装置,所述装置包括:
点云获取模块,用于获取点云数据集,所述点云数据集中包含至少两个数据点;
队列添加模块,用于基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
编码模块,用于按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
在一种可能的实现方式中,所述数据点对之间的距离包括:
所述数据点对中的两个数据点的位置信息之间的距离;
或者,所述数据点对中的两个数据点的属性信息之间的距离;
或者,通过所述数据点对中的两个数据点的位置信息之间的距离,以及,所述两个数据点的属性信息之间的距离得到的联合距离。
在一种可能的实现方式中,所述编码模块,用于对于所述编码队列中的任意相邻的第一数据点和第二数据点,获取所述第二数据点与所述第一数据点之间的残差信号。
在一种可能的实现方式中,所述队列添加模块,用于,
基于所述编码队列中已有的数据点与所述点云数据集中的数据点之间的距离,从所述点云数据集中依次选择满足指定条件的数据点添加至所述编码队列。
在一种可能的实现方式中,所述指定条件包括:
与所述编码队列中的最后一个数据点之间的距离最小;
或者,
与所述编码队列中已有的数据点之间的距离之和最小。
在一种可能的实现方式中,所述装置还包括:
初始数据点确定模块,用于在队列添加模块基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列之前,响应于所述编码队列为空,从所述点云数据集中确定初始数据点;
初始数据点添加模块,用于将所述初始数据点添加至所述编码队列。
在一种可能的实现方式中,所述初始数据点确定模块,用于,
从所述点云数据集中随机选择一个数据点,作为所述初始数据点;
基于所述点云数据集中包含的数据点的几何特征,从所述点云数据集中确定所述初始数据点;
基于所述点云数据集中包含的数据点的统计特征,从所述点云数据集中确定所述初始数据点;
或者,响应于所述点云数据集的数据点划分方式,从所述点云数据集中确定所述初始数据点。
在一种可能的实现方式中,所述装置还包括:
队列调整模块,用于在编码模块按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码之前,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行调整。
在一种可能的实现方式中,所述队列调整模块,用于,
获取第一距离与第二距离之和;所述第一距离是所述编码队列中的第i个数据点和第i+1个数据点之间的距离;所述第二距离是所述编码队列中的第j个数据点和第j+1个数据点之间的距离;i、j为大于或者等于1的整数,且i≠j;
获取第三距离与第四距离之和;所述第三距离是所述第i个数据点和所述第j+1个数据点之间的距离,所述第四距离是所述第i+1个数据点和所述第j个数据点之间的距离;
响应于所述第一距离与所述第二距离之和,大于所述第三距离与所述第四距离之和,交换所述第i+1个数据点与所述第j+1个数据点在所述编码队列中的位置。
在一种可能的实现方式中,所述编码模块,用于响应于满足排序终止条件,执行按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码的步骤;
所述终止条件包括:
所述点云数据集中不存在未被添加至所述编码队列的数据点;
或者,
所述编码队列中的数据点之间的距离之和达到指定阈值。
根据本申请实施例的一个方面,提供了一种点云数据解码装置,所述装置包括:
数据获取模块,用于获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
参考信息获取模块,用于获取参考信息;所述参考信息用于指示所述编码队列的起始参考数据点;
解码模块,用于基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
在一种可能的实现方式中,所述参考信息获取模块,用于,
获取默认的所述参考信息;
解析所述已编码点云数据的码流头信息,获得所述参考信息;
基于所述点云数据集的数据点划分方式获取所述参考信息;
解析所述点云数据集中的数据点的层级信息,获得所述参考信息。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现上述点云数据编码方法或者点云数据解码方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述点云数据编码方法或者点云数据解码方法。
还一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述点云数据编码方法或者点云数据解码方法。
本申请实施例提供的技术方案可以包括如下有益效果:
编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,能够保证编码的准确性的同时,显著的降低编码复杂度,从而提高编码效率。
附图说明
图1是本申请示例性示出的一种点云应用框架图;
图2是本申请一个实施例提供的通信系统的简化框图;
图3是本申请示例性示出的点云编码器和点云解码器在流式传输环境中的放置方式的示意图;
图4是本申请一个实施例提供的编码框架示意图;
图5是本申请一个实施例提供的点云数据编码及解码方法的流程图;
图6是本申请一个实施例提供的点云数据编码流程框架图;
图7是本申请一个实施例提供的点云数据编码装置的框图;
图8是本申请一个实施例提供的点云数据解码装置的框图;
图9是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行介绍说明之前,首先对本申请实施例涉及的一些名词概念进行介绍。
一、点云
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云中的每个点至少具有三维位置信息,根据应用场景的不同,还可能具有色彩、材质或其他信息。通常,点云中的每个点都具有相同数量的附加属性。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,因而应用广泛,其主要应用场景可以归为两大类别:
a)机器感知点云,例如自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等等;
b)人眼感知点云,例如数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
点云的获取途径包括且不限于计算机生成、3D激光扫描、3D摄影测量等几种。其中,计算机可以生成虚拟三维物体及场景的点云。3D扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云。3D摄像可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。此外,在医学领域,由磁共振成像(Magnetic ResonanceImaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息,可以获得生物组织器官的点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能。伴随着大规模的点云数据不断积累,点云数据的高效存储、传输、发布、共享和标准化,成为点云应用的关键。
点云数据从数据的获取方式划分,可以分为密集型点云和稀疏型点云;从数据的时序类型划分,可以分为静态点云和动态点云。
请参考图1,其示出了本申请实施例涉及的一种点云应用框架图。以G-PCC数据为例,在图1中,在发送端,一个真实世界的虚拟场景(A)是由一组摄像机或一个带有多个镜头和传感器的摄像设备11捕捉的。采集结果为源点云数据(B)。一个或多个点云帧被G-PCC编码器12编码为编码后的G-PCC比特流(E),包括编码的几何比特流和属性比特流。然后,文件封装器13根据特定媒体容器文件格式,将一个或多个编码比特流(E)封装成用于文件回放的媒体文件(F),或封装成用于流式传输的初始化段和媒体段的序列(Fs)。
文件封装器13还将元数据包含到文件或段中,(Fs)通过传递机制14传递给用户端;由用户侧的文件封装器15对(Fs)进行解封装,得到解封装后的一个或多个编码比特流(E’),并通过G-PCC解码器16对(E’)解码得到解码后的一个或多个点云帧(D’),并由呈现组件17在显示组件18上呈现一个或多个点云帧(D’)对应的虚拟场景(A’)。
二、旅行商问题(Traveling Salesman Problem,TSP)
TSP问题是一个经典的组合优化问题。经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个非确定性多项式(Non-deterministic Polynomial,NP)完全问题。由于其在交通运输、电路板线路设计以及物流配送等领域内有着广泛的应用,国内外学者对其进行了大量的研究。早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法、模拟退火法、蚁群算法、禁忌搜索算法、贪婪算法和神经网络等。
例如,用无向加权图来对TSP建模,则城市是图的顶点,道路是图的边,道路的距离就是该边的长度。它是起点和终点都在一个特定顶点,访问每个顶点恰好一次的最小化问题。通常,该模型是一个完全图(即每对顶点由一条边连接)。如果两个城市之间不存在路径,则增加一条非常长的边就可以完成图,而不影响计算最优回路。
在对称TSP问题中,两座城市之间来回的距离是相等的,形成一个无向图。这种对称性将解的数量减少了一半。在非对称TSP问题中,可能不是双向的路径都存在,或是来回的距离不同,形成了有向图。交通事故、单行道和出发与到达某些城市机票价格不同等都是打破这种对称性的例子。
如图2所示,其示出了本申请一个实施例提供的通信系统的简化框图。通信系统200包括多个设备,所述设备可通过例如网络250彼此通信。举例来说,通信系统200包括通过网络250互连的第一设备210和第二设备220。在图2的实施例中,第一设备210和第二设备220执行单向数据传输。举例来说,第一设备210可对点云数据例如由第一设备210采集的点云帧流进行编码以通过网络250传输到第二设备220。已编码的点云数据以一个或多个已编码点云比特流形式传输。第二设备220可从网络250接收已编码点云数据,对已编码点云数据进行解码以恢复点云数据,并根据恢复的点云数据呈现点云。单向数据传输在媒体服务等应用中是较常见的。
在另一实施例中,通信系统200包括执行已编码点云数据的双向传输的第三设备230和第四设备240。对于双向数据传输,第三设备230和第四设备240中的每个设备可对点云数据进行编码,以通过网络250传输到第三设备230和第四设备240中的另一设备。第三设备230和第四设备240中的每个设备还可接收由第三设备230和第四设备240中的另一设备传输的已编码点云数据,且可对所述已编码点云数据进行解码以恢复点云数据,且可根据恢复的点云数据在可访问的显示装置上显示点云。
在图2的实施例中,第一设备210、第二设备220、第三设备230和第四设备240可为服务器、个人计算机和智能电话等计算机设备,但本申请公开的原理可不限于此。本申请实施例适用于PC(Personal Computer,个人计算机)、手机、平板电脑、虚拟现实/增强现实设备、媒体播放器和/或专用视频会议设备。网络250表示在第一设备210、第二设备220、第三设备230和第四设备240之间传送已编码点云数据的任何数目的网络,包括例如有线连线的和/或无线通信网络。通信网络250可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络250的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
作为实施例,图3示出点云编码器和点云解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持点云的应用,包括例如虚拟3D会议、数字TV(电视)、在包括CD(Compact Disc,光盘)、DVD(Digital Versatile Disc,数字通用光盘)、存储棒等的数字介质上存储压缩点云等等。
流式传输系统可包括采集子系统313,所述采集子系统可包括三维相机等点云源301,所述视频源创建未压缩的点云数据流302。相较于已编码的点云数据304(或已编码的点云比特流),点云数据流302被描绘为粗线以强调高数据量的点云数据流,点云数据流302可由电子装置320处理,所述电子装置320包括耦接到点云源301的点云编码器303。点云编码器303可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于点云数据流302,已编码的点云数据304(或已编码的点云比特流304)被描绘为细线以强调较低数据量的已编码的点云数据304(或已编码的点云比特流304),其可存储在流式传输服务器305上以供将来使用。一个或多个流式传输客户端子系统,例如图3中的客户端子系统306和客户端子系统308,可访问流式传输服务器305以检索已编码的点云数据304的副本307和副本309。客户端子系统306可包括例如电子装置330中的点云解码器310。点云解码器310对已编码的点云数据的传入副本307进行解码,且产生可在显示器312(例如显示屏)或另一呈现装置(未描绘)上呈现的输出点云数据流311。在一些流式传输系统中,可根据某些点云编码/压缩标准对已编码的点云数据304、点云数据307和点云数据309(例如点云比特流)进行编码。
应注意,电子装置320和电子装置330可包括其它组件(未示出)。举例来说,电子装置320可包括点云解码器(未示出),且电子装置330还可包括点云编码器(未示出)。其中,点云解码器用于对接收到的已编码点云数据进行解码;点云编码器用于对点云数据进行编码。
需要说明的一点是,本申请实施例提供的技术方案可以应用于信源编码标准(Audio Video coding Standard,AVS),如AVS3或者下一代视频编解码标准等支持点云编码的标准中,本申请实施例对此不作限定。
点云的编码方式可以分为基于传统视频编码的点云压缩(Video-based PointCloud Compression,V-PCC),以及基于几何模型的点云压缩(Geometry-based PointCloud Compression,G-PCC)。
目前的点云编码技术,针对不同的点云数据类型,可以分为基于几何结构的点云编码以及基于投影的点云编码。以国际视音频编解码标准(Moving Picture ExpertGroup,MPEG)中的基于几何结构的点云编码G-PCC,以及中国国家数字视音频编解码标准中点云编码标准(AudioVideoCodingStandard-PCC,AVS-PCC)为例进行介绍。
G-PCC及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同,请参考图4,其是本申请一个实施例提供的编码框架示意图。如图4所示,点云编码分为几何结构编码以及属性信息编码。其中,对于几何结构编码,主要操作和处理如下:
S41,预处理(Pre-processing):包括坐标变换(Transformcoordinates)和体素化(Voxelize)。
即通过缩放和平移的操作,将3D空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
S42,几何编码(Geometry encoding):几何编码可以包含多种模式,可在不同条件下使用。比如,上述几何编码可以分为基于八叉树的几何编码(Octree)和基于三角表示的几何编码(Trisoup)等等。
S43,几何量化(Geometryquantization):量化的精细程度通常由量化参数(Quantization Parameter,QP)来决定,QP取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
S44,几何熵编码(Geometryentropyencoding):以基于八叉树的几何编码为例,针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
对于属性信息编码,主要操作和处理如下:
S45,属性重上色(Recoloring);有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复3D点云的各点坐标信息。在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
S46,属性变换编码(Transform):属性变换编码中可以包含三种模式,可在不同条件下使用。
预测变换编码(Predicting Transform):根据距离选择子点集,将点云划分成多个不同的层级(Level of Detail,LoD),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
提升变换编码(Lifting Transform):在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
分层区域自适应变换编码(Region Adaptive Hierarchical Transform,RAHT):属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。
S47,属性信息量化(Attribute quantization):量化的精细程度通常由量化参数(QP)来决定。在预测变换编码及提升变换编码中,是对残差值进行量化后进行熵编码;在RAHT中,是对变换系数进行量化后进行熵编码。
S48,属性熵编码(Attributeentropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
在点云数据中,一个数据点可以视为一个TSP问题中的一个城市,两个数据点之间的距离相当于两个城市之间的距离。本申请后续所示的方案,参考TSP问题的解决思路,在对点云数据进行编码时,考虑点云数据中的各个数据点两两之间的距离,确定各个数据点的编码顺序,并按照确定的编码顺序依次进行编码,以保证编码准确性,并提高对点云数据的编码效率。
本申请各个实施例所示的方案,提出了一种点云数据编码和解码方案。
在点云数据编码方案中,编码端设备获取点云数据集,该点云数据集中包含至少两个数据点;基于目标数据点对之间的距离,将该点云数据集中的各个数据点依次添加至编码队列;按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码,获得该点云数据集对应的已编码点云数据。
上述目标数据点对是编码队列中已有的数据点与点云数据集中的数据点构成的数据点对;也就是说,每次向编码队列中添加一个数据点之后,编码队列以及目标数据点对会相应的更新。
其中,上述目标数据点对,可以包括点云数据集中的全部数据点两两组成的点对中的部分点对,也可以包括点云数据集中的全部数据点两两组成的点对中的全部点对。
在一种可能的实现方式中,上述数据点对之间的距离包括:
数据点对中的两个数据点的位置信息之间的距离;
或者,数据点对中的两个数据点的属性信息之间的距离;
或者,通过数据点对中的两个数据点的位置信息之间的距离,以及,两个数据点的属性信息之间的距离得到的联合距离。
在点云解码方案中,解码端设备获取点云数据集对应的已编码点云数据;并获取参考信息;参考信息用于指示编码队列的起始参考数据点;基于参考信息以及已编码点云数据,按照各个数据点在编码队列中的次序,对各个数据点依次进行解码。
通过上述方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,能够保证编码的准确性,同时,相比于相关技术中基于八叉树的编码方式,本申请所示的方案能够显著的降低编码复杂度,提高编码效率。
本申请所提供的方法可应用于点云数据的编解码环节。
请参考图5,其示出了本申请一个实施例提供的点云数据编码及解码方法的流程图。为了便于说明,仅以各步骤执行主体为计算机设备进行介绍说明。该方法可以包括如下几个步骤:
步骤501,编码端设备获取点云数据集,该点云数据集中包含至少两个数据点。
本申请实施例所示的方案,可以作为点云信号预测的一种选项,可设置为作用于整体原始点云数据,也可以作用于通过八叉树子节点或者其他方式获得的点云数据集(比如整体原始点云数据的一个子集)。
步骤502,响应于编码队列为空,编码端设备从该点云数据集中确定初始数据点。
在本申请实施例中,编码端设备在编码过程中,首先创建一个空的编码队列,并从点云数据集中选择编码的起始数据点,其中该起始数据点可以是一个数据点,也可以包含多个数据点。
在一种可能的实现方式中,上述从该点云数据集中确定初始数据点,可以包括以下方式:
1)从该点云数据集中随机选择一个数据点,作为该初始数据点。
在本申请实施例中,编码端设备可以随机选择点云数据集中的一个数据点作为初始数据点。
2)基于该点云数据集中包含的数据点的几何特征,从该点云数据集中确定该初始数据点。
例如,编码端设备可以将上述点云数据集中,处于指定范围内,且法向量差异最大的数据点作为上述初始数据点。
3)基于该点云数据集中包含的数据点的统计特征,从该点云数据集中确定该初始数据点。
例如,编码端设备可以将上述点云数据集中,在3D空间中位于点云数据集构成的点云的重心位置的数据点,确定为初始数据点。
4)响应于该点云数据集的数据点划分方式,从该点云数据集中确定该初始数据点。
例如,响应于该点云数据集中的数据点按照八叉树进行划分,将该八叉树的父节点确定为该初始数据点;
再例如,响应于该点云数据集中的数据点按照八叉树进行划分,将该八叉树的各个子节点中,包含的数据点的数量最小的子节点,确定为该初始数据点。
步骤503,编码端设备将该初始数据点添加至该编码队列。
在本申请实施例中,编码端设备可以将确定的初始数据点作为编码队列中最前列的数据点,添加至编码队列中。
编码端设备获得添加了初始数据点的编码队列之后,即可以开始基于目标数据点对之间的距离,将该点云数据集中的各个数据点依次添加至编码队列,队列添加过程可以参考后续步骤。
步骤504,编码端设备基于该编码队列中已有的数据点与该点云数据集中的数据点之间的距离,从该点云数据集中依次选择满足指定条件的数据点添加至该编码队列。
在本申请实施例中,编码端设备开始基于目标数据点对之间的距离,将该点云数据集中的各个数据点依次添加至编码队列之前,可以先获取点云数据集中各个数据点对(点云数据集中各个数据点两两构成的全部或者部分点对)之间的距离,以便后续在编码队列添加过程中使用。
在本申请实施例中,数据点对中的两个数据点之间的距离可以通过位置之间的距离来表征。也就是说,上述两个数据点之间的距离是两个数据点的坐标位置之间的距离。
或者,上述两个数据点之间的距离可以通过属性之间的距离来表征。也就是说,上述两个数据点之间的距离可以是两个数据点的属性之间的距离(或者称为属性差异,直观的可以表现为色值等属性的差值)。
或者,上述两个数据点之间的距离可以通过位置之间的距离和属性之间的距离来联合表征。例如,上述两个数据点之间的距离,可以是两个数据点的位置之间的欧氏距离,与两个数据点的属性之间的欧氏距离的平均或加权平均。
在一种可能的实现方式中,该指定条件包括:
与该编码队列中的最后一个数据点之间的距离最小;
或者,
与该编码队列中已有的数据点之间的距离之和最小。
在本申请实施例中,编码端设备在向编码队列中添加数据点时,优先将距离编码队列中最后一个数据点最近的其它数据点添加至编码队列,或者,优先将距离编码队列中各个数据点组成的点群最近的其它数据点添加至编码队列,以保证后续的编码准确性。
在一种可能的实现方式中,该方法还包括:
将满足该指定条件的数据点从点云数据集中删除。
在本申请实施例中,上述编码队列的添加步骤也称为编码路径的规划,该编码路径规划方案可以如下:
1)建立点云数据点间的距离度量,可以采用各种常用的几何度量方法,例如:欧式距离等。其中,可以选择对所有点两两之间建立连接,即建立完全图;也可以对部分点两两之间建立连接,即有一部分点之间不存在连接关系;也可以根据起始点逐个选择点建立连接。
2)设原始点集为U(对应上述点云数据集),已排序的点集为V(对应上述编码队列)。假设只有单一起始数据点x1,根据一定的选点准则,逐一选择下一个次序的数据点xi+1加入V。
可选地,在将数据点xi+1加入V之后,还可以将xi+1从U中移除,这种情况下,每个数据点点在编码队列构建过程中只被计算一次;反之,若不将xi+1从U中移除,则每个数据点可被计算多次。其中,选择点的准则包括且不局限于以下两种:
xi+1与xi之间的距离最小;也就是,xi+1与xi之间的距离,是U中各个数据点分别到xi之间的距离的最小值。或者,xi+1与V的所有点之间的距离之和最小;也就是,xi+1与V的所有点之间的距离之和,是U中各个数据点各自与V中所有点的距离之和的最小值。
在一种可能的实现方式中,在按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码之前,还包括:
基于该编码队列中的相邻数据点之间的距离,对该编码队列中的数据点的顺序进行调整。
由于在向编码队列依次添加数据点的过程中,相邻数据点之间的距离并不一定能够保证最小,因此,在本申请实施例中,在向编码队列中添加数据点的过程中,或者在向编码队列中添加数据点之后,编码设备还可以对编码队列中的数据点的顺序进行优化调整,以提高后续的编码准确性。
在一种可能的实现方式中,该基于该编码队列中的相邻数据点之间的距离,对该编码队列中的数据点的顺序进行调整,包括:
获取第一距离与第二距离之和;该第一距离是该编码队列中的第i个数据点和第i+1个数据点之间的距离;该第二距离是该编码队列中的第j个数据点和第j+1个数据点之间的距离;i、j为大于或者等于1的整数,且i≠j;
获取第三距离与第四距离之和;该第三距离是该第i个数据点和该第j+1个数据点之间的距离,该第四距离是该第i+1个数据点和该第j个数据点之间的距离;
响应于该第一距离与该第二距离之和,大于该第三距离与该第四距离之和,交换该第i+1个数据点与该第j+1个数据点在该编码队列中的位置。
其中,优化调整方法可以如下:对已排序的点集V中的点对之间进行互换排序,例如,已排序的点对xi,xi+1与xj,xj+1,i≠j,两对点的距离之和为d1。计算xi,xj+1,与xj,xi+1的距离之和为d2。若d1>d2,则保持互换后的点间顺序。其中,xi+1与xj可以是同一个数据点,也可以是不同的数据点。
在一种可能的实现方式中,编码端设备在点云数据集在上述基于TSP的路径规划过程中,编码端设备可以在点云数据集或者编码队列中插入新的数据点(比如,将属于其它点云数据集的数据点插入当前的点云数据集,或者,在编码队列中插入新的数据点)。
在一种可能的实现方式中,在上述基于TSP的路径规划过程中,编码端设备也可以在点云数据集或者编码队列中删除已有的数据点。比如,将当前点云数据集中的数据点添加至其它点云数据集时,可以从当前点云数据集中删除该数据点。
也就是说,在本申请所示的方案中,在编码过程中的队列添加阶段,编码器可以额外添加数据点,或者,删除已有的数据点,能够提高编码过程的自由度和灵活性。
步骤505,编码端设备按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码,获得该点云数据集对应的已编码点云数据。
在一种可能的实现方式中,该按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码,包括:
响应于满足排序终止条件,执行按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码的步骤;
该终止条件包括:
该点云数据集中不存在未被添加至该编码队列的数据点;
或者,
该编码队列中的数据点之间的距离之和达到指定阈值。
在本申请实施例中,在进行编码队列添加的过程中,若判断终止准则成立,则编码器设备可以输出编码队列,并进行下一步的编码。其中,上述终止准则可以包括且不局限于以下方法:
当所有点被遍历,终止排序;
当V中所有点的距离度量之和大于某个设定阈值;
当V中所有点的距离度量之和不能再被优化。
在一种可能的实现方式中,该按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行编码,包括:
对于该编码队列中的任意相邻的第一数据点和第二数据点,获取该第二数据点与该第一数据点之间的残差信号。
其中,上述残差信号,包括对应的数据点的几何残差和属性残差中的至少一种。
在本申请实施例所示的方案中,编码端设备可以通过计算预测残差的方式对点云数据进行编码。也就是说,根据不同的条件设定,当排序终止后,残差的计算过程为:以前序点xi为参考点,后序点xi+1对应的残差为ri=xi+1-xi。所得残差可通过常用熵编码器进行编码,比如,通过对残差量化之后,通过熵编码器进行熵编码,以输出已编码点云数据对应的几何比特流和/或属性比特流。
步骤506,解码端设备获取点云数据集对应的已编码点云数据。
在本申请实施例中,对于上述点云数据集,经过上述步骤编码后得到的已编码点云数据被传输至解码端设备中。
步骤507,解码端设备获取参考信息;该参考信息用于指示该编码队列的起始参考数据点。
在一种可能的实现方式中,该获取参考信息,包括:
获取默认的该参考信息;
解析该已编码点云数据的码流头信息,获得该参考信息;
基于该点云数据集的数据点划分方式获取该参考信息;
或者,解析该点云数据集中的数据点的层级信息,获得该参考信息。
在本申请实施例中,解码端设备在解码前,可以获得参考信息,比如,当上述编码过程中以编码队列中的首个数据点作为起始参考数据点为例,确认TSP所选的起始位置信息包含但不限于以下情况:
1)解析对应起始位置信息为默认值;
2)解析点云码流头信息,仅获得一个起始位置信息;
3)解析八叉树或其他划分方式,例如八叉树的当前节点作为起始位置信息,可有一个或多个起始位置信息;
4)解析LoD头信息,获得起始位置信息,可以有一个或多个起始位置信息。
步骤508,解码端设备基于该参考信息以及该已编码点云数据,按照该各个数据点在该编码队列中的次序,对该各个数据点依次进行解码。
编码端设备在获取到已编码点云数据之后,通过解析得到参考信息和残差信号,以参考信号指示的数据点作为上述编码队列对应的初始参考数据点,并从初始参考数据点开始,以初始参考数据点的位置信息和属性信息为参考值,依次解码重建上述编码队列中的各个数据点,每次重建一个数据点时,以前一个已重建的数据点为参考,结合对应的残差信号进行重建。
在本申请实施例中,解码端设备可以对已编码点云数据进行解析,获得残差信号{R|ri∈Rn,i=1,…,N-1},解码目标是要获得重建信号 其中n为信号的维度(几何信息的维度为3,假设属性信息的维度为3),N为信号个数,可按以下方式进行处理:
对几何信息预测或属性信息单独预测时,即n=3,基于解码的起始信号重建信号为TSP优化排序中的前一个信号与对应残差信号之和,即
同时对几何和属性信息预测时,即n=6,基于解码的起始信号重建信号为前一个信号与对应残差信号之和,即
综上所述,本申请实施例所示的方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,相应的,解码端设备只需要结合参考信息和各个数据点的残差信号即可以重建点云数据,能够保证编解码的准确性,同时,能够显著的降低编解码的复杂度,提高编解码效率。
本申请所示的方案的各个步骤,可以组合使用,或者分开单独使用。在本申请上述实施例所示的方案中,提供了一种通过对点云中的数据点排序后,依序进行残差编码的点云信息预测方法,可用于对点云数据的几何信息、属性信息的预测,上述编码方案可以独立于传统的基于八叉树的编码模式来实现。
以本申请上述实施例所示的方案应用于编码过程为例,请参考图6,其示出了本申请一个实施例提供的点云数据编码流程框架图。如图6所示,本申请上述实施例涉及的一种示例性的编码流程可以包括如下主要步骤:
S61,对点云数据集中的数据点进行预处理。
编码器可以对点云数据集中的数据点的位置信息进行预处理(包括坐标系转换和体素化)。
可选的,编码器还可以对点云数据集中的数据点的属性信息进行预处理,例如,对点云数据集中的数据点进行颜色转换。
S62,对预处理后的点云数据集中的数据点进行距离度量计算,获得各个数据点两两之间的距离信息。
其中,上述各个数据点两两之间的距离信息可以是位置距离、属性距离、或者位置和属性的联合距离。
S63,按照各个数据点两两之间的距离信息,将点云数据集中的数据点依次添加到编码队列。
在本申请实施例中,编码器可以按照各个数据点两两之间的距离信息,从一个或者多个初始数据点开始,依次将点云数据集中距离编码队列的部分或者全部数据点最近的数据点添加至编码队列的末尾,直至满足终止条件。
其中,编码器依次将点云数据集中距离编码队列的部分或者全部数据点最近的数据点添加至编码队列的末尾的过程可以参考上述图5所述实施例中的相关步骤,此处不再赘述。
S64,对编码队列中的数据点的顺序进行优化调整。
编码器在构建编码队列过程中,或者,在构建编码队列之后,可以基于编码队列中各组相邻点对之间的距离,对编码队列中的数据点的顺序进行调整,以进一步提高后续的编码效果。
S65,按照编码队列中的各个数据点的排列顺序依次进行残差编码,获得各个数据点的残差信号。
其中,上述对编码队列中的各个数据点依次进行残差编码,可以包括对各个数据点的位置信息和属性信息分别进行残差编码,其中,对属性信息的残差编码可以包括:基于位置信息对应的残差信号/量化后的残差信息进行位置重建和属性重上色,位置重建和属性重上色的结果进行属性信息的残差编码,比如,通过预测变换编码、提升变换编码或者RAHT变换编码的方式对属性信息进行残差编码,得到属性信息的残差信号。
S66,对上述残差信号进行量化和熵编码,输出已编码点云数据。
编码器分别对上述各个数据点的位置信息的残差编码和属性信息的残差编码进行量化和熵编码之后,即可以输出已编码点云数据。
在解码侧,解码器只需要获取到已编码点云数据后,解析获得参考信号,得到编码队列中首个数据点,基于首个数据点的位置残差和属性残差,按照上述S65和S66的逆过程,对编码队列中的各个数据点依次进行重建。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图7,其示出了本申请一个实施例提供的点云数据编码装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置可以包括:
点云获取模块701,用于获取点云数据集,所述点云数据集中包含至少两个数据点;
队列添加模块702,用于基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
编码模块703,用于按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
在一种可能的实现方式中,所述数据点对之间的距离包括:
所述数据点对中的两个数据点的位置信息之间的距离;
或者,所述数据点对中的两个数据点的属性信息之间的距离;
或者,通过所述数据点对中的两个数据点的位置信息之间的距离,以及,所述两个数据点的属性信息之间的距离得到的联合距离。
在一种可能的实现方式中,所述队列添加模块702,用于,
基于所述编码队列中已有的数据点与所述点云数据集中的数据点之间的距离,从所述点云数据集中依次选择满足指定条件的数据点添加至所述编码队列。
在一种可能的实现方式中,所述指定条件包括:
与所述编码队列中的最后一个数据点之间的距离最小;
或者,
与所述编码队列中已有的数据点之间的距离之和最小。
在一种可能的实现方式中,所述装置还包括:
初始数据点确定模块,用于在队列添加模块702基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列之前,响应于所述编码队列为空,从所述点云数据集中确定初始数据点;
初始数据点添加模块,用于将所述初始数据点添加至所述编码队列。
在一种可能的实现方式中,所述初始数据点确定模块,用于,
从所述点云数据集中随机选择一个数据点,作为所述初始数据点;
基于所述点云数据集中包含的数据点的几何特征,从所述点云数据集中确定所述初始数据点;
基于所述点云数据集中包含的数据点的统计特征,从所述点云数据集中确定所述初始数据点;
或者,响应于所述点云数据集的数据点划分方式,从所述点云数据集中确定所述初始数据点。
在一种可能的实现方式中,所述装置还包括:
队列调整模块,用于在编码模块703按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码之前,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行调整。
在一种可能的实现方式中,所述队列调整模块,用于,
获取第一距离与第二距离之和;所述第一距离是所述编码队列中的第i个数据点和第i+1个数据点之间的距离;所述第二距离是所述编码队列中的第j个数据点和第j+1个数据点之间的距离;i、j为大于或者等于1的整数,且i≠j;
获取第三距离与第四距离之和;所述第三距离是所述第i个数据点和所述第j+1个数据点之间的距离,所述第四距离是所述第i+1个数据点和所述第j个数据点之间的距离;
响应于所述第一距离与所述第二距离之和,大于所述第三距离与所述第四距离之和,交换所述第i+1个数据点与所述第j+1个数据点在所述编码队列中的位置。
在一种可能的实现方式中,所述编码模块703,用于响应于满足排序终止条件,执行按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码的步骤;
所述终止条件包括:
所述点云数据集中不存在未被添加至所述编码队列的数据点;
或者,
所述编码队列中的数据点之间的距离之和达到指定阈值。
综上所述,本申请实施例所示的方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,相应的,解码端设备只需要结合参考信息和各个数据点的残差信号即可以重建点云数据,能够保证编解码的准确性,同时,能够显著的降低编解码的复杂度,提高编解码效率。
请参考图8,其示出了本申请一个实施例提供的点云数据解码装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置可以包括:
数据获取模块801,用于获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
参考信息获取模块802,用于获取参考信息;所述参考信息用于指示所述编码队列的起始参考数据点;
解码模块803,用于基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
在一种可能的实现方式中,所述参考信息获取模块802,用于,
获取默认的所述参考信息;
解析所述已编码点云数据的码流头信息,获得所述参考信息;
基于所述点云数据集的数据点划分方式获取所述参考信息;
解析所述点云数据集中的数据点的层级信息,获得所述参考信息。
综上所述,本申请实施例所示的方案,编码端设备按照点云数据中各个数据点与编码队列中已有的数据点之间的距离,对各个数据点进行排序之后,按照排序的顺序依次进行编码,从而能够实现对点云数据中距离靠近的数据点进行依次编码,相应的,解码端设备只需要结合参考信息和各个数据点的残差信号即可以重建点云数据,能够保证编解码的准确性,同时,能够显著的降低编解码的复杂度,提高编解码效率。
请参考图9,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以是上文介绍的发送端设备,也可以是上文介绍的接收端设备。该计算机设备90可以包括:处理器91、存储器92、通信接口93、编码器/解码器94和总线95。
处理器91包括一个或者一个以上处理核心,处理器91通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
存储器92可用于存储计算机程序,处理器91用于执行该计算机程序,以实现上述图5或图6所示实施例涉及的方法中的全部或部分步骤。
通信接口93可用于与其它设备进行通信,如收发点云数据。
编码器/解码器94可用于实现编码和解码功能,如对点云数据进行编码和解码。
存储器92通过总线95与处理器91相连。
此外,存储器92可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘或光盘,EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read-Only Memory,可擦除可编程只读存储器),SRAM(StaticRandom-Access Memory,静态随时存取存储器),ROM(Read-Only Memory,只读存储器),磁存储器,快闪存储器,PROM(Programmable Read-Only Memory,可编程只读存储器)。
本领域技术人员可以理解,图9中示出的结构并不构成对计算机设备90的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序在被处理器执行时实现上述图5或图6所示实施例涉及的方法中的全部或部分步骤。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图5或图6所示实施例涉及的方法中的全部或部分步骤。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种点云数据编码方法,其特征在于,所述方法包括:
获取点云数据集,所述点云数据集中包含至少两个数据点;
基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
在向所述编码队列中添加数据点的过程中,或者在向所述编码队列中添加数据点之后,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行优化调整;
按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
2.根据权利要求1所述的方法,其特征在于,所述数据点对之间的距离包括:
所述数据点对中的两个数据点的位置信息之间的距离;
或者,所述数据点对中的两个数据点的属性信息之间的距离;
或者,通过所述数据点对中的两个数据点的位置信息之间的距离,以及,所述两个数据点的属性信息之间的距离得到的联合距离。
3.根据权利要求1所述的方法,其特征在于,所述按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,包括:
对于所述编码队列中的任意相邻的第一数据点和第二数据点,获取所述第二数据点与所述第一数据点之间的残差信号。
4.根据权利要求1所述的方法,其特征在于,所述基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,包括:
基于所述编码队列中已有的数据点与所述点云数据集中的数据点之间的距离,从所述点云数据集中依次选择满足指定条件的数据点添加至所述编码队列;
所述指定条件包括:
与所述编码队列中的最后一个数据点之间的距离最小;
或者,
与所述编码队列中已有的数据点之间的距离之和最小。
5.根据权利要求1所述的方法,其特征在于,所述基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列之前,还包括:
响应于所述编码队列为空,从所述点云数据集中确定初始数据点;
将所述初始数据点添加至所述编码队列。
6.根据权利要求5所述的方法,其特征在于,所述从所述点云数据集中确定初始数据点,包括:
从所述点云数据集中随机选择一个数据点,作为所述初始数据点;
基于所述点云数据集中包含的数据点的几何特征,从所述点云数据集中确定所述初始数据点;
基于所述点云数据集中包含的数据点的统计特征,从所述点云数据集中确定所述初始数据点;
或者,响应于所述点云数据集的数据点划分方式,从所述点云数据集中确定所述初始数据点。
7.根据权利要求1所述的方法,其特征在于,所述基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行优化调整,包括:
获取第一距离与第二距离之和;所述第一距离是所述编码队列中的第i个数据点和第i+1个数据点之间的距离;所述第二距离是所述编码队列中的第j个数据点和第j+1个数据点之间的距离;i、j为大于或者等于1的整数,且i≠j;
获取第三距离与第四距离之和;所述第三距离是所述第i个数据点和所述第j+1个数据点之间的距离,所述第四距离是所述第i+1个数据点和所述第j个数据点之间的距离;
响应于所述第一距离与所述第二距离之和,大于所述第三距离与所述第四距离之和,交换所述第i+1个数据点与所述第j+1个数据点在所述编码队列中的位置。
8.根据权利要求1所述的方法,其特征在于,所述按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,包括:
响应于满足排序终止条件,执行按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码的步骤;
所述终止条件包括:
所述点云数据集中不存在未被添加至所述编码队列的数据点;
或者,
所述编码队列中的数据点之间的距离之和达到指定阈值。
9.一种点云数据解码方法,其特征在于,所述方法包括:
获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将点云数据集中的各个数据点依次添加至编码队列,在向所述编码队列中添加数据点的过程中,或者在向所述编码队列中添加数据点之后,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行优化调整,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
获取参考信息;所述参考信息用于指示所述编码队列的起始参考数据点;
基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
10.根据权利要求9所述的方法,其特征在于,所述获取参考信息,包括:
获取默认的所述参考信息;
解析所述已编码点云数据的码流头信息,获得所述参考信息;
基于所述点云数据集的数据点划分方式获取所述参考信息;
或者,解析所述点云数据集中的数据点的层级信息,获得所述参考信息。
11.一种点云数据编码装置,其特征在于,所述装置包括:
点云获取模块,用于获取点云数据集,所述点云数据集中包含至少两个数据点;
队列添加模块,用于基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
队列调整模块,用于在编码模块按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码之前,在向所述编码队列中添加数据点的过程中,或者在向所述编码队列中添加数据点之后,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行调整;
编码模块,用于按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码,获得所述点云数据集对应的已编码点云数据。
12.一种点云数据解码装置,其特征在于,所述装置包括:
数据获取模块,用于获取点云数据集对应的已编码点云数据;所述已编码点云数据是编码设备基于目标数据点对之间的距离,将所述点云数据集中的各个数据点依次添加至编码队列,在向所述编码队列中添加数据点的过程中,或者在向所述编码队列中添加数据点之后,基于所述编码队列中的相邻数据点之间的距离,对所述编码队列中的数据点的顺序进行调整,并按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行编码得到的;所述目标数据点对是所述编码队列中已有的数据点与所述点云数据集中的数据点构成的数据点对;
参考信息获取模块,用于获取参考信息;所述参考信息用于指示所述编码队列的起始参考数据点;
解码模块,用于基于所述参考信息以及所述已编码点云数据,按照所述各个数据点在所述编码队列中的次序,对所述各个数据点依次进行解码。
13.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条计算机程序;所述至少一条计算机程序由所述处理器加载并执行以实现如权利要求1至8任一所述的点云数据编码方法,或者,实现如权利要求9或10所述的点云数据解码方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至8任一所述的点云数据编码方法,或者,实现如权利要求9或10所述的点云数据解码方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410183175.4A CN118075494A (zh) | 2020-12-07 | 2020-12-07 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
CN202011440832.7A CN114598892B (zh) | 2020-12-07 | 2020-12-07 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
PCT/CN2021/131278 WO2022121648A1 (zh) | 2020-12-07 | 2021-11-17 | 点云数据编码方法、解码方法、设备、介质及程序产品 |
EP21902355.3A EP4250726A4 (en) | 2020-12-07 | 2021-11-17 | METHOD FOR ENCODING POINT CLOUD DATA, METHOD FOR DECODING POINT CLOUD DATA, APPARATUS, MEDIUM AND PROGRAM PRODUCT |
US17/974,829 US20230051652A1 (en) | 2020-12-07 | 2022-10-27 | Point cloud data encoding method and decoding method, device, medium, and program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011440832.7A CN114598892B (zh) | 2020-12-07 | 2020-12-07 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410183175.4A Division CN118075494A (zh) | 2020-12-07 | 2020-12-07 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114598892A CN114598892A (zh) | 2022-06-07 |
CN114598892B true CN114598892B (zh) | 2024-01-30 |
Family
ID=81802671
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410183175.4A Pending CN118075494A (zh) | 2020-12-07 | 2020-12-07 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
CN202011440832.7A Active CN114598892B (zh) | 2020-12-07 | 2020-12-07 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410183175.4A Pending CN118075494A (zh) | 2020-12-07 | 2020-12-07 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230051652A1 (zh) |
EP (1) | EP4250726A4 (zh) |
CN (2) | CN118075494A (zh) |
WO (1) | WO2022121648A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11956470B2 (en) * | 2020-04-07 | 2024-04-09 | Qualcomm Incorporated | Predictor index signaling for predicting transform in geometry-based point cloud compression |
CN115102934B (zh) * | 2022-06-17 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 点云数据的解码方法、编码方法、装置、设备及存储介质 |
CN117857516A (zh) * | 2022-06-17 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 一种点云编码方法、点云解码方法及相关设备 |
CN115396668A (zh) * | 2022-08-19 | 2022-11-25 | 腾讯科技(深圳)有限公司 | 点云数据的解码方法、编码方法、装置、存储介质及设备 |
CN116933359B (zh) * | 2023-06-26 | 2024-02-02 | 武汉峰岭科技有限公司 | 一种建筑复杂屋顶建模方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3467784A1 (en) * | 2017-10-06 | 2019-04-10 | Thomson Licensing | Method and device for up-sampling a point cloud |
CN109889840A (zh) * | 2019-03-20 | 2019-06-14 | 北京大学深圳研究生院 | 点云编码和解码的方法、编码设备和解码设备 |
CN110781894A (zh) * | 2019-09-29 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 点云语义分割方法、装置及电子设备 |
CN111242997A (zh) * | 2020-01-13 | 2020-06-05 | 北京大学深圳研究生院 | 一种基于滤波器的点云属性预测方法及设备 |
CN111405281A (zh) * | 2020-03-30 | 2020-07-10 | 北京大学深圳研究生院 | 一种点云属性信息的编码方法、解码方法、存储介质及终端设备 |
CN111602176A (zh) * | 2019-06-03 | 2020-08-28 | 深圳市大疆创新科技有限公司 | 点云数据的位置坐标的编解码方法、系统和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9530225B1 (en) * | 2013-03-11 | 2016-12-27 | Exelis, Inc. | Point cloud data processing for scalable compression |
US10462485B2 (en) * | 2017-09-06 | 2019-10-29 | Apple Inc. | Point cloud geometry compression |
US10911787B2 (en) * | 2018-07-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression |
-
2020
- 2020-12-07 CN CN202410183175.4A patent/CN118075494A/zh active Pending
- 2020-12-07 CN CN202011440832.7A patent/CN114598892B/zh active Active
-
2021
- 2021-11-17 WO PCT/CN2021/131278 patent/WO2022121648A1/zh unknown
- 2021-11-17 EP EP21902355.3A patent/EP4250726A4/en active Pending
-
2022
- 2022-10-27 US US17/974,829 patent/US20230051652A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3467784A1 (en) * | 2017-10-06 | 2019-04-10 | Thomson Licensing | Method and device for up-sampling a point cloud |
CN109889840A (zh) * | 2019-03-20 | 2019-06-14 | 北京大学深圳研究生院 | 点云编码和解码的方法、编码设备和解码设备 |
CN111602176A (zh) * | 2019-06-03 | 2020-08-28 | 深圳市大疆创新科技有限公司 | 点云数据的位置坐标的编解码方法、系统和存储介质 |
CN110781894A (zh) * | 2019-09-29 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 点云语义分割方法、装置及电子设备 |
CN111242997A (zh) * | 2020-01-13 | 2020-06-05 | 北京大学深圳研究生院 | 一种基于滤波器的点云属性预测方法及设备 |
CN111405281A (zh) * | 2020-03-30 | 2020-07-10 | 北京大学深圳研究生院 | 一种点云属性信息的编码方法、解码方法、存储介质及终端设备 |
Non-Patent Citations (1)
Title |
---|
Wenjie Zhu.Lossless point cloud geometry compression via binary tree partition and intra prediction.《IEEE》.2017,摘要,第一-三节. * |
Also Published As
Publication number | Publication date |
---|---|
US20230051652A1 (en) | 2023-02-16 |
EP4250726A4 (en) | 2024-06-12 |
EP4250726A1 (en) | 2023-09-27 |
CN118075494A (zh) | 2024-05-24 |
CN114598892A (zh) | 2022-06-07 |
WO2022121648A1 (zh) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114598892B (zh) | 点云数据编码方法、解码方法、装置、设备及存储介质 | |
US20220366610A1 (en) | Point cloud data processing method and apparatus | |
US11902348B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20230164353A1 (en) | Point cloud data processing device and processing method | |
US20230154052A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method | |
US20230171431A1 (en) | Device for transmitting point cloud data, method for transmitting point cloud data, device for receiving point cloud data, and method for receiving point cloud data | |
US20220360823A1 (en) | Device and method for processing point cloud data | |
CN117121487A (zh) | 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 | |
CN116016951A (zh) | 点云处理方法、装置、设备及存储介质 | |
WO2024188009A1 (zh) | 几何模式的确定方法、装置、设备及存储介质 | |
CN116349229A (zh) | 点云数据发送装置和方法、点云数据接收装置和方法 | |
EP4068789A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN114598883A (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
WO2023024840A1 (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
EP4369716A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20230206510A1 (en) | Point cloud data processing device and processing method | |
US20230328270A1 (en) | Point cloud data transmission device, point cloud data transmission method, point coud data reception device, and point cloud data reception method | |
CN115100302A (zh) | 点云处理方法、装置、设备以及介质 | |
US20230281878A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method | |
US20240064332A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN116438799A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN115086716A (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
EP4395320A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
CN114503586B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
EP4432657A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40067089 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |