图像处理装置和方法与流程

文档序号:25038193发布日期:2021-05-11 17:11阅读:96来源:国知局
图像处理装置和方法与流程

本公开内容涉及图像处理装置和方法,并且特别地涉及能够更容易地执行对3d数据的部分解码的图像处理装置和方法。



背景技术:

常规地,例如,存在使用八叉树(octree)进行编码例如作为对表示三维结构(例如点云)的3d数据进行编码的方法(例如,参见非专利文献1)。

八叉树是通过将通过量化位置信息而获得的体素转换为树结构而获得的,并且在节点之间具有依赖关系。因此,即使在对八叉树的一部分进行解码的情况下,在搜索整个八叉树并再现整个八叉树的配置之后,也需要切出期望的区域。因此,不必要地增加了诸如存储器的资源的处理量和使用量。

顺便提及,在对二维图像进行编码的情况下,存在以分布处理为目的将帧划分成片(slice)和图块(tile)的方法。此外,在3d数据的情况下,当三维空间区域被划分为小区域并且每个小区域被独立地编码为这样的片和图块时,可以容易地对每个小区域进行独立解码。

引用列表

非专利文献

非专利文献1:r.mekuria,studentmemberieee,k.blom,p.cesar.,member,ieee,“design,implementationandevaluationofapointcloudcodecfortele-immersivevideo”,tcsvt_paper_submitted_february.pdf



技术实现要素:

技术问题

然而,利用对通过划分整个这样的区域而获得的每个小区域进行解码的方法,对每个小区域的位置、形状、大小等存在限制。因此,难以独立地对具有可选位置、可选形状和可选大小的部分区域进行解码。另外,由于需要在不必要的区域等中对3d数据进行解码,因此可能不必要地增加诸如存储器的资源的处理量和使用量。

鉴于这样的情况而提出了本公开内容。本公开内容使得能够更容易地执行对3d数据的部分解码。

问题的解决方案

根据本技术的一个方面的图像处理装置是如下图像处理装置,该图像处理装置包括管理信息生成部,该管理信息生成部被配置成生成作为预定三维空间区域中的部分区域的块的管理信息,该预定三维空间区域包括表示三维结构的3d数据。

根据本技术的一个方面的图像处理方法是如下图像处理方法,该方法包括生成作为预定三维空间区域中的部分区域的块的管理信息,该预定三维空间区域包括表示三维结构的3d数据。

根据本技术的另一方面的图像处理装置是如下图像处理装置,该图像处理装置包括:块选择部,该块选择部被配置成基于作为包括表示三维结构的3d数据的预定三维空间区域中的部分区域的块的管理信息,选择满足由用户指定的条件的块;以及解码部,该解码部被配置成对由块选择部选择的块内的3d数据的编码数据进行解码。

根据本技术的另一方面的图像处理方法是如下图像处理方法,该方法包括:基于作为包括表示三维结构的3d数据的预定三维空间区域中的部分区域的块的管理信息,选择满足由用户指定的条件的块;以及对所选择的块内的3d数据的编码数据进行解码。

在根据本技术的一个方面的图像处理装置和方法中,生成作为预定三维空间区域中的部分区域的块的管理信息,该预定三维空间区域包括表示三维结构的3d数据。

在根据本技术的另一方面的图像处理装置和方法中,基于作为包括表示三维结构的3d数据的预定三维空间区域中的部分区域的块的管理信息来选择满足由用户指定的条件的块,并且对所选择的块内的3d数据的编码数据进行解码。

附图说明

[图1]图1是示出编码装置的主要配置的示例的框图。

[图2]图2是有助于说明块的示例的图。

[图3]图3是有助于说明比特流的结构的示例的图。

[图4]图4是有助于说明管理信息的内容的示例的图。

[图5]图5是有助于说明块信息的示例的图。

[图6]图6是有助于说明整个区域信息的示例的图。

[图7]图7是示出编码部的主要配置的示例的框图。

[图8]图8是有助于说明编码处理的流程的示例的流程图。

[图9]图9是有助于说明块编码处理的流程的示例的流程图。

[图10]图10是示出解码装置的主要配置的示例的框图。

[图11]图11是有助于说明解码的方式的示例的图。

[图12]图12是示出解码部的主要配置的示例的框图。

[图13]图13是有助于说明解码处理的流程的示例的流程图。

[图14]图14是有助于说明块解码处理的流程的示例的流程图。

[图15]图15是有助于说明使用情形的图。

[图16]图16是示出编码装置的主要配置的示例的框图。

[图17]图17是示出编码装置的主要配置的示例的框图。

[图18]图18是示出解码装置的主要配置的示例的框图。

[图19]图19是示出解码装置的主要配置的示例的框图。

[图20]图20是示出计算机的主要配置的示例的框图。

具体实施方式

在下文中将描述用于实施本公开内容的模式(模式在下文中将被描述为实施方式)。顺便提及,将按以下顺序进行描述。

1.第一实施方式(编码装置)

2.第二实施方式(解码装置)

3.使用情形

4.第三实施方式(编码装置)

5.第四实施方式(解码装置)

6.补充说明

<1.第一实施方式>

<支持技术内容和技术术语的文献等>

本技术中公开的范围不仅包括实施方式中描述的内容,而且还包括在提交时公知的以下非专利文献中描述的内容。

非专利文献1:(上述)

非专利文献2:ohjinakagami,philchou,majakrivokuca,khaledmammou,robertcohen,vladyslavzakharchenko,gaellemartin-cocher,“secondworkingdraftforpcccategories1,3,”iso/iecjtc1/sc29/wg11,mpeg2018/n17533,2018年4月,圣地亚哥,美国

非专利文献3:itu(国际电信联盟,internationaltelecommunicationunion)的电信标准化部,“advancedvideocodingforgenericaudiovisualservices”,h.264,04/2017

非专利文献4:itu(国际电信联盟,internationaltelecommunicationunion)的电信标准化部,“highefficiencyvideocoding”,h.265,12/2016

非专利文献5:jianlechen,elenaalshina,garyj.sullivan,jens-rainer,jillboyce,“algorithmdescriptionofjointexplorationtestmodel4,”jvet-g1001_v1,itu-tsg16wp3andiso/iecjtc1/sc29/wg11的联合视频探索组(jvet)第七次会议:都灵,意大利,2017年7月13日至21日

也就是说,上述非专利文献中描述的内容也构成了确定支持要求的基础。例如,非专利文献4中描述的四叉树块结构和非专利文献5中描述的qtbt(四叉树加二叉树)块结构都在本技术的公开范围内(即使在这些结构未在实施方式中直接描述的情况下也是如此)并且被假定为满足权利要求的支持要求。另外,例如,诸如解析、语法和语义的技术术语类似地在本技术的公开范围内(即使在技术术语未在实施方式中直接描述的情况下也是如此)并且被假定为满足权利要求的支持要求。

<点云>

常规地,存在例如通过点群的位置信息和属性信息表示三维结构的点云的3d数据,以及包括顶点、边和面并使用多边形表示定义三维形状的网格。

例如,在点云的情况下,将立体结构(三维形状的对象)表示为大量点的集合(点群)。即,点云的数据(该数据也称为点云数据)包括该点群中的每个点的位置信息、属性信息(例如,颜色等)。因此,数据结构相对简单,并且可以通过使用足够大量的点以足够的精度表示可选的立体结构。

<使用体素对位置信息的量化>

由于这样的点云数据的数据量相对较大,因此为了通过编码等来压缩数据量,已经考虑了使用体素的编码方法。体素是用于对编码目标的位置信息进行量化的三维区域。也就是说,将包括点云的三维区域划分为被称为体素的小的三维区域,并且在每个体素中指示是否包括点。作为上述结果,以体素为单位量化每个点的位置。因此,通过将点云数据转换成这样的体素的数据(该数据也被称为体素数据),能够抑制信息量的增加(通常,能够减少信息量)。

<八叉树>

此外,已经考虑了使用这样的体素数据的八叉树的构造。通过将体素数据转换为树结构来获得八叉树。八叉树的每个节点包括8比特的数据,并且相应比特的值指示在相应的2×2×2小区域中存在或不存在点。也就是说,八叉树递归地划分三维区域,并且指示在每个分层的小区域中存在或不存在数据。在八叉树的最低位置处的节点的每个比特指示在体素中存在或不存在点。因此,八叉树在节点之间具有依赖关系。因此,即使在对八叉树的一部分进行解码的情况下,在搜索整个八叉树并再现整个八叉树的配置之后,也需要切出期望的区域。因此,不必要地增加了诸如存储器的资源的使用量和处理量。

顺便提及,在对二维图像进行编码的情况下,存在以分布处理为目的将帧划分成片和图块的方法。此外,在3d数据的情况下,当三维空间区域被划分为小区域并且每个小区域被独立地编码为这样的片和图块时,可以容易地对每个小区域进行独立解码。

