点云解码装置、点云解码方法以及程序与流程

专利2024-07-01  60



1.本发明涉及点云解码装置、点云解码方法和程序。


背景技术:

2.在非专利文献1以及2中,公开了通过递归地进行八叉树分割、四叉树分割以及二叉树分割来对点云的位置信息进行解码的技术。
3.现有技术文献
4.非专利文献
5.非专利文献1:[g-pcc]对g-pcc文本草案的编辑意见、国际标准化组织/国际电工委员会、jtc1/sc29/wg11、m51806
[0006]
非专利文献2:g-pcc解码器说明文档(第5版)v5、国际标准化组织/国际电工委员会、jtc1/sc29/wg11、n18891


技术实现要素:

[0007]
发明要解决的课题
[0008]
但是,对于本技术的发明人而言,在非专利文献1和2中存在对于进行上述分割时的初始化节点的大小没有规定限制的问题。
[0009]
因此,本发明是鉴于上述课题而完成的,其目的在于提供一种点云解码装置、点云解码方法以及程序,能够通过对进行分割时的初始化节点的大小能够规定限制而容易地进行设计。
[0010]
用于解决课题的手段
[0011]
本发明的第一特征是点云解码装置,其主旨在于,具备几何信息解码部,所述几何信息解码部构成为:对规定初始化节点大小的最大值的语法进行解码。
[0012]
本发明的第二特征是点云解码装置,其主旨在于,具备几何信息重构部,所述几何信息重构部构成为:将各点的位置信息设为一维的数组数据,以属于同一父节点的点的数据相邻的方式排列的状态输出作为所述数组数据的顺序。
[0013]
本发明的第三特征是点云解码装置,其主旨在于,具备:几何信息解码部,所述几何信息解码部构成为:对控制是否应用“implicit qtbt”的标志进行解码;以及属性信息解码部,所述属性信息解码部构成为:对控制是否应用“可扩展提升”的标志进行解码,在应用所述“implicit qtbt”的情况下,以不应用所述“可扩展提升”的方式进行限制。
[0014]
本发明的第四特征是点云解码装置,其主旨在于,具备:树合成部,所述树合成部构成为:通过对初始化节点进行递归分割来对各点的位置数据进行解码;以及lod计算部,所述lod计算部构成为:根据各点的坐标计算出莫顿码,参照与所述分割处理中的节点大小对应的莫顿码的位而对各点的位置信息数据进行排序。
[0015]
本发明的第五特征是点云解码装置,其主旨在于,具备:树合成部,所述树合成部构成为:通过对初始化节点进行递归分割来对各点的位置数据进行解码;以及lod计算部,
所述lod计算部构成为:针对各点,在每次所述分割处理时,必须计算出用于生成与x轴、y轴、z轴分别对应的位的码,并按照所述码依次对各点的位置信息数据进行排序。
[0016]
本发明的第六特征是点云解码方法,其主旨在于,具有对规定初始化节点大小的最大值的语法进行解码的工序。
[0017]
本发明的第七特征是在点云解码装置中使用的程序,其主旨在于,使计算机执行对规定初始化节点大小的最大值的语法进行解码的工序。
[0018]
发明效果
[0019]
根据本发明,提供一种点云解码装置、点云解码方法以及程序,能够通过对进行分割时的初始化节点的大小能够规定限制而容易地进行设计。
[0020]
附图的简单说明
[0021]
图1是表示一个实施方式所涉及的点云处理系统10的结构的一例的图。
[0022]
图2是表示一个实施方式所涉及的点云解码装置200的功能块的一例的图。
[0023]
图3是由一个实施方式所涉及的点云解码装置200的几何信息解码部2010所接收的编码数据(位流)的结构例。
[0024]
图4是一个实施方式所涉及的gps2011的语法结构的一例。
[0025]
图5是一个实施方式所涉及的gsh2012a/2012b的语法结构的一例。
[0026]
图6是用于说明一个实施方式所涉及的gsh2012a/2012b的语法的图。
[0027]
图7是用于说明一个实施方式所涉及的点云解码装置200的树合成部2020的处理的一例的图。
[0028]
图8是用于说明一个实施方式所涉及的点云解码装置200的树合成部2020的处理的一例的图。
[0029]
图9是用于说明通过一个实施方式所涉及的点云解码装置200的树合成部2020的处理分割而成的树结构的一例的图。
[0030]
图10是由一个实施方式所涉及的点云解码装置200的属性信息解码部2060所接收的编码数据(位流)的结构例。
[0031]
图11是一个实施方式所涉及的aps2061的语法结构的一例。
[0032]
图12是说明一个实施方式所涉及的点云解码装置200的lod计算部2090的处理步骤的一例的流程图。
[0033]
图13是用于说明一个实施方式所涉及的点云解码装置200的lod计算部2090的处理的一例的图。
[0034]
图14是用于说明一个实施方式所涉及的点云解码装置200的lod计算部2090的处理的一例的图。
[0035]
图15是用于说明一个实施方式所涉及的点云解码装置200的lod计算部2090的处理的一例的图。
具体实施方式
[0036]
以下,一边参照附图一边对本发明的实施方式进行说明。另外,以下的实施方式中的结构要素能够适当与现有的结构要素等置换,另外,能够进行包含与其他现有的结构要素的组合的各种变形。因此,以下的实施方式的记载并不限定权利要求书所记载的发明的
内容。
[0037]
(第一实施方式)
[0038]
以下,参照图1~图8,对本发明的第一实施方式所涉及的点云处理系统10进行说明。图1是表示本实施方式所涉及的实施方式所涉及的点云处理系统10的图。
[0039]
如图1所示,点云处理系统10具有点云编码装置100和点云解码装置200。
[0040]
点云编码装置100构成为:通过对输入点云信号进行编码来生成编码数据(位流)。点云解码装置200构成为:通过对位流进行解码来生成输出点云信号。
[0041]
此外,输入点云信号以及输出点云信号由点云内的各点的位置信息和属性信息构成。属性信息例如是各点的颜色信息、反射率。
[0042]
此处,该位流也可以从点云编码装置100经由传输路径向点云解码装置200发送。另外,位流也可以在存储介质中存储后,从点云编码装置100提供给点云解码装置200。
[0043]
(点云解码装置200)
[0044]
以下,参照图2说明本实施方式所涉及的点云解码装置200。图2是表示本实施方式所涉及的点云解码装置200的功能块的一例的图。
[0045]
如图2所示,点云解码装置200具有:几何信息解码部2010、树合成部2020、近似表面合成部2030、几何信息重构部2040、逆坐标转换部2050、属性信息解码部2060、逆量化部2070、raht部2080、lod计算部2090、逆提升部2100以及逆颜色转换部2110。
[0046]
几何信息解码部2010构成为:将从点云编码装置100输出的位流中的与几何信息有关的位流(几何信息位流)作为输入,对语法进行解码。
[0047]
解码处理例如是上下文自适应二进制算术解码处理。此处,例如,语法包含用于控制位置信息的解码处理的控制数据(标志或参数)。
[0048]
树合成部2020构成为:将由几何信息解码部2010解码而成的控制数据以及表示在后述的树内的哪个节点上存在点云的占用码作为输入,生成在解码对象空间内的哪个区域上存在点的树信息。
[0049]
本处理能够通过递归地重复将解码对象空间分割为长方体,参照占用码判断在各长方体内是否存在点,将存在点的长方体分割为多个长方体,参照占用码这样的处理而生成树信息。
[0050]
在本实施方式中,能够使用被称为“octree”的方法,在该方法中,递归地进行将上述长方体始终八叉树分割为立方体;以及被称为“implicit qtbt”的方法,在该方法中,由控制数据指定长方体的初始化大小,并且基于长方体的大小和控制数据中的参数自适应地进行八叉树、四叉树和二叉树分割。使用哪种方法作为控制数据被从点云编码装置100侧传输。
[0051]
近似表面合成部2030构成为:使用由树信息合成部2020生成的树信息,生成近似表面信息。
[0052]
对于近似表面信息而言,例如,在对物体的三维点云数据进行解码时等,在点云密集地分布在物体表面的情况下,在小平面上近似表达点云的存在区域而不是对各个点云进行解码。
[0053]
具体而言,近似表面合成部2030例如能够通过被称为“trisoup”的方法生成近似表面信息。作为“trisoup”的具体处理,例如能够使用非专利文献1和2中记载的方法。另外,
在对通过lidar等取得的稀疏的点云数据进行解码的情况下,能够省略本处理。
[0054]
几何信息重构部2040构成为:基于由树信息合成单元2020生成的树信息和由近似表面合成部2030生成的近似表面信息,重构解码对象点云的各点的几何信息(解码处理所假设的坐标系中的位置信息)。
[0055]
逆坐标转换部2050构成为:将由几何信息重构部2040重构的几何信息作为输入,进行从解码处理所假设的坐标系转换为输出点云信号的坐标系,输出位置信息。
[0056]
属性信息解码部2060构成为:把从点云编码装置100输出的位流中的与属性信息有关的位流(属性信息位流)作为输入,对语法进行解码。
[0057]
解码处理例如是上下文自适应二进制算术解码处理。此处,例如,语法包含用于控制属性信息的解码处理的控制数据(标志和参数)。
[0058]
另外,属性信息解码部2060构成为:从解码后的语法对量化完毕残差信息进行解码。
[0059]
逆量化部2070构成为:根据由属性信息解码部2060解码而成的量化完毕残差信息和作为由属性信息解码部2060解码而成的控制数据之一的量化参数,进行逆量化处理,生成逆量化完毕残差信息。
[0060]
逆量化完毕残差信息根据解码对象的点云的特征被输出到raht部2080和lod计算部2090中的任一个。通过由属性信息解码部2060解码的控制数据指定输出到哪一个。
[0061]
raht部2080构成为:将由逆量化的残差信息生成的逆量化的残差信息和由几何信息重构部2040生成的几何信息作为输入,并且使用一种被称为区域自适应分层转换(raht)的haar转换(在解码处理中的逆haar转换)来对各点的属性信息进行解码。作为raht的具体处理,例如能够使用非专利文献1和2中记载的方法。
[0062]
lod计算部2090将由几何信息重构部2040生成的几何信息作为输入,并生成细节级别(lod)。
[0063]
lod是用于定义参照关系(要参照的点以及被参照的点)的信息,该参照关系用于实现根据某点的属性信息来预测其他某点的属性信息并对预测残差进行编码或解码这样的预测编码。
[0064]
换言之,lod是定义了将几何信息中包含的各点分类为多个级别,对于属于下位级别的点,使用属于上位级别的点的属性信息对属性进行编码或解码这样的层次结构的信息。
[0065]
作为lod的具体的决定方法,例如也可以使用非专利文献1以及2中记载的方法。关于其他的例子在后面叙述。
[0066]
逆提升部2100构成为:使用由lod计算部2090生成的lod以及由逆量化完毕残差信息生成的逆量化完毕残差信息,基于由lod规定的分层结构对各点的属性信息进行解码。作为逆提升的具体处理,例如可以使用非专利文献1以及2中记载的方法。
[0067]
逆颜色转换部2110构成为:在解码对象的属性信息是颜色信息并且在点云编码装置100侧进行了颜色转换的情况下,对从raht部2080或者逆提升部2100输出的属性信息进行逆颜色转换处理。通过由属性信息解码部2060解码的控制数据来确定是否执行该逆颜色转换处理。
[0068]
点云解码装置200构成为:通过以上的处理,对点云内的各点的属性信息进行解码
并输出。
[0069]
(几何信息解码部2010)
[0070]
以下,使用图3~图5说明由几何信息解码部2010解码的控制数据。
[0071]
图3是由几何信息解码部2010所接收的编码数据(位流)的结构例。
[0072]
第一,位流也可以包含gps2011。gps2011也被称为几何参数集,并且是与几何信息的解码有关的控制数据的集合。关于具体例在后面叙述。各gps2011至少包含在存在多个gps2011的情况下用于识别各个gps2011的gpsid信息。
[0073]
第二,位流也可以包含gsh2012a/2012b。gsh2012a/2012b也被称为几何片段头部,是与后述的片段对应的控制数据的集合。关于具体例在后面叙述。gsh2012a/2012b至少包含用于指定与各gsh2012a/2012b对应的gps2011的gpsid信息。
[0074]
第三,位流也可以在gsh2012a/2012b之后包含片段数据2013a/2013b。片段数据2013a/2013b中包含对几何信息进行编码后的数据。作为片段数据2013a/2013b的一例,可以举出后述的占用码。
[0075]
如上所述,位流成为各片段数据2013a/2013b与gsh2012a/2012b及gps2011一一对应的结构。
[0076]
如上所述,在gsh2012a/2012b中,用gpsid信息指定参照哪个gps2011,因此能够对多个片段数据2013a/2013b使用共同的gps2011。
[0077]
换言之,gps2011不一定需要对每个片段进行传输。例如,如图3所示,也可以设为在gsh2012b和片段数据2013b之前不对gps2011进行编码的位流的结构。
[0078]
此外,图3的结构只是一例。只要是gsh2012a/2012b和gps2011与各片段数据2013a/2013b对应的结构,则作为位流的结构要素,也可以追加上述以外的要素。例如,位流也可以包含序列参数组(sps)。另外,同样地,在传输时,也可以整形为与图3不同的结构。而且,也可以与由后述的属性信息解码部2060解码的位流合成作为单一的位流进行传输。
[0079]
图4是gps2011的语法结构的一例。
[0080]
gps2011可以包含用于识别每个gps2011的gpsid信息(gps_geom_parameter_set_id)。
[0081]
gps2011可以包含语法(gps_max_log2_node_size),其规定后面叙述的树的最大节点大小(初始化节点大小的最大值)。gps_max_log2_node_size也可以规定必须取“0”以上的值。gps_max_log2_node_size例如可以用无码0次指数哥伦布码进行编码。
[0082]
另外,图4的描述符栏表示各语法如何被编码。ue(v)表示无码0次指数哥伦布码,u(1)表示1位的标志。
[0083]
gps2011能够通过包含规定最大节点大小的gps_max_log2_node_size来规定后面叙述的语法的可取值的最大值。
[0084]
另外,通过在gps2011中具备gps_max_log2_node_size,可以在称为简档或级别的规则中定义能够设定为gps_max_log2_node_size的最大值,并且能够根据性能或应用容易地指定要处理的节点大小的最大值。
[0085]
gps2011可以包含用于控制是否由树合成部2020进行“implicitqtbt”的标志(gps_implicit_geom_partition_flag)。例如,当gps_implicit_geom_partition_flag的值是“1”时,可以定义为进行“implicit qtbt”,当gps_implicit_geom_partition_flag的
值是“0”时,可以定义为进行“octree”,在该“octree”中,仅进行将树的节点始终八叉树分割为立方体。
[0086]
此外,在gps_implicit_geom_partition_flag的值是“1”时,gps2011可以另外包含与“implicit qtbt”有关的控制数据。
[0087]
gps2011可以具有x轴、y轴和z轴方向上的各个初始化节点大小的最大值和最小值之间的差分的最大值(gps_max_diff_log2_node_size)作为关于“implicit qtbt”的控制数据。
[0088]
在x轴方向、y轴方向和z轴方向上的各个初始化节点大小的最大值和最小值之间的差分(gps_max_diff_log2_node_size的值)最小的情况下,即,当x轴方向、y轴方向和z轴方向上的各个初始化节点大小相等时,表示节点的形状是立方体。
[0089]
相反,随着x轴方向、y轴方向和z轴方向上的各个初始化节点大小的最大值和最小值之间的差分(gps_max_diff_log2_node_size的值)变大,节点的初始化形状变为细长的或扁平的长方体形状。
[0090]
可以规定gps_max_diff_log2_node_size的值必须取“0”以上的值。此外,可以规定gps_max_diff_log2_node_size的值必须取gps_max_log2_node_size的值以下的值。
[0091]
通过在gps2011中具备gps_max_diff_log2_node_size作为控制数据,能够规定关于后面叙述的节点的x轴方向、y轴方向和z轴方向上的各个初始化大小数据的语法的最小值和最大值。
[0092]
另外,通过在gps2011中具备gps_max_diff_log2_node_size,能够排除初始化节点形状变得极其细长或极其扁平的情况,使点云解码装置200的设计变得容易。
[0093]
gps2011可以包含与后面叙述的k对应的值(gps_max_num_implicit_qtbt_before_ot)和与后面叙述的m对应的值(gps_min_size_implicit_qtbt)作为与“implicit qtbt”有关的控制数据。
[0094]
可以规定gps_max_num_implicit_qtbt_before_ot的值必须取“0”以上的值。此外,可以规定gps_max_num_implicit_qtbt_before_ot的值必须取gps_max_log2_node_size的值以下的值。
[0095]
可以规定gps_min_size_implicit_qtbt的值必须取“0”以上的值。此外,可以规定gps_min_size_implicit_qtbt的值必须取gps_max_log2_node_size的值以下的值。
[0096]
图5是gsh的语法结构的一例。
[0097]
gsh2012a/2012b也可以包含用于指定与该ghs2012a/2012b对应的gps2011的语法(gsh_geometry_parameter_set_id)。
[0098]
gsh2012a/2012b也可以在与该ghs2012a/2012b对应的gps2011中,在gps_implicit_geom_partition_flag的值为“1”的情况下,另外包含与“implicit qtbt”有关的控制数据。
[0099]
gsh2012a/2012b也可以包含标志(gsh_implicit_geom_partition_flag)作为与“implicit qtbt”有关的控制数据,该标志控制在对与该gsh2012a/2012b对应的片段数据2013a/2013b进行解码时应用“implicit qtbt”还是应用“octree”。
[0100]
例如,当gsh_implicit_geom_partition_flag的值是“1”时,可以定义为应用“implicit qtbt”,当gsh_implicit_geom_partition_flag的值是“0”时,可以定义为应用“octree”。
[0101]
在gsh2012a/2012b中不包含gsh_implicit_geom_partition_flag时,几何信息解码部2010可以将gsh_implicit_geom_partition_flag的值视为“0”。
[0102]
通过在gsh2012a/2012b中具备gsh_implicit_geom_partition_flag,能够以片段为单位控制“implicit qtbt”的适当性。
[0103]
当gsh_implicit_geom_partition_flag的值是“1”时,gsh2012a/2012b可以包含表示x轴方向上的初始化节点大小的语法(gsh_log2_max_节点大小_x)。
[0104]
可以规定gsh_log2_max_节点大小_x的值必须取“0”以上的值。此外,可以规定gsh_log2_max_节点大小_x的值必须取gps_max_log2_node_size以下的值。
[0105]
如图6所示,x轴方向上的大小初始化节点由变量max节点大小xlog2表示,并且可以定义为max节点大小xlog2=gsh_log2_max_节点大小_x。
[0106]
当gsh_implicit_geom_partition_flag的值为“1”时,gps2011可以包含通过从y轴方向上的初始化节点大小减去x轴方向上的初始化节点大小(max节点大小xlog2)而获得的值(gsh_log2_max_节点大小_y_minus_x)作为语法。gsh_log2_max_节点大小_y_minus_x可以由有码的0次指数哥伦布(se(v))编码。
[0107]
可以规定gsh_log2_max_节点大小_y_minus_x的值为-gps_max_diff_log2_node_size以上且gps_max_diff_log2_node_size以下。
[0108]
换言之,可以规定gsh_log2_max_节点大小_y_minus_x的绝对值为gps_max_diff_log2_node_size以下。
[0109]
此外,可以规定y轴方向上的初始化节点大小(=max节点大小xlog2+gsh_log2_max_节点大小_y_minus_x)取“0”以上且gps_max_log2_node_size以下的值。
[0110]
另外,综合上述规定,可以规定gsh_log2_max_节点大小_y_minus_x的值取最大值(-max节点大小xlog2,-gps_max_diff_log2_node_size)以上且最小值(gps_max_log2_node_size-max节点大小xlog2,gps_max_diff_log2_node_size)以下的值。
[0111]
另外,最大值(a,b)是返回两个自变量a、b中的最大值的函数,最小值(a,b)是返回两个自变量a、b中的最小值的函数。
[0112]
如图6所示,y轴方向上的初始化节点大小由变量max节点大小ylog2表示,并且可以定义为max节点大小ylog2=max节点大小xlog2+gsh_log2_max_节点大小_y_minus_x。
[0113]
在gsh_implicit_geom_partition_flag的值为“1”时,gps2011可以包含通过从z轴方向上的初始化节点大小减去y轴方向上的初始化节点大小(max节点大小ylog2)而获得的值(gsh_log2_max_节点大小_z_minus_y)作为语法。
[0114]
可以规定gsh_log2_max_节点大小_z_minus_y的值为-gps_max_diff_log2_node_size以上且为gps_max_diff_log2_node_size以下。
[0115]
另外,可以规定z轴方向上的初始化节点大小与x轴方向上的初始化节点大小之间的差分(=gsh_log2_max_节点大小_y_minus_x+gsh_log2_max_节点大小_z_minus_y)为-gps_max_diff_log2_node_size以上且为gps_max_diff_log2_node_size以下。
[0116]
换言之,可以规定gsh_log2_max_节点大小_z_minus_y的绝对值为gps_max_diff_log2_node_size以下,且gsh_log2_max_节点大小_y_minus_x+gsh_log2_max_节点大小_z_minus_y的绝对值为gps_max_diff_log2_node_size以下。
[0117]
另外,可以规定z轴方向上的初始化节点大小(=max节点大小ylog2+gsh_log2_max_节点大小_z_minus_y)必须取“0”以上且gps_max_log2_node_size以下的值。
[0118]
另外,综合上述规定,可以规定gsh_log2_max_节点大小_z_minus_y的值取max(-max节点大小ylog2,max(-gps_max_diff_log2_node_size,-gps_max_diff_log2_node_size-gsh_log2_max_节点大小_y_minus_x))以上且min(gps_max_diff_log2_node_size-max节点大小ylog2,gps_max_diff_log2_node_size))以下的值。
[0119]
如图6所示,z轴方向上的初始化节点大小由变量max节点大小zlog2表示,可以定义为max节点大小zlog2=max节点大小ylog2+gsh_log2_max_节点大小_z_minus_y。
[0120]
当gsh_log2_max_节点大小_z_minus_y的值是“0”时,gps2011可以包含表示初始化节点大小的语法(gsh_log2_max_节点大小)。
[0121]
可以规定gsh_log2_max_节点大小的值为“0”以上且gps_max_log2_node_size以下的值。
[0122]
当gsh_implicit_geom_partition_flag的值为“0”时,由于假定节点的形状仅为立方体,因此能够由gsh_log2_max_size来规定x轴、y轴和z轴的所有方向上的初始化节点大小。所述初始化节点大小由变量max节点大小log2表示,可以定义为max节点大小log2=gsh_log2_max_节点大小。
[0123]
以上,示出了在gsh2012a/2012b中具备gsh_implicit_geom_partition_flag的例子,但即使在不存在gsh_implicit_geom_partition_flag的情况下,也能够进行与上述同样的处理。
[0124]
在不存在gshgsh implicit_geom_partition_flag时,几何信息解码部2010可以进行如下处理:在gps_implicit_geom_partition_flag的值为“1”时,对gsh_log2_max_节点大小_x、gsh_log2_max_节点大小_y_minus_x和gsh_log2_max_节点大小_z_minus_y进行解码,在gps_implicit_geom_partition_flag的值为“0”时,对gsh_log2_max_节点大小进行解码。
[0125]
(树合成部2020)
[0126]
使用图7~图9说明树合成部2020的处理的一例。
[0127]
图7是说明在应用“octree”时,即,在gps_implicit_geom_partition_flag的值是“0”时,或者在gsh_implicit_geom_partition_flag的值是“0”时的处理的图。
[0128]
在应用“octree”时,第一,树合成部2020使用由几何信息解码部2010解码的max节点大小log2,如图7所示,规定初始化节点大小。如上所述,在“octree”的情况下,节点形状为立方体。
[0129]
第二,树合成部2020对初始化节点在x轴、y轴以及z轴方向上分别分割成一半,分割为8个子节点。以下,为了方便,对各子节点附加a~h的标签进行说明。
[0130]
第三,树合成部2020参照由几何信息解码部2010解码的占用码。
[0131]
占用码的最初的8位表示在上述子节点a~h各自的内部是否包含解码对象的点。当占用码的值为“1”时,表示在该子节点的内部存在点,当占用码的值为“0”时,表示在该子节点的内部不存在点。在图7的例子中,表示仅在子节点b和子节点h的内部存在点。
[0132]
第四,树合成部2020将内部存在点的子节点b和子节点h再次在x轴、y轴和z轴方向上分别分割成一半,分割为8个子节点。
[0133]
第五,树合成部2020再次参照下一个占用码,判定在各子节点内部是否存在点。
[0134]
之后,树合成部2020通过递归地重复这些处理,生成在由初始化节点定义的空间内的哪个区域存在点的树信息。
[0135]
图8是说明在应用“implicit qtbt”时,即,在gps_implicit_geom_partition_flag的值是“1”时,或者在gsh_implicit_geom_partition_flag的值是“1”时的处理的图。
[0136]
在应用“implicit qtbt”时,如图8所示,树合成部2020使用由几何信息解码部2010解码而成的max节点大小xlog2、max节点大小ylog2和max节点大小zlog2来规定初始化节点大小。如上所述,在应用“implicit qtbt”时,节点形状为长方体(立方体当然也是长方体的一种)。
[0137]
在应用“implicit qtbt”时,基本处理也与应用“octree”的情况相同。在应用“octree”时,将节点始终分割为8个子节点,但在应用“implicit qtbt”时,有时也将节点分割为4个子节点或2个子节点。
[0138]
图8(a)表示将节点分割为4个子节点时的例子,图8(b)表示将节点分割为2个子节点时的例子。
[0139]
如图8(a)所示,在将节点分割为4个子节点时,对应的占用码为4位。同样,如图8(b)所示,在将节点分割为2个子节点时,对应的占用码为2位。
[0140]
使用从初始化节点开始的分割次数、该节点的x轴方向、y轴方向和z轴方向上的大小以及由几何信息解码部2010解码而成的控制数据(k和m)的值来隐含地确定将节点分割为8个、4个或2个中的哪一个数值(进行八叉树分割、四叉树分割或二叉树分割中的哪一个)。作为具体的决定方法,能够使用非专利文献1或2中记载的方法。
[0141]
此处,k是规定在首先进行八叉树分割之前进行四叉树分割或二叉树分割的次数的最大值的参数。另外,m是规定进行四叉树分割以及二叉树分割的最小节点大小的参数。
[0142]
如上所述,通过递归地重复分割直到所有的节点大小成为1
×1×
1的大小为止,能够对构成点云的各点(分别对应于1
×1×
1大小的节点)的位置进行解码。
[0143]
此外,在应用后面叙述的可扩展提升时(lifting_scalability_enabled_flag=1的情况),也可以在解码装置的动作之前根据由用户确定的参数skipoctreelayers的值来控制上述说明的解码处理。
[0144]
例如,图9表示通过从初始化节点重复3次分割而使所有的节点大小成为1
×1×
1的大小时的树结构的例子。此处,在skipoctreelayers的值为“0”时,与上述说明相同,对各节点进行3次分割。接着,例如在skipoctreelayers=2时,省略下位2次的分割处理。在图9时,由于相当于省略记载为分割次数2和3的层的分割处理,所以在对各节点各进行1次分割的时刻结束解码处理。
[0145]
经由近似表面合成部2030和几何信息重构部2040将如上所述解码的各点的位置信息输出到raht部2080和lod计算部2090。此时,各点的位置信息作为以一维的数组保存的数据进行传递,作为该数据的顺序,也可以定义以属于同一父节点的点的数据相邻的方式排列的限制。
[0146]
即,几何信息重构部2040将各点的位置信息作为一维的数组数据,作为该数据的顺序,可以在以属于同一父节点的点的数据相邻的方式排列的状态下输出。
[0147]
例如,在图9的例子中,表示以按照abcd

