一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置与流程

2022-02-22 10:08:48 来源:中国专利 TAG:


1.本公开涉及三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置。


背景技术:

2.在用于汽车或机器人自主地进行工作的计算机视觉、地图信息、监控、基础结构检查、或影像分发等较大的领域中,今后将会普及灵活运用了三维数据的装置或服务。三维数据通过测距仪等距离传感器、立体摄影机、或多个单眼相机的组合等各种方法来获得。
3.作为三维数据的一个表现方法有被称作点云的表现方法,该方法通过三维空间内的点群来表现三维结构的形状。在点云中存放了点群的位置以及颜色。虽然预想点云作为三维数据的表现方法将成为主流,但是,点群的数据量非常大。因此,在三维数据的蓄积或传输中与二维的动态图像(作为一个例子,有以mpeg而被标准化后的mpeg-4avc或hevc等)一样,需要通过编码来进行数据量的压缩。
4.并且,关于点云的压缩,有一部分由进行点云关联的处理的公开的库(point cloud library:点云库)等支持。
5.并且,有周知的利用三维的地图数据,检索在车辆周边的设施,并进行显示的技术(例如,参照专利文献1)。
6.现有技术文献
7.专利文献
8.专利文献1国际公开第2014/020663号


技术实现要素:

9.发明要解决的问题
10.在三维数据的编码处理中,期望能够适当地进行编码。
11.本公开的目的在于提供能够适当地进行编码的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
12.用来解决课题的手段
13.本公开的一形态的三维数据编码方法,根据点群数据中包含的多个三维点的多个属性信息计算多个系数值,通过对所述多个系数值进行量化来生成多个量化值,生成包含所述多个量化值的比特流,所述多个属性信息中的至少一部分属性信息通过按照具有长方体形状的多个三维空间中的、包含该属性信息的三维点所属的每个三维空间进行分类,从而属于多个组中的某一个,在所述量化中,对所述多个系数值使用量化参数进行量化,所述量化参数是成为计算该系数值的基础的1个以上的属性信息所属的1个以上的组用的1个以上的量化参数、或规定的量化参数。
14.本公开的一形态的三维数据解码方法,通过对比特流中包含的多个量化值进行逆
量化来计算多个系数值,根据所述多个系数值,计算点群数据中包含的多个三维点的多个属性信息,所述多个属性信息中的至少一部分属性信息通过按照具有长方体形状的多个三维空间中的、包含该属性信息的三维点所属的每个三维空间进行分类,从而属于多个组中的某一个,在所述逆量化中,对所述多个量化值使用量化参数进行逆量化,所述量化参数是成为计算与该量化值对应的系数值的基础的1个以上的属性信息所属的1个以上的组用的1个以上的量化参数、或规定的量化参数。
15.另外,这些包含性或具体的形态也可以由系统、装置、集成电路、计算机程序或计算机可读取的cd-rom等非暂时性记录介质实现,也可以由系统、装置、集成电路、计算机程序及非暂时性记录介质的任意组合来实现。
16.发明效果
17.本公开能够提供能够适当地进行编码的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
附图说明
18.图1示出了实施方式1的编码三维数据的构成。
19.图2示出了属于实施方式1的gos的最下层的spc间的预测结构的一个例子。
20.图3示出了实施方式1的层间的预测结构的一个例子。
21.图4示出了实施方式1的gos的编码顺序的一个例子。
22.图5示出了实施方式1的gos的编码顺序的一个例子。
23.图6是表示实施方式1的元信息的一例的图。
24.图7是表示实施方式2的车辆间的三维数据的收发的状况的示意图。
25.图8是表示实施方式2的在车辆间传输的三维数据的一例的图。
26.图9是用于说明实施方式3的三维数据的发送处理的图。
27.图10是表示实施方式4的系统的结构的图。
28.图11是实施方式4的客户端装置的框图。
29.图12是实施方式4的服务器的框图。
30.图13是由实施方式4的客户端装置进行的三维数据制作处理的流程图。
31.图14是由实施方式4的客户端装置进行的传感器信息发送处理的流程图。
32.图15是由实施方式4的服务器进行的三维数据制作处理的流程图。
33.图16是由实施方式4的服务器进行的三维地图发送处理的流程图。
34.图17示出了实施方式4的系统的变形例的构成。
35.图18示出了实施方式4的服务器以及客户端装置的构成。
36.图19是表示实施方式5的服务器及客户端装置的结构的图。
37.图20是实施方式5的客户端装置的处理的流程图。
38.图21是表示实施方式5的传感器信息收集系统的结构的图。
39.图22是表示实施方式6的体积的例子的图。
40.图23示出了实施方式6的体积的八叉树表现的例子。
41.图24示出了实施方式6的体积的比特串的例子。
42.图25示出了实施方式6的体积的八叉树表现的例子。
43.图26示出了实施方式6的体积的例子。
44.图27是表示实施方式7的三维点的例子的图。
45.图28是表示实施方式7的lod的设定例的图。
46.图29是表示实施方式7的lod的设定中使用的阈值的例子的图。
47.图30是表示实施方式7的预测值中使用的属性信息的例子的图。
48.图31是表示实施方式7的指数哥伦布码的一例的图。
49.图32是表示实施方式7的针对指数哥伦布码的处理的图。
50.图33是表示实施方式7的属性头部的句法例的图。
51.图34是表示实施方式7的属性数据的句法例的图。
52.图35是实施方式7的三维数据编码处理的流程图。
53.图36是实施方式7的属性信息编码处理的流程图。
54.图37是表示实施方式7的针对指数哥伦布码的处理的图。
55.图38是表示实施方式7的表示剩余编码与其值的关系的反推表的例子的图。
56.图39是实施方式7的三维数据解码处理的流程图。
57.图40是实施方式7的属性信息解码处理的流程图。
58.图41是实施方式7的三维数据编码装置的框图。
59.图42是实施方式7的三维数据解码装置的框图。
60.图43是用于说明使用了实施方式8的raht的属性信息的编码的图。
61.图44是表示实施方式8的按每个阶层设定量化尺度的例子的图。
62.图45是表示实施方式8的第1编码串和第2编码串的例子的图。
63.图46是表示实施方式8的截断一元编码的例子的图。
64.图47是用于说明实施方式8的逆haar变换的图。
65.图48是表示实施方式8的属性信息的句法例的图。
66.图49是表示实施方式8的编码系数和zerocnt的例子的图。
67.图50是实施方式8的三维数据编码处理的流程图。
68.图51是实施方式8的属性信息编码处理的流程图。
69.图52是实施方式8的编码系数编码处理的流程图。
70.图53是实施方式8的三维数据解码处理的流程图。
71.图54是实施方式8的属性信息解码处理的流程图。
72.图55是实施方式8的编码系数解码处理的流程图。
73.图56是实施方式8的属性信息编码部的框图。
74.图57是实施方式8的属性信息解码部的框图。
75.图58是表示实施方式8的变形例的第1编码串和第2编码串的例子的图。
76.图59是表示实施方式8的变形例的属性信息的句法例的图。
77.图60是表示实施方式8的变形例的编码系数、zerocnt和totalzerocnt的例子的图。
78.图61是实施方式8的变形例的编码系数编码处理的流程图。
79.图62是实施方式8的变形例的编码系数解码处理的流程图。
80.图63是表示实施方式8的变形例的属性信息的句法例的图。
81.图64是表示实施方式9的三维数据编码装置的结构的框图。
82.图65是表示实施方式9的三维数据解码装置的结构的框图。
83.图66是表示实施方式9的lod的设定例的图。
84.图67是示出了有关实施方式9的raht的阶层结构的例子的图。
85.图68是有关实施方式9的三维数据编码装置的框图。
86.图69是有关实施方式9的分割部的框图。
87.图70是有关实施方式9的属性信息编码部的框图。
88.图71是有关实施方式9的三维数据解码装置的框图。
89.图72是有关实施方式9的属性信息解码部的框图。
90.图73是示出了有关实施方式9的瓦片和切片分割中的量化参数的设定例的图。
91.图74是示出了有关实施方式9的量化参数的设定例的图。
92.图75是示出了有关实施方式9的量化参数的设定例的图。
93.图76是示出了有关实施方式9的属性信息头部的句法例的图。
94.图77是示出了有关实施方式9的属性信息头部的句法例的图。
95.图78是示出了有关实施方式9的量化参数的设定例的图。
96.图79是示出了有关实施方式9的属性信息头部的句法例的图。
97.图80是示出了有关实施方式9的属性信息头部的句法例的图。
98.图81是有关实施方式9的三维数据编码处理的流程图。
99.图82是有关实施方式9的属性信息编码处理的流程图。
100.图83是有关实施方式9的δqp决定处理的流程图。
101.图84是有关实施方式9的三维数据解码处理的流程图。
102.图85是有关实施方式9的属性信息解码处理的流程图。
103.图86是有关实施方式9的属性信息编码部的框图。
104.图87是有关实施方式9的属性信息解码部的框图。
105.图88是示出了有关实施方式9的量化参数的设定例的图。
106.图89是示出了有关实施方式9的属性信息头部的句法例的图。
107.图90是示出了有关实施方式9的属性信息头部的句法例的图。
108.图91是有关实施方式9的三维数据编码处理的流程图。
109.图92是有关实施方式9的属性信息编码处理的流程图。
110.图93是有关实施方式9的三维数据解码处理的流程图。
111.图94是有关实施方式9的属性信息解码处理的流程图。
112.图95是有关实施方式9的属性信息编码部的框图。
113.图96是有关实施方式9的属性信息解码部的框图。
114.图97是示出了有关实施方式9的属性信息头部的句法例的图。
115.图98是表示实施方式10的比特流的编码的比特率与时间的关系的曲线图。
116.图99是表示实施方式10的三维点群的阶层结构和属于各阶层的三维点的数量的图。
117.图100是表示实施方式10的将1个阶层的三维点群按所指定的三维点数分类到子阶层的第1例的图。
118.图101是表示实施方式10的将1个阶层的三维点群按一定的三维点数分类到子阶层的第2例的图。
119.图102表示实施方式10的第2例中的属性信息的头部的句法的例子。
120.图103表示实施方式10的第2例中的属性信息的句法的另一例。
121.图104是表示实施方式10的将1个阶层的三维点群分类到与预定的数量不同的数量的子阶层的第3例的图。
122.图105表示实施方式10的第3例中的属性信息的头部的句法的例子。
123.图106表示实施方式10的第3例的属性信息的头部的句法的另一例。
124.图107是表示实施方式10的将1个阶层的三维点群按照由比例(百分率)指定的三维点数分类到子阶层的第4例的图。
125.图108表示实施方式10的第4例中的属性信息的头部的句法的例子。
126.图109是表示实施方式10的将1个阶层的三维点群以莫顿索引分类到子阶层的第5例的图。
127.图110表示实施方式10的第5例中的属性信息的头部的句法的例子。
128.图111是表示实施方式10的将1个阶层的三维点群按莫顿索引分类到子阶层的第6例的图。
129.图112是表示实施方式10的将1个阶层的三维点群按莫顿索引分类到子阶层的第6例的图。
130.图113是表示实施方式10的将1个阶层的三维点群使用残差或delta值分类到子阶层的第7例的图。
131.图114是表示实施方式10的以二维莫顿序排列的情况下的三维点的排列的图。
132.图115表示实施方式10的第7例中的属性信息的头部的句法的例子。
133.图116表示实施方式10的残差的比特流的句法的例子。
134.图117表示用于计算实施方式10的编码成本(encoding cost)的式子。
135.图118是表示实施方式10的bpp(bits per point,每点比特)与时间之间的关系的曲线图。
136.图119是表示针对每个子阶层设定应用于实施方式10的属性信息的编码的qp值的图。
137.图120是表示实施方式10的使用莫顿码将三维点群分类到子阶层的第8例的图。
138.图121表示实施方式10的第8例中的属性信息的头部的句法的例子。
139.图122是实施方式10的三维数据编码处理的流程图。
140.图123是实施方式10的三维数据解码处理的流程图。
141.图124是用于说明实施方式11的三维模型的三维点群所属的三维空间的一例的图。
142.图125表示实施方式11的属性信息头部的句法的一例。
143.图126是用于说明实施方式11的三维点群所属的三维空间的另一例的图。
144.图127是用于说明实施方式11的三维点群所属的三维空间的另一例的图。
145.图128表示实施方式11的设定圆柱形状的三维空间的情况下的属性信息头部的句法的一例。
146.图129是表示实施方式11的按每个三维空间应用不同的量化参数的处理的一例的流程图。
147.图130是表示实施方式11的按每个三维空间应用不同的量化参数的处理的另一例的流程图。
148.图131是用于说明实施方式11的使用了raht的属性信息的编码的第1例的图。
149.图132是用于说明实施方式11的使用了raht的属性信息的编码的第2例的图。
150.图133是用于说明实施方式11的使用了raht的属性信息的编码的第3例的图。
151.图134是用于说明实施方式11的使用了raht的属性信息的编码的第4例的图。
152.图135是表示实施方式11的raht的阶层结构(树结构)的例子的图。
153.图136是用于说明实施方式11的使用了raht的属性信息的编码的第5例的图。
154.图137是用于说明实施方式11的使用了raht的属性信息的编码的第6例的图。
155.图138是表示实施方式11的执行属性信息的编码处理的处理部的一例的框图。
156.图139是表示实施方式11的lod的阶层结构中属性信息与qp值的关系的图。
157.图140是表示实施方式11的执行属性信息的解码处理的处理部的一例的框图。
158.图141是实施方式11的三维数据编码处理的流程图。
159.图142是实施方式11的三维数据解码处理的流程图。
具体实施方式
160.本公开的一形态的三维数据编码方法,根据点群数据中包含的多个三维点的多个属性信息计算多个系数值,通过对所述多个系数值进行量化来生成多个量化值,生成包含所述多个量化值的比特流,所述多个属性信息中的至少一部分属性信息通过按照具有长方体形状的多个三维空间中的、包含该属性信息的三维点所属的每个三维空间进行分类,从而属于多个组中的某一个,在所述量化中,对所述多个系数值使用量化参数进行量化,所述量化参数是成为计算该系数值的基础的1个以上的属性信息所属的1个以上的组用的1个以上的量化参数、或规定的量化参数。
161.由此,该三维数据编码方法能够使用适当的量化参数对多个系数值进行量化,因此能够适当地进行编码。
162.例如,也可以是,所述多个三维空间的每一个由该三维空间的原点、该三维空间的长度、宽度以及进深表示。
163.例如,也可以是,在所述计算中,通过生成将所述多个属性信息的每一个分成高频成分和低频成分而分层的阶层结构,计算所述多个系数值。
164.例如,也可以是,在所述计算中,使用属于第1阶层的2个第1系数值来计算属于比所述第1阶层高一层的第2阶层的第2系数值,在所述量化中,使用分别分配给所述2个第1系数值的2个量化参数的平均值,对所述第2系数值进行量化。
165.本公开的一形态的三维数据解码方法,通过对比特流中包含的多个量化值进行逆量化来计算多个系数值,根据所述多个系数值,计算点群数据中包含的多个三维点的多个属性信息,所述多个属性信息中的至少一部分属性信息通过按照具有长方体形状的多个三维空间中的、包含该属性信息的三维点所属的每个三维空间进行分类,从而属于多个组中的某一个,在所述逆量化中,对所述多个量化值使用量化参数进行逆量化,所述量化参数是
成为计算与该量化值对应的系数值的基础的1个以上的属性信息所属的1个以上的组用的1个以上的量化参数、或规定的量化参数。
166.由此,该三维数据解码方法能够使用适当的量化参数对多个系数值进行量化,因此能够适当地进行解码。
167.例如,也可以是,所述多个三维空间的每一个由该三维空间的原点、该三维空间的长度、宽度以及进深表示。
168.例如,也可以是,在所述多个系数值的计算中,通过生成将所述多个属性信息中的每一个分为高频成分和低频成分而分层的阶层结构,计算所述多个系数值。
169.例如,也可以是,在所述多个系数值的计算中,使用属于第1阶层的2个第1系数值来计算属于比所述第1阶层高一层的第2阶层的第2系数值,在所述逆量化中,使用分别分配给所述2个第1系数值的2个量化参数的平均值,对所述第2系数值进行逆量化。
170.另外,这些概括性的或具体的形态可以由系统、方法、集成电路、计算机程序或计算机可读取的cd-rom等记录介质来实现,而且可以由系统、方法、集成电路、计算机程序以及记录介质的任意的组合来实现。
171.以下参照附图对实施方式进行具体说明。另外,以下将要说明的实施方式均为示出本公开的一个具体例子。以下的实施方式所示的数值、形状、材料、构成要素、构成要素的配置位置以及连接方式、步骤、步骤的顺序等均为一个例子,其主旨并非是对本公开进行限定。并且,针对以下的实施方式的构成要素之中没有记载在独立技术方案中的构成要素,作为任意的构成要素来说明。
172.(实施方式1)
173.首先,对本实施方式的编码三维数据(以下也记作编码数据)的数据结构进行说明。图1示出了本实施方式的编码三维数据的构成。
174.在本实施方式中,三维空间被分割为相当于动态图像的编码中的图片的空间(spc),以空间为单位对三维数据进行编码。空间被进一步分割为相当于动态图像编码中的宏块等的体积(vlm),以vlm为单位进行预测以及转换。体积包括与位置坐标相对应的最小单位即多个体素(vxl)。另外,预测是指,与二维图像中进行的预测相同,参照其他的处理单位,生成与处理对象的处理单位类似的预测三维数据,并对该预测三维数据与处理对象的处理单位的差异进行编码。并且,该预测不仅包括参照同一时刻的其他的预测单位的空间预测,而且包括参照不同时刻的预测单位的时间预测。
175.例如,三维数据编码装置(以下也记作编码装置)在对由点云等的点群数据来表现的三维空间进行编码时,按照体素的大小,对点群的各个点或体素内所包含的多个点一并进行编码。若将体素细分,则能够对点群的三维形状进行高精确度的表现,若将体素的大小增大,则能够对点群的三维形状进行粗略的表现。
176.另外,以下虽然以三维数据为点云的情况为例进行说明,但是,三维数据并非受点云所限,也可以是任意形式的三维数据。
177.并且,可以利用阶层结构的体素。在这种情况下,在n次的阶层中,可以按顺序示出在n-1次以下的阶层(n次的阶层的下层)中是否存在采样点。例如,在仅对n次的阶层进行解码时,当在n-1次以下的阶层存在采样点的情况下,能够视为n次阶层的体素的中心存在采样点来进行解码。
178.并且,编码装置通过距离传感器、立体摄影机、单眼相机、回转仪、或惯性传感器等来获得点群数据。
179.关于空间,与动态图像的编码同样,至少被分类为以下3个预测结构的任一个,这3个预测结构为:能够单独解码的帧内空间(i-spc)、仅能单向参照的预测空间(p-spc)、以及能够双向参照的双向空间(b-spc)。并且,空间具有解码时刻和显示时刻这两种时刻信息。
180.并且,如图1所示,作为包括多个空间的处理单位,有作为随机存取单位的gos(group of space:空间群)。而且,作为包括多个gos的处理单位,存在世界空间(wld)。
181.世界空间所占的空间区域通过gps或纬度以及经度信息等,与地球上的绝对位置建立了对应。该位置信息作为元信息而被存放。另外,元信息可以包含在编码数据中,也可以与编码数据分开来传输。
182.并且,在gos内,所有的spc可以是三维上的邻接,也可以存在与其他的spc不是三维上邻接的spc。
183.另外,以下将与gos、spc或vlm等处理单位中包含的三维数据所对应的编码、解码或参照等处理,也简单地记作对处理单位进行编码、解码或参照等。并且,处理单位中所包含的三维数据例如包括三维坐标等空间位置与颜色信息等特性值的至少一个组。
184.接着,对gos中的spc的预测结构进行说明。同一gos内的多个spc、或同一spc内的多个vlm虽然彼此占有不同的空间,却持有相同的时刻信息(解码时刻以及显示时刻)。
185.并且,在gos内,在解码顺序上为开头的spc是i-spc。并且,gos中存在封闭式gos和开放式gos这两种。封闭式gos是从开头i-spc开始解码时,能够对gos内的所有的spc进行解码的gos。在开放式gos中,在gos内,比开头i-spc的显示时刻早的一部分spc参照不同的gos,只能在该gos进行解码。
186.另外,在地图信息等的编码数据中,有从与编码顺序相反的方向对wld进行解码的情况,若在gos间存在依存性,则难以进行逆方向再生。因此,在这种情况下,基本上采用封闭式gos。
187.并且,gos在高度方向上具有层结构,从底下的层的spc开始顺序进行编码或解码。
188.图2示出了属于gos的最下层的层的spc间的预测结构的一个例子。图3示出了层间的预测结构的一个例子。
189.在gos内中存在一个以上的i-spc。在三维空间内虽然存在人、动物、汽车、自行车、信号灯、或成为陆上标志的建筑物等对象,但是,尤其是将尺寸小的对象作为i-spc来编码时有效。例如,三维数据解码装置(以下也记作解码装置)在对gos以低处理量或高速进行解码时,仅对gos内的i-spc进行解码。
190.并且,编码装置可以按照wld内的对象的疏密程度,对i-spc的编码间隔或出现频率进行切换。
191.并且,在图3所示的构成中,编码装置或解码装置针对多个层从下层(层1)开始依次进行编码或解码。据此,例如针对自动行走的车辆等而言,能够提高信息量多的地面附近的数据的优先级。
192.另外,在无人机(drone)等使用的编码数据中,在gos内,可以从高度方向的上方的层的spc开始依次进行编码或解码。
193.并且,编码装置或解码装置也可以是以解码装置大致掌握gos并能够逐渐提高分
辨率的方式,来对多个层进行编码或解码。例如,编码装置或解码装置可以按照层3、8、1、9
……
的顺序进行编码或解码。
194.接着,对静态对象以及动态对象的对应方法进行说明。
195.在三维空间中存在建筑物或道路等静态对象或场景(以后统一称为静态对象)、以及车辆或人等动态对象(以后称为动态对象)。对象的检测可以通过从点云的数据、或立体摄影机等拍摄影像等中提取特征点来另外执行。在此,对动态对象的编码方法的例子进行说明。
196.第1方法是不区别静态对象与动态对象而进行编码的方法。第2方法是通过识别信息来区别静态对象与动态对象的方法。
197.例如,gos被用作识别单位。在这种情况下,包括构成静态对象的spc的gos、与包括构成动态对象的spc的gos在编码数据内、或由与编码数据分开存放的识别信息来区別。
198.或者,spc被用作识别单位。在这种情况下,仅包括构成静态对象的vlm的spc、与包括构成动态对象的vlm的spc,由上述的识别信息来区別。
199.或者,可以将vlm或vxl用作识别单位。在这种情况下,包括静态对象的vlm或vxl、与包括动态对象的vlm或vxl由上述的识别信息来区別。
200.并且,编码装置可以将动态对象作为一个以上的vlm或spc来进行编码,将包括静态对象的vlm或spc、与包括动态对象的spc作为彼此不同的gos来进行编码。并且,编码装置在按照动态对象的大小而gos的大小成为可变的情况下,将gos的大小作为元信息来另外存放。
201.并且,编码装置使静态对象与动态对象彼此独立地编码,针对由静态对象构成的世界空间,可以重叠动态对象。此时,动态对象由一个以上的spc构成,各spc与构成重叠了该spc的静态对象一个以上的spc对应。另外,动态对象可以不由spc来表现,可以由一个以上的vlm或vxl来表现。
202.并且,编码装置可以将静态对象与动态对象作为彼此不同的流来编码。
203.并且,编码装置也可以生成包括构成动态对象的一个以上的spc的gos。而且,编码装置可以将包括动态对象的gos(gos_m)、与和gos_m的空间区域对应的静态对象的gos设定为大小相同(占有相同的空间区域)。这样,能够以gos为单位来进行重叠处理。
204.构成动态对象的p-spc或b-spc也可以参照已编码的不同的gos中包含的spc。动态对象的位置随着时间发生变化,同一动态对象作为不同时刻的gos而被编码的情况中,跨越gos的参照从压缩率的观点来看是有效的。
205.并且,也可以按照编码数据的用途,来对上述的第1方法与第2方法进行切换。例如,在编码三维数据作为地图而被应用的情况下,由于希望与动态对象分离,因此,编码装置采用第2方法。另外,编码装置在对音乐会或体育等活动的三维数据进行编码的情况下,若无需对动态对象进行分离,则采用第1方法。
206.并且,gos或spc的解码时刻与显示时刻能够存放在编码数据内、或作为元信息存放。并且,静态对象的时刻信息可以全部相同。此时,实际的解码时刻与显示时刻可以由解码装置来决定。或者,作为解码时刻,按照每个gos或spc来赋予不同的值,作为显示时刻,也可以全被赋予同一个值。而且,如hevc的hrd(hypothetical reference decoder)等动态图像编码中的解码器模式所示,解码器具有规定的大小的缓冲器,只要按照解码时刻,以规定
的比特率读取比特流,就可以导入不会被破坏且保证能够解码的模型。
207.接着,对世界空间内的gos的配置进行说明。世界空间中的三维空间的坐标由彼此正交的3个坐标轴(x轴、y轴、z轴)来表现。通过在gos的编码顺序中设定规定的规则,从而在空间上邻接的gos能够在编码数据内进行连续的编码。例如在图4所示的例子中,对xz平面内的gos进行连续的编码。在一个xz平面内的所有的gos的编码结束后,对y轴的值进行更新。即,随着不断地编码,世界空间向y轴方向延伸。并且,gos的索引编号被设定为编码顺序。
208.在此,世界空间的三维空间与gps、或纬度以及经度等地理上的绝对坐标一一对应。或者,可以由相对于预先设定的基准位置的相对位置来表现三维空间。三维空间的x轴、y轴、z轴的方向作为基于纬度以及经度等而被决定的方向矢量来表现,该方向矢量作为元信息与编码数据一同存放。
209.并且,gos的大小被设定为固定,编码装置将该大小作为元信息来存放。并且,gos的大小例如可以根据是否为市内或者室内、室外等来进行切换。即,gos的大小可以按照具有作为信息的价值的对象的量或性质来进行切换。或者,编码装置可以在同一世界空间内,按照对象的密度等,对gos的大小、或gos内的i-spc的间隔进行恰当地切换。例如,编码装置在对象的密度越高的情况下,就越将gos的大小设定为小、将gos内的i-spc的间隔设定为短。
210.在图5的例子中,在从第3至第10个gos的区域中,由于对象的密度高,因此,为了实现微小粒度的随机存取,则gos被细分。并且,从第7到第10个gos分别存在于第3至第6个gos的背面。
211.(实施方式2)
212.在本实施方式中,对在车辆间收发三维数据的方法进行说明。
213.图7是表示自身车辆600和周边车辆601之间的三维数据607的收发的状况的示意图。
214.在通过搭载于自身车辆600的传感器(测距仪等距离传感器、立体摄影机或多个单眼相机的组合等)获得三维数据的情况下,由于周边车辆601等障碍物,会产生在自身车辆600的传感器检测范围602内但不能制作三维数据的区域(以下,将其称为遮挡区域604)。另外,当获得三维数据的空间变大时,自主动作的精度提高,但仅自身车辆600的传感器检测范围有限。
215.自身车辆600的传感器检测范围602包括能够获得三维数据的区域603和遮挡区域604。自身车辆600想要获得三维数据的范围包括自身车辆600的传感器检测范围602和除此以外的区域。另外,周边车辆601的传感器检测范围605包括遮挡区域604和不包括在自身车辆600的传感器检测范围602中的区域606。
216.周边车辆601将周边车辆601检测到的信息传输到自身车辆600。自身车辆600通过获得前方车等周边车辆601检测到的信息,能够获得遮挡区域604以及自身车辆600的传感器检测范围602以外的区域606的三维数据607。自身车辆600使用周边车辆601获得的信息,补充遮挡区域604以及传感器检测范围外的区域606的三维数据。
217.在车辆或机器人的自主动作中三维数据的用途是自身位置估计、周边状况的检测、或者这两者。例如,在自身位置估计中,使用由自身车辆600基于自身车辆600的传感器
信息而生成的三维数据。在周边状况的检测中,除了由自身车辆600生成的三维数据之外,还使用从周边车辆601获得的三维数据。
218.可以根据自身车辆600的状态来决定将三维数据607传输到自身车辆600的周边车辆601。例如,该周边车辆601在自身车辆600直行时是前方车,在自身车辆600右转时是对面车,在自身车辆600后退时是后方车。另外,自身车辆600的驾驶员也可以直接指定将三维数据607传输到自身车辆600的周边车辆601。
219.另外,自身车辆600也可以搜索周边车辆601,该周边车辆601具有包含在想要获得三维数据607的空间内的、自身车辆600无法获得的区域的三维数据。由自身车辆600无法获得的区域是遮挡区域604或传感器检测范围602以外的区域606等。
220.此外,自身车辆600也可以基于自身车辆600的传感器信息来确定遮挡区域604。例如,自身车辆600将自身车辆600的传感器检测范围602内所包含的、不能制作三维数据的区域确定为遮挡区域604。
221.下面,说明传输三维数据607的是前方车的情况下的动作例。图8是表示该情况下被传输的三维数据的一例的图。
222.如图8所示,从前方车传输的三维数据607例如是点云的稀疏世界(swld)。即,前方车根据由该前方车的传感器检测到的信息制作wld的三维数据(点云),通过从wld的三维数据中提取特征量为阈值以上的数据来制作swld的三维数据(点云)。然后,前方车将制作成的swld的三维数据传输给自身车辆600。
223.自身车辆600接收swld,将接收到的swld合并到由自身车辆600制作成的点云中。
224.被传输的swld具有绝对坐标(swld在三维地图的坐标系中的位置)的信息。自身车辆600能够基于该绝对坐标,通过覆盖由自身车辆600生成的点云来实现合并处理。
225.从周边车辆601传输的swld可以是位于自身车辆600的传感器检测范围602之外且位于周边车辆601的传感器检测范围605内的区域606的swld、或者自身车辆600的遮挡区域604的swld、或这两者的swld。另外,所传输的swld可以是上述swld中的、周边车辆601检测周边状况中使用的区域的swld。
226.另外,周边车辆601也可以根据基于自身车辆600与周边车辆601的速度差的可通信时间,使所传输的点云的密度变化。例如,在速度差大而可通信时间短的情况下,周边车辆601也可以通过从swld中提取特征量大的三维点,来降低点云的密度(数据量)。
227.此外,周边状况的检测是指,判定是否有人、车辆、以及道路施工用的器材等存在,确定其种类,检测其位置、移动方向、以及移动速度等。
228.另外,自身车辆600也可以代替在周边车辆601中生成的三维数据607或者除了三维数据607之外,还获得周边车辆601的制动信息。在此,周边车辆601的制动信息是指,例如是表示周边车辆601的加速器或制动器被踩踏的情况、或其程度的信息。
229.另外,在由各车辆生成的点云中,考虑车辆间的低延迟通信,以随机存取单位细分三维空间。另一方面,将作为从服务器下载的地图数据的三维地图等的三维空间分割成比车辆间通信的情况大的随机存取单位。
230.在前方车的前方区域或后方车的后方区域等易成为遮挡区域的区域的数据作为倾向于低延迟的数据被分割为细小的随机存取单位。
231.由于在高速行驶时正面的重要性提高,因此各车辆在高速行驶时以细小的随机存
取单位制作将视角收窄的范围的swld。
232.在前方车用于传输而制作的swld内包含由自身车辆600能够获得点云的区域的情况下,前方车也可以通过去除该区域的点云来削减传输量。
233.(实施方式3)
234.在本实施方式中,对向后续车辆发送三维数据的方法等进行说明。图9是表示发送给后续车辆等的三维数据的对象空间的例子的图。
235.车辆801以δt的时间间隔将三维数据发送到监控道路状况的交通云监控或后续车辆,所述三维数据是车辆801前方的距车辆801距离l的宽度w、高度h、深度d的长方体空间802所包含的点云(点群)等。
236.车辆801在车辆或人从外部进入空间802等而在过去已发送的空间802中包含的三维数据发生了变化的情况下,也发送发生了变化的空间的三维数据。
237.另外,图9表示了空间802的形状为长方体的例子,但空间802只要包括与后续车辆成死角的前方道路上的空间即可,并不一定是长方体。
238.距离l优选被设定为接收到三维数据的后续车辆能够安全地停止的距离。例如,距离l被设定为后续车辆在接收三维数据所需的时间内所移动的距离、后续车辆根据接收到的数据开始减速之前所移动的距离、以及后续车辆从原则上开始后安全地停止所需的距离之和。由于这些距离根据速度而变化,所以距离l可以根据车辆的速度v而变化,如l=a
×
v b(a、b为常数)。
239.宽度w被设定为至少比车辆801行驶的车道的宽度大的值。更优选地,宽度w被设定为包括左右车道或路边带等相邻空间的大小。
240.深度d可以是固定值,但也可以如d=c
×
v d(c、d为常数)那样根据车辆的速度v而变化。另外,通过设定d使得d>v
×
δt,能够使发送的空间与过去已发送的空间重叠。由此,车辆801能够更可靠地将道路上的空间无遗漏地发送给后续车辆等。
241.这样,通过将车辆801发送的三维数据限定在对后续车辆有用的空间内,能够有效地削减发送的三维数据的容量,能够实现通信的低延迟化及低成本化。
242.(实施方式4)
243.在实施方式3中说明的例子是,车辆等客户端装置将三维数据发送到其他的车辆或交通云监控等服务器。在本实施方式中,客户端装置向服务器或其他的客户端装置发送由传感器得到的传感器信息。
244.首先,对本实施方式的系统的构成进行说明。图10示出了本实施方式的三维地图以及传感器信息的收发系统的构成。该系统包括服务器901、客户端装置902a以及902b。另外,在不对客户端装置902a以及902b进行特殊区分的情况下,也记作客户端装置902。
245.客户端装置902例如是被搭载在车辆等移动体的车载设备。服务器901例如是交通云监控等,能够与多个客户端装置902进行通信。
246.服务器901向客户端装置902发送由点云构成的三维地图。另外,三维地图的构成并非受点云所限,也可以通过网格结构等其他的三维数据来表现。
247.客户端装置902向服务器901发送由客户端装置902获得的传感器信息。传感器信息例如至少包括lidar获得信息、可见光图像、红外图像、深度图像、传感器位置信息以及速度信息之中的一个。
248.关于在服务器901与客户端装置902之间收发的数据,在想要减少数据的情况下可以被压缩,在想要维持数据的精确度的情况下可以不进行压缩。在对数据进行压缩的情况下,在点云中例如能够采用基于八叉树的三维压缩方式。并且,在可见光图像、红外图像、以及深度图像中可以采用二维的图像压缩方式。二维的图像压缩方式例如是以mpeg标准化的mpeg-4avc或hevc等。
249.并且,服务器901按照来自客户端装置902的三维地图的发送请求,将在服务器901进行管理的三维地图发送到客户端装置902。另外,服务器901也可以不等待来自客户端装置902的三维地图的发送请求,就对三维地图进行发送。例如,服务器901也可以将三维地图广播到预先规定的空间中的一个以上的客户端装置902。并且,服务器901也可以向接受过一次发送请求的客户端装置902,每隔一定的时间发送适于客户端装置902的位置的三维地图。并且,服务器901也可以在每当服务器901所管理的三维地图被更新时,向客户端装置902发送三维地图。
250.客户端装置902向服务器901发出三维地图的发送请求。例如,在客户端装置902在行驶时想要进行自身位置估计的情况下,客户端装置902将三维地图的发送请求发送到服务器901。
251.另外,在以下的情况下,客户端装置902也可以向服务器901发出三维地图的发送请求。在客户端装置902所持有的三维地图比较旧的情况下,客户端装置902也可以向服务器901发出三维地图的发送请求。例如,在客户端装置902获得三维地图并经过了一定期间的情况下,客户端装置902也可以向服务器901发出三维地图的发送请求。
252.也可以是,在客户端装置902将要从客户端装置902所保持的三维地图所示的空间出来的一定时刻之前,客户端装置902向服务器901发出三维地图的发送请求。例如也可以是,在客户端装置902存在于从客户端装置902所保持的三维地图所示的空间的边界预先规定的距离以内的情况下,客户端装置902向服务器901发出三维地图的发送请求。并且,在掌握到客户端装置902的移动路径以及移动速度的情况下,可以根据掌握到的移动路径和移动速度,来预测客户端装置902从客户端装置902所保持的三维地图示出的空间出来的时刻。
253.在客户端装置902根据传感器信息制作的三维数据与三维地图的位置对照时的误差在一定范围以上时,客户端装置902可以向服务器901发出三维地图的发送请求。
254.客户端装置902按照从服务器901发送来的传感器信息的发送请求,将传感器信息发送到服务器901。另外,客户端装置902也可以不等待来自服务器901的传感器信息的发送请求,就将传感器信息发送到服务器901。例如,客户端装置902在从服务器901得到过一次传感器信息的发送请求的情况下,可以在一定的期间之中,定期地将传感器信息发送到服务器901。并且也可以是,在客户端装置902根据传感器信息制作的三维数据、与从服务器901得到的三维地图的位置对照时的误差为一定范围以上的情况下,客户端装置902判断在客户端装置902的周边的三维地图有发生变化的可能性,并将这一判断结果和传感器信息一起发送到服务器901。
255.服务器901向客户端装置902发出传感器信息的发送请求。例如,服务器901从客户端装置902接收gps等客户端装置902的位置信息。服务器901根据客户端装置902的位置信息,在判断为客户端装置902接近到服务器901所管理的三维地图中信息少的空间的情况
下,为了重新生成三维地图,而将传感器信息的发送请求发出到客户端装置902。并且也可以是,服务器901在想要更新三维地图的情况、在想要确认积雪时或灾害时等道路状况的情况、在想要确认堵塞状况或事件事故状况等情况下,也可以发出传感器信息的发送请求。
256.并且也可以是,客户端装置902按照从服务器901接受的传感器信息的发送请求的接收时的通信状态或频带,来设定发送到服务器901的传感器信息的数据量。对发送到服务器901的传感器信息的数据量进行设定例如是指,对该数据本身进行增减、或者选择适宜的压缩方式。
257.图11是示出客户端装置902的构成例的方框图。客户端装置902从服务器901接收以点云等构成的三维地图,根据基于客户端装置902的传感器信息而制作的三维数据,来估计客户端装置902的自身位置。并且,客户端装置902将获得的传感器信息发送到服务器901。
258.客户端装置902具备:数据接收部1011、通信部1012、接收控制部1013、格式变换部1014、多个传感器1015、三维数据制作部1016、三维图像处理部1017、三维数据蓄积部1018、格式变换部1019、通信部1020、发送控制部1021、以及数据发送部1022。
259.数据接收部1011从服务器901接收三维地图1031。三维地图1031是包括wld或swld等点云的数据。三维地图1031也可以包括压缩数据、以及非压缩数据的任一方。
260.通信部1012与服务器901进行通信,将数据发送请求(例如,三维地图的发送请求)等发送到服务器901。
261.接收控制部1013经由通信部1012,与通信对方交换对应格式等信息,确立与通信对方的通信。
262.格式变换部1014通过对数据接收部1011所接收的三维地图1031进行格式转换等,来生成三维地图1032。并且,格式变换部1014在三维地图1031被压缩或编码的情况下,进行解压缩或解码处理。另外,格式变换部1014在三维地图1031为非压缩数据的情况下,不进行解压缩或解码处理。
263.多个传感器1015是lidar、可见光相机、红外线相机、或深度传感器等客户端装置902所搭载的用于获得车辆的外部的信息的传感器群,生成传感器信息1033。例如,在传感器1015为lidar等激光传感器的情况下,传感器信息1033是点云(点群数据)等三维数据。另外,传感器1015也可以不是多个。
264.三维数据制作部1016根据传感器信息1033,制作自身车辆的周边的三维数据1034。例如,三维数据制作部1016利用由lidar获得的信息、以及由可见光相机得到的可见光影像,来制作自身车辆的周边的具有颜色信息的点云数据。
265.三维图像处理部1017利用接收的点云等三维地图1032、以及根据传感器信息1033生成的自身车辆的周边的三维数据1034,来进行自身车辆的自身位置估计处理等。另外,也可以是,三维图像处理部1017对三维地图1032与三维数据1034进行合成,来制作自身车辆的周边的三维数据1035,利用制作的三维数据1035,来进行自身位置估计处理。
266.三维数据蓄积部1018对三维地图1032、三维数据1034以及三维数据1035等进行蓄积。
267.格式变换部1019通过将传感器信息1033转换为接收侧所对应的格式,来生成传感器信息1037。另外,格式变换部1019可以通过对传感器信息1037进行压缩或编码来减少数
据量。并且,在不需要格式转换的情况下,格式变换部1019可以省略处理。并且,格式变换部1019可以对按照发送范围的指定来发送的数据量进行控制。
268.通信部1020与服务器901进行通信,从服务器901接收数据发送请求(传感器信息的发送请求)等。
269.发送控制部1021经由通信部1020,与通信对方交换对应格式等信息,从而确立通信。
270.数据发送部1022将传感器信息1037发送到服务器901。传感器信息1037例如包括通过lidar获得的信息、通过可见光相机获得的亮度图像(可见光图像)、通过红外线相机获得的红外图像、通过深度传感器获得的深度图像、传感器位置信息、以及速度信息等由多个传感器1015获得的信息。
271.接着,对服务器901的构成进行说明。图12是示出服务器901的构成例的方框图。服务器901接收从客户端装置902发送来的传感器信息,根据接收的传感器信息,来制作三维数据。服务器901利用制作的三维数据,对服务器901管理的三维地图进行更新。并且,服务器901按照来自客户端装置902的三维地图的发送请求,将更新的三维地图发送到客户端装置902。
272.服务器901具备:数据接收部1111、通信部1112、接收控制部1113、格式变换部1114、三维数据制作部1116、三维数据合成部1117、三维数据蓄积部1118、格式变换部1119、通信部1120、发送控制部1121、以及数据发送部1122。
273.数据接收部1111从客户端装置902接收传感器信息1037。传感器信息1037例如包括通过lidar获得的信息、通过可见光相机获得的亮度图像(可见光图像)、通过红外线相机获得的红外图像、通过深度传感器获得的深度图像、传感器位置信息、以及速度信息等。
274.通信部1112与客户端装置902进行通信,将数据发送请求(例如,传感器信息的发送请求)等发送到客户端装置902。
275.接收控制部1113经由通信部1112,与通信对方交换对应格式等信息,从而确立通信。
276.格式变换部1114在接收的传感器信息1037被压缩或编码的情况下,通过进行解压缩或解码处理,来生成传感器信息1132。另外,在传感器信息1037是非压缩数据的情况下,格式变换部1114不进行解压缩或解码处理。
277.三维数据制作部1116根据传感器信息1132,制作客户端装置902的周边的三维数据1134。例如,三维数据制作部1116利用通过lidar获得的信息、以及通过可见光相机得到的可见光影像,来制作客户端装置902的周边具有颜色信息的点云数据。
278.三维数据合成部1117将基于传感器信息1132而制作的三维数据1134,与服务器901管理的三维地图1135进行合成,据此来更新三维地图1135。
279.三维数据蓄积部1118对三维地图1135等进行蓄积。
280.格式变换部1119通过将三维地图1135转换为接收侧对应的格式,来生成三维地图1031。另外,格式变换部1119也可以通过对三维地图1135进行压缩或编码,来减少数据量。并且,在不需要格式转换的情况下,格式变换部1119也可以省略处理。并且,格式变换部1119可以对按照发送范围的指定来发送的数据量进行控制。
281.通信部1120与客户端装置902进行通信,从客户端装置902接收数据发送请求(三
维地图的发送请求)等。
282.发送控制部1121经由通信部1120,与通信对方交换对应格式等信息,从而确立通信。
283.数据发送部1122将三维地图1031发送到客户端装置902。三维地图1031是包括wld或swld等点云的数据。在三维地图1031中也可以包括压缩数据以及非压缩数据的任一方。
284.接着,对客户端装置902的工作流程进行说明。图13是示出客户端装置902进行的三维地图获得时的工作的流程图。
285.首先,客户端装置902向服务器901请求三维地图(点云等)的发送(s1001)。此时,客户端装置902也将通过gps等得到的客户端装置902的位置信息一起发送,据此,可以向服务器901请求与该位置信息相关的三维地图的发送。
286.接着,客户端装置902从服务器901接收三维地图(s1002)。若接收的三维地图是压缩数据,客户端装置902对接收的三维地图进行解码,生成非压缩的三维地图(s1003)。
287.接着,客户端装置902根据从多个传感器1015得到的传感器信息1033,来制作客户端装置902的周边的三维数据1034(s1004)。接着,客户端装置902利用从服务器901接收的三维地图1032、以及根据传感器信息1033制作的三维数据1034,来估计客户端装置902的自身位置(s1005)。
288.图14是示出客户端装置902进行的传感器信息的发送时的工作的流程图。首先,客户端装置902从服务器901接收传感器信息的发送请求(s1011)。接收了发送请求的客户端装置902将传感器信息1037发送到服务器901(s1012)。另外,在传感器信息1033包括通过多个传感器1015得到的多个信息的情况下,客户端装置902针对各信息,以适于各信息的压缩方式来进行压缩,从而生成传感器信息1037。
289.接着,对服务器901的工作流程进行说明。图15是示出服务器901进行传感器信息的获得时的工作的流程图。首先,服务器901向客户端装置902请求传感器信息的发送(s1021)。接着,服务器901接收按照该请求而从客户端装置902发送的传感器信息1037(s1022)。接着,服务器901利用接收的传感器信息1037,来制作三维数据1134(s1023)。接着,服务器901将制作的三维数据1134反映到三维地图1135(s1024)。
290.图16是示出服务器901进行的三维地图的发送时的工作的流程图。首先,服务器901从客户端装置902接收三维地图的发送请求(s1031)。接收了三维地图的发送请求的服务器901向客户端装置902发送三维地图1031(s1032)。此时,服务器901可以与客户端装置902的位置信息相对应地提取其附近的三维地图,并发送提取的三维地图。并且可以是,服务器901针对由点云构成的三维地图,例如利用通过八叉树的压缩方式等来进行压缩,并发送压缩后的三维地图。
291.以下,对本实施方式的变形例进行说明。
292.服务器901利用从客户端装置902接收的传感器信息1037,来制作客户端装置902的位置附近的三维数据1134。接着,服务器901对制作的三维数据1134、与服务器901所管理的相同区域的三维地图1135进行匹配,算出三维数据1134与三维地图1135的差分。服务器901在差分为预先决定的阈值以上的情况下,判断在客户端装置902的周边发生了某种异常。例如,在因地震等自然灾害而发生了地表下沉等时,可以考虑到在服务器901所管理的三维地图1135、与基于传感器信息1037而制作的三维数据1134之间会产生较大的差。
293.传感器信息1037也可以包括传感器的种类、传感器的性能、以及传感器的型号之中的至少一个。并且也可以是,传感器信息1037中被附加与传感器的性能相对应的类别id等。例如,在传感器信息1037是由lidar获得的信息的情况下,可以考虑到针对传感器的性能来分配标识符,例如,针对能够以几mm单位的精确度来获得信息的传感器分配类别1、针对能够以几cm单位的精确度来获得信息的传感器分配类别2、针对能够以几m单位的精确度来获得信息的传感器分配类别3。并且,服务器901也可以从客户端装置902的型号来估计传感器的性能信息等。例如,在客户端装置902搭载于车辆的情况下,服务器901可以根据该车辆的车型来判断传感器的规格信息。在这种情况下,服务器901可以事前获得车辆的车型的信息,也可以使该信息包括在传感器信息中。并且也可以是,服务器901利用获得的传感器信息1037,来切换针对利用传感器信息1037而制作的三维数据1134的校正的程度。例如,在传感器性能为高精确度(类别1)的情况下,服务器901不进行针对三维数据1134的校正。在传感器性能为低精确度(类别3)的情况下,服务器901将适于传感器的精确度的校正适用到三维数据1134。例如,服务器901在传感器的精确度越低的情况下就越增强校正的程度(强度)。
294.服务器901也可以向存在于某个空间的多个客户端装置902同时发出传感器信息的发送请求。服务器901在从多个客户端装置902接收到多个传感器信息的情况下,没有必要将所有的传感器信息都利用到三维数据1134的制作,例如可以按照传感器的性能,来选择将要利用的传感器信息。例如,服务器901在对三维地图1135进行更新的情况下,可以从接收的多个传感器信息中选择高精确度的传感器信息(类别1),利用选择的传感器信息来制作三维数据1134。
295.服务器901并非受交通云监控等服务器所限,也可以是其他的客户端装置(车载)。图17示出了这种情况下的系统构成。
296.例如,客户端装置902c向附近存在的客户端装置902a发出传感器信息的发送请求,并从客户端装置902a获得传感器信息。于是,客户端装置902c利用获得的客户端装置902a的传感器信息,来制作三维数据,并更新对客户端装置902c的三维地图进行更新。这样,客户端装置902c能够活用客户端装置902c的性能,来生成能够从客户端装置902a获得的空间的三维地图。例如,在客户端装置902c的性能高的情况下,可以考虑发生这种情况。
297.并且,在这种情况下,提供了传感器信息的客户端装置902a被给予获得由客户端装置902c生成的高精确度的三维地图的权利。客户端装置902a按照该权利,从客户端装置902c接收高精确度的三维地图。
298.并且也可以是,客户端装置902c向附近存在的多个客户端装置902(客户端装置902a以及客户端装置902b)发出传感器信息的发送请求。在客户端装置902a或客户端装置902b的传感器为高性能的情况下,客户端装置902c能够利用通过该高性能的传感器得到的传感器信息来制作三维数据。
299.图18是示出服务器901以及客户端装置902的功能构成的方框图。服务器901例如具备:对三维地图进行压缩以及解码的三维地图压缩/解码处理部1201、对传感器信息进行压缩以及解码的传感器信息压缩/解码处理部1202。
300.客户端装置902具备:三维地图解码处理部1211、以及传感器信息压缩处理部1212。三维地图解码处理部1211接收压缩后的三维地图的编码数据,对编码数据进行解码
并获得三维地图。传感器信息压缩处理部1212不对通过获得的传感器信息而制作的三维数据进行压缩,而是对传感器信息本身进行压缩,将压缩后的传感器信息的编码数据发送到服务器901。根据此构成,客户端装置902可以将用于对三维地图(点云等)进行解码处理的处理部(装置或lsi)保持在内部,而不必将用于对三维地图(点云等)的三维数据进行压缩处理的处理部保持在内部。这样,能够抑制客户端装置902的成本以及耗电量等。
301.如以上所述,本实施方式的客户端装置902被搭载在移动体,根据通过被搭载在移动体的传感器1015得到的、示出移动体的周边状况的传感器信息1033,来制作移动体的周边的三维数据1034。客户端装置902利用制作的三维数据1034,来估计移动体的自身位置。客户端装置902将获得的传感器信息1033发送到服务器901或者其他的移动体902。
302.据此,客户端装置902将传感器信息1033发送到服务器901等。这样,与发送三维数据的情况相比,将会有能够减少发送数据的数据量的可能性。并且,由于没有必要在客户端装置902执行三维数据的压缩或编码等处理,因此能够减少客户端装置902的处理的量。因此,客户端装置902能够实现传输的数据量的减少或装置的构成的简略化。
303.并且,客户端装置902进一步向服务器901发送三维地图的发送请求,从服务器901接收三维地图1031。客户端装置902在自身位置的估计中,利用三维数据1034和三维地图1032,来对自身位置进行估计。
304.并且,传感器信息1033至少包括通过激光传感器得到的信息、亮度图像(可见光图像)、红外图像、深度图像、传感器的位置信息、以及传感器的速度信息之中的一个。
305.并且,传感器信息1033包括示出传感器的性能的信息。
306.并且,客户端装置902对传感器信息1033进行编码或压缩,在传感器信息的发送中,将编码或压缩后的传感器信息1037发送到服务器901或者其他的移动体902。据此,客户端装置902能够减少传输的数据量。
307.例如,客户端装置902具备处理器以及存储器,处理器利用存储器进行上述的处理。
308.并且,本实施方式的服务器901能够与搭载在移动体的客户端装置902进行通信,从客户端装置902接收通过被搭载在移动体的传感器1015得到的、示出移动体的周边状况的传感器信息1037。服务器901根据接收的传感器信息1037,来制作移动体的周边的三维数据1134。
309.据此,服务器901利用从客户端装置902发送来的传感器信息1037,来制作三维数据1134。这样,与客户端装置902发送三维数据的情况相比,将会有能够减少发送数据的数据量的可能性。并且,由于可以不必在客户端装置902进行三维数据的压缩或编码等处理,因此能够减少客户端装置902的处理量。这样,服务器901能够实现传输的数据量的减少、或装置的构成的简略化。
310.并且,服务器901进一步向客户端装置902发送传感器信息的发送请求。
311.并且,服务器901进一步利用制作的三维数据1134,来更新三维地图1135,按照来自客户端装置902的三维地图1135的发送请求,将三维地图1135发送到客户端装置902。
312.并且,传感器信息1037至少包括通过激光传感器得到的信息、亮度图像(可见光图像)、红外图像、深度图像、传感器的位置信息、以及传感器的速度信息之中的一个。
313.并且,传感器信息1037包括示出传感器的性能的信息。
314.并且,服务器901进一步按照传感器的性能,对三维数据进行校正。据此,该三维数据制作方法能够提高三维数据的品质。
315.并且,服务器901在传感器信息的接收中,从多个客户端装置902接收多个传感器信息1037,根据多个传感器信息1037中包括的示出传感器的性能的多个信息,来选择三维数据1134的制作中使用的传感器信息1037。据此,服务器901能够提高三维数据1134的品质。
316.并且,服务器901对接收的传感器信息1037进行解码或解压缩,根据解码或解压缩后的传感器信息1132,制作三维数据1134。据此,服务器901能够减少传输的数据量。
317.例如,服务器901具备处理器和存储器,处理器利用存储器进行上述的处理。
318.(实施方式5)
319.在本实施方式中,对上述实施方式4的变形例进行说明。图19是表示本实施方式的系统的结构的图。图19所示的系统包括服务器2001、客户端装置2002a、客户端装置2002b。
320.客户端装置2002a和客户端装置2002b搭载在车辆等移动体上,向服务器2001发送传感器信息。服务器2001将三维地图(点云)发送到客户端装置2002a以及客户端装置2002b。
321.客户端装置2002a具备传感器信息获得部2011、存储部2012和数据发送可否判定部2013。另外,客户端装置2002b的结构也相同。另外,以下在不特别区分客户端装置2002a和客户端装置2002b的情况下,也记载为客户端装置2002。
322.图20是表示本实施方式的客户端装置2002的动作的流程图。
323.传感器信息获得部2011使用搭载于移动体的传感器(传感器群)来获得各种传感器信息。也就是说,传感器信息获得部2011获得由搭载于移动体的传感器(传感器群)得到的、表示移动体的周边状况的传感器信息。另外,传感器信息获得部2011将所获得的传感器信息存储于存储部2012。该传感器信息包含lidar获得信息、可见光图像、红外图像以及深度图像中的至少一个。另外,传感器信息也可以包含传感器位置信息、速度信息、获得时刻信息以及获得场所信息中的至少一个。传感器位置信息表示获得了传感器信息的传感器的位置。速度信息表示传感器获得传感器信息时移动体的速度。获得时刻信息表示由传感器获得传感器信息的时刻。获得场所信息表示由传感器获得传感器信息时移动体或传感器的位置。
324.接着,数据发送可否判定部2013判定移动体(客户端装置2002)是否存在于能够向服务器2001发送传感器信息的环境中(s2002)。例如,数据发送可否判定部2013也可以使用gps等信息,确定客户端装置2002所处的场所以及时刻,判定能否发送数据。另外,数据发送可否判定部2013也可以根据能否与特定的存取点连接来判定能否发送数据。
325.客户端装置2002在判定为移动体存在于能够向服务器2001发送传感器信息的环境中的情况下(s2002的“是”),向服务器2001发送传感器信息(s2003)。即,在客户端装置2002成为能够向服务器2001发送传感器信息的状况的时间点,客户端装置2002向服务器2001发送保持的传感器信息。例如,在交叉路口等设置能够进行高速通信的毫米波的存取点。客户端装置2002在进入交叉路口内的时间点,使用毫米波通信将客户端装置2002保持的传感器信息高速地发送到服务器2001。
326.接着,客户端装置2002从存储部2012删除已发送到服务器2001的传感器信息
(s2004)。此外,客户端装置2002在没有发送到服务器2001的传感器信息满足了规定条件的情况下,也可以删除该传感器信息。例如,客户端装置2002也可以在保持的传感器信息的获得时刻比当前时刻早了一定时刻之前的时间点,从存储部2012删除该传感器信息。即,客户端装置2002也可以在从传感器获得传感器信息的时刻与当前时刻之差超过了预定的时间的情况下,从存储部2012中删除传感器信息。此外,客户端装置2002也可以在保持的传感器信息的获得场所从当前地点离开一定距离的时间点,从存储部2012删除该传感器信息。即,客户端装置2002也可以在从传感器获得传感器信息时的移动体或传感器的位置与当前的移动体或传感器的位置之差超过了预定的距离的情况下,从存储部2012删除传感器信息。由此,能够抑制客户端装置2002的存储部2012的容量。
327.在客户端装置2002的传感器信息的获得未结束的情况下(s2005的“否”),客户端装置2002再次进行步骤s2001以后的处理。另外,在客户端装置2002结束了传感器信息的获得的情况下(s2005的“是”),客户端装置2002结束处理。
328.另外,客户端装置2002也可以根据通信状况选择向服务器2001发送的传感器信息。例如,客户端装置2002在能够高速通信的情况下,优先发送存储部2012中保持的尺寸大的传感器信息(例如lidar获得信息等)。此外,在难以进行高速通信的情况下,客户端装置2002发送存储部2012中保持的、尺寸小优先度高的传感器信息(例如,可见光图像)。由此,客户端装置2002能够根据网络状况将存储部2012中保持的传感器信息高效地发送给服务器2001。
329.另外,客户端装置2002也可以从服务器2001获得表示上述当前时刻的时刻信息、以及表示当前地点的场所信息。另外,客户端装置2002也可以根据获得的时刻信息以及场所信息,决定传感器信息的获得时刻以及获得场所。即,客户端装置2002也可以从服务器2001获得时刻信息,使用获得的时刻信息生成获得时刻信息。另外,客户端装置2002也可以从服务器2001获得场所信息,使用获得的场所信息生成获得场所信息。
330.例如,关于时刻信息,服务器2001和客户端装置2002使用ntp(network time protocol,网络时间协议)或ptp(precision time protocol,精确时间协议)等的结构进行时刻同步。由此,客户端装置2002可以获得准确的时刻信息。另外,由于可以在服务器2001和多个客户端装置之间使时刻同步,所以可以使各个客户端装置2002获得的传感器信息内的时刻同步。因此,服务器2001处理表示被同步了的时刻的传感器信息。此外,时刻同步结构可以是除了ntp或ptp以外的任何方法。此外,gps信息可以用作上述时刻信息和场所信息。
331.服务器2001也可以指定时刻或场所,从多个客户端装置2002获得传感器信息。例如,在发生了某种事故的情况下,为了搜索其附近的客户端,服务器2001指定事故发生时刻和场所,向多个客户端装置2002广播发送传感器信息发送请求。然后,具有相应的时刻和场所的传感器信息的客户端装置2002向服务器2001发送传感器信息。即,客户端装置2002从服务器2001接收包含指定场所和时刻的指定信息的传感器信息发送请求。客户端装置2002在判定为在存储部2012中存储有在由指定信息表示的场所和时刻得到的传感器信息、并且移动体存在于能够向服务器2001发送传感器信息的环境中的情况下,向服务器2001发送在由指定信息表示的场所和时刻得到的传感器信息。由此,服务器2001从多个客户端装置2002获得与事故的发生关联的传感器信息,能够用于事故解析等。
332.另外,客户端装置2002在接收到来自服务器2001的传感器信息发送请求的情况下,也可以拒绝传感器信息的发送。此外,客户端装置2002也可以事先设定在多个传感器信息中能否发送哪个传感器信息。或者,服务器2001也可以每次向客户端装置2002询问可否发送传感器信息。
333.另外,也可以对将传感器信息发送给服务器2001的客户端装置2002赋予点(point)。该点可以用于例如汽油购入费、ev(electric vehicle,电动汽车)充电费、高速公路通行费或租车费用等的支付。另外,服务器2001也可以在获得传感器信息后,删除用于确定传感器信息的发送源的客户端装置2002的信息。例如,该信息是客户端装置2002的网络地址等信息。由此,由于可以匿名化传感器信息,客户端装置2002的用户可以安心地从客户端装置2002向服务器2001发送传感器信息。此外,服务器2001可以由多个服务器构成。例如,通过在多个服务器中共享传感器信息,即使某个服务器发生故障,其他服务器也可以与客户端装置2002进行通信。由此,能够避免服务器故障导致的服务停止。
334.另外,由传感器信息发送请求指定的指定场所表示事故的发生位置等,有时与由传感器信息发送请求指定的指定时刻的客户端装置2002的位置不同。因此,服务器2001例如通过指定周边xxm以内等的范围作为指定场所,可以向存在于该范围内的客户端装置2002请求获得信息。对于指定时刻也同样,服务器2001可以指定从某时刻起前后n秒以内等范围。由此,服务器2001可以从存在于“时刻:从t-n到t n,地点:从绝对位置s起xxm以内”的客户端装置2002获得传感器信息。也可以是,客户端装置2002在发送lidar等三维数据时,发送紧接在时刻t之后生成的数据。
335.另外,服务器2001也可以分别指定表示成为传感器信息获得对象的客户端装置2002的场所的信息、和希望传感器信息的场所,作为指定场所。例如,服务器2001指定从位于绝对位置s的xxm以内的客户端装置2002获得至少包含从绝对位置s到yym的范围的传感器信息。客户端装置2002在选择发送的三维数据时,选择一个以上的可随机存取的单位的三维数据,以至少包含指定的范围的传感器信息。此外,客户端装置2002可以在发送可见光图像时,发送至少包括紧接在时刻t之前或之后的帧的、时间上连续的多个图像数据。
336.在客户端装置2002可以将5g或wifi、或5g中的多种模式等多个物理网络利用于传感器信息的发送的情况下,客户端装置2002也可以按照从服务器2001通知的优先顺序选择要利用的网络。或者,也可以是客户端装置2002自身基于发送数据的尺寸选择能够确保适当的带宽的网络。或者,客户端装置2002也可以基于数据发送所花费的费用等选择要利用的网络。另外,在来自服务器2001的发送请求中,也可以包含表示发送期限的信息,例如客户端装置2002在时刻t之前可以开始发送的情况下进行发送等。如果在期限内不能获得足够的传感器信息,则服务器2001可以再次发行发送请求。
337.传感器信息可以与压缩或未压缩的传感器数据一起包含表示传感器数据的特性的头部信息。客户端装置2002可以经由与传感器数据不同的物理网络或通信协议将头部信息发送到服务器2001。例如,客户端装置2002在发送传感器数据之前,将头部信息发送到服务器2001。服务器2001基于头部信息的解析结果,判断是否获得客户端装置2002的传感器数据。例如,头部信息也可以包含表示lidar的点群获得密度、仰角、或帧率、或者可见光图像的分辨率、sn比、或帧率等的信息。由此,服务器2001可以从具有所决定的品质的传感器数据的客户端装置2002获得传感器信息。
338.如上所述,客户端装置2002被搭载于移动体,获得由搭载于移动体的传感器得到的、表示移动体的周边状况的传感器信息,并将传感器信息存储于存储部2012。客户端装置2002判定移动体是否存在于能够向服务器2001发送传感器信息的环境中,在判定为移动体存在于能够向服务器发送传感器信息的环境中的情况下,向服务器2001发送传感器信息。
339.此外,客户端装置2002还根据传感器信息制作移动体周边的三维数据,使用制作成的三维数据估计移动体的自身位置。
340.另外,客户端装置2002还向服务器2001发送三维地图的发送请求,从服务器2001接收三维地图。客户端装置2002在自身位置的估计中,使用三维数据和三维地图,估计自身位置。
341.另外,上述客户端装置2002的处理也可以作为客户端装置2002中的信息发送方法来实现。
342.另外,客户端装置2002也可以具备处理器和存储器,处理器使用存储器进行上述处理。
343.接着,说明本实施方式的传感器信息收集系统。图21是表示本实施方式的传感器信息收集系统的结构的图。如图21所示,本实施方式的传感器信息收集系统包括终端2021a、终端2021b、通信装置2022a、通信装置2022b、网络2023、数据收集服务器2024、地图服务器2025和客户端装置2026。此外,在不特别区分终端2021a以及终端2021b的情况下也记载为终端2021。在不特别区分通信装置2022a和通信装置2022b的情况下,还记载为通信装置2022。
344.数据收集服务器2024收集由终端2021所具备的传感器获得的传感器数据等数据,作为与三维空间中的位置建立了对应的位置关联数据。
345.传感器数据是例如通过使用终端2021所具备的传感器来获得终端2021的周围的状态或终端2021的内部的状态等的数据。终端2021将从位于能够与终端2021直接通信或者以相同的通信方式中继一个或多个中继装置来进行通信的位置的一个或多个传感器设备收集到的传感器数据,发送给数据收集服务器2024。
346.位置关联数据中包含的数据例如也可以包含表示终端自身或者终端所具备的设备的动作状态、动作日志、服务的利用状况等的信息。另外,位置关联数据所包含的数据也可以包含将终端2021的标识符与终端2021的位置或者移动路径等建立了对应的信息等。
347.位置关联数据中包含的表示位置的信息例如与表示三维地图数据等三维数据中的位置的信息建立了对应。后面将详细描述表示位置的信息。
348.位置关联数据除了包含表示位置的信息即位置信息之外,还可以包含上述时刻信息和表示包含在位置关联数据中的数据的属性或生成该数据的传感器的种类(例如,型号等)的信息中的至少一个。位置信息和时刻信息可以保存在位置关联数据的头部区域中,或者保存在用于保存位置关联数据的帧的头部区域中。此外,位置信息和时刻信息可以作为与位置关联数据建立了对应的元数据与位置关联数据分开发送和/或保存。
349.地图服务器2025例如连接到网络2023,并且根据来自终端2021等其他装置的请求而发送三维地图数据等三维数据。另外,如上述各实施方式中所说明的那样,地图服务器2025也可以具备使用从终端2021发送的传感器信息来更新三维数据的功能等。
350.数据收集服务器2024例如连接到网络2023,从终端2021等其他装置收集位置关联
数据,并且将所收集的位置关联数据保存在内部或其他服务器内的存储装置中。另外,数据收集服务器2024根据来自终端2021的请求,将所收集的位置关联数据、基于位置关联数据生成的三维地图数据的元数据等发送给终端2021。
351.网络2023是例如因特网等通信网络。终端2021经由通信装置2022连接到网络2023。通信装置2022在切换一种通信方式或多种通信方式的同时与终端2021进行通信。通信装置2022例如是(1)lte(long term evolution,长期演进)等的基站、(2)wifi或毫米波通信的存取点(ap)、(3)sigfox、lorawan或wi-sun等lpwa(low power wide area,低功耗广域)network的网关、或(4)使用dvb-s2等卫星通信方式进行通信的通信卫星。
352.另外,基站可以通过被分类为nb-iot(narrow band-iot,窄带物联网)或者lte-m等lpwa的方式与终端2021进行通信,也可以在切换这些方式的同时与终端2021进行通信。
353.在此,列举如下情况为例:终端2021具备与使用两种通信方式的通信装置2022进行通信的功能,使用这些通信方式中的任何一种或者切换这些多种通信方式和成为直接通信对象的通信装置2022的同时,与地图服务器2025或数据收集服务器2024进行通信,但传感器信息收集系统及终端2021的结构不限于此。例如,终端2021也可以不具有以多种通信方式进行通信的功能,而具备以任一种通信方式进行通信的功能。另外,终端2021也可以对应三种以上的通信方式。另外,每个终端2021对应的通信方式也可以不同。
354.终端2021例如具备图11所示的客户端装置902的结构。终端2021使用接收到的三维数据来进行自身位置等的位置估计。此外,终端2021通过将从传感器获得的传感器数据与通过位置估计处理获得的位置信息建立对应来生成位置关联数据。
355.附加到位置关联数据的位置信息表示例如在三维数据中使用的坐标系中的位置。例如,位置信息是由纬度和经度的值表示的坐标值。此时,终端2021可以将表示坐标值、成为该坐标值的基准的坐标系和用于位置估计的三维数据的信息包含在位置信息中。另外,坐标值也可以包含高度的信息。
356.另外,位置信息也可以与能够在上述三维数据的编码中使用的数据的单位或空间的单位建立对应。该单位例如是wld、gos、spc、vlm或vxl等。此时,位置信息例如由标识符表现,所述标识符用于确定与位置关联数据对应的spc等的数据单位。另外,位置信息除了用于确定spc等数据单位的标识符以外,还可以包含表示对包含该spc等数据单位的三维空间进行编码而得到的三维数据的信息、或者表示在该spc内的详细位置的信息等。表示三维数据的信息例如是该三维数据的文件名。
357.如上所述,通过生成与基于使用了三维数据的位置估计的位置信息建立了对应的位置关联数据,与将基于使用gps获得的客户端装置(终端2021)的自身位置的位置信息附加到传感器信息的情况相比,该系统可以将更高精度的位置信息赋予给传感器信息。其结果,即使在其他装置在其他服务中利用位置关联数据的情况下,也存在通过基于相同的三维数据进行位置估计,可以在实际空间中更准确地确定与位置关联数据对应的位置的可能性。
358.另外,在本实施方式中,以从终端2021发送的数据是位置关联数据的情况为例进行了说明,但从终端2021发送的数据也可以是未与位置信息建立关联的数据。即,也可以经由本实施方式中说明的网络2023进行其他实施方式中说明的三维数据或传感器数据的收发。
359.接着,说明表示三维或二维的实际空间或地图空间中的位置的位置信息的不同的例子。附加到位置关联数据的位置信息可以是表示相对于三维数据中的特征点的相对位置的信息。这里,作为位置信息的基准的特征点是例如作为swld被编码、作为三维数据被通知给终端2021的特征点。
360.表示相对于特征点的相对位置的信息例如可以由从特征点到位置信息所示的点的矢量表示,是表示从特征点到位置信息所示的点的方向和距离的信息。或者,也可以是,表示相对于特征点的相对位置的信息是表示从特征点到位置信息所示的点的x轴、y轴、z轴各自的位移量的信息。此外,也可以是,表示相对于特征点的相对位置的信息是表示从3个以上的特征点中的每一个到位置信息所示的点的距离的信息。另外,相对位置可以不是由以各特征点为基准表现的位置信息所示的点的相对位置,而是以位置信息所示的点为基准表现的各特征点的相对位置。基于相对于特征点的相对位置的位置信息的一例包括用于确定成为基准的特征点的信息和表示位置信息所示的点相对于该特征点的相对位置的信息。另外,在表示相对于特征点的相对位置的信息与三维数据分开提供的情况下,表示相对于特征点的相对位置的信息也可以包含在相对位置的导出中使用的坐标轴、表示三维数据的种类的信息、或/及表示相对位置的信息的值的每单位量的大小(比例尺等)的信息等。
361.此外,位置信息可以包含表示多个特征点相对于各特征点的相对位置的信息。在位置信息由相对于多个特征点的相对位置来表示的情况下,试图确定实际空间中该位置信息所示的位置的终端2021可以针对每个特征点根据从传感器数据估计出的该特征点的位置来计算位置信息所示的位置的候选点,并且将对计算出的多个候选点求平均而获得的点判定为位置信息所示的点。根据该结构,由于能够减轻根据传感器数据估计特征点的位置时的误差的影响,因此能够提高实际空间中的位置信息所示的点的估计精度。另外,在位置信息包含表示相对于多个特征点的相对位置的信息的情况下,即使在存在由于终端2021所具备的传感器的种类或性能等的限制而不能检测的特征点的情况下,如果能够检测到多个特征点中的任何一个,则也能够估计位置信息所示的点的值。
362.作为特征点,可以使用能够从传感器数据确定的点。能够从传感器数据确定的点是指,例如满足上述三维特征量或可见光数据的特征量为阈值以上等特征点检测用的规定条件的点或区域内的点。
363.另外,也可以将设置在实际空间中的标记等用作特征点。在这种情况下,标记只要能够根据使用lider或相机等传感器获得的数据进行检测及位置的确定即可。例如,标记通过颜色或亮度值(反射率)的变化、或者三维形状(凹凸等)来表现。此外,也可以使用表示该标记的位置的坐标值、或根据该标记的标识符生成的二维码或条形码等。
364.此外,也可以将发送光信号的光源用作标记。在光信号的光源被用作标记的情况下,除了用于获得坐标值或标识符等的位置的信息之外,还可以通过光信号发送其他数据。例如,光信号可以包含与该标记的位置对应的服务的内容、用于获得内容的url等地址、或用于接受服务的提供的无线通信装置的标识符、以及表示用于与该无线通信装置连接的无线通信方式等的信息。通过将光通信装置(光源)用作标记,能够容易地发送表示位置的信息以外的数据,并且能够动态地切换该数据。
365.终端2021例如通过使用数据之间共同使用的标识符、或者表示数据之间的特征点的对应关系的信息或表,来掌握互不相同的数据之间的特征点的对应关系。此外,在不存在
表示特征点之间的对应关系的信息的情况下,终端2021可以在将一个三维数据中的特征点的坐标变换成另一个三维数据空间中的位置的情况下,将距离最近的特征点判定为对应特征点。
366.在使用基于以上说明的相对位置的位置信息的情况下,即使在使用互不相同的三维数据的终端2021或服务之间,也能够以包含在各三维数据中的或与各三维数据建立了对应的共同特征点为基准来确定或估计位置信息所示的位置。其结果,可以以更高的精度确定或估计使用互不相同的三维数据的终端2021或服务间的相同位置。
367.此外,即使在使用利用互不相同的坐标系来表现的地图数据或三维数据的情况下,也能够减少伴随坐标系的变换的误差的影响,因此能够实现更高精度的基于位置信息的服务的协作。
368.下面将说明由数据收集服务器2024提供的功能的例子。数据收集服务器2024可以将接收到的位置关联数据传输到其他数据服务器。在存在多个数据服务器的情况下,数据收集服务器2024判定要将接收到的位置关联数据传输到哪个数据服务器,并将位置关联数据传输到被判定为传输目的地的数据服务器。
369.数据收集服务器2024基于例如在数据收集服务器2024中事先设定的传输目的地服务器判定规则来进行传输目的地的判定。传输目的地服务器的判定规则是指,例如通过传输目的地表等设定,所述传输目的地表将与各终端2021建立了对应的标识符与传输目的地的数据服务器建立了对应。
370.终端2021将与该终端2021建立了对应的标识符附加于要发送的位置关联数据,并将该位置关联数据发送给数据收集服务器2024。数据收集服务器2024基于使用了传输目的地表等传输目的地服务器的判定规则,确定对应于附加到位置关联数据的标识符的传输目的地的数据服务器,并将该位置关联数据发送给确定的数据服务器。此外,传输目的地服务器的判定规则也可以由使用了获得位置关联数据的时间或场所等的判定条件来指定。在此,与上述发送源的终端2021建立了对应的标识符是指例如各终端2021所固有的标识符、或表示终端2021所属的组的标识符等。
371.另外,传输目的地表也可以不是将与发送源终端建立了对应的标识符和传输目的地的数据服务器直接建立了对应的表。例如,数据收集服务器2024保持管理表和传输目的地表,所述管理表保存赋予终端2021的每个固有标识符的标签信息,所述传输目的地表将该标签信息与传输目的地的数据服务器建立了对应。数据收集服务器2024可以使用管理表和传输目的地表,基于标签信息判定传输目的地的数据服务器。在此,标签信息是指例如与该标识符对应的终端2021的种类、型号、所有者、所属的组或其他被赋予给标识符的管理用的控制信息或服务提供用的控制信息。另外,在传输目的地表中,也可以使用每个传感器固有的标识符,来代替与发送源的终端2021建立了对应的标识符。此外,也可以是,能够从客户端装置2026设定传输目的地服务器的判定规则。
372.数据收集服务器2024可以将多个数据服务器判定为传输目的地,并将所接收到的位置关联数据传输到该多个数据服务器。根据该结构,例如,在位置关联数据被自动备份的情况下,或者在需要将位置关联数据发送到用于提供各服务的数据服务器以便在不同服务中共同利用位置关联数据的情况下,可以通过变更对数据收集服务器2024的设定来实现期望的数据传输。其结果,与位置关联数据的发送目的地被设定在单独的终端2021中的情况
相比,可以削减构建和变更系统所需的工时。
373.也可以是,数据收集服务器2024根据从数据服务器接收到的传输请求信号,将传输请求信号指定的数据服务器登记为新的传输目的地,并将随后接收到的位置关联数据传输到该数据服务器。
374.也可以是,数据收集服务器2024将从终端2021接收到的位置关联数据保存在记录装置中,并且根据从终端2021或数据服务器接收到的传输请求信号,将由发送请求信号指定的位置关联数据发送到请求源的终端2021或数据服务器。
375.也可以是,数据收集服务器2024判断可否向请求源的数据服务器或终端2021提供位置关联数据,在判断为能够提供位置关联数据的情况下,向请求源的数据服务器或终端2021传输或发送位置关联数据。
376.在从客户端装置2026接收到对当前位置关联数据的请求的情况下,即使不在终端2021的位置关联数据的发送定时,数据收集服务器2024也可以对终端2021进行位置关联数据的发送请求,终端2021根据该发送请求发送位置关联数据。
377.在上述说明中,终端2021将位置信息数据发送给数据收集服务器2024,数据收集服务器2024可以具备例如管理终端2021的功能等,用于从终端2021收集位置关联数据所必需的功能,或者当从终端2021收集位置关联数据时所使用的功能等。
378.数据收集服务器2024也可以具备将请求发送位置信息数据的数据请求信号发送至终端2021并收集位置关联数据的功能。
379.在数据收集服务器2024中,事先登记了用于与成为数据收集对象的终端2021进行通信的地址或终端2021固有的标识符等管理信息。数据收集服务器2024基于登记的管理信息从终端2021收集位置关联数据。管理信息可以包含终端2021所具备的传感器的种类、终端2021所具备的传感器的数量、以及终端2021所对应的通信方式等信息。
380.数据收集服务器2024可以从终端2021收集终端2021的工作状态或当前位置等信息。
381.管理信息的登记可以从客户端装置2026进行,也可以通过终端2021将登记请求发送到数据收集服务器2024来开始用于登记的处理。数据收集服务器2024可以具备控制与终端2021的通信的功能。
382.连结数据收集服务器2024和终端2021的通信可以是mno(mobile network operator,移动网络运营商)或mvno(mobile virtual network operator,移动虚拟网络运营商)等由服务提供商提供的专用线路,或者由vpn(virtual private network,虚拟专用网络)构成的虚拟专用线路。根据该结构,能够安全地进行终端2021与数据收集服务器2024之间的通信。
383.数据收集服务器2024可以具备认证终端2021的功能或者对与终端2021之间收发的数据进行加密的功能。在此,使用在数据收集服务器2024和终端2021之间事先共享的、终端2021固有的标识符或者包含多个终端2021的终端组固有的标识符等来进行终端2021的认证处理或者数据的加密处理。该标识符例如是保存在sim(subscriber identity module,用户识别模块)卡中的固有号码即imsi(international mobile subscriber identity,国际移动用户身份)等。用于认证处理的标识符和用于数据加密处理的标识符可以相同,也可以不同。
384.只要数据收集服务器2024和终端2021双方都具备实施该处理的功能,就可以提供数据收集服务器2024和终端2021之间的认证或数据加密处理,而不依赖于进行中继的通信装置2022所使用的通信方式。因此,可以不考虑终端2021是否使用通信方式而使用共同的认证或加密处理,从而提高了用户的系统构建的便利性。然而,不依赖于进行中继的通信装置2022所使用的通信方式意味着不需要根据通信方式来变更认证或加密处理。即,为了提高传输效率或确保安全性,可以根据中继装置所使用的通信方式来切换数据收集服务器2024和终端2021之间的认证或数据加密处理。
385.数据收集服务器2024可向客户端装置2026提供ui,所述ui管理从终端2021收集的位置关联数据的种类和数据收集的时间表(schedule)等数据收集规则。由此,用户可以使用客户端装置2026指定用于收集数据的终端2021以及数据的收集时间和频率等。另外,数据收集服务器2024可以指定想要收集数据的地图上的区域,并且从该区域中包含的终端2021收集位置关联数据。
386.在以终端2021单位管理数据收集规则的情况下,客户端装置2026例如在画面中提示成为管理对象的终端2021或传感器的列表。用户对列表的每个项目设定是否需要收集数据或收集时间表等。
387.在指定想要收集数据的地图上的区域等的情况下,客户端装置2026例如在画面中提示成为管理对象的地域的二维或三维地图。用户在所显示的地图上选择收集数据的区域。地图上选择的区域可以是以地图上指定的点为中心的圆形或矩形区域,也可以是通过拖曳动作可确定的圆形或矩形区域。另外,客户端装置2026可基于城市、城市中的区域、街区或主要道路等预先设定的单位来选择区域。另外,也可以不使用地图来指定区域,而是输入纬度和经度的数值来设定区域,还可以从基于所输入的文本信息导出的候选区域的列表中选择区域。文本信息例如是地域、城市、或地标的名称等。
388.另外,用户也可以通过指定一个或多个终端2021来设定该终端2021的周围100米的范围内等条件,从而一边动态地变更指定区域一边进行数据的收集。
389.另外,在客户端装置2026具备相机等传感器的情况下,可基于从传感器数据获得的客户端装置2026在实际空间中的位置来指定地图上的区域。例如,客户端装置2026可以使用传感器数据来估计自身位置,并将距地图上与对应于估计位置的点预定距离或用户指定距离范围内的区域指定为收集数据的区域。此外,客户端装置2026可以指定传感器的感测区域即与所获得的传感器数据对应的区域作为收集数据的区域。或者,客户端装置2026可以指定基于与用户指定的传感器数据对应的位置的区域作为收集数据的区域。对应于传感器数据的地图上的区域或位置的估计可以由客户端装置2026进行,也可以由数据收集服务器2024进行。
390.也可以是,当在地图上的区域中进行指定时,数据收集服务器2024通过收集各终端2021的当前位置信息来确定所指定的区域内的终端2021,并请求所确定的终端2021发送位置关联数据。此外,也可以是,数据收集服务器2024不确定区域内的终端2021,而是数据收集服务器2024将表示所指定的区域的信息发送到终端2021,判定终端2021是否在自身指定的区域内,在判断为在指定的区域内的情况下发送位置关联数据。
391.数据收集服务器2024将用于在客户端装置2026执行的应用中提供上述ui(user interface,用户界面)的列表或地图等数据发送到客户端装置2026。数据收集服务器2024
不仅可以向客户端装置2026发送列表或地图等数据,还可以发送应用的程序。另外,上述ui也可以作为可在浏览器中显示的html等制作的内容来提供。另外,地图数据等一部分数据也可以从地图服务器2025等数据收集服务器2024以外的服务器提供。
392.当进行用户按下设置按钮等通知完成了输入的输入时,客户端装置2026将输入的信息作为设定信息发送到数据收集服务器2024。数据收集服务器2024基于从客户端装置2026接收到的设定信息,将通知位置关联数据的请求或位置关联数据的收集规则的信号发送到各终端2021,来进行位置关联数据的收集。
393.接着,将说明基于附加到三维或二维地图数据的附加信息来控制终端2021的动作的例子。
394.在本结构中,表示道路或停车场中埋设的无线供电的供电天线或供电线圈的供电部的位置的对象信息被包含在三维数据中,或者与三维数据建立对应地被提供给汽车或无人机等终端2021。
395.为了进行充电而获得了该对象信息的车辆或无人机,以自动驾驶的方式移动车辆自身的位置,使车辆所具备的充电天线或充电线圈等充电部的位置成为与该对象信息表示的区域相向的位置,并开始充电。另外,在不具备自动驾驶功能的车辆或无人机的情况下,利用显示在画面上的图像或声音等,向驾驶员或操纵者提示应移动的方向或应进行的操作。并且,当判断为基于估计出的自身位置计算出的充电部的位置进入对象信息所示的区域或者距该区域在规定的距离的范围内时,切换提示为中止驾驶或者操纵的内容的图像或者声音,并开始充电。
396.另外,对象信息可以不是表示供电部的位置的信息,而是表示在该区域内配置充电部时能够得到规定的阈值以上的充电效率的区域的信息。对象信息的位置可以由对象信息所示的区域的中心的点来表示,也可以由二维平面内的区域或线、或者三维空间内的区域、线或平面等来表示。
397.根据该结构,能够掌握通过lider的感测数据或由相机拍摄的影像无法掌握的供电天线的位置,因此能够更高精度地进行车辆等终端2021所具备的无线充电用的天线与埋设于道路等的无线供电天线的位置对准。其结果,可以缩短无线充电时的充电速度,并且可以提高充电效率。
398.对象信息也可以是供电天线以外的对象物。例如,三维数据包含作为对象信息的毫米波无线通信的ap的位置等。由此,终端2021可以事先掌握ap的位置,因此可以在波束的指向性指向该对象信息的方向的情况下开始通信。其结果,能够实现传输速度的提高、到通信开始为止的时间的缩短、以及延长可通信的期间等通信品质的提高。
399.对象信息可以包含表示与该对象信息对应的对象物的类型的信息。此外,对象信息也可以包含如下信息:表示在终端2021包含在与该对象信息的三维数据上的位置对应的实际空间中的区域内或者在距区域在规定距离的范围内的情况下,终端2021应实施的处理。
400.对象信息可以从与提供三维数据的服务器不同的服务器提供。在与三维数据分开提供对象信息的情况下,保存有在同一服务中使用的对象信息的对象组可根据对象服务或对象设备的种类而分别作为不同的数据来提供。
401.与对象信息组合使用的三维数据可以是wld的点群数据,也可以是swld的特征点
数据。
402.(实施方式6)
403.以下,对八叉树表现与体素的扫描顺序进行说明。体积被变换为八叉树结构(八叉树化)后,被编码。八叉树结构由节点和叶节点(leaf node)构成。各节点具有8个节点或叶节点,各叶节点具有体素(vxl)信息。图22示出了包括多个体素的体积的构成例。图23示出了将图22所示的体积变换为八叉树结构的例子。在此,图23所示的叶节点之中的叶节点1、2、3,分别表示图22所示的体素vxl1、vxl2、vxl3,表现了包括点群的vxl(以下记作有效vxl)。
404.八叉树例如以0、1的二值序列来表现。例如在将节点或有效vxl设为值1,除此以外的设为值0时,在各节点以及叶节点被分配图23所示的二值序列。于是,按照宽度优先或深度优先的扫描顺序,该二值序列被扫描。例如在以宽度优先进行了扫描的情况下,得到图24的a所示的二值序列。在以深度优先进行了扫描的情况下,得到图24的b所示的二值序列。通过该扫描得到的二值序列由熵编码来编码,从而信息量减少。
405.接着,对八叉树表现中的深度信息进行说明。八叉树表现中的深度用于将体积内所包含的点云信息保持到哪一个粒度为止的控制中。若将深度设定得大,则能够以更加细小的级别来再现点云信息,但是用于表现节点以及叶节点的数据量就会增加。相反,若将深度设定得小,虽然可以减少数据量,但是多个不同位置以及颜色不同的点云信息会被视为同一位置且同一颜色,因此会失去本来的点云信息所具有的信息。
406.例如,图25示出了将图23所示的深度=2的八叉树,以深度=1的八叉树来表现的例子。图25所示的八叉树比图23所示的八叉树的数据量少。即,图25所示的八叉树与图25所示的八叉树相比,二值序列化后的比特数少。在此,图23所示的叶节点1和叶节点2成为,以图24所示的叶节点1来表现。即,失去了图23所示的叶节点1与叶节点2为不同的位置这一信息。
407.图26示出了与图25所示的八叉树对应的体积。图22所示的vxl1和vxl2与图26所示的vxl12对应。在这种情况下,三维数据编码装置根据图22所示的vxl1和vxl2的颜色信息,生成图26所示的vxl12的颜色信息。例如,三维数据编码装置将vxl1和vxl2的颜色信息的平均值、中间值、或权重平均值等作为vxl12的颜色信息来算出。这样,三维数据编码装置通过改变八叉树的深度,从而能够对数据量的减少进行控制。
408.三维数据编码装置也可以利用世界空间单位、空间单位、以及体积单位中的任一个单位来设定八叉树的深度信息。并且,此时,三维数据编码装置也可以将深度信息附加到世界空间的头部信息、空间的头部信息、或体积的头部信息。并且,也可以在时间不同的所有的世界空间、空间、以及体积中,作为深度信息而使用相同的值。在这种情况下,三维数据编码装置也可以将深度信息附加到对所有时间的世界空间进行管理的头部信息。
409.(实施方式7)
410.三维点群的信息包含位置信息(geometry)和属性信息(attribute)。位置信息包含以某个点为基准的坐标(x坐标、y坐标、z坐标)。在对位置信息进行编码的情况下,代替直接对各三维点的坐标进行编码,而使用通过用八叉树表现来表现各三维点的位置并对八叉树的信息进行编码从而削减编码量的方法。
411.另一方面,属性信息包含表示各三维点的颜色信息(rgb、yuv等)、反射率以及法线
向量等的信息。例如,三维数据编码装置能够使用与位置信息不同的编码方法对属性信息进行编码。
412.在本实施方式中,对属性信息的编码方法进行说明。另外,在本实施方式中,使用整数值来作为属性信息的值进行说明。例如在颜色信息rgb或yuv的各颜色成分为8bit精度的情况下,各颜色成分取0~255的整数值。在反射率的值为10bit精度的情况下,反射率的值取0~1023的整数值。此外,在属性信息的比特精度为小数精度的情况下,三维数据编码装置也可以对该值乘以缩放值之后舍入为整数值,以使属性信息的值成为整数值。另外,三维数据编码装置也可以将该缩放值附加于比特流的头部等。
413.作为三维点的属性信息的编码方法,考虑计算三维点的属性信息的预测值,并对原来的属性信息的值与预测值的差分(预测残差)进行编码。例如,在三维点p的属性信息的值为ap、预测值为pp的情况下,三维数据编码装置对其差分绝对值diffp=|ap-pp|进行编码。在该情况下,如果能够高精度地生成预测值pp,则差分绝对值diffp的值变小。因此,例如通过使用值越小则产生比特数越小的编码表来对差分绝对值diffp进行熵编码,能够削减编码量。
414.作为生成属性信息的预测值的方法,考虑使用位于编码对象的对象三维点的周围的其他三维点即参照三维点的属性信息。在此,参照三维点是指距对象三维点处于预先规定的距离范围内的三维点。例如,在存在对象三维点p=(x1,y1,z1)和三维点q=(x2,y2,z2)的情况下,三维数据编码装置计算(式a1)所示的三维点p与三维点q的欧氏距离d(p,q)。
415.【数式1】
[0416][0417]
三维数据编码装置在欧氏距离d(p,q)小于预定的阈值thd的情况下,判定为三维点q的位置接近对象三维点p的位置,判定为在对象三维点p的属性信息的预测值的生成中利用三维点q的属性信息的值。另外,距离计算方法也可以是其他方法,例如也可以使用马氏距离等。另外,三维数据编码装置也可以判定为不将距对象三维点预先规定的距离范围外的三维点用于预测处理。例如,在存在三维点r、且对象三维点p与三维点r的距离d(p,r)为阈值thd以上的情况下,三维数据编码装置也可以判定为不将三维点r用于预测。此外,三维数据编码装置也可以将表示阈值thd的信息附加于比特流的头部等。
[0418]
图27是表示三维点的例子的图。在该例中,对象三维点p与三维点q的距离d(p、q)小于阈值thd。因此,三维数据编码装置将三维点q判定为对象三维点p的参照三维点,判定为在对象三维点p的属性信息ap的预测值pp的生成中利用三维点q的属性信息aq的值。
[0419]
另一方面,对象三维点p与三维点r的距离d(p,r)为阈值thd以上。因此,三维数据编码装置判定为三维点r不是对象三维点p的参照三维点,判定为在对象三维点p的属性信息ap的预测值pp的生成中不利用三维点r的属性信息ar的值。
[0420]
此外,在使用预测值对对象三维点的属性信息进行编码的情况下,三维数据编码装置将已经对属性信息编码及已解码的三维点作为参照三维点利用。同样地,在使用预测值对解码对象的对象三维点的属性信息进行解码的情况下,三维数据解码装置将已经对属性信息已解码的三维点作为参照三维点利用。由此,能够在编码时和解码时生成相同的预测值,因此能够在解码侧正确地对通过编码生成的三维点的比特流进行解码。
[0421]
另外,在对三维点的属性信息进行编码的情况下,考虑使用三维点的位置信息将各三维点分类为多个阶层之后进行编码。在此,将分类后的各阶层称为lod(level of detail)。使用图28对lod的生成方法进行说明。
[0422]
首先,三维数据编码装置选择初始点a0,并分配给lod0。接着,三维数据编码装置提取距点a0的距离大于lod0的阈值thres_lod[0]的点a1并分配给lod0。接着,三维数据编码装置提取距点a1的距离大于lod0的阈值thres_lod[0]的点a2并分配给lod0。这样,三维数据编码装置以lod0内的各点之间的距离大于阈值thres_lod[0]的方式构成lod0。
[0423]
接着,三维数据编码装置选择还未分配lod的点b0,并分配给lod1。接着,三维数据编码装置提取距点b0的距离大于lod1的阈值thres_lod[1]、且未分配lod的点b1并分配给lod1。接着,三维数据编码装置提取距点b1的距离大于lod1的阈值thres_lod[1]、且未分配lod的点b2并分配给lod1。这样,三维数据编码装置以lod1内的各点之间的距离大于阈值thres_lod[1]的方式构成lod1。
[0424]
接着,三维数据编码装置选择还未分配lod的点c0,并分配给lod2。接着,三维数据编码装置提取距点c0的距离大于lod2的阈值thres_lod[2]、且未分配lod的点c1并分配给lod2。接着,三维数据编码装置提取距点c1的距离大于lod2的阈值thres_lod[2]、且未分配lod的点c2并分配给lod2。这样,三维数据编码装置以lod2内的各点之间的距离大于阈值thres_lod[2]的方式构成lod2。例如,如图29所示,设定各lod的阈值thres_lod[0]、thres_lod[1]以及thres_lod[2]。
[0425]
另外,三维数据编码装置也可以将表示各lod的阈值的信息附加于比特流的头部等。例如,在图29所示的例子的情况下,三维数据编码装置也可以将阈值thres_lod[0]、thres_lod[1]以及thres_lod[2]附加到头部。
[0426]
另外,三维数据编码装置也可以将未分配lod的所有三维点分配给lod的最下层。在该情况下,三维数据编码装置能够通过不将lod的最下层的阈值附加到头部来削减头部的编码量。例如,在图29所示的例子的情况下,三维数据编码装置将阈值thres_lod[0]和thres_lod[1]附加到头部,不将thres_lod[2]附加到头部。在该情况下,三维数据解码装置也可以将thres_lod[2]的值估计为0。另外,三维数据编码装置也可以将lod的阶层数附加到头部。由此,三维数据解码装置能够使用lod的阶层数来判定最下层的lod。
[0427]
另外,如图29所示,将lod的各层的阈值的值设定为越靠上位层越大,从而越是上位层(越接近lod0的层)则越是成为三维点间的距离远的疏点群(sparse),越是下位层则越是成为三维点间的距离近的密点群(dense)。另外,在图29所示的例子中,lod0是最上位层。
[0428]
另外,设定各lod时的初始三维点的选择方法也可以依赖于位置信息编码时的编码顺序。例如,三维数据编码装置选择在位置信息编码时最初被编码的三维点作为lod0的初始点a0,以初始点a0为基点,选择点a1、点a2来构成lod0。而且,三维数据编码装置也可以选择在不属于lod0的三维点中最早位置信息被编码的三维点作为lod1的初始点b0。即,三维数据编码装置也可以选择在不属于lodn的上层(lod0~lodn-1)的三维点中,最早位置信息被编码的三维点作为lodn的初始点n0。由此,三维数据解码装置通过在解码时使用同样的初始点选择方法,能够构成与编码时相同的lod,因此能够适当地对比特流进行解码。具体而言,三维数据解码装置选择在不属于lodn的上层的三维点中,最早位置信息被解码的三维点作为lodn的初始点n0。
[0429]
以下,对使用lod的信息生成三维点的属性信息的预测值的手法进行说明。例如,在从lod0所包含的三维点开始依次进行编码的情况下,三维数据编码装置使用lod0及lod1所包含的编码且已解码(以下,也简称为“已编码”)的属性信息,生成lod1所包含的对象三维点。这样,三维数据编码装置使用lodn’(n’<=n)所包含的已编码的属性信息,生成lodn所包含的三维点的属性信息的预测值。即,三维数据编码装置在lodn所包含的三维点的属性信息的预测值的计算中,不使用lodn的下层所包含的三维点的属性信息。
[0430]
例如,三维数据编码装置通过计算编码对象的对象三维点的周边的已编码的三维点中的n个以下的三维点的属性值的平均值来生成三维点的属性信息的预测值。此外,三维数据编码装置可以将n的值附加到比特流的头部等。另外,三维数据编码装置也可以对每个三维点变更n的值,对每个三维点附加n的值。由此,能够对每个三维点选择适当的n,因此能够提高预测值的精度。因此,能够减小预测残差。另外,三维数据编码装置也可以将n的值附加到比特流的头部,在比特流内固定n的值。由此,不需要对每个三维点对n的值进行编码或解码,因此能够削减处理量。另外,三维数据编码装置也可以对每个lod分别对n的值进行编码。由此,通过对每个lod选择适当的n,能够提高编码效率。
[0431]
或者,三维数据编码装置也可以通过周围的已编码的n个三维点的属性信息的加权平均值来计算三维点的属性信息的预测值。例如,三维数据编码装置使用对象三维点和周围的n个三维点各自的距离信息来计算权重。
[0432]
三维数据编码装置在对每个lod分别对n的值进行编码的情况下,例如越是lod的上位层则将n的值设定得越大,越是下位层则将n的值设定得越小。在lod的上位层中,属于该层的三维点间的距离远,因此有可能通过将n的值设定得大并选择多个周围的三维点来进行平均化,从而能够提高预测精度。另外,由于在lod的下位层中,属于该层的三维点间的距离近,因此有可能在将n的值设定得小来抑制平均化的处理量的同时进行高效的预测。
[0433]
图30是表示预测值中使用的属性信息的例子的图。如上所述,使用lodn’(n’<=n)所包含的已编码的周围点p’来生成lodn所包含的点p的预测值。在此,周围点p’基于与点p的距离来选择。例如,使用点a0、a1、a2、b0、b1的属性信息来生成图30所示的点b2的属性信息的预测值。
[0434]
根据上述n的值,所选择的周围点发生变化。例如在n=5的情况下,作为点b2的周围点,选择a0、a1、a2、b0、b1。在n=4的情况下,基于距离信息选择点a0、a1、a2、b1。
[0435]
通过依赖于距离的加权平均来计算预测值。例如,在图30所示的例子中,点a2的预测值a2p如(式a2)以及(式a3)所示,通过点a0以及点a1的属性信息的加权平均来计算。另外,ai是点ai的属性信息的值。
[0436]
【数式2】
[0437][0438][0439]
另外,点b2的预测值b2p如(式a4)~(式a6)所示,通过点a0、a1、a2、b0、b1的属性信
息的加权平均来计算。另外,bi是点bi的属性信息的值。
[0440]
【数式3】
[0441][0442][0443][0444]
另外,三维数据编码装置也可以计算三维点的属性信息的值与从周围点生成的预测值的差分值(预测残差),对计算出的预测残差进行量化。例如,三维数据编码装置通过将预测残差除以量化尺度(也称为量化步长)来进行量化。在这种情况下,量化尺度越小,由于量化而会产生的误差(量化误差)越小。相反,量化尺度越大,量化误差越大。
[0445]
此外,三维数据编码装置也可以对每个lod改变所使用的量化尺度。例如,三维数据编码装置越是上位层,越减小量化尺度,越是下位层,越增大量化尺度。属于上位层的三维点的属性信息的值有可能作为属于下位层的三维点的属性信息的预测值来使用,因此能够减小上位层的量化尺度而抑制在上位层会产生的量化误差,通过提高预测值的精度,能够提高编码效率。此外,三维数据编码装置也可以将对每个lod使用的量化尺度附加到头部等。由此,三维数据解码装置能够正确地对量化尺度进行解码,因此能够适当地对比特流进行解码。
[0446]
此外,三维数据编码装置也可以将作为量化后的预测残差的带符号整数值(附符号量化值)变换为无符号整数值(无符号量化值)。由此,在对预测残差进行熵编码的情况下,不需要考虑负的整数的产生。此外,三维数据编码装置不一定需要将带符号整数值变换为无符号整数值,例如也可以对符号比特另外进行熵编码。
[0447]
通过从原始值减去预测值来计算预测残差。例如,如(式a7)所示,点a2的预测残差a2r通过从点a2的属性信息的值a2减去点a2的预测值a2p来计算。如(式a8)所示,点b2的预测残差b2r通过从点b2的属性信息的值b2减去点b2的预测值b2p来计算。
[0448]
a2r=a
2-a2p