然而,利用对通过划分整个这样的区域而获得的每个小区域进行解码的方法,对每个小区域的位置、形状、大小等存在限制。例如,每个小区域的位置、形状、大小等可以由整个区域的位置、形状、大小、划分的数目、划分方向等来确定。因此,难以独立地对具有可选位置、可选形状和可选大小的部分区域进行解码。

另外,在以这样的小区域单位执行解码的情况下,包括期望范围的小区域全部被解码。然而,在这种情况下,由于需要对期望范围之外的3d数据进行解码等,可能不必要地增加诸如存储器的资源的处理量和使用量。

<对部分区域的管理信息的信号发送(signaling)>

因此,编码器生成作为预定三维空间区域中的部分区域的块的管理信息,该预定三维空间区域包括表示三维结构的3d数据。例如,编码器(图像处理装置)设置有管理信息生成部,该管理信息生成部生成作为预定三维空间区域中的部分区域的块的管理信息,该预定三维空间区域包括表示三维结构的3d数据。

因此,编码器可以设置具有可选位置、可选形状和可选大小的块,并且生成块的管理信息。然后,编码器可以将管理该块的管理信息传输(用信号发送)至解码侧。因此,解码器可以基于管理信息更容易地对块的3d数据进行解码。也就是说,解码器可以更容易地对具有可选位置、可选形状和可选大小的部分区域的3d数据进行解码。

<编码装置>

图1是示出作为应用了本技术的图像处理装置的一个模式的编码装置的配置的示例的框图。图1中所示的编码装置100是使用体素和八叉树对诸如点云的3d数据进行编码的装置。

顺便提及,图1示出了主要处理部、主要数据流等,并且在图1中不一定示出所有的处理部、数据流等。也就是说,在编码装置100中,可以存在未示为图1中的块的处理部,或者可以存在未表示为图1中的箭头等的处理和数据流。这同样适用于描述编码装置100内的处理部的其他图等。

如图1所示,编码装置100包括块设置部101、管理信息生成部102、编码部103和比特流生成部104。

块设置部101执行与对作为预定三维空间区域中的部分区域的块进行设置相关的处理,该预定三维空间区域包括表示三维结构的3d数据。稍后将描述三维空间区域和块。块设置部101例如获得输入到编码装置100的点云数据。

另外,块设置部101接收关于块的指定信息,该指定信息是例如从用户、编码装置100外部的装置等输入的。指定信息是指定设置哪种类型的块的信息。例如,该指定信息指定要通过使用诸如位置、大小和形状的可选参数来设置的块。

此外,块设置部101在包括输入点云的三维空间区域中设置指定的块。另外,块设置部101从输入的点云中提取包括在块中的点云,并且将点云的数据(该数据也将被称为块点云数据)提供给编码部103。此外,块设置部101将关于所设置的块的信息提供给管理信息生成部102。换句话说,块设置部101设置由管理信息生成部102生成的管理信息所管理的块。顺便提及,块设置部101还可以将关于包括点云的三维空间区域的信息提供给管理信息生成部102。

管理信息生成部102执行与块的管理信息的生成相关的处理。例如,管理信息生成部102从块设置部101获得与块有关的信息。另外,管理信息生成部102基于该信息生成管理信息。也就是说,管理信息生成部102生成作为预定三维空间区域中的部分区域的块的管理信息,该预定三维空间区域包括表示三维结构的3d数据。稍后将描述管理信息。顺便提及,在从块设置部101提供关于包括点云的三维空间区域(该区域也将被称为整个区域)的信息的情况下,管理信息生成部102也使用该信息生成管理信息。此外,管理信息生成部102将生成的管理信息提供给比特流生成部104。

编码部103执行与编码相关的处理。例如,编码部103获得从块设置部101提供的块点云数据。另外,编码部103通过预定方法对块点云数据进行编码,并且从而生成编码数据(也称为块点云编码数据)。也就是说,编码部103能够对每个块的点云数据独立地进行编码。稍后将描述该编码。此外,编码部103将所生成的块点云编码数据提供给比特流生成部104。

比特流生成部104执行与比特流的生成相关的处理。例如,比特流生成部104获得从管理信息生成部102提供的管理信息。另外,比特流生成部104获得从编码部103提供的块点云编码数据。此外,比特流生成部104生成包括管理信息和块点云编码数据的比特流。也就是说,比特流生成部104生成包括以块为单位的点云的编码数据及其管理信息的比特流。稍后将描述该比特流。另外,比特流生成部104将生成的比特流输出到编码装置100的外部。该比特流例如经由预定介质(例如,通信介质、记录介质、两者等)被传输至解码器(解码侧)。

顺便提及,这些处理部(块设置部101、管理信息生成部102、编码部103以及比特流生成部104)具有可选的配置。例如,每个处理部可以包括实现上述处理的逻辑电路。另外,每个处理部可以具有例如cpu(中央处理单元)、rom(只读存储器)、ram(随机存取存储器)等,并且可以通过使用cpu、rom、ram等执行程序来实现上述处理。当然,每个处理部也可以具有两者的配置,并且通过逻辑电路实现上述处理的一部分以及通过执行程序来实现剩余部分。各个处理部的配置可以彼此独立。例如,一部分处理部可以通过逻辑电路实现上述处理的一部分,另一部分处理部可以通过执行程序实现上述处理,并且又一处理部可以通过逻辑电路和程序的执行两者实现上述处理。

<块>

接下来的描述将包括块。通过划分整个图像来获得二维图像的编码中的片和图块。当应用于三维空间时,片和图块包括将包括整个点云的三维空间区域121(图2的a)设置为处理目标,并且将表示处理目标的三维空间区域的三维空间区域121划分为多个区域。在这种情况下,片和图块的位置、形状、大小等取决于三维空间区域121的位置、形状、大小等。

通常,点云在三维空间区域121内不是均匀分布的。因此,三维空间区域121的划分和点云的划分不一定彼此对应。例如,整个点云可以被包括在一个片和图块内。另外,可以存在不包括点的片和图块。因此,为了以这种方式划分点云而划分三维空间区域121的方法可能引起低效的控制。

另一方面,块是在三维空间区域121内具有可选位置、可选形状和可选大小的部分区域。由于管理信息生成部102生成块的管理信息,因此块设置部101能够以可选的位置、可选的形状和可选的大小来设置块。

可以在可选区域中设置块。因此,例如,如同片和图块一样,可以形成块,以便在整个三维空间区域121上彼此相邻地被布置。在图2的b的情况下,块122被布置成彼此相邻,并且被布置成填充整个三维空间区域121。然后,如在片和图块的情况下一样,块122可以形成通过划分三维空间区域121而获得的部分区域。

换句话说,在这种情况下,三维空间区域121包括对块122进行布置。因此,可以容易地将包括整个点云的三维空间区域121设置为可选形状。例如,在图2的b的情况下,可以省略(不形成)不存在点的部分——如箭头123和箭头124所示的部分——中的块122。因此,不仅可以更容易地形成如图2的a中那样的矩形三维空间区域121,而且可以更容易地形成具有更复杂形状的三维空间区域121。

另外,不需要用块填充整个三维空间区域121。例如,在图2的c的情况下,在三维空间区域121中形成块125和块126,而在另一区域中不存在块。

此外,可以设置块以便与另一块的区域交叠。例如,在图2的d的示例的情况下,块127和块128的区域彼此部分交叠(灰色部分)。另外,块128包括块129。

如上所述,可以仅在必要部分中形成适当的块。因此,可以抑制不必要的块的形成。因此,可以抑制不必要的信息量的增加,并且抑制编码效率的降低。另外,可以抑制编码和解码的负荷的增加。

另外,可以通过管理信息来管理每个块的信息。例如,可以针对每个块管理分辨率、压缩比等。由于可以在同一区域中设置多个块,因此,例如,可以实现由这样的管理信息管理的参数的可伸缩性。例如,当将对于诸如分辨率或压缩比的可选参数具有彼此不同的值的块设置到同一区域时,可以通过块选择来选择参数的值。也就是说,可以实现参数的可伸缩性。

另外,还可以针对每个块管理诸如数据更新日期和时间或者可靠度的信息。由于可以仅在期望的范围中以可选位置、可选形状和可选大小来设置块,因此可以设置仅包括更新信息的块。从而可以以块为单位更新点云(信息的替换、添加、删除等)。另外,由于可以以可选位置、可选形状和可选尺寸来设置块,因此可以将块设置成尽可能多地排除不必要的区域。也就是说,可以抑制附加数据的量的增加及其处理负荷的增加。另外,即使当解码器适当地执行解码处理(数据访问)时,也可以通过最小的排他处理来更新数据。

另外,作为部分区域的块尺寸小于作为整个区域的三维空间区域121的尺寸。因此,在对块进行解码的情况下,与对三维空间区域121进行编码的情况相比,可以减少编码时所需的存储量(资源的使用量)。

另外,由于能够对每个块独立地进行编码,因此能够容易地实现编码处理的并行化。在这种情况下,由于可以以可选位置、可选形状和可选大小来设置块,因此可以更适当地执行编码处理的负荷的分布(使其更接近期望的分布方法)。

另外,由于对每个块独立地执行编码处理,因此可以以块为单位执行点云的更新(信息的替换、添加、删除等)。例如,当在信息的更新部分中形成新块时,可以对更新信息进行独立地编码和解码,并且因此可以更容易地将更新信息的数据与更新之前的数据相加。

另外,由于对每个块独立地执行编码,因此在比特流中各个块的数据彼此独立。因此,在解码时,只需要仅对包括期望区域的块进行解码。因此,可以抑制解码处理的负荷的增加。例如,可以减少解码处理的处理时间。另外,例如,可以减少诸如占用存储器的量的资源使用量。

另外,在存在包括同一区域的多个块的情况下,可以通过基于管理信息选择必要的块来提高解码效率。例如,在已知必要的分辨率的情况下,解码器可以通过选择并解码包括高达分辨率的块来容易地获得具有期望分辨率的解码结果。另外,在更新时间已知的情况下,解码器可以通过选择并解码较新的块来容易地获得最新信息的解码结果。此外,解码器可以基于诸如颜色信息的存在或不存在的可选参数来选择块并对块进行解码,并且可以获得更多的各种处理结果。

另外,如图2的d的示例中一样,可以设置多个块,使得块的区域彼此交叠。在二维图像的情况下,例如,当区域因此交叠时,各个区域的数据的交叠部分是冗余的。也就是说,在二维图像的情况下,在同一地址处必需的信息总是一条信息。因此,在区域交叠的情况下,选择区域之一中的点。

然而,在点云作为3d数据的情况下,数据交叠的含义不同。在点云的情况下,数据不存在于数据表现区域(体素长方体)内的所有格子点处。另外,可以存在相同位置地址处的两个或更多个点(其表示)(使用多个点的方法取决于应用)。

因此,在多个块的区域彼此交叠的情况下,可以选择任何一个块的数据,或者可以选择多个块的数据(可以选择区域彼此交叠的所有块的数据)。

例如,即使当两个块被设置到同一区域时,包括在各个块中的点的位置也可能不彼此一致。在这样的情况下,例如,在解码时,可以选择并解码一个块的数据(一个块的点),或者可以选择并解码两个块的数据(两个块的点)。在选择了两个块的情况下,可以恢复包括在两个块中的所有点,或者可以通过操作将块的点彼此整合来生成新的点。

另外,即使当被设置到同一区域的两个块中包括的点的位置彼此一致时,各个点的属性信息也可能彼此不同。在这样的情况下,例如,在解码时,可以选择并解码一个块的属性信息(一个块的点),或者可以选择并解码两个块的属性信息(两个块的点)。在选择了两个块的情况下,可以恢复包括在两个块中的所有属性信息,或者可以通过操作将块的属性信息彼此整合来生成新的属性信息。

此外,即使当被设置到同一区域的两个块中所包括的点的位置彼此一致时,在由管理信息管理的参数上,点也可能彼此不同。在这样的情况下,例如,在解码时,可以基于该参数选择并解码块中的一个块(块中的一个块的点),或者可以选择并解码两个块(两个块的点)。在选择了两个块的情况下,可以更新参数。

<比特流>

接下来将描述比特流。编码装置100例如生成具有图3的a所示的数据结构的比特流。在图3的a中,比特流141是由编码装置100生成的比特流。比特流141具有起始码(start_code)、序列报头(header)(seq_header_info)和块数据(block_data(0),block_data(1),...,block_data(n))。

起始码(start_code)是指示所讨论的序列的起始位置的识别信息。在起始码(start_code)中设置预定比特串。序列报头(seq_header_info)是每个序列的报头信息。关于所讨论的序列的信息被存储在序列报头(seq_header_info)中。每个块的数据被存储在块数据(block_data(0),block_data(1),...,block_data(n))中。

例如,序列报头(seq_header_info)具有图3的b中所示的数据结构。在图3的b中,序列报头142具有序列信息(seq_info)、块模式标志(block_mode_flag)和每个块的块信息(block(0)_info,...,block(n)_info)。

关于所讨论的序列的信息被存储在序列信息(seq_info)中。块模式标志(block_mode_flag)是指示在所讨论的序列中是否设置了块(即,是否设置了块模式)的标志信息。通过参考该值,可以容易地掌握在所讨论的序列中是否设置了块。在块信息(block(0)_info,...,block(n)_info)中,存储关于相应块的信息。

例如,块信息(block(0)_info,...,block(n)_info)具有图3的c所示的数据结构。在图3的b中,块信息143具有块编号(block_no)、点云地址(pointcloudaddress(x,y,z))、点云大小(pointcloudsize(x,y,z))、数据位置(data_location(偏移量/地址))以及附加信息(additional_info)。

块编号(block_no)是用于识别所讨论的块的编号(识别信息)。点云地址(pointcloudaddress(x,y,z))是所讨论的块的位置信息(x,y,z)。点云大小(pointcloudsize(x,y,z))是所讨论的块的大小信息。数据位置(data_location(偏移量/地址))是所讨论的块的数据在比特流中的位置信息。该位置信息例如指示所讨论的块的数据的起始位置。在数据位置(data_location(偏移量/地址))中存储例如相对于比特流中的预定参考位置的偏移量或地址。除上述内容外,有关块的可选信息存储在附加信息(additional_info)中。

例如,块数据(block_data(0),block_data(1),...,block_data(n))具有如图3的d所示的数据结构。在图3的d中,块数据144具有起始码(start_code)、报头信息(header_info)、点云位置信息(pointcloudpositioninfo)和点云属性信息(pointcloudattributeinfo)。另外,块数据144还可以可选地具有所讨论的块的块信息(block_info)。

起始码(start_code)是指示所讨论的块的起始位置的识别信息。在起始码(start_code)中设置预定比特串。报头信息(header_info)是用于每个块的报头信息。关于所讨论的块的信息被存储在报头信息(header_info)中。所讨论的块中包括的点云的位置信息被存储在点云位置信息(pointcloudpositioninfo)中。所讨论的块中包括的点云的属性信息被存储在点云属性信息(pointcloudattributeinfo)中。与块信息143类似的信息被存储在块信息(block_info)中。

比特流生成部104能够将由管理信息生成部102生成的管理信息(用于管理块的管理信息)存储在这样的比特流的可选位置中。该管理信息例如可以存储在序列报头142的序列信息(seq_info)中。另外,该管理信息可以针对每个块而被划分,并且存储在块信息143的附加信息(additional_info)中。另外,该管理信息可以针对每个块而被划分,并且存储在块数据144的块信息(block_info)中。另外,可以将管理信息作为甚至更高的级别的层概念添加到比特流141。

<管理信息>

接下来将描述由管理信息生成部102生成的管理信息。管理信息可以包括每个块的特定区域信息,并且还包括附加信息(分辨率等)。例如,管理信息可以包括如图4的表151中所示的各种信息。

例如,管理信息存储作为关于块的信息的块信息。另外,管理信息可以包括点信息,作为关于包括在块中的3d数据(例如,点云)的位置信息的信息。此外,管理信息可以包括属性信息,作为关于包括在块中的3d数据(例如,点云)的属性信息的信息。另外,管理信息可以包括获得信息,作为关于3d数据(例如,点云)的获得(生成)的信息。

<块信息>

块信息是必要信息。例如,块信息包括诸如图4的表151中所示出的块识别信息、块位置、块大小或数据位置的信息中的至少任何一条信息。当然,块信息是关于块的信息就足够了,并且块信息可以包括除了上述信息之外的信息。

块识别信息是用于识别块的信息。块识别信息包括例如识别号、索引等。通过将该块识别信息传输至解码侧,编码装置100可以通过参考块识别信息来使得解码器能够更容易地识别块。

块位置是指示点云所存在的三维空间中的块的位置的信息。例如,通过使用世界坐标来指示块位置。当然,表示块位置的方法是可选的,并且不限于世界坐标。

块大小是指示块的大小、形状等的信息。表示块的大小和形状的方法是可选的。在如图5中所说明的矩形块0(block0)的情况下,例如,块的大小可以由每一侧的长度(例如,x0s)表示,或者块的大小可以由顶点坐标(例如,(x0a,y0a,z0a)及(x0b,y0b,z0b))表示。在这种情况下,通过由位于对角位置的两个顶点的坐标来识别块0的区域的范围,来表示块的大小。

