信息处理装置和方法与流程

文档序号:20788600发布日期:2020-05-19 21:57阅读:155来源:国知局
信息处理装置和方法与流程

本公开内容涉及信息处理装置和方法,并且更具体地涉及被设计成能够部分地控制可以被设为树结构的数据组的分辨率的信息处理装置和方法。



背景技术:

用于压缩点云或网格的顶点数据的常规方法的示例包括使用诸如八叉树的体素的量化,该点云表示具有关于点组的位置信息、属性信息等的三维结构,该网格由顶点、边和平面形成并且使用多边形表示限定三维形状(例如,参见非专利文献1)。

引用列表

非专利文献

非专利文献1:r.mekuria(ieee学生会员)、k.blom,p.cesar.(ieee会员)的“design,implementationandevaluationofapointcloudcodecfortele-immersivevideo”,tcsvt_paper_submitted_february.pdf



技术实现要素:

本发明要解决的问题

然而,在八叉树模式中,均以相同的分辨率表示所有点。因此,当一些区域中的点的分辨率与点云中的其他区域的分辨率不同时,难以应用八叉树编码。

鉴于这样的情况提出了本公开内容,并且本公开内容将使得能够部分地控制可以被设为树结构的数据组的分辨率。

问题的解决方案

本技术的一个方面的信息处理装置是一种信息处理装置,该信息处理装置包括:编码单元,其对作为八叉树模式的数据的八叉树模式数据进行编码,以生成包含以下深度控制信息的位流,该深度控制信息基于指定八叉树模式的深度的信息指示将在与最低级别不同的级别处形成叶节点。

本技术的一个方面的信息处理方法是一种信息处理方法,该方法包括:对作为八叉树模式的数据的八叉树模式数据进行编码,以生成以下深度控制信息的位流,该深度控制信息基于指定八叉树模式的深度的信息指示将在与最低级别不同的级别处形成叶节点。

本技术的另一方面的信息处理装置是一种信息处理装置,该信息处理装置包括:解码单元,其对位流进行解码,基于以下深度控制信息来构造包括与最低级别不同的级别处的叶节点的八叉树模式,该深度控制信息指示将在与基于指定八叉树模式的深度的信息的最低级别不同的级别处形成叶节点。

本技术的另一方面的信息处理方法是一种信息处理方法,该方法包括:对位流进行解码,以基于以下深度控制信息来构造包括与最低级别不同的级别处的叶节点的八叉树模式,该深度控制信息指示将在与基于指定八叉树模式的深度的信息的最低级别不同的级别处形成叶节点。

在本技术的一个方面的信息处理装置和方法中,对作为八叉树模式的数据的八叉树模式数据进行编码,使得生成包含以下深度控制信息的位流,该深度控制信息指示将在与基于指定八叉树模式的深度的信息的最低级别不同的级别处形成叶节点。

在本技术的另一方面的信息处理装置和方法中,对位流进行解码,并且基于以下深度控制信息来构造包括与最低级别不同的级别处的叶节点的八叉树模式,该数据控制信息指示将在与基于指定八叉树模式的深度的信息的最低级别不同的级别处形成叶节点。

本发明的效果

根据本公开内容,可以处理信息。特别地,可以部分地控制可以设为树结构的数据组的分辨率。

附图说明

图1是用于说明点云的示例的图。

图2是用于说明对八叉树模式的深度控制的示例的图。

图3是示出编码装置的主要示例配置的框图。

图4是用于说明编码的示例概述的图。

图5是用于说明深度控制信息的示例的图。

图6是示出编码单元的主要示例配置的框图。

图7是用于说明编码处理中的示例流程的流程图。

图8是用于说明几何数据编码处理中的示例流程的流程图。

图9是示出编码单元的主要示例配置的框图。

图10是用于说明几何数据编码处理中的示例流程的流程图。

图11是示出解码装置的主要示例配置的框图。

图12是示出解码单元的主要示例配置的框图。

图13是用于说明解码处理中的示例流程的流程图。

图14是用于说明位流解码处理中的示例流程的流程图。

图15是用于说明深度控制信息的示例的图。

图16是示出编码单元的主要示例配置的框图。

图17是用于说明几何数据编码处理中的示例流程的流程图。

图18是用于说明从图17继续的几何数据编码处理中的示例流程的流程图。

图19是示出编码单元的主要示例配置的框图。

图20是用于说明几何数据编码处理中的示例流程的流程图。

图21是用于说明从图20继续的几何数据编码处理中的示例流程的流程图。

图22是示出解码单元的主要示例配置的框图。

图23是用于说明位流解码处理中的示例流程的流程图。

图24是用于说明深度控制信息的示例的图。

图25是示出编码单元的主要示例配置的框图。

图26是用于说明几何数据编码处理中的示例流程的流程图。

图27是示出解码单元的主要示例配置的框图。

图28是用于说明位流解码处理中的示例流程的流程图。

图29是示出计算机的主要示例配置的框图。

具体实施方式

以下是用于执行本公开内容的模式的描述(这些模式在下文中将被称为实施方式)。注意,将按以下顺序进行说明。

1.对八叉树模式的部分深度控制

2.第一实施方式(末端(terminal)标识位模式)

3.第二实施方式(end_of_node_one_bit)

4.第三实施方式(split_voxel_flag)

5.其他方面

<1.对八叉树模式的部分深度控制>

<点云>

已经有了诸如点云和网格的数据,点云表示具有关于点组的位置信息、属性信息等的三维结构,网格由顶点、边和平面形成并且使用多边形表示来限定三维形状。

在点云的情况下,例如,如图1的a所示的三维结构被表示为如图1的b所示的大量的点(点组)(点数据)的集合。即,点云的数据(也被称为点云数据)由关于该点组中的相应点的位置信息和属性信息(例如,颜色等)形成。因此,数据结构相对简单,并且可以通过使用足够多的点以足够高的准确度来表示任何期望的三维结构。

然而,这样的点云、网格等的数据量相对较大。因此,需要通过编码等来压缩数据量。例如,已经考虑使用诸如八叉树或kd树的体素的编码方法。体素是用于量化关于编码目标的位置信息的数据结构。

<八叉树编码>

这样的体素结构的数据(该数据也被称为体素数据)是单层数据。即,所有体素都具有相同的大小。八叉树编码用于将这样的体素数据转换成最大八叉树结构(也被称为八叉树模式),在该八叉树结构中,其中存在点的空间被递归地划分成2×2×2空间(x方向、y方向和z方向中的每个方向上的两个划分空间)。由于可以以这种方式将不存在点的空间进行整合(作为更高级别),因此可以减少信息量。

即,在八叉树模式中,将存在点的区域视为节点。每个节点设置有位串,该位串指示是否存在针对通过将区域(空间)划分成2×2×2区域(八个划分)获得的每个区域(空间)的点。例如,每个节点设置有8位位串,其中每个区域中的点的存在/不存在由一位来表示(值“0”指示不存在点,值“1”指示存在点)。仅针对与位串中的值为“1”的位对应的区域形成子节点。即,最大为八叉树。当重复这样的树划分并且级别达到由参数集等设置的深度(该级别为最低级别)时,树划分结束。

即,在八叉树模式中,仅在与参数集等中设置的八叉树模式的深度对应的最低级别处形成不具有子节点的节点(叶节点)。因此,如图2的a所示的树结构中那样,对于存在点的所有区域,该八叉树模式的深度(级别的数量)都是相同的。换言之,所有点都用相同的分辨率来表示。

同时,需要用于部分地控制点云中的点的分辨率的功能。例如,部分控制是使所有点的分辨率不一致。例如,使一些点的分辨率不同于其他点的分辨率。

例如,当感兴趣区域(roi)存在于点云中时,可以想到的是,使感兴趣区域中的点的分辨率高于其他区域中的点的分辨率。以这种方式,可以根据需求提高主观图像质量。此外,还可以提高编码效率。

此外,可能存在以下情况:例如,点与体素栅格匹配,并且可以在不提高分辨率的情况下表示这些点(即使分辨率低于其他点)。以这种方式,可以防止八叉树模式中不必要节点的数量增加,并且可以防止编码效率的降低。

此外,可能存在以下情况:例如,将八叉树编码和一些其他编码工具组合,并且通过其他编码工具使一些节点具有更高的分辨率。

然而,如上所述,仅在八叉树模式中的最低级别处形成叶节点,并且因此,不能表示对点的分辨率的这样的部分控制。即,难以部分地控制可以设为树结构的数据组的分辨率。换言之,当如上所述的那样部分地控制点云中的点的分辨率时,难以应用八叉树编码,这可能导致较低的编码效率。即,当部分地控制数据组的分辨率时,难以将数据组设为树结构,这可能导致较低的编码效率。

<深度控制>

因此,对作为八叉树模式的数据的八叉树模式数据进行编码,使得生成包含以下“深度控制信息”的位流,该“深度控制信息”指示将在与基于指定八叉树模式的深度的信息的最低级别不同的级别处形成叶节点。

例如,信息处理装置包括编码单元,该编码单元对作为八叉树模式的数据的八叉树模式数据进行编码,以生成包含以下“深度控制信息”的位流,该“深度控制信息”基于指定八叉树模式的深度的信息指示将在与最低级别不同的级别处形成叶节点。

以这种方式,例如,如图2的b所示的树结构中那样,可以部分地控制八叉树模式的深度。即,可以部分地控制在要经受八叉树编码的点云中的点的分辨率。即,可以部分地控制可以被设为树结构的数据组的分辨率。

此外,换言之,当部分地控制点云中的点的分辨率时,可以应用八叉树编码,并且可以防止编码效率的降低。即,当部分地控制数据组的分辨率时,也可以将该数据组设为树状结构,并且可以防止编码效率的降低。

注意,在下面的描述中,将说明将本技术应用于八叉树模式数据的示例情况。然而,例如,本技术可以应用于具有诸如kd树、二叉树结构或四叉树结构的任何适当的树结构的数据。此外,在下面的描述中,将说明点云数据(通过量化点云数据而生成的体素数据)的示例。然而,该数据可以具有任何适当的内容,只要可以部分控制数据分辨率即可。例如,该数据可以是与诸如网格的三维结构有关的某种其他类型的数据,或者可以是与除三维结构之外的结构有关的数据。

<编码装置>

图3是示出作为应用本技术的信息处理装置的实施方式的编码装置的主要示例配置的框图。图3所示的编码装置100使用体素对已经被输入为编码目标的点云数据进行编码。编码装置100输出所获得的编码数据等。在这样做时,编码装置100通过如下所述的应用本技术的方法来执行编码。

如图3所示,编码装置100包括控制单元101、预处理单元111、边界框设置单元112、体素设置单元113和编码单元114。

控制单元101执行与对编码装置100中的相应处理单元的控制有关的处理。例如,控制单元101控制由相应处理单元进行的处理的执行或跳过(省略)。例如,控制单元101基于预定控制信息执行这样的控制。通过这样做,控制单元101可以防止执行不必要的处理,并且减少负荷的增加。

控制单元101可以具有任何配置。例如,控制单元101包括中央处理单元(cpu)、只读存储器(rom)、随机存取存储器(ram)等,并且可以在cpu将存储在rom等中的程序和数据加载到ram中并且执行程序时执行处理。

预处理单元111由控制单元101控制,对输入至编码装置100的点云数据(编码目标)执行预定处理作为预处理,并且将经处理的数据提供给边界框设置单元112。注意,要编码的点云可以是运动图像或静止图像。

例如,根据允许或禁止预处理的执行的控制信息,当允许(不禁止)执行预处理时,控制单元101使预处理单元111执行预处理。此外,例如,根据指示允许或禁止执行预处理的编码目标范围的控制信息,控制单元101使预处理单元111对被允许(不被禁止)执行预处理的编码目标执行预处理。此外,例如,根据指明被允许或禁止执行的处理的内容的控制信息,控制单元101使预处理单元111执行被允许(不被禁止)执行的处理。通过这样做,控制单元101可以防止执行不必要的预处理,并且减少负荷的增加。

注意,预处理的内容可以是任何适当的内容。例如,预处理单元111可以执行降噪处理作为预处理,或者可以执行改变分辨率(点的数量)的处理作为预处理。替选地,例如,可以更新相应点的布置,使得点组的密度相等,或者提供期望的偏差。此外,例如,可以将诸如包括深度信息的图像信息的非点云数据输入至编码装置100,并且预处理单元111可以将输入数据转换成点云数据作为预处理。

预处理单元111可以具有任何配置。例如,预处理单元111可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中并且执行程序以执行预处理。

