CN112514397A - 点云的编解码方法和装置 - Google Patents

点云的编解码方法和装置 Download PDF

Info

Publication number
CN112514397A
CN112514397A CN202080004105.8A CN202080004105A CN112514397A CN 112514397 A CN112514397 A CN 112514397A CN 202080004105 A CN202080004105 A CN 202080004105A CN 112514397 A CN112514397 A CN 112514397A
Authority
CN
China
Prior art keywords
sub
layer
code stream
tree
blocks
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
Application number
CN202080004105.8A
Other languages
English (en)
Inventor
李璞
郑萧桢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SZ DJI Technology Co Ltd
Original Assignee
SZ DJI Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SZ DJI Technology Co Ltd filed Critical SZ DJI Technology Co Ltd
Publication of CN112514397A publication Critical patent/CN112514397A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

提供一种点云的编解码方法与装置,相对于现有技术,可以提高点云编解码的效率和性能。该点云的编码方法包括:确定点云经过多叉树划分后的第一子树,其中,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,该第一子树的每个子块均包括点云点;采用深度优先的目标编码方式对该第一子树进行编码以形成该第一子树的第一码流。通过本申请的技术方案,能够降低当前子块的编码比特位,提高点云压缩效率和点云解码速度。还能够摆脱广度优先的编码方式对于编码顺序的严格要求,有利于点云编码的并行化,降低点云编解码的复杂度。

Description