pqr的顺序的方式的字母的顺序存储点
的数据。在该排列顺序中,例如在将分割次数2的层次的节点考虑为父节点时,例如节点a和b、节点c和d、节点e和f等是分别属于同一父节点的点。另外,在将分割次数1的层次的节点考虑为父节点时,节点a~f、节点g~i、节点j~l、节点m~r分别属于同一父节点。
[0148]
另外,同样地,上述的数组的数据的顺序也能够说是按照通过宽度优先搜索处理各点的情况的顺序排列的限制。
[0149]
(属性信息解码部2060)
[0150]
以下,使用图10和图11说明由属性信息解码部2060解码的控制数据。
[0151]
图10是由几何信息解码部2060所接收的编码数据(位流)的结构例。
[0152]
第一,位流也可以包含aps2061。aps2061也被称为属性参数组,是与属性信息的解码有关的控制数据的集合。关于具体例在后面叙述。各aps2061至少包含apsid信息,当存在多个aps2061时用于识别每一个aps2061。
[0153]
第二,位流也可以包含ash2062a/2062b。ash2062a/2062b也被称为属性片段头部,是与后述的片段对应的控制数据的集合。关于具体例在后面叙述。ash2062a/2062b至少包含用于指定与各ash2062a/2062b对应的aps2061的apsid信息。
[0154]
第三,位流可以在ash2062a/2062b之后包含片段数据2063a/2063b。在片段数据2063a/2063b中包含通过编码属性信息而获得的数据。
[0155]
如上所述,位流成为ash2062a/2062b和aps2061与各片段数据2063a/2063b一一对应的结构。
[0156]
如上所述,在ash2062a/2062b中,用apsid信息指定参照哪个aps2061,因此能够对多个片段数据2063a/2063b使用共同的aps2061。
[0157]
换言之,aps2061不一定需要对每个片段进行传输。例如,如图10所示,也能够设为在ash2062b和片段数据2063b之前不对aps2061进行编码的位流的结构。
[0158]
此外,图10的结构只是一例。只要是ash2062a/2062b和aps2061与各片段数据2063a/2063b对应的结构,则作为位流的结构要素,也可以追加上述以外的要素。例如,位流也可以包含序列参数组(sps)。
[0159]
另外,同样地,在传输时,也可以整形为与图10不同的结构。而且,也可以与由所述几何信息解码部2010解码的位流合成作为单一的位流进行传输。例如,也可以将片段数据2013a以及2063a、片段数据2013b以及2063b分别作为单一的片段数据进行处理,成为在各片段之前分别配置gsh2012a以及ash2062a、gsh2012b以及ash2062b的结构。另外,此时,也可以在各gsh以及ash之前配置gps2011以及aps2061。
[0160]
图11是aps2061的语法结构的一例。
[0161]
aps2061可以包含用于识别各aps2061的apsid信息(aps_attr_parameter_set_id)。
[0162]
aps2061可以包含表示属性信息的解码方法的信息(attr_coding_type)。例如,可以规定为:在attr_coding_type的值为“0”时,在逆提升部2100中进行可变的加权提升预测,在attr_coding_type的值为“1”时,在raht部2080中进行raht,在attr_coding_type的值为“2”时,在逆提升部2100中进行在固定的权重下的提升预测。
[0163]
aps2061可以包含标志(lifting_scalability_enabled_flag),其表示当attr_coding_type的值为“2”时,即,当在逆提升部2100中进行在固定的权重下的提升预测时是
否应用可扩展提升。
[0164]
在lifting_scalability_enabled_flag的值是“0”时,规定为不应用可扩展提升,而在lifting_scalability_enabled_flag的值是“1”时,可以规定为应用可扩展提升。
[0165]
另外,在lifting_scalability_enabled_flag的值为“1”时,即,在应用可扩展提升时,如上所述,也可以规定为取得skipoctreelayers作为图像解码装置200执行时的外部参数。
[0166]
另外,在应用上述的“implicit qtbt”时,即,在gps_implicit_geom_partition_flag的值为“1”时,可以规定为不应用可扩展提升,即,lifting_scalability_enabled_flag的值必须为“0”。
[0167]
即,具有对控制是否应用“implicit qtbt”的标志进行解码的几何信息解码部2010和对控制是否应用“可扩展提升”的标志进行解码的属性信息解码部2060,在应用“implicit qtbt”时,也可以限制为不应用“可扩展提升”。
[0168]
这样,通过以排他地应用“implicit qtbt”和可扩展提升的方式施加限制,能够削减功能的组合,从而使规格简单而容易地进行安装。
[0169]
例如,在应用可扩展提升时,通过限制为必须应用“octree”,在可扩展提升的处理中,节点形状必须是立方体,能够在各分割中必须进行八叉树分割的前提下执行处理,因此与节点形状是长方体且分割的种类除了八叉树分割以外还允许四叉树以及二叉树分割的情况相比,能够简化规格。
[0170]
(lod计算部2090)
[0171]
以下,使用图12~15,对lod计算部2090的处理内容的一例进行说明。
[0172]
图12是lod计算部2090的流程图的一例。
[0173]
在步骤s1201中,lod计算部2090进行重新排列从几何信息重构部2040输出的点云内的各点的位置信息数据的处理(排序)。
[0174]
此处,如上所述,在树合成部2020的输出中,各点的位置信息数据以一维的数组排列,其顺序在被限制为以属于同一父节点的点的位置信息数据必须相邻的方式排列时,或者在被限制为将各点由宽度优先搜索处理的顺序进行排列时,也可以省略本步骤的处理,本处理直接进入步骤s1202。
[0175]
在没有上述那样的限制时,按照以下那样的步骤进行排序。使用图13和图14说明排序方法的例子。
[0176]
图13(a)表示作为初始化节点大小设为(x,y)=(4,8)时的分割结果的例子,图13(b)表示与图13(a)对应的分割树的例子,图13(c)表示根据图13(a)的坐标计算出的莫顿码以及聚类码的例子。以下,为了简单,以x轴以及y轴的二维进行说明,但以下的说明通过与x轴、y轴同样地追加与z轴有关的信息,能够简单地扩展为三维(x,y,z)。
[0177]
图13(a)表示将初始化节点大小作为(x,y)=(4,8),通过第1次分割,四叉树分割为(2,4)的4个子节点,通过第2次分割将(2,4)大小的节点分别四叉树分割为(1,2)大小的4个子节点,通过第3次分割将(1,2)大小的节点分别二叉树分割为(1,1)大小的2个子节点的情况的例子。
[0178]
在图13(b)中,在上述的每个分割次数中,至少与存在1点位置信息数据的节点数对应。换言之,图13(b)表示占用码的值为1的节点数。
[0179]
另外,图13(b)的下部的字母a~r对应于图13(a)的1
×
1大小的节点a~r。
[0180]
在图13(a)中,在用a~r标记的节点中存在位置信息数据,在除此以外的节点中不存在位置信息数据,即不存在点数据。
[0181]
此外,在之后,各节点的坐标中,各节点所占的区域中的x坐标以及y坐标分别为最小的点。在图13(a)的例子中,原点位于图13(a)的左上,所以各节点的坐标成为各节点的左上角的位置的坐标。例如,节点p的坐标是(x,y)=(3,5)。
[0182]
lod计算部2090在进行排序处理之前,计算莫顿码或partition-basedcode(聚类码)。
[0183]
第一,说明使用莫顿码进行排序的情况。
[0184]
在三维空间的情况下,莫顿码以各节点的坐标为基础,通过以下的(式1)计算得出。
[0185]
[数学式1]
[0186][0187]
这里,i是分别用2进制数表示x、y、z坐标时的位数,根据初始化节点大小确保所需的位数。例如,在图13的例子中,最大的节点的大小为8,所以只要x轴、y轴分别各准备3位,就能够表达所有整数位置的坐标。
[0188]
另外,如图13所示,在二维空间的情况下,如下所述。
[0189]
[数学式2]
[0190][0191]
在图13(c)中示出使用(式2)计算出的莫顿码的例子。在从莫顿码逆转换为坐标时,能够通过以下的(式3)计算得出。
[0192]
[数学式3]
[0193][0194]
同样,如图13所示,在二维空间的情况下,成为以下的(式4)。
[0195]
[数学式4]
[0196][0197]
此处,运算符&是以位为单位的逻辑与。
[0198]
图13(c)表示在(x,y)=(3,5)的情况下的根据莫顿码计算坐标时的例子。
[0199]
如上所述,lod计算部2090对各节点计算出莫顿码后,进行排序处理。
[0200]
使用图14说明使用莫顿码时的排序处理的例子。
[0201]
图14的最左侧的“初始化”列是随机排列了各节点而成的列。在作为标签附加给各节点的字母的右侧相邻的6位数字是各节点的莫顿码。这些莫顿码是根据图13(a)的坐标计算出的。
[0202]
之后,lod计算部2090对该“初始化”列的数据进行排序,使得属于同一父节点的点的位置信息数据必须相邻。换言之,lod计算部2090按照字母顺序进行排序,以便位于“节点大小=(2,4)”的列中。
[0203]
此外,在图13(a)的情况下,应用“implicit qtbt”来应用四叉树分割和二叉树分割这两者。在这种情况下,如图14的“莫顿码顺序”的列那样,当按照莫顿码从小到大的顺序进行排序时,有时会发生属于同一父节点的点的位置信息数据不相邻的情况。例如,节点a属于与节点b相同的父节点,但在按照莫顿码顺序排列时,节点a和节点c相邻排列。
[0204]
以下,说明应用基数排序的想法,以属于同一父节点的点的位置信息数据必须相邻的方式进行排序的方法。
[0205]
第一,考虑节点被分割为最小的情况。在图13的例子中,考虑分割次数3的状况。此时,节点大小是(x,y)=(1,1)。因此,着眼于与各莫顿码的x=1和y=1对应的数位。与x=1对应的是莫顿码的位的最下位,与y=1对应的是位的第二下位。即,图14的“节点大小=(1,1)”的列的由四边形包围的部分与x=1,y=1对应。
[0206]
仅着眼于上述由四边形包围的部分,对“初始化”列中的数据的排序的结果是“节点大小=(1,1)的列”。由图14可知,按照“yx”的顺序,排序为“00”、“01”、“10”、“11”。另外,所着眼的2位的模式相同的节点之间的顺序保存“初始化”列中的顺序。
[0207]
第二,考虑分割次数2的状况。此时,节点大小是(x,y)=(1,2)。因此,着眼于与各莫顿码的x=1和y=2对应的数位。与x=1对应的是莫顿码的位的最下位,与y=1对应的是从最下位开始的第四位。着眼于上述两个位,对“节点大小=(1,1)”的列的数据进行排序的结果是“节点大小=(1,2)”的列。
[0208]
第三,同样地考虑分割数1的状况,着眼于与各莫顿码的x=2以及y=4对应的数位,对“节点大小=(1,2)”的列的数据进行排序的结果是“节点大小=(2,4)”的列。
[0209]
如上所述,通过仅着眼于各分割次数时的节点大小以及与莫顿码的所述节点大小对应的数位,从最下位的分割层向上位的分割层依次进行排序,能够以属于同一父节点的点的位置信息数据必须相邻的方式进行排序。以上,以x轴和y轴的二维平面的情况为例进行了说明,但在三维的情况下,通过在各处理中追加考虑z轴的数据,能够同样地进行排序。
[0210]
另外,在应用可扩展提升的情况下,也将节点被分割为最小的状态作为开始地点,
按分割处理的逆顺序依次考虑节点大小,由此能够实现同样的排序。
[0211]
例如,在变量skipoctreelayers的值为“1”时,在图13的例子中,节点大小为(x,y)=(1,2),因此,在图14所示的“节点大小=(1,2)”的列中,从着眼于由四边形包围的2位进行排序时开始处理,依次重复进行排序处理,直到最上方的分割层次为止,即在图14的例子中,直到“节点大小=(2,4)”的列中记载的排序完成为止。
[0212]
以上是使用莫顿码的情况的排序方法的说明。
[0213]
即,lod计算部2090根据各点的坐标计算出莫顿码,参照与上述分割处理中的节点大小对应的莫顿码的位,对各点的位置信息数据进行排序。
[0214]
如上所述,能够仅根据各节点的坐标计算出莫顿码。换言之,能够不依赖于如何从初始化节点分割(分别以怎样的顺序进行八叉树、四叉树、二叉树分割中的哪一个)而计算。
[0215]
另外,在“octree”的情况下,即,在三维空间中节点大小始终为立方体,必须以八叉树分割进行分割时,通过按照莫顿码顺序(例如,从小到大的顺序)对位置数据进行排序,能够一定以属于同一父节点的点的位置信息数据必须相邻的方式进行排列。
[0216]
在二维空间时,节点大小必须是正方形,在必须以四叉树分割进行分割的情况下,通过按照莫顿码顺序(例如从小到大的顺序)对位置数据进行排序,与上述同样地,通过一定以属于同一父节点的点的位置信息数据必须相邻的方式进行排列。
[0217]
接着,说明使用图13(c)所示的聚类码时的排序法。聚类码在二维平面的情况下以“yx”的顺序的2位,在三维空间中以“zyx”的顺序的3位为一组,在每个分割中由各位表示该点的坐标属于分割后的哪个空间(在属于坐标小的一方的空间的情况下为“0”,在属于坐标大的一方的空间的情况下为“1”。
[0218]
例如,在图13的例子中,在第一次分割(四叉树分割)之后,节点m、节点o和节点p都属于图13(c)的(x,y)=(2,4)大小的子节点。因此,由于聚类码的在先2位(与第1次分割对应)的x和y都是坐标大的一方的空间,所以为“11”。
[0219]
聚类码的下一个2位(6位中的中央2位)对应于第二次分割(四叉树分割)。在第2次分割后,如果在图13(c)的(x,y)=(2,4)大小的节点中考虑,则由于节点m的x和y都属于坐标小的一方的空间,所以为“00”。由于节点o和p的x是坐标大的一方的节点,并且y是坐标小的一方的节点,因此为“01”。
[0220]
聚类码的下一个2位(6位中的下位2位)对应于第三次分割(二叉树分割)。第三次分割是仅在y方向上的分割。由于节点m和节点o分别属于分割后y坐标小的一方,所以从下位开始的第2位为“0”。位的最下位与x轴对应,但在第三次分割中没有x轴方向上的分割,因此始终设为“0”。或者,也可以省略位而填充数位。
[0221]
由此,节点m以及节点o的聚类码的下位2位成为“00(或者仅“0”)”。同样,节点p的下位2位成为“10(或者仅“1”)”。
[0222]
换言之,以上的步骤等同于在将想要计算聚类码的坐标的x轴分量例如设为x时,在某个分割中x的值为“父节点的x坐标+子节点的x轴方向大小”以上时输出“1”,在不是这样的情况下输出“0”,(在三维的情况下)对y轴以及z轴也同样地执行该步骤。此处,子节点的大小在该分割中在该轴方向上进行分割的情况下,等于父节点大小的1/2,在不进行该分割的情况下,等于父节点大小。
[0223]
即,在每一次分割处理中,当某点的坐标为在该分割下的父节点的坐标上加上该
分割下的子节点的大小而得到的值以上时,对x、y、z轴分别输出“1”,否则输出“0”。
[0224]
在图13(c)中示出了由如上所述计算出的聚类码逆转换成坐标的情况的例子。例如,节点p的坐标能够由聚类码按照以下这样进行逆转换。
[0225]
第一,由于上位2位与第一次的分割对应,所以使用第一次分割后的节点大小(x,y)=(2,4),分别设为x=1
×
2以及y=1
×
4。
[0226]
第二,由于中间的2位与第二次的分割对应,所以设为节点大小(x,y)=(1,2),考虑到之前的结果,设为x=1
×
2+1
×
1以及y=1
×
4+0
×
1。同样,对于下位2位,考虑到第3次的分割时的节点大小,最终如图13(c)所示,能够逆转换为(x,y)=(3,5)。
[0227]
如上所述,在每一次分割处理中,对所有的分割处理计算出将与该分割对应的位(“0”或“1”)乘以该分割后的节点大小(从分割前观察为子节点大小)而得到的值之后,(在三维的情况下)对x、y、z轴分别取总和,由此能够根据如上所述计算出的码对坐标进行逆转换。
[0228]
即,lod计算部2090针对各点,在每一次分割处理中,(在三维空间的情况下)计算生成必须与x、y、z轴分别对应的位(合计3位)的码,按照上述的码顺序对各点的位置信息数据进行排序。
[0229]
如上所述,当通过对每个分割计算生成与各坐标轴对应的位的聚类码,按照聚类码顺序对各点的位置信息数据进行排序时,能够一定以属于同一父节点的点的位置信息数据必须相邻的方式进行排列。即,在图13的例子中,能够按照a~r的字母顺序进行排序。
[0230]
另外,在应用“octree”的情况下,以上说明的聚类码与莫顿码完全一致。
[0231]
而且,聚类码只不过是为了便于说明而附加的名称,即使是不同的名称,只要是用同样的方法计算出的码即可。例如,只要是在每一次分割中必须生成分别与x、y、z轴对应的位(合计3位)的码即可。另外,例如,只要是如下定义的码即可:在每一次分割处理中,在某点的坐标为在该分割下的父节点的坐标上加上该分割下的子节点的大小而得到的值以上时,对x、y、轴分别输出“1”,否则输出“0”。另外,例如,只要是被定义为通过考虑与该位的分割对应的节点大小进行运算,能够从该码逆转换坐标的码即可。
[0232]
如上所述,lod计算部2090进行莫顿码或聚类码的计算以及分别对应的排序处理后,本处理进入步骤s1202。
[0233]
在步骤s1202中,lod计算部2090对各点的位置信息分别计算出lod。
[0234]
以下,说明应用可扩展提升时的lod计算处理。不应用可扩展提升时的lod的计算方法例如可以通过非专利文献1、非专利文献2中记载的方法来实现。
[0235]
应用可扩展提升时的lod的计算处理进行如下处理:从最下位的lod(在图13的例子中,相当于分割次数3)起依次仅将属于同一父节点的点中的一点向上位的lod发送,对于其他点,附加lod作为属于该lod的点。
[0236]
例如,以将最下位的lod设为“0”,将上一位的lod设为“1”(在图13的例子中相当于分割次数2的层)的方式依次将lod增大1并分配到分割次数0为止。
[0237]
例如,也可以确定为:在lod的值为偶数时,将属于同一父节点的节点中莫顿码或聚类码的值的最小的节点发送给上位的lod,在lod的值为奇数时,将属于同一父节点的节点中莫顿码或聚类码的值的最大的节点发送给上位的lod。或者,也可以替换上述lod的值为奇数时的处理和为偶数时的处理。
[0238]
对于使用莫顿码的情况以及使用聚类码的情况,以下说明具体的处理。
[0239]
第一,说明在步骤s1201中,对通过上述的莫顿码的计算以及使用图14说明的方法排序后的各点的位置信息数据计算lod的情况的例子。
[0240]
第一,lod计算单元2090从最下位的lod(lod“0”)开始处理。例如,在图13的例子中,与最下位的lod对应的节点((x,y)=(1,1)尺寸)的父节点的大小是(x,y)=(1,2)。使用其,对于在莫顿码中与x对应的位,只着眼于1位以上的位,对于与y对应的位,只着眼于2位以上的位。
[0241]
具体而言,仅着眼于图15的“父节点大小=(1,2)行”所示的由四边形包围的部分。
[0242]
第二,lod计算部2090对由四边形包围的部分成为相同模式的节点彼此进行分组。例如,节点a和b、节点c和d、节点e和f分别具有相同的模式。此外,该分组也能够通过循环处理来实现。
[0243]
例如,第一,lod计算部2090从在先的节点a的莫顿码中提取并保存上述的由四边形包围的部分的模式。另外,lod计算部2090将该节点设定为起点。
[0244]
第二,lod计算部2090与节点b、节点c依次进行处理,同样地,提取由四边形包围的部分的模式与此前保存的节点a的模式进行比较。此时,在与保存的模式不同时,lod计算部2090将之前确认的节点(在具有与起点相同的模式的节点中,具有最大的莫顿码的节点)设定为终点。
[0245]
第三,lod计算部2090将从起点到终点之间包含的节点中的一个节点发送给上位的lod,对于其他节点设为该lod。
[0246]
第四,lod计算部2090将具有与上述保存的模式不同的模式的节点设定为新的起点,对所有节点重复与上述相同的处理。
[0247]
这种分组相当于具有相同父节点的子节点的组。由此,lod计算部2090在该各组中观察莫顿码的所有位的值,向上位的lod发送值最小或最大的节点。在图15的例子中,表示将莫顿码小的一方的节点发送给上位的lod的情况。
[0248]
图15中的“父节点大小=(2,4)”对应于lod[1]的处理。“父节点大小=(2,4)”的列中记载的节点是从上述的最下位的lod发送到该lod的点。该lod对应于图13的分割次数2。与该lod对应的节点的父节点的大小是(x,y)=(2,4)。
[0249]
因此,与上述情况相同,与莫顿码的x对应的位仅着眼于2位以上的位,与y对应的位仅着眼于4位以上的位。
[0250]
第五,lod计算部2090与上述情况同样地进行分组,从同一组向上位的lod发送一个节点。图15的例子是将同一组中莫顿码最大的节点向上位lod发送的情况的例子。
[0251]
通过重复以上的处理直到相当于图13的分割次数0的lod为止,能够确定所有点的lod。
[0252]
即,lod计算部2090参照与各节点大小以上的数位对应的莫顿码的位,计算各点的lod。
[0253]
另外,在以上中,以变量skipoctreelayers的值为“0”时的情况为例进行了说明。例如,变量skipoctreelayers的值为“1”时,跳过下位一层次的处理,从图15的“父节点大小=(2,4)”的列的处理开始。同样,在变量skipoctreelayers的值为“n”时,跳过下位n层次的处理。
[0254]
接着,对使用聚类码的情况进行说明。在使用聚类码的情况下,基本上也如上述那样对各节点进行分组,针对每个组将每个节点发送给上位的lod,将其他节点设为属于该lod,由此确定lod。
[0255]
在聚类码的情况下,如使用图13说明的那样,在二维中,“yx”的2位的各对与各分割对应。因此,在最下层的lod的处理中,通过忽略下位2位而以上位4位的模式进行分组,能够对属于同一父节点的子节点进行分组。同样,在从最下层起的第二个lod中,能够以聚类码的上位2位的模式进行分组。以后的处理与上述的莫顿码的情况相同。
[0256]
如上所述,在计算出各节点的lod之后,本处理进入步骤s1203。
[0257]
在步骤s1203中,lod计算部2090针对各节点,将属于比该节点的lod上位的lod的节点作为对象,进行k最邻近搜索。在k最邻近搜索中,需要计算各节点间的距离。此时,应用可扩展提升,在skipoctreelayers的值为“1”以上时,节点大小比(x,y,z)=(1,1,1)大,无法知晓准确的点的位置。
[0258]
因此,lod计算部2090将使用各lod中的节点大小量化后的坐标值作为该节点的坐标值来进行距离的计算。具体而言,如下所述,lod计算部2090也可以以坐标到达各节点的中央的方式进行量化。
[0259]
shiftx=log2(该节点的x方向上的大小)
[0260]
x=(该节点的x坐标》》shiftx)《《shiftx+该节点的x方向上的大小/2
[0261]
shifty=log2(该节点的y方向上的大小)
[0262]
y=(该节点的y坐标》》shifty)《《shifty+该节点的y方向上的大小/2
[0263]
shiftz=log2(节点的z方向上的大小)
[0264]
z=(该节点的z坐标》》shiftz)《《shiftz+该节点的z方向上的大小/2
[0265]
例如,在图13的例子中,当skipoctreelayers的值为“1”时,该节点的x方向上的大小为“1”,该节点的y方向上的大小为“2”。因此,取分别以2为底的对数,上述的shiftx为“0”,shifty为“1”。
[0266]
当进行上述量化的结果为两个节点的坐标变得完全相同时,例如,可以将两个节点之间的距离(l2范数)定义为该节点大小中的短边长度的平方。
[0267]
即,lod计算部2090对每个lod在属于该lod的节点和属于比该lod上位的节点之间进行k最邻近搜索,在进行上述的k最邻近搜索时,在对该片段应用了“可扩展提升”时,参照x、y、z轴各自的节点大小计算出该lod中的该节点的中央的坐标,将所述中央的坐标视为该节点的坐标。
[0268]
lod计算部2090使用如上所述求出的节点的坐标,进行k最邻近搜索。对于k最邻近搜索的具体处理,能够应用非专利文献1和非专利文献2中记载的方法。
[0269]
在对所有节点进行了k最邻近搜索之后,本处理进入步骤s1204,并结束。
[0270]
另外,上述的点云编码装置100和点云解码装置200也可以通过使计算机执行各功能(各工序)的程序来实现。
[0271]
此外,在上述各实施方式中,以将本发明应用于点云编码装置100和点云解码装置200为例进行了说明,但本发明不仅限于该例,同样也可以应用于具备点云编码装置100和点云解码装置200的各功能的点云编码/解码系统。
[0272]
附图标记说明
[0273]
10:点云处理系统;100:点云编码装置;200:点云解码装置;2010:几何信息解码部;2020:树合成部;2030:近似表面合成部;2040:几何信息重构部;2050:逆坐标转换部;2060:属性信息解码部;2070:逆量化部;2080:raht部;2090:lod计算部;2100:逆提升部;2110:逆颜色转换部。

技术特征:
1.一种点云解码装置,其特征在于,具备:几何信息解码部,所述几何信息解码部构成为:对控制是否应用“implicit qtbt”的标志进行解码;以及属性信息解码部,所述属性信息解码部构成为:对控制是否应用“可扩展提升”的标志进行解码,在应用所述“implicit qtbt”的情况下,以不应用所述“可扩展提升”的方式进行限制。2.根据权利要求1所述的点云解码装置,其特征在于,在应用所述“可扩展提升”的情况下,应用“octree”。3.一种点云解码方法,其特征在于,具有:对控制是否应用“implicit qtbt”的标志进行解码的工序;以及对控制是否应用“可扩展提升”的标志进行解码的工序,在应用所述“implicit qtbt”的情况下,以不应用所述“可扩展提升”的方式进行限制。4.一种在点云解码装置中使用的程序,其特征在于,使计算机执行以下工序:对控制是否应用“implicit qtbt”的标志进行解码的工序;以及对控制是否应用“可扩展提升”的标志进行解码的工序,在应用所述“implicit qtbt”的情况下,以不应用所述“可扩展提升”的方式进行限制。

技术总结
在本发明所涉及的点云解码装置(200)具备:几何信息解码部(2010),所述几何信息解码部(2010)构成为:对控制是否应用“ImplicitQtBt”的标志进行解码;以及属性信息解码部(2060),所述属性信息解码部(2060)构成为:对控制是否应用“可扩展提升”的标志进行解码,在应用“Implicit QtBt”的情况下,以不应用“可扩展提升”的方式进行限制。的方式进行限制。的方式进行限制。


技术研发人员:海野恭平 河村圭 内藤整
受保护的技术使用者:KDDI株式会社
技术研发日:2021.02.19
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8434.html

最新回复(0)