(式a7)
[0449]
b2r=b
2-b2p

(式a8)
[0450]
另外,预测残差通过除以qs(量化步长(quantization step))而被量化。例如,点a2的量化值a2q通过(式a9)来计算。点b2的量化值b2q通过(式a10)来计算。在此,qs_lod0是lod0用的qs,qs_lod1是lod1用的qs。即,可以根据lod变更qs。
[0451]
a2q=a2r/qs_lod0

(式a9)
[0452]
b2q=b2r/qs_lod1

(式a10)
[0453]
此外,如以下所述,三维数据编码装置将作为上述量化值的带符号整数值变换为无符号整数值。在带符号整数值a2q小于0的情况下,三维数据编码装置将无符号整数值a2u设定为-1-(2
×
a2q)。在带符号整数值a2q为0以上的情况下,三维数据编码装置将无符号整数值a2u设定为2
×
a2q。
[0454]
同样地,在带符号整数值b2q小于0的情况下,三维数据编码装置将无符号整数值
b2u设定为-1-(2
×
b2q)。在带符号整数值b2q为0以上的情况下,三维数据编码装置将无符号整数值b2u设定为2
×
b2q。
[0455]
此外,三维数据编码装置也可以通过熵编码对量化后的预测残差(无符号整数值)进行编码。例如,也可以在对无符号整数值进行二值化之后,应用二值的算术编码。
[0456]
此外,在该情况下,三维数据编码装置也可以根据预测残差的值来切换二值化方法。例如,在预测残差pu小于阈值r_th的情况下,三维数据编码装置为了表现阈值r_th以所需的固定比特数对预测残差pu进行二值化。另外,在预测残差pu为阈值r_th以上的情况下,三维数据编码装置使用指数哥伦布(exponential-golomb)等对阈值r_th的二值化数据和(pu-r_th)的值进行二值化。
[0457]
例如,在阈值r_th为63、预测残差pu小于63的情况下,三维数据编码装置将预测残差pu以6bit进行二值化。另外,在预测残差pu为63以上的情况下,三维数据编码装置使用指数哥伦布对阈值r_th的二值数据(111111)和(pu-63)进行二值化,由此进行算术编码。
[0458]
在更具体的例子中,三维数据编码装置在预测残差pu为32的情况下,生成6bit的二值数据(100000),对该比特串进行算术编码。另外,在预测残差pu为66的情况下,三维数据编码装置生成用指数哥伦布表示阈值r_th的二值数据(111111)和值3(66-63)的比特串(00100),对该比特串(111111 00100)进行算术编码。
[0459]
这样,三维数据编码装置根据预测残差的大小切换二值化的方法,从而能够在抑制预测残差变大的情况下的二值化比特数的急剧增加的同时进行编码。此外,三维数据编码装置也可以将阈值r_th附加于比特流的头部等。
[0460]
例如,在以高比特率进行编码的情况下,即,在量化尺度小的情况下,量化误差变小,预测精度变高,结果预测残差可能不会变大。因此,在该情况下,三维数据编码装置将阈值r_th设定得大。由此,对阈值r_th的二值化数据进行编码的可能性变低,编码效率提高。相反,在以低比特率进行编码的情况下,即,在量化尺度大的情况下,量化误差变大,预测精度变差,结果有可能预测残差变大。因此,在该情况下,三维数据编码装置将阈值r_th设定得小。由此,能够防止二值化数据的急剧的比特长度增加。
[0461]
另外,三维数据编码装置也可以对每个lod切换阈值r_th,并将每个lod的阈值r_th附加到头部等。即,三维数据编码装置也可以对每个lod切换二值化的方法。例如,在上位层中,由于三维点间的距离远,预测精度变差,结果预测残差有可能变大。因此,三维数据编码装置通过对上位层将阈值r_th设定得小,来防止二值化数据的急剧的比特长度增加。另外,在下位层中,由于三维点间的距离近,预测精度变高,结果有可能预测残差变小。因此,三维数据编码装置通过对阶层将阈值r_th设定得大来提高编码效率。
[0462]
图31是表示指数哥伦布码的一例的图,是表示二值化前的值(多值)与二值化后的比特(编码)的关系的图。另外,也可以使图31所示的0和1反转。
[0463]
另外,三维数据编码装置对预测残差的二值化数据应用算术编码。由此,能够提高编码效率。此外,在应用算术编码时,在二值化数据中,在以n比特进行了二值化的部分即n比特编码(n-bit code)和使用指数哥伦布进行了二值化的部分即剩余编码(remaining code)中,各比特的0和1的出现概率的倾向有可能不同。因此,三维数据编码装置也可以通过n比特编码和剩余编码来切换算术编码的应用方法。
[0464]
例如,对于n比特编码,三维数据编码装置对每个比特使用不同的编码表(概率表)
进行算术编码。此时,三维数据编码装置也可以改变对每个比特使用的编码表的数量。例如,三维数据编码装置使用1个编码表来对n比特编码的开头比特b0进行算术编码。另外,三维数据编码装置对下一个比特b1使用2个编码表。此外,三维数据编码装置根据b0的值(0或1)切换比特b1的算术编码中使用的编码表。同样地,三维数据编码装置还对下一个比特b2使用4个编码表。另外,三维数据编码装置根据b0以及b1的值(0~3),切换比特b2的算术编码中使用的编码表。
[0465]
这样,三维数据编码装置在对n比特编码的各比特bn-1进行算术编码时,使用2
n-1
个编码表。另外,三维数据编码装置根据bn-1之前的比特的值(发生样式),切换使用的编码表。由此,三维数据编码装置能够对每个比特使用适当的编码表,因此能够提高编码效率。
[0466]
另外,三维数据编码装置也可以削减在各比特中使用的编码表的数量。例如,在对各比特bn-1进行算术编码时,三维数据编码装置也可以根据bn-1之前的m比特(m<n-1)的值(发生样式)来切换2m个编码表。由此,能够抑制在各比特中使用的编码表的数量,并且提高编码效率。此外,三维数据编码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。另外,三维数据编码装置也可以将一部分比特的编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。
[0467]
例如,n比特编码为b0b1b2