点云的编解码方法和装置
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及编解码领域,并且更为具体地,涉及一种点云的编解码方法和装置。
背景技术
点云(或称三维点云)是三维物体或场景的一种表现形式,是由空间中一组无规则分布的、表达三维物体或三维场景的空间结构和表面属性的离散点所构成。为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩。点云的编码过程包括点云中点云点的位置坐标的编码和点云点的属性信息的编码。
目前,现有的点云中位置坐标的编码方式大多采用基于广度优先的八叉树划分编码方式,这种编码方式存在较高的复杂度,对编码顺序有严格的要求,不利于点云编码的并行化,且对于八叉树子块中相对集中的点云点编码存在比特位浪费等诸多问题,从而影响点云编解码的效率和性能。
发明内容
本申请提供一种点云的编解码方法与装置,相对于现有技术,可以提高点云编解码的效率和性能。
第一方面,提供一种点云的编码方法,包括:确定点云经过多叉树划分后的第一子树,其中,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,该第一子树的每个子块均包括点云点,N为根据多叉树划分方式确定的正整数;采用深度优先的目标编码方式对该第一子树进行编码以形成该第一子树的第一码流。
第二方面,提供一种点云的解码方法,包括:接收第一码流;采用深度优先的目标解码方式对该第一码流进行解码得到点云经过多叉树划分后的第一子树;其中,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,该第一子树的每个子块均包括点云点。
第三方面,提供一种点云的编码装置,包括处理器,该处理器用于:确定点云经过多叉树划分后的第一子树,其中,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,该第一子树的每个子块均包括点云点,N为根据多叉树划分方式确定的正整数;采用深度优先的目标编码方式对该第一子树进行编码以形成该第一子树的第一码流。
第四方面,提供一种点云的解码装置,包括处理器,该处理器用于:接收第一码流;采用深度优先的目标解码方式对该第一码流进行解码得到点云经过多叉树划分后的第一子树;其中,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,该第一子树的每个子块均包括点云点。
第五方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得,所述计算机执行第一方面或者第二方面提供的方法。
第六方面,提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得计算机执行第一方面或者第二方面提供的方法。
通过本申请的技术方案,根据编码划分方式确定数值N,且使得第一子树中大部分子块的下一层子块数量不超过N,采用深度优先的编码方式对该第一子树进行编码,而不采用广度优先的编码方式对其进行编码,能够不局限于划分方式造成的固定编码比特位,降低第一子树中子块的编码比特位,从而节约比特流,提高点云压缩效率和点云解码速度。另外,采用深度优先的编码方式能够摆脱广度优先的编码方式对于编码顺序的严格要求,有利于点云编码的并行化,降低点云编解码的复杂度。
附图说明
图1是根据本申请实施例的一种点云数据编码流程的示意图。
图2是一种点云编码的初始化空间的示意图。
图3是根据本申请实施例的一种八叉树编码的示意图。
图4是另一种点云编码的初始化空间的示意图。
图5是根据本申请实施例的几种四叉树划分方式示意图。
图6是根据本申请实施例的几种二叉树划分方式示意图。
图7是根据本申请实施例的一种多叉树编码的示意图。
图8是根据本申请实施例的一种点云数据解码流程的示意图。
图9是根据本申请实施例的一种点云的编码方法的示意性流程框图。
图10至图14是根据本申请实施例的几种对称结构的第一子树的结构示意图。
图15是根据本申请实施例的另一点云的编码方法的示意性流程框图。
图16是根据本申请实施例的子块经过八叉树划分后的位置索引示意图。
图17和图18是根据本申请实施例的两种对称结构的第一子树的结构示意图。
图19是根据本申请实施例的另一点云的编码方法的示意性流程框图。
图20是根据本申请实施例的另一点云的编码方法的示意性流程框图。
图21是根据本申请实施例的另一点云的编码方法的示意性流程框图。
图22是根据本申请实施例的另一点云的编码方法的示意性流程框图。
图23是根据本申请实施例的一种点云的解码方法的示意性流程框图。
图24是根据本申请实施例的另一点云的解码方法的示意性流程框图。
图25是根据本申请实施例的另一点云的解码方法的示意性流程框图。
图26是根据本申请实施例的另一点云的解码方法的示意性流程框图。
图27是根据本申请实施例的另一点云的解码方法的示意性流程框图。
图28是根据本申请实施例的另一点云的解码方法的示意性流程框图。
图29是根据本申请实施例的点云的编码装置的示意性框图。
图30是根据本申请实施例的点云的解码装置的示意性框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请实施例可适用于标准或非标准的点云编解码器。例如,数字音视频编解码技术标准(audio video coding standard,AVS)标准的编码器。
应理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围。
还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此并不限定。
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。本申请所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。
为了便于理解本发明实施例提供的技术方案,下文首先描述一些本发明实施例涉及的概念。
点云是在同一空间参考坐标系下表达目标空间分布和目标表面特性的离散点集合,也即,在获取物体表面每个采样点的空间坐标后,得到的采样点的集合,称之为点云(Point Cloud)。为了准确反映三维空间中的信息,通常需要海量的离散点对三维空间中的物体进行表征。下文将点云中的离散点称为点云点。
图1示出了本申请提供的一种点云数据编码流程的示意图。
点云数据通常包括点云中多个点云点的位置信息以及属性信息。点云点的位置坐标可用于描述点云点在三维空间中的位置,点云点的属性信息例如可以包括点云点的颜色信息,还可以包括点云点的反射率等其他信息。为了减少点云在存储和传输时所占用的带宽,可以对点云数据进行编码,以压缩点云的数据量。在点云数据的编码过程中,点云点的位置信息编码与属性信息编码通常是分开进行的。
如图1所示,在点云数据的编码方法中,点云点的位置信息编码方法包括:
坐标平移、量化:对点云中多个点云点的位置坐标进行平移和量化。在一种可能的实现方式中,采用几何量化方法对点云点的位置坐标进行处理。几何量化的过程例如可以采用下述方式进行:首先,可以根据多个点云点在笛卡尔坐标系中的位置坐标,得到多个点云点在x,y,z三个方向维度上位置坐标的最大值和最小值之间的差值,以及预先确定的量化精度,对多个点云点的位置坐标进行量化,以将多个点云点的位置坐标转换为大于或等于零的整数坐标。
可选地,在位置坐标平移量化之后,可以去除重复坐标。在本申请实施例中,该步骤为可选步骤,即可以进行该步骤,去除量化后重复的点云点的位置坐标,也可以不进行该步骤,直接对量化后的点云点位置坐标进行八叉树编码。并且,应注意的是,若选择进行该步骤,则在去除重复坐标的同时,重复坐标的点云点对应的属性需要进行转换。
多叉树划分:在本步骤中,该多叉树划分可以理解为按照八叉树划分、四叉树划分、二叉树划分中任一种或多种划分方式。
在一些实施方式中,采用八叉树划分方式对点云点的位置信息进行编码,该过程也可以称之为八叉树编码。完整的八叉树划分过程包括多层的八叉树划分,其中每层八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分为八个小的体积相同的子块。
例如,首先可以根据多个点云点的位置坐标(点云点的位置坐标可以是该点云点的经过几何量化和/或去除重复坐标之后的位置坐标),选择三个方向维度(x,y,z)方向上的位置坐标的最大值和最小值。然后,可以根据选定的这些量化值确定待划分的初始化空间。
以图2为例,该初始化空间通常为如图2所示的立方体盒子。该立方体盒子的边长的取值通常需要满足如下条件:该边长的取值为2的整数次幂,该边长的取值大于或等于,并最接近多个点云点在三个方向维度上的位置坐标的最大值中的最大值。也即,假设多个点云点在三个方向维度上的位置坐标的最大值为Xmax、Ymax、Zmax,且Xmax为Xmax、Ymax、Zmax中的最大值,则该边长的取值大于或等于,并最接近Xmax
在确定初始化空间之后,接着对该初始化空间进行多层的八叉树划分。每层八叉树划分均可利用当前块的中心点的位置坐标进行空间划分,通过中心点将当前块划分为八个体积相等的子块。图2示出了初始化空间进行首次划分后得到的划分结果,从图2可以看出,初始化空间被均匀划分成8个体积相等的子块。在八叉树中,初始化空间为根节点块,这些子块为该根节点的子节点块,称为第一层子节点块。
在得到第一层子节点块之后,可以判断第一层的每个子节点块内是否存在点云点,对存在点云点的子节点块再进一步划分,直至该子节点块的边长小于阈值时停止八叉树划分,此时的子节点块称为当前八叉树的叶子节点块。该阈值例如可以是1。
在对点云中多个点云点的位置坐标进行八叉树编码时,可以按照八叉树的广度优先遍历顺序(breadth first search,BFS),逐层进行编码。在逐层编码时,可以逐层逐个编码每个八叉树的划分结果,即判断当前子块进行八叉树划分后得到的八个子块是否含有点云点。如果该块的某个子块含有点云点,则对该子块进行进一步划分,否则停止划分。
下面以图3为例进行说明,图3中第一层、第二层以及第三层中的每个方框均可以表示为一个子节点块或者子块,黑色方块表示该子块内含有点云点,白色方块表示该子块内不含有点云点。对初始空间(根节点块)进行第一层八叉树划分,得到如图3所示的划分结果。图3中的第一层的子节点块中的第三个子节点块为黑色方块,其余子节点块为白色方块,说明初始空间划分得到的第三个子块含有点云点,剩余七个子块不含有点云点。这样的划分结果可以用8比特(bit)来表示,如00100000。接着,可以对初始空间划分得到的第三个子块进行第二层八叉树划分。图3中的第二层的子节点中的第三个和第八个子节点块为黑色方块,表示第二层八叉树划分得到的八个子块中的第三个子块和第八个子块内含有点云点,因此,第二层八叉树划分的划分结果可以用00100001来表示。同理,第三层八叉树划分的划分结果为10010000和01000001。图3中的划分结果对应的二进制码流可以为0010 00000010 0001 1001 0000 0100 0001……。
后续的八叉树划分方式与前几层的八叉树划分方式相似,此处不再详述。当划分到最后八叉树的一层(最后一层可以是子块边长为1的层)时,达到了八叉树的底层,即达到了八叉树的叶子节点块,不需要再进一步划分。
然后,可以对八叉树的叶子节点块内含有的点云点的数目进行编码。例如,当某个叶子节点块内含有一个点云点时,可以直接编码一个0;当某个叶子节点块内含有n个点云点时,可以先编码一个1,接着编码数值(n-1)。
八叉树编码即是通过上述过程,将点云中的点云点量化至三维空间中的某个子块,从而实现了点云数据量的压缩。
在另一些实施方式中,还采用四叉树划分方式、二叉树划分方式、或者几种划分方式混合的多叉树划分方式对点云点的位置信息进行编码。
例如,如图4所示,根据点云的形状确定的初始化空间为如图4所示的长方体盒子,该长方体盒子的大小为(2dx,2dy,2dz),其中,dx≠dy≠dz,则可以采用四叉树划分、二叉树划分方式、或者多叉树划分方式进行编码。
作为示例,若采用多叉树划分方式,在确定初始化空间之后,可以根据初始化空间的大小以及两个参数K和M来确定初始化空间中的划分顺序,其中,K(0≤K≤max(dx,dy,dz)-min(dx,dy,dz)),M(0≤M≤min(dx,dy,dz))。K表示在前K层划分中,采用四叉树划分或者二叉树划分,M表示四叉树划分和二叉树划分的最小尺寸,即最后M层划分必须为八叉树划分。当dx≠dy≠dz时,二叉树划分优先于四叉树划分。具体地,在前K层划分中,采用下面表1决策划分类型,之后采用表2决策划分类型。当表格中的条件均不满足时,执行八叉树划分。表1和表2中,QT表示四叉树划分,BT表示二叉树划分。
表1隐式几何划分决策方法(前K层)
沿着x-y轴QT 沿着x-z轴QT 沿着y-z轴QT
条件 d<sub>z</sub>&lt;d<sub>x</sub>=d<sub>y</sub> d<sub>y</sub>&lt;d<sub>x</sub>=d<sub>z</sub> d<sub>x</sub>&lt;d<sub>y</sub>=d<sub>z</sub>
沿着x轴BT 沿着y轴BT 沿着z轴BT
条件 d<sub>y</sub>&lt;d<sub>x</sub>andd<sub>z</sub>&lt;d<sub>x</sub> d<sub>x</sub>&lt;d<sub>y</sub>andd<sub>z</sub>&lt;d<sub>y</sub> d<sub>x</sub>&lt;d<sub>z</sub>andd<sub>y</sub>&lt;d<sub>z</sub>
表2隐式几何划分决策方法(K层之后)
Figure BDA0002912271200000071
图5中的(a)图至(c)图示出了一个块空间经过四叉树划分后得到的划分结果,如图5中的(a)图所示,沿x-y轴将块空间进行划分为四个子块,如图5中的(b)图所示,沿x-z轴将块空间进行划分为四个子块,如图5中的(c)图所示,沿y-z轴将块空间进行划分为四个子块。
图6中的(a)图至(c)图示出了一个块空间经过二叉树划分后得到的划分结果,如图6中的(a)图所示,沿x轴将块空间划分为二个子块,如图5中的(b)图所示,沿y轴将块空间划分为二个子块,如图5中的(c)图所示,沿z轴将块空间划分为二个子块。
作为示例,按照表1和表2中的判断标准,可以采用混合的多叉树划分方式对初始化空间进行划分。如图7所示,基于初始化空间的大小,对第0层的初始化空间进行二叉树划分,经过划分得到第1层的两个子块,基于第1层两个子块的大小,判断采用四叉树划分方式对该第1层中一个包括点云点的子块进行四叉树划分,经过划分得到第2层的四个子块,然后,再基于第2层子块的大小,判断划分方式为八叉树划分,对其中两个包括点云点的子块再经过八叉树划分得到其各自在下一层(第3层)的八个子块。
按照上述方式,继续对树结构进行划分,直到划分到多叉树的最后一层(最后一层可以是子块边长为1的层)时,达到了多叉树的底层,即达到了多叉树的叶子节点块,不需要再进一步划分。
在一些实施方式中,与上文中八叉树编码过程类似,可以按照广度优先编码顺序,对多叉树划分后的多个子块逐层进行编码。其中,若子块采用四叉树划分方式,则对其编码只需要编码4个比特,比八叉树划分节省4个比特;若采用二叉树划分方式进行编码,则只需要编码2个比特,比八叉树划分节省6个比特。跳过的比特可以在解码端推测出为0。例如,对于图7中的情况,编码结果可以为10 0101 01010100 10010000……。
采用多叉树编码,同样是通过将点云中的点云点量化至三维空间中的某个子块,从而实现了点云数据量的压缩,且与八叉树编码相比,能够减小编码比特,进一步提高数据压缩效果。
熵编码:对八叉树编码后的码流进行熵编码得到点云的几何码流,即点云中多个点云点位置信息的码流。
在本步骤中,熵编码的方法包括但不限于是自适应二进制算术编码(contextadaptive binary arithmetic coding,CABAC)熵编码方法,还可以采用现有技术中其它任意一种熵编码方法,本申请实施例对此不做限定。
在对位置坐标进行多叉树编码后,同步会按照多叉树重建后的位置坐标顺序对对应的属性值进行压缩编码。
继续参见图1,在点云数据的编码方法中,点云点的属性信息编码方法包括:
空间变换:该步骤为可选步骤,即将点云点的颜色属性从RGB空间转换到YUV空间的过程,具体地,可以通过转换公式将点云点的颜色属性进行空间变换。
属性插值:在点云点的几何信息(点云点的点数或者点与点的相对位置)改变了的情况下,例如在位置信息编码中进行了去除重复点的操作,才需进行属性插值,即重上色的过程。
给定原始点云的几何和属性信息,以及重构点云的几何信息,重上色就是为重构点云中的每个点计算新的属性值,使得重构点云和原始点云的属性误差最小。实现过程如下:
Step 1:设原始点云和重构点云的几何信息分别为(Pi)i=0...N-1
Figure BDA0002912271200000091
其中N和Nrec分别为原始点云和重构点云中的点数,易知如果去除了重复点,则Nrec<N,否则Nrec=N。
Step 2:对于重构点云中的每个点
Figure BDA0002912271200000092
在原始点云中找到与之距离最近的点Pi *,设Pi *的属性值为Ai *
Step 3:对原始点云中的每个点,在重构点云中找与之距离最近的点。对于重构点云中的点
Figure BDA0002912271200000093
令U(i)=(Xk(i)k∈{1,...,D(i)})为原始点云中,均以
Figure BDA0002912271200000094
为最近点的点集,其中D(i)为U(i)中包含点的个数,注意U(i)可以为空,也可以包含一个或多个点。
Step 4:为重构点云中的每个点
Figure BDA0002912271200000095
计算重构属性值,若U(i)为空,那么直接将Ai *作为重构属性值赋给
Figure BDA0002912271200000096
若U(i)不为空,则重构点的属性值U(i)中所有点的属性均值,计算公式如下:
Figure BDA0002912271200000097
属性预测:在一种实现方式中,可以采用莫顿码重排序的方法对点云点属性进行预测处理。首先基于莫顿码对点云进行重排序,生成可用于点云属性预测的点云顺序。在AVS标准的属性编码中,莫顿码主要基于莫顿查询表进行计算得到,过程如下:
Step 1:遍历几何重建点云,得到当前点对应的几何坐标x、y和z。
Step 2:根据几何坐标查找莫顿表计算当前点所对应的莫顿码。
Step 3:基于莫顿码对点云进行重排序。
接着对排序后的属性值利用前项差分预测,根据预测值与原始值,得到属性残差。接着对属性残差进行量化。对量化之后的系数值进行熵编码即可得到属性码流。
此外,还可以采用差分预测等其它预测方式对点云点属性进行预测处理,本申请实施例对此不做具体限定。
点云数据的解码流程与编码流程的逆过程大致相同。图8示出了本申请提供的一种解码流程的示意图。
熵解码:解码端对获取输入的几何码流和属性码流后,采用与编码端的熵编码方法对应的熵解码方法对码流逐比特进行解码。
多叉树重建:具体地,对于几何码流,通过熵解码后的信息可以先确定点云的初始化空间(初始化空间的尺寸可以由编码端写入码流,解码端从码流中获取即可),然后对初始化空间进行多叉树划分。解码端采用与编码端一致的空间划分方式对初始化空间进行划分。例如,编解码端均可对初始化空间进行多叉树划分。通过划分的多叉树中多个子节点块及其对应的二进制比特流得到点云点待逆量化的位置坐标数据。
逆量化:逆量化为编码端量化的逆过程,多叉树重建后的待逆量化的位置坐标数据经过逆量化后得到编码端中量化后的坐标。属性码流经过熵解码和逆量化后得到属性预测残差值。
在本申请中,量化以及逆量化的相关实施方式具体可以参见相关技术中的方法,此处不再赘述。
属性重建:具体地,若逆量化后得到属性预测残差为
Figure BDA0002912271200000102
当前点属性重建值为
Figure BDA0002912271200000103
前一点的属性重建值为
Figure BDA0002912271200000104
则当前点的属性重建值
Figure BDA0002912271200000101
遍历完点云中的所有点云点,得到编码端输出的重构点云。
逆空间变换:对应于编码端的空间变换,该步骤也为可选步骤,若属性重建后的属性值为YUV空间的属性值,则对其进行逆空间变换得到RGB空间的属性值。
最后,将上述解码得到的位置信息及其对应的属性信息合并后即可得到点云数据。
上文结合图1至图8,对相关技术的编码过程进行了介绍。从上文描述可以看出,在对点云中多个点云点的位置坐标进行多叉树编码时,采用广度优先方式遍历划分后的每个块,并对每个块是否存在点云点均进行编码标识,因此采用这种编码方式存在较高的复杂度,对编码顺序有严格的要求,不利于点云编码的并行化,且对于多叉树子块中相对集中的点云点编码存在比特位浪费等诸多问题,从而影响点云编解码的效率和性能。
基于上述问题,本申请提出一种点云的编解码方法,能够减小点云点位置编码的比特位,避免比特浪费,且不拘泥于严格的编码顺序,有利于减低编码复杂度和点云编码的并行化处理。
下面结合图9至图28,对本申请实施例提供的点云的编解码方法进行详细描述。图9至图28中的方法可以由编码装置或者解码装置执行。
并且,更为具体地,本申请实施例主要涉及点云中多个点云点的位置坐标的编解码过程。因此,下文主要针对点云中多个点云点的位置坐标的编解码过程进行描述,点云的属性信息的编解码过程可以参见上述相关描述或者相关技术,本申请实施例对此并不限定。
图9示出了一种点云的编码方法100的示意性流程框图。
如图9所示,该点云的编码方法100可以包括以下步骤。
S110:确定点云经过多叉树划分后的第一子树,其中,第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,第一子树的每个子块均包括点云点,N为根据多叉树划分方式确定的正整数。
S120:采用深度优先的目标编码方式对第一子树进行编码以形成第一子树的第一码流。
在对点云中多个点云点的位置信息进行编码时,对点云所在的初始化空间进行多叉树划分,得到点云经过多叉树划分后的树结构,通过树结构表征多个点云点的位置空间。
可选地,在本申请实施例中,多叉树划分包括但不限于是单纯的某种划分方式,例如八叉树划分方式,二叉树划分方式,或者四叉树划分方式,还可以是二叉树划分、四叉树划分、八叉树划分,乃至其它划分方式相混合的多叉树划分方式。本申请实施例对具体的多叉树划分方式不做限定。且为了方便描述,本申请中将八叉树划分、四叉树划分、二叉树划分、以及多种划分方式混合的多叉树划分方式均称之为多叉树划分。
采用多叉树划分对点云点的初始化空间进行划分后得到的树结构一般由包括点云点的子块以及不包括点云点的子块构成,但每一层划分过程中,我们只基于包括点云点的子块进行进一步划分,因此,在下文中,除特殊说明外,树结构中的子块均表示包括点云点的子块,而不涉及不包括点云点的子块。
在采用多叉树划分建立点云的树结构的基础上,一般采用广度优先编码方式对树结构进行编码,参考上文中的相关描述,从树结构的根节点(初始化空间)开始,沿着树的宽度遍历树的所有子块,对每个子块进行编码。若采用八叉树对该子块进行划分,则需要采用8bit对该子块进行编码,若采用四叉树对该子块进行划分,则需要采用4bit对该子块进行编码,若采用二叉树对该子块进行划分,则需要采用2bit对该子块进行编码。
在本申请实施例中,不是采用传统的编码方法,按照广度优先编码方式对点云的树结构进行编码,而是引入一种新的编码模式,当编码至树结构中的第一子块时,确定该第一子块下的第一子树符合预设条件,则此时不是采用广度优先编码方式再继续遍历该第一子块之后的第二子块,而是切换至深度优先的目标编码方式,对该第一子树中根节点块,即第一子块进行编码后,对该第一子块的下一层子块进行编码,直到完成第一子树中最后一层子块的编码,再回到该第一子块之后的第二子块。
可选地,该第一子树中的第一子块可以为点云的初始化空间块,也可以为点云的初始化空间块经过划分后的任意一个子块,本申请实施例对第一子块以及第一子树的初始化空间中的具体位置不做限定。
采用本申请实施例的方法,能够摆脱广度优先的编码方式对于编码顺序的严格要求,有利于点云编码的并行化,降低点云编码的复杂度。
具体地,本申请中第一子树的预设条件可以为:第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,其中,子块的下一层子块即当前子块经过划分后得到的包括点云点的子块,该第一子树中,每个子块均包括点云点,N为根据多叉树划分方式确定的正整数。
在采用原始的广度优先的编码方式下,不论下一层子块数量为多少,均会根据划分方式编码对应比特位,会造成较大的比特流浪费,根据该原始的广度优先的编码方式的比特位,确定数值N,且使得第一子树中大部分子块的下一层子块数量不超过N,且本申请中采用深度优先的编码方式,根据当前子块的下一层子块数量对当前子块进行编码,例如,对下一层子块的位置索引进行编码,若当前子块的下一层子块数量较少时,对比于广度优先的编码方式,能够降低当前子块的编码比特位,从而节约比特流,提高点云压缩效率。
在一些实施方式中,若多叉树划分方式中最大的划分方式为八叉树划分,则N可以为小于等于2的正整数。则此时,一种情况下,第一子树的预设条件可以为:第一子树的子块中至多两个子块的下一层子块的数量大于2,其它子块的下一层子块的数量均小于等于2。另一种情况下,第一子树的预设条件可以为:第一子树的子块中至多两个子块的下一层子块的数量大于1,其它子块的下一层子块的数量均等于1。其中,子块的下一层子块即当前子块经过划分后得到的包括点云点的子块,该第一子树中,每个子块均包括点云点。
具体地,在当前的预设条件下,针对不同的点云,会确定得到多种不同结构的第一子树,下面,针对不同结构的第一子树,详细说明本申请实施例具体的编码方法。
首先说明对称结构的第一子树的编码方法,在对称结构的第一子树的一层中,一种情况下,仅包括一个子块,另一种情况下,多个子块的下一层子块的数量相等。
图10至图14示出了多种对称结构的第一子树的结构示意图。
如图10至图14所示,第一子树均包括m层子块,m为大于1的正整数。其中,第一子树的第一子块位于第一子树中的第0层。
第m+1层子块中每个子块的下一层子块的数量为3,因而不符合本申请中第一子树的预设条件,该第m+1层子块不属于本申请实施例中第一子树的范围。
可以理解的是,若在第m+1层子块中存在2个以上的子块的下一层子块超过2个,则该第m+1层子块也不属于本申请实施例中的第一子树。
在一些实施例中,第一子树的m层子块中每个子块的第一层子块的数量均小于等于2。
例如,如图10所示,第一子块中每个子块的下一层子块的数量均为2。
又例如,如图11所示,第一子块中部分子块的下一层子块的数量为2,另一部分子块的下一层子块的数量为1。
又例如,如图12所示,第一子块中每个子块的下一层子块的数量均为1。
在另一些实施例中,第一子树中至多两个子块的下一层子块的数量大于2,且至多两个子块的下一层子块同样属于第一子树的子块。
例如,如图13所示,第一子树中两个子块的下一层子块数量为3,且该下一层子块同样为第一子树中的子块,换言之,该下一层子块不是第一子树的最后一层子块。
又例如,如图14所示,第一子树的子块中仅一个子块的下一层子块的数量大于2,其它子块的下一层子块数量等于1。
在上述图10至图14中,示出了多种情况下,第一子树的结构示意图,可以理解的是,本申请实施例中的对称结构的第一子树包括但不限于是以上示出了几种结构示意图,对称结构且满足预设条件的第一子树均在本申请的保护范围之内。
对于对称结构,且满足预设条件的第一子树,图15示出了另一种编码方法100的示意性流程框图。
如图15所示,上述步骤S110可以包括以下步骤。
S111:确定点云经过多叉树划分后的第一子树,其中,第一子树的子块中至多两个子块的下一层子块的数量大于2,其它子块的下一层子块的数量均小于等于2,且第一子树为对称结构。
上述步骤S120可以包括以下步骤。
S121:对第一子树的层数信息进行编码以形成第一子树的层数码流。
在本申请实施例中,在第一子树为对称结构的前提下,该层数信息用于表征当前层与上一层相比,子块数量是否发生变化,即在解码端解码时,可以通过该层数信息,得到第一子树中每一层子块的数量,以及每一层子块与上一层子块的连接关系。
具体地,若当前层中子块数量与上一层不一致,则将当前层确定为特殊层,对应的,若当前层中子块数量与上一层一致,则将当前层确定为非特殊层。
举例来说,如图14中的第2层,其子块数量与上一层不一致,则该第2层为特殊层,图14中的第3层,其子块数量与上一层一致,则该第3层为非特殊层。
对于第一子树中没有特殊层的情况,即每一层子块数量均与上一层一致,则第一子树的结构如图12所示,每一层子块数量均为1。
在此情况下,对第一子树的层数信息进行编码以形成第一子树的层数码流,例如,对于图12中的第一子树,对层数m进行编码,以形成第一子树的层数码流。
而对于第一子树中存在特殊层的情况,则需要对具体的特殊层信息进行编码。
具体地,若第一子树中仅存在一层特殊层,对第一子树的第零层至该特殊层之间的层数、以及该特殊层至所述第一子树中的最后一层之间的层数进行编码以形成第一子树的层数码流。
例如,如图14中所示的第一子树,仅存在一层特殊层即第2层,除第2层以外的其它层均为非特殊层,在此情况下,对第0层至第2层之间的层数1,以及第2层至第m层之间的层数m-3进行编码,以形成第一子树的层数码流。
若第一子树中存在多层特殊层,则需要对第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至第一子树中的最后一层之间的层数进行编码以形成第一子树的层数码流。
例如,如图13所示的第一子树,存在两层特殊层,即第1层和第2层,除第1层和第2层以外的其它层均为非特殊层,在此情况下,对第0层至第1层之间的层数0,以及第1层至第2层之间的层数0进行编码,以及第2层至第m层之间的层数m-3进行编码以形成第一子树的层数码流。
在一些实施方式中,对层数进行编码时,可以直接对层数值进行编码,即直接对层数值进行二值化处理,再进行熵编码的后续编码过程,例如采用上下文模型进行编码或者采用旁路编码。
在另一些实施方式中,除了可以直接对层数值进行编码,还可以将层数值减去预设层数得到层数差值,对该层数差值进行编码,具体地,该预设层数可以为预设的任意正整数。
在一些实施例中,编码端和解码端可以对该预设层数进行约定。在另一些实施例中,编码端也可以对该预设层数进行编码并写入码流中,解码端对该预设层数码流进行解码得到预设层数信息,可选地,该预设层数码流位于点云的几何头码流中,或者也可以位于点云码流的其它位置。
可选地,可以采用现有技术中任意一种二值化方法对上述层数以及预设层数进行二值化处理,然后再进行熵编码后续过程,得到层数码流和预设层数码流。
其中,该二值化方法包括但不限于定长码编码方法或者变长码编码方法。该变长码编码方法包括但不限于截断莱斯码、K阶指数哥伦布、一元码等等编码方法。该定长码编码方法和变长码编码方法可以参见现有技术中的相关描述,此处不再赘述。
S122:对第一子树中子块的位置信息进行编码以形成第一子树的索引码流。
具体地,该第一子树的层数码流与索引码流共同形成第一子树的第一码流,该第一码流能够表征第一子树的结构,从而表征第一子树中点云点的空间位置信息。
在一些实施方式中,第一子树中子块的位置信息可以通过位置索引进行表征,即通过索引号表示下一层子块在当前子块中相对位置。因而,可以对第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成第一子树的索引码流。
具体地,若采用八叉树划分对当前子块进行划分,则当前子块的下一层中,包括点云点和不包括点云点的子块共有8个,需要通过索引号表示其中包括点云点的下一层子块在当前子块中的位置。
例如,如图16所示,当前子块经过八叉树划分后的位置索引如图所示,可以通过3bit码流表示0至7中任一个位置索引,从而表示包括点云点的下一层子块在当前子块中的位置,而不需要对划分后每个包括点云点和不包括点云点的子块均进行编码标识。
总结来讲,在本申请实施例中,若采用八叉树划分方式对当前子块进行划分得到下一层子块,下一层子块在当前子块中的一个位置索引编码为3bit;
若采用四叉树划分方式对当前子块进行划分得到下一层子块,下一层子块在当前子块中的一个位置索引编码为2bit;
若采用二叉树划分方式对当前子块进行划分得到下一层子块,下一层子块在当前子块中的一个位置索引编码为1bit。
在本申请实施例中,若当前子块的下一层子块(包括点云点的子块)数量不超过2,则在八叉树划分下,当前子块的索引比特流为6位,而采用常规方法对当前子块进行编码则需要8位,因此,采用本申请实施例的方法能够减小比特位数,提高编解码效率。
类似地,当前子块经过四叉树划分后,可以通过2bit码流表示0至3中任一个位置索引,当前子块经过二叉树划分后,可以通过1bit码流表示0至1中任一个位置索引。若当前子块的下一层子块(包括点云点的子块)数量为1,则在四叉树划分和二叉树划分下,采用本申请实施例的方法同样能够减小比特位数,提高编解码效率。
此外,在一些特殊情况下,例如,第一子树中存在两个子块的下一层子块(包括点云点的子块)数量超过2,但若第一子树中其它子块的下一层子块不超过2,甚至为1,即使存在零星子块的编码比特位数较多,但其它子块的编码比特位数大大减少,则同样可以减小第一子树整体的编码比特位数,提高编解码效率。
在一种实施方式中,在对当前子块的下一层子块进行位置索引编码时,可以基于以下第一规则对当前子块进行块划分方式:
若当前子块在三个方向上未达到预设值,采用八叉树划分方式划分得到下一层子块,下一层子块在当前子块中的一个位置索引编码为3bit;
若当前子块在二个方向上未达到预设值,采用四叉树划分方式划分得到下一层子块,下一层子块在当前子块中的一个位置索引编码为2bit;
若当前子块在一个方向上未达到预设值,采用二叉树划分方式划分得到下一层子块,下一层子块在当前子块中的一个位置索引编码为1bit。
上述预设值可以为叶子节点块的边长,例如可以为1。
可选地,在本申请实施例中,除了基于上述第一规则对当前子块进行块划分外,还可以基于其它现有技术的规则对当前子块进行划分,或者根据其它编码端和解码端约定的规则,或者还可以采用固定的划分方式对当前子块进行划分,本申请实施例对此不做具体限定。
进一步地,在一些实施方式中,若第一子树的最后一层子块为叶子节点块时,采用上述第一规则对第一子树中的子块进行块划分;而若第一子树的最后一层子块不为叶子节点块,则可以采用第二规则对第一子树中的子块进行块划分,该第二规则可以为点云中除第一子树外的其它子块的划分方式。作为示例,第二规则可以为上文中根据表1和表2的条件确定的划分方式规则,或者第二规则也可以为现有技术中其它任意的划分方式规则。
在本申请实施例中,上述编码得到的索引码流位于层数码流之后。举例来说,对于图14中的第一子树,首先对层数信息进行编码,即首先对第0层至第2层之间的层数1,以及第2层至第m层之间的层数m-3进行编码,然后对每个子块的下一层子块在每个子块中的位置索引进行编码,即从第0层开始,依次对第0层的第一子块,第1层的1个子块,第2层的4个子块,以及往下每一层的4个子块进行位置索引编码,形成第一子树的第一码流。
在一种情况中,如图14所示,从第2层至第m层,位于同一层的4个子块的下一层子块在该4个子块中的位置索引相同,具体来说,第3层的4个子块在第2层的4个子块中,位置索引相同,且第4层的4个子块在第3层的4个子块中,位置索引也相同,依次类推,第i层的4个子块在第i-1层的4个子块中的位置索引相同,其中,3≤i≤m,i为正整数。
则此时,在对第2层至第m层的子块进行位置索引编码时,对每层多个子块的同一位置索引进行编码,具体来说,在对第2层的多个子块的位置索引进行编码时,不再对多个位置索引进行编码,而只对一个位置索引进行编码,同理,第3层至第m层,每一层均只对一个位置索引进行编码。
或者如图13所示,从第2层至第m-1层,位于同一层的6个子块的下一层子块在该6个子块中的位置索引相同,具体来说,第i层的6个子块在第i-1层的6个子块中的位置索引相同,其中,3≤i≤m-1,i为正整数。
则此时,若第一子树不包括第m层,可以在对第2层至第m-1层的子块进行位置索引编码时,对每层多个子块的同一位置索引进行编码。
可以理解的是,图13和图14仅示例性的示出了部分情况,图13中第1层中两个子块在第2层中的子块数量还可以为2个,3个,乃至8个子块,或者是其它任意数量的子块,同样的,图14中的第2层还可以包括2个子块,3个子块,乃至8个子块,或者其它任意数量的子块,本申请实施例对此不做限定。
因此,综合上述几种情况可以得到,若在第一子树中,两层特殊层之间,或者最后一层特殊层至第一子树的最后一层之间,每层多个子块的下一层子块在每层多个子块中的位置索引为同一位置索引,则对每层多个子块的同一位置索引进行编码。
采用本申请实施例的方法,能够进一步减小编码比特位数,提高编解码效率。
上文结合图10至图16说明了对称结构的第一子树的编码方法,下文结合图17至图18说明非对称结构下,第一子树的编码方法。
具体地,若第一子树为非对称结构,该第一子树包括至少一层非对称层,该非对称层中不同子块的下一层子块的数量不相等。
图17至图18示出了两种对称结构的第一子树的结构示意图。
如图17至图18所示,第一子树均包括m层子块,m为大于1的正整数。其中,第一子树的第一子块位于第一子树中的第0层。
第m+1层子块中每个子块的下一层子块的数量为3,因而不符合本申请中第一子树的预设条件,该第m+1层子块不属于本申请实施例中第一子树的范围。
在一些实施例中,第一子树的m层子块中每个子块的第一层子块的数量均小于等于2。
例如,如图17所示,第一子块中部分子块的下一层子块的数量为2,另一部分子块的下一层子块的数量为1。
在图17中,第1层和第2层为非对称层,即第1层中两个子块的下一层子块数量不一致,且第2层中三个子块在下一层子块数量不一致。除第1层和第2层外,第一子树中的其它层均为对称层,即对称层中,每个子块的下一层子块数量相等。
在另一些实施例中,第一子树中至多两个子块的下一层子块的数量大于2,且至多两个子块的下一层子块同样属于第一子树的子块。
例如,如图18所示,第一子树中两个子块的下一层子块数量为3,且该下一层子块同样为第一子树中的子块,换言之,该下一层子块不是第一子树的最后一层子块。
在图18中,第1层和第2层为非对称层,第一子树中除第1层和第2层以外的其它层均为对称层。
在上述图17和图18中,示出了两种情况下,第一子树的结构示意图,可以理解的是,本申请实施例中的非对称结构的第一子树包括但不限于是以上示出了两种结构示意图,非对称结构且满足预设条件的第一子树均在本申请的保护范围之内。
对于非对称结构,且满足预设条件的第一子树,图19示出了另一种编码方法100的示意性流程框图。
如图19所示,上述步骤S110可以包括以下步骤。
S112:确定点云经过多叉树划分后的第一子树,其中,第一子树的子块中至多两个子块的下一层子块的数量大于2,其它子块的下一层子块的数量均小于等于2,且第一子树为非对称结构。
上述步骤S120可以包括以下步骤。
S121:对第一子树的层数信息进行编码以形成第一子树的层数码流。
S123:对第一子树中非对称层的分组信息进行编码以形成第一子树的分组码流。
S122:对第一子树中子块的位置信息进行编码以形成第一子树的索引码流。
具体地,本申请实施例中,步骤S121和步骤S122可以参见图15中的相关描述,此处不再赘述。
对于步骤S123,由于在本申请实施例中,第一子树为非对称结构,因此,需要在对第一子树的层数信息以及位置信息编码的基础之上,还需要对第一子树中非对称层的分组信息进行编码,以便于解码端能够解码得到准确的点云位置结构。
具体地,在步骤S123中,对非对称层中每个子块的下一层子块在每个子块中的位置索引进行编码之前,对非对称层中每个子块的下一层子块数量进行编码,体现非对称层的分组信息,以形成第一子树的分组码流。
可选地,若下一层子块数量为2,则编码为1,若下一层子块子块数量为1,则编码为0,若下一层子块数量为其他数值,则还可以对应编码为其它值,本申请实施例对具体的编码方式不做限定。
具体地,在本申请实施例中,第一子树的层数码流、第一子树的索引码流,以及分组码流共同形成第一子树的第一码流,该第一码流能够表征第一子树的结构,从而表征第一子树中点云点的空间位置信息。
可选地,在本申请实施例中,第一子树的层数码流位于第一子树的分组码流之前,且第一子树的分组码流位于索引码流之前。
具体地,在对一个层数信息编码之后,若该层数范围内包括非对称层,则先对非对称层的分组信息进行编码,再对非对称层中子块的位置信息进行编码。对该层数范围内的全部层编码完成后,在对下一个层数信息进行编码,按照该方式依次进行,直到完成对第一子树的编码。采用该编码方式,编码得到的第一码流中,层数码流、分组码流以及索引码流中的比特分散在第一码流中,而不是集中于第一码流中的某一段。
举例来说,对于图17中的第一子树,编码顺序如下:
对第0层至第1层之间的层数0进行编码,对第1层子块在第一子块中的位置索引进行编码。
然后对第1层至第2层之间的层数0进行编码,对第1层中两个子块的下一层子块的数量进行编码,对第1层中两个子块的下一层子块在该两个子块中的位置索引进行编码。
然后对第2层至第3层之间的层数0进行编码,对第2层中三个子块的下一层子块的数量进行编码,对第2层中三个子块的下一层子块在该三个子块中的位置索引进行编码。
然后对第3层至第m层之间的层数m-4进行编码,依次对第3层以及第3层往下每一层的5个子块进行位置索引编码,形成第一子树的第一码流。
在一种情况中,如图17所示,从第3层至第m层,位于同一层的5个子块的下一层子块在该5个子块中的位置索引相同,具体来说,第4层的5个子块在第3层的5个子块中,位置索引相同,且第5层的5个子块在第4层的5个子块中,位置索引也相同,依次类推,第i层的5个子块在第i-1层的5个子块中的位置索引相同,其中,4≤i≤m,i为正整数。
则此时,在对第3层至第m层的子块进行位置索引编码时,对每层多个子块的同一位置索引进行编码,具体来说,在对第3层的多个子块的位置索引进行编码时,不再对多个位置索引进行编码,而只对一个位置索引进行编码,同理,第4层至第m层,每一层均只对一个位置索引进行编码。
同样的,在本申请实施例中,若在第一子树中,两层特殊层之间,或者最后一层特殊层至第一子树的最后一层之间,每层多个子块的下一层子块在每层多个子块中的位置索引为同一位置索引,则对每层多个子块的同一位置索引进行编码。
采用本申请实施例的方法,能够进一步减小编码比特位数,提高编解码效率。
对于上述申请实施例,可以在预设条件的基础上,进一步增加对第一子树的其它限制,从而采用不同的编码方法,优化编码过程,减小点云编码的比特位,提高编解码效率。
图20示出了另一种点云的编码方法100的示意性流程框图。
如图20所示,该点云的编码方法100还可以包括以下步骤。
S130:按照广度优先的编码顺序对点云中除第一子树以外的其它子块进行编码。
对点云中的第一子树编码后,按照广度优先的编码顺序对点云中除第一子树外其它的子块进行编码。
具体地,对点云中的第一子树编码后,对点云中第二子块进行编码,在广度优先的编码顺序上,第二子块位于第一子树的根节点块之后。
然后,仍旧按照广度优先编码方式,依次对点云经过多叉树划分后的树结构中的每一层子块进行编码,当编码至第一子树中的子块时,则跳过对第一子树中子块的编码。
可选地,在对点云中除第一子树外其它子块进行编码时,也可以在对其它子块编码之前,判断其子树结构是否满足预设条件,若满足预设条件,则也可以采用上述方法进行编码。换言之,点云的树结构中可以包括多个上述第一子树,在采用广度优先遍历顺序遍历点云的树结构时,可以在每个第一子树的根节点块处,切换至深度优先遍历顺序,优先对第一子树中的子块进行编码。
上文主要描述了第一子树的相关编码过程,由于第一子树的编码方式不同于点云中其它子块的编码方式,因此,在对第一子树进行编码之前,需要对该第一子树的编码方式进行标识,方便解码端解码得到相关信息。
图21示出了另一种点云的编码方法100的示意性流程框图。
如图21所示,该点云的编码方法100还可以包括以下步骤。
S140:对第一标识进行编码形成第一标识码流,该第一标识用于标识目标编码方式。
如图21所示,该步骤140可以在步骤S120之前执行,即确定第一子树后,对标识目标编码方式的标识符,即第一标识进行编码。
可选地,该第一标识可以为任意形式的标识符,例如,可以为数字、字母或者字符,本申请实施例对此不做具体限定。
在一些实施方式中,第一标识可以用于标识该目标编码方式为多种深度优先的编码方式的一种,例如,深度优先的编码方式包括但不限于是本申请中的目标编码方式以及孤立点直接编码方式。
具体地,当当前子块同时满足下列三个条件时生效该孤立点直接编码方式,1.几何头信息中孤立点直接编码模式标识符为1;2.当前子块内仅含有一个点云数据点;3.当前子块内的点的待编码莫顿码位数之和大于未到达最小边长方向的数目的二倍;由于当前子块内仅含有一个点云点,则直接编码该点云点几何坐标对应莫顿码的未编码的比特,具体的按照x,y,z顺序依次逐编码,其中已经到达最小边长的方向不需编码。
因此,本申请实施例中的第一标识可以用于区分目标编码方式与其他深度优先的编码方式。
例如,用于标识孤立点直接编码方式的标识符为0,本申请中用于标识目标编码方式的第一标识为1。
当然,第一标识不仅仅可以用于标识目标编码方式为多种深度优先的编码方式的哪一种,还可以用于标识目标编码方式为全部编码方式中的哪一种。
可选地,可以采用现有技术中任意一种二值化方法对上述第一标识进行二值化处理,然后再进行熵编码后续过程,得到第一标识码流。
其中,该二值化方法包括但不限于定长码编码方法或者变长码编码方法。该变长码编码方法包括但不限于截断莱斯码、K阶指数哥伦布、一元码等等编码方法。该定长码编码方法和变长码编码方法可以参见现有技术中的相关描述,此处不再赘述。
在一些实施方式中,第一标识码流位于第一子树的第一码流之前。
在另一些实施方式中,第一标识码流也可以位于点云的几何头码流中。
在此情况下,若点云的几何头信息中不包括用于标识其它编码方式的标识符,则该第一标识除了标识第一子树的编码方式为目标编码方式以外,还可以用于标识点云中其它符合预设条件的子树的编码方式为目标编码方式。
在第三种实施方式中,第一标识码流还可以同时位于的第一码流之前以及几何头码流中。
在此情况下,位于几何头码流中的第一标识码流用于标识点云中可以采用目标编码方式进行编码,而位于第一码流之前的第一标识码流用于标识第一子块的编码方式为目标编码方式。
图22示出了另一种点云的编码方法100的示意性流程框图。
如图22所示,该点云的编码方法100还可以包括以下步骤。
S150:对第二标识进行编码形成第二标识码流,该第一标识用于标识编码方式由广度优先切换至深度优先。
具体地,在采用第一标识的基础上,还可以在该第一标识之前增加第二标识符,用于标识编码方式由广度优先切换至深度优先。
可选地,可以根据划分方式对第二标识进行编码,若为八叉树划分时,第二标识可以编码为8bit 0,若为四叉树划分时,第二标识可以编码为4bit 0,若为二叉树划分时,第二标识可以编码为2bit 0。
可选地,编码后的第二标识码流位于上述第一码流之前。
进一步地,若第一标识码流也位于上述第一码流之前,该编码后的第二标识码流位于上述第一标识码流之前。
上文结合图9至图22说明了本申请中点云的编码方法,下面结合图23至图28,说明本申请中点云的解码方法,可以理解的是,点云的解码过程为编码的逆过程,解码过程中相关的技术方案可以参考上文中编码方法的相关描述。
图23示出了一种点云的解码方法200的示意性流程框图。
如图23所示,该点云的解码方法200可以包括以下步骤。
S210:接收第一码流。
S220:采用深度优先的目标解码方式对第一码流进行解码得到点云经过多叉树划分后的第一子树,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,且第一子树的每个子块均包括点云点。
具体地,该第一码流可以为上文中采用点云的编码方法100编码得到的第一子树的第一码流。对应于上文中的编码方法100,在本申请实施例中,接收第一码流之后,采用深度优先的目标解码方式对该第一码流进行解码,可以重建得到点云经过多叉树划分后其中的第一子树结构。
在一些实施例中,N≤2。具体地,在一些情况下,该第一子树的子块中至多两个子块的下一层子块的数量大于2,而其它子块的下一层子块的数量均小于等于2,在另一些情况下,该第一子树的子块中至多两个子块的下一层子块的数量大于1,而其它子块的下一层子块的数量均等于1,其中,子块的下一层子块即当前子块经过划分后得到的包括点云点的子块,该第一子树中,每个子块均包括点云点。
采用本申请实施例的方法,能够摆脱广度优先的解码方式对于编码顺序的严格要求,有利于点云解码过程的并行化,提高解码效率。
另外,由于编码端对于第一子树的编码方法能够降低第一子树的编码比特位,即降低第一码流的长度,因此,采用对应的解码方法也能够较为快速的对第一码流进行解码,从而进一步提高解码效率。
图24示出了另一种点云的解码方法200的示意性流程框图。
在本申请实施例中,第一码流包括层数码流以及索引码流两部分,在此情况下,对第一码流解码得到的第一子树为对称结构。
如图24所示,上述步骤S220可以包括以下步骤。
S221:对第一码流中的层数码流进行解码得到第一子树的层数信息。
对应于上文编码方法中的步骤S121,在本申请实施例中,对第一码流中的层数码流进行解码可以得到第一子树中的层数信息。
在一些实施方式中,对层数码流解码得到的层数信息直接可以为层数值,在另一些实施方式中,对层数码流解码得到的层数信息为层数差值,需要将该差值与预设层数相加,还原得到层数值。
可选地,该预设层数为编码端和解码端约定的数值。
可选地,点云的码流中包括该预设层数码流,例如,该预设层数码流可以位于点云的几何头码流中,解码端可以从点云的几何头码流中解码得到该预设层数的信息,或者该预设层数码流也可以位于点云码流的其他位置上,解码端也可以从点云码流的其它位置解码得到该预设层数的信息。
若第一子树中没有特殊层,则第一子树中每一层子块数量均与上一层一直,对层数码流解码得到一个层数值或者层数差值,该层数值或者层数差值可以用于得到第一子树的层数。作为示例,在该情况下,解码得到的第一子树的层数结构可以参见图12以及上文中的相关说明。
若第一子树中存在一层特殊层,解码得到的层数信息为第一子树的第零层至该特殊层之间的层数值或者层数差值、以及该特殊层至所述第一子树中的最后一层之间的层数值或者层数差值。作为示例,在该情况下,解码得到的第一子树的层数结构可以参见图14以及上文中的相关说明。
若第一子树中存在多层特殊层,解码得到的层数信息为第一子树的第零层至第一层特殊层之间的层数值或者层数差值、相邻两层特殊层之间的层数值或者层数差值以及最后一层特殊层至第一子树中的最后一层之间的层数值或者层数差值。作为示例,在该情况下,解码得到的第一子树的层数结构可以参见图13以及上文中的相关说明。
可选地,可以采用现有技术中任意一种二值化方法对上述层数和预设层数进行二值化处理,然后再进行熵解码后续过程,得到层数码流。
其中,该二值化方法包括但不限于定长码解码方法或者变长码解码方法。该变长码解码方法包括但不限于截断莱斯码、K阶指数哥伦布、一元码等等解码方法。该定长码解码方法和变长码解码方法可以对应于编码端的编码方法,由编码段和解码端进行约定,此外,该定长码解码方法和变长码解码方法可以参见现有技术中的相关描述,此处不再赘述。
S222:对第一码流中的索引码流进行解码得到第一子树中子块的位置信息。
对应于上文编码方法中的步骤S122,在本申请实施例中,对第一码流中的索引码流进行解码可以得到第一子树中子块的位置信息。
在一些实施方式中,对该索引码流解码得到第一子树中子块的位置索引,具体的,可以解码得到第一子树中每个子块的下一层子块在每个子块中的位置索引。
具体地,若当前子块的块划分方式为八叉树划分,则当前子块的一个下一层子块的一个位置索引为3bit流,若当前子块的块划分方式为四叉树划分,则当前子块的一个下一层子块的一个位置索引为2bit流,若当前子块的块划分方式为二叉树划分,则当前子块的一个下一层子块的位置索引为1bit流。
在一些实施方式中,可以采用如下第一规则对第一子树中的子块进行划分判断:
若第一子树中一个子块在三个方向上未达到预设值,对该子块进行八叉树划分,解码3bit得到一个下一层子块在该一个子块中的一个位置索引;
若第一子树中一个子块在二个方向上未达到预设值,对该子块进行四叉树划分,解码2bit得到一个下一层子块在该一个子块中的一个位置索引;
若该第一子树中一个子块在一个方向上未达到预设值,对该子块进行二叉树划分,解码1bit得到一个下一层子块在该一个子块中的一个位置索引。
上述预设值可以为叶子节点块的边长,例如可以为1。
在另一种实施方式中,除了上述第一规则外,当前子块的划分方式也可以采用现有技术中的划分方式,或者根据其它约定的划分方式,或者根据固定的划分方式对当前子块进行划分,本申请实施例对此不做具体限定。
可选地,在一些实施例中,若第一子树的最后一层子块为叶子节点块时,采用上述第一规则对第一子树中的子块进行块划分;而若第一子树的最后一层子块不为叶子节点块,则可以采用第二规则对第一子树中的子块进行块划分,该第二规则为点云中除第一子树外的其它子块的划分方式。作为示例,第二规则可以为上文中根据表1和表2的条件确定的划分方式规则,或者第二规则也可以为现有技术中其它任意的划分方式规则。
在本申请实施例中,第一码流中的索引码流位于层数码流之后。举例来说,接收第一码流之后,先对层数码流进行解码,得到一个或者多个层数值,然后对索引码流进行解码,得到每一层中每个子块的下一层子块在当前子块中的位置索引,从而还原第一子树的树结构,即还原点云中第一子树中点云点位置的相关信息。
例如,若对层数信息进行解码得到层数1,以及层数m-3两个值,说明第一子树中包括一层特殊层,且该特殊层位于第2层,且该第一子树一共包括m层,除了第2层以外,其它层均为非特殊层,即其它层中每一层子块的数量均与上一层子块数量相等。然后,根据该层数信息,对后续的索引码流解码得到每一层中子块的下一层子块在当前子块中的位置索引,从而确定每一层中子块的位置。在该情况下,对第一码流解码得到的第一子树结构可以参见图14所示。
在一些情况下,同一层具有多个子块,但对该层子块的索引码流只解码得到一个位置索引,则此时同一层的多个子块中的位置索引为同一位置索引。
例如,若对层数信息进行解码得到层数1,以及层数m-3两个值后,根据该层数信息,对后续的索引码流解码,其中,第3层至第m层的索引码流中,每一层仅有一个位置索引码流,则确定在第3层至第m中,第i层的多个子块在第i-1层的多个子块中的位置索引相同,其中,3≤i≤m,i为正整数。根据该位置索引码流,确定每一层中子块的位置。在该情况下,对第一码流解码得到的第一子树结构可以参见图14所示,且图14中,第3层至第m层中,每层4个子块的下一层子块在每层4个子块中的位置索引为同一位置索引。
总结来说,在本申请实施例中,若两层特殊层之间,或者最后一层特殊层至第一子树的最后一层之间,每层多个子块的下一层子块在每层多个子块中的位置索引为同一位置索引,则对每层多个子块的同一位置索引进行解码。
采用上文图24中的解码方法200,解码得到的第一子树为对称结构,换言之,在编码端中,第一子树的预设条件中增加限定第一子树为对称结构,则采用上文图15中的编码方法,以及图24中的解码方法。
采用本申请实施例中解码方法200解码得到的第一子树结构包括但不限于是图10至图14中所示的第一子树结构,还可以为其它对称结构,且满足预设条件的第一子树结构。
图25示出了另一种点云的解码方法200的示意性流程框图。
在本申请实施例中,第一码流包括层数码流、索引码流以及第一子树中非对称层的分组码流三部分,在此情况下,对第一码流解码得到的第一子树为非对称结构。
如图25所示,上述步骤S220可以包括以下步骤。
S221:对第一码流中的层数码流进行解码得到第一子树的层数信息。
S223:对第一码流中的分组码流进行解码得到第一子树中非对称层的分组信息。
S222:对第一码流中的索引码流进行解码得到第一子树中子块的位置信息。
具体地,本申请实施例中,步骤S221和步骤S222可以参见图25中的相关描述,此处不再赘述。
具体地,在步骤S223中,对分组码流进行解码可以得到第一子树中非对称层的分组信息,即解码得到非对称层中每个子块的下一层子块数量。
可选地,在本申请实施例中,第一子树的层数码流位于第一子树的分组码流之前,且第一子树的分组码流位于索引码流之前。
具体地,在第一码流中,部分层数码流之后,为索引码流,或者部分层数码流之后,为分组码流,在分组码流之后为索引码流。换言之,在本申请实施例的第一码流中,层数码流、分组码流以及索引码流中的比特分散在第一码流中,而不是集中于第一码流中的某一段。
举例来说,对于图17中的第一子树的第一码流,解码顺序如下:
对第一码流中的层数码流进行解码,得到对第0层至第1层之间的层数为0,对其后的索引码流进行解码得到第1层子块在第0层子块中的位置索引。
然后继续对第一码流中的层数码流进行解码,得到第1层至第2层之间的层数0,对其后的分组码流进行解码得到第1层中两个子块的下一层子块的数量,然后对其后的索引码流进行解码得到第1层中两个子块的下一层子块在该两个子块中的位置索引。
然后继续对第一码流中的层数码流进行解码,得到第2层至第3层之间的层数0,对其后的分组码流进行解码得到第2层中三个子块的下一层子块的数量,然后对其后的索引码流进行解码得到第2层中三个子块的下一层子块在该三个子块中的位置索引。
然后继续对第一码流中的层数码流进行解码,得到第3层至第m层之间的层数m-4,对其后的索引码流进行解码得到第3层以及第3层往下每一层的5个子块的位置索引。
在一些情况下,同一层具有多个子块,但对该层子块的索引码流只解码得到一个位置索引,则此时同一层的多个子块中的位置索引为同一位置索引。
例如,在上述对图17的第一子树的第一码流进行解码的过程中,第3层至第m层的索引码流中,每一层仅有一个位置索引码流,则确定在第3层至第m中,第i层的多个子块在第i-1层的多个子块中的位置索引相同,其中,3≤i≤m,i为正整数。根据该位置索引码流,确定每一层中子块的位置。在该情况下,对第一码流解码得到的图17中的第一子树结构中,其第3层至第m层中,每层4个子块的下一层子块在每层4个子块中的位置索引为同一位置索引。
总结来说,在本申请实施例中,若两层特殊层之间,或者最后一层特殊层至第一子树的最后一层之间,每层多个子块的下一层子块在每层多个子块中的位置索引为同一位置索引,则对每层多个子块的同一位置索引进行解码。
采用上文图25中的解码方法200,解码得到的第一子树为非对称结构,换言之,在编码端中,第一子树的预设条件中增加限定第一子树为非对称结构,则采用上文图19中的编码方法,以及图25中的解码方法。
采用本申请实施例中解码方法200解码得到的第一子树结构包括但不限于是图17至图18中所示的第一子树结构,还可以为其它非对称结构,且满足预设条件的第一子树结构。
图26示出了另一种点云的解码方法200的示意性流程框图。
如图26所示,该点云的解码方法200还可以包括以下步骤。
S230:接收第二码流,按照广度优先的解码方式对第二码流进行解码,得到点云中除第一子树以外的其它子块。
对第一码流解码得到点云中的第一子树后,对接收的第二码流,按照广度优先的解码方式对第二码流进行解码,得到点云中除第一子树外其它的子块。
具体地,对第一码流解码后,对第二码流首先解码得到点云中第二子块,在广度优先顺序上,第二子块位于第一子树的根节点块之后。
然后,对第二码流继续进行解码,得到点云经过多叉树划分后的树结构中的每一层子块,当解码至第一子树中的子块时,则跳过该第一子树中子块,直至解码到树结构的叶子节点子块,实现空间位置坐标的重建。
上文主要描述了第一码流的相关解码过程,由于第一码流的解码方式不同于点云中码流的解码方式,因此,在对第一码流进行解码之前,需要对相关标识码流进行解码,得到该第一码流的解码方式的相关信息。
图27示出了另一种点云的解码方法200的示意性流程框图。
如图27所示,该点云的解码方法200还可以包括以下步骤。
S240:接收第一标识码流,对该第一标识码流进行解码得到第一标识,该第一标识用于标识目标编码方式,该目标编码方式为对应于目标解码方式的编码方式。
如图27所示,该步骤240可以在步骤S210之前执行,即在接收第一码流之前,接收到第一标识码流,并对该第一标识码流解码可以得到后续对第一码流的解码方式。
可选地,解码得到的该第一标识可以为任意形式的标识符,例如,可以为数字、字母或者字符,本申请实施例对此不做具体限定。
在一些实施方式中,第一标识可以用于标识该目标编码方式为多种深度优先的编码方式的一种,例如,深度优先的编码方式包括但不限于是本申请中的目标编码方式以及孤立点直接编码方式。
因此,本申请实施例中的第一标识可以用于区分目标编码方式与其他深度优先的编码方式。
例如,用于标识孤立点直接编码方式的标识符为0,本申请中用于标识目标编码方式的第一标识为1。
当然,第一标识不仅仅可以用于标识目标编码方式为多种深度优先的编码方式的哪一种,还可以用于标识目标编码方式为全部编码方式中的哪一种。
可选地,可以采用现有技术中任意一种二值化解码方法对上述第一标识码流进行二值化解码处理,然后再进行熵解码后续过程,得到第一标识。
其中,该二值化解码方法包括但不限于定长码解码方法或者变长码解码方法。该变长码解码方法包括但不限于截断莱斯码、K阶指数哥伦布、一元码等等解码方法。该定长码解码方法和变长码解码方法可以对应于编码端的编码方法,由编码段和解码端进行约定,此外,该定长码解码方法和变长码解码方法可以参见现有技术中的相关描述,此处不再赘述。
在一些实施方式中,第一标识码流位于第一子树的第一码流之前。
在另一些实施方式中,第一标识码流也可以位于点云的几何头码流中。
在此情况下,若点云的几何头信息中不包括用于标识其它编码方式的标识符,则该第一标识除了标识第一子树的编码方式为目标编码方式以外,还可以用于标识点云中其它符合预设条件的子树的编码方式为目标编码方式。
在第三种实施方式中,第一标识码流还可以同时位于的第一码流之前以及几何头码流中。
在此情况下,位于几何头码流中的第一标识码流用于标识点云中可以采用目标编码方式进行编码,而位于第一码流之前的第一标识码流用于标识第一子块的编码方式为目标编码方式。
图28示出了另一种点云的解码方法200的示意性流程框图。
如图28所示,该点云的解码方法200还可以包括以下步骤。
S250:接收第二标识码流,对第二标识码流进行解码得到第二标识,该第二标识用于标识编码方式由广度优先切换至深度优先。
可选地,在接收第一标识码流之前,还可以接收第二标识码流,对该第二标识码流解码得到第二标识,该第二标识用于标识编码方式由广度优先切换至深度优先。
可选地,可以根据划分方式对第二标识码流进行解码,若为八叉树划分时,第二标识码流为8bit 0,若为四叉树划分时,第二标识码流为4bit 0,若为二叉树划分时,第二标识码流为2bit 0。
可选地,第二标识码流位于上述第一码流之前。
进一步地,若第一标识码流也位于上述第一码流之前,该第二标识码流位于上述第一标识码流之前。
上文结合图9至图22,详细描述了本申请的点云的编码方法实施例,下文结合图29,详细描述本申请的点云的编码装置实施例,应理解,装置实施例与方法实施例相互对应,类似的描述可以参照方法实施例。
图29是根据本申请实施例的点云的编码装置10的示意性框图,该点云的编码装置10对应于点云的编码方法100。
如图29所述,所述点云的编码装置10包括:处理器11和存储器12;
存储器12可用于存储程序,处理器11可用于执行存储器中存储的程序,以执行如下操作:确定点云经过多叉树划分后的第一子树,其中,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,该第一子树的每个子块均包括点云点,N为根据该多叉树划分方式确定的正整数;采用深度优先的目标编码方式对该第一子树进行编码以形成该第一子树的第一码流。
可选地,在本申请的一个实施例中,该处理器11可以为点云的编码装置10所在的电子设备的处理器或控制器。
在一种可能的实施方式中,该多叉树划分包括:八叉树划分、四叉树划分、二叉树划分中的一种或多种,N≤2。
在一种可能的实施方式中,该第一子树为对称结构,该第一子树的一层中仅包括一个子块,或者一层中多个子块的下一层子块的数量相等。
在一种可能的实施方式中,该处理器11用于:对该第一子树的层数信息以及该第一子树中子块的位置信息进行编码以形成该第一子树的第一码流。
在一种可能的实施方式中,该处理器11用于:若该第一子树中不包括特殊层,对该第一子树的层数进行编码以形成该第一码流中的层数码流;或者,
若该第一子树中包括特殊层,对该第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至该第一子树中的最后一层之间的层数进行编码以形成该第一码流中的层数码流;其中,该特殊层中子块的数量与其上一层中子块的数量不一致。
在一种可能的实施方式中,该处理器11用于:将该层数减去预设层数得到层数差值,对该层数差值进行编码以形成该第一码流中的层数码流。
在一种可能的实施方式中,该处理器11用于:采用定长码编码方式或者变长码编码方式对该层数差值进行编码以形成该第一码流中的层数码流。
在一种可能的实施方式中,该处理器11还用于:对该预设层数进行编码以形成预设层数码流,该预设层数码流位于该点云的几何头码流中。
在一种可能的实施方式中,该处理器11用于:对该第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成该第一码流中的索引码流。
在一种可能的实施方式中,该处理器11用于:若采用八叉树划分方式对该第一子树中一个子块划分得到下一层子块,一个下一层子块在该一个子块中的一个位置索引编码为3比特;
若采用四叉树划分方式对该第一子树中一个子块划分得到下一层子块,一个下一层子块在该一个子块中的一个位置索引编码为2比特;
若采用二叉树划分方式对该第一子树中一个子块划分得到下一层子块,一个下一层子块在该一个子块中的一个位置索引编码为1比特。
在一种可能的实施方式中,该处理器11用于:若该第一子树中最后一层子块为叶子节点块,基于第一规则对该第一子树中每个子块进行划分,得到每个子块的下一层子块;
若该第一子树中最后一层子块不为叶子节点块,基于第二规则对该第一子树中每个子块进行划分,得到每个子块的下一层子块;
其中,该第一规则和该第二规则用于判定该第一子树中每个子块的划分方式。
在一种可能的实施方式中,该处理器11用于:若该第一子树中一个子块在三个方向上未达到预设值,采用八叉树划分方式对该一个子块划分得到下一层子块;
若该第一子树中一个子块在二个方向上未达到预设值,采用四叉树划分方式对该一个子块划分得到下一层子块;
若该第一子树中一个子块在一个方向上未达到预设值,采用二叉树划分方式对该一个子块划分得到下一层子块。
在一种可能的实施方式中,若该第一子树包括一层特殊层,且该特殊层至该第一子树的最后一层之间,每层多个子块的下一层子块在该每层多个子块中的位置索引为同一位置索引;
该处理器11用于:对该特殊层至该第一子树的最后一层之间,每层多个子块的下一层子块在该每层多个子块中的同一位置索引进行编码以形成该第一码流中的索引码流。
在一种可能的实施方式中,若该第一子树包括多层特殊层,且该多层特殊层的两层特殊层之间,或者最后一层特殊层至该第一子树的最后一层之间,每层多个子块的下一层子块在该每层多个子块中的位置索引为同一位置索引;
该处理器11用于:对该第一子树中的两层特殊层之间,或者最后一层特殊层至该第一子树的最后一层之间,每层多个子块的下一层子块在该每层多个子块中的同一位置索引进行编码。
在一种可能的实施方式中,在该第一码流中,该层数码流位于该索引码流之前。
在一种可能的实施方式中,该第一子树中每个子块的下一层子块数量均小于等于2。
在一种可能的实施方式中,该第一子树中仅一个子块的下一层子块的数量等于2,其它子块的下一层子块的数量等于1。
在一种可能的实施方式中,该第一子树中每个子块的下一层子块的数量等于1。
在一种可能的实施方式中,该第一子树中至多两个子块的下一层子块的数量大于2,该至多两个子块的下一层子块为该第一子树的子块。
在一种可能的实施方式中,该第一子树的子块中仅一个子块的下一层子块的数量大于2,其它子块的下一层子块数量等于1。
在一种可能的实施方式中,该第一子树为非对称结构,该第一子树包括至少一层非对称层,该非对称层中不同子块的下一层子块的数量不相等。
在一种可能的实施方式中,该处理器11用于:对该第一子树的层数信息、该第一子树中子块的位置信息、以及该第一子树中非对称层的分组信息进行编码以形成该第一子树的第一码流。
在一种可能的实施方式中,该处理器11用于:对该第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至该第一子树中的最后一层之间的层数进行编码以形成该第一码流中的层数码流;其中,该特殊层中子块的数量与其上一层中子块的数量不一致。
在一种可能的实施方式中,该处理器11用于:对该第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成该第一码流中的索引码流。
在一种可能的实施方式中,该处理器11用于:对该非对称层中每个子块的下一层子块在每个子块中的位置索引进行编码之前,对该非对称层中每个子块的下一层子块数量进行编码,以形成该第一码流中的分组码流。
在一种可能的实施方式中,在该第一码流中,该分组码流位于该索引码流之前,该层数码流位于该分组码流之前。
在一种可能的实施方式中,该第一子树中每个子块的下一层子块数量均小于等于2。
在一种可能的实施方式中,该第一子树中至多两个子块的下一层子块的数量大于2,该至多两个子块的下一层子块为该第一子树的子块。
在一种可能的实施方式中,该处理器11还用于:对第一标识进行编码形成第一标识码流,该第一标识用于标识该目标编码方式。
在一种可能的实施方式中,该第一标识码流为采用定长码或者变长码编码方式编码得到的码流。
在一种可能的实施方式中,该第一标识码流位于该第一子树的第一码流之前;和/或,该第一标识码流位于该点云的几何头码流中。
在一种可能的实施方式中,该处理器11还用于:对第二标识进行编码形成第二标识码流,该第二标识用于标识编码方式由广度优先切换至深度优先。
在一种可能的实施方式中,该第二标识码流位于该第一标识码流之前。
在一种可能的实施方式中,该处理器11还用于:按照广度优先的编码顺序对该点云中除该第一子树以外的其它子块进行编码以形成第二码流。
在一种可能的实施方式中,该处理器11用于:对该点云中第二子块进行编码,在广度优先的编码顺序上,该第二子块位于该第一子树的根节点块之后。
上文结合图23至图28,详细描述了本申请的点云的解码方法实施例,下文结合图30,详细描述本申请的点云的解码装置实施例,应理解,装置实施例与方法实施例相互对应,类似的描述可以参照方法实施例。
图30是根据本申请实施例的点云的解码装置20的示意性框图,该点云的解码装置20对应于点云的解码方法200。
如图30所述,所述点云的解码装置20包括:处理器21和存储器22;
存储器22可用于存储程序,处理器21可用于执行存储器中存储的程序,以执行如下操作:接收第一码流;采用深度优先的目标解码方式对该第一码流进行解码得到点云经过多叉树划分后的第一子树;其中,该第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,该第一子树的每个子块均包括点云点。
可选地,在本申请的一个实施例中,该处理器21可以为点云的解码装置20所在的电子设备的处理器或控制器。
在一种可能的实施方式中,该多叉树划分包括:八叉树划分、四叉树划分、二叉树划分中的一种或多种,N≤2。
在一种可能的实施方式中,该第一码流包括层数码流以及索引码流,该处理器21用于:对该第一码流中的层数码流进行解码得到该第一子树的层数信息,对该第一码流中的索引码流进行解码得到该第一子树中子块的位置信息,根据该层数信息以及该位置信息得到该第一子树。
在一种可能的实施方式中,该处理器21用于:对该第一码流中的层数码流进行解码得到该第一子树的层数;或者,对该第一码流中的层数码流进行解码得到该第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至该第一子树中的最后一层之间的层数;其中,该特殊层中子块的数量与其上一层中子块的数量不一致。
在一种可能的实施方式中,该处理器21用于:对该第一码流中的层数码流进行解码得到一个层数差值,将该一个层数差值加预设层数得到该第一子树的层数,或者,
对该第一码流中的层数码流进行解码得到多个层数差值,将该多个层数差值加预设层数得到该第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至该第一子树中的最后一层之间的层数。
在一种可能的实施方式中,该处理器21用于:采用定长码解码方式或者变长码解码方式对该第一码流中的层数码流进行解码得到该第一子树的层数信息。
在一种可能的实施方式中,该处理器21还用于:接收预设层数码流;对该预设层数码流进行解码得到该预设层数,该预设层数码流位于该点云的几何头码流中。
在一种可能的实施方式中,该处理器21用于:对该第一码流中的索引码流进行解码得到该第一子树中每个子块的下一层子块在该每个子块中的位置索引。
在一种可能的实施方式中,该处理器21用于:若采用八叉树划分方式对该第一子树中一个子块划分得到下一层子块,对该索引码流中3比特码流进行解码得到一个该下一层子块在该一个子块中的一个位置索引;
若采用四叉树划分方式对该第一子树中一个子块划分得到下一层子块,对该索引码流中2比特码流进行解码得到一个该下一层子块在该一个子块中的一个位置索引;
若采用二叉树划分方式对该第一子树中一个子块划分得到下一层子块,对该索引码流中1比特码流进行解码得到一个该下一层子块在该一个子块中的一个位置索引。
在一种可能的实施方式中,该处理器21还用于:若该第一子树中最后一层子块为叶子节点块,基于第一规则对该第一子树中每个子块进行划分,得到每个子块的下一层子块;
若该第一子树中最后一层子块不为叶子节点块,基于第二规则对该第一子树中每个子块进行划分,得到每个子块的下一层子块;
其中,该第一规则和该第二规则用于判定该第一子树中每个子块的划分方式。
在一种可能的实施方式中,该处理器21用于:若该第一子树中一个子块在三个方向上未达到预设值,采用八叉树划分方式对该一个子块划分得到下一层子块;
若该第一子树中一个子块在二个方向上未达到预设值,采用四叉树划分方式对该一个子块划分得到下一层子块;
若该第一子树中一个子块在一个方向上未达到预设值,采用二叉树划分方式对该一个子块划分得到下一层子块。
在一种可能的实施方式中,该第一子树包括一层特殊层,该处理器21用于:对该第一码流中的索引码流进行解码得到该第一子树中,该特殊层至该第一子树的最后一层之间,每层多个子块的下一层子块在该每层多个子块中的同一位置索引。
在一种可能的实施方式中,该第一子树包括多层特殊层,该处理器21用于:对该第一码流中的索引码流进行解码得到该第一子树中,该多层特殊层的两层特殊层之间,或者最后一层特殊层至该第一子树的最后一层之间,每层多个子块的下一层子块在该每层多个子块中的同一位置索引。
在一种可能的实施方式中,在该第一码流中,该层数码流位于该索引码流之前。
在一种可能的实施方式中,该第一子树为对称结构,该第一子树的一层中仅包括一个子块,或者一层中多个子块的下一层子块的数量相等。
在一种可能的实施方式中,该第一子树中每个子块的下一层子块数量均小于等于2。
在一种可能的实施方式中,该第一子树中仅一个子块的下一层子块的数量等于2,其它子块的下一层子块的数量等于1。
在一种可能的实施方式中,该第一子树中每个子块的下一层子块的数量等于1。
在一种可能的实施方式中,该第一子树中至多两个子块的下一层子块的数量大于2,该至多两个子块的下一层子块为该第一子树的子块。
在一种可能的实施方式中,该第一子树的子块中仅一个子块的下一层子块的数量大于2,其它子块的下一层子块数量等于1。
在一种可能的实施方式中,该第一码流包括层数码流、索引码流以及分组码流,该处理器21用于:
对该第一码流中的层数码流进行解码得到该第一子树的层数信息,
对该第一码流中的索引码流进行解码得到该第一子树中子块的位置信息,
对该第一码流中的分组码流进行解码得到该第一子树中非对称层的分组信息,其中,该非对称层中不同子块的下一层子块的数量不相等,
根据该层数信息、该位置信息以及该分组信息得到该第一子树。
在一种可能的实施方式中,该处理器21用于:对该第一码流中的层数码流进行解码得到该第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至该第一子树中的最后一层之间的层数;其中,该特殊层中子块的数量与其上一层中子块的数量不一致。
在一种可能的实施方式中,该处理器21用于:对该第一码流中的索引码流进行解码得到该第一子树中每个子块的下一层子块在该每个子块中的位置索引。
在一种可能的实施方式中,该处理器21用于:对该第一码流中的分组码流进行解码得到该非对称层中每个子块的下一层子块数量。
在一种可能的实施方式中,在该第一码流中,该分组码流位于该索引码流之前,该层数码流位于该分组码流之前。
在一种可能的实施方式中,该第一子树为非对称结构,该第一子树包括至少一层非对称层。
在一种可能的实施方式中,该第一子树中每个子块的下一层子块数量均小于等于2。
在一种可能的实施方式中,该第一子树中至多两个子块的下一层子块的数量大于2,该至多两个子块的下一层子块为该第一子树的子块。
在一种可能的实施方式中,该处理器21还用于:接收第一标识码流;对该第一标识码流进行解码得到第一标识,该第一标识用于标识该目标解码方式。
在一种可能的实施方式中,该处理器21用于:采用定长码解码方式或者变长码解码方式对该第一标识码流进行解码得到该第一标识。
在一种可能的实施方式中,该第一标识码流位于该第一码流之前;和/或,该第一标识码流位于该点云的几何头码流中。
在一种可能的实施方式中,该处理器21还用于:接收第二标识码流;对该第二标识码流进行解码得到第二标识,该第二标识用于标识解码方式由广度优先切换至深度优先。
在一种可能的实施方式中,该第二标识码流位于该第一标识码流之前。
在一种可能的实施方式中,该处理器21还用于:接收第二码流,按照广度优先的解码顺序对该第二码流进行解码得到该点云中除该第一子树以外的其它子块。
在一种可能的实施方式中,该处理器21用于:对该第二码流解码得到该点云中的第二子块,在广度优先的解码顺序上,该第二子块位于该第一子树的根节点块之后。
本申请实施例还提供了一种电子设备,该电子设备可以包括上述本申请各种实施例的点云的编解码装置。
应理解,本申请实施例的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器包括但不限于以下各种:通用处理器,中央处理器CPU、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行上文实施例的方法。
本申请实施例还提出了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上文实施例的方法。
本申请实施例还提供了一种芯片,该芯片包括输入输出接口、至少一个处理器、至少一个存储器和总线,该至少一个存储器用于存储指令,该至少一个处理器用于调用该至少一个存储器中的指令,以执行上文所示实施例的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (142)