边界框设置单元112由控制单元101控制,并且执行与用于归一化关于编码目标的位置信息的边界框的设置有关的处理。

例如,根据允许或禁止边界框的设置的控制信息,当允许(不禁止)设置边界框时,控制单元101使边界框设置单元112设置边界框。此外,例如,根据指示允许或禁止设置边界框的编码目标范围的控制信息,控制单元101使边界框设置单元112针对被允许(不被禁止)设置边界框的编码目标来设置边界框。此外,例如,根据关于在设置边界框时使用的参数的允许或禁止的控制信息,控制单元101使边界框设置单元112使用被允许(不被禁止)使用的参数来设置边界框。通过这样做,控制单元101可以防止设置不必要的边界框以及防止使用不必要的参数,并且减少负荷的增加。

例如,边界框设置单元112针对要编码的每个对象设置边界框。例如,如图4的a所示,当由点云数据表示对象131和对象132时,边界框设置单元112分别设置边界框141和边界框142以包含对象131和对象132,如图4的b所示。返回参照图3,在设置边界框之后,边界框设置单元112将关于边界框的信息提供给体素设置单元113。

注意,边界框设置单元112可以具有任何配置。例如,边界框设置单元112可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与设置边界框有关的处理。

体素设置单元113由控制单元101控制,并且执行与用于量化关于编码目标的位置信息的体素的设置有关的处理。

例如,根据允许或禁止体素的设置的控制信息,当允许(不禁止)设置体素时,控制单元101使体素设置单元113设置体素。此外,例如,根据指示被允许或禁止设置体素的编码对象范围的控制信息,控制单元101使体素设置单元113针对被允许(不被禁止)设置体素的编码对象来设置体素。此外,例如,根据允许或禁止关于在设置体素时使用的参数的控制信息,控制单元101使体素设置单元113使用被允许(不被禁止)使用的参数来设置体素。通过这样做,控制单元101可以防止设置不必要的体素以及防止使用不必要的参数,并且减少负荷的增加。

例如,体素设置单元113在由边界框设置单元112设置的边界框中设置体素。例如,体素设置单元113通过划分边界框141来设置体素151,如图4的c所示。即,体素设置单元113对具有体素的边界框中的点云数据进行量化(或体素化)。注意,当存在多个边界框时,体素设置单元113针对每个边界框对点云数据进行体素化。即,在图4的b所示的示例的情况下,体素设置单元113对边界框142执行类似的处理。返回参照图3,在如上所述设置体素之后,体素设置单元113向编码单元114提供经体素化的点云数据(也被称为体素数据)(关于用于量化位置信息的数据结构的信息)、属性信息等。

注意,体素设置单元113可以具有任何配置。例如,体素设置单元113可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中并且执行程序,以执行与设置体素有关的处理。

编码单元114由控制单元101控制,并且执行与编码有关的处理。

例如,根据允许或禁止编码的控制信息,当允许(不禁止)编码时,控制单元101使编码单元114对体素数据进行编码。此外,例如,根据指示被允许或禁止编码的编码目标范围的控制信息,控制单元101使编码单元114对被允许(不被禁止)对体素数据进行编码的编码目标执行编码。通过这样做,控制单元101可以防止不必要的编码,并且减少负荷的增加。

编码单元114例如对通过量化点云数据而获得的体素数据(例如,由体素设置单元113生成的体素数据,如图4的c所示)进行编码,并且生成编码数据(位流)。图4的d示出了编码信号序列的示例状态。

编码单元114例如还适当地对除点云数据之外的相关信息(例如,控制信息)进行编码,并且将编码的信息存储到头部、参数集等中。例如,编码单元114将指定八叉树模式的深度(级别的数量)的信息存储到头部、参数集等中。

例如,编码单元114将以上各种信息的位流彼此关联。此处,术语“关联”是指在处理数据时使能使用其他数据(或到其他数据的链接)。即,彼此相关联的数据片段可以被整合为一个数据片段,或者可以被视为单独的数据片段。例如,可以通过与编码数据不同的传输路径来传送与编码数据相关联的控制信息。此外,例如,与编码数据相关联的控制信息可以被记录在与编码数据不同的记录介质中(或记录在同一记录介质的不同记录区域中)。注意,该“关联”可以适用于某些数据,而不是整个数据。例如,对于任何适当的单元,例如对于多个帧、每个帧或每个帧中的某个部分,可以将编码数据和控制信息彼此关联。

编码单元114将通过这样的编码获得的编码数据(位流)输出至编码装置100的外部。从编码装置100输出的数据(编码数据和控制信息)例如可以由处理单元(未示出)在后续阶段中解码,使得可以恢复点云的数据。替选地,数据可以由通信单元(未示出)经由预定的传输路径传送至诸如解码装置的另一装置,或者可以被记录在记录介质(未示出)中。

注意,编码单元114可以具有任何配置。例如,编码单元114可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与编码有关的处理。

<2.第一实施方式>

<末端标识位模式>

编码单元114对从体素设置单元113提供的体素数据执行八叉树编码,以生成八叉树模式的数据(八叉树模式数据)。编码单元114还对所生成的八叉树模式数据执行无损编码,以生成位流。

当编码单元114终止不是八叉树编码中的八叉树模式的最低级别处的节点的节点(将该节点设为叶节点)时,编码单元114应用本技术,并且生成以下位流,该位流包含“基于指定八叉树模式的深度的信息指示将在除最低级别之外的级别处形成叶节点的深度控制信息”。

例如,该深度控制信息是任何适当的信息,但是也可以是以下预定位串,该预定位串指示“比八叉树模式的最低级别高的级别处的、与深度控制信息对应的特定节点是叶节点”。

利用该布置,在解码侧检测“预定位串”,使得可以容易地识别“特定节点是叶节点”。

例如,如图5的a所示,在一般的八叉树模式中,将其中存在节点的区域形成为节点。对于每个节点(除最低级别处的节点之外),该区域被划分为八个区域,并且设置8位位串(子掩码),该8位位串(子掩码)指示在八个划分的区域之一中存在点。该位串指示在八个划分的区域之中的与具有值“1”的位对应的区域中存在点(或指示在与具有值“0”的位对应的区域中不存在任何点)。

在一般八叉树模式的情况下,如图5的a所示,即使在没有分支的最低级别处也形成后代节点。例如,位于比最低级别高一个级别的级别处的右侧节点仅具有一个子节点(无分支),但是设置了具有位模式“01000000”的位串,并且示出了最低级别处的点的位置。中心处的节点具有类似的结构。在中心节点中,在没有分支的情况下设置了位模式“00000001”,并且示出了最低级别处的点的位置。因此,在这种情况下,所有点的位置(分辨率)都在最低级别处示出。

另一方面,编码单元114将具有以下位模式的位串设置为上述“深度控制信息”,该位模式指示要在比最低级别高的级别处终止的节点(没有要形成的后代节点的节点)是叶节点(末端),如图5的b所示。然后,编码单元114将该节点设置为叶节点,并且跳过后代节点的形成。然后,编码单元114对包括“位串(深度控制信息)”已被设置的节点的八叉树模式数据执行无损编码,并且生成包含“位串(深度控制信息)”的位流。

换言之,在这种情况下作为“深度控制信息”的“预定位串”被设置在比八叉树模式数据中的八叉树模式的最低级别高的级别处的节点中,并且具有指示其中设置有“预定位串”的节点是叶节点的位模式。然后,编码单元114通过对八叉树模式数据进行编码来生成位流,在该八叉树模式数据中,“预定位串”被设置在比八叉树模式的最低级别高的级别处的“叶节点”中。

即,由“位串(深度控制信息)”的位置来指示比八叉树模式的最低级别高的级别处的叶节点的位置。因此,在解码侧,当对位流进行解码以重构八叉树模式时,检查“位串(深度控制信息)”的位置,使得可以检测到比八叉树模式的最低级别高的级别处的叶节点。即,可以正确地对包括比最低级别高的级别处的叶节点的八叉树模式进行解码。

换言之,利用这样的“位串(深度控制信息)”,可以在八叉树模式中表示对点的分辨率的部分控制。即,可以在要经受八叉树编码的点云中部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。

换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,“预定位串”的位模式(该位模式也被称为末端标识位模式)可以是不用于在不是八叉树模式的叶节点的节点中设置的位串的位模式。例如,在图5的b所示的示例情况下,将具有位模式“00000000”(末端标识位模式)的位串分配给比最低级别高一个级别的级别处的右节点(叶节点)。位模式“00000000”指示在划分的八个区域中的任何一个中不存在点。然而,在一般八叉树模式中,在比最低级别高的任何级别处不存在这样的节点。

利用这样的布置,可以由与其他节点中设置的位串具有相同的规格的位串来表示除最低级别之外的级别处的叶节点。即,与其他节点具有相同的结构的位串可以被设置在叶节点中。因此,可以减少由一般八叉树编码引起的规格改变量,并且可以更容易地应用本技术。

然而,末端标识位模式可以是任何适当的模式,只要它可以指示节点是“叶节点”即可,并且不限于上述示例(“00000000”)。例如,位深度可以不同于设置在不是叶节点的节点中的其他位串中的位深度。

注意,如果已经明确了与叶节点的对应关系,则可以将末端标识位模式的位串存储在除对应节点的位置之外的位置处。例如,可以将末端标识位模式的位串集中存储在头部、参数集等中。替选地,该位串可以被包括在与八叉树模式数据的位流不同的位流中。在这些情况下,也需要指示哪个位串与哪个叶节点对应的信息。

<编码单元>

图6是示出编码单元114(图3)的主要示例配置的框图。如图6所示,编码单元114包括八叉树编码单元221、二值化单元222和无损编码单元223。

八叉树编码单元221执行与八叉树编码有关的处理。例如,八叉树编码单元221对从体素设置单元113提供的体素数据的几何数据(位置信息)执行八叉树编码,以生成八叉树模式数据。当在该阶段中将与最低级别不同的级别处的期望节点设为叶节点时,八叉树编码单元221将以上“末端标识位模式的位串”(例如,具有位模式“00000000”的位串)设置在期望节点中。

如图6所示,八叉树编码单元221包括八叉树深度控制单元231和八叉树构造单元232。

八叉树深度控制单元231执行与八叉树模式的深度有关的控制。八叉树构造单元232执行与八叉树模式的构造有关的处理。例如,八叉树构造单元232基于几何数据来构造八叉树模式,并且生成与几何数据对应的八叉树模式数据。八叉树深度控制单元231控制八叉树模式的构造,以控制八叉树模式的深度。

例如,当八叉树构造单元232通过对几何数据执行八叉树编码来生成八叉树模式时,八叉树深度控制单元231控制八叉树构造单元232,使得比八叉树模式的最低级别高的级别处的期望的节点可以设为叶节点。即,可以在比八叉树模式的最低级别高的级别处终止节点(以不形成任何后代节点)。在这种情况下,八叉树深度控制单元231可以控制八叉树构造单元232,以将以上“末端标识位模式的位串”设置在期望节点中。

八叉树编码单元221(八叉树构造单元232)向二值化单元222提供包括“末端标识位模式的位串”的八叉树模式数据。

通过这样做,编码单元114可以在形成八叉树模式的同时,将“末端标识位模式的位串”设置在要作为叶节点的节点中。

注意,八叉树编码单元221(八叉树深度控制单元231和八叉树构造单元232中的每一个)可以具有任何配置。例如,八叉树编码单元221可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与八叉树编码有关的处理。

二值化单元222执行与二值化有关的处理。例如,二值化单元222对从八叉树编码单元221提供的八叉树模式数据进行二值化,以生成二进制数据。二值化单元222将生成的二进制数据提供给无损编码单元223。

注意,二值化单元222可以具有任何配置。例如,二值化单元222可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与二值化有关的处理。

无损编码单元223执行与无损编码有关的处理。例如,无损编码单元223对从二值化单元222提供的二进制数据执行无损编码,以生成位流(该位流是八叉树模式数据的编码数据)。任何适当的方法都可以用于该无损编码。例如,可以使用基于上下文的自适应二进制算术代码(cabac)。

例如,无损编码单元223还将指定八叉树模式数据的八叉树模式的深度(级别的数量)的信息存储到包括在位流中的头部、参数集等中。

无损编码单元223将所生成的位流输出至编码单元114的外部(换言之,编码装置100的外部)。

注意,无损编码单元223可以具有任何配置。例如,无损编码单元223可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与无损编码有关的处理。