bn-1的情况下,b0用的编码表是1个(ctb0)。b1用的编码表是2个(ctb10、ctb11)。另外,根据b0的值(0~1)来切换使用的编码表。b2用的编码表是4个(ctb20、ctb21、ctb22、ctb23)。此外,根据b0以及b1的值(0~3)来切换使用的编码表。bn-1用的编码表是2
n-1
个(ctbn0,ctbn1,

,ctbn(2
n-1-1))。另外,根据b0b1

bn-2的值(0~2
n-1-1)来切换使用的编码表。
[0468]
此外,三维数据编码装置也可以对n比特编码不进行二值化而应用设定0~2
n-1的值的m-ary的算术编码(m=2n)。此外,在三维数据编码装置用m-ary对n比特编码进行算术编码的情况下,三维数据解码装置也可以通过m-ary的算术解码来复原n比特编码。
[0469]
图32是用于说明例如剩余编码是指数哥伦布码的情况下的处理的图。如图32所示,使用指数哥伦布进行了二值化的部分即剩余编码包括prefix部和suffix部。例如,三维数据编码装置在prefix部和suffix部中切换编码表。即,三维数据编码装置使用prefix用的编码表来对prefix部所包含的各比特进行算术编码,使用suffix用的编码表来对suffix部所包含的各比特进行算术编码。
[0470]
此外,三维数据编码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。或者,三维数据编码装置也可以将某一个编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。例如,三维数据编码装置也可以对prefix部更新发生概率,对suffix部将发生概率固定化。
[0471]
此外,三维数据编码装置通过逆量化以及重构来对量化后的预测残差进行解码,将解码出的预测残差即解码值利用于编码对象的三维点以后的预测。具体而言,三维数据编码装置通过对量化后的预测残差(量化值)乘以量化尺度来计算逆量化值,将逆量化值和预测值相加而得到解码值(重构值)。
[0472]
例如,点a2的逆量化值a2iq使用点a2的量化值a2q通过(式a11)来计算。点b2的逆量化值b2iq使用点b2的量化值b2q通过(式a12)来计算。在此,qs_lod0是lod0用的qs,qs_lod1是lod1用的qs。即,可以根据lod变更qs。
[0473]
a2iq=a2q
×
qs_lod0

