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

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

2022-09-08 06:40:58 来源:中国专利 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信息表示所述多个属性信息的多个值的各个值,在所述多个属性信息的所述多个值全部是相同的值的情况下,生成包含第2信息而不包含所述多个第1信息的比特流,所述第2信息表示在所述多个属性信息中共同的所述相同的值。
14.本公开的一个方式的三维数据解码方法,在比特流中包含多个第1信息的情况下,根据所述多个第1信息生成所述多个属性信息,所述多个第1信息表示多个三维点的多个属性信息的多个值的各个值,在所述比特流中包含在所述多个属性信息中共同的值的第2信
息的情况下,输出由所述第2信息表示的所述共同的值作为所述多个属性信息的各个属性信息的值。
15.发明效果
16.本公开能够提供能够提高编码效率的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
附图说明
17.图1是表示实施方式1的三维数据编码解码系统的结构的图。
18.图2是表示实施方式1的点群数据的结构例的图。
19.图3是表示记述了实施方式1的点群数据信息的数据文件的结构例的图。
20.图4是表示实施方式1的点群数据的种类的图。
21.图5是表示实施方式1的第1编码部的结构的图。
22.图6是实施方式1的第1编码部的框图。
23.图7是表示实施方式1的第1解码部的结构的图。
24.图8是实施方式1的第1解码部的框图。
25.图9是表示实施方式1的第2编码部的结构的图。
26.图10是实施方式1的第2编码部的框图。
27.图11是表示实施方式1的第2解码部的结构的图。
28.图12是实施方式1的第2解码部的框图。
29.图13是表示实施方式1的有关pcc编码数据的协议栈的图。
30.图14是表示实施方式2的isobmff的基本结构的图。
31.图15是表示实施方式2的协议栈的图。
32.图16是表示实施方式3的编码部以及复用部的结构的图。
33.图17是表示实施方式3的编码数据的结构例的图。
34.图18是表示实施方式3的编码数据以及nal单元的结构例的图。
35.图19是表示实施方式3的pcc_nal_unit_type的语义例的图。
36.图20是表示实施方式3的nal单元的发送顺序的例子的图。
37.图21是实施方式4的第1编码部的框图。
38.图22是实施方式4的第1解码部的框图。
39.图23是实施方式4的分割部的框图。
40.图24是表示实施方式4的切片以及瓦片的分割例的图。
41.图25是表示实施方式4的切片以及瓦片的分割样式的例子的图。
42.图26是表示实施方式4的依赖关系的例子的图。
43.图27是表示实施方式4的数据的解码顺序的例子的图。
44.图28是实施方式4的编码处理的流程图。
45.图29是实施方式4的结合部的框图。
46.图30是表示实施方式4的编码数据以及nal单元的结构例的图。
47.图31是实施方式4的编码处理的流程图。
48.图32是实施方式4的解码处理的流程图。
49.图33是实施方式4的编码处理的流程图。
50.图34是实施方式4的解码处理的流程图。
51.图35是表示实施方式5的根据多个帧的点群数据生成树结构以及占用率编码的图像的图。
52.图36是表示实施方式5的帧结合的例子的图。
53.图37是表示实施方式5的多个帧的结合的例子的图。
54.图38是实施方式5的三维数据编码处理的流程图。
55.图39是实施方式5的编码处理的流程图。
56.图40是实施方式5的三维数据解码处理的流程图。
57.图41是实施方式5的解码以及分割处理的流程图。
58.图42是实施方式5的编码部的框图。
59.图43是实施方式5的分割部的框图。
60.图44是实施方式5的位置信息编码部的框图。
61.图45是实施方式5的属性信息编码部的框图。
62.图46是实施方式5的点群数据的编码处理的流程图。
63.图47是实施方式5的编码处理的流程图。
64.图48是实施方式5的解码部的框图。
65.图49是实施方式5的位置信息解码部的框图。
66.图50是实施方式5的属性信息解码部的框图。
67.图51是实施方式5的结合部的框图。
68.图52是实施方式5的点群数据的解码处理的流程图。
69.图53是实施方式5的解码处理的流程图。
70.图54是表示实施方式5的帧的结合样式的例子的图。
71.图55是表示实施方式5的pcc帧的结构例的图。
72.图56是表示实施方式5的编码位置信息的结构的图。
73.图57是表示实施方式5的编码位置信息的头部的句法例的图。
74.图58是表示实施方式5的编码位置信息的有效载荷的句法例的图。
75.图59是表示实施方式5的叶节点信息的例子的图。
76.图60是表示实施方式5的叶节点信息的例子的图。
77.图61是表示实施方式5的比特映射信息的例子的图。
78.图62是表示实施方式5的编码属性信息的结构的图。
79.图63是表示实施方式5的编码属性信息的头部的句法例的图。
80.图64是表示实施方式5的编码属性信息的有效载荷的句法例的图。
81.图65是表示实施方式5的编码数据的结构的图。
82.图66是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
83.图67是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
84.图68是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
85.图69是表示实施方式5的对一部分帧进行解码的例子的图。
86.图70是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
87.图71是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
88.图72是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
89.图73是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
90.图74是实施方式5的编码处理的流程图。
91.图75是实施方式5的解码处理的流程图。
92.图76是表示实施方式6的三维点的例子的图。
93.图77是表示实施方式6的lod的设定例的图。
94.图78是表示实施方式6的lod的设定中使用的阈值的例子的图。
95.图79是表示实施方式6的预测值中使用的属性信息的例子的图。
96.图80是表示实施方式6的指数哥伦布码的一例的图。
97.图81是表示实施方式6的针对指数哥伦布码的处理的图。
98.图82是表示实施方式6的属性头部的句法例的图。
99.图83是表示实施方式6的属性数据的句法例的图。
100.图84是实施方式6的三维数据编码处理的流程图。
101.图85是实施方式6的属性信息编码处理的流程图。
102.图86是表示实施方式6的针对指数哥伦布码的处理的图。
103.图87是表示实施方式6的剩余编码与其值的关系的反推表的例子的图。
104.图88是实施方式6的三维数据解码处理的流程图。
105.图89是实施方式6的属性信息解码处理的流程图。
106.图90是实施方式6的三维数据编码装置的框图。
107.图91是实施方式6的三维数据解码装置的框图。
108.图92是表示实施方式6的属性信息的结构的图。
109.图93是用于说明实施方式6的编码数据的图。
110.图94是实施方式6的三维数据编码处理的流程图。
111.图95是实施方式6的三维数据解码处理的流程图。
112.图96是表示实施方式7的编码数据的例子的图。
113.图97是表示实施方式7的编码数据的例子的图。
114.图98是实施方式7的三维数据编码处理的流程图。
115.图99是表示实施方式7的运动补偿以及帧结合的例子的图。
116.图100是表示实施方式7的运动矢量发送的例子的图。
117.图101是表示实施方式7的编码数据的例子的图。
118.图102是实施方式7的三维数据解码装置的框图。
119.图103是表示实施方式7的运动矢量的计算方法的例子的图。
120.图104是表示实施方式7的运动矢量的计算方法的例子的图。
121.图105是表示实施方式7的编码数据的例子的图。
122.图106是表示实施方式7的应用运动补偿的瓦片的例子的图。
123.图107是实施方式7的编码处理的流程图。
124.图108是实施方式7的解码处理的流程图。
125.图109是表示实施方式8的帧结合时的帧索引的例子的图。
126.图110是实施方式8的三维数据编码装置的框图。
127.图111是表示实施方式8的编码部的情形的图。
128.图112是表示实施方式8的不具有属性信息的帧的点群数据的例子的图。
129.图113是表示实施方式8的格式变更后的点群数据的例子的图。
130.图114是实施方式8的属性信息编码部的框图。
131.图115是实施方式8的附加信息编码部的框图。
132.图116是表示实施方式8的aps的句法例的图。
133.图117是表示实施方式8的属性切片头部的句法例的图。
134.图118是表示实施方式8的属性切片数据的句法例的图。
135.图119是表示实施方式8的通常的属性信息的编码比特流的结构例的图。
136.图120是表示实施方式8的被填充(padding)后的属性信息的编码比特流的结构例的图。
137.图121是实施方式8的属性信息解码部的框图。
138.图122是实施方式8的三维数据编码处理的流程图。
139.图123是实施方式8的三维数据解码处理的流程图。
140.图124是实施方式8的三维数据编码处理的流程图。
141.图125是实施方式8的三维数据解码处理的流程图。
具体实施方式
142.本公开的一个方式的三维数据编码方法,在多个三维点的多个属性信息的至少一部分的值不同的情况下,生成包含多个第1信息的比特流,所述多个第1信息表示所述多个属性信息的多个值的各个值,在所述多个属性信息的所述多个值全部是相同的值的情况下,生成包含第2信息而不包含所述多个第1信息的比特流,所述第2信息表示在所述多个属性信息中共同的所述相同的值。
143.由此,该三维数据编码方法能够削减比特流的数据量,因此能够提高编码效率。
144.例如,也可以是,在所述多个属性信息的所述多个值全部是相同的值的情况下,将第3信息附加到所述比特流,所述第3信息表示所述多个属性信息的所述多个值全部为相同的值。
145.例如,也可以是,在所述多个属性信息的至少一部分的值不同的情况下,通过对所述多个属性信息进行使用了所述多个三维点的多个位置信息的变换处理,来生成所述多个第1信息,将与所述变换处理有关的第4信息附加到所述比特流,在所述多个属性信息的所述多个值全部是相同的值的情况下,不将所述第4信息附加到所述比特流。
146.由此,该三维数据编码方法能够削减比特流的数据量,因此能够提高编码效率。
147.例如,也可以是,在帧中包含的所述多个三维点的属性信息不存在的情况下,设定预先确定的值作为所述多个三维点的所述多个属性信息,所述比特流包含所述第2信息,所述第2信息表示所述预先确定的值作为所述相同的值。
148.例如,也可以是,所述多个属性信息的各个属性信息表示在通过结合多个帧而生成的帧中具有该属性信息的三维点在结合前所属的帧。
149.本公开的一个方式的三维数据解码方法,在比特流中包含多个第1信息的情况下,
根据所述多个第1信息生成所述多个属性信息,所述多个第1信息表示多个三维点的多个属性信息的多个值的各个值,在所述比特流中包含表示在所述多个属性信息中共同的值的第2信息的情况下,输出由所述第2信息表示的所述共同的值作为所述多个属性信息的各个属性信息的值。
150.由此,该三维数据解码方法能够对提高了编码效率的比特流进行解码。
151.例如,也可以是,在所述比特流中包含第3信息的情况下,输出由所述第2信息表示的所述共同的值作为所述多个属性信息的各个属性信息的值,所述第3信息表示所述多个属性信息的所述多个值全部是相同的值。
152.例如,也可以是,在所述比特流中包含所述多个第1信息的情况下,从所述比特流取得第4信息,所述第4信息与使用了所述多个三维点的多个位置信息的逆变换处理有关,通过使用所述第4信息,对所述多个第1信息进行所述逆变换处理,来生成所述多个属性信息,在所述比特流中包含所述第2信息的情况下,不从所述比特流取得所述第4信息。
153.由此,该三维数据解码方法能够对提高了编码效率的比特流进行解码。
154.例如,也可以是,所述多个属性信息的各个属性信息表示在通过结合多个帧而生成的帧中具有该属性信息的三维点在结合前所属的帧。
155.例如,也可以是,非结合多个帧的帧的所述多个属性信息表示预先确定的值,所述第2信息表示所述预先确定的值来作为所述共同的值。
156.另外,本公开的一个方式的三维数据编码装置,具备处理器和存储器,所述处理器使用所述存储器,在多个三维点的多个属性信息的至少一部分的值不同的情况下,生成包含多个第1信息的比特流,所述多个第1信息表示所述多个属性信息的多个值的各个值,在所述多个属性信息的所述多个值全部是相同的值的情况下,生成包含第2信息而不包含所述多个第1信息的比特流,所述第2信息表示在所述多个属性信息中共同的所述相同的值。
157.由此,该三维数据编码装置能够削减比特流的数据量,因此能够提高编码效率。
158.另外,本公开的一个方式的三维数据解码装置,具备处理器和存储器,所述处理器使用所述存储器,在比特流中包含多个第1信息的情况下,根据所述多个第1信息生成所述多个属性信息,所述多个第1信息表示多个三维点的多个属性信息的多个值的各个值,在所述比特流中包含在所述多个属性信息中共同的值的第2信息的情况下,输出由所述第2信息表示的所述共同的值作为所述多个属性信息的各个属性信息的值。
159.由此,该三维数据解码装置能够对提高了编码效率的比特流进行解码。
160.另外,这些概括性的或具体的形态可以由系统、方法、集成电路、计算机程序或计算机可读取的cd-rom等记录介质来实现,而且可以由系统、方法、集成电路、计算机程序以及记录介质的任意的组合来实现。
161.以下参照附图对实施方式进行具体说明。另外,以下将要说明的实施方式均为示出本公开的一个具体例子。以下的实施方式所示的数值、形状、材料、构成要素、构成要素的配置位置以及连接形态、步骤、步骤的顺序等均为一个例子,其主旨并非是对本公开进行限定。并且,针对以下的实施方式的构成要素之中没有记载在示出最上位概念的技术方案中的构成要素,作为任意的构成要素来说明。
162.(实施方式1)
163.在将点云的编码数据用于实际的装置或服务时,为了抑制网络带宽,而希望按照
用途来对所需要的信息进行收发。然而,至今的三维数据的编码结构中不存在这样的功能,因此也没有与此相对的编码方法。
164.在本实施方式中将要说明的是,用于提供在三维的点云的编码数据中,按照用途来对所需要的信息进行收发的功能的三维数据编码方法以及三维数据编码装置、还有对该编码数据进行解码的三维数据解码方法以及三维数据解码装置,以及对该编码数据进行复用的三维数据复用方法、以及传输该编码数据的三维数据传输方法。
165.特别是,当前,作为点群数据的编码方法(编码方式)研究了第1编码方法、以及第2编码方法,但没有定义将编码数据的结构以及编码数据向系统格式存放的方法,存在无法直接进行编码部中的mux处理(复用)、或者传输或蓄积这样的课题。
166.此外,如pcc(point cloud compression:点云压缩)那样,对第1编码方法和第2编码方法这2个编解码器混合存在的格式进行支持的方法至今不存在。
167.在本实施方式中,对将第1编码方法和第2编码方法这2个编解码器混合存在的pcc编码数据的结构以及将编码数据向系统格式存放的方法进行说明。
168.首先,说明本实施方式的三维数据(点群数据)编码解码系统的结构。图1是表示本实施方式的三维数据编码解码系统的结构例的图。如图1所示,三维数据编码解码系统包括三维数据编码系统4601、三维数据解码系统4602、传感器终端4603以及外部连接部4604。
169.三维数据编码系统4601通过对作为三维数据的点群数据进行编码来生成编码数据或复用数据。此外,三维数据编码系统4601可以是由单个装置实现的三维数据编码装置,也可以是由多个装置实现的系统。另外,三维数据编码装置也可以包含于三维数据编码系统4601中包含的多个处理部中的一部分。
170.三维数据编码系统4601包括点群数据生成系统4611、提示部4612、编码部4613、复用部4614、输入输出部4615、以及控制部4616。点群数据生成系统4611包括传感器信息获得部4617和点群数据生成部4618。
171.传感器信息获得部4617从传感器终端4603获得传感器信息,并将传感器信息输出到点群数据生成部4618。点群数据生成部4618根据传感器信息生成点群数据,并将点群数据向编码部4613输出。
172.提示部4612向用户提示传感器信息或点群数据。例如,提示部4612显示基于传感器信息或点群数据的信息或图像。
173.编码部4613对点群数据进行编码(压缩),将得到的编码数据、在编码过程中得到的控制信息和其他附加信息向复用部4614输出。附加信息例如包含传感器信息。
174.复用部4614通过复用从编码部4613输入的编码数据、控制信息和附加信息来生成复用数据。复用数据的格式例如是用于蓄积的文件格式、或用于传输的包格式。
175.输入输出部4615(例如,通信部或接口)将复用数据向外部输出。或者,复用数据被蓄积于内部存储器等的蓄积部。控制部4616(或应用程序执行部)控制各处理部。即,控制部4616进行编码及复用等控制。
176.此外,也可以将传感器信息向编码部4613或复用部4614输入。另外,输入输出部4615也可以将点群数据或编码数据直接向外部输出。
177.从三维数据编码系统4601输出的传输信号(复用数据)经由外部连接部4604输入到三维数据解码系统4602。
178.三维数据解码系统4602通过对编码数据或复用数据进行解码而生成作为三维数据的点群数据。此外,三维数据解码系统4602可以是由单一的装置实现的三维数据解码装置,也可以是由多个装置实现的系统。另外,三维数据解码装置也可以包含三维数据解码系统4602中包含的多个处理部中的一部分。
179.三维数据解码系统4602包括传感器信息获得部4621、输入输出部4622、逆复用部4623、解码部4624、提示部4625、用户接口4626、以及控制部4627。
180.传感器信息获得部4621从传感器终端4603获得传感器信息。
181.输入输出部4622获得传输信号,根据传输信号对复用数据(文件格式或者包)进行解码,并将复用数据向逆复用部4623输出。
182.逆复用部4623从复用数据中获得编码数据、控制信息以及附加信息,并将编码数据、控制信息以及附加信息向解码部4624输出。
183.解码部4624通过对编码数据进行解码而重构点群数据。
184.提示部4625将点群数据提示给用户。例如,提示部4625显示基于点群数据的信息或图像。用户接口4626获得基于用户的操作的指示。控制部4627(或应用程序执行部)控制各处理部。即,控制部4627进行逆复用、解码以及提示等控制。
185.此外,输入输出部4622也可以从外部直接获得点群数据或编码数据。另外,提示部4625也可以获得传感器信息等附加信息,并提示基于附加信息的信息。另外,提示部4625也可以基于由用户接口4626获得的用户的指示来进行提示。
186.传感器终端4603生成由传感器获得的信息即传感器信息。传感器终端4603是搭载有传感器或相机的终端,例如有汽车等移动体、飞机等飞行物体、移动终端或相机等。
187.能够由传感器终端4603获得的传感器信息例如是(1)由lidar、毫米波雷达或者红外线传感器得到的传感器终端4603与对象物的距离、或者对象物的反射率、(2)从多个单眼相机图像或者立体相机图像得到的相机与对象物的距离或者对象物的反射率等。另外,传感器信息也可以包含传感器的姿势、朝向、角运动(角速度)、位置(gps信息或者高度)、速度或者加速度等。另外,传感器信息也可以包含气温、气压、湿度、或者磁性等。
188.外部连接部4604通过集成电路(lsi或ic)、外部蓄积部、经由互联网的与云服务器的通信、或者广播等来实现。
189.接着,对点群数据进行说明。图2是表示点群数据的结构的图。图3是表示记述了点群数据的信息的数据文件的结构例的图。
190.点群数据包含多个点的数据。各点的数据包含位置信息(三维坐标)以及针对该位置信息的属性信息。将聚集了多个该点的群称为点群。例如,点群表示对象物(object)的三维形状。
191.有时也将三维坐标等位置信息(position)称为几何形状(geometry)。另外,各点的数据也可以包含多个属性类别的属性信息(attribute)。属性类别例如是颜色或反射率等。
192.既可以对1个位置信息将1个属性信息建立对应,也可以对1个位置信息将具有多个不同的属性类别的属性信息建立对应。另外,也可以对1个位置信息将多个相同的属性类别的属性信息建立对应。
193.图3所示的数据文件的结构例是位置信息和属性信息1对1对应的情况的例子,表
示构成点群数据的n个点的位置信息和属性信息。
194.位置信息例如是x、y、z这3轴的信息。属性信息例如是rgb的颜色信息。作为代表性的数据文件,有ply文件等。
195.接着,对点群数据的种类进行说明。图4是表示点群数据的种类的图。如图4所示,点群数据包含静态对象和动态对象。
196.静态对象是任意时间(某个时刻)的三维点群数据。动态对象是随时间变化的三维点群数据。以下,将某时刻的三维点群数据称为pcc帧或者帧。
197.对象可以是如通常的影像数据那样区域被某种程度限制的点群,也可以是像地图信息那样区域未被限制的大规模点群。
198.另外,也可以有各种密度的点群数据,存在稀疏的点群数据和密集的点群数据。
199.以下,对各处理部的详细情况进行说明。传感器信息通过lidar或者测距仪等距离传感器、立体相机或者多个单眼相机的组合等各种方法来获得。点群数据生成部4618基于由传感器信息获得部4617得到的传感器信息生成点群数据。点群数据生成部4618生成位置信息作为点群数据,对位置信息附加针对该位置信息的属性信息。
200.点群数据生成部4618也可以在生成位置信息或者附加属性信息时,对点群数据进行加工。例如,点群数据生成部4618也可以通过删除位置重复的点群来减少数据量。另外,点群数据生成部4618也可以对位置信息进行变换(位置转变、旋转或者标准化等),也可以对属性信息进行渲染(rendering)。
201.此外,在图1中,点群数据生成系统4611包含于三维数据编码系统4601,但也可以独立设置于三维数据编码系统4601的外部。
202.编码部4613基于预先规定的编码方法对点群数据进行编码,由此生成编码数据。编码方法大致有以下2种。第1种是使用了位置信息的编码方法,以后将该编码方法记载为第1编码方法。第2种是使用了视频编解码器的编码方法,以后将该编码方法记载为第2编码方法。
203.解码部4624基于预先规定的编码方法对编码数据进行解码,由此对点群数据进行解码。
204.复用部4614通过使用现有的复用方式对编码数据进行复用,从而生成复用数据。所生成的复用数据被传输或蓄积。复用部4614除了pcc编码数据以外,还复用影像、声音、字幕、应用程序、文件等其他媒体、或者基准时刻信息。另外,复用部4614还可以对与传感器信息或者点群数据关联的属性信息进行复用。
205.作为复用方式或文件格式,有isobmff、作为基于isobmff的传输方式的mpeg-dash、mmt、mpeg-2ts systems、rmp等。
206.逆复用部4623从复用数据中提取pcc编码数据、其他媒体以及时刻信息等。
207.输入输出部4615使用与广播或通信等传输的介质或蓄积的介质一致的方法传输复用数据。输入输出部4615可以经由互联网与其他设备进行通信,也可以与云服务器等蓄积部进行通信。
208.作为通信协议,使用http、ftp、tcp或udp等。既可以使用pull型的通信方式,也可以使用push型的通信方式。
209.可以使用有线传输和无线传输中的任一种。作为有线传输,使用ethernet(注册商
标)、usb、rs-232c、hdmi(注册商标)或同轴电缆等。作为无线传输,使用无线lan、wi-fi(注册商标)、bluetooth(注册商标)或毫米波等。
210.此外,作为广播方式,例如使用dvb-t2、dvb-s2、dvb-c2、atsc3.0或isdb-s3等。
211.图5是表示作为进行第1编码方法的编码的编码部4613的例子的第1编码部4630的结构的图。图6是第1编码部4630的框图。第1编码部4630通过用第1编码方法对点群数据进行编码来生成编码数据(编码流)。该第1编码部4630包括位置信息编码部4631、属性信息编码部4632、附加信息编码部4633以及复用部4634。
212.第1编码部4630具有考虑三维结构来进行编码的特征。另外,第1编码部4630具有属性信息编码部4632使用从位置信息编码部4631得到的信息进行编码的特征。第1编码方法也被称为gpcc(geometry based pcc)。
213.点群数据是ply文件那样的pcc点群数据、或者根据传感器信息生成的pcc点群数据,包含位置信息(position)、属性信息(attribute)以及其他的附加信息(metadata)。位置信息被输入到位置信息编码部4631,属性信息被输入到属性信息编码部4632,附加信息被输入到附加信息编码部4633。
214.位置信息编码部4631通过对位置信息进行编码,来生成作为编码数据的编码位置信息(compressed geometry)。例如,位置信息编码部4631使用八叉树等n叉树结构对位置信息进行编码。具体而言,在八叉树中,对象空间被分割为8个节点(子空间),生成表示各节点中是否包含点群的8比特的信息(占用率编码)。另外,包含点群的节点进一步被分割为8个节点,生成表示在该8个节点的每一个中是否包含点群的8比特的信息。反复进行该处理,直到成为预先规定的阶层或节点中包含的点群的数量的阈值以下为止。
215.属性信息编码部4632通过使用由位置信息编码部4631生成的结构信息进行编码,来生成作为编码数据的编码属性信息(compressed attribute)。例如,属性信息编码部4632基于由位置信息编码部4631生成的八叉树结构,决定在处理对象的对象点(对象节点)的编码中参照的参照点(参照节点)。例如,属性信息编码部4632参照周边节点或相邻节点中的八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
216.另外,属性信息的编码处理可以包括量化处理、预测处理和算术编码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点,或者在编码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,编码的参数是量化处理中的量化参数、或者算术编码中的上下文等。
217.附加信息编码部4633通过对附加信息中的可压缩的数据进行编码,来生成作为编码数据的编码附加信息(compressed metadata)。
218.复用部4634通过对编码位置信息、编码属性信息、编码附加信息以及其他附加信息进行复用,来生成作为编码数据的编码流(compressed stream)。所生成的编码流向未图示的系统层的处理部输出。
219.接着,对作为进行第1编码方法的解码的解码部4624的例子的第1解码部4640进行说明。图7是表示第1解码部4640的结构的图。图8是第1解码部4640的框图。第1解码部4640通过用第1编码方法对用第1编码方法编码后的编码数据(编码流)进行解码,来生成点群数据。该第1解码部4640包括逆复用部4641、位置信息解码部4642、属性信息解码部4643以及
附加信息解码部4644。
220.从未图示的系统层的处理部将作为编码数据的编码流(compressed stream)输入到第1解码部4640。
221.逆复用部4641从编码数据中分离编码位置信息(compressed geometry)、编码属性信息(compressed attribute)、编码附加信息(compressed metadata)以及其他附加信息。
222.位置信息解码部4642通过对编码位置信息进行解码来生成位置信息。例如,位置信息解码部4642根据由八叉树等n叉树结构表示的编码位置信息,复原用三维坐标表示的点群的位置信息。
223.属性信息解码部4643基于由位置信息解码部4642生成的结构信息,对编码属性信息进行解码。例如,属性信息解码部4643基于由位置信息解码部4642得到的八叉树结构,决定在处理对象的对象点(对象节点)的解码中参照的参照点(参照节点)。例如,属性信息解码部4643参照周边节点或相邻节点中的八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
224.另外,属性信息的解码处理也可以包括逆量化处理、预测处理以及算术解码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点,或者在解码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,解码的参数是逆量化处理中的量化参数、或者算术解码中的上下文等。
225.附加信息解码部4644通过对编码附加信息进行解码来生成附加信息。另外,第1解码部4640在解码时使用位置信息以及属性信息的解码处理所需的附加信息,将应用程序所需的附加信息输出到外部。
226.接着,对作为进行第2编码方法的编码的编码部4613的例子的第2编码部4650进行说明。图9是表示第2编码部4650的结构的图。图10是第2编码部4650的框图。
227.第2编码部4650通过用第2编码方法对点群数据进行编码来生成编码数据(编码流)。该第2编码部4650包括附加信息生成部4651、位置图像生成部4652、属性图像生成部4653、影像编码部4654、附加信息编码部4655以及复用部4656。
228.第2编码部4650具有如下特征:通过将三维结构投影于二维图像来生成位置图像以及属性图像,并使用现有的影像编码方式对所生成的位置图像以及属性图像进行编码。第2编码方法也被称为vpcc(video based pcc,基于视频的pcc)。
229.点群数据是ply文件那样的pcc点群数据、或者根据传感器信息生成的pcc点群数据,包含位置信息(position)、属性信息(attribute)以及其他的附加信息(metadata)。
230.附加信息生成部4651通过将三维结构投影到二维图像,来生成多个二维图像的映射信息。
231.位置图像生成部4652基于位置信息和由附加信息生成部4651生成的映射信息,生成位置图像(geometry image)。该位置图像例如是表示距离(depth)作为像素值的距离图像。另外,该距离图像既可以是从一个视点观察多个点群的图像(在一个二维平面上投影了多个点群的图像),也可以是从多个视点观察多个点群的多个图像,也可以是将这些多个图像整合而成的一个图像。
232.属性图像生成部4653基于属性信息和由附加信息生成部4651生成的映射信息,生
成属性图像。该属性图像例如是表示属性信息(例如颜色(rgb))作为像素值的图像。另外,该图像可以是从一个视点观察多个点群的图像(在一个二维平面上投影了多个点群的图像),也可以是从多个视点观察多个点群的多个图像,也可以是将这些多个图像整合而成的一个图像。
233.影像编码部4654通过使用影像编码方式对位置图像以及属性图像进行编码,来生成作为编码数据的编码位置图像(compressed geometry image)以及编码属性图像(compressed attribute image)。另外,作为影像编码方式,可以使用公知的任意编码方法。例如,影像编码方式是avc或hevc等。
234.附加信息编码部4655通过对点群数据中包含的附加信息以及映射信息等进行编码来生成编码附加信息(compressed metadata)。
235.复用部4656通过对编码位置图像、编码属性图像、编码附加信息以及其他附加信息进行复用,来生成作为编码数据的编码流(compressed stream)。所生成的编码流向未图示的系统层的处理部输出。
236.接着,对作为进行第2编码方法的解码的解码部4624的例子的第2解码部4660进行说明。图11是表示第2解码部4660的结构的图。图12是第2解码部4660的框图。第2解码部4660通过用第2编码方法对通过第2编码方法编码后的编码数据(编码流)进行解码,来生成点群数据。该第2解码部4660包括逆复用部4661、影像解码部4662、附加信息解码部4663、位置信息生成部4664以及属性信息生成部4665。
237.从未图示的系统层的处理部将作为编码数据的编码流(compressed stream)输入到第2解码部4660。
238.逆复用部4661从编码数据中分离编码位置图像(compressed geometry image)、编码属性图像(compressed attribute image)、编码附加信息(compressed metadata)以及其他附加信息。
239.影像解码部4662通过使用影像编码方式对编码位置图像以及编码属性图像进行解码,来生成位置图像以及属性图像。此外,作为影像编码方式,可以使用公知的任意的编码方式。例如,影像编码方式是avc或hevc等。
240.附加信息解码部4663通过对编码附加信息进行解码,来生成包含映射信息等的附加信息。
241.位置信息生成部4664使用位置图像和映射信息生成位置信息。属性信息生成部4665使用属性图像和映射信息生成属性信息。
242.第2解码部4660在解码时使用解码所需的附加信息,将应用程序所需的附加信息输出到外部。
243.以下,说明pcc编码方式中的课题。图13是表示与pcc编码数据有关的协议栈的图。图13表示在pcc编码数据中复用、传输或蓄积影像(例如hevc)或声音等其他媒体的数据的例子。
244.复用方式及文件格式具有用于复用、传输或蓄积各种编码数据的功能。为了传输或蓄积编码数据,必须将编码数据变换为复用方式的格式。例如,在hevc中,规定了将编码数据存放在被称为nal单元的数据结构中,并将nal单元存放到isobmff中的技术。
245.另一方面,当前,作为点群数据的编码方法,研究了第1编码方法(codec1)以及第2
编码方法(codec2),但没有定义编码数据的结构以及将编码数据向系统格式存放的方法,存在无法直接进行编码部中的mux处理(复用)、传输以及蓄积这样的课题。
246.另外,以下,如果没有特定的编码方法的记载,则表示第1编码方法和第2编码方法中的任一个。
247.(实施方式2)
248.在本实施方式中,对将nal单元存放到isobmff的文件中的方法进行说明。
249.isobmff(iso based media file format,基于iso的媒体文件格式)是iso/iec14496-12中规定的文件格式标准。isobmff规定了能够复用并存放视频、音频和文本等各种媒体的格式,是不依赖于媒体的标准。
250.对isobmff的基本结构(文件)进行说明。isobmff中的基本单位是盒子(box)。盒子由type(类型)、length(长度)、data(数据)构成,组合了各种type的盒子的集合是文件。
251.图14是表示isobmff的基本结构(文件)的图。isobmff的文件主要包括文件的品牌(brand)为4cc(4字符代码)所示的ftyp、存放控制信息等元数据的moov以及存放数据的mdat等盒子。
252.另外规定了针对isobmff的文件的每个媒体的存放方法,例如,avc视频和hevc视频的存放方法由iso/iec14496-15规定。在此,为了蓄积或传输pcc编码数据,考虑将isobmff的功能扩展使用,但还没有将pcc编码数据存放在isobmff的文件中的规定。因此,在本实施方式中,对将pcc编码数据存放到isobmff的文件中的方法进行说明。
253.图15是表示将pcc编解码器共同的nal单元存放到isobmff的文件中的情况下的协议栈的图。在此,将pcc编解码器共同的nal单元存放在isobmff的文件中。nal单元是pcc编解码器共同的,但由于nal单元中存放有多个pcc编解码器,因此优选规定与各个编解码器相应的存放方法(carriage of codec1、carriage of codec2)。
254.(实施方式3)
255.在本实施方式中,对由上述的第1编码部4630或第2编码部4650生成的编码数据(位置信息(geometry)、属性信息(attribute)、附加信息(metadata))的类别、以及附加信息(元数据)的生成方法、以及复用部中的复用处理进行说明。另外,附加信息(元数据)有时也表述为参数集或控制信息。
256.在本实施方式中,以在图4中说明的动态对象(随时间变化的三维点群数据)为例进行说明,但在静态对象(任意时刻的三维点群数据)的情况下也可以使用同样的方法。
257.图16是表示本实施方式的三维数据编码装置中包含的编码部4801和复用部4802的结构的图。编码部4801例如对应于上述的第1编码部4630或第2编码部4650。复用部4802对应于上述复用部4634或4656。
258.编码部4801对多个pcc(point cloud compression)帧的点群数据进行编码,生成多个位置信息、属性信息以及附加信息的编码数据(multiple compressed data)。
259.复用部4802通过将多个数据类别(位置信息、属性信息以及附加信息)的数据进行nal单元化,来将数据变换为考虑了解码装置中的数据访问的数据结构。
260.图17是表示由编码部4801生成的编码数据的结构例的图。图中的箭头表示编码数据的解码的依赖关系,箭头的来向依赖于箭头的去向的数据。即,解码装置对箭头的去向的数据进行解码,使用该解码后的数据对箭头的来向的数据进行解码。换言之,所谓依赖是指
在依赖源的数据的处理(编码或解码等)中参照(使用)依赖目标的数据。
261.首先,对位置信息的编码数据的生成处理进行说明。编码部4801通过对各帧的位置信息进行编码,来生成每个帧的编码位置数据(compressed geometry data)。另外,用g(i)表示编码位置数据。i表示帧编号或帧的时刻等。
262.另外,编码部4801生成与各帧对应的位置参数集(gps(i))。位置参数集包含能够在编码位置数据的解码中使用的参数。另外,每个帧的编码位置数据依赖于对应的位置参数集。
263.另外,将由多个帧构成的编码位置数据定义为位置序列(geometry sequence)。编码部4801生成位置序列参数集(geometry sequence ps:也记为位置sps),该位置序列参数集存放在针对位置序列内的多个帧的解码处理中共同使用的参数。位置序列依赖于位置sps。
264.接着,对属性信息的编码数据的生成处理进行说明。编码部4801通过对各帧的属性信息进行编码,生成每个帧的编码属性数据(compressed attribute data)。此外,用a(i)表示编码属性数据。另外,在图17中,示出了存在属性x和属性y的例子,用ax(i)表示属性x的编码属性数据,用ay(i)表示属性y的编码属性数据。
265.此外,编码部4801生成与各帧对应的属性参数集(aps(i))。另外,用axps(i)表示属性x的属性参数集,用ayps(i)表示属性y的属性参数集。属性参数集包含能够在编码属性信息的解码中使用的参数。编码属性数据依赖于对应的属性参数集。
266.另外,将由多个帧构成的编码属性数据定义为属性序列(attribute sequence)。编码部4801生成属性序列参数集(attribute sequence ps:也记为属性sps),该属性序列参数集存放在针对属性序列内的多个帧的解码处理中共同使用的参数。属性序列依赖于属性sps。
267.此外,在第1编码方法中,编码属性数据依赖于编码位置数据。
268.另外,在图17中,示出了存在2种属性信息(属性x和属性y)的情况的例子。在存在2种属性信息的情况下,例如由2个编码部生成各自的数据以及元数据。另外,例如,按照属性信息的每个种类定义属性序列,按属性信息的每个种类生成属性sps。
269.另外,在图17中,示出了位置信息为1种、属性信息为2种的例子,但不限于此,属性信息可以是1种,也可以是3种以上。在该情况下,也能够通过同样的方法生成编码数据。另外,在不具有属性信息的点群数据的情况下,也可以不存在属性信息。在该情况下,编码部4801也可以不生成与属性信息相关联的参数集。
270.接着,对附加信息(元数据)的生成处理进行说明。编码部4801生成作为pcc流整体的参数集的pcc流ps(pcc stream ps:也记作流ps)。编码部4801在流ps中存放能够针对1个或者多个位置序列以及1个或者多个属性序列的解码处理中共同使用的参数。例如,流ps包含表示点群数据的编解码器的识别信息、以及表示在编码中使用的算法的信息等。位置序列和属性序列依赖于流ps。
271.接着,对访问单元以及gof进行说明。在本实施方式中,导入新的访问单元(access unit:au)以及gof(group of frame)的想法。
272.访问单元是用于在解码时访问数据的基本单位,由1个以上的数据以及1个以上的元数据构成。例如,访问单元由同一时刻的位置信息和1个或多个属性信息构成。gof是随机
访问单位,由1个以上的访问单元构成。
273.编码部4801生成访问单元头部(au header)作为表示访问单元的开头的识别信息。编码部4801在访问单元头部中存放访问单元的参数。例如,访问单元头部包含访问单元中包含的编码数据的结构或信息。另外,访问单元头部包含访问单元中包含的数据共同使用的参数,例如编码数据的解码的参数等。
274.此外,编码部4801也可以生成不包含访问单元的参数的访问单元定界符来代替访问单元头部。该访问单元定界符被用作表示访问单元的开头的识别信息。解码装置通过检测访问单元头部或访问单元定界符,来识别访问单元的开头。
275.接着,对gof开头的识别信息的生成进行说明。编码部4801生成gof头部(gof header)作为表示gof的开头的识别信息。编码部4801在gof头部中存放gof的参数。例如,gof头部包含gof中包含的编码数据的结构或信息。另外,gof头部包含在gof中包含的数据中共同使用的参数,例如编码数据的解码的参数等。
276.此外,编码部4801也可以生成不包含gof的参数的gof定界符来代替gof头部。该gof定界符被用作表示gof的开头的识别信息。解码装置通过检测gof头部或gof定界符,来识别gof的开头。
277.在pcc编码数据中,例如,访问单元被定义为pcc帧单位。解码装置基于访问单元开头的识别信息,访问pcc帧。
278.此外,例如,gof被定义为1个随机访问单位。解码装置基于gof开头的识别信息,访问随机访问单位。例如,如果pcc帧相互没有依赖关系,能够单独进行解码,则也可以将pcc帧定义为随机访问单位。
279.另外,可以对1个访问单元分配2个以上的pcc帧,也可以对1个gof分配多个随机访问单元。
280.另外,编码部4801也可以定义并生成上述以外的参数集或元数据。例如,编码部4801也可以生成sei(supplemental enhancement information),该sei存放有可能在解码时不一定使用的参数(选项的参数)。
281.接着,对编码数据的结构以及编码数据向nal单元的存放方法进行说明。
282.例如,对编码数据的每个种类规定数据形式。图18是表示编码数据以及nal单元的例子的图。
283.例如,如图18所示,编码数据包含头部和有效载荷。此外,编码数据也可以包含表示编码数据、头部或有效载荷的长度(数据量)的长度信息。此外,编码数据也可以不包含头部。
284.头部例如包含用于确定数据的识别信息。该识别信息例如表示数据类别或帧编号。
285.头部例如包含表示参照关系的识别信息。该识别信息例如在数据间存在依赖关系的情况下存放在头部中,是用于根据参照源参照参照目标的信息。例如,在参照目标的头部中包含用于确定该数据的识别信息。在参照源的头部中包含表示参照目标的识别信息。
286.此外,在根据其他信息能够识别或者能够导出参照目标或者参照源的情况下,也可以省略用于确定数据的识别信息或者表示参照关系的识别信息。
287.复用部4802将编码数据存放在nal单元的有效载荷中。nal单元头部中包含作为编
码数据的识别信息的pcc_nal_unit_type。图19是表示pcc_nal_unit_type的语义的例子的图。
288.如图19所示,在pcc_codec_type是编解码器1(codec1:第1编码方法)的情况下,pcc_nal_unit_type的值0~10被分配给编解码器1中的编码位置数据(geometry)、编码属性x数据(attributex)、编码属性y数据(attributey)、位置ps(geom.ps)、属性xps(attrx.ps)、属性yps(attry.ps)、位置sps(geometry sequence ps)、属性xsps(attributex sequence ps)、属性ysps(attributey sequence ps)、au头部(au header)、gof头部(gof header)。另外,值11以后,被分配给编解码器1的备用。
289.在pcc_codec_type是编解码器2(codex2:第2编码方法)的情况下,pcc_nal_unit_type的值0~2被分配给编解码器的数据a(dataa)、元数据a(metadataa)、元数据b(metadatab)。另外,值3以后,被分配给编解码器2的备用。
290.接着,对数据的发送顺序进行说明。以下,对nal单元的发送顺序的制约进行说明。
291.复用部4802以gof或au单位汇总并发送nal单元。复用部4802在gof的开头配置gof头部,在au的开头配置au头部。
292.即使在由于丢包等丢失了数据的情况下,复用部4802也可以按每个au配置序列参数集(sps),使得解码装置能够从下一个au进行解码。
293.在编码数据中存在解码的依赖关系的情况下,解码装置在对参照目标的数据进行解码之后,对参照源的数据进行解码。在解码装置中,为了能够不对数据进行重新排序而按照接收到的顺序进行解码,复用部4802先发送参照目标的数据。
294.图20是表示nal单元的发送顺序的例子的图。图20表示位置信息优先、参数优先、数据整合这3个例子。
295.位置信息优先的发送顺序是将与位置信息有关的信息和与属性信息有关的信息分别汇总并发送的例子。在该发送顺序的情况下,与位置信息有关的信息的发送比与属性信息有关的信息的发送更快地完成。
296.例如,通过使用该发送顺序而不对属性信息进行解码的解码装置通过忽略属性信息的解码,有可能设置不进行处理的时间。另外,例如,在想要尽快解码位置信息的解码装置的情况下,通过尽快得到位置信息的编码数据,有可能更快地对位置信息进行解码。
297.另外,在图20中,将属性xsps和属性ysps整合,记载为属性sps,但也可以将属性xsps和属性ysps个别配置。
298.在参数集优先的发送顺序中,先发送参数集,之后发送数据。
299.如上所述,按照nal单元发送顺序的制约,复用部4802以怎样的顺序发送nal单元皆可。例如,也可以定义顺序识别信息,复用部4802具有以多个样式的顺序发送nal单元的功能。例如,在流ps中存放nal单元的顺序识别信息。
300.三维数据解码装置也可以基于顺序识别信息进行解码。也可以从三维数据解码装置向三维数据编码装置指示期望的发送顺序,三维数据编码装置(复用部4802)按照所指示的发送顺序来控制发送顺序。
301.此外,复用部4802也可以如数据整合的发送顺序那样,如果是按照发送顺序的制约的范围,则生成合并了多个功能的编码数据。例如,如图20所示,可以将gof头部和au头部整合,也可以将axps与ayps整合。在该情况下,在pcc_nal_unit_type中,定义了表示作为具
有多个功能的数据的标识符。
302.以下,对本实施方式的变形例进行说明。如帧级别的ps、序列级别的ps、pcc序列级别的ps那样,ps具有级别,如果将pcc序列级别设为上位的级别,并将帧级别设为下位的级别,则参数的存放方法也可以使用下述的方法。
303.用比默认的ps的值靠上位的ps表示。另外,在下位的ps的值与上位的ps的值不同的情况下,用下位的ps表示ps的值。或者,在上位不记载ps的值,在下位的ps中记载ps的值。或者,将ps的值用下位的ps表示,还是用上位的ps表示,还是用双方表示的信息表示在下位的ps和上位的ps的任一方或双方。或者,也可以将下位的ps合并为上位的ps。或者,在下位的ps与上位的ps重复的情况下,复用部4802也可以省略任一方的发送。
304.此外,编码部4801或复用部4802也可以将数据分割为切片或瓦片等,并发送分割后的数据。在分割后的数据中包含用于识别分割后的数据的信息,在参数集中包含用于分割数据的解码的参数。在该情况下,在pcc_nal_unit_type中,定义了表示是存放瓦片或切片的数据或参数的数据的标识符。
305.(实施方式4)
306.在hevc编码中,为了能够进行解码装置中的并行处理,存在切片或瓦片这样的数据分割的工具,但还不是pcc(point cloud compression)编码。
307.在pcc中,通过并行处理、压缩效率以及压缩算法,考虑各种数据分割方法。在此,对切片以及瓦片的定义、数据结构以及收发方法进行说明。
308.图21是表示本实施方式的三维数据编码装置中包含的第1编码部4910的结构的框图。第1编码部4910通过用第1编码方法(gpcc(geometry based pcc))对点群数据进行编码来生成编码数据(编码流)。该第1编码部4910包括分割部4911、多个位置信息编码部4912、多个属性信息编码部4913、附加信息编码部4914、以及复用部4915。
309.分割部4911通过分割点群数据来生成多个分割数据。具体而言,分割部4911通过将点群数据的空间分割为多个子空间来生成多个分割数据。在此,子空间是指瓦片以及切片中的一方或者瓦片以及切片的组合。更具体而言,点群数据包含位置信息、属性信息以及附加信息。分割部4911将位置信息分割为多个分割位置信息,将属性信息分割为多个分割属性信息。另外,分割部4911生成与分割相关的附加信息。
310.多个位置信息编码部4912通过对多个分割位置信息进行编码来生成多个编码位置信息。例如,多个位置信息编码部4912对多个分割位置信息进行并行处理。
311.多个属性信息编码部4913通过对多个分割属性信息进行编码来生成多个编码属性信息。例如,多个属性信息编码部4913对多个分割属性信息进行并行处理。
312.附加信息编码部4914通过对点群数据中包含的附加信息和在分割部4911中分割时生成的与数据分割相关的附加信息进行编码,来生成编码附加信息。
313.复用部4915通过对多个编码位置信息、多个编码属性信息以及编码附加信息进行复用来生成编码数据(编码流),并发送所生成的编码数据。另外,编码附加信息在解码时使用。
314.另外,在图21中,示出了位置信息编码部4912和属性信息编码部4913的数量分别为2个的例子,但位置信息编码部4912和属性信息编码部4913的数量分别可以为1个,也可以为3个以上。另外,多个分割数据可以如cpu内的多个核那样在同一芯片内被并行处理,也
可以由多个芯片的核进行并行处理,也可以由多个芯片的多个核进行并行处理。
315.图22是表示第1解码部4920的结构的框图。第1解码部4920通过对编码数据(编码流)进行解码来复原点群数据,所述编码数据通过用第1编码方法(gpcc)对点群数据进行编码而生成。该第1解码部4920包括逆复用部4921、多个位置信息解码部4922、多个属性信息解码部4923、附加信息解码部4924、以及结合部4925。
316.逆复用部4921通过对编码数据(编码流)进行逆复用,生成多个编码位置信息、多个编码属性信息以及编码附加信息。
317.多个位置信息解码部4922通过对多个编码位置信息进行解码来生成多个分割位置信息。例如,多个位置信息解码部4922对多个编码位置信息进行并行处理。
318.多个属性信息解码部4923通过对多个编码属性信息进行解码来生成多个分割属性信息。例如,多个属性信息解码部4923对多个编码属性信息进行并行处理。
319.多个附加信息解码部4924通过对编码附加信息进行解码来生成附加信息。
320.结合部4925通过使用附加信息结合多个分割位置信息来生成位置信息。结合部4925通过使用附加信息结合多个分割属性信息来生成属性信息。
321.另外,在图22中,示出了位置信息解码部4922及属性信息解码部4923的数量分别为2个的例子,但位置信息解码部4922及属性信息解码部4923的数量分别可以为1个,也可以为3个以上。另外,多个分割数据可以如cpu内的多个核那样在同一芯片内被并行处理,也可以由多个芯片的核进行并行处理,也可以由多个芯片的多个核进行并行处理。
322.接着,对分割部4911的结构进行说明。图23是分割部4911的框图。分割部4911包括切片分割部4931(slice divider)、位置信息瓦片分割部4932(geometry tile divider)、以及属性信息瓦片分割部4933(attribute tile divider)。
323.切片分割部4931通过将位置信息(position(geometry))分割为切片来生成多个切片位置信息。另外,切片分割部4931通过将属性信息(attribute)分割为切片来生成多个切片属性信息。另外,切片分割部4931输出包含切片分割的信息以及在切片分割中生成的信息的切片附加信息(slice metadata)。
324.位置信息瓦片分割部4932通过将多个切片位置信息分割为瓦片来生成多个分割位置信息(多个瓦片位置信息)。另外,位置信息瓦片分割部4932输出包含位置信息的瓦片分割的信息、以及在位置信息的瓦片分割中生成的信息的位置瓦片附加信息(geometry tile metadata)。
325.属性信息瓦片分割部4933通过将多个切片属性信息分割为瓦片来生成多个分割属性信息(多个瓦片属性信息)。另外,属性信息瓦片分割部4933输出包含属性信息的瓦片分割的信息、以及在属性信息的瓦片分割中生成的信息的属性瓦片附加信息(attribute tile metadata)。
326.另外,被分割的切片或瓦片的数量为1以上。即,也可以不进行切片或瓦片的分割。
327.另外,在此,示出了在切片分割后进行瓦片分割的例子,但也可以在瓦片分割后进行切片分割。另外,除了切片以及瓦片之外,还可以定义新的分割类别,以3个以上的分割类别进行分割。
328.以下,对点群数据的分割方法进行说明。图24是表示切片以及瓦片分割的例子的图。
329.首先,对切片分割的方法进行说明。分割部4911以切片单位将三维点群数据分割为任意的点群。分割部4911在切片分割中,不分割构成点的位置信息和属性信息,将位置信息和属性信息一并分割。即,分割部4911以任意的点的位置信息和属性信息属于相同的切片的方式进行切片分割。另外,按照这些方法,分割数以及分割方法是怎样的方法都可以。另外,分割的最小单位是点。例如,位置信息和属性信息的分割数相同。例如,与切片分割后的位置信息对应的三维点和与属性信息对应的三维点包含在同一切片中。
330.另外,分割部4911在切片分割时生成分割数以及分割方法的附加信息即切片附加信息。切片附加信息在位置信息和属性信息中相同。例如,切片附加信息包括表示分割后的边界框的基准坐标位置、大小或者边的长度的信息。另外,切片附加信息包含表示分割数以及分割类型等的信息。
331.接着,对瓦片分割的方法进行说明。分割部4911将切片分割后的数据分割为切片位置信息(g切片)和切片属性信息(a切片),将切片位置信息和切片属性信息分别分割为瓦片单位。
332.另外,在图24中,示出了以八叉树结构进行分割的例子,但分割数以及分割方法是怎样的方法都可以。
333.另外,分割部4911可以将位置信息和属性信息用不同的分割方法进行分割,也可以用相同的分割方法进行分割。另外,分割部4911可以将多个切片用不同的分割方法分割为瓦片,也可以用相同的分割方法分割为瓦片。
334.另外,分割部4911在瓦片分割时生成分割数以及分割方法的瓦片附加信息。瓦片附加信息(位置瓦片附加信息以及属性瓦片附加信息)在位置信息和属性信息中独立。例如,瓦片附加信息包含表示分割后的边界框的基准坐标位置、大小或边的长度的信息。另外,瓦片附加信息包含表示分割数以及分割类型等的信息。
335.接着,对将点群数据分割为切片或瓦片的方法的例子进行说明。作为切片或瓦片分割的方法,分割部4911可以使用预先规定的方法,也可以根据点群数据自适应地切换使用的方法。
336.在切片分割时,分割部4911对位置信息和属性信息一并分割三维空间。例如,分割部4911判定对象的形状,并且根据对象的形状将三维空间划分成为切片。例如,分割部4911提取树或建筑物等对象,并且以对象单位进行分割。例如,分割部4911以1个或多个对象的整体包含在1个切片中的方式进行切片分割。或者,分割部4911将一个对象分割为多个切片。
337.在该情况下,编码装置例如也可以对每个切片改变编码方法。例如,编码装置也可以对特定的对象或对象的特定的一部分使用高品质的压缩方法。在这种情况下,编码装置可以将表示每个切片的编码方法的信息存放在附加信息(元数据)中。
338.另外,分割部4911也可以基于地图信息或者位置信息,以各切片与预先规定的坐标空间对应的方式进行切片分割。
339.在瓦片分割时,分割部4911将位置信息和属性信息独立地分割。例如,分割部4911根据数据量或处理量将切片分割为瓦片。例如,分割部4911判定切片的数据量(例如切片中包含的三维点的数量)是否比预先规定的阈值多。分割部4911在切片的数据量比阈值多的情况下将切片分割为瓦片。分割部4911在切片的数据量比阈值少时不将切片分割为瓦片。
340.例如,分割部4911将切片分割为瓦片,使得解码装置中的处理量或处理时间成为一定的范围(预先规定的值以下)。由此,解码装置中的每个瓦片的处理量成为一定,解码装置中的分散处理变得容易。
341.另外,在处理量在位置信息和属性信息中不同的情况下,例如,在位置信息的处理量比属性信息的处理量多的情况下,分割部4911使位置信息的分割数比属性信息的分割数多。
342.另外,例如,也可以是,在根据内容在解码装置中对位置信息进行快速解码并显示,并在之后可以缓慢地对属性信息进行解码并显示的情况下,分割部4911使位置信息的分割数比属性信息的分割数多。由此,解码装置能够增多位置信息的并列数,因此能够使位置信息的处理比属性信息的处理高速化。
343.此外,解码装置不一定需要对切片化或瓦片化的数据进行并行处理,也可以根据解码处理部的数量或能力,判定是否对它们进行并行处理。
344.通过用如上所述的方法进行分割,能够实现与内容或对象相应的自适应的编码。另外,能够实现解码处理中的并行处理。由此,点群编码系统或者点群解码系统的灵活性提高。
345.图25是表示切片以及瓦片的分割的样式的例子的图。图中的du是数据单位(dataunit),表示瓦片或切片的数据。另外,各du包含切片索引(sliceindex)和瓦片索引(tileindex)。图中的du的右上的数值表示切片索引,du的左下的数值表示瓦片索引。
346.在样式1中,在切片分割中,在g切片和a切片中分割数以及分割方法相同。在瓦片分割中,针对g切片的分割数以及分割方法与针对a切片的分割数以及分割方法不同。另外,在多个g切片之间使用相同的分割数以及分割方法。在多个a切片之间使用相同的分割数以及分割方法。
347.在样式2中,在切片分割中,在g切片和a切片中分割数以及分割方法相同。在瓦片分割中,针对g切片的分割数以及分割方法与针对a切片的分割数以及分割方法不同。另外,在多个g切片之间分割数以及分割方法不同。在多个a切片之间分割数以及分割方法不同。
348.接着,对分割数据的编码方法进行说明。三维数据编码装置(第1编码部4910)对分割后的数据分别进行编码。三维数据编码装置在对属性信息进行编码时,生成表示基于哪个结构信息(位置信息、附加信息或其他属性信息)进行了编码的依赖关系信息作为附加信息。即,依赖关系信息例如表示参照目标(依赖目标)的结构信息。在该情况下,三维数据编码装置基于与属性信息的分割形状对应的结构信息生成依赖关系信息。此外,三维数据编码装置也可以基于与多个分割形状对应的结构信息生成依存关系信息。
349.也可以是,依赖关系信息由三维数据编码装置生成,将所生成的依赖关系信息发送到三维数据解码装置。或者,也可以是,三维数据解码装置生成依赖关系信息,三维数据编码装置不发送依赖关系信息。另外,也可以是,预先规定三维数据编码装置使用的依赖关系,三维数据编码装置不发送依赖关系信息。
350.图26是表示各数据的依赖关系的一例的图。图中的箭头的去向表示依赖目标,箭头的来向表示依赖源。三维数据解码装置按照从依赖目标到依赖源的顺序对数据进行解码。另外,图中由实线表示的数据是实际发送的数据,由虚线表示的数据是不被发送的数据。
351.另外,在该图中,g表示位置信息,a表示属性信息。g
s1
表示切片编号1的位置信息,g
s2
表示切片编号2的位置信息。g
s1t1
表示切片编号1且瓦片编号1的位置信息,g
s1t2
表示切片编号1且瓦片编号2的位置信息,g
s2t1
表示切片编号2且瓦片编号1的位置信息,g
s2t2
表示切片编号2且瓦片编号2的位置信息。同样,a
s1
表示切片编号1的属性信息,a
s2
表示切片编号2的属性信息。a
s1t1
表示切片编号1且瓦片编号1的属性信息,a
s1t2
表示切片编号1且瓦片编号2的属性信息,a
s2t1
表示切片编号2且瓦片编号1的属性信息,a
s2t2
表示切片编号2且瓦片编号2的属性信息。
352.mslice表示切片附加信息,mgtile表示位置瓦片附加信息,matile表示属性瓦片附加信息。d
s1t1
表示属性信息a
s1t1
的依赖关系信息,d
s2t1
表示属性信息a
s2t1
的依赖关系信息。
353.另外,三维数据编码装置也可以以解码顺序对数据进行重新排序,使得不需要在三维数据解码装置中对数据进行重新排序。另外,可以在三维数据解码装置中对数据进行重新排序,也可以在三维数据编码装置和三维数据解码装置双方中对数据进行重新排序。
354.图27是表示数据的解码顺序的例子的图。在图27的例子中,从左侧的数据起依次进行解码。三维数据解码装置在处于依赖关系的数据间,从依赖目标的数据先解码。例如,三维数据编码装置以成为该顺序的方式预先将数据重新排序并发送。另外,只要是依赖目标的数据在先的顺序,则怎样的顺序都可以。另外,三维数据编码装置也可以将附加信息以及依赖关系信息先于数据发送。
355.图28是表示由三维数据编码装置进行的处理的流程的流程图。首先,三维数据编码装置如上所述对多个切片或瓦片的数据进行编码(s4901)。接着,如图27所示,三维数据编码装置以依赖目标的数据为先的方式对数据进行重新排序(s4902)。接着,三维数据编码装置对重新排序后的数据进行复用(nal单元化)(s4903)。
356.接着,对第1解码部4920中包含的结合部4925的结构进行说明。图29是表示结合部4925的结构的框图。结合部4925包括位置信息瓦片结合部4941(geometry tile combiner)、属性信息瓦片结合部4942(attribute tile combiner)、以及切片结合部(slice combiner)。
357.位置信息瓦片结合部4941通过使用位置瓦片附加信息结合多个分割位置信息,来生成多个切片位置信息。属性信息瓦片结合部4942通过使用属性瓦片附加信息将多个分割属性信息结合来生成多个切片属性信息。
358.切片结合部4943通过使用切片附加信息结合多个切片位置信息来生成位置信息。另外,切片结合部4943通过使用切片附加信息结合多个切片属性信息来生成属性信息。
359.另外,被分割的切片或瓦片的数量为1以上。即,也可以不进行切片或瓦片的分割。
360.另外,在此,示出了在切片分割后进行瓦片分割的例子,但也可以在瓦片分割后进行切片分割。另外,除了切片以及瓦片之外,还可以定义新的分割类别,以3个以上的分割类别进行分割。
361.接着,对切片分割或瓦片分割后的编码数据的结构、以及编码数据向nal单元的存放方法(复用方法)进行说明。图30是表示编码数据的结构以及编码数据向nal单元的存放方法的图。
362.编码数据(分割位置信息和分割属性信息)存放在nal单元的有效载荷中。
363.编码数据包含头部和有效载荷。头部包含用于确定有效载荷中包含的数据的识别信息。该识别信息例如包含切片分割或瓦片分割的类别(slice_type、tile_type)、用于确定切片或瓦片的索引信息(slice_idx、tile_idx)、数据(切片或瓦片)的位置信息、或数据的地址(address)等。用于确定切片的索引信息也记作切片索引(sliceindex)。用于确定瓦片的索引信息也记作瓦片索引(tileindex)。另外,分割的类别例如是基于上述那样的对象形状的手法、基于地图信息或者位置信息的手法、或者基于数据量或者处理量的手法等。
364.另外,上述信息的全部或一部分也可以存放在分割位置信息的头部和分割属性信息的头部中的一方,而不存放在另一方。例如,在位置信息和属性信息中使用相同的分割方法的情况下,在位置信息和属性信息中分割的类别(slice_type、tile_type)以及索引信息(slice_idx、tile_idx)相同。因此,也可以在位置信息和属性信息的一方的头部中包含这些信息。例如,在属性信息依赖于位置信息的情况下,先处理位置信息。因此,也可以在位置信息的头部中包含这些信息,而在属性信息的头部中不包含这些信息。在该情况下,三维数据解码装置例如判断为依赖源的属性信息属于与依赖目标的位置信息的切片或瓦片相同的切片或瓦片。
365.另外,切片分割或瓦片分割的附加信息(切片附加信息、位置瓦片附加信息或属性瓦片附加信息)、以及表示依赖关系的依赖关系信息等也可以存放在现有的参数集(gps、aps、位置sps或属性sps等)中发送。在分割方法按每个帧变化的情况下,也可以在每个帧的参数集(gps或aps等)中存放表示分割方法的信息。在序列内分割方法不变化的情况下,也可以在每个序列的参数集(位置sps或者属性sps)中存放表示分割方法的信息。进而,在位置信息和属性信息中使用相同的分割方法的情况下,也可以在pcc流的参数集(流ps)中存放表示分割方法的信息。
366.另外,上述的信息可以存放在上述任一个参数集中,也可以存放在多个参数集中。另外,也可以定义瓦片分割或切片分割用的参数集,并在该参数集中存放上述的信息。另外,这些信息也可以存放在编码数据的头部中。
367.此外,编码数据的头部包含表示依赖关系的识别信息。即,该头部在数据间存在依赖关系的情况下,包含用于从依赖源参照依赖目标的识别信息。例如,在依赖目标的数据的头部中包含用于确定该数据的识别信息。在依赖源的数据的头部中包含表示依赖目标的识别信息。另外,在从其他信息中能够识别或能够导出用于确定数据的识别信息、切片分割或瓦片分割的附加信息以及表示依赖关系的识别信息的情况下,也可以省略这些信息。
368.接着,对本实施方式的点群数据的编码处理以及解码处理的流程进行说明。图31是本实施方式的点群数据的编码处理的流程图。
369.首先,三维数据编码装置决定要使用的分割方法(s4911)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包含进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。分割的类别是基于如上所述的对象形状的手法、基于地图信息或位置信息的手法、或者基于数据量或处理量的手法等。另外,分割方法也可以预先规定。
370.在进行切片分割的情况下(s4912中的“是”),三维数据编码装置通过将位置信息和属性信息一并分割来生成多个切片位置信息以及多个切片属性信息(s4913)。另外,三维数据编码装置生成切片分割的切片附加信息。另外,三维数据编码装置也可以独立地分割
位置信息和属性信息。
371.在进行瓦片分割的情况下(s4914中的“是”),三维数据编码装置通过独立地分割多个切片位置信息以及多个切片属性信息(或者位置信息以及属性信息),来生成多个分割位置信息以及多个分割属性信息(s4915)。另外,三维数据编码装置生成瓦片分割的位置瓦片附加信息以及属性瓦片附加信息。另外,三维数据编码装置也可以将切片位置信息和切片属性信息一并分割。
372.接着,三维数据编码装置通过对多个分割位置信息以及多个分割属性信息分别进行编码,来生成多个编码位置信息以及多个编码属性信息(s4916)。此外,三维数据编码装置生成依赖关系信息。
373.接着,三维数据编码装置通过对多个编码位置信息、多个编码属性信息以及附加信息进行nal单元化(复用),来生成编码数据(编码流)(s4917)。此外,三维数据编码装置发送所生成的编码数据。
374.图32是本实施方式的点群数据的解码处理的流程图。首先,三维数据解码装置通过解析编码数据(编码流)中包含的、分割方法的附加信息(切片附加信息、位置瓦片附加信息以及属性瓦片附加信息),来判定分割方法(s4921)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包括进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。
375.接着,三维数据解码装置通过使用编码数据中包含的依赖关系信息对编码数据中包含的多个编码位置信息和多个编码属性信息进行解码,来生成分割位置信息和分割属性信息(s4922)。
376.在通过附加信息表示进行了瓦片分割的情况下(s4923中的“是”),三维数据解码装置基于位置瓦片附加信息以及属性瓦片附加信息,以各自的方法结合多个分割位置信息和多个分割属性信息,从而生成多个切片位置信息以及多个切片属性信息(s4924)。另外,三维数据解码装置也可以将多个分割位置信息和多个分割属性信息以相同的方法结合。
377.在由附加信息表示进行了切片分割的情况下(s4925中的“是”),三维数据解码装置基于切片附加信息,以相同的方法结合多个切片位置信息以及多个切片属性信息(多个分割位置信息以及多个分割属性信息),从而生成位置信息以及属性信息(s4926)。另外,三维数据解码装置也可以将多个切片位置信息和多个切片属性信息分别用不同的方法结合。
378.如上所述,本实施方式的三维数据编码装置进行图33所示的处理。首先,三维数据编码装置分割为各自包含1个以上的三维点的多个分割数据(例如瓦片),所述多个分割数据包含于将包含多个三维点的对象空间分割后的多个子空间(例如切片)。在此,分割数据包含在子空间中,是包含1个以上的三维点的1个以上的数据集合体。另外,分割数据也可以是空间,也可以包含不包含三维点的空间。另外,可以在1个子空间中包含多个分割数据,也可以在1个子空间中包含1个分割数据。另外,可以在对象空间中设定多个子空间,也可以在对象空间中设定1个子空间。
379.接着,三维数据编码装置通过对多个分割数据的每一个进行编码,来生成与多个分割数据的每一个对应的多个编码数据(s4931)。三维数据编码装置生成包含多个编码数据和针对多个编码数据的每一个的多个控制信息(例如图30所示的头部)的比特流(s4932)。在多个控制信息中的每一个中,存放表示与对应于该控制信息的编码数据对应的
子空间的第1标识符(例如slice_idx)、和表示与对应于该控制信息的编码数据对应的分割数据的第2标识符(例如tile_idx)。
380.由此,对由三维数据编码装置生成的比特流进行解码的三维数据解码装置能够使用第1标识符以及第2标识符,将多个分割数据的数据结合而容易地复原对象空间。因此,能够降低三维数据解码装置中的处理量。
381.例如,在所述编码中,三维数据编码装置对多个分割数据的每一个所包含的三维点的位置信息和属性信息进行编码。多个编码数据中的每一个包含位置信息的编码数据和属性信息的编码数据。多个控制信息的每一个包含位置信息的编码数据的控制信息和属性信息的编码数据的控制信息。第1标识符和第2标识符存放在位置信息的编码数据的控制信息中。
382.例如,在比特流中,多个控制信息分别配置在与该控制信息对应的编码数据之前。
383.另外,也可以是,三维数据编码装置将包含多个三维点的对象空间设定为1个以上的子空间,在所述子空间中包含包含1个以上的三维点的1个以上的分割数据,对所述分割数据的每一个进行编码,从而生成与所述多个分割数据的每一个对应的多个编码数据,生成包含所述多个编码数据和针对所述多个编码数据的每一个的多个控制信息的比特流,在所述多个控制信息的每一个中存放表示与对应于该控制信息的编码数据对应的子空间的第1标识符、和表示与对应于该控制信息的编码数据对应的分割数据的第2标识符。
384.例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
385.另外,本实施方式的三维数据解码装置进行图34所示的处理。首先,三维数据解码装置从包含多个编码数据和多个控制信息(例如图30所示的头部)的比特流,获得存放在所述多个控制信息中的第1标识符(例如slice_idx)和第2标识符(例如tile_idx)(s4941),所述多个编码数据通过对包含在包含多个三维点的对象空间分割后的多个子空间(例如切片)中的、分别包含1个以上的三维点的多个分割数据(例如瓦片)的每一个进行编码而生成,所述多个控制信息针对多个编码数据的每一个,所述第1标识符表示与对应于该控制信息的编码数据对应的子空间,所述第2标识符表示与对应于该控制信息的编码数据对应的分割数据。接着,三维数据解码装置通过对多个编码数据进行解码,来复原多个分割数据(s4942)。接着,三维数据解码装置使用第1标识符以及第2标识符,结合多个分割数据,从而复原对象空间(s4943)。例如,三维数据编码装置通过使用第2标识符将多个分割数据结合来复原多个子空间,通过使用第1标识符将多个子空间结合来复原对象空间(多个三维点)。此外,三维数据解码装置也可以使用第1标识符以及第2标识符中的至少一方,从比特流获得期望的子空间或者分割数据的编码数据,并选择性地对获得的编码数据进行解码或者优先解码。
386.由此,三维数据解码装置能够使用第1标识符以及第2标识符,将多个分割数据的数据结合而容易地复原对象空间。因此,能够降低三维数据解码装置中的处理量。
387.例如,多个编码数据中的每一个通过对包含在对应的分割数据中的三维点的位置信息和属性信息进行编码而生成,包含位置信息的编码数据和属性信息的编码数据。多个控制信息分别包含位置信息的编码数据的控制信息和属性信息的编码数据的控制信息。第1标识符以及第2标识符存放在位置信息的编码数据的控制信息中。
388.例如,在比特流中,控制信息配置在对应的编码数据之前。
389.例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
390.(实施方式5)
391.在使用了相邻依赖的位置信息编码中,存在点群的密度越高,则编码效率越提高的可能性。在本实施方式中,三维数据编码装置通过将连续的帧的点群数据结合,来对连续的帧的点群数据进行汇总编码。此时,三维数据编码装置生成编码数据,所述编码数据添加了用于识别结合后的点群数据中包含的叶节点各自所属的帧的信息。
392.在此,连续的帧的点群数据类似的可能性高。因此,在连续的帧中,占用率编码的上位级别相同的可能性高。即,通过对连续的帧进行汇总编码,能够共用占用率编码的上位级别。
393.此外,点群属于哪个帧的辨别,是通过对帧的索引进行编码,而在叶节点中进行的。
394.图35是表示从n个pcc(point cloud compression)帧的点群数据生成树结构以及占用率编码(occupancy code)的图像的图。在该图中,箭头中的点示出了属于各个pcc帧的点。首先,对属于各个pcc帧的点赋予用于确定帧的帧索引。
395.接着,将属于n个帧的点变换为树结构,生成占用率编码。具体而言,对每个点判定点属于树结构中的哪个叶节点。在该图中,树结构(tree structure)示出了节点的集合。从上位节点起依次判定点属于哪个节点。每个节点的判定结果被编码为占用率编码。占用率编码在n个帧中是共同的。
396.在节点中,存在被赋予了不同的帧索引的、不同的帧的点混合存在的情况。另外,在八叉树(octree)的分辨率小的情况下,也存在被赋予了相同的帧索引的相同帧的点混合存在的情况。
397.有时在最下层的节点(叶节点)中混合存在(重复)属于多个帧的点。
398.在树结构以及占用率编码中,上位级别的树结构以及占用率编码有可能在所有帧中都是共同成分,下位级别的树结构以及占用率编码有可能是每个帧的个别成分、或者混合存在共同成分和个别成分。
399.例如,在叶节点等最下层的节点中生成具有帧索引的0以上的点,生成表示点的数量的信息以及针对各点的帧索引的信息。这些信息也可以说是在帧中个别的信息。
400.图36是表示帧结合的例子的图。如图36的(a)所示,通过将多个帧汇总并生成树结构,同一节点中包含的帧的点的密度增加。另外,通过共有树结构,能够削减占用率编码的数据量。由此,存在能够提高编码率的可能性。
401.另外,如图36的(b)所示,树结构中的占用率编码的个别成分变得更密集,由此算术编码的效果提高,因此存在能够提高编码率的可能性。
402.以下,以时间上不同的多个pcc帧的结合为例进行说明,但在不是多个帧的情况下,即在不结合帧的情况下(n=1)也能够应用。另外,结合的多个点群数据不限于多个帧,即不限于同一对象物的时刻不同的点群数据。即,以下的手法也能够应用于空间上或时空上不同的多个点群数据的结合。另外,以下的手法也能够应用于内容不同的点群数据或者点群文件的结合。
403.图37是表示时间上不同的多个pcc帧的结合的例子的图。图37表示汽车一边移动
一边通过lidar等传感器获得点群数据的例子。虚线示出了每个帧的传感器的获得范围,即点群数据的区域。在传感器的获得范围大的情况下,点群数据的范围也变大。
404.结合点群数据进行编码的手法对于以下那样的点群数据是有效的。例如,在图37所示的例子中,汽车移动,帧通过汽车的周边的360
°
的扫描来识别。即,作为下一个帧的帧2与车辆向x方向移动后的另一360
°
的扫描对应。
405.在该情况下,由于在帧1和帧2中存在重复的区域,因此存在包含相同的点群数据的可能性。因此,通过结合帧1和帧2进行编码,存在能够提高编码效率的可能性。另外,还考虑结合更多的帧。但是,如果增加要结合的帧数,则附加于叶节点的帧索引的编码所需的比特数增加。
406.另外,也可以通过不同位置的传感器获得点群数据。由此,也可以将从各个位置获得的各个点群数据分别用作帧。即,多个帧可以是由单一的传感器获得的点群数据,也可以是由多个传感器获得的点群数据。另外,在多个帧间,一部分或全部对象物可以相同,也可以不同。
407.接着,说明本实施方式的三维数据编码处理的流程。图38是三维数据编码处理的流程图。三维数据编码装置基于作为进行结合的帧的数量的结合帧数n,读入n个全部帧的点群数据。
408.首先,三维数据编码装置决定结合帧数n(s5401)。例如,该结合帧数n由用户指定。
409.接着,三维数据编码装置获得点群数据(s5402)。接着,三维数据编码装置记录所获得的点群数据的帧索引(s5403)。
410.在非已处理n个帧的情况下(s5404中的“否”),三维数据编码装置指定下一个点群数据(s5405),对指定的点群数据进行步骤s5402以后的处理。
411.另一方面,在已处理n个帧的情况下(s5404中的“是”),三维数据编码装置结合n个帧,对结合后的帧进行编码(s5406)。
412.图39是编码处理(s5406)的流程图。首先,三维数据编码装置在n个帧中生成共同的共同信息(s5411)。例如,共同信息包含表示占用率编码以及结合帧数n的信息。
413.接着,三维数据编码装置对每个帧生成个别的信息即个别信息(s5412)。例如,个别信息包含叶节点中包含的点的数量、以及叶节点中包含的点的帧索引。
414.接着,三维数据编码装置将共同信息与个别信息结合,对结合后的信息进行编码,由此生成编码数据(s5413)。接着,三维数据编码装置生成帧结合的附加信息(元数据),对生成的附加信息进行编码(s5414)。
415.接着,说明本实施方式的三维数据解码处理的流程。图40是三维数据解码处理的流程图。
416.首先,三维数据解码装置从比特流获得结合帧数n(s5421)。接着,三维数据编码装置从比特流获得编码数据(s5422)。接着,三维数据解码装置通过对编码数据进行解码,来获得点群数据和帧索引(s5423)。最后,三维数据解码装置使用帧索引对解码后的点群数据进行分割(s5424)。
417.图41是解码和分割处理(s5423和s5424)的流程图。首先,三维数据解码装置从编码数据(比特流)中解码(获得)共同信息以及个别信息(s5431)。
418.接着,三维数据解码装置决定是对单个帧进行解码还是对多个帧进行解码
(s5432)。例如,可以从外部指定是对单个帧进行解码还是对多个帧进行解码。在此,多个帧可以是结合的帧的全部帧,也可以是一部分帧。例如,三维数据解码装置也可以决定为对需要应用程序的特定的帧进行解码,不对不需要的帧进行解码。或者,在要求实时的解码的情况下,三维数据解码装置也可以决定为对所结合的多个帧中的单一帧进行解码。
419.在对单一帧进行解码的情况下(s5432中的“是”),三维数据解码装置从解码出的个别信息中提取与指定的单一帧索引对应的个别信息,对提取出的个别信息进行解码,由此复原与指定的帧索引对应的帧的点群数据(s5433)。
420.另一方面,在对多个帧进行解码的情况下(s5432中的“否”),三维数据解码装置提取与所指定的多个帧(或全部帧)的帧索引对应的个别信息,对提取出的个别信息进行解码,由此复原所指定的多个帧的点群数据(s5434)。接着,三维数据解码装置基于帧索引对解码后的点群数据(个别信息)进行分割(s5435)。即,三维数据解码装置将解码后的点群数据分割为多个帧。
421.此外,三维数据解码装置可以对结合后的所有帧的数据一并进行解码,将解码后的数据分割为各帧,也可以将结合后的所有帧中的任意的一部分帧一并解码,将解码后的数据分割为各帧。另外,三维数据解码装置也可以单独地对由多个帧构成的预先规定的单位帧进行解码。
422.以下,对本实施方式的三维数据编码装置的结构进行说明。图42是表示本实施方式的三维数据编码装置中包含的编码部5410的结构的框图。编码部5410通过对点群数据(点云)进行编码来生成编码数据(编码流)。编码部5410包括分割部5411、多个位置信息编码部5412、多个属性信息编码部5413、附加信息编码部5414以及复用部5415。
423.分割部5411通过对多个帧的点群数据进行分割来生成多个帧的多个分割数据。具体而言,分割部5411通过将各帧的点群数据的空间分割为多个子空间来生成多个分割数据。在此,子空间是指瓦片以及切片中的一方或者瓦片以及切片的组合。更具体而言,点群数据包含位置信息、属性信息(颜色或者反射率等)以及附加信息。另外,对分割部5411输入帧编号。分割部5411将各帧的位置信息分割为多个分割位置信息,将各帧的属性信息分割为多个分割属性信息。另外,分割部5411生成与分割相关的附加信息。
424.例如,分割部5411首先将点群分割为瓦片。接下来,分割部5411将所获得的瓦片进一步分割为切片。
425.多个位置信息编码部5412通过对多个分割位置信息进行编码来生成多个编码位置信息。例如,位置信息编码部5412使用八叉树等n叉树结构对分割位置信息进行编码。具体而言,在八叉树中,对象空间被分割为8个节点(子空间),生成表示各节点中是否包含点群的8比特的信息(占用率编码)。另外,包含点群的节点还被分割为8个节点,生成表示在该8个节点的每一个中是否包含点群的8比特的信息。反复进行该处理,直到成为预先规定的阶层或节点中包含的点群的数量的阈值以下为止。例如,多个位置信息编码部5412对多个分割位置信息进行并行处理。
426.属性信息编码部4632通过使用由位置信息编码部4631生成的结构信息进行编码,来生成作为编码数据的编码属性信息。例如,属性信息编码部4632基于由位置信息编码部4631生成的八叉树结构,决定在处理对象的对象点(对象节点)的编码中参照的参照点(参照节点)。例如,属性信息编码部4632参照周边节点或相邻节点中的、八叉树中的父节点与
对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
427.另外,位置信息或者属性信息的编码处理也可以包括量化处理、预测处理以及算术编码处理中的至少一个。在该情况下,参照是指,在属性信息的预测值的计算中使用参照节点、或者在编码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,编码的参数是指量化处理中的量化参数、或者算术编码中的上下文等。
428.多个属性信息编码部5413通过对多个分割属性信息进行编码来生成多个编码属性信息。例如,多个属性信息编码部5413对多个分割属性信息进行并行处理。
429.附加信息编码部5414通过对点群数据中包含的附加信息和由分割部5411分割时生成的与数据分割相关的附加信息进行编码,生成编码附加信息。
430.复用部5415通过对多个帧的多个编码位置信息、多个编码属性信息以及编码附加信息进行复用,来生成编码数据(编码流),并发送所生成的编码数据。另外,编码附加信息在解码时使用。
431.图43是分割部5411的框图。分割部5411包括瓦片分割部5421和切片分割部5422。
432.瓦片分割部5421通过将多个帧的位置信息(position(geometry))分别分割为瓦片来生成多个瓦片位置信息。另外,瓦片分割部5421通过将多个帧的属性信息(attribute)分别分割为瓦片来生成多个瓦片属性信息。另外,瓦片分割部5421输出包含瓦片分割的信息、以及在瓦片分割中生成的信息的瓦片附加信息(tile metadata)。
433.切片分割部5422通过将多个瓦片位置信息分割为切片来生成多个分割位置信息(多个切片位置信息)。另外,切片分割部5422通过将多个瓦片属性信息分割为切片来生成多个分割属性信息(多个切片属性信息)。另外,切片分割部5422输出包含切片分割的信息以及在切片分割中生成的信息的切片附加信息(slice metadata)。
434.另外,分割部5411在分割处理中,为了表示原点坐标以及属性信息等,使用帧编号(帧索引)。
435.图44是位置信息编码部5412的框图。位置信息编码部5412包括帧索引生成部5431和熵编码部5432。
436.帧索引生成部5431基于帧编号决定帧索引的值,并且将所决定的帧索引附加到位置信息。熵编码部5432通过对附加了帧索引的分割位置信息进行熵编码来生成编码位置信息。
437.图45是属性信息编码部5413的框图。属性信息编码部5413包括帧索引生成部5441和熵编码部5442。
438.帧索引生成部5441基于帧编号决定帧索引的值,并且将所决定的帧索引附加到属性信息。熵编码部5442通过对附加了帧索引的分割属性信息进行熵编码来生成编码属性信息。
439.接着,对本实施方式的点群数据的编码处理以及解码处理的流程进行说明。图46是本实施方式的点群数据的编码处理的流程图。
440.首先,三维数据编码装置决定要使用的分割方法(s5441)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包括进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。
441.在进行瓦片分割的情况下(s5442中的“是”),三维数据编码装置通过对位置信息和属性信息进行分割来生成多个瓦片位置信息以及多个瓦片属性信息(s5443)。另外,三维数据编码装置生成瓦片分割的瓦片附加信息。
442.在进行切片分割的情况下(s5444中的“是”),三维数据编码装置通过分割多个瓦片位置信息以及多个瓦片属性信息(或者位置信息以及属性信息)来生成多个分割位置信息以及多个分割属性信息(s5445)。另外,三维数据编码装置生成切片分割的切片附加信息。
443.接着,三维数据编码装置通过将多个分割位置信息以及多个分割属性信息分别与帧索引进行编码,来生成多个编码位置信息以及多个编码属性信息(s5446)。此外,三维数据编码装置生成依赖关系信息。
444.接着,三维数据编码装置通过对多个编码位置信息、多个编码属性信息以及附加信息进行nal单元化(复用)来生成编码数据(编码流)(s5447)。此外,三维数据编码装置发送所生成的编码数据。
445.图47是编码处理(s5446)的流程图。首先,三维数据编码装置对分割位置信息进行编码(s5451)。接着,三维数据编码装置对分割位置信息用的帧索引进行编码(s5452)。
446.在存在分割属性信息的情况下(s5453中的“是”),三维数据编码装置对分割属性信息进行编码(s5454),对分割属性信息用的帧索引进行编码(s5455)。另一方面,在不存在分割属性信息的情况下(s5453中的“否”),三维数据编码装置不进行分割属性信息的编码以及分割属性信息用的帧索引的编码。另外,帧索引也可以存放在分割位置信息和分割属性信息中的任一方或双方。
447.此外,三维数据编码装置对属性信息可以使用帧索引进行编码,也可以不使用帧索引而进行编码。即,三维数据编码装置可以使用帧索引来识别各个点所属的帧,并对每个帧进行编码,也可以不识别帧而对属于所有帧的点进行编码。
448.以下,说明本实施方式的三维数据解码装置的结构。图48是表示解码部5450的结构的框图。解码部5450通过对编码数据(编码流)进行解码来复原点群数据,所述编码数据通过对点群数据进行编码而生成。该解码部5450包括逆复用部5451、多个位置信息解码部5452、多个属性信息解码部5453、附加信息解码部5454、以及结合部5455。
449.逆复用部5451通过对编码数据(编码流)进行逆复用而生成多个编码位置信息、多个编码属性信息以及编码附加信息。
450.多个位置信息解码部5452通过对多个编码位置信息进行解码来生成多个分割位置信息。例如,多个位置信息解码部5452对多个编码位置信息进行并行处理。
451.多个属性信息解码部5453通过对多个编码属性信息进行解码来生成多个分割属性信息。例如,多个属性信息解码部5453对多个编码属性信息进行并行处理。
452.多个附加信息解码部5454通过对编码附加信息进行解码来生成附加信息。
453.结合部5455通过使用附加信息结合多个分割位置信息来生成位置信息。结合部5455通过使用附加信息结合多个分割属性信息来生成属性信息。另外,结合部5455使用帧索引将位置信息以及属性信息分割为多个帧的位置信息以及多个帧的属性信息。
454.图49是位置信息解码部5452的框图。位置信息解码部5452包括熵解码部5461和帧索引获得部5462。熵解码部5461通过对编码位置信息进行熵解码来生成分割位置信息。帧
索引获得部5462从分割位置信息获得帧索引。
455.图50是属性信息解码部5453的框图。属性信息解码部5453包括熵解码部5471和帧索引获得部5472。熵解码部5471通过对编码属性信息进行熵解码来生成分割属性信息。帧索引获得部5472从分割属性信息获得帧索引。
456.图51是表示结合部5455的结构的图。结合部5455通过结合多个分割位置信息来生成位置信息。结合部5455通过结合多个分割属性信息来生成属性信息。另外,结合部5455使用帧索引将位置信息以及属性信息分割为多个帧的位置信息以及多个帧的属性信息。
457.图52是本实施方式的点群数据的解码处理的流程图。首先,三维数据解码装置通过解析编码数据(编码流)中包含的、分割方法的附加信息(切片附加信息以及瓦片附加信息),来判定分割方法(s5461)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包括进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。
458.接着,三维数据解码装置使用编码数据中包含的依赖关系信息,对编码数据中包含的多个编码位置信息和多个编码属性信息进行解码,从而生成分割位置信息以及分割属性信息(s5462)。
459.在由附加信息表示进行了切片分割的情况下(s5463中的“是”),三维数据解码装置基于切片附加信息,通过将多个分割位置信息结合来生成多个瓦片位置信息,通过将多个分割属性信息结合来生成多个瓦片属性信息(s5464)。在此,多个分割位置信息、多个分割属性信息、多个瓦片位置信息以及多个瓦片属性信息包含帧索引。
460.在由附加信息表示进行了瓦片分割的情况下(s5465中的“是”),三维数据解码装置基于瓦片附加信息,通过将多个瓦片位置信息(多个分割位置信息)结合来生成位置信息,通过将多个瓦片属性信息(多个分割属性信息)结合来生成属性信息(s5466)。在此,多个瓦片位置信息、多个瓦片属性信息、位置信息以及属性信息包含帧索引。
461.图53是解码处理(s5464或s5466)的流程图。首先,三维数据解码装置对分割位置信息(切片位置信息)进行解码(s5471)。接着,三维数据解码装置对分割位置信息用的帧索引进行解码(s5472)。
462.在存在分割属性信息的情况下(s5473中的“是”),三维数据解码装置对分割属性信息进行解码(s5474),对分割属性信息用的帧索引进行解码(s5475)。另一方面,在不存在分割属性信息的情况下(s5473中的“否”),三维数据解码装置不进行分割属性信息的解码以及分割属性信息用的帧索引的解码。
463.此外,三维数据解码装置对属性信息可以使用帧索引进行解码,也可以不使用帧索引而进行解码。
464.以下,对帧结合中的编码单位进行说明。图54是表示帧的结合样式的例子的图。该图的例子例如是pcc帧为时间序列、实时地进行数据的生成以及编码的情况的例子。
465.图54的(a)示出了固定地结合4帧的情况。三维数据编码装置在等待生成4帧的量的数据之后生成编码数据。
466.图54的(b)示出了帧数自适应地变化的情况。例如,三维数据编码装置为了在速率控制中调整编码数据的编码量而使结合帧数变化。
467.此外,三维数据编码装置在有可能不存在基于帧结合的效果的情况下,也可以不结合帧。另外,三维数据编码装置也可以对进行帧结合的情况和不进行帧结合的情况进行
切换。
468.图54的(c)是结合的多个帧的一部分与接下来结合的多个帧的一部分重复的情况的例子。该例子在从能够编码的帧依次发送等要求实时性、或低延迟的情况下是有用的。
469.图55是表示pcc帧的结构例的图。三维数据编码装置也可以构成为包含至少能够单独地对结合的帧进行解码的数据单位。例如,如图55的(a)所示,在pcc帧全部被帧内编码,能够单独地对pcc帧进行解码的情况下,也能够应用上述的任意的样式。
470.另外,如图55的(b)所示,在应用帧间预测的情况下等设定gof(group of frame)等的随机访问单位的情况下,三维数据编码装置也可以将该gof单位作为最小单位,将数据结合。
471.此外,三维数据编码装置可以对共同信息和个别信息一并进行编码,也可以分别进行编码。另外,三维数据编码装置可以对共同信息和个别信息使用共同的数据结构,也可以使用不同的数据结构。
472.另外,也可以是,三维数据编码装置在按每个帧生成了占用率编码之后,对多个帧的占用率编码进行比较,例如,以规定的基准判定在多个帧的占用率编码之间共同部分是否多,在共同部分多的情况下生成共同信息。或者,三维数据编码装置也可以基于共同部分是否多,来决定是否进行帧结合、结合哪个帧、或者结合帧数。
473.接着,对编码位置信息的结构进行说明。图56是表示编码位置信息的结构的图。编码位置信息包括头部和有效载荷。
474.图57是表示编码位置信息的头部(geometry_header)的句法例的图。编码位置信息的头部包含gps索引(gps_idx)、偏移信息(offset)、其他信息(other_geometry_information)、帧结合标志(combine_frame_flag)、以及结合帧数(number_of_combine_frame)。
475.gps索引表示与编码位置信息对应的参数集(gps)的标识符(id)。gps是一帧或多个帧的编码位置信息的参数集。另外,在每一帧中存在参数集的情况下,也可以在头部中表示多个参数集的标识符。
476.偏移信息表示用于获得结合数据的偏移位置。其他信息表示关于位置信息的其他信息(例如,量化参数的差分值(qpdelta)等)。帧结合标志是表示编码数据是否被帧结合的标志。结合帧数表示结合的帧的数量。
477.另外,上述信息的一部分或全部也可以记载于sps或gps。此外,sps是序列(多个帧)单位的参数集,是在编码位置信息和编码属性信息中共同使用的参数集。
478.图58是表示编码位置信息的有效载荷(geometry_data)的句法例的图。编码位置信息的有效载荷包括共同信息和叶节点信息。
479.共同信息是1个以上的帧结合后的数据,包括占用率编码(occupancy_code)等。
480.叶节点信息(combine_information)是各叶节点的信息。作为帧数的循环,也可以对每个帧表示叶节点信息。
481.作为表示叶节点中包含的点的帧索引的方法,能够使用方法1和方法2中的任一个。图59是表示方法1的情况下的叶节点信息的例子的图。图59所示的叶节点信息包含表示节点中包含的点的数量的三维点数(numberofpoints)和每个点的帧索引(frameindex)。
482.图60是表示方法2的情况下的叶节点信息的例子的图。在图60所示的例子中,叶节
点信息包含通过比特映射表示多个点的帧索引的比特映射信息(bitmapisframepointsflag)。图61是表示比特映射信息的例子的图。在该例中,通过比特映射表示叶节点包含帧索引1和3和5的三维点。
483.此外,在量化的分辨率低的情况下,有时在相同的帧中存在重复点。在该情况下,也可以共享三维点数(numberofpoints),示出了各帧的三维点的数量和多个帧的合计的三维点的数量。
484.另外,在使用不可逆压缩的情况下,三维数据编码装置也可以删除重复点,削减信息量。三维数据编码装置可以在帧结合前删除重复点,也可以在帧结合后删除重复点。
485.接着,对编码属性信息的结构进行说明。图62是表示编码属性信息的结构的图。编码属性信息包括头部和有效载荷。
486.图63是表示编码属性信息的头部(attribute_header)的句法例的图。编码属性信息的头部包含aps索引(aps_idx)、偏移信息(offset)、其他信息(other_attribute_information)、帧结合标志(combine_frame_flag)、以及结合帧数(number_of_combine_frame)。
487.aps索引表示与编码属性信息对应的参数集(aps)的标识符(id)。aps是一帧或多个帧的编码属性信息的参数集。另外,在每一帧中存在参数集的情况下,也可以在头部中表示多个参数集的标识符。
488.偏移信息表示用于获得结合数据的偏移位置。其他信息表示与属性信息相关的其他信息(例如,量化参数的差分值(qpdelta)等)。帧结合标志是表示编码数据是否被帧结合的标志。结合帧数表示结合的帧的数量。
489.此外,上述信息的一部分或全部也可以记载于sps或aps。
490.图64是表示编码属性信息的有效载荷(attribute_data)的句法例的图。编码属性信息的有效载荷包含叶节点信息(combine_information)。例如,该叶节点信息的结构与编码位置信息的有效载荷中包含的叶节点信息相同。即,叶节点信息(帧索引)也可以包含在属性信息中。
491.另外,叶节点信息(帧索引)也可以存放在编码位置信息和编码属性信息中的一方,不存放在另一方中。在该情况下,存放在编码位置信息和编码属性信息中的一方的叶节点信息(帧索引)在另一方的信息的解码时被参照。另外,表示参照目标的信息也可以包含在编码位置信息或编码属性信息中。
492.接着,对编码数据的发送顺序和解码顺序的例子进行说明。图65是表示编码数据的结构的图。编码数据包含头部和有效载荷。
493.图66~图68是表示数据的发送顺序与数据的参照关系的图。在该图中,g(1)等表示编码位置信息,gps(1)等表示编码位置信息的参数集,sps表示序列(多个帧)的参数集。另外,()内的数字表示帧索引的值。此外,三维数据编码装置也可以以解码顺序发送数据。
494.图66是表示不结合帧的情况下的发送顺序的例子的图。图67是表示在结合帧的情况下,按每个pcc帧附加元数据(参数集)的情况的例子的图。图68是表示在结合帧的情况下,以结合的单位附加元数据(参数集)的情况的例子的图。
495.在进行了帧结合的数据的头部中,为了得到该帧的元数据,存放参照目标的元数据的标识符。如图68所示,可以汇总多个帧的每一个帧的元数据。在进行了帧结合的多个帧
中共同的参数也可以汇总为一个。帧中不共同的参数表示针对各帧的值。
496.每帧的信息(在帧中不共同的参数)是指,例如表示帧数据的生成时刻、编码时刻、或解码时刻等的时间戳。另外,每帧的信息也可以包含获得了帧数据的传感器的信息(传感器的速度、加速度、位置信息、传感器的朝向、以及其他的传感器信息等)。
497.图69是表示在图67所示的例子中对一部分帧进行解码的例子的图。如图69所示,如果在帧结合数据内帧间不存在依赖关系,则三维数据解码装置能够独立地对各数据进行解码。
498.在点群数据具有属性信息的情况下,三维数据编码装置也可以对属性信息进行帧结合。属性信息参照位置信息进行编码以及解码。所参照的位置信息可以是进行帧结合之前的位置信息,也可以是进行了帧结合之后的位置信息。位置信息的结合帧数与属性信息的结合帧数可以共同(相同),也可以独立(不同)。
499.图70~图73是表示数据的发送顺序与数据的参照关系的图。图70以及图71表示将位置信息和属性信息一起以4帧结合的例子。在图70中,对每个pcc帧附加元数据(参数集)。在图71中,以结合的单位附加元数据(参数集)。在该图中,a(1)等表示编码属性信息,aps(1)等表示编码属性信息的参数集。另外,()内的数字表示帧索引的值。
500.图72表示用4帧结合位置信息,不结合属性信息的例子。如图72所示,也可以对位置信息进行帧结合,不对属性信息进行帧结合。
501.图73表示将帧结合与瓦片分割组合的例子。如图73所示,在进行瓦片分割的情况下,各瓦片位置信息的头部包含gps索引(gps_idx)以及结合帧数(number_of_combine_frame)等信息。另外,各瓦片位置信息的头部包含用于识别瓦片的瓦片索引(tile_idx)。
502.如上所述,本实施方式的三维数据编码装置进行图74中所示的处理。首先,三维数据编码装置通过将第1点群数据与第2点群数据结合来生成第3点群数据(s5481)。接着,三维数据编码装置通过对第3点群数据进行编码来生成编码数据(s5482)。另外,编码数据包含表示第3点群数据中包含的多个三维点分别属于第1点群数据和第2点群数据中的哪一个的识别信息(例如帧索引)。
503.由此,三维数据编码装置通过对多个点群数据进行汇总编码,能够提高编码效率。
504.例如,第1点群数据和第2点群数据是不同时刻的点群数据(例如pcc帧)。例如,第1点群数据和第2点群数据是指,同一对象物的不同时刻的点群数据(例如pcc帧)。
505.编码数据包含在第3点群数据中包含的多个三维点各自的位置信息和属性信息,识别信息包含在属性信息中。
506.例如,编码数据包含使用n(n为2以上的整数)叉树来表示第3点群数据中包含的多个三维点中的各个三维点的位置的位置信息(例如占用率编码)。
507.例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
508.另外,本实施方式的三维数据解码装置进行图75所示的处理。首先,三维数据解码装置通过对编码数据进行解码,获得通过第1点群数据和第2点群数据结合来生成的第3点群数据、和表示第3点群数据中包含的多个三维点分别属于第1点群数据和第2点群数据中的哪一个的识别信息(s5491)。接着,三维数据解码装置使用识别信息,从第3点群数据中分离第1点群数据和第2点群数据(s5492)。
509.由此,三维数据解码装置能够通过对多个点群数据进行汇总编码来对提高了编码
效率的编码数据进行解码。
510.例如,第1点群数据和第2点群数据是不同时刻的点群数据(例如pcc帧)。例如,第1点群数据和第2点群数据是同一对象物的不同时刻的点群数据(例如pcc帧)。
511.编码数据包含在第3点群数据中包含的多个三维点各自的位置信息和属性信息,识别信息包含在属性信息中。
512.例如,编码数据包含使用n(n为2以上的整数)叉树来表示第3点群数据中包含的多个三维点各自的位置的位置信息(例如占用率编码)。
513.例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
514.(实施方式6)
515.三维点群的信息包含位置信息(geometry)和属性信息(attribute)。位置信息包含以某个点为基准的坐标(x坐标、y坐标、z坐标)。在对位置信息进行编码的情况下,代替直接对各三维点的坐标进行编码,而使用通过用八叉树表现来表现各三维点的位置并对八叉树的信息进行编码从而削减编码量的方法。
516.另一方面,属性信息包含表示各三维点的颜色信息(rgb、yuv等)、反射率以及法线向量等的信息。例如,三维数据编码装置能够使用与位置信息不同的编码方法对属性信息进行编码。
517.在本实施方式中,对将位置信息结合多个帧的多个点群数据进行编码时的属性信息的编码方法进行说明。另外,在本实施方式中,使用整数值来作为属性信息的值进行说明。例如在颜色信息rgb或yuv的各颜色成分为8bit精度的情况下,各颜色成分取0~255的整数值。在反射率的值为10bit精度的情况下,反射率的值取0~1023的整数值。此外,在属性信息的比特精度为小数精度的情况下,三维数据编码装置也可以对该值乘以缩放值之后舍入为整数值,以使属性信息的值成为整数值。另外,三维数据编码装置也可以将该缩放值附加于比特流的头部等。
518.作为将三维点群的各位置信息结合多个帧的点群数据进行编码时的属性信息的编码方法,例如考虑使用结合后的位置信息对与各位置信息对应的属性信息进行编码。在此,结合后的位置信息也可以包含三维点群的位置信息和该三维点群所属的frame_index(帧索引)。另外,也可以在对三维点群中的第1三维点的属性信息进行编码时,不仅使用第1三维点所属的帧内包含的三维点群的位置信息或者属性信息,还使用与第1三维点所属的帧不同的帧内包含的三维点群的位置信息或者属性信息。
519.多个帧分别包含点群数据。多个帧中的属于第1帧的第1点群数据和属于第2帧的第2点群数据是不同时刻的点群数据。另外,第1点群数据和第2点群数据例如是同一对象物的不同时刻的点群数据。第1点群数据包含表示第1点群数据中包含的三维点群属于第1点群数据的帧索引。第2点群数据包含表示第2点群数据中包含的三维点群属于第2点群数据的帧索引。帧索引是表示结合了属于不同帧的多个点群数据的结合点群数据中包含的三维点群属于哪个点群数据的识别信息。另外,三维点群也称为多个三维点。
520.作为三维点的属性信息的编码方法,考虑计算三维点的属性信息的预测值,并对原来的属性信息的值与预测值的差分(预测残差)进行编码。例如,在三维点p的属性信息的值为ap、预测值为pp的情况下,三维数据编码装置对其差分绝对值diffp=|ap-pp|进行编
码。在该情况下,如果能够高精度地生成预测值pp,则差分绝对值diffp的值变小。因此,例如通过使用值越小则产生比特数越小的编码表来对差分绝对值diffp进行熵编码,能够削减编码量。
521.作为生成属性信息的预测值的方法,考虑使用位于编码对象的对象三维点的周围的其他三维点即参照三维点的属性信息。这样,三维数据编码装置也可以使用周围的三维点的属性信息对第1三维点的属性信息进行编码。在此,位于编码对象的三维点周围的另一周围三维点可以存在于编码对象的对象三维点所属的帧内,另外,也可以存在于与编码对象的对象三维点所属的帧不同的帧内。即,也可以是,对象三维点的属性信息包含表示该对象三维点属于第1点群数据的第1帧索引,周围三维点的属性信息包含表示该周围三维点属于第2点群数据的第2帧索引。由此,通过还参照编码对象的三维点所属的帧以外的三维点的属性信息,能够生成高精度的预测值pp,能够提高编码效率。
522.在此,参照三维点是指处于距对象三维点预先规定的距离范围内的三维点。例如,在存在对象三维点p=(x1,y1,z1)和三维点q=(x2,y2,z2)的情况下,三维数据编码装置计算(式h1)所示的三维点p与三维点q的欧氏距离d(p,q)。
523.【数式1】
[0524][0525]
三维数据编码装置在欧氏距离d(p,q)小于预定的阈值thd的情况下,判定为三维点q的位置接近对象三维点p的位置,判定为在对象三维点p的属性信息的预测值的生成中利用三维点q的属性信息的值。另外,距离计算方法也可以是其他方法,例如也可以使用马氏距离等。另外,三维数据编码装置也可以判定为不将距对象三维点预先规定的距离范围外的三维点用于预测处理。例如,在存在三维点r、且对象三维点p与三维点r的距离d(p,r)为阈值thd以上的情况下,三维数据编码装置也可以判定为不将三维点r用于预测。此外,三维数据编码装置也可以将表示阈值thd的信息附加于比特流的头部等。另外,三维数据编码装置在将三维点群的各位置信息结合多个帧的点群数据进行编码的情况下,也可以根据结合后的三维点群计算各三维点间的距离。即,三维数据编码装置可以计算属于不同帧的2个三维点间的距离,也可以计算属于相同帧的2个三维点间的距离。
[0526]
图76是表示三维点的例子的图。在该例中,对象三维点p与三维点q的距离d(p、q)小于阈值thd。因此,三维数据编码装置将三维点q判定为对象三维点p的参照三维点,判定为在对象三维点p的属性信息ap的预测值pp的生成中利用三维点q的属性信息aq的值。
[0527]
另一方面,对象三维点p与三维点r的距离d(p,r)为阈值thd以上。因此,三维数据编码装置判定为三维点r不是对象三维点p的参照三维点,判定为在对象三维点p的属性信息ap的预测值pp的生成中不利用三维点r的属性信息ar的值。
[0528]
在此,三维点p属于由帧索引(frame_idx=0)表示的帧,三维点q属于由帧索引(frame_idx=1)表示的帧,三维点r属于由帧索引(frame_idx=0)表示的帧。三维编码装置可以计算由帧索引表示属于相同帧的三维点p和三维点r之间的距离,也可以计算由帧索引表示属于不同帧的三维点p和三维点q之间的距离。
[0529]
此外,在使用预测值对对象三维点的属性信息进行编码的情况下,三维数据编码装置将已经对属性信息编码及解码完毕的三维点作为参照三维点利用。同样地,在使用预
测值对解码对象的对象三维点的属性信息进行解码的情况下,三维数据解码装置将已经对属性信息解码完毕的三维点作为参照三维点利用。由此,能够在编码时和解码时生成相同的预测值,因此能够在解码侧正确地对通过编码生成的三维点的比特流进行解码。
[0530]
另外,处于编码对象的对象三维点的周围的另一周围三维点可以存在于编码对象的对象三维点所属的帧内,另外,也可以存在于与编码对象的对象三维点所属的帧不同的帧内,但不一定限于此,例如,也可以判定为存在于与编码对象的对象三维点所属的帧不同的帧内的三维点不存在于编码对象的对象三维点的周围,不作为预测值使用。由此,三维数据编码装置例如在结合对象的多个帧的各三维点的属性信息大不同的情况下,对位置信息进行帧结合并进行编码,使用同一帧内的其他周围三维点的属性信息对属性信息进行预测编码,由此能够提高编码效率。此外,三维数据编码装置也可以将表示在基于帧结合的编码时,使用同一帧的周围三维点的属性信息来对对象三维点的属性信息进行编码,还是使用同一帧以及同一帧以外的周围三维点的属性信息对对象三维点的属性信息进行编码的信息附加到编码数据的头部并进行切换。由此,三维数据解码装置通过对头部进行解码,能够判定在基于帧结合的编码数据的解码时,是否使用同一帧或者同一帧以及同一帧以外的周围三维点的属性信息来对对象三维点的属性信息进行解码,切换进行哪一个解码,因此能够适当地对比特流进行解码。
[0531]
另外,在对将多个帧结合后的三维点的属性信息进行编码的情况下,考虑使用属于同一帧或者不同帧的三维点的位置信息将各三维点分类为多个阶层之后进行编码。在此,将分类后的各阶层称为lod(level of detail)。使用图77对lod的生成方法进行说明。
[0532]
首先,三维数据编码装置从结合后的三维点群中选择初始点a0,并分配给lod0。接着,三维数据编码装置提取距点a0的距离大于lod0的阈值thres_lod[0]的点a1并分配给lod0。接着,三维数据编码装置提取距点a1的距离大于lod0的阈值thres_lod[0]的点a2并分配给lod0。这样,三维数据编码装置以lod0内的各点之间的距离大于阈值thres_lod[0]的方式构成lod0。此外,三维数据编码装置也可以与2点的三维点的距离是否分别属于同一帧或者不同的帧无关地通过相同的处理来计算。例如,点a0和点a1可以属于相同帧,也可以属于相互不同的帧。因此,点a0与点a1的距离无论属于相同帧还是属于相互不同的帧,都通过相同的处理来计算。
[0533]
接着,三维数据编码装置选择还未分配lod的点b0,并分配给lod1。接着,三维数据编码装置提取距点b0的距离大于lod1的阈值thres_lod[1]、且未分配lod的点b1并分配给lod1。接着,三维数据编码装置提取距点b1的距离大于lod1的阈值thres_lod[1]、且未分配lod的点b2并分配给lod1。这样,三维数据编码装置以lod1内的各点之间的距离大于阈值thres_lod[1]的方式构成lod1。
[0534]
接着,三维数据编码装置选择还未分配lod的点c0,并分配给lod2。接着,三维数据编码装置提取距点c0的距离大于lod2的阈值thres_lod[2]、且未分配lod的点c1并分配给lod2。接着,三维数据编码装置提取距点c1的距离大于lod2的阈值thres_lod[2]、且未分配lod的点c2并分配给lod2。这样,三维数据编码装置以lod2内的各点之间的距离大于阈值thres_lod[2]的方式构成lod2。例如,如图78所示,设定各lod的阈值thres_lod[0]、thres_lod[1]以及thres_lod[2]。
[0535]
另外,三维数据编码装置也可以将表示各lod的阈值的信息附加于比特流的头部
等。例如,在图78所示的例子的情况下,三维数据编码装置也可以将阈值thres_lod[0]、thres_lod[1]以及thres_lod[2]附加到头部。
[0536]
另外,三维数据编码装置也可以将未分配lod的所有三维点分配给lod的最下层。在该情况下,三维数据编码装置能够通过不将lod的最下层的阈值附加到头部来削减头部的编码量。例如,在图78所示的例子的情况下,三维数据编码装置将阈值thres_lod[0]和thres_lod[1]附加到头部,不将thres_lod[2]附加到头部。在该情况下,三维数据解码装置也可以将thres_lod[2]的值估计为0。另外,三维数据编码装置也可以将lod的阶层数附加到头部。由此,三维数据解码装置能够使用lod的阶层数来判定最下层的lod。
[0537]
另外,如图78所示,将lod的各层的阈值的值设定为越靠上位层越大,从而越是上位层(越接近lod0的层)则越是成为三维点间的距离远的疏点群(sparse),越是下位层则越是成为三维点间的距离近的密点群(dense)。另外,在图78所示的例子中,lod0是最上位层。
[0538]
另外,设定各lod时的初始三维点的选择方法也可以依赖于位置信息编码时的编码顺序。例如,三维数据编码装置选择在位置信息编码时最初被编码的三维点作为lod0的初始点a0,以初始点a0为基点,选择点a1、点a2来构成lod0。而且,三维数据编码装置也可以选择在不属于lod0的三维点中最早位置信息被编码的三维点作为lod1的初始点b0。即,三维数据编码装置也可以选择在不属于lodn的上层(lod0~lodn-1)的三维点中,最早位置信息被编码的三维点作为lodn的初始点n0。由此,三维数据解码装置通过在解码时使用同样的初始点选择方法,能够构成与编码时相同的lod,因此能够适当地对比特流进行解码。具体而言,三维数据解码装置选择在不属于lodn的上层的三维点中,最早位置信息被解码的三维点作为lodn的初始点n0。
[0539]
以下,对使用lod的信息生成三维点的属性信息的预测值的手法进行说明。例如,在从lod0所包含的三维点开始依次进行编码的情况下,三维数据编码装置使用lod0及lod1所包含的编码且解码完毕(以下,也简称为“已编码”)的属性信息,生成lod1所包含的对象三维点。这样,三维数据编码装置使用lodn’(n’<=n)所包含的已编码的属性信息,生成lodn所包含的三维点的属性信息的预测值。即,三维数据编码装置在lodn所包含的三维点的属性信息的预测值的计算中,不使用lodn的下层所包含的三维点的属性信息。
[0540]
例如,三维数据编码装置通过计算编码对象的对象三维点的周边的已编码的三维点中的n个以下的三维点的属性值的平均值来生成三维点的属性信息的预测值。此外,三维数据编码装置可以将n的值附加到比特流的头部等。另外,三维数据编码装置也可以对每个三维点变更n的值,对每个三维点附加n的值。由此,能够对每个三维点选择适当的n,因此能够提高预测值的精度。因此,能够减小预测残差。另外,三维数据编码装置也可以将n的值附加到比特流的头部,在比特流内固定n的值。由此,不需要对每个三维点对n的值进行编码或解码,因此能够削减处理量。另外,三维数据编码装置也可以对每个lod分别对n的值进行编码。由此,通过对每个lod选择适当的n,能够提高编码效率。
[0541]
或者,三维数据编码装置也可以通过周围的已编码的n个三维点的属性信息的加权平均值来计算三维点的属性信息的预测值。例如,三维数据编码装置使用对象三维点和周围的n个三维点各自的距离信息来计算权重。
[0542]
三维数据编码装置在对每个lod分别对n的值进行编码的情况下,例如越是lod的上位层则将n的值设定得越大,越是下位层则将n的值设定得越小。在lod的上位层中,属于
该层的三维点间的距离远,因此有可能通过将n的值设定得大并选择多个周围的三维点来进行平均化,从而能够提高预测精度。另外,由于在lod的下位层中,属于该层的三维点间的距离近,因此有可能在将n的值设定得小来抑制平均化的处理量的同时进行高效的预测。
[0543]
图79是表示预测值中使用的属性信息的例子的图。如上所述,使用lodn’(n’<=n)所包含的已编码的周围点p’来生成lodn所包含的点p的预测值。在此,周围点p’基于与点p的距离来选择。例如,使用点a0、a1、a2、b0、b1的属性信息来生成图79所示的点b2的属性信息的预测值。
[0544]
根据上述n的值,所选择的周围点发生变化。例如在n=5的情况下,作为点b2的周围点,选择a0、a1、a2、b0、b1。在n=4的情况下,基于距离信息选择点a0、a1、a2、b1。
[0545]
通过依赖于距离的加权平均来计算预测值。例如,在图79所示的例子中,点a2的预测值a2p如(式h2)以及(式h3)所示,通过点a0以及点a1的属性信息的加权平均来计算。另外,ai是点ai的属性信息的值。
[0546]
【数式2】
[0547][0548][0549]
另外,点b2的预测值b2p如(式h4)~(式h6)所示,通过点a0、a1、a2、b0、b1的属性信息的加权平均来计算。另外,bi是点bi的属性信息的值。
[0550]
【数式3】
[0551][0552][0553][0554]
另外,三维数据编码装置也可以计算三维点的属性信息的值与从周围点生成的预测值的差分值(预测残差),对计算出的预测残差进行量化。例如,三维数据编码装置通过将预测残差除以量化尺度(也称为量化步长)来进行量化。在这种情况下,量化尺度越小,由于量化而会产生的误差(量化误差)越小。相反,量化尺度越大,量化误差越大。
[0555]
此外,三维数据编码装置也可以对每个lod改变所使用的量化尺度。例如,三维数据编码装置越是上位层,越减小量化尺度,越是下位层,越增大量化尺度。属于上位层的三维点的属性信息的值有可能作为属于下位层的三维点的属性信息的预测值来使用,因此能
够减小上位层的量化尺度而抑制在上位层会产生的量化误差,通过提高预测值的精度,能够提高编码效率。此外,三维数据编码装置也可以将对每个lod使用的量化尺度附加到头部等。由此,三维数据解码装置能够正确地对量化尺度进行解码,因此能够适当地对比特流进行解码。
[0556]
此外,三维数据编码装置也可以将作为量化后的预测残差的带符号整数值(带符号量化值)变换为无符号整数值(无符号量化值)。由此,在对预测残差进行熵编码的情况下,不需要考虑负的整数的产生。此外,三维数据编码装置不一定需要将带符号整数值变换为无符号整数值,例如也可以对符号比特另外进行熵编码。
[0557]
通过从原始值减去预测值来计算预测残差。例如,如(式h7)所示,点a2的预测残差a2r通过从点a2的属性信息的值a2减去点a2的预测值a2p来计算。如(式h8)所示,点b2的预测残差b2r通过从点b2的属性信息的值b2减去点b2的预测值b2p来计算。
[0558]
a2r=a
2-a2p