如上所述,当节点在比八叉树模式的最低级别高的级别处被终止时,由八叉树编码单元221生成的八叉树模式数据包括末端标识位模式的位串。即,无损编码单元223生成包含末端标识位模式的位串(深度控制信息)的位流。

因此,可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,可以使用任何适当的方法来对八叉树模式数据进行编码。例如,八叉树模式数据可以利用基于上下文的自适应可变长度代码(cavlc)进行编码。在这种情况下,代替二值化单元222和无损编码单元223,可以提供进行cavlc的无损编码单元。

<编码处理中的流程>

现在参照图7所示的流程图描述由具有以上配置的编码装置100执行的编码处理中的示例流程。

当开始编码处理时,在步骤s101中,预处理单元111对输入数据执行预处理。

在步骤s102中,边界框设置单元112针对经受预处理的数据设置边界框。

在步骤s103中,体素设置单元113在已经在步骤s102中设置的边界框中设置体素。

在步骤s104中,编码单元114对通过步骤s103中的处理生成的体素数据的几何数据进行编码。

在步骤s105中,编码单元114将通过编码获得的位流输出至编码装置100的外部。例如,该位流被传送至解码侧(解码装置等),或者被记录到记录介质中。

当步骤s105中的处理完成时,编码处理结束。例如,当编码目标是运动图像时,针对每一帧执行该系列处理。

<几何数据编码处理中的流程>

接下来,参照图8所示的流程图来描述在图7的步骤s104中执行的几何数据编码处理中的示例流程。

当开始几何数据编码处理时,八叉树深度控制单元231在步骤s121中初始化八叉树模式的处理目标节点。

在步骤s122中,八叉树深度控制单元231确定处理目标节点的级别是否为最低级别。当确定处理目标节点的级别不是最低级别时,处理进行至步骤s123。

在步骤s123中,八叉树深度控制单元231确定是否要将处理目标节点设为末端。当确定要将处理目标节点设为末端或确定要将处理目标节点设为叶节点时,处理进行至步骤s124。

在步骤s124中,八叉树构造单元232针对要设为末端的处理目标节点生成并且设置末端标识位模式(例如,“00000000”)。八叉树构造单元232还从处理目标候选中排除处理目标节点的后代节点。即,将处理目标节点设为叶节点,并且不形成属于叶节点的任何子节点。在完成步骤s124中的处理之后,处理进行至步骤s126。

另一方面,当在步骤s123中确定不将处理目标节点设为末端时,处理进行至步骤s125。

在步骤s125中,对于不设为末端的处理目标节点,八叉树构造单元232基于几何数据来生成“子节点的位模式”,该“子节点的位模式”是具有以下位模式的位串,该位模式指示通过将与处理目标节点对应的区域划分为八(2×2×2)份而形成的区域中的一个区域中存在点。然后,八叉树构造单元232将位串设置在处理目标节点中。在步骤s125中的处理完成之后,处理进行至步骤s126。

另一方面,当在步骤s122中确定处理目标节点的级别是作为与几何数据(的体素)具有相同分辨率的级别的最低级别时,跳过步骤s123至s125中的处理,并且处理进行至步骤s126。即,在最低级别处的节点中未设置任何位串。

在步骤s126中,八叉树深度控制单元231确定是否所有节点都已被处理。当确定未构造与几何数据对应的八叉树模式并且存在未被处理的节点时,处理进行至步骤s127。

在步骤s127中,八叉树深度控制单元231将处理目标节点设置为预顺序(preorder)中的下一个节点。在更新处理目标节点之后,处理返回到步骤s122。即,针对与几何数据对应的八叉树模式的每个节点执行步骤s122至s127中的相应处理。

当在步骤s126中确定已经构造与几何数据对应的八叉树模式并且所有节点均已被处理时,则处理进行至步骤s128。

在步骤s128中,二值化单元222对通过以上处理生成的与几何数据对应的八叉树模式数据进行二值化。

在步骤s129中,无损编码单元223对通过步骤s128中的处理获得的二进制数据执行无损编码,以生成位流。由于八叉树模式数据包括末端标识位模式的位串作为步骤s124中的处理的结果,由此无损编码单元223生成包含末端标识位模式的位串的位流。

当步骤s129中的处理完成时,几何数据编码处理结束,并且处理返回到图7。

当如上所述的那样执行相应处理时,编码装置100可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,已经将预顺序描述为八叉树模式扫描顺序的示例。然而,该扫描顺序可以是任何适当的顺序,并且不一定是预顺序。例如,扫描顺序可以是前导顺序、前顺序、经过顺序、中序、中间顺序、通过顺序、向后顺序、后继顺序、后序、返回顺序、级别顺序等。

<编码单元的另一示例>

注意,可以在生成之后编辑八叉树模式,并且可以将比最低级别高的级别处的期望节点设为叶节点。

图9是示出这种情况下的编码单元114(图3)的主要示例配置的框图。如图9所示,在这种情况下,编码单元114包括八叉树编码单元221、二值化单元222和无损编码单元223,如图6所示的情况那样。

然而,八叉树编码单元221包括八叉树构造单元241和八叉树深度控制单元242。八叉树构造单元241执行与八叉树模式的构造有关的处理。例如,八叉树构造单元241执行一般的八叉树编码,以基于几何数据构造八叉树模式并且生成与几何数据对应的八叉树模式数据。

八叉树深度控制单元242执行与八叉树模式的深度有关的控制。例如,八叉树深度控制单元242编辑由八叉树构造单元241构造的八叉树模式,并且将比最低级别高的级别处的期望节点设为叶节点。即,八叉树深度控制单元242删除属于比八叉树模式的最低级别高的级别处的期望节点的后代节点,并且将期望节点设为叶节点。对于期望节点,八叉树深度控制单元242还设置上述的“末端标识位模式的位串”(例如,具有位模式“00000000”的位串)。八叉树编码单元221(八叉树深度控制单元242)向二值化单元222提供包括“末端标识位模式的位串”的八叉树模式数据。

注意,八叉树编码单元221(八叉树构造单元241和八叉树深度控制单元242中的每一个)可以具有任何配置。例如,八叉树编码单元221可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与八叉树编码有关的处理。

二值化单元222对八叉树模式数据进行二值化,以生成二进制数据。无损编码单元223对二进制数据执行无损编码,以生成位流。

通过这样做,编码单元114可以在形成八叉树模式的同时将“末端标识位模式的位串”设置在要作为叶节点的节点中。

当在这种情况下在比八叉树模式的最低级别高的级别处终止节点时,由八叉树编码单元221生成的八叉树模式数据还包括末端标识位模式的位串。即,在这种情况下,无损编码单元223还生成包含末端标识位模式的位串(深度控制信息)的位流。

因此,在这种情况下,编码单元114还可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

<编码处理中的流程>

在这种情况下,要由编码装置100执行的编码处理中的流程也类似于以上参照图7所示的流程图描述的情况下的流程,因此在本文中不进行说明。

<几何数据编码处理中的流程>

接下来,参照图10所示的流程图来描述在这种情况下在图7的步骤s104中执行的几何数据编码处理中的示例流程。

当在这种情况下开始几何数据编码处理时,八叉树构造单元241在步骤s141中根据几何数据来构造八叉树模式,并且生成八叉树模式数据。

在步骤s142中,八叉树深度控制单元242初始化八叉树模式中的处理目标节点。

在步骤s143中,八叉树深度控制单元242确定处理目标节点的级别是否为最低级别。当确定处理目标节点的级别不是最低级别时,处理进行至步骤s144。

在步骤s144中,八叉树深度控制单元242确定是否要将处理目标节点设为末端。当确定要将处理目标节点设为末端,或者确定要将处理目标节点设为叶节点时,处理进行至步骤s145。

在步骤s145中,八叉树深度控制单元242利用末端标识位模式(例如,“00000000”)替换在要设为末端的处理目标节点中设置的位串。八叉树深度控制单元242还删除八叉树模式中的处理目标节点的后代节点。即,将处理目标节点设为叶节点,并且删除属于该叶节点的后代节点。在完成步骤s145中的处理之后,处理进行至步骤s146。

另一方面,当在步骤s144中确定不将处理目标节点设为末端时,跳过步骤s145中的处理,并且处理进行至步骤s146。即,在这种情况下,不编辑处理目标节点。

另一方面,当在步骤s143中确定处理目标节点的级别是作为与几何数据(的体素)具有相同分辨率的级别的最低级别时,跳过步骤s144和s145中的处理,并且处理进行至步骤s146。即,在最低级别处的节点中未设置任何位串,因此,不执行编辑。

在步骤s146中,八叉树深度控制单元242确定是否已经处理在步骤s141中生成的八叉树模式的所有节点。当确定存在未处理的节点时,处理进行至步骤s147。

在步骤s147中,八叉树深度控制单元242按预顺序将处理目标节点设置为下一个节点。在更新处理目标节点之后,处理返回到步骤s143。即,针对与几何数据对应的八叉树模式的每个节点执行步骤s143至s147中的相应处理。

当在步骤s146中确定所有节点均已被处理时,然后处理进行至步骤s148。

在步骤s148中,二值化单元222对通过以上处理生成的与几何数据对应的八叉树模式数据进行二值化。

在步骤s149中,无损编码单元223对通过步骤s148中的处理获得的二进制数据进行无损编码,以生成位流。由于八叉树模式数据包括末端标识位模式的位串作为步骤s145中的处理的结果,因此无损编码单元223生成包含末端标识位模式的位串的位流。

当步骤s149中的处理完成时,几何数据编码处理结束,并且处理返回到图7。

当如上所述的那样执行相应处理时,在这种情况下,编码装置100还可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树状结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,已经将预顺序描述为八叉树模式扫描顺序的示例。然而,该扫描顺序可以是任何适当的顺序,并且不一定是预顺序。例如,扫描顺序可以是前导顺序、前顺序、经过顺序、中序、中间顺序、通过顺序、向后顺序、后继顺序、后序、返回顺序、级别顺序等。

<解码装置>

对由编码装置100生成的位流进行解码的解码装置对该位流进行解码,并且基于以下深度控制信息来构造包括与最低级别不同的级别处的叶节点的八叉树模式,该深度控制信息基于指定八叉树模式的深度的信息指示将在与最低级别不同的级别处形成叶节点。因此,该解码装置可以正确地对由编码装置100生成的位流进行解码。

图11是示出作为应用本技术的信息处理装置的实施方式的解码装置的主要示例配置的框图。图11所示的解码装置250是与图3所示的编码装置100兼容的解码装置。例如,解码装置250对由编码装置100生成的点云的编码数据进行解码并且恢复点云的数据。

如图11所示,解码装置250包括解码单元261和点云处理单元262。

解码单元261执行与位流的解码有关的处理。例如,解码单元261通过与编码单元114(图3)所使用的编码方法兼容的解码方法来对位流进行解码,并且重构八叉树模式。如上所述,由编码装置100生成的位流包含“基于指定八叉树模式的深度的信息指示将在与最低级别不同的级别处形成叶节点的深度控制信息”。解码单元261基于“深度控制信息”来构造包括与最低级别不同的级别处的叶节点的八叉树模式。

因此,解码单元261可以正确地对由编码单元114生成的位流进行解码。因此,解码装置250可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树状结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

例如,如上所述,这种深度控制信息是任何适当的信息,但是也可以是以下预定位串,该预定位串指示“比八叉树模式的最低级别高的级别处的、与深度控制信息对应的特定节点是叶节点”。

利用该布置,解码单元261检测“预定位串”,以容易地识别“特定节点是叶节点”。

此外,如上所述,“预定位串”被设置在比八叉树模式的最低级别高的级别处的叶节点中,并且具有指示设置有“预定位串”的节点是叶节点的位模式(末端标识位模式)。

即,由“位串(深度控制信息)”的位置来指示比八叉树模式的最低级别高的级别处的叶节点的位置。因此,当对位流进行解码以重构八叉树模式时,解码单元261可以检查“位串(深度控制信息)”的位置,以检测比八叉树模式的最低级别高的级别处的叶节点。即,可以正确地对包括比最低级别高的级别处的叶节点的八叉树模式进行解码。

注意,如上所述,“预定位串”的位模式(末端标识位模式)可以是不用于在不是八叉树模式的叶节点的节点中设置的位串的位模式。例如,在图5的b所示的示例情况下,将具有位模式“00000000”(末端标识位模式)的位串分配给比最低级别高一个级别的右节点(叶节点)。

然后,解码单元261从八叉树模式(八叉树模式数据)重构几何数据(体素数据)。解码单元261将重构的几何数据(体素数据)提供给点云处理单元262。

注意,解码单元261可以具有任何配置。例如,解码单元261可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与解码有关的处理。

点云处理单元262执行与恢复点云数据有关的处理。例如,点云处理单元262将从解码单元261提供的几何数据(体素数据)转换成点云数据(或生成经解码的点云数据)。注意,点云处理单元262还可以将经解码的点云数据转换成网格数据。

点云处理单元262将所生成的解码点云数据(或网格数据)输出至解码装置250的外部。在后续阶段中,输出的解码点云数据(或网格数据)例如可以经受由处理单元(未示出)进行的图像处理,使得可以将经解码的点云数据作为图像信息显示在监视器等上。替选地,经解码的点云数据可以由通信单元(未示出)经由预定传输路径传送至另一装置,或者可以被记录到记录介质(未示出)中。

注意,点云处理单元262可以具有任何配置。例如,点云处理单元262可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与点云数据的恢复有关的处理。

<解码单元>

图12是示出解码单元261的主要示例配置的框图。如图12所示,解码单元261包括无损解码单元271、末端检测单元272、多值转换单元273和几何重构单元274。

无损解码单元271执行与无损解码有关的处理。例如,无损解码单元271通过与无损编码单元223兼容的方法,对由编码装置100生成的位流执行无损解码,以获得二进制数据。该无损解码方法可以是与无损编码单元223所使用的无损编码方法兼容的任何方法。例如,无损解码方法可以是cabac。

如上所述,例如,该位流包含八叉树模式的相应节点的位串以及设置在比最低级别高的级别处的叶节点中的“深度控制信息(末端标识位模式的位串)”等。因此,无损解码单元271通过对位流进行解码来提取这些信息片段(piecesofinformation),并且将提取的信息作为二进制数据提供给多值转换单元273。此外,包括在该位流中的头部或参数集包含“指定八叉树模式的深度的信息”。无损解码单元271还通过对位流进行解码来提取信息,并且将该信息作为二进制数据提供给多值转换单元273。

注意,无损解码单元271可以具有任何配置。例如,无损解码单元271可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与无损解码有关的处理。

末端检测单元272执行与末端节点的检测有关的处理。多值转换单元273执行与多值转换有关的处理。例如,多值转换单元273对从无损解码单元271提供的二进制数据执行多值转换,以重构八叉树模式并且生成八叉树模式数据。在该阶段,例如,末端检测单元272检测通过多值转换单元273处的二进制数据的多值转换获得的八叉树模式中包括的末端标识位模式的位串。末端检测单元272还根据检测结果来控制多值转换单元273,以控制八叉树模式的重构。

例如,当检测到末端标识位模式的位串时,末端检测单元272控制多值转换单元273,以在八叉树模式的重构中将该节点设为末端(叶节点),并且禁止构造属于该节点的任何后代节点。通过这样做,多值转换单元273可以重构八叉树模式,使得叶节点形成在比由“指定八叉树模式的深度的信息”指定的八叉树模式的最低级别高的级别处。

多值转换单元273将以这种方式获得的八叉树模式数据提供给几何重构单元274。

注意,末端检测单元272可以具有任何配置。例如,末端检测单元272可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与末端的检测有关的处理。

此外,多值转换单元273可以具有任何配置。例如,多值转换单元273可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与多值转换有关的处理。

几何重构单元274执行与几何数据的重构有关的处理。例如,几何重构单元274使用从多值转换单元273提供的八叉树模式数据来重构几何数据。几何重构单元274将获得的几何数据提供给点云处理单元262(图11)。

注意,几何重构单元274可以具有任何配置。例如,几何重构单元274可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与几何数据的重构有关的处理。

如上所述,无损解码单元271至多值转换单元273对位流进行解码,并且基于以下深度控制信息来构造包括与最低级别不同的级别处的叶节点的八叉树模式,该深度控制信息基于指定八叉树模式的深度的信息指示将在与最低级别不同的级别处形成叶节点。

因此,在要经受八叉树编码的点云中,可以部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,对位流进行解码的方法可以是与编码方法兼容的任何方法,并且不限于上述示例。例如,可以利用cavlc对位流进行解码。即,在这种情况下,位流已经利用cavlc进行编码。在这种情况下,代替无损解码单元271和多值转换单元273,可以提供进行cavlc的无损解码单元。

<解码处理中的流程>

现在,参照图13所示的流程图来描述由具有以上配置的解码装置250执行的解码处理中的示例流程。

当开始解码处理时,在步骤s161中,解码单元261对所提供的位流进行解码,以重构其中在与基于指定八叉树模式的深度的信息的最低级别不同的级别处形成叶节点的八叉树模式,并且重新配置与八叉树模式数据对应的几何数据。

在步骤s162中,点云处理单元262根据在步骤s161中获得的几何数据恢复点云数据。

在步骤s163中,点云处理单元262将在步骤s162中恢复的点云数据(经解码的点云数据)输出至解码装置250的外部。

当步骤s163中的处理完成时,解码处理结束。

<位流解码处理中的流程>

现在参照图14所示的流程图,描述在图13的步骤s161中执行的位流解码处理中的示例流程。

当开始位流解码处理时,无损解码单元271在步骤s181中对位流执行无损解码,以生成二进制数据。

在步骤s182中,多值转换单元273读取在步骤s181中获得的二进制数据。

在步骤s183中,末端检测单元272使多值转换单元273对读取的二进制数据进行解码,并且确定在所获得的八叉树模式数据中是否包括末端标识位模式的位串。当从八叉树模式数据中检测到末端标识位模式并且确定在八叉树模式数据中包括末端标识位模式的位串时,处理进行至步骤s184。

在步骤s184中,在末端检测单元272的控制下,多值转换单元273对二进制数据执行多值转换并且重构八叉树模式,使得将已检测到末端标识位模式的检测位置(节点)设为末端(叶节点)。即,在要重构的八叉树模式中反映深度控制信息(末端标识位模式的位串)。

在步骤s184中的处理完成之后,处理进行至步骤s186。另一方面,当在步骤s183中确定未检测到末端标识位模式时(在八位模式数据中不包括末端标识位模式的位串),处理进行至步骤s185。

在步骤s185中,多值转换单元273对二进制数据执行多值转换,并且以与一般八叉树模式的情况下的方式相同的方式重构八叉树模式。在步骤s185中的处理完成之后,处理进行至步骤s186。

在步骤s186中,多值转换单元273确定是否所有二进制数据都已被处理。当存在未处理的二进制数据时,处理返回到步骤s182,其中未处理的二进制数据是新的处理目标。即,针对所有二进制数据执行步骤s182至s186中的处理。当在步骤s186中确定所有二进制数据均已被处理时,处理然后进行至步骤s187。

在步骤s187中,几何重构单元274使用通过以上处理获得的八叉树模式数据来重构几何数据。

当步骤s187中的处理完成时,位流解码处理结束,并且处理返回到图13。

当如上所述的那样执行相应处理时,解码装置250可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

<3.第二实施方式>

<end_of_node_one_bit>

注意,例如,“深度控制信息”是任何适当的信息,但是可以是“在位流中指示比八叉树模式的最低级别高的级别处的、与深度控制信息对应的特定节点是叶节点的预定标志信息”。

利用该布置,可以基于在位流中包括的“预定标志信息”,在解码侧容易地识别“特定节点是叶节点”。

例如,如图15的a所示,在八叉树模式中,关于相应节点的信息以预定的扫描顺序(例如,预顺序)被布置,并且被相继编码。因此,例如,在位流中,如图15的b所示,以扫描顺序布置相应节点的位流。例如,在图15的b所示的位流中,图15的a所示的八叉树模式中的阴影区域中包括的节点、八叉树模式中的白色区域中包括的节点以及八叉树模式中的灰色区域中包括的节点按该顺序被布置。

此处,图15的a所示的八叉树模式中的灰色区域中包括的节点位于比最低级别高的级别处,但是仍是末端(叶节点)。在这种情况下,如在最低级别处的节点的情况下,在该节点中未设置位串,而是可以在位流中的、与该节点对应的位置处设置“指示末端的深度控制信息(预定标志信息)”。

即,编码单元114可以将指示与该位置对应的节点是否为叶节点的“预定标志信息”插入在位流中的、与比八叉树模式的最低级别高的级别处的叶节点对应的位置处。

“预定标志信息”的位置指示比八叉树模式的最低级别高的级别处的叶节点的位置。因此,在解码侧,检查在位流中包括的“标志信息(深度控制信息)”的位置,使得可以检测比八叉树模式的最低级别高的级别处的叶节点。即,可以正确地对包括比最低级别高的级别处的叶节点的八叉树模式进行解码。

换言之,利用这样的“标志信息(深度控制信息)”,可以在八叉树模式中表示对点的分辨率的部分控制。即,可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。

换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

例如,在图15的b所示的示例中的位流的情况下,设置语法(标志信息)“end_of_node_one_bit”,并且将“end_of_node_one_bit”插入在位流中的、与包括在灰色区域中并且是叶节点的节点对应的位置处。因此,在解码侧,检测到该“end_of_node_one_bit”,并且因此,可以容易地检测到对应位置处的节点为叶节点。

注意,该“标志信息”的名称(语法)可以是任何适当的名称,并且可以不是“end_of_node_one_bit”。此外,该“标志信息(end_of_node_one_bit)”的值也可以是任何适当的值。例如,该值可以是“1”,或可以是“0”。此外,该“标志信息”可以由多个位形成。此外,该“标志信息”可以包括不是指示叶节点的信息的信息。此外,可以在所有节点中设置该“标志信息”,并且其值可以指示节点是否是叶节点。

此外,如果已经明确与叶节点的对应关系,则该“标志信息”可以被插入在位流中的、对应节点的位置之外的位置处。例如,该“标志信息”可以被集中存储在头部、参数集等中。替选地,该“标志信息”可以被包括在与八叉树模式数据的位流不同的位流中。在这些情况下,也需要指示哪个“标志信息”与哪个叶节点对应的信息。

<编码单元>

图16是示出这种情况下的编码单元114(图3)的主要示例配置的框图。如图16所示,在这种情况下,编码单元114包括八叉树编码单元321、二值化单元322和无损编码单元323。

八叉树编码单元321执行与八叉树编码有关的处理。例如,八叉树编码单元321对从体素设置单元113提供的体素数据的几何数据(位置信息)执行八叉树编码,以生成八叉树模式数据。当在该阶段中将与最低级别不同的级别处的期望节点设为叶节点时,八叉树编码单元321指定期望节点的位置。

如图16所示,八叉树编码单元321包括八叉树深度控制单元331和八叉树构造单元332。

八叉树深度控制单元331执行与八叉树模式的深度有关的控制。八叉树构造单元332执行与八叉树模式的构造有关的处理。例如,八叉树构造单元332基于几何数据来构造八叉树模式,并且生成与几何数据对应的八叉树模式数据。八叉树深度控制单元331控制八叉树模式的构造,以控制八叉树模式的深度。

例如,当八叉树构造单元332通过对几何数据执行八叉树编码来生成八叉树模式时,八叉树深度控制单元331控制八叉树构造单元332,使得比八叉树模式的最低级别高的级别处的期望节点可以设为叶节点。即,可以在比八叉树模式的最低级别高的级别处终止节点(以不形成任何后代节点)。此外,八叉树深度控制单元331将期望节点指定为要设为叶节点的节点。

八叉树编码单元321(八叉树构造单元332)将所生成的八叉树模式数据提供给二值化单元322。八叉树编码单元321(八叉树深度控制单元331)还将关于指定节点的信息提供给无损编码单元323。

通过这样做,编码单元114可以在形成八叉树模式的同时指定要设为叶节点的节点。

注意,八叉树编码单元321(八叉树深度控制单元331和八叉树构造单元332中的每一个)可以具有任何配置。例如,八叉树编码单元321可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与八叉树编码有关的处理。

二值化单元322执行与二值化有关的处理。例如,二值化单元322对从八叉树编码单元321提供的八叉树模式数据进行二值化,以生成二进制数据。二值化单元322将所生成的二进制数据提供给无损编码单元323。

注意,二值化单元322可以具有任何配置。例如,二值化单元322可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与二值化有关的处理。

无损编码单元323执行与无损编码有关的处理。例如,无损编码单元323对从二值化单元322提供的二进制数据执行无损编码,以生成位流(该位流是八叉树模式数据的编码数据)。例如,执行无损编码的该方法可以是任何适当的方法,并且可以是cabac。