通过将块位置和块大小传输至解码侧,编码装置100可以使得解码器能够基于指定的范围,例如基于这些多条信息,更容易地进行块选择。

数据位置是指示比特流中所讨论的块的数据的位置的信息。表示数据位置的方法是可选的。例如,数据位置可以由偏移量、地址等指示。顺便提及,该信息可以作为除比特流中的管理信息之外的报头信息被包括。

通过将该数据位置传输至解码侧,编码装置100可以使得解码器能够基于该信息更容易地从比特流中提取所选择的块的数据。

<点信息>

例如,点信息包括诸如图4的表151中所示的分辨率、结构或可靠度的信息中的至少任何一条信息。

分辨率是指示块内3d数据的分辨率(例如,在点云的情况下点之间的间隔)的信息。表示该分辨率的方法是可选的。分辨率可以由直接数值表示,或者分辨率可以通过使用索引等间接表示。另外,在块内的分辨率不均匀的情况下,可以使用分辨率的最小值(在点云的情况下,点之间的距离的最小值),可以使用最大值(在点云的情况下,点之间的距离的最大值),或者可以使用平均值(在点云的情况下,点之间的距离的平均值)、中值(在点云的情况下,点之间的距离的中值)等。

通过将该分辨率传输至解码侧,编码装置100可以使得解码器能够根据必要的分辨率例如基于该信息更容易地进行块选择。例如,可以实现参数“分辨率”的可伸缩性(该可伸缩性也将被称为分辨率可伸缩性)。

结构是描述由块内的3d数据(例如,点云)表示的立体结构的信息。例如,结构可以通过使用诸如自然物、人工物、移动物、静止物、动物、植物、人、手、脚、头或毛发的文本直接表现,或者可以通过使用预先定义的索引等间接表现。替选地,可以表现立体结构的特性,例如软、硬、大或小。

通过将该结构传输至解码侧,编码装置100可以使得解码器能够根据对立体结构的指定例如基于该信息更容易地进行块选择。

可靠度是指示作为块内的3d数据(例如,点云)的数据的可靠度的信息。例如,可靠度表示根据数据创建时的条件的错误的可能性、由于更新导致的劣化等。表示可靠度的方法是可选的。例如,可靠度可以由绝对值表示,或者可以由相对值表示。另外,除了诸如上述的直接表示之外,可靠度例如还可以通过使用预先定义的索引等来间接表示。

通过将该可靠度传输至解码侧,编码装置100可以使得解码器能够根据必要的可靠度例如基于该信息更容易地进行块选择。例如,可以实现参数“可靠度”的可伸缩性(该可伸缩性也将被称为可靠度可伸缩性)。

顺便提及,点信息不是必要的,并且因此可以省略。也就是说,可以省略上述信息的一部分或全部。另外,点信息是关于包括在块中的点云的位置信息的信息就足够了,并且点信息不限于上述信息示例。例如,可以包括除了上述信息之外的信息。

<属性信息>

属性信息包括例如图4的表151中所示的诸如颜色、法线或反射率的信息中的至少任何信息。

颜色是指示存在于块内的点云的属性信息是否包括颜色信息的标志信息。另外,在包括颜色信息的情况下,可以进一步指示颜色信息的颜色的数目、使用什么颜色等。

通过将该颜色传输至解码侧,编码装置100可以使得解码器能够更容易地根据颜色信息的存在或不存在例如基于该信息来进行块选择。

法线是指示存在于块内的点云的属性信息是否包括法线信息的标志信息。另外,在包括法线信息的情况下,也可以进一步指示法线信息的法线的数目和方向等。

通过将该法线传输至解码侧,编码装置100可以使得解码器能够更容易地根据法线信息的存在或不存在例如基于该信息来进行块选择。

反射率是指示存在于块内的点云的属性信息是否包括反射率信息的标志信息。另外,在包括反射率信息的情况下,也可以进一步指示反射率信息的反射率的数目和值等。

通过将该反射率传输至解码侧,编码装置100可以使得解码器能够更容易地根据反射率信息的存在或不存在例如基于该信息来进行块选择。

属性信息不是必要的,并且因此可以省略。也就是说,可以省略上述信息的一部分或全部。另外,属性信息是关于包括在块中的点云的属性信息的信息就足够了,并且属性信息不限于上述信息示例。例如,可以包括除了上述信息之外的信息。

<获得信息>

获得信息例如包括图4的表151所示的诸如时间、计算方法、传感器、获得位置或获得者的信息中的至少任何一条信息。

时间是指示获得(生成)存在于块内的3d数据(例如,点云)的时段的信息。时间可以直接由时间指示。在这种情况下,单位是可选的,例如年、月、日、小时、分钟或秒。另外,时间可以由从参考时间(例如,获得时间)到当前时间的时间表示。此外,可以通过使用除了时间或时段之外的信息来间接地表示时间,该信息例如是版本、更新次数等。

通过将该时间传输至解码侧,编码装置100可以使得解码器能够例如基于该信息更容易地对包括最新数据或指定条目中的数据的块进行选择。

计算方法是指示获得(生成)存在于块内的3d数据(例如,点云)的方法的信息。计算方法表示如何从立体结构获得(生成)3d数据,例如,表示从lidar(光探测和测距)数据生成3d数据,或者通过立体匹配方法计算3d数据。此外,可以表示在获得(生成)中使用的计算等式、参数值等。该方法可以由文本等直接表示,或者该方法可以通过使用预先定义的索引等间接表示。

通过将该计算方法传输至解码侧,编码装置100可以使得解码器能够例如基于该信息更容易地对包括关于指定方法的数据的块进行选择。

传感器是关于在获得(生成)存在于块内的3d数据(例如,点云)时使用的传感器的信息。传感器例如指示传感器类型(例如,lidar传感器、cmos(互补金属氧化物半导体)传感器等)、性能(分辨率、频率等)、数目、使用方法等。可以直接指示传感器或者可以通过使用索引等间接表示传感器。

通过将该传感器传输至解码侧,编码装置100可以使得解码器能够例如基于该信息更容易地选择包括由指定传感器获得的数据的块。

获得位置是指示存在于块内的3d数据(例如,点云)的获得(生成)位置的信息。表示获得位置的方法是可选的。例如,可以使用gps数据来表示获得位置。另外,例如,获得位置可以由国家名称或地区名称(例如日本、美国或欧洲)来表示。此外,可以通过使用地址、邮政编码等来表示获得位置。当然,可以通过使用除上述以外的信息来表示获得位置。

通过将该获得位置传输至解码侧,编码装置100可以使得解码器能够例如基于该信息更容易地对包括在指定位置处获得的数据的块进行选择。

获得者是指示获得(生成)存在于块内的3d数据(例如,点云)的用户(获得者)的信息。表示获得者的方法是可选的。例如,获得者可以由人的名字、职位名称等来表示。另外,可以通过使用预先定义的索引等来间接地表示获得者。此外,可以表示获得者(管理员、普通用户、客人等)的权利。

通过将该获得者传输至解码侧,编码装置100可以使得解码器能够例如基于该信息更容易地对包括由指定获得者获得的数据的块进行选择。

获得信息不是必要的,并且因此可以省略。也就是说,可以省略上述信息的一部分或全部。另外,获得信息是关于包括在块中的点云的获得的信息就足够了,并且获得信息不限于上述信息示例。例如,可以包括除了上述信息之外的信息。

<整个区域信息>

另外,管理信息可以包括整个区域信息,作为关于包括整个点云的整个三维空间区域(也称为整个区域)的信息。

例如,整个区域信息包括诸如图6的表161中所示的位置大小、块信息或共有信息的信息中的至少任何一条信息。

位置大小是指示整个区域的大小、位置(坐标)、形状等的信息。如在上述的块位置和块大小的情况下,表示这些的方法是可选的。例如,位置、形状、大小等可以通过使用世界坐标来表示。另外,可以通过使用每侧的长度来表示大小和形状。

块信息是关于包括在整个区域中的块的信息,该信息是块类型、块的总数、划分的数目等。表示这些的方法是可选的。块信息可以通过使用文本或数值直接表示,或者可以通过使用预先定义的索引等间接表示。

共有信息是对在整个区域中形成的所有块共有的管理信息。共有信息可以包括任何内容信息。包括在共有信息中的信息被应用于所有块。

<编码单元>

图7是示出编码部103(图1)的主要配置的示例的框图。如图7所示,编码部103包括体素生成部181、八叉树生成部182和无损编码部183。

体素生成部181执行与体素的生成相关的处理。例如,体素生成部181获得从块设置部101提供的块点云数据。另外,体素生成部181对包括所获得的块点云数据的区域设置边界框,并且通过进一步划分该边界框来设置体素。从而,体素生成部181对块点云数据的位置信息进行量化。体素生成部181将这样生成的体素数据(也称为块体素数据)提供给八叉树生成部182。