1.一种点云的编码方法,其特征在于,包括:
确定点云经过多叉树划分后的第一子树,其中,所述第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,所述第一子树的每个子块均包括点云点,N为根据所述多叉树划分方式确定的正整数;
采用深度优先的目标编码方式对所述第一子树进行编码以形成所述第一子树的第一码流。
2.根据权利要求1所述的编码方法,其特征在于,所述多叉树划分包括:八叉树划分、四叉树划分、二叉树划分中的一种或多种,N≤2。
3.根据权利要求1或2所述的编码方法,其特征在于,所述第一子树为对称结构,所述第一子树的一层中仅包括一个子块,或者一层中多个子块的下一层子块的数量相等。
4.根据权利要求3所述的编码方法,其特征在于,所述采用深度优先的目标编码方式对所述第一子树进行编码以形成所述第一子树的第一码流,包括:
对所述第一子树的层数信息以及所述第一子树中子块的位置信息进行编码以形成所述第一子树的第一码流。
5.根据权利要求4所述的编码方法,其特征在于,所述对所述第一子树的层数信息进行编码,包括:
若所述第一子树中不包括特殊层,对所述第一子树的层数进行编码以形成所述第一码流中的层数码流;或者,
若所述第一子树中包括特殊层,对所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数进行编码以形成所述第一码流中的层数码流;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
6.根据权利要求5所述的编码方法,其特征在于,所述对层数进行编码以形成所述第一码流中的层数码流,包括:
将所述层数减去预设层数得到层数差值,对所述层数差值进行编码以形成所述第一码流中的层数码流。
7.根据权利要求6所述的编码方法,其特征在于,所述对所述层数差值进行编码,包括:
采用定长码编码方式或者变长码编码方式对所述层数差值进行编码以形成所述第一码流中的层数码流。
8.根据权利要求6或7所述的编码方法,其特征在于,所述编码方法还包括:
对所述预设层数进行编码以形成预设层数码流,所述预设层数码流位于所述点云的几何头码流中。
9.根据权利要求5至8中任一项所述的编码方法,其特征在于,所述对所述第一子树中子块的位置信息进行编码,包括:
对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成所述第一码流中的索引码流。
10.根据权利要求9所述的编码方法,其特征在于,所述对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码,包括:
若采用八叉树划分方式对所述第一子树中一个子块划分得到下一层子块,一个下一层子块在所述一个子块中的一个位置索引编码为3比特;
若采用四叉树划分方式对所述第一子树中一个子块划分得到下一层子块,一个下一层子块在所述一个子块中的一个位置索引编码为2比特;
若采用二叉树划分方式对所述第一子树中一个子块划分得到下一层子块,一个下一层子块在所述一个子块中的一个位置索引编码为1比特。
11.根据权利要求10所述的编码方法,其特征在于,所述对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码,还包括:
若所述第一子树中最后一层子块为叶子节点块,基于第一规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
若所述第一子树中最后一层子块不为叶子节点块,基于第二规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
其中,所述第一规则和所述第二规则用于判定所述第一子树中每个子块的划分方式。
12.根据权利要求11所述的编码方法,其特征在于,所述采用第一规则对所述第一子树中每个子块进行划分,包括:
若所述第一子树中一个子块在三个方向上未达到预设值,采用八叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在二个方向上未达到预设值,采用四叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在一个方向上未达到预设值,采用二叉树划分方式对所述一个子块划分得到下一层子块。
13.根据权利要求9至12中任一项所述的编码方法,其特征在于,若所述第一子树包括一层特殊层,且所述特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的位置索引为同一位置索引;
所述对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成所述第一码流中的索引码流,包括:
对所述特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引进行编码以形成所述第一码流中的索引码流。
14.根据权利要求9至12中任一项所述的编码方法,其特征在于,若所述第一子树包括多层特殊层,且所述多层特殊层的两层特殊层之间,或者最后一层特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的位置索引为同一位置索引;
所述对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码,包括:
对所述第一子树中的两层特殊层之间,或者最后一层特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引进行编码。
15.根据权利要求9至14中任一项所述的编码方法,其特征在于,在所述第一码流中,所述层数码流位于所述索引码流之前。
16.根据权利要求3至15中任一项所述的编码方法,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
17.根据权利要求16所述的编码方法,其特征在于,所述第一子树中仅一个子块的下一层子块的数量等于2,其它子块的下一层子块的数量等于1。
18.根据权利要求16所述的编码方法,其特征在于,所述第一子树中每个子块的下一层子块的数量等于1。
19.根据权利要求3至15中任一项所述的编码方法,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
20.根据权利要求3至15中任一项所述的编码方法,其特征在于,所述第一子树的子块中仅一个子块的下一层子块的数量大于2,其它子块的下一层子块数量等于1。
21.根据权利要求1或2所述的编码方法,其特征在于,所述第一子树为非对称结构,所述第一子树包括至少一层非对称层,所述非对称层中不同子块的下一层子块的数量不相等。
22.根据权利要求21所述的编码方法,其特征在于,所述采用深度优先的目标编码方式对所述第一子树进行编码以形成所述第一子树的第一码流,包括:
对所述第一子树的层数信息、所述第一子树中子块的位置信息、以及所述第一子树中非对称层的分组信息进行编码以形成所述第一子树的第一码流。
23.根据权利要求22所述的编码方法,其特征在于,所述对所述第一子树的层数信息进行编码,包括:
对所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数进行编码以形成所述第一码流中的层数码流;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
24.根据权利要求23所述的编码方法,其特征在于,所述对所述第一子树中子块的位置信息进行编码,包括:
对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成所述第一码流中的索引码流。
25.根据权利要求24所述的编码方法,其特征在于,所述对所述第一子树的非对称层的分组信息进行编码,包括:
对所述非对称层中每个子块的下一层子块在每个子块中的位置索引进行编码之前,对所述非对称层中每个子块的下一层子块数量进行编码,以形成所述第一码流中的分组码流。
26.根据权利要求25所述的编码方法,其特征在于,在所述第一码流中,所述分组码流位于所述索引码流之前,所述层数码流位于所述分组码流之前。
27.根据权利要求21至26中任一项所述的编码方法,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
28.根据权利要求21至26中任一项所述的编码方法,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
29.根据权利要求1至28中任一项所述的编码方法,其特征在于,所述编码方法还包括:
对第一标识进行编码形成第一标识码流,所述第一标识用于标识所述目标编码方式。
30.根据权利要求29所述的编码方法,其特征在于,所述第一标识码流为采用定长码或者变长码编码方式编码得到的码流。
31.根据权利要求29或30所述的编码方法,其特征在于,所述第一标识码流位于所述第一子树的第一码流之前;和/或,
所述第一标识码流位于所述点云的几何头码流中。
32.根据权利要求29或30所述的编码方法,其特征在于,所述编码方法还包括:
对第二标识进行编码形成第二标识码流,所述第二标识用于标识编码方式由广度优先切换至深度优先。
33.根据权利要求32所述的编码方法,其特征在于,所述第二标识码流位于所述第一标识码流之前。
34.根据权利要求1至33中任一项所述的编码方法,其特征在于,所述编码方法还包括:
按照广度优先的编码顺序对所述点云中除所述第一子树以外的其它子块进行编码以形成第二码流。
35.根据权利要求34所述的编码方法,其特征在于,所述按照广度优先的编码顺序对所述点云中除所述第一子树以外的其它子块进行编码以形成第二码流,包括:
对所述点云中第二子块进行编码,在广度优先的编码顺序上,所述第二子块位于所述第一子树的根节点块之后。
36.一种点云的解码方法,其特征在于,包括:
接收第一码流;
采用深度优先的目标解码方式对所述第一码流进行解码得到点云经过多叉树划分后的第一子树;
其中,所述第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,所述第一子树的每个子块均包括点云点。
37.根据权利要求36所述的解码方法,其特征在于,所述多叉树划分包括:八叉树划分、四叉树划分、二叉树划分中的一种或多种,N≤2。
38.根据权利要求36或37所述的解码方法,其特征在于,所述第一码流包括层数码流以及索引码流,所述采用深度优先的目标解码方式对所述第一码流进行解码得到点云经过多叉树划分后的第一子树,包括:
对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息,
对所述第一码流中的索引码流进行解码得到所述第一子树中子块的位置信息,
根据所述层数信息以及所述位置信息得到所述第一子树。
39.根据权利要求38所述的解码方法,其特征在于,所述对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息,包括:
对所述第一码流中的层数码流进行解码得到所述第一子树的层数;或者,
对所述第一码流中的层数码流进行解码得到所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
40.根据权利要求38所述的解码方法,其特征在于,所述对所述第一码流中的层数码流解码得到所述第一子树的层数信息,包括:
对所述第一码流中的层数码流进行解码得到一个层数差值,将所述一个层数差值加预设层数得到所述第一子树的层数,或者,
对所述第一码流中的层数码流进行解码得到多个层数差值,将所述多个层数差值加预设层数得到所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数。
41.根据权利要求39或40所述的解码方法,其特征在于,所述对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息,包括:
采用定长码解码方式或者变长码解码方式对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息。
42.根据权利要求40所述的解码方法,其特征在于,所述解码方法还包括:
接收预设层数码流;
对所述预设层数码流进行解码得到所述预设层数,所述预设层数码流位于所述点云的几何头码流中。
43.根据权利要求39至42中任一项所述的解码方法,其特征在于,所述对所述第一码流中的索引码流进行解码得到所述第一子树中子块的位置信息,包括:
对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引。
44.根据权利要求43所述的解码方法,其特征在于,所述对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引,包括:
若采用八叉树划分方式对所述第一子树中一个子块划分得到下一层子块,对所述索引码流中3比特码流进行解码得到一个所述下一层子块在所述一个子块中的一个位置索引;
若采用四叉树划分方式对所述第一子树中一个子块划分得到下一层子块,对所述索引码流中2比特码流进行解码得到一个所述下一层子块在所述一个子块中的一个位置索引;
若采用二叉树划分方式对所述第一子树中一个子块划分得到下一层子块,对所述索引码流中1比特码流进行解码得到一个所述下一层子块在所述一个子块中的一个位置索引。
45.根据权利要求44所述的解码方法,其特征在于,所述对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引,还包括:
若所述第一子树中最后一层子块为叶子节点块,基于第一规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
若所述第一子树中最后一层子块不为叶子节点块,基于第二规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
其中,所述第一规则和所述第二规则用于判定所述第一子树中每个子块的划分方式。
46.根据权利要求45所述的解码方法,其特征在于,所述采用第一规则对所述第一子树中每个子块进行划分,包括:
若所述第一子树中一个子块在三个方向上未达到预设值,采用八叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在二个方向上未达到预设值,采用四叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在一个方向上未达到预设值,采用二叉树划分方式对所述一个子块划分得到下一层子块。
47.根据权利要求43至46中任一项所述的解码方法,其特征在于,所述第一子树包括一层特殊层,所述对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引,包括:
对所述第一码流中的索引码流进行解码得到所述第一子树中,所述特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引。
48.根据权利要求43至46中任一项所述的解码方法,其特征在于,所述第一子树包括多层特殊层,所述对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引,包括:
对所述第一码流中的索引码流进行解码得到所述第一子树中,所述多层特殊层的两层特殊层之间,或者最后一层特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引。
49.根据权利要求43至48中任一项所述的解码方法,其特征在于,在所述第一码流中,所述层数码流位于所述索引码流之前。
50.根据权利要求38至49中任一项所述的解码方法,其特征在于,所述第一子树为对称结构,所述第一子树的一层中仅包括一个子块,或者一层中多个子块的下一层子块的数量相等。
51.根据权利要求50所述的解码方法,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
52.根据权利要求51所述的解码方法,其特征在于,所述第一子树中仅一个子块的下一层子块的数量等于2,其它子块的下一层子块的数量等于1。
53.根据权利要求51所述的解码方法,其特征在于,所述第一子树中每个子块的下一层子块的数量等于1。
54.根据权利要求50所述的解码方法,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
55.根据权利要求50所述的解码方法,其特征在于,所述第一子树的子块中仅一个子块的下一层子块的数量大于2,其它子块的下一层子块数量等于1。
56.根据权利要求36或37所述的解码方法,其特征在于,所述第一码流包括层数码流、索引码流以及分组码流,所述采用深度优先的目标解码方式对所述第一码流进行解码得到点云经过多叉树划分后的第一子树,包括:
对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息,
对所述第一码流中的索引码流进行解码得到所述第一子树中子块的位置信息,
对所述第一码流中的分组码流进行解码得到所述第一子树中非对称层的分组信息,其中,所述非对称层中不同子块的下一层子块的数量不相等,
根据所述层数信息、所述位置信息以及所述分组信息得到所述第一子树。
57.根据权利要求56所述的解码方法,其特征在于,所述对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息,包括:
对所述第一码流中的层数码流进行解码得到所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
58.根据权利要求57所述的解码方法,其特征在于,所述对所述第一码流中的索引码流进行解码得到所述第一子树中子块的位置信息,包括:
对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引。
59.根据权利要求58所述的解码方法,其特征在于,所述对所述第一码流中的分组码流进行解码得到所述第一子树中非对称层的分组信息,包括:
对所述第一码流中的分组码流进行解码得到所述非对称层中每个子块的下一层子块数量。
60.根据权利要求59所述的解码方法,其特征在于,在所述第一码流中,所述分组码流位于所述索引码流之前,所述层数码流位于所述分组码流之前。
61.根据权利要求56至60中任一项所述的解码方法,其特征在于,所述第一子树为非对称结构,所述第一子树包括至少一层非对称层。
62.根据权利要求61所述的解码方法,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
63.根据权利要求61所述的解码方法,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
64.根据权利要求36至63中任一项所述的解码方法,其特征在于,所述解码方法还包括:
接收第一标识码流;
对所述第一标识码流进行解码得到第一标识,所述第一标识用于标识所述目标解码方式。
65.根据权利要求64所述的解码方法,其特征在于,对所述第一标识码流进行解码得到第一标识,包括:
采用定长码解码方式或者变长码解码方式对所述第一标识码流进行解码得到所述第一标识。
66.根据权利要求64或65所述的解码方法,其特征在于,所述第一标识码流位于所述第一码流之前;和/或,
所述第一标识码流位于所述点云的几何头码流中。
67.根据权利要求64或65所述的解码方法,其特征在于,所述解码方法还包括:
接收第二标识码流;
对所述第二标识码流进行解码得到第二标识,所述第二标识用于标识解码方式由广度优先切换至深度优先。
68.根据权利要求67所述的解码方法,其特征在于,所述第二标识码流位于所述第一标识码流之前。
69.根据权利要求36至68中任一项所述的解码方法,其特征在于,所述解码方法还包括:
接收第二码流,按照广度优先的解码顺序对所述第二码流进行解码得到所述点云中除所述第一子树以外的其它子块。
70.根据权利要求69所述的解码方法,其特征在于,所述按照广度优先的解码顺序对所述第二码流进行解码得到所述点云中除所述第一子树以外的其它子块,包括:
对所述第二码流解码得到所述点云中的第二子块,在广度优先的解码顺序上,所述第二子块位于所述第一子树的根节点块之后。
71.一种点云的编码装置,其特征在于,包括:处理器,
所述处理器用于:确定点云经过多叉树划分后的第一子树,其中,所述第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,所述第一子树的每个子块均包括点云点,N为根据所述多叉树划分方式确定的正整数;
采用深度优先的目标编码方式对所述第一子树进行编码以形成所述第一子树的第一码流。
72.根据权利要求71所述的编码装置,其特征在于,所述多叉树划分包括:八叉树划分、四叉树划分、二叉树划分中的一种或多种,N≤2。
73.根据权利要求71或72所述的编码装置,其特征在于,所述第一子树为对称结构,所述第一子树的一层中仅包括一个子块,或者一层中多个子块的下一层子块的数量相等。
74.根据权利要求73所述的编码装置,其特征在于,所述处理器用于:
对所述第一子树的层数信息以及所述第一子树中子块的位置信息进行编码以形成所述第一子树的第一码流。
75.根据权利要求74所述的编码装置,其特征在于,所述处理器用于:
若所述第一子树中不包括特殊层,对所述第一子树的层数进行编码以形成所述第一码流中的层数码流;或者,
若所述第一子树中包括特殊层,对所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数进行编码以形成所述第一码流中的层数码流;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
76.根据权利要求75所述的编码装置,其特征在于,所述处理器用于:
将所述层数减去预设层数得到层数差值,对所述层数差值进行编码以形成所述第一码流中的层数码流。
77.根据权利要求76所述的编码装置,其特征在于,所述处理器用于:
采用定长码编码方式或者变长码编码方式对所述层数差值进行编码以形成所述第一码流中的层数码流。
78.根据权利要求76或77所述的编码装置,其特征在于,所述处理器还用于:
对所述预设层数进行编码以形成预设层数码流,所述预设层数码流位于所述点云的几何头码流中。
79.根据权利要求75至78中任一项所述的编码装置,其特征在于,所述处理器用于:
对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成所述第一码流中的索引码流。
80.根据权利要求79所述的编码装置,其特征在于,所述处理器用于:
若采用八叉树划分方式对所述第一子树中一个子块划分得到下一层子块,一个下一层子块在所述一个子块中的一个位置索引编码为3比特;
若采用四叉树划分方式对所述第一子树中一个子块划分得到下一层子块,一个下一层子块在所述一个子块中的一个位置索引编码为2比特;
若采用二叉树划分方式对所述第一子树中一个子块划分得到下一层子块,一个下一层子块在所述一个子块中的一个位置索引编码为1比特。
81.根据权利要求80所述的编码装置,其特征在于,所述处理器用于:
若所述第一子树中最后一层子块为叶子节点块,基于第一规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
若所述第一子树中最后一层子块不为叶子节点块,基于第二规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
其中,所述第一规则和所述第二规则用于判定所述第一子树中每个子块的划分方式。
82.根据权利要求81所述的编码装置,其特征在于,所述处理器用于:
若所述第一子树中一个子块在三个方向上未达到预设值,采用八叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在二个方向上未达到预设值,采用四叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在一个方向上未达到预设值,采用二叉树划分方式对所述一个子块划分得到下一层子块。
83.根据权利要求79至82中任一项所述的编码装置,其特征在于,若所述第一子树包括一层特殊层,且所述特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的位置索引为同一位置索引;
所述处理器用于:对所述特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引进行编码以形成所述第一码流中的索引码流。
84.根据权利要求79至82中任一项所述的编码装置,其特征在于,若所述第一子树包括多层特殊层,且所述多层特殊层的两层特殊层之间,或者最后一层特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的位置索引为同一位置索引;
所述处理器用于:对所述第一子树中的两层特殊层之间,或者最后一层特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引进行编码。
85.根据权利要求79至84中任一项所述的编码装置,其特征在于,在所述第一码流中,所述层数码流位于所述索引码流之前。
86.根据权利要求73至85中任一项所述的编码装置,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
87.根据权利要求86所述的编码装置,其特征在于,所述第一子树中仅一个子块的下一层子块的数量等于2,其它子块的下一层子块的数量等于1。
88.根据权利要求86所述的编码装置,其特征在于,所述第一子树中每个子块的下一层子块的数量等于1。
89.根据权利要求73至85中任一项所述的编码装置,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
90.根据权利要求73至85中任一项所述的编码装置,其特征在于,所述第一子树的子块中仅一个子块的下一层子块的数量大于2,其它子块的下一层子块数量等于1。
91.根据权利要求71或72所述的编码装置,其特征在于,所述第一子树为非对称结构,所述第一子树包括至少一层非对称层,所述非对称层中不同子块的下一层子块的数量不相等。
92.根据权利要求91所述的编码装置,其特征在于,所述处理器用于:
对所述第一子树的层数信息、所述第一子树中子块的位置信息、以及所述第一子树中非对称层的分组信息进行编码以形成所述第一子树的第一码流。
93.根据权利要求92所述的编码装置,其特征在于,所述处理器用于:
对所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数进行编码以形成所述第一码流中的层数码流;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
94.根据权利要求93所述的编码装置,其特征在于,所述处理器用于:
对所述第一子树中每个子块的下一层子块在每个子块中的位置索引进行编码以形成所述第一码流中的索引码流。
95.根据权利要求94所述的编码装置,其特征在于,所述处理器用于:
对所述非对称层中每个子块的下一层子块在每个子块中的位置索引进行编码之前,对所述非对称层中每个子块的下一层子块数量进行编码,以形成所述第一码流中的分组码流。
96.根据权利要求95所述的编码装置,其特征在于,在所述第一码流中,所述分组码流位于所述索引码流之前,所述层数码流位于所述分组码流之前。
97.根据权利要求91至96中任一项所述的编码装置,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
98.根据权利要求91至96中任一项所述的编码装置,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
99.根据权利要求71至98中任一项所述的编码装置,其特征在于,所述处理器还用于:
对第一标识进行编码形成第一标识码流,所述第一标识用于标识所述目标编码方式。
100.根据权利要求99所述的编码装置,其特征在于,所述第一标识码流为采用定长码或者变长码编码方式编码得到的码流。
101.根据权利要求99或100所述的编码装置,其特征在于,所述第一标识码流位于所述第一子树的第一码流之前;和/或,
所述第一标识码流位于所述点云的几何头码流中。
102.根据权利要求99或100所述的编码装置,其特征在于,所述处理器还用于:
对第二标识进行编码形成第二标识码流,所述第二标识用于标识编码方式由广度优先切换至深度优先。
103.根据权利要求102所述的编码装置,其特征在于,所述第二标识码流位于所述第一标识码流之前。
104.根据权利要求71至103中任一项所述的编码装置,其特征在于,所述处理器还用于:
按照广度优先的编码顺序对所述点云中除所述第一子树以外的其它子块进行编码以形成第二码流。
105.根据权利要求104所述的编码装置,其特征在于,所述处理器用于:
对所述点云中第二子块进行编码,在广度优先的编码顺序上,所述第二子块位于所述第一子树的根节点块之后。
106.一种点云的解码装置,其特征在于,包括:处理器,
所述处理器用于:接收第一码流;
采用深度优先的目标解码方式对所述第一码流进行解码得到点云经过多叉树划分后的第一子树;
其中,所述第一子树的子块中至多两个子块的下一层子块的数量大于N,其它子块的下一层子块的数量均小于等于N,所述第一子树的每个子块均包括点云点。
107.根据权利要求106所述的解码装置,其特征在于,所述多叉树划分包括:八叉树划分、四叉树划分、二叉树划分中的一种或多种,N≤2。
108.根据权利要求106或107所述的解码装置,其特征在于,所述第一码流包括层数码流以及索引码流,所述处理器用于:
对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息,
对所述第一码流中的索引码流进行解码得到所述第一子树中子块的位置信息,
根据所述层数信息以及所述位置信息得到所述第一子树。
109.根据权利要求108所述的解码装置,其特征在于,所述处理器用于:
对所述第一码流中的层数码流进行解码得到所述第一子树的层数;或者,
对所述第一码流中的层数码流进行解码得到所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
110.根据权利要求108所述的解码装置,其特征在于,所述处理器用于:
对所述第一码流中的层数码流进行解码得到一个层数差值,将所述一个层数差值加预设层数得到所述第一子树的层数,或者,
对所述第一码流中的层数码流进行解码得到多个层数差值,将所述多个层数差值加预设层数得到所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数。
111.根据权利要求109或110所述的解码装置,其特征在于,所述处理器用于:
采用定长码解码方式或者变长码解码方式对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息。
112.根据权利要求110所述的解码装置,其特征在于,所述处理器还用于:
接收预设层数码流;
对所述预设层数码流进行解码得到所述预设层数,所述预设层数码流位于所述点云的几何头码流中。
113.根据权利要求109至112中任一项所述的解码装置,其特征在于,所述处理器用于:
对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引。
114.根据权利要求113所述的解码装置,其特征在于,所述处理器用于:
若采用八叉树划分方式对所述第一子树中一个子块划分得到下一层子块,对所述索引码流中3比特码流进行解码得到一个所述下一层子块在所述一个子块中的一个位置索引;
若采用四叉树划分方式对所述第一子树中一个子块划分得到下一层子块,对所述索引码流中2比特码流进行解码得到一个所述下一层子块在所述一个子块中的一个位置索引;
若采用二叉树划分方式对所述第一子树中一个子块划分得到下一层子块,对所述索引码流中1比特码流进行解码得到一个所述下一层子块在所述一个子块中的一个位置索引。
115.根据权利要求114所述的解码装置,其特征在于,所述处理器还用于:
若所述第一子树中最后一层子块为叶子节点块,基于第一规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
若所述第一子树中最后一层子块不为叶子节点块,基于第二规则对所述第一子树中每个子块进行划分,得到每个子块的下一层子块;
其中,所述第一规则和所述第二规则用于判定所述第一子树中每个子块的划分方式。
116.根据权利要求115所述的解码装置,其特征在于,所述处理器用于:
若所述第一子树中一个子块在三个方向上未达到预设值,采用八叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在二个方向上未达到预设值,采用四叉树划分方式对所述一个子块划分得到下一层子块;
若所述第一子树中一个子块在一个方向上未达到预设值,采用二叉树划分方式对所述一个子块划分得到下一层子块。
117.根据权利要求113至116中任一项所述的解码装置,其特征在于,所述第一子树包括一层特殊层,所述处理器用于:
对所述第一码流中的索引码流进行解码得到所述第一子树中,所述特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引。
118.根据权利要求113至116中任一项所述的解码装置,其特征在于,所述第一子树包括多层特殊层,所述处理器用于:
对所述第一码流中的索引码流进行解码得到所述第一子树中,所述多层特殊层的两层特殊层之间,或者最后一层特殊层至所述第一子树的最后一层之间,每层多个子块的下一层子块在所述每层多个子块中的同一位置索引。
119.根据权利要求113至118中任一项所述的解码装置,其特征在于,在所述第一码流中,所述层数码流位于所述索引码流之前。
120.根据权利要求108至119中任一项所述的解码装置,其特征在于,所述第一子树为对称结构,所述第一子树的一层中仅包括一个子块,或者一层中多个子块的下一层子块的数量相等。
121.根据权利要求120所述的解码装置,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
122.根据权利要求121所述的解码装置,其特征在于,所述第一子树中仅一个子块的下一层子块的数量等于2,其它子块的下一层子块的数量等于1。
123.根据权利要求121所述的解码装置,其特征在于,所述第一子树中每个子块的下一层子块的数量等于1。
124.根据权利要求120所述的解码装置,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
125.根据权利要求120所述的解码装置,其特征在于,所述第一子树的子块中仅一个子块的下一层子块的数量大于2,其它子块的下一层子块数量等于1。
126.根据权利要求106或107所述的解码装置,其特征在于,所述第一码流包括层数码流、索引码流以及分组码流,所述处理器用于:
对所述第一码流中的层数码流进行解码得到所述第一子树的层数信息,
对所述第一码流中的索引码流进行解码得到所述第一子树中子块的位置信息,
对所述第一码流中的分组码流进行解码得到所述第一子树中非对称层的分组信息,其中,所述非对称层中不同子块的下一层子块的数量不相等,
根据所述层数信息、所述位置信息以及所述分组信息得到所述第一子树。
127.根据权利要求126所述的解码装置,其特征在于,所述处理器用于:
对所述第一码流中的层数码流进行解码得到所述第一子树的第零层至第一层特殊层之间的层数、相邻两层特殊层之间的层数以及最后一层特殊层至所述第一子树中的最后一层之间的层数;
其中,所述特殊层中子块的数量与其上一层中子块的数量不一致。
128.根据权利要求127所述的解码装置,其特征在于,所述处理器用于:
对所述第一码流中的索引码流进行解码得到所述第一子树中每个子块的下一层子块在所述每个子块中的位置索引。
129.根据权利要求128所述的解码装置,其特征在于,所述处理器用于:
对所述第一码流中的分组码流进行解码得到所述非对称层中每个子块的下一层子块数量。
130.根据权利要求129所述的解码装置,其特征在于,在所述第一码流中,所述分组码流位于所述索引码流之前,所述层数码流位于所述分组码流之前。
131.根据权利要求126至130中任一项所述的解码装置,其特征在于,所述第一子树为非对称结构,所述第一子树包括至少一层非对称层。
132.根据权利要求131所述的解码装置,其特征在于,所述第一子树中每个子块的下一层子块数量均小于等于2。
133.根据权利要求131所述的解码装置,其特征在于,所述第一子树中至多两个子块的下一层子块的数量大于2,所述至多两个子块的下一层子块为所述第一子树的子块。
134.根据权利要求106至133中任一项所述的解码装置,其特征在于,所述处理器还用于:
接收第一标识码流;
对所述第一标识码流进行解码得到第一标识,所述第一标识用于标识所述目标解码方式。
135.根据权利要求134所述的解码装置,其特征在于,所述处理器用于:
采用定长码解码方式或者变长码解码方式对所述第一标识码流进行解码得到所述第一标识。
136.根据权利要求134或135所述的解码装置,其特征在于,所述第一标识码流位于所述第一码流之前;和/或,
所述第一标识码流位于所述点云的几何头码流中。
137.根据权利要求134或135所述的解码装置,其特征在于,所述处理器还用于:
接收第二标识码流;
对所述第二标识码流进行解码得到第二标识,所述第二标识用于标识解码方式由广度优先切换至深度优先。
138.根据权利要求137所述的解码装置,其特征在于,所述第二标识码流位于所述第一标识码流之前。
139.根据权利要求106至138中任一项所述的解码装置,其特征在于,所述处理器还用于:
接收第二码流,按照广度优先的解码顺序对所述第二码流进行解码得到所述点云中除所述第一子树以外的其它子块。
140.根据权利要求139所述的解码装置,其特征在于,所述处理器用于:
对所述第二码流解码得到所述点云中的第二子块,在广度优先的解码顺序上,所述第二子块位于所述第一子树的根节点块之后。
141.一种计算机可读存储介质,其特征在于,用于存储程序指令,所述程序指令被计算机运行时,所述计算机执行如权利要求1至35中任一项所述的编码方法。
142.一种计算机可读存储介质,其特征在于,用于存储程序指令,所述程序指令被计算机运行时,所述计算机执行如权利要求36至70中任一项所述的解码方法。
CN202080004105.8A 2020-03-31 2020-03-31 点云的编解码方法和装置 Pending CN112514397A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/082608 WO2021196038A1 (zh) 2020-03-31 2020-03-31 点云的编解码方法和装置

