CN112256652A - 一种三维点云属性压缩方法、系统及终端 - Google Patents
一种三维点云属性压缩方法、系统及终端 Download PDFInfo
- Publication number
- CN112256652A CN112256652A CN202011117567.9A CN202011117567A CN112256652A CN 112256652 A CN112256652 A CN 112256652A CN 202011117567 A CN202011117567 A CN 202011117567A CN 112256652 A CN112256652 A CN 112256652A
- Authority
- CN
- China
- Prior art keywords
- node
- octree
- empty
- nodes
- attribute
- 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
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种三维点云属性压缩方法、系统及终端,将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织;从树形结构中每一个非叶节点的非空子节点中确定出源子节点,将所述非叶节点的属性使用其源子节点的属性进行赋值;自上而下以宽度优先的方式遍历树中每一个节点。如果第一非叶节点中的非空子节点数目多于一个,计算第一非叶节点与除其源子节点之外的每一个非空子节点的属性残差,且对属性残差进行编码;如果第一非叶节点只有一个非空子节点,则无需做属性编码。对于叶节点,无需做任何编码操作。对于根节点的属性单独编码。源子节点的属性信息无需编码,进而在保证属性信息无损的条件下提高了压缩率和压缩效率。
Description
技术领域
本申请涉及三维点云技术领域,具体涉及一种三维点云属性压缩方法、系统及终端。
背景技术
三维点云数据在众多领域(比如三维建模、科学可视化等)具有广泛的应用。特别地,近些年来,三维点云数据越来越成为虚拟现实、增强现实、无人驾驶、机器人定位与导航等新兴应用中极其重要的核心数据之一。相比于传统的三维网格模型表示,三维点云模型不需要定义和存储点之间的拓扑连接关系,更便于表示具有复杂几何与拓扑结构的物体,对于很多应用而言也更便于处理与分析。同时,随着三维扫描技术的发展,三维点云模型数据的获取也变得越来越容易。
一般来讲,三维点云模型中点的数目十分庞大。即使一个中等大小的三维点云模型,也常常是包含几十万甚至上百万个点。每一个点首先具有一个三维位置信息。除此之外,一个点往往还有其它属性比如颜色、法向、反射度等信息。进一步,动态点云模型序列又增加了一个时间维度。因此,不做进一步处理的话,三维点云模型的数据量往往十分庞大,十分耗费存储和带宽资源。例如,在图1所示的无人驾驶应用中,每一辆汽车需要随时从服务器获取所在地周围场景的三维点云信息。距离相近的汽车之间也可以随时交换各自所实时扫描获取的周围场景的三维点云信息。如果采用最原始的表示方法,这些点云信息的数据量十分庞大,无法满足无人驾驶的实时数据传输要求。再例如,在图2所示的远程沉浸式视频交互应用中,一个用户终端所捕捉的三维点云数据需要实时地传输到另外一个用户的终端,或者多个用户的三维点云数据同时传输到一个虚拟的3D场景中,进行远程沉浸式的交互。如果对于这些点云数据采用原始的表示方法,同样无法达到实时交互的目标。为了缓解庞大的三维点云数据量给系统的存储、传输与处理能力带来的巨大压力,三维点云数据需要以一种有效的方式被编码及传输。
对于三维点云数据压缩的早期研究主要集中于三维点云几何信息的压缩,即压缩每一个点的三维位置信息。后来,随着三维点云应用面的逐渐拓广,三维点云属性信息的压缩也变得十分重要。因此,越来越多的学者开始研究三维点云属性数据的压缩,提出了大量的相关算法。对于三维点云属性数据的压缩,尽管发表了很多算法,但极少数能够同时兼顾压缩率以及运行效率两个方面。因此,如何能够同时兼顾压缩率以及运行效率的三维点云压缩是本领域亟待解决的技术问题。
发明内容
本申请为了解决上述技术问题,提出了如下技术方案:
第一方面,本申请实施例提供了一种三维点云属性压缩方法,所述方法包括:将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织。从所述树形结构中每一个非叶节点的非空子节点中确定出距离所有非空子节点的重心最近的第一非空子节点作为其源子节点,将所述非叶节点的属性使用其源子节点的属性进行赋值;所述树形结构中每一个非空叶节点的属性赋值为其所含三维点属性的平均值。自上而下以宽度优先的方式遍历树中的每一个节点。如果第一非叶节点中的非空子节点数目多于一个,计算第一非叶节点与除其源子节点之外的每一个非空子节点的属性残差,且对属性残差进行编码;如果第一非叶节点只有一个非空子节点,则此非空子节点继承第一非叶节点的属性值且无需做属性编码,对于叶节点,无需做任何编码操作,对于根节点的属性单独编码。
采用上述实现方式,对于叶节点,无需做任何编码操作。对于根节点的属性单独编码。源子节点的属性信息不需要编码,进而在保证属性信息无损的条件下提高了压缩率和压缩效率。
结合第一方面,在第一方面第一种可能的实现方式中,所述将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织,包括:计算出所述三维点云模型的长方体包围盒;将所述长方体包围盒中最小的两个维度扩展获得立方体包围盒,所述立方体包围盒对应一个八叉树单元,且对应八叉树中的根节点,所述八叉树单元及八叉树根节点皆为非空;将所述八叉树单元进行细分,每次细分将一个非空的包含至少一个三维点的八叉树单元细分为八个大小相同的子八叉树单元,且对应的八叉树节点细分产生八个子八叉树节点,所述子八叉树单元与所述子八叉树节点一一对应;将非空子八叉树单元继续迭代细分,对应的子八叉树节点继续迭代细分,获得一棵多层次的空间八叉树,其中在细分过程中产生的每一个八叉树单元对应八叉树数据结构中的一个节点,每一个非空八叉树单元对应的节点称为非空八叉树节点或非空节点。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,一个非空八叉树节点的位置设为对应八叉树单元的几何中心。
结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,如果第一非叶节点有至少两个非空子节点距离所有非空子节点的重心距离相同,则将坐标字典排序最小的第一非空子节点作为其源子节点。
结合第一方面第三种可能的实现方式,在第一方面第四种可能的实现方式中,对于一个非空节点,根据对应八叉树单元的非空子单元的个数以及分布情况,计算好每一种情况下源子节点的索引,且将其存入一个共有256项的表格中,所述表格用于编码的在线查找,以加速所述源子节点的定位。
结合第一方面,在第一方面第五种可能的实现方式中,进行属性残差计算时,采用减法或者按位异或操作。
第二方面,本申请实施例提供了一种三维点云属性压缩系统,所述系统包括:节点量化模块,用于将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织;属性赋值模块,用于从所述树形结构中每一个非叶节点的非空子节点中确定出距离所有非空子节点的重心最近的第一非空子节点作为其源子节点,将所述非叶节点的属性使用其源子节点的属性进行赋值;所述树形结构中每一个非空叶节点的属性赋值为其所含三维点属性的平均值;压缩编码模块,用于自上而下以宽度优先的方式遍历树中的每一个节点。如果第一非叶节点中的非空子节点数目多于一个,计算第一非叶节点与除其源子节点之外的每一个非空子节点的属性残差,且对属性残差进行编码;如果第一非叶节点只有一个非空子节点,则此非空子节点继承第一非叶节点的属性值且无需做属性编码,对于叶节点,无需做任何编码操作,对于根节点的属性单独编码。
结合第二方面,在第二方面第一种可能的实现方式中,所述节点量化模块,包括:计算单元,用于计算出所述三维点云模型的长方体包围盒;获取单元,用于将所述长方体包围盒中最小的两个维度扩展获得立方体包围盒,所述立方体包围盒对应一个八叉树单元,且对应八叉树中的根节点,所述八叉树单元及八叉树根节点皆为非空;第一细分单元,用于将所述八叉树单元进行细分,每次细分将一个非空的包含至少一个三维点的八叉树单元细分为八个大小相同的子八叉树单元,且对应的八叉树节点细分产生八个子八叉树节点,所述子八叉树单元与所述子八叉树节点一一对应;第二细分单元,用于将非空子八叉树单元继续迭代细分,对应的子八叉树节点继续迭代细分,获得一棵多层次的空间八叉树,其中在细分过程中产生的每一个八叉树单元对应八叉树数据结构中的一个节点,每一个非空八叉树单元对应的节点称为非空八叉树节点或非空节点。
第三方面,本申请实施例提供了一种终端,包括:处理器;存储器,用于存储计算机可执行指令;当所述处理器执行所述计算机可执行指令时,所述处理器执行第一方面或第一方面任一可能实现方式所述的三维点云属性压缩方法,对三维点云属性进行压缩。
附图说明
图1为传统技术中三维点云在无人驾驶中的应用示意图;
图2为传统技术中三维点云在远程沉浸式交互中的应用示意图;
图3为本申请实施例提供的一种三维点云属性压缩方法流程示意图;
图4为本申请实施例提供的八叉树单元细分以及相应的字节码示意图;
图5为本申请实施例提供的递归八叉树单元划分及其对应八叉树结构的示意图;
图6为本申请实施例提供的源子节点选择的示意图;
图7为本申请实施例提供的实施例测试所使用的三维点云模型示意图;
图8为本申请实施例提供的一种三维点云属性压缩系统示意图;
图9为本申请实施例提供的一种终端的示意图。
具体实施方式
下面结合附图与具体实施方式对本方案进行阐述。
本实施例首先对本申请涉及到的相应工作进行简单介绍。
点云数据压缩的研究工作中,有很大一部分研究的是点云几何数据的压缩,特别是早期的一些研究工作。当然,这其中有些工作同时也对于点云属性数据进行压缩。对于点云几何数据的压缩,有不同的方法被用来组织点云数据,其中,基于八叉树划分的方法是最主流最常用的方法。一般而言,这一类方法具有较高的运行效率、较高的压缩率且具有通用性。
基于八叉树划分的三维模型压缩方法最初为Peng and Kuo提出。他们压缩的是三维网格模型数据。后来,众多学者将此方法扩展应用于三维点云模型压缩。此类方法递归地划分点云模型的三维立方体包围盒(也称八叉树单元)至一个预定的深度,或者直到满足其些特定条件为止。在每一次划分时,一个非空的父八叉树单元被等分为八个子八叉树单元。对于每一个八叉树单元划分,子八叉树单元中非空单元的分布信息往往通过一个索引码或者字节码被编码,而使用后者的算法相对更多一些。
近些年来,随着点云数据的应用越来越广,点云属性的压缩变得至关重要,受到越来越多的关注。一般来讲,这些方法假定几何信息已经先于属性数据做了编码和解码,因此编码器和解码器都已经有了模型的几何信息。在此基础之上,再做进一步的属性数据压缩。现有的点云属性压缩算法一般是基于三维点云在欧式空间中的某种层次划分,特别是基于八叉树的划分。现有的点云属性压缩算法主要分为两类:基于变换的方法以及基于图像压缩的方法。
Zhang et al首先提出使用图变换来做点云属性的压缩。对于每一个包含k×k×k个体素的块,他们构建一个图,且将点云的属性视为这些图上的信号。对于每一个图,他们通过对于图的拉普拉斯矩阵做特征值分解,推导出一组基向量。然后,将图节点的属性向量投影到这组基向量得到对应的系数向量。最终,这些系数被量化且熵编码。Cohen et al也采用基于图变换的方法,提出通过块挤压以及远距离邻居搜索来解决稀疏体素块的问题。Shao et al将点均匀划分到块中,且对于Laplacian矩阵的稀疏性进行优化控制。DeQueiroz and Chou使用高斯过程变换而不是图变换,进一步提高了率失真性能。Cohen etal用已经编码过的相邻块的属性来预测当前块的属性,且使用扩展的适应形状的DCT编码预测误差。Shao et al也在相邻块间做属性预测,同时使用图变换以及DCT,量化变换系数,且优化决定这些系数的扫描顺序。de Queiroz and Chou将具有形状自适应性的Haar变换应用于八叉树结构,且对于量化后的变换系数做算术编码。Hou et al和Gu et al的方法都基于一个k×k×k体素块内点属性的稀疏表示。为了解决块内点的分布不规则的问题,他们提出一个虚拟的自适应的采样过程。这样,块内的属性即可以用稀疏表示来建模。对于变换系数的编码,他们提出种改编的熵编码方法。
Houshiar and Nüchter将通过陆地激光扫描仪得到的三维点云数据投影到一张全景图中,然后使用传统的图像编码方法对于此全景图进行压缩。Mekuria et al提出的动态点云压缩方法中,对于帧内模式中的点云颜色数据使用JPEG图像编码方法进行压缩。为此,他们首先基于深度优先的顺序遍历八叉树,将所有非空叶节点的颜色按照访问顺序,以蛇形模式的形式排布在一张规则栅格结构中,构成一张图像。进一步,Xu et al考察多种点的颜色在栅格结构中的排布方式,且基于率失真优化选择最优的一种。也使用JPEG图像编码方法来压缩点云颜色信息。他们通过一个率失真优化过程来决定一些编码参数。首先在颜色空间中对于所有点做一分割,然后在每一个区域内部再基于点的几何信息做第二次分割。这样,分割后的每一个区域内的点在颜色以及几何空间中都密切相关。然后,他们也使用基于八叉树的遍历以及点云颜色的栅格排布,且最终使用JPEG图像编码方法做有损的点云属性压缩。
2017年,MPEG发布了一个关于点云压缩的提议邀请。在所收到的提议中,三种算法被选中作为测试编码模型,分别面向不同种类的点云数据。它们是面向静态点云数据压缩的第一类测试编码模型(简写为TMC1),面向动态点云数据压缩的第二类测试编码模型(简写为TMC2),面向动态获取的点云数据压缩的第三类测试编码模型(简写为TMC3)。
TMC1使用八叉树空间划分以及作为可选项的多边形表面近似来做几何数据编码,使用基于RAHT的方法来做颜色数据的编码。TMC3也使用基于八叉树划分的几何编码方法,但对于颜色数据的编码,则使用一种基于细节级别构建以及局部预测的方法。TMC2将点云数据转换成视频序列,然后使用视频编码器如HEVC对其进行压缩。由于TMC1和TMC3都使用相似的方法来编码几何,它们后来被合成为一个新的平台,称为TMC13。
与上述不同的,本申请实施例提出了一种基于八叉树结构、源子节点以及差分编码机制的三维点云属性压缩方法。参见图3,所述方法包括:
S101,将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织。
本实施例中编码器首先通过递归地细分三维点云模型的立方体包围盒,为其构建一棵具有指定深度的八叉树结构。
立方体包围盒是这么计算的:首先求出三维点云模型的紧致的长方体包围盒,然后将其较小的两个维度扩展得到立方体包围盒。整个模型的立方体包围盒对应一个八叉树单元,且对应八叉树中的根节点。在每一次细分中,一个非空的八叉树单元被细分为八个大小相同的子八叉树单元,如图4所示。
每一个非空子八叉树单元再如此递归地细分下去,得到一棵多层次的空间八叉树划分。此划分过程中产生的每一个八叉树单元对应八叉树数据结构中的一个节点,每一个非空八叉树单元对应的节点称为非空八叉树节点。如图5所示,将一个包含3个点的点云的立方体包围盒作为初始的八叉树单元,对其进行两层递归划分,得到空间八叉树划分及其对应的八叉树结构,分别如图5的右边和左边所示。
本实施例中,属性信息以颜色为例展开,但是颜色只是属性信息的一种呈现形式。在图5中的八叉树结构中,非空节点用实心黑点表示。在每一个非空八叉树节点中,存储此节点的位置以及颜色信息。一个非空八叉树节点的位置设为对应八叉树单元的几何中心。每一个非空树叶节点,其颜色设为对应八叉树单元中包含的点的颜色的平均值。每一个非叶节点的颜色取自于其源子节点。八叉树如此构造之后,所有非空叶节点构成原始点云模型的一个无损表示(每一个非空叶节点的位置与颜色给出模型中的一个点);每一个中间层次的非空节点构成一个相对粗糙的近似点云模型(中间层次中每一个非空节点的位置与颜色给出近似点云模型中的一个点),称为细节级别。
然后,编码器开始进行位置和颜色编码。首先,它直接输出整个模型立方体包围盒的位置和大小信息以及根节点的颜色信息。然后,它对于整个八叉树从根节点开始做一个宽度优先的遍历。对于每一个非空节点,它编码对应八叉树单元细分的几何与颜色细化信息,亦即其非空子节点的位置和颜色信息。
需要指出的是位置细化信息在颜色细化信息之前被编码/解码。因此,编码/解码颜色细化信息的时候,编码器/解码器都知道局部的几何信息,且用此局部的几何信息来确定源子节点
S102,从所述树形结构中每一个非叶节点的非空子节点中确定出距离所有非空子节点的重心最近的第一非空子节点作为其源子节点,将所述非叶节点的属性使用其源子节点的属性进行赋值,所述树形结构中每一个非空叶节点的属性赋值为其所含三维点属性的平均值。
对于每一个非叶节点,它的颜色直接取自于它的一个非空子节点,称为源子节点。如果一个非叶节点只有一个非空子节点,那么这个唯一的非空子节点即为源子节点。否则,其非空子节点中,位置离所有非空子节点平均位置最近的那一个作为源子节点。当有冲突时,(x,y,z)字典排序最小的那一个被取做源子节点。
两个源子节点选择的例子显示在图6。图6(a)显示了一个八叉树节点细分产生的子节点,用它们对应的八叉树单元来表示。其中,有三个非空子节点,它们的颜色如图中所示。其中,A子节点离三个非空子节点的平均位置最近,被选为源子节点,且其颜色被赋值到父节点,如图6(b)所示。图6(c)显示了另外一个八叉树节点细分产生的子节点,用它们对应的八叉树单元来表示。其中,有四个非空子节点。其中,B和C的两个子节点离四个非空子节点的平均位置最近,且这两个距离相等,产生冲突。此时,C子节点被选作源子节点,因为其(x,y,z)坐标字典排序比B子节点的要小。相应的,父节点的颜色被设置为C子节点的颜色,如图6(d)所示。
需要强调的是,将父节点颜色赋值成一个非空子节点(即源子节点)的颜色,是一个重要的创新点,这与传统算法将每一个非空节点的颜色赋值为其包含的所有点的颜色平均值不同。这样做当父节点细分时,就无需再编码源子节点的颜色了,节省了颜色编码的代价。但这样做的前提是编码器和解码器在源子节点的选择上要保持一致。由于几何信息先于颜色信息被编码/解码,编码器和解码器即可根据已知的细化后的局部几何信息,根据同样的规则来选择相同的源子节点。
S103,自上而下以宽度优先的方式遍历树中的每一个节点,如果第一非叶节点中的非空子节点数目多于一个,计算第一非叶节点与除其源子节点之外的每一个非空子节点的属性残差,且对属性残差进行编码;如果第一非叶节点只有一个非空子节点,则此非空子节点继承第一非叶节点的属性值且无需做属性编码,对于叶节点,无需做任何编码操作,对于根节点的属性单独编码。
虽然位置数据编码不是本申请的创新点,但为了做一个完整的点云编码器,仍然做了位置数据编码,解释如下:
对于每一个八叉树单元细分,相应的八叉树节点分裂成八个子节点。编码器需要告诉解码器哪些子节点非空,从而解码器可以重构出同样的八叉树结构。和Huang et al一样,对于每一个子节点,用一个比特位表示是否非空,‘1’表示非空,‘0’表示空。八个子节点的标志位按照固定的顺序组合在一起形成一个字节码。如图4所示,左边的八叉树单元细分,其对应的字节码为00011100。
对于在宽度优先遍历八叉树中遇到的所有的八叉树单元细分字节码,使用算术编码器进行熵编码。
对于每一个八叉树节点分裂,解码器需要确定每一个非空子节点的颜色。如果只有一个非空子节点,它也是源子节点,其颜色与父节点的颜色相同,无需额外编码。否则,除源子节点之外的每一个非空子节点的颜色都需要编解码。由于父节点的颜色对于局部区域内点的颜色提供了一个高层抽象,使用父节点的颜色来预测源子节点之外的每一个非空子节点的颜色,且对于预测误差(残差)使用算术编码器做熵编码。对于残差的计算,可以采用两种方式:减法或者按位异或。根据实验,减法对于信息熵的减小效果更好一些,从而压缩率略偏高一些,但按位异或的运算效率更高一些。
在编解码过程中,对于每一个八叉树节点分裂,编码器和解码器需要定位源子节点。当有多于两个非空子节点时,这涉及到一些平均位置以及距离的计算,运算代价较大。由于只有八个子节点,共有256种可能的非空子节点个数以及分布情况,并且对于每一种情况,其源子节点是唯一确定的。因此,本实施例提前计算好每一种情况下源子节点的索引,且将其存入一个共有256项的表格当中。在实时编解码运行过程中,对于每一个八叉树节点分裂,使用此分裂对应的字节码查找此表格,直接得到对应的源子节点索引。这样,以表格查找代替平均位置以及距离计算,可以减少运算量,显著提高运算效率。
本申请还通过实验来对于本实施例所提出的三维点云属性压缩方法进行性能评估。
和Liu et al一样,实验中使用16个三维点云模型,如图7所示。这些模型中包括(a)-(j)所显示的包含稠密点的人物肖像模型以及(k)-(p)所显示的包含稀疏点的雕塑模型。图7(a)-(e)所显示的模型选自MicrosoftVoxelized Upper Bodies数据集的动态点云序列,它们的帧号分别是0,39,0,1,18。图7(f)-(j)所显示的模型来自8i Voxelized FullBodies。图7(k)-(p)所显示的大规模稀疏点云模型是从common test conditions(CTC)中的静态物体和场景数据中提取出来的。在编码之前,将颜色属性由RGB空间转换到YUV空间来表示。
将申请提出的三维点云属性压缩方法与TMC13和TMC2做实验比较,比较它们在“Case 1:几何与颜色皆做无损压缩”方面的性能。性能度量标准包括编码率、编码时间以及解码时间。
本实施例中使用的电脑配置如下:台式机,Intel Corei7 7700K CPU(4.2GHz),64GB内存,Windows10操作系统。这和Liu et al.[32]使用的电脑配置大致相当。Liu etal.[32]使用的电脑配置如下:Intel Core i7 8700KCPU(3.7GHz),64GB内存,Windows 10操作系统。
使用本实施例中的的方法,对于16个测试模型做无损压缩,且与TMC13中基于LoD的不带LT的方法以及TMC2的方法比较编码率以及运行效率。本申请实施例提出的点云属性压缩方法简写为HBDC,本实施例中只运行HBDC编码器,统计其编码率以及时间代价。对于TMC13和TMC2的相关统计数据,直接从现有技术中得到,认为这种比较是有效的。首先,编码率是不随计算平台的改变而改变的。其次,本实施例中使用的计算平台和现有技术中使用的计算平台具有大致相当的配置,所以时间比较仍然是具有参考价值的。
编码率以及运行时间的统计数据在表1中给出。从表1中看到,与TMC2相比,TMC13(基于LoD的不带LT的编码器)在几何编码与颜色编码方面都需要更少的比特数,需要小得多的时间代价。因此,TMC13比TMC2更适合无损的点云数据压缩。进一步,从表1中观察到,HBDC方法达到的平均颜色编码率为11.38bpp,比TMC13的颜色编码特率减少了大约11%,在编码时间效率方面,HBDC则有更大提高。如表1所示,HBDC的平均编码时间为2.01秒,仅仅是TMC13所用平均编码时间的24.3%。表中显示的编码时间为几何与颜色编码的总时间,但TMC13颜色编码时间占总编码时间的大部分,因此,以上时间比较反映出HBDC相较于TMC13在颜色编码时间上的极大优势。此外,从表1中看到,HBDC的解码时间仅为其编码时间的大约二分之一。
表1无损几何与颜色压缩所需要的编码率与时间代价比较。
需要强调的是,本申请实施例的主要贡献在于属性编码而不是几何编码。对于几何编码,仅仅使用了一个十分初级的编码器。因此,表1中显示的HBDC的几何编码率不算最低。本工作中使用的初级几何编码器完全可以用其它更好的几何编码器来替代以达到更低的几何编码率。
与上述实施例提供的一种三维点云属性压缩方法相对应,本申请还提供了一种三维点云属性压缩系统的实施例。参见图8,三维点云属性压缩系统20包括:节点量化模块201、属性赋值模块202和压缩编码模块203。
所述节点量化模块201,用于将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织。所述属性赋值模块202,用于从所述树形结构中每一个非叶节点的非空子节点中确定出距离所有非空子节点的重心最近的第一非空子节点作为源子节点,所述非叶节点包含有多个子节点,所述子节点包括空子节点和非空子节点,将所述非叶节点的属性使用所述第一非空子节点的属性进行赋值,所述树形结构中每一个非空叶节点的属性赋值为其所含三维点属性的平均值。所述压缩编码模块203,用于自上而下以宽度优先的方式遍历树中的每一个节点,如果第一非空节点中的非空子节点具有多个,计算第一非空节点与除源子节点之外的每一个非空子节点的属性残差,且对所述属性残差进行编码;或者,如果所述第一非空节点只有一个非空子节点,则此非空子节点继承所述第一非空节点的属性值且无需做属性编码。
进一步地,所述节点量化模块201包括计算单元、获取单元、第一细分单元和第二细分单元。
所述计算单元,用于计算出所述三维点云模型的长方体包围盒。所述获取单元,用于将所述长方体包围盒中最小的两个维度扩展获得立体包围盒,所述立体包围盒对应一个八叉树单元,且对应八叉树中的根节点。所述第一细分单元,用于将所述八叉树单元继续细分,每次细分一个非空的八叉树单元被细分为八个大小相同的子八叉树单元。所述第二细分单元,用于将每一个非空子八叉树继续细分,获得一颗多层次的空间八叉树,其中在划分过程中产生的每一个八叉树单元对应八叉树数据结构中的一个节点,每一个非空八叉树单元对应的节点称为非空节点。本实施例中,一个非空八叉树节点的位置设为对应八叉树单元的几何中心。
所述属性赋值模块202进行源子节点确定时,如果在非叶节点中存在至少两个非空子节点距离所有非空子节点的重心距离相同,则将坐标字典排序最小的非空子节点作为源子节点。
为了加速所述源子节点的定位,本实施例中根据八叉树单元中非空子节点个数以及分布情况,计算好每一种情况下源子节点的索引,且将其存入一个共有256项的表格中,所述表格用于编码的在线查找。
压缩编码模块203进行属性残差计算时,采用减法或者按位异或操作。
本申请还提供了一种终端的实施例,参见图9,终端30包括处理器301、存储器302和通信接口303。
在图9中,处理器301、存储器302和通信接口303可以通过总线相互连接;总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器301通常是控制终端30的整体功能,例如终端30的启动、以及终端启动后执行以下步骤:将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织。从所述树形结构中每一个非叶节点的非空子节点中确定出距离所有非空子节点的重心最近的第一非空子节点作为其源子节点,将所述非叶节点的属性使用其源子节点的属性进行赋值,所述树形结构中每一个非空叶节点的属性赋值为其所含三维点属性的平均值。自上而下以宽度优先的方式遍历树中的每一个节点。如果第一非叶节点中的非空子节点数目多于一个,计算第一非叶节点与除其源子节点之外的每一个非空子节点的属性残差,且对属性残差进行编码;如果第一非叶节点只有一个非空子节点,则此非空子节点继承第一非叶节点的属性值且无需做属性编码,对于叶节点,无需做任何编码操作,对于根节点的属性单独编码。
此外,处理器301可以是通用处理器,例如,中央处理器(英文:centralprocessing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器也可以是微处理器(MCU)。处理器还可以包括硬件芯片。上述硬件芯片可以是专用集成电路(ASIC),可编程逻辑器件(PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(CPLD),现场可编程逻辑门阵列(FPGA)等。
存储器302被配置为存储计算机可执行指令以支持终端30数据的操作。存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
启动终端30后,处理器301和存储器302上电,处理器301读取并执行存储在存储器302内的计算机可执行指令,以完成上述的三维点云属性压缩方法实施例中的全部或部分步骤。
通信接口303用于终端30传输数据,例如实现与用户之间的数据通信。通信接口303包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口包括USB接口、MicroUSB接口,还可以包括以太网接口。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
在一个示意性实施例中,本申请实施例提供的终端30还包括电源组件,电源组件为终端30的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为终端30生成、管理和分配电力相关联的组件。
通信组件,通信组件被配置为便于终端30和其他设备之间有线或无线方式的通信。终端30可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
本申请说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统及终端实施例而言,由于其中的方法基本相似于方法的实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当然,上述说明也并不仅限于上述举例,本申请未经描述的技术特征可以通过或采用现有技术实现,在此不再赘述;以上实施例及附图仅用于说明本申请的技术方案并非是对本申请的限制,如来替代,本申请仅结合并参照优选的实施方式进行了详细说明,本领域的普通技术人员应当理解,本技术领域的普通技术人员在本申请的实质范围内所做出的变化、改型、添加或替换都不脱离本申请的宗旨,也应属于本申请的权利要求保护范围。
Claims (9)
1.一种三维点云属性压缩方法,其特征在于,所述方法包括:
将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织;
从所述树形结构中每一个非叶节点的非空子节点中确定出距离所有非空子节点的重心最近的第一非空子节点作为其源子节点,将所述非叶节点的属性使用其源子节点的属性进行赋值,所述树形结构中每一个非空叶节点的属性赋值为其所含三维点属性的平均值;
自上而下以宽度优先的方式遍历树中的每一个节点,如果第一非叶节点中的非空子节点数目多于一个,计算第一非叶节点与除其源子节点之外的每一个非空子节点的属性残差,且对属性残差进行编码;如果第一非叶节点只有一个非空子节点,则此非空子节点继承第一非叶节点的属性值且无需做属性编码,对于叶节点,无需做任何编码操作,对于根节点的属性单独编码。
2.根据权利要求1所述的方法,其特征在于,所述将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织,包括:
计算出所述三维点云模型的长方体包围盒;
将所述长方体包围盒中最小的两个维度扩展获得立方体包围盒,所述立方体包围盒对应一个八叉树单元,且对应八叉树中的根节点,所述八叉树单元及八叉树根节点皆为非空;
将所述八叉树单元进行细分,每次细分将一个非空的包含至少一个三维点的八叉树单元细分为八个大小相同的子八叉树单元,且对应的八叉树节点细分产生八个子八叉树节点,所述子八叉树单元与所述子八叉树节点一一对应;
将非空子八叉树单元继续迭代细分,对应的子八叉树节点继续迭代细分,获得一棵多层次的空间八叉树,其中在细分过程中产生的每一个八叉树单元对应八叉树数据结构中的一个节点,每一个非空八叉树单元对应的节点称为非空八叉树节点或非空节点。
3.根据权利要求2所述的方法,其特征在于,一个非空八叉树节点的位置设为对应八叉树单元的几何中心。
4.根据权利要求3所述的方法,其特征在于,如果第一非叶节点有至少两个非空子节点距离所有非空子节点的重心距离相同,则将坐标字典排序最小的第一非空子节点作为其源子节点。
5.根据权利要求4所述的方法,其特征在于,对于一个非空节点,根据对应八叉树单元的非空子单元的个数以及分布情况,计算好每一种情况下源子节点的索引,且将其存入一个共有256项的表格中,所述表格用于编码的在线查找,以加速所述源子节点的定位。
6.根据权利要求1所述的方法,其特征在于,进行属性残差计算时,采用减法或者按位异或操作。
7.一种三维点云属性压缩系统,其特征在于,所述系统包括:
节点量化模块,用于将三维点云模型中点云的位置进行量化为节点且将所有节点通过树形结构进行组织;
属性赋值模块,用于从所述树形结构中每一个非叶节点的非空子节点中确定出距离所有非空子节点的重心最近的第一非空子节点作为其源子节点,将所述非叶节点的属性使用其源子节点的属性进行赋值;所述树形结构中每一个非空叶节点的属性赋值为其所含三维点属性的平均值;
压缩编码模块,用于自上而下以宽度优先的方式遍历树中的每一个节点,如果第一非叶节点中的非空子节点数目多于一个,计算第一非叶节点与除其源子节点之外的每一个非空子节点的属性残差,且对属性残差进行编码;如果第一非叶节点只有一个非空子节点,则此非空子节点继承第一非叶节点的属性值且无需做属性编码,对于叶节点,无需做任何编码操作,对于根节点的属性单独编码。
8.根据权利要求7所述的系统,其特征在于,所述节点量化模块,包括:
计算单元,用于计算出所述三维点云模型的长方体包围盒;
获取单元,用于将所述长方体包围盒中最小的两个维度扩展获得立方体包围盒,所述立方体包围盒对应一个八叉树单元,且对应八叉树中的根节点,所述八叉树单元及八叉树根节点皆为非空;
第一细分单元,用于将所述八叉树单元进行细分,每次细分将一个非空的包含至少一个三维点的八叉树单元细分为八个大小相同的子八叉树单元,且对应的八叉树节点细分产生八个子八叉树节点,所述子八叉树单元与所述子八叉树节点一一对应;
第二细分单元,用于将非空子八叉树单元继续迭代细分,对应的子八叉树节点继续迭代细分,获得一棵多层次的空间八叉树,其中在细分过程中产生的每一个八叉树单元对应八叉树数据结构中的一个节点,每一个非空八叉树单元对应的节点称为非空八叉树节点或非空节点。
9.一种终端,其特征在于,包括:
处理器;
存储器,用于存储计算机可执行指令;
当所述处理器执行所述计算机可执行指令时,所述处理器执行权利要求1-6任一项所述的三维点云属性压缩方法,对三维点云属性进行压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011117567.9A CN112256652B (zh) | 2020-10-19 | 2020-10-19 | 一种三维点云属性压缩方法、系统及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011117567.9A CN112256652B (zh) | 2020-10-19 | 2020-10-19 | 一种三维点云属性压缩方法、系统及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256652A true CN112256652A (zh) | 2021-01-22 |
CN112256652B CN112256652B (zh) | 2022-09-16 |
Family
ID=74245681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011117567.9A Active CN112256652B (zh) | 2020-10-19 | 2020-10-19 | 一种三维点云属性压缩方法、系统及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256652B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113284203A (zh) * | 2021-05-04 | 2021-08-20 | 北京航空航天大学 | 基于八叉树编码和体素上下文的点云压缩及解压缩方法 |
CN113676738A (zh) * | 2021-08-19 | 2021-11-19 | 上海交通大学 | 一种三维点云的几何编解码方法及装置 |
EP4358519A4 (en) * | 2021-07-14 | 2024-09-25 | Lg Electronics Inc | DEVICE AND METHOD FOR TRANSMITTING POINT CLOUD DATA AND DEVICE AND METHOD FOR RECEIVING POINT CLOUD DATA |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104902255A (zh) * | 2015-03-05 | 2015-09-09 | 华东师范大学 | 一种基于体扫描三维显示系统的数据源生成方法 |
CN106846425A (zh) * | 2017-01-11 | 2017-06-13 | 东南大学 | 一种基于八叉树的散乱点云压缩方法 |
CN108322742A (zh) * | 2018-02-11 | 2018-07-24 | 北京大学深圳研究生院 | 一种基于帧内预测的点云属性压缩方法 |
CN108632607A (zh) * | 2018-05-09 | 2018-10-09 | 北京大学深圳研究生院 | 一种基于多角度自适应帧内预测的点云属性压缩方法 |
CN108805261A (zh) * | 2017-04-28 | 2018-11-13 | 微软技术许可有限责任公司 | 基于八叉树的卷积神经网络 |
CN109257604A (zh) * | 2018-11-20 | 2019-01-22 | 山东大学 | 一种基于tmc3点云编码器的颜色属性编码方法 |
CN110070613A (zh) * | 2019-04-26 | 2019-07-30 | 东北大学 | 基于模型压缩和异步加载的大型三维场景网页展示方法 |
CN110278444A (zh) * | 2019-07-17 | 2019-09-24 | 华侨大学 | 一种采用几何引导的稀疏表示三维点云压缩方法 |
CN110533645A (zh) * | 2019-08-23 | 2019-12-03 | 上海交通大学 | 基于视觉任务的点云数据压缩质量评价方法及系统 |
CN110572655A (zh) * | 2019-09-30 | 2019-12-13 | 北京大学深圳研究生院 | 一种基于邻居权重的参数选取和传递的点云属性编码和解码的方法及设备 |
CN111699697A (zh) * | 2019-06-14 | 2020-09-22 | 深圳市大疆创新科技有限公司 | 一种用于点云处理、解码的方法、设备及存储介质 |
-
2020
- 2020-10-19 CN CN202011117567.9A patent/CN112256652B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104902255A (zh) * | 2015-03-05 | 2015-09-09 | 华东师范大学 | 一种基于体扫描三维显示系统的数据源生成方法 |
CN106846425A (zh) * | 2017-01-11 | 2017-06-13 | 东南大学 | 一种基于八叉树的散乱点云压缩方法 |
CN108805261A (zh) * | 2017-04-28 | 2018-11-13 | 微软技术许可有限责任公司 | 基于八叉树的卷积神经网络 |
CN108322742A (zh) * | 2018-02-11 | 2018-07-24 | 北京大学深圳研究生院 | 一种基于帧内预测的点云属性压缩方法 |
CN108632607A (zh) * | 2018-05-09 | 2018-10-09 | 北京大学深圳研究生院 | 一种基于多角度自适应帧内预测的点云属性压缩方法 |
CN109257604A (zh) * | 2018-11-20 | 2019-01-22 | 山东大学 | 一种基于tmc3点云编码器的颜色属性编码方法 |
CN110070613A (zh) * | 2019-04-26 | 2019-07-30 | 东北大学 | 基于模型压缩和异步加载的大型三维场景网页展示方法 |
CN111699697A (zh) * | 2019-06-14 | 2020-09-22 | 深圳市大疆创新科技有限公司 | 一种用于点云处理、解码的方法、设备及存储介质 |
CN110278444A (zh) * | 2019-07-17 | 2019-09-24 | 华侨大学 | 一种采用几何引导的稀疏表示三维点云压缩方法 |
CN110533645A (zh) * | 2019-08-23 | 2019-12-03 | 上海交通大学 | 基于视觉任务的点云数据压缩质量评价方法及系统 |
CN110572655A (zh) * | 2019-09-30 | 2019-12-13 | 北京大学深圳研究生院 | 一种基于邻居权重的参数选取和传递的点云属性编码和解码的方法及设备 |
Non-Patent Citations (1)
Title |
---|
杨晓文等: "《基于八叉树的卷积神经网络三维模型分割》", 《计算机工程与设计》, vol. 41, no. 9, 16 September 2020 (2020-09-16), pages 2663 - 2669 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113284203A (zh) * | 2021-05-04 | 2021-08-20 | 北京航空航天大学 | 基于八叉树编码和体素上下文的点云压缩及解压缩方法 |
CN113284203B (zh) * | 2021-05-04 | 2022-07-12 | 北京航空航天大学 | 基于八叉树编码和体素上下文的点云压缩及解压缩方法 |
EP4358519A4 (en) * | 2021-07-14 | 2024-09-25 | Lg Electronics Inc | DEVICE AND METHOD FOR TRANSMITTING POINT CLOUD DATA AND DEVICE AND METHOD FOR RECEIVING POINT CLOUD DATA |
CN113676738A (zh) * | 2021-08-19 | 2021-11-19 | 上海交通大学 | 一种三维点云的几何编解码方法及装置 |
CN113676738B (zh) * | 2021-08-19 | 2024-03-29 | 上海交通大学 | 一种三维点云的几何编解码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112256652B (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7084703B2 (ja) | 物理的属性を表す信号の圧縮 | |
CN112256652B (zh) | 一种三维点云属性压缩方法、系统及终端 | |
US20210012538A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
Zhu et al. | Lossless point cloud geometry compression via binary tree partition and intra prediction | |
EP4131975A1 (en) | Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus, and point cloud data reception method | |
CN115102935B (zh) | 一种点云编码方法、点云解码方法及相关设备 | |
CN115379191B (zh) | 一种点云解码方法、点云编码方法及相关设备 | |
CN115914650A (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
KR20230060534A (ko) | 2차원 정규화 평면 투사에 기초한 포인트 클라우드 인코딩 및 디코딩 방법과 장치 | |
JP2024050705A (ja) | 属性情報の予測方法、エンコーダ、デコーダ及び記憶媒体 | |
CN113518226A (zh) | 一种基于地面分割的g-pcc点云编码改进方法 | |
CN115396668A (zh) | 点云数据的解码方法、编码方法、装置、存储介质及设备 | |
Li et al. | Point Cloud Compression: Technologies and Standardization | |
WO2022131948A1 (en) | Devices and methods for sequential coding for point cloud compression | |
WO2023179710A1 (zh) | 编码方法及终端 | |
CN117581549A (zh) | 帧内预测、编解码方法及装置、编解码器、设备、介质 | |
WO2021108970A1 (zh) | 点云处理方法、编码器、解码器及存储介质 | |
WO2024216479A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024212043A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024216476A1 (zh) | 编解码方法、编码器、解码器、码流以及存储介质 | |
WO2024216477A1 (zh) | 编解码方法、编码器、解码器、码流以及存储介质 | |
WO2024212045A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024207481A1 (zh) | 编解码方法、编码器、解码器、码流以及存储介质 | |
WO2024207456A1 (zh) | 编解码方法、编码器、解码器、码流以及存储介质 | |
CN116458158B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |