CN116055751A - 点云的编解码方法、装置、设备、存储介质及程序产品 - Google Patents
点云的编解码方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116055751A CN116055751A CN202111265259.5A CN202111265259A CN116055751A CN 116055751 A CN116055751 A CN 116055751A CN 202111265259 A CN202111265259 A CN 202111265259A CN 116055751 A CN116055751 A CN 116055751A
- Authority
- CN
- China
- Prior art keywords
- node
- current node
- point cloud
- nodes
- occupancy
- 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
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种点云的编解码方法、装置、设备、存储介质及程序产品,属于数据处理技术领域。在本申请实施例中,以N叉树来描述点云所在的空间,在点云的编解码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。其中,占有率表征相应周边节点所对应的空间内存在点的概率。可见本方案通过将各个周边节点的占有率输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。
Description
技术领域
本申请实施例涉及数据处理技术领域,特别涉及一种点云的编解码方法、装置、设备、存储介质及程序产品。
背景技术
点云是某个空间内点的数据集,包含了空间内点的三维坐标,基于点云能够还原三维现实世界。由于当前采集到的点云的规模越来越大,因此,需要对点云进行编解码。
八叉树是一种描述三维空间的树状数据结构,所以相关技术通过构建八叉树,由八叉树来描述点云所在的空间。其中,八叉树包括多个节点,每个节点用于描述一个空间,即每个节点对应一个空间,这多个节点所对应的空间之和即为点云所在的空间。并且,对于该多个节点中的每个父节点来说,一个父节点包括八个子节点,这八个子节点所对应的八个空间之和即为父节点所对应的空间。另外,对于八叉树包括的每个节点来说,依据每个节点对应的空间内是否有点,为每个节点赋值0或1。而且,同一父节点的八个子节点的值组成一个八位二进制数,该八位二进制数称为该父节点的占有信息,用来表示该父节点的八个子节点所对应的八个空间内点的分布情况。
在点云的编码过程中,编码端遍历八叉树中的各个节点,每当遍历到一个节点,从已编码的节点中确定当前遍历到的节点的周边节点,将当前遍历到的节点的周边节点(如父节点)的占有信息转化为0至255之间的十进制数,将转化得到的十进制数输入上下文预测网络中,以预测当前遍历到的节点的概率分布。然后,基于当前遍历到的节点的概率分布,将当前遍历到的节点的占有信息编入码流。点云的解码过程与编码过程是相对应的。
然而,将八位二进制数转化为十进制数的过程中,相当于为这八位二进制数的每一位赋予一个权重,这八位的权重依次为128、64、32、16、8、4、2和1。而这八位分别对应八个空间,这样会误认为这八个空间具有不同的权重,但是实际上这八个空间并无权重高低之分。由此可见,相关技术中错误理解了以八位二进制数来表示的八个空间内点的分布情况,导致上下文预测网络的预测精度较低,从而导致编解码的性能较差。
发明内容
本申请实施例提供了一种点云的编解码方法、装置、设备、存储介质及程序产品,能够一定程度上解决相关技术中上下文预测网络错误理解空间内点的分布情况的问题,提高预测精度和编解码性能。所述技术方案如下:
第一方面,提供了一种点云的编码方法,该方法包括:
确定N叉树,该N叉树用于描述点云所在的空间,N为大于1的整数;将当前节点对应的输入数据输入至上下文预测网络,以得到当前节点的概率分布,该输入数据包括当前节点的一个或多个周边节点中各个周边节点的占有率,占有率表征相应周边节点所对应的空间内存在点的概率,当前节点为N叉树中待编码的一个节点,当前节点的概率分布表征当前节点的多个子节点所对应的多个空间内分别存在点的概率;基于当前节点的概率分布,将当前节点的占有信息编入码流,该占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况。也即是,先基于点云构建N叉树,进而通过编码N叉树中节点的占有信息来压缩点云。
在本申请实施例中,以N叉树来描述点云所在的空间,在点云的编码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。可见本方案通过将各个占有率独立输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。
需要说明的是,当前节点为N叉树中待编码的一个非叶子节点,即将N叉树中非叶子节点的占有信息编入码流即可。对于叶子节点来说,非叶子节点的占有信息即包含了叶子节点的占有情况,占有情况即叶子节点对应的空间内是否存在点的实际情况。当将N叉树中最后一个非叶子节点的占有信息编入码流时,基于N叉树的点云编码完成。
另外,在本申请实施例中,通过对点云所在空间进行递归式划分来构建N叉树,N叉树中的每个节点对应一个空间。其中,N叉树中的根节点对应的空间为点云所在的整体空间(即大空间),N叉树中除根节点之外的节点对应的空间为局部空间(即小空间或子空间),局部空间为点云所在的整体空间的局部。N叉树中的各个父节点(即拥有子节点的节点)对应的空间内存在点云中的点,深度小于N叉树的最大深度的叶子节点对应的空间内不存在点,深度等于N叉树的最大深度的叶子节点对应的空间内可能存在或不存在点云中的点。换句话说,依据空间内是否存在点来进行空间划分,在划分到最小粒度的空间之前,对于不存在点的空间不继续划分子空间,对于存在点的空间继续划分子空间。
可选地,N为定值或变量。其中,当N为定值时,N叉树中各个父节点的子节点的个数均为N。当N为定值时,N叉树中各个父节点的子节点的个数均为N,例如,二叉树、四叉树或八叉树等。当N为变量时,N叉树中一些父节点的子节点的个数为N,另一些父节点的子节点的个数不等于N,可以大于N或小于N。例如,当N为变量时,N叉树的某一个或多个局部为二叉树或四叉树或八叉树,其他部分为八叉树。又如,N叉树的某一个或多个局部为八叉树,其他部分为四叉树。
在本申请实施例中,当前节点的一个或多个周边节点包括一个或多个第一周边节点,第一周边节点的父节点为已编码的节点,第一周边节点的占有率为第一数值或第二数值,第一数值表示所对应的空间内不存在点,第二数值表示所对应的空间内存在点;该一个或多个周边节点还包括一个或多个第二周边节点,第二周边节点的父节点为未编码的节点,第二周边节点的占有率为预定数值,预定数值大于第一数值且小于第二数值。也即是,在本申请实施例中,概率分布的预测不仅能够依据部分已编码的周边节点的相关信息,还能够依据部分未编码的周边节点的相关信息,这样能够为概率分布的预测提供丰富的特征,在一定程度上提升上下文预测网络的预测准确性。
可选地,该一个或多个周边节点包括当前节点的兄弟节点,以及当前节点的兄弟节点的子节点。可见,周边节点对应的空间与当前节点对应的空间是距离相近的,这样能够提高概率分布的预测准确性。
可选地,上下文预测网络包括特征融合网络和概率分布预测网络;将当前节点对应的输入数据输入至上下文预测网络,以得到当前节点的概率分布,包括:将当前节点对应的输入数据输入至特征融合网络,以得到融合特征;将该融合特征输入至概率分布预测网络,以得到当前节点的概率分布。也即是,先融合所输入的各类特征,再进行概率分布预测。
可选地,该一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,该一个或多个周边节点与该一个或多个通道一一对应。换句话说,上下文预测网络的输入数据的通道有多个,各个周边节点的占有率以浮点数表示,一个占有率通过一个通道输入至上下文预测网络。
第二方面,提供了一种点云的解码方法,该方法包括:
确定待重构的N叉树中当前节点的一个或多个周边节点,该N叉树用于描述点云所在的空间,当前节点为N叉树中待解码的一个节点,N为大于1的整数;将当前节点的输入数据输入至上下文预测网络,以得到当前节点的概率分布,该输入数据包括该一个或多个周边节点中各个周边节点的占有率,占有率表征相应周边节点所对应的空间内存在点的概率,当前节点的概率分布表征当前节点的多个子节点所对应的多个空间内分别存在点的概率;基于当前节点的概率分布,从码流中解析出当前节点的占有信息,该占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况;基于包括当前节点的多个节点的占有信息重构N叉树,以重构点云。也即是,依次从码流中解析出待重构的N叉树中各个节点的占有信息,从而重构出N叉树,以重构点云。
在本申请实施例中,以N叉树来描述点云所在的空间,在点云的解码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。可见本方案通过将各个占有率独立输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。
需要说明的是,当前节点为待重构的N叉树中待解码的一个非叶子节点,从码流中解析出N叉树中非叶子节点的占有信息,即能够重构出N叉树。对于叶子节点来说,非叶子节点的占有信息即包含了叶子节点的占有情况,占有情况即叶子节点对的空间内是否存在点的实际情况。当从码流中解析出N叉树中最后一个非叶子节点的占有信息时,即重构出了N叉树。
可选地,N为定值或变量。需要说明的是,解码过程中重构的N叉树的结构与编码过程中构建的N叉树的结构相同。
可选地,当前节点的一个或多个周边节点包括一个或多个第一周边节点,第一周边节点的父节点为已解码的节点,第一周边节点的占有率为第一数值或第二数值,第一数值表示所对应的空间内不存在点,第二数值表示所对应的空间内存在点;该一个或多个周边节点还包括一个或多个第二周边节点,第二周边节点的父节点为未解码的节点,第二周边节点的占有率为预定数值,预定数值大于第一数值且小于第二数值。也即是,在本申请实施例中,概率分布的预测不仅能够依据部分已解码的周边节点的相关信息,还能够依据部分未解码的周边节点的相关信息,这样能够为概率分布的预测提供丰富的特征,在一定程度上提升上下文预测网络的预测准确性。
需要说明的是,解码过程中当前节点的周边节点与编码过程中当前节点的周边节点相同。可选地,当前节点的一个或多个周边节点包括当前节点的兄弟节点,以及当前节点的兄弟节点的子节点。可见,周边节点对应的空间与当前节点对应的空间是距离相近的,这样能够提高概率分布的预测准确性。
可选地,上下文预测网络包括特征融合网络和概率分布预测网络;将当前节点的输入数据输入至上下文预测网络,以得到当前节点的概率分布,包括:将当前节点对应的输入数据输入至特征融合网络,以得到融合特征;将该融合特征输入至概率分布预测网络,以得到当前节点的概率分布。也即是,先融合所输入的各类特征,再进行概率分布预测。
可选地,该一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,该一个或多个周边节点与该一个或多个通道一一对应。换句话说,上下文预测网络的输入数据的通道有多个,各个周边节点的占有率以浮点数表示,一个占有率通过一个通道输入至上下文预测网络。
第三方面,提供了一种点云的编码装置,所述编码装置具有实现上述第一方面中点云的编码方法行为的功能。所述编码装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面所提供的点云的编码方法。
第四方面,提供了一种点云的解码装置,所述解码装置具有实现上述第二方面中点云的解码方法行为的功能。所述解码装置包括一个或多个模块,该一个或多个模块用于实现上述第二方面所提供的点云的解码方法。
第五方面,提供了一种点云的编码装置,所述装置包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序指令,其中,所述程序指令在由所述处理器执行时,使得所述编码装置执行上述第一方面所提供的点云的编码方法。
第六方面,提供了一种点云的解码装置,所述装置包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序指令,其中,所述程序指令在由所述处理器执行时,使得所述编码装置执行上述第二方面所提供的点云的解码方法。
第七方面,提供了一种编码器,包括处理电路,用于执行上述第一方面所提供的点云的编码方法。
第八方面,提供了一种解码器,包括处理电路,用于执行上述第二方面所提供的点云的解码方法。
第九方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器用于存储执行上述第一方面所提供的点云的编码方法的程序和/或上述第二方面所提供的点云的解码方法的程序,以及存储用于实现上述第一方面所提供的点云的编码方法所涉及的数据和/或上述第二方面所提供的点云的解码方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第十方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,实现上述第一方面所述的点云的编码方法或上述第二方面所述的点云的解码方法。
第十一方面,提供了一种包含指令的计算机程序产品,包括计算机程序,当其在计算机上或处理器运行时,实现上述第一方面所述的点云的编码方法或上述第二方面所述的点云的解码方法。
上述第三方面至第十一方面所获得的技术效果与第一方面或第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请实施例提供的技术方案至少能够带来以下有益效果:
在本申请实施例中,以N叉树来描述点云所在的空间,在点云的编解码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。其中,占有率表征相应周边节点所对应的空间内存在点的概率。可见本方案通过将各个周边节点的占有率输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。
附图说明
图1是可适用于本申请实施例的一种点云的示意图;
图2是本申请实施例提供的一种点云译码系统的示意性框图;
图3是本申请实施例提供的一种点云译码系统的实例的说明图;
图4是本申请实施例提供的一种点云编解码算法框架的示意图;
图5是本申请实施例提供的一种点云的编码方法的流程图;
图6是本申请实施例提供的一种N叉树的结构示意图;
图7是本申请实施例提供的另一种N叉树的结构示意图;
图8是本申请实施例提供的一种上下文预测网络的结构示意图;
图9是本申请实施例提供的一种LSTM网络的框架示意图;
图10是本申请实施例提供的另一种上下文预测网络的结构示意图;
图11是本申请实施例提供的一种点云的解码方法的流程图;
图12是本申请实施例提供的一种点云的编码装置的结构示意图;
图13是本申请实施例提供的一种点云的解码装置的结构示意图;
图14为用于本申请实施例的译码装置的一种实现方式的示意性框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先需要说明的是,本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
为了便于理解,首先对本申请实施例涉及的一些名词进行解释。
点云:是某个空间内点的数据集,包含了空间内点的三维坐标。基于点云能够还原三维现实世界。在一些实施例中,点云还包含空间内点的颜色、分类值、强度值和时间等中的一个或多种信息。图1是可适用于本申请实施例的一种点云的示意图。图1所示点云为采集的人体的点云,该点云是空间内人体所包括的点的数据集,基于该点云能够还原三维人体。
N叉树:以八叉树为例,八叉树是一种描述三维空间的树状数据结构。通过构建八叉树,由八叉树来描述点云所在的空间。八叉树中的每个节点用于描述一个空间,即每个节点对应一个空间。其中,根节点对应点云所在的整体空间,除根节点之外的每个节点对应一个局部空间。八叉树中除叶子节点之外的每个节点有八个子节点,八个子节点所对应的八个空间之和即为父节点所对应的空间。在本申请实施例中,N为大于1的整数,N可以为定值,例如N叉树可以为二叉树、四叉树、八叉树等。或者,在一些实施例中,N为变量。例如,N叉树的某一个或多个局部为二叉树或四叉树或八叉树,其他部分为八叉树。又如,N叉树的某一个或多个局部为八叉树,其他部分为四叉树。示例性地,在基于点云构建N叉树的一个示例中,先按照N=4进行空间划分,以构建N叉树的浅层部分,当构建到一定深度时,再按照N=8进行空间划分,以构建N叉树的深层部分。在另一示例中,先按照N=8进行空间划分,以构建N叉树的浅层部分,当所划分的空间粒度达到一定阈值时,再按照N=4进行空间划分,以构建N叉树的更深层部分,当进行到最小粒度的空间划分时,再按照N=8进行空间划分,以构建N叉树最深层部分,即最深的叶子节点。
占有情况(occupancy):依据N叉树中各个节点对应的空间内是否存在点,为相应节点赋值0或1,得到相应节点的占有情况。占有情况表征相应节点内是否存在点云中的点。
占有率:在基于N叉树的点云编码过程中,依据当前节点的一个或多个周边节点的占有率进行上下文预测,以得到当前节点的概率分布。其中,占有率表征相应周边节点所对应的空间内存在点的概率。若某个周边节点为已编码的节点,则该周边节点的占有率即该周边节点的占用情况。若某个周边节点为未编码的节点,则该周边节点的占有率为预定数值。
占有情况字节(occupancy byte):表征一个父节点的多个子节点所对应的多个空间内点的分布情况。在使用八叉树表示点云的时候,依据一个父节点的八个子节点中各个子节点对应的空间内是否存在点,为各个子节点赋值0或1,整合八个子节点的值,得到该父节点的占有情况字节,占有情况字节即一个八位二进制数。由于占有情况字节用8个比特表示,所以一个父节点的占有情况字节共有256种可能的值,即0(即二进制的00000000)至255(即二进制的11111111)。
占用信息:表征当前节点的多个子节点所对应的多个空间内点的分布情况。在本申请实施例中,以八叉树为例,待编码的当前节点的占有信息以一个占用情况字节表示,或者,以八个占有情况表示。
子节点编号:也称为子节点的卦限(octant),代表子节点对应的空间在父节点对应的空间中的相对位置,也指示子节点为父节点的多个子节点中的具体哪一个。以八叉树为例,子节点编号可能的值为1至8,或者0至7,表示八个不同的子节点。
混合压缩算法(hybrid compression algorithm):指整体服从传统压缩算法的架构,但个别模块使用深度学习方法替代的算法的总称。
接下来对本申请实施例所涉及的一些应用场景和相关技术背景进行介绍。
点云作为中数据的形式与当下的虚拟现实(virtual reality,VR)/增强现实(augmented reality,AR)以及自动驾驶等行业息息相关。点云是现今大多数4级自动驾驶解决方案的基础,在定位模块中不可或缺。同时在VR/AR领域,点云在数字人、虚拟物体展现等方面有着重要的应用。随着VR/AR以及自动驾驶等行业的发展,点云数据的应用也将越来越广泛。
与此同时点云也是一种数据量较大的数据形式。以自动驾驶中常用的激光雷达采集的点云为例,现在主流的64线激光雷达一小时收集的数据在100GB以上。这样的数据量对数据的存储和传输都是巨大的挑战。而点云在自动驾驶或是VR/AR等中的实际应用,往往离不开数据的存储和传输。自动驾驶的过程中,雷达传感器得到的点云需要被传输至处理器,在车联网场景下,存在着将点云数据上传到云的需求。在VR/AR的场景重建、虚拟人场景中,也需要储存重建或者生成的大量点云数据。为了能满足点云在传输和存储方面的需求,高效的压缩算法不可或缺。
点云的压缩算法包括两大类,即传统的点云压缩算法以及基于人工智能(artificial intelligence,AI)的点云压缩算法。传统的点云压缩算法进一步包括两类,一类是将点云转化为某种二维信号,然后利用现有的图像压缩算法进行压缩,例如MPEG V-PCC。另一类的将点云转化为树结构再进行熵编码,例如基于kd-tree的Draco算法以及基于八叉树的MPEG G-PCC算法等。基于AI的点云压缩算法也进一步包括两类,一类是基于传统算法框架但部分模块用AI算法代替的算法,例如OctSqueeze算法就是基于传统的八叉树压缩算法的框架,但使用AI算法替代该框架中的上下文编码模块。另一类算法是端到端的AI压缩算法,例如基于Pointnet++特征或三维卷积神经网络(three-dimensionalconvolutional neural networks,3DCNN)的自编解码器算法。总体来说,基于树结构进行点云压缩是使用较多的点云编解码方法。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例的实施环境进行介绍:
本申请实施例提供的一种实施环境包括点云译码系统。图2为本申请实施例提供的一种点云译码系统的示意性框图。其中,术语“点云译码”或“译码”可一般地指代点云编码或点云解码。参见图2,点云译码系统包括源装置10、目的地装置20、链路30和存储装置40。其中,源装置10可以产生经编码的点云数据。因此,源装置10也可以被称为点云编码装置。目的地装置20可以对由源装置10所产生的经编码的点云数据进行解码。因此,目的地装置20也可以被称为点云解码装置。链路30可以接收源装置10所产生的经编码的点云数据,并可以将该经编码的点云数据传输给目的地装置20。存储装置40可以接收源装置10所产生的经编码的点云数据,并可以将该经编码的点云数据进行存储,这样,目的地装置20可以直接从存储装置40中获取经编码的点云数据。或者,存储装置40可以对应于文件服务器或可以保存由源装置10产生的经编码的点云数据的另一中间存储装置,这样,目的地装置20可以经由流式传输或下载存储装置40存储的经编码的点云数据。
源装置10和目的地装置20均可以包括一个或多个处理器以及耦合到该一个或多个处理器的存储器,该存储器可以包括随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、带电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、快闪存储器、可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体等。例如,源装置10和目的地装置20均可以包括桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
链路30可以包括能够将经编码的点云数据从源装置10传输到目的地装置20的一个或多个媒体或装置。在一种可能的实现方式中,链路30可以包括能够使源装置10实时地将经编码的点云数据直接发送到目的地装置20的一个或多个通信媒体。在本申请实施例中,源装置10可以根据通信标准来调制经编码的点云数据,该通信标准可以为无线通信协议等,并且可以将经调制的点云数据发送给目的地装置20。该一个或多个通信媒体可以包括无线和/或有线通信媒体,例如该一个或多个通信媒体可以包括射频(radio frequency,RF)频谱或一个或多个物理传输线。该一个或多个通信媒体可以形成基于分组的网络的一部分,基于分组的网络可以为局域网、广域网或全球网络(例如,因特网)等。该一个或多个通信媒体可以包括路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备等,本申请实施例对此不做具体限定。
在一种可能的实现方式中,存储装置40可以将接收到的由源装置10发送的经编码的点云数据进行存储,目的地装置20可以直接从存储装置40中获取经编码的点云数据。这样,存储装置40可以包括多种分布式或本地存取的数据存储媒体中的任一者,例如,该多种分布式或本地存取的数据存储媒体中的任一者可以为硬盘驱动器、蓝光光盘、数字多功能光盘(digital versatile disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码点云数据的任何其它合适的数字存储媒体等。
在一种可能的实现方式中,存储装置40可以对应于文件服务器或可以保存由源装置10产生的经编码点云数据的另一中间存储装置,目的地装置20可经由流式传输或下载存储装置40存储的点云数据。文件服务器可以为能够存储经编码的点云数据并且将经编码的点云数据发送给目的地装置20的任意类型的服务器。在一种可能的实现方式中,文件服务器可以包括网络服务器、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(network attached storage,NAS)装置或本地磁盘驱动器等。目的地装置20可以通过任意标准数据连接(包括因特网连接)来获取经编码点云数据。任意标准数据连接可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于获取存储在文件服务器上的经编码的点云数据的两者的组合。经编码的点云数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
图2所示的点云译码系统仅为一种可能的实现方式,并且本申请的技术不仅可以适用于图2所示的可以对点云进行编码的源装置10,以及可以对经编码的点云数据进行解码的目的地装置20,还可以适用于其他可以对点云进行编码和对经编码的点云数据进行解码的装置,本申请实施例对此不做具体限定。
在图2所示的点云译码系统中,源装置10包括数据源120、编码器100和输出接口140。在一些实施例中,输出接口140可以包括调节器/解调器(调制解调器)和/或发送器,其中发送器也可以称为发射器。数据源120可以包括点云捕获装置(例如,摄像机等)、含有先前捕获的点云数据的点云存档、用于从点云内容提供者接收点云数据的点云馈入接口,和/或用于产生点云数据的计算机图形系统,或点云数据的这些来源的组合。
数据源可以向编码器100发送点云,编码器100可以对接收到由数据源120发送的点云进行编码,得到经编码的点云数据。编码器可以将经编码的点云数据发送给输出接口。在一些实施例中,源装置10经由输出接口140将经编码的点云数据直接发送到目的地装置20。在其它实施例中,经编码的点云数据还可存储到存储装置40上,供目的地装置20以后获取并用于解码和/或播放。
在图2的实施例中,目的地装置20包括输入接口240、解码器200和显示装置220。在一些实施例中,输入接口240包括接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码的点云数据,然后再发送给解码器200,解码器200可以对接收到的经编码的点云数据进行解码,得到经解码的点云数据。解码器可以将经解码的点云数据发送给显示装置220。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码的点云数据。显示装置220可以为多种类型中的任一种类型的显示装置,例如,显示装置220可以为液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
尽管图2中未示出,但在一些方面,编码器100和解码器200可各自与音频编码器和解码器集成,且可以包括适当的多路复用器-多路分用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其它硬件和软件,用于共同数据流或单独数据流中的音频和视频两者的编码。在一些实施例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
编码器100和解码器200各自可为以下各项电路中的任一者:一个或多个微处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一个或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包括硬件、软件、硬件与软件的组合等)中的任一者可被视为一个或多个处理器。编码器100和解码器200中的每一者都可以包括在一个或多个编码器或解码器中,所述编码器或所述解码器中的任一者可以集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本申请实施例可大体上将编码器100称为将某些信息“发信号通知”或“发送”到例如解码器200的另一装置。术语“发信号通知”或“发送”可大体上指代用于对经压缩点云数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
图3是基于一示例性实施例的包含点云编码器20和/或点云解码器30的点云译码系统40的实例的说明图。点云译码系统40可以包含成像设备41、点云编码器20、点云解码器30(和/或藉由处理电路46实施的点云编/解码器)、天线42、一个或多个处理器43、一个或多个内存存储器44和/或显示设备45。
如图3所示,成像设备41、天线42、处理电路46、点云编码器20、点云解码器30、处理器43、内存存储器44和/或显示设备45能够互相通信。在不同实例中,点云译码系统40可以只包含点云编码器20或只包含点云解码器30。
在一些实例中,天线42可以用于传输或接收点云数据的经编码比特流。另外,在一些实例中,显示设备45可以用于呈现点云数据。处理电路46可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。点云译码系统40也可以包含可选的处理器43,该可选处理器43类似地可以包含专用集成电路(ASIC)逻辑、图形处理器、通用处理器等。另外,内存存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(static random access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,内存存储器44可以由超速缓存内存实施。在其它实例中,处理电路46可以包含存储器(例如,缓存等)用于实施图像缓冲器等。
在一些实例中,通过逻辑电路实施的点云编码器20可以包含(例如,通过处理电路46或内存存储器44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的点云编码器20,以实施参照图3的点云解码器20和/或本文中所描述的任何其它编码器系统或子系统所论述的各种模块。逻辑电路可以用于执行本文所论述的各种操作。
在一些实例中,点云解码器30可以以类似方式通过处理电路46实施,以实施参照图3的点云解码器30和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。在一些实例中,逻辑电路实施的点云解码器30可以包含(通过处理电路46或内存存储器44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的点云解码器30。
在一些实例中,天线42可以用于接收点云数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码点云帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关的数据(例如,变换系数或经量化变换系数,(如所论述的)可选指示符,和/或定义编码分割的数据)。点云译码系统40还可包含耦合至天线42并用于解码经编码比特流的点云解码器30。显示设备45用于呈现点云帧。
应理解,本申请实施例中对于参考点云编码器20所描述的实例,点云解码器30可以用于执行相反过程。关于信令语法元素,点云解码器30可以用于接收并解析这种语法元素,相应地解码相关点云数据。在一些例子中,点云编码器20可以将语法元素熵编码成经编码点云比特流。在此类实例中,点云解码器30可以解析这种语法元素,并相应地解码相关点云数据。
需要说明的是,本申请实施例所描述的编解码过程存在于绝大部分点云编解码器中,例如MPEG-2、MPEG-4、基于AI的端到端的点云编码等对应的编解码器中。
图4是本申请实施例提供的一种点云编解码算法框架的示意图。参见图4,点云(即点云数据)包含空间内点的三维坐标(如[{x1,y1,z1},{x2,y2,z2},…]),基于N叉树进行点云的编解码。在编码过程中,编码端(或编码器)基于点云构建N叉树,例如构建八叉树(octree)。编码端然后通过遍历N叉树中的节点来压缩点云。其中,编码端每遍历一个节点,根据本申请实施例提供的编码方法进行上下文预测以及熵编码(同步进行),以将所遍历的节点的占有信息编入码流,即得到压缩后的二进制文件(即点云压缩文件)。在解码过程中,解码端(或解码器)根据本申请实施例提供的解码方法,通过上下文预测以及熵解码逐一解码出各个节点的占有信息,从而重构出N叉树,基于重构的N叉树得到解压后的点云数据(重建的点云数据),也即重构点云。
接下来对本申请实施例提供的一种点云的编码方法进行说明。需要说明的是,结合图2或图3所示的点云译码系统,或图4所示的点云编解码算法框架,下文中的任一种点云的编码方法可以是点云译码系统中的编码器执行的,或点云编解码算法框架中的编码端执行的。
图5是本申请实施例提供的一种点云的编码方法的流程图,该方法应用于编码器。请参考图5,该方法包括如下步骤。
步骤501:确定N叉树,该N叉树用于描述点云所在的空间。
其中,N为大于1的整数。
在本申请实施例中,基于点云构建N叉树,通过构建的N叉树来进行点云的编解码。如前述所介绍的内容,N为定值或变量。其中,当N为定值时,N叉树中各个父节点的子节点的个数均为N。当N为变量时,N叉树中一些父节点的子节点的个数为N,另一些父节点的子节点的个数不等于N(大于N或小于N)。例如,在通过递归式的空间划分来构建N叉树的过程中,N的数值可以随着树的深度或者最小空间的粒度等进行改变。
图6是本申请实施例提供的一种N叉树的结构示意图。在图6所示的N叉树中,N恒等于8,除叶子节点之外的各个节点均有八个子节点。其中,白色填充的节点对应的空间内不存在点,黑色填充的节点对应的空间内存在点。对于不存在点的空间无需进一步划分子空间,也即,白色填充的节点无子节点。图7是本申请实施例提供的另一种N叉树的结构示意图。与图6不同的是,在图7所示的N叉树中,N为变量。如图7所示,一部分节点有八个子节点,另一部分节点有四个子节点。
需要说明的是,N叉树用于描述点云所在的空间,即点云所在的整体空间。其中,N叉树的根节点用于描述点云所在的整体空间(或大空间),N叉树中除根节点之外的节点用于描述局部空间(或子空间或小空间),局部空间即点云所在空间的局部。换句话说,N叉树中每个节点对应一个空间,根节点对应整体空间,其他每个节点对应一个局部空间。具有子节点的节点以及部分叶子节点对应的空间内存在点云中的点,不具有子节点的节点(即另一部分叶子节点)对应的空间内不存在点云中的点。
另外,所构建的N叉树中的各个节点的占有情况是已知的,占有情况表征相应节点内是否存在点云中的点。N叉树中除叶子节点之外的各个节点的占有信息是已知的,占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况。也即是,节点的占有情况和占有信息均表征点云所在空间内点的真实信息。
步骤502:将当前节点对应的输入数据输入至上下文预测网络,以得到当前节点的概率分布,该输入数据包括当前节点的一个或多个周边节点中各个周边节点的占有率,占有率表征相应周边节点所对应的空间内存在点的概率。
其中,当前节点为N叉树中待编码的一个节点,当前节点的概率分布表征当前节点的多个子节点所对应的多个空间内分别存在点的概率。其中,当前节点的多个子节点与该多个空间一一对应。当前节点的概率分布即当前节点的多个子节点的占有情况的概率分布。
在本申请实施例中,基于N叉树采用上下文预测的熵编码方式来压缩点云。其中,上下文预测的实现过程为:在确定N叉树之后,遍历N叉树中的节点,每当遍历到一个节点,将当前节点的输入数据输入至上下文预测网络,以得到当前节点的概率分布。可选地,N叉树的遍历方式可以为广度遍历,也可以为深度遍历,也可以为其他的遍历方式。当前节点的输入数据包括当前节点的一个或多个周边节点中各个周边节点的占有率,占有率表征相应周边节点所对应的空间内存在点的概率。
在将当前节点的输入数据输入至上下文预测网络之前,需要确定当前节点的一个或多个周边节点。需要说明的是,本申请实施例不限定N叉树中的哪些节点为当前节点的周边节点,换句话说,周边节点的确定方法有很多,不同的编解码算法所确定的周边节点可以相同或不同。
在一种实现方式中,当前节点的一个或多个周边节点包括当前节点的兄弟节点,以及当前节点的兄弟节点的子节点。其中,当前节点的兄弟节点与当前节点属于同一个父节点。可见,周边节点对应的空间与当前节点对应的空间是距离相近的,利用与当前节点对应的空间相近的空间内存在点的概率,来预测当前节点的概率分布,这样能够提高概率分布的预测准确性。
在本申请实施例中,该一个或多个周边节点包括一个或多个第一周边节点,第一周边节点的父节点为已编码的节点,第一周边节点的占有率为第一数值或第二数值,第一数值表示所对应的空间内不存在点,第二数值表示所对应的空间内存在点。示例性地,第一数值为0且第二数值为1,或者,第一数值为0且第二数值为10。
可选地,该一个或多个周边节点还包括一个或多个第二周边节点,第二周边节点的父节点为未编码的节点,第二周边节点的占有率为预定数值,预定数值大于第一数值且小于第二数值。也即是,在本申请实施例中,概率分布的预测不仅能够依据部分已编码的周边节点的相关信息,还能够依据部分未编码的周边节点的相关信息,这样能够为概率分布的预测提供丰富的特征,在一定程度上提升上下文预测网络的预测准确性。
需要说明的是,若某个周边节点的父节点为已编码的节点,那么该周边节点的占有率等同于该周边节点的占有情况,即对应的空间内实际是否存在点的情况。若某个周边节点的父节点为未编码的节点,那么该周边节点的占有率为预定数值。这样后续在解码过程中,对于已解码的节点的子节点的占有情况是已知的,可直接将占有情况作为子节点的占有率。而对于未解码的节点的子节点的占有情况是未知的,可将预定数值作为子节点的占有率。另外,在当前节点的父节点为已编码节点的实现方式中,在后续解码过程中,当前节点的占有情况也是已知的,那么可选地,当前节点的周边节点还包括当前节点。
可选地,预定数值为预设数值或者依据某方法确定的数值。示例性地,假设第一数值为0且第二数值为1,预定数值可被预设为0.3、0.5或0.8等。或者,依据第二周边节点的已编码周边节点的占有率,确定第二周边节点的占有率。例如,将第二周边节点的已编码周边节点的占有率的平均值确定为第二周边节点的占有率。其中,第二周边节点的已编码周边节点包括第二周边节点的已编码兄弟节点,或,第二周边节点的已编码周边节点包括第二周边节点的已编码兄弟节点以及已编码兄弟节点的子节点。又或者,生成介于第一数值与第二数值之间的随机数,作为第二周边节点的占有率。除此之外,也可以依据其他方法确定预定数值,本申请实施例对此不作限定。
在一种实现方式中,当前节点的一个或多个周边节点包括一个或多个第一周边节点,以及一个或多个第二周边节点。假设该一个或多个周边节点包括当前节点的兄弟节点,以及当前节点的兄弟节点的子节点,那么,该一个或多个第一周边节点包括当前节点的兄弟节点,以及当前节点的已编码兄弟节点的子节点,该一个或多个第二周边节点包括当前节点的未编码兄弟节点的子节点。示例性地,按照广度遍历的顺序来遍历N叉树中的节点,在当前节点不是当前节点的父节点的第一个子节点且不是最后一个子节点的情况下,当前节点的兄弟节点中一部分为已编码的节点,另一部分为未编码的节点。在当前节点是当前节点的父节点的第一个子节点的情况下,当前节点的兄弟节点均为未编码的节点。在当前节点是当前节点的父节点的最后一个子节点的情况下,当前节点的兄弟节点均为已编码的节点。
示例性地,假设基于点云所构建的N叉树为八叉树,广度遍历八叉树,预定数值为0.5,当前节点为当前节点的父节点的第三个子节点,当前节点的周边节点包括当前节点、当前节点的兄弟节点,以及当前节点的兄弟节点的子节点,那么,当前节点以及当前节点的七个兄弟节点的占有率均等同于对应的占有情况,占有情况为0.0或1.0。当前节点的前两个兄弟节点为已编码节点,这两个兄弟节点的子节点的占有率均等同于对应的占有情况。当前节点的后五个兄弟节点为未编码节点,这五个兄弟节点的子节点的占有率均为0.5。
可选地,在本申请实施例中,该一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,该一个或多个周边节点与该一个或多个通道一一对应。换句话说,上下文预测网络的输入数据的通道有多个,各个周边节点的占有率以浮点数表示,一个占有率通过一个通道输入至上下文预测网络。例如,当前节点的周边节点共有7个,这7个周边节点的7个占有率(以浮点数表示)通过7个通道分别输入至上下文预测网络。
示例性地,以八叉树为例,假设第一数值为0.0,第二数值为1.0,预定数值为0.5,当前节点的周边节点包括当前节点以及当前节点的兄弟节点,那么,当前节点以及当前节点的七个兄弟节点的占有率均等同于对应的占有情况,例如这八个节点的占有率分别为0.0、1.0、0.0、0.0、0.0、1.0、0.0、0.0。在编码到当前节点时,将这八个浮点数通过八个通道分别输入至上下文预测网络。这八个浮点数能够表征当前节点的父节点的占有信息,即父节点的多个子节点所对应的多个空间内点的分布情况。
由前述可知,本方案通过引入第一数值(如0.0)到第二数值(如1.0)的浮点数来表示一个节点对应的空间内存在点的概率,使得占有率不仅可以表示存在点和不存在点这两种情况,对于那些尚不能完全确定占有情况的节点,本方案也可以以预定数值作为这些节点的占有率从而输入上下文预测网络。这样实质上是通过引入更多的特征,以提升上下文预测网络的预测精度和总体的压缩率。
可选地,在本申请实施例中,当前节点对应的输入数据还包括当前节点对应的空间的位置信息(location)、当前节点对应的卦限(octant)、当前节点的深度(level)等中的一种或多种。也即是,上下文预测网络的输入数据除了包括与占有率相关的特征之外,还包括与占有率无关的其他模态的特征。其中,当前节点对应的空间的位置信息为当前节点对应的空间的中心坐标或任一顶点坐标。当前节点的深度是指当前节点位于N叉树中的深度。当前节点对应的卦限是指当前节点对应的空间位于当前节点的父节点对应的空间的卦限。当前节点的卦限用于指示当前节点对应的空间位于父节点对应的空间中的相对位置。以八叉树为例,当前节点的父节点包括八个子节点,该父节点对应的空间包括八个子空间,即共分为八个卦限,例如,这八个子节点对应的卦限分别为0至7,这八个卦限与这个八个子空间一一对应。
需要说明的是,上下文预测网络的网络框架和网络结构均可以有多种,本申请实施例对此不作限定。接下来将介绍其中的一种实现方式。
在一种实现方式中,上下文预测网络包括特征融合网络和概率分布预测网络。通过上下文预测网络确定当前节点的概率分布的实现过程为:将当前节点对应的输入数据输入至特征融合网络,以得到融合特征,将该融合特征输入至概率分布预测网络,以得到当前节点的概率分布。
图8是本申请实施例提供的一种上下文预测网络的结构示意图。参见图8,上下文预测网络包括特征融合网络和概率分布预测网络。将当前节点对应的输入数据输入特征融合网络,通过特征融合网络对输入数据进行处理以得到融合特征(也称为隐含特征),融合特征为一种高维特征。融合特征被送入概率分布预测网络以预测当前节点的概率分布。其中,当前节点对应的输入数据包括当前节点的一个或多个周边节点中各个周边节点的占有率。假设当前节点的周边节点包括当前节点的父节点的子节点,以及当前节点的兄弟节点的子节点,那么输入数据所包括的多个通道的占有率如0.0、0.0、1.0、…、0.0、1.0、…、0.5、0.5。当前节点对应的输入数据还包括与占有率无关的特征,例如,当前节点对应的空间的位置信息L(x,y,z)∈R3、当前节点的卦限O∈{0,…,7}、当前节点的深度L∈{0,…,T},其中,R3表示实数,T表示N叉树的深度。
其中,特征融合网络和概率分布预测网络的网络结构也可以有多种,本申请实施例对此不作限定。接下来介绍其中的一种实现方式。
在一种实现方式中,特征融合网络包括多层感知机(multi-layer perception,MLP)网络,概率分布预测网络包括长短期记忆(long short term memory,LSTM)网络。其中,特征融合网络所包括的MLP网络用于融合所输入的各类特征。概率分布预测网络所包括的LSTM网络用于通过循环卷积的方式来预测当前节点的概率分布。LSTM网络是一种循环神经网络,能够处理具有序列性质的数据,并在序列的演进方向进行递归迭代。
图9是本申请实施例提供的一种LSTM网络的框架示意图。参见图9,LSTM网络架构包括多个串联的LSTM网络,以进行递归迭代处理。图9中示出了其中两个LSTM网络,第一个子网络A的内部结构与后一子网络的内部结构相同。LSTM网络在t时刻的输入包括xt、ht-1和Ct-1,输出包括ht和Ct。其中,xt为所输入的融合特征,ht为状态向量,表示某种预测结果。Ct为中间变量,表示对上文信息的总结,在每次迭代时都会更新。Ct的更新(删除或添加)由门函数(即图9中的σ函数)来决定。通过门函数来更新Ct,使得网络有选择性地利用上文信息。其中,h0为初始化的向量,tanh为三角函数。
图10是本申请实施例提供的另一种上下文预测网络的结构示意图。如图10所示,特征融合网络包括三个串联的MLP网络,概率分布预测网络包括三个LSTM网络(结构如图9所示)和一个MLP网络。上下文预测网络所包括的各个网络的输入维度和输出维度如图10所示。其中,第一个MLP网络的输入维度n等于当前节点的输入数据的维度。首先,通过三个串联的MLP网络将当前节点对应的输入数据(包含各类特征)进行特征融合,将各类特征融合成一个128维的隐含特征(即融合特征)。然后,通过三层串联的LSTAM网络将当前节点的隐含特征等信息进行整合,每层LSTM网络会将预测结果ht传入下一层网络,基于ht以及更新过的Ct进行下一次迭代。在最后一层LSTM网络之后的MLP层对预测结果进行调整,最终输出一个256维的概率分布,也即预测得到当前节点的多个子节点所对应的多个空间内分别存在点的概率。
再次说明,上述如图8和图10所示的上下文预测网络的结构仅用于示例性介绍本申请实施例,并不用于限定本申请实施例,在本申请实施例中,上下文预测网络的结构也可以是其他的网络结构,如卷积神经网络、支持向量机等。
在本申请实施例中,上下文预测网络为预训练的网络,接下来对上下文预测网络的训练过程进行介绍。
首先,获取训练数据,训练数据包括N叉树样本,以及该N叉树样本中除叶子节点之外各个样本节点的已知概率分布。其次,基于训练数据来训练上下文预测网络。在训练过程中,通过待训练的上下文预测网络对N叉树样本中当前样本节点进行概率分布预测,得到当前样本节点的估计的概率分布,基于当前样本节点的已知概率分布和估计的概率分布,确定损失值,基于损失值调整上下文预测网络的网络参数。在损失值收敛于第一阈值,或当前训练次数达到第二阈值时,确定当前的上下文预测网络为训练完成时得到的上下文预测网络。可选地,上述上下文预测网络的训练可以是在线进行的,也可以是离线进行的。其中,通过在线方式进行训练能够使得编码器及时得到高精度的上下文预测网络。
步骤503:基于当前节点的概率分布,将当前节点的占有信息编入码流,占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况。
在本申请实施例中,在得到当前节点的概率分布之后,基于当前节点的概率分布,将当前节点的占有信息编入码流。其中,占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况。在本申请实施例中,以八叉树为例,待编码的当前节点的占有信息以一个占用情况字节表示,或者,以八个占有情况表示。需要说明的是,占有信息所表征的分布情况是真实信息。
示例性地,在得到当前节点的概率分布之后,将当前节点的概率分布以及占有信息送入熵编码器中进行熵编码,以得到当前节点的码流。其中,熵编码器可以为算术编码器或其他的编码器。
需要说明的是,当前节点为N叉树中待编码的非叶子节点,即编码N叉树中的非叶子节点即可。对于叶子节点来说,将叶子节点的父节点的占有信息编入码流,实质上已将叶子节点的占有情况编入了码流,在后续的解码过程中,基于除叶子节点之外的其他节点的占有信息即能够重构出整个N叉树,进而重构点云。也即是,当N叉树中除叶子节点之外的多个节点的占有信息均编入码流时,基于N叉树的点云编码完成。
由前述可知,点云还可能包含空间内点的颜色、分类值、强度值和时间等中的一个或多种信息,本申请实施例不限定将这些信息编入码流的编码方法。
综上所述,在本申请实施例中,以N叉树来描述点云所在的空间,在点云的编解码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。其中,占有率表征相应周边节点所对应的空间内存在点的概率。可见本方案通过将各个周边节点的占有率输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。简单来说,本方案包括数据预处理的过程,例如通过预处理将网络的输入数据中与占有情况或占有率相关的特征以多个通道的数值(如浮点数)进行表示,使得网络能够正确理解输入数据。
图11是本申请实施例提供的一种点云的解码方法的流程图,该方法应用于解码器。需要说明的是,图11所示的解码方法与图5所示的编码方法是相匹配的。请参考图11,该方法包括如下步骤。
步骤1101:确定待重构的N叉树中当前节点的一个或多个周边节点,该N叉树用于描述点云所在的空间。
其中,当前节点为N叉树中待解码的一个节点,N为大于1的整数。对于N叉树的介绍可以参照实施例中的相关内容,这里不再赘述。
在本申请实施例的编码过程中基于N叉树来压缩点云,相应地,在解码过程中需要基于码流重构出N叉树,从而重构出点云。其中,解码器基于码流依次解码待重构的N叉树中除叶子节点之外的各个节点,对于待解码的当前节点,首先需要确定当前节点的一个或多个周边节点。需要说明的是,本申请实施例不限定待重构的N叉树中的哪些节点为当前节点的周边节点,换句话说,周边节点的确定方法有很多,不同的编解码算法所确定的周边节点可以相同或不同,但编码过程中当前节点的周边节点与解码过程中当前节点的周边节点是一致的。
在一种实现方式中,当前节点的一个或多个周边节点包括当前节点的兄弟节点,以及当前节点的兄弟节点的子节点。其中,当前节点的兄弟节点与当前节点属于同一个父节点。可选地,当前节点还包括当前节点。可见,周边节点对应的空间与当前节点对应的空间是距离相近的,利用与当前节点对应的空间相近的空间内存在点的概率,来预测当前节点的概率分布,这样能够提高概率分布的预测准确性。
步骤1102:将当前节点的输入数据输入至上下文预测网络,以得到当前节点的概率分布,该输入数据包括该一个或多个周边节点中各个周边节点的占有率,占有率表征相应周边节点所对应的空间内存在点的概率。
其中,当前节点的概率分布表征当前节点的多个子节点所对应的多个空间内分别存在点的概率。
在本申请实施例中,在确定当前节点的一个或多个周边节点之后,将当前节点的输入数据输入至上下文预测网络,以得到当前节点的概率分布。其中,输入数据包括该一个或多个周边节点中各个周边节点的占有率。也即是,与编码过程中通过上下文预测的方式来确定当前节点的概率分布的实现过程类似地,在解码过程中,也通过上下文预测的方式来确定当前节点的概率分布。
其中,该一个或多个周边节点包括一个或多个第一周边节点,第一周边节点的父节点为已解码的节点,第一周边节点的占有率为第一数值或第二数值,第一数值表示所对应的空间内不存在点,第二数值表示所对应的空间内存在点。可选地,该一个或多个周边节点还包括一个或多个第二周边节点,第二周边节点的父节点为未解码的节点,第二周边节点的占有率为预定数值,预定数值大于第一数值且小于第二数值。可选地,预定数值为预设数值或者依据某方法确定的数值。确定预定数值的具体实现方式参照编码过程中的相关介绍,这里不再赘述。
可选地,在本申请实施例中,该一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,该一个或多个周边节点与该一个或多个通道一一对应。换句话说,上下文预测网络的输入数据的通道有多个,各个周边节点的占有率以浮点数表示,一个占有率通过一个通道输入至上下文预测网络。例如,当前节点的周边节点共有8个,这8个周边节点的8个占有率(以浮点数表示)通过8个通道分别输入至上下文预测网络。
可选地,在本申请实施例中,当前节点对应的输入数据还包括当前节点对应的空间的位置信息、当前节点对应的卦限、当前节点的深度等中的一种或多种。也即是,上下文预测网络的输入数据除了包括与占有率相关的特征之外,还包括与占有率无关的其他模态的特征。其中,对于当前节点对应的空间的位置信息、当前节点对应的卦限、当前节点的深度的相关介绍可参照前述编码过程,这里不再赘述。需要说明的是,编码过程中当前节点对应的输入数据与解码过程中当前节点对应的输入数据是一致的。
在本申请实施例中,解码过程中的上下文预测网络与编码过程中的上下文预测网络的相同的。示例性地,上下文预测网络包括特征融合网络和概率分布预测网络。通过上下文预测网络确定当前节点的概率分布的实现过程为:将当前节点对应的输入数据输入至特征融合网络,以得到融合特征,将该融合特征输入至概率分布预测网络,以得到当前节点的概率分布。其中,对于特征融合网络和概率分布预测网络的相关介绍请参照编码方法实施例中的相关内容,另外,上下文预测网络的训练过程也可参照前述实施例,这里不再赘述。
步骤1103:基于当前节点的概率分布,从码流中解析出当前节点的占有信息,该占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况。
在本申请实施例中,确定当前节点的概率分布之后,基于当前节点的概率分布,从码流中解析出当前节点的占有信息。其中,该占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况。在本申请实施例中,以八叉树为例,解码得到的当前节点的占有信息以一个占用情况字节表示,或者,以八个占有情况表示。需要说明的是,占有信息所表征的分布情况是真实信息。
示例性地,在确定当前节点的概率分布之后,将当前节点的概率分布和码流送入熵解码器中进行熵解码,以得到当前节点的占有信息。其中,熵解码器可以为算术解码器或其他的解码器。
步骤1104:基于包括当前节点的多个节点的占有信息重构N叉树,以重构点云。
在本申请实施例中,当前节点为待重构的N叉树中待解码的一个非叶子节点,即基于码流解析出N叉树中非叶子节点的占有信息即可。对于叶子节点来说,叶子节点的父节点的占有信息已包含了叶子节点的占有情况,解析出各个非叶子节点的占有信息之后,即能够重构出N叉树,进而基于N叉树重构出点云。也即是,当从码流中解析出N叉树中最后一个非叶子节点的占有信息时,即重构出了N叉树,进而重构出点云。换句话说,基于包括当前节点的多个节点的占有信息重构N叉树,以重构点云,该多个节点即为N叉树中的多个非叶子节点。需要说明的是,解码过程中重构的N叉树的结构与编码过程中构建的N叉树的结构相同。
由前述可知,点云还可能包含空间内点的颜色、分类值、强度值和时间等中的一个或多种信息,本申请实施例不限定从码流中解析得到点云的这些信息的解码方法。
综上所述,在本申请实施例中,以N叉树来描述点云所在的空间,在点云的编解码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。其中,占有率表征相应周边节点所对应的空间内存在点的概率。可见本方案通过将各个周边节点的占有率输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。
图12是本申请实施例提供的一种点云的编码装置1200的结构示意图,该编码装置1200可以由软件、硬件或者两者的结合实现成为编码器的部分或者全部,该编码器可以为图2至图4任一所示的编码器。参见图12,该编码装置1200包括:确定模块1201、预测模块1202和编码模块1203。
确定模块1201,用于确定N叉树,该N叉树用于描述点云所在的空间,N为大于1的整数;
预测模块1202,用于将当前节点对应的输入数据输入至上下文预测网络,以得到当前节点的概率分布,该输入数据包括当前节点的一个或多个周边节点中各个周边节点的占有率,占有率表征相应周边节点所对应的空间内存在点的概率,当前节点为N叉树中待编码的一个节点,当前节点的概率分布表征当前节点的多个子节点所对应的多个空间内分别存在点的概率;
编码模块1203,用于基于当前节点的概率分布,将当前节点的占有信息编入码流,该占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况。
可选地,该一个或多个周边节点包括一个或多个第一周边节点,第一周边节点的父节点为已编码的节点,第一周边节点的占有率为第一数值或第二数值,第一数值表示所对应的空间内不存在点,第二数值表示所对应的空间内存在点;
一个或多个周边节点还包括一个或多个第二周边节点,第二周边节点的父节点为未编码的节点,第二周边节点的占有率为预定数值,预定数值大于第一数值且小于第二数值。
可选地,上下文预测网络包括特征融合网络和概率分布预测网络;
预测模块1202包括:
融合子模块,用于将当前节点对应的输入数据输入至特征融合网络,以得到融合特征;
预测子模块,用于将融合特征输入至概率分布预测网络,以得到当前节点的概率分布。
可选地,该一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,该一个或多个周边节点与该一个或多个通道一一对应。
在本申请实施例中,以N叉树来描述点云所在的空间,在点云的编解码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。其中,占有率表征相应周边节点所对应的空间内存在点的概率。可见本方案通过将各个周边节点的占有率输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。
需要说明的是:上述实施例提供的点云的编码装置在编码点云时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的点云的编码装置与点云的编码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图13是本申请实施例提供的一种点云的解码装置1300的结构示意图,该解码装置1300可以由软件、硬件或者两者的结合实现成为解码器的部分或者全部,该解码器可以为图2至图4任一所示的解码器。参见图13,该解码装置1300包括:确定模块1301、预测模块1302、解析模块1303和重构模块1304。
确定模块1301,用于确定待重构的N叉树中当前节点的一个或多个周边节点,该N叉树用于描述点云所在的空间,当前节点为N叉树中待解码的一个节点,N为大于1的整数;
预测模块1302,用于将当前节点的输入数据输入至上下文预测网络,以得到当前节点的概率分布,该输入数据包括一个或多个周边节点中各个周边节点的占有率,占有率表征相应周边节点所对应的空间内存在点的概率,当前节点的概率分布表征当前节点的多个子节点所对应的多个空间内分别存在点的概率;
解析模块1303,用于基于当前节点的概率分布,从码流中解析出当前节点的占有信息,该占有信息表征当前节点的多个子节点所对应的多个空间内点的分布情况;
重构模块1304,用于基于包括当前节点的多个节点的占有信息重构N叉树,以重构点云。
可选地,该一个或多个周边节点包括一个或多个第一周边节点,第一周边节点的父节点为已解码的节点,第一周边节点的占有率为第一数值或第二数值,第一数值表示所对应的空间内不存在点,第二数值表示所对应的空间内存在点;
该一个或多个周边节点还包括一个或多个第二周边节点,第二周边节点的父节点为未解码的节点,第二周边节点的占有率为预定数值,预定数值大于第一数值且小于第二数值。
可选地,上下文预测网络包括特征融合网络和概率分布预测网络;
预测模块1302包括:
将当前节点对应的输入数据输入至特征融合网络,以得到融合特征;
将融合特征输入至概率分布预测网络,以得到当前节点的概率分布。
可选地,该一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,该一个或多个周边节点与该一个或多个通道一一对应。
在本申请实施例中,以N叉树来描述点云所在的空间,在点云的编解码过程中,并非将以八比特二进制表示的占有信息转化为十进制数后输入上下文预测网络,而是将当前节点的各个周边节点的占有率输入至上下文预测网络,以预测当前节点的概率分布。其中,占有率表征相应周边节点所对应的空间内存在点的概率。可见本方案通过将各个周边节点的占有率输入上下文预测网络,使得上下文预测网络不会误认为各个周边节点对应的空间有权重高低之分,从而准确理解各个周边节点的占有率,这样能够提高上下文预测网络的预测精度,从而提升编解码的性能。
需要说明的是:上述实施例提供的点云的解码装置在解码点云时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的点云的解码装置与点云的解码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图14为用于本申请实施例的译码装置1400的一种实现方式的示意性框图。其中,获取装置1400可以包括处理器1401、存储器1402和总线系统1403。其中,处理器1401和存储器1402通过总线系统1403相连,该存储器1402用于存储指令,该处理器1401用于执行该存储器1402存储的指令,以执行本申请实施例描述的各种点云编码或解码方法,尤其是基于当前图像块的块尺寸对当前图像块进行滤波的方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器1401可以是中央处理单元(central processingunit,CPU),该处理器1401还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1402可以包括ROM设备或者RAM设备。任何其他适宜类型的存储设备也可以用作存储器1402。存储器1402可以包括由处理器1401使用总线1403访问的代码和数据14021。存储器1402可以进一步包括操作系统14023和应用程序14022,该应用程序14022包括允许处理器1401执行本申请实施例描述的点云编码或解码方法(尤其是本申请实施例描述的点云的编解码方法)的至少一个程序。例如,应用程序14022可以包括应用1至N,其进一步包括执行在本申请实施例描述的点云编码或解码方法的点云编码或解码应用(简称点云译码应用)。
该总线系统1403除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1403。
可选的,编码装置1400还可以包括一个或多个输出设备,诸如显示器1404。在一个示例中,显示器1404可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1404可以经由总线1403连接到处理器1401。
需要指出的是,译码装置1400可以执行本申请实施例中的点云的编码方法,也可执行本申请实施例中的点云的解码方法。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请实施例中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、DVD和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,编码器100及解码器200中的各种说明性逻辑框、单元、模块可以理解为对应的电路器件或逻辑元件。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请实施例中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))或半导体介质(例如:固态硬盘(solid state disk,SSD))等。值得注意的是,本申请实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种点云的编码方法,其特征在于,所述方法包括:
确定N叉树,所述N叉树用于描述点云所在的空间,所述N为大于1的整数;
将当前节点对应的输入数据输入至上下文预测网络,以得到所述当前节点的概率分布,所述输入数据包括所述当前节点的一个或多个周边节点中各个周边节点的占有率,所述占有率表征相应周边节点所对应的空间内存在点的概率,所述当前节点为所述N叉树中待编码的一个节点,所述当前节点的概率分布表征所述当前节点的多个子节点所对应的多个空间内分别存在点的概率;
基于所述当前节点的概率分布,将所述当前节点的占有信息编入码流,所述占有信息表征所述当前节点的多个子节点所对应的多个空间内点的分布情况。
2.如权利要求1所述的方法,其特征在于,所述一个或多个周边节点包括一个或多个第一周边节点,所述第一周边节点的父节点为已编码的节点,所述第一周边节点的占有率为第一数值或第二数值,所述第一数值表示所对应的空间内不存在点,所述第二数值表示所对应的空间内存在点;
所述一个或多个周边节点还包括一个或多个第二周边节点,所述第二周边节点的父节点为未编码的节点,所述第二周边节点的占有率为预定数值,所述预定数值大于所述第一数值且小于所述第二数值。
3.如权利要求1或2所述的方法,其特征在于,所述上下文预测网络包括特征融合网络和概率分布预测网络;
所述将当前节点对应的输入数据输入至上下文预测网络,以得到所述当前节点的概率分布,包括:
将所述当前节点对应的输入数据输入至所述特征融合网络,以得到融合特征;
将所述融合特征输入至所述概率分布预测网络,以得到所述当前节点的概率分布。
4.如权利要求1-3任一所述的方法,其特征在于,所述一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,所述一个或多个周边节点与所述一个或多个通道一一对应。
5.一种点云的解码方法,其特征在于,所述方法包括:
确定待重构的N叉树中当前节点的一个或多个周边节点,所述N叉树用于描述点云所在的空间,所述当前节点为所述N叉树中待解码的一个节点,所述N为大于1的整数;
将所述当前节点的输入数据输入至上下文预测网络,以得到所述当前节点的概率分布,所述输入数据包括所述一个或多个周边节点中各个周边节点的占有率,所述占有率表征相应周边节点所对应的空间内存在点的概率,所述当前节点的概率分布表征所述当前节点的多个子节点所对应的多个空间内分别存在点的概率;
基于所述当前节点的概率分布,从码流中解析出所述当前节点的占有信息,所述占有信息表征所述当前节点的多个子节点所对应的多个空间内点的分布情况;
基于包括所述当前节点的多个节点的占有信息重构所述N叉树,以重构所述点云。
6.如权利要求5所述的方法,其特征在于,所述一个或多个周边节点包括一个或多个第一周边节点,所述第一周边节点的父节点为已解码的节点,所述第一周边节点的占有率为第一数值或第二数值,所述第一数值表示所对应的空间内不存在点,所述第二数值表示所对应的空间内存在点;
所述一个或多个周边节点还包括一个或多个第二周边节点,所述第二周边节点的父节点为未解码的节点,所述第二周边节点的占有率为预定数值,所述预定数值大于所述第一数值且小于所述第二数值。
7.如权利要求5或6所述的方法,其特征在于,所述上下文预测网络包括特征融合网络和概率分布预测网络;
所述将所述当前节点的输入数据输入至上下文预测网络,以得到所述当前节点的概率分布,包括:
将所述当前节点对应的输入数据输入至所述特征融合网络,以得到融合特征;
将所述融合特征输入至所述概率分布预测网络,以得到所述当前节点的概率分布。
8.如权利要求5-7任一所述的方法,其特征在于,所述一个或多个周边节点的占有率以一个或多个通道的浮点数进行表示,所述一个或多个周边节点与所述一个或多个通道一一对应。
9.一种点云的编码装置,其特征在于,所述装置包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序指令,其中,所述程序指令在由所述处理器执行时,使得所述编码装置执行如权利要求1-4任一项所述的方法。
10.一种点云的解码装置,其特征在于,所述装置包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序指令,其中,所述程序指令在由所述处理器执行时,使得所述编码装置执行如权利要求5-8任一项所述的方法。
11.一种编码器,其特征在于,包括处理电路,用于执行如权利要求1-4任一项所述的方法。
12.一种解码器,其特征在于,包括处理电路,用于执行如权利要求5-8任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一项所述的方法的步骤。
14.一种计算机程序产品,其特征在于,所述计算机程序产品内存储有计算机指令,所述计算机指令被处理器执行时实现权利要求1-8任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265259.5A CN116055751A (zh) | 2021-10-28 | 2021-10-28 | 点云的编解码方法、装置、设备、存储介质及程序产品 |
PCT/CN2022/113895 WO2023071462A1 (zh) | 2021-10-28 | 2022-08-22 | 点云的编解码方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265259.5A CN116055751A (zh) | 2021-10-28 | 2021-10-28 | 点云的编解码方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116055751A true CN116055751A (zh) | 2023-05-02 |
Family
ID=86120510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111265259.5A Pending CN116055751A (zh) | 2021-10-28 | 2021-10-28 | 点云的编解码方法、装置、设备、存储介质及程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116055751A (zh) |
WO (1) | WO2023071462A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10482196B2 (en) * | 2016-02-26 | 2019-11-19 | Nvidia Corporation | Modeling point cloud data using hierarchies of Gaussian mixture models |
EP3595180B1 (en) * | 2018-07-10 | 2021-12-08 | BlackBerry Limited | Methods and devices for neighbourhood-based occupancy prediction in point cloud compression |
WO2020242077A1 (ko) * | 2019-05-30 | 2020-12-03 | 엘지전자 주식회사 | 포인트 클라우드 데이터 처리 장치 및 방법 |
MX2022011469A (es) * | 2020-03-20 | 2022-11-16 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Método de codificación y método de decodificación de nube de puntos, codificador y decodificador y medio de almacenamiento. |
CN112565764B (zh) * | 2020-12-03 | 2022-10-04 | 西安电子科技大学 | 一种点云几何信息帧间编码及解码方法 |
-
2021
- 2021-10-28 CN CN202111265259.5A patent/CN116055751A/zh active Pending
-
2022
- 2022-08-22 WO PCT/CN2022/113895 patent/WO2023071462A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023071462A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113574540B (zh) | 点云编解码方法、装置和电子设备 | |
WO2021067884A1 (en) | Block-based predictive coding for point cloud compression | |
JP5932051B2 (ja) | 予測位置復号 | |
US10003794B2 (en) | Terminable spatial tree-based position coding and decoding | |
JP2015504545A (ja) | 予測位置符号化 | |
US11956470B2 (en) | Predictor index signaling for predicting transform in geometry-based point cloud compression | |
KR20140096298A (ko) | 복제 포인트를 갖는 공간 트리에 기초한 위치 코딩 | |
CN114448563B (zh) | 语义编码传输方法及电子设备 | |
CN114981842A (zh) | 点云的树内几何量化 | |
JP2022525897A (ja) | ニューラルネットワークモデルの圧縮/解凍のための方法および装置 | |
WO2022121650A1 (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
Yu et al. | Rate-distortion optimized geometry compression for spinning LiDAR point cloud | |
JP2023554158A (ja) | 自己回転センサヘッドによってキャプチャされた点群ジオメトリデータをエントロピー符号化/復号化する方法及び装置 | |
CN115379191B (zh) | 一种点云解码方法、点云编码方法及相关设备 | |
WO2023071462A1 (zh) | 点云的编解码方法、装置、设备、存储介质及程序产品 | |
CN103999490A (zh) | 可终止的基于空间树的位置编码和解码 | |
CN115086658A (zh) | 点云数据的处理方法、装置、存储介质及编解码设备 | |
CN115474041B (zh) | 点云属性的预测方法、装置及相关设备 | |
WO2023103565A1 (zh) | 点云属性信息的编解码方法、装置、设备及存储介质 | |
US20240095964A1 (en) | Encoding and decoding method, apparatus, and device, storage medium, computer program, and computer program product | |
WO2023024842A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2022188582A1 (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
CN117061770A (zh) | 一种点云处理方法、装置、设备、存储介质及产品 | |
CN116778002A (zh) | 编解码方法、装置、设备、存储介质及计算机程序产品 | |
JP2024514505A (ja) | 自己回転センサヘッドでキャプチャされた点群ジオメトリデータを符号化/復号化する方法及び装置 |
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 |