CN115102935A - 一种点云编码方法、点云解码方法及相关设备 - Google Patents
一种点云编码方法、点云解码方法及相关设备 Download PDFInfo
- Publication number
- CN115102935A CN115102935A CN202210690211.7A CN202210690211A CN115102935A CN 115102935 A CN115102935 A CN 115102935A CN 202210690211 A CN202210690211 A CN 202210690211A CN 115102935 A CN115102935 A CN 115102935A
- Authority
- CN
- China
- Prior art keywords
- point
- point cloud
- geometric
- cloud data
- group
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 235
- 238000012545 processing Methods 0.000 claims description 249
- 238000003860 storage Methods 0.000 claims description 72
- 238000009826 distribution Methods 0.000 claims description 41
- 238000004458 analytical method Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 22
- 238000012216 screening Methods 0.000 claims description 10
- 238000007499 fusion processing Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 22
- 238000010276 construction Methods 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例提供了一种点云编码方法、点云解码方法及相关设备,其中的点云编码方法包括:获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;基于每个点云组的起始点构建每个点云组的单链预测树;根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理。采用本申请实施例能够提高点云数据的编码效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及编解码领域,尤其涉及一种点云编码方法、一种点云解码方法、一种点云处理装置、一种计算机设备及一种计算机可读存储介质。
背景技术
点云数据是采用测量仪器对物体表面进行数据采集所得到的点集合。点云数据在自动驾驶、高精度地图及虚拟现实等方面应用广泛,但由于点云数据往往是由数万个点到数亿个三维点组成,对数据存储、处理及传输显示都带来了严峻的挑战,对于目前的存储资源和传输带宽都难以承受,因此对点云数据进编码后存储或传输是必不可少的。
目前,可采用预测树编码技术对点云数据进行编码;例如,将点云数据所包含的各个点进行链接,以构建点云数据的预测树,并基于该预测树对点云数据实现编码处理。然而,现有的预测树编码技术均采用单一起始点,来对点云数据的预测树进行构建和后续点搜索、链接;这种基于单一起始点构建点云数据的预测树的方式,不仅降低预测树构建效率,而且导致编码性能依赖于起始点的选取,从而降低点云数据的编码效率。
发明内容
本申请实施例提供一种点云编码方法、点云解码方法及相关设备,能够基于多个起始点构建点云数据的预测树,从而提高点云数据的编码效率。
一方面,本申请实施例提供了一种点云编码方法,该方法包括:
获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
基于每个点云组的起始点构建每个点云组的单链预测树;
根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理。
本申请实施例中,一方面,在获取待编码的点云数据后,支持先对点云数据进行划分,得到多个点云组;再以组为单位,针对每个点云组构建单链预测树;最后基于每个点云组的单链预测树得到整个点云数据的预测树;相比于针对整个点云数据构建一棵预测树而言,针对每个点云组均构建单链预测树,在一定程度上可缩短点云数据的预测树的构建时长,提高预测树的构建效率。另一方面,为每个点云组构建单链预测树时,支持为每个点云组确定两个或两个以上的起始点,并基于两个或两个以上的起始点为点云组构建单链预测树;这种基于多起始点构建单链预测树的方式,能够实现高效的预测树结构,提高三维空间中邻近的无序点的关联关系,提升点云数据的编码效率。
另一方面,本申请实施例提供了一种点云解码方法,该方法包括:
获取待解码的点云数据,点云数据包括多个待解码的点;待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码处理得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息;
确定点云数据的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。
本申请实施例中,在获取到待解码的点云数据后,可对点云数据进行起始点解析,以确定点云数据的起始点的重建几何信息;然后,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各个待编码的点的预测几何信息;再基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的起始点的重建几何信息,实现快速确定起始点的重建几何信息,在一定程度上提高点云数据的解码效率。
另一方面,本申请实施例提供了一种点云编码装置,该装置包括:
获取单元,用于获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
处理单元,用于为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
处理单元,还用于基于每个点云组的起始点构建每个点云组的单链预测树;
处理单元,还用于根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理。
在一种实现方式中,点云组的起始点的确定方式,包括以下任一种或多种:
从点云组的点云包围盒的多个顶点中,选取起始点;
从点云组的一个或多个第一特殊点中选取起始点;
按照点云组中待编码的点的排列顺序,选取起始点。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的点云包围盒的多个顶点中,选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元用于为目标点云组选取起始点时,具体用于:
确定目标点云组的点云包围盒;其中,目标点云组的点云包围盒包括:涵盖目标点云组中所有点的最小长方体、最小立方体或最小多面体;
从目标点云组的点云包围盒的多个顶点中,按照选取规则选择P1个起始点,P1大于等于1;
其中,选取规则包括以下至少一种:随机选择,按各顶点之间的几何距离关系选取,以及沿预设方向选取。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的一个或多个第一特殊点中选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元用于为目标点云组选取起始点,具体用于:
从目标点云组所包含的多个待编码的点中,确定一个或多个第一特殊点,第一特殊点包括以下至少一种:目标点云组的极大值点、极小值点及中位点;
从极大值点、极小值点及中位点中,选取P2个起始点,P2大于等于1。
在一种实现方式中,点云组的起始点的确定方式包括:按照点云组中待编码的点的排列顺序,选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元用于为目标点云组选取起始点时,具体用于:
按照目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;第二特殊点包括以下至少一种:排列顺序中的最首点,以及,排列顺序中的最末点;
从一个或多个第二特殊点中,选取P3个起始点,P3大于等于1。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,处理单元用于为目标点云组选取起始点时,具体用于:
确定目标点云组的第一起始点;其中,第一起始点的确定方式包括以下任一种:基于目标点云组的点云包围盒的多个顶点确定的,或者,从目标点云组的一个或多个第一特殊点中确定的,或者,按照目标点云组中待编码的点的排列顺序确定的;
基于第一起始点与目标点云组中各点之间的几何位置关系,从目标点云组中各点中选取起始点。
在一种实现方式中,L个点云组中包括第m个点云组和第m+1个点云组;第m个点云组已选取一个或多个起始点;处理单元用于为第m+1个点云组选取起始点时,具体用于:
从第m个点云组的一个或多个起始点中,按照筛选规则为第m+1个点云组选取起始点;
其中,筛选规则包括以下任一种:随机选取,或者,选取第m个点云组的一个或多个起始点中优先级最低的起始点。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,目标点云组的起始点至少包括:第一起始点和第二起始点;基于第一起始点和所述第二起始点,构建目标点云组的单链预测树,包括:
将目标点云组中除起始点外的其他点作为候选点,添加至备选点集合;
基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树;
其中,单链预测树的起始点为第一起始点,终止点为第二起始点。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;处理单元用于基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体用于:
基于第一起始点和所述备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和所述备选点集合,构建目标点云组的单链预测树的第二分支链路;
将优先级高的第一分支链路的最末点,与优先级低的第二分支链路的最末点进行连接,得到目标点云组的单链预测树。
在一种实现方式中,处理单元用于基于第一起始点和备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和备选点集合,构建目标点云组的单链预测树的第二分支链路时,具体用于:
以优先级高的所述第一起始点为搜索起点,从所述备选点集合中搜索与第一起始点之间的几何距离最近的第一候选点;将第一候选点链接至以第一起始点为最首点的第一分支链路,并基于第一候选点更新备选点集合;
以及,以优先级低的第二起始点为搜索起点,从更新后的备选点集合中搜索与第二起始点之间的几何距离最近的第二候选点;将第二候选点链接至以第二起始点为最首点的第二分支链路,并基于第二候选点再次更新更新后的备选点集合;
重复上述步骤,直至备选点集合为空集,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;处理单元用于基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体用于:
以第一起始点为搜索起点,从备选点集合中搜索到搜索起点和第二起始点之间的距离加权值最小的第一候选点;并将第一候选点链接至搜索起点,且根据第一候选点更新备选点集合;
以第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和第二起始点之间的距离最小的第二候选点;并将第二候选点链接至新的搜索起点,并根第一候选点更新备选点集合;
以第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集;
将最后搜索到的候选点与第二起始点连接,得到目标点云组的单链预测树。
在一种实现方式中,处理单元,还用于:
对点云数据包括的多个待编码的点进行排序,得到点云序列;
按照点云序列中各点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组;
其中,在划分得到第L-1个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组;
或者,在划分得到第L个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组。
在一种实现方式中,处理单元用于根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理时,具体用于:
按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树;
基于目标预测树对所述点云数据中的各个待编码的点进行编码处理,得到编码码流;
其中,目标预测树的起始点为L个点云组中第一个点云组的第一起始点,目标预测树的终止点为L个点云组中第L个点云组的终止点。
在一种实现方式中,L个点云组中包括相邻的第j个点云组和第j+1个点云组,j=1,2,…,L-1;处理单元用于按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树时,具体用于:
将第j个点云组的单链预测树的最末点,与第j+1个点云组的单链预测树的最首点相连,以得到点云数据的目标预测树。
在一种实现方式中,处理单元用于基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体用于:
确定点云数据的点云包围盒的包围盒信息,并对包围盒信息进行编码处理;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的包围盒信息和编码处理后的点云数据,得到编码码流。
在一种实现方式中,处理单元用于基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体用于:
对目标预测树中起始点的起始点信息进行编码处理;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的目标预测树中起始点的起始点信息,以及编码处理后的点云数据,得到编码码流。
在一种实现方式中,点云数据中第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1;处理单元用于基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体用于:
对各个单链预测树中第一起始点的起始点信息,以及各个点云组的组信息,进行编码处理;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的各个单链预测树中第一起始点的起始点信息,编码处理后的各个点云组的组信息,以及编码处理后的点云数据,得到编码码流。
在一种实现方式中,处理单元用于根据几何编码模式对点云数据中各待编码的点进行编码处理时,具体用于:
根据目标预测树的几何编码模式,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
基于点云数据中各点的预测几何信息和真实几何信息,确定点云数据中各点的预测残差信息;
对点云数据中各点的预测残差信息进行编码处理,得到编码处理后的点云数据。
在一种实现方式中,点云数据中包括当前待编码的点,当前待编码的点是指目标预测树中除起始点之外的任一个待编码的点;
处理单元用于根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到当前待编码的点的预测几何信息时,具体用于执行以下至少一种:
获取目标预测树中位于当前待编码的点之前,且相邻的单个前序点的真实几何信息,并将前序点的真实几何信息,作为当前待编码的点的预测几何信息;
或者,获取目标预测树中位于当前待编码的点之前,且相邻的多个前序点的真实几何信息,并对多个前序点的真实几何信息进行融合处理,得到当前待编码的点的预测几何信息。
在一种实现方式中,处理单元用于获取目标预测树的几何编码模式时,具体用于:
获取默认设置信息,并根据默认设置信息为目标预测树设置默认的几何编码模式,默认设置信息是编码端与解码端协商设置的;
或者,为点云数据中各个点云组设置相同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,为点云数据中各个点云组设置不同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,根据点云数据的几何分布特性,确定目标预测树的几何编码模式;
或者,根据点云数据的距离统计特性,确定目标预测树的几何编码模式。
在一种实现方式中,处理单元用于根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式时,具体用于:
根据所述点云数据中各点的真实几何信息,确定所述点云数据的点云包围盒的包围盒尺寸;
若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为目标预测树确定几何编码模式。
在一种实现方式中,处理单元用于根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式时,具体用于:
根据目标点云组中各点的真实几何信息,确定目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式。
本申请实施例中,一方面,在获取待编码的点云数据后,支持先对点云数据进行划分,得到多个点云组;再以组为单位,针对每个点云组构建单链预测树;最后基于每个点云组的单链预测树得到整个点云数据的预测树;相比于针对整个点云数据构建一棵预测树而言,针对每个点云组均构建单链预测树,在一定程度上可缩短点云数据的预测树的构建时长,提高预测树的构建效率。另一方面,为每个点云组构建单链预测树时,支持为每个点云组确定两个或两个以上的起始点,并基于两个或两个以上的起始点为点云组构建单链预测树;这种基于多起始点构建单链预测树的方式,能够实现高效的预测树结构,提高三维空间中邻近的无序点的关联关系,提升点云数据的编码效率。
另一方面,本申请实施例提供了一种点云解码装置,该装置包括:
获取单元,用于获取待解码的点云数据,点云数据包括多个待解码的点;待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码处理得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
处理单元,用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息;
处理单元,还用于确定点云数据的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
处理单元,还用于基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;处理单元用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息,包括:
对编码处理后的包围盒信息进行解析处理,以得到点云数据的点云包围盒的各个顶点的顶点信息;
基于点云包围盒的各个顶点的顶点信息,确定点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的点云数据的目标预测树中,起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,L个点云组是编码端对点云数据进行分组得到的;
处理单元用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体用于:
对编码处理后的点云数据的目标预测树中,起始点的起始点信息进行解析处理;
将解析结果作为点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的各个单链预测树中第一起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;一个单链预测树对应一个点云组,点云组是编码端对点云数据进行分组得到的;
处理单元用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体用于:
对编码处理后的各个单链预测树中第一起始点的起始点信息,进行解析处理;
将针对各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息。
在一种实现方式中,编码码流中包括编码处理后的每个点云组的组信息;点云组的组信息至少包括:点云组所包含的点的数量以及点云组的组标识;
处理单元用于根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息时,具体用于:
对编码处理后的每个点云组的组信息进行解析处理,得到每个点云组的预测组信息;
按照几何解码模式,并根据每个点云组的预测组信息,以及每个点云组的起始点的重建几何信息,确定每个点云组中各点的预测几何信息,以得到点云数据中各点的预测几何信息。
在一种实现方式中,点云数据中包括当前待解码点,当前待解码点是指点云数据中除起始点之外的待解码的点;处理单元用于基于几何解码模式对当前待解码点进行几何预测处理的过程,得到当前待解码点的预测几何信息的过程时,具体用于:
获取解码顺序中位于当前待解码点之前,且相邻的单个前序点的预测几何信息,并将前序点的预测几何信息,作为当前待解码点的预测几何信息;
或者,获取解码顺序中位于当前待解码点之前,且相邻的多个前序点的预测几何信息,并对多个前序点的预测几何信息进行融合处理,得到当前待解码点的预测几何信息;
其中,解码顺序是指:编码端对待编码的点云数据中各点进行编码处理的编码顺序。
在一种实现方式中,处理单元用于获取点云数据的几何解码模式时,具体用于以下至少一种:
获取默认设置信息,并根据默认设置信息为点云数据设置默认的几何解码模式,默认设置信息是编码端与解码端协商设置的;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据设置几何解码信息;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据中各个点云组设置不同的几何解码模式;点云组是编码端对点云数据分组得到的;
或者,根据点云数据的几何分布特性,确定点云数据的几何解码模式;
或者,根据点云数据的距离统计特性,确定点云数据的几何解码模式。
在一种实现方式中,编码码流中包括编码处理后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;处理单元用于根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体用于:
对编码处理的包围盒信息进行解析处理,以得到点云数据的点云包围盒的包围盒尺寸;
若点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为点云数据确定几何编码模式。
在一种实现方式中,编码码流中包括编码处理后的各个点云组的包围盒信息,任一点云组为目标点云组,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;处理单元用于根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体用于:
对编码处理的目标点云组的包围盒信息进行解析处理,以得到目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式。
本申请实施例中,在获取到待解码的点云数据后,可对点云数据进行起始点解析,以确定点云数据的起始点的重建几何信息;然后,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各个待编码的点的预测几何信息;再基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的起始点的重建几何信息,实现快速确定起始点的重建几何信息,在一定程度上提高点云数据的解码效率。
另一方面,本申请实施例提供了一种计算机设备,该计算机设备包括:
处理器,用于加载并执行计算机程序;
计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,实现上述点云编码方法或点云解码方法。
另一方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述点云编码方法或点云解码方法。
另一方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述点云编码方法或点云解码方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种编码框架的结构示意图;
图2a是本申请实施例提供的一种八叉树编码结构的示意图;
图2b是本申请实施例提供的一种多链预测树编码结构的示意图;
图2c是本申请实施例提供的一种单链的预测树结构的示意图;
图3是本申请实施例提供的一种点云编解码系统的架构示意图;
图4是本申请实施例提供的一种点云编码方法的流程示意图;
图5是本申请实施例提供的一种对待编码的点云数据进行分组的示意图;
图6a是本申请实施例提供的一种从点云包围盒的多个顶点中选取起始点的示意图;
图6b是本申请实施例提供的一种点云包围盒的示意图;
图6c是本申请实施例提供的一种从点云组的多个极值点中选取起始点的示意图;
图6d是本申请实施例提供的一种按照点云组中待编码的点的排列顺序,选取起始点的示意图;
图7是本申请实施例提供的一种将第一分支链路和第二分支链路连接的示意图;
图8是本申请实施例提供的一种按照起始点的优先级顺序,构建分支链路的示意图;
图9是本申请实施例提供的一种以多个起始点为基准进行多次搜索构建分支链路的示意图;
图10是本申请实施例提供的一种基于L个点云组的单链预测树,构建完整点云数据的目标预测树的示意图;
图11是本申请实施例提供的另一种点云编码方法的流程示意图;
图12是本申请实施例提供的一种预测待编码的点的预测几何信息的示意图;
图13是本申请实施例提供的一种点云解码方法的流程示意图;
图14是本申请实施例提供的一种点云编码装置的结构示意图;
图15是本申请实施例提供的一种点云解码装置的结构示意图;
图16是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更清楚地理解本申请实施例提供的技术方案,在此先对本申请实施例涉及的关键术语进行介绍:
一、点云数据(Point Cloud Data)。
点云数据可以是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集,点云数据中可以包括多个点,每个点具备几何信息和属性信息。其中,几何信息也可以称为三维位置信息,任一个点的几何信息可以是指该点的三维坐标(x,y,z),可以包括该点在三维坐标系统的各个坐标轴中的坐标值,即X轴的坐标值x,Y轴的坐标值y,Z轴的坐标值z。任一个点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率)。通常,点云数据中的每个点具有相同数量的属性信息;例如,点云数据中的每个点都可以具有颜色信息和激光反射强度两种属性信息;或者,点云数据中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。另外,可以根据不同的分类标准将点云数据划分为不同的类别;例如,从点云数据的获取方式划分,可以分为将点云数据的类型分为密集型点云和稀疏型点云;又如,从点云数据的时序类型划分,可以将点云数据的类型分为静态点云和动态点云。
二、点云编码(Point Cloud Compression,PCC)。
点云编码是指对点云数据进行编码,得到点云数据的压缩码流(或称为编码码流)的过程。点云编码可以包括几何信息编码和属性信息编码两个主要过程。目前主流的点云编码技术,针对点云数据的不同类型,可以分为基于几何结构的点云编码以及基于投影的点云编码;以MPEG(Moving Picture Expert Group,国际视音频编解码标准)中的G-PCC(Geometry-based Point Cloud Compression,基于几何结构的点云编码),以及AVS(AudioVideoCodingStandard,中国国家视频编解码标准)中的点云编码标准AVS-PCC为例进行介绍。
G-PCC及AVS-PCC均针对静态的稀疏性点云,两者的编码框架大致相同,如图1所示,可以分为几何信息编码过程以及属性信息编码过程。几何信息编码过程对点云数据中各点的几何信息进行编码,得到几何比特流;属性信息编码过程对点云数据中各点的属性信息进行编码,得到属性比特流;几何比特流和属性比特流共同组成点云数据的压缩码流。
1、对于几何信息编码过程,主要操作和处理可以参见如下描述:
(1)预处理(Pre-Processing):可以包括坐标变换(Transform Coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将三维空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
(2)几何编码(Geometry encoding):可以包括多种模式,如几何八叉树编码、几何预测树编码及基于三角表示的几何编码等,在不同条件下可对点云数据使用不同的模式。下面对上述给出的三种模式进行介绍;其中:
①几何八叉树编码(Octree):八叉树是一种树形数据结构。对于3D空间中的点云数据,八叉树划分方式包括:逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用“1”和“0”指示,如图2a所示,获得占用码信息(Occupancy Code)作为点云几何信息的码流。其中,上述提及的包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。
目前支持基于莫顿序(Morton)实现八叉树的构建,即将点云数据的3D坐标信息(即几何信息)通过查询莫顿顺序表,转换成对应的莫顿码。然后,根据每一位莫顿码的排序,获得每层八叉树的对应点。目前主流的点云编码技术是利用八叉树划分对点云数据进行表示,对几何信息和属性信息采用不同的处理流程。其中,莫顿序又称为莫顿曲线,是一种递归的空间分割技术,能够较好地把三维空间映射成一维的空间曲线,并且具有较好的局部特性。
②几何预测树编码(Predictive Tree):分析点云数据中各点的三维坐标的邻近关系,设置一定的准则将各个点逐一连接成单链或是多链的树形结构,利用前后连接的父节点和子节点之间的坐标计算残差值,通过对残差值及可能存在的索引值及计算方法进行编码。
基于点云数据所包含的多个点构建预测树的过程,其实质是解决TSP(TravelingSalesman Problem,旅行商问题)问题的过程。TSP问题是一个经典的组合优化问题。经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个NP完全问题。由于其在交通运输、电路板线路设计以及物流配送等领域内有着广泛的应用,国内外学者对其进行了大量的研究。早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法、模拟退火法、蚁群算法、禁忌搜索算法、贪婪算法和神经网络等。
例如,用无向加权图来对TSP建模,则城市是图的顶点,道路是图的边,道路的距离就是该边的长度。它是起点和终点都在一个特定顶点,访问每个顶点恰好一次的最小化问题。通常,该模型是一个完全图(即每对顶点由一条边连接)。如果两个城市之间不存在路径,则增加一条非常长的边就可以完成图,而不影响计算最优回路。在对称TSP问题中,两座城市之间来回的距离是相等的,形成一个无向图。这种对称性将解的数量减少了一半。在非对称TSP问题中,可能不是双向的路径都存在,或是来回的距离不同,形成了有向图。交通事故、单行道和出发与到达某些城市机票价格不同等都是打破这种对称性的例子。
一种MPEG多链预测树编码结构的示意图可参见图2b,该多链预测树以点201为起始点,并在该起始点之后依次链接多个点;当链接至点202时,出现3条以点202为起始点的分支链路,如从左到右和从上至下分别包括:第一分支链路、第二分支链路以及第三分支链路。其中,第一分支链路和第二分支链路均为单链,第三分支链路在链接至点203时,出现以点203为起始点的两条分支链路。一种AVS单链预测树编码结构的示意图可参见图2c,该单链预测树从起始点204开始,将点云数据所包含的所有点链接成为一个单一的预测树,该单链预测树中不存在分支链路。
③基于三角表示的几何编码(Trisoup):在点云块划分的基础上,定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。点云块是对点云数据中的各个点所处的三维空间进行划分得到的,每个点云块中包括点云数据中的部分点。
(3)几何量化(GeometryQuantization):量化的精细程度通常由量化参数(Quantizer Parameter,QP)来决定,QP取值较大大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
(4)几何熵编码(GeometryEntropyEncoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic C oding,CABAC)。
2、对于属性信息编码过程,主要操作和处理可以参见如下描述:
(1)属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复点云数据中各点的几何信息。在原始的点云数据中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
(2)属性变换编码(Transform):分析几何信息的邻近关系,通过变换矩阵将一定数量的点对应的真实属性信息转换为变换系数,对变换系数进行编码。属性变换编码中包括三种模式,如属性预测变换编码、属性提升变换编码及分层区域自适应变换编码。下面对上述给出的三种模式进行详细介绍,其中:
①属性预测变换编码(Predicting Transform):根据距离选择子点集,将点云数据划分成多个不同的层级(Level of Detail,LoD),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
②属性提升变换编码(Lifting Transform):在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
③分层区域自适应变换编码(Region Adaptive Hierarchical Transform,RAHT):属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。
(3)属性信息量化(Attribute Quantization):量化的精细程度通常由量化参数来决定。在属性预测编码中,是对量化后的预测残差信息进行熵编码;在属性变换编码及属性预测变换编码中,是对量化后的变换系数进行熵编码。
(4)属性熵编码(AttributeEntropy Coding):量化后的预测残差信息或变换系数一般使用行程编码(RunLength Coding)及算数编码(Arithmetic Coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
三、点云解码。
点云解码是指对点云数据的压缩码流进行解码,以重建点云数据的过程。具体地,可以是基于压缩码流中的几何比特流和属性比特流,重建点云数据中各点的几何信息和属性信息的过程。在解码端获得点云数据的压缩码流之后,对于几何比特流,首先进行熵解码,获得各种模式信息、量化后的几何信息以及属性信息;然后几何信息经过反量化,得到重建的3D(3-Dimensional)点位置信息(即几何信息)。对于属性比特流,首先进行熵解码,得到点云数据中各点量化后的预测残差信息或量化后的变换系数;然后对量化后的预测残差信息进行反量化得到重建残差信息,对量化后的变换系数进行反量化得到重建变换系数,重建变换系数经反变换后得到重建残差信息,根据点云数据中各点重建残差信息可以重建点云数据中各点的属性信息。将点云数据中各点重建的属性信息,按顺序与重建的几何信息一一对应,得到重建的点云数据。
基于上述对点云数据、点云编码和点云解码的相关描述,本申请实施例提出一种点云编解码系统。如图3所示,点云编解码系统30中可以包括编码设备301和解码设备302,编码设备301或解码设备302可以是终端,也可以是服务器,编码设备301和解码设备302之间可以建立通信连接。其中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。为便于阐述,本申请实施例对编码设备和编码端不作区分描述,同理对解码设备和解码端不作区分描述。
基于图3所示的点云编解码系统,本申请实施例提出一种基于多起始点的预测树编解码方案,该预测树编解码方案具体提出并构建了基于多起始点的预测树编码结构,并对对应的几何信息残差进行编解码。该预测树编解码方案包括点云编码方案和点云解码方案。该预测树编解码方案的具体实现流程可包括但不限于:
(1)获取点云数据。
点云数据可以通过场景捕获或设备生成两种方式获取得到。其中,场景捕获点云数据可以是指:通过捕获设备或测量仪器采集真实世界的视觉场景得到点云数据;捕获设备可以是设置于编码设备301中的硬件组件,例如捕获设备是终端的摄像头、传感器等。捕获设备也可以是与编码设备301相连接的硬件装置,例如与服务器相连接的摄像头等;捕获设备用于为编码设备301提供点云数据的获取服务;捕获设备可以包括但不限于以下任一种:摄像设备、传感设备、扫描设备。其中,摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等;传感设备可以包括激光设备、雷达设备等;扫描设备可以包括三维激光扫描设备等。设备生成点云数据可以是指:虚拟对象制作设备根据虚拟对象(例如通过三维建模得到的虚拟三维物体及虚拟三维场景)的生成点云数据。本申请实施例对点云数据的具体来源不作限定。
点云数据中可以至少包括待编码的点的真实几何信息;点云数据中待编码的点的真实几何信息可以是指:该待编码的点在三维空间中的真实的空间位置信息,具体是指在三维空间中的三维坐标系中的坐标信息。例如,待编码的点在三维空间中的三维坐标系中的坐标信息为(x,y,z),则该待编码的点的真实几何信息为(x,y,z);这样通过多个待编码的点的真实几何信息,可以反映该多个待编码的点在三维空间中的空间位置关系。
(2)对点云数据进行编码处理,以得到编码码流。
在捕获设备获取到点云数据后,编码设备301可以将待编码的点云数据划分为L个点云组,L为大于或等于1的整数;然后,编码设备301支持以点云组为单位,为每个点云组创建单链预测树;并将L个点云组的单链预测树,按照L个点云组被划分时的顺序进行链接,以得到点云数据的目标预测树。通过针对每个点云组均构建单链预测树,相比于针对整个点云数据构建一棵树预测树而言,在一定程度上可缩短点云数据的预测树的构建时长,提高预测树的构建效率。继而,可以对该点云数据的目标预测树进行编码处理,得到编码处理后的点云数据,进而得到编码码流,并将编码码流传输至解码设备302。其中,在为每个点云组构建单链预测树的过程中,支持为每个点云组先选取多个起始点,并以多个起始点分别作为搜索起点,得到每个起始点对应的分支链路,最后将多个起始点对应的多个分支链路进行链接,以得到点云组的单链预测树;这种基于多起始点构建单链预测树的方式,能够实现高效的预测树结构,提高三维空间中邻近的无序点的关联关系,提升点云数据的编码效率。
(3)对待解码的点云数据进行解码处理,以重建点云数据。
在解码设备302接收到编码码流后,可通过该编码码流获取待解码的点云数据(即编码处理后的点云数据);然后,支持对待解码的点云数据进行起始点解析,以确定点云数据的起始点的重建几何信息,该起始点可是指点云数据中排列位置位于第一位置的待编码的点。其次,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各点的预测几何信息;再对各点进行几何解析处理,以得到各点的重建残差信息,使得基于各点的预测几何信息和重建残差信息,确定出各点的重建几何信息,从而实现在解码端重建点云数据。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的起始点的重建几何信息,实现快速确定起始点的重建几何信息。并且,对点云数据中各待解码的点进行几何解码处理最终得到的是各点的重建残差信息,相比于直接重建各个点的重建几何信息而言,由于残差数据量较小,这样可以减少几何信息解码处理时解码的数据量,进一步提高点云数据的解码效率。
可以理解的是,本申请实施例描述的点云编解码系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述对预测树编解码方案的相关介绍,下面结合附图分别对本申请实施例涉及的点云编码方法和点云解码方法分别进行阐述。
本申请实施例提供一种点云编码方法,该点云编码方法的具体实现流程可参见图4;该点云编码方法可以由图3所示点云编解码系统30中的编码设备301执行。如图4所示,该点云编码方法可以包括以下步骤S401-S404:
S401,获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数。
待编码的点云数据可以是对真实三维物体表面进行数字采集所得到的点集合。点云数据是以点为单位的集合,点云数据包括的每个点具有几何信息和属性信息,可用于表征真实三维物体的表面特性。当目标对象(如任一对象)具有分析三维物体表面的表面特性或传输物体表面的表面特征的需求时,可以采用捕获设备对三维物体表面进行扫描,以获取到待编码的点云数据,该待编码的点云数据包括从三维物体表面采集到的多个待编码的点。
具体实现中,支持对待编码的点云数据进行划分,即将点云数据包括的多个待编码的点划分至不同的点云组中,这样每个点云组可包括相同或不同数量的待编码的点。下面结合图5描述对待编码的点云数据进行分组,以得到L个点云组的实现过程,如图5所示:
假设点云数据包括N个待编码点,N为大于1的整数;可先对待编码的点云数据包括的N个待编码的点进行排序,得到点云序列。点云序列可包括但不限于莫顿序或原始序;其中:①莫顿序可以是根据点云数据所包含的各个待编码的点的几何信息进行莫顿码排序得到的;具体是将点云数据所包含的各个待编码的点的3D坐标信息(如前述提及的几何信息)通过查询莫顿顺序表,转换为每个待编码的点对应的莫顿码,再对每位莫顿码进行排序得到点云数据对应的莫顿序。②原始序可以是指将待编码的点云数据输入至编码设备时,各个待编码的点的输入顺序,此情况下,该原始序可包括对物体表面扫描时获取到的各点的扫描顺序,还可以包括目标对象(如编码人员)对点云数据中各个点自定义的顺序;本申请实施例对原始序的具体确定方式不作限定。
然后,获取数量阈值,该数量阈值可以是根据目标对象的数据划分需求自定义设置的。最后,按照点云序列中各个待编码的点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组。其中,数量阈值包括目标数量,可用于指示:将点云序列中相邻目标数量的待编码的点划分至同一点云组。例如,数量阈值为100,则该数量阈值包括的目标数量为100,可以按照点云序列中各个待编码的点的排列顺序,将相邻100个待编码的点划分至同一点云组中,以得到L个点云组。
可以理解的是,点云序列所包含的待编码的点的数量,可能并非是目标数量的整数倍;例如,点云序列包含的待编码的点的数量为11个,目标数量为3,此时待编码的点的数量与目标数量之间的关系为:11=3*3+2,即按照点云序列中各个点的排列顺序,将相邻3个点划分为一个点云组后,点云序列中还剩余2个点未被划分至点云组。在此情况下,本申请实施例提供两种可选方式来将剩余的点划分至点云组。
可选的,在划分得到第L-1个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组;此时,第L个点云组中包括的待编码的点的数量为:不足目标数量的剩余未划分的点的数量。换而言之,在点云序列中剩余未划分的点的数量不足数量阈值时,可将该剩余未划分的点所组成的点云组作为最后一个点云组。如图5所示的,在划分得到第L-1个点云组时,点云序列中剩余未划分的点的数量为2,则将该2个剩余点划分至第L个点云组,该第L个点云组中包括2个待编码的点。
可选的,在划分得到第L个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组中;此时,第L个点云组中包括的待编码的点的数量为:目标数量+不足目标数量的剩余未划分的点。换而言之,在点云序列中剩余未划分的点的数量不足数量阈值时,可以将该剩余未划分的点并入已划分的最后一个点云组中。如图5所示的,在划分得到第L个点云组时,点云序列中剩余未划分的点的数量为2,则将该2个剩余点划分至第L个点云组,使得第L个点云组中包括5个待编码的点。
S402,为每个点云组确定起始点,每个点云组的起始点的数量均大于1。点云组的起始点可是指:构建点云组的单链预测树的搜索起点,搜索起点可简单理解为链路中的最首点,即位于链路(即多个点依次连接所形成的路径)中第一位置(或称为最首位置)的点;当某个点被确定为搜索起点时,确定以该点为基准,从点云组中搜索待编码的点,并将该待编码的点链接至以该点为起始点的分支链路上,以形成以该起始点为搜索起点的分支链路。进一步的,在点云组的起始点的数量大于1的情况下,可分别以每个起始点作为搜索起点,搜索得到每个起始点对应的分支链路,再基于各个分支链路连接得到点云组的预测树。由此可见,通过为每个点云组确定多个起始点,以构建多个分支链路,最后基于多个分支链路构建点云组的预测树的方式,相比于基于单个起始点为点云组构建预测树而言,通过分别以各个起始点同步构建分支链路的过程,在一定程度上可缩短预测树的构建时长,提高预测树构建效率,得到高效的预测树结构。或者,在点云组的起始点的数量大于1的情况下,支持以各个起始点为基准进行多次搜索,构建一条单链预测树;即将点云组中各点按照与各个起始点之间的几何距离关系,链接成一条单链预测树,能够提高点云组中的无序点与各个起始点之间的关联关系,实现高效的单链预测树结构。
下面对本申请实施例提供的几种点云组的起始点的确定方式进行介绍,其中:
1)从点云组的点云包围盒的多个顶点中,选取起始点。假设L个点云组中的任一个点云组为目标点云组,如图6a所示,为目标点云组选取起始点的实现过程可包括步骤s11-s12:
s11,确定目标点云组的点云包围盒。其中,考虑到目标点云组是对整个点云数据划分得到的,因此目标点云组的点云包围盒可是八叉树节点的包围盒,包括:涵盖了目标点云组中所有点的三维空间体,如最小长方体、最小立方体或最小多面体(如十面体)等。其中,目标点云组的点云包围盒的构建过程可包括:
首先,基于目标点云组中各待编码的点的真实几何信息,确定目标点云组的点云包围盒的原点。假设目标点云组的k-th点的浮点类型的坐标信息表示为(xk,yk,zk),k是目标点云组中的待编码的点的点数,k=0,1,2,…,k-1,如k=2时,该点的坐标信息表示为(x2,y2,z2)。则基于目标点云组中各点的真实几何信息,确定目标点云组的点云包围盒的原点,包括:
①根据目标点云组中各点的真实几何信息,确定在x方向、y方向以及z方向上均为最小数值的坐标点(xmin,ymin,zmin)。其中,xmin是目标点云组中各个待编码的点中在x方向上的最小值,ymin是目标点云组中各个待编码的点中在y方向上的最小值,zmin是目标点云组中各个待编码的点中在z方向上的最小值。xmin,ymin以及zmin的计算公式如下:
xmin=min(x0,x1,…,xk-1)
ymin=min(y0,y1,…,yk-1)
zmin=min(z0,z1,…,zk-1)
其中,min(s0,s1,…,sk-1)是取最小值函数,表示从当前输入中取最小值。
②基于最小数值的坐标点(xmin,ymin,zmin)计算目标点云组的点云包围盒的原点(xorigin,yorigin,zorigin)。其中,原点坐标中的xorigin,yorigin以及zorigin可分别采用如下计算公式计算得到:
xorigin=int(floor(xmin))
yorigin=int(floor(ymin))
zorigin=int(floor(zmin))
int(s)函数和floor(s)函数均为取整函数;int(s)函数的取整原理为向下取整,支持返回小于或等于s的最大整数值,如int(7.3)=7;floor(s)函数取整函数可以返回小于或等于s,且是指定基数的最大倍数值,如floor(23,3)表示需要返回小于或等于23且是3的最大整数倍的数值21。
然后,基于点云包围盒的原点和目标点云组中各个待编码的点的真实几何信息,计算点云包围盒在三维坐标系的各个方向上的尺寸,以此确定目标点云组的点云包围盒。点云包围盒在x,y,z方向上的尺寸可以采用如下计算公式计算:
BoudingBoxSizex=int(xmax-xorigin)+1
BoudingBoxSizey=int(ymax-yorigin)+1
BoudingBoxSizez=int(zmax-zorigin)+1
其中,int(s)函数为向下取整函数,关于int(s)函数的相关介绍可参见上述相关描述,在此不作赘述。坐标点(xmax,ymax,zmax)是在x方向、y方向以及z方向上均为最大数值的点,xmax是目标点云组中各个待编码的点中在x方向上的最大值,ymax是目标点云组中各个待编码的点中在y方向上的最大值,zmax是目标点云组中各个待编码的点中在z方向上的最大值;xmax,ymax以及zmax的计算公式如下:
xmax=max(x0,x1,…,xk-1)
ymax=max(y0,y1,…,yk-1)
zmax=max(z0,z1,…,zk-1)
其中,max(s0,s1,…,sk-1)是取最大值函数,表示从当前输入中取最大值。
综上所述,基于计算得到的点云包围盒的原点,以及点云包围盒在x方向、y方向和z方向上的尺寸,可得到目标点云组的点云包围盒。正如前述所提及的,包围盒的基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象;在本申请实施例中目标点云组的点云包围盒,可用于包围目标点云组中所有待编码点的最小长方体。一种示例性的包围几何对象的包围盒可参见图6b,该包围盒所占的三维空间区域内包括完整的几何对象;如图6b所示的第一张图中被点云包围盒包围的几何对象为手握篮球的对象,如图6b所示的第二张图中被点云包围盒包围的几何对象为兔子。
s12,从目标点云组的点云包围盒的多个顶点中,按照选取规则选取P1个起始点,P1大于等于1。其中,选取规则可包括但不限于:随机选择,按各顶点之间的几何距离关系选取,以及沿预设方向选取等;所谓随机选择可是指从多个顶点中随机选取P1个顶点作为起始点;所谓按各顶点之间的几何距离关系选取可是指:按照顶点之间的几何距离关系,将几何距离最远的P1个顶点作为起始点;所谓沿预设方向选取可是指:沿x方向、y方向和/或z方向选取P1个起始点。继续参见图6b,该点云包围盒为长方体,该长方体包括八个顶点,那么可以按照各个顶点之间的几何距离最远的关系,从八个顶点中按需选取顶点601和顶点602作为目标点云组的起始点,此时选取的顶点601和顶点602不属于目标点云组中的待编码点,即顶点601和顶点602是独立于目标点云组之外的其他点。
2)从点云组的多个第一特殊点中选取起始点。假设L个点云组中的任一个点云组为目标点云组,如图6c所示,为目标点云组选取起始点的实现过程可包括步骤s21-s22:
s21,确定目标点云组的第一极值点。第一特殊点可是指目标点云组中几何距离大于距离阈值的多个点;例如,第一特殊点包括:极值点和中位点,其中,极值点包括沿各个(如x方向、y方向以及z方向)的最大值点(或称为极大值点)和最小值点(或称为极小值点),中位点可包括目标点云组中按序排列的多个点中的中间位置的点。具体地,可以获取目标点云组中各个待编码的点在x方向,y方向和z方向上的坐标信息,再对每个方向上各个待编码点的坐标信息进行比较,以确定多个待编码的点沿各个方向上的极值点。例如,取多个待编码的点沿x方向的极小值点作为第一特殊点,此时该极小值点在x方向上的数值是最小的,但在y方向和z方向上的数值不一定是最小的。再如,如前述描述的在x方向,y方向和z方向上均取最小值的最小值点(xmin,ymin,zmin)作为第一特殊点,在x方向,y方向和z方向上均取最大值的最大值点(xmax,ymax,zmax)作为第一特殊点。
s22,从极大值点、极小值点和中位点中,选取P2个起始点,P2大于等于1。例如,可以从极大值点和极小值点中选取极小值点作为目标点云组的起始点,或者,同时选取极大值点和极小值点作为目标点云组的起始点等。其中,基于目标点云组中的各个待编码的点的真实几何信息,确定的极大值点和极小值点可能是属于目标点云组包括的待编码的点,也可能是独立于目标点云组之外的其他点。
3)按照点云组中待编码的点的排列顺序,选取起始点。正如前述所描述的,点云组是按照点云序列中各个待编码的点的排列顺序划分得到的,因此,点云组中包括的多个待编码的点同样是按照顺序排列的。假设L个点云组中的任一个点云组为目标点云组,如图6d所示,为目标点云组选取起始点的实现过程可包括步骤s31-s32:
s31,按照目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;该第二特殊点包括以下至少一种:排列顺序中的最首点,以及,排列顺序中的最末点。当然,目标点云组中的第二特殊点还可以是有利于提高编码效率的中间点,本申请实施例对第二特殊点的具体类型不作限定,只要往有利于提高编码效率的方向选取起始点即可。
s32,从一个或多个第二特殊点中选取P3个起始点,P3大于等于1。举例来说,假设目标点云组包括的各个待编码的点之间的排列顺序为:点1→点2→点3→…→点10,则确定该排列顺序中的起始点,即排列顺序中最首的待编码的点为点1,确定该排列顺序中的终止点,即排列顺序中最末的待编码的点为点10;可选取目标点云组中排列顺序为起始点的点1,作为目标点云组的起始点;或者,可选取目标点云组中排列顺序为终止点的点10,作为目标点云组的起始点。
基于上述描述,还需特别说明如下几点:
①本申请实施例并不限定只基于上述一种实现方式选取起始点,如可以从目标点云组的点云包围盒的多个顶点中选取起始点,和/或,从目标点云组的极值点中选取起始点,和/或,从目标点云组中排序排列的多个待编码的点中选取起始点。例如,选择基于空间划分(如确定点云组的点云包围盒的过程)得到的目标点云组的点云包围盒的左下角顶点作为起始点,此时该起始点不属于目标点云组当前组;再选择基于排列顺序多个待编码的点的终止点作为起始点,此时该起始点属于目标点云组;由此可见,为目标点云组选取的起始点可以是属于目标点云组中的待编码的点,也可以是独立于目标点云组之外的其他点。
②本申请实施例还支持基于几何位置关系选取起始点。具体地,可以先为目标点云组确定第一起始点,该第一起始点的确定方式可以包括上述给出的三种起始点选取方式的任一种,如该第一起始点可以基于目标点云组的点云包围盒的多个顶点确定的,或者,从目标点云组的多个极值点中确定的,或者,按照目标点云组中待编码的点的排列顺序确定的。然后,基于第一起始点与目标点云组中各点之间的几何位置关系,从目标点云组中各点中选取起始点;此处的几何位置关系可是指起始点与各点之间的几何距离关系,起始点与任一点的几何距离相比该起始点与其他点的几何距离更远,则该起始点与该任一点的几何距离关系为:该任一点是距离该任一起始点最远的点。
例如,在确定目标点云组的第一起始点后,可确定该第一起始点与目标点云组中各点之间的几何距离,然后,根据几何距离从目标点云组的各点中选取与第一起始点之间的几何距离最远的点作为第二起始点。进一步的,如果还想继续选取第三起始点,那么可以从目标点云组中剩余各点中选取与第一起始点和第二起始点之间的几何距离均较远的点作为第三起始点,以此类推,直到选取到P4个起始点。
③本申请实施例还支持基于上述几种实现方式(如基于点云包围盒、从点云组的多个第一特殊点、基于排序的点云组、或者,基于起始点之间的位置关系),为L个点云组中的部分点云组选取起始点,然后,基于被选取起始点的点云组,为L个点云组中未被选取起始点的点云组确定起始点。例如,L个点云组中包括第m个点云组和第m+1个点云组,那么可以按照上述给出几种实现方式为第m个点云组选取一个或多个起始点;如第m个点云组已选取一个或多个起始点,则可以从第m个点云组的一个或多个起始点,按照筛选规则为第m+1个点云组选取起始点。其中,筛选规则可包括但不限于:随机选取,或者,选取第m个点云组的一个或多个起始点中优先级最低的起始点。当然,第m+1个点云组的起始点除可以包括第m个点云组的起始点外,还可以包括按照上述几种实现方式确定的起始点。
举例来说,在第m个点云组已选取一个或多个起始点的情况下,可基于该一个或多个起始点构建第m个点云组的单链预测树;然后,可以将该第m个点云组的单链预测树的最末点(即第m个点云组的一个或多个起始点中优先级最低的起始点),作为第m+1个点云组的起始点。
④在实际为目标点云组选取起始点时,可以沿着利于提高编码效率的方向选取起始点;例如,如果选取目标点云组的点云包围盒的左下角顶点后,基于该左下角顶点构建预测树的编码效率,大于选取目标点云组的点云包围盒的右下角顶点后,基于该右下角顶点构建预测树的编码效率,则优先选取点云包围盒的左下角顶点作为目标点云组的起始点。
⑤在起始点选取后,还支持为起始点设置优先级;如为多个起始点设置相同或不同的优先级。例如,按照优先级从高至低的顺序,可将起始点分别称为:第一起始点、第二起始点以及第三起始点等等。通过对起始点的优先级设置,可预先定义好在后续基于多个起始点为目标点云组构建预测树时,基于起始点选取点的顺序。举例来说,选择基于空间划分的目标点云组的点云包围盒的左下角顶点作为第一起始点,以及基于排列顺序的多个待编码点中的终止点作为第二起始点,则在后续可先基于第一起始点选取点链接至第一起始点,再基于第二起始点选取点链接至第二起始点。
S403,基于每个点云组的起始点构建每个点云组的单链预测树。
通过对整个点云数据进行分组,可将整个点云组划分为多个点云组,使得能够以点云组为单位,同步为每个点云组构建单链预测树;相比于针对整个点云数据建立预测树而言,在一定程度上缩短预测树的构建时长,提高预测树构建效率。下面以对点云数据划分得到的L个点云组中的任一个点云组为目标点云组,且目标点云组的起始点至少包括:第一起始点和第二起始点,且第一起始点的优先级大于第二起始点的优先级为例,对构建单链预测树的实施过程进行介绍。
具体实现中,首先,将目标点云组中除起始点外的其他点作为候选点,添加至备选点集合中。例如:目标点云组中的待编码的点包括:点1、点2、点3、点3以及点5;若目标点云组的起始点包括第一起始点和第二起始点,且第一起始点属于目标点云组中的待编码的点(如点1),第二起始点不属于目标点云组中的待编码的点(如点6),则可以将目标点云组中除第一起始点(如点1)以外的其他待编码的点作为候选点,添加至备选点集合,此时备选点集合为[点2、点3、点4、点5]。其次,基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树,该单链预测树的起始点为第一起始点,终止点为第二起始点。
下面对基于备选点集合、第一起始点以及第二起始点,构建单链预测树的具体实施过程进行介绍,其中:
在一种实现方式中,支持按照目标点云组的多个起始点之间的优先级顺序依次搜索,以构建各个起始点所在的分支链路。具体地,支持持基于第一起始点和备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和备选点集合,构建目标点云组的单链预测树的第二分支链路。然后,将第一分支链路和第二分支链路进行连接,以构建得到目标点云组的单链预测树;具体是将优先级高的第一分支链路的最末点,与优先级低的第二分支链路的最末点进行连接,得到目标点云组的单链预测树。
一种可选的实现流程:
①以优先级高的第一起始点为搜索起点,从备选点集合中搜索与第一起始点之间的几何距离最近的第一候选点;将第一候选点链接至以第一起始点为最首点的第一分支链路,并基于第一候选点更新备选点集合,具体是在备选点集合中删除第一候选点,得到更新后的备选点集合。以及,以优先级低的第二起始点为搜索起点,从更新后的备选点集合中搜索与第二起始点之间的几何距离最近的第二候选点;将第二候选点链接至以第二起始点为最首点的第二分支链路,并基于第二候选点再次上述更新后的备选点集合,具体是在更新后的备选点集合中删除第二候选点,以得到再次更新后的备选点集合。重复上述步骤,直至备选点集合为空集,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
举例来说,如图7所示,假设目标点云组中的待编码的点分别为:点1、点2、点3、点4以及点5,目标点云组的起始点包括得到第一起始点A为点1,第二起始点B为独立于目标点云组的点6,则将目标点云组中除点1之外的其他待编码的点作为候选点,添加至备选点集合,此时备选点集合中包括:点2、点3、点4以及点5。然后,按照起始点的优先级顺序,先以第一起始点A为搜索起点,从备选点集合中搜索与第一起始点A之间的几何距离最近的第一候选点(如点2),再将点2链接至第一起始点A,以构建第一分支链路,以及在备选点集合中删除第一候选点;然后,以第二起始点B为搜索起点,从删除了第一候选点的备选点集合中搜索与第二起始点B之间的几何距离最近的第二候选点(如点3),并将第二候选点链接至第二起始点B,以构建第二分支链路,以及在删除了第一候选点的备选点集合中继续删除第二候选点,此时更新后的备选点集合中包括点4和点5。
进一步的,再以第一起始点A为搜索起点,从更新后的备选点集合中搜索与第一起始点A之间的几何距离最近的第三候选点(如点4),再将第三候选点链接至第一分支链路中当前最末点(即第一候选点)之后,以构建第一分支链路,以及在更新后的备选点集合中删除第三候选点。同理,再以第二起始点B为搜索起点,从更新后的备选点集合中搜索与第二起始点B之间的几何距离最近的第四候选点(如点5),由于此时备选点集合中只剩点5,则可直接将点5作为第四候选点第二分支链路中当前最末点(即第二候选点)之后,以构建第二分支链路;此时备选点集合为空集,则以第一起始点A为搜索起点构建的第一分支链路为点1→点2→点4,以第二起始点B为搜索起点构建的第二分支链路为点6→点3→点5。
②将单链预测树的第一分支链路和单链预测树的第二分支链路进行连接,以构建得到目标点云组的单链预测树。该连接过程的示意图可参见图8,假设目标点云组的起始点包括:起始点A(即第一起始点)和起始点B(即第二起始点)。首先构建目标点云组的备选点集合,该备选点集合中不包括目标点云组的起始点;然后,以起始点A为搜索起点,从备选点集合中未连接的待编码的点中,逐个搜索与起始点A之间的几何距离最近的点作为当前点(如第一分支链路中待连接下一点的点)的后序节点,以得到以起始点A为搜索起点的第一分支链路701。同理,以起始点B为搜索起点,从备选点集合中未连接的待编码的点中,逐个搜索与起始点B之间的几何距离最近的点作为当前点的后序节点,以得到以起始点B为搜索起点的第二分支链路702。然后,将第一分支链路701的最末点,与第二分支链路702的最末点进行连接,将连接后的预测树作为目标点云组的单链预测树。其中,起始点A(即第一起始点)作为目标点云组的单链预测树的起始点,而起始点B(即第二起始点)作为目标点云组的单链预测树的终止点。
另一种可选的实现流程:
其原理可简单概述为:假设目标点云中的待编码的当前点为i,第一起始点记为A,第二起始点记为B,那么当前点i与第一起始点A之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,表示选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点作为第一起始点A的后序节点。同理,当前点i与第二起始点B之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值d2=a2×d(i,A)+b2×d(i,B),其中,a2<0,b2>0,表示选取备选点集合中距离第二起始点B相对最近且距离第一起始点相对最远的点作为第二起始点B的后序节点。该实现方式的具体流程可包括:
首先,按照第一计算规则,计算备选点集合中各候选点与第一起始点和第二起始点的第一距离加权值,该第一计算规则可以为:
d1=a1×d(i,A)+b1×d(i,B)
其中,i为备选点集合中的候选点,A为目标点云组的第一起始点,B为目标点云的第二起始点,d(i,A)为候选点i和第一起始点A之间的几何距离,d(i,B)为候选点i和第二起始点B之间的几何距离。系数a1取值为a1>0,系数b1取值为b1<0,即d1取值越大时,表示候选点i距离第一起始点A相对最近,且距离第二起始点B相对最远,则确定候选点i与第一起始点A之间的关联关系,相比于候选点i与第二起始点B之间的关联关系更强。本申请实施例对系数a1以及b1的具体取值不作限定。
其次,将第一距离加权值指示与第一起始点的距离相对最近,且与第二起始点的距离相对最远的第一候选点,添加至以第一起始点为最首点的第一分支链路,即将第一候选点作为第一起始点的后序节点(如第一分支链路上的点);以及,根据第一候选点更新备选点集合,具体是从备选点集合中删除第一候选点,得到更新后的备选点集合。
同理,按照第二计算规则,计算更新后的备选点集合中各候选点与第一起始点和第二起始点的第二距离加权值,该第二计算规则可以为:
d2=a2×d(i,A)+b2×d(i,B)
其中,i为备选点集合中的候选点,A为目标点云组的第一起始点,B为目标点云的第二起始点,d(i,A)为候选点i和第一起始点A之间的几何距离,d(i,B)为候选点i和第二起始点B之间的几何距离;系数a2取值为a2<0,系数b2取值为b2>0,即d2取值越大时,表示候选点i距离第一起始点A相对最远,且距离第二起始点B相对最近,则确定候选点i与第二起始点B之间的关联关系,相比于候选点i与第一起始点A之间的关联关系更强。本申请实施例对系数a2以及b2的具体取值不作限定。
然后,将第二距离加权值指示与第一起始点的距离相对最远,且与第二起始点的距离相对最近的第二候选点,添加至以第二起始点为最首点的第二分支链路,即将第二候选点作为第二起始点的后序节点(如第二分支链路上的点);以及,根据第二候选点再次更新上一次更新后备选点集合,具体是从删除第一候选点后的备选点集合中删除第二候选点,得到二次更新后的备选点集合。
最后,重复上述步骤,直至备选点集合为空集,以实现将目标点云组中的所有点均链接至分支链路上,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
举例来说,如图9所示,假设目标点云组中的待编码的点分别为:点1、点2、点3、点4以及点5,目标点云组的起始点包括得到第一起始点A为点1,第二起始点B为独立于目标点云组的点6,则将目标点云组中除点1之外的其他待编码的点作为候选点,添加至备选点集合,此时备选点集合中包括:点2、点3、点4以及点5。然后,按照第一计算规则,计算备选点集合中各个候选点与第一起始点A和第二起始点B的第一距离加权值;并将第一距离加权值中指示距离第一起始点A相对最近,且距离第二起始点B相对最远的第一候选点,作为第一起始点A的后序节点;如点2对应的第一距离加权值为3,点3对应的第一距离加权值为7,点4对应的第一距离加权值为5,点5对应的第一距离加权值为10,则将点5作为第一起始点A的后序节点;并在备选点集合中删除第一候选点,以更新备选点集合。
继而,再基于第二计算规则,计算更新后的备选点集合中各个候选点与第一起始点A和第二起始点B的第二距离加权值;并将第二距离加权值中指示距离第一起始点A相对最远,且距离第二起始点B相对最近的第二候选点,作为第二起始点B的后序节点;如点2对应的第二距离加权值为7,点3对应的第二距离加权值为5,点4对应的第二距离加权值为6,则将点2作为第二起始点B的后序节点;并在更新后的备选点集合中删除第二候选点,以更新备选点集合。重复上述步骤,直至备选点集合为空集,得到分别以第一起始点A为最首点的第一分支链路,和以第二起始点B为最首点的第二分支链路。
其他实现方式中,支持以目标点云组的多个起始点为基准,进行多次搜索,直接构建得到目标点云组的单链预测树。
一种可选的实现流程:
以目标点云组的多个起始点为基准进行多次搜索的原理可简单概述为:假设目标点云中的待编码的当前点为i,第一起始点记为A,第二起始点记为B,那么当前点i与第一起始点A之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值,d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,表示选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点作为第一起始点A的后序节点;即任一候选点的距离加权值包括:该任一候选点和第一起始点之间的第一加权值,与任一候选点和第二起始点之间的第二加权值的差值。再计算备选点集合中剩余点与第一起始点和第二起始点之间的距离加权值,将距离加权值指示距离第一起始点相对最近且距离第二起始点相对较远的点确链接至单链预测树的最末点;重复上述步骤,直到备选点集合为空集,得到目标点云组的单链预测树。该实现方式的具体流程可包括:
首先,根据距离运算规则,确定备选点集合中各个候选点,与第一起始点和第二起始点之间的距离加权值;其中,该距离运算规则为,d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,根据该距离运算规则运算得到的点的距离加权值可用于表示:选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点。
然后,按照距离加权值逐渐增大的顺序,依次链接备选点集合中的各个候选点,得到候选点链路;该候选点链路中的最首点为距离加权值最小的第一候选点,最末点为距离加权值最大的第二候选点。最后,将候选点链路的第一候选点链接至所述第一起始点,以及,将候选点链路的第二候选点链接至第二起始点,得到目标点云组的单链预测树。
当然,除了采用上述描述这种实现方式,即先构建候选点链路再将候选点链路链接至第一起始点和第二起始点,以构建目标点云组的单链预测树。本申请实施例还支持在得到备选点集合中的各个距离加权值后,先选取距离加权值最小的第一点链接至第一起始点之后,再从剩余的点中选取距离加权值最小的第二点链接至第一点之后,再从剩余的点中选取距离加权值最小的点链接至第二点之后,直到备选点集合中所有点均被链接,得到目标点云组的单链预测树。本申请实施例对以目标点云组的多个起始点为基准,直接构建得到目标点云组的单链预测树的具体实施过程不作限定,在此说明。
另一种可选的实现流程:
以目标点云组的多个起始点为基准进行多次搜索的原理可简单概述为:假设目标点云中的待编码的当前点为i,第一起始点记为A,第二起始点记为B,那么当前点i与第一起始点A之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,表示选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点作为第一起始点A的后序节点。再计算备选点集合中剩余点与第一候选点和第二起始点之间的距离加权值,将距离加权值指示距离第一候选点相对最近且距离第二起始点相对较远的第一候选点,以构建目标点云组的单链预测树。
该实现方式的具体流程可包括:
首先,以第一起始点为搜索起点,从备选点集合中搜索到搜索起点和第二起始点之间的距离加权值最小的第一候选点;任一候选点的距离加权值包括:任一候选点和第一起始点之间的第一加权值,与任一候选点和第二起始点之间的第二加权值的差值;其中,距离加权值的计算规则包括:d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0。并将第一候选点链接至搜索起点(即第一起始点),且根据第一候选点更新备选点集合,如在备选点集合中删除第一起始点。
其次,以第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和第二起始点之间的距离最小的第二候选点;并将第二候选点链接至新的搜索起点,并根据第一候选点更新备选点集合。再以第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集。
最后,将最后搜索到的候选点与第二起始点连接,得到目标点云组的单链预测树。
需说明的是,上述只是本申请实施例给出的多种示例性的构建分支链路的实施例,其目标在于从目标点云组中搜索到与第一起始点距离最近(如几何距离或距离加权值)的无序点,以及,从目标点云组中搜索到与第二起始点距离最近的无序点,提高三维空间中的邻近的无序点的关联关系。在实际应用中,还可以采用其他实现方式来达到上述目标,本申请实施例对构建分支链路的具体实施过程不作限定。
S404,根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理。
基于前述步骤S401-S403得到点云数据中每个点云组的单链预测树后,本申请实施例还支持基于每个点云组的单链预测树构建点云数据的目标预测树,以便于基于点云数据的目标预测树对点云数据中的各个待编码的点进行编码处理。具体地,可获取L个点云组中每个点云组的单链预测树。然后,按照L个点云组的分组顺序,即从点云数据中划分得到L个点云组的顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树,该目标预测树的起始点为L个点云组中的第一个点云组的第一起始点,目标预测树的终止点为L个点云组中的第L个点云组的终止点。最后再基于目标预测树对点云数据中的各个待编码的点进行编码处理。
示例性的基于L个点云组的单链预测树,构建完整点云数据的目标预测树的示意图过程可参见图10,如图10所示,点云数据包括L个点云组,每个点云组对应有一条单链预测树,则按照L个点云组被划分时的分组顺序,将每个点云组对应的单链预测树进行连接,得到点云数据的目标预测树。例如,L个点云组中包括相邻的第j个点云组和第j+1个点云组,j=1,2,…,L-1;则将第j个点云组的单链预测树中的最末点(或称为终止点),作为第j+1个点云组的单链预测树的最首点(或称为起始点),以得到点云数据的目标预测树。
本申请实施例中,一方面,在获取待编码的点云数据后,支持先对点云数据进行划分,得到多个点云组;再以组为单位,针对每个点云组构建单链预测树;最后基于每个点云组的单链预测树得到整个点云数据的预测树;相比于针对整个点云数据构建一棵树预测树而言,在一定程度上可缩短点云数据的预测树的构建时长,提高预测树的构建效率。另一方面,为每个点云组构建单链预测树时,支持为每个点云组确定两个或两个以上的起始点,并基于两个或两个以上的起始点为点云组构建单链预测树;这种基于多起始点构建单链预测树的方式,能够实现高效的预测树结构,提高三维空间中邻近的无序点的关联关系,提升点云数据的编码效率。
本申请实施例提供一种点云编码方法,该点云编码方法的具体实现流程可参见图11;该点云编码方法可以由图3所示点云编解码系统30中的编码设备301执行。如图11所示,该点云编码方法可以包括以下步骤1101-S1105:
S1101,获取待编码的点云数据,该点云数据被划分为L个点云组。
S1102,为每个点云组确定起始点,每个点云组的起始点的数量均大于1。
S1103,基于每个点云组的起始点构建每个点云组的单链预测树。
S1104,将每个点云组的单链预测树进行连接,得到点云数据的目标预测树。
需要说明的是,步骤S1101-S1104所示的具体实施过程,可参见前述图4所示实施例中步骤S401-S404所示的具体实施过程的相关描述,在此不作赘述。
S1105,基于目标预测树对点云数据中的各个待编码的点进行编码处理。
本申请实施例支持编码设备采用多种编码规则,对点云数据中的各个待编码的点进行编码处理,以得到编码处理后的点云数据,该编码处理后的点云数据属于编码码流,在此说明。例如,支持对点云数据的点云包围盒的包围盒信息进行编码处理,以得到编码处理后的点云数据。再如,支持编码点云数据中的第一个点云组的第一起始点的起始点信息(如第一起始点的真实几何信息),以得到编码处理后的点云数据。又如,支持编码点云数据中每个点云组的起始点的起始点信息,以得到编码处理后的点云数据;其中,考虑到目标预测树是由L个点云组的单链预测树依次连接得到的,那么此处的点云组的起始点可是指:该点云组的相邻前一个点云组的单链预测树的终止点(或称为最末点),如第j个点云组的起始点可是指第j-1个点云组的单链预测树的终止点。下面对上述给出的多种编码规则的具体实施过程进行阐述,其中:
编码规则一:支持编码设备对基于空间划分得到的整体点云数据的点云包围盒的包围盒信息,以及点云数据中的各个待编码的点进行编码处理,以得到编码码流。那么解码端可以根据点云数据的点云包围盒和空间划分,直接计算得到待解码的点云数据的起始点信息(如起始点的重建几何信息)。
具体实现中,首先,确定点云数据的点云包围盒的包围盒信息,该包围盒信息可包括但不限于:点云包围盒的原点信息,点云包围盒沿x方向、y方向及z方向上的尺寸信息等;并对包围盒信息进行编码处理,得到编码处理后的包围盒信息。其次,确定目标预测树的几何编码模式,该几何编码模式定义了对点云数据中各个待编码的点的预测几何信息的预测方法或策略;然后,根据几何编码模式对点云数据中各待编码的点进行编码处理,得到编码处理后的点云数据。最后,根据编码处理后的包围盒信息和编码处理后的点云数据,得到编码码流。
需要说明的是,除支持对整个点云数据的点云包围盒的包围盒信息进行编码处理外,本申请实施例还支持对各个点云组的点云包围盒的包围盒信息进行编码处理,以及对点云数据中的各个待编码的点进行编码处理,以得到编码处理后的点云数据。
编码规则二:支持编码端编码点云数据中的第一点云组的起始点信息(如起始点的真实几何信息),以及按照几何编码模式对点云数据中其他待编码的点进行编码处理,以得到编码码流。具体实现中,对目标预测树的起始点的起始点信息进行编码处理,此处的目标预测树的起始点可是指L个点云组中第一个点云组的第一起始点,该第一起始点的起始点信息可是指该第一起始点在三维空间坐标系中的真实几何信息;即上述描述的对目标预测树中的起始点的起始点信息进行编码处理包括:对第一点云组的第一起始点的起始点信息进行编码。以及,确定目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理。再根据编码处理后的目标预测树中起始点的起始点信息,以及编码处理后的点云数据,得到编码码流。
编码规则三:支持编码端编码各个点云组的单链预测树中第一起始点的起始点信息以及各个点云组的组信息(如点云组所包含的点数、组标识(如组号)等),以及按照几何编码模式对点云数据中其他待编码的点进行编码处理,以得到编码处理后的点云数据。其中,考虑到在对多个点云组的单链预测树进行连接,以得到点云数据的目标预测树的过程中,是将第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1;则上述提及的单链预测树中的第一起始点,可是指相邻前一单链预测树的终止点,如第i组的第一起始点可是指第i-1组的终止点。具体实现中,对各个单链预测树中第一起始点的起始点信息以及各个点云组的组信息进行编码处理;以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;根据编码处理后的各个点云组的单链预测树中第一起始点的起始点信息,编码处理后的各个点云组所包含的组信息,以及编码处理后的点云数据,得到编码码流。
需说明的是,①上述只是给出的三种示例性的对点云数据进行编码的实施过程,在实际应用中,还可能存在其他编码实施方式,本申请实施例对此不作限定。②上述三种编码规则的具体实施过程,均涉及根据目标预测树的几何编码模式,对点云数据中各待编码的点进行编码处理的过程,该过程具体是指根据几何编码模式对点云数据中各待编码的点的预测残差信息进行编码处理。其中,根据几何编码模式对点云数据中各待编码的点进行编码处理的具体实施过程可包括:首先,根据目标预测树的几何编码模式,对点云数据中各待编码的点进行几何预测处理,得到点云数据中各待编码的点的预测几何信息。然后,基于点云数据中各待编码的点的预测几何信息和真实几何信息,确定点云数据中各待编码的点的预测残差信息;具体是将待编码的点的真实几何信息与该待编码的点的预测几何信息进行相减,得到该待编码的点的预测残差信息。最后,对点云数据中的各个待编码的点的预测残差信息进行编码处理,得到编码码流。
本申请实施例提供的几何编码模式(或称为预测模式)可包括但不限于:
1)不对待编码的点进行几何预测处理;
2)采用单个前序节点(parent点)对当前待编码的点进行几何预测处理;
3)采用S个前序节点(如parent点、grandparent点,或者,parent点、grandparent点以及grand-grandparent点)对当前待编码的点进行几何预测处理;假设单链预测树或目标预测树中,位于当前待编码的点之前的点数为Q,那么S的取值为:2,3,4,…,Q-1。
下面对上述给出的几种示例性的几何编码模式的具体实施过程进行介绍,其中:
1)对于目标预测树中位于第一位置的第一起始点而言,无需对该第一起始点进行几何预测处理。
2)采用单个前序节点对当前待编码的点进行几何预测处理;即支持基于单个前序节点(或简称为前序点)确定当前待编码的点的预测几何信息。假设点云数据中包括当前待编码的点,该当前待编码的点是指目标预测树中除最首点之外的任一个待编码的点,那么根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到该当前待编码的点的预测几何信息的过程,包括:获取目标预测树中位于当前待编码的点之前,且相邻的一个前序点的真实几何信息;然后,将该前序点的真实几何信息,作为当前待编码的点的预测几何信息。如图12所示的第一幅图,假设点云数据的目标预测树中的当前待编码的点为点5,在目标预测树中位于点5之前,且相邻的一个前序点为点4,则将点4的真实几何信息确定为点5的预测几何信息。
3)采用S个前序节点对当前待编码的点进行几何预测处理,本申请实施例对S的具体取值不作限定;即本申请实施例支持基于多个前序节点共同计算当前待编码的点的预测几何信息。假设点云数据中包括当前待编码的点,该当前待编码的点是指目标预测树中除最首点之外的任一个待编码的点,那么根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到该当前待编码的点的预测几何信息的过程,包括:获取目标预测树中位于当前待编码的点之前,且相邻的多个前序点的真实几何信息,并对多个前序点的真实几何信息进行融合处理,得到当前待编码的点的预测几何信息。值得说明的是,本申请实施例对融合处理的具体过程不作限定,如融合处理可包括但不限于差分处理或平均值计算等。以获取相邻2个前序点为例,如图12所示的第二幅图,假设点云数据的目标预测树中的当前待编码的点为点5,在目标预测树中位于点5之前,且相邻的2个前序点分别为点4和点3,则可以对点4的真实几何信息和点5的真实几何信息进行差分处理,并将差分处理的结果确定为点5的预测几何信息。
另外,本申请实施例还支持为目标预测树设置相同或不同的几何编码模式;为目标预测树设置几何编码模式的方式可包括但不限于:
(1)对点云数据在编码端和解码端设置统一的几何编码模式。也就是说,在编码端为点云数据设置的几何编码模式,与在解码端为编码处理后的点云数据设置的几何解码模式是相同。具体地,编码设备和解码设备中可存储有默认设置信息,该默认设置信息指示为点云数据设置默认的几何编码模式,则在获取到默认设备信息后,根据该默认设置信息为点云数据设置默认的几何编码信息。其中,若该默认设置信息指示为点云数据中的各个点云组设置相同的几何编码模式,则各个点云组均采用相同的几何编码模式;若该默认设置信息指示为点云数据中的各个点云组设置不同的几何编码模式,则各个点云组采用不同的几何编码模式。其中,该默认设置信息可是预先设置在编码设备的存储空间中的,这样编码设备需要采用几何编码模式进行编码处理时,可直接从存储空间中拉取。
另外,编码设备还可以基于默认的几何编码模式生成模式设置信息,并将模式设置信息发送至解码设备,该模式设置信息指示解码设备也采用默认的几何解码模式对编码处理后的点云数据进行解码处理。或者,解码设备的存储空间中本身存储有默认设置信息,这样解码设备在获取到待解码的点云数据后,可直接根据存储空间中存储的默认设置信息,为待解码的点云数据设置默认的几何编码模式。
(2)对点云数据中各个点云组设置统一的几何编码模式,并将几何编码模式的模式信息发送至解码设备;具体是将几何编码模式的模式信息写入参数集(如编码头信息)或编码码流,以便于在传输参数集或编码码流时,一并将几个编码模式的模式信息发送至解码设备;这样解码设备在接收到几何编码模式的模式信息后,可以根据该模式信息为待解码的点云数据设置几何解码模式。
(3)对点云数据中各个点云组设置不同的编码模式,并将各个点云组的几何编码模式的模式信息发送至解码设备;具体是将几何编码模式的模式信息写入参数集或编码码流,以便于在传输参数集或编码码流时,一并将几个编码模式的模式信息发送至解码设备。例如,点云数据中包括第一点云组和第二点云组,为第一点云组设置的第一几何编码模式指示:采用单个前序节点对当前待编码的点进行几何预测处理,为第二点云组设置的第二几何编码模式指示采用S(S大于等于2)个前序节点对当前待编码的点进行几何预测处理;则可以将第一几何编码模式的模式信息和第二几何编码模式的模式信息发送至解码设备,以便于解码设备根据模式信息为相应的待解码的点云组设置几何解码模式。
(4)根据点云数据的几何分布特性,确定目标预测树的几何编码模式。其中,点云数据的几何分布特性可包括:基于空间划分的点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸分布特性;或者,点云数据中的点云组的点云包围沿x方向、y方向以及z方向上的尺寸分布特性。
在一种实现方式中,根据点云数据的点云包围盒的几何分布特性,确定几何编码模式。具体地,首先,确定点云数据的点云包围盒,具体是基于空间划分为点云数据构建点云包围盒,该点云包围盒包括了点云数据中的所有待编码的点;在确定点云数据的点云包围盒的过程中,可根据点云数据中各点的真实几何信息,确定该点云包围盒的包围盒尺寸,具体是该点云包围盒在x方向、y方向以及z方向上的尺寸;其中,计算点云包围盒的尺寸的具体实施过程可参见步骤S402所示的具体实施过程的相关描述,在此不作赘述。若点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大,则根据差异值为目标预测树确定几何编码模式,如为目标预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式,即点云数据在不同方向上采用不同的几何编码模式,具体是点云数据中待编码的点,在不同方向上采用不同的几何编码模式。
其中,点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式可包括:将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次相减,得到差异值;若差异值大于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大;反之,若差异值小于或等于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较小。本申请实施例对确定点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的具体实施过程不作限定,上述描述的将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次相减,只是本申请实施例给出的一种示例性确定差异值的实施过程,特在此说明。
其他实现方式中,根据点云数据中各个点云组的几何分布特征,确定几何编码模式;也就是说,以点云组为单位,根据各个点云组的几何分布特性,为相应点云组确定几何编码模式。具体地,首先,根据点云数据中各个点云组中待编码的点的真实几何信息,分析每个点云组的点云包围盒的包围盒尺寸;然后,根据每个点云组的点云包围盒的几何分布特性,为每个点云组设置编码模式。以点云数据中的任一点云组为目标点云组为例,根据目标点云组中的各待编码的点的真实几何信息,可分析到该目标点云组的点云包围盒的包围盒尺寸;若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式,即目标点云组所包含的待编码的点,在不同方向上采用不同的几何编码模式。其中,目标点云组的点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式,可参见上述相关描述,在此不作赘述。
(5)根据点云数据的距离统计特性,确定几何编码模式。其中,点云数据的距离统计特性可是指:点云数据中相邻多个点之间的几何距离之和。具体地,可统计相邻多个点之间的几何距离之和,若几何距离之和大于距离阈值,则为点云数据设置指定的几何编码模式,如该指定的几何编码模式指示采用S个前序节点对当前待编码的点进行几何预测处理。
值得注意的是,上述是本申请实施例给出的几种示例性的目标预测树的几何编码模式的确定方法,并不会对本申请实施例产生限定。
综上所述,本申请实施例支持对点云数据中各待解码的点进行几何编码处理,相比于对待编码的点进行编码而言,可以减少几何信息编码处理时的数据量,降低压缩数据的传输量,进一步提高点云数据的编码效率。并且,本申请实施例还支持多种几何编码模式,使得可以根据业务需求选取相同或不同的几何编码模式,实现对几何编码模式的优化,从而提高对点云数据的编码效率。
本申请实施例提供一种点云解码方法,该点云解码方法的具体实现流程可参见图13;该点云解码方法可以由图3所示点云编解码系统30中的解码设备302执行。如图13所示,该点云解码方法可以包括以下步骤1301-S1304:
S1301,获取待解码的点云数据。
其中,待解码的点云数据中包括多个待解码的点;待解码的点云数据可是指前述提及的编码处理后的点云数据,属于编码码流。待解码的点云数据是编码设备根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码处理得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于1;当编码设备对点云数据编码结束后,可将编码码流发送至解码设备的。在一些编解码场景中,编码设备和解码设备可是同一设备,这样编码设备对点云数据编码结束后,可将编码处理后的点云数据存储至存储空间中,这样解码设备(即编码设备)在具有解码需求时,可直接从存储空间中获取到待编码的点云数据。
S1302,对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息。
正如前述图11所示实施例中步骤S1104所示的,本申请实施例提供的编码设备支持采用多种编码规则对点云数据中的各个待编码的点进行编码处理,得到编码码流。例如,支持对点云数据的点云包围盒的包围盒信息进行编码处理,以得到编码码流。再如,支持编码点云数据中的第一个点云组的第一起始点的起始点信息(如第一起始点的真实几何信息),以得到编码码流。又如,支持编码点云数据中每个点云组的起始点的起始点信息,以得到编码码流。相应的,解码设备可以根据对点云数据的编码规则不同,采用不同的方式解析得到目标预测树的起始点的重建几何信息;下面对多种解析得到起始点的重建几何信息,的具体实施过程进行阐述,其中:
在一种实现方式中,通过解析编码处理后的包围盒信息,以实现预测点云数据的起始点的重建几何信息。具体实现中,待解码的点云数据属于编码码流,该编码码流中包括编码处理后的包围盒信息,则可以对编码处理后的包围盒信息进行解析处理,以得到点云数据的点云包围盒的各个顶点的顶点信息;再基于点云包围盒的各个顶点的顶点信息,可以确定点云数据的起始点的重建几何信息。
例如,编码处理后的包围盒信息包括:点云包围盒的一个顶点(如最左下角顶点)的顶点信息以及沿xyz方向上的尺寸信息,则对编码处理后的包围盒信息进行解析后,可直接得到点云包围盒的一个顶点的预测几何信息以及沿xyz方向上的尺寸信息。考虑到点云包围盒可以是一个长方体或立方体,那么基于一个顶点的预测几何信息和沿xyz方向上的尺寸信息,可推导出该点云包围盒的其他顶点的预测几何信息。进一步的,可根据起始点选取信息从点云包围盒的多个顶点中选取起始点,从而将被选取的顶点的预测几何信息作为起始点的重建几何信息。其中,起始点选取信息可用于指示从点云包围盒的多个顶点中选取P1个顶点作为起始点,该起始点选取信息可是以参数形式存储于解码设备中的,也可以是编码设备基于点云包围盒选取P1个起始点后生成并发送至解码设备中的。
需要说明的是,如果编码处理后的包围盒信息为点云数据中的点云组的点云包围盒的包围盒信息,则还支持对每个点云组的点云包围盒的包围盒信息进行解析,得到每个点云包围盒的各个顶点的顶点信息;再基于每个点云组的点云包围盒的各个顶点的顶点信息,确定各个点云组的单链预测树的起始点的重建几何信息。其中,各个点云组是编码设备对点云数据进行分组得到的。
在另一种实现方式中,通过解析编码处理后的目标预测树中,起始点的起始点信息,以实现预测点云数据的起始点的重建几何信息。具体实现中,待解码的点云数据属于编码码流,该编码码流中编码处理后的点云数据的目标预测树中,起始点的起始点信息;目标预测树的起始点可是指:L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,L个点云组是编码端对点云数据进行分组得到的。那么对编码处理后的目标预测树中起始点的起始点信息进行解析,可直接将解析结果作为目标预测树的起始点的重建几何信息。
其他实现方式中,通过解析点云数据中每个点云组的单链预测树中第一起始点的起始点信息,以实现预测点云数据的起始点的重建几何信息。具体实现中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的各个单链预测树中第一起始点的起始点信息,一个单链预测树对应一个点云组,点云组是编码端对点云数据进行划分得到的,点云数据的目标预测树是将各个点云组的单链预测树进行连接得到的;然后,可直接对编码处理后的L个点云组中每个点云组的单链预测树中第一起始点的起始点信息进行解析处理,将针对各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息,从而根据各个点云组的起始点的重建几何信息确定点云数据的起始点的重建几何信息。
需说明的是,上述提及的单链预测树中的第一起始点,可是指相邻上一单链预测树的终止点。由前述描述可知,点云数据的目标预测树是由L个点云组的单链预测树依次连接得到的,如第i个点云组的单链预测树的最末点(或称为终止点),与第i+1个点云组的单链预测树的最首点(或称为起始点)相连接,i=1,2,…,L,此时第i个点云组的单链预测树的终止点作为第i+1个点云组的第一起始点;因此,对编码处理后的各个点云组的单链预测树中第一起始点的起始点信息进行解析,可直接得到各个点云组的第一起始点的重建几何信息,从而有利于后续基于第一起始点的重建几何信息对相应点云组中的其他点进行几何预测。
可以理解的是,根据编码处理后的点云数据中所包含的信息的不同,解码设备可采用不同的方式预测目标预测树的起始点的重建几何信息;本申请实施例对解码设备预测起始点的重建几何信息的具体实现方式不作限定。
S1303,获取目标预测树的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息。
具体地,在已知起始点的重建几何信息的情况下,可以按照点云数据的几何解码模式,对点云数据中各点进行几何预测处理,得到各个点的预测几何信息。例如,已知点云数据的目标预测树的第一个起始点的重建几何信息,则可以基于该第一个起始点的重建几何信息,并按照几何编码模式依次推导出其它各点的预测几何信息。再如,点云数据中包括编码处理后的每个点云组的点数,那么对该编码处理后的每个点云组的点数进行解析后,可得到每个点云组的预测点数信息,则按照几何解码模式,并根据每个点云组的预测点数信息,以及已知的各个点云组的单链预测树的最末点的预测几何信息,可确定每个点云组中各点的预测几何信息,进而得到点云数据中各点的预测几何信息。对于第i个点云组而言,可以按照几何编码模式、第i个点云组的预测点数信息以及第i-1个点云组的单链预测树的最末点的预测几何信息,推导出第i个点云组中各个点的预测几何信息;以此类推,得到点云数据中各点的预测几何信息。
与编码端采用的几何编码模式类似的,解码端所采用的几何解码模式可包括但不限于:
1)不对待解码的点进行几何预测处理;
2)采用单个前序节点(parent点)对当前待解码的点进行几何预测处理;
3)采用S个前序节点(如parent点、grandparent点,或者,parent点、grandparent点以及grand-grandparent点)对当前待解码的点进行几何预测处理;假设点云数据或点云组中位于当前待解码的点之前的点数为Q,那么S的取值为:2,3,4,…,Q-1。
下面对上述给出的几种示例性的几何解码模式的具体实施过程进行介绍,其中:
1)对于目标预测树中位于第一位置的第一起始点而言,其预测几何信息可以通过前述描述的包围盒信息解析得到,或者,通过编码处理后的单链预测树的最末点的末点信息解析得到,或者,通过编码处理后的目标预测树的最首点的首点信息解析得到,因此,无需对该第一起始点进行几何预测处理。
2)采用单个前序节点对当前待解码的点进行几何预测处理;即支持基于单个前序节点(或简称为前序点)确定当前待解码的点的预测几何信息。假设点云数据中包括当前待解码的点,该当前待解码的点是指点云数据或点云组中除最首点之外的任一个待解码的点,那么根据目标预测树的几何解码模式,对当前待解码的点进行几何预测处理,得到该当前待解码的点的预测几何信息的过程,包括:获取解码顺序中位于当前待解码的点之前,且相邻的单个前序点的预测几何信息;然后,将该前序点的预测几何信息,作为当前待解码的点的预测几何信息。其中,解码顺序是指编码端对待编码的点云数据中各点进行编码处理的编码顺序;例如,编码设备对待编码的点云数据中各点进行编码处理的编码顺序为:点1→点3→点2→点5→点4,则确定解码设备对待解码的点云数据中各点进行解码处理的解码顺序为:点1→点3→点2→点5→点4。
3)采用S个前序节点对当前待解码的点进行几何预测处理,本申请实施例对S的具体取值不作限定;即本申请实施例支持基于多个前序节点共同计算当前待解码的点的预测几何信息。假设点云数据中包括当前待解码的点,该当前待解码的点是指点云数据或点云组中除最首点之外的任一个待解码的点,那么根据目标预测树的几何编码模式,对当前待解码的点进行几何预测处理,得到该当前待解码的点的预测几何信息的过程,包括:获取解码顺序中位于当前待解码的点之前,且相邻的多个前序点的预测几何信息,并对多个前序点的预测几何信息进行融合处理,得到当前待解码的点的预测几何信息。值得说明的是,本申请实施例对融合处理的具体过程不作限定,如融合处理可包括但不限于差分处理或平均值计算等。
另外,本申请实施例还支持为点云数据设置相同或不同的几何解码模式;设置几何解码模式的方式可包括但不限于:
(1)对点云数据在编码端和解码端设置统一的几何编码模式。也就是说,在编码端为点云数据设置的几何编码模式,与在解码端为编码处理后的点云数据设置的几何解码模式是相同。具体地,编码设备和解码设备中可存储有默认设置信息,该默认设置信息指示为点云数据设置默认的几何解码模式,则在获取到默认设备信息后,根据该默认设置信息为点云数据设置默认的几何解码信息。在点云数据被划分为多个点云组的情况下,若该默认设置信息指示为点云数据中的各个点云组设置相同的几何解码模式,则各个点云组均采用相同的几何解码模式;若该默认设置信息指示为点云数据中的各个点云组设置不同的几何解码模式,则各个点云组采用不同的几何解码模式。可选的,该默认设置信息可是预先设置在解码设备的存储空间中的,这样解码设备需要采用几何解码模式时,可直接从存储空间中拉取。可选的,默认设置模式还可以由编码设备发送至解码设备,即解码设备可以从待编码的点云数据(或称为编码处理后的点云数据)中获取默认设置信息,并根据该默认设置信息为目标预测树设置默认的几何编码模式,该默认设置信息是编码端和解码端协商设置的。
(2)在参数集或编码码流中解析点云数据的编码模式。具体地,在编码设备为点云数据中各个点云组设置统一的几何编码模式,且该几何解码模式的模式信息被写入至参数集或编码码流中的情况下,解码设备可从参数集或编码码流中获取模式信息,并根据该模式信息为点云数据中的各个点云组设置统一的几何解码模式。
(3)在参数集或编码码流中解析点云数据中各个点云组的编码模式。具体地,在编码设备为点云数据中各个点云组设置了不同的几何编码模式,且各个点云组的几何编码模式的模式信息被写入至参数集或编码码流的情况下,解码设备可基于接收到的各个点云组的模式信息,为各个点云组设置相应的几何解码模式。
(4)根据点云数据的几何分布特性,确定点云数据的几何编码模式。其中,点云数据的几何分布特性可包括:基于空间划分的点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸分布特性;或者,点云数据中的点云组的点云包围沿x方向、y方向以及z方向上的尺寸分布特性。
在一种实现方式中,根据点云数据的点云包围盒的几何分布特性,确定几何解码模式。具体地,首先,确定点云数据的点云包围盒的尺寸,点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸,可以是直接解析编码处理后的包围盒信息得到的;其中,解析点云包围盒的包围盒信息的具体实施过程可参见前述相关描述,在此不作赘述。若点云数据的点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大,如差异值大于差异阈值,则为点云数据在x方向、y方向及z方向上,分别设置不同的几何解码模式,即点云数据在不同方向上采用不同的几何解码模式,具体是点云数据中待解码的点,在不同方向上采用不同的几何解码模式。
其中,点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式可包括:将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次相减,得到差异值;若差异值大于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大;反之,若差异值小于或等于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较小。本申请实施例对确定点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的具体实施过程不作限定,上述描述的将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次相减,只是本申请实施例给出的一种示例性确定差异值的实施过程,特在此说明。
其他实现方式中,根据点云数据中各个点云组的几何分布特征,确定几何编码模式;也就是说,以点云组为单位,根据各个点云组的几何分布特性,为相应点云组确定几何解码模式。具体地,首先,确定点云数据的点云包围盒的尺寸,点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸,可以是直接解析编码处理后的包围盒信息得到的;其中,解析点云包围盒的包围盒信息的具体实施过程可参见前述相关描述,在此不作赘述。然后,根据每个点云组的点云包围盒的几何分布特性,为每个点云组设置几何解码模式。以点云数据中的任一点云组为目标点云组为例,若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则为目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式,即目标点云组所包含的待解码的点,在不同方向上采用不同的几何解码模式。其中,目标点云组的点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式,可参见上述相关描述,在此不作赘述。
(5)根据点云数据的距离统计特性,确定几何编码模式。其中,点云数据的距离统计特性可是指:点云数据中相邻多个点的距离之和,具体可以是相邻多个点的重建残差信息的绝对值之和。其中,每个点的重建残差信息可以是对编码码流中的编码处理后的预测残差信息解析得到的;也就是说,编码设备可以对各个点的预测残差信息进行编码处理,以便于解码设备对编码处理后的的各点的预测残差信息进行解析,得到各个点的重建残差信息。具体地,可统计相邻多个点之间的重建残差信息之和,若重建残差信息之和大于距离阈值,则为点云数据设置指定的几何编码模式,如该指定的几何编码模式指示采用S个前序节点对当前待解码的点进行几何预测处理。
值得注意的是,上述是本申请实施例给出的几种示例性几何解码模式的确定方法,并不会对本申请实施例产生限定。
S1304,基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。
具体实现中,点云数据中还包括有编码处理后的各个点的预测残差信息,任一点的预测残差信息是编码设备将该任一点的真实几何信息和预测几何信息相减得到的;那么,解码设备在接收到编码处理后的点云数据后,还对点云数据中编码处理后的各个点的预测残差信息进行解析,以得到各个点的重建残差信息。进一步的,可根据各个点的重建残差信息和预测几何信息,对点云数据中各待解码的点进行几何解码处理,以确定点云数据中各点的重建几何信息;具体是将任一点的重建残差信息与预测几何信息相加,得到该任一点的重建几何信息。
本申请实施例中,在获取到待解码的点云数据后,可对点云数据进行起始点解析,以确定点云数据的目标预测树的起始点的重建几何信息;然后,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各个待编码的点的预测几何信息;再基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的目标预测树的起始点的重建几何信息,实现快速确定起始点的重建几何信息,在一定程度上提高点云数据的解码效率。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图14,图14是本申请实施例提供的一种点云编码装置的结构示意图,该点云编码装置可以设置于本申请实施例提供的计算机设备中,计算机设备可以是上述方法实施例中提及的编码设备;在一些实施例中,该点云编码装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该点云编码装置可以用于执行图4或图11所示的方法实施例中的相应步骤。请参见图14,该点云编码装置可以包括如下单元:
获取单元1401,用于获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
处理单元1402,用于为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
处理单元1402,还用于基于每个点云组的起始点构建每个点云组的单链预测树;
处理单元1402,还用于根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理。
在一种实现方式中,点云组的起始点的确定方式,包括以下任一种或多种:
从点云组的点云包围盒的多个顶点中,选取起始点;
从点云组的一个或多个第一特殊点中选取起始点;
按照点云组中待编码的点的排列顺序,选取起始点。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的点云包围盒的多个顶点中,选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点时,具体用于:
确定目标点云组的点云包围盒;其中,目标点云组的点云包围盒包括:涵盖目标点云组中所有点的最小长方体、最小立方体或最小多面体;
从目标点云组的点云包围盒的多个顶点中,按照选取规则选择P1个起始点,P1大于等于1;
其中,选取规则包括以下至少一种:随机选择,按各顶点之间的几何距离关系选取,以及沿预设方向选取。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的多个第一特殊点中选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点,具体用于:
从目标点云组所包含的多个待编码的点中,确定一个或多个第一特殊点,第一特殊点包括以下至少一种:目标点云组的极大值点、极小值点及中位点;
从极大值点、极小值点及中位点中,选取P2个起始点,P2大于等于1。
在一种实现方式中,点云组的起始点的确定方式包括:按照点云组中待编码的点的排列顺序,选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点时,具体用于:
按照目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;第二特殊点包括以下至少一种:排列顺序中的最首点,以及,排列顺序中的最末点;
从一个或多个第二特殊点中,选取P3个起始点,P3大于等于1。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点时,具体用于:
确定目标点云组的第一起始点;其中,第一起始点的确定方式包括以下任一种:基于目标点云组的点云包围盒的多个顶点确定的,或者,从目标点云组的一个或多个第一特殊点中确定的,或者,按照目标点云组中待编码的点的排列顺序确定的;
基于第一起始点与目标点云组中各点之间的几何位置关系,从目标点云组中各点中选取起始点。
在一种实现方式中,L个点云组中包括第m个点云组和第m+1个点云组;第m个点云组已选取一个或多个起始点;处理单元1402用于为第m+1个点云组选取起始点时,具体用于:
从第m个点云组的一个或多个起始点中,按照筛选规则为第m+1个点云组选取起始点;
其中,筛选规则包括以下任一种:随机选取,或者,选取第m个点云组的一个或多个起始点中优先级最低的起始点。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,目标点云组的起始点至少包括:第一起始点和第二起始点;基于第一起始点和所述第二起始点,构建目标点云组的单链预测树,包括:
将目标点云组中除起始点外的其他点作为候选点,添加至备选点集合;
基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树;
其中,单链预测树的起始点为第一起始点,终止点为第二起始点。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;处理单元1402用于基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体用于:
基于第一起始点和所述备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和所述备选点集合,构建目标点云组的单链预测树的第二分支链路;
将优先级高的第一分支链路的最末点,与优先级低的第二分支链路的最末点进行连接,得到目标点云组的单链预测树。
在一种实现方式中,处理单元1402用于基于第一起始点和备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和备选点集合,构建目标点云组的单链预测树的第二分支链路时,具体用于:
以优先级高的所述第一起始点为搜索起点,从所述备选点集合中搜索与第一起始点之间的几何距离最近的第一候选点;将第一候选点链接至以第一起始点为最首点的第一分支链路,并基于第一候选点更新备选点集合;
以及,以优先级低的第二起始点为搜索起点,从更新后的备选点集合中搜索与第二起始点之间的几何距离最近的第二候选点;将第二候选点链接至以第二起始点为最首点的第二分支链路,并基于第二候选点再次更新更新后的备选点集合;
重复上述步骤,直至备选点集合为空集,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;处理单元1402用于基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体用于:
以第一起始点为搜索起点,从备选点集合中搜索到搜索起点和第二起始点之间的距离加权值最小的第一候选点;并将第一候选点链接至搜索起点,且根据第一候选点更新备选点集合;
以第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和第二起始点之间的距离最小的第二候选点;并将第二候选点链接至新的搜索起点,并根第一候选点更新备选点集合;
以第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集;
将最后搜索到的候选点与第二起始点连接,得到目标点云组的单链预测树。
在一种实现方式中,处理单元1402,还用于:
对点云数据包括的多个待编码的点进行排序,得到点云序列;
按照点云序列中各点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组;
其中,在划分得到第L-1个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组;
或者,在划分得到第L个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组。
在一种实现方式中,处理单元1402用于根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理时,具体用于:
按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树;
基于目标预测树对所述点云数据中的各个待编码的点进行编码处理,得到编码码流;
其中,目标预测树的起始点为L个点云组中第一个点云组的第一起始点,目标预测树的终止点为L个点云组中第L个点云组的终止点。
在一种实现方式中,L个点云组中包括相邻的第j个点云组和第j+1个点云组,j=1,2,…,L-1;处理单元1402用于按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树时,具体用于:
将第j个点云组的单链预测树的最末点,与第j+1个点云组的单链预测树的最首点相连,以得到点云数据的目标预测树。
在一种实现方式中,处理单元1402用于基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体用于:
确定点云数据的点云包围盒的包围盒信息,并对包围盒信息进行编码处理;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的包围盒信息和编码处理后的点云数据,得到编码码流。
在一种实现方式中,处理单元1402用于基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体用于:
对目标预测树中起始点的起始点信息进行编码处理;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的目标预测树中起始点的起始点信息,以及编码处理后的点云数据,得到编码码流。
在一种实现方式中,点云数据中第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1;处理单元1402用于基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体用于:
对各个单链预测树中第一起始点的起始点信息,以及各个点云组的组信息,进行编码处理;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的各个单链预测树中第一起始点的起始点信息,编码处理后的各个点云组的组信息,以及编码处理后的点云数据,得到编码码流。
在一种实现方式中,处理单元1402用于根据几何编码模式对点云数据中各待编码的点进行编码处理时,具体用于:
根据目标预测树的几何编码模式,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
基于点云数据中各点的预测几何信息和真实几何信息,确定点云数据中各点的预测残差信息;
对点云数据中各点的预测残差信息进行编码处理,得到编码处理后的点云数据。
在一种实现方式中,点云数据中包括当前待编码的点,当前待编码的点是指目标预测树中除起始点之外的任一个待编码的点;
处理单元1402用于根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到当前待编码的点的预测几何信息时,具体用于执行以下至少一种:
获取目标预测树中位于当前待编码的点之前,且相邻的单个前序点的真实几何信息,并将前序点的真实几何信息,作为当前待编码的点的预测几何信息;
或者,获取目标预测树中位于当前待编码的点之前,且相邻的多个前序点的真实几何信息,并对多个前序点的真实几何信息进行融合处理,得到当前待编码的点的预测几何信息。
在一种实现方式中,处理单元1402用于获取目标预测树的几何编码模式时,具体用于:
获取默认设置信息,并根据默认设置信息为目标预测树设置默认的几何编码模式,默认设置信息是编码端与解码端协商设置的;
或者,为点云数据中各个点云组设置相同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,为点云数据中各个点云组设置不同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,根据点云数据的几何分布特性,确定目标预测树的几何编码模式;
或者,根据点云数据的距离统计特性,确定目标预测树的几何编码模式。
在一种实现方式中,处理单元1402用于根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式时,具体用于:
根据所述点云数据中各点的真实几何信息,确定所述点云数据的点云包围盒的包围盒尺寸;
若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为目标预测树确定几何编码模式。
在一种实现方式中,处理单元1402用于根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式时,具体用于:
根据目标点云组中各点的真实几何信息,确定目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式。
根据本申请的一个实施例,图14所示的点云编码装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该点云编码装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图4及图11所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图14中所示的点云编码装置,以及来实现本申请实施例的点云编码方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请实施例中,一方面,在获取待编码的点云数据后,支持先对点云数据进行划分,得到多个点云组;再以组为单位,针对每个点云组构建单链预测树;最后基于每个点云组的单链预测树得到整个点云数据的预测树;相比于针对整个点云数据构建一棵预测树而言,针对每个点云组均构建单链预测树,在一定程度上可缩短点云数据的预测树的构建时长,提高预测树的构建效率。另一方面,为每个点云组构建单链预测树时,支持为每个点云组确定两个或两个以上的起始点,并基于两个或两个以上的起始点为点云组构建单链预测树;这种基于多起始点构建单链预测树的方式,能够实现高效的预测树结构,提高三维空间中邻近的无序点的关联关系,提升点云数据的编码效率。
请参见图15,图15是本申请实施例提供的一种点云解码装置的结构示意图,该点云解码装置可以设置于本申请实施例提供的计算机设备中,计算机设备可以是上述方法实施例中提及的编码设备;在一些实施例中,该点云解码装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该点云解码装置可以用于执行图13所示的方法实施例中的相应步骤。请参见图15,该点云解码装置可以包括如下单元:
获取单元1501,用于获取待解码的点云数据,点云数据包括多个待解码的点;待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码处理得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
处理单元1502,用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息;
处理单元1502,还用于确定点云数据的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
处理单元1502,还用于基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;处理单元1502用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息,包括:
对编码处理后的包围盒信息进行解析处理,以得到点云数据的点云包围盒的各个顶点的顶点信息;
基于点云包围盒的各个顶点的顶点信息,确定点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的点云数据的目标预测树中,起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,L个点云组是编码端对点云数据进行分组得到的;
处理单元1502用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体用于:
对编码处理后的点云数据的目标预测树中,起始点的起始点信息进行解析处理;
将解析结果作为点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的各个单链预测树中第一起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;一个单链预测树对应一个点云组,点云组是编码端对点云数据进行分组得到的;
处理单元1502用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体用于:
对编码处理后的各个单链预测树中第一起始点的起始点信息,进行解析处理;
将针对各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息。
在一种实现方式中,编码码流中包括编码处理后的每个点云组的组信息;点云组的组信息至少包括:点云组所包含的点的数量以及点云组的组标识;
处理单元1502用于根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息时,具体用于:
对编码处理后的每个点云组的组信息进行解析处理,得到每个点云组的预测组信息;
按照几何解码模式,并根据每个点云组的预测组信息,以及每个点云组的起始点的重建几何信息,确定每个点云组中各点的预测几何信息,以得到点云数据中各点的预测几何信息。
在一种实现方式中,点云数据中包括当前待解码点,当前待解码点是指点云数据中除起始点之外的待解码的点;处理单元1502用于基于几何解码模式对当前待解码点进行几何预测处理的过程,得到当前待解码点的预测几何信息的过程时,具体用于:
获取解码顺序中位于当前待解码点之前,且相邻的单个前序点的预测几何信息,并将前序点的预测几何信息,作为当前待解码点的预测几何信息;
或者,获取解码顺序中位于当前待解码点之前,且相邻的多个前序点的预测几何信息,并对多个前序点的预测几何信息进行融合处理,得到当前待解码点的预测几何信息;
其中,解码顺序是指:编码端对待编码的点云数据中各点进行编码处理的编码顺序。
在一种实现方式中,处理单元1502用于获取点云数据的几何解码模式时,具体用于以下至少一种:
获取默认设置信息,并根据默认设置信息为点云数据设置默认的几何解码模式,默认设置信息是编码端与解码端协商设置的;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据设置几何解码信息;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据中各个点云组设置不同的几何解码模式;点云组是编码端对点云数据分组得到的;
或者,根据点云数据的几何分布特性,确定点云数据的几何解码模式;
或者,根据点云数据的距离统计特性,确定点云数据的几何解码模式。
在一种实现方式中,编码码流中包括编码处理后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;处理单元1502用于根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体用于:
对编码处理的包围盒信息进行解析处理,以得到点云数据的点云包围盒的包围盒尺寸;
若点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为点云数据确定几何编码模式。
在一种实现方式中,编码码流中包括编码处理后的各个点云组的包围盒信息,任一点云组为目标点云组,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;处理单元1502用于根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体用于:
对编码处理的目标点云组的包围盒信息进行解析处理,以得到目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式。
根据本申请的一个实施例,图15所示的点云解码装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该点云解码装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图13所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图15中所示的点云解码装置,以及来实现本申请实施例的点云编码方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请实施例中,在获取到待解码的点云数据后,可对点云数据进行起始点解析,以确定点云数据的起始点的重建几何信息;然后,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各个待编码的点的预测几何信息;再基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的起始点的重建几何信息,实现快速确定起始点的重建几何信息,在一定程度上提高点云数据的解码效率。
图16示出了本申请一个示例性实施例提供的一种计算机设备的结构示意图。请参见图16,该计算机设备包括处理器1601、通信接口1602以及计算机可读存储介质1603。其中,处理器1601、通信接口1602以及计算机可读存储介质1603可通过总线或者其它方式连接。其中,通信接口1602用于接收和发送数据。计算机可读存储介质1603可以存储在计算机设备的存储器中,计算机可读存储介质1603用于存储计算机程序,计算机程序包括程序指令,处理器1601用于执行计算机可读存储介质1603存储的程序指令。处理器1601(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的处理系统。并且,在该存储空间中还存放了适于被处理器1601加载并执行的一条或多条的指令,这些指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,该计算机可读存储介质中存储有一条或多条指令;由处理器1601加载并执行计算机可读存储介质中存放的一条或多条指令,以实现上述点云编码方法实施例中的相应步骤;具体实现中,计算机可读存储介质中的一条或多条指令由处理器1601加载并执行如下步骤:
获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
基于每个点云组的起始点构建每个点云组的单链预测树;
根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理。
在一种实现方式中,点云组的起始点的确定方式,包括以下任一种或多种:
从点云组的点云包围盒的多个顶点中,选取起始点;
从点云组的一个或多个第一特殊点中选取起始点;
按照点云组中待编码的点的排列顺序,选取起始点。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的点云包围盒的多个顶点中,选取起始点;
L个点云组中的任一个点云组为目标点云组,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行为目标点云组选取起始点时,具体执行如下步骤:
确定目标点云组的点云包围盒;其中,目标点云组的点云包围盒包括:涵盖目标点云组中所有点的最小长方体、最小立方体或最小多面体;
从目标点云组的点云包围盒的多个顶点中,按照选取规则选择P1个起始点,P1大于等于1;
其中,选取规则包括以下至少一种:随机选择,按各顶点之间的几何距离关系选取,以及沿预设方向选取。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的一个或多个第一特殊点中选取起始点;
L个点云组中的任一个点云组为目标点云组,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行为目标点云组选取起始点,具体执行如下步骤:
从目标点云组所包含的多个待编码的点中,确定一个或多个第一特殊点,第一特殊点包括以下至少一种:目标点云组的极大值点、极小值点及中位点;
从极大值点、极小值点及中位点中,选取P2个起始点,P2大于等于1。
在一种实现方式中,点云组的起始点的确定方式包括:按照点云组中待编码的点的排列顺序,选取起始点;
L个点云组中的任一个点云组为目标点云组,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行为目标点云组选取起始点时,具体执行如下步骤:
按照目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;第二特殊点包括以下至少一种:排列顺序中的最首点,以及,排列顺序中的最末点;
从一个或多个第二特殊点中,选取P3个起始点,P3大于等于1。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行为目标点云组选取起始点时,具体执行如下步骤:
确定目标点云组的第一起始点;其中,第一起始点的确定方式包括以下任一种:基于目标点云组的点云包围盒的多个顶点确定的,或者,从目标点云组的一个或多个第一特殊点中确定的,或者,按照目标点云组中待编码的点的排列顺序确定的;
基于第一起始点与目标点云组中各点之间的几何位置关系,从目标点云组中各点中选取起始点。
在一种实现方式中,L个点云组中包括第m个点云组和第m+1个点云组;第m个点云组已选取一个或多个起始点;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行为第m+1个点云组选取起始点时,具体执行如下步骤:
从第m个点云组的一个或多个起始点中,按照筛选规则为第m+1个点云组选取起始点;
其中,筛选规则包括以下任一种:随机选取,或者,选取第m个点云组的一个或多个起始点中优先级最低的起始点。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,目标点云组的起始点至少包括:第一起始点和第二起始点;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于第一起始点和第二起始点,构建目标点云组的单链预测树时,具体执行如下步骤:
将目标点云组中除起始点外的其他点作为候选点,添加至备选点集合;
基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树;
其中,单链预测树的起始点为第一起始点,终止点为第二起始点。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体执行如下步骤:
基于第一起始点和所述备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和所述备选点集合,构建目标点云组的单链预测树的第二分支链路;
将优先级高的第一分支链路的最末点,与优先级低的第二分支链路的最末点进行连接,得到目标点云组的单链预测树。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于第一起始点和备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和备选点集合,构建目标点云组的单链预测树的第二分支链路时,具体执行如下步骤:
以优先级高的所述第一起始点为搜索起点,从所述备选点集合中搜索与第一起始点之间的几何距离最近的第一候选点;将第一候选点链接至以第一起始点为最首点的第一分支链路,并基于第一候选点更新备选点集合;
以及,以优先级低的第二起始点为搜索起点,从更新后的备选点集合中搜索与第二起始点之间的几何距离最近的第二候选点;将第二候选点链接至以第二起始点为最首点的第二分支链路,并基于第二候选点再次更新更新后的备选点集合;
重复上述步骤,直至备选点集合为空集,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体执行如下步骤:
以第一起始点为搜索起点,从备选点集合中搜索到搜索起点和第二起始点之间的距离加权值最小的第一候选点;并将第一候选点链接至搜索起点,且根据第一候选点更新备选点集合;
以第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和第二起始点之间的距离最小的第二候选点;并将第二候选点链接至新的搜索起点,并根第一候选点更新备选点集合;
以第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集;
将最后搜索到的候选点与第二起始点连接,得到目标点云组的单链预测树。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并还执行如下步骤:
对点云数据包括的多个待编码的点进行排序,得到点云序列;
按照点云序列中各点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组;
其中,在划分得到第L-1个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组;
或者,在划分得到第L个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码处理时,具体执行如下步骤:
按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树;
基于目标预测树对所述点云数据中的各个待编码的点进行编码处理,得到编码码流;
其中,目标预测树的起始点为L个点云组中第一个点云组的第一起始点,目标预测树的终止点为L个点云组中第L个点云组的终止点。
在一种实现方式中,L个点云组中包括相邻的第j个点云组和第j+1个点云组,j=1,2,…,L-1;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树时,具体执行如下步骤:
将第j个点云组的单链预测树的最末点,与第j+1个点云组的单链预测树的最首点相连,以得到点云数据的目标预测树。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体执行如下步骤:
确定点云数据的点云包围盒的包围盒信息,并对包围盒信息进行编码处理;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的包围盒信息和编码处理后的点云数据,得到编码码流。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体执行如下步骤:
对目标预测树中起始点的起始点信息进行编码处理;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的目标预测树中起始点的起始点信息,以及编码处理后的点云数据,得到编码码流。
在一种实现方式中,点云数据中第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行基于目标预测树对点云数据中的各个待编码的点进行编码处理,得到编码码流时,具体执行如下步骤:
对各个单链预测树中第一起始点的起始点信息,以及各个点云组的组信息,进行编码处理;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码处理;
根据编码处理后的各个单链预测树中第一起始点的起始点信息,编码处理后的各个点云组的组信息,以及编码处理后的点云数据,得到编码码流。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行根据几何编码模式对点云数据中各待编码的点进行编码处理时,具体执行如下步骤:
根据目标预测树的几何编码模式,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
基于点云数据中各点的预测几何信息和真实几何信息,确定点云数据中各点的预测残差信息;
对点云数据中各点的预测残差信息进行编码处理,得到编码处理后的点云数据。
在一种实现方式中,点云数据中包括当前待编码的点,当前待编码的点是指目标预测树中除起始点之外的任一个待编码的点;
计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到当前待编码的点的预测几何信息时,具体执行以下至少一种:
获取目标预测树中位于当前待编码的点之前,且相邻的单个前序点的真实几何信息,并将前序点的真实几何信息,作为当前待编码的点的预测几何信息;
或者,获取目标预测树中位于当前待编码的点之前,且相邻的多个前序点的真实几何信息,并对多个前序点的真实几何信息进行融合处理,得到当前待编码的点的预测几何信息。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行获取目标预测树的几何编码模式时,具体执行如下步骤:
获取默认设置信息,并根据默认设置信息为目标预测树设置默认的几何编码模式,默认设置信息是编码端与解码端协商设置的;
或者,为点云数据中各个点云组设置相同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,为点云数据中各个点云组设置不同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,根据点云数据的几何分布特性,确定目标预测树的几何编码模式;
或者,根据点云数据的距离统计特性,确定目标预测树的几何编码模式。
在一种实现方式中,处理单元用于根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式时,具体用于:
根据所述点云数据中各点的真实几何信息,确定所述点云数据的点云包围盒的包围盒尺寸;
若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为目标预测树确定几何编码模式。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式时,具体执行如下步骤:
根据目标点云组中各点的真实几何信息,确定目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式。
在另一个实施例中,该计算机可读存储介质中存储有一条或多条指令;由处理器1601加载并执行计算机可读存储介质中存放的一条或多条指令,以实现点云解码方法实施例中的相应步骤;具体实现中,计算机可读存储介质中的一条或多条指令由处理器1601加载并执行如下步骤:
获取待解码的点云数据,点云数据包括多个待解码的点;待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码处理得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息;
确定点云数据的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;计算机可读存储介质中的一条或多条指令由处理器1601加载并在执行对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体执行如下步骤:
对编码处理后的包围盒信息进行解析处理,以得到点云数据的点云包围盒的各个顶点的顶点信息;
基于点云包围盒的各个顶点的顶点信息,确定点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的点云数据的目标预测树中,起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,L个点云组是编码端对点云数据进行分组得到的;
计算机可读存储介质中的一条或多条指令由处理器1601加载并执行对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体执行如下步骤:
对编码处理后的点云数据的目标预测树中,起始点的起始点信息进行解析处理;
将解析结果作为点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码处理后的各个单链预测树中第一起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;一个单链预测树对应一个点云组,点云组是编码端对点云数据进行分组得到的;
计算机可读存储介质中的一条或多条指令由处理器1601加载并执行对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体执行如下步骤:
对编码处理后的各个单链预测树中第一起始点的起始点信息,进行解析处理;
将针对各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息。
在一种实现方式中,编码码流中包括编码处理后的每个点云组的组信息;点云组的组信息至少包括:点云组所包含的点的数量以及点云组的组标识;
计算机可读存储介质中的一条或多条指令由处理器1601加载并执行根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息时,具体执行如下步骤:
对编码处理后的每个点云组的组信息进行解析处理,得到每个点云组的预测组信息;
按照几何解码模式,并根据每个点云组的预测组信息,以及每个点云组的起始点的重建几何信息,确定每个点云组中各点的预测几何信息,以得到点云数据中各点的预测几何信息。
在一种实现方式中,点云数据中包括当前待解码点,当前待解码点是指点云数据中除起始点之外的待解码的点;计算机可读存储介质中的一条或多条指令由处理器1601加载并执行基于几何解码模式对当前待解码点进行几何预测处理的过程,得到当前待解码点的预测几何信息的过程时,具体执行如下步骤:
获取解码顺序中位于当前待解码点之前,且相邻的单个前序点的预测几何信息,并将前序点的预测几何信息,作为当前待解码点的预测几何信息;
或者,获取解码顺序中位于当前待解码点之前,且相邻的多个前序点的预测几何信息,并对多个前序点的预测几何信息进行融合处理,得到当前待解码点的预测几何信息;
其中,解码顺序是指:编码端对待编码的点云数据中各点进行编码处理的编码顺序。
在一种实现方式中,计算机可读存储介质中的一条或多条指令由处理器1601加载并执行获取点云数据的几何解码模式时,具体执行以下至少一种:
获取默认设置信息,并根据默认设置信息为点云数据设置默认的几何解码模式,默认设置信息是编码端与解码端协商设置的;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据设置几何解码信息;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据中各个点云组设置不同的几何解码模式;点云组是编码端对点云数据分组得到的;
或者,根据点云数据的几何分布特性,确定点云数据的几何解码模式;
或者,根据点云数据的距离统计特性,确定点云数据的几何解码模式。
在一种实现方式中,编码码流中包括编码处理后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;计算机可读存储介质中的一条或多条指令由处理器1601加载并执行根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体执行如下步骤:
对编码处理的包围盒信息进行解析处理,以得到点云数据的点云包围盒的包围盒尺寸;
若点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为点云数据确定几何编码模式。
在一种实现方式中,编码码流中包括编码处理后的各个点云组的包围盒信息,任一点云组为目标点云组,编码码流是编码端对待编码的点云数据中各点进行编码处理得到的;计算机可读存储介质中的一条或多条指令由处理器1601加载并执行根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体执行如下步骤:
对编码处理的目标点云组的包围盒信息进行解析处理,以得到目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式。
本申请实施例中,在获取到待解码的点云数据后,可对点云数据进行起始点解析,以确定点云数据的起始点的重建几何信息;然后,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各个待编码的点的预测几何信息;再基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码处理,以确定点云数据中各点的重建几何信息。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的起始点的重建几何信息,实现快速确定起始点的重建几何信息,在一定程度上提高点云数据的解码效率。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述点云编码方法或点云解码方法。
本领域普通技术对象可以意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术对象可以对每个特定的应用,使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程设备。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字线(DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据处理设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术对象在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (36)
1.一种点云编码方法,其特征在于,包括:
获取待编码的点云数据,所述点云数据被划分为L个点云组,L为大于等于1的整数,每个点云组包含多个待编码的点;
为所述每个点云组确定起始点,所述每个点云组的起始点的数量均大于等于1;
基于所述每个点云组的起始点构建所述每个点云组的单链预测树;
根据所述每个点云组的单链预测树,对所述点云数据中的各个待编码的点进行编码处理。
2.如权利要求1所述的方法,其特征在于,所述点云组的起始点的确定方式,包括以下任一种或多种:
从点云组的点云包围盒的多个顶点中,选取起始点;
从点云组的一个或多个第一特殊点中选取起始点;
按照点云组中待编码的点的排列顺序,选取起始点。
3.如权利要求2所述的方法,其特征在于,所述点云组的起始点的确定方式包括:从点云组的点云包围盒的多个顶点中,选取起始点;
所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
确定所述目标点云组的点云包围盒;其中,所述目标点云组的点云包围盒包括:涵盖所述目标点云组中所有点的最小长方体、最小立方体或最小多面体;
从所述目标点云组的点云包围盒的多个顶点中,按照选取规则选择P1个起始点,P1大于等于1;
其中,所述选取规则包括以下至少一种:随机选择,按各顶点之间的几何距离关系选取,以及沿预设方向选取。
4.如权利要求2所述的方法,其特征在于,所述点云组的起始点的确定方式包括:从点云组的一个或多个第一特殊点中选取起始点;
所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
从所述目标点云组所包含的多个待编码的点中,确定一个或多个第一特殊点,所述第一特殊点包括以下至少一种:所述目标点云组的极大值点、极小值点及中位点;
从所述极大值点、所述极小值点及所述中位点中,选取P2个起始点,P2大于等于1。
5.如权利要求2所述的方法,其特征在于,所述点云组的起始点的确定方式包括:按照点云组中待编码的点的排列顺序,选取起始点;
所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
按照所述目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;所述第二特殊点包括以下至少一种:排列顺序中的最首点,以及排列顺序中的最末点;
从所述一个或多个第二特殊点中,选取P3个起始点,P3大于等于1。
6.如权利要求1所述的方法,其特征在于,所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
确定所述目标点云组的第一起始点;其中,所述第一起始点的确定方式包括以下任一种:基于所述目标点云组的点云包围盒的多个顶点确定的,或者,从所述目标点云组的一个或多个第一特殊点中确定的,或者,按照所述目标点云组中待编码的点的排列顺序确定的;
基于所述第一起始点与所述目标点云组中各点之间的几何位置关系,从所述目标点云组中各点中选取起始点。
7.如权利要求1所述的方法,其特征在于,所述L个点云组中包括第m个点云组和第m+1个点云组;所述第m个点云组已选取一个或多个起始点;为所述第m+1个点云组选取起始点,包括:
从所述第m个点云组的一个或多个起始点中,按照筛选规则为所述第m+1个点云组选取起始点;
其中,所述筛选规则包括以下任一种:随机选取,或者,选取所述第m个点云组的一个或多个起始点中优先级最低的起始点。
8.如权利要求1所述的方法,其特征在于,所述L个点云组中的任一个点云组为目标点云组,所述目标点云组的起始点至少包括:第一起始点和第二起始点;基于所述第一起始点和所述第二起始点,构建所述目标点云组的单链预测树,包括:
将所述目标点云组中除起始点外的其他点作为候选点,添加至备选点集合;
基于所述备选点集合、所述第一起始点以及所述第二起始点,构建所述目标点云组的单链预测树;
其中,所述单链预测树的起始点为所述第一起始点,终止点为所述第二起始点。
9.如权利要求8所述的方法,其特征在于,所述第一起始点的优先级大于所述第二起始点的优先级;所述基于所述备选点集合、所述第一起始点以及所述第二起始点,构建所述目标点云组的单链预测树,包括:
基于所述第一起始点和所述备选点集合,构建所述目标点云组的单链预测树的第一分支链路,并基于所述第二起始点和所述备选点集合,构建所述目标点云组的单链预测树的第二分支链路;
将优先级高的所述第一分支链路的最末点,与优先级低的所述第二分支链路的最末点进行连接,得到所述目标点云组的单链预测树。
10.如权利要求9所述的方法,其特征在于,所述基于所述第一起始点和所述备选点集合,构建所述目标点云组的单链预测树的第一分支链路,并基于所述第二起始点和所述备选点集合,构建所述目标点云组的单链预测树的第二分支链路,包括:
以优先级高的所述第一起始点为搜索起点,从所述备选点集合中搜索与所述第一起始点之间的几何距离最近的第一候选点;将所述第一候选点链接至以所述第一起始点为最首点的第一分支链路,并基于所述第一候选点更新所述备选点集合;
以及,以优先级低的所述第二起始点为搜索起点,从更新后的备选点集合中搜索与所述第二起始点之间的几何距离最近的第二候选点;将所述第二候选点链接至以所述第二起始点为最首点的第二分支链路,并基于所述第二候选点再次更新所述更新后的备选点集合;
重复上述步骤,直至备选点集合为空集,得到所述目标点云组的单链预测树的第一分支链路和第二分支链路。
11.如权利要求8所述的方法,其特征在于,所述第一起始点的优先级大于所述第二起始点的优先级;所述基于所述备选点集合、所述第一起始点以及所述第二起始点,构建所述目标点云组的单链预测树,包括:
以所述第一起始点为搜索起点,从所述备选点集合中搜索到搜索起点和所述第二起始点之间的距离加权值最小的第一候选点;并将所述第一候选点链接至搜索起点,且根据所述第一候选点更新所述备选点集合;
以所述第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和所述第二起始点之间的距离最小的第二候选点;并将所述第二候选点链接至所述新的搜索起点,并根据所述第一候选点更新所述备选点集合;
以所述第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集;
将最后搜索到的候选点与所述第二起始点连接,得到所述目标点云组的单链预测树。
12.如权利要求1所述的方法,其特征在于,所述获取待编码的点云数据之后,还包括:
对所述点云数据包括的多个待编码的点进行排序,得到点云序列;
按照所述点云序列中各点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组;
其中,在划分得到第L-1个点云组时,若所述点云序列中剩余未划分的点的数量小于所述目标数量,则将所述剩余未划分的点添加至第L个点云组;
或者,在划分得到第L个点云组时,若所述点云序列中剩余未划分的点的数量小于所述目标数量,则将所述剩余未划分的点添加至所述第L个点云组。
13.如权利要求1或12所述的方法,其特征在于,所述根据所述每个点云组的单链预测树,对所述点云数据中的各个待编码的点进行编码处理,包括:
按照所述L个点云组的分组顺序,依次连接所述每个点云组的单链预测树,得到所述点云数据的目标预测树;
基于所述目标预测树对所述点云数据中的各个待编码的点进行编码处理,得到编码码流;
其中,所述目标预测树的起始点为所述L个点云组中第一个点云组的第一起始点,所述目标预测树的终止点为所述L个点云组中第L个点云组的终止点。
14.如权利要求13所述的方法,其特征在于,所述L个点云组中包括第j个点云组和第j+1个点云组,j=1,2,…,L-1;所述按照所述L个点云组的分组顺序,依次连接所述每个点云组的单链预测树,得到所述点云数据的目标预测树,包括:
将所述第j个点云组的单链预测树的最末点,与所述第j+1个点云组的单链预测树的最首点相连,以得到所述点云数据的目标预测树。
15.如权利要求13所述的方法,其特征在于,所述基于所述目标预测树对所述点云数据中的各个待编码的点进行编码处理,得到编码码流,包括:
确定所述点云数据的点云包围盒的包围盒信息,并对所述包围盒信息进行编码处理;
以及,获取所述目标预测树的几何编码模式,并根据所述几何编码模式对所述点云数据中各待编码的点进行编码处理;
根据编码处理后的包围盒信息和编码处理后的点云数据,得到编码码流。
16.如权利要求13所述的方法,其特征在于,所述基于所述目标预测树对所述点云数据中的各个待编码的点进行编码处理,得到编码码流,包括:
对所述目标预测树中起始点的起始点信息进行编码处理;所述目标预测树的起始点是指所述L个点云组中第一个点云组的第一起始点;
以及,获取所述目标预测树的几何编码模式,并根据所述几何编码模式对所述点云数据中各待编码的点进行编码处理;
根据编码处理后的所述目标预测树中起始点的起始点信息,以及编码处理后的点云数据,得到编码码流。
17.如权利要求13所述的方法,其特征在于,所述点云数据中第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1;所述基于所述目标预测树对所述点云数据中的各个待编码的点进行编码处理,得到编码码流,包括:
对各个单链预测树中第一起始点的起始点信息,以及各个点云组的组信息,进行编码处理;
以及,获取所述目标预测树的几何编码模式,并根据所述几何编码模式对所述点云数据中各待编码的点进行编码处理;
根据编码处理后的各个单链预测树中第一起始点的起始点信息,编码处理后的各个点云组的组信息,以及编码处理后的点云数据,得到编码码流。
18.如权利要求15-17任一项所述的方法,其特征在于,所述根据所述几何编码模式对所述点云数据中各待编码的点进行编码处理,包括:
根据目标预测树的几何编码模式,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息;
基于所述点云数据中各点的预测几何信息和真实几何信息,确定所述点云数据中各点的预测残差信息;
对所述点云数据中各点的预测残差信息进行编码处理,得到编码处理后的点云数据。
19.如权利要求18所述的方法,其特征在于,所述点云数据中包括当前待编码的点,所述当前待编码的点是指所述目标预测树中除起始点之外的任一个待编码的点;
根据所述目标预测树的几何编码模式,对所述当前待编码的点进行几何预测处理,得到所述当前待编码的点的预测几何信息的过程,包括以下至少一种:
获取所述目标预测树中位于所述当前待编码的点之前,且相邻的单个前序点的真实几何信息,并将所述前序点的真实几何信息,作为所述当前待编码的点的预测几何信息;
或者,获取所述目标预测树中位于所述当前待编码的点之前,且相邻的多个前序点的真实几何信息,并对所述多个前序点的真实几何信息进行融合处理,得到所述当前待编码的点的预测几何信息。
20.如权利要求15-17任一项所述的方法,其特征在于,所述获取目标预测树的几何编码模式,包括:
获取默认设置信息,并根据默认设置信息为所述目标预测树设置默认的几何编码模式,所述默认设置信息是编码端与解码端协商设置的;
或者,为所述点云数据中各个点云组设置相同的几何编码模式,所述几何编码模式的模式信息被写入参数集或编码码流;
或者,为所述点云数据中各个点云组设置不同的几何编码模式,所述几何编码模式的模式信息被写入参数集或编码码流;
或者,根据所述点云数据的几何分布特性,确定所述目标预测树的几何编码模式;
或者,根据所述点云数据的距离统计特性,确定所述目标预测树的几何编码模式。
21.如权利要求20所述的方法,其特征在于,所述根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式,包括:
根据所述点云数据中各点的真实几何信息,确定所述点云数据的点云包围盒的包围盒尺寸;
若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据所述差异值为所述目标预测树确定几何编码模式。
22.如权利要求20所述的方法,其特征在于,所述点云数据中的任一点云组为目标点云组,所述根据所述点云数据的几何分布特征确定所述目标预测树的几何编码模式,包括:
根据所述目标点云组中各点的真实几何信息,确定所述目标点云组的点云包围盒的包围盒尺寸;
若所述目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对所述目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式。
23.一种点云解码方法,其特征在于,包括:
获取待解码的点云数据,所述点云数据包括多个待解码的点;所述待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码处理得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息;
确定所述点云数据的几何解码模式,并根据所述几何解码模式和所述起始点的重建几何信息,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息;
基于所述点云数据中各点的预测几何信息,对所述点云数据中各点进行几何解码处理,以确定所述点云数据中各点的重建几何信息。
24.如权利要求23所述的方法,其特征在于,所述待解码的点云数据属于编码码流,所述编码码流中包括编码处理后的包围盒信息,所述编码码流是所述编码端对所述待编码的点云数据中各点进行编码处理得到的;所述对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息,包括:
对所述编码处理后的包围盒信息进行解析处理,以得到所述点云数据的点云包围盒的各个顶点的顶点信息;
基于所述点云包围盒的各个顶点的顶点信息,确定所述点云数据的起始点的重建几何信息。
25.如权利要求23所述的方法,其特征在于,所述待解码的点云数据属于编码码流,所述编码码流中包括编码处理后的点云数据的目标预测树中,起始点的起始点信息,所述编码码流是所述编码端对待编码的点云数据中各点进行编码处理得到的;所述目标预测树的起始点是指:L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,所述L个点云组是所述编码端对点云数据进行分组得到的;
所述对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息,包括:
对所述编码处理后的点云数据的目标预测树中,起始点的起始点信息进行解析处理;
将解析结果作为所述点云数据的起始点的重建几何信息。
26.如权利要求23所述的方法,其特征在于,所述待解码的点云数据属于编码码流,所述编码码流中包括编码处理后的各个单链预测树中第一起始点的起始点信息,所述编码码流是所述编码端对待编码的点云数据中各点进行编码处理得到的;一个单链预测树对应一个点云组,点云组是编码端对点云数据进行分组得到的;
所述对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息,包括:
对所述编码处理后的各个单链预测树中第一起始点的起始点信息,进行解析处理;
将针对所述各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息。
27.如权利要求26所述的方法,其特征在于,所述编码码流中包括编码处理后的每个点云组的组信息;点云组的组信息至少包括:点云组所包含的点的数量以及点云组的组标识;
所述根据所述几何解码模式和所述起始点的重建几何信息,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息,包括:
对所述编码处理后的每个点云组的组信息进行解析处理,得到所述每个点云组的预测组信息;
按照所述几何解码模式,并根据所述每个点云组的预测组信息,以及所述每个点云组的起始点的重建几何信息,确定所述每个点云组中各点的预测几何信息,以得到所述点云数据中各点的预测几何信息。
28.如权利要求23所述的方法,其特征在于,所述点云数据中包括当前待解码点,所述当前待解码点是指所述点云数据中除起始点之外的待解码的点;基于所述几何解码模式对所述当前待解码点进行几何预测处理的过程,得到所述当前待解码点的预测几何信息的过程,包括以下至少一种:
获取解码顺序中位于所述当前待解码点之前,且相邻的单个前序点的预测几何信息,并将所述前序点的预测几何信息,作为所述当前待解码点的预测几何信息;
或者,获取解码顺序中位于所述当前待解码点之前,且相邻的多个前序点的预测几何信息,并对所述多个前序点的预测几何信息进行融合处理,得到所述当前待解码点的预测几何信息;
其中,所述解码顺序是指:编码端对待编码的点云数据中各点进行编码处理的编码顺序。
29.如权利要求23所述的方法,其特征在于,所述获取所述点云数据的几何解码模式,包括:
获取默认设置信息,并根据所述默认设置信息为所述点云数据设置默认的几何解码模式,所述默认设置信息是编码端与解码端协商设置的;
或者,从参数集或编码码流中解析模式信息,并根据所述模式信息为所述点云数据设置几何解码信息;
或者,从参数集或编码码流中解析模式信息,并根据所述模式信息为所述点云数据中各个点云组设置不同的几何解码模式;点云组是编码端对点云数据分组得到的;
或者,根据所述点云数据的几何分布特性,确定所述点云数据的几何解码模式;
或者,根据所述点云数据的距离统计特性,确定所述点云数据的几何解码模式。
30.如权利要求29所述的方法,其特征在于,所述编码码流中包括编码处理后的包围盒信息,所述编码码流是所述编码端对待编码的点云数据中各点进行编码处理得到的;所述根据所述点云数据的几何分布特性,确定所述点云数据的几何解码模式,包括:
对所述编码处理的包围盒信息进行解析处理,以得到所述点云数据的点云包围盒的包围盒尺寸;
若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据所述差异值为所述点云数据确定几何编码模式。
31.如权利要求29所述的方法,其特征在于,所述编码码流中包括编码处理后的各个点云组的包围盒信息,任一点云组为目标点云组,所述编码码流是所述编码端对待编码的点云数据中各点进行编码处理得到的;所述根据所述点云数据的几何分布特性,确定所述点云数据的几何解码模式,包括:
对编码处理的目标点云组的包围盒信息进行解析处理,以得到所述目标点云组的点云包围盒的包围盒尺寸;
若所述目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对所述目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式。
32.一种点云编码装置,其特征在于,包括:
获取单元,用于获取待编码的点云数据,所述点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
处理单元,用于为所述每个点云组确定起始点,所述每个点云组的起始点的数量均大于等于1;
所述处理单元,还用于基于所述每个点云组的起始点构建所述每个点云组的单链预测树;
所述处理单元,还用于根据所述每个点云组的单链预测树,对所述点云数据中的各个待编码的点进行编码处理。
33.一种点云解码装置,其特征在于,包括:
获取单元,用于获取待解码的点云数据,所述点云数据包括多个待解码的点;所述待解码的点云数据是编码端根据点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码处理得到,所述每个点云组的单链预测树是基于每个点云组的起始点构建的,所述点云组的起始点的数量均大于1;
处理单元,用于对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息;
所述处理单元,还用于确定所述点云数据的几何解码模式,并根据所述几何解码模式和所述起始点的重建几何信息,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息;
所述处理单元,还用于基于所述点云数据中各点的预测几何信息,对所述点云数据中各点进行几何解码处理,以确定所述点云数据中各点的重建几何信息。
34.一种计算机设备,其特征在于,所述计算机设备包括:
处理器,适于实现计算机程序;
计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至22任一项所述的点云编码方法,或者如权利要求23至31任一项所述的点云解码方法。
35.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1至22任一项所述的点云编码方法,或者如权利要求23至31任一项所述的点云解码方法。
36.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至22任一项所述的点云编码方法,或者如权利要求23至31任一项所述的点云解码方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210690211.7A CN115102935B (zh) | 2022-06-17 | 2022-06-17 | 一种点云编码方法、点云解码方法及相关设备 |
CN202410184316.4A CN117857516A (zh) | 2022-06-17 | 2022-06-17 | 一种点云编码方法、点云解码方法及相关设备 |
PCT/CN2023/079143 WO2023241108A1 (zh) | 2022-06-17 | 2023-03-01 | 一种点云编码方法、点云解码方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210690211.7A CN115102935B (zh) | 2022-06-17 | 2022-06-17 | 一种点云编码方法、点云解码方法及相关设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410184316.4A Division CN117857516A (zh) | 2022-06-17 | 2022-06-17 | 一种点云编码方法、点云解码方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115102935A true CN115102935A (zh) | 2022-09-23 |
CN115102935B CN115102935B (zh) | 2024-02-09 |
Family
ID=83291053
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410184316.4A Pending CN117857516A (zh) | 2022-06-17 | 2022-06-17 | 一种点云编码方法、点云解码方法及相关设备 |
CN202210690211.7A Active CN115102935B (zh) | 2022-06-17 | 2022-06-17 | 一种点云编码方法、点云解码方法及相关设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410184316.4A Pending CN117857516A (zh) | 2022-06-17 | 2022-06-17 | 一种点云编码方法、点云解码方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN117857516A (zh) |
WO (1) | WO2023241108A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023241108A1 (zh) * | 2022-06-17 | 2023-12-21 | 腾讯科技(深圳)有限公司 | 一种点云编码方法、点云解码方法及相关设备 |
WO2024149141A1 (zh) * | 2023-01-11 | 2024-07-18 | 维沃移动通信有限公司 | 点云编码方法、点云解码方法、装置及通信设备 |
WO2024178687A1 (zh) * | 2023-03-01 | 2024-09-06 | 上海交通大学 | 编解码方法、码流、编码器、解码器以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019068259A1 (en) * | 2017-10-02 | 2019-04-11 | Huawei Technologies Co., Ltd. | POINT CLOUD CODING |
CN113826385A (zh) * | 2019-07-03 | 2021-12-21 | Oppo广东移动通信有限公司 | 点云编解码方法、编码器、解码器及计算机存储介质 |
CN114467119A (zh) * | 2019-10-09 | 2022-05-10 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
CN114598891A (zh) * | 2020-12-07 | 2022-06-07 | 腾讯科技(深圳)有限公司 | 点云数据编码方法、解码方法、点云数据处理方法及装置 |
CN114598892A (zh) * | 2020-12-07 | 2022-06-07 | 腾讯科技(深圳)有限公司 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230171431A1 (en) * | 2020-03-11 | 2023-06-01 | Lg Electronics Inc. | 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 |
US20230260163A1 (en) * | 2020-07-13 | 2023-08-17 | Lg Electronics Inc. | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
WO2022025552A1 (ko) * | 2020-07-31 | 2022-02-03 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
CN117857516A (zh) * | 2022-06-17 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 一种点云编码方法、点云解码方法及相关设备 |
-
2022
- 2022-06-17 CN CN202410184316.4A patent/CN117857516A/zh active Pending
- 2022-06-17 CN CN202210690211.7A patent/CN115102935B/zh active Active
-
2023
- 2023-03-01 WO PCT/CN2023/079143 patent/WO2023241108A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019068259A1 (en) * | 2017-10-02 | 2019-04-11 | Huawei Technologies Co., Ltd. | POINT CLOUD CODING |
CN113826385A (zh) * | 2019-07-03 | 2021-12-21 | Oppo广东移动通信有限公司 | 点云编解码方法、编码器、解码器及计算机存储介质 |
CN114467119A (zh) * | 2019-10-09 | 2022-05-10 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
CN114598891A (zh) * | 2020-12-07 | 2022-06-07 | 腾讯科技(深圳)有限公司 | 点云数据编码方法、解码方法、点云数据处理方法及装置 |
CN114598892A (zh) * | 2020-12-07 | 2022-06-07 | 腾讯科技(深圳)有限公司 | 点云数据编码方法、解码方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023241108A1 (zh) * | 2022-06-17 | 2023-12-21 | 腾讯科技(深圳)有限公司 | 一种点云编码方法、点云解码方法及相关设备 |
WO2024149141A1 (zh) * | 2023-01-11 | 2024-07-18 | 维沃移动通信有限公司 | 点云编码方法、点云解码方法、装置及通信设备 |
WO2024178687A1 (zh) * | 2023-03-01 | 2024-09-06 | 上海交通大学 | 编解码方法、码流、编码器、解码器以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115102935B (zh) | 2024-02-09 |
WO2023241108A1 (zh) | 2023-12-21 |
CN117857516A (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115102935B (zh) | 一种点云编码方法、点云解码方法及相关设备 | |
JP7418531B2 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
US11936846B2 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
WO2022121648A1 (zh) | 点云数据编码方法、解码方法、设备、介质及程序产品 | |
CN115379191B (zh) | 一种点云解码方法、点云编码方法及相关设备 | |
JP7448517B2 (ja) | 三次元データの符号化方法、三次元データの復号方法、三次元データの符号化装置、及び三次元データの復号装置 | |
JP7509751B2 (ja) | 三次元点のデータ符号化方法、三次元点のデータ復号方法、三次元点のデータ符号化装置、及び三次元点のデータ復号装置 | |
WO2022121650A1 (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
CN116016951A (zh) | 点云处理方法、装置、设备及存储介质 | |
CN115131449A (zh) | 点云处理方法、装置及计算机设备、存储介质 | |
CN115086658A (zh) | 点云数据的处理方法、装置、存储介质及编解码设备 | |
WO2022188582A1 (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
CN115100302A (zh) | 点云处理方法、装置、设备以及介质 | |
CN115914650A (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
US20230232042A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
WO2023023914A1 (zh) | 帧内预测、编解码方法及装置、编解码器、设备、介质 | |
WO2023155045A1 (zh) | 预测的方法和装置、编码器、解码器和编解码系统 | |
US20240087174A1 (en) | Coding and decoding point cloud attribute information | |
WO2024216479A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024216476A1 (zh) | 编解码方法、编码器、解码器、码流以及存储介质 | |
WO2024216477A1 (zh) | 编解码方法、编码器、解码器、码流以及存储介质 | |
WO2022257143A1 (zh) | 帧内预测、编解码方法及装置、编解码器、设备、介质 | |
WO2024212113A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024174086A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
WO2024212114A1 (zh) | 点云编解码方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40074430 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |