CN118175319A - 点云编码方法、点云解码方法及相关设备 - Google Patents
点云编码方法、点云解码方法及相关设备 Download PDFInfo
- Publication number
- CN118175319A CN118175319A CN202211585959.7A CN202211585959A CN118175319A CN 118175319 A CN118175319 A CN 118175319A CN 202211585959 A CN202211585959 A CN 202211585959A CN 118175319 A CN118175319 A CN 118175319A
- Authority
- CN
- China
- Prior art keywords
- node
- neighbor
- child node
- target
- child
- 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
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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种点云编码方法、点云解码方法及相关设备,属于计算机技术领域,本申请实施例的点云编码方法,包括:对点云的几何信息进行树形构建,获取待编码子节点;确定待编码子节点对应的第一邻居信息;基于第一邻居信息对待编码子节点进行编码,得到待编码子节点的编码结果;其中,在确定存在待编码子节点对应的目标关联子节点的情况下,第一邻居信息基于目标关联子节点的节点信息确定,目标关联子节点为与待编码子节点的关联程度满足预设条件的邻居子节点;或,在确定不存在目标关联子节点的情况下,第一邻居信息基于待编码子节点的邻居子节点中除目标关联子节点外的多个目标邻居子节点的节点信息确定。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种点云编码方法、点云解码方法及相关设备。
背景技术
点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数量相当大,而为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩处理。点云数据通常由描述位置的几何信息如三维坐标(x,y,z)以及该位置的属性信息如颜色(R,G,B)或者反射率等构成。在点云编码压缩过程中对几何信息及属性信息的编码是分开进行的。
目前,在对点云的几何信息进行熵编码的过程中,对待编码子节点进行编码时涉及的上下文包括当前点的子层邻居预测以及当前点层的邻居预测,涉及的上下文信息较多,编码效率较低。
发明内容
本申请实施例提供一种点云编码方法、点云解码方法及相关设备,能够解决编码效率较低的问题。
第一方面,提供了一种点云编码方法,包括:
对点云的几何信息进行树形构建,获取待编码子节点;
确定所述待编码子节点对应的第一邻居信息;
基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第二方面,提供了一种点云解码方法,包括:
确定待解码子节点对应的第二邻居信息;
基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第三方面,提供了一种点云编码装置,包括:
获取模块,用于对点云的几何信息进行树形构建,获取待编码子节点;
确定模块,用于确定所述待编码子节点对应的第一邻居信息;
编码模块,用于基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第四方面,提供了一种点云解码装置,包括:
确定模块,用于确定待解码子节点对应的第二邻居信息;
解码模块,用于基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第五方面,提供了一种通信设备,该终端包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤;或者,所述程序或指令被所述处理器执行时实现如第二方面所述的方法的步骤。
第六方面,提供了一种通信设备,包括处理器及通信接口,其中,所述处理器用于:
对点云的几何信息进行树形构建,获取待编码子节点;
确定所述待编码子节点对应的第一邻居信息;
基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第七方面,提供了一种通信设备,包括处理器及通信接口,其中,所述处理器用于:
确定待解码子节点对应的第二邻居信息;
基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第八方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者,所述程序或指令被处理器执行时实现如第二方面所述的方法的步骤。
第九方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法的步骤,或者,实现如第二方面所述的方法的步骤。
第十方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在非易失的存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或者,实现如第二方面所述的方法的步骤。
在本申请实施例中,对点云的几何信息进行树形构建,获取待编码子节点;确定所述待编码子节点对应的第一邻居信息;基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。这样,通过确定是否存在所述待编码子节点对应的目标关联子节点确定第一邻居信息,能够基于节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码,能够减少上下文信息的数量,从而能够提高编码效率。
附图说明
图1是一种点云AVS编码器框架示意图;
图2是一种点云AVS解码器框架示意图;
图3是一种各子节点选取的参考节点示意图;
图4是一种当前节点的4组参考邻居节点示意图;
图5是一种子块分别对应6个相邻父块的示意图;
图6是一种当前待编码块利用到的周围18个相邻块及其莫顿序编号的示意图;
图7是本申请实施例提供的一种点云编码方法的流程示意图之一;
图8是本申请实施例提供的一种点云编码方法的流程示意图之二;
图9是本申请实施例提供的一种各子节点选取的参考节点示意图;
图10是本申请实施例提供的一种子节点层相同位置邻居示意图;
图11是本申请实施例提供的一种点云解码方法的流程示意图之一;
图12是本申请实施例提供的一种编码测试结果示意图;
图13是本申请实施例提供的一种点云解码方法的流程示意图之二;
图14是本申请实施例提供的一种点云编码装置的结构示意图;
图15是本申请实施例提供的一种点云解码装置的结构示意图;
图16是本申请实施例提供的一种通信设备的结构图;
图17是本申请实施例提供的一种终端的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例中的编解码方法对应的编解码端可以为终端,该终端也可以称作终端设备或者用户终端(User Equipment,UE),终端可以是手机、平板电脑(Tablet PersonalComputer)、膝上型电脑(Laptop Computer)或称为笔记本电脑、个人数字助理(PersonalDigital Assistant,PDA)、掌上电脑、上网本、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴式设备(Wearable Device)或车载设备(VUE)、行人终端(PUE)等终端侧设备,可穿戴式设备包括:智能手表、手环、耳机、眼镜等。需要说明的是,在本申请实施例并不限定终端的具体类型。
为了方便理解,以下对本申请实施例涉及的一些内容进行说明:
(1)点云AVS编解码框架
在点云AVS编码器框架中,点云的几何信息和每点所对应的属性信息是分开编码的。首先对几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中。然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程属于预处理过程。接下来,按照广度优先遍历的顺序对bounding box进行划分(八叉树/四叉树/二叉树),对每个节点的占位码进行编码。在基于八叉树的几何码框架中,将包围盒依次划分得到子立方体,对非空的(包含点云中的点)的子立方体继续进行划分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,其次对叶子节点中所包含的点数进行编码,最终完成几何八叉树的编码,生成二进制码流。在基于八叉树的几何解码过程中,解码端按照广度优先遍历的顺序,通过不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1x1x1的单位立方体时停止划分,解析得到每个叶子节点中包含的点数,最终恢复得到几何重构点云信息。
几何编码完成后,对几何信息进行重建,利用重建的几何信息来对属性信息进行编码。目前,属性编码主要针对颜色、反射率信息进行。首先判断是否进行颜色空间的转换,若进行颜色空间转换,则将颜色信息从RGB颜色空间转换到YUV颜色空间。然后,在几何有损编码的情况下,需要对重建点云进行属性插值,即重上色,为重建点云中的每个点都计算新的属性值,使得重建点云和原始点云的属性误差最小。在属性信息编码中分为两个分支:属性预测与属性变换。属性预测过程如下:首先对点云进行重排序,然后进行差分预测。其中重排序的方法有两种:莫顿重排序和Hilbert重排序。当前AVS编码框架中均采用Hilbert码对点云进行重排序。然后对排序之后的点云使用差分方式进行属性预测,若当前待编码点与前一个已编码点的几何信息相同,即为重复点,则利用重复点的重建属性值作为当前待编码点的属性预测值,否则对当前待编码点选择前Hilbert序的m个点作为邻居候选点,然后分别计算它们同当前待编码点的几何信息的曼哈顿距离,确定距离最近的n个点作为当前待编码点的邻居,以距离的倒数作为权重,计算所有邻居的属性的加权平均,作为当前待编码点的属性预测值。然后通过属性预测值和当前待编码点的属性值,计算出预测残差,最后对预测残差进行量化并熵编码,生成二进制码流。属性变换过程如下:首先对点云属性做小波变换,对变换系数做量化;其次通过逆量化、逆小波变换得到属性重建值;然后计算原始属性和属性重建值的差得到属性残差并对其量化;最后将量化后的变换系数和属性残差进行熵编码,生成二进制码流。图1和图2所示是AVS编解码器框架图。本技术涉及几何熵编码部分。
(2)熵编码
(2.1):该熵编码技术涉及的上下文包括当前点的子层邻居预测以及当前点层的邻居预测。
1)当前点的子层邻居预测
在八叉树广度优先遍历的划分方式下,编码当前点的子节点时能够获得的邻居信息包括左前下三个方向的邻居子节点。子节点层的上下文模型设计如下:对于待编码子节点层,查找与待编码子节点同层的左前下方向3个共面、3个共线、1个共点节点以及节点边长最短的维度上负方向距离当前待编码子节点两个节点边长处的节点的占位情况。以X维度上的节点边长最短为例,各子节点选择的参考节点如图3所示。其中虚线框节点为当前节点,灰色节点为当前待编码子节点,实线框节点为各子节点选取的参考节点。
其中3个共面、3个共线节点以及节点边长最短的维度上负方向距离当前待编码子节点两个节点边长处的节点的占位情况详细考虑,这7个节点的占位情况共有27=128种情况。如果不全为不占据,则共有27-1=127种情况,为每种情况分配1个上下文;若这7个节点全为不占据,则考虑共点邻居节点占位情况。该共点邻居有2种可能:占据或不占据。为该共点邻居节点被占据的情况单独分配1个上下文,若该共点邻居也为不占据,则考虑接下来要讲述的当前节点层邻居的占位情况。即待编码子节点层邻居一共对应127+2-1=128个上下文。
2)当前节点层的邻居预测
如果待编码子节点的8个同层参考节点都未被占据,则考虑如图4所示的当前节点层的四组邻居的占位情况。其中虚线框节点为当前节点,实线边框为邻居节点。
对于当前节点层,按照以下步骤确定上下文:
a)首先考虑当前节点的右上后3个共面邻居。当前节点右上后共面的3个邻居的占位情况共有23=8种可能,为不全为不占据的情况各分配一个上下文,再考虑待编码子节点位于当前节点的位置,则该组邻居节点共提供(8-1)×8=56个上下文。如果当前点的右上后3个共面的邻居都不占据,那么继续考虑当前节点层其余三组邻居
b)考虑最近被占据的节点与当前节点的距离。
具体的邻居节点分布与距离的对应关系如表1所示。
表1当前节点层占位情况与距离的对应关系
由表1可得,距离共有3个取值。为这3个取值情况各分配1个上下文,再考虑待编码子节点位于当前节点的位置情况,共3×8=24个上下文。
至此,该技术上下文模型总共分配了128+56+24=208个上下文。
(2.2)该熵编码技术方法使用双层上下文参考关系配置。
如式(1)所示,第一层是与当前待编码子块父节点已编码相邻块的占用情况(即ctxIdxParent),第二层是与当前待编码子块同一深度下的相邻已编码块的占用情况(即ctxIdxChild)。
首先,对于每一个待编码子块,第二层的ctxIdxChild如式(2)所示,表示与当前子块l2距离为1的3个已编码子块的占用情况。
idx=LUT[ctxIdxParent][ctxIdxChild] (1)
其次,第一层的ctxIdxParent,对于不同子块的相对位置,通过查表方式寻找与其共面和共线的相邻父块,并通过其占用情况根据式(3)计算得到ctxIdxParent。如图5所示,每个子图显示了第i个子块找到的6个相邻父块的相对位置关系,其中包含3个共面父块(Pi,0,Pi,1,Pi,2)和3个共线父块(Pi,3,Pi,4,Pi,5)。每个子块和相邻父块位置关系通过表1方式获取,表2中的数字对应图6中的莫顿序号,该方式考虑了不同子块位置以及几何上的中心旋转对称性。从图6可以看出,以当前块为中心,该方法拥有更大的感受野,可以利用周围已编码的最多18个相邻父块。式(3)中采用的方式是3个共面父块占用情况的排列组合以及3个共线父块占用的个数加和。
因此,该技术方法中使用的上下文数量最多为23×25=256个。
表2.子块i和其相邻父块j的关系。表格中的数字对应图6中的莫顿序编号。
| Pi,j | j=0 | j=1 | j=2 | j=3 | j=4 | j=5 |
| i=0 | 4 | 10 | 12 | 1 | 3 | 9 |
| i=1 | 4 | 10 | 14 | 1 | 5 | 11 |
| i=2 | 4 | 16 | 12 | 7 | 3 | 15 |
| i=3 | 4 | 16 | 14 | 7 | 5 | 17 |
| i=4 | 22 | 10 | 12 | 19 | 21 | 9 |
| i=5 | 22 | 10 | 14 | 19 | 23 | 11 |
| i=6 | 22 | 16 | 12 | 25 | 21 | 15 |
| i=7 | 22 | 16 | 14 | 25 | 23 | 17 |
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的点云编码方法、点云解码方法及相关设备进行详细地说明。
参见图7,图7是本申请实施例提供的一种网格编码方法的流程图,可以应用于编码端设备,如图7所示,点云编码方法包括以下步骤:
步骤101、对点云的几何信息进行树形构建,获取待编码子节点。
其中,树形构建可以为二叉树构建,四叉树构建或者八叉树构建等。
一种实施方式中,可以对点云的几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中。然后再进行量化,量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程属于预处理过程。预处理之后,可以按照广度优先遍历的顺序对bounding box进行划分(八叉树/四叉树/二叉树),得到待编码子节点。示例地,在基于八叉树的几何码框架中,将包围盒依次划分得到子立方体,对非空的(包含点云中的点)的子立方体继续进行划分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分。
步骤102、确定所述待编码子节点对应的第一邻居信息。
其中,所述第一邻居信息可以基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或者,所述第一邻居信息可以基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
步骤103、基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;和/或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
其中,所述基于所述第一邻居信息对所述待编码子节点进行编码,可以是,将第一邻居信息作为待编码子节点的上下文对所述待编码子节点进行编码。示例地,可以将第一邻居信息作为待编码子节点的上下文采用CABAC编码算法对所述待编码子节点进行编码。
另外,节点信息可以包括用于表征节点是否被占据的信息。示例地,节点被占据,节点信息可以为1;节点不被占据,节点信息可以为0。
另外,目标关联子节点可以为待编码子节点的强相关邻居子节点。
另外,所述目标关联子节点可以为所述待编码子节点对应的共面子节点;或者所述目标关联子节点可以包括所述待编码子节点对应的共面子节点和共边子节点;或者所述目标关联子节点可以包括所述待编码子节点对应的共面子节点、共边子节点和共点子节点;等等,本实施例对此不进行限定。预设条件不同,所述目标关联子节点与所述待编码子节点的关联程度不同。
以所述目标关联子节点为所述待编码子节点对应的共面子节点为例,所述目标邻居子节点可以包括待编码子节点对应的共边子节点、待编码子节点对应的共点子节点、待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点、待编码子节点的父节点对应的共面父节点中选择的子节点及待编码子节点的父节点对应的共线父节点中选择的子节点等等。
以所述目标关联子节点为待编码子节点对应的共面子节点和共边子节点为例,所述目标邻居子节点可以包括待编码子节点对应的共点子节点、待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点、待编码子节点的父节点对应的共面父节点中选择的子节点及待编码子节点的父节点对应的共线父节点中选择的子节点等等。
以所述目标关联子节点为待编码子节点对应的共面子节点、共边子节点和共点子节点为例,所述目标邻居子节点可以包括待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点、待编码子节点的父节点对应的共面父节点中选择的子节点及待编码子节点的父节点对应的共线父节点中选择的子节点等等。
另外,存在所述待编码子节点对应的目标关联子节点,可以是指目标关联子节点被占据;不存在所述目标关联子节点,可以是指目标关联子节点不被占据。示例地,目标关联子节点的节点信息为1,则存在目标关联子节点;目标关联子节点的节点信息为0,则不存在目标关联子节点。目标关联子节点的数量可以为多个,存在所述待编码子节点对应的目标关联子节点,可以是指至少一个目标关联子节点被占据;不存在所述目标关联子节点,可以是指全部目标关联子节点均不被占据。以所述目标关联子节点为所述待编码子节点对应的共面子节点为例,存在所述待编码子节点对应的目标关联子节点,可以是指待编码子节点对应的共面子节点均不被占据;不存在所述目标关联子节点,可以是指待编码子节点对应的共面子节点均不被占据。
一种实施方式中,所述目标关联子节点为所述待编码子节点对应的共面子节点,在确定存在所述待编码子节点对应的共面子节点的情况下,所述第一邻居信息可以基于待编码子节点对应的共面子节点的节点信息确定,进一步的,所述第一邻居信息可以基于待编码子节点对应的共面子节点和待编码子节点对应的共面父节点的节点信息确定。示例地,第一邻居信息可以包括待编码子节点对应的共面子节点的节点信息和待编码子节点对应的共面父节点的节点信息。
另外,待编码子节点对应的共面子节点,可以是,在树形广度优先遍历的划分方式下待编码子节点可获取到的共面子节点。以八叉树构建为例,待编码子节点对应的共面子节点可以是在八叉树广度优先遍历的划分方式下待编码子节点可获取的左前下三个方向的共面邻居子节点。在八叉树广度优先遍历的划分方式下待编码子节点可获取到的共面子节点的数量为三个。
另外,待编码子节点对应的共边子节点,可以是,在树形广度优先遍历的划分方式下待编码子节点可获取到的共边子节点。以八叉树构建为例,待编码子节点对应的共边子节点可以是在八叉树广度优先遍历的划分方式下待编码子节点可获取的左前下三个方向的共边子节点。在八叉树广度优先遍历的划分方式下待编码子节点可获取到的共边子节点的数量为三个。
另外,待编码子节点对应的共点子节点,可以是,在树形广度优先遍历的划分方式下待编码子节点可获取到的共点子节点。以八叉树构建为例,待编码子节点对应的共点子节点可以是在八叉树广度优先遍历的划分方式下待编码子节点可获取的左前下方向的共点子节点。在八叉树广度优先遍历的划分方式下待编码子节点可获取到的共点子节点的数量为一个。
需要说明的是,存在所述待编码子节点对应的目标关联子节点,可以认为待编码子节点处于节点较为密集的位置;不存在所述待编码子节点对应的目标关联子节点,可以认为待编码子节点处于节点较为稀疏的位置。从而可以根据节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码。
在本申请实施例中,对点云的几何信息进行树形构建,获取待编码子节点;确定所述待编码子节点对应的第一邻居信息;基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。这样,通过确定是否存在所述待编码子节点对应的目标关联子节点确定第一邻居信息,能够基于节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码,能够减少上下文信息的数量,从而能够提高编码效率。
可选地,所述确定所述待编码子节点对应的第一邻居信息,包括:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
其中,多个目标邻居子节点的占位情况,可以是,多个目标邻居子节点是否被占据的情况。目标邻居状态可以为多个邻居状态中的一个,以目标邻居子节点的数量为10个为例,每个目标邻居子节点用一位二进制数表示,则邻居状态M的总个数为:210。例如,10个目标邻居子节点均被占据,则邻居状态为全1;10个目标邻居子节点均不被占据,则邻居状态为全0。
另外,所述目标邻居状态的状态值可以为多个已编码子节点的编码结果中编码结果为预设值的个数,示例地,该预设值可以为1。已编码子节点的编码结果可以包括0,或者1。目标邻居状态的状态值可以为时间最近的多个已编码子节点的编码结果中编码结果为1的个数。目标邻居状态的状态值可以为时间最近的预设个数的已编码子节点的编码结果中编码结果为1的个数。预设个数可以为8个,或9个,10个,等等,本实施例对此不进行限定。示例地,目标邻居状态的状态值可以为时间最近的8个已编码子节点的编码结果中编码结果为1的个数。
作为一种具体的实施例,在确定不存在所述目标关联子节点的情况下,第一邻居信息的考虑是基于子节点层中已编码邻居信息。目标邻居状态可以为多个邻居状态中的一个,如图8所示,邻居状态M可由邻居节点信息1确定,邻居节点信息1由状态M1和状态M2确定:
(1)选择与当前待编码子节点3个共边、1个共点以及节点边长最短的维度上负方向距离当前待编码子节点两个节点边长处的节点的占位情况,共5个子节点层邻居,如图9所示,黑色实线框节点为当前节点,黑色节点是待编码子节点,黑色节点周围的节点是子节点层邻居。
以上述5个子节点的占位情况组成状态M1,其计算公式为:
其中j代表选取的任一邻居子节点在这5个邻居子节点中的索引,sj表示索引为j的子节点邻居的占位码。M1的取值范围为0~32。
(2)在当前节点(当前待编码子节点的父节点)的已被划分的3个共面,2个共线邻居中,各自选择1个子节点邻居,以这5个子节点邻居占据信息组成状态M2。被选择的子节点邻居相对于其父节点的位置与待编码子节点相对于当前节点的位置相同。即若待编码子节点相对当前节点中的索引值为i,3个子节点邻居相对其父节点的索引值也同样为i。以子节点7为例,选取的三个共面子节点邻居如下图10所示。
以上述5个子节点的占位情况组成状态M2,其计算公式为:
M2=sx+sy×2+sz×4+sxy×8+sxz×16
其中sx、sy、sz分别表示上述3个子节点邻居中,位于当前节点x轴、y轴、z轴方向的邻居子节点的占位码;sxy与sxz为当前节点的2个共线邻居选择的邻居子节点的占位码。
结合状态M1和状态M2,邻居状态M计算公式为:
M=M1×32+M2
M的取值范围为0~1024,即邻居节点信息1的取值范围为0~1024,共1024个邻居状态。
该实施方式中,在确定不存在所述目标关联子节点的情况下:基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。这样,能够通过同一邻居状态下的已编码子节点的编码结果确定所述待编码子节点对应的第一邻居信息,将该第一邻居信息作为上下文对待编码子节点进行编码,能够减少上下文信息的数量,从而能够提高编码效率。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
所述方法还包括:
基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
其中,所述目标邻居状态对应的滑动窗口可以存储有时间最近的多个已编码子节点的编码结果。示例地,滑动窗口可以存储有时间最近的预设个数的已编码子节点的编码结果。
另外,在待编码子节点编码完成后,可以对所述目标邻居状态对应的滑动窗口进行更新,在目标邻居状态对应的滑动窗口中存储待编码子节点的编码结果,并将滑动窗口中编码时间距离当前时间最远的一个已编码子节点的编码结果从滑动窗口中移除。
作为一种具体的实施例,每个邻居状态对应滑动窗口存储每个邻居状态下最近已编码的K个符号的取值,即每个邻居状态M都有一个长度为Kbit的先入先出型滑动窗口B(M),其第k位的值为bk(M),K,k为正整数。若k的取值范围为1~K,在编码端以第k位信息代表该状态下最近已编码的前第K-k+1个符号的取值,在解码端以第k位信息代表该状态下最近已解码的前第K-k+1个符号的值。滑动窗口的更新操作为:每次编码或者解码符号S之后,将Kbits的滑动窗口B右移1位,将符号S的值赋于第K个bit,如下:
B(M)=(B(M)>>1)|(S<<K-1)。
另外,如图8所示,通过滑动窗口,状态M可以被转换为状态N,实现基于滑动窗口的状态转换。将滑动窗口中,取值为1的比特个数作为输出的状态N:
其中,状态N的取值范围为0~K。例如,若K取值为8,则N共有9个状态值。
该实施方式中,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定,基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新,这样,能够通过目标邻居状态对应的滑动窗口的更新实现目标邻居状态的状态值的更新。
可选地,所述基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
所述方法还包括:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
其中,预设邻居状态可以为多个目标邻居子节点的占位情况表征多个目标邻居子节点全不占据的邻居状态。预设邻居状态可以为邻居状态M取值为0的邻居状态。
另外,在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,可以是,在所述目标邻居状态不为预设邻居状态的情况下,所述待编码子节点对应的第一邻居信息包括所述目标邻居状态的状态值。进一步的,在所述目标邻居状态不为预设邻居状态的情况下,可以基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
另外,在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息,可以是,在所述目标邻居状态为所述预设邻居状态的情况下,所述待编码子节点对应的第一邻居信息包括所述待编码子节点对应的共面父节点的节点信息。示例地,共面父节点的数量为3个,共面父节点的节点信息作为上下文的上下文数量为8个,为共面父节点的每个子节点均分配一个上下文,每个共面父节点涉及8个上下文,则第一邻居信息作为上下文的上下文数量为:8*8=64个。
该实施方式中,在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。从而能够在目标邻居状态表征所述多个目标邻居子节点未被占据时考虑待编码子节点对应的共面父节点确定第一邻居信息,能够进一步考虑节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码,从而能够提高编码效率。
可选地,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
其中,在所述目标邻居状态不为预设邻居状态的情况下,所述待编码子节点对应的第一邻居信息可以包括所述目标邻居状态的状态值和待编码子节点对应的共面父节点的节点信息。示例地,状态N共有9个状态值,状态值作为上下文的上下文数量为9个,共面父节点的数量为3个,共面父节点的节点信息作为上下文的上下文数量为8个,则第一邻居信息作为上下文的上下文数量为:8*9=72个。
该实施方式中,在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息,这样,能够通过同一邻居状态下的已编码子节点的编码结果及待编码子节点对应的共面父节点共同确定所述待编码子节点对应的第一邻居信息,能够使用相关性较强的邻居信息作为上下文进行编码,能够提高编码效率。
可选地,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待编码子节点对应的共边子节点;
所述待编码子节点对应的共点子节点;
所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待编码子节点的父节点对应的共面父节点中选择的子节点;
所述待编码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
另外,待编码子节点的父节点对应的共面父节点中选择的子节点,可以满足,该选择的子节点在该共面父节点中的位置与待编码子节点在该待编码子节点的父节点中的位置相同。例如,待编码子节点在该待编码子节点的父节点中的索引值为i,则选择的子节点在其父节点中的索引值也为i。
另外,待编码子节点的父节点对应的共线父节点中选择的子节点,可以满足,该选择的子节点在该共线父节点中的位置与待编码子节点在该待编码子节点的父节点中的位置相同。例如,待编码子节点在该待编码子节点的父节点中的索引值为i,则选择的子节点在其父节点中的索引值也为i。
该实施方式中,基于目标邻居子节点的节点信息确定第一邻居信息,能够使用相关性较强的邻居信息作为上下文进行编码,能够提高编码效率。
作为一种具体的实施例,确定待编码子节点对应的第一邻居信息的过程如下:
(1):首先看当前待编码子节点的三个共面子节点是否存在,若存在,则编码当前子节点的上下文如下:
考虑父节点层三个共面节点相乘组成8个上下文,其中,父节点层三个共面节点为父节点层选取的与当前待编码子节点共面的三个父层邻居节点;
考虑子节点层三个共面子节点组成7个上下文(去掉全不占据情况),其中,子节点层三个共面子节点为与当前待编码子节点共面的三个子层邻居节点;
父节点层和子节点层上下文信息组合相乘,一共56个上下文。
(2):若当前待编码子节点的三个共面子节点不存在,则判断邻居节点信息1是否为0(即M是否取值0),若不为0,则用滑动窗口进行状态转换得到,9个上下文(滑动窗口长度为8)。
父节点层考虑与当前子节点共面的三个父节点,排列组合共8个上下文;
父节点层和子节点层上下文信息组合相乘,一共72个上下文。
(3):若邻居节点信息1为0,则只考虑与当前待编码子节点共面的三个父节点,一共8个上下文,为每个子节点都分配,则一共64个上下文.
上述三个步骤构成熵编码整个过程,如图8所示,对于点云整体而言,上下文包括邻居节点信息1相关的上下文及其它邻居节点信息相关的上下文,该其它邻居节点信息为邻居节点信息1涉及的邻居节点外的邻居节点信息,邻居信息的组合共产生56+72+64=192个上下文,因此CABAC具有192个上下文。
对于熵解码,如图11所示,与熵编码过程类似,将输入由待编码符号变为待解码码流,相应的编码操作替换为解码操作即可。
如图12所示,采用本实施例的点云编码方法进行编码,相对于PCRM_V9.0,可以降低码率,提高编码效率,降低硬件实现的复杂度。图12中,AVSC4_ai和AVSC1_ai所在竖列为点云序列名,例如,bridge_1mm、double_T_section_1mm及intersection1_1mm等均为点云序列名。AVSC4_ai和AVSC1_ai参数代表点云编码测试条件,测试条件共4种,AVSC1表示几何位置有限度有损、属性有损;AVSC2表示几何位置无损、属性有损;AVSC3表示几何位置无损、属性有限度有损;AVSC4表示几何位置无损、属性无损。上述条件中的几何编码参数和属性编码参数含义可以如下,几何无损条件下:geom_remove_dup_flag=0,即不去除重复点;geom_quant_step=1,即不对几何坐标做量化。几何有限度有损条件下:geom_remove_dup_flag=1,即去除重复点;geom_quant_step的设置由码率点的量化步长确定,码率点的量化步长根据点云的几何位宽决定。属性无损条件下:color_transform_flag=0,即不做RGB到YUV的转换;属性量化参数color_quant_param=0或refl_quant_param=0,即属性量化步长设为1。属性有限度有损条件下:color_transform_flag=0,即不做RGB到YUV的转换;属性量化参数的设置可以按照量化损伤递减设置。属性有损条件下:color_transform_flag=1,即需要做RGB到YUV的转换;属性量化参数的设置可以按照量化损伤递减设置。图12中,Geometry参数代表点云中几何编码部分的码流,示例地,Geometry参数为99.5%,代表在测试条件为AVSC4下,使用本实施例对点云进行编码其产生的几何码流是现有方案的99.5%。D1及D1-H参数代表两种不同的点云质量失真评估参数,D1,D1-H参数为负值,则代表在测试条件为AVSC1下,使用本实施例对点云进行编码其产生的点云综合质量比现有方案更高。相对于现有方案,本实施例可以实现降低码率,提高编码效率,降低硬件实现的复杂度。
需要说明的是,熵编码的相关技术中,AVS同时存在如下两种熵编码技术,第一种,熵编码技术涉及的上下文包括当前点的子层邻居预测以及当前点层的邻居预测;第二种,熵编码技术方法使用双层上下文参考关系配置。AVS同时存在两种熵编码技术,硬件实现成本较高。同时,两种熵编码方案各自的问题在于:第一种,没有考虑到父节点层与当前子节点直接接触邻居的占据情况;第二种,子节点层只考虑了共面子节点的情况,没有考虑共线,共点子节点的利用。
本实施例提出了一种基于滑动窗口的熵编码以及熵解码方法。使用了相关性更强的邻居信息,使用基于节点疏密程度选择不同的邻居节点信息作为上下文,并且采用基于滑动窗口的状态转换技术。与相关技术相比,本实施例可以降低码率,提高编码效率,降低硬件实现的复杂度。
参见图,图13是本申请实施例提供的一种点云解码方法的流程图,可以应用于解码端设备,如图13所示,点云解码方法包括以下步骤:
步骤201、确定待解码子节点对应的第二邻居信息;
步骤202、基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,所述确定待解码子节点对应的第二邻居信息,包括:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
所述方法还包括:
基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
所述方法还包括:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共面父节点确定所述待解码子节点对应的第二邻居信息。
可选地,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
可选地,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待解码子节点对应的共边子节点;
所述待解码子节点对应的共点子节点;
所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待解码子节点的父节点对应的共面父节点中选择的子节点;
所述待解码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
需要说明的是,本申请实施例提供的点云编码方法,执行主体可以为点云编码装置,或者,该点云编码装置中的用于执行点云编码的方法的控制模块。本申请实施例中以点云编码装置执行点云编码的方法为例,说明本申请实施例提供的点云编码装置。
请参见图14,图14是本申请实施例提供的一种点云编码装置的结构图,如图14所示,点云编码装置300包括:
获取模块301,用于对点云的几何信息进行树形构建,获取待编码子节点;
确定模块302,用于确定所述待编码子节点对应的第一邻居信息;
编码模块303,用于基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;或,
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,在确定不存在所述目标关联子节点的情况下:
所述确定模块包括:
第一确定单元,用于基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
第二确定单元,用于基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
第三确定单元,用于基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
所述装置还包括:
更新模块,用于基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述第三确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
所述确定模块还包括:
第四确定单元,用于在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
可选地,所述第二确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
可选地,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待编码子节点对应的共边子节点;
所述待编码子节点对应的共点子节点;
所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待编码子节点的父节点对应的共面父节点中选择的子节点;
所述待编码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
本申请实施例中的点云编码装置300能够提高编码效率。
本申请实施例中的点云编码装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的点云编码装置能够实现图7的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例提供的点云解码方法,执行主体可以为点云解码装置,或者,该点云解码装置中的用于执行点云解码的方法的控制模块。本申请实施例中以点云解码装置执行点云解码的方法为例,说明本申请实施例提供的点云解码装置。
请参见图15,图15是本申请实施例提供的一种点云解码装置的结构图,如图15所示,点云解码装置400包括:
确定模块401,用于确定待解码子节点对应的第二邻居信息;
解码模块402,用于基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,在确定不存在所述目标关联子节点的情况下:
所述确定模块包括:
第一确定单元,用于基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
第二确定单元,用于基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
第三确定单元,用于基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
所述装置还包括:
更新模块,用于基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述第三确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
所述确定模块还包括:
第四确定单元,用于在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共面父节点确定所述待解码子节点对应的第二邻居信息。
可选地,所述第三确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
可选地,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待解码子节点对应的共边子节点;
所述待解码子节点对应的共点子节点;
所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待解码子节点的父节点对应的共面父节点中选择的子节点;
所述待解码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
本申请实施例中的点云解码装置400能够提高解码效率。
本申请实施例中的点云解码装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的点云解码装置能够实现图13的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
可选地,如图16所示,本申请实施例还提供一种通信设备500,包括处理器501和存储器502,存储器502上存储有可在所述处理器501上运行的程序或指令,例如,该通信设备500为编码端设备时,该程序或指令被处理器501执行时实现上述点云编码方法实施例的各个步骤,且能达到相同的技术效果。该通信设备500为解码端设备时,该程序或指令被处理器501执行时实现上述点云解码方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种通信设备,包括处理器及通信接口,所述处理器用于:对点云的几何信息进行树形构建,获取待编码子节点;确定所述待编码子节点对应的第一邻居信息;基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。该通信设备实施例与上述点云编码方法方法实施例对应,上述点云编码方法实施例的各个实施过程和实现方式均可适用于该通信设备实施例中,且能达到相同的技术效果。
本申请实施例还提供一种通信设备,包括处理器及通信接口,所述处理器用于:确定待解码子节点对应的第二邻居信息;基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。该通信设备实施例与上述点云解码方法实施例对应,上述点云解码方法实施例的各个实施过程和实现方式均可适用于该通信设备实施例中,且能达到相同的技术效果。
可选地,通信设备可以为终端。具体地,图17为实现本申请实施例的一种终端的硬件结构示意图。
该终端600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609以及处理器610等中的至少部分部件。
本领域技术人员可以理解,终端600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图17中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元604可以包括图形处理单元(GraphicsProcessing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072中的至少一种。触控面板6 071,也称为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
本申请实施例中,射频单元601接收来自网络侧设备的下行数据后,可以传输给处理器610进行处理;另外,射频单元601可以向网络侧设备发送上行数据。通常,射频单元601包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。
存储器609可用于存储软件程序或指令以及各种数据。存储器609可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器609可以包括易失性存储器或非易失性存储器,或者,存储器609可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本申请实施例中的存储器609包括但不限于这些和任意其它适合类型的存储器。
处理器610可包括一个或多个处理单元;可选的,处理器610集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
其中,在所述终端为编码端设备的情况下:
所述处理器610用于:
对点云的几何信息进行树形构建,获取待编码子节点;
确定所述待编码子节点对应的第一邻居信息;
基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,所述处理器610具体用于:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
所述处理器610还用于:
基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
所述处理器610还用于:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
可选地,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待编码子节点对应的共边子节点;
所述待编码子节点对应的共点子节点;
所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待编码子节点的父节点对应的共面父节点中选择的子节点;
所述待编码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
在所述终端为解码端设备的情况下:
所述处理器610用于:
确定待解码子节点对应的第二邻居信息;
基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,所述处理器610具体用于:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
所述处理器610还用于:
基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
所述处理器610还用于:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共面父节点确定所述待解码子节点对应的第二邻居信息。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
可选地,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待解码子节点对应的共边子节点;
所述待解码子节点对应的共点子节点;
所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待解码子节点的父节点对应的共面父节点中选择的子节点;
所述待解码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
本申请实施例中的终端能够提高编解码效率。
具体地,本申请实施例的终端还包括:存储在存储器609上并可在处理器610上运行的指令或程序,处理器610调用存储器609中的指令或程序执行图14或图15所示各模块执行的方法,并达到相同的技术效果,为避免重复,故不在此赘述。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述点云编码方法实施例的各个过程,或者,该程序或指令被处理器执行时实现上述点云解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述点云编码方法实施例的各个过程,或者,实现上述点云解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (16)
1.一种点云编码方法,其特征在于,包括:
对点云的几何信息进行树形构建,获取待编码子节点;
确定所述待编码子节点对应的第一邻居信息;
基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
2.根据权利要求1所述的方法,其特征在于,所述确定所述待编码子节点对应的第一邻居信息,包括:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
3.根据权利要求2所述的方法,其特征在于,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
所述方法还包括:
基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
4.根据权利要求2所述的方法,其特征在于,所述基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
所述方法还包括:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
5.根据权利要求4所述的方法,其特征在于,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
6.根据权利要求1-5中任一项所述的方法,其特征在于,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待编码子节点对应的共边子节点;
所述待编码子节点对应的共点子节点;
所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待编码子节点的父节点对应的共面父节点中选择的子节点;
所述待编码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
7.一种点云解码方法,其特征在于,包括:
确定待解码子节点对应的第二邻居信息;
基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
8.根据权利要求7所述的方法,其特征在于,所述确定待解码子节点对应的第二邻居信息,包括:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
9.根据权利要求8所述的方法,其特征在于,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
所述方法还包括:
基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
10.根据权利要求8所述的方法,其特征在于,所述基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
所述方法还包括:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共面父节点确定所述待解码子节点对应的第二邻居信息。
11.根据权利要求10所述的方法,其特征在于,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
12.根据权利要求7-11中任一项所述的方法,其特征在于,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待解码子节点对应的共边子节点;
所述待解码子节点对应的共点子节点;
所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待解码子节点的父节点对应的共面父节点中选择的子节点;
所述待解码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
13.一种点云编码装置,其特征在于,包括:
获取模块,用于对点云的几何信息进行树形构建,获取待编码子节点;
确定模块,用于确定所述待编码子节点对应的第一邻居信息;
编码模块,用于基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
14.一种点云解码装置,其特征在于,包括:
确定模块,用于确定待解码子节点对应的第二邻居信息;
解码模块,用于基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
15.一种通信设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6任一项所述的点云编码方法的步骤;或者,所述程序或指令被所述处理器执行时实现如权利要求7至12任一项所述的点云解码方法的步骤。
16.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6任一项所述的点云编码方法的步骤,或者,所述程序或指令被处理器执行时实现如权利要求7至12任一项所述的点云解码方法的步骤。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211585959.7A CN118175319A (zh) | 2022-12-09 | 2022-12-09 | 点云编码方法、点云解码方法及相关设备 |
| PCT/CN2023/136729 WO2024120431A1 (zh) | 2022-12-09 | 2023-12-06 | 点云编码方法、点云解码方法及相关设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211585959.7A CN118175319A (zh) | 2022-12-09 | 2022-12-09 | 点云编码方法、点云解码方法及相关设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN118175319A true CN118175319A (zh) | 2024-06-11 |
Family
ID=91349332
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211585959.7A Pending CN118175319A (zh) | 2022-12-09 | 2022-12-09 | 点云编码方法、点云解码方法及相关设备 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN118175319A (zh) |
| WO (1) | WO2024120431A1 (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112041889A (zh) * | 2018-02-08 | 2020-12-04 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
| WO2021232251A1 (zh) * | 2020-05-19 | 2021-11-25 | Oppo广东移动通信有限公司 | 一种点云编解码方法、编码器、解码器及存储介质 |
| CN113826029A (zh) * | 2020-03-30 | 2021-12-21 | 腾讯美国有限责任公司 | 点云编解码中对复制点和孤立点进行编码的方法 |
| CN115299057A (zh) * | 2020-03-20 | 2022-11-04 | Oppo广东移动通信有限公司 | 点云编码方法和解码方法、编码器、解码器、及存储介质 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112565795B (zh) * | 2020-12-03 | 2022-10-04 | 西安电子科技大学 | 一种点云几何信息编码及解码方法 |
-
2022
- 2022-12-09 CN CN202211585959.7A patent/CN118175319A/zh active Pending
-
2023
- 2023-12-06 WO PCT/CN2023/136729 patent/WO2024120431A1/zh not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112041889A (zh) * | 2018-02-08 | 2020-12-04 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
| CN115299057A (zh) * | 2020-03-20 | 2022-11-04 | Oppo广东移动通信有限公司 | 点云编码方法和解码方法、编码器、解码器、及存储介质 |
| CN113826029A (zh) * | 2020-03-30 | 2021-12-21 | 腾讯美国有限责任公司 | 点云编解码中对复制点和孤立点进行编码的方法 |
| WO2021232251A1 (zh) * | 2020-05-19 | 2021-11-25 | Oppo广东移动通信有限公司 | 一种点云编解码方法、编码器、解码器及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024120431A1 (zh) | 2024-06-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2014532945A (ja) | 予測位置復号 | |
| CN116233388B (zh) | 点云编、解码处理方法、装置、编码设备及解码设备 | |
| US12200231B2 (en) | Nearest neighbor search method, apparatus, device, and storage medium | |
| CN115714859B (zh) | 点云属性编码方法、点云属性解码方法及终端 | |
| CN115474059A (zh) | 点云编码方法、解码方法及装置 | |
| JP7763956B2 (ja) | 点群符号化方法、復号方法、装置及び電子機器 | |
| KR20230173695A (ko) | 엔트로피 인코딩, 디코딩 방법 및 장치 | |
| CN116233387B (zh) | 点云编码、解码方法、装置及通信设备 | |
| CN116233426B (zh) | 属性量化、反量化方法、装置及设备 | |
| CN115474049B (zh) | 点云编码处理方法、解码处理方法及装置 | |
| CN118175319A (zh) | 点云编码方法、点云解码方法及相关设备 | |
| CN115474046B (zh) | 点云属性信息编码方法、解码方法、装置及相关设备 | |
| CN120958824A (zh) | 点云编解码方法、装置、设备及存储介质 | |
| CN119366154A (zh) | 点云编解码方法、装置、设备及存储介质 | |
| CN118678075B (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
| US12513296B2 (en) | Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and communication device | |
| CN116233389B (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
| CN119815053B (zh) | 点云属性编码方法、点云属性解码方法、装置及电子设备 | |
| US20240037799A1 (en) | Point cloud coding/decoding method and apparatus, device and storage medium | |
| CN118828023A (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
| CN118828020A (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
| CN119854515A (zh) | 编码、解码方法、装置及电子设备 | |
| CN119316611A (zh) | 点云编码方法、点云解码方法、装置及电子设备 | |
| WO2024217303A1 (zh) | 变换系数编码方法、变换系数解码方法及终端 | |
| WO2025011456A1 (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 |