CN111699690A - 点云的处理方法和装置 - Google Patents
点云的处理方法和装置 Download PDFInfo
- Publication number
- CN111699690A CN111699690A CN201980010486.8A CN201980010486A CN111699690A CN 111699690 A CN111699690 A CN 111699690A CN 201980010486 A CN201980010486 A CN 201980010486A CN 111699690 A CN111699690 A CN 111699690A
- Authority
- CN
- China
- Prior art keywords
- sub
- block
- point cloud
- point
- coordinate
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 33
- 238000000034 method Methods 0.000 claims abstract description 111
- 238000012545 processing Methods 0.000 claims abstract description 79
- 230000006870 function Effects 0.000 claims description 47
- 238000000638 solvent extraction Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 12
- 238000005192 partition Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 51
- 238000010586 diagram Methods 0.000 description 22
- 238000013139 quantization Methods 0.000 description 12
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种点云的处理方法和装置,该方法包括:确定点云中的第一块,所述第一块包括所述点云的至少部分点云点,且所述第一块包括多个子块;根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;其中,所述相对位置关系用于判断是否将所述子块进行编码或解码。
Description
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本发明涉及编解码领域,并且更为具体地,涉及一种点云的处理方法和装置。
背景技术
点云(或称三维点云)是三维物体或场景的一种表现形式,是由空间中一组无规则分布的、表达三维物体或三维场景的空间结构和表面属性的离散点所构成。为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩。点云的编码过程包括点云中点云点的位置坐标的编码和点云点的属性信息的编码。
目前,现有的点云中位置坐标的编码方式未能充分考虑点云在空间中的分布特点,导致点云的坐标编码存在冗余。
发明内容
本发明提供一种点云的处理方法和装置,相对于现有技术,能够提高点云的编解码性能。
第一方面,提供一种点云的处理方法,包括:确定点云中的第一块,所述第一块包括所述点云的至少部分点云点,且所述第一块包括多个子块;根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;其中,所述相对位置关系用于判断是否将所述子块进行编码或解码。
第二方面,提供一种点云的处理装置,包括确定单元,用于确定点云中的第一块,所述第一块包括所述点云的至少部分点云点,且所述第一块包括多个子块;处理单元,用于根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;其中,所述相对位置关系用于判断是否将所述子块进行编码或解码。
第三方面,提供一种点云的处理装置,包括处理器和存储器,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码执行第一方面提供的方法。
第四方面,提供一种计算机存储介质,用于存储程序代码,所述程序代码用于执行第一方面提供的方法。
在本申请实施例的方案中,根据点云中点云点的位置信息以及子块的位置信息,确定子块与点云的相对位置关系,并且基于该相对位置关系再去判断是否对子块进行编码或者解码。如此,根据上述相对位置关系,考虑了点云在空间中的分布特点,从而在进行编码或者解码之前通过判断动作,不是完全对全部的子块进行编解码,而是可能对部分的子块进行编解码,进而可以避免冗余的编解码,提升点云编解码的效率和压缩性能。
附图说明
图1是根据本申请实施例的一种点云数据编码流程的示意图。
图2是笛卡尔坐标系下的基于八叉树的空间划分方式示意图。
图3是八叉树编码方式的示例图。
图4是根据本申请实施例的一种点云数据解码流程的示意图。
图5是根据本申请实施例的另一点云数据编码流程的示意图。
图6是根据本申请实施例的层次编码方案示意图。
图7是根据本申请实施例的另一点云数据解码流程的示意图。
图8是根据本申请实施例的一种点云的处理方法的示意性流程图。
图9a是根据本申请实施例的一种点云的边界的示意图。
图9b是根据本申请实施例的另一点云的边界的示意图。
图10是根据本申请实施例的另一点云的处理方法的示意性流程图。
图11是根据本申请实施例的另一点云的处理方法的示意性流程图。
图12是根据本申请实施例的一种具体的点云的处理方法的示意性流程图。
图13是根据本申请实施例的另一具体的点云的处理方法的示意性流程图。
图14是根据本申请实施例的另一具体的点云的处理方法的示意性流程图。
图15a是根据本申请实施例的一种多个子块的位置关系示意图。
图15b是根据本申请实施例的另一多个子块的位置关系示意图。
图15c是根据本申请实施例的另一多个子块的位置关系示意图。
图16是根据本申请实施例的另一具体的点云的处理方法的示意性流程图。
图17是根据本申请实施例的另一具体的点云的处理方法的示意性流程图。
图18是根据本申请实施例的另一具体的点云的处理方法的示意性流程图。
图19是根据本申请实施例的一种点云的处理装置的示意性结构图。
图20是根据本申请实施例的另一点云的处理装置的示意性结构图。
图21是根据本申请实施例的另一点云的处理装置的示意性结构图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
应理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围。
还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此并不限定。
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。本申请所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。
为了便于理解本发明实施例提供的技术方案,下文首先描述一些本发明实施例涉及的概念。
点云是在同一空间参考坐标系下表达目标空间分布和目标表面特性的离散点集合,也即,在获取物体表面每个采样点的空间坐标后,得到的采样点的集合,称之为点云(Point Cloud)。为了准确反映三维空间中的信息,通常需要海量的离散点对三维空间中的物体进行表征。下文将点云中的离散点称为点云点。
点云数据通常包括点云中多个点云点的位置坐标信息以及属性信息。点云点的位置坐标可用于描述点云点在三维空间中的位置,点云点的属性信息例如可以包括点云点的颜色信息,还可以包括点云点的反射率等其他信息。为了减少点云在存储和传输时所占用的带宽,可以对点云数据进行编码,以压缩点云的数据量。在点云数据的编码过程中,点云点的位置坐标编码与属性信息编码通常是分开进行的。
图1示出了本申请提供的一种点云数据编码流程的示意图。
如图1所示,在点云数据的编码方法100中,点云点的位置坐标编码方法包括:
S101:对点云中多个点云点的位置坐标进行量化。在一种可能的实现方式中,采用几何量化方法对点云点的位置坐标进行处理。几何量化的过程例如可以采用下述方式进行:首先,可以根据多个点云点在笛卡尔坐标系中的位置坐标,得到多个点云点在x,y,z三个方向维度上位置坐标的最大值和最小值之间的差值,以及预先确定的量化精度,对多个点云点的位置坐标进行量化,以将多个点云点的位置坐标转换为大于或等于零的整数坐标。
S102:去除重复坐标。在本申请实施例中,该步骤为可选步骤,即可以进行该步骤,去除量化后重复的点云点的位置坐标,也可以不进行该步骤,直接对量化后的点云点位置坐标进行步骤S103,例如八叉树编码。并且,应注意的是,若选择进行该步骤,则在去除重复坐标的同时,重复坐标的点云点对应的属性需要进行转换,即同步进行点云的属性编码中的步骤S104。若不进行该步骤,则不进行属性编码中的步骤S104,而是直接进行属性信息编码中的步骤S105。
S103:位置编码。该位置编码方式可以是八叉树编码。
八叉树编码是一种利用八叉树划分方式对点云点的坐标位置进行压缩的方法。完整的八叉树划分过程包括多层的八叉树划分,其中每层八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分为八个小的体积相同的子块。
例如,首先可以根据多个点云点的位置坐标(点云点的位置坐标可以是该点云点的经过几何量化和/或去除重复坐标之后的位置坐标),选择三个方向维度(x,y,z)方向上的位置坐标的最大值和最小值。然后,可以根据选定的这些量化值确定待划分的初始化空间。
以图2为例,该初始化空间通常为如图2所示的立方体盒子。该立方体盒子的边长的取值通常需要满足如下条件:该边长的取值为2的整数次幂,该边长的取值大于或等于,并最接近多个点云点在三个方向维度上的位置坐标的最大值中的最大值。也即,假设多个点云点在三个方向维度上的位置坐标的最大值为Xmax、Ymax、Zmax,且Xmax为Xmax、Ymax、Zmax中的最大值,则该边长的取值大于或等于,并最接近Xmax。
在确定初始化空间之后,接着对该初始化空间进行多层的八叉树划分。每层八叉树划分均可利用当前块的中心点的位置坐标进行空间划分,通过中心点将当前块划分为八个体积相等的子块。图2示出了初始化空间进行首次划分后得到的划分结果,从图2可以看出,初始化空间被均匀划分成8个体积相等的子块。在八叉树中,初始化空间为根节点块,这些子块为该根节点的子节点块,称为第一层子节点块。
在得到第一层子节点块之后,可以判断第一层的每个子节点块内是否存在点云点,对存在点云点的子节点块再进一步划分,直至该子节点块的边长小于阈值时停止八叉树划分,此时的子节点块称为当前八叉树的叶子节点块。该阈值例如可以是1。
在对点云中多个点云点的位置坐标进行八叉树编码时,可以按照八叉树的广度优先遍历顺序,逐层进行编码。在逐层编码时,可以逐层逐个编码每个八叉树的划分结果,即判断当前子块进行八叉树划分后得到的八个子块是否含有点云点。如果该块的某个子块含有点云点,则对该子块进行进一步划分,否则停止划分。
下面以图3为例进行说明,图3中第一层、第二层以及第三层中的每个方框均可以表示为一个子节点块或者子块,黑色方块表示该子块内含有点云点,白色方块表示该子块内不含有点云点。对初始空间(根节点块)进行第一层八叉树划分,得到如图3所示的划分结果。图3中的第一层的子节点块中的第三个子节点块为黑色方块,其余子节点块为白色方块,说明初始空间划分得到的第三个子块含有点云点,剩余七个子块不含有点云点。这样的划分结果可以用8比特(bit)来表示,如00100000。接着,可以对初始空间划分得到的第三个子块进行第二层八叉树划分。图3中的第二层的子节点中的第三个和第八个子节点块为黑色方块,表示第二层八叉树划分得到的八个子块中的第三个子块和第八个子块内含有点云点,因此,第二层八叉树划分的划分结果可以用00100001来表示。同理,第三层八叉树划分的划分结果为10010000和01000001。图3中的划分结果对应的二进制码流可以为001000000010 0001 1001 0000 0100 0001……。
后续的八叉树划分方式与前几层的八叉树划分方式相似,此处不再详述。当划分到最后八叉树的一层(最后一层可以是子块边长为1的层)时,达到了八叉树的底层,即达到了八叉树的叶子节点块,不需要再进一步划分。
然后,可以对八叉树的叶子节点块内含有的点云点的数目进行编码。例如,当某个叶子节点块内含有一个点云点时,可以直接编码一个0;当某个叶子节点块内含有n个点云点时,可以先编码一个1,接着编码数值(n-1)。
八叉树编码即是通过上述过程,将点云中的点云点量化至三维空间中的某个子块,从而实现了点云数据量的压缩。
此外,在点云数据的编码方法100中,在点云的属性信息编码方法包括:
S104:属性转换。对应于进行步骤S102去除重复坐标时,对重复坐标对应的点云点的属性数据进行合并,例如,选择重复坐标点云点中任意一个点云点的属性数据作为合并后的属性数据,或者对多个重复坐标点云点的属性数据求平均值作为合并后的属性数据。
S105:属性编码。可以对应于去除重复的点云点的位置坐标,对属性转换后的属性数据进行编码,也可以对应于直接进行位置编码,对属性数据直接进行编码。具体地,按照位置编码中点云点位置坐标编码的顺序,依次对属性信息进行属性编码。
S106:算术编码。可以先依次将经过八叉树划分得到的二进制比特流逐字节送入算术编码引擎中进行算术编码,再将表示叶子节点子块内含有的点云点的数目的二进制比特流送入算术编码引擎中进行算术编码,然后将属性编码得到的属性值送入算术编码引擎中进行算术编码,最终得到压缩编码后的码流。算术编码的具体过程可以参见相关技术,本申请实施例对此并不限定。
点云数据的解码流程与编码流程的逆过程大致相同。图4示出了本申请提供的一种解码流程的示意图。
S201:算术解码。解码端对获取输入的码流后,对码流逐比特进行算术解码。
在算术解码完成后,对解码得到语法元素进行赋值,区分得到待解码的位置坐标信息和属性信息。解码系统对待解码的位置坐标信息和待解码的属性信息分别进行解码。
S202:位置解码。可以采用八叉树解码方式进行位置坐标信息解码。例如,可以先确定点云的初始化空间(初始化空间的尺寸可以由编码端写入码流,解码端从码流中获取即可),然后对初始化空间进行多叉树划分。解码端采用与编码端一致的空间划分方式对初始化空间进行划分。例如,编解码端均可对初始化空间进行八叉树划分。通过划分的八叉树中多个子节点块及其对应的二进制比特流得到点云点待逆量化的位置坐标数据(对应于编码端经过步骤S101得到的量化的结果)。
S203:逆量化。逆量化为编码端步骤S101的逆过程,具体可以参见相关技术以及前文描述,此处不再赘述。
S204:属性解码。对待解码的属性信息解码得到包含属性信息的属性值,随后,根据编码系统使用的属性编码方法对待解码的属性值进行解码,得到属性信息。其中,解码系统可以根据码流的头信息中的指示信息确定编码系统使用的属性编码方法,也可以根据解码系统中预设的信息确定编码系统使用的属性编码方法。
最后,将上述解码得到的位置信息和属性信息合并后即可得到点云数据。
在具体的属性信息编解码过程中,可以采用不同的属性编码方式对点云的属性信息进行编解码。
在一种可能的实施方式中,采用基于层次编码方案,对属性值进行预测编码。例如,图5示出了本申请提供的一种采用层次编码方案的点云数据编码流程的示意图。
如图5所示,在点云数据的编码方法100中,点云点的位置坐标编码方法与图1中的步骤相同,在位置编码完成后,会执行步骤S107,根据位置坐标关系生成层次编码(LevelOf Detail,LOD)方案。
在实际编码过程中,可以根据LOD配置的参数来进行LOD分层,其中,后面的层会包含有前面层的点。例如,如图6所示,经过位置坐标编码后,原始点云点序列为P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10。经过LOD分层划分后,在LOD0(层0),包含的点云点为P0,P5,P4,P2;在LOD1(层1),包含的点云点为P0,P5,P4,P2,P1,P6,P3;以及在LOD2(层2)包含的点云点为P0,P5,P4,P2,P1,P6,P3,P9,P8,P7。
具体地,在分层的过程中,先选择点云数据中的第一个点云点,将其选择为LOD0层的第一个点云点,接着开始依次遍历每一个点云点,计算当前点云点和当前层里面已经含有的所有点云点之间,在当前坐标系下的距离,当前坐标系例如可以是笛卡尔坐标系。如果最小的距离是大于当前LOD层设置的距离阈值(dist2)时,这个点云点就会被划入到当前LOD层。并且在这个过程中,会将当前点云点与当前层中所有点云点计算得到的距离由小到大依次排序,选择序列中的前N个距离对应的点云点作为当前点云点的参考点,该N个参考点可以用于对当前点云点进行属性信息的预测编码,其中,N为系统预设值。应当理解的是,当前点云点被划入当前LOD层后,由于下一LOD层包含前一LOD层中所有的点云点,因此可以不需要判断当前点云点是否属于下一个LOD层。此外,还应当理解的是,对LOD0层中最初的几个点云点进行预测编码时,由于LOD0层中的点云点数量少,因此,LDO0层中最初几个点云点对应的参考点的数量可能小于N。
S108:预测编码。对于每一个点云点,根据LOD层次编码方案得到的参考点,对当前点云点进行预测编码,计算出预测值与当前点云点属性值的残差。
具体地,对每个点云点,可以按照1个参考点,2个参考点一直到N个参考点来分别求出权重分配方案。权重分配方案共有N种,其中,1个参考点时就是距离最小的1个点云点作为参考点,这时它的权重即为1;2个参考点时就是选择距离最小和次小的2个点云点作为参考点,这时会根据这两个参考点和待预测的当前点云点之间的距离来分配权重,具体权重为与距离呈反比,距离越远权重越小,并保证权重和为1;直到N个参考点时,就是选择N个参考点,权重分配方法与前面相同。
在分配完权重后,可以选择参考点数,需要注意的是,一个点云点最多可以选择N个参考点进行预测。具体会遍历参考点数量最大为1个、2个直至N个时,不同数量的参考点下的编码代价,选择编码代价最小的参考点数量进行预测编码。具体的编码代价为:预测值与实际属性值的残差经过量化后的值的和,其中,预测值为至少一个参考点的权重乘以对应位置的属性值之和。
S109:残差量化。根据预测值与待编码的点云点的属性值的差值计算残差,对残差进行量化。然后再将量化后的残差值送入算术编码引擎中进行编码完成对属性信息的编码。
图7示出了图5中编码流程对应的点云数据的解码流程。
同样的,图7中的解码流程与编码流程的逆过程大致相同。其中,位置坐标解码的过程与图4中位置坐标解码的步骤相同。在属性解码的过程中,对位置解码得到层次编码方案,结合层次编码方案中LOD分层信息,以及残差逆量化得到的残差值,进行属性值的逆预测,还原得到点云数据的属性信息。
在另一种可能的实施方式中,在属性信息的编码过程中,不生成层次编码方案,即,无需多次遍历全部或部分点云数据,从而减小了编码过程中的时间开销,而是直接对属性信息进行二值化处理,将二值化后的二进制码流送入算术编码引擎进行算术编码进行数据压缩。所述二值化化处理可以采用定长码编码方式、指数哥伦布编码方式、截断莱斯码编码方式等编码方式中的任意一种对属性值进行二值化编码。
同样的,在解码过程中,直接对算术解码后的属性值进行与编码端对应的解码方式直接解码得到点云数据的属性信息。
在该属性编码方式下,具体的编码解码可以流程可以参见图1和图4的编解码流程,且在对应于图1中步骤S105属性编码时,采用定长码或其它二值化编码方法对属性值进行编码,在对应于图4中步骤S204时,采用定长码或者其它与编码端对应的解码方法直接对属性值进行解码。
上文结合图1至图7,对相关技术的编码过程进行了介绍。从上文描述可以看出,在对点云中多个点云点的位置坐标进行八叉树编码时,对每个子节点块是否存在点云点均进行编码标识,而现实中,点云的边界大多为不规则形状或者非对称形状,根节点块为完全包括点云的边界的对称块空间,因此,根节点中必然包括存在于点云的边界之外的冗余空间,对该冗余空间中的块进行划分会存在一些划分之后的子块完全落在点云的边界之外的情况,在此情况下,会额外编码冗余的划分比特,影响编解码性能。
下面结合图8至图11,对本申请实施例提供的点云的处理方法进行详细描述。图8至图11中的方法可以由编码装置或者解码装置执行,当该处理方法由编码装置执行时,该处理方法也可以称为编码方法,当该处理方法由解码装置执行时,该处理方法也可以称为解码方法。
并且,更为具体地,本申请实施例主要涉及点云中多个点云点的位置坐标的编解码过程。因此,下文主要针对点云中多个点云点的位置坐标的编解码过程进行描述,点云的属性信息的编解码过程可以参见上述相关描述或者相关技术,本申请实施例对此并不限定。
如图8所示,一种点云的处理方法300包括:
S310:确定点云中的第一块,所述第一块包括所述点云的至少部分点云点,且所述第一块包括多个子块;
所述第一块可以为一种立方体的三维空间,或者其它形状的三维空间,例如球体或者圆柱体的三维空间,点云中的全部点云点或者至少部分点云点位于第一块所在的三维空间之内。
在一种可能的实施方式中,在编码过程中,确定点云中的第一块可以发生在点云点的位置坐标量化和/或去除重复坐标之后。在解码过程中,确定点云中的第一块可以发生在算术解码之后。
可选地,所述第一块可以为图2所示的立方体盒子,其边长大于或等于,并最接近多个点云点在三个方向维度上的位置坐标的最大值中的最大值,且取值为2的整数次幂。在此情况下,所述第一块包括点云中所有的点云点,此时可以将所述第一块称为初始化空间。当然,初始化空间的获取方式包括但不限于上述说明的内容。
可选地,所述第一块还可以为初始化空间划分得到的,且包含至少一个点云点的任意一个子块。
进一步地,所述第一块不为八叉树中的叶子节点块,所述第一块可以为图3中第二层子节点块、第三层子节点块或者更深层次的子节点块中的任意一个黑色方块。
在本申请实施例中,所述第一块包括多个子块,所述多个子块可以是对第一块划分得到的多个互不重叠的子块空间,也可以是通过在第一块的块空间中选择得到的多个子块空间。
可选地,所述划分方式可以为均匀划分的方式,也可以为非均匀划分的方式。例如,在均匀划分的方式中,可以将第一块划分为大小相同的子块,例如,划分为2个、4个或者8个大小相同的子块,可选地,子块也可以为立方体、球体或者柱体等。在非均匀划分划分的方式中,划分得到的多个子块为大小不同的子块。可选地,在均匀划分方式和非均匀划分方式下,得到的多个子块可以为规则形态,也可以为不规则形态。在本申请实施例中,具体的划分方式不做限定,划分的多个子块的形状大小也均不做限定,能够形成多个子块即可。
在一种优选的实施方式中,划分方式为八叉树划分方式,第一块的边长相等,且为2的整次幂,将第一块划分为8个大小相同的立方体子块,且每个子块的边长为第一块的一半。
应理解,在本申请实施例中,划分方式包括但不限于八叉树划分,可以为以下中的一种或多种的组合:八叉树划分、四叉树划分以及二叉树划分。
S320:根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;其中,所述相对位置关系用于判断是否将所述子块进行编码或解码。
具体地,在本申请实施例中,所述点云中的第一点云点可以为点云中的一个或者多个点云点,所述第一点云点的位置信息可以用于判断子块与整个点云之间的位置关系。可选地,该第一点云点可以包括位于点云的边界上的一个或多个点云点。
此外,至少一个所述子块为第一块的多个子块中的至少一个子块,即,当第一块划分为多个子块时,可以只获取多个子块中的一个子块或者部分子块的位置信息,且对获取了位置信息的子块进行与点云的相对位置关系的判断,根据判断得到的相对位置关系,可以对获取了位置信息的子块确定是否进行编码或者解码,也可以对没有获取相对位置关系的子块直接进行编码或者解码。也即,在利用相对位置关系来判断是否将子块进行编码或解码时,该子块可以为获取了相对位置关系的子块,也可以为第一块包括的多个子块中的任意一个子块。
例如,第一块划分得到8个子块,根据8个子块中的7个子块的位置信息和第一点云点的位置信息,确定该7个子块与点云的相对位置关系,根据相对位置关系对该7个子块判断是否进行编码或者解码,对剩余的一个子块直接进行编码或者解码。
当然,也可以获取全部多个子块的位置信息,对全部的多个子块进行与点云的相对位置关系的判断,因此,根据判断得到的相对位置关系,确定是否对全部的多个子块进行编码或者解码。
具体地,第一块、多个子块以及点云位于同一个参考坐标系内,第一点云点的位置信息和至少一个子块的位置信息为在同一个参考坐标系内的位置信息。
可选地,本申请实施例对第一块、多个子块以及点云所处的参考坐标系不做具体限定,可以是笛卡尔坐标系,也可以是球坐标系或者是柱坐标系。
应理解,在本申请实施例中,位置信息包括但不限于参考坐标系内的位置坐标或者位置坐标范围,本申请实施例对此不做限定。
可选地,点云中的点云点以及至少一个子块的位置信息包括量化后的位置坐标或者位置坐标范围,其中,量化后的位置坐标的取值均为大于等于0的整数。
在本申请实施例的方案中,根据点云中点云点的位置信息以及子块的位置信息,确定子块与点云的相对位置关系,并且基于该相对位置关系再去判断是否对子块进行编码或者解码。如此,根据上述相对位置关系,考虑了点云在空间中的分布特点,从而在进行编码或者解码之前通过判断动作,不是完全对全部的子块进行编解码,而是可能对部分的子块进行编解码,进而可以避免冗余的编解码,提升点云编解码的效率和压缩性能。
可选地,所述相对位置关系包括:所述子块与所述点云的边界的位置关系。当然,子块与点云的相对位置关系除了子块与点云的边界的位置关系之外,还可以有其它相对位置关系,具体可以根据需要设定,例如,子块与点云的中心点之间的位置关系。
其中,所述位置关系可以为子块完全位于点云的边界之外,或者子块至少部分位于点云的边界之内,或者子块完全位于点云的边界之内。
具体地,在一种可能的实施方式中,所述点云的边界可以是指点云最外围的多个点云点形成的三维表面,点云中所有的点云点均位于该表面内或者该表面上。所述点云用于表征目标物体的三维形态,则点云的边界可以理解为目标物体的外表面,其可以由曲面组成,也可以为平面组成,或者由曲面和平面共同组成。例如,如图9a所示,所述点云用于表征一个杯子,所述点云的边界为可以杯子的外表面形成的不规则曲面。
此外,在另一种可能的实施方式中,所述点云的边界还可以理解为点云中的点云点在参考坐标系的三个方向维度上的极值形成的三维空间的外表面。
若参考坐标系为笛卡尔坐标系,在此方式下,所述点云的边界为一个立方体或者长方体的表面,而不是点云表征的目标物体的表面。同样的,点云中所有的点云点均位于该表面内或者该表面上。例如,如图9b所示,点云位于笛卡尔坐标系中,点云中的点云点在三个方向维度上的极值分别为A,B,C,则点云的边界为边长分别为A,B,C的长方体盒子。
应当注意的是,当点云的边界为三个方向维度上的极值形成的规则的三维空间的外表面时,若子块至少部分位于规则的三维空间内,但完全位于点云真实的外表面之外时,也将子块与点云的关系定义为至少部分位于点云的边界之内。
在本申请实施例中,确定第一块的多个子块中至少一个子块与点云的相对位置关系后,可以通过相对位置关系可以判断相对位置关系对应的至少一个子块是否位于点云的边界之外,进一步的,可以针对位于点云的边界处的子块是否编码或解码进行判断,因此,可能进一步地减少位于点云的边界处的子块编解码冗余。
可以理解,当判断至少一个子块与点云的相对位置关系为:位于点云的边界之外或者至少部分位于点云的边界之内时,基于该相对位置对子块进行编解码的判断,几乎不会遗漏点云中任何一个点云点的编解码,可以为一种无损的编解码方式,编解码的图像质量高。当判断至少一个子块与点云的相对位置关系为:位于点云的边界之外或完全位于点云的边界之内时,基于该相对位置对子块进行编解码的判断,可能会遗漏点云中的一些点云点的编解码,为一种有损的编解码方式,编解码效率高,这对于一些可以忽略部分点云点的场景,具有较高的适用性。
图10示出了另一种点云的处理方法300的示意图。该点云的处理方法300还包括:
S330:若至少一个所述子块中的第一子块位于所述点云的边界之外,则不对所述第一子块进行编码或解码,且对至少一个所述子块中除第一子块外的第二子块进行编码或解码。
具体地,将第一块的多个子块中的至少一个子块与点云进行相对位置关系判断,判断其是否位于点云的边界之外,其中,判断得到位于点云的边界之外的子块为第一子块,至少一个子块中除第一子块之外的子块则为第二子块,所述第二子块为至少部分位于点云的边界之内的子块,所述第一子块和第二子块的数量均可以为一个或者多个。由于判断得到第一子块位于点云的边界之外,因此,第一子块中不存在点云点,不需要对第一子块进行编解码,只需要对除第一子块之外的其它第二子块进行编解码。
在现有的点云编码过程中,需要对子块中是否存在点云点进行二值化处理,并用一个比特位标识当前子块中是否存在点云点,且对所有子块进行判断并标识,若子块中存在点云点,则对子块进行进一步划分,且标识为“1”,若子块中不存在点云点,则不对子块进行划分,且标识为“0”;然后将所有子块的二值化比特码流送入算术编码引擎中进行算术编码。其中,“1”、“0”即为标志位,“1”表示对应的子块包括点云点,且可以继续划分,“0”表示对应的子块不包括点云点,且不需要继续划分。
在本申请实施例中,当第一子块位于点云的边界之外时,第一子块不包括点云点,不对第一子块进行编码可以包括:不对第一子块是否包括点云点,或是否划分进行标志位的标识;或者,对第一子块是否包括点云点,或是否划分进行标志位的标识,但不会将该第一子块对应的标志位,也即对应的比特流,送入算术编码引擎中进行算术编码。
可选地,对第一子块不编码第一标志位,所述第一标志位用于指示所述第一子块是否包括点云点,和/或是否划分第一子块。
可选地,所述第一标志位可以为任意编码标志位,例如数字或者字母。可选地,第一标志位为二值化处理得到的比特流,可以是1位或者多位比特,例如,第一标志位是1位比特,可以为“1”或者“0”。当第一标志位为“1”时,用于指示所述第一子块包括点云点,和/或划分第一子块,当第一标志位为“0”时,用于指示所述第一子块不包括点云点,和/或不划分第一子块。
在不对第一子块进行标识编码的基础上,对第二子块进行编码包括:对第二子块是否存在点云点,或者,是否划分进行标志位的标识,进一步的,当第二子块为叶子节点块时,还可以对第二子块中的点云数量进行编码。
可选地,对第二子块编码第二标志位,所述第二标志位用于指示所述第二子块包括所述点云中的点云点;或者,
对第二子块编码第三标志位,所述第三标志位用于指示所述第二子块不包括所述点云中的点云点。
可选地,所述第二标志位和第三标志位可以为任意不同的两个编码标志位。可选地,第二标志位和第三标志也为二值化处理得到的比特流,可以是1位或者多位比特,例如,第二标志位和第三标志位均是1位比特,可选地,第二标志位为“1”,第三标志位为“0”,或者,第二标志位为“0”,第三标志位为“1”。
在点云解码过程中,对子块解码时,根据码流中的标志位判断子块是否包括点云点,当包括点云点时,对子块进行进一步划分。因此,当第一子块位于点云的边界之外时,第一子块不包括点云点,不对第一子块进行解码可以包括:不对第一子块的比特流进行解码,或者第一子块的码流中不包括第一子块的比特流。
可选地,对所述第一子块不解码第一标志位,或者第一子块的码流中不包括第一标志位的比特流,与编码过程相对应,所述第一标志位用于指示所述第一子块是否包括所述点云中的点云点,或是否划分所述第一子块。
在不对第一子块进行标识解码的基础上,对第二子块进行解码包括:对第二子块的第二标志位或者第三标志位进行解码,进一步的,当第二子块为叶子节点块时,还可以对第二子块的点云数量进行解码。与编码过程相对应,所述第二标志位用于指示所述第二子块包括所述点云中的点云点,所述第三标志位用于指示所述第二子块不包括所述点云中的点云点。
当子块的编码标志位均为二进制(二值化)处理后的比特码流时,一个子块可以对应1个或0个比特位,对第一块中的多个子块进行标识编码得到的比特码流的比特位数与多个子块的数量相关。当一个子块对应1个比特位或0个比特位时,对N个子块进行编码得到的码流的比特位数不大于N,因此,解码端解码的码流的比特位数同样不大于N。
例如,第一块划分得到8个子块,获取8个子块的位置信息,且确定该8个子块中第1、3、4、7个子块为第一子块,位于点云的边界之外,则不对第1、3、4、7个子块编码,而对第2、5、6、8个子块判断是否包括点云点,其中,第2个和第8个子块包括点云点,该子块的标志位为“1”,第5个和第6个子块不包括点云点,该子块的标志位为“0”。因此,第一块中8个子块进行二值化处理后的比特码流为1001。
相应的,若第一块二值化后的比特码流为1001时,先判断8个子块是否位于点云的边界之外,判断得到第1、3、4、7个子块为第一子块,位于点云的边界之外时,则1001对应于第2、5、6、8个子块,则说明第2个和第8个子块包括点云点,第5个和第6个子块不包括点云点。
图11还示出了另一种点云的处理方法300的示意图。该点云的处理方法300还包括:
S340:若至少一个所述子块中的第二子块至少部分位于所述点云的边界之内,则对所述第二子块进行编码或解码,且不对至少一个所述子块中除所述第二子块外的第一子块进行编码或解码。
具体地,将第一块的多个子块中的至少一个子块与点云进行相对位置关系判断,判断其是否至少部分位于点云的边界之内,其中,判断得到至少部分位于点云的边界之内的子块为第二子块,至少一个子块中除第二子块之外的子块则为第一子块,所述第一子块为位于点云的边界之外的子块,所述第一子块和第二子块的数量均可以为一个或者多个。由于判断得到第二子块至少部分位于点云的边界之内,第一子块位于点云的边界之外,因此,第一子块中不包括点云点,而第二子块中可能包括点云点,需要对第二子块进行编解码,而不对除第二子块之外的其它第一子块进行编解码。
可选地,在本申请实施例中,第一子块和第二子块与图10步骤S330中的第一子块和第二子块相同。第一子块和第二子块及其编解码过程的相关描述可以参考图10中步骤S330中的第一子块和第二子块及其编解码过程,此处不再赘述。
应理解,图10的点云的处理方法300中,步骤S320可以确定至少一个子块是否位于点云的边界之外,得到至少一个子块中的位于点云的边界之外的第一子块,在该步骤中,采用的是确定子块是否位于点云边界之外的判断方法,通过直接得到位于点云的边界之外的第一子块,排除至少一个子块中的第一子块间接得到至少部分位于点云的边界之内的第二子块。因此,图10中的步骤S330为不对第一子块进行编码或者解码,对至少一个子块中除第一子块外的第二子块进行编码或解码。
而图11的点云的处理方法300中,步骤S320可以确定至少一个子块是否至少部分位于点云的边界之内,得到至少一个子块中的至少部分位于点云的边界之内的第二子块,在该步骤中,采用的是确定子块是否至少部分位于点云边界之内的判断方法,通过直接得到至少部分位于点云的边界之内的第二子块,排除至少一个子块中的第二子块间接得到位于点云的边界之外的第一子块。因此,图10中的步骤S330为对第二子块进行编码或者解码,对至少一个子块中除第二子块外的第一子块进行编码或解码。
还应理解,在本申请实施例中,步骤S320还可以同时确定得到至少一个子块中的位于点云的边界之外的第一子块以及至少部分位于点云的边界之内的第二子块,在该步骤中,采用的是同时确定子块是否至少部分位于点云边界之内或者位于点云边界之外的判断方法。因此,步骤S330还可以为对第二子块进行编码或者解码,且不对第一子块进行编码或解码。
以上结合图8至图11说明了本申请实施例的主要技术方案,根据点云中第一点云点的位置信息以及至少一个子块的位置信息判断至少一个子块与点云的相对位置关系,具体地,可以判断至少一个子块是否位于点云的边界之外或者至少部分位于点云的边界之内,进一步地,对位于点云之外的第一子块不进行编码,对至少位于点云之内的第二子块进行编码,从而防止对位于点云的边界之外的子块进行标识编码,减少编码冗余,提高编解码效率和压缩性能。
下面结合图12至图19,详细说明上述步骤S320中,如何根据第一点云点的位置信息以及至少一个子块的位置信息判断至少一个子块与点云的相对位置关系。
可选地,至少一个子块的位置信息包括:至少一个子块在参考坐标系中的坐标信息,和/或,至少一个所述子块中的相邻子块的交叉点在参考坐标系中的坐标信息。
具体地,子块在参考坐标系中的坐标信息包括但不限于子块的位置坐标或者位置坐标范围。交叉点在参考坐标系中的坐标信息可以包括交叉点的位置坐标。
可选地,子块的位置坐标可以包括位于子块内或者子块表面的点的位置坐标,特别地,当子块为立方体或者长方体时,子块的位置坐标可以包括子块8个顶点中一个或多个顶点的位置坐标。
可选地,子块的位置坐标范围为该子块在三个方向维度中任意一个或多个方向维度上的位置坐标范围。
可选地,在一种可能的实施方式中,所述第一点云点为所述点云中在所述参考坐标系的至少一个方向维度上具有坐标极值的点云点。
具体地,以参考坐标系为笛卡尔坐标系为例,第一点云点可以为在x,y,z三个方向维度上任意一个方向维度上具有坐标极值的点云点,也可以为在三个方向维度上任意两个或者三个方向维度上具有坐标极值的点云点。在此情况下,所述第一点云点的位置信息为第一点云点的在参考坐标系中的位置坐标,为了方便描述,在本申请实施例中,将在x方向维度上具有坐标极值的点云点称为第一X点云点,在y方向维度上具有坐标极值的点云点称为第一Y点云点,在x方向和y方向维度上均具有坐标极值的点云点称为第一XY点云点,其它的具有坐标极值的点云点表达方式类似,此处不再赘述。
在该实施方式中,通过比较至少一个子块与至少一个第一点云点的位置坐标判断至少一个子块与点云的相对位置关系。具体地,有多种比较方式可以得到至少一个子块与点云的相对位置关系。
方式一
如图12所示,上述步骤S320可以包括:
S321:将点云中第一点云点在至少一个所述方向维度上的第一坐标极值,分别与至少一个所述子块在对应方向维度上的第二坐标极值比较;
S322:根据所述比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块。
具体地,可以将第一X点云点在x方向维度上的第一坐标极值与至少一个子块中的每个子块在x方向维度上的第二坐标极值比较,确定每个子块是否位于点云的边界之外。其中,第一坐标极值为依据第一点云点在参考坐标系下的位置坐标确定,第二坐标极值为依据子块在参考坐标系下的位置坐标确定。
当第一坐标极值为最大值,第二坐标极值为最小值时,若第一X点云点在x方向维度上的最大值小于子块在x方向维度上的最小值时,可以确定该子块为位于点云的边界之外的第一子块。
或者当第一坐标极值为最小值,第二坐标极值为最大值时,若第一X点云点在x方向维度上的最小值大于子块在x方向维度上的最大值时,也可以确定该子块位于点云的边界之外的第一子块。
应理解,第一X点云点、第一Y点云点、第一Z点云点中任意一个点云点在对应的维度上采用上述方式进行比较,均可以确定至少一个子块中位于点云的边界之外的第一子块。
此外,若第一XY点云点,第一XZ点云点,第一YZ点云点以及第一XYZ点云点中任意一个点云点在对应的维度上采用上述方式进行比较,也可以确定至少一个子块中位于点云的边界之外的第一子块。
还应理解,在本申请实施例中,第一点云点可以包括第一X点云点、第一Y点云点、第一Z点云点、第一XY点云点,第一XZ点云点,第一YZ点云点以及第一XYZ点云点中的一个或者多个,分别与至少一个子块中每个子块在对应方向维度上进行比较,确定位于点云的边界之外的第一子块。
方式二
如图13所示,上述步骤S320还可以包括:
S321:将第一点云点在至少一个所述方向维度上的第一坐标极值,分别与至少一个所述子块在对应方向维度上的第二坐标极值比较;
S323:根据所述比较结果,确定至少一个所述子块中至少部分位于所述点云的边界之内的第二子块。
具体地,可以分别将第一X点云点、第一Y点云点、第一Z点云点在对应方向维度上的第一坐标极值与至少一个子块中的每个子块在对应方向维度上的第二坐标极值比较,确定每个子块是否至少部分位于点云的边界之内。其中,第一坐标极值为依据第一点云点在参考坐标系下的位置坐标确定,第二坐标极值为依据子块在参考坐标系下的位置坐标确定。
当第一X点云点在x方向维度上的最大值大于等于子块在x方向维度上的最小值,且第一X点云点在x方向维度上的最小值小于等于子块在x方向维度上的最大值;且第一Y点云点在y方向维度上的最大值大于等于子块在y方向维度上的最小值,第一Y点云点在y方向维度上的最小值小于等于子块在y方向维度上的最大值;且第一Z点云点在z方向维度上的最大值大于等于子块在z方向维度上的最小值时,且第一Z点云点在z方向维度上的最小值小于等于子块在z方向维度上的最大值时,可以认为子块满足上述第一条件,则可以确定该子块为至少部分位于点云的边界之内的第二子块。
即,若不能同时满足上述第一条件时,可以确定该子块为位于点云的边界之外的第一子块;若可以同时满足上述第一条件,则确定该子块为至少部分位于点云的边界之内的第二子块。
此外,也可以采用第一XY点云点与第一Z点云点,或者第一XZ点云点与第一Y点云点,或者第一YZ点云点与第一X点云点,或者第一XYZ点云点中任意一组在对应的维度上采用上述方式进行比较,也可以确定至少部分位于点云的边界之内的第二子块。
应理解,分别将第一X点云点、第一Y点云点、第一Z点云点在对应方向维度上的第一坐标极值与至少一个子块中的每个子块在对应方向维度上的第二坐标极值比较时,除了可以确定每个子块是否至少部分位于点云的边界之内,还可以同时确定每个子块是否位于点云的边界之外。
方式三
如图14所示,上述步骤S320还可以包括:
S324:将所述第一点云点在至少一个所述方向维度上的第一坐标极值,与所述交叉点在对应方向维度上的坐标值进行比较;
S325:根据比较结果,确定至少一个子块中位于所述点云的边界之外的第一子块,或者至少部分位于所述点云的边界之内的第二子块。
具体地,所述交叉点的位置坐标属于交叉的相邻子块中每个子块的位置坐标。其中,相邻的子块可以相交于一个点、一条线或者一个面。
可选地,当相邻的多个子块相交于一个面或者一条线时,交叉点可以为相交面的顶点或者相交线上的端点。例如,如图15a和图15b所示,两个子块相交于一个面,或者四个子块相交于一条线时,本申请实施例中的交叉点可以为图中黑色圆点所示。
可选地,当相邻的多个子块相交于一点时,该相交点即为交叉点。例如,如图15c所示,子块1和子块8相交于图中黑色圆点,该黑色圆点即为子块1和子块8的交叉点,且进一步的,该黑色圆点还为图中子块1、2、3、4、5、6、7、8八个子块的交叉点。
应当理解,在至少一个子块中存在两个相邻子块时,交叉点可以是指两个相邻子块之间相交的点,存在三个或以上的相邻子块时,交叉点可以是指三个或以上的相邻子块之间均相交的点(该点属于每一个相邻子块),也可以是指三个或以上的相邻子块中的几个子块之间相交的点。图15a、15b、15c仅为举例说明。将该交叉点的坐标值与第一XYZ点云点的坐标值进行比较,判断至少一个子块是否位于点云的边界之外或者至少部分为与点云的边界之内。
例如,交叉点的位置坐标在x方向维度上的坐标值为a,在y方向维度上的坐标值为b,在z方向维度上的坐标值为c,当第一XYZ点云点的在X,Y,z方向维度上的具有最大值,坐标值分为u,v,w时,判断交叉点位置坐标在每个子块中的位置,并确定a,b,c是否为当前子块在三个方向维度上的最小值。若a为当前子块在x方向维度上的最小值,且a大于u时,可以确定当前子块位于点云的边界外,同样的,若b为当前子块在y方向维度上的最小值,且b大于v,或者c为当前子块在z方向维度上的最小值,且c大于w时,也可确定当前子块位于点云的边界外。如此,通过比较a与u,b与v,c与w之间的至少一个的关系,可以同时确定第一块中的多个子块是否位于点云的边界外。
具体地,以图15c笛卡尔坐标系中第一块划分为8个子块为例。坐标系方向如图所示,8个子块的坐标范围如下:
子块1的坐标范围为x1≤a,y1≤b,z1≥c,在x方向上的最大值为a,在y方向上的最大值为b,在z方向上的最小值为c;
子块2的坐标范围为x2≥a,y2≤b,z2≥c,在x方向上的最小值为a,在y方向上的最大值为b,在z方向上的最小值为c;
子块3的坐标范围为x3≥a,y3≥b,z3≥c,在x方向上的最小值为a,在y方向上的最小值为b,在z方向上的最小值为c;
子块4的坐标范围为x4≤a,y4≥b,z4≥c,在x方向最大值为a,在y方向上的最小值为b,在z方向上的最小值为c;
子块5的坐标范围为x5≤a,y5≤b,z5≤c,在x方向上的最大值为a,在y方向上的最大值为b,在z方向上的最大值为c;
子块6的坐标范围为x6≥a,y6≤b,z6≤c,在x方向上的最小值为a,在y方向上的最大值为b,在z方向上的最大值为c;
子块7的坐标范围为x7≥a,y7≥b,z7≤c,在x方向上的最小值为a,在y方向上的最小值为b,在z方向最大值为c;
子块8的坐标范围为x8≤a,y8≥b,z8≤c,在x方向上的最大值为a,在y方向上的最小值为b,在z方向上的最大值为c。
当a>u时,子块2、3、6、7位于在点云边界外;
当b>v时,子块3、4、7、8位于在点云边界外;
当c>w时,子块1、2、3、4位于在点云边界外;
当a>u,b>v时,子块2、3、4、6、7、8位于在点云边界外;
当a>u,c>w时,子块1、2、3、4、6、7位于在点云边界外;
当b>v,c>w时,子块1、2、3、4、7、8位于在点云边界外;
当a>u,b>v,c>w时,子块1、2、3、4、6、7、8位于在点云边界外。
当a≤u,b≤v,c≤w时,子块1、2、3、4、6、7、8至少部分位于点云的边界内。且子块5在x,y,z方向上的最大值为a,b,c;因此,子块5同样至少部分位于点云的边界内。
又例如,当第一XYZ点云点的在x,y,z方向维度上的具有最小值,坐标值分别为l,m,n时,判断交叉点位置坐标在每个子块中的位置,并确定a,b,c是否为当前子块在三个方向维度上的最大值。若a为当前子块在x方向维度上的最大值,且a小于l时,可以确定当前子块位于点云的边界外,同样的,若b为当前子块在y方向维度上的最大值,且b小于m,或者c为当前子块在z方向维度上的最大值,且c小于n时,也可确定当前子块位于点云的边界外。如此。通过比较a与l,b与m,c与n之间的至少一个的关系,可以同时确定第一块中的多个子块是否位于点云的边界外。
具体地,当a<l时,子块1、4、5、8位于在点云边界外;
当b<m时,子块1、2、5、6位于在点云边界外;
当c<n时,子块5、6、7、8位于在点云边界外;
当a<l,b<m时,子块1、2、4、5、6、8位于在点云边界外;
当a<l,c<n时,子块1、4、5、6、7、8位于在点云边界外;
当b<m,c<n时,子块1、2、5、6、7、8位于在点云边界外;
当a<l,b<m,c<n时,子块1、2、4、5、6、7、8位于在点云边界外。
当a≥l,b≥m,c≥n时,子块1、2、4、5、6、7、8至少部分位于点云的边界内。且子块3在x,y,z方向上的最小值为a,b,c;因此,子块3同样位于至少部分点云的边界内。
可选地,在另一种可能的实施方式中,根据第一点云点的位置信息确定点云在在所述参考坐标系的第一方向维度上的坐标函数,根据该坐标函数以及至少一个子块的位置信息判断至少一个子块与点云的相对位置关系。
所述坐标函数表示在所述第一方向维度上的坐标值与所述参考坐标系的第二方向维度上的坐标值、第三方向维度上的坐标值相关。
具体地,以参考坐标系为笛卡尔坐标系为例,点云在x方向维度上的坐标函数为x=f(y,z),即在该函数中,点云中的点云点在x方向维度上的坐标值跟随y方向维度和z方向维度的坐标值变化而变化。同样的,点云在y方向维度上的坐标函数为y=g(x,z),点云在z方向维度上的坐标函数为z=h(x,y)。
在该实施方式中,根据至少一个子块的位置信息与点云的坐标函数,判断至少一个子块与点云的相对位置关系。具体地,有多种比较方式可以得到至少一个子块与点云的相对位置关系。
方式一
如图16所示,上述步骤S320还可以包括:
S327:根据至少一个子块在所述第二方向维度上、所述第三方向维度上的坐标信息以及在第一方向维度上的坐标函数,确定点云在所述第一方向维度上的第三坐标极值;
S328:将所述第三坐标极值分别与至少一个所述子块在所述第一方向维度上的第四坐标极值比较;
S329:根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块。
具体地,以至少一个子块中的一个目标子块进行举例说明判断过程,应理解,至少一个子块中其它的每个子块均与目标子块的判断过程近似。
确定目标子块在x方向维度上的范围为[X1,X2],在y方向维度上的范围为[Y1,Y2],在z方向维度上的范围为[Z1,Z2],即目标子块在x方向维度上的最大值为X2,最小值为X1;在y方向维度上的最大值为Y2,最小值为Y1;在z方向维度上的最大值为Z2,最小值为Z1。
确定点云在x方向维度上坐标函数为x=f(y,z),当y∈[Y1,Y2],z∈[Z1,Z2]时,确定f(y,z)的最大值fmax,和/或最小值fmin,该最大值fmax和最小值fmin为基于f(y,z)函数以及目标子块的坐标信息确定的点云在x方向维度上的最大值和最小值,此时,基于该函数确定的点云在y方向维度上的范围为[Y1,Y2],在z方向维度上的范围为[Z1,Z2]。
当fmax<X1,或者fmin>X2时,可以确定该目标子块在点云的边界之外,该目标子块为第一子块。
同样的,还可以确定点云在y方向维度上的坐标函数y=g(x,z),或者在z方向维度上的坐标函数为z=h(x,y),采用与上述相近的方法比较在对应y方向维度上或者z方向维度上的极值判断目标子块是否位于点云的边界之外。
即,确定点云在y方向维度上坐标函数为y=g(x,z),当x∈[X1,X2],z∈[Z1,Z2]时,确定g(x,z)的最大值gmax,和/或最小值gmin,该最大值gmax和最小值gmin为基于g(x,z)函数以及目标子块的坐标信息确定的点云在y方向维度上的最大值和最小值,此时,基于该函数确定的点云在x方向维度上的范围为[X1,X2],在z方向维度上的范围为[Z1,Z2]。
当gmax<Y1,或者gmin>Y2时,可以确定该目标子块在点云的边界之外,该目标子块为第一子块。
或者,确定点云在z方向维度上坐标函数为z=h(x,y),当x∈[X1,X2],y∈[Y1,Y2]时,确定h(x,y)的最大值hmax,和/或最小值hmin,该最大值hmax和最小值hmin为基于h(x,y)函数以及目标子块的坐标信息确定的点云在y方向维度上的最大值和最小值,此时,基于该函数确定的点云在x方向维度上的范围为[X1,X2],在y方向维度上的范围为[Y1,Y2]。
当hmax<Z1,或者hmin>Z2时,可以确定该目标子块在点云的边界之外,该目标子块为第一子块。
应理解,可以确定点云在任意一个方向维度或者多个方向维度的坐标函数,分别将至少一个子块中的每个子块在对应坐标范围的坐标极值与多个第一点云点的坐标函数极值进行比较,判断至少一个子块中位于点云的边界之外的第一子块。
方式二
如图17所示,上述步骤S320还可以包括:
S327:根据至少一个子块在所述第二方向维度上、所述第三方向维度上的坐标信息以及在第一方向维度上的坐标函数,确定点云在所述第一方向维度上的第三坐标极值;
S328:将所述第三坐标极值分别与至少一个所述子块在所述第一方向维度上的第四坐标极值比较;
S3210:根据比较结果,确定至少一个所述子块中至少部分位于所述点云的边界之内的第二子块。
具体地,以至少一个子块中的一个目标子块进行举例说明判断过程,应理解,至少一个子块中其它的每个子块均与目标子块的判断过程近似。
确定目标子块在x方向维度上的范围为[X1,X2],在y方向维度上的范围为[Y1,Y2],在z方向维度上的范围为[Z1,Z2]。
确定点云在x方向维度上坐标函数为x=f(y,z),在y方向维度上的坐标函数为y=g(x,z),在z方向维度上的坐标函数为z=h(x,y)。
当y∈[Y1,Y2],z∈[Z1,Z2],z∈[Z1,Z2]时,确定f(y,z)的最大值fmax和最小值fmin,g(x,z)的最大值gmax和最小值gmin以及h(x,y)的最大值hmax和最小值hmin。
当同时满足fmax≥X1,fmin≤X2,gmax≥Y1,gmin≤Y2,且hmax≥Z1,hmin≤Z2时,可以确定该目标子块至少部分位于点云的边界之内,该目标子块为第二子块。
应理解,当不同时fmax≥X1,fmin≤X2,gmax≥Y1,gmin≤Y2,且hmax≥Z1,hmin≤Z2时,还可以确定该目标子块位于点云的边界之外,该目标子块为第一子块。通过该方式的判断方法,还可以同时确定至少一个子块为第一子块或者是第二子块。
方式三
如图18所示,上述步骤S320还可以包括:
S3211:根据所述第一块在所述第二方向维度上、所述第三方向维度上的坐标范围以及所述坐标函数,确定所述点云在所述第一方向维度上的第五坐标极值;
S3212:将所述交叉点在所述第一方向维度上的坐标值与所述第五坐标极值比较;
S3213:根据比较结果,确定至少一个子块中位于所述点云的边界之外的第一子块,或者至少部分位于所述点云的边界之内的第二子块。
具体地,所述交叉点的位置坐标属于交叉的相邻子块中每个子块的位置坐标。相邻的子块可以相交于一个点、一条线或者一个面。
可选地,当相邻的多个子块相交于一个面或者一条线时,交叉点可以为相交面的顶点或者相交线上的端点。
可选地,当相邻的多个子块相交于一点时,该相交点即为交叉点。该实施例以交叉点属于每一个相邻的子块为例进行说明。
以图15c笛卡尔坐标系中第一块划分为8个子块为例,8个子块的交叉点在三个维度方向的坐标值为a,b,c。特别地,当8个子块为第一块均匀划分得到的8个大小相同的子块时,8个子块的交叉点为第一块的中心点。
确定第一块在x方向维度上的范围为[X1,X2],在y方向维度上的范围为[Y1,Y2],在z方向维度上的范围为[Z1,Z2]。
确定点云在x方向维度上坐标函数为x=f(y,z),在y方向维度上的坐标函数为y=g(x,z),以及在z方向维度上的坐标函数为z=h(x,y)。
当x∈[X1,X2],y∈[Y1,Y2],z∈[Z1,Z2]时,确定f(y,z)的最大值fmax,g(x,z)的最大值gmax,h(x,y)的最大值hmax。
当a>fmax时,子块2、3、6、7位于在点云边界外;
当b>gmax时,子块3、4、7、8位于在点云边界外;
当c>hmax时,子块1、2、3、4位于在点云边界外;
当a>fmax,b>gmax时,子块2、3、4、6、7、8位于在点云边界外;
当a>fmax,c>hmax时,子块1、2、3、4、6、7位于在点云边界外;
当b>gmax,c>hmax时,子块1、2、3、4、7、8位于在点云边界外;
当a>fmax,b>gmax,c>hmax时,子块1、2、3、4、6、7、8位于在点云边界外。
当a≤fmax,b≤gmax,c≤hmax时,子块1、2、3、4、6、7、8位于在点云边界内。且子块5在x,y,z方向上的最大值为a,b,c;因此,子块5同样位于点云边界内。
或者当x∈[X1,X2],y∈[Y1,Y2],z∈[Z1,Z2]时,确定f(y,z)的最小值fmin,g(x,z)的最小值gmin,h(x,y)的最小值hmin。
当a<fmin时,子块1、4、5、8位于在点云边界外;
当b<gmin时,子块1、2、5、6位于在点云边界外;
当c<hmin时,子块5、6、7、8位于在点云边界外;
当a<fmin,b<gmin时,子块1、2、4、5、6、8位于在点云边界外;
当a<fmin,c<hmin时,子块1、4、5、6、7、8位于在点云边界外;
当b<gmin,c<hmin时,子块1、2、5、6、7、8位于在点云边界外;
当a<fmin,b<gmin,c<hmin时,子块1、2、4、5、6、7、8位于在点云边界外。
当a≥fmin,b≥gmin,c≥hmin时,子块1、2、4、5、6、7、8位于在点云边界内。且子块3在x,y,z方向上的最小值为a,b,c;因此,子块3同样位于点云边界内。
上文结合图8至图18,详细描述了本申请的一种点云处理的方法实施例,下文结合图19和图20,详细描述本申请的点云的处理装置实施例,应理解,装置实施例与方法实施例相互对应,类似的描述可以参照方法实施例。
图19是根据本申请实施例的点云的处理装置30的示意性框图。可选地,该点云的处理装置30可以对应于点云的处理方法300。
如图19所示,所述点云的处理装置30包括:确定单元31和处理单元32;
所述确定单元31用于:确定点云中的第一块,所述第一块包括所述点云的至少部分点云点,且所述第一块包括多个子块;
所述处理单元32用于:根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;
其中,所述相对位置关系用于判断是否将所述子块进行编码或解码。
可选地,所述相对位置关系包括:所述子块与所述点云的边界的位置关系。
可选地,所述子块与所述点云的边界的位置关系包括:所述子块位于所述点云的边界之外,或,所述子块部分位于所述点云的边界之内。
可选地,如图20所示,所述点云的处理装置30还包括:编码或解码单元33;
若至少一个所述子块中的第一子块位于所述点云的边界之外,所述编码或解码单元33用于不对所述第一子块进行编码或解码,且对至少一个所述子块中除所述第一子块外的第二子块进行编码或解码。
可选地,若至少一个所述子块中的第二子块至少部分位于所述点云的边界之内,所述编码或解码单元33用于对所述第二子块进行编码或解码,且不对至少一个所述子块中除所述第二子块外的第一子块进行编码或解码。
可选地,所述点云的边界为所述点云中的点云点在参考坐标系的三个方向维度上的极值形成的三维空间的外表面。
可选地,所述编码或解码单元33具体用于:
对所述第一子块不编码第一标志位或不解码所述第一标志位,所述第一标志位用于指示所述第一子块是否包括所述点云中的点云点,或是否划分所述第一子块。
可选地,所述编码或解码单元33具体用于:
对所述第二子块编码第二标志位或解码所述第二标志位,所述第二标志位用于指示所述第二子块包括所述点云中的点云点;或
对所述第二子块编码第三标志位或解码第三标志位,所述第三标志位用于指示所述第二子块不包括所述点云中的点云点。
可选地,所述第一块进行二值化处理后的码流的比特位数与所述第一块中进行编码或解码的子块的数量相关;
其中,所述码流的比特位数不大于N,所述N为所述第一块中所述子块的数量,所述N为正整数。
可选地,至少一个所述子块的位置信息包括:至少一个所述子块在参考坐标系中的坐标信息,和/或,至少一个所述子块中的相邻子块的交叉点在所述参考坐标系中的坐标信息。
可选地,所述第一点云点为所述点云中在所述参考坐标系的至少一个方向维度上具有坐标极值的点云点。
可选地,所述处理单元32具体用于:
将所述第一点云点在至少一个所述方向维度上的第一坐标极值,分别与至少一个所述子块在对应方向维度上的第二坐标极值比较;
根据所述比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
可选地,所述处理单元32具体用于:
将所述第一点云点在至少一个所述方向维度上的第一坐标极值,与所述交叉点在对应方向维度上的坐标值进行比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
可选地,所述处理单元32具体用于:
根据所述点云在所述参考坐标系的第一方向维度上的坐标函数以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;
其中,所述坐标函数为基于所述点云中的第一点云点的位置信息确定,且所述坐标函数表示在所述第一方向维度上的坐标值与所述参考坐标系的第二方向维度上的坐标值、第三方向维度上的坐标值相关。
可选地,所述处理单元32具体用于:
根据至少一个所述子块在所述第二方向维度上、所述第三方向维度上的坐标信息以及所述坐标函数,确定所述点云在所述第一方向维度上的第三坐标极值;
将所述第三坐标极值分别与至少一个所述子块在所述第一方向维度上的第四坐标极值比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
可选地,所述处理单元32具体用于:
根据所述第一块在所述第二方向维度上、所述第三方向维度上的坐标信息以及所述坐标函数,确定所述点云在所述第一方向维度上的第五坐标极值;
将所述交叉点在所述第一方向维度上的坐标值与所述第五坐标极值比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
可选地,所述交叉点为所述第一块的中心点。
可选地,所述位置信息为在笛卡尔坐标系、或者球坐标系、或者柱坐标系下的坐标信息。
可选地,所述确定单元31具体用于:划分确定所述第一块中的多个所述子块,其中,划分方式包括如下中的一种:八叉树划分法、四叉树划分法、二叉树划分法。
可选地,多个所述子块为大小相同的8个立方体子块。
图21示出了本申请实施例的点云的处理装置40的示意性框图。
如图21所示,该点云的处理装置40可以包括处理器41,进一步的可以包括存储器42。
应理解,该存储器42用于存储计算机可执行指令。
存储器42可以是各种种类的存储器,例如可以包括高速随机存取存储器(RandomAccess Memory,RAM),还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,本申请实施例对此并不限定。
处理器41用于访问该存储器42,并执行该计算机可执行指令,以进行上述本申请实施例的点云的处理方法中的操作。处理器41可以包括微处理器,现场可编程门阵列(Field Programmable Gate Array,FPGA),中央处理器(Central Processing unit,CPU),图形处理器(Graphics Processing Unit,GPU)等,本申请实施例对此并不限定。
本申请实施例的点云处理的装置可对应于本申请实施例的点云处理的方法300的执行主体,并且点云处理的装置中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种电子设备,该电子设备可以包括上述本申请各种实施例的用于点云处理的装置。
本发明实施例还提供一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得,该计算机执行上述方法实施例的方法。
本发明实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (42)
1.一种点云的处理方法,其特征在于,包括:
确定点云中的第一块,所述第一块包括所述点云的至少部分点云点,且所述第一块包括多个子块;
根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;
其中,所述相对位置关系用于判断是否将所述子块进行编码或解码。
2.根据权利要求1所述的处理方法,其特征在于,所述相对位置关系包括:所述子块与所述点云的边界的位置关系。
3.根据权利要求2所述的处理方法,其特征在于,所述子块与所述点云的边界的位置关系包括:所述子块位于所述点云的边界之外,或,所述子块部分位于所述点云的边界之内。
4.根据权利要求3所述的处理方法,其特征在于,所述方法还包括:
若至少一个所述子块中的第一子块位于所述点云的边界之外,则不对所述第一子块进行编码或解码,且对至少一个所述子块中除所述第一子块外的第二子块进行编码或解码。
5.根据权利要求3所述的处理方法,其特征在于,所述方法还包括:
若至少一个所述子块中的第二子块至少部分位于所述点云的边界之内,则对所述第二子块进行编码或解码,且不对至少一个所述子块中除所述第二子块外的第一子块进行编码或解码。
6.根据权利要求2-5中任一项所述的处理方法,其特征在于,所述点云的边界为所述点云中的点云点在参考坐标系的三个方向维度上的极值形成的三维空间的外表面。
7.根据权利要求4或5所述的处理方法,其特征在于,所述不对所述第一子块进行编码或解码,包括:
对所述第一子块不编码第一标志位或不解码所述第一标志位,所述第一标志位用于指示所述第一子块是否包括所述点云中的点云点,或是否划分所述第一子块。
8.根据权利要求4或5所述的处理方法,其特征在于,所述对第二子块进行编码或解码,包括:
对所述第二子块编码第二标志位或解码所述第二标志位,所述第二标志位用于指示所述第二子块包括所述点云中的点云点;或,
对所述第二子块编码第三标志位或解码第三标志位,所述第三标志位用于指示所述第二子块不包括所述点云中的点云点。
9.根据权利要求1-8中任一项所述的处理方法,其特征在于,所述第一块进行二值化处理后的码流的比特位数与所述第一块中进行编码或解码的子块的数量相关;
其中,所述码流的比特位数不大于N,所述N为所述第一块中所述子块的数量,所述N为正整数。
10.根据权利要求1-9中任一项所述的处理方法,其特征在于,至少一个所述子块的位置信息包括:至少一个所述子块在参考坐标系中的坐标信息,和/或,至少一个所述子块中的相邻子块的交叉点在所述参考坐标系中的坐标信息。
11.根据权利要求10所述的处理方法,其特征在于,所述第一点云点为所述点云中在所述参考坐标系的至少一个方向维度上具有坐标极值的点云点。
12.根据权利要求11所述的处理方法,其特征在于,所述根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系,包括:
将所述第一点云点在至少一个所述方向维度上的第一坐标极值,分别与至少一个所述子块在对应方向维度上的第二坐标极值比较;
根据所述比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
13.根据权利要求11所述的处理方法,其特征在于,所述根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系,包括:
将所述第一点云点在至少一个所述方向维度上的第一坐标极值,与所述交叉点在对应方向维度上的坐标值进行比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
14.根据权利要求10所述的处理方法,其特征在于,所述根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系,包括:
根据所述点云在所述参考坐标系的第一方向维度上的坐标函数以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;
其中,所述坐标函数为基于所述点云中的第一点云点的位置信息确定,且所述坐标函数表示在所述第一方向维度上的坐标值与所述参考坐标系的第二方向维度上的坐标值、第三方向维度上的坐标值相关。
15.根据权利要求14所述的处理方法,其特征在于,所述根据所述点云在所述参考坐标系的第一方向维度上的坐标函数以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系,包括:
根据至少一个所述子块在所述第二方向维度上、所述第三方向维度上的坐标信息以及所述坐标函数,确定所述点云在所述第一方向维度上的第三坐标极值;
将所述第三坐标极值分别与至少一个所述子块在所述第一方向维度上的第四坐标极值比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
16.根据权利要求14所述的处理方法,其特征在于,所述根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系,包括:
根据所述第一块在所述第二方向维度上、所述第三方向维度上的坐标信息以及所述坐标函数,确定所述点云在所述第一方向维度上的第五坐标极值;
将所述交叉点在所述第一方向维度上的坐标值与所述第五坐标极值比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
17.根据权利要求10、13或16所述的处理方法,其特征在于,所述交叉点为所述第一块的中心点。
18.根据权利要求1-17中任一项所述的处理方法,其特征在于,所述位置信息为在笛卡尔坐标系、或者球坐标系、或者柱坐标系下的坐标信息。
19.根据权利要求1-18中任一项所述的处理方法,其特征在于,所述第一块中的多个子块的划分方式,包括如下中的一种:
八叉树划分法、四叉树划分法、二叉树划分法。
20.根据权利要求1-19中任一项所述的处理方法,其特征在于,多个所述子块为大小相同的8个立方体子块。
21.一种点云的处理装置,其特征在于,包括:
确定单元,用于确定点云中的第一块,所述第一块包括所述点云的至少部分点云点,且所述第一块包括多个子块;
处理单元,用于根据所述点云中的第一点云点的位置信息以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;
其中,所述相对位置关系用于判断是否将所述子块进行编码或解码。
22.根据权利要求21所述的处理装置,其特征在于,所述相对位置关系包括:所述子块与所述点云的边界的位置关系。
23.根据权利要求22所述的处理装置,其特征在于,所述子块与所述点云的边界的位置关系包括:所述子块位于所述点云的边界之外,或,所述子块部分位于所述点云的边界之内。
24.根据权利要求23所述的处理装置,其特征在于,所述处理装置还包括:编码或解码单元;
若至少一个所述子块中的第一子块位于所述点云的边界之外,所述编码或解码单元用于不对所述第一子块进行编码或解码,且对至少一个所述子块中除所述第一子块外的第二子块进行编码或解码。
25.根据权利要求23所述的处理装置,其特征在于,所述处理装置还包括:编码或解码单元;
若至少一个所述子块中的第二子块至少部分位于所述点云的边界之内,所述编码或解码单元用于对所述第二子块进行编码或解码,且不对至少一个所述子块中除所述第二子块外的第一子块进行编码或解码。
26.根据权利要求22-25中任一项所述的处理装置,其特征在于,所述点云的边界为所述点云中的点云点在参考坐标系的三个方向维度上的极值形成的三维空间的外表面。
27.根据权利要求24或25所述的处理装置,其特征在于,所述编码或解码单元具体用于:
对所述第一子块不编码第一标志位或不解码所述第一标志位,所述第一标志位用于指示所述第一子块是否包括所述点云中的点云点,或是否划分所述第一子块。
28.根据权利要求24或25所述的处理装置,其特征在于,所述编码或解码单元具体用于:
对所述第二子块编码第二标志位或解码所述第二标志位,所述第二标志位用于指示所述第二子块包括所述点云中的点云点;或,
对所述第二子块编码第三标志位或解码第三标志位,所述第三标志位用于指示所述第二子块不包括所述点云中的点云点。
29.根据权利要求21-28中任一项所述的处理装置,其特征在于,所述第一块进行二值化处理后的码流的比特位数与所述第一块中进行编码或解码的子块的数量相关;
其中,所述码流的比特位数不大于N,所述N为所述第一块中所述子块的数量,所述N为正整数。
30.根据权利要求21-29中任一项所述的处理装置,其特征在于,至少一个所述子块的位置信息包括:至少一个所述子块在参考坐标系中的坐标信息,和/或,至少一个所述子块中的相邻子块的交叉点在所述参考坐标系中的坐标信息。
31.根据权利要求30所述的处理装置,其特征在于,所述第一点云点为所述点云中在所述参考坐标系的至少一个方向维度上具有坐标极值的点云点。
32.根据权利要求31所述的处理装置,其特征在于,所述处理单元具体用于:
将所述第一点云点在至少一个所述方向维度上的第一坐标极值,分别与至少一个所述子块在对应方向维度上的第二坐标极值比较;
根据所述比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
33.根据权利要求31所述的处理装置,其特征在于,所述处理单元具体用于:
将所述第一点云点在至少一个所述方向维度上的第一坐标极值,与所述交叉点在对应方向维度上的坐标值进行比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
34.根据权利要求30所述的处理装置,其特征在于,所述处理单元具体用于:
根据所述点云在所述参考坐标系的第一方向维度上的坐标函数以及至少一个所述子块的位置信息,确定至少一个所述子块与所述点云的相对位置关系;
其中,所述坐标函数为基于所述点云中的第一点云点的位置信息确定,且所述坐标函数表示在所述第一方向维度上的坐标值与所述参考坐标系的第二方向维度上的坐标值、第三方向维度上的坐标值相关。
35.根据权利要求34所述的处理装置,其特征在于,所述处理单元具体用于:
根据至少一个所述子块在所述第二方向维度上、所述第三方向维度上的坐标信息以及所述坐标函数,确定所述点云在所述第一方向维度上的第三坐标极值;
将所述第三坐标极值分别与至少一个所述子块在所述第一方向维度上的第四坐标极值比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
36.根据权利要求34所述的处理装置,其特征在于,所述处理单元具体用于:
根据所述第一块在所述第二方向维度上、所述第三方向维度上的坐标信息以及所述坐标函数,确定所述点云在所述第一方向维度上的第五坐标极值;
将所述交叉点在所述第一方向维度上的坐标值与所述第五坐标极值比较;
根据比较结果,确定至少一个所述子块中位于所述点云的边界之外的第一子块,和/或,至少部分位于所述点云的边界之内的第二子块。
37.根据权利要求30、33或36所述的处理装置,其特征在于,所述交叉点为所述第一块的中心点。
38.根据权利要求21-37中任一项所述的处理装置,其特征在于,所述位置信息为在笛卡尔坐标系、或者球坐标系、或者柱坐标系下的坐标信息。
39.根据权利要求21-38中任一项所述的处理装置,其特征在于,所述确定单元具体用于:划分确定所述第一块中的多个所述子块,其中,划分方式包括如下中的一种:
八叉树划分法、四叉树划分法、二叉树划分法。
40.根据权利要求21-39中任一项所述的处理装置,其特征在于,多个所述子块为大小相同的8个立方体子块。
41.一种点云的处理装置,包括处理器和存储器,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行权利要求1至20中任一项所述的方法。
42.一种计算机可读存储介质,用于存储程序代码,所述程序代码用于执行根据权利要求1至20中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/094763 WO2021000333A1 (zh) | 2019-07-04 | 2019-07-04 | 点云的处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111699690A true CN111699690A (zh) | 2020-09-22 |
Family
ID=72476438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980010486.8A Pending CN111699690A (zh) | 2019-07-04 | 2019-07-04 | 点云的处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111699690A (zh) |
WO (1) | WO2021000333A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112633376A (zh) * | 2020-12-24 | 2021-04-09 | 南京信息工程大学 | 基于深度学习的点云数据地物分类方法、系统与存储介质 |
CN113486276A (zh) * | 2021-08-02 | 2021-10-08 | 北京京东乾石科技有限公司 | 点云压缩、点云渲染方法,装置,设备以及存储介质 |
CN113709093A (zh) * | 2021-03-15 | 2021-11-26 | 上海交通大学 | 一种三维点云的封装方法、装置及介质 |
CN113963097A (zh) * | 2021-10-13 | 2022-01-21 | 广州文远知行科技有限公司 | 一种数据压缩方法、装置、设备及存储介质 |
WO2023174334A1 (zh) * | 2022-03-18 | 2023-09-21 | 维沃移动通信有限公司 | 编码、解码方法、装置及设备 |
WO2024174086A1 (zh) * | 2023-02-21 | 2024-08-29 | Oppo广东移动通信有限公司 | 解码方法、编码方法、解码器以及编码器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100266217A1 (en) * | 2009-04-15 | 2010-10-21 | Electronics And Telecommunications Research Institute | 3d contents data encoding/decoding apparatus and method |
CN104715496A (zh) * | 2015-03-23 | 2015-06-17 | 中国科学技术大学 | 云环境下基于三维点云模型的图像预测方法、系统及装置 |
CN108632621A (zh) * | 2018-05-09 | 2018-10-09 | 北京大学深圳研究生院 | 一种基于层次划分的点云属性压缩方法 |
CN109410342A (zh) * | 2018-09-28 | 2019-03-01 | 昆明理工大学 | 一种保留边界点的点云精简方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8860723B2 (en) * | 2009-03-09 | 2014-10-14 | Donya Labs Ab | Bounded simplification of geometrical computer data |
WO2018093886A1 (en) * | 2016-11-17 | 2018-05-24 | Google Llc | K-d tree encoding for point clouds using deviations |
-
2019
- 2019-07-04 CN CN201980010486.8A patent/CN111699690A/zh active Pending
- 2019-07-04 WO PCT/CN2019/094763 patent/WO2021000333A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100266217A1 (en) * | 2009-04-15 | 2010-10-21 | Electronics And Telecommunications Research Institute | 3d contents data encoding/decoding apparatus and method |
CN104715496A (zh) * | 2015-03-23 | 2015-06-17 | 中国科学技术大学 | 云环境下基于三维点云模型的图像预测方法、系统及装置 |
CN108632621A (zh) * | 2018-05-09 | 2018-10-09 | 北京大学深圳研究生院 | 一种基于层次划分的点云属性压缩方法 |
CN109410342A (zh) * | 2018-09-28 | 2019-03-01 | 昆明理工大学 | 一种保留边界点的点云精简方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112633376A (zh) * | 2020-12-24 | 2021-04-09 | 南京信息工程大学 | 基于深度学习的点云数据地物分类方法、系统与存储介质 |
CN113709093A (zh) * | 2021-03-15 | 2021-11-26 | 上海交通大学 | 一种三维点云的封装方法、装置及介质 |
CN113746797A (zh) * | 2021-03-15 | 2021-12-03 | 上海交通大学 | 一种三维点云的传输方法、装置及介质 |
CN113709093B (zh) * | 2021-03-15 | 2023-08-04 | 上海交通大学 | 一种三维点云的封装方法、装置及介质 |
CN113486276A (zh) * | 2021-08-02 | 2021-10-08 | 北京京东乾石科技有限公司 | 点云压缩、点云渲染方法,装置,设备以及存储介质 |
CN113963097A (zh) * | 2021-10-13 | 2022-01-21 | 广州文远知行科技有限公司 | 一种数据压缩方法、装置、设备及存储介质 |
WO2023174334A1 (zh) * | 2022-03-18 | 2023-09-21 | 维沃移动通信有限公司 | 编码、解码方法、装置及设备 |
WO2024174086A1 (zh) * | 2023-02-21 | 2024-08-29 | Oppo广东移动通信有限公司 | 解码方法、编码方法、解码器以及编码器 |
Also Published As
Publication number | Publication date |
---|---|
WO2021000333A1 (zh) | 2021-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111699690A (zh) | 点云的处理方法和装置 | |
CN111699697B (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
CN113615181B (zh) | 用于点云编解码的方法、装置 | |
CN115379190B (zh) | 一种点云处理方法、装置及计算机设备、存储介质 | |
JP5932051B2 (ja) | 予測位置復号 | |
JP2015504545A (ja) | 予測位置符号化 | |
WO2021196029A1 (zh) | 一种用于点云编码、解码的方法和设备 | |
WO2021000334A1 (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
CN111684808A (zh) | 点云数据的编码方法、编码装置、解码方法与解码装置 | |
WO2021199781A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
CN112384950A (zh) | 点云的编解码方法及装置 | |
JP2015502100A (ja) | 終了可能な空間ツリー型位置符号化および復号 | |
CN113632492A (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
WO2021196038A1 (zh) | 点云的编解码方法和装置 | |
CN114598891A (zh) | 点云数据编码方法、解码方法、点云数据处理方法及装置 | |
CN113678460B (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
CN112740707A (zh) | 点云的编解码方法和装置 | |
CN115131449A (zh) | 点云处理方法、装置及计算机设备、存储介质 | |
CN115102934B (zh) | 点云数据的解码方法、编码方法、装置、设备及存储介质 | |
KR101883532B1 (ko) | 반복적인 구조 발견 기반 3d 모델 압축의 비트스트림을 생성하기 위한 방법 및 장치 | |
CN115396668A (zh) | 点云数据的解码方法、编码方法、装置、存储介质及设备 | |
WO2014005415A1 (en) | System and method for multi-level repetitive structure based 3d model compression | |
WO2020248562A1 (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
EP4244813B1 (en) | Devices and methods for scalable coding for point cloud compression | |
CN116320352A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200922 |