八叉树生成部182执行与八叉树的生成相关的处理。例如,八叉树生成部182获得从体素生成部181提供的块体素数据。另外,八叉树生成部182根据块体素数据生成八叉树(也称为块八叉树)。八叉树生成部182将所生成的块八叉树的数据(该数据也将被称为块八叉树数据)提供给无损编码部183。

无损编码部183执行与无损编码相关的处理。例如,无损编码部183获得从八叉树生成部182提供的块八叉树数据。无损编码部183通过对块八叉树数据进行编码来生成编码数据。无损编码部183将所生成的编码数据作为块点云编码数据提供给比特流生成部104。

顺便提及,这些处理部(体素生成部181、八叉树生成部182和无损编码部183)具有可选配置。例如,每个处理部可以包括实现上述处理的逻辑电路。另外,每个处理部可以具有例如cpu、rom、ram等,并且可以通过使用cpu、rom、ram等执行程序来实现上述处理。当然,每个处理部也可以具有两者的配置,并且通过逻辑电路实现上述处理的一部分以及通过执行程序来实现剩余部分。各个处理部的配置可以彼此独立。例如,一部分处理部可以通过逻辑电路实现上述处理的一部分,另一部分处理部可以通过执行程序实现上述处理,并且又一处理部可以通过逻辑电路和程序的执行两者实现上述处理。

通过具有上述配置,编码装置100可以在可选位置处以可选大小和可选形状来设置块,并且生成块的管理信息。因此,编码装置100可以使得解码器能够更容易地执行3d数据的部分解码。

<编码处理的流程>

接下来,将参照图8中的流程图描述由编码装置100执行的编码处理的流程的示例。

当编码处理开始时,在步骤s101中块设置部101获得点云数据。

在步骤s102中,块设置部101接收指定要设置的块的条件(例如,关于位置、大小、形状和其他参数等的条件)的指定信息。

在步骤s103中,块设置部101基于指定信息设置满足指定信息中指示的条件的块。

在步骤s104中,管理信息生成部102生成管理在步骤s103中设置的块的管理信息。也就是说,管理信息生成部102生成作为预定三维空间区域中的部分区域的块的管理信息,该预定三维空间区域包括表示三维结构的3d数据。

在步骤s105中,编码部103执行块编码处理。编码部103从而对在步骤s103中设置的块的数据(块点云数据)进行编码并且生成块点云编码数据。

在步骤s106中,比特流生成部104生成比特流,比特流包括在步骤s104中生成的管理信息和在步骤s105中生成的块点云编码数据。

在步骤s107中,比特流生成部104将在步骤s106中生成的比特流输出至编码装置100的外部(将比特流传输至解码侧)。

当步骤s107的处理结束时,编码处理结束。

<块编码处理的流程>

接下来,将参照图9的流程图描述在图8的步骤s105中执行的块编码处理的流程的示例。

当开始块编码处理时,在步骤s121中,体素生成部181从未处理的块中选择处理目标块。

在步骤s122中,体素生成部181通过使用处理目标块的块点云数据对处理目标块中包括的点的位置信息进行量化(转换成体素),生成体素数据。

在步骤s123中,八叉树生成部182根据在步骤s122中生成的块体素数据生成处理目标块的八叉树(块八叉树)。

在步骤s124中,无损编码部183通过对在步骤s123中生成了八叉树数据的处理目标块的八叉树数据进行编码,生成块点云编码数据。

在步骤s125中,编码部103确定是否对所有的设置块进行了处理。在确定存在未处理块的情况下,处理返回到步骤s121以重复从步骤s121开始向下的处理。

另外,在步骤s125中确定处理了所有块的情况下,结束块编码处理,并且处理返回到图8。

通过执行如上所述的每个处理,编码装置100能够在可选位置处以可选大小和可选形状来设置块,并且生成该块的管理信息。因此,编码装置100可以使得解码器能够更容易地执行3d数据的部分解码。

<2.第二实施方式>

<解码装置>

图10是示出作为应用了本技术的图像处理装置的一个模式的解码装置的配置的示例的框图。图10中示出的解码装置200是与图1的编码装置100相对应的解码装置,并且是通过对例如由编码装置100生成的3d数据(例如,点云)的编码数据(比特流)进行解码来重构3d数据的装置。

顺便提及,图10示出了主要处理部、主要数据流等,并且在图10中不一定示出所有的处理部、数据流等。也就是说,在解码装置200中,可以存在未示出为图10中的块的处理部或者可以存在未表示为图10中的箭头等的处理和数据流。这同样适用于描述解码装置200内的处理部的其他图等。

如图10所示,解码装置200包括控制部201、比特流缓冲器202、解码部203和编辑部204。

控制部201执行与解码的控制相关的处理。例如,控制部201获得从比特流缓冲器202提供的比特流。控制部201提取包括在获得的比特流中的管理信息。顺便提及,可以从比特流缓冲器202仅提供从比特流中提取的管理信息。在这种情况下,控制部201获得管理信息。

另外,控制部201接收由用户输入到解码装置200的指定信息。指定信息是由用户设置的并且指定与要解码的块的选择相关的条件的信息。例如,对于管理信息中包括的某个参数,由指定信息指定用于选择块的条件。

控制部201基于这些多条信息适当地控制比特流缓冲器202到编辑部204。控制部201例如包括块选择部211、解码控制部212和编辑控制部213。

块选择部211执行与要解码的块的选择相关的处理。例如,块选择部211从由控制部201获得的比特流中提取管理信息,并且基于所提取的管理信息(或由控制部201获得的管理信息)和由控制部201获得的指定信息来选择要解码的块。也就是说,块选择部211基于作为包括表示三维结构的3d数据的预定三维空间区域中的部分区域的块的管理信息,选择满足由用户指定的条件的块。

例如,当通过指定信息指定了在其中对点云的编码数据进行解码的三维空间区域的范围时,块选择部211参考管理信息,并且基于块信息中的“块位置”和“块大小”选择包括所指定的范围的块。由于“块位置”和“块大小”被这样作为管理信息传输,因此块选择部211可以对包括指定范围的块进行选择。

例如,另外,当由指定信息指定必要分辨率时,块选择部211参考管理信息,并且基于点信息中的“分辨率”选择包括具有其分辨率等于或高于指定的必要分辨率的3d数据的块。由于“分辨率”被这样作为管理信息传输,因此块选择部211可以根据必要的分辨率来对块进行选择。例如,通过在同一区域中设置3d数据的分辨率彼此不同的多个块并使得能够根据这样的必要的分辨率来选择块,可以实现分辨率可伸缩性。

此外,例如,当通过指定信息指定立体结构时,块选择部211参考管理信息,并且基于点信息中的“结构”来选择包括所指定的立体结构的3d数据的块。由于“结构”被这样作为管理信息传输,因此块选择部211可以对包括所指定的立体结构的数据的块进行选择。

另外,例如,当通过指定信息指定必要的可靠度时,块选择部211参考管理信息,并且基于点信息中的“可靠度”选择包括具有其可靠度等于或高于指定的必要可靠度的3d数据的块。由于“可靠度”被这样作为管理信息传输,因此块选择部211可以根据必要的可靠度来对块进行选择。例如,通过在同一区域中设置3d数据的可靠度彼此不同的多个块并使得能够根据这样的必要的可靠度来选择块,可以实现可靠度可伸缩性。

此外,例如,当通过指定信息指定3d数据的属性信息中颜色信息的存在或不存在时,块选择部211参考管理信息,并且基于属性信息中的“颜色”选择具有(或不具有)3d数据的属性信息中的颜色信息的块。由于“颜色”被这样作为管理信息传输,因此块选择部211能够根据颜色信息等的存在或不存在来对块进行选择。

另外,例如,当通过指定信息指定3d数据的属性信息中法线信息的存在或不存在时,块选择部211参考管理信息,并且基于属性信息中的“法线”选择具有(或不具有)3d数据的属性信息中的法线信息的块。由于“法线”被这样作为管理信息传输,因此块选择部211能够根据法线信息等的存在或不存在来对块进行选择。

此外,例如,当通过指定信息指定3d数据的属性信息中反射率信息的存在或不存在时,块选择部211参考管理信息,并且基于属性信息中的“反射率”选择具有(或不具有)3d数据的属性信息中的反射率信息的块。由于“反射率”被这样作为管理信息传输,因此块选择部211能够根据反射率信息等的存在或不存在对块进行选择。

另外,例如,当通过指定信息指定与时段(时间、版本等)相关的条件时,块选择部211参考管理信息,并且基于获得信息中的“时间”选择满足与3d数据的获得时段相关的、由指定信息指定的条件的块。由于“时间”被这样作为管理信息传输,因此块选择部211例如能够对包括最新数据的块进行选择、对包括在指定时段中获得的数据的块进行选择等。

此外,例如,当通过指定信息指定与3d数据获得和计算方法相关的条件时,块选择部211参考管理信息,并且基于获得信息中的“计算方法”选择满足与3d数据获得和计算方法相关的、由指定信息指定的条件的块。由于“计算方法”被这样作为管理信息传输,因此块选择部211例如能够对包括通过指定的获得和计算方法等获得的3d数据的块进行选择。

此外,例如,当通过指定信息指定与在获得3d数据时使用的传感器相关的条件时,块选择部211参考管理信息,并且基于获得信息中的“传感器”来选择满足与在获得3d数据时使用的传感器相关的、由指定信息指定的条件的块。由于“传感器”被这样作为管理信息传输,因此块选择部211例如能够对包括由指定传感器等获得的3d数据的块进行选择。

另外,例如,当通过指定信息指定与3d数据获得位置相关的条件时,块选择部211参考管理信息,并且基于获得信息中的“获得位置”来选择满足与获得位置相关的、由指定信息指定的条件的块。由于“获得位置”被这样作为管理信息传输,因此块选择部211能够例如对包括在指定位置处获得的3d数据的块等进行选择。

此外,例如,当通过指定信息指定与3d数据的获得者相关的条件时,块选择部211参考管理信息,并且基于获得信息中的“获得者”来选择满足与获得者相关的、由指定信息指定的条件的块。由于“获得者”被这样作为管理信息传输,因此块选择部211例如能够对包括由指定用户等获得的3d数据的块进行选择。

如上所述,块选择部211可以选择满足由指定信息指定的关于包括在管理信息中的各种参数的条件的块。

当块选择部211选择块时,块选择部211基于管理信息的块信息中的“块识别信息”来识别所选择的块的识别信息,并且将所识别的识别信息(即所选择的块的识别信息)作为块选择信息提供给比特流缓冲器202。另外,块选择部211也可以根据需要参考管理信息的块信息中的“数据位置”,并且将指示所选择的块的数据位置的信息提供给比特流缓冲器202。

因此,块选择部211能够控制比特流缓冲器202,并且使得提取所选择的块的数据。

解码控制部212执行与解码控制相关的处理。例如,解码控制部212从由控制部201获得的比特流中提取管理信息,并且基于所提取的管理信息(或由控制部201获得的管理信息)和由控制部201获得的指定信息来控制解码。也就是说,解码控制部212通过基于管理信息和指定信息设置解码方法并且将解码控制信息提供给解码部203来控制解码。例如,解码控制部212控制在解码时使用的参数,并且选择解码方法。

编辑控制部213执行与解码块的数据的编辑相关的处理。例如,编辑控制部213从由控制部201获得的比特流中提取管理信息,并且基于所提取的管理信息(或由控制部201获得的管理信息)和由控制部201获得的指定信息来控制对解码块的数据的编辑。也就是说,编辑控制部213通过基于管理信息和指定信息设置编辑内容并将编辑控制信息提供给编辑部204来控制编辑。

(19)

比特流缓冲器202执行与比特流相关的处理。例如,比特流缓冲器202获得输入到解码装置200的比特流,并且保持该比特流。另外,比特流缓冲器202将所保持的比特流提供给控制部201。顺便提及,比特流缓冲器202可以从所保持的比特流中提取管理信息,并且将所提取的管理信息提供给控制部201。另外,比特流缓冲器202获得从块选择部211提供的块选择信息。此外,比特流缓冲器202基于块选择信息从保持的比特流中提取由块选择部211选择的块(由块选择信息指定的块)的比特流(块比特流),并且将该比特流提供给解码部203。

(16)

解码部203执行与解码相关的处理。例如,解码部203获得从比特流缓冲器202提供的块比特流。解码部203对块比特流进行解码,并且从而生成由块选择部211选择的块的点云数据(块点云数据)。顺便提及,在从解码控制部212提供解码控制信息的情况下,解码部203获得解码控制信息,并且根据该信息执行解码。解码部203将所生成的块点云数据提供给编辑部204。

(18)

编辑部204执行与作为解码部203的解码结果的块点云数据的编辑相关的处理。例如,编辑部204获得从解码部203提供的块点云数据。另外,编辑部204获得从编辑控制部213提供的编辑控制信息。此外,编辑部204基于编辑控制信息编辑块点云数据。

在该编辑时,编辑部204例如从块点云数据中删除信息,向块点云数据添加信息,或者更新块点云数据中的信息。例如,编辑部204合成多个块的块点云数据,或者切出并删除块点云数据的一部分。

编辑部204将适当编辑的点云数据输出到解码装置200的外部。

<解码示例>

例如,假设设置了如图11的a中所示的矩形块231,并且设置了通过如图11的b中那样将3×3×3个块231彼此相邻布置而获得的三维空间区域。

假设要对如图11的c中所示的三维空间区域232中的部分区域233进行解码。区域233跨越三维空间区域232中的所有块231,如图11的d所示。因此,在这种情况下,块选择部211选择三维空间区域232中的所有块231,并且解码部对三维空间区域232中的所有块231进行解码。然而,必要的信息是图11的d中所示的区域233内的3d数据。因此,在这种情况下,编辑部204从通过解码部203的解码获得的整个三维空间区域232的3d数据中提取区域233内的3d数据。

顺便提及,在解码部203支持部分区域解码并且能够仅对块比特流的部分区域进行解码的情况下,可以通过解码控制部212的控制使解码部203仅对区域233内的3d数据进行解码。

<解码部>

图12是示出图10中的解码部203的主要配置的示例的框图。如图12所示,解码部203包括无损解码部251、八叉树解码部252和体素解码部253。

无损解码部251执行与编码数据的无损解码相关的处理。例如,无损解码部251获得从比特流缓冲器202提供的块比特流。另外,无损解码部251对块比特流进行解码,并且从而生成所选择的块的八叉树数据(该数据也将被称为块八叉树数据)。顺便提及,在从解码控制部212提供解码控制信息的情况下,无损解码部251根据解码控制信息执行解码。此外,无损解码部251将块八叉树数据提供给八叉树解码部252。

八叉树解码部252执行与八叉树的解码相关的处理。例如,八叉树解码部252获得从无损解码部251提供的块八叉树数据。另外,八叉树解码部252根据块八叉树数据来构造所选择的块的八叉树(该八叉树也将被称为块八叉树),并且根据该块八叉树来生成所选择的块的体素数据(该数据也将被称为块体素数据)。八叉树解码部252将所生成的块体素数据提供给体素解码部253。

体素解码部253执行与体素数据的解码相关的处理。例如,体素解码部253获得从八叉树解码部252提供的块体素数据。另外,体素解码部253根据获得的块体素数据,重构所选择的块的点云(块点云数据)。体素解码部253将这样生成的块点云数据提供给编辑部204(图10)。

顺便提及,这些处理部(无损解码部251、八叉树解码部252和体素解码部253)具有可选的配置。例如,每个处理部可以包括实现上述处理的逻辑电路。另外,每个处理部可以具有例如cpu、rom、ram等,并且可以通过使用cpu、rom、ram等执行程序来实现上述处理。当然,每个处理部可以具有两者的配置,并且通过逻辑电路实现上述处理的一部分以及通过执行程序来实现剩余部分。各个处理部的配置可以彼此独立。例如,一部分处理部可以通过逻辑电路实现上述处理的一部分,另一部分处理部可以通过执行程序实现上述处理,并且又一处理部可以通过逻辑电路和程序的执行两者实现上述处理。

通过具有如上所述的配置,解码装置200能够基于管理信息更容易地执行3d数据的部分解码。

<解码处理的流程>

接下来,将参照图13的流程图描述由解码装置200执行的解码处理的流程的示例。

当解码处理开始时,在步骤s201中,解码装置200的比特流缓冲器202获得比特流。

在步骤s202中,控制部201接收指定信息。

(20)

在步骤s203中,块选择部211基于从通过步骤s201的处理获得的比特流中提取的管理信息和在步骤s202中接收的指定信息来选择要解码的块。

在步骤s204中,比特流缓冲器202从在步骤s201中获得的比特流中提取在步骤s203中选择的块的比特流。

在步骤s205中,解码控制部212基于从通过步骤s201的处理获得的比特流中提取的管理信息和在步骤s202中接收的指定信息来设置解码方法。

(20)

在步骤s206中,解码部203执行块解码处理。解码部203通过在步骤s205中设置的解码方法对在步骤s204中提取的块的比特流进行解码,并且从而生成块的点云数据。

在步骤s207中,编辑控制部213基于从通过步骤s201的处理获得的比特流中提取的管理信息和在步骤s202中接收的指定信息来设置编辑方法。

在步骤s208中,编辑部204通过在步骤s207中设置的编辑方法来编辑在步骤s206中生成的点云数据。

在步骤s209中,编辑部204将在步骤s208中编辑的点云数据输出到解码装置200的外部。