(式h7)
[0559]
b2r=b
2-b2p

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

(式h9)
[0562]
b2q=b2r/qs_lod1

(式h10)
[0563]
此外,如下所述,三维数据编码装置将作为上述量化值的带符号整数值变换为无符号整数值。在带符号整数值a2q小于0的情况下,三维数据编码装置将无符号整数值a2u设定为-1-(2
×
a2q)。在带符号整数值a2q为0以上的情况下,三维数据编码装置将无符号整数值a2u设定为2
×
a2q。
[0564]
同样地,在带符号整数值b2q小于0的情况下,三维数据编码装置将无符号整数值b2u设定为-1-(2
×
b2q)。在带符号整数值b2q为0以上的情况下,三维数据编码装置将无符号整数值b2u设定为2
×
b2q。
[0565]
此外,三维数据编码装置也可以通过熵编码对量化后的预测残差(无符号整数值)进行编码。例如,也可以在对无符号整数值进行二值化之后,应用二值的算术编码。
[0566]
此外,在该情况下,三维数据编码装置也可以根据预测残差的值来切换二值化方法。例如,在预测残差pu小于阈值r_th的情况下,三维数据编码装置为了表现阈值r_th以所需的固定比特数对预测残差pu进行二值化。另外,在预测残差pu为阈值r_th以上的情况下,三维数据编码装置使用指数哥伦布(exponential-golomb)等对阈值r_th的二值化数据和(pu-r_th)的值进行二值化。
[0567]
例如,在阈值r_th为63、预测残差pu小于63的情况下,三维数据编码装置将预测残差pu以6bit进行二值化。另外,在预测残差pu为63以上的情况下,三维数据编码装置使用指数哥伦布对阈值r_th的二值数据(111111)和(pu-63)进行二值化,由此进行算术编码。
[0568]
在更具体的例子中,三维数据编码装置在预测残差pu为32的情况下,生成6bit的二值数据(100000),对该比特串进行算术编码。另外,在预测残差pu为66的情况下,三维数据编码装置生成用指数哥伦布表示阈值r_th的二值数据(111111)和值3(66-63)的比特串(00100),对该比特串(111111 00100)进行算术编码。
[0569]
这样,三维数据编码装置根据预测残差的大小切换二值化的方法,从而能够在抑制预测残差变大的情况下的二值化比特数的急剧增加的同时进行编码。此外,三维数据编码装置也可以将阈值r_th附加于比特流的头部等。
[0570]
例如,在以高比特率进行编码的情况下,即,在量化尺度小的情况下,量化误差变小,预测精度变高,结果预测残差可能不会变大。因此,在该情况下,三维数据编码装置将阈值r_th设定得大。由此,对阈值r_th的二值化数据进行编码的可能性变低,编码效率提高。相反,在以低比特率进行编码的情况下,即,在量化尺度大的情况下,量化误差变大,预测精度变差,结果有可能预测残差变大。因此,在该情况下,三维数据编码装置将阈值r_th设定得小。由此,能够防止二值化数据的急剧的比特长度增加。
[0571]
另外,三维数据编码装置也可以对每个lod切换阈值r_th,并将每个lod的阈值r_th附加到头部等。即,三维数据编码装置也可以对每个lod切换二值化的方法。例如,在上位层中,由于三维点间的距离远,预测精度变差,结果预测残差有可能变大。因此,三维数据编码装置通过对上位层将阈值r_th设定得小,来防止二值化数据的急剧的比特长度增加。另外,在下位层中,由于三维点间的距离近,预测精度变高,结果有可能预测残差变小。因此,三维数据编码装置通过对阶层将阈值r_th设定得大来提高编码效率。
[0572]
图80是表示指数哥伦布码的一例的图,是表示二值化前的值(多值)与二值化后的比特(编码)的关系的图。另外,也可以使图80所示的0和1反转。
[0573]
另外,三维数据编码装置对预测残差的二值化数据应用算术编码。由此,能够提高编码效率。此外,在应用算术编码时,在二值化数据中,在以n比特进行了二值化的部分即n比特编码(n-bit code)和使用指数哥伦布进行了二值化的部分即剩余编码(remaining code)中,各比特的0和1的出现概率的倾向有可能不同。因此,三维数据编码装置也可以通过n比特编码和剩余编码来切换算术编码的应用方法。
[0574]
例如,对于n比特编码,三维数据编码装置对每个比特使用不同的编码表(概率表)进行算术编码。此时,三维数据编码装置也可以改变对每个比特使用的编码表的数量。例如,三维数据编码装置使用1个编码表来对n比特编码的开头比特b0进行算术编码。另外,三维数据编码装置对下一个比特b1使用2个编码表。此外,三维数据编码装置根据b0的值(0或1)切换比特b1的算术编码中使用的编码表。同样地,三维数据编码装置还对下一个比特b2使用4个编码表。另外,三维数据编码装置根据b0以及b1的值(0~3),切换比特b2的算术编码中使用的编码表。
[0575]
这样,三维数据编码装置在对n比特编码的各比特bn-1进行算术编码时,使用2
n-1
个编码表。另外,三维数据编码装置根据bn-1之前的比特的值(发生样式),切换使用的编码表。由此,三维数据编码装置能够对每个比特使用适当的编码表,因此能够提高编码效率。
[0576]
另外,三维数据编码装置也可以削减在各比特中使用的编码表的数量。例如,在对各比特bn-1进行算术编码时,三维数据编码装置也可以根据bn-1之前的m比特(m<n-1)的值(发生样式)来切换2m个编码表。由此,能够抑制在各比特中使用的编码表的数量,并且提高编码效率。此外,三维数据编码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。另外,三维数据编码装置也可以将一部分比特的编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。
[0577]
例如,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)来切换使用的编码表。
[0578]
此外,三维数据编码装置也可以对n比特编码不进行二值化而应用设定0~2
n-1的值的m-ary的算术编码(m=2n)。此外,在三维数据编码装置用m-ary对n比特编码进行算术编码的情况下,三维数据解码装置也可以通过m-ary的算术解码来复原n比特编码。
[0579]
图81是用于说明例如剩余编码是指数哥伦布码的情况下的处理的图。如图81所示,使用指数哥伦布进行了二值化的部分即剩余编码包括prefix部和suffix部。例如,三维数据编码装置在prefix部和suffix部中切换编码表。即,三维数据编码装置使用prefix用的编码表来对prefix部所包含的各比特进行算术编码,使用suffix用的编码表来对suffix部所包含的各比特进行算术编码。
[0580]
此外,三维数据编码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。或者,三维数据编码装置也可以将某一个编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。例如,三维数据编码装置也可以对prefix部更新发生概率,对suffix部将发生概率固定化。
[0581]
此外,三维数据编码装置通过逆量化以及重构来对量化后的预测残差进行解码,将解码出的预测残差即解码值利用于编码对象的三维点以后的预测。具体而言,三维数据编码装置通过对量化后的预测残差(量化值)乘以量化尺度来计算逆量化值,将逆量化值和预测值相加而得到解码值(重构值)。
[0582]
例如,点a2的逆量化值a2iq使用点a2的量化值a2q通过(式h11)来计算。点b2的逆量化值b2iq使用点b2的量化值b2q通过(式h12)来计算。在此,qs_lod0是lod0用的qs,qs_lod1是lod1用的qs。即,可以根据lod变更qs。
[0583]
a2iq=a2q
×
qs_lod0