基于从八叉树深度控制单元331提供的信息,无损编码单元323还将上述“预定标志信息(end_of_node_one_bit)”插入在位流中的、与由八叉树深度控制单元331指定为要设为叶节点的节点对应的位置处。

例如,无损编码单元323还将指定八叉树模式数据的八叉树模式的深度(级别的数量)的信息存储到包括在位流中的头部、参数集等中。

无损编码单元323将所生成的位流输出至编码单元114的外部(换言之,编码装置100的外部)。

注意,无损编码单元323可以具有任何配置。例如,无损编码单元323可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与无损编码有关的处理。

如上所述,当节点在比八叉树模式的最低级别高的级别处被终止时,无损编码单元323将预定标志信息(深度控制信息)插入在位流中的、与由八叉树编码单元221指定的节点对应的位置处。

因此,在要经受八叉树编码的点云中,可以部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,可以使用任何适当的方法来对八叉树模式数据进行编码。例如,八叉树模式数据可以利用基于上下文的自适应可变长度代码(cavlc)进行编码。在这种情况下,代替二值化单元222和无损编码单元223,可以提供进行cavlc的无损编码单元。

<编码处理中的流程>

在这种情况下,将由编码装置100执行的编码处理中的流程也类似于以上参照图7所示的流程图描述的情况下的流程,并且因此在本文中不进行说明。

<几何数据编码处理中的流程>

接下来,参照图17和图18所示的流程图来描述在这种情况下将在图7的步骤s104中执行的几何数据编码处理中的示例流程。

当开始几何数据编码处理时,八叉树深度控制单元331在图17的步骤s201中初始化八叉树模式中的处理目标节点。

在步骤s202中,八叉树深度控制单元331确定处理目标节点的级别是否为最低级别。当确定处理目标节点的级别不是最低级别时,处理进行至步骤s203。

在步骤s203中,八叉树深度控制单元331确定是否将处理目标节点设为末端。当确定要将处理目标节点设为末端,或者确定要将处理目标节点设为叶节点时,处理进行至步骤s204。

在步骤s204中,八叉树深度控制单元331存储(指定)处理目标节点作为要设为末端的节点(或末端位置)。此外,八叉树构造单元332从处理目标候选中排除处理目标节点的后代节点。即,将处理目标节点设为叶节点,并且不形成属于该叶节点的任何子节点。在步骤s204中的处理完成之后,处理进行至步骤s206。即,在比最低级别高的级别处的叶节点中未设置任何位串。

另一方面,当在步骤s203中确定不将处理目标节点设为末端时,处理进行至步骤s205。

在步骤s205中,对于不设为末端的处理目标节点,八叉树构造单元332基于几何数据来生成“子节点的位模式”,该“子节点的位模式”是具有以下位模式的位串,该位模式指示通过将与处理目标节点对应的区域划分为八(2×2×2)份而形成的区域中的一个区域中存在点。然后,八叉树构造单元332将位串设置在处理目标节点中。在步骤s205中的处理完成之后,处理进行至步骤s206。

另一方面,当在步骤s202中确定处理目标节点的级别为与几何数据(的体素)具有相同分辨率的级别的最低级别时,则跳过步骤s203至s205中的处理,并且处理进行至步骤s206。即,在最低级别处的节点中未设置任何位串。

在步骤s206中,八叉树深度控制单元331确定是否所有节点都已被处理。当确定未构造与几何数据对应的八叉树模式并且存在未处理的节点时,处理进行至步骤s207。

在步骤s207中,八叉树深度控制单元331将处理目标节点设置为预顺序中的下一个节点。在更新处理目标节点之后,处理返回到步骤s202。即,针对与几何数据对应的八叉树模式的每个节点执行步骤s202至s207中的相应处理。

当在步骤s206中确定已经构造与几何数据对应的八叉树模式并且所有节点均已被处理时,则处理进行至步骤s208。

在步骤s208中,二值化单元322对通过以上处理生成的与几何数据对应的八叉树模式数据进行二值化。在步骤s208中的处理完成之后,处理进行至图18。

在图18的步骤s211中,无损编码单元323初始化处理目标节点。

在步骤s212中,无损编码单元323读取在图17的步骤s208中生成的处理目标节点的二进制数据。

在图18的步骤s213中,无损编码单元323确定处理目标节点是否为在图17的步骤s204中存储(指定)的末端位置。当确定处理目标节点为末端位置时,处理进行至步骤s214。

在步骤s214中,无损编码单元323将预定标志信息(end_of_node_one_bit)插入在位流中的、与处理目标节点对应的位置(该位置是末端位置)处。在步骤s214中的处理完成之后,处理进行至步骤s216。

另一方面,当在步骤s213中确定处理目标节点不是末端位置时,处理进行至步骤s215。

在步骤s215中,无损编码单元323对处理目标节点的二进制数据执行无损编码。在步骤s215中的处理完成之后,处理进行至步骤s216。

在步骤s216中,无损编码单元323确定是否所有二进制数据都已被处理。当确定存在未处理的二进制数据时,处理进行至步骤s217。

在步骤s217中,无损编码单元323将处理目标节点设置为预顺序中的下一个节点。在更新处理目标节点之后,处理返回到步骤s212。即,对八叉树模式的每个节点的二进制数据执行步骤s212至s217中的相应处理。

另一方面,当在步骤s216中确定所有二进制数据均已被处理时,几何数据编码处理结束,并且处理返回到图7。

当如上所述的那样执行相应处理时,在这种情况下,编码装置100还可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,已经将预顺序描述为八叉树模式扫描顺序的示例。然而,该扫描顺序可以是任何适当的顺序,并且不一定是预顺序。例如,扫描顺序可以是前导顺序、前顺序、经过顺序、中序、中间顺序、通过顺序、向后顺序、后继顺序、后序、返回顺序、级别顺序等。

<编码单元的另一示例>

注意,可以在生成之后编辑八叉树模式,并且可以将比最低级别高的级别处的期望节点设为叶节点,并且可以将期望节点指定为要设为叶节点的节点。

图19是示出这种情况下的编码单元114(图3)的主要示例配置的框图。如图19所示,在这种情况下,编码单元114包括八叉树编码单元321、二值化单元322和无损编码单元323,如图16所示的情况那样。

然而,八叉树编码单元321包括八叉树构造单元341和八叉树深度控制单元342。八叉树构造单元341执行与八叉树模式的构造有关的处理。例如,八叉树构造单元341执行一般的八叉树编码,以基于几何数据构造八叉树模式并且生成与几何数据对应的八叉树模式数据。

八叉树深度控制单元342执行与八叉树模式的深度有关的控制。例如,八叉树深度控制单元342编辑由八叉树构造单元341构造的八叉树模式,并且将比最低级别高的级别处的期望节点设为叶节点。即,八叉树深度控制单元342删除属于比八叉树模式的最低级别高的级别处的期望节点的后代节点,并且将期望节点设为叶节点。此外,八叉树深度控制单元342将期望节点指定(存储)为要设为叶节点的节点。八叉树编码单元321(八叉树深度控制单元342)将生成的八叉树模式数据提供给二值化单元322。八叉树编码单元321(八叉树深度控制单元342)还将指示指定节点的信息提供给无损编码单元323。

注意,八叉树编码单元321(八叉树构造单元341和八叉树深度控制单元342中的每一个)可以具有任何配置。例如,八叉树编码单元321可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与八叉树编码有关的处理。

如图16所示的情况那样,二值化单元322执行与二值化有关的处理。例如,二值化单元322对从八叉树编码单元321(八叉树深度控制单元342)提供的八叉树模式数据进行二值化,以生成二进制数据。二值化单元322将所生成的二进制数据提供给无损编码单元323。

如图16所示的情况那样,无损编码单元323执行与无损编码有关的处理。例如,无损编码单元323对从二值化单元322提供的二进制数据执行无损编码,以生成位流(该位流是八叉树模式数据的编码数据)。

基于从八叉树编码单元321(八叉树深度控制单元342)提供的信息,无损编码单元323还将上述“预定标志信息(end_of_node_one_bit)”插入在位流中的、与由八叉树深度控制单元342指定为要设为叶节点的节点对应的位置处。

例如,无损编码单元323还将指定八叉树模式数据的八叉树模式的深度(级别的数量)的信息存储到例如包括在位流中的头部、参数集等中。无损编码单元323将所生成的位流输出至编码单元114的外部(换言之,编码装置100的外部)。

即,在这种情况下,无损编码单元223还生成包括“预定标志信息(end_of_node_one_bit)”(深度控制信息)的位流。

因此,在这种情况下,编码单元114还可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

<编码处理中的流程>

在这种情况下,将由编码装置100执行的编码处理中的流程也类似于以上参照图7所示的流程图描述的情况下的流程,并且因此在本文中不进行说明。

<几何数据编码处理中的流程>

接下来,参照图20和图21所示的流程图来描述在这种情况下在图7的步骤s104中执行的几何数据编码处理中的示例流程。

当在这种情况下开始几何数据编码处理时,八叉树构造单元341在图20的步骤s231中根据几何数据来构造八叉树模式并且生成八叉树模式数据。

在步骤s232中,八叉树深度控制单元342初始化八叉树模式中的处理目标节点。

在步骤s233中,八叉树深度控制单元342确定处理目标节点的级别是否为最低级别。当确定处理目标节点的级别不是最低级别时,处理进行至步骤s234。

在步骤s234中,八叉树深度控制单元342确定是否将处理目标节点设为末端。当确定要将处理目标节点变成末端,或者确定要将处理目标节点设为叶节点时,处理进行至步骤s235。

在步骤s235中,八叉树深度控制单元342将目标节点存储(指定)处理为要设为末端的节点(或末端位置)。此外,八叉树构造单元341删除处理目标节点的后代节点。即,将处理目标节点设为叶节点,并且删除属于该叶节点的后代节点。在步骤s235中的处理完成之后,处理进行至步骤s236。

另一方面,当在步骤s234中确定不将处理目标节点设为末端时,跳过步骤s235中的处理,并且处理进行至步骤s236。即,不编辑要设为末端的节点(仍然由八叉树构造单元341生成)。

另一方面,当在步骤s233中确定处理目标节点的级别为与几何数据(的体素)具有相同分辨率的级别的最低级别时,则跳过步骤s234和s235中的处理,并且处理进行至步骤s236。即,在最低级别处的节点中未设置任何位串,因此,不执行编辑(该节点仍然由八叉树构造单元341生成)。

在步骤s236中,八叉树深度控制单元342确定是否在步骤s231中生成的八叉树模式的所有节点已被处理。当确定存在未处理的节点时,处理进行至步骤s237。

在步骤s237中,八叉树深度控制单元342将处理目标节点设置为预顺序中的下一个节点。在更新处理目标节点之后,处理返回到步骤s233。即,针对与几何数据对应的八叉树模式的每个节点执行步骤s233至s237中的相应处理。

当在步骤s236中确定所有节点都已被处理时,处理然后进行至步骤s238。

在步骤s238中,二值化单元322对通过以上处理生成的与几何数据对应的八叉树模式数据进行二值化。在步骤s238中的处理完成之后,处理进行至图21。

在图21的步骤s241中,无损编码单元323初始化处理目标节点。

在步骤s242中,无损编码单元323读取在图20的步骤s238中生成的处理目标节点的二进制数据。

在图21的步骤s243中,无损编码单元323确定处理目标节点是否为在图20的步骤s204中存储(指定)的末端位置。当确定处理目标节点为末端位置时,处理进行至图21的步骤s244。

在步骤s244中,无损编码单元323将预定标志信息(end_of_node_one_bit)插入在位流中的、与处理目标节点对应的位置(该位置为末端位置)处。在步骤s244中的处理完成之后,处理进行至步骤s246。

另一方面,当在步骤s243中确定处理目标节点不是末端位置时,处理进行至步骤s245。

在步骤s245中,无损编码单元323对处理目标节点的二进制数据执行无损编码。在步骤s245中的处理完成之后,处理进行至步骤s246。

在步骤s246中,无损编码单元323确定是否所有二进制数据都已被处理。当确定存在未处理的二进制数据时,处理进行至步骤s247。

在步骤s247中,无损编码单元323将处理目标节点设置为预顺序中的下一个节点。在更新处理目标节点之后,处理返回到步骤s242。即,对八叉树模式的每个节点的二进制数据执行步骤s242至s247中的相应处理。

另一方面,当在步骤s246中确定所有二进制数据均已被处理时,几何数据编码处理结束,并且处理返回到图7。