Publications (1)

Publication Number Publication Date
CN112514397A true CN112514397A (zh) 2021-03-16

Family

ID=74952812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080004105.8A Pending CN112514397A (zh) 2020-03-31 2020-03-31 点云的编解码方法和装置

Country Status (2)

Country Link
CN (1) CN112514397A (zh)
WO (1) WO2021196038A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112991549A (zh) * 2021-03-31 2021-06-18 上海商汤临港智能科技有限公司 一种点云数据处理方法、装置、计算机设备和存储介质
WO2022258010A1 (zh) * 2021-06-11 2022-12-15 维沃移动通信有限公司 点云编码处理方法、解码处理方法及装置
WO2022257972A1 (zh) * 2021-06-11 2022-12-15 维沃移动通信有限公司 编码、解码控制方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104040592A (zh) * 2011-11-07 2014-09-10 汤姆逊许可公司 预测位置编码
CN106327577A (zh) * 2016-08-17 2017-01-11 中国地质大学(武汉) 基于局部曲率熵和四叉树结构的三维地形曲面优化方法
WO2019078292A1 (ja) * 2017-10-19 2019-04-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019103009A1 (ja) * 2017-11-22 2019-05-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3514969A1 (en) * 2018-01-18 2019-07-24 BlackBerry Limited Methods and devices using direct coding in point cloud compression

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776111B2 (en) * 2017-07-12 2020-09-15 Topcon Positioning Systems, Inc. Point cloud data method and apparatus
US10796458B2 (en) * 2018-04-23 2020-10-06 Qualcomm Incorporated Compression of point clouds via a novel hybrid coder
JP7241450B2 (ja) * 2018-09-05 2023-03-17 イントリンシック イノベーション リミテッド ライアビリティー カンパニー 機械概念理解のための方法及びシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104040592A (zh) * 2011-11-07 2014-09-10 汤姆逊许可公司 预测位置编码
CN106327577A (zh) * 2016-08-17 2017-01-11 中国地质大学(武汉) 基于局部曲率熵和四叉树结构的三维地形曲面优化方法
WO2019078292A1 (ja) * 2017-10-19 2019-04-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019103009A1 (ja) * 2017-11-22 2019-05-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3514969A1 (en) * 2018-01-18 2019-07-24 BlackBerry Limited Methods and devices using direct coding in point cloud compression

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112991549A (zh) * 2021-03-31 2021-06-18 上海商汤临港智能科技有限公司 一种点云数据处理方法、装置、计算机设备和存储介质
WO2022258010A1 (zh) * 2021-06-11 2022-12-15 维沃移动通信有限公司 点云编码处理方法、解码处理方法及装置
WO2022257972A1 (zh) * 2021-06-11 2022-12-15 维沃移动通信有限公司 编码、解码控制方法及装置