(式a11)
[0474]
b2iq=b2q
×
qs_lod1

(式a12)
[0475]
例如,如(式a13)所示,点a2的解码值a2rec通过对点a2的逆量化值a2iq加上点a2的预测值a2p来计算。如(式a14)所示,点b2的解码值b2rec通过对点b2的逆量化值b2iq加上点b2的预测值b2p来计算。
[0476]
a2rec=a2iq a2p

(式a13)
[0477]
b2rec=b2iq b2p

(式a14)
[0478]
以下,对本实施方式的比特流的句法例进行说明。图33是示出了有关本实施方式的属性头部(attribute_header)的句法例的图。属性头部是属性信息的头部信息。如图33所示,属性头部包括阶层数信息(numlod)、三维点数信息(numofpoint[i])、阶层阈值(thres_lod[i])、周围点数信息(numneighborpoint[i])、预测阈值(thd[i])、量化尺度(qs[i])、以及二值化阈值(r_th[i])。
[0479]
阶层数信息(numlod)表示所使用的lod的阶层数。
[0480]
三维点数信息(numofpoint[i])表示属于阶层i的三维点的数量。此外,三维数据编码装置也可以将表示三维点的总数的三维点总数信息(allnumofpoint)附加于其他的头部。在该情况下,三维数据编码装置也可以不将表示属于最下层的三维点的数量的numofpoint[numlod-1]附加到头部。在该情况下,三维数据解码装置能够通过(式a15)计算numofpoint[numlod-1]。由此,能够削减头部的编码量。
[0481]
【数式4】
[0482][0483]
阶层阈值(thres_lod[i])是用于设定阶层i的阈值。三维数据编码装置以及三维数据解码装置以lodi内的各点之间的距离大于阈值thres_lod[i]的方式构成lodi。另外,三维数据编码装置也可以不将thres_lod[numlod-1](最下层)的值附加到头部。在该情况下,三维数据解码装置将thres_lod[numlod-1]的值估计为0。由此,能够削减头部的编码量。
[0484]
周围点数信息(numneighborpoint[i])表示在属于阶层i的三维点的预测值的生成中使用的周围的点数的上限值。在周围的点数m小于numneighborpoint[i]的情况下(m《numneighborpoint[i]),三维数据编码装置也可以使用m个周围的点数来计算预测值。另外,在不需要在各lod中分开numneighborpoint[i]的值的情况下,三维数据编码装置也可以将在所有的lod中使用的1个周围点数信息(numneighborpoint)附加到头部。
[0485]
预测阈值(thd[i])表示在阶层i中编码或解码对象的对象三维点的预测中使用的周围的三维点与对象三维点的距离的上限值。三维数据编码装置以及三维数据解码装置不将距对象三维点的距离比thd[i]远的三维点用于预测。另外,在不需要在各lod中分开thd[i]的值的情况下,三维数据编码装置也可以将在所有的lod中使用的1个预测阈值(thd)附加到头部。
[0486]
量化尺度(qs[i])表示在阶层i的量化和逆量化中使用的量化尺度。
[0487]
二值化阈值(r_th[i])是用于切换属于阶层i的三维点的预测残差的二值化方法的阈值。例如,三维数据编码装置在预测残差小于阈值r_th的情况下,以固定比特数对预测残差pu进行二值化,在预测残差为阈值r_th以上的情况下,使用指数哥伦布对阈值r_th的二值化数据和(pu-r_th)的值进行二值化。另外,在不需要在各lod中切换r_th[i]的值的情况下,三维数据编码装置也可以将在所有的lod中使用的1个二值化阈值(r_th)附加到头部。
[0488]
此外,r_th[i]也可以是以nbit表示的最大值。例如,在6bit中,r_th为63,在8bit中,r_th为255。另外,三维数据编码装置也可以代替对以nbit表示的最大值作为二值化阈值进行编码,而对比特数进行编码。例如,三维数据编码装置可以在r_th[i]=63的情况下将值6附加到头部,在r_th[i]=255的情况下将值8附加到头部。另外,三维数据编码装置也可以定义表示r_th[i]的比特数的最小值(最小比特数),将根据最小值的相对比特数附加到头部。例如,三维数据编码装置可以在r_th[i]=63且最小比特数为6的情况下将值0附加到头部,在r_th[i]=255且最小比特数为6的情况下将值2附加到头部。
[0489]
另外,三维数据编码装置也可以对numlod、thres_lod[i]、numneighborpoint[i]、thd[i]、qs[i]以及r_th[i]中的至少一个进行熵编码并附加到头部。例如,三维数据编码装置也可以对各值进行二值化而进行算术编码。另外,为了抑制处理量,三维数据编码装置也可以以固定长度对各值进行编码。
[0490]
此外,三维数据编码装置可以不将numlod、thres_lod[i]、numneighborpoint[i]、thd[i]、qs[i]以及r_th[i]中的至少一个附加到头部。例如,它们中的至少一个的值也可以由标准等的档次(profile)或级别(level)等规定。由此,能够削减头部的比特量。
[0491]
图34是示出了有关本实施方式的属性数据(attribute_data)的句法例的图。该属性数据包括多个三维点的属性信息的编码数据。如图34所示,属性数据包括n比特编码(n-bit code)和剩余编码(remaining code)。
[0492]
n比特编码(n-bit code)是属性信息的值的预测残差的编码数据或其一部分。n比特编码的比特长度依赖于r_th[i]的值。例如在r_th[i]所示的值为63的情况下,n比特编码为6bit,在r_th[i]所示的值为255的情况下,n比特编码为8bit。
[0493]
剩余编码(remaining code)是属性信息的值的预测残差的编码数据中的用指数哥伦布编码后的编码数据。在n比特编码与r_th[i]相同的情况下,对该剩余编码进行编码或解码。另外,三维数据解码装置将n比特编码的值和剩余编码的值相加而对预测残差进行解码。此外,在n比特编码不是与r_th[i]相同的值的情况下,剩余编码也可以不被编码或解码。
[0494]
以下,说明三维数据编码装置中的处理的流程。图35是由三维数据编码装置进行的三维数据编码处理的流程图。
[0495]
首先,三维数据编码装置对位置信息(geometry)进行编码(s3001)。例如,三维数据编码装置使用八叉树表现来进行编码。
[0496]
三维数据编码装置在位置信息的编码后,在三维点的位置由于量化等而变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息(s3002)。例如,三维数据编码装置通过根据位置的变化量对属性信息的值进行插值来进行重新分配。例如,三维数据编码装置检测n个接近变化后的三维位置的变化前的三维点,对n个三维点的属性信息的值进
行加权平均。例如,三维数据编码装置在加权平均中,基于从变化后的三维位置到各n个三维点的距离来决定权重。然后,三维数据编码装置将通过加权平均得到的值决定为变化后的三维点的属性信息的值。另外,在由于量化等而2个以上的三维点变化到同一三维位置的情况下,三维数据编码装置也可以分配变化前的2个以上的三维点的属性信息的平均值作为该变化后的三维点的属性信息的值。
[0497]
接着,三维数据编码装置对重新分配后的属性信息(attribute)进行编码(s3003)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置也可以生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果的顺序不限于此顺序,可以是任何顺序。
[0498]
另外,三维数据编码装置也可以将比特流内的各属性信息的表示编码数据开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
[0499]
图36是属性信息编码处理(s3003)的流程图。首先,三维数据编码装置设定lod(s3011)。即,三维数据编码装置将各三维点分配给多个lod中的任一个。
[0500]
接着,三维数据编码装置开始lod单位的循环(s3012)。即,三维数据编码装置对每个lod反复进行步骤s3013~s3021的处理。
[0501]
接着,三维数据编码装置开始三维点单位的循环(s3013)。即,三维数据编码装置对每个三维点反复进行步骤s3014~s3020的处理。
[0502]
首先,三维数据编码装置搜索在处理对象的对象三维点的预测值的计算中使用的、存在于对象三维点的周围的三维点即多个周围点(s3014)。接着,三维数据编码装置计算多个周围点的属性信息的值的加权平均,并将得到的值设定为预测值p(s3015)。接着,三维数据编码装置计算对象三维点的属性信息与预测值的差分即预测残差(s3016)。接着,三维数据编码装置通过对预测残差进行量化来计算量化值(s3017)。接着,三维数据编码装置对量化值进行算术编码(s3018)。
[0503]
此外,三维数据编码装置通过对量化值进行逆量化来计算逆量化值(s3019)。接着,三维数据编码装置通过对逆量化值加上预测值来生成解码值(s3020)。接着,三维数据编码装置结束三维点单位的循环(s3021)。另外,三维数据编码装置结束lod单位的循环(s3022)。
[0504]
以下,对由上述的三维数据编码装置生成的比特流进行解码的三维数据解码装置中的三维数据解码处理进行说明。
[0505]
三维数据解码装置通过用与三维数据编码装置同样的方法对由三维数据编码装置生成的比特流内的属性信息的二值化数据进行算术解码,生成被解码的二值化数据。此外,在三维数据编码装置中,在用n比特进行了二值化的部分(n比特编码)和用指数哥伦布进行了二值化的部分(剩余编码)之间切换了算术编码的应用方法的情况下,三维数据解码装置在应用算术解码时,与其相应地进行解码。
[0506]
例如,三维数据解码装置在n比特编码的算术解码方法中,对每个比特使用不同的
编码表(解码表)进行算术解码。此时,三维数据解码装置也可以改变对每个比特使用的编码表的数量。例如,对n比特编码的开头比特b0使用1个编码表来进行算术解码。另外,三维数据解码装置对下一个比特b1使用2个编码表。此外,三维数据解码装置根据b0的值(0或1)切换比特b1的算术解码中使用的编码表。同样地,三维数据解码装置进一步对下一个比特b2使用4个编码表。另外,三维数据解码装置根据b0以及b1的值(0~3),切换比特b2的算术解码中使用的编码表。
[0507]
这样,三维数据解码装置在对n比特编码的各比特bn-1进行算术解码时,使用2
n-1
个编码表。另外,三维数据解码装置根据bn-1之前的比特的值(发生样式),切换使用的编码表。由此,三维数据解码装置能够对每个比特使用适当的编码表来适当地对提高了编码效率的比特流进行解码。
[0508]
另外,三维数据解码装置也可以削减在各比特中使用的编码表的数量。例如,三维数据解码装置也可以在对各比特bn-1进行算术解码时,根据bn-1之前的m比特(m<n-1)的值(发生样式)来切换2m个编码表。由此,三维数据解码装置能够在抑制在各比特中使用的编码表的数量的同时适当地对提高了编码效率的比特流进行解码。此外,三维数据解码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。另外,三维数据解码装置也可以将一部分比特的编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。
[0509]
例如,n比特编码为b0b1b2

bn-1的情况下,b0用的编码表是1个(ctb0)。b1用的编码表是2个(ctb10、ctb11)。此外,根据b0的值(0~1)来切换编码表。b2用的编码表是4个(ctb20、ctb21、ctb22、ctb23)。此外,根据b0和b1的值(0~3)来切换编码表。bn-1用的编码表是2
n-1
个(ctbn0,ctbn1,

,ctbn(2
n-1-1))。另外,根据b0b1

bn-2的值(0~2
n-1-1)来切换编码表。
[0510]
例如,图37是用于说明剩余编码是指数哥伦布码的情况下的处理的图。如图37所示,三维数据编码装置使用指数哥伦布进行了二值化而编码的部分(剩余编码)包括prefix部和suffix部。例如,三维数据解码装置在prefix部和suffix部中切换编码表。即,三维数据解码装置使用prefix用的编码表来对prefix部所包含的各比特进行算术解码,使用suffix用的编码表来对suffix部所包含的各比特进行算术解码。
[0511]
此外,三维数据解码装置也可以根据在解码时产生的二值化数据的值来更新各编码表中的0和1的发生概率。或者,三维数据解码装置也可以将某一个编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。例如,三维数据解码装置也可以对prefix部更新发生概率,对suffix部将发生概率固定化。
[0512]
另外,三维数据解码装置将算术解码出的预测残差的二值化数据与在三维数据编码装置中使用的编码方法相匹配地进行多值化,由此对量化后的预测残差(无符号整数值)进行解码。三维数据解码装置首先计算通过对n比特编码的二值化数据进行算术解码而解码出的n比特编码的值。接着,三维数据解码装置将n比特编码的值与r_th的值进行比较。
[0513]
在n比特编码的值与r_th的值一致的情况下,三维数据解码装置判定为接下来存在用指数哥伦布进行了编码的比特,对用指数哥伦布进行了编码的二值化数据即剩余编码进行算术解码。然后,三维数据解码装置根据解码出的剩余编码,使用表示剩余编码与该值之间的关系的反推表来计算剩余编码的值。图38是表示表示剩余编码与其值之间的关系的
反推表的例子的图。接着,三维数据解码装置通过将所得到的剩余编码的值与r_th相加而得到进行了多值化的量化后的预测残差。
[0514]
另一方面,在n比特编码的值与r_th的值不一致(值小于r_th)的情况下,三维数据解码装置将n比特编码的值直接决定为进行了多值化的量化后的预测残差。由此,三维数据解码装置能够适当地对在三维数据编码装置中根据预测残差的值切换二值化方法而生成的比特流进行解码。
[0515]
此外,在阈值r_th附加到比特流的头部等的情况下,三维数据解码装置也可以从头部解码阈值r_th的值,并使用解码出的阈值r_th的值来切换解码方法。另外,三维数据解码装置在对每个lod将阈值r_th附加到头部等的情况下,使用解码出的阈值r_th对每个lod切换解码方法。
[0516]
例如,在阈值r_th为63、解码出的n比特编码的值为63的情况下,三维数据解码装置通过利用指数哥伦布对剩余编码进行解码,从而得到剩余编码的值。例如,在图38所示的例子中,剩余编码为00100,作为剩余编码的值而得到3。接着,三维数据解码装置通过将阈值r_th的值63和剩余编码的值3相加,得到预测残差的值66。
[0517]
另外,在解码出的n比特编码的值为32的情况下,三维数据解码装置将n比特编码的值32设定为预测残差的值。
[0518]
另外,三维数据解码装置通过例如与三维数据编码装置中的处理相反的处理,将解码出的量化后的预测残差从无符号整数值变换为带符号整数值。由此,三维数据解码装置在对预测残差进行熵编码的情况下,能够适当地对不考虑负的整数的产生而生成的比特流进行解码。另外,三维数据解码装置不一定需要将无符号整数值变换为带符号整数值,例如在对将符号比特另外进行熵编码而生成的比特流进行解码的情况下,也可以对符号比特进行解码。
[0519]
三维数据解码装置通过逆量化及重构对变换为带符号整数值的量化后的预测残差进行解码,由此生成解码值。另外,三维数据解码装置将所生成的解码值利用于解码对象的三维点以后的预测。具体而言,三维数据解码装置通过对量化后的预测残差乘以解码出的量化尺度来计算逆量化值,将逆量化值和预测值相加来得到解码值。
[0520]
被解码的无符号整数值(无符号量化值)通过以下的处理变换为带符号整数值。在被解码的无符号整数值a2u的lsb(least significant bit:最低有效位)为1的情况下,三维数据解码装置将带符号整数值a2q设定为-((a2u 1)>>1)。在无符号整数值a2u的lsb不是1的情况下,三维数据解码装置将带符号整数值a2q设定为(a2u>>1)。
[0521]
同样地,在被解码的无符号整数值b2u的lsb为1的情况下,三维数据解码装置将带符号整数值b2q设定为-((b2u 1)>>1)。在无符号整数值n2u的lsb不是1的情况下,三维数据解码装置将带符号整数值b2q设定为(b2u>>1)。
[0522]
另外,由三维数据解码装置进行的逆量化及重构处理的详细情况与三维数据编码装置中的逆量化及重构处理相同。
[0523]
以下,说明三维数据解码装置中的处理的流程。图39是由三维数据解码装置进行的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(s3031)。例如,三维数据解码装置使用八叉树表现进行解码。
[0524]
接着,三维数据解码装置从比特流中解码属性信息(attribute)(s3032)。例如,在
对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加到比特流的属性信息的编码结果进行解码都可以。
[0525]
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
[0526]
图40是属性信息解码处理(s3032)的流程图。首先,三维数据解码装置设定lod(s3041)。即,三维数据解码装置将具有被解码的位置信息的多个三维点分别分配给多个lod中的任一个。例如,该分配方法是与在三维数据编码装置中使用的分配方法相同的方法。
[0527]
接着,三维数据解码装置开始lod单位的循环(s3042)。即,三维数据解码装置对每个lod反复进行步骤s3043~s3049的处理。
[0528]
接着,三维数据解码装置开始三维点单位的循环(s3043)。即,三维数据解码装置针对每个三维点反复进行步骤s3044~s3048的处理。
[0529]
首先,三维数据解码装置搜索在处理对象的对象三维点的预测值的计算中使用的、存在于对象三维点的周围的三维点即多个周围点(s3044)。接着,三维数据解码装置计算多个周围点的属性信息的值的加权平均,将得到的值设定为预测值p(s3045)。另外,这些处理与三维数据编码装置中的处理相同。
[0530]
接着,三维数据解码装置从比特流中对量化值进行算术解码(s3046)。另外,三维数据解码装置通过对解码出的量化值进行逆量化来计算逆量化值(s3047)。接着,三维数据解码装置通过对逆量化值加上预测值来生成解码值(s3048)。接着,三维数据解码装置结束三维点单位的循环(s3049)。另外,三维数据解码装置结束lod单位的循环(s3050)。
[0531]
接着,对本实施方式的三维数据编码装置以及三维数据解码装置的结构进行说明。图41是示出了有关本实施方式的三维数据编码装置3000的结构的框图。该三维数据编码装置3000具备位置信息编码部3001、属性信息重新分配部3002、以及属性信息编码部3003。
[0532]
属性信息编码部3003对输入点群所包含的多个三维点的位置信息(geometry)进行编码。属性信息重新分配部3002使用位置信息的编码及解码结果,重新分配输入点群所包含的多个三维点的属性信息的值。属性信息编码部3003对重新分配的属性信息(attribute)进行编码。此外,三维数据编码装置3000生成包含被编码的位置信息和被编码的属性信息的比特流。
[0533]
图42是示出了有关本实施方式的三维数据解码装置3010的结构的框图。该三维数据解码装置3010包括位置信息解码部3011和属性信息解码部3012。
[0534]
位置信息解码部3011从比特流中解码多个三维点的位置信息(geometry)。属性信息解码部3012从比特流中解码多个三维点的属性信息(attribute)。另外,三维数据解码装置3010通过将解码出的位置信息与解码出的属性信息结合来生成输出点群。
[0535]
(实施方式8)
[0536]
以下,作为对三维点的属性信息进行编码的其他方法,说明使用了raht(region adaptive hierarchical transform:区域自适应分层变换)的方法。图43是用于说明使用了raht的属性信息的编码的图。
[0537]
首先,三维数据编码装置基于三维点的位置信息生成莫顿编码(morton code),按照莫顿编码顺序对三维点的属性信息进行排序(sort)。例如,三维数据编码装置可以按照莫顿编码的升序进行排序。此外,排序顺序不限于莫顿编码顺序,也可以使用其他顺序。
[0538]
接着,三维数据编码装置通过对按照莫顿编码顺序相邻的2个三维点的属性信息应用haar变换,生成阶层l的高频成分和低频成分。例如,三维数据编码装置也可以使用2
×
2矩阵的haar变换。所生成的高频成分作为阶层l的高频成分被包含在编码系数中,所生成的低频成分被用作阶层l的上位阶层l 1的输入值。
[0539]
三维数据编码装置在使用阶层l的属性信息生成阶层l的高频成分之后,继续进行阶层l 1的处理。在阶层l 1的处理中,三维数据编码装置通过对通过阶层l的属性信息的haar变换而得到的2个低频成分应用haar变换来生成阶层l 1的高频成分和低频成分。所生成的高频成分作为阶层l 1的高频成分被包含在编码系数中,所生成的低频成分被用作阶层l 1的上位阶层l 2的输入值。
[0540]
三维数据编码装置反复进行这样的阶层处理,在输入到阶层的低频成分成为1个的时间点,判定为到达了最上位阶层lmax。三维数据编码装置将输入到阶层lmax的阶层lmax-1的低频成分包含在编码系数中。然后,对编码系数所包含的低频成分或高频成分的值进行量化,使用熵编码等进行编码。
[0541]
此外,在仅存在1个三维点作为应用haar变换时相邻的2个三维点的情况下,三维数据编码装置也可以将存在的1个三维点的属性信息的值用作上位阶层的输入值。
[0542]
这样,三维数据编码装置对输入的属性信息分层地应用haar变换,生成属性信息的高频成分和低频成分,应用后述的量化等进行编码。由此,能够提高编码效率。
[0543]
在属性信息为n维的情况下,三维数据编码装置也可以按每个维独立地应用haar变换,计算各自的编码系数。例如,在属性信息是颜色信息(rgb或yuv等)的情况下,三维数据编码装置按每个成分应用haar变换,计算各自的编码系数。
[0544]
三维数据编码装置也可以按照阶层l、l 1、

、阶层lmax的顺序应用haar变换。生成越接近阶层lmax包含越多输入的属性信息的低频成分的编码系数。
[0545]
图43所示的w0和w1是分配给各三维点的权重。例如,三维数据编码装置也可以基于应用haar变换的相邻的2个三维点间的距离信息等来计算权重。例如,三维数据编码装置也可以通过距离越近则越增大权重来提高编码效率。另外,三维数据编码装置可以通过其他方法计算该权重,也可以不使用权重。
[0546]
在图43所示的例子中,输入属性信息是a0、a1、a2、a3、a4以及a5。另外,对haar变换后的编码系数中的ta1、ta5、tb1、tb3、tc1、d0进行编码。其他的编码系数(b0、b2、c0等)为中间值,不被编码。
[0547]
具体而言,在图43所示的例子中,通过对a0和a1进行haar变换,生成高频成分ta1和低频成分b0。在此,在权重w0与w1相等的情况下,低频成分b0是a0与a1的平均值,高频成分ta1是a0与a1的差分。
[0548]
由于在a2中不存在成对的属性信息,因此a2直接用作b1。同样地,由于在a3中不存在成对的属性信息,因此a3直接用作b2。另外,通过对a4和a5进行haar变换,生成高频成分ta5和低频成分b3。
[0549]
在阶层l 1中,通过对b0和b1进行haar变换,生成高频成分tb1和低频成分c0。同样地,通过对b2和b3进行haar变换,生成高频成分tb3和低频成分c1。
[0550]
在阶层lmax-1中,通过对c0和c1进行haar变换,生成高频成分tc1和低频成分d0。
[0551]
三维数据编码装置也可以在对应用haar变换后的编码系数进行了量化的基础上进行编码。例如,三维数据编码装置通过将编码系数除以量化尺度(也称为量化步长(qs(quantization step)))来进行量化。在这种情况下,量化尺度越小,通过量化产生的误差(量化误差)越小。相反,量化尺度越大,量化误差越大。
[0552]
此外,三维数据编码装置也可以按每个阶层改变量化尺度的值。图44是表示按每个阶层设定量化尺度的例子的图。例如,三维数据编码装置越是上位层,越减小量化尺度,越是下位层,越增大量化尺度。属于上位层的三维点的编码系数比下位层更多地包含低频成分,因此在人的视觉特性等中是重要的成分的可能性高。因此,通过减小上位层的量化尺度来抑制在上位层产生的量化误差来抑制视觉上的劣化,能够提高编码效率。
[0553]
此外,三维数据编码装置也可以将每个阶层的量化尺度附加到头部等。由此,三维数据解码装置能够正确地对量化尺度进行解码,能够适当地对比特流进行解码。
[0554]
另外,三维数据编码装置也可以根据编码对象的对象三维点的重要度,自适应地切换量化尺度的值。例如,三维数据编码装置在重要度高的三维点使用小的量化尺度,在重要度低的三维点使用大的量化尺度。例如,三维数据编码装置也可以根据haar变换时的权重等计算重要度。例如,三维数据编码装置也可以使用w0和w1的相加值来计算量化尺度。这样,通过减小重要度高的三维点的量化尺度,量化误差变小,能够改善编码效率。
[0555]
另外,也可以越是上位层,越减小qs的值。由此,越是上位层qw的值越大,通过抑制该三维点的量化误差,能够改善预测效率。
[0556]
这里,属性信息a1的编码系数ta1的量化后的编码系数ta1q由ta1/qs_l表示。此外,qs也可以是在所有的阶层或一部分的阶层中相同的值。
[0557]
qw(quantization weight)是表示编码对象的三维点的重要度的值。例如,也可以使用上述的w0和w1的相加值作为qw。由此,越是上位层qw的值越大,通过抑制该三维点的量化误差,能够改善预测效率。
[0558]
例如,三维数据编码装置也可以最初将所有的三维点中的qw的值用1初始化,使用haar变换时的w0和w1的值来更新各三维点的qw。或者,三维数据编码装置也可以不将所有的三维点的qw用值1来初始化,而是根据阶层来变更初始值。例如,通过越是上位层将qw的初始值设定得越大,上位层的量化尺度变小。由此,能够抑制上位层的预测误差,因此能够提高下位层的预测精度,改善编码效率。另外,三维数据编码装置也可以不必使用qw。
[0559]
在使用qw的情况下,通过(式k1)和(式k2)计算ta1的量化值ta1q。
[0560]
【数式5】
[0561][0562][0563]
另外,三维数据编码装置按照某个顺序对量化后的编码系数(无符号整数值)进行扫描,并进行编码。例如,三维数据编码装置从上位层所包含的三维点开始依次朝向下位层对多个三维点进行编码。
[0564]
例如,在图43所示的例子的情况下,三维数据编码装置按照从上位层lmax中包含的d0q到tc1q、tb1q、tb3q、ta1q、ta5q的顺序对多个三维点进行编码。在此,存在越是下位层l,量化后的编码系数越容易成为0的倾向。作为其主要原因,提出以下的情况等。
[0565]
下位层l的编码系数表示高于上位层的频率成分,因此存在因对象三维点而容易变为0的倾向。另外,通过与上述的重要度等相应的量化尺度的切换,越是下位层,量化尺度越大,量化后的编码系数越容易成为0。
[0566]
这样,越是下位层,量化后的编码系数越容易成为0,值0容易连续地在第1编码串中产生。图45是表示第1编码串和第2编码串的例子的图。
[0567]
三维数据编码装置对在第1编码串中产生了值0的次数进行计数,并取代连续的值0而对值0连续产生的次数进行编码。即,三维数据编码装置通过将在第1编码串中连续的值0的编码系数置换为0的连续次数(zerocnt)来生成第2编码串。由此,在量化后的编码系数的值0连续的情况下,与对大量的0进行编码相比,通过对0的连续次数进行编码,能够提高编码效率。
[0568]
此外,三维数据编码装置也可以对zerocnt的值进行熵编码。例如,三维数据编码装置以编码三维点的总数t的截断一元编码(truncated unary code)对zerocnt的值进行二值化,对二值化后的各比特进行算术编码。图46是表示在编码三维点的总数是t的情况下的截断一元编码的例子的图。此时,三维数据编码装置也可以通过使用按每个比特而不同的编码表来提高编码效率。例如,在三维数据编码装置中,在第1比特中使用编码表1,在第2比特中使用编码表2,在其以后的比特中使用编码表3。这样,三维数据编码装置通过对每个比特切换编码表,能够提高编码效率。
[0569]
另外,三维数据编码装置也可以在用指数哥伦布(exponential-golomb)对zerocnt进行二值化之后进行算术编码。由此,在zerocnt的值容易变大的情况下,与基于截断一元编码的二值化算术编码相比,能够提高效率。此外,三维数据编码装置也可以将用于切换使用截断一元编码还是使用指数哥伦布的标志附加到头部。由此,三维数据编码装置通过选择最佳的二值化方法,能够提高编码效率。另外,三维数据解码装置参照头部中包含的标志来切换二值化方法,能够正确地对比特流进行解码。
[0570]
三维数据解码装置也可以通过与由三维数据编码装置进行的方法相反的方法,将解码后的量化后的编码系数从无符号整数值变换为带符号整数值。由此,在对编码系数进行熵编码的情况下,三维数据解码装置能够不考虑负的整数的产生而适当地对生成的比特
流进行解码。另外,三维数据解码装置不需要将编码系数从无符号整数值变换为带符号整数值。例如,在另外对包含熵编码后的符号比特的比特流进行解码的情况下,三维数据解码装置也可以对该符号比特进行解码。
[0571]
三维数据解码装置通过逆量化和逆haar变换对变换为带符号整数值的量化后的编码系数进行解码。另外,三维数据解码装置将解码出的编码系数利用于解码对象的三维点以后的预测。具体而言,三维数据解码装置通过对量化后的编码系数乘以解码后的量化尺度来计算逆量化值。接着,三维数据解码装置通过对逆量化值应用后述的逆haar变换而得到解码值。
[0572]
例如,三维数据解码装置将被解码的无符号整数值通过以下的方法变换为带符号整数值。在被解码的无符号整数值a2u的lsb(least significant bit)为1的情况下,带符号整数值ta1q被设定为-((a2u 1)>>1)。在被解码的无符号整数值a2u的lsb不是1的情况下(为0的情况下),带符号整数值ta1q被设定为(a2u>>1)。
[0573]
此外,ta1的逆量化值由ta1q
×
qs_l表示。在此,ta1q是ta1的量化值。此外,qs_l是阶层l的量化步长。
[0574]
此外,qs可以是在所有的阶层或一部分阶层中相同的值。另外,三维数据编码装置也可以将表示qs的信息附加到头部等。由此,三维数据解码装置能够使用与在三维数据编码装置中使用的qs相同的qs,正确地进行逆量化。
[0575]
接着,对逆haar变换进行说明。图47是用于说明逆haar变换的图。三维数据解码装置通过对逆量化后的编码系数应用逆haar变换来对三维点的属性值进行解码。
[0576]
首先,三维数据解码装置基于三维点的位置信息生成莫顿编码,按照莫顿编码顺序对三维点进行排序。例如,三维数据解码装置可以按照莫顿编码的升序进行排序。此外,排序顺序不限于莫顿编码顺序,也可以使用其他顺序。
[0577]
接着,三维数据解码装置通过对包含阶层l 1的低频成分的编码系数和包含阶层l的高频成分的编码系数应用逆haar变换,复原在阶层l中按照莫顿编码顺序相邻的三维点的属性信息。例如,三维数据解码装置也可以使用2
×
2矩阵的逆haar变换。被复原的阶层l的属性信息被用作下位阶层l-1的输入值。
[0578]
三维数据解码装置反复这样的阶层处理,如果最下层的属性信息全部被解码,则结束处理。另外,在仅存在1个三维点作为应用逆haar变换时在阶层l-1中相邻的2个三维点的情况下,三维数据解码装置也可以将阶层l的编码成分的值代入存在的1个三维点的属性值。由此,三维数据解码装置对输入的属性信息的所有值应用haar变换,能够正确地对提高了编码效率的比特流进行解码。
[0579]
在属性信息为n维的情况下,三维数据解码装置也可以按每个维独立地应用逆haar变换,对各自的编码系数进行解码。例如,在属性信息是颜色信息(rgb或yuv等)的情况下,三维数据解码装置对每个成分的编码系数应用逆haar变换,对各自的属性值进行解码。
[0580]
三维数据解码装置也可以按照阶层lmax、l 1、