当步骤s209的处理结束时,解码处理结束。

<块解码处理的流程>

将参照图14的流程图描述在图13中的步骤s206中执行的块解码处理的流程的示例。

当块解码处理开始时,在步骤s221中,无损解码部251从未处理的块中选择处理目标块。

在步骤s222中,无损解码部251对处理目标块的比特流进行解码,并且生成处理目标块的八叉树数据。

在步骤s223中,八叉树解码部252根据处理目标块的八叉树数据来构造处理目标块的八叉树,并且生成处理目标块的体素数据,其中八叉树数据在步骤s222中生成。

在步骤s224中,体素解码部253根据处理目标块的体素数据,生成处理目标块的点云数据,其中体素数据在步骤s223中生成。

在步骤s225中,解码部203确定是否处理了所有的所选择的块。在确定存在未处理的块的情况下,处理返回到步骤s221,以从步骤s221开始向下重复处理。

另外,在步骤s225中确定处理了所有块的情况下,块解码处理结束,并且处理返回到图13。

通过执行如上所述的每个处理,解码装置200能够基于管理信息更容易地执行3d数据的部分解码。

<3.使用情形>

接下来,将对上述编码装置100和解码装置200的使用情形进行描述。例如,假设设置了如图15的a所示的块b0至b4。假设块在世界坐标处的位置是bn(add)(=(x,y,z)),并且块的大小是bn(size)(=size)。在这种情况下,如图15的b中的相应等式中那样设置块b0至b4的位置和大小。下面也示出了类似的等式。

b0(add)=(0,0,0),b0(size)=10

b1(add)=(10,0,0),b1(size)=10

b2(add)=(0,10,0),b2(size)=10

b3(add)=(10,10,0),b3(size)=10

b4(add)=(5,5,5),b4(size)=10

假设对每个这样的块进行编码。

<情形1>

例如,假设如图15的c所示的区域的3d数据的解码由指定信息指定。该范围也在下面示出。

bd(loc)=(5,5,0-15,15,5)

首先,块选择部211从bd(loc)识别包括该区域的块。在这种情况下,块b0至块b3是对应的。然后,由于块的区域不相互交叠,因此块选择部211选择所有的块b0至b3。解码部203对由块选择部选择的块b0至块b3的编码数据进行解码,并且从而生成3d数据(例如,点云数据)。

<情形2>

例如,假设如图15的d所示的区域的3d数据的解码由指定信息指定。该范围也在下面示出。

bd(loc)=(5,5,5-15,15,10)

首先,块选择部211从bd(loc)识别包括该区域的块。在这种情况下,块b0至块b4是对应的。然后,块b4与其他块交叠。块b4与块bd(loc)的比例为100%,并且块b0至块b4与bd(loc)的比例为25%。因此,块选择部211选择块b4。解码部203对由块选择部选择的块b4的编码数据进行解码,并且从而生成3d数据(例如,点云数据)。

<情形3>

例如,假设如图15的e所示的区域的3d数据的解码由指定信息指定。该范围也在下面示出。

bd(loc)=(5,5,5-10,10,10)

首先,块选择部211从bd(loc)识别包括该区域的块。在这种情况下,块b0和块b4是对应的。然后,块b0与块b4彼此交叠。块b0和块b4二者与bd(loc)的比例均为100%。因此,块选择部211可以基于这些对应块中的另一元素(附加信息)来确定优先级顺序,并且进行选择以避免重复。例如,可以根据更新时间等选择较新的块。解码部203对由块选择部所选择的块的编码数据进行解码,并且从而生成3d数据(例如,点云数据)。

如上所述,解码装置200可以基于管理信息容易地对在可选位置、具有可选大小和可选形状的块进行解码。也就是说,解码装置200能够基于管理信息更容易地执行3d数据的部分解码。

<4.第三实施方式>

<编码装置的另一配置示例1>

顺便提及,编码装置100的配置是可选的,并且不限于<1.第一实施方式>中描述的配置示例(图1)。例如,如图16所示,编码装置100可以具有能够彼此并行执行处理的多个编码部103-n来代替编码部103。在这种情况下,当在块设置部101中设置多个块时,各个块的点云数据(块点云数据)被提供给彼此不同的编码部103-n,并且彼此独立地进行编码。然后,比特流生成部104获得从各个编码部103-n提供的块点云编码数据,并且生成包括这些编码部103-n的块点云编码数据和管理信息的比特流。

因此,编码的并行处理是可能的。顺便提及,图1中的编码部103可以使得能够彼此并行地对多个块点云数据进行解码。

<编码装置的另一配置示例2>

另外,如图17所示,还可以省略图16的配置示例中的比特流生成部。在这种情况下,在各个编码部103-n中生成的块点云比特流和在管理信息生成部102中生成的管理信息各自作为单独信息输出。

<5.第四实施方式>

<解码装置的另一配置示例1>

如在编码装置100的情况下那样,解码装置200的配置也是可选的,并且不限于<2.第二实施方式>中描述的配置示例(图10)。例如,如图18所示,解码装置200可以具有能够彼此并行地执行处理的多个解码部203-n,以代替解码部203。在这种情况下,当在控制部201中将多个块设置为解码目标时,将各个块的比特流(块比特流)提供给彼此不同的解码部203-n,并且彼此独立地进行解码。然后,编辑部204获得从解码部203-n中的每一个提供的块点云数据,并且通过编辑这些块点云数据来生成点云数据。

因此,解码的并行处理是可能的。顺便提及,图10中的解码部203可以使得能够彼此并行地对多个块比特流进行解码。

<解码装置的另一配置示例2>

另外,如图18所示,多个块比特流和管理信息可以被输入到解码装置200。在这种情况下,比特流缓冲器202获得并保持输入到解码装置200的多个块比特流和管理信息。然后,比特流缓冲器202将获得的管理信息提供给控制部201,而比特流缓冲器202根据块选择信息读取由控制部201选择的块的块比特流,并且将块比特流提供给解码部203-n。

<6.补充说明>

<计算机>

上述一系列处理可以由硬件来执行或者可以由软件来执行。在由软件执行一系列处理的情况下,将构成软件的程序安装在计算机上。此处,计算机包括结合在专用硬件中的计算机、例如能够通过在其上安装各种程序来执行各种功能的通用个人计算机等。

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

在图20所示出的计算机900中,cpu(中央处理单元)901、rom(只读存储器)902和ram(随机存取存储器)903经由总线904互连。

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

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

在如上所述配置的计算机中,上述一系列处理通过经由输入输出接口910和总线904将例如存储在存储单元913中的程序加载到ram903中并执行该程序的cpu901来执行。ram903还适当地存储cpu901执行各种处理等所需的数据。

由计算机(cpu901)执行的程序可以例如以被记录在作为封装介质等的可移除介质921上的状态被应用。在这种情况下,通过将可移除介质921加载到驱动器915中,可以经由输入输出接口910将程序安装在存储单元913中。

另外,该程序也可以经由有线或无线电传输介质例如局域网、因特网或数字卫星广播来提供。在这种情况下,程序可以由通信单元914接收并被安装在存储单元913中。

此外,也可以预先将程序安装在rom902或存储单元913中。

<本技术的应用目标>

在上面,已经描述了将本技术应用于点云数据的编码和解码的情况。然而,本技术不限于这些示例,还可以应用于可选标准的3d数据的编码和解码。也就是说,除非与上述本技术不一致,否则诸如编码和解码方法的各种处理以及诸如3d数据和元数据的各种数据的规范是可选的。另外,除非发生与本技术的不一致,否则可以省略上述处理和规范的一部分。

本技术可以应用于可选配置。例如,本技术可以应用于:各种电子设备,例如卫星广播、诸如有线电视的有线广播、因特网上的分发、到蜂窝通信中的终端的分发中的发射机和接收机(例如,电视接收机或移动电话);或者用于在诸如光盘、磁盘和快闪存储器的介质上记录图像和从这些存储介质再现图像的装置(例如,硬盘记录器或摄像装置)。

另外,例如,本技术还可以作为诸如作为系统lsi(大规模集成)等的处理器(例如视频处理器)、使用多个处理器等的模块(例如视频模块)、使用多个模块等的单元(例如视频单元)、通过进一步向该单元添加其他功能而获得的集合(例如,视频集合)等的装置的配置的一部分来实现。

另外,例如,本技术还可以应用于包括多个装置的网络系统。例如,本技术可以被实现为云计算,其中多个装置经由网络共享并且共同地执行处理。例如,本技术可以在用于向诸如计算机、视听(av)设备、便携信息处理终端或iot(物联网)装置的可选终端提供关于图像(运动图像)的服务的云服务中实现。