当如上所述的那样执行相应处理时,在这种情况下,编码装置100还可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,已经将预顺序描述为八叉树模式扫描顺序的示例。然而,该扫描顺序可以是任何适当的顺序,并且不一定是预顺序。例如,扫描顺序可以是前导顺序、前顺序、经过顺序、中序、中间顺序、通过顺序、向后顺序、后继顺序、后序、返回顺序、级别顺序等。

<解码装置>

在这种情况下,对由编码装置100生成的位流进行解码的解码装置250也具有与以上参照图11描述的情况的配置类似的配置。

然而,例如,在这种情况下,深度控制信息可以是以下预定标志信息(end_of_node_one_bit),该预定标志信息指示“在位流中,在比八叉树模式的最低级别高的级别处的、与深度控制信息对应的特定节点是否为叶节点”。

利用这样的布置,解码单元261检测位流中的“预定标志信息”,以容易地识别“特定节点是叶节点”。

此外,如上所述,“预定标志信息”被插入在位流中的、与比八叉树模式的最低级别高的级别处的叶节点对应的位置,并且指示与该位置对应的节点是否为叶节点。

即,由插入到位流中的“标志信息(深度控制信息)”的位置来指示比八叉树模式的最低级别高的级别处的叶节点的位置。因此,在对位流进行解码以重构八叉树模式时,解码单元261检测(指定)位流中的“标志信息(深度控制信息)”的位置,以重构八叉树模式,使得形成位于比八叉树模式的最低级别高的级别处的叶节点。即,可以正确地对包括比最低级别高的级别处的叶节点的八叉树模式进行解码。

<解码单元>

图22是示出这种情况下的解码单元261的主要示例配置的框图。如图22所示,解码单元261包括末端检测单元371、无损解码单元372、多值转换单元373和几何重构单元374。

末端检测单元371执行与末端节点的检测有关的处理。例如,末端检测单元371检测插入到由编码装置100生成的位流中的“预定标志信息(end_of_node_one_bit)”,并且将该位置指定(存储)为末端位置。末端检测单元371将检测结果提供给无损解码单元372和多值转换单元373。

注意,末端检测单元371可以具有任何配置。例如,末端检测单元371可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与末端的检测有关的处理。

无损解码单元372执行与无损解码有关的处理。例如,无损解码单元372通过与无损编码单元323兼容的方法对由编码装置100生成的位流执行无损解码,以获得二进制数据。该无损解码方法可以是与无损编码单元323所使用的无损编码方法兼容的任何方法。例如,无损解码方法可以是cabac。

此外,在该阶段,无损解码单元372从由末端检测单元371在位流中检测到的末端位置(插入“预定标志信息(end_of_node_one_bit)”的位置)中删除“预定标志信息(end_of_node_one_bit)”。

无损解码单元372将如上所述的那样获得的二进制数据提供给多值转换单元373。

注意,无损解码单元372可以具有任何配置。例如,无损解码单元372可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与无损解码有关的处理。

多值转换单元373执行与多值转换有关的处理。例如,多值转换单元373对从无损解码单元372提供的二进制数据执行多值转换,以重构八叉树模式并且生成八叉树模式数据。在该阶段,末端检测单元371根据末端位置检测的结果控制多值转换单元373,以控制八叉树模式的重构。

例如,在重构八叉树模式时,多值转换单元373将与由末端检测单元371在位流中检测到的(指定的)末端位置对应的节点转换成末端(叶节点),并且禁止构造属于该节点的任何后代节点。通过这样做,多值转换单元373可以重构八叉树模式,使得在由“指定八叉树模式的深度的信息”指定的比八叉树模式的最低级别高的级别处形成叶节点。

多值转换单元373将以这种方式获得的八叉树模式数据提供给几何重构单元374。

注意,多值转换单元373可以具有任何配置。例如,多值转换单元373可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与多值转换有关的处理。

几何重构单元374执行与几何数据的重构有关的处理。例如,几何重构单元374使用从多值转换单元373提供的八叉树模式数据来重构几何数据。几何重构单元374将获得的几何数据提供给点云处理单元262(图11)。

注意,几何重构单元374可以具有任何配置。例如,几何重构单元374可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与几何数据的重构有关的处理。

如上所述,末端检测单元371至多值转换单元373对位流进行解码,并且基于插入到位流中的预定标志信息(深度控制信息)来构造包括与最低级别不同的级别处的叶节点的八叉树模式。

因此,在要经受八叉树编码的点云中,可以部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,对位流进行解码的方法可以是与编码方法兼容的任何方法,并且不限于上述示例。例如,可以利用cavlc对位流进行解码。即,在这种情况下,位流已经利用cavlc进行编码。在这种情况下,代替无损解码单元372和多值转换单元373,可以提供进行cavlc的无损解码单元。

<解码处理中的流程>

在这种情况下,将由解码装置250执行的解码处理中的流程也类似于以上参照图13所示的流程图描述的情况下的流程,并且因此,在本文中不进行说明。

<位流解码处理中的流程>

现在参照图23所示的流程图,描述在图13的步骤s161中执行的位流解码处理中的示例流程。

当开始位流解码处理时,末端检测单元371在步骤s261中读取位流。

在步骤s262中,末端检测单元371在位流中搜索预定标志信息(end_of_node_one_bit)并且确定是否已经检测到预定标志信息。当确定已经检测到预定标志信息(end_of_node_one_bit)时,处理进行至步骤s263。

在步骤s263中,末端检测单元371存储(指定)已经检测到预定标志信息(end_of_node_one_bit)的位置作为末端位置。

在步骤s264中,无损解码单元372从在步骤s261中读取的位流中的、在步骤s263中指定的末端位置中删除预定标志信息(end_of_node_one_bit)。

在步骤s264中的处理完成之后,处理进行至步骤s265。另一方面,当在步骤s262中确定未检测到预定标志信息(end_of_node_one_bit)时,跳过步骤s263和s264中的处理,并且处理进行至步骤s265。

在步骤s265中,无损解码单元372对在步骤s261中读取的位流执行无损解码。

在步骤s266中,无损解码单元372确定是否所有位流都已经被处理。当确定存在未处理的位流时,处理返回到步骤s261。针对相应的位流重复执行步骤s261至s266中的处理。当在步骤s266中确定所有位流均已被处理时,处理进行至步骤s267。

在步骤s267中,多值转换单元373读取通过步骤s265中的处理获得的二进制数据。

在步骤s268中,多值转换单元373确定在步骤s263中指定的末端位置是否包括在二进制数据中。当确定包括末端位置时,处理进行至步骤s269。

在步骤s269中,多值转换单元373以与末端位置对应的节点为末端(叶节点),对二进制数据执行多值转换。即,多值转换单元373对二进制数据执行多值转换,并且重构其中与末端位置对应的节点是末端(叶节点)的八叉树模式。即,深度控制信息(末端标识位模式的位串)反映在要重构的八叉树模式中。

在步骤s269中的处理完成之后,处理进行至步骤s271。另一方面,当在步骤s268中确定末端位置不包括在二进制数据中时,处理进行至步骤s270。

在步骤s270中,多值转换单元373对二进制数据执行多值转换,并且以与一般八叉树模式的情况下的方式相似的方式重构八叉树模式。在步骤s270中的处理完成之后,处理进行至步骤s271。

在步骤s271中,多值转换单元373确定是否所有二进制数据都已被处理。当存在未处理的二进制数据时,处理返回到步骤s267,其中未处理的二进制数据是新的处理目标。即,针对所有二进制数据执行步骤s267至s271中的处理。当在步骤s271中确定所有二进制数据均已被处理时,处理然后进行至步骤s272。

在步骤s272中,几何重构单元374使用通过以上处理获得的八叉树模式数据来重构几何数据。

当步骤s272中的处理完成时,位流解码处理结束,并且处理返回到图13。

当如上所述的那样执行相应处理时,解码装置250可以在要经受八叉树编码的点云中部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

<4.第三实施方式>

<split_voxel_flag>

注意,“深度控制信息”可以是任何适当的信息,但是例如可以是“关于将后代节点添加到八叉树模式的最低级别处的、与深度控制信息对应的特定节点的添加信息”。利用这样的布置,可以基于包括在位流中的“添加信息”,在解码侧添加特定节点的后代节点。

此外,可以将添加信息插入在位流中的、与要添加后代节点的八叉树模式的最低级别处的节点对应的位置处。利用这样的布置,在解码侧,可以容易地从已插入“添加信息”的位置指定要添加后代节点的节点(或与添加信息对应的节点)。

例如,如图24所示的八叉树模式中那样,针对最低级别处的一些节点设置“添加信息”。该“添加信息”包括关于后代节点的添加的信息。该“添加信息”可以包括任何适当的特定内容。例如,“添加信息”可以包括以下预定标志信息(split_voxel_flag),该预定标志信息指示是否进一步划分与位流中的、已插入添加信息的位置对应的节点。此外,例如,“添加信息”还可以包括关于要添加的后代节点的深度的信息。利用这样的布置,可以基于添加信息来添加具有更多不同配置的后代节点。

例如,在图24所示的情况下,“预定标志信息(split_voxel_flag)”被设置为八叉树模式中的最低级别处的从右边起第二个节点中的添加信息。基于该信息,将子节点添加到该节点。

换言之,利用这样的“添加信息(深度控制信息)”,可以在八叉树模式中表示对点的分辨率的部分控制。即,可以在要经受八叉树编码的点云中部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。

换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,该“标志信息”的名称(语法)可以是任何适当的名称,并且可以不是“split_voxel_flag”。该“标志信息(split_voxel_flag)”的值也可以是任何适当的值。例如,该值可以是“1”,或可以是“0”。此外,该“标志信息”可以由多个位形成。此外,该“标志信息”可以包括不是指示叶节点的信息的信息。此外,可以在所有节点中设置该“标志信息”,并且其值可以指示是否要添加后代节点。注意,该“标志信息”可以包括指示后代节点的所有配置的信息,并且在八叉树模式的最低级别(基于指定八叉树模式的深度的信息的最低级别)处的节点中设置的“标志信息”可以表示要添加的所有后代节点。即,当添加多个层次级别的后代节点时,可以例如由在八叉树模式的最低级别处的节点中设置的一条“标志信息”来表示要添加的所有后代节点。此外,该“标志信息”可以仅包括关于所设置的节点的划分的信息。即,例如,当添加多个层次级别的后代节点时,可以在每个后代节点中设置该“标志信息”,使得多个层次级别的后代节点被表示。

此外,如果已经明确与叶节点的对应关系,则该“标志信息”可以被插入在位流中的除了对应节点的位置之外的位置处。例如,该“标志信息”可以被集中存储在头部、参数集等中。替选地,该“标志信息”可以被包括在与八叉树模式数据的位流不同的位流中。在这些情况下,也需要指示哪个“标志信息”对应于哪个叶节点的信息。

<编码单元>

图25是示出这种情况下的编码单元114(图3)的主要示例配置的框图。如图25所示,在这种情况下,编码单元114包括八叉树深度控制单元421、添加信息生成单元422、八叉树编码单元423、二值化单元424和无损编码单元425。

八叉树深度控制单元421执行与八叉树模式的深度有关的控制。例如,八叉树深度控制单元421控制添加信息生成单元422,以控制添加信息(其是添加后代节点的信息)的生成,并且控制八叉树模式的深度。

注意,八叉树深度控制单元421可以具有任何配置。例如,八叉树深度控制单元421可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与八叉树深度控制有关的处理。

添加信息生成单元422生成由八叉树深度控制单元421指定的节点(最低级别处的叶节点)的添加信息。添加信息生成单元422将所生成的添加信息提供给无损编码单元425。

注意,添加信息生成单元422可以具有任何配置。例如,添加信息生成单元422可包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与添加信息的生成有关的处理。

八叉树编码单元423执行与八叉树编码有关的处理。例如,八叉树编码单元423对从体素设置单元113提供的体素数据的几何数据(位置信息)执行八叉树编码,以生成八叉树模式数据。

如图25所示,八叉树编码单元423包括八叉树构造单元431。

八叉树构造单元431执行与八叉树模式的构造有关的处理。例如,八叉树构造单元431基于几何数据来构造八叉树模式,并且生成与几何数据对应的八叉树模式数据。八叉树编码单元423(八叉树构造单元431)将所生成的八叉树模式数据提供给二值化单元424。

注意,八叉树编码单元423(八叉树构造单元431)可以具有任何配置。例如,八叉树编码单元423可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与八叉树编码有关的处理。