、阶层l的顺序应用逆haar变换。另外,图47所示的w0和w1是分配给各三维点的权重。例如,三维数据解码装置也可以基于应用逆haar变换的相邻的2个三维点间的距离信息等来计算权重。例如,三维数据编码装置也可以通过距离越近则越增大权重来对提高了编码效率的比特流进行解码。
[0581]
在图47所示的例子中,逆量化后的编码系数是ta1、ta5、tb1、tb3、tc1以及d0,作为
解码值能够得到a0、a1、a2、a3、a4以及a5。
[0582]
图48是表示属性信息(attribute_data)的句法例的图。属性信息(attribute_data)包含零连续数(zerocnt)、属性维数(attribute_dimension)和编码系数(value[j][i])。
[0583]
零连续数(zerocnt)表示在量化后的编码系数中值0连续的次数。此外,三维数据编码装置也可以在对zerocnt进行二值化之后进行算术编码。
[0584]
另外,如图48所示,三维数据编码装置也可以判定编码系数所属的阶层l(layerl)是否为预先确定的阈值th_layer以上,根据判定结果切换对比特流附加的信息。例如,如果判定结果为真,则三维数据编码装置将属性信息的所有的编码系数附加到比特流。另外,如果判定结果为假,则三维数据编码装置也可以将一部分的编码系数附加到比特流。
[0585]
具体而言,如果判定结果为真,则三维数据编码装置将颜色信息的rgb或yuv的三维信息的编码结果附加到比特流。如果判定结果为假,则三维数据编码装置也可以将颜色信息中的g或y等一部分信息附加到比特流,不将除此以外的成分附加到比特流。这样,三维数据编码装置通过不将包含表示在视觉上劣化不显著的高频成分的编码系数的阶层(比th_layer小的阶层)的编码系数的一部分附加到比特流,能够提高编码效率。
[0586]
属性维数(attribute_dimension)表示属性信息的维数。例如,在属性信息为三维点的颜色信息(rgb或yuv等)的情况下,颜色信息为三维,因此属性维数被设定为值3。在属性信息为反射率的情况下,反射率为一维,因此属性维数被设定为值1。此外,属性维数也可以附加到比特流的属性信息的头部等。
[0587]
编码系数(value[j][i])表示第i个三维点的第j维属性信息的量化后的编码系数。例如,在属性信息是颜色信息的情况下,value[99][1]表示第100个三维点的第2维(例如g值)的编码系数。另外,在属性信息是反射率信息的情况下,value[119][0]表示第120个三维点的第1维(例如反射率)的编码系数。
[0588]
此外,在满足以下的条件的情况下,三维数据编码装置也可以从value[j][i]减去值1,对得到的值进行熵编码。在这种情况下,三维数据解码装置通过将值1与熵解码后的value[j][i]相加来复原编码系数。
[0589]
上述条件是(1)attribute_dimension=1的情况,或者(2)attribute_dimension为1以上且所有维的值相等的情况。例如,在属性信息是反射率的情况下,attribute_dimension=1,因此,三维数据编码装置从编码系数中减去值1来计算value,并对计算出的value进行编码。三维数据解码装置将值1与解码后的value相加来计算编码系数。
[0590]
更具体而言,例如,在反射率的编码系数为10的情况下,三维数据编码装置对从编码系数的值10减去值1而得到的值9进行编码。三维数据解码装置将值1与解码后的值9相加,计算编码系数的值10。
[0591]
另外,在属性信息为颜色的情况下,attribute_dimension=3,因此,例如,在r、g、b的各成分的量化后的编码系数相同的情况下,三维数据编码装置从各编码系数减去值1,对得到的值进行编码。三维数据解码装置对解码后的值加上值1。更具体而言,例如,在r、g、b的编码系数=(1,1,1)的情况下,三维数据编码装置对(0,0,0)进行编码。三维数据解码装置对(0,0,0)的各成分加上1,计算出(1,1,1)。另外,在r、g、b的编码系数=(2,1,2)的情况下,三维数据编码装置直接对(2,1,2)进行编码。三维数据解码装置将解码的(2,1,2)直接
用作编码系数。
[0592]
这样,通过设置zerocnt,不生成作为value的所有维为0的模式,因此能够对从value的值减去1而得到的值进行编码。因此,能够提高编码效率。
[0593]
另外,图48所示的value[0][i]表示第i个三维点的第1维属性信息的量化后的编码系数。如图48所示,如果编码系数所属的阶层l(layerl)小于阈值th_layer,则也可以通过将第1维的属性信息附加到比特流(不对第2维以后的属性信息附加比特流)来削减编码量。
[0594]
三维数据编码装置也可以根据attribute_dimension的值来切换zerocnt的值的计算方法。例如,在attribute_dimension=3的情况下,三维数据编码装置可以对所有成分(维)的编码系数的值为0的次数进行计数。图49是表示该情况下的编码系数和zerocnt的例子的图。例如,在图49所示的颜色信息的情况下,三维数据编码装置对r、g、b成分全部为0的编码系数连续的数量进行计数,将计数的数量作为zerocnt附加到比特流。由此,不需要按每个成分对zerocnt进行编码,能够削减开销。因此,能够改善编码效率。此外,在attribute_dimension为2以上的情况下,三维数据编码装置也可以按每个维计算zerocnt,将计算出的zerocnt附加到比特流。
[0595]
图50是本实施方式的三维数据编码处理的流程图。首先,三维数据编码装置对位置信息(geometry)进行编码(s6601)。例如,三维数据编码装置使用八叉树表现进行编码。
[0596]
接着,三维数据编码装置对属性信息进行变换(s6602)。例如三维数据编码装置在位置信息的编码后,在三维点的位置由于量化等而变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息。此外,三维数据编码装置也可以根据位置的变化量对属性信息的值进行插值来进行重新分配。例如,三维数据编码装置检测n个接近变化后的三维位置的变化前的三维点,对n个三维点的属性信息的值基于从变化后的三维位置到各n个三维点的距离进行加权平均,将得到的值设定为变化后的三维点的属性信息的值。另外,在由于量化等而2个以上的三维点变化到同一三维位置的情况下,三维数据编码装置也可以分配变化前的2个以上的三维点中的属性信息的平均值作为该变化后的属性信息的值。
[0597]
接着,三维数据编码装置对属性信息进行编码(s6603)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果可以是任何顺序。
[0598]
另外,三维数据编码装置也可以将比特流内的各属性信息的表示编码数据开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
[0599]
图51是属性信息编码处理(s6603)的流程图。首先,三维数据编码装置通过haar变换从属性信息生成编码系数(s6611)。接着,三维数据编码装置对编码系数应用量化(s6612)。接着,三维数据编码装置通过对量化后的编码系数进行编码来生成编码属性信息(比特流)(s6613)。
[0600]
此外,三维数据编码装置对量化后的编码系数应用逆量化(s6614)。接着,三维数据解码装置通过对逆量化后的编码系数应用逆haar变换来对属性信息进行解码(s6615)。例如,解码后的属性信息在后续的编码中被参照。
[0601]
图52是编码系数编码处理(s6613)的流程图。首先,三维数据编码装置将编码系数从带符号整数值变换为无符号整数值(s6621)。例如,三维数据编码装置将带符号整数值如下述那样变换为无符号整数值。在带符号整数值ta1q小于0的情况下,无符号整数值被设定为-1-(2
×
ta1q)。在带符号整数值ta1q为0以上的情况下,无符号整数值被设定为2
×
ta1q。此外,在编码系数不成为负值的情况下,三维数据编码装置也可以将编码系数直接作为无符号整数值进行编码。
[0602]
在未处理完所有的编码系数的情况下(s6622的“否”),三维数据编码装置判定处理对象的编码系数的值是否为零(s6623)。在处理对象的编码系数的值为零的情况下(s6623的“是”),三维数据编码装置使zerocnt递增1(s6624),返回到步骤s6622。
[0603]
在处理对象的编码系数的值不为零的情况下(s6623的“否”),三维数据编码装置对zerocnt进行编码,将zerocnt重置为0(s6625)。另外,三维数据编码装置对处理对象的编码系数进行算术编码(s6626),返回到步骤s6622。例如,三维数据编码装置进行二值算术编码。另外,三维数据编码装置也可以从编码系数减去值1,对得到的值进行编码。
[0604]
另外,对每个编码系数反复进行步骤s6623~s6626的处理。另外,在已处理完所有的编码系数的情况下(s6622的“是”),三维数据编码装置结束处理。
[0605]
图53是本实施方式的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(s6631)。例如,三维数据解码装置使用八叉树表现进行解码。
[0606]
接着,三维数据解码装置从比特流中解码属性信息(s6632)。例如,在对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加于比特流的属性信息的编码结果进行解码都可以。
[0607]
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据的开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
[0608]
图54是属性信息解码处理(s6632)的流程图。首先,三维数据解码装置从比特流中解码编码系数(s6641)。接着,三维数据解码装置对编码系数应用逆量化(s6642)。接着,三维数据解码装置通过对逆量化后的编码系数应用逆haar变换来对属性信息进行解码(s6643)。
[0609]
图55是编码系数解码处理(s6641)的流程图。首先,三维数据解码装置从比特流中
解码zerocnt(s6651)。在未处理完所有的编码系数的情况下(s6652的“否”),三维数据解码装置判定zerocnt是否大于0(s6653)。
[0610]
在zerocnt大于零的情况下(s6653的“是”),三维数据解码装置将处理对象的编码系数设定为0(s6654)。接着,三维数据解码装置对zerocnt减去1(s6655),返回到步骤s6652。
[0611]
在zerocnt为零的情况下(s6653的“否”),三维数据解码装置对处理对象的编码系数进行解码(s6656)。例如,三维数据解码装置使用二值算术解码。另外,三维数据解码装置也可以对解码出的编码系数加上值1。
[0612]
接着,三维数据解码装置对zerocnt进行解码,将得到的值设定为zerocnt(s6657),返回到步骤s6652。
[0613]
此外,对每个编码系数反复进行步骤s6653~s6657的处理。另外,在已处理完所有的编码系数的情况下(s6652的“是”),三维数据编码装置将解码出的多个编码系数从无符号整数值变换为带符号整数值(s6658)。例如,三维数据解码装置也可以如下述那样将解码出的编码系数从无符号整数值变换为带符号整数值。在被解码的无符号整数值ta1u的lsb(least significant bit)为1的情况下,带符号整数值ta1q被设定为-((ta1u 1)>>1)。在被解码的无符号整数值ta1u的lsb不是1的情况下(为0的情况下),带符号整数值ta1q被设定为(ta1u>>1)。此外,在编码系数不成为负值的情况下,三维数据解码装置也可以将解码出的编码系数直接用作带符号整数值。
[0614]
图56是三维数据编码装置所包含的属性信息编码部6600的框图。属性信息编码部6600具备排序部6601、haar变换部6602、量化部6603、逆量化部6604、逆haar变换部6605、存储器6606以及算术编码部6607。
[0615]
排序部6601使用三维点的位置信息生成莫顿编码,按照莫顿编码顺序对多个三维点进行排序。haar变换部6602通过对属性信息应用haar变换来生成编码系数。量化部6603对属性信息的编码系数进行量化。
[0616]
逆量化部6604对量化后的编码系数进行逆量化。逆haar变换部6605对编码系数应用逆haar变换。存储器6606存储已解码的多个三维点的属性信息的值。例如,存储器6606中存储的已解码的三维点的属性信息也可以利用于未被编码的三维点的预测等。
[0617]
算术编码部6607根据量化后的编码系数计算zerocnt,对zerocnt进行算术编码。另外,算术编码部6607对量化后的非零的编码系数进行算术编码。算术编码部6607可以在算术编码前对编码系数进行二值化。另外,算术编码部6607也可以生成和编码各种头部信息。
[0618]
图57是三维数据解码装置所包含的属性信息解码部6610的框图。属性信息解码部6610具备算术解码部6611、逆量化部6612、逆haar变换部6613以及存储器6614。
[0619]
算术解码部6611对比特流所包含的zerocnt和编码系数进行算术解码。另外,算术解码部6611也可以对各种头部信息进行解码。
[0620]
逆量化部6612对算术解码出的编码系数进行逆量化。逆haar变换部6613对逆量化后的编码系数应用逆haar变换。存储器6614存储已解码的多个三维点的属性信息的值。例如,存储器6614中存储的已解码的三维点的属性信息也可以利用于未被解码的三维点的预测。
[0621]
另外,在上述实施方式中,示出了作为编码顺序从下位层到上位层的顺序对三维点进行编码的例子,但未必限于此。例如,也可以使用从上位层到下位层的顺序扫描haar变换后的编码系数的方法。此外,在该情况下,三维数据编码装置也可以将值0的连续次数作为zerocnt来进行编码。
[0622]
另外,三维数据编码装置也可以以wld、spc或体积单位切换是否使用本实施方式中所述的使用了zerocnt的编码方法。在该情况下,三维数据编码装置也可以将表示是否应用了使用了zerocnt的编码方法的信息附加到头部信息。由此,三维数据解码装置能够适当地进行解码。作为切换方法的例子,例如,三维数据编码装置对1个体积对值0的编码系数的产生次数进行计数。三维数据编码装置在计数值超过了预先确定的阈值的情况下,对下一个体积应用使用了zerocnt的方法,在计数值为阈值以下的情况下,不对下一个体积应用使用了zerocnt的方法。由此,三维数据编码装置能够根据编码对象的三维点的特征来适当地切换是否应用使用了zerocnt的编码方法,因此能够提高编码效率。
[0623]
以下,对本实施方式的其他方法(变形例)进行说明。三维数据编码装置按照某个顺序扫描量化后的编码系数(无符号整数值),进行编码。例如,三维数据编码装置从下位层中包含的三维点开始依次朝向上位层对多个三维点进行编码。
[0624]
图58是表示在使用该方法的情况下图43所示的属性信息的第一编码串和第二编码串的例子的图。在该例子的情况下,三维数据编码装置从下位层l中包含的ta1q开始按照ta5q、tb1q、tb3q、tc1q和d0q的顺序对多个编码系数进行编码。这里,存在越是下位层,量化后的编码系数越容易成为0的倾向。作为其主要原因,可以举出以下等。
[0625]
由于下位层l的编码系数表示比上位层高的频率成分,所以存在根据编码对象的三维点而容易成为0的倾向。此外,通过切换与上述重要程度等相应的量化尺度,越是下位层量化尺度越大,并且量化后的编码系数容易变为0。
[0626]
这样,越是下位层,量化后的编码系数越容易成为0,值0越容易连续地在第一编码串中产生。三维数据编码装置对在第一编码串中产生了值0的次数进行计数,并且代替连续的值0,对值0连续产生的次数(zerocnt)进行编码。由此,在量化后的编码系数的值0连续的情况下,与对大量的0进行编码相比,通过对0的连续次数进行编码,能够提高编码效率。
[0627]
此外,三维数据编码装置也可以将表示值0的产生次数的总数的信息进行编码。由此,能够削减对zerocnt进行编码的开销,并且能够提高编码效率。
[0628]
例如,三维数据编码装置将值0的编码系数的总数作为totalzerocnt进行编码。由此,在图58所示的例子中,在三维数据解码装置解码包含在第二编码串中的第二个zerocnt(值1)的时间点,已解码的zerocnt的总数成为n 1(=totalzerocnt)。因此,三维数据解码装置能够掌握此后不产生0的情况。因此,三维数据编码装置以后不需要按每个value对zerocnt进行编码,能够削减编码量。
[0629]
此外,也可以是,三维数据编码装置对totalzerocnt进行熵编码。例如,三维数据编码装置用编码三维点的总数t的截断一元编码将totalzerocnt的值进行二值化,对二值化后的各比特进行算术编码。此时,三维数据编码装置也可以通过对每个比特使用不同的编码表来提高编码效率。例如,三维数据编码装置在第1比特使用编码表1,在第2比特使用编码表2,在其以后的比特使用编码表3。这样,三维数据编码装置通过按每比特切换编码表,能够提高编码效率。
[0630]
此外,三维数据编码装置也可以在将totalzerocnt用指数哥伦布进行二值化后进行算术编码。因此,在totalzerocnt的值容易变大的情况下,与使用截断一元编码的二值化算术编码相比,可以提高效率。另外,三维数据编码装置也可以在头部附加用于切换是使用截断一元编码还是使用指数哥伦布码的标志。由此,三维数据编码装置通过选择最佳的二值化方法,能够提高编码效率。此外,三维数据解码装置参照头部中包含的标志来切换二值化方法,能够将比特流正确地解码。
[0631]
图59是表示本变形例中的属性信息(attribute_data)的句法例的图。图59所示的属性信息(attribute_data),相对于图48所示的属性信息还包含零总数(totalzerocnt)。此外,其他信息与图48相同。零总数(totalzerocnt)表示量化后的值0的编码系数的总数。
[0632]
此外,也可以是,三维数据编码装置根据attribute_dimension的值切换totalzerecnt和zerocnt的值的计算方法。例如,在attribute_dimension=3的情况下,三维数据编码装置可以对所有成分(维)的编码系数值为0的次数进行计数。图60是表示在这种情况下的编码系数、zerocnt和totalzerocnt的例子的图。例如,在图60所示的颜色信息的情况下,三维数据编码装置计数r、g、b成分全部为0的编码系数连续的数量,并将计数的数量作为totalzerocnt和zerocnt附加到比特流。因此,不需要对每个成分都编码totalzerocnt和zerocnt,从而能够削减开销。因此,能够改善编码效率。此外,即使在attribute_dimension为2以上的情况下,三维数据编码装置也可以计算每维的totalzeocnt和zerocnt,并将计算出的totalzeocnt和zerocnt附加到比特流。
[0633]
图61是本变形例中的编码系数编码处理(s6613)的流程图。首先,三维数据编码装置将编码系数从带符号整数值变换为无符号整数值(s6661)。接下来,三维数据编码装置对totalzerocnt进行编码(s6662)。
[0634]
在没有处理完所有编码系数的情况下(s6663的“否”),三维数据编码装置判定处理对象的编码系数的值是否是零(s6664)。在处理对象的编码系数的值是零的情况下(s6664的“是”),三维数据编码装置将zerocnt递增1(s6665),返回步骤s6663。
[0635]
在处理对象的编码系数的值不是0的情况下(s6664的“否”),三维数据编码装置判定totalzerocnt是否大于0(s6666)。在totalzerocnt大于0的情况下(s6666的“是”),三维数据编码装置对zerocnt进行编码,并将totalzerocnt设定为totalzerocnt-zerocnt(s6667)。
[0636]
在步骤s6667之后,或者在totalzerocnt是0的情况下(s6666的“否”),三维数据编码装置对编码系数进行编码,将zerocnt重置为0(s6668),并返回步骤s6663。例如,三维数据编码装置进行二值算术编码。此外,三维数据编码装置也可以从编码系数中减去值1,对得到的值进行编码。
[0637]
另外,对每个编码系数反复进行步骤s6664~s6668的处理。另外,在已处理完所有编码系数的情况下(s6663为“是”),三维数据编码装置结束处理。
[0638]
图62是本变形例中的编码系数解码处理(s6641)的流程图。首先,三维数据解码装置从比特流中解码totalzerocnt(s6671)。接下来,三维数据解码装置从比特流中解码zerocnt,并将totalzerocnt设定为totalzerocnt-zerocnt(s6672)。
[0639]
在没有处理完所有编码系数的情况下(s6673的“否”),三维数据编码装置判定zerocnt是否大于0(s6674)。
[0640]
在zerocnt大于零的情况下(s6674的“是”),三维数据解码装置将处理对象的编码系数设定为0(s6675)。接着,三维数据解码装置对zerocnt减去1(s6676),并返回到步骤s6673。
[0641]
在zerocnt是零的情况下(s6674的“否”),三维数据解码装置对处理对象的编码系数进行解码(s6677)。例如,三维数据解码装置使用二值算术解码。此外,三维数据解码装置也可以对解码后的编码系数加上值1。
[0642]
接着,三维数据解码装置判定totalzerocnt是否大于0(s6678)。在totalzerocnt大于0的情况下(s6678的“是”),三维数据解码装置对zerocnt进行解码,将获得的值设定为zerocnt,将totalzerocnt设定为totalzerocnt-zerocnt(s6679),并返回步骤s6673。另外,在totalzerocnt是0的情况下(s6678的“否”),三维数据解码装置返回到步骤s6673。
[0643]
另外,对每个编码系数反复进行步骤s6674~s6679的处理。另外,在已处理完所有编码系数的情况下(s6673的“是”),三维数据编码装置将解码后的编码系数从无符号整数值变换为带符号整数值(s6680)。
[0644]
图63是表示属性信息(attribute_data)的另一句法例的图。图63所示的属性信息(attribute_data)包含value[j][i]_greater_zero_flag、value[j][i]_greater_one_flag和value[j][i],来代替图48所示的编码系数(value[j][i])。其他信息与图48相同。
[0645]
value[j][i]_greater_zero_flag表示编码系数(value[j][i])的值是否大于0(是否为1以上)。换言之,value[j][i]_greater_zero_flag表示编码系数(value[j][i])的值是否是0。
[0646]
例如,在编码系数的值大于0的情况下,将value[j][i]_greater_zero_flag设定为值1,在编码系数的值为0的情况下,将value[j][i]_greater_zero_flag设定为值0。三维数据编码装置在value[j][i]_greater_zero_flag的值为0的情况下,也可以不将value[j][i]附加到比特流。在这种情况下,三维数据解码装置也可以判断为value[j][i]的值是值0。由此,能够削减编码量。
[0647]
value[j][i]_greater_one_flag表示编码系数(value[j][i])的值是否大于1(是否为2以上)。换言之,value[j][i]_greater_one_flag表示编码系数(value[j][i])的值是否为1。
[0648]
例如,在编码系数的值大于1的情况下,将value[j][i]_greater_one_flag设定为值1。否则(编码系数的值为1以下时),value[j][i]_greater_one_flag被设定为值0。三维数据编码装置在value[j][i]_greater_one_flag的值为0的情况下,也可以不将value[j][i]附加到比特流。在这种情况下,三维数据编码装置也可以判断为value[j][i]的值是值1。
[0649]
value[j][i]表示第i个三维点的第j维属性信息的量化后的编码系数。例如,在属性信息是颜色信息的情况下,value[99][1]表示第100个三维点的第二维(例如g值)的编码系数。此外,在属性信息是反射率信息的情况下,value[119][0]表示第120个三维点的第一维(例如反射率)的编码系数。
[0650]
三维数据编码装置在value[j][i]_greater_zero_flag=1、value[j][i]_greater_one_flag=1的情况下,可以将value[j][i]附加到比特流。此外,三维数据编码装置也可以将从value[j][i]减去2后的值附加到比特流中。在这种情况下,三维数据解码装
置通过对解码后的value[j][i]加上值2来计算编码系数。
[0651]
三维数据编码装置可以对value[j][i]_greater_zero_flag和value[j][i]_greater_one_flag进行熵编码。例如,可以使用二值算术编码和二值算术解码。由此,能够提高编码效率。
[0652]
(实施方式9)
[0653]
为了实现高压缩,pcc(point cloud compression,点云压缩)数据中包含的属性信息使用lifting、raht(region adaptive hierarchical transform)或其他变换方法等多个方法进行转换。在此,lifting是使用lod(level of detail)的变换方法之一。
[0654]
重要的信号信息具有包含在低频成分中的倾向,因此通过对高频成分进行量化来削减编码量。即,变换处理具有强的能量压缩特性。此外,根据量化参数的大小,由于量化而失去精度。
[0655]
图64是示出了有关本实施方式的三维数据编码装置的结构的框图。该三维数据编码装置具备减法部7001、变换部7002、变换矩阵保持部7003、量化部7004、量化控制部7005和熵编码部7006。
[0656]
减法部7001计算输入数据与参照数据的差分即系数值。例如,输入数据是指点群数据中包含的属性信息,是与参照数据的属性信息的预测值。
[0657]
变换部7002对系数值进行变换处理。例如,该变换处理是将多个属性信息分类为lod的处理。此外,该变换处理也可以是haar变换等。变换矩阵保持部7003保持在变换部7002的变换处理中使用的变换矩阵。例如,该变换矩阵是haar变换矩阵。另外,在此,示出了三维数据编码装置具有进行使用了lod的变换处理和haar变换等变换处理双方的功能的例子,但也可以具有某一方的功能。此外,三维数据编码装置也可以选择性地使用这2种变换处理。此外,三维数据编码装置也可以按每个规定的处理单位切换所使用的变换处理。
[0658]
量化部7004通过对系数值进行量化来生成量化值。量化控制部7005控制量化部7004在量化中使用的量化参数。例如,量化控制部7005可以与编码的阶层结构相应地切换量化参数(或量化步长)。因此,能够通过为每个阶层结构选择适当的量化参数来控制每个阶层的产生编码量。此外,例如,量化控制部7005将包括对主观画质影响小的频率成分的阶层以下的量化参数设定为最大值,并且将该阶层以下的量化系数设为0。因此,能够在抑制主观画质的劣化的同时削减产生编码量。此外,量化控制部7005能够更细致地控制主观画质和产生编码量。在此,阶层是指lod或raht(haar变换)中的阶层(树结构中的深度)。
[0659]
熵编码部7006通过对量化系数进行熵编码(例如算术编码)来生成比特流。另外,熵编码部7006对由量化控制部7005设定的每个阶层的量化参数进行编码。
[0660]
图65是示出了有关本实施方式的三维数据解码装置的结构的框图。该三维数据解码装置具备熵解码部7011、逆量化部7012、量化控制部7013、逆变换部7014、变换矩阵保持部7015和加法部7016。
[0661]
熵解码部7011从比特流中对量化系数和每个阶层的量化参数进行解码。逆量化部7012通过对量化系数进行逆量化来生成系数值。量化控制部7013基于由熵解码部7011得到的阶层号的量化参数,控制逆量化部7012用于逆量化的量化参数。
[0662]
逆变换部7014对系数值进行逆变换。例如,逆变换部7014对系数值进行逆haar变换。变换矩阵保持部7015保持在逆变换部7014的逆变换处理中使用的变换矩阵。例如,该变
换矩阵是逆haar变换矩阵。
[0663]
加法部7016通过对系数值加上参照数据来生成输出数据。例如,输出数据是指点群数据中包含的属性信息,是与参照数据的属性信息的预测值。
[0664]
接着,将说明对每个阶层设定量化参数的例子。在predicting/lifting等属性信息的编码中,基于lod的阶层应用不同的量化参数。例如,减小低层的量化参数,提高低层的精度。由此,能够提高高层的预测精度。另外,对于高层,通过增大量化参数,能够削减数据量。这样,能够根据用户的使用方针,对每个lod单独地设定量化树值(qt)。在此,量化树值例如是量化参数。
[0665]
图66是示出了lod的设定例的图。例如,如图66所示,对lod0~lod2设定独立的qt0~qt2。
[0666]
此外,在使用了raht的属性信息的编码中,基于树结构的深度而应用不同的量化参数。例如,减小低层的量化参数,提高低层的精度。由此,能够提高高层的预测精度。另外,对于高层,通过增大量化参数,能够削减数据量。这样,能够根据用户的使用方针,按照树结构的每个深度单独地设定量化树值(qt)。
[0667]
图67是示出了raht的阶层结构(树结构)的例子的图。例如,如图67所示,对树结构的每个深度设定独立的qt0~qt2。
[0668]
以下,说明本实施方式的三维数据编码装置的结构。图68是示出了有关本实施方式的三维数据编码装置7020的结构的框图。三维数据编码装置7020通过编码点群数据(点云)来生成编码数据(编码流)。该三维数据编码装置7020包括分割部7021、多个位置信息编码部7022、多个属性信息编码部7023、附加信息编码部7024以及复用部7025。
[0669]
分割部7021通过分割点群数据来生成多个分割数据。具体而言,分割部7021通过将点群数据的空间分割为多个子空间来生成多个分割数据。在此,子空间是瓦片以及切片中的一方、或者瓦片以及切片的组合。更具体而言,点群数据包含位置信息、属性信息(颜色或反射率等)以及附加信息。分割部7021通过分割位置信息来生成多个分割位置信息,通过分割属性信息来生成多个分割属性信息。另外,分割部7021生成与分割有关的附加信息。
[0670]
例如,分割部7021首先将点群分割为瓦片。接着,分割部7021将得到的瓦片进一步分割为切片。
[0671]
多个位置信息编码部7022通过对多个分割位置信息进行编码来生成多个编码位置信息。例如,位置信息编码部7022使用八叉树等n叉树结构对分割位置信息进行编码。具体而言,在八叉树中,对象空间被分割为8个节点(子空间),并生成表示在各节点中是否包含点群的8比特的信息(占用率编码)。另外,包含点群的节点进一步被分割为8个节点,生成表示在该8个节点的每一个中是否包含点群的8比特的信息。反复进行该处理,直到成为预先设定的阶层或节点所包含的点群的数量的阈值以下为止。例如,多个位置信息编码部7022对多个分割位置信息进行并行处理。
[0672]
属性信息编码部7023使用由位置信息编码部7022生成的结构信息对属性信息进行编码,由此生成作为编码数据的编码属性信息。例如,属性信息编码部7023基于由位置信息编码部7022生成的八叉树结构,决定在处理对象的对象点(对象节点)的编码中参照的参照点(参照节点)。例如,属性信息编码部7023参照周边节点或邻接节点中的、八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
[0673]
此外,位置信息或属性信息的编码处理也可以包括量化处理、预测处理以及算术编码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点、或者在编码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,编码的参数是指量化处理中的量化参数、或者算术编码中的上下文等。
[0674]
附加信息编码部7024通过对点群数据中包含的附加信息和由分割部7021在分割时生成的关于数据分割的附加信息进行编码,生成编码附加信息。
[0675]
复用部7025通过对多个编码位置信息、多个编码属性信息以及编码附加信息进行复用来生成编码数据(编码流),并送出所生成的编码数据。此外,编码附加信息在解码时使用。
[0676]
图69是分割部7021的框图。分割部7021包括瓦片分割部7031和切片分割部7032。
[0677]
瓦片分割部7031通过将位置信息(position(geometry))分割成瓦片来生成多个瓦片位置信息。另外,瓦片分割部7031通过将属性信息(attribute)分割为瓦片来生成多个瓦片属性信息。另外,瓦片分割部7031输出与瓦片分割有关的信息和包含瓦片分割中生成的信息的瓦片附加信息(tile metadata)。
[0678]
切片分割部7032通过将多个瓦片位置信息分割成切片来生成多个分割位置信息(多个切片位置信息)。另外,切片分割部7032通过将多个瓦片属性信息分割成切片来生成多个分割属性信息(多个切片属性信息)。另外,切片分割部7032输出与切片分割有关的信息、以及包含在切片分割中生成的信息的切片附加信息(slice metadata)。
[0679]
另外,瓦片分割部7031和切片分割部7032基于所生成的附加信息来决定量化树值(量化参数)。
[0680]
图70是属性信息编码部7023的框图。属性信息编码部7023包括变换部7035、量化部7036和熵编码部7037。
[0681]
变换部7035将分割属性信息分类到lod等的阶层中,并且通过计算分割属性信息与预测值之间的差分来生成系数值(差分值)。此外,变换部7035也可以通过对分割属性信息进行haar变换来生成系数值。
[0682]
量化部7036通过量化系数值来生成量化值。具体而言,量化部7036将系数除以基于量化参数的量化步长。熵编码部7037通过对量化值进行熵编码来生成编码属性信息。
[0683]
以下,说明本实施方式的三维数据解码装置的结构。图71是示出了三维数据解码装置7040的结构的框图。三维数据解码装置7040通过对通过对点群数据进行编码而生成的编码数据(编码流)进行解码来复原点群数据。该三维数据解码装置7040包括逆复用部7041、多个位置信息解码部7042、多个属性信息解码部7043、附加信息解码部7044以及结合部7045。
[0684]
逆复用部7041通过对编码数据(编码流)进行逆复用来生成多个编码位置信息、多个编码属性信息以及编码附加信息。
[0685]
多个位置信息解码部7042通过对多个编码位置信息进行解码来生成多个分割位置信息。例如,多个位置信息解码部7042对多个编码位置信息进行并行处理。
[0686]
多个属性信息解码部7043通过对多个编码属性信息进行解码来生成多个分割属性信息。例如,多个属性信息解码部7043对多个编码属性信息进行并行处理。
[0687]
多个附加信息解码部7044通过对编码附加信息进行解码来生成附加信息。
[0688]
结合部7045通过使用附加信息结合多个分割位置信息来生成位置信息。结合部7045通过使用附加信息结合多个分割属性信息来生成属性信息。
[0689]
图72是属性信息解码部7043的框图。属性信息解码部7043包括熵解码部7051、逆量化部7052和逆变换部7053。熵解码部7051通过对编码属性信息进行熵解码来生成量化值。逆量化部7052通过对量化值进行逆量化来生成系数值。具体而言,将基于从比特流中获得的量化树值(量化参数)的量化步长乘以系数值。逆变换部7053通过对系数值进行逆变换来生成分割属性信息。在此,逆变换是指例如在系数值上加上预测值的处理。或者,逆变换是逆haar变换。
[0690]
以下,说明量化参数的决定方法的例子。图73是示出了瓦片和切片分割中的量化参数的设定例的图。
[0691]
如果量化参数的值小,则容易维持原来的信息。例如,量化参数的既定值为1。例如,在使用了pcc数据的瓦片的编码处理中,主要道路的瓦片的量化参数为了维持数据质量而被设定为小的值。另一方面,周围区域中的瓦片的量化参数被设定为大的值。由此,周边区域的数据质量降低,但能够提高编码效率。
[0692]
同样地,在使用了pcc数据的切片的编码处理中,人行道、树以及建筑物在自身位置估计以及映射中是重要的,人行道、树以及建筑物的切片的量化参数被设定为小的值。另一方面,由于移动体及其他数据的重要性低,所以将移动体及其他数据的切片的量化参数设定得高。
[0693]
另外,在使用后述的δqp(deltaqp)的情况下,三维数据编码装置也可以在主要道路等属于重要区的三维点的编码中,为了减小量化参数而对δqp的值设定负值,以量化误差变小的方式进行编码。由此,能够使属于重要区的三维点的解码后的属性值接近编码前的值。此外,三维数据编码装置在对属于周边区域等不重要的区的三维点进行编码时,为了增大量化参数,也可以对δqp的值设定正值来削减信息量。由此,能够在保持重要区的信息量的同时削减整体的编码量。
[0694]
以下,说明表示每个阶层的量化参数的信息的例子。在对三维点的属性信息进行量化并编码的情况下,除了针对帧、切片或瓦片等的量化参数qpbase以外,还导入以更细小的单位控制量化参数的结构。例如,三维数据编码装置在使用lod对属性信息进行编码的情况下,按每个lod设置delta_layer,按每个lod对qpbase的值加上delta_layer,由此一边改变量化参数的值一边进行编码。另外,三维数据编码装置将用于编码的delta_layer附加到比特流的头部等。由此,三维数据编码装置例如能够一边根据目标编码量和产生编码量来改变每个lod的量化参数一边对三维点的属性信息进行编码,因此最终能够生成与目标编码量接近的编码量的比特流。另外,三维数据解码装置通过对头部所包含的qpbase以及delta_layer进行解码来生成三维数据编码装置所使用的量化参数,从而能够适当地对比特流进行解码。
[0695]
图74是表示使用量化参数qpbase对全部三维点的属性信息进行编码的情况的例子的图。图75是表示按lod的每个阶层切换量化参数来进行编码的情况的例子的图。在图75所示的例子中,开头的lod的量化参数通过对qpbase加上开头的lod的delta_layer来计算。在第2个以后的lod中,处理对象的lod的量化参数通过对紧前的lod的量化参数加上处理对
象的lod的delta_layer来计算。例如,lod3的开头的量化参数qp3通过qp3=qp2 delta_layer[3]来计算。
[0696]
另外,各lod的delta_layer[i]也可以表示相对于qpbase的差分值。即,第i个lodi的量化参数qpi由qpi=qpbase delta_layer[i]表示。例如,由qp1=qpbase delta_layer[1]表示,由qp2=qpbase delta_layer[2]表示。
[0697]
图76是表示属性信息头部(attribute header information)的句法例的图。在此,属性信息头部是指例如帧、切片或瓦片单位的头部,并且是属性信息的头部。如图76所示,属性信息头部包含qpbase(基准量化参数)、numlayer(阶层数)和delta_layer[i](差分量化参数)。
[0698]
qpbase表示在帧、切片或瓦片等中成为基准的量化参数的值。numlayer表示lod或raht的阶层数。换言之,numlayer表示属性信息头部中所包含的delta_layer[i]的数量。
[0699]
delta_layer[i]表示阶层i的δqp的值。在此,δqp是通过从层i-1的量化参数中减去阶层i的量化参数而得到的值。此外,δqp也可以是从qpbase减去阶层i的量化参数而得到的值。另外,δqp可以取正或负的值。另外,也可以不将delta_layer[0]附加到头部。在这种情况下,阶层0的量化参数等于qpbase。由此,能够削减头部编码量。
[0700]
图77是表示属性信息头部(attribute header information)的另一句法例的图。相对于图76所示的属性信息头部,图77所示的属性信息头部还包含delta_layer_present_flag。
[0701]
delta_layer_present_flag是表示delta_layer是否包含在比特流中的标志。例如,值1表示delta_layer包含在比特流中,值0表示delta_layer不包含在比特流中。在delta_layer_present_flag为0的情况下,三维数据解码装置例如以delta_layer为0进行以后的解码处理。
[0702]
此外,在此,叙述了通过qpbase以及delta_layer来表示量化参数的例子,但也可以通过qpbase以及delta_layer来表示量化步长。量化步长是根据量化参数,使用预先设定的式子或表等来计算的。三维数据编码装置在量化处理中将系数值除以量化步长。三维数据解码装置通过在逆量化处理中对量化值乘以量化步长来复原系数值。
[0703]
接着,说明以更细小的单位控制量化参数的例子。图78是表示以比lod细小的单位控制量化参数的例子的图。
[0704]
例如,三维数据编码装置在使用lod对属性信息进行编码的情况下,除了每个lod阶层的delta_layer之外,还定义adelta_qp和表示加上adelta_qp的三维点的位置信息的numpointadelta。三维数据编码装置一边基于delta_layer、adelta_qp以及numpointadelta变更量化参数的值一边进行编码。
[0705]
此外,三维数据编码装置也可以将用于编码的adelta以及numpointadelta附加到比特流的头部等。由此,三维数据编码装置例如能够一边根据目标编码量和产生编码量来变更每个三维点的量化参数,一边对多个三维点的属性信息进行编码。由此,三维数据编码装置最终能够生成与目标编码量接近的编码量的比特流。此外,三维数据解码装置通过对头部所包含的qpbase、delta_layer以及adelta进行解码来生成三维数据编码装置所使用的量化参数,从而能够适当地对比特流进行解码。
[0706]
例如,如图78所示,第n0个属性信息的量化值qp4通过qp4=qp3 adelta_qp[0]来
计算。
[0707]
此外,也可以使用与图78所示的编码/解码顺序相反的编码/解码顺序。例如也可以按照lod3、lod2、lod1、lod0的顺序进行编码/解码。
[0708]
图79是表示使用图78所示的例子的情况的属性信息头部(attribute header information)的句法例的图。相对于图76所示的属性信息头部,图79所示的属性信息头部还包含numadelta、numpointadelta[i]和adelta_qp[i]。
[0709]
numadelta表示比特流中包含的adelta_qp的数量。numpointadelta[i]表示应用adelta_qp[i]的三维点a的识别编号。例如,numpointadelta[i]表示按照编码/解码顺序从开头的三维点到三维点a的三维点的个数。另外,numpointadelta[i]也可以表示从三维点a所属的lod内的最初的三维点到三维点a的三维点的个数。
[0710]
或者,numpointadelta[i]也可以表示由numpointadelta[i-1]表示的三维点的识别编号与三维点a的识别编号的差分值。由此,能够减小numpointadelta[i]的值,因此能够削减编码量。
[0711]
adelta_qp[i]表示由numpointadelta[i]表示的三维点的δqp的值。即,adelta_qp[i]表示由numpointadelta[i]表示的三维点的量化参数与该三维点的紧前的三维点的量化参数的差分。
[0712]
图80是表示使用图78所示的例子的情况的属性信息头部(attribute header information)的另一句法例的图。相对于图79所示的属性信息头部,图80所示的属性信息头部还包含delta_layer_present_flag和additional_delta_qp_present_flag,代替numadelta而包含numadelta_minus1。
[0713]
delta_layer_present_flag与已经使用图77说明的内容相同。
[0714]
additional_delta_qp_present_flag是表示adelta_qp是否包含在比特流中的标志。例如,值1表示adelta_qp包含在比特流中,值0表示adelta_qp不包含在比特流中。在additional_delta_qp_present_flag为0的情况下,三维数据解码装置例如以adelta_qp为0进行以后的解码处理。
[0715]
numadelta_minus1表示比特流中包含的adelta_qp的数量-1。这样,通过将从adelta_qp的数量减去1而得到的值附加到头部,能够削减头部的编码量。例如,三维数据解码装置计算numadelta=numadelta_minus1 1。adelta_qp[i]表示第i个adelta_qp的值。另外,adelta_qp[i]不仅可以设定为正值,也可以设定为负值。
[0716]
图81是本实施方式的三维数据编码处理的流程图。首先,三维数据编码装置对位置信息(geometry)进行编码(s7001)。例如,三维数据编码装置使用八叉树表现进行编码。
[0717]
接着,三维数据编码装置对属性信息进行变换(s7002)。例如,三维数据编码装置在位置信息的编码后,在由于量化等而三维点的位置发生了变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息。另外,三维数据编码装置也可以根据位置的变化量对属性信息的值进行插值而进行再分配。例如,三维数据编码装置检测n个与变化后的三维位置接近的变化前的三维点,基于从变化后的三维位置到各n个三维点的距离对n个三维点的属性信息的值进行加权平均,将得到的值决定为变化后的三维点的属性信息的值。此外,三维数据编码装置在由于量化等而2个以上的三维点变化到同一三维位置的情况下,作为该变化后的属性信息的值,也可以分配变化前的2个以上的三维点中的属性信息的平均
值。
[0718]
接着,三维数据编码装置对属性信息进行编码(s7003)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果可以是任何顺序。
[0719]
另外,三维数据编码装置也可以将表示比特流内的各属性信息的编码数据的开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
[0720]
图82是属性信息编码处理(s7003)的流程图。首先,三维数据编码装置设定lod(s7011)。即,三维数据编码装置将各三维点分配给多个lod中的某一个。
[0721]
接着,三维数据编码装置开始lod单位的循环(s7012)。即,三维数据编码装置对每个lod反复进行步骤s7013~s7021的处理。
[0722]
接着,三维数据编码装置开始三维点单位的循环(s7013)。即,三维数据编码装置对每个三维点反复进行步骤s7014~s7020的处理。
[0723]
首先,三维数据编码装置搜索在处理对象的对象三维点的预测值的计算中使用的、作为存在于对象三维点的周围的三维点的多个周围点(s7014)。接着,三维数据编码装置计算多个周围点的属性信息的值的加权平均,将得到的值设定为预测值p(s7015)。接着,三维数据编码装置计算对象三维点的属性信息与预测值的差分即预测残差(s7016)。接着,三维数据编码装置通过对预测残差进行量化来计算量化值(s7017)。接着,三维数据编码装置对量化值进行算术编码(s7018)。接着,三维数据编码装置决定δqp(s7019)。在此决定的δqp用于决定在后续的预测残差的量化中使用的量化参数。
[0724]
此外,三维数据编码装置通过对量化值进行逆量化来计算逆量化值(s7020)。接着,三维数据编码装置通过对逆量化值加上预测值来生成解码值(s7021)。接着,三维数据编码装置结束三维点单位的循环(s7022)。此外,三维数据编码装置结束lod单位的循环(s7023)。
[0725]
图83是δqp决定处理(s7019)的流程图。首先,三维数据编码装置计算下一个编码对象的对象三维点a所属的阶层i和编码顺序n(s7031)。阶层i例如表示lod阶层或raht的阶层。
[0726]
接着,三维数据编码装置对累计编码量加上产生编码量(s7032)。在此,累计编码量是指对象三维点的1帧量、1切片量或1瓦片量的累积编码量。另外,累计编码量也可以是将多个帧、多个切片或多个瓦片的编码量相加而得到的累积编码量。此外,可以使用属性信息的累积编码量,也可以使用通过将位置信息和属性信息两者相加而得到的累积编码量。
[0727]
接着,三维数据编码装置判定累计编码量是否比目标编码量
×
th1多(s7033)。在此,目标编码量是指对象三维点的1帧量、1切片量、或者1瓦片量的目标编码量。此外,目标编码量可以是通过将多个帧、多个切片或多个瓦片相加而得到的目标编码量。此外,可以使用属性信息的目标编码量,也可以使用通过将位置信息和属性信息两者相加而得到的目标
编码量。
[0728]
在累计编码量为目标编码量
×
th1以下的情况下(s7033中否),三维数据编码装置判定累计编码量是否比目标编码量
×
th2多(s7036)。
[0729]
在此,作为阈值th1以及th2,例如设定从0.0到1.0的值。另外,th1>th2。例如,三维数据编码装置在累积编码量超过了目标编码量
×
th1的值的情况下(s7033中是),判断为需要尽快抑制编码量,为了增大下一个三维点n的量化参数而将adelta_qp设定为值α。此外,三维数据编码装置将numpointadelta设定为值n,将j递增1(s7034)。接着,三维数据编码装置将adelta_qp=α和numpointadelta=n附加到头部(s7035)。另外,值α可以是固定值,也可以是可变值。例如,三维数据编码装置也可以根据累积编码量与目标编码量
×
th1的差分的大小来决定α的值。例如,三维数据编码装置设定累积编码量与目标编码量
×
th1之间的差分越大α的值越大。因此,三维数据编码装置能够控制量化参数,使得累积编码量不超过目标编码量。
[0730]
另外,在累积编码量超过了目标编码量
×
th2的值的情况下(s7036中是),三维数据编码装置为了增大对象三维点a所属的阶层i或者下一个阶层i 1的量化参数而将delta_layer设定为值β(s7037)。例如,三维数据编码装置如果对象三维点a是阶层i的开头,则将阶层i的delta_layer[i]设定为值β,如果对象三维点a是阶层i的开头以外,则将阶层i 1的delta_layer[i 1]设定为值β。
[0731]
另外,三维数据编码装置将阶层i或者阶层i 1的delta_layer=β附加到头部(s7038)。此外,值β可以是固定值,也可以是可变值。例如,三维数据编码装置也可以根据累积编码量与目标编码量
×
th2的差分的大小来决定β的值。例如,三维数据编码装置设定累积编码量与目标编码量
×
th2之间的差分越大β的值越大。因此,三维数据编码装置能够控制量化参数,使得累积编码量不超过目标编码量。
[0732]
此外,在累积编码量超过目标编码量的情况下,或者在累积编码量可能超过目标编码量的情况下,三维数据编码装置可以设定adelta_qp或delta_layer的值,使得量化参数成为由标准等支持的值的最大值。因此,三维数据编码装置通过将三维点a以后或阶层i以后的量化系数设为0来抑制产生编码量的增加,并且能够进行控制使得累积编码量不超过目标编码量。
[0733]
此外,如果累积编码量小于目标编码量
×
th3,则三维数据编码装置可以降低量化参数以增加产生编码量。例如,三维数据编码装置可以通过根据累积编码量与目标编码量的差分对delta_layer或adelta_qp的值设定负值来降低量化参数。由此,三维数据编码装置能够生成接近目标编码量的比特流。
[0734]
图84是本实施方式的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(s7005)。例如,三维数据解码装置使用八叉树表现进行解码。
[0735]
接着,三维数据解码装置从比特流中解码属性信息(s7006)。例如,在对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解
码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加于比特流的属性信息的编码结果进行解码都可以。
[0736]
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据的开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
[0737]
图85是属性信息解码处理(s7006)的流程图。首先,三维数据解码装置设定lod(s7041)。即,三维数据解码装置将具有被解码的位置信息的多个三维点分别分配给多个lod中的某一个。例如,该分配方法是与在三维数据编码装置中使用的分配方法相同的方法。
[0738]
接着,三维数据解码装置从比特流解码δqp(s7042)。具体而言,三维数据编码装置从比特流的头部,对delta_layer、adelta_qp以及numpointadelta进行解码。
[0739]
接着,三维数据解码装置开始lod单位的循环(s7043)。即,三维数据解码装置对每个lod反复进行步骤s7044~s7050的处理。
[0740]
接着,三维数据解码装置开始三维点单位的循环(s7044)。即,三维数据解码装置对每个三维点反复进行步骤s7045~s7049的处理。
[0741]
首先,三维数据解码装置搜索在处理对象的对象三维点的预测值的计算中使用的、作为存在于对象三维点的周围的三维点的多个周围点(s7045)。接着,三维数据解码装置计算多个周围点的属性信息的值的加权平均,将得到的值设定为预测值p(s7046)。另外,这些处理与三维数据编码装置中的处理相同。
[0742]
接着,三维数据解码装置从比特流中对量化值进行算术解码(s7047)。另外,三维数据解码装置通过对解码出的量化值进行逆量化来计算逆量化值(s7048)。在该逆量化中,使用利用在步骤s7042中得到的δqp计算出的量化参数。
[0743]
接着,三维数据解码装置通过对逆量化值加上预测值来生成解码值(s7049)。接着,三维数据解码装置结束三维点单位的循环(s7050)。此外,三维数据解码装置结束lod单位的循环(s7051)。
[0744]
图86是属性信息编码部7023的框图。属性信息编码部7023具备lod设定部7061、搜索部7062、预测部7063、减法部7064、量化部7065、逆量化部7066、重构部7067、存储器7068以及δqp计算部7070。
[0745]
lod设定部7061使用三维点的位置信息生成lod。搜索部7062使用lod生成结果和三维点间的距离信息来搜索各三维点的邻近三维点。预测部7063生成对象三维点的属性信息的预测值。此外,预测部7063将预测值分配给0~m-1的多个预测模式,并且从多个预测模式中选择要使用的预测模式。
[0746]
减法部7064通过从属性信息减去预测值来生成预测残差。量化部7065对属性信息的预测残差进行量化。逆量化部7066对量化后的预测残差进行逆量化。重构部7067通过将预测值与逆量化后的预测残差相加来生成解码值。存储器7068存储已解码的各三维点的属性信息的值(解码值)。存储器7068中存储的已解码的三维点的属性信息被利用于由预测部
7063进行的未被编码的三维点的预测。
[0747]
算术编码部7069根据量化后的预测残差计算zerocnt,对zerocnt进行算术编码。另外,算术编码部7069对量化后的非零的预测残差进行算术编码。算术编码部7069也可以在算术编码前对预测残差进行二值化。此外,算术编码部7069也可以生成并编码各种头部信息。此外,算术编码部7069也可以对表示预测部7063在编码中使用的预测模式的预测模式信息(predmode)进行算术编码并附加到比特流。
[0748]
δqp计算部7070根据由算术编码部7069得到的产生编码量和预先设定的目标编码量来决定delta_layer、adelta_qp以及numpointadelta的值。使用基于被决定的delta_layer、adelta_qp以及numpointadelta的量化参数来进行由量化部7065进行的量化。另外,算术编码部7069对delta_layer、adelta_qp以及numpointadelta进行算术编码并附加到比特流。
[0749]
图87是属性信息解码部7043的框图。属性信息解码部7043具备算术解码部7071、lod设定部7072、搜索部7073、预测部7074、逆量化部7075、重构部7076以及存储器7077。
[0750]
算术解码部7071对比特流中包含的zerocnt和预测残差进行算术解码。另外,算术解码部7071对各种头部信息进行解码。另外,算术解码部7071从比特流中对预测模式信息(predmode)进行算术解码,将得到的预测模式信息输出到预测部7074。另外,算术解码部7071从比特流的头部对delta_layer、adelta_qp以及numpointadelta进行解码。
[0751]
lod设定部7072使用被解码的三维点的位置信息生成lod。搜索部7073使用lod生成结果和三维点间的距离信息来搜索各三维点的邻近三维点。
[0752]
预测部7074生成解码对象的对象三维点的属性信息的预测值。逆量化部7075对被算术解码出的预测残差进行逆量化。具体而言,逆量化部7075使用基于解码后的delta_layer、adelta_qp以及numpointadelta的量化参数进行逆量化。
[0753]
重构部7076通过将预测值与逆量化后的预测残差相加来生成解码值。存储器7077存储已解码的各三维点的属性信息的值(解码值)。存储器7077中存储的已解码的三维点的属性信息被利用于由预测部7074进行的未被解码的三维点的预测。
[0754]
以下,对代替lod阶层而使用raht的阶层的情况的例子进行说明。图88是表示在使用了raht的属性信息的编码时,以更细小的单位控制量化参数的例子的图。例如,三维数据编码装置在使用raht对属性信息进行编码的情况下,除了raht的每个阶层的delta_layer之外,还定义adelta_qp和表示加上adelta_qp的三维点的位置信息的numpointadelta。三维数据编码装置一边基于delta_layer、adelta_qp以及numpointadelta变更量化参数的值一边进行编码。
[0755]
此外,三维数据编码装置也可以将用于编码的adelta以及numpointadelta附加到比特流的头部等。由此,三维数据编码装置例如能够一边根据目标编码量和产生编码量来变更每个三维点的量化参数,一边对三维点的属性信息进行编码。由此,三维数据编码装置最终能够生成与目标编码量接近的编码量的比特流。此外,三维数据解码装置通过对头部所包含的qpbase、delta_layer以及adelta进行解码来生成三维数据编码装置所使用的量化参数,能够适当地对比特流进行解码。
[0756]
例如第n0个属性信息的量化值qp4通过qp4=qp3 adelta_qp[0]来计算。此外,如qp4=qpbase adelta_qp[0]那样,各adelta_qp[i]也可以是相对于qpbase的差分值。
[0757]
图89是表示使用图88所示的例子的情况的属性信息头部(attribute header information)的句法例的图。另外,图89所示的属性信息头部与图79所示的属性信息头部基本相同,不同之处在于lod阶层被变更为raht的阶层。
[0758]
numadelta表示比特流中包含的adelta_qp的数量。numpointadelta[i]表示应用adelta_qp[i]的三维点a的识别编号。例如,numpointadelta[i]表示按照编码/解码顺序从开头的三维点到三维点a的三维点的个数。另外,numpointadelta[i]也可以表示从三维点a所属的阶层内的最初的三维点到三维点a的三维点的个数。
[0759]
或者,numpointadelta[i]也可以表示由numpointadelta[i-1]表示的三维点的识别编号与三维点a的识别编号的差分值。由此,能够将numpointadelta[i]的值设定得小,因此能够削减编码量。
[0760]
图90是表示使用图88所示的例子的情况的属性信息头部(attribute header information)的另一句法例的图。另外,图90所示的属性信息头部与图80所示的属性信息头部基本相同,不同之处在于lod阶层被变更为raht的阶层。
[0761]
additional_delta_qp_present_flag是表示adelta_qp是否包含在比特流中的标志。例如,值1表示adelta_qp包含在比特流中,值0表示adelta_qp不包含在比特流中。在additional_delta_qp_present_flag为0的情况下,三维数据解码装置例如以adelta_qp为0进行以后的解码处理。
[0762]
numadelta_minus1表示比特流中包含的adelta_qp的数量-1。这样,通过将从adelta_qp的数量减去1而得到的值附加到头部,能够削减头部的编码量。例如,三维数据解码装置计算numadelta=numadelta_minus1 1。adelta_qp[i]表示第i个adelta_qp的值。另外,adelta_qp[i]不仅可以设定为正值,也可以设定为负值。
[0763]
图91是使用raht的情况的三维数据编码处理的流程图。首先,三维数据编码装置对位置信息(geometry)进行编码(s7061)。例如,三维数据编码装置使用八叉树表现进行编码。
[0764]
接着,三维数据编码装置对属性信息进行变换(s7062)。例如,三维数据编码装置在位置信息的编码后,在由于量化等而三维点的位置发生了变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息。另外,三维数据编码装置也可以根据位置的变化量对属性信息的值进行插值而进行再分配。例如,三维数据编码装置检测n个与变化后的三维位置接近的变化前的三维点,基于从变化后的三维位置到各n个三维点的距离对n个三维点的属性信息的值进行加权平均,将得到的值设定为变化后的三维点的属性信息的值。此外,三维数据编码装置在由于量化等而2个以上的三维点变化到同一三维位置的情况下,作为该变化后的属性信息的值,也可以分配变化前的2个以上的三维点中的属性信息的平均值。
[0765]
接着,三维数据编码装置对属性信息进行编码(s7063)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果可以是任何顺序。
[0766]
另外,三维数据编码装置也可以将表示比特流内的各属性信息的编码数据的开始
部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
[0767]
图92是属性信息编码处理(s7063)的流程图。首先,三维数据编码装置通过haar变换根据属性信息生成编码系数(s7071)。
[0768]
接着,三维数据编码装置对编码系数应用量化(s7072)。接着,三维数据编码装置通过对量化后的编码系数进行编码来生成编码属性信息(比特流)(s7073)。
[0769]
接着,三维数据解码装置决定δqp(s7074)。另外,δqp的决定方法与使用lod阶层的情况的步骤s7019相同。另外,所决定的δqp用于决定在后续的编码系数的量化中使用的量化参数。
[0770]
此外,三维数据编码装置对量化后的编码系数应用逆量化(s7075)。接着,三维数据解码装置通过对逆量化后的编码系数应用逆haar变换来对属性信息进行解码(s7076)。例如,解码后的属性信息在后续的编码中被参照。
[0771]
图93是使用raht的情况下的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(s7065)。例如,三维数据解码装置使用八叉树表现进行解码。
[0772]
接着,三维数据解码装置从比特流对属性信息进行解码(s7066)。例如,在对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加于比特流的属性信息的编码结果进行解码都可以。
[0773]
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据的开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
[0774]
图94是属性信息解码处理(s7066)的流程图。首先,三维数据解码装置从比特流对编码系数进行解码(s7081)。接着,三维数据解码装置从比特流对δqp进行解码(s7082)。具体而言,三维数据编码装置从比特流的头部对delta_layer、adelta_qp以及numpointadelta进行解码。
[0775]
接着,三维数据解码装置对编码系数应用逆量化(s7083)。在该逆量化中,使用利用在步骤s7082中得到的δqp计算出的量化参数。接着,三维数据解码装置通过对逆量化后的编码系数应用逆haar变换来对属性信息进行解码(s7084)。
[0776]
图95是使用raht的情况下的属性信息编码部7023的框图。属性信息编码部7023具备排序部7081、haar变换部7082、量化部7083、逆量化部7084、逆haar变换部7085、存储器
7086、算术编码部7087以及δqp计算部7088。
[0777]
排序部7081使用三维点的位置信息来生成莫顿编码,按照莫顿编码顺序对多个三维点进行排序。haar变换部7082通过对属性信息应用haar变换来生成编码系数。量化部7083对属性信息的编码系数进行量化。
[0778]
逆量化部7084对量化后的编码系数进行逆量化。逆haar变换部7085对编码系数应用逆haar变换。存储器7086存储已解码的多个三维点的属性信息的值。例如,存储器7086中存储的已解码的三维点的属性信息也可以利用于未被编码的三维点的预测等。
[0779]
算术编码部7087根据量化后的编码系数计算zerocnt,对zerocnt进行算术编码。另外,算术编码部7087对量化后的非零的编码系数进行算术编码。算术编码部7087也可以在算术编码前对编码系数进行二值化。此外,算术编码部7087也可以生成并编码各种头部信息。
[0780]
δqp计算部7088根据由算术编码部7087得到的产生编码量和预先设定的目标编码量来决定delta_layer、adelta_qp以及numpointadelta的值。使用基于所决定的delta_layer、adelta_qp以及numpointadelta的量化参数来进行由量化部7083进行的量化。另外,算术编码部7087对delta_layer、adelta_qp以及numpointadelta进行算术编码并附加到比特流。
[0781]
图96是使用raht的情况下的属性信息解码部7043的框图。属性信息解码部7043具备算术解码部7091、逆量化部7092、逆haar变换部7093以及存储器7094。
[0782]
算术解码部7091对比特流中包含的zerocnt和编码系数进行算术解码。另外,算术解码部7091也可以对各种头部信息进行解码。另外,算术解码部7091从比特流中的头部对delta_layer、adelta_qp以及numpointadelta进行解码。
[0783]
逆量化部7092对算术解码后的编码系数进行逆量化。具体而言,逆量化部7092使用基于解码后的delta_layer、adelta_qp以及numpointadelta的量化参数进行逆量化。
[0784]
逆haar变换部7093对逆量化后的编码系数应用逆haar变换。存储器7094存储已解码的多个三维点的属性信息的值。例如,存储器7094中存储的已解码的三维点的属性信息也可以利用于未被解码的三维点的预测。
[0785]
以下,对本实施方式的变形例进行说明。三维数据编码装置也可以将三维点的属性信息的量化参数作为新的属性信息按每个三维点进行编码。
[0786]
以下,说明该情况下的三维数据编码装置的处理的例子。三维数据编码装置按照图82所示的流程,一边计算量化参数一边对属性信息a(例如颜色)进行编码。此时,三维数据编码装置对所使用的量化参数进行编码,作为各三维点的新的属性值。在该情况下,三维数据编码装置也可以一边按每个三维点变更量化参数的值一边进行编码。例如,在累积编码量超过目标编码量
×
th1的值的情况下,三维数据编码装置可以将量化参数的值设定得大,以抑制产生编码量。另外,三维数据编码装置在累积编码量小于目标编码量
×
th3的值的情况下,为了增加产生编码量,也可以将量化参数的值设定得小。
[0787]
三维数据编码装置在对属性信息a进行编码后,将分配给各三维点的量化参数作为新的属性信息a’进行编码。此时,三维数据编码装置也可以为了防止量化参数的信息量的缺失而应用无损(lossless)编码。此外,三维数据编码装置也可以在头部等中附加表示编码后的属性信息是量化参数的信息。由此,三维数据解码装置能够适当地对三维数据编
码装置所使用的量化参数进行解码。
[0788]
此外,三维数据编码装置在使用对象三维点的周围的n个三维点进行属性信息的预测编码的情况下,也可以设为n=1来对量化参数进行编码。由此,能够削减计算量。
[0789]
接着,说明三维数据解码装置的处理的例子。首先,三维数据解码装置对比特流内的属性信息中的属性信息a’进行解码,获得在属性信息a的解码中使用的量化参数。接着,三维数据解码装置使用解码后的量化参数对属性信息a进行解码。
[0790]
另外,三维数据编码装置也可以取代上述量化参数,而将各三维点的量化参数的变化量即δqp作为新的属性信息a’进行编码。另外,三维数据编码装置在δqp取正以及负的值的情况下,也可以如下述那样将带符号δqp变换为正的值之后进行编码。在带符号δqp(deltaqp_s)小于0的情况下,无符号δqp(deltaqp_u)被设定为-1-(2
×
deltaqp_s)。在带符号δqp(deltaqp_s)为0以上的情况下,无符号δqp(deltaqp_u)被设定为2
×
deltaqp_s。
[0791]
另外,三维数据编码装置也可以按每个属性信息将用于编码的量化参数作为属性信息进行编码。例如,三维数据编码装置也可以将颜色的属性信息a的量化参数编码为属性信息a’,将反射率的属性信息b的量化参数编码为属性信息b’。由此,能够按每个属性信息切换量化参数。例如,通过将优先级高的属性信息的量化参数设定得小,并且将优先级低的属性信息的量化参数设定得大,可以在保护优先级高的属性信息的同时削减整体的编码量。
[0792]
另外,三维数据编码装置在对三维点的属性信息的预测残差进行量化并编码时,在根据delta_layer_present_flag以及additional_delta_qp_present_flag等将delta_layer以及adelta_qp设定到头部的情况下,也可以不应用表示三维点的重要度的qw(quantization weight)的值。例如,在应用qw的情况下,qw越大(重要度越高),则量化参数被设定得越小。由此,能够切换是根据通过预测等内部处理决定的重要度来进行量化,还是根据用户在头部中设定的值来进行量化,因此能够根据用户的用途分开使用两者。
[0793]
另外,三维数据编码装置也可以将表示是否应用qw(quantization weight)的值的标志附加到头部。由此,能够将delta_layer和adelta_qp的值与qw组合来切换是否进行量化,因此能够根据用户的用途分开使用两者。
[0794]
另外,三维数据编码装置在使用raht等对三维点的属性信息的变换系数进行量化并编码时,在通过delta_layer_present_flag以及additional_delta_qp_present_flag等将delta_layer以及adelta_qp设定为头部的情况下,也可以不应用qw(quantization weight)的值。由此,能够切换是根据通过预测等内部处理决定的重要度来进行量化,还是根据用户在头部中设定的值来进行量化,因此能够根据用户的用途分开使用两者。另外,三维数据编码装置也可以将表示是否应用qw(quantization weight)的值的标志附加到头部。由此,能够将delta_layer和adelta_qp的值与qw组合来切换是否进行量化,因此能够根据用户的用途分开使用两者。
[0795]
图97是表示该情况下的属性信息头部(attribute header information)的句法例的图。相对于图80所示的属性信息头部,图97所示的属性信息头部还包括default_delta_layer_present_flag、default_delta_layer_index、default_additional_delta_qp_present_flag和default_additional_delta_qp_index。
[0796]
default_delta_layer_present_flag是表示是否使用在标准等中定义的初始设定的delta_layer的值的标志。例如,值1表示使用初始设定的delta_layer。值0表示不使用初始设定的delta_layer。在值为0的情况下,三维数据解码装置例如以delta_layer为0进行以后的解码处理。
[0797]
default_delta_layer_index是用于识别在标准等中定义的1个以上的初始设定的delta_layer中使用的delta_layer的信息。例如,default_delta_layer_index如下定义。
[0798]
在default_delta_layer_index=0的情况下,将所有的阶层的delta_layer设定为1。即,每当阶层增加时,量化参数的值增加1。在default_delta_layer_index=1的情况下,将所有的阶层的delta_layer设定为2。即,每当阶层增加时,量化参数的值增加2。
[0799]
通过以这种方式使用标准等来定义初始设定的delta_layer,能够不将delta_layer的值附加到头部地变更量化参数,因此能够削减头部的编码量。
[0800]
default_additional_delta_qp_present_flag是表示是否使用在标准等中定义的初始设定的adelta_qo的值的标志。例如,值1表示使用初始设定的adelta_qp。值0表示不使用初始设定的adelta_qp。在值0的情况下,三维数据解码装置例如以adelta_qp为0进行以后的解码处理。
[0801]
default_additional_delta_qp_index是用于识别在标准等中定义的1个以上的初始设定的adelta_qp中使用的adelta_qp的信息。例如,default_additional_delta_qp_index如下定义。
[0802]
在default_additional_delta_qp_index=0的情况下,按每n个三维点数将adelta_qp设定为1。即,每当对n个三维点进行编码或解码时,量化参数的值增加1。另外,三维数据编码装置也可以将表示n个的信息另外附加到头部。
[0803]
在default_additional_delta_qp_index=1的情况下,按每n个三维点数将adelta_qp设定为2。即,每当对n个三维点进行编码或解码时,量化参数的值增加2。另外,三维数据编码装置也可以将表示n个的信息另外附加到头部。
[0804]
这样,通过用标准等定义初始设定的adelta_qp,由于不将adelta_qp的值附加到头部就能变更量化参数,能削减头部的编码量。
[0805]
(实施方式10)
[0806]
在实施方式9中说明的、按每个阶层分配量化参数的处理中,也可以进行实施方式10那样的处理。
[0807]
在本实施方式中,将说明在量化中应用的qp值被分配给每个阶层的例子。图98是表示比特流的编码的比特率与时间的关系的曲线图。
[0808]
如图98所示,希望三维数据编码装置将编码的比特率控制在阈值th1和阈值th2之间的预先许可的规定的范围内。阈值th1是规定范围的最大阈值(上限值)。具体地,阈值th1是由于缓冲区或传输带宽受限而不能超过的硬极限。阈值th2是规定范围的最小阈值(下限值)。具体地,阈值th2是为了维持比特率和画质的一致性而设定的软限制。
[0809]
为了将编码的比特率控制在阈值th1和阈值th2之间的范围内,有时需要在编码中调整qp值。通过使用qp值的调整工具,可以容易地实现调整qp值以使比特率收敛在规定的范围内的处理。在调整qp值的处理中,通过根据具有与qp值建立了关联的属性值的三维点
的数量以及要编码的属性值的复杂度来调整qp值,来增大或减小比特率。
[0810]
比特率的变动发生在编码工具试图将qp值调整为正确值的设定的初始阶段,并且如果编码流稳定,则比特率的变动最终变小,并且比特率稳定。
[0811]
图99是表示三维点群的阶层结构和属于各阶层的三维点的数量的图。
[0812]
如图99的(a)所示,三维点群中包含的多个三维点被分类到阶层1、阶层2、阶层3和阶层4这4个阶层。
[0813]
根据预测变换、提升(lifting)变换或raht的性质,每lod层或每深度层的三维点的数量如图99所示有时显著不同。例如,在最下层的阶层4中包含三维点群的75%的数量的三维点,在其他阶层1~3中包含剩余的25%的三维点。因此,与在阶层1~3中的任一阶层中变更qp值相比,在阶层4中变更qp值会对比特流的尺寸或比特率造成更大的影响。
[0814]
该方法不仅可应用于预测变换、提升变换和raht,而且可应用于使用多个阶层对三维点群进行编码的其他方法。即,只要所应用的原始qp值(切片或层)可应用于三维点群数据的组,则该方法不限于应用于上述例示的每阶层的三维点。此外,在1个阶层被进一步分割为多个子阶层(sublayer),并且该1个阶层中包含的多个三维点被分配给(分类)多个分割的子阶层时,δqp(deltaqp)可以被分配给多个子阶层中的每一个。在此,对1个子阶层分配1个以上的三维点即可。
[0815]
将1个阶层进一步分割为多个子阶层的方法不一定应用于最下层的阶层。也可以应用于多个阶层中的任何阶层。
[0816]
为了在编码中有效地控制比特流的比特率,除了按每个阶层调整qp值来进行量化之外,还需要更精细地调整qp值的调整工具。因此,在使用numpointadelta的方法中,用户能够将特定切片的特定阶层的属性值的量设定为需要的值。
[0817]
图100是表示用所指定的三维点数将1个阶层的三维点群分类到子阶层的第1例的图。在第1例中,指定多个子阶层中的每一个中包含的三维点的数量。
[0818]
为了分割为子阶层,考虑根据各种情况和编码方法以多种方法分割三维点群。例如,考虑通过直接指定各子阶层的三维点群的量,根据所指定的三维点群的量将阶层分割为多个子阶层。
[0819]
例如,在图100中,在阶层4中包含编码对象的100个三维点,阶层4被分割为分别包含25个三维点的2个子阶层和包含50个三维点的子阶层。例如,分割阶层4的子阶层的数量和各子阶层中包含的三维点的数量也可以通过用户的输入来指定。
[0820]
根据图80中所示的头部的句法例,numpointadelta[i]用于保存子阶层的三维点信息。在该例中,排列的尺寸被设定为3,或者numpointadelta[i]被设定为表示阶层4的3个子阶层的从0到2的值。i是表示包含子阶层的阶层的值。numpointadelta[i]可以表示各子阶层的尺寸,也可以表示各子阶层的开始点。子阶层的尺寸是指子阶层中包含的三维点的数量。子阶层的开始点是指在对该子阶层所属的阶层中包含的三维点群的各三维点分配顺序的情况下,表示各子阶层中包含的多个三维点的顺序中最小的顺序(前头的三维点的顺序)。
[0821]
在numpointadelta[i]表示尺寸的情况下,图100的阶层4中包含的3个子阶层例如可表示为numpointadelta[3]={25,25,50}。在这种情况下,编码尺寸在大多数情况下具有较小的覆盖范围,因此可以生成略小的参数值。另一方面,三维数据编码装置及三维数据解
码装置双方需要追踪被处理的子阶层的尺寸。
[0822]
在numpointadelta[i]表示开始点的情况下,图100的阶层4中包含的3个子阶层例如可表示为numpointadelta[3]={0,25,50}。在这种情况下,编码的位置始终需要最后要素的整个范围。另一方面,由于已经跟踪了三维点群的计数器,所以三维数据编码装置和三维数据解码装置可以更容易地进行处理。
[0823]
图101是表示将1个阶层的三维点群按一定的三维点数分类到子阶层的第2例的图。图102表示第2例中的属性信息的头部的句法例。图103表示第2例中的属性信息的句法的另一例。在第2例中,在多个子阶层中指定共同的三维点的数量。即,在第2例中,作为被分类到子阶层的三维点的数量,指定1个共同的数量。
[0824]
在第2例中,也可以是,如图102所示,对const_numpoint进行编码,并且按每个子阶层对adelta_qp进行编码。此外,如图103所示,const_numpoint可针对各子阶层而生成,且可基于各阶层而变更。
[0825]
设置additional_delta_qp_present_flag以用于表示const_numpoint,且adelta_qp可利用于每个子阶层。此外,在需要始终对const_numpoint进行编码的情况下,也可以省略additional_delta_qp_present_flag。同样地,各子阶层的totalpoint可以在编码或解码处理中内部计算,也可以被编码以简化并保存在头部中。
[0826]
const_numpoint表示各子阶层的三维点的数量(常数)。
[0827]
num_sublayer表示可基于对应的子阶层中的三维点的总数和const_numpoint分割的子阶层的数量。
[0828]
这样,通过将各子阶层中包含的三维点的数量设为一定数量,能够削减编码或解码中的开销。
[0829]
图104是表示将1个阶层的三维点群分类到与预定的数量不同的数量的子阶层的第3例的图。图105表示第3例中的属性信息的头部的句法例。图106表示第3例中的属性信息的头部的句法的另一例。在第3例中,多个三维点被分类到与预定数量的子阶层不同的数量例如多于预定数量的子阶层中。
[0830]
该例是生成了多于预定数量的子阶层,因此产生了未分配deltaqp值的子阶层的例子。在这种情况下,例如,0等默认值或规定值可以被设定为未被分配deltaqp值的子阶层的deltaqp值。此外,在未分配deltaqp值的子阶层中,分配到已分配deltaqp值的子阶层中的1个子阶层(例如,最后或最下层的子阶层)的deltaqp值可被分配为未分配deltaqp值的子阶层的deltaqp值。由此,由于编码所需的adeltaqp值较小即可,所以可以削减开销。
[0831]
另外,最后的子阶层(阶层)是三维编码装置通过规定的方法决定的阶层0到阶层n-1的n阶层中的第n-1个阶层。阶层数被附加到头部。规定的方法例如是如下的方法:在三维编码装置在对各阶层进行速率控制的同时进行编码的过程中,在判定为设为目标比特率能够被实现并且判断为不需要变更以后的子阶层的qp值的情况下,不发送以后的阶层用的deltaqp值。由此,能够削减头部的编码量。
[0832]
存在识别要编码或解码的adeltaqp的数量的句法的多个例子。例如,图105中表示的句法具有作为子阶层的deltaqp的范围的固定值的特定stop_code。三维数据解码装置如果获得stop_code,则结束循环。在三维数据编码装置中,deltaqp的范围需要编码,或者可以由标准定义,以使三维数据编码装置及三维数据解码装置双方都被识别。另外,例如,图
106中所示的句法是表示直接编码num_sublayer来表示能够解码的adeltaqp值的数量的方法。
[0833]
此外,通过生成比预定数量少的子阶层,而在参照子阶层的数量时存在额外的adeltaqp值的情况下,可以不使用额外的adeltaqp值而丢弃该值。
[0834]
图107是表示将1个阶层的三维点群按照由比例(百分率)指定的三维点数分类到子阶层的第4例的图。图108表示第4例的属性信息的头部的句法例。在第4例中,用于分类到子阶层的比例被指定为分类到各子阶层的三维点数。
[0835]
在该例中,子阶层的三维点群的数量由相对于包含子阶层的阶层中包含的三维点的数量的比例来指定。在图107中,示出了4个子阶层分别包含包含子阶层的阶层中包含的三维点的总数的25%、该总数的30%、该总数的30%、以及该总数的15%的数量的三维点。这样,在阶层被分割为多个子阶层的情况下,被分割的多个子阶层的每一个所包含的三维点的数量可以用该子阶层所包含的三维点的数量相对于该阶层所包含的三维点的总数的比例来表示。在此情况下,三维数据编码装置及三维数据解码装置这双方追踪被编码的三维点的数量而进行处理。比例可以根据设置(日文:実装)方法,对全部三维点群计算,也可以作为特定阶层的比例计算。
[0836]
在图108中,num_sublayer表示通过除以三维点群的比例而获得的子阶层的数量。此外,percentile表示在对应的子阶层中包含的三维点群的总数相对于在该子阶层所属的阶层中包含的三维点群的总数的比例。
[0837]
例如,在如剩余未被分类到子阶层的多个三维点的情况等剩余不完整的比例的情况下,根据在三维数据编码装置和三维数据解码装置双方中一致的实现,剩余的多个三维点可以被分类到新的子阶层或者可以被分类到前一子阶层。另一方面,在由于发生错误而比例的值超过作为容许值的100%的情况下,对子阶层的分割在最后的三维点结束。
[0838]
另外,由于比例始终固定为100%,所以也可以将为了将1个阶层中包含的多个三维点分类到多个子阶层而指定的多个比例中的最后的比例除外。在这种情况下,比例的要素数比adelta_qp的要素数少1。
[0839]
图109是表示根据莫顿索引将1个阶层的三维点群分类到子阶层的第5例的图。图110表示第5例中的属性信息的头部的句法例。
[0840]
在第5例中,在多个子阶层中,指定三维点群的莫顿码中的莫顿索引。即,在第5例中,使用莫顿码将1个阶层中包含的三维点群分类到子阶层。例如,具有共同的莫顿索引的多个三维点可以被分类到相同的子阶层。由此,三维点群由空间上的距离近的例如比规定距离近的三维点彼此组成,因此,例如,各子阶层中包含的三维点群包含在一块三维空间中,并且,多个子阶层中的与1个子阶层对应的三维空间不与其他子阶层对应的三维空间重复。这样,由于对1个子阶层分配空间距离近的三维点群,所以该三维点群具有类似的特性或属性的可能性高。因此,由于相同子阶层中包含的三维点使用共同的qp值进行编码,所以能够提高编码效率。
[0841]
在按每个阶层以莫顿序(morton order)配置三维点群的情况下,也可以不进行三维点的排序。三维数据编码装置也可以事先决定将哪些多个三维点分类到相同子阶层,使用上述方法设定分类到各子阶层的三维点数。
[0842]
num_morton_sublayer表示通过使用莫顿序的分组分割的子阶层的数量。index表
示莫顿索引。例如,在选择图109中的莫顿索引a的情况下,index在子阶层中设定莫顿索引a的节点的子节点。此外,可以使用莫顿码表示对应的子阶层的开始点或结束点。莫顿索引不限于从最下层的阶层的三维点获得,也可以从上位层的阶层的三维点获得。也可以根据三维数据编码装置和三维数据解码装置双方的设定,决定用于将三维点分类到各子阶层的开始点或结束点。
[0843]
图111和图112是表示将1个阶层的三维点群按照莫顿索引分类到子阶层的第6例的图。第6例是三维点群在raht的阶层结构中被分类的情况的例子。
[0844]
在第6例中,使用三维点的莫顿索引将子阶层a~c识别为要分类的三维点群的组。因此,与第5例同样,具有共同的莫顿索引的三维点被分类到相同的子阶层中。
[0845]
根据三维数据编码装置及三维数据解码装置,能够以三维点群的莫顿索引对三维点群进行分类。可以将子阶层的设定应用于任意的阶层。位于指定的莫顿索引之上的三维点可以被分类到下一子阶层,也可以被视为离群值。
[0846]
图112示出了根据莫顿索引分类的子阶层中的最后三维点。在图112中,与图14中相同的子阶层以一维的排列表现来示出。
[0847]
基于使用莫顿索引的向子阶层的分类不限于预测变换、提升或raht的深度等中的特定阶层中的分类,也可以应用到分类到多个阶层/深度。在这种情况下,子分层是子组。
[0848]
图113是表示使用残差或delta值将1个阶层的三维点群分类到子阶层的第7例的图。
[0849]
在第7例中,例如,delta值是要与预测变换或提升中的lod阶层的量化权重函数相乘的属性信息(属性值)。同样,在raht中,delta值是与权重相乘的属性信息(属性值)。delta值可以是作为属性信息被编码的值,也可以是依赖于编码处理的预测后的值,而不管是以预测变换、提升、raht或任意其他方法变换。另外,在图113中,delta值用delta表示。
[0850]
delta值可以以略低的qp被编码,使得在值小的情况下,细节被维持并且不被量化。由此,能够抑制分辨率降低。然而,在delta值大的情况下,大的delta值的差不容易被量化,因此可以利用大的qp值。
[0851]
在图113中,圆的半径表示delta值的大小。delta值越大,参照中心的三维点越远。
[0852]
图114是表示以二维的莫顿序排列的情况下的三维点的排列的图。图115表示第7例中的属性信息的头部的句法的例子。
[0853]
如第7例所示,在使用delta值将三维点群分类到多个子阶层的情况下,子阶层的qp值不覆盖整个连续的三维点群。例如,如图114所示,将几个三维点群分类到组a中,将其他分散的三维点群分类到组b中,将除此之外的三维点群的一部分的三维点群分类到组c中。
[0854]
三维点云被分配给组索引值,并且索引值与delta值一起被编码。另外,后面将描述下位级别中的编码。此外,索引值可以被编码为追加的属性信息,也可以被编码为sei消息。
[0855]
在第7例中,由于需要按每个三维点群对追加的索引进行编码,因此可能产生开销,但是跨层的子阶层的deltaqp成为可能。另外,三维数据编码装置也可以在决定了索引之后,对特定阶层的三维点进行再配置,接着,以升序或降序对索引以及对应的qp的索引进行编码。
[0856]
num_group表示基于delta值分割的组或子阶层的数量。
[0857]
图116表示残差的比特流的句法的例子。图117表示用于计算编码成本(encoding cost)的式子。图118是表示bpp(bits per point)与时间的关系的曲线图。
[0858]
如图116所示,在对残差的比特流进行编码的期间,索引信息针对各点群进行编码。另外,index表示三维点所属的子阶层或子组的索引编号。此外,values表示预测残差(residual value)。
[0859]
另外,在各三维点的适当的索引的决定中,可以使用各属性信息的编码成本(参照图117),也可以使用之前编码的三维点的编码成本。该上下文中的编码成本被称为对各三维点群的属性信息进行编码所需的比特数。编码成本是用于通过式子近似地或通过先前编码的三维点准确地用于决定的客观值。
[0860]
也可以是,如图118所示,三维数据编码装置使用索引,基于bpp率(bits per point frequency)或者其他术语中基于每秒编码/解码的三维点数的成本来对多个三维点进行分类(分组),并基于该编码成本应用不同的子阶层qp来控制bpp。该方法适合于控制pcc编码的比特率。
[0861]
该方法在基于帧的三维点群的编码中也一起动作,因此比特率或缓冲器状态在向子阶层的分类中起作用。在缓冲接近阈值的情况下,优选除了三维点的编码成本之外,还利用高deltaqp值来进行分类(分组)。
[0862]
在第7例中,与上述所有例子同样,需要通过对应的deltaqp值来定义子阶层的数量(组数)。例如,在图115中示出的句法中,可在属性信息的头部或sps(序列参数集)中定义子阶层的数量。
[0863]
图119是表示按每个子阶层设定了应用于属性信息的编码的qp值的图。图119的(a)示出了将按每个子阶层设定qp值的方法应用于raht阶层结构的情况,图119的(b)示出了将该方法应用于lod阶层结构的情况。
[0864]
第7例中说明的使用索引的方法可以与pcc的速率失真rdoq(rate-distortion optimized quantization,速率失真优化量化)法组合使用,并且基于失真和比特成本的最佳组合。
[0865]
rdoq可以使用各种子阶层中的deltaqp的设定,递归地实现在各三维点群的属性信息中。设定于各子阶层的deltaqp可首先(预)设定在属性信息的头部或sps中,以缩短处理时间。在设定为sps的情况下,全部是共同的。通过使用残差的比特流的句法中的特定子阶层的索引,通过仅递归地执行这些deltaqp的组来有效地对rdoq进行编码。
[0866]
图120是表示使用莫顿码将三维点群分类到子阶层的第8例的图。图121表示第8例中的属性信息的头部的句法的例子。
[0867]
在本实施方式中,在第5例和第6例中,说明了使用三维点的莫顿码将三维点群分组为多个子阶层(组),能够对各子阶层(各组)设定adelta_qp的方法,但并不一定限于此。例如,也可以使用三维点的位置信息(x,y,z),将三维点群分组,对各组设定adelta_qp。
[0868]
具体地,针对组a定义中心坐标ca、半径ra和adelta_qp_a,并且针对组b定义中心坐标cb、半径rb和adelta_qp_b。同样地,针对存在其他组的情况,也针对各组定义中心坐标、半径和adelta_qp。然后,将在各组中定义的中心坐标、半径、adelta_qp和总组数等附加到属性信息的头部。
[0869]
并且,三维数据编码装置可以在处理对象的三维点的位置坐标包含在组a(中心坐标ca且半径ra的球体)中的情况下应用adelta_qp_a,在包含在组b(中心cb且半径rb的球体)中的情况下应用adelta_qp_b。另外,三维数据编码装置可以在处理对象的三维点包含在组a和组b这两个球体中的情况下,计算处理对象的三维点到各组的中心坐标ca和cb的距离,并应用距离近的adelta_qp。
[0870]
由此,在三维空间中,对于距离近的三维点,能够应用值近的adelta_qp,所以能够根据区域来控制编码或解码后的三维点的主观画质。
[0871]
另外,例如,在想要提高某对象的主观画质的情况下,三维数据编码装置可以将构成该对象的三维点的中心坐标设置为组101的中心坐标,将该对象的一半大小设为半径,并且将组101的adelta_qp设为负值。因此,可以减小属于组101的(包含在组101的球体内的)三维点的属性编码的量化步长值,结果可以提高某对象的主观画质。
[0872]
另外,在图120中,示出了对三维点群进行分类的三维空间的组101、102。组101包括三维点121,该三维点121被包含在从中心点o1起半径为r1的球体的空间中。组102包括三维点122,该三维点122被包含在从中心点o2起半径为r2的球体的空间中。在属于组101的三维点的编码中,应用对组101设定的adelta_qp_o。在属于组102的三维点的编码中,应用在组102中设定的adelta_qp_p。作为用于规定各组的基准的点的中心点o1以及中心点o2分别使用三轴的坐标值来表示。
[0873]
另外,也可以存在组101和组102双方所包含的三维点123。在对三维点123进行编码中,可以应用组101中设定的adelta_qp_o与组102中设定的adelta_qp_p的相加值或平均值。由此,能够更精细地控制qp值。另外,各三维点也可以属于多个组。在这种情况下,可以将处理对象的三维点所属的所有组的adelta_qp的相加值设为处理对象的三维点的adelta_qp值。由此,可以更灵活地控制三维空间中的某区域的qp值。
[0874]
此外,也可以将组101的adelta_qp_o设定为例如负值,降低qp值。由此,能够抑制属于组101的三维点的属性信息的编码所引起的劣化。
[0875]
另外,相反地,也可以将组o的adelta_qp_o设定为例如正值,提高qp值。由此,能够削减属于组101的三维点的属性信息的编码量。
[0876]
另外,示出了使用球体作为用于定义组的三维空间的例子,但不一定限于此,也可以使用椭圆体或立方体来定义组。在这种情况下,可以将定义各种形状的参数附加到头部或控制信息。
[0877]
另外,在图121中,num_group表示组的总数。center_x、center_y和center_z表示各组的中心坐标。radius表示各组的半径。在使用椭圆体或立方体作为组的情况下,也可以将用于表示它们的参数附加到头部等。例如,在使用立方体或长方体的情况下,也可以在头部等中附加用于表示基准点的坐标、从基准点起的宽度、进深以及高度的参数。另外,在作为用于定义组的三维空间的形状而使用球体、椭圆体等多个形状的情况下,也可以将表示该三维空间是哪种形状的信息附加到头部中。
[0878]
如上所述,本实施方式的三维数据编码装置进行图122所示的处理。三维数据编码装置基于点群数据中包含的多个三维点的多个属性信息计算多个系数值(s8501),通过对所述多个系数值的每一个进行量化来生成多个量化值(s8502),生成包含所述多个量化值的比特流(s8503)。所述多个系数值属于多个阶层中的某一个阶层。所述多个阶层中的预定
数量的阶层的每一个阶层被分配有该阶层用的量化参数。在所述量化(s8502)中,对所述多个系数值的每一个,(i)在该系数值所属的阶层被分配有量化参数的情况下,使用该量化参数来进行量化,(ii)在该系数值所属的阶层没有被分配所述量化参数的情况下,使用被分配给所述预定数量的阶层中的一个阶层的量化参数来进行量化。由此,该三维数据编码方法能够按每个阶层切换量化参数,所以能够适当地进行编码。
[0879]
例如,所述一个阶层可以是所述预定数量的阶层中的最后的阶层。
[0880]
例如,在所述量化(s8502)中,在所述多个阶层的数量小于所述预定数量的情况下,不使用被分配给不与所述多个阶层对应的所述预定数量的阶层的量化参数。
[0881]
例如,所述比特流包含表示基准量化参数的第1信息、和用于根据所述基准量化参数计算所述多个阶层用的多个量化参数的多个第2信息。因此,能够提高编码效率。
[0882]
此外,步骤s8501、s8502、s8503分别与实施方式9的各处理对应。
[0883]
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
[0884]
本公开的一形态的三维数据解码方法进行图123所示的处理。三维数据解码装置通过对比特流所包含的多个量化值的每一个进行逆量化来生成多个系数值(s8511),根据所述多个系数值计算点群数据中包含的多个三维点的多个属性信息(s8512)。所述多个量化值属于多个阶层中的某一个。所述多个阶层中的预定数量的阶层的每一个阶层被分配有该阶层用的量化参数。在所述逆量化(s8511)中,对所述多个量化值的每一个,(i)在该量化值所属的阶层被分配有量化参数的情况下,使用该量化参数进行逆量化,(ii)在该量化值所属的阶层没有被分配有所述量化参数的情况下,使用分配给所述预定数量的阶层中的一个阶层的量化参数进行逆量化。由此,该三维数据解码方法能够按照每个阶层切换量化参数,所以能够适当地进行解码。
[0885]
例如,所述一个阶层是所述预定数量的阶层中的最后的阶层。
[0886]
例如,在所述逆量化中,在所述多个阶层的数量小于所述预定数量的情况下,不使用被分配给不与所述多个阶层对应的所述预定数量的阶层的量化参数。
[0887]
例如,所述比特流包含表示基准量化参数的第1信息、和用于根据所述基准量化参数计算所述多个阶层用的多个量化参数的多个第2信息。因此,可以适当地对提高了编码效率的比特流进行解码。
[0888]
另外,步骤s8511、s8512分别与实施方式9的各处理对应。
[0889]
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述处理。
[0890]
另外,本公开的另一形态的三维数据编码方法也可以针对使用图122说明的步骤s8501、s8502、s8503如下述那样进行处理。另一形态的三维数据编码方法,根据点群数据中包含的多个三维点的多个属性信息来计算多个系数值(s8501),通过对所述多个系数值中的每一个进行量化来生成多个量化值(s8502),生成包含所述多个量化值的比特流(s8503)。通过将所述多个系数值的每一个按照多个三维空间中的包含成为该系数值的计算基础的属性信息的三维点所属的每个三维空间进行分类,由此,所述多个系数值的每一个属于多个组的某一个。在所述量化(s8502)中,对所述多个系数值的每一个使用该系数值所属的组用的量化参数进行量化。由此,该三维数据编码方法能够按每个组切换量化参数,所以能够适当地进行编码。
[0891]
例如,所述比特流对于所述多个组的每一个,包含与该组对应的三维空间的基准
点和表示与该组对应的三维空间的尺寸的空间信息。
[0892]
例如,所述比特流包含表示是否包含所述空间信息和由所述空间信息表示的三维空间的组用的量化参数的标志。
[0893]
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
[0894]
此外,本公开的另一形态的三维数据解码方法也可以针对使用图123说明的步骤s8511、s8512,如下述那样进行处理。通过对比特流中包含的多个量化值中的每一个进行逆量化来生成多个系数值(s8511),根据所述多个系数值计算点群数据中包含的多个三维点的多个属性信息(s8512)。通过将所述多个量化值按照多个三维空间中的包含成为该量化值的计算基础的属性信息的三维点所属的每个三维空间进行分类,由此,所述多个量化值属于多个组中的某一个。所述多个阶层中的预定数量的阶层的每一个阶层被分配有该阶层用的量化参数。在所述逆量化中,对所述多个量化值中的每一个使用该量化值所属的阶层用的量化参数进行逆量化。
[0895]
例如,所述比特流对于所述多个组的每一个,包含与该组对应的三维空间的基准点和表示与该组对应的三维空间的尺寸的空间信息。
[0896]
例如,所述比特流包含表示是否包含所述空间信息和由所述空间信息表示的三维空间的组用的量化参数的标志。
[0897]
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述处理。
[0898]
(实施方式11)
[0899]
用于对根据多个属性信息计算出的多个系数值进行量化的量化参数(qp)可以预先与组建立对应,该组与包含多个属性信息的三维点所属的三维空间(区域)对应。另外,多个三维点也可以包含不属于组的三维点。使用规定的量化参数对不属于组的三维点中包含的属性信息进行量化。规定的量化参数可以是例如设定为初始值的量化参数,或者固定值。这样,各属性信息在包含该属性信息的三维点属于组的情况下,将与该组建立了对应的量化参数用于该量化,在包含该属性信息的三维点不属于组的情况下,将规定的量化参数用于该量化。
[0900]
在该情况下,在通过生成将多个属性信息分别分成高频成分和低频成分而分层的阶层结构来计算多个系数值的情况下,通过使用2个以上的属性信息来计算上位阶层的系数值。包含这些2个以上的属性信息的2个以上的三维点可能属于不同的三维空间,在这种情况下,将相互不同的多个量化参数分配给2个以上的属性信息。因此,考虑使用这些多个量化参数来决定上位的阶层的系数值的量化中使用的量化参数。
[0901]
图124是用于说明三维模型9000的三维点群所属的三维空间的一例的图。
[0902]
构成人物的三维模型9000的三维点群的重要度及画质(品质),与三维点群所保持的详细信息的量或数据量一样,基于从注视的中心点起的位置信息,用不同的方法进行评价。
[0903]
例如,人物的面部区域的重要度高,因此要求更好的品质。因此,通过将长方体形状的三维空间9001中包含的三维点群的编码中使用的量化参数设定为较小值的量化参数,能够提高人物的面部区域的三维模型的品质。三维空间9001例如如图125中的句法所示,由该三维空间9001的原点9002的坐标(x1,y1,z1)和该三维空间9001的长度、宽度及进深来定义。图125表示属性信息的头部的句法的一例。
[0904]
原点9002的坐标在图125中用origin_x[i]、origin_y[i]和origin_z[i]表示。三维空间9001的长度由length[i]表示,宽度由width[i]表示,进深由depth[i]表示。adelta_qp是定义从原始切片的qp起的德尔塔qp值(差分)的值,根据使用场景,可以是负的值以提高画质(品质),可以是正的值以增加压缩率。
[0905]
对应于与量化参数建立了对应的组的三维空间(delta_qp区域)不限于上述的长方体形状的三维空间9001。例如,也可以是球形状的三维空间9003。三维空间9003由该三维空间9003的原点9004的坐标(x2,y2,z2)、和以原点9004为中心的该三维空间9003的球形状的半径r来定义。在图124中,例如,三维空间9003可以被设定为包括人所携带的行李9005的三维模型。
[0906]
对应于组的三维空间(delta_qp区域)只要是定义需要调整量化参数以适应画质或得到更多的比特/点性能的固定的关心区域,可以以任何方式定义。此外,三维空间9003由图121中的句法表示。原点9004的坐标在图121中由center_x[i]、center_y[i]和center_z[i]表示。半径r由radius[i]表示。
[0907]
图126和图127是用于说明三维点群所属的三维空间的另一例的图。
[0908]
图126是在用lidar扫描得到的三维点群数据9010上,将车辆9012周围360
°
的半球形状的三维空间9011设定为三维空间上的关心区域的例子。三维空间9011可以被设定为从上面观察车辆9012时的车辆9012的中心与半球形状的底面的中心一致。该三维空间9011例如以道路的路面为底面。三维空间9011被设定为半球形状是因为,在用lidar扫描道路上的物体而得到的三维点群数据中没有道路之下的点群数据。三维空间9011是车辆9012周围的区域,重要度高。因此,为了确保更详细的信息,可以将德尔塔qp值设定为负的值。
[0909]
图127是在lidar扫描得到的三维点群数据9020上,将车辆9022的周围360
°
的圆柱形状的三维空间9021设定为三维空间上的关心区域的例子。这样,也可以取代图126的半球形状,将圆柱形状的三维空间9021设定为从上面观察车辆9022时的车辆9022的中心与圆柱形状的底面的中心一致。
[0910]
图128表示设定圆柱形状的三维空间的情况下的属性信息的头部的句法的一例。
[0911]
在三维空间9021由以该三维空间9021的底面的中心坐标为原点的情况下的原点的坐标(origin_x[i]、origin_y[i]和origin_z[i])、表示圆形的底面的半径r的parameter1[i]、以及表示圆柱的高度h的parameter2[i]定义。在头部的句法中,还可以包含三维空间的形状的种类。这样,在头部的句法中示出了关心区域能够基于任意的形状和尺寸来自由定义,且各形状的参数能够事先定义的情况。
[0912]
另外,在三维空间的形状为半球的情况下,与形状为球形状的情况同样,由原点的坐标和以原点为中心的半球的半径来定义。
[0913]
图129是表示对每个三维空间应用不同的量化参数的处理的一例的流程图。
[0914]
首先,三维数据编码装置确定用于将三维点群分类到与量化参数建立了对应的组中的三维空间的边界(s9001)。具体而言,使用上述例示的属性信息的头部的句法中包含的三维空间的原点和三维空间的尺寸来确定边界。此时,如果设定了三维空间的形状的种类,则也可以使用形状的种类。
[0915]
接着,三维数据编码装置对点群数据中包含的多个三维点分别进行循环。循环中包含步骤s9002及步骤s9003。
[0916]
三维数据编码装置在循环中,首先判定处理对象的三维点是否位于所确定的三维空间内(s9002)。例如,三维数据编码装置使用验证函数来判定处理对象的三维点是否属于与delta_qp建立了对应的特定三维空间内。三维数据编码装置在指定了多个三维空间的情况下,进行所指定的多个三维区域各自的边界与处理对象的三维点的对照。验证函数包括min/max函数,该min/max函数判定处理对象的三维点是在所确定的边界以下还是在所指定的边界以上。min/max函数针对x轴、y轴及z轴的每一个而个别地执行,处理对象的三维点输出表示三维空间的边界的内侧的值或表示外侧的值。例如,min/max函数输出0或1的二进制值作为结果。由此,确定处理对象的三维点所属的三维点空间。另外,三维数据编码装置也可以判定为没有处理对象的三维点所属的三维空间。
[0917]
接下来,三维数据编码装置在判定为处理对象的三维点位于所确定的三维空间内的情况下(s9002中是),应用与所确定的三维空间建立了对应的组的delta_qp来计算量化参数,并使用计算出的量化参数对处理对象的三维点的属性信息进行编码(s9003)。
[0918]
三维数据编码装置在判定为处理对象的三维点不在所确定的三维空间内的情况下(s9002中否),跳过步骤s9003。
[0919]
对于处理对象的三维点,当步骤s9002和步骤s9003结束时,对未执行循环的未处理的下一个三维点执行步骤s9002和步骤s9003。
[0920]
基于区域的delta_qp调整与基于瓦片或基于切片的delta_qp调整的不同之处在于,编码处理继续,且没有破坏三维点群参照的连续性的来自切片头部的新设定。因此,能够执行更高效的预测算法,能够提高编码性能。
[0921]
在如瓦片和切片等那样将三维点群分割为多个子点群,且各个子点群中量化参数不同的情况下,大多禁止子点群间的参照,有时由于预测效率降低而编码效率降低。另一方面,在应用本方法的情况下,由于能够使分配给各三维点的量化参数不同而不禁止三维点间的参照,因此能够一边维持编码效率,一边进行更细致的量化参数的调整。
[0922]
图130是表示按每个三维空间应用不同的量化参数的处理的另一例的流程图。
[0923]
首先,三维数据编码装置确定用于将三维点群分类到与量化参数建立了对应的组中的1个以上的三维空间的边界(s9011)。步骤s9011是与步骤s9001相同的处理。
[0924]
接着,三维数据编码装置对所确定的多个三维空间分别进行循环1。在循环1中包含循环2。三维数据编码装置对点群数据中包含的多个三维点分别进行循环2。在循环2中包含步骤s9012~s9015。此外,在使用多个属性信息计算成为量化的对象的多个系数值的情况下,可以针对多个系数值分别进行循环2。
[0925]
三维数据编码装置在循环2中,首先判定处理对象的三维点、或者处理对象的系数值是否与处理对象的三维空间对应(s9012)。在处理对象是三维点的情况下,步骤s9012与步骤s9002是相同的处理。三维编码装置在处理对象是系数值的情况下,确定成为计算该系数值的基础的1个以上的属性信息,确定包含所确定的1个以上的属性信息的1个以上三维点各自所属的三维空间是否包含处理对象的三维空间。在1个以上三维点各自所属的三维空间包含处理对象的三维空间的情况下,三维数据编码装置判定为处理对象的系数值与处理对象的三维空间对应。相反,在1个以上三维点各自所属的三维空间不包含处理对象的三维空间的情况下,三维数据编码装置判定为处理对象的系数值与处理对象的三维空间不对应。这里,用于确定1个以上三维点各自所属的三维空间的方法可以使用与步骤s9002同样
的方法。
[0926]
接着,三维数据编码装置在判定为处理对象的三维点、或处理对象的系数值与处理对象的三维空间对应的情况下(s9012中是),判定处理对象的三维点是否包含在交叉区域中,或者处理对象的系数值是否是qp结合的值(s9013)。交叉区域是多个三维空间重复的区域。关于qp结合将后述。
[0927]
三维数据编码装置在处理对象的三维点包含在交叉区域中的情况、或者处理对象的系数值是qp结合的值的情况下(s9013中是),通过执行结合qp法来计算要应用的delta_qp,并且使用基于计算出的delta_qp的量化参数来对处理对象的三维点的属性信息或处理对象的系数值进行编码(s9014)。结合qp法的具体例将后述。
[0928]
三维数据编码装置在处理对象的三维点不包含在交叉区域中的情况、或者处理对象的系数值不是qp结合的值的情况下(s9013中否),通过应用与针对处理对象的三维点或处理对象的系数值而确定的三维空间建立对应的组的delta_qp来计算量化参数,并且使用计算出的量化参数对处理对象的三维点的属性信息进行编码(s9015)。
[0929]
三维数据编码装置在判定为处理对象的三维点、或者处理对象的系数值不与处理对象的三维空间对应的情况下(s9012中否),跳过步骤s9013~s9015。
[0930]
对于处理对象的三维点或系数值,当步骤s9012~s9015结束时,对于未进行循环2的未处理的下一个三维点,执行步骤s9012~s9015。
[0931]
当针对处理对象的三维空间结束循环2时,针对未进行循环1的未处理的下一个三维空间执行循环1。在下一循环1中的循环2中成为处理对象的三维点或者系数值也可以是在其之前的处理的步骤s9012中判定为否的三维点或者系数值。
[0932]
基于区域的delta_qp调整与基于瓦片或基于切片的delta_qp调整的不同之处在于,编码处理继续,且没有破坏三维点群参照的连续性的来自切片头部的新设定。因此,能够执行更高效的预测算法,能够提高编码性能。
[0933]
各三维点可以属于多个三维空间。即,各三维点也可以包含在多个三维空间重复的区域即交叉区域中。在这种情况下,对于与所属的所有三维空间建立对应的所有delta_qp(或量化参数),所有delta_qp的最小值、最大值、平均值或相加值可被用作该三维点的delta_qp。由此,能够更灵活地控制用于对三维空间的特定区域的三维点进行编码的量化参数。
[0934]
在用pcc(point cloud compression,点云数据压缩)的属性信息的编码中,为了达成良好的压缩,使用预测/提升变换以及raht(region adaptive hierarchical transform,区域自适应层级解码)等变换方法。变换函数取2个以上的节点,将属性信息的能量级别分割为高频成分和低频成分。由此,更高频成分的值被量化,通过该处理除去高频噪声后,残差被编码。然后,低频成分上升到下一个上位阶层。
[0935]
图131是用于说明使用了raht的属性信息的编码的第1例的图。
[0936]
在这种情况下,三维数据编码装置对多个三维点生成图131所示的raht的阶层结构。具体而言,三维数据编码装置通过反复进行对所输入的多个三维点的多个属性信息中以规定的排列顺序(例如莫顿码顺序)相邻的2个属性信息应用haar变换来依次生成上位阶层的属性信息,计算haar变换后的编码系数。然后,三维数据编码装置将计算出的编码系数生成比特流。
[0937]
在这样的raht的例子中,假定预先定义的区域内的所选择的数量的节点由负的德尔塔qp值来设定。当量化和raht从各阶层向上前进时,例如使用节点l
3,0h3,0
和节点l
3,1h3,1
计算节点l
2,0h2,0
。在这种情况下,在节点l
2,0h2,0
的量化中,能够使用应用于节点l
3,0h3,0
的第1德尔塔qp(或第1qp值)和应用于节点l
3,1h3,1
的第2德尔塔qp(或第2qp值)。例如,具有用于计算节点l
3,1h3,1
的2个属性信息的2个三维点属于区域9030,第2德尔塔qp与区域9030建立对应。区域9030例如是使用图124~图128说明的、由用于分类到与qp值建立对应的组的三维空间中的某一个来规定的区域。
[0938]
这样,设定有2个不同qp值的节点的上位的节点被称为qp结合。在第1德尔塔qp是通常值,且第2德尔塔qp如上所述设定为负值的情况下,三维数据编码装置例如可以采用较小的德尔塔qp作为应用于节点l
2,0h2,0
的量化的德尔塔qp。此后同样,三维数据编码装置在raht阶层结构中,采用下位的节点的2个qp值中的较小的qp值作为对设定有相互不同的2个qp值的2个下位的节点的上位的节点的系数值进行量化的qp值。然后,三维数据编码装置使用所采用的qp值对节点的系数值进行量化。此外,三维数据编码装置可以采用最小的qp值作为上位节点的qp值,取代采用下位的节点的2个qp值中的较小qp值。
[0939]
在该例中,所选择的适当方法能够通过设定较小的qp值以维持最佳的品质,减小向下一阶层传播的低频成分的损耗。
[0940]
决定应用于qp结合的节点的qp值的方法有很多。但是,需要将相同的方法应用于编码和解码双方的处理。除了参照图131说明的在上位节点中采用应用于下位层的2个节点的2个qp值中的较小qp值的方法之外,还存在不需要变更raht编码或raht解码的处理的方法。
[0941]
图132是用于说明使用了raht的属性信息的编码的第2例的图。
[0942]
如图132所示,考虑属性信息按莫顿码顺序从左到右被重排列的情况下的raht的阶层结构。在这种情况下,三维数据编码装置在qp结合的节点中,将应用于2个下位节点中配置于右侧的节点的qp值作为对该qp结合的节点的系数值进行量化所使用的qp值采用。
[0943]
此外,虽然在图132示出了将分配给按照莫顿码的顺序始终位于右侧的节点的qp值应用于上位层节点的例子,但是并不限于此。例如,分配给在莫顿码顺序中始终位于左侧的节点的qp值也可以被作为用于对上位层节点的系数值进行量化的qp值采用。
[0944]
这样,三维数据编码装置由于只要把应用于2个下位节点中的右侧或左侧节点的qp值作为上位节点的qp值采用即可,所以不需要按每个qp结合选择右侧下位节点的qp值和左侧下位节点的qp值中的哪一个qp值应用于上位节点。因此,三维数据编码装置能够一边抑制选择所需的处理量,一边将分配给下位节点的qp值交接给上位节点。
[0945]
图133是用于说明使用了raht的属性信息的编码的第3例的图。
[0946]
与第1例相反,三维数据编码装置在raht阶层结构中,可以采用下位的节点的2个qp值中的较大qp值作为对设定有相互不同的2个qp值的2个下位的节点的上位的节点的系数值进行量化的qp值。由此,能够在特别地控制具有delta_qp的区域9030内的三维点群的编码效率的同时,确保压缩性能。此外,三维数据编码装置可以采用最大qp值作为上位节点的qp值,取代采用下位的节点的2个qp值中的较大qp值。
[0947]
图134是用于说明使用了raht的属性信息的编码的第4例的图。
[0948]
在第4例中,三维数据编码装置可以通过加权平均来计算下位节点的2个qp值,并
采用加权平均后的结果作为上位节点的qp值。在图134中,示出了应用于节点l1,0h
1,0
的qp值的计算例的节点l
1,0h1,0
的下位节点即节点l
2,0h2,0
的qp值是31,相同的下位节点即节点l
2,1
的德尔塔qp值设定为-2。节点l
2,1
所属区域9031左侧的节点的切片qp值为32,通过将该切片qp值作为基准,能够计算出应用于节点l
2,1
的qp值。具体而言,应用于节点l
2,1
的qp值是区域9031左侧的节点的切片qp值和节点l
2,1
所属的区域9031的德尔塔qp值相加的结果30。
[0949]
接着,三维数据编码装置决定加权平均的权重系数。三维数据编码装置例如也可以基于包含节点l
2,0h2,0
的下位节点的数量、及包含节点l
2,1
的下位节点的数量来决定加权平均的权重系数。包含节点l
2,0h2,0
的下位节点的数量是7,包含节点l
2,1
的下位节点的数量是4。因此,应用于节点l
1,0h1,0
的qp值使用下述的式子计算为31。
[0950]
qp=(7*32 4*30)/11=31
[0951]
这样,通过加权平均来计算应用于qp结合的节点的qp值,所述加权平均将包含下位节点的悬挂于该下位节点的多个下位节点的数量设为权重。在计算结果是小数的情况下,将舍入到最接近的整数的值采用为qp值。
[0952]
图135是表示raht的阶层结构(树结构)的例子的图。例如,如图135所示,按树结构的每个深度设定独立的qt0~qt2。另外,如图135所示,在raht的阶层结构中,设定各节点的权重w0.0、w1.0、w1.1、w3.0、w3.1、w3.3及w3.4,这些权重w0.0、w1.0、w1.1、w3.0、w3.1、w3.3及w3.4也可以用作第4例中的加权平均的权重系数。
[0953]
图136是用于说明使用了raht的属性信息的编码的第5例的图。
[0954]
在第5例中,三维数据编码装置可以采用下位节点的2个qp值的平均作为上位节点的qp值。在图136中,例如,应用于节点l
2,0h2,0
的qp值被计算为作为其下位节点的节点l
3,0h3,0
的qp值(=32)和节点l
3,1h3,1
的qp值(=30)的平均值即31。此外,例如,应用于节点l
1,0h1,0
的qp值计算为作为其下位节点的节点l
2,0h2,0
的qp值(=31)和节点l
2,1
的qp值(=29)的平均值即30。
[0955]
这样,三维数据编码装置在量化中,可以计算分别分配给下位层的2个系数值的2个qp值的平均值,并采用该平均值作为用于对上位层的系数值进行量化的qp值。
[0956]
在第5例的情况下,与第4例相比,由于应用与节点的数量无关的分配给2个下位节点的qp值的平均值作为上位节点的qp值,因此能够减少上位节点的qp值的计算处理的负载,并且高速地执行计算处理。另外,能够提高压缩效率。此外,能够抑制属性信息的品质的降低。
[0957]
此外,存在一种算法,该算法适于基于使用向raht阶层结构的2点的输入计算出的新节点的位置,高效地计算应用于qp结合的节点的qp值。如图137所示,德尔塔qp可以基于计算出的新节点的位置来选择。在qp结合的节点靠近左节点的情况下,来自左节点的qp值的影响变大。
[0958]
图138是表示执行属性信息的编码处理的处理部的一例的框图。
[0959]
在其他属性变换中也需要按每个级别/阶层计算qp的情况下,raht所记载的应用于qp结合的节点的qp值的计算方法能够被传播或更新。此外,不限于此,示出了在生成lod的阶层结构并对其进行编码的提升变换中也能够自适应地调整qp值的处理。
[0960]
在图138中,分割部9041将属性信息分割为高频成分h(n)和低频成分l(n)。预测部9042基于低频成分l(n)生成预测值p(n)。然后,计算高频成分h(n)与预测值p(n)的差分作
为预测残差d(n)。更新部9043使用预测残差d(n)生成更新值u(n),并将低频成分l(n)与更新值u(n)相加所得的值送到阶层(n)的上位的阶层(n-1)的分割部9044。更新部9043将高频成分h(n)的qp值与低频成分l(n)的qp值进行比较,并在用于保持与双方的节点类似的详情的更新中使用较小的qp值(最小qp值)。
[0961]
分割部9044、预测部9045和更新部9046是执行上位的阶层(n-1)中的处理的处理部,分别具有与分割部9041、预测部9042和更新部9043同样的功能。此外,在前向变换的情况下,更新部9043、9046可以适当地更新qp值。
[0962]
图139是表示lod的阶层结构中的属性信息与qp值的关系的图。
[0963]
图139的(a)表示lod的阶层结构中的属性信息的关系,图139的(b)表示lod的阶层结构中的qp值的关系。
[0964]
在使用属性信息b0、b1、b2预测了属性信息a0的值的情况下,属性信息a0的量化参数qpa0用于计算属性信息b0、b1、b2的量化参数qpb0、qpb1、qpb2。
[0965]
图140是表示执行属性信息的解码处理的处理部的一例的框图。
[0966]
对于提升的逆变换,更新部9051更新qp值。更新部9051将预测残差d(0)的qp值与低频成分l’(0)的qp值进行比较,并在用于保持双方节点中类似的详细内容的更新中使用较小的qp值(最小qp值)。通过从低频成分l’(0)减去更新值u(0),计算低频成分l(0)。
[0967]
预测部9052基于低频成分l(0)生成预测值p(0)。然后,通过将预测残差d(0)与预测值p(0)相加,计算高频成分h(0)。
[0968]
结合部9053通过将高频成分h(0)和低频成分l(0)相加,计算下位层的低频成分l’(1)。
[0969]
更新部9054、预测部9055和结合部9056是执行下位的阶层(1)中的处理的处理部,并且分别具有与更新部9051、预测部9052和结合部9053同样的功能。
[0970]
另外,在图139中,示出了将量化参数qpb0和量化参数qpa0的最小值应用于量化参数qpb0的例子,但并不一定限于此。例如,也可以将量化参数qpb0和量化参数qpa0的最大值、或平均值、或相加值应用于量化参数qpb0。另外,在计算平均值的情况下,也可以将根据属性信息b0的三维点和属性信息a0的三维点的距离进行加权加法平均后的值应用于量化参数qpb。由此,下位层的qp能够被精细地交接到上位层,能够灵活地控制qp值。
[0971]
如上所述,本实施方式的三维数据编码装置进行图141所示的处理。三维数据编码装置根据点群数据中包含的多个三维点的多个属性信息计算多个系数值(s9021),通过对所述多个系数值进行量化而生成多个量化值(s9022),生成包含所述多个量化值的比特流(s9023),所述多个属性信息中的至少一部分属性信息通过按照具有长方体形状的多个三维空间中的、包含该属性信息的三维点所属的每个三维空间进行分类,从而属于多个组中的某一个,在所述量化中,对所述多个系数值使用量化参数进行量化,所述量化参数是成为计算该系数值的基础的1个以上的属性信息所属的1个以上的组用的1个以上的量化参数、或规定的量化参数。由此,该三维数据编码方法能够使用1个以上的每个组的1个以上的量化参数或规定的量化参数进行切换,因此能够适当地进行编码。
[0972]
例如,所述多个三维空间分别由该三维空间的原点、该三维空间的长度、宽度及进深来表示。
[0973]
例如,在所述计算(s9021)中,通过生成将所述多个属性信息的每一个分成高频成
分和低频成分而分层的阶层结构,计算所述多个系数值。
[0974]
例如,在所述计算(s9021)中,使用属于第1阶层的2个第1系数值来计算属于比所述第1阶层高一阶层的第2阶层的第2系数值,并且在所述量化(s9023)中,使用分别分配给所述2个第1系数值的2个量化参数的平均值,对所述第2系数值进行量化。
[0975]
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
[0976]
本实施方式的三维数据解码装置进行图142所示的处理。三维数据解码装置通过对比特流中包含的多个量化值进行逆量化来计算多个系数值(s9031),根据所述多个系数值来计算点群数据中包含的多个三维点的多个属性信息(s9032),所述多个属性信息中的至少一部分属性信息通过按照具有长方体形状的多个三维空间中的、包含该属性信息的三维点所属的每个三维空间进行分类,从而属于多个组中的某一个,在所述逆量化中,对所述多个量化值使用量化参数进行逆量化,所述量化参数是成为计算与该量化值对应的系数值的基础的1个以上的属性信息所属的1个以上的组用的1个以上的量化参数、或规定的量化参数。由此,该三维数据解码方法能够使用1个以上的组用的1个以上的量化参数或规定的量化参数进行逆量化,因此能够适当地进行解码。
[0977]
例如,所述多个三维空间分别由该三维空间的原点、该三维空间的长度、宽度及进深来表示。
[0978]
例如,在所述多个系数值的计算(s9031)中,通过生成将所述多个属性信息的每一个分成高频成分和低频成分而分层的阶层结构,计算所述多个系数值。
[0979]
例如,在所述多个系数值的计算(s9031)中,使用属于第1阶层的2个第1系数值来计算属于比所述第1阶层高一阶层的第2阶层的第2系数值,并且在所述逆量化中,使用分别分配给所述2个第1系数值的2个量化参数的平均值,对所述第2系数值进行逆量化。
[0980]
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
[0981]
以上,对本公开的实施方式的三维数据编码装置及三维数据解码装置等进行了说明,但本公开并不限定于该实施方式。
[0982]
并且,上述的实施方式的三维数据编码装置以及三维数据解码装置等中包含的各处理部典型的能够作为集成电路的lsi来实现。这些可以分别地制成一个芯片,也可以是其中的一部分或全部被制成一个芯片。
[0983]
并且,集成电路化并非受lsi所限,也可以由专用电路或通用处理器来实现。也可以利用在lsi制造后可编程的fpga(field programmable gate array:现场可编程门阵列)、或能够重构lsi内部的电路部的连接或设定的可重构处理器。
[0984]
并且,在上述的各实施方式中,各构成要素可以由专用的硬件来构成,或者可以通过执行适于各构成要素的软件程序来实现。各构成要素也可以通过cpu或处理器等程序执行部读出被记录在硬盘或半导体存储器等记录介质的软件程序并执行来实现。
[0985]
并且,本公开能够作为由三维数据编码装置以及三维数据解码装置等来执行的三维数据编码方法或三维数据解码方法等来实现。
[0986]
并且,框图中的功能块的分割为一个例子,多个功能块可以作为一个功能块来实现,一个功能块也可以分割为多个,一部分的功能也可以移动到其他的功能块。并且,具有
类似的功能的多个功能块的功能也可以由单一的硬件或软件进行并行处理或者进行时间分割处理。
[0987]
并且,关于流程图中的各步骤的执行顺序,是为了对本公开进行具体说明而举出的例子,也可以是上述以外的顺序。并且,上述步骤的一部分也可以与其他的步骤同时(并行)执行。
[0988]
以上基于实施方式对一个或多个形态的三维数据编码装置以及三维数据解码装置等进行了说明,但是,本公开并非受这些实施方式所限。在不脱离本公开的主旨的范围内,将本领域技术人员能够想到的各种变形执行于本实施方式而得到的方式、以及对不同的实施方式中的构成要素进行组合而得到的方式均包含在一个或多个形态的范围内。
[0989]
产业上的可利用性
[0990]
本公开能够适用于三维数据编码装置以及三维数据解码装置。
[0991]
附图标记说明
[0992]
600 自身车辆
[0993]
601 周边车辆
[0994]
602、605 传感器检测范围
[0995]
603、606 区域
[0996]
604 遮挡区域
[0997]
801 车辆
[0998]
802 空间
[0999]
901 服务器
[1000]
902、902a、902b、902c 客户端装置
[1001]
1011、1111 数据接收部
[1002]
1012、1020、1112、1120 通信部
[1003]
1013、1113 接收控制部
[1004]
1014、1019、1114、1119 格式变换部
[1005]
1015 传感器
[1006]
1016、1116 三维数据制作部
[1007]
1017 三维图像处理部
[1008]
1018、1118 三维数据蓄积部
[1009]
1021、1121 发送控制部
[1010]
1022、1122 数据发送部
[1011]
1031、1032、1135 三维地图
[1012]
1033、1037、1132 传感器信息
[1013]
1034、1035、1134 三维数据
[1014]
1117 三维数据合成部
[1015]
1201 三维地图压缩/解码处理部
[1016]
1202 传感器信息压缩/解码处理部
[1017]
1211 三维地图解码处理部
[1018]
1212 传感器信息压缩处理部
[1019]
2001 服务器
[1020]
2002、2002a、2002b 客户端装置
[1021]
2011 传感器信息获得部
[1022]
2012 存储部
[1023]
2013 数据发送可否判定部
[1024]
2021、2021a、2021b 终端
[1025]
2022、2022a、2022b 通信装置
[1026]
2023 网络
[1027]
2024 数据收集服务器
[1028]
2025地图服务器
[1029]
2026 客户端装置
[1030]
3000 三维数据编码装置
[1031]
3001 位置信息编码部
[1032]
3002 属性信息重新分配部
[1033]
3003 属性信息编码部
[1034]
3010 三维数据解码装置
[1035]
3011 位置信息解码部
[1036]
3012 属性信息解码部
[1037]
6600 属性信息编码部
[1038]
6601 排序部
[1039]
6602 haar变换部
[1040]
6603 量化部
[1041]
6604、6612 逆量化部
[1042]
6605、6613 逆haar变换部
[1043]
6606、6614 存储器
[1044]
6607 算术编码部
[1045]
6610 属性信息解码部
[1046]
6611 算术解码部
[1047]
7001 减法部
[1048]
7002 变换部
[1049]
7003 变换矩阵保持部
[1050]
7004 量化部
[1051]
7005 量化控制部
[1052]
7006 熵编码部
[1053]
7011 熵解码部
[1054]
7012 逆量化部
[1055]
7013 量化控制部
[1056]
7014 逆变换部
[1057]
7015 变换矩阵保持部
[1058]
7016 加法部
[1059]
7020 三维数据编码装置
[1060]
7021 分割部
[1061]
7022 位置信息编码部
[1062]
7023 属性信息编码部
[1063]
7024 附加信息编码部
[1064]
7025 复用部
[1065]
7031 瓦片分割部
[1066]
7032 切片分割部
[1067]
7035 变换部
[1068]
7036 量化部
[1069]
7037 熵编码部
[1070]
7040 三维数据解码装置
[1071]
7041 逆复用部
[1072]
7042 位置信息解码部
[1073]
7043 属性信息解码部
[1074]
7044 附加信息解码部
[1075]
7045 结合部
[1076]
7051 熵解码部
[1077]
7052 逆量化部
[1078]
7053 逆变换部
[1079]
7061、7072 lod设定部
[1080]
7062、7073 搜索部
[1081]
7063、7074 预测部
[1082]
7064 减法部
[1083]
7065、7083 量化部
[1084]
7066、7075、7084、7092 逆量化部
[1085]
7067、7076 重构部
[1086]
7068、7077、7086、7094 存储器
[1087]
7069、7087 算术编码部
[1088]
7070、7088 δqp计算部
[1089]
7071、7091 算术解码部
[1090]
7081 排序部
[1091]
7082 haar变换部
[1092]
7085、7093 逆haar变换部
[1093]
7401、7413,74421 点群再排列部
[1094]
7402、7422、74422、74622 变换部
[1095]
7403、7423、74423、74623 量化部
[1096]
7404、7424、74424、74624 熵编码部
[1097]
7411、7431、74531、74731 熵解码部
[1098]
7412、7432、74532、74732 逆量化部
[1099]
7421、7434 点群属性替换部
[1100]
7433、74534、74733 逆变换部
[1101]
7440、7460 三维数据编码装置
[1102]
7441、7461 位置信息编码部
[1103]
7442、7462 属性信息编码部
[1104]
7443、7563 附加信息编码部
[1105]
7444、7464 复用部
[1106]
7450、7470 三维数据解码装置
[1107]
7451、7471 逆复用部
[1108]
7452、7472 位置信息解码部
[1109]
7453、7473 属性信息解码部
[1110]
7454、7474 附加信息解码部
[1111]
74621 再排列表生成部
[1112]
744211 莫顿排列部
[1113]
744212 再排列部
[1114]
7800 属性信息编码部
[1115]
7801 排序部
[1116]
7802 haar变换部
[1117]
7803 量化部
[1118]
7804 逆量化部
[1119]
7805 逆haar变换部
[1120]
7806 存储器
[1121]
7807 算术编码部
[1122]
7810 属性信息解码部
[1123]
7811 算术解码部
[1124]
7812 逆量化部
[1125]
7813 逆haar变换部
[1126]
7814 存储器
[1127]
9000 三维模型
[1128]
9001、9003 三维空间
[1129]
9002、9004 原点
[1130]
9005 货物
[1131]
9010、9020 三维点群数据
[1132]
9011、9021 三维空间
[1133]
9012、9022 车辆
[1134]
9030、9031 区域
[1135]
9041、9044 分割部
[1136]
9042、9045、9052、9055 预测部
[1137]
9043、9046、9051、9054 更新部
[1138]
9053、9056 结合部
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献