Also Published As

Publication number Publication date
WO2021196038A1 (zh) 2021-10-07

Similar Documents

Publication Publication Date Title
US9532056B2 (en) Method for adaptive entropy coding of tree structures
CN107835421B (zh) 对视频编码的方法和设备以及对视频解码的方法和设备
US20220108494A1 (en) Method, device, and storage medium for point cloud processing and decoding
CN112514397A (zh) 点云的编解码方法和装置
WO2020072665A1 (en) Hierarchical tree attribute coding in point cloud coding
WO2021196029A1 (zh) 一种用于点云编码、解码的方法和设备
WO2021232251A1 (zh) 一种点云编解码方法、编码器、解码器及存储介质
US20120250758A1 (en) Method and apparatus for frame memory compression
JP6178798B2 (ja) 終了可能な空間ツリー型位置符号化および復号
WO2021109153A1 (zh) 一种用于点云处理、解码的方法、设备及存储介质
CN111699690A (zh) 点云的处理方法和装置
CA3153825A1 (en) Methods and devices for tree switching in point cloud compression
CN112740707A (zh) 点云的编解码方法和装置
WO2024037091A1 (zh) 一种点云处理方法、装置及计算机设备、存储介质
WO2024037244A1 (zh) 点云数据的解码方法、编码方法、装置、存储介质及设备
WO2023241107A1 (zh) 点云处理方法、装置及计算机设备、存储介质
CN113906681B (zh) 点云数据的编解码方法、系统和存储介质
WO2021103013A1 (zh) 一种数据编码、数据解码方法、设备及存储介质
US20220392117A1 (en) Data compression and decompression system and method thereof
WO2023028177A1 (en) Attribute coding in geometry point cloud coding
CN115102934A (zh) 点云数据的解码方法、编码方法、装置、设备及存储介质
WO2022141461A1 (zh) 点云编解码方法、编码器、解码器以及计算机存储介质
CN113453002B (zh) 量化与熵编码方法及装置
WO2020248562A1 (zh) 一种用于点云处理、解码的方法、设备及存储介质
WO2023249999A1 (en) System and method for geometry point cloud coding

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