掌桥专利:专业的专利平台
掌桥专利
首页

基于多邻居状态转换的点云几何编解码方法及装置

文献发布时间:2024-04-18 19:58:26


基于多邻居状态转换的点云几何编解码方法及装置

技术领域

本发明属于点云压缩编码技术领域,具体涉及一种基于多邻居状态转换的点云几何编解码方法及装置。

背景技术

在点云G-PCC(Geometry-based Point Cloud Compression,基于几何的点云压缩编码)编码器框架中,点云的几何信息和属性信息是分开进行编码的。目前G-PCC的几何编解码可分为基于八叉树的几何编解码和基于预测树的几何编解码。

在基于八叉树的几何编码框架中,首先对几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中,然后再进行体素化处理,接着按照广度优先遍历的顺序不断对bounding box进行树划分,对划分产生的子节点,以一位bit来表示该节点在空间中对应的长方体块是否包含点,称为占位码。将包围盒依次划分得到子节点,对非空的(包含点云中的点)的子节点继续进行划分,直到划分得到的叶子节点为1x1x1的单位立方体时停止划分,最后对每个节点的占位码进行编码,同时对叶子节点中所包含的点数进行编码,以完成几何八叉树的编码,生成二进制码流。

在现有的八叉树编码框架中,对于占位码的编码,通常根据待编码符号(即待编码子节点的占位码)的状态信息确定具体的编码规则。这其中涉及到两个问题,一是待编码符号状态的生成,二是待编码符号状态与具体编码规则之间的对应关系。

对于第一个问题,在现有的八叉树编码中,主要采用以下五部分信息生成待编码符号的状态:一是待编码子节点位于当前节点的位置信息;二是当前节点的六个共面邻居节点的占据情况,也即六近邻状态;三是待编码子节点的已编码兄弟节点占据情况;四是待编码子节点的帧内预测状态;五是已编码的邻居子节点的占位情况。一般而言,进行八叉树划分的节点,会产生8个子节点,其索引值为0~7。在进行待编码符号的状态表征时,选用上述任一种情况下的信息进行状态表示。考虑子节点的索引不同、帧内预测状态以及邻居子节点状态,则对于任意子节点来说,其状态总数为10872个。

然而,上述方法仍存在不足之处。例如,六近邻状态和兄弟状态中,不同的子节点的取值范围差异过大;又如,在邻居子节点状态中,没有考虑到邻居子节点对不同子节点的影响,这使得选取的邻居节点与待编码子节点的相关性不高,从而影响待编码符号的状态表征,进而影响了编码效果。

对于第二个问题,公开号为US20210167795A1的专利文献提供了一种编码器映射方法,其将待编码子节点的占位码(也即待编码符号)的一系列离散状态映射到数量较少的二进制编码器集合中,并且在每次占位码编码完成之后,更新映射关系,从而实现占位码状态到不同编码器的映射。

然而,上述方法需要对输入的每个状态都进行编码器映射并且更新映射关系,计算过程较为复杂,且占用内存较多。例如,对于10872个状态,每个状态都要存储一个8bit的值用于记录其映射的二进制编码索引,则耗费内存为10872×8=86976bits,这使得算法开销较大,硬件实现难度较高。

发明内容

为了解决现有技术中存在的上述问题,本发明提供了一种基于多邻居状态转换的点云几何编解码方法及装置。本发明要解决的技术问题通过以下技术方案实现:

第一方面,本发明提供了一种基于多邻居状态转换的点云几何编码方法,包括:

获取点云数据中待编码子节点的占位信息及其多种邻居状态信息;

对所述待编码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换;

将所述待编码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到编码器索引;

根据所述编码器索引对所述待编码子节点的占位信息进行编码。

第二方面,本发明提供了一种基于多邻居状态转换的点云几何编码装置,包括:

第一数据获取模块,用于获取点云数据中待编码子节点的占位信息及其多种邻居状态信息;

第一状态转换模块,用于对所述待编码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换;

第一信息组合模块,用于将所述待编码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到编码器索引;

编码模块,用于根据所述编码器索引对所述待编码子节点的占位信息进行编码。

第三方面,本发明提供了一种基于多邻居状态转换的点云几何解码方法,包括:

获取待解码子节点的码流及其多种邻居状态信息;

对所述待解码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换;

将所述待解码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到解码器索引;

根据所述解码器索引对所述待解码子节点的码流进行解码。

第四方面,本发明提供了一种基于多邻居状态转换的点云几何解码装置,包括:

第二数据获取模块,用于获取待解码子节点的码流及其多种邻居状态信息;

第二状态转换模块,用于对所述待解码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换;

第二信息组合模块,用于将所述待解码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到解码器索引;

解码模块,用于根据所述解码器索引对所述待解码子节点的码流进行解码。

本发明的有益效果:

本发明提供的基于多邻居状态转换的点云几何编解码方法一方面通过使用相关性更强的多种邻居状态信息,使得状态值的表征效果更好,进而提升了编码效果;另一方面通过对邻居状态进行基于记忆信道的状态转换,将具有占用内存较多的状态转换为另一种占用内存较少的状态,并将所有邻居状态转换进行上下文信息组合,以生成了待编码符号的状态,计算过程较为简单,大大降低了算法的内存消耗,进而降低了码率,提高了编码效率。

以下将结合附图及实施例对本发明做进一步详细说明。

附图说明

图1是本发明实施例提供的一种基于多邻居状态转换的点云几何编码方法的流程示意图;

图2是本发明实施例提供的与待编码子节点共面的邻居父节点示意图;

图3是本发明实施例提供的与待编码子节点共边的邻居父节点示意图;

图4是本发明实施例提供的第三状态C3取值与空间结构的对应关系;

图5是本发明实施例提供的与待编码子节点共面、共边、共点的已编码邻居子节点示意图;

图6是本发明实施例提供的与待编码子节点同层同位置的邻居子节点示意图;

图7是本发明实施例提供的对某一待编码子节点的占位信息进行编码的详细过程示意图;

图8是本发明实施例提供的一种基于多邻居状态转换的点云几何编码装置的结构示意图;

图9是本发明实施例提供的一种基于多邻居状态转换的点云几何解码方法的流程示意图;

图10是本发明实施例提供的对某一待解码子节点的码流进行解码的详细过程示意图;

图11是本发明实施例提供的一种基于多邻居状态转换的点云几何解码装置的结构示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

本实施例提供了一种基于多邻居状态转换的点云几何编码方法。请参见图1,图1是本发明实施例提供的一种基于多邻居状态转换的点云几何编码方法的流程示意图,其包括:

步骤1:获取点云数据中待编码子节点的占位信息及其多种邻居状态信息。

在点云的几何编码框架中,对待编码子节点进行编码主要包括对该子节点的占位信息,又称占位码(本实施例又称待编码符号)进行编码以及对叶子节点中的点数进行编码。其中,对于叶子节点中点数的编码可参考现有技术实现,本实施例主要介绍对待编码符号进行编码的过程。

首先,获取点云数据中待编码子节点及其占位信息。

一般的,通常通过对点云数据按照广度优先遍历的顺序不断对包围盒进行八叉树划分,同时对非空的(包含点云中的点)的子节点继续进行划分,直到划分得到的叶子节点为1x1x1的单位立方体时停止划分,得到若干待编码的子节点,对划分产生的子节点,以一位bit来表示该节点在空间中对应的长方体块是否包含点,又称该子节点的占位信息。

此外,还可以采用四叉树或者二叉树划分的方式得到若干待编码子节点。在本实施例中,主要以八叉树划分为例,进行说明。

可以理解的是,在对点云几何信息进行八叉树划分之前,需要先对点云的几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中。然后再进行量化。这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。关于坐标转换和体素化的具体过程,可参考现有的相关技术,本实施例在此不作详细说明。

然后,计算该待编码子节点的多种邻居状态信息。

在本实施例中,待编码子节点的多种邻居状态信息至少包括第一邻居信息和第二邻居信息。

具体的,可以将当前待编码子节点的邻居节点信息划分为两个以上的多个部分,以从不同角度表示当前待编码子节点的邻居状态。

为了便于描述算法的具体实现过程,优选的,本实施例以将待编码子节点的邻居信息划分为两部分为例进行详细说明。

具体地,对于当前待编码子节点,可以将邻居信息划分为第一邻居信息和第二邻居信息两部分,又称邻居节点信息1和邻居节点信息2,其状态分别记为C和M;其中,

第一邻居信息为与待编码子节点同层的邻居父节点占位信息;

第二邻居信息为与待编码子节点同层且已编码的邻居子节点占位信息。

更具体的,第一邻居信息至少包括第一状态、第二状态以及第三状态中的一种;其中,

第一状态为与待编码子节点共面的邻居父节点的占据情况;

第二状态为与待编码子节点共边的邻居父节点的占据情况;

第三状态为待编码子节点所属父节点的六个共面邻居的占据情况。

在本实施例中,对于邻居节点信息1,考虑将当前节点的同层邻居信息,也就是待编码子节点的父节点层邻居信息作为待编码子节点的邻居节点信息1,其可以包括多种情况。本实施例选取了三种状态用以联合表示邻居节点信息1的状态C。下面分别对这三种状态进行介绍。

1、第一状态

本实施例以与待编码子节点直接接触的3个父节点共面邻居的占据情况C1表示第一状态,其中,C1表示3个共面邻居中被占据的个数,其取值范围为0~3。

具体的,请参见图2,图2是本发明实施例提供的与待编码子节点共面的邻居父节点示意图,其中,黑色实线框节点为当前节点,虚线框节点为邻居节点,黑色节点是待编码子节点,则C1的计算公式如下:

C1=n

其中,n

2、第二状态

本实施例以与待编码子节点直接接触的3个父节点共边邻居的占据情况C2表示第二状态,其中,表示3个共边邻居中被占据的个数,其取值范围为0~3。

具体的,请参见图3,图3是本发明实施例提供的与待编码子节点共边的邻居父节点示意图,其中,黑色实线框节点为当前节点,虚线框节点为邻居节点,黑色节点是待编码子节点,则C2的计算公式如下:

C2=n

其中,n

3、第三状态

本实施例以当前节点的6个共面邻居的占据情况C3表示第三状态,其中,C3表示这6个邻居中,占位码为1的邻居中是否分布在当前节点的3个轴方向上,其取值为0或1,0代表6个邻居中被占据的邻居没有分布在3个轴方向上,1代表6个邻居中被占据的邻居分布在3个轴方向上。C3取值与空间结构的对应关系如图4所示,图中黑色实线框节点为当前节点,虚线框节点为邻居节点,构成的空间结构可以沿任意轴进行旋转、翻转。

基于上述三部分信息,可以得到第一邻居信息的状态C的计算公式为:

C=(C1×4+C2)×2+C3

需要说明的是,本实施例在此处选取了三种状态联合表示第一邻居信息的状态C,本领域技术人员可以理解的是,还可以单独采用其中一种,或者采用其中两种进行组合以表示状态C。此外,还可以采用除上述三种状态之外的其他状态进行单独或者组合表示,本实施例对此不作限定。

进一步的,第二邻居信息至少包括第四状态和第五状态中的一种;其中,

第四状态为与待编码子节点共面、共边、共点的多个已编码子节点的占据情况;

第五状态为与当前待编码子节点共面的父节点中位置与当前待编码子节点在其父节点中位置相同的子节点的占据情况。

在本实施例中,对于邻居节点信息2,考虑基于子节点层中已编码的邻居信息进行表示,记为M。同邻居节点信息1,其也可以分为多个部分,本实施例选取了以下两种情况联合表示M。

a、第四状态

本实施例选择与当前待编码子节点3个共面、3个共边、1个共点共7个子节点层邻居状态表示第四状态,记为M1。

请参见图5,图5是图5是本发明实施例提供的与待编码子节点共面、共边、共点的已编码邻居子节点示意图;其中,黑色实线框节点为当前节点,黑色节点是待编码子节点,灰色节点是子节点层邻居,则M1的计算公式为:

其中,j代表选取的任一邻居子节点在这7个邻居子节点中的索引,s

b、第五状态

本实施例以与当前待编码子节点共面的父节点中位置与所述当前待编码子节点在其父节点中位置相同的子节点的占据情况表示第五状态,记为M2。

也即,在当前节点的已被划分的3个共面邻居中,各自选择1个子节点邻居,以这3个子节点邻居占据信息组成状态M2,被选择的子节点邻居相对于其父节点的位置应与待编码子节点相对于当前节点的位置相同。即若待编码子节点相对当前节点中的索引值为i,3个子节点邻居相对其父节点的索引值也同样为i。

以子节点7为例,选取的三个子节点邻居如下图6所示,图6是本发明实施例提供的与待编码子节点同层同位置的邻居子节点示意图;其中,黑色节点是待编码子节点,灰色节点是子节点层邻居。

以这3个子节点的占位情况组成状态M2,其计算公式为:

M2=s

其中,s

结合第四状态和第五状态两方面的信息,则状态M计算公式为:

M=M1×8+M2

M的取值范围为0~1023,共1024个状态值。

需要说明的是,同第一邻居信息,本实施例在此处也选取了两种状态联合表示第二邻居信息的状态M,本领域技术人员可以理解的是,还可以单独采用其中一种进行表示。此外,还可以采用除上述两种状态之外的其他状态进行单独或者组合表示,本实施例对此不作限定。

至此,得到了当前待编码子节点符号的两种邻居状态信息,即第一邻居信息的状态C和第二邻居信息的状态M。

本实施例采用上述相关性更强的多种邻居状态信息生成待编码符号的状态,使得状态值的表征效果更好,进而降低了码率,提升了编码效果。

步骤2:对待编码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换。

21)针对需要进行状态转换的某一种邻居状态,构建长度为Kbit的先入先出型记忆信道,用于存储的每个状态下最近已编码的K个符号的取值。

在本实施例中,构建的记忆信道可以是从左至右的先入先出信道,即信道从左至右依次存储第K至第1个已编码符号的取值;也可以是从右至左的先入先出信道,即信道从右至左依次存储第K至第1个已编码符号的取值。此外,还可以构建其他形式的信道模型,本实施例对此不作限定。

22)在每次编码之后,对所述记忆信道进行更新,以保证该记忆信道存储的最近已编码的K个符号的取值。

具体的,可根据构建的记忆信道类型选择合适的更新方式。例如,若记忆信道为从左至右的信道,则在每次编码之后,将对应的Kbit的记忆信道右移1位,并将当前已编码符号的值赋予左边第K个bit,以实现对记忆信道的更新。若记忆信道为从右至左的信道,则在每次编码之后,将对应的Kbit的记忆信道左移1位,并将当前已编码符号的值赋予右边第K个bit,以实现对记忆信道的更新。对于其他类型的记忆信道,也可以直接将用于存储最早已编码符号的取值的第1个bit直接清空,再将最新编码的符号的取值直接存储在该清空位置。此外,还可以采用其他的更新方式,对于具体的实现方式,本实施例不作特殊要求。

23)基于更新后的记忆信道中每个状态对应的K个bit值的分布情况,将待编码子节点的当前邻居状态转换为另一种状态。

在本实施例中,可以将更新后的记忆信道中每个状态对应的K个bit取值为1或者0的比特个数输出为另一种状态,以实现当前邻居状态的转换。

又或者,可以对更新后的记忆信道中每个状态对应的K个bit取值进行加权计算,并将计算结果输出为另一种状态,以实现当前邻居状态的转换。例如,可以对K个bit的取值设置权重,将最近编码的比特值权重调大一些,以得到计算结果,并将该结果作为新的状态。对于具体的实现方式,本实施例也不作特殊要求。

下面以对两种状态C和M中的状态M进行基于记忆信道的状态转换为例,对状态转换过程进行详细介绍。

首先,构建从左向右的记忆信道模型。

针对状态M,构建其对应的记忆信道B(M),其用于存储每个状态下最近已编码的K个符号的取值,即每个状态M都有一个长度为Kbit的先入先出型记忆信道B(M),其第k位的值为b

然后,更新记忆信道。

具体的,在每次编码符号S之后,将Kbits的记忆信道B右移1位,将符号S的值赋于第K个bit,其公式表示为:

B(M)=(B(M)>>1)|(S<<K-1)

最后,基于更新的记忆信道进行状态转换。

具体的,本实施例选择将记忆信道中取值为1的比特个数作为输出的状态N,公式表示为:

至此,通过记忆信道,状态M可以被转换为状态N,其取值范围为0~K。例如,若K取值为16,则N共有17个状态值。

步骤3:将待编码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到编码器索引。

具体的,假设在本实施例中,待编码子节点的邻居状态信息仅包括上面所述的邻居节点信息1的状态C和邻居节点信息2的状态M,且本实施例选择仅对M进行了上述基于记忆信道的状态转换,得到了状态N,则邻居节点信息1提供的状态C与经过状态转换的状态N相互组合最终会产生的状态为I,其计算方式为