顺便提及,在本说明书中,系统是指多个组成元件(装置、模块(部件)等)的集合,并且所有组成元件是否存在于同一壳体内并不重要。因此,容纳在单独的壳体中并且经由网络彼此连接的多个装置以及具有容纳在一个壳体中的多个模块的一个装置都是系统。

<本技术适用的领域和用途>

应用本技术的系统、装置、处理单元等例如可以用于例如交通、医疗、预防犯罪、农业、畜牧业、采矿业、美容、工厂、家用电器、天气和自然监测的可选领域。另外,本技术的用途是可选的。

<其他>

顺便提及,本说明书中的“标志”是用于区分多个状态的信息,并且不仅包括用于区分两个状态(即,真(1)或假(0))的信息,而且还包括能够区分三个或更多个状态的信息。因此,可以由该“标志”假设的值可以是例如1/0的两个值,或者等于或大于三个值。也就是说,构成该“标志”的比特数是可选的,并且“标志”可以由一个比特或多个比特构成。另外,假设识别信息(包括标志)不仅为在比特流中包括该识别信息的形式,而且还有在比特流中包括识别信息相对于参考信息的差异信息的形式。因此,在本说明书中,“标志”和“识别信息”不仅包括信息,还包括相对于参考信息的差异信息。

另外,可以以任何形式传输或记录与编码数据(比特流)相关的各种信息(元数据等),只要将各种信息(元数据等)与编码数据相关联即可。此处,术语“关联”是指,例如当处理一条数据时,使得另一条数据能够被使用(能够被链接)。也就是说,彼此相关联的多条数据可以被整合为一条数据,或者可以是各个单独的多条数据。例如,可以在与编码数据(图像)的传输线路不同的传输线路上传输与编码数据(图像)相关联的信息。另外,例如,可以将与编码数据(图像)相关联的信息记录在与编码数据(图像)的记录介质不同的记录介质上(或相同记录介质的不同记录区域上)。顺便提及,该“关联”可以是数据的一部分而不是整个数据的关联。例如,图像和与该图像对应的信息可以以可选单位例如以多个帧、一个帧或帧内的一部分为单位彼此相关联。

顺便提及,在本说明书中,诸如“合成”、“复用”、“添加”、“集成”、“包括”、“存储”、“放入”、“插”和“插入”的术语是指将多个对象集成为一个,例如将编码数据和元数据集成为一条数据,并且是指上述“关联”的一种方法。

另外,本技术的实施方式不限于前述实施方式,而是在不脱离本技术的精神的情况下可以进行各种修改。

例如,被描述为一个装置(或一个处理部)的配置可以被划分并且被配置为多个装置(或处理部)。相反,上面被描述为多个装置(或处理部)的配置可以被集成并且被配置为一个装置(或一个处理部)。另外,当然,可以将除上述之外的配置添加到每个装置(或每个处理部)的配置。此外,特定装置(或特定处理部)的配置的一部分可以被包括在另一装置(或另一处理部)的配置中,只要作为整体的系统的配置和操作基本相同即可。

另外,例如,上述程序可以在可选装置中执行。在这种情况下,仅要求装置具有必要的功能(功能块等)并且能够获得必要的信息。

另外,例如,一个流程图的每个步骤可以由一个装置执行,或者可以由多个装置共享并执行。此外,在一个步骤包括多条处理的情况下,多条处理可以由一个装置执行,或者可以由多个装置共享并执行。换句话说,包括在一个步骤中的多条处理也可以作为多个步骤的处理被执行。相反,作为多个步骤描述的处理也可以作为一个步骤共同地执行。

另外,例如,在由计算机执行的程序中,描述该程序的步骤的处理可以例如按照本说明书中描述的顺序按时间序列执行,或者可以在执行调用时的必要定时处并行或单独执行。也就是说,除非发生不一致,否则可以以与上述顺序不同的顺序执行每个步骤的处理。此外,描述程序的步骤的处理可以与另一程序的处理并行执行,或者可以与另一程序的处理组合执行。

另外,例如,除非出现不一致,否则与本技术相关的多个技术可以彼此独立地单独执行。当然,本技术的可选多个技术也可以组合使用来实现。例如,一个实施方式中描述的本技术的一部分或全部可以与另一实施方式中描述的本技术的一部分或全部组合执行。另外,以上描述的可选本技术中的部分或全部可以与以上未描述的另外的技术组合执行。

顺便提及,本技术还可以采用以下配置。

(1)

一种图像处理装置,包括:

管理信息生成部,其被配置成生成作为预定三维空间区域中的部分区域的块的管理信息,所述预定三维空间区域包括表示三维结构的3d数据。

(2)

根据(1)所述的图像处理装置,其中,

所述管理信息包括作为关于所述块的信息的块信息。

(3)

根据(2)所述的图像处理装置,其中,

所述块信息包括下述项中的至少任何一个:所述块的识别信息、所述块的位置、所述块的大小或所述块的数据的位置。

(4)

根据(1)至(3)中任一项所述的图像处理装置,其中,

所述管理信息包括作为关于所述块内的3d数据的位置信息的信息的位置信息。

(5)

根据(4)所述的图像处理装置,其中,

所述位置信息包括下述项中的至少任何一个:所述3d数据的分辨率、由所述3d数据表示的三维结构或所述3d数据的可靠度。

(6)

根据(1)至(5)中任一项所述的图像处理装置,其中,

所述管理信息包括作为关于所述块内的3d数据的属性信息的信息的属性信息。

(7)

根据(6)所述的图像处理装置,其中,

所述属性信息包括下述项中的至少任何一个:所述3d数据的颜色、法线或反射率。

(8)

根据(1)至(7)中任一项所述的图像处理装置,其中,

所述管理信息包括作为关于所述3d数据的获得的信息的获得信息。

(9)

根据(8)所述的图像处理装置,其中,

所述获得信息包括下述项中的至少任何一个:所述3d数据的获得时刻、所述3d数据的计算方法、获得所述3d数据中使用的传感器、所述3d数据的获得位置或所述3d数据的获得者。

(10)

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

所述管理信息包括作为关于整个三维空间区域的信息的整个区域信息。

(11)

根据(10)所述的图像处理装置,其中,

所述整个区域信息包括下述项中的至少任何一个:所述整个三维空间区域的位置、所述整个三维空间区域的大小、关于包括在所述三维空间区域中的块的信息或对于包括在所述三维空间区域中的所有块共有的管理信息。

(12)

根据(1)至(11)中任一项所述的图像处理装置,还包括:

比特流生成部,其被配置成生成比特流,所述比特流包括所述3d数据的编码数据和由所述管理信息生成部生成的管理信息。

(13)

根据(1)至(12)中任一项所述的图像处理装置,还包括:

块设置部,其被配置成设置由所述管理信息生成部生成的管理信息所管理的所述块。

(14)

根据(13)所述的图像处理装置,还包括:

编码部,其被配置成对由所述块设置部设置的所述块内的3d数据进行编码。

(15)

一种图像处理方法,包括:

生成作为预定三维空间区域中的部分区域的块的管理信息,所述预定三维空间区域包括表示三维结构的3d数据。

(16)

一种图像处理装置,包括:

块选择部,其被配置成基于作为包括表示三维结构的3d数据的预定三维空间区域中的部分区域的块的管理信息,选择满足由用户指定的条件的块;以及

解码部,其被配置成对由所述块选择部选择的所述块内的3d数据的编码数据进行解码。

(17)

根据(16)所述的图像处理装置,还包括:

解码控制部,其被配置成基于所述用户的指令和所述管理信息来控制所述解码部对所述编码数据的解码。

(18)

根据(16)或(17)所述的图像处理装置,还包括:

编辑控制部,其被配置成基于所述用户的指令和所述管理信息来控制所述3d数据的编辑;以及

编辑部,其被配置成根据所述编辑控制部的控制,对由所述解码部对所述编码数据进行解码而生成的3d数据进行编辑。

(19)

根据(16)至(18)中任一项所述的图像处理装置,还包括:

提取部,其被配置成从整个所述三维空间区域的3d数据的编码数据中提取由所述块选择部选择的所述块内的3d数据的编码数据,其中,

所述解码部对由所述块选择部选择的所述块内的3d数据的编码数据进行解码,所述编码数据由所述提取部提取。

(20)

一种图像处理方法,包括:

基于作为包括表示三维结构的3d数据的预定三维空间区域中的部分区域的块的管理信息,选择满足由用户指定的条件的块;以及

对所选择的块内的3d数据的编码数据进行解码。

附图标记列表

100:编码装置

101:块设置部

102:管理信息生成部

103:编码部

104:比特流生成部

181:体素生成部

182:八叉树生成部

183:无损编码部

200:解码装置

201:控制部

202:比特流缓冲器

203:解码部

204:编辑部

211:块选择部

212:解码控制部

213:编辑控制部

251:无损解码部

252:八叉树解码部

253:体素解码部

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