二值化单元424执行与二值化有关的处理。例如,二值化单元424对从八叉树编码单元423提供的八叉树模式数据进行二值化,以生成二进制数据。二值化单元424将所生成的二进制数据提供给无损编码单元425。

注意,二值化单元424可以具有任何配置。例如,二值化单元424可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与二值化有关的处理。

无损编码单元425执行与无损编码有关的处理。例如,无损编码单元425对从二值化单元424提供的二进制数据执行无损编码,以生成位流(该位流是八叉树模式数据的编码数据)。执行无损编码的这种方法可以是任何适当的方法,并且可以是例如cabac。

无损编码单元425还对从添加信息生成单元422提供的添加信息执行无损编码,并且将添加信息插入在位流中的、与要添加后代节点的叶节点对应的位置处。无损编码单元425还将指定八叉树模式数据的八叉树模式的深度(级别的数量)的信息存储到包括在位流中的头部、参数集等中。

无损编码单元425将所生成的位流输出至编码单元114的外部(换言之,编码装置100的外部)。

注意,无损编码单元425可以具有任何配置。例如,无损编码单元425可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与无损编码有关的处理。

如上所述,当将后代节点进一步添加到八叉树模式的最低级别处的叶节点时,无损编码单元425将添加信息(深度控制信息)插入在位流中的、与该节点对应的位置处。

因此,在要经受八叉树编码的点云中,可以部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,可以使用任何适当的方法来对八叉树模式数据进行编码。例如,八叉树模式数据可以利用基于上下文的自适应可变长度代码(cavlc)进行编码。在这种情况下,代替二值化单元424和无损编码单元425,可以提供进行cavlc的无损编码单元。

<编码处理中的流程>

在这种情况下,将由编码装置100执行的编码处理中的流程也类似于以上参照图7所示的流程图描述的情况下的流程,因此在本文中不进行说明。

<几何数据编码处理中的流程>

接下来,参照图26所示的流程图来描述在这种情况下在图7的步骤s104中执行的几何数据编码处理中的示例流程。

当开始几何数据编码处理时,八叉树深度控制单元421在图26的步骤s291中初始化八叉树模式中的处理目标节点。

在步骤s292中,八叉树深度控制单元421确定处理目标节点的级别是否为最低级别。当确定处理目标节点的级别不是最低级别时,处理进行至步骤s293。

在步骤s293中,八叉树深度控制单元421确定是否在处理目标节点处加深八叉树,或者是否添加子节点。当确定要使八叉树更深(要添加子节点)时,处理进行至步骤s294。

在步骤s294中,添加信息生成单元422生成添加信息,该添加信息包括与要添加到处理目标节点的后代节点有关的信息(例如,split_voxel_flag等)。

在完成步骤s294中的处理之后,处理进行至步骤s296。另一方面,当在步骤s293中确定不使八叉树更深(即,不将任何子节点添加到处理目标节点)时,跳过步骤s294中的处理,并且处理进行至步骤s296。

另一方面,当在步骤s292中确定处理目标节点不是在最低级别处时,处理进行至步骤s295。

在步骤s295中,基于几何数据,八叉树编码单元423(八叉树构造单元431)生成具有子节点的位模式的位串,并且将该位串设置在处理目标节点中。在步骤s295中的处理完成之后,处理进行至步骤s296。

在步骤s296中,八叉树深度控制单元421确定是否所有节点都已被处理。当确定未构造与几何数据对应的八叉树模式并且存在未处理的节点时,处理进行至步骤s297。

在步骤s297中,八叉树深度控制单元421将处理目标节点设置为预顺序中的下一个节点。在更新处理目标节点之后,处理返回到步骤s292。即,针对与几何数据对应的八叉树模式的每个节点执行步骤s292至s297中的相应处理。

当在步骤s296中确定已经构造了与几何数据对应的八叉树模式并且已经处理所有节点时,处理接着进行至步骤s298。

在步骤s298中,二值化单元424对通过以上处理生成的与几何数据对应的八叉树模式数据进行二值化。

在步骤s299中,无损编码单元425将添加信息添加到与二进制数据中的要添加后代节点的节点对应的位置。

在步骤s300中,无损编码单元425对二进制数据执行无损编码,以生成位流。

当步骤s300中的处理完成时,几何数据编码处理结束,并且处理返回到图7。

当如上所述的那样执行相应处理时,在这种情况下,编码装置100还可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,已经将预顺序描述为八叉树模式扫描顺序的示例。然而,该扫描顺序可以是任何适当的顺序,并且不一定是预顺序。例如,扫描顺序可以是前导顺序、前顺序、经过顺序、中序、中间顺序、通过顺序、向后顺序、后继顺序、后序、返回顺序、级别顺序等。

<解码装置>

在这种情况下,对由编码装置100生成的位流进行解码的解码装置250也具有与以上参照图11描述的情况的配置类似的配置。

然而,在这种情况下,例如,深度控制信息可以是“关于将后代节点添加到八叉树模式的最低级别处的、与深度控制信息对应的特定节点的添加信息”。

利用这样的布置,解码单元261检测位流中的“添加信息”,以容易地识别“要被添加到特定节点的后代节点”。

注意,如上所述,可以在位流中的、与八叉树模式的最低级别处的要添加后代节点的节点对应的位置处插入该“添加信息”。即,八叉树模式的最低级别处的、将添加后代节点的节点(叶节点)的位置可以由插入到位流中的“添加信息(深度控制信息)”的位置来指示。

而且,如上所述,“添加信息”可以包括以下预定标志信息(split_voxel_flag),该预定标志信息指示是否进一步划分与位流中的、已经插入添加信息的位置对应的节点。此外,如上所述,“添加信息”还可以包括关于要添加的后代节点的深度的信息。利用这样的布置,可以基于添加信息来添加具有更多种不同配置的后代节点。

利用这样的布置,当对位流进行解码以重构八叉树模式时,解码单元261检测(指定)“添加信息(深度控制信息)”在位流中的位置,以重构八叉树模式,使得将后代节点添加到八叉树模式的最低级别处的、与添加信息对应的节点。即,可以正确地对包括添加到最低级别处的叶节点的后代节点的八叉树模式进行解码。

<解码单元>

图27是示出这种情况下的解码单元261的主要示例配置的框图。如图27所示,解码单元261包括无损解码单元471、添加信息检测单元472、多值转换单元473、重构控制单元474和几何重构单元475。

无损解码单元471执行与无损解码有关的处理。例如,无损解码单元471通过与无损编码单元425兼容的方法,对由编码装置100生成的位流执行无损解码,以获得二进制数据。该无损解码方法可以是与无损编码单元425所使用的无损编码方法兼容的任何方法。例如,无损解码方法可以是cabac。

无损解码单元471将如上所述获得的二进制数据提供给添加信息检测单元472和多值转换单元473。

注意,无损解码单元471可以具有任何配置。例如,无损解码单元471可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与无损解码有关的处理。

添加信息检测单元472执行与添加信息的检测有关的处理。例如,添加信息检测单元472检测包括在位流中的添加信息。然后,添加信息检测单元472将检测到的添加信息提供给重构控制单元474。

注意,添加信息检测单元472可以具有任何配置。例如,添加信息检测单元472可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与添加信息的检测有关的处理。

多值转换单元473执行与多值转换有关的处理。例如,多值转换单元473对从无损解码单元471提供的二进制数据执行多值转换,以重构八叉树模式并且生成八叉树模式数据。多值转换单元473将以这种方式获得的八叉树模式数据提供给几何重构单元475。

注意,多值转换单元473可以具有任何配置。例如,多值转换单元473可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与多值转换有关的处理。

重构控制单元474执行与重构控制有关的处理。例如,重构控制单元474基于由添加信息检测单元472检测到的添加信息来控制几何重构单元475,使得将与添加信息对应的后代节点添加到八叉树模式中的最低级别处的与添加信息对应的节点,并且重构反映添加的几何数据。

注意,重构控制单元474可以具有任何配置。例如,重构控制单元474可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与重构控制有关的处理。

几何重构单元475执行与几何数据的重构有关的处理。例如,在重构控制单元474的控制下,几何重构单元475使用从多值转换单元373提供的八叉树模式数据来重构几何数据。即,几何重构单元475将与添加信息对应的后代节点添加到八叉树模式的最低级别处的与添加信息对应的节点,并且因此重构反映该添加的几何数据。

几何重构单元475将获得的几何数据提供给点云处理单元262(图11)。

注意,几何重构单元475可以具有任何配置。例如,几何重构单元475可以包括cpu、rom、ram等,并且cpu可以将存储在rom等中的程序和数据加载到ram中,并且执行程序以执行与几何数据的重构有关的处理。

如上所述,无损解码单元471至几何重构单元475对位流进行解码,基于插入到位流中的预定标志信息(深度控制信息)来构建包括与最低级别不同的级别处的叶节点的八叉树模式,并且基于八叉树模式来重构几何数据。即,解码单元261可以获得分辨率被部分控制的八叉树模式,并且获得与该八叉树模式对应的几何数据。

因此,在要经受八叉树编码的点云中,可以部分地控制点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

注意,对位流进行解码的方法可以是与编码方法兼容的任何方法,并且不限于上述示例。例如,可以利用cavlc对位流进行解码。即,在这种情况下,位流已经利用cavlc进行编码。在那种情况下,代替无损解码单元471和多值转换单元473,可以提供进行cavlc的无损解码单元。

<解码处理中的流程>

在这种情况下,将由解码装置250执行的解码处理中的流程也类似于以上参照图13所示的流程图描述的情况下的流程,因此,在本文中不进行说明。

<位流解码处理中的流程>

现在参照图28所示的流程图来描述将在图13的步骤s161中执行的位流解码处理中的示例流程。

当开始位流解码处理时,无损解码单元471在步骤s321中对位流执行无损解码,以获得二进制数据。

在步骤s322中,添加信息检测单元472确定在步骤s321中获得的二进制数据中是否包括添加信息。当确定在二进制数据中包括添加信息时,处理进行至步骤s323。

在步骤s323中,多值转换单元473对二进制数据执行多值转换,以生成直到最低级别的八叉树模式数据。此外,基于检测到的添加信息,重构控制单元474将与该添加信息对应的后代节点添加到八叉树模式的最低级别处的与添加信息对应的节点。在步骤s323中的处理完成之后,处理进行至步骤s325。

另一方面,当在步骤s322中确定在二进制数据中不包括添加信息时,处理进行至步骤s324。

在步骤s324中,多值转换单元473对二进制数据执行多值转换,以生成直到最低级别的八叉树模式数据。在步骤s324中的处理完成之后,处理进行至步骤s325。

在步骤s325中,几何重构单元475重构与八叉树模式对应的几何数据。当后代节点被添加到八叉树模式时,几何重构单元475重构反映添加的几何数据。

当步骤s325中的处理完成时,位流解码处理结束,并且处理返回到图13。

当如上所述的那样执行相应处理时,解码装置250可以部分地控制在要经受八叉树编码的点云中的点的分辨率(或者可以部分地控制可以设为树结构的数据组的分辨率)。换言之,即使当部分地控制点云中的点的分辨率时,也可以应用八叉树编码(或者即使当部分地控制数据组的分辨率时,也可以将数据组设为树结构)。因此,可以防止编码效率的降低。

<5.其他方面>

<控制信息>

可以将在以上每个实施方式中描述的与本技术有关的控制信息从编码侧传送至解码侧。例如,可以传送用于控制是否允许(或禁止)上述本技术的应用的控制信息(例如,enabled_flag)。此外,例如,可以传送指定允许(或禁止)应用上述本技术的块大小的上限和/或下限的控制信息。

<软件>

上述一系列处理可以由硬件执行或可以由软件执行。替选地,一些处理可以由硬件执行,而其他处理可以由软件执行。当一系列处理要由软件执行时,将形成软件的程序安装到计算机中。此处,例如,计算机可以是结合到专用硬件中的计算机,或者可以是通用个人计算机等,其可以在安装有各种程序时执行各种功能。

图29是示出根据程序执行上述一系列处理的计算机的硬件的示例配置的框图。

在图29所示的计算机900中,中央处理单元(cpu)901、只读存储器(rom)902和随机存取存储器(ram)903通过总线904彼此连接。

输入/输出接口910也连接至总线904。输入单元911、输出单元912、存储单元913、通信单元914和驱动器915连接至输入/输出接口910。

输入单元911例如由键盘、鼠标、麦克风、触摸面板、输入端等形成。输出单元912例如由显示器、扬声器、输出端等形成。存储单元913例如由硬盘、ram盘、非易失性存储器等形成。通信单元914例如形成有网络接口。驱动器915驱动诸如磁盘、光盘、磁光盘或半导体存储器的可移动介质921。