(式h11)
[0584]
b2iq=b2q
×
qs_lod1

(式h12)
[0585]
例如,如(式h13)所示,点a2的解码值a2rec通过对点a2的逆量化值a2iq加上点a2的预测值a2p来计算。如(式h14)所示,点b2的解码值b2rec通过对点b2的逆量化值b2iq加上点b2的预测值b2p来计算。
[0586]
a2rec=a2iq a2p

(式h13)
[0587]
b2rec=b2iq b2p

(式h14)
[0588]
以下,对本实施方式的比特流的句法句法例进行说明。图82是表示本实施方式的属性头部(attribute_header)的句法句法例的图。属性头部是属性信息的头部信息。如图82所示,属性头部包括阶层数信息(numlod)、三维点数信息(numofpoint[i])、阶层阈值(thres_lod[i])、周围点数信息(numneighborpoint[i])、预测阈值(thd[i])、量化尺度(qs[i])、以及二值化阈值(r_th[i])。
[0589]
阶层数信息(numlod)表示所使用的lod的阶层数。
[0590]
三维点数信息(numofpoint[i])表示属于阶层i的三维点的数量。此外,三维数据编码装置也可以将表示三维点的总数的三维点总数信息(allnumofpoint)附加于其他的头部。在该情况下,三维数据编码装置也可以不将表示属于最下层的三维点的数量的
numofpoint[numlod-1]附加到头部。在该情况下,三维数据解码装置能够通过(式h15)计算numofpoint[numlod-1]。由此,能够削减头部的编码量。
[0591]
【数式4】
[0592][0593]
阶层阈值(thres_lod[i])是用于设定阶层i的阈值。三维数据编码装置以及三维数据解码装置以lodi内的各点之间的距离大于阈值thres_lod[i]的方式构成lodi。另外,三维数据编码装置也可以不将thres_lod[numlod-1](最下层)的值附加到头部。在该情况下,三维数据解码装置将thres_lod[numlod-1]的值估计为0。由此,能够削减头部的编码量。
[0594]
周围点数信息(numneighborpoint[i])表示在属于阶层i的三维点的预测值的生成中使用的周围的点数的上限值。在周围的点数m小于numneighborpoint[i]的情况下(m《numneighborpoint[i]),三维数据编码装置也可以使用m个周围的点数来计算预测值。另外,在不需要在各lod中分开numneighborpoint[i]的值的情况下,三维数据编码装置也可以将在所有的lod中使用的1个周围点数信息(numneighborpoint)附加到头部。
[0595]
预测阈值(thd[i])表示在阶层i中编码或解码对象的对象三维点的预测中使用的周围的三维点与对象三维点的距离的上限值。三维数据编码装置以及三维数据解码装置不将距对象三维点的距离比thd[i]远的三维点用于预测。另外,在不需要在各lod中分开thd[i]的值的情况下,三维数据编码装置也可以将在所有的lod中使用的1个预测阈值(thd)附加到头部。
[0596]
量化尺度(qs[i])表示在阶层i的量化和逆量化中使用的量化尺度。
[0597]
二值化阈值(r_th[i])是用于切换属于阶层i的三维点的预测残差的二值化方法的阈值。例如,三维数据编码装置在预测残差小于阈值r_th的情况下,以固定比特数对预测残差pu进行二值化,在预测残差为阈值r_th以上的情况下,使用指数哥伦布对阈值r_th的二值化数据和(pu-r_th)的值进行二值化。另外,在不需要在各lod中切换r_th[i]的值的情况下,三维数据编码装置也可以将在所有的lod中使用的1个二值化阈值(r_th)附加到头部。
[0598]
此外,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附加到头部。
[0599]
另外,三维数据编码装置也可以对numlod、thres_lod[i]、numneighborpoint[i]、thd[i]、qs[i]以及r_th[i]中的至少一个进行熵编码并附加到头部。例如,三维数据编码装置也可以对各值进行二值化而进行算术编码。另外,为了抑制处理量,三维数据编码装置也
可以以固定长度对各值进行编码。
[0600]
此外,三维数据编码装置可以不将numlod、thres_lod[i]、numneighborpoint[i]、thd[i]、qs[i]以及r_th[i]中的至少一个附加到头部。例如,它们中的至少一个的值也可以由标准等的档次(profile)或级别(level)等规定。由此,能够削减头部的比特量。
[0601]
图83是表示本实施方式的属性数据(attribute_data)的句法例的图。该属性数据包括多个三维点的属性信息的编码数据。如图83所示,属性数据包括n比特编码(n-bit code)和剩余编码(remaining code)。
[0602]
n比特编码(n-bit code)是属性信息的值的预测残差的编码数据或其一部分。n比特编码的比特长度依赖于r_th[i]的值。例如在r_th[i]所示的值为63的情况下,n比特编码为6bit,在r_th[i]所示的值为255的情况下,n比特编码为8bit。
[0603]
剩余编码(remaining code)是属性信息的值的预测残差的编码数据中的用指数哥伦布编码后的编码数据。在n比特编码与r_th[i]相同的情况下,对该剩余编码进行编码或解码。另外,三维数据解码装置将n比特编码的值和剩余编码的值相加而对预测残差进行解码。此外,在n比特编码不是与r_th[i]相同的值的情况下,剩余编码也可以不被编码或解码。
[0604]
以下,说明三维数据编码装置中的处理的流程。图84是由三维数据编码装置进行的三维数据编码处理的流程图。
[0605]
首先,三维数据编码装置将多个帧结合(s5601)。例如,三维数据编码装置将属于所输入的多个帧的多个三维点群结合为1个三维点群。另外,三维数据编码装置在结合时,对各三维点群附加表示各三维点群所属的帧的帧索引。
[0606]
接着,三维数据编码装置对帧结合后的位置信息(geometry)进行编码(s5602)。例如,三维数据编码装置使用八叉树表现来进行编码。
[0607]
三维数据编码装置在位置信息的编码后,在三维点的位置由于量化等而变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息(s5603)。例如,三维数据编码装置通过根据位置的变化量对属性信息的值进行插值来进行重新分配。例如,三维数据编码装置检测n个接近变化后的三维位置的变化前的三维点,对n个三维点的属性信息的值进行加权平均。例如,三维数据编码装置在加权平均中,基于从变化后的三维位置到各n个三维点的距离来决定权重。然后,三维数据编码装置将通过加权平均得到的值决定为变化后的三维点的属性信息的值。另外,在由于量化等而2个以上的三维点变化到同一三维位置的情况下,三维数据编码装置也可以分配变化前的2个以上的三维点的属性信息的平均值作为该变化后的三维点的属性信息的值。
[0608]
接着,三维数据编码装置对重新分配后的属性信息(attribute)进行编码(s5604)。例如,在此,三维数据编码装置对多个三维点的每一个,将该三维点的帧索引作为该三维点的属性信息进行编码。另外,例如,在对多种属性信息进行编码的情况下,三维数据编码装置也可以依次对多种属性信息进行编码。例如,在作为属性信息对颜色、反射率以及帧索引进行编码的情况下,三维数据编码装置也可以生成如下比特流:在颜色的编码结果之后附加了反射率的编码结果,并且在反射率的编码结果之后附加了帧索引的编码结果。另外,附加到比特流的属性信息的多个编码结果的顺序不限于此顺序,可以是任何顺序。另外,三维数据编码装置将帧索引以如颜色或反射率那样的、与帧索引不同的其他属性
信息相同的数据形式,作为属性信息进行编码。因此,编码数据以与不同于帧索引的其他属性信息相同的数据形式包含帧索引。
[0609]
另外,三维数据编码装置也可以将比特流内的各属性信息的表示编码数据开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多种属性信息进行编码,并将编码结果整合为1个比特流。由此,三维数据编码装置能够高速地对多种属性信息进行编码。
[0610]
图85是属性信息编码处理(s5604)的流程图。首先,三维数据编码装置设定lod(s5611)。即,三维数据编码装置将各三维点分配给多个lod中的任一个。
[0611]
接着,三维数据编码装置开始lod单位的循环(s5612)。即,三维数据编码装置对每个lod反复进行步骤s5613~s5621的处理。
[0612]
接着,三维数据编码装置开始三维点单位的循环(s5613)。即,三维数据编码装置对每个三维点反复进行步骤s5614~s5620的处理。
[0613]
首先,三维数据编码装置搜索在处理对象的对象三维点的预测值的计算中使用的、存在于对象三维点的周围的三维点即多个周围点(s5614)。接着,三维数据编码装置计算多个周围点的属性信息的值的加权平均,并将得到的值设定为预测值p(s5615)。接着,三维数据编码装置计算对象三维点的属性信息与预测值的差分即预测残差(s5616)。接着,三维数据编码装置通过对预测残差进行量化来计算量化值(s5617)。接着,三维数据编码装置对量化值进行算术编码(s5618)。
[0614]
此外,三维数据编码装置通过对量化值进行逆量化来计算逆量化值(s5619)。接着,三维数据编码装置通过对逆量化值加上预测值来生成解码值(s5620)。接着,三维数据编码装置结束三维点单位的循环(s5621)。另外,三维数据编码装置结束lod单位的循环(s5622)。
[0615]
以下,对由上述的三维数据编码装置生成的比特流进行解码的三维数据解码装置中的三维数据解码处理进行说明。
[0616]
三维数据解码装置通过用与三维数据编码装置同样的方法对由三维数据编码装置生成的比特流内的属性信息的二值化数据进行算术解码,生成被解码的二值化数据。此外,在三维数据编码装置中,在用n比特进行了二值化的部分(n比特编码)和用指数哥伦布进行了二值化的部分(剩余编码)之间切换了算术编码的应用方法的情况下,三维数据解码装置在应用算术解码时,与其相应地进行解码。
[0617]
例如,三维数据解码装置在n比特编码的算术解码方法中,对每个比特使用不同的编码表(解码表)进行算术解码。此时,三维数据解码装置也可以改变对每个比特使用的编码表的数量。例如,对n比特编码的开头比特b0使用1个编码表来进行算术解码。另外,三维数据解码装置对下一个比特b1使用2个编码表。此外,三维数据解码装置根据b0的值(0或1)切换比特b1的算术解码中使用的编码表。同样地,三维数据解码装置进一步对下一个比特b2使用4个编码表。另外,三维数据解码装置根据b0以及b1的值(0~3),切换比特b2的算术解码中使用的编码表。
[0618]
这样,三维数据解码装置在对n比特编码的各比特bn-1进行算术解码时,使用2
n-1
个编码表。另外,三维数据解码装置根据bn-1之前的比特的值(发生样式),切换使用的编码
表。由此,三维数据解码装置能够对每个比特使用适当的编码表来适当地对提高了编码效率的比特流进行解码。
[0619]
另外,三维数据解码装置也可以削减在各比特中使用的编码表的数量。例如,三维数据解码装置也可以在对各比特bn-1进行算术解码时,根据bn-1之前的m比特(m<n-1)的值(发生样式)来切换2m个编码表。由此,三维数据解码装置能够在抑制在各比特中使用的编码表的数量的同时适当地对提高了编码效率的比特流进行解码。此外,三维数据解码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。另外,三维数据解码装置也可以将一部分比特的编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。
[0620]
例如,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)来切换编码表。
[0621]
例如,图86是用于说明剩余编码是指数哥伦布码的情况下的处理的图。如图86所示,三维数据编码装置使用指数哥伦布进行了二值化而编码的部分(剩余编码)包括prefix部和suffix部。例如,三维数据解码装置在prefix部和suffix部中切换编码表。即,三维数据解码装置使用prefix用的编码表来对prefix部所包含的各比特进行算术解码,使用suffix用的编码表来对suffix部所包含的各比特进行算术解码。
[0622]
此外,三维数据解码装置也可以根据在解码时产生的二值化数据的值来更新各编码表中的0和1的发生概率。或者,三维数据解码装置也可以将某一个编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。例如,三维数据解码装置也可以对prefix部更新发生概率,对suffix部将发生概率固定化。
[0623]
另外,三维数据解码装置将算术解码出的预测残差的二值化数据与在三维数据编码装置中使用的编码方法相匹配地进行多值化,由此对量化后的预测残差(无符号整数值)进行解码。三维数据解码装置首先计算通过对n比特编码的二值化数据进行算术解码而解码出的n比特编码的值。接着,三维数据解码装置将n比特编码的值与r_th的值进行比较。
[0624]
在n比特编码的值与r_th的值一致的情况下,三维数据解码装置判定为接下来存在用指数哥伦布进行了编码的比特,对用指数哥伦布进行了编码的二值化数据即剩余编码进行算术解码。然后,三维数据解码装置根据解码出的剩余编码,使用表示剩余编码与该值之间的关系的反推表来计算剩余编码的值。图87是表示表示剩余编码与其值之间的关系的反推表的例子的图。接下来,三维数据解码装置通过将所得到的剩余编码的值与r_th相加而得到进行了多值化的量化后的预测残差。
[0625]
另一方面,在n比特编码的值与r_th的值不一致(值小于r_th)的情况下,三维数据解码装置将n比特编码的值直接决定为进行了多值化的量化后的预测残差。由此,三维数据解码装置能够适当地对在三维数据编码装置中根据预测残差的值切换二值化方法而生成的比特流进行解码。
[0626]
此外,在阈值r_th附加到比特流的头部等的情况下,三维数据解码装置也可以从头部解码阈值r_th的值,并使用解码出的阈值r_th的值来切换解码方法。另外,三维数据解
码装置在对每个lod将阈值r_th附加到头部等的情况下,使用对每个lod解码出的阈值r_th来切换解码方法。
[0627]
例如,在阈值r_th为63、解码出的n比特编码的值为63的情况下,三维数据解码装置通过利用指数哥伦布对剩余编码进行解码,从而得到剩余编码的值。例如,在图87所示的例子中,剩余编码为00100,作为剩余编码的值而得到3。接着,三维数据解码装置通过将阈值r_th的值63和剩余编码的值3相加,得到预测残差的值66。
[0628]
另外,在解码出的n比特编码的值为32的情况下,三维数据解码装置将n比特编码的值32设定为预测残差的值。
[0629]
另外,三维数据解码装置通过例如与三维数据编码装置中的处理相反的处理,将解码出的量化后的预测残差从无符号整数值变换为带符号整数值。由此,三维数据解码装置在对预测残差进行熵编码的情况下,能够适当地对不考虑负的整数的产生而生成的比特流进行解码。另外,三维数据解码装置不一定需要将无符号整数值变换为带符号整数值,例如在对将符号比特另外进行熵编码而生成的比特流进行解码的情况下,也可以对符号比特进行解码。
[0630]
三维数据解码装置通过逆量化及重构对变换为带符号整数值的量化后的预测残差进行解码,由此生成解码值。另外,三维数据解码装置将所生成的解码值利用于解码对象的三维点以后的预测。具体而言,三维数据解码装置通过对量化后的预测残差乘以解码出的量化尺度来计算逆量化值,将逆量化值和预测值相加来得到解码值。
[0631]
被解码的无符号整数值(无符号量化值)通过以下的处理变换为带符号整数值。在被解码的无符号整数值a2u的lsb(least significant bit:最低有效比特)为1的情况下,三维数据解码装置将带符号整数值a2q设定为-((a2u 1)>>1)。在无符号整数值a2u的lsb不是1的情况下,三维数据解码装置将带符号整数值a2q设定为(a2u>>1)。
[0632]
同样地,在被解码的无符号整数值b2u的lsb为1的情况下,三维数据解码装置将带符号整数值b2q设定为-((b2u 1)>>1)。在无符号整数值n2u的lsb不是1的情况下,三维数据解码装置将带符号整数值b2q设定为(b2u>>1)。
[0633]
另外,由三维数据解码装置进行的逆量化及重构处理的详细情况与三维数据编码装置中的逆量化及重构处理相同。
[0634]
以下,说明三维数据解码装置中的处理的流程。图88是由三维数据解码装置进行的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(s5631)。例如,三维数据解码装置使用八叉树表现进行解码。
[0635]
接着,三维数据解码装置从比特流中解码属性信息(attribute)(s5632)。例如,在对多种属性信息进行解码的情况下,三维数据解码装置也可以依次对多种属性信息进行解码。例如,在作为属性信息对颜色、反射率和帧索引进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果、反射率的编码结果以及帧索引的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,在比特流中,在反射率的编码结果之后附加有帧索引的编码结果的情况下,三维数据解码装置对反射率的编码结果的解码后的帧索引的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加到比特流的属性信息的编码结果进行解码都可以。
[0636]
另外,三维数据解码装置也可以通过对头部进行解码来获得比特流内的各属性信息的表示编码数据开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多种属性信息进行解码,将解码结果整合到1个三维点群。由此,三维数据解码装置能够高速地对多种属性信息进行解码。
[0637]
接着,三维数据解码装置基于与各三维点的位置信息一起被解码的帧索引的值,将解码后的三维点群分割为多个帧(s5633)。三维数据解码装置在例如解码后的三维点a的帧索引为0的情况下,在帧0中添加三维点a的位置信息以及属性信息,在解码后的三维点b的帧索引为1的情况下,在帧1中添加三维点b的位置信息以及属性信息,由此将通过解码得到的三维点群分割为分别属于不同的多个帧的多个三维点群。
[0638]
图89是属性信息解码处理(s5632)的流程图。首先,三维数据解码装置设定lod(s5641)。即,三维数据解码装置将具有被解码的位置信息的多个三维点分别分配给多个lod中的任一个。例如,该分配方法是与在三维数据编码装置中使用的分配方法相同的方法。
[0639]
接着,三维数据解码装置开始lod单位的循环(s5642)。即,三维数据解码装置对每个lod反复进行步骤s5643~s5649的处理。
[0640]
接着,三维数据解码装置开始三维点单位的循环(s5643)。即,三维数据解码装置针对每个三维点反复进行步骤s5644~s5648的处理。
[0641]
首先,三维数据解码装置搜索在处理对象的对象三维点的预测值的计算中使用的、存在于对象三维点的周围的三维点即多个周围点(s5644)。接着,三维数据解码装置计算多个周围点的属性信息的值的加权平均,将得到的值设定为预测值p(s5645)。另外,这些处理与三维数据编码装置中的处理相同。
[0642]
接着,三维数据解码装置从比特流中对量化值进行算术解码(s5646)。另外,三维数据解码装置通过对解码出的量化值进行逆量化来计算逆量化值(s5647)。接着,三维数据解码装置通过对逆量化值加上预测值来生成解码值(s5648)。接着,三维数据解码装置结束三维点单位的循环(s5649)。另外,三维数据解码装置结束lod单位的循环(s5650)。
[0643]
接着,对本实施方式的三维数据编码装置以及三维数据解码装置的结构进行说明。图90是表示本实施方式的三维数据编码装置5600的结构的框图。该三维数据编码装置5600具备帧结合部5601、位置信息编码部5602、属性信息重新分配部5603、以及属性信息编码部5604。
[0644]
帧结合部5601结合多个帧。位置信息编码部5602对输入点群所包含的多个三维点的位置信息(geometry)进行编码。属性信息重新分配部5603使用位置信息的编码及解码结果,重新分配输入点群所包含的多个三维点的属性信息的值。属性信息编码部5604对重新分配的属性信息(attribute)进行编码。此外,三维数据编码装置5600生成包含被编码的位置信息和被编码的属性信息的比特流。
[0645]
图91是表示本实施方式的三维数据解码装置5610的结构的框图。该三维数据解码装置5610包括位置信息解码部5611、属性信息解码部5612、以及帧分割部5613。
[0646]
位置信息解码部5611从比特流中解码多个三维点的位置信息(geometry)。属性信
息解码部5612从比特流中解码多个三维点的属性信息(attribute)。帧分割部5613基于与各三维点的位置信息一起解码后的帧索引的值,将解码后的三维点群分割为多个帧。另外,三维数据解码装置5610通过将解码出的位置信息与解码出的属性信息结合来生成输出点群。
[0647]
图92是表示属性信息的结构的图。图92的(a)是表示被压缩的属性信息的结构的图,图92的(b)是表示属性信息的头部的句法的一例的图,图92的(c)是表示属性信息的有效载荷(数据)的句法的一例的图。
[0648]
如图92的(b)所示,对属性信息的头部的句法进行说明。apx_idx表示对应的参数集的id。在apx_idx中,在对每个帧存在参数集的情况下,也可以表示多个id。offset表示用于获得结合数据的偏移位置。other_attribute_information表示例如表示量化参数的差分值的qpδ(日文:
デルタ
)等那样的其他属性数据。combine_frame_flag是表示编码数据是否被帧结合的标志。number_of_combine_frame表示结合的帧的数量n。number_of_combine_frame可以包含在sps或aps中。
[0649]
refer_different_frame是表示是否使用相同的帧、或属于相同的帧以及相同的帧以外的周围三维点的属性信息对编码/解码对象的对象三维点的属性信息进行编码/解码的标志。例如,考虑如下所述的值的分配。在refer_different_frame为0的情况下,三维数据编码装置或三维数据解码装置使用与对象三维点相同的帧内的周围三维点的属性信息对对象三维点的属性信息进行编码/解码。在该情况下,三维数据编码装置或三维数据解码装置不使用与对象三维点不同的帧内的周围三维点的属性信息对对象三维点的属性信息进行编码/解码。
[0650]
另一方面,在refer_different_frame为1的情况下,三维数据编码装置或三维数据解码装置使用与对象三维点所属的帧相同的帧以及相同的帧以外的周围三维点的属性信息对对象三维点的属性信息进行编码/解码。即,三维数据编码装置或三维数据解码装置与对象三维点所属的帧是否属于相同的帧无关地,使用周围三维点的属性信息对对象三维点的属性信息进行编码/解码。
[0651]
作为对象三维点的属性信息,示出了使用周围三维点的属性信息对颜色信息或者反射率信息进行编码的例子,但也可以使用周围三维点的帧索引对对象三维点的帧索引进行编码。三维数据编码装置例如也可以将在结合多个帧时对各三维点附加的帧索引设为各三维点的属性信息,使用在本公开中说明的预测编码方法进行编码。例如,三维数据编码装置也可以根据三维点a的周围三维点b、c、d的帧索引的值来计算三维点a的帧索引的预测值,对预测残差进行编码。由此,三维数据编码装置能够削减用于对帧索引进行编码的比特量,能够提高编码效率。
[0652]
图93是用于对编码数据进行说明的图。
[0653]
在点群数据包含属性信息的情况下,也可以将属性信息进行帧结合。属性信息参照位置信息进行编码或解码。所参照的位置信息可以是进行帧结合前的位置信息,也可以是进行了帧结合后的位置信息。位置信息的结合帧的数量与属性信息的结合帧的数量可以相同,也可以独立而不同。
[0654]
图93中的括号内的数值表示帧,例如在1的情况下,表示是帧1的信息,在1-4的情况下,表示是结合的帧1~4的信息。另外,g表示位置信息,a表示属性信息。frame_idx1是帧
1的帧索引。
[0655]
图93的(a)表示refer_different_frame为1的情况的例子。在refer_different_frame为1的情况下,三维数据编码装置或三维数据解码装置基于g(1-4)的信息对a(1-4)进行编码或解码。在解码时,三维数据解码装置使用与g(1-4)一起被解码的frame_idx1-4将g(1-4)和a(1-4)分割为frame1-4。此外,在对a(1-4)进行编码或解码的情况下,三维数据编码装置或三维数据解码装置也可以参照a(1-4)的其他属性信息。即,三维数据编码装置或三维数据解码装置在对a(1)进行编码或解码的情况下,可以参照其他a(1),也可以参照a(2-4)。另外,箭头表示信息的参照源和参照目标,箭头的来向表示参照源,箭头的去向表示参照目标。
[0656]
图93的(b)表示refer_different_frame为0的情况的例子。refer_different_frame为0的情况与refer_different_frame为1的情况不同,三维数据编码装置或三维数据解码装置不参照不同的帧的属性信息。即,三维数据编码装置或三维数据解码装置在对a(1)进行编码或解码的情况下,参照其他a(1),不参照a(2-4)。
[0657]
图93的(c)表示在refer_different_frame为0的情况下的另一例。在该情况下,位置信息在被结合的帧中被编码,但属性信息按每个帧被编码。因此,在对a(1)进行编码或解码的情况下,三维数据编码装置或三维数据解码装置参照其他a(1)。同样地,在对属性信息进行编码或解码的情况下,参照属于相同帧的其他属性信息。此外,a(1-4)也可以将各个aps附加到头部。
[0658]
如上所述,本实施方式的三维数据编码装置进行图94所示的处理。三维数据编码装置获得第3点群数据,该第3点群数据结合了第1点群数据和第2点群数据,且包含第3点群数据中包含的多个三维点各自的位置信息、和表示多个三维点分别属于第1点群数据和第2点群数据中的哪一个的识别信息(s5661)。接着,三维数据编码装置通过对获得的第3点群数据进行编码来生成编码数据(s5662)。三维数据编码装置在编码数据的生成中,对多个三维点的每一个,将该三维点的识别信息作为该三维点的属性信息进行编码。
[0659]
由此,该三维数据编码方法能够通过对多个点群数据进行汇总编码来提高编码效率。
[0660]
例如,在编码数据的生成(s5662)中,使用多个三维点中的第1三维点的周围的第2三维点的属性信息,对第1三维点的属性信息进行编码。
[0661]
例如,第1三维点的属性信息包含表示第1三维点属于第1点群数据的第1识别信息。另外,第2三维点的属性信息包含表示第2三维点属于第2点群数据的第2识别信息。
[0662]
例如,在编码数据的生成(s5662)中,使用第2三维点的属性信息计算第1三维点的属性信息的预测值,计算第1三维点的属性信息与预测值的差分即预测残差,生成包含预测残差的编码数据。
[0663]
例如,在获得(s5661)中,通过结合第1点群数据和第2点群数据来生成第3点群数据,来获得第3点群数据。
[0664]
例如,编码数据以与不同于识别信息的其他属性信息相同的数据形式包含识别信息。
[0665]
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
[0666]
另外,本实施方式的三维数据解码装置进行图95所示的处理。三维数据解码装置
获得编码数据(s5671)。接着,三维数据解码装置通过对编码数据进行解码,获得结合了第1点群数据和第2点群数据的第3点群数据中包含的多个三维点各自的位置信息以及属性信息(s5672)。此外,属性信息包含表示与属性信息对应的三维点属于第1点群数据和第2点群数据中的哪一个的识别信息。
[0667]
由此,三维数据解码装置能够通过对多个点群数据进行汇总编码来对提高了编码效率的编码数据进行解码。
[0668]
例如,在获得(s5671)中,使用多个三维点中的第1三维点周围的第2三维点的属性信息,对第1三维点的属性信息进行解码。
[0669]
例如,第1三维点的属性信息包含表示第1三维点属于第1点群数据的第1识别信息。另外,第2三维点的属性信息包含表示第2三维点属于第2点群数据的第2识别信息。
[0670]
例如,编码数据包括预测残差。然后,在编码数据的解码(s5672)中,使用第2三维点的属性信息计算第1三维点的属性信息的预测值,将预测值和预测残差相加,由此计算第1三维点的属性信息。
[0671]
例如,三维数据解码装置进一步使用识别信息,将第3三维点群数据分割为第1点群数据和第2点群数据。
[0672]
例如,编码数据以与不同于识别信息的其他属性信息相同的数据形式包含识别信息。
[0673]
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
[0674]
(实施方式7)
[0675]
如上所述,在将多个帧结合时对各三维点附加的帧索引(frame_idx)不是作为各三维点的位置信息,而是作为新的属性信息进行存放的情况下,说明使用在本公开中说明的预测编码方法进行编码的方法的具体例。
[0676]
图96是表示本实施方式的编码数据(比特流)的例子的图。例如,如图96所示,在点群数据具有位置信息g(geometry)和第1属性信息a1(attribute)(例如颜色)的情况下,三维数据编码装置在应用帧结合的情况下,将帧索引作为第2属性信息a2进行编码。此外,三维数据编码装置在sps(序列参数集)中存放表示该属性信息的类型是帧索引的识别信息。即,识别信息表示多个属性信息中的包含帧索引(表示帧索引)的属性信息。换言之,识别信息表示多个属性信息的每一个是否是包含帧索引的属性信息。
[0677]
sps是多个帧(多个结合帧)共同的参数集,是位置信息和属性信息共同的参数集。另外,识别信息也可以包含在sps以外的控制信息(元数据)中。例如,识别信息也可以包含在aps等中。
[0678]
另外,图96表示对将帧1~4这4个帧结合而成的结合帧进行编码而得到的编码数据的例子。该图的g(1-4)是结合帧的位置信息。a1(1-4)是结合帧的第1属性信息,例如是颜色信息。a2(1-4)是第2属性信息,表示帧1~4的帧索引。
[0679]
另外,gps(1-4)是g(1-4)的参数集,aps1(1-4)是a1(1-4)的参数集,aps2(1-4)是a2(1-4)的参数集。
[0680]
例如,使用g(1-4)的信息对a1(1-4)进行编码或解码。另外,a1(1-4)也可以相互参照。另外,在解码时,使用与g(1-4)一起被解码的帧索引1~4将g(1-4)和a(1-4)分割成帧1
~4。
[0681]
此外,也可以是,决定为在将帧索引作为属性信息发送时,一定使用可逆的编码方法。例如,可逆的编码方法是不进行量化的编码方法。另外,也可以是,在帧索引是属性信息的情况下,以成为可逆的编码的方式对量化参数赋予制约。此外,也可以是,三维数据编码装置将表示使用的编码方法或量化参数的信息存放在比特流中。
[0682]
另外,三维数据编码装置对于位置信息以及帧索引以外的属性信息的一部分或者全部,既可以使用可逆的编码方法,也可以使用不可逆的编码方法。
[0683]
此外,三维数据编码装置除了帧索引以外,也可以将每个帧的信息作为第2属性信息发送。例如,每个帧的信息是表示帧数据的生成时间、编码时间或解码时间等的时间戳。或者,每个帧的信息是指获得帧数据时的传感器信息。传感器信息包括传感器的速度、加速度、位置信息、或者朝向等。
[0684]
接着,对压缩不具有颜色或反射率等属性信息的三维点群的例子进行说明。图97是表示该情况下的编码数据的例子的图。
[0685]
在进行帧结合时,三维数据编码装置生成属性信息a1,并发送包含所生成的属性信息a1的编码数据。这里,属性信息a1表示帧索引。
[0686]
此外,也可以是,在结合帧的数量可变的情况下,在结合帧数为1的情况下,三维数据编码装置不生成帧索引。也可以是,在该情况下,三维数据解码装置在不存在表示帧索引的属性信息的情况下,判断为结合帧数为1。
[0687]
以下,对进行运动补偿的三维数据编码装置进行说明。例如,在使用移动体所具有的激光雷达(lidar)等获得时间上不同的1个以上的点群数据的情况下,有时构成第1点群的对象和构成第2点群的对象移动。在将这样的不同的pcc点群或者点群帧结合的情况下,在点群内的对象物的运动慢的情况下,能够共享八叉树(octree)的可能性高,在对象物的运动快的情况下,无法共享八叉树的可能性高。
[0688]
因此,三维数据编码装置预测不同帧间的运动,在基于运动校正点群后结合点群。图98是该情况下的三维数据编码处理的流程图。
[0689]
首先,三维数据编码装置通过运动预测来预测帧间的运动,由此计算表示帧间的运动的运动矢量(运动信息)(s5801)。例如,三维数据编码装置通过将当前帧的点群与过去的帧的点群进行比较来生成运动矢量。具体而言,三维数据编码装置检测2个帧中包含的同一对象的位置,基于检测出的位置的差判定运动。另外,三维数据编码装置在点群的比较中,可以使用帧所包含的点群中的一部分点群,也可以使用全部点群。另外,三维数据编码装置也可以使用位置信息或者属性信息来提取特征点,并预测特征点的运动。
[0690]
接着,三维数据编码装置使用计算出的运动矢量进行运动补偿(s5802)。图99是表示该运动补偿以及帧结合的例子的图。该图的(a)是不进行运动补偿的情况的例子,该图的(b)是进行运动补偿的情况的例子。例如,如该图的(b)所示,三维数据编码装置根据帧1预测帧2的点群的运动,使帧2的点群的位置移动运动的量,由此校正帧2的点群的位置。
[0691]
接着,三维数据编码装置通过将帧1与校正后的帧2结合来生成结合帧(s5803)。接着,三维数据编码装置对结合帧的位置信息进行编码(s5804)。
[0692]
接着,三维数据编码装置对属性信息进行变换(s5805),对变换后的属性信息进行编码(s5806)。另外,在属性信息的变换中,例如在通过量化等而三维点的位置发生了变化
的情况下,进行对变化后的三维点重新分配原来的三维点的属性信息的处理等。
[0693]
接着,对进行运动补偿的三维数据解码装置进行说明。图100是表示从三维数据编码装置5800向三维数据解码装置5810发送运动矢量的例子的图。图101是表示编码数据(比特流)的例子的图。
[0694]
三维数据编码装置5800将运动矢量存放在gps等的每个帧的控制信息(元数据)中并发送。此外,三维数据编码装置5800可以将运动矢量存放在位置信息的头部中,也可以存放在位置信息的有效载荷内。或者,三维数据编码装置5800也可以将运动矢量存放在sps或aps等其他控制信息中。例如,如图101所示,三维数据编码装置5800在gps内存放要结合的每个帧的运动矢量。
[0695]
图102是表示本实施方式的三维数据解码装置5810的结构的框图。三维数据解码装置5810具备位置信息解码部5811、属性信息解码部5812、帧分割部5813和运动校正部5814。
[0696]
位置信息解码部5811从比特流中解码位置信息。属性信息解码部5812从比特流中解码属性信息。帧分割部5813将解码后的结合帧(位置信息以及属性信息)分割为多个帧。运动校正部5814通过使用运动矢量校正分割后的多个帧,生成多个帧的点群数据。即,运动校正部5814使用运动矢量进行使在三维数据编码装置中转变的点的位置返回到原来的位置的处理。
[0697]
接着,说明运动矢量的计算方法的例子。图103是表示运动矢量的计算方法的例子的图。图103的虚线框表示进行帧结合的帧群。
[0698]
例如,也可以是,如该图的(a)所示,三维数据编码装置将当前的帧与当前的帧的前一帧进行比较来导出运动矢量并发送。在该情况下,例如,三维数据编码装置不对开头的帧进行运动矢量的导出和发送。或者,也可以是,如该图的(c)所示,三维数据编码装置对开头帧也与之前的帧进行比较来导出并发送运动矢量。另外,也可以是,如该图的(b)那样,三维数据编码装置对当前的帧和结合的帧群的开头帧进行比较来导出并发送运动矢量。
[0699]
图104是表示应用帧间预测的情况下的运动矢量的计算方法的例子的图。在应用帧间预测的情况下,三维数据编码装置例如也可以对当前的帧与gof开头的帧进行比较来导出运动矢量。另外,三维数据编码装置也可以导出gof开头间的运动矢量。这里,gof是包含多个帧的处理单位,例如是包含i帧的随机访问单位。
[0700]
此外,三维数据编码装置可以根据点群的信息生成运动矢量,也可以基于获得点群时的传感器的位置信息、速度以及加速度等任意的信息或者多个信息来计算运动矢量。
[0701]
接着,对使用瓦片分割的情况进行说明。在将大规模点群分割为瓦片的情况下,有时在每个瓦片中,帧间的运动矢量的大小不同。
[0702]
因此,三维数据编码装置可以决定是否对每个瓦片应用运动矢量。三维数据编码装置可以针对每个瓦片来改变运动矢量的导出方法或补偿方法。例如,三维数据编码装置通过针对每个瓦片导出运动矢量,即使在存在运动矢量大的瓦片和运动矢量小的瓦片的情况下,也能够应用适当的运动补偿。
[0703]
另外,三维数据编码装置也可以将表示是否对各瓦片应用了运动矢量、运动矢量的导出方法或补偿方法等的信号存放在比特流中。
[0704]
另外,在进行了运动补偿时,由于位置的偏移,点群的集合的区域有可能变大。在
这种情况下,三维数据编码装置可以扩展边界框,或者可以在不扩展边界框的情况下将点群的位置变换为现有的边界框内的位置。
[0705]
图105是表示该情况下的编码数据的例子的图。如图105所示,例如,可以将各瓦片的运动矢量存放在gps等中。
[0706]
图106是表示应用运动补偿的瓦片的例子的图。如图106所示,例如,三维数据编码装置不对接近车辆等移动体的瓦片应用运动补偿,对远离移动体的瓦片应用运动补偿。
[0707]
如上所述,本实施方式的三维数据编码装置进行图107所示的处理。首先,三维数据编码装置通过对结合了第1点群数据和第2点群数据的第3点群数据进行编码来生成编码数据(s5811)。三维数据编码装置生成包含编码数据和控制信息的比特流(s5812)。编码数据包含第3点群数据所包含的多个三维点各自的位置信息和多个属性信息。多个属性信息之一包含表示对应的三维点属于第1点群数据和第2点群数据中的哪一个的第1信息(例如帧索引)。控制信息包含第2信息(例如识别信息),所述第2信息表示多个属性信息中的包含第1信息的属性信息。
[0708]
由此,对由三维数据编码装置生成的比特流进行解码的三维数据解码装置在多个属性信息中的任一个包含第1信息的情况下,能够使用控制信息中包含的第2信息,容易地判定包含第1信息的属性信息。因此,三维数据编码装置能够降低三维数据解码装置的处理量。
[0709]
例如,控制信息是多个帧共同的控制信息(例如sps)。例如,第3点群数据是多个时刻的多个点群数据,控制信息是该多个点群数据共同的控制信息。
[0710]
例如,三维数据编码装置使用可逆的编码方法对包含第1信息的属性信息进行编码。例如,三维数据编码装置以可逆的编码方法被使用的方式设定量化参数。例如,三维数据编码装置将表示所设定的量化参数的信息存放在比特流中。
[0711]
例如,三维数据编码装置使用表示第1点群数据和第2点群数据之间的运动的运动信息(例如运动矢量),校正第2点群数据中包含的点群的位置,通过整合第1点群数据和校正后的第2点群数据来生成第3点群数据,编码数据包含运动信息。
[0712]
由此,三维数据编码装置能够使结合的点群的位置接近,因此能够提高编码效率。
[0713]
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
[0714]
另外,本实施方式的三维数据解码装置进行图108所示的处理。首先,三维数据解码装置从比特流获得编码数据,所述编码数据包含结合了第1点群数据和第2点群数据的第3点群数据中包含的多个三维点各自的位置信息和多个属性信息(s5821)。三维数据解码装置根据比特流中包含的控制信息,获得表示多个属性信息中的、包含第1信息(例如帧索引)的属性信息的第2信息(例如识别信息),所述第1信息表示对应的三维点属于第1点群数据和第2点群数据中的哪一个(s5822)。三维数据解码装置使用第2信息来获得第1信息(s5823)。例如,三维数据解码装置使用第2信息来确定包含第1信息的属性信息,并从所确定的属性信息中获得第1信息。
[0715]
由此,三维数据解码装置在多个属性信息中的任一个包含第1信息的情况下,能够使用控制信息中包含的第2信息,容易地判定包含第1信息的属性信息。因此,三维数据解码装置能够降低处理量。
[0716]
例如,控制信息是多个帧共同的控制信息(例如sps)。
[0717]
例如,包含第1信息的属性信息是使用可逆的编码方法被编码的。例如,三维数据解码装置使用与该可逆的编码方法对应的解码方法对使用可逆的编码方法编码后的属性信息进行解码。
[0718]
例如,量化参数被设定为使用可逆的编码方法。例如,三维数据解码装置从比特流获得表示以使用可逆的编码方法的方式设定的量化参数的信息,使用该量化参数使用上述解码方法对属性信息进行解码。
[0719]
例如,三维数据解码装置使用第1信息,从第3点群数据中分离第1点群数据和第2点群数据。
[0720]
例如,三维数据解码装置从比特流获得表示第1点群数据和第2点群数据之间的运动的运动信息,使用运动信息校正第2点群数据中包含的点群的位置。
[0721]
由此,三维数据解码装置通过使结合的点群的位置接近,能够对编码效率提高了的比特流进行解码。
[0722]
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
[0723]
(实施方式8)
[0724]
在本实施方式中,说明属性信息的结构变化的情况下的编码方法。图109是表示帧结合时的帧索引的例子的图。
[0725]
在将多个帧结合为1个帧并对结合后的帧进行编码的帧结合编码方法中,例如将表示结合后的帧中包含的各三维点在结合前所属的帧的帧索引作为属性信息附加到各三维点。此外,如图109所示,假设要进行帧结合的帧(#1~#4、#7~#8)和不进行帧结合的帧(#5~#6)混合存在的情况。此外,还可以假设结合的帧的数量自适应地变更的情况。
[0726]
帧结合后的第2点群数据包含帧索引(frameindex),该帧索引按每个点表示点属于哪个帧。对于未帧结合的帧(#5、#6)的第2点群数据,由于点所属的帧是唯一确定的,因此对于这些帧,可以假设(1b)将表示预先确定的固定值的帧索引附加到各点的方法(图109中表述为“frameindex固定值”)、以及(2)不附加帧索引的方法(图109中表述为“无frameindex”)。另外,预先确定的固定值(默认值)例如可以是0,也可以是其他值。
[0727]
即,假设如下情况:(1a)特定的属性信息针对所有帧存在的通常情形(例如,对所有帧不进行帧结合,或者对所有帧进行帧结合的情形);(1b)作为特定的属性信息表示不是固定值的通常的值的帧和作为特定的属性信息表示固定值的帧混合存在的情形;以及(2)存在特定的属性信息的帧和不存在特定的属性信息的帧混合存在的情形。
[0728]
此外,在本实施方式中,说明了属性信息是帧索引的例子,但对于其他属性信息(颜色或反射率等)也是同样的。即,属性信息可以是帧索引,也可以是其他属性信息(颜色或反射率等)。
[0729]
图110是三维数据编码装置的框图。如图110所示,三维数据编码装置包括前处理部10301和编码部10302。前处理部10301通过对第1点群数据进行帧结合、数据合成、量化以及变换处理(坐标变换等)等前处理,将第1点群数据变换为各种格式的第2点群数据。
[0730]
例如,如上所述,在将时间序列数据进行帧结合后,有时在帧间格式不同。或者,在合成了不同的数据的情况下,某点具有特定的属性数据,某点不具有特定的属性数据等,在数据内部,格式可能不同。
[0731]
作为编码部10302中的编码方法或编码工具,考虑(2)的与按每个帧存在/不存在特定的属性信息混合存在的点群相对应的情况(情形a)和不对应的情况(情形b)。图111是表示这些情形的图。
[0732]
不对应的情况(情形b)是指例如编码装置和解码装置中的处理或规定的数据结构不支持(2)的点群数据,不能正确地编码或解码点群数据的情况。或者,编码装置和解码装置支持(2)的点群数据,但在应用程序或系统格式等周边处理不对应等情况下,由编码装置制约处理的情况。
[0733]
以下,说明在情形a和情形b中对各种输入格式的点群数据进行编码和解码的方法。
[0734]
在点群数据被输入情形a的编码部10302的情况下,(1a)、(1b)及(2)的点群数据全部被直接输入到编码部10302。编码部10302能够实施通常的编码处理。
[0735]
另一方面,在点群数据被输入情形b的编码部10302的情况下,在前处理部10301中,通过把原来的第1点群数据变换成第2点群数据,来统一点群数据内的格式。
[0736]
图112是表示不具有属性信息的帧的点群数据的例子的图。图113是表示格式变更后的点群数据的例子的图。例如,如图112和图113所示,对于具有位置信息而不具有属性信息的帧,前处理部10301通过赋予0等固定值作为属性信息来生成具有属性信息的帧。此外,前处理部10301也可以实施记载特定的无效值等值作为属性信息的填充处理。
[0737]
编码部10302可以与情形a和情形b这两方的情形对应,也可以与一方的情形对应。例如,在编码部10302与情形b对应而不与情形a对应的情况下,需要进行前处理部10301中的格式变换。
[0738]
编码部10302也可以将表示点群数据是(1a)、(1b)、(2)中的某一个、或者是否有可能有(2)的数据、或者格式是否已经被统一为(1a)或(1b)的标识符或制约信息存放到编码比特流内的sps(序列参数集)等元数据中。由此,三维数据解码装置或应用程序能够识别所输入的点群数据的种类。
[0739]
接着,说明被规定为输入到编码部10302的点群数据的结构在所有帧中相同的情况(情形b)。在对(2)的点群数据进行编码的情况下,前处理部10301通过实施填充等处理,将(2)的点群数据变换为(1b)的点群数据,以使所有帧的点群数据的结构相同。
[0740]
以下,说明对(1b)的点群数据进行编码的第1方法。编码部10302在使用通常的编码方法对所输入的第2点群数据进行编码的情况下,从原来的第1点群数据的时间点起对包含属性信息的帧和包含被填充后的属性信息的帧不加区别地进行编码,生成sps和aps(属性信息参数集)等参数集、和属性切片数据(编码属性数据)。
[0741]
通过使用该方法,可以使存放在sps中的属性信息的列表在序列内相同,并且不需要按每个帧使sps的结构变化的处理。此外,有如下特征:在使用第1方法的情况下,通过将被填充后的属性信息与通常的属性信息不加区别地进行处理,能够不变更以往的处理地对应。
[0742]
此外,在输入到编码部10302的点群数据的结构被规定为特定的属性信息存在/不存在是可以变化的情况下(情形a),可以在编码部10302的内部进行上述的填充处理。
[0743]
接着,说明对(1b)的点群数据进行编码的第2方法。编码部10302基于输入的点群数据是包含来自原来的第1点群数据的属性信息的帧还是包含被填充后的属性信息的帧,
使用不同的编码处理或不同的数据结构。
[0744]
说明第2方法中的属性信息的编码方法。图114是编码部10302中包含的属性信息编码部10310的框图。属性信息编码部10310通过对第2点群数据中包含的属性信息进行编码来生成编码属性信息。该属性信息编码部10310包括判定部10311、变换部10312、量化部10313以及熵编码部10314。
[0745]
判定部10311判定输入的属性信息是否是被填充后的属性信息,或者是否是由无效数据或固定值构成的属性信息。在被输入的属性信息不是被填充后的属性信息或者不是由无效数据或固定值构成的属性信息时,变换部10312通过对属性信息进行变换处理来生成变换系数。量化部10313对变换系数进行量化。熵编码部10314通过对被量化的变换系数进行熵编码,来生成编码属性信息。这里,变换处理是使用三维点的位置信息的变换处理。例如,变换处理是predicting、lifting或者raht(region adaptive hierarchical transform,区域自适应层级变换)。这里,predicting以及lifting是使用了lod(level of detail)的变换方法之一,是计算预测残差的方法。
[0746]
另一方面,在被输入的属性信息是被填充后的属性信息或者由无效数据或固定值构成的属性信息的情况下,属性信息编码部10310不进行变换处理、量化以及熵编码。即,属性信息编码部10310不对属性信息进行编码。例如,属性信息编码部10310也可以不输出编码属性信息。或者,属性信息编码部10310在属性信息由固定值构成的情况下,可以对1个固定值进行编码。或者,属性信息编码部10310也可以将被输入的属性信息直接作为编码属性信息输出。
[0747]
另外,属性信息编码部10310在被输入的属性信息是被填充后的属性信息、或者是由无效数据或固定值构成的属性信息的情况下,也可以不进行变换处理,而对属性信息进行量化以及熵编码的至少一方。
[0748]
接着说明属性信息的附加信息(元数据)的生成方法。图115是编码部10302中包含的附加信息编码部10320的框图。附加信息编码部10320通过对附加信息进行编码来生成编码附加信息。该附加信息编码部10320包括判定部10321、头部压缩部10322和编码部10323。
[0749]
判定部10321判定被输入的属性信息是否是被填充后的属性信息,或者是否是由无效数据或固定值构成的属性信息。在被输入的属性信息不是被填充后的属性信息或者不是由无效数据或固定值构成的属性信息的情况下,编码部10323通过使用规定的参数集或头部的句法对附加信息(元数据)进行编码来生成编码附加信息。
[0750]
另一方面,在被输入的属性信息是被填充后的属性信息或者是由无效数据或固定值构成的属性信息的情况下,头部压缩部10322通过删除不需要的头部或者使用规定的压缩方法来削减头部区域。编码部10323通过对删除了不需要的头部或压缩后的头部进行编码,来生成编码附加信息。或者,附加信息编码部10320可以不发送规定的元数据。另外,附加信息编码部10320可以生成删除了不需要的头部的附加信息,而不是删除不需要的头部。
[0751]
或者,附加信息编码部10320可以根据是否绕过(bypass)了属性信息的编码处理(变换处理、量化以及熵编码),在绕过了属性信息的编码处理的情况下删除与被绕过后的处理有关的附加信息。
[0752]
这里,附加信息(元数据)是sps和aps等参数集、或者属性信息的数据头部等中包含的信息。
[0753]
另外,这里叙述了属性信息编码部10310具备判定部10311,附加信息编码部10320具备判定部10321的例子,但它们也可以共用。此外,可以使用上述的对属性信息的处理和对附加信息的处理中的一方,也可以使用双方。
[0754]
通过使用第2方法,能够削减对被填充后的固定值的冗余的处理。另外,由于能够削减冗余的数据,编码效率提高。
[0755]
以下,说明附加信息的句法例。图116是表示属性信息的参数集即aps(属性信息参数集:attribute parameter set)的句法例的图。例如,aps包含表示是否绕过属性信息的编码(例如变换处理)的标志(attribute_transform_bypass_flag)。此外,该标志可以表示被输入的点群数据是在原始数据中包含属性信息的帧还是包含被填充后的属性信息的帧。另外,这些信息不限于标志,也可以是编码比特流中包含的任意方式的信息。
[0756]
图117是表示属性切片头部(attributesliceheader)的句法例的图。如图116和图117所示,三维数据编码装置基于是否绕过编码,在绕过编码的情况下可以不将编码所需要的元数据存放在aps和属性切片头部中。例如,在属性信息的编码(变换处理)被绕过的情况下,aps和属性切片头部不包含与变换处理(transform)有关的元数据,而包含与变换处理无关(与除变换处理以外的处理有关)的元数据。此外,在属性信息的编码(变换处理)未被绕过的情况下,aps和属性切片头部包含与变换处理有关的元数据和与变换处理无关的元数据这双方。
[0757]
此外,属性切片数据(编码属性信息)可以根据标志(attribute_transform_bypass_flag)来改变数据的结构。图118是表示属性切片数据(attributeslicedata)的句法例的图。如图118所示,例如,在不绕过属性信息的编码的情况下,属性切片数据包含通常的数据。这里,通常的数据是指属性信息被编码(变换、量化以及熵编码)后的数据,包含表示多个属性信息的各个值的多个信息。另一方面,在绕过属性信息的编码的情况下,属性切片数据包含value。
[0758]
value例如表示填充了属性信息的固定值(0或其他值)。另外,在属性信息的编码被绕过的情况(属性信息被填充了的情况)下,可以不存放属性信息的数据。在该情况下,三维数据解码装置(接收装置)也能够参照上述标志,识别点群是不具有属性信息的数据(具体而言,是数据缺损等、或者原始数据原本就不包含属性信息的情况)、还是省略了通过填充而赋予的固定值(0或其他值)的数据。
[0759]
此外,这里示出了将上述标志存放在aps中并且将共同的标志用于aps、属性切片头部和属性切片数据的例子,但是可以按每个切片设置单独的标志,按每个切片独立地控制动作。例如,上述标志可以存放在切片头部或属性切片头部中。
[0760]
图119是表示通常的未被填充的属性信息的编码比特流的结构例的图。图120是表示被填充后的属性信息的编码比特流的结构例的图。如图120所示,对于被填充后的属性信息,使用数据被削减的aps、属性切片头部(图120的ash)以及属性切片数据(图120的a)。此外,编码比特流包含位置切片头部(gsh)和位置切片数据(g)。
[0761]
图121是三维数据解码装置具备的属性信息解码部10330的框图。属性信息解码部10330通过对编码比特流中包含的编码属性信息进行解码来生成属性信息。该属性信息解码部10330包括解析部10331、熵解码部10332、逆量化部10333和逆变换部10334。
[0762]
解析部10331基于编码比特流中包含的信息,判定是实施通常的处理还是进行用
于被填充后的属性信息的处理。该信息是例如附加信息(元数据)中包含的上述标志。
[0763]
即,解析部10331判定编码属性信息是否是被填充后的属性信息的编码数据,或者是否是由无效数据或固定值构成的属性信息的编码数据。在编码属性信息不是被填充后的属性信息的编码数据、或者不是由无效数据或固定值构成的属性信息的编码数据的情况下,熵解码部10332通过对编码属性信息进行熵解码,生成被量化的变换系数。逆量化部10333通过对被量化的变换系数进行逆量化来生成变换系数。逆变换部10334通过对变换系数进行逆变换处理来生成属性信息。这里,逆变换处理是使用了三维点的位置信息的逆变换处理。例如,逆变换处理是predicting、lifting或raht的逆变换。
[0764]
另一方面,在编码属性信息是被填充后的属性信息的编码数据、或者是由无效数据或固定值构成的属性信息的编码数据的情况下,属性信息解码部10330不进行熵解码、逆量化以及逆变换处理。即,属性信息解码部10330不对属性信息进行解码。例如,属性信息解码部10330输出上述的value的值或预先确定的值(默认值)作为属性信息的值。或者,属性信息解码部10330也可以将输入的属性信息直接作为编码属性信息输出。
[0765]
另外,属性信息解码部10330在编码属性信息是被填充后的属性信息的编码数据、或者是由无效数据或固定值构成的属性信息的编码数据的情况下,也可以不进行逆变换处理,而对属性信息进行熵解码以及逆量化中的至少一方。
[0766]
图122是由三维数据编码装置进行的三维数据编码处理的流程图。首先,三维数据编码装置通过解析处理对象的帧中包含的多个三维点的多个属性信息,来判定处理对象的帧的多个属性信息是否是被填充后的属性信息(s10301、s10302)。此外,该判定例如基于多个属性信息的值是否全部相同来进行。即,三维数据编码装置在处理对象的帧的多个属性信息的值全部相同的情况下,判定为多个属性信息是被填充后的属性信息,在处理对象的帧的多个属性信息的值的至少一部分不同的情况下,判定为多个属性信息不是被填充后的属性信息。此外,例如,也可以在前处理部10301中生成表示是否进行了填充的信息,并基于该信息进行该判定。
[0767]
在属性信息不是填充的属性信息的情况下(s10302中的“否”),三维数据编码装置使用通常的编码方法来编码属性信息。另外,三维数据编码装置将使用了通常的编码方法的情况进行信号化(s10303)。即,三维数据编码装置将表示使用了通常的编码方法的信息附加到比特流。
[0768]
另一方面,在属性信息是被填充的属性信息的情况下(s10302中的“是”),三维数据编码装置使用上述的第2方法(绕过)对属性信息进行编码,将使用了该编码的情况进行信号化(s10304)。即,三维数据编码装置将表示使用了第2方法(绕过)的信息附加到比特流。
[0769]
图123是由三维数据解码装置进行的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中包含的附加信息取得表示在编码中是否使用第2方法的信息(s10311)。在未使用第2方法的情况下(s10312中的“否”),三维数据解码装置使用通常的解码方法对编码属性信息进行解码(s10313)。
[0770]
另一方面,在使用了第2方法的情况下(s10312中的“是”),三维数据解码装置使用第2解码方法(绕过)对编码属性信息进行解码(s10314)。
[0771]
如上所述,本实施方式的三维数据编码装置进行图124所示的处理。三维数据编码
装置在多个三维点的多个属性信息的至少一部分的值不同的情况下(s10321中的“否”),生成包含多个第1信息(例如图118的通常数据)的比特流(s10322),所述多个第1信息表示多个属性信息的多个值的各个值。三维数据编码装置在多个属性信息的多个值全部是相同的值的情况下(s10321中的“是”),生成包含第2信息(图118的value)而不包含多个第1信息的比特流(s10323),所述第2信息表示在多个属性信息中共同的相同的值。
[0772]
由此,三维数据编码装置能够削减比特流的数据量,因此能够提高编码效率。
[0773]
例如,三维数据编码装置在多个属性信息的多个值全部是相同的值的情况下,将第3信息(例如attribute_transform_bypass_flag)附加到比特流,所述第3信息表示多个属性信息的多个值全部为相同的值。
[0774]
例如,三维数据编码装置在多个三维点的多个属性信息的至少一部分的值不同的情况下(s10321中的“否”),通过对多个属性信息进行使用了多个三维点的多个位置信息的变换处理来生成多个第1信息,将与变换处理有关的第4信息(例如与图116或图117的变换有关的元数据)附加到比特流。三维数据编码装置在多个属性信息的多个值全部是相同的值的情况下(s10321中的“是”),不将第4信息附加到比特流。
[0775]
由此,三维数据编码装置能够削减比特流的数据量,因此能够提高编码效率。
[0776]
例如,三维数据编码装置在帧中包含的多个三维点的属性信息不存在的情况下,设定预先确定的值作为多个三维点的多个属性信息,比特流包含第2信息,所述第2信息表示该预先确定的值作为相同的值。
[0777]
例如,多个属性信息的各个属性信息表示在通过结合多个帧而生成的帧中具有该属性信息的三维点在结合前所属的帧。
[0778]
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
[0779]
此外,本实施方式的三维数据解码装置进行图125所示的处理。三维数据解码装置在比特流中包含多个第1信息(例如图118的通常数据)的情况下(s10331中的“否”),根据多个第1信息生成多个属性信息(s10332),所述多个第1信息表示多个三维点的多个属性信息的多个值的各个值。三维数据解码装置在比特流中包含表示在多个属性信息中共同的值的第2信息(图118的value)的情况下(s10331中的“是”),输出由第2信息表示的共同的值作为多个属性信息的各个属性信息的值(s10333)。
[0780]
由此,三维数据解码装置能够对提高了编码效率的比特流进行解码。
[0781]
例如,三维数据解码装置在比特流中包含第3信息(例如attribute_transform_bypass_flag)的情况下,输出由第2信息表示的共同的值作为多个属性信息的各个属性信息的值,所述第3信息表示多个属性信息的多个值全部是相同的值。
[0782]
例如,三维数据编码装置在比特流中包含多个第1信息的情况下(s10331中的“否”),从比特流取得与使用了多个三维点的多个位置信息的逆变换处理有关的第4信息(例如与图116或图117的变换有关的元数据),通过使用第4信息,对多个第1信息进行逆变换处理,来生成多个属性信息。三维数据解码装置在比特流中包含第2信息的情况下(s10331中的“是”),不从比特流取得第4信息。
[0783]
由此,三维数据解码装置能够对提高了编码效率的比特流进行解码。
[0784]
例如,多个属性信息的各个属性信息表示在通过结合多个帧而生成的帧中具有该
属性信息的三维点在结合前所属的帧。
[0785]
例如,非结合多个帧的帧的多个属性信息表示预先确定的值,第2信息表示该预先确定的值作为共同的值。
[0786]
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
[0787]
以上,对本公开的实施方式的三维数据编码装置以及三维数据解码装置等进行了说明,但本公开并不限定于该实施方式。
[0788]
并且,上述的实施方式的三维数据编码装置以及三维数据解码装置等中包含的各处理部典型的能够作为集成电路的lsi来实现。这些可以分别地制成一个芯片,也可以是其中的一部分或全部被制成一个芯片。
[0789]
并且,集成电路化并非受lsi所限,也可以由专用电路或通用处理器来实现。也可以利用在lsi制造后可编程的fpga(field programmable gate array:现场可编程门阵列)、或能够重构lsi内部的电路部的连接或设定的可重构处理器。
[0790]
并且,在上述的各实施方式中,各构成要素可以由专用的硬件来构成,或者可以通过执行适于各构成要素的软件程序来实现。各构成要素也可以通过cpu或处理器等程序执行部读出被记录在硬盘或半导体存储器等记录介质的软件程序并执行来实现。
[0791]
并且,本公开能够作为由三维数据编码装置以及三维数据解码装置等来执行的三维数据编码方法或三维数据解码方法等来实现。
[0792]
并且,框图中的功能块的分割为一个例子,多个功能块可以作为一个功能块来实现,一个功能块也可以分割为多个,一部分的功能也可以移动到其他的功能块。并且,具有类似的功能的多个功能块的功能也可以由单一的硬件或软件进行并行处理或者进行时间分割处理。
[0793]
并且,关于流程图中的各步骤的执行顺序,是为了对本公开进行具体说明而举出的例子,也可以是上述以外的顺序。并且,上述步骤的一部分也可以与其他的步骤同时(并行)执行。
[0794]
以上基于实施方式对一个或多个形态的三维数据编码装置以及三维数据解码装置等进行了说明,但是,本公开并非受这些实施方式所限。在不脱离本公开的主旨的范围内,将本领域技术人员能够想到的各种变形执行于本实施方式而得到的形态、以及对不同的实施方式中的构成要素进行组合而得到的形态均包含在一个或多个形态的范围内。
[0795]
产业上的可利用性
[0796]
本公开能够适用于三维数据编码装置以及三维数据解码装置。
[0797]
附图标记说明
[0798]
4601 三维数据编码系统
[0799]
4602 三维数据解码系统
[0800]
4603 传感器终端
[0801]
4604 外部连接部
[0802]
4611 点群数据生成系统
[0803]
4612 提示部
[0804]
4613 编码部
[0805]
4614 复用部
[0806]
4615 输入输出部
[0807]
4616 控制部
[0808]
4617 传感器信息获得部
[0809]
4618 点群数据生成部
[0810]
4621 传感器信息获得部
[0811]
4622 输入输出部
[0812]
4623 逆复用部
[0813]
4624 解码部
[0814]
4625 提示部
[0815]
4626 用户接口
[0816]
4627 控制部
[0817]
4630 第1编码部
[0818]
4631 位置信息编码部
[0819]
4632 属性信息编码部
[0820]
4633 附加信息编码部
[0821]
4634 复用部
[0822]
4640 第1解码部
[0823]
4641 逆复用部
[0824]
4642 位置信息解码部
[0825]
4643 属性信息解码部
[0826]
4644 附加信息解码部
[0827]
4650 第2编码部
[0828]
4651 附加信息生成部
[0829]
4652 位置图像生成部
[0830]
4653 属性图像生成部
[0831]
4654 影像编码部
[0832]
4655 附加信息编码部
[0833]
4656 复用部
[0834]
4660 第2解码部
[0835]
4661 逆复用部
[0836]
4662 影像解码部
[0837]
4663 附加信息解码部
[0838]
4664 位置信息生成部
[0839]
4665 属性信息生成部
[0840]
4801 编码部
[0841]
4802 复用部
[0842]
4910 第1编码部
[0843]
4911 分割部
[0844]
4912 位置信息编码部
[0845]
4913 属性信息编码部
[0846]
4914 附加信息编码部
[0847]
4915 复用部
[0848]
4920 第1解码部
[0849]
4921 逆复用部
[0850]
4922 位置信息解码部
[0851]
4923 属性信息解码部
[0852]
4924 附加信息解码部
[0853]
4925 结合部
[0854]
4931 切片分割部
[0855]
4932 位置信息瓦片分割部
[0856]
4933 属性信息瓦片分割部
[0857]
4941 位置信息瓦片结合部
[0858]
4942 属性信息瓦片结合部
[0859]
4943 切片结合部
[0860]
5410 编码部
[0861]
5411 分割部
[0862]
5412 位置信息编码部
[0863]
5413 属性信息编码部
[0864]
5414 附加信息编码部
[0865]
5415 复用部
[0866]
5421 瓦片分割部
[0867]
5422 切片分割部
[0868]
5431、5441 帧索引生成部
[0869]
5432、5442 熵编码部
[0870]
5450 解码部
[0871]
5451 逆复用部
[0872]
5452 位置信息解码部
[0873]
5453 属性信息解码部
[0874]
5454 附加信息解码部
[0875]
5455 结合部
[0876]
5461、5471 熵解码部
[0877]
5462、5472 帧索引获得部
[0878]
5600 三维数据编码装置
[0879]
5601 帧结合部
[0880]
5602 位置信息编码部
[0881]
5603 属性信息重新分配部
[0882]
5604 属性信息编码部
[0883]
5610 三维数据解码装置
[0884]
5611 位置信息解码部
[0885]
5612 属性信息解码部
[0886]
5613 帧分割部
[0887]
5800 三维数据编码装置
[0888]
5810 三维数据解码装置
[0889]
5811 位置信息解码部
[0890]
5812 属性信息解码部
[0891]
5813 帧分割部
[0892]
5814 运动校正部
[0893]
10301 前处理部
[0894]
10302 编码部
[0895]
10310 属性信息编码部
[0896]
10311 判定部
[0897]
10312 变换部
[0898]
10313 量化部
[0899]
10314 熵编码部
[0900]
10320 附加信息编码部
[0901]
10321 判定部
[0902]
10322 头部压缩部
[0903]
10323 编码部
[0904]
10330 属性信息解码部
[0905]
10331 解析部
[0906]
10332 熵解码部
[0907]
10333 逆量化部
[0908]
10334 逆变换部
再多了解一些

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

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

相关文献