I=C×(K+1)+N

最终产生的状态I即作为二进制编码器的索引,进行CABAC(Context-basedAdaptive Binary Arithmetic Coding,基于上下文的自适应二进制算术编码)编码。在本实施例中,K可以取值为16,则I取值范围为0~543。进而CABAC具有544个上下文。

由此可见,本实施例通过对多种邻居状态信息进行基于记忆信道的状态转换,可以将现有的需要耗费10872×8=86976bits的内存转换为1024×16=16384bits,,大大降低了算法的内存消耗,且计算过程较为简单,进一步提高了编码效率,同时使得算法更有利于硬件实现。

此外,还可以选择将两部分状态C和M均进行状态转换,再将所有经过状态转换之后的邻居状态进行组合,得到编码器索引,详细过程在此不再详述。

步骤4:根据编码器索引对所述待编码子节点的占位信息进行编码。

具体的,根据得到的编码器索引,选择对应的二进制编码器进行CABAC编码。

下面以一个具体的例子对某一待编码子节点的占位信息进行编码的详细过程进行介绍。请参见图7,图7是本发明实施例提供的对某一待编码子节点的占位信息进行编码的详细过程示意图。本实施例对于待编码子节点的占位码符号S,将其邻居节点信息分两部分:邻居信息1以及邻居信息2。对于邻居信息2所对应的状态M,采用基于记忆信道的方式对其进行状态转换得到状态N。然后将邻居信息1所对应的状态C与状态N进行上下文组合得到二进制编码器索引,然后在CABAC框架中选择对应的二进制编码器进行熵编码。

对于点云数据中的所有待编码子节点,均可按照上述方法对其占位信息进行编码,得到码流信息。

本实施例提供的基于多邻居状态转换的点云几何编解码方法一方面通过使用相关性更强的多种邻居状态信息,使得状态值的表征效果更好,进而提升了编码效果;另一方面通过对邻居状态进行基于记忆信道的状态转换,将具有占用内存较多的状态转换为另一种占用内存较少的状态,并将所有邻居状态转换进行上下文信息组合,以生成了待编码符号的状态,计算过程较为简单,大大降低了算法的内存消耗,进而降低了码率,提高了编码效率。

此外,为了进一步说明本发明的方法可以降低码率,提高编码效率,本实施例还将该方法与现有的G-PCC进行了比较,其码率降低情况如下表1所示。

表1本发明方法相比G-PCC方法在不同数据上的性能结果

测试所选取的参考软件为G-PCC的官方参考软件tmc13 v14.0版本,测试条件为通用测试条件中的几何无损条件。从上表1可以看出,本发明提供的方法相对现有的G-PCC算法,明显降低了码率,提升了编码效果。

实施例二

在上述实施例一的基础上,本实施例提了一种基于多邻居信息的点云几何编码装置。请参见图8,图8是本发明实施例提供的一种基于多邻居状态转换的点云几何编码装置的结构示意图,其包括:

第一数据获取模块11,用于获取点云数据中待编码子节点的占位信息及其多种邻居状态信息;

第一状态转换模块12,用于对所述待编码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换;

第一信息组合模块13,用于将所述待编码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到编码器索引;

编码模块14,用于根据所述编码器索引对所述待编码子节点的占位信息进行编码。

本实施例提供的点云几何编码装置可以实现上述实施例一提供的编码方法,详细过程参见上述实施例一,在此不再赘述。

由此,本实施例提供的编码装置也降低了算法的内存消耗,降低码率,提升编码效果。

实施例三

本实施例提供了一种基于多邻居状态转换的点云几何解码方法。请参见图9,图9是本发明实施例提供的一种基于多邻居状态转换的点云几何解码方法的流程示意图,其包括:

步骤一:获取待解码子节点的码流及其多种邻居状态信息;

步骤二:对待解码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换;

步骤三:将待解码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到解码器索引;

步骤四:根据所述解码器索引对所述待解码子节点的码流进行解码。

在本实施例中,步骤一中的所述待解码子节点的多种邻居状态信息至少包括第三邻居信息和第四邻居信息;其中,

第三邻居信息为与待解码子节点同层的邻居父节点占位信息;

第四邻居信息为与待解码子节点同层且已解码的邻居子节点占位信息。