在具有上述结构的计算机中,cpu901例如经由输入/输出接口910和总线904将存储在存储单元913中的程序加载到ram903中,并且执行程序,使得执行上述一系列处理。ram903还根据需要存储cpu901执行各种处理等所需的数据。

例如,可以由计算机(cpu901)执行的程序被记录在作为要使用的封装介质等的可移动介质921上。在这种情况下,当可移动介质921被安装在驱动器915上时,该程序可以经由输入/输出接口910被安装到存储单元913中。替选地,该程序可以经由诸如局域网、因特网或数字卫星广播的有线或无线传输介质来提供。在这种情况下,程序可以由通信单元914接收,并且被安装到存储单元913中。此外,该程序可以被预先安装到rom902或存储单元913中。

<补充>

本技术的实施方式不限于上述实施方式,并且在不脱离本技术的范围的情况下可以对本技术的实施方式进行各种修改。

例如,本技术还可以体现为装置或系统(例如用作系统大规模集成(lsi)的处理器、使用处理器等的模块、使用模块等的单元、具有添加到该单元的其他功能的设备(或装置中的配置)等)的配置。

注意,在本说明书中,系统是指部件(装置、模块(零件)等)的组装,并且并非所有部件都需要设置在同一壳体中。鉴于此,容纳在不同壳体中并且经由网络彼此连接的装置形成系统,并且具有容纳在一个壳体中的模块的一个装置也是系统。

此外,上述每个处理单元可以由具有上述处理单元的功能的任何配置形成。例如,每个处理单元可以由适当的电路、lsi、系统lsi、处理器、模块、单元、设备(set)、装置、仪器(apparatus)、系统等。替选地,这些配置中的一些可以被组合。例如,可以组合相同类型的配置,例如多个电路和多个处理器,或者可以组合不同类型的配置,例如电路和lsi。

此外,例如,以上描述为一个装置(或一个处理单元)的任何配置可以被划分成多个装置(或处理单元)。相反,以上描述为多个装置(或处理单元)的任何配置可以被组合为一个装置(或一个处理单元)。此外,当然可以将除上述部件之外的部件添加到任何装置(或处理单元)的配置中。此外,装置(或处理单元)的一些部件可以并入另一设备(或处理单元)的配置中,只要整个系统的配置和功能保持基本相同即可。

例如,本技术还可以体现在云计算配置中,在云计算配置中,一种功能经由网络在多个装置之间共享,并且处理由彼此协作的装置执行。

此外,例如,上述程序可以由任何适当的装置执行。在这种情况下,装置应该具有必要的功能(功能块等),使得可以获得必要的信息。

同时,例如,参照上述流程图描述的相应步骤可以由一个装置执行,或者可以在多个装置之间共享。此外,当在一个步骤中包括多个处理时,该步骤中包括的多个处理可以由一个装置执行或者可以在多个装置之间共享。换言之,一个步骤中包括的多个处理可以被执行为多个步骤的处理。相反,描述为多个步骤的处理可以作为一个步骤被集中执行。

由计算机执行的程序可以是用于按照本说明书中描述的顺序按时间顺序根据程序执行步骤中的处理的程序,或者可以是用于必要时(例如存在调用时)并行执行处理或执行处理的程序。即,只要没有矛盾,则可以以与上述顺序不同的顺序执行相应步骤中的处理。此外,根据该程序的步骤中的处理可以与根据另一程序的处理并行执行,或者可以与根据另一程序的处理组合执行。

只要没有矛盾,本说明书中描述的多种本技术可以彼此独立地实现。当然也可以实现多种本技术中的一些的组合。例如,在一个实施方式中描述的本技术的部分或全部可以与在另一个实施方式中描述的本技术的部分或全部结合实现。此外,上述本技术的部分或全部可以与以上未描述的一些其他技术结合实现。

注意,本技术还可以体现在以下描述的配置中。

(1)一种信息处理装置,包括:

编码单元,其对作为八叉树模式的数据的八叉树模式数据进行编码,以生成包含以下深度控制信息的位流,所述深度控制信息基于指定八叉树模式的深度的信息指示将在八叉树模式的、与最低级别不同的级别处形成的叶节点。

(2)根据(1)所述的信息处理装置,其中,

所述深度控制信息是以下预定位串,所述预定位串指示比所述八叉树模式的最低级别高的级别处的、与所述深度控制信息对应的特定节点是叶节点。

(3)根据(2)所述的信息处理装置,其中,

所述预定位串被设置在所述八叉树模式数据中的比所述八叉树模式的最低级别高的级别处的节点中,并且具有指示设置有所述预定位串的所述节点是叶节点的位模式;并且

所述编码单元对所述预定位串被设置在比所述八叉树模式的最低级别高的级别处的叶节点中的所述八叉树模式数据进行编码,以生成所述位流。

(4)根据(3)所述的信息处理装置,其中,

所述预定位串的位模式是不用于在不是所述八叉树模式的所述叶节点的节点中设置的位串的位模式。

(5)根据(4)所述的信息处理装置,其中,

所述位模式是“00000000”。

(6)根据(3)至(5)中任一项的信息处理装置,还包括:

设置单元,其将所述预定位串设置在与所述八叉树模式的最低级别不同的级别处的期望节点中,

其中,所述编码单元对包括由所述设置单元设置的所述预定位串的所述八叉树模式数据进行编码,以生成所述位流。

(7)根据(6)所述的信息处理装置,其中,

所述设置单元设置所述位串,以在对通过量化点云数据获得的体素数据进行八叉树编码以生成所述八叉树模式时,将比所述八叉树模式的最低级别高的级别处的期望节点设为叶节点。

(8)根据(6)所述的信息处理装置,其中,

所述设置单元将比所述八叉树模式的最低级别高的级别处的期望节点设为所述八叉树模式数据中的叶节点,并且设置所述位串。

(9)根据(1)至(8)中的任一项所述的信息处理装置,其中,

在所述位流中,所述深度控制信息是以下预定标志信息,所述预定标志信息指示所述八叉树模式的最低级别高的级别处、与所述深度控制信息对应的特定节点是否为叶节点。

(10)根据(9)所述的信息处理装置,其中,

所述编码单元将所述预定标志信息插入在位流中的、与比所述八叉树模式的最低级别高的级别处的叶节点对应的位置处,所述预定标志信息指示与所述位置对应的节点是否为叶节点。

(11)根据(10)所述的信息处理装置,还包括:

指定单元,其指定与所述八叉树模式的最低级别不同的级别处的、要设为叶节点的节点,

其中,所述编码单元将所述预定标志信息插入在由所述指定单元在所述位流中指定的节点对应的位置处。

(12)根据(11)所述的信息处理装置,其中,

所述指定单元将期望节点指定为要设为叶节点的节点,以在对通过量化点云数据获得的体素数据进行八叉树编码时,将比所述八叉树模式的最低级别高的级别处的期望节点设为叶节点。

(13)根据(11)所述的信息处理装置,其中,

所述指定单元将比所述八叉树模式的最低级别高的级别处的期望节点设为所述八叉树模式数据中的叶节点,并且将所述期望节点指定为要设为叶节点的节点。

(14)根据(1)至(13)中任一项的信息处理装置,其中,

所述深度控制信息是关于将后代节点添加到所述八叉树模式的最低级别处的、与所述深度控制信息对应的特定节点的添加信息。

(15)根据(14)所述的信息处理装置,其中,

所述编码单元将所述添加信息插入在所述位流中的、与所述八叉树模式的最低级别处的节点对应的位置处,所述后代节点被添加到所述节点。

(16)根据(15)所述的信息处理装置,其中,

所述添加信息包括以下预定标志信息,所述预定标志信息指示是否进一步划分所述位流中的、与插入所述添加信息的位置对应的节点。

(17)根据(16)所述的信息处理装置,其中,

所述添加信息还包括关于要添加的所述后代节点的深度的信息。

(18)根据(14)至(17)中任一项的信息处理装置,还包括:

生成单元,其生成所述添加信息,

其中,所述编码单元将由所述生成单元生成的添加信息插入在所述位流中的、与所述八叉树模式的最低级别处的要添加所述后代节点的节点对应的位置处。

(19)一种信息处理方法,包括:

对作为八叉树模式的数据的八叉树模式数据进行编码,以生成包含以下深度控制信息的位流,所述深度控制信息指示将在与基于指定所述八叉树模式的深度的信息的最低级别不同的级别处形成叶节点。

(21)一种信息处理装置,包括:

解码单元,其对位流进行解码,以基于以下深度控制信息来构造包括与最低级别不同的级别处的叶节点的八叉树模式,所述深度控制信息基于指定所述八叉树模式的深度的信息指示将在与最低级别不同的级别处形成所述叶节点。

(22)根据(21)所述的信息处理装置,其中,

所述深度控制信息是以下预定位串,所述预定位串指示比所述八叉树模式的最低级别高的级别处的、与所述深度控制信息对应的特定节点是叶节点。

(23)根据(22)所述的信息处理装置,其中,

所述预定位串被设置在比所述八叉树模式的最低级别高的级别处的叶节点中,并且具有指示设置有所述预定位串的节点是叶节点的位模式。

(24)根据(23)所述的信息处理装置,其中,

所述预定位串的位模式是不用于在不是所述八叉树模式的叶节点的节点中设置的位串的位模式。

(25)根据(24)所述的信息处理装置,其中,

所述位模式是“00000000”。

(26)根据(21)至(25)中的任一项所述的信息处理装置,其中,

在所述位流中,所述深度控制信息是以下预定标志信息,所述预定标志信息指示比所述八叉树模式的最低级别高的级别处的、与所述深度控制信息对应的特定节点是否为叶节点。

(27)根据(26)所述的信息处理装置,其中,

所述预定标志信息被插入在所述位流中的、与比所述八叉树模式的最低级别高的级别处的叶节点对应的位置处,并且指示与所述位置对应的节点是否为叶节点。

(28)根据(27)所述的信息处理装置,还包括:

检测单元,其检测包括在所述位流中的所述预定标志信息,

其中,所述解码单元基于由所述检测单元检测到的所述预定标志信息来构造所述八叉树模式。

(29)根据(21)至(28)中任一项的信息处理装置,其中,

所述深度控制信息是关于将后代节点添加到所述八叉树模式的最低级别处的、与所述深度控制信息对应的特定节点的添加信息。

(30)根据(29)所述的信息处理装置,其中,

所述添加信息被插入在所述位流中的、与所述八叉树模式的最低级别处的节点对应的位置处,所述后代节点被添加到所述节点。

(31)根据(30)所述的信息处理装置,其中,

所述添加信息包括以下预定标志信息,所述预定标志信息指示是否进一步划分与所述位流中的、插入所述添加信息的所述位置对应的节点。

(32)根据(31)所述的信息处理装置,其中,

所述添加信息还包括关于要添加的所述后代节点的深度的信息。

(33)根据(30)至(32)中的任一项所述的信息处理装置,还包括:

检测单元,其检测包括在所述位流中的所述添加信息,

其中,所述解码单元基于由所述检测单元检测到的添加信息来添加与在所述八叉树模式的最低级别处的节点处生成的所述添加信息对应的所述后代节点。

(34)一种信息处理方法,包括:

对位流进行解码,并且基于深度控制信息构造包括与最低级别不同的级别处的叶节点的八叉树模式,所述深度控制信息基于指定八叉树模式的深度的信息指示将在与所述最低级别不同的级别处形成所述叶节点。

附图标记列表

100编码装置

101控制单元

111预处理单元

112边界框设置单元

113体素设置单元

114编码单元

221八叉树编码单元

222二值化单元

223无损编码单元

231八叉树深度控制单元

232八叉树构造单元

241八叉树构造单元

242八叉树深度控制单元

250解码装置

261解码单元

262点云处理单元

271无损解码单元

272末端检测单元

273多值转换单元

274几何重构单元

321八叉树编码单元

322二值化单元

323无损编码单元

331八叉树深度控制单元

332八叉树构造单元

341八叉树构造单元

342八叉树深度控制单元

371末端检测单元

372无损解码单元

373多值转换单元

374几何重构单元

421八叉树深度控制单元

422添加信息生成单元

423八叉树编码单元

424二值化单元

425无损编码单元

431八叉树构造单元

471无损解码单元

472添加信息检测单元

473多值转换单元

474重构控制单元

475几何重构单元

900计算机

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1