具体的,可以参见编码端,将当前待解码子节点的邻居信息划分为两个以上的多个部分,用以联合表示当前待解码子节点的邻居状态,详细过程可参见实施例一,在此不做详细描述。

需要说明的是,在解码端,对于待解码子节点的邻居信息的划分需要与编码端保持一致。例如,若编码端选取了第一邻居信息的状态C和第二邻居信息的状态M,则相应的,解码端也选择这两种状态。

进一步的,第三邻居信息至少包括第六状态、第七状态以及第八状态中的一种;其中,

第六状态为与待解码子节点共面的邻居父节点的占据情况;

第七状态为与待解码子节点共边的邻居父节点的占据情况;

第八状态为待解码子节点所属父节点的六个共面邻居的占据情况。

第四邻居信息至少包括第九状态和第十状态中的一种;其中,

第九状态为与待解码子节点共面、共边以及共点的多个已解码子节点的占据情况;

第十状态为与待解码子节点共面的父节点中位置与该待解码子节点在其父节点中的位置相同的子节点的占据情况。

可以理解的是,在解码端,选取的用于组成第三邻居信息的第六状态、第七状态以及第八状态需要与编码端用于组成第一邻居信息的第一状态、第二状态以及第三状态对应。相应的,用于组成第四邻居信息的第九状态和第十状态需要与编码端用于组成第二邻居信息的第四状态和第五状态对应。

对于不同的邻居信息以及不同状态的具体内容,可参考上述实施例一。

进一步的,在本实施例中,步骤二包括:

针对需要进行状态转换的某一种邻居状态,构建长度为Kbit的先入先出型记忆信道,用于存储该邻居状态的每个状态下最近已解码的K个符号的取值;

在每次解码之后,对所述记忆信道进行更新,以保证该记忆信道存储的是最近已解码的K个符号的取值;

基于更新后的记忆信道中每个状态对应的K个bit值的分布情况,将待解码子节点的当前邻居状态转换为另一种状态。

需要说明的是,在解码端以第k位信息代表该状态下最近已解码的前K-k+1个符号的值。在对记忆信道进行更新和状态转换时,采用与编码端相同的更新策略和状态转换规则,本实施例中在此不进行详细描述。

下面以一个具体的例子对本实施例中对某一待解码子节点的码流进行解码的详细过程进行介绍。请参见图10,图10是本发明实施例提供的对某一待解码子节点的码流进行解码的详细过程示意图。

本实施例针对待解码子节点,将其邻居节点信息分两部分:邻居信息3以及邻居信息4。对于邻居信息4所对应的状态M,采用基于记忆信道的方式对其进行状态转换得到状态N。然后将邻居信息3所对应的状态C与状态N进行上下文组合得到二进制解码器索引,选择对应的二进制解码器进行解码,得到当前子节点的符号S,也即占位码信息。

对于所有的待解码子节点,均可按照上述方法进行解码,得到子节点的符号。

当得到所有子节点的符号信息后,即可通过点云重构,得到点云的几何信息。

本实施例通过使用相关性更强的多种邻居状态信息,并对其中的部分邻居状态信息进行基于记忆信道的状态转换,大大降低了算法的内存消耗,进一步提高了解码效率。

实施例四

在上述实施例三的基础上,本实施例提了一种基于多邻居状态转换的点云几何解码装置。请参见图11,图11是本发明实施例提供的一种基于多邻居状态转换的点云几何解码装置的结构示意图,其包括:

第二数据获取模块21,用于获取待解码子节点的码流及其多种邻居状态信息;

第二状态转换模块22,用于对所述待解码子节点的多种邻居状态信息中的至少一种邻居状态信息进行基于记忆信道的状态转换;

第二信息组合模块23,用于将所述待解码子节点所有经过状态转换和未进行状态转换的多种邻居状态信息进行上下文组合,得到解码器索引;

解码模块24,用于根据所述解码器索引对所述待解码子节点的码流进行解码。

本实施例提供的点云几何解码装置可以实现上述实施例三提供的解码方法,详细过程参见上述实施例三,在此不再赘述。

由此,本实施例提供的解码装置也降低了算法的内存消耗,降低码率,提升解码效果。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • 基于ISIS协议的邻居状态处理方法及装置
  • 点云数据的预处理方法及点云几何编解码方法、装置
  • 点云中邻居点的选择方法、装置及编解码器
技术分类

06120116490146