CN113474820A - 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 - Google Patents

三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 Download PDF

Info

Publication number
CN113474820A
CN113474820A CN202080016353.4A CN202080016353A CN113474820A CN 113474820 A CN113474820 A CN 113474820A CN 202080016353 A CN202080016353 A CN 202080016353A CN 113474820 A CN113474820 A CN 113474820A
Authority
CN
China
Prior art keywords
data
information
tile
encoding
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080016353.4A
Other languages
English (en)
Inventor
井口贺敬
杉尾敏康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Publication of CN113474820A publication Critical patent/CN113474820A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

三维数据编码方法将点群数据分割为多个子点群数据(S7551),使多个子点群数据的每一个根据规定的移动量移动(S7552),通过对移动后的多个子点群数据进行编码而生成比特流(S7553),比特流包含多个子点群数据中共同的第1控制信息和每个子点群数据的多个第2控制信息,第1控制信息包含与所述多个子点群数据的移动量相关的第1信息。

Description

三维数据编码方法、三维数据解码方法、三维数据编码装置及 三维数据解码装置
技术领域
本发明涉及三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置。
背景技术
在用于汽车或机器人自主地进行工作的计算机视觉、地图信息、监控、基础设施检查、或影像分发等较大的领域中,今后将会普及灵活运用了三维数据的装置或服务。三维数据通过测距仪等距离传感器、立体摄影机、或多个单眼相机的组合等各种方法来取得。
作为三维数据的表现方法之一,有被称作点云的表现方法,该方法通过三维空间内的点群来表现三维构造的形状。在点云中保存点群的位置和颜色。虽然预想点云作为三维数据的表现方法将成为主流,但是点群的数据量非常大。因此,在三维数据的积蓄或传输中,与二维的运动图像(作为一例,有以MPEG进行标准化后的MPEG-4AVC或HEVC等)同样,需要通过编码来进行数据量的压缩。
此外,关于点云的压缩,有一部分由进行点云关联的处理的公开的库(PointCloud Library:点云库)等支持。
此外,已知有利用三维的地图数据,检索位于车辆周边的施设并进行显示的技术(例如,参照专利文献1)。
现有技术文献
专利文献
专利文献1:国际公开第2014/020663号
发明内容
发明要解决的课题
在三维数据的编码处理中,希望能够削减编码量。
本发明的目的是提供一种能够削减编码量的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
用来解决课题的手段
本公开的一个方式的三维数据编码方法是对表示三维空间中的多个三维位置的点群数据进行编码的三维数据编码方法,通过将所述三维空间分割为多个子空间,将所述点群数据分割为多个子点群数据,使所述多个子点群数据的每一个根据规定的移动量而移动,通过对移动后的所述多个子点群数据进行编码来生成比特流,所述比特流包含所述多个子点群数据中共同的第1控制信息和每个子点群数据的多个第2控制信息,所述第1控制信息包含与所述多个子点群数据的移动量相关的第1信息。
本公开的一个方式的三维数据解码方法从比特流中解码将多个子点群数据根据规定的移动量而移动了的移动后的多个子点群数据,所述多个子点群数据是通过将三维空间分割为多个子空间而将表示多个三维位置的点群数据分割而得到的,从所述比特流中包含的、所述多个子点群数据中共同的第1控制信息中取得与所述多个子点群数据的移动量相关的第1信息,使用所述第1信息计算所述多个子点群数据的多个所述移动量,通过使被解码的所述移动后的多个子点群数据的每一个根据与该子点群数据对应的所述移动量移动,复原所述多个子点群数据。
发明效果
本发明能够提供能够削减编码量的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
附图说明
图1是表示有关实施方式1的三维数据编解码系统的构成的图。
图2是表示有关实施方式1的点群数据的构成例的图。
图3是表示有关实施方式1的记述有点群数据信息的数据文件的构成例的图。
图4是表示有关实施方式1的点群数据的种类的图。
图5是表示有关实施方式1的第1编码部的构成的图。
图6是有关实施方式1的第1编码部的框图。
图7是表示有关实施方式1的第1解码部的构成的图。
图8是有关实施方式1的第1解码部的框图。
图9是表示有关实施方式1的第2编码部的构成的图。
图10是有关实施方式1的第2编码部的框图。
图11是表示有关实施方式1的第2解码部的构成的图。
图12是有关实施方式1的第2解码部的框图。
图13是表示有关实施方式1的关于PCC编码数据的协议栈的图。
图14是表示有关实施方式2的ISOBMFF的基本构造的图。
图15是表示有关实施方式2的协议栈的图。
图16是表示有关实施方式2的将NAL单元保存在编解码器1用的文件中的例子的图。
图17是表示将有关实施方式2的NAL单元保存在编解码器2用的文件中的例子的图。
图18是表示有关实施方式2的第1复用部的构成的图。
图19是表示有关实施方式2的第1逆复用部的构成的图。
图20是表示有关实施方式2的第2复用部的构成的图。
图21是表示有关实施方式2的第2逆复用部的构成的图。
图22是有关实施方式2的由第1复用部进行的处理的流程图。
图23是有关实施方式2的由第2复用部进行的处理的流程图。
图24是有关实施方式2的由第1逆复用部及第1解码部进行的处理的流程图。
图25是表示有关实施方式2的由第2逆复用部及第2解码部进行的处理的流程图。
图26是表示有关实施方式3的编码部及第3复用部的构成的图。
图27是表示有关实施方式3的第3逆复用部及解码部的构成的图。
图28是有关实施方式3的由第3复用部进行的处理的流程图。
图29是有关实施方式3的由第3逆复用部及解码部进行的处理的流程图。
图30是有关实施方式3的由三维数据保存装置进行的处理的流程图。
图31是有关实施方式3的由三维数据取得装置进行的处理的流程图。
图32是表示有关实施方式4的编码部及复用部的构成的图。
图33是表示有关实施方式4的编码数据的构成例的图。
图34是表示有关实施方式4的编码数据及NAL单元的构成例的图。
图35是表示有关实施方式4的pcc_nal_unit_type的语义例的图。
图36是表示有关实施方式4的NAL单元的送出顺序的例子的图。
图37是有关实施方式5的的切片及瓦片的分割例的图。
图38是表示有关实施方式5的的切片及瓦片的分割样式的例子的图。。
图39是有关实施方式6的第1编码部的框图。
图40是有关实施方式6的第1解码部的框图。
图41是表示有关实施方式6的瓦片的形状的例子的图。
图42是表示有关实施方式6的瓦片及切片的例子的图。
图43是有关实施方式6的分割部的框图。
图44是表示有关实施方式6的将点群数据俯视的地图的例子的图。
图45是表示有关实施方式6的瓦片分割的例子的图。
图46是表示有关实施方式6的瓦片分割的例子的图。
图47是表示有关实施方式6的瓦片分割的例子的图。
图48是表示有关实施方式6的保存在服务器中的瓦片的数据的例子的图。
图49是表示有关实施方式6的关于瓦片分割的系统的图。
图50是表示有关实施方式6的切片分割的例子的图。
图51是表示有关实施方式6的依赖关系的例子的图。
图52是表示有关实施方式6的数据的解码顺序的例子的图。
图53是表示有关实施方式6的瓦片的编码数据的例子的图。
图54是表示有关实施方式6的结合部的框图。
图55是表示有关实施方式6的编码数据及NAL单元的构成例的图。
图56是有关实施方式6的编码处理的流程图。
图57是有关实施方式6的解码处理的流程图。
图58是表示有关实施方式6的瓦片附加信息的句法例的图。
图59是有关实施方式6的编解码系统的框图。
图60是表示有关实施方式6的切片附加信息的句法例的图。
图61是有关实施方式6的编码处理的流程图。
图62是有关实施方式6的解码处理的流程图。
图63是有关实施方式6的编码处理的流程图。
图64是有关实施方式6的解码处理的流程图。
图65是表示有关实施方式7的分割方法的例子的图。
图66是表示有关实施方式7的点群数据的分割例的图。
图67是表示有关实施方式7的瓦片附加信息的句法例的图。
图68是表示有关实施方式7的索引信息的例子的图。
图69是表示有关实施方式7的依赖关系的例子的图。
图70是表示有关实施方式7的送出数据的例子的图。
图71是表示有关实施方式7的NAL单元的结构例的图。
图72是表示有关实施方式7的依赖关系的例子的图。
图73是表示有关实施方式7的数据的解码顺序的例子的图。
图74是表示有关实施方式7的依赖关系的例子的图。
图75是表示有关实施方式7的数据的解码顺序的例子的图。
图76是有关实施方式7的编码处理的流程图。
图77是有关实施方式7的解码处理的流程图。
图78是有关实施方式7的编码处理的流程图。
图79是有关实施方式7的编码处理的流程图。
图80是表示有关实施方式7的送出数据及接收数据的例子的图。
图81是有关实施方式7的解码处理的流程图。
图82是表示有关实施方式7的送出数据及接收数据的例子的图。
图83是有关实施方式7的解码处理的流程图。
图84是有关实施方式7的编码处理的流程图。
图85是表示有关实施方式7的索引信息的例子的图。
图86是表示有关实施方式7的依赖关系的例子的图。
图87是表示有关实施方式7的送出数据的例子的图。
图88是表示有关实施方式7的送出数据及接收数据的例子的图。
图89是有关实施方式7的解码处理的流程图。
图90是有关实施方式7的编码处理的流程图。
图91是有关实施方式7的解码处理的流程图。
图92是表示实施方式8的三维数据编码装置的结构的一例的框图。
图93是用于说明实施方式8的三维数据编码装置的编码方法的概略的图。
图94是用于说明实施方式8的位置移位的第1例的图。
图95是用于说明实施方式8的位置移位的第2例的图。
图96是表示实施方式8的编码方法的一例的流程图。
图97是表示实施方式8的解码方法的一例的流程图。
图98是用于说明实施方式8的位置移位的第3例的图。
图99是表示实施方式8的编码方法的一例的流程图。
图100是表示实施方式8的解码方法的一例的流程图。
图101是用于说明实施方式8的位置移位的第4例的图。
图102是表示实施方式8的编码方法的一例的流程图。
图103是用于说明实施方式8的位置移位的第5例的图。
图104是用于说明实施方式8的编码方法的图。
图105是表示实施方式8的GPS的句法的一例的图。
图106是表示实施方式8的位置信息的头的句法的一例的图。
图107是表示实施方式8的切换处理的编码方法的一例的流程图。
图108是表示实施方式8的切换处理的解码方法的一例的流程图。
图109是表示实施方式8的比特流的数据结构的一例的图。
图110是将实施方式8的图109的分割数据作为帧时的例子。
图111是表示实施方式8的分割区域的另一例的图。
图112是表示实施方式8的分割区域的另一例的图。
图113是表示实施方式8的分割区域的另一例的图。
图114是表示实施方式8的分割区域的另一例的图。
图115是表示实施方式8的数据结构的另一例的图。
图116是表示实施方式8的数据结构的另一例的图。
图117是表示实施方式8的数据结构的另一例的图。
图118是表示实施方式8的数据结构的另一例的图。
图119是表示实施方式8的数据结构的另一例的图。
图120是实施方式8的编码处理的流程图。
图121是实施方式8的解码处理的流程图。
图122是表示实施方式9的个别位置移位量以及分割区域位置移位量的例子的图。
图123是实施方式9的移位量计算处理的流程图。
图124是示意性地表示实施方式9的最小位置坐标的分割处理的图。
图125是表示实施方式9的三维数据解码装置中的移位量的计算的例子的图。
图126是实施方式9的移位量计算处理的流程图。
图127是示意性地表示实施方式9的最小位置坐标的分割处理的图。
图128是表示实施方式9的三维数据解码装置中的移位量的计算的例子的图。
图129是表示实施方式9的下位比特的设定例的图。
图130是实施方式9的移位量计算处理的流程图。
图131是实施方式9的移位量计算处理的流程图。
图132是表示实施方式9的GPS的句法例的图。
图133是表示实施方式9的位置信息头的句法例的图。
图134是实施方式9的移位量送出处理的流程图。
图135是实施方式9的移位量计算处理的流程图。
图136是实施方式9的三维数据编码处理的流程图。
图137是实施方式9的三维数据解码处理的流程图。
具体实施方式
本公开的一个方式的三维数据编码方法是对表示三维空间中的多个三维位置的点群数据进行编码的三维数据编码方法,通过将所述三维空间分割为多个子空间,将所述点群数据分割为多个子点群数据,使所述多个子点群数据的每一个根据规定的移动量而移动,通过对移动后的所述多个子点群数据进行编码来生成比特流,所述比特流包含所述多个子点群数据中共同的第1控制信息和每个子点群数据的多个第2控制信息,所述第1控制信息包含与所述多个子点群数据的移动量相关的第1信息。
由此,该三维数据编码方法能够通过第1信息将移动量传递给三维数据解码装置。另外,通过将第1信息在多个子点群数据中共同化,能够削减编码量。
例如,也可以是,所述移动量是基于所述子点群数据和包含所述子点群数据的子空间中的任一个的移动量。
例如,也可以是,所述移动量包含上位比特和下位比特,所述第1信息是所述多个子点群数据中共同的信息,且表示所述下位比特的比特数,所述多个第2控制信息的每一个包含表示所述上位比特的值的第2信息,该上位比特包含在针对与该第2控制信息对应的子点群数据的所述移动量中。
由此,该三维数据编码方法能够通过第1信息及第2信息将移动量传递给三维数据解码装置。另外,通过将第1信息在多个子点群数据中共同化,能够削减编码量。
例如,也可以是,所述第1控制信息包含示出表示所述下位比特的比特数的信息是包含在所述第1控制信息中还是包含在所述多个第2控制信息的每一个中的标志,在由所述标志示出表示所述下位比特的比特数的信息包含在所述第1控制信息中的情况下,所述第1控制信息包含所述第1信息,所述多个第2控制信息的每一个不包含表示所述下位比特的比特数的信息,在由所述标志示出表示所述下位比特的比特数的信息包含在所述多个第2控制信息的每一个中的情况下,所述多个第2控制信息的每一个包含表示所述下位比特的比特数的第3信息,该下位比特包含在针对与该第2控制信息对应的子点群数据的所述移动量中,所述第1控制信息不包含所述第1信息。
由此,该三维数据编码方法能够切换是否将第1信息在多个子点群数据中共同化,因此能够进行适当的编码。
例如,也可以是,所述下位比特所包含的全部比特为值零,所述比特流不包含表示所述下位比特的值的信息。
本公开的一个方式的三维数据解码方法从比特流中解码将多个子点群数据根据规定的移动量移动了的移动后的多个子点群数据,所述多个子点群数据是通过将三维空间分割为多个子空间而将表示多个三维位置的点群数据分割而得到的,从所述比特流中包含的、所述多个子点群数据中共同的第1控制信息中,取得与所述多个子点群数据的移动量相关的第1信息,使用所述第1信息计算所述多个子点群数据的多个所述移动量,通过使被解码的所述移动后的多个子点群数据的每一个根据与该子点群数据对应的所述移动量移动,复原所述多个子点群数据。
由此,该三维数据解码方法能够通过第1信息计算移动量。另外,通过将第1信息在多个子点群数据中共同化,从而削减编码量。
例如,也可以是,所述移动量是基于所述子点群数据和包含所述子点群数据的子空间中的任一个的移动量。
例如,也可以是,所述移动量包含上位比特和下位比特,所述第1信息是所述多个子点群数据中共同的信息,且表示所述下位比特的比特数,所述三维数据解码方法,进一步地,从所述比特流所包含的每个子点群数据的多个第2控制信息,取得表示所述多个子点群数据各自的所述移动量的上位比特的值的多个第2信息,在所述移动量的计算中,使用所述第1信息以及所述多个第2信息来计算所述多个子点群数据的多个所述移动量。
由此,该三维数据解码方法能够通过第1信息以及第2信息计算移动量。另外,通过将第1信息在多个子点群数据中共同化,从而削减编码量。
例如,也可以是,所述第1控制信息包含示出表示所述下位比特的比特数的信息是包含在所述第1控制信息中还是包含在所述多个第2控制信息的每一个中的标志,在由所述标志示出表示所述下位比特的比特数的信息包含在所述第1控制信息中的情况下,从所述第1控制信息中取得所述第1信息,使用所述第1信息和所述多个第2信息来计算所述多个子点群数据的多个所述移动量,在由所述标志示出表示所述下位比特的比特数的信息包含在所述多个第2控制信息的每一个中的情况下,从所述多个第2控制信息的每一个取得表示所述多个子点群数据各自的所述移动量的下位比特的比特数的多个第3信息,使用所述多个第3信息以及所述多个第2信息计算所述多个子点群数据的多个所述移动量。
由此,该三维数据解码方法能够基于第1信息,切换是否在多个子点群数据中共同化,因此进行适当的解码。
例如,也可以是,在所述移动量的计算中,将所述下位比特所包含的全部比特设定为值零。
另外,本公开的一个方式的三维数据编码装置,对表示三维空间中的多个三维位置的点群数据进行编码,其中,具备:处理器;以及存储器,所述处理器使用所述存储器,通过将所述三维空间分割为多个子空间,将所述点群数据分割为多个子点群数据,使所述多个子点群数据的每一个根据规定的移动量而移动,通过对移动后的所述多个子点群数据进行编码来生成比特流,所述比特流包含所述多个子点群数据中共同的第1控制信息和每个子点群数据的多个第2控制信息,所述第1控制信息包含与所述多个子点群数据的移动量相关的第1信息。
由此,该三维数据编码装置能够通过第1信息将移动量传递给三维数据解码装置。另外,通过将第1信息在多个子点群数据中共同化,能够削减编码量。
另外,本公开的一个方式的三维数据解码装置,其中,具备:处理器;以及存储器,所述处理器使用所述存储器,从比特流中解码将多个子点群数据根据规定的移动量移动了的移动后的多个子点群数据,所述多个子点群数据是通过将三维空间分割为多个子空间而将表示多个三维位置的点群数据分割而得到的,从所述比特流中包含的、所述多个子点群数据中共同的第1控制信息中,取得与所述多个子点群数据的移动量相关的第1信息,使用所述第1信息计算所述多个子点群数据的多个所述移动量,通过使被解码的所述移动后的多个子点群数据的每一个根据与该子点群数据对应的所述移动量移动,复原所述多个子点群数据。
由此,该三维数据解码装置能够通过第1信息计算移动量。另外,通过将第1信息在多个子点群数据中共同化,从而削减编码量。
另外,这些包含性或具体的技术方案也可以由系统、方法、集成电路、计算机程序或计算机可读取的CD-ROM等的记录介质实现,也可以由系统、方法、集成电路、计算机程序及记录介质的任意的组合来实现。
以下,参照附图对实施方式具体地进行说明。另外,以下说明的实施方式都表示本发明的一具体例。在以下的实施方式中表示的数值、形状、材料、构成要素、构成要素的配置位置及连接形态、步骤、步骤的顺序等是一例,不是限定本发明的意思。此外,关于以下的实施方式的构成要素中的、在独立技术方案中没有记载的构成要素,设为任意的构成要素进行说明。
(实施方式1)
在将点云的编码数据用于实际的装置或服务时,为了抑制网络带宽,而希望按照用途来对所需要的信息进行收发。然而,至今的三维数据的编码结构中不存在这样的功能,因此也没有与此相对的编码方法。
在本实施方式中将要说明的是,用于提供在三维的点云的编码数据中,按照用途来对所需要的信息进行收发的功能的三维数据编码方法以及三维数据编码装置、还有对该编码数据进行解码的三维数据解码方法以及三维数据解码装置,以及对该编码数据进行复用的三维数据复用方法、以及传输该编码数据的三维数据传输方法进行说明。
特别是,当前,作为点群数据的编码方法(编码方式)研究了第1编码方法和第2编码方法,但没有定义将编码数据的构成以及编码数据保存到系统格式的方法,在这种情况下,存在无法直接进行编码部中的MUX处理(复用)、或者传输或蓄积这样的课题。
此外,如PCC(Point Cloud Compression:点云压缩)那样,对第1编码方法和第2编码方法这2个编解码器混合存在的格式进行支持的方法至今不存在。
在本实施方式中,对将第1编码方法和第2编码方法这2个编解码器混合存在的PCC编码数据的构成以及将编码数据向系统格式保存的方法进行说明。
首先,说明本实施方式的三维数据(点群数据)编码解码系统的构成。图1是表示本实施方式的三维数据编码解码系统的构成例的图。如图1所示,三维数据编码解码系统包括三维数据编码系统4601、三维数据解码系统4602、传感器终端4603以及外部连接部4604。
三维数据编码系统4601通过对作为三维数据的点群数据进行编码来生成编码数据或复用数据。此外,三维数据编码系统4601可以是由单个装置实现的三维数据编码装置,也可以是由多个装置实现的系统。另外,三维数据编码装置也可以包含于三维数据编码系统4601中包含的多个处理部中的一部分。
三维数据编码系统4601包括点群数据生成系统4611、提示部4612、编码部4613、复用部4614、输入输出部4615、以及控制部4616。点群数据生成系统4611包括传感器信息取得部4617和点群数据生成部4618。
传感器信息取得部4617从传感器终端4603取得传感器信息,并将传感器信息输出到点群数据生成部4618。点群数据生成部4618根据传感器信息生成点群数据,并将点群数据输出到编码部4613。
提示部4612向用户提示传感器信息或点群数据。例如,提示部4612显示基于传感器信息或点群数据的信息或图像。
编码部4613对点群数据进行编码(压缩),将得到的编码数据、在编码过程中得到的控制信息和其他附加信息输出到复用部4614。附加信息例如包含传感器信息。
复用部4614通过复用从编码部4613输入的编码数据、控制信息和附加信息来生成复用数据。复用数据的格式例如是用于蓄积的文件格式、或用于传输的包格式。
输入输出部4615(例如,通信部或接口)将复用数据向外部输出。或者,复用数据被蓄积于内部存储器等蓄积部。控制部4616(或应用执行部)控制各处理部。即,控制部4616进行编码及复用等控制。
此外,也可以将传感器信息向编码部4613或复用部4614输入。另外,输入输出部4615也可以将点群数据或编码数据直接向外部输出。
从三维数据编码系统4601输出的传输信号(复用数据)经由外部连接部4604输入到三维数据解码系统4602。
三维数据解码系统4602通过对编码数据或复用数据进行解码而生成作为三维数据的点群数据。此外,三维数据解码系统4602可以是由单一的装置实现的三维数据解码装置,也可以是由多个装置实现的系统。另外,三维数据解码装置也可以包含三维数据解码系统4602中包含的多个处理部中的一部分。
三维数据解码系统4602包括传感器信息取得部4621、输入输出部4622、逆复用部4623、解码部4624、提示部4625、用户接口4626、以及控制部4627。
传感器信息取得部4621从传感器终端4603取得传感器信息。
输入输出部4622取得传输信号,根据传输信号对复用数据(文件格式或者包)进行解码,并将复用数据输出到逆复用部4623。
逆复用部4623从复用数据中取得编码数据、控制信息以及附加信息,并将编码数据、控制信息以及附加信息输出到解码部4624。
解码部4624通过对编码数据进行解码而重构点群数据。
提示部4625将点群数据提示给用户。例如,提示部4625显示基于点群数据的信息或图像。用户接口4626取得基于用户的操作的指示。控制部4627(或应用执行部)控制各处理部。即,控制部4627进行逆复用、解码以及提示等的控制。
此外,输入输出部4622也可以从外部直接取得点群数据或编码数据。另外,提示部4625也可以取得传感器信息等附加信息,并提示基于附加信息的信息。另外,提示部4625也可以基于由用户接口4626取得的用户的指示来进行提示。
传感器终端4603生成由传感器取得的信息即传感器信息。传感器终端4603是搭载有传感器或相机的终端,例如有汽车等移动体、飞机等飞行物体、移动终端或相机等。
能够由传感器终端4603取得的传感器信息例如是(1)由LIDAR、毫米波雷达或者红外线传感器得到的传感器终端4603与对象物的距离、或者对象物的反射率、(2)从多个单眼相机图像或者立体相机图像得到的相机与对象物的距离或者对象物的反射率等。另外,传感器信息也可以包含传感器的姿势、朝向、回转(角速度)、位置(GPS信息或者高度)、速度或者加速度等。另外,传感器信息也可以包含气温、气压、湿度、或者磁性等。
外部连接部4604通过集成电路(LSI或IC)、外部蓄积部、经由因特网的与云服务器的通信、或者广播等来实现。
接着,对点群数据进行说明。图2是表示点群数据的构成的图。图3是表示记述了点群数据的信息的数据文件的构成例的图。
点群数据包含多个点的数据。各点的数据包含位置信息(三维坐标)以及与该位置信息相对的属性信息。将聚集了多个这样的点的群称为点群。例如,点群表示对象物(对象)的三维形状。
有时也将三维坐标等位置信息(Position)称为几何形状(geometry)。另外,各点的数据也可以包含多个属性类别的属性信息(attribute)。属性类别例如是颜色或反射率等。
既可以将1个属性信息针对1个位置信息建立对应,也可以将具有多个不同的属性类别的属性信息针对1个位置信息建立对应。另外,也可以将多个相同的属性类别的属性信息针对1个位置信息建立对应。
图3所示的数据文件的构成例是位置信息和属性信息1对1对应的情况的例子,表示构成点群数据的N个点的位置信息和属性信息。
位置信息例如是x、y、z这3轴的信息。属性信息例如是RGB的颜色信息。作为代表性的数据文件,有ply文件等。
接着,对点群数据的种类进行说明。图4是表示点群数据的种类的图。如图4所示,点群数据包含静态对象和动态对象。
静态对象是任意时间(某个时刻)的三维点群数据。动态对象是随时间变化的三维点群数据。以下,将某时刻的三维点群数据称为PCC帧或者帧。
对象可以是如通常的影像数据那样区域被某种程度限制的点群,也可以是像地图信息那样区域未被限制的大规模点群。
另外,存在各种密度的点群数据,也可以存在稀疏的点群数据和密集的点群数据。
以下,对各处理部的详细情况进行说明。传感器信息通过LIDAR或者测距仪等距离传感器、立体相机或者多个单眼相机的组合等各种方法来取得。点群数据生成部4618基于由传感器信息取得部4617得到的传感器信息生成点群数据。点群数据生成部4618生成位置信息作为点群数据,对位置信息附加针对该位置信息的属性信息。
点群数据生成部4618也可以在生成位置信息或者附加属性信息时,对点群数据进行加工。例如,点群数据生成部4618也可以通过删除位置重复的点群来减少数据量。另外,点群数据生成部4618也可以对位置信息进行变换(位置转变、旋转或者标准化等),也可以对属性信息进行渲染。
此外,在图1中,点群数据生成系统4611包含于三维数据编码系统4601,但也可以独立设置于三维数据编码系统4601的外部。
编码部4613基于预先规定的编码方法对点群数据进行编码,由此生成编码数据。编码方法大致存在以下2种。第1种是使用了位置信息的编码方法,以后将该编码方法记载为第1编码方法。第2种是使用了视频编解码器的编码方法,以后将该编码方法记载为第2编码方法。
解码部4624基于预先规定的编码方法对编码数据进行解码,由此对点群数据进行解码。
复用部4614通过使用现有的复用方式对编码数据进行复用,从而生成复用数据。所生成的复用数据被传输或蓄积。复用部4614除了PCC编码数据以外,还复用影像、声音、字幕、应用、文件等其他媒体、或者基准时刻信息。另外,复用部4614还可以对与传感器信息或者点群数据相关联的属性信息进行复用。
作为复用方式或文件格式,有ISOBMFF、作为ISOBMFF基础的传输方式的MPEG-DASH、MMT、MPEG-2TS Systems、RMP等。
逆复用部4623从复用数据中提取PCC编码数据、其他媒体以及时刻信息等。
输入输出部4615使用与广播或通信等传输介质或蓄积介质一致的方法传输复用数据。输入输出部4615可以经由因特网与其他设备进行通信,也可以与云服务器等蓄积部进行通信。
作为通信协议,使用http、ftp、TCP或UDP等。既可以使用PULL型的通信方式,也可以使用PUSH型的通信方式。
可以使用有线传输和无线传输中的任一种。作为有线传输,使用Ethernet(注册商标)、USB、RS-232C、HDMI(注册商标)或同轴电缆等。作为无线传输,使用无线LAN、Wi-Fi(注册商标)、Bluetooth(注册商标)或毫米波等。
此外,作为广播方式,例如使用DVB-T2、DVB-S2、DVB-C2、ATSC3.0或ISDB-S3等。
图5是表示进行第1编码方法的编码的编码部4613的例子即第1编码部4630的构成的图。图6是第1编码部4630的框图。第1编码部4630通过用第1编码方法对点群数据进行编码来生成编码数据(编码流)。该第1编码部4630包括位置信息编码部4631、属性信息编码部4632、附加信息编码部4633以及复用部4634。
第1编码部4630具有意识到三维结构来进行编码的特征。另外,第1编码部4630具有属性信息编码部4632使用从位置信息编码部4631得到的信息进行编码的特征。第1编码方法也被称为GPCC(Geometry based PCC)。
点群数据是PLY文件那样的PCC点群数据、或者根据传感器信息生成的PCC点群数据,包含位置信息(Position)、属性信息(Attribute)以及其他的附加信息(MetaData)。位置信息被输入到位置信息编码部4631,属性信息被输入到属性信息编码部4632,附加信息被输入到附加信息编码部4633。
位置信息编码部4631通过对位置信息进行编码,来生成作为编码数据的编码位置信息(Compressed Geometry)。例如,位置信息编码部4631使用八叉树等N叉树结构对位置信息进行编码。具体而言,在八叉树中,对象空间被分割为8个节点(子空间),生成表示各节点中是否包含点群的8比特的信息(占用率代码)。另外,包含点群的节点进一步被分割为8个节点,生成表示在该8个节点的每一个中是否包含点群的8比特的信息。反复进行该处理,直到成为预先确定的阶层或节点所包含的点群的数量的阈值以下为止。
属性信息编码部4632通过使用由位置信息编码部4631生成的构成信息进行编码,来生成作为编码数据的编码属性信息(Compressed Attribute)。例如,属性信息编码部4632基于由位置信息编码部4631生成的八叉树结构,决定在处理对象的对象点(对象节点)的编码中参照的参照点(参照节点)。例如,属性信息编码部4632参照周边节点或相邻节点中的八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
另外,属性信息的编码处理可以包括量化处理、预测处理和算术编码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点,或者在编码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,编码的参数是量化处理中的量化参数、或者算术编码中的上下文等。
附加信息编码部4633通过对附加信息中的可压缩的数据进行编码,来生成作为编码数据的编码附加信息(Compressed MetaData)。
复用部4634通过对编码位置信息、编码属性信息、编码附加信息以及其他附加信息进行复用,来生成作为编码数据的编码流(Compressed Stream)。所生成的编码流被输出到未图示的系统层的处理部。
接着,对作为进行第1编码方法的解码的解码部4624的例子的第1解码部4640进行说明。图7是表示第1解码部4640的构成的图。图8是第1解码部4640的框图。第1解码部4640通过以第1编码方法对以第1编码方法进行了编码的编码数据(编码流)进行解码,来生成点群数据。该第1解码部4640包括逆复用部4641、位置信息解码部4642、属性信息解码部4643以及附加信息解码部4644。
从未图示的系统层的处理部将作为编码数据的编码流(Compressed Stream)输入到第1解码部4640。
逆复用部4641从编码数据中分离编码位置信息(Compressed Geometry)、编码属性信息(Compressed Attribute)、编码附加信息(Compressed MetaData)以及其他附加信息。
位置信息解码部4642通过对编码位置信息进行解码来生成位置信息。例如,位置信息解码部4642根据由八叉树等N叉树结构表示的编码位置信息,复原用三维坐标表示的点群的位置信息。
属性信息解码部4643基于由位置信息解码部4642生成的构成信息,对编码属性信息进行解码。例如,属性信息解码部4643基于由位置信息解码部4642得到的八叉树结构,决定在处理对象的对象点(对象节点)的解码中参照的参照点(参照节点)。例如,属性信息解码部4643参照周边节点或相邻节点中的八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
另外,属性信息的解码处理也可以包括逆量化处理、预测处理以及算术解码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点、或者在解码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,解码的参数是逆量化处理中的量化参数、或者算术解码中的上下文等。
附加信息解码部4644通过对编码附加信息进行解码来生成附加信息。另外,第1解码部4640在解码时使用位置信息以及属性信息的解码处理所需的附加信息,向外部输出应用所需的附加信息。
接着,对作为进行第2编码方法的编码的编码部4613的例子的第2编码部4650进行说明。图9是表示第2编码部4650的构成的图。图10是第2编码部4650的框图。
第2编码部4650通过以第2编码方法对点群数据进行编码来生成编码数据(编码流)。该第2编码部4650包括附加信息生成部4651、位置图像生成部4652、属性图像生成部4653、影像编码部4654、附加信息编码部4655以及复用部4656。
第2编码部4650具有如下特征:通过将三维结构投影于二维图像来生成位置图像以及属性图像,并使用现有的影像编码方式对所生成的位置图像以及属性图像进行编码。第2编码方法也被称为VPCC(video based PCC,基于视频的PCC)。
点群数据是PLY文件那样的PCC点群数据、或者根据传感器信息生成的PCC点群数据,包含位置信息(Position)、属性信息(Attribute)以及其他的附加信息(MetaData)。
附加信息生成部4651通过将三维结构投影到二维图像,来生成多个二维图像的映射信息。
位置图像生成部4652基于位置信息和由附加信息生成部4651生成的映射信息,生成位置图像(Geometry Image)。该位置图像例如是表示距离(Depth)作为像素值的距离图像。另外,该距离图像既可以是从1个视点观察多个点群的图像(在1个二维平面上投影了多个点群的图像),也可以是从多个视点观察多个点群的多个图像,也可以是将这些多个图像合并而成的1个图像。
属性图像生成部4653基于属性信息和由附加信息生成部4651生成的映射信息,生成属性图像。该属性图像例如是表示属性信息(例如颜色(RGB))作为像素值的图像。另外,该图像可以是从1个视点观察多个点群的图像(在1个二维平面上投影了多个点群的图像),也可以是从多个视点观察多个点群的多个图像,也可以是将这些多个图像合并而成的1个图像。
影像编码部4654通过使用影像编码方式对位置图像以及属性图像进行编码,从而生成作为编码数据的编码位置图像(Compressed Geometry Image)以及编码属性图像(Compressed Attribute Image)。此外,作为影像编码方式,可以使用公知的任意的编码方式。例如,影像编码方式是AVC或HEVC等。
附加信息编码部4655通过对点群数据中包含的附加信息以及映射信息等进行编码来生成编码附加信息(Compressed MetaData)。
复用部4656通过对编码位置图像、编码属性图像、编码附加信息以及其他附加信息进行复用,来生成作为编码数据的编码流(Compressed Stream)。所生成的编码流被输出到未图示的系统层的处理部。
接着,对作为进行第2编码方法的解码的解码部4624的例子的第2解码部4660进行说明。图11是表示第2解码部4660的构成的图。图12是第2解码部4660的框图。第2解码部4660通过以第2编码方法对以第2编码方法进行了编码的编码数据(编码流)进行解码,来生成点群数据。该第2解码部4660包括逆复用部4661、影像解码部4662、附加信息解码部4663、位置信息生成部4664以及属性信息生成部4665。
从未图示的系统层的处理部将作为编码数据的编码流(Compressed Stream)输入到第2解码部4660。
逆复用部4661从编码数据中分离编码位置图像(Compressed Geometry Image)、编码属性图像(Compressed Attribute Image)、编码附加信息(Compressed MetaData)以及其他附加信息。
影像解码部4662通过使用影像编码方式对编码位置图像以及编码属性图像进行解码,来生成位置图像以及属性图像。此外,作为影像编码方式,可以使用公知的任意的编码方式。例如,影像编码方式是AVC或HEVC等。
附加信息解码部4663通过对编码附加信息进行解码,来生成包含映射信息等的附加信息。
位置信息生成部4664使用位置图像和映射信息生成位置信息。属性信息生成部4665使用属性图像和映射信息生成属性信息。
第2解码部4660在解码时使用解码所需的附加信息,向外部输出应用所需的附加信息。
以下,说明PCC编码方式中的课题。图13是表示与PCC编码数据有关的协议栈的图。图13表示在PCC编码数据中复用、传输或蓄积影像(例如HEVC)或声音等其他媒体的数据的例子。
复用方式及文件格式具有用于复用、传输或蓄积各种编码数据的功能。为了传输或蓄积编码数据,必须将编码数据变换为复用方式的格式。例如,在HEVC中,规定了将编码数据保存在被称为NAL单元的数据结构中,将NAL单元保存到ISOBMFF中的技术。
另一方面,当前,作为点群数据的编码方式,正在研究第1编码方法(Codec1)以及第2编码方法(Codec2),但没有定义编码数据的构成以及将编码数据保存到系统格式的方法,存在无法直接进行编码部中的MUX处理(复用)、传输以及蓄积这样的课题。
另外,以下,如果没有特定的编码方法的记载,则表示第1编码方法和第2编码方法中的任一个。
(实施方式2)
在本实施方式中,对将NAL单元向ISOBMFF的文件保存的方法进行说明。
ISOBMFF(ISO based media file format:ISO基础媒体文件格式)是由ISO/IEC14496-12规定的文件格式标准。ISOBMFF规定了能够将视频、音频及文本等各种媒体复用而保存的格式,是不依赖于媒体的标准。
对ISOBMFF的基本构造(文件)进行说明。ISOBMFF中的基本单位是盒子(box)。盒子由type(类型)、length(长度)、data(数据)构成,将各种type的盒子组合而成的集合为文件。
图14是表示ISOBMFF的基本构造(文件)的图。ISOBMFF的文件主要包括将文件的版本(brand)用4CC(4字符码)表示的ftyp、保存控制信息等的元数据的moov、以及保存数据的mdat等的盒子。
向ISOBMFF的文件的各媒体的保存方法被另行规定,例如,AVC视频及HEVC视频的保存方法由ISO/IEC14496-15规定。这里,为了将PCC编码数据积蓄或传输,可以考虑将ISOBMFF的功能扩展而使用,但还没有将PCC编码数据向ISOBMFF的文件保存的规定。所以,在本实施方式中,对将PCC编码数据向ISOBMFF的文件保存的方法进行说明。
图15是表示将PCC编解码器共同的NAL单元向ISOBMFF的文件保存的情况下的协议栈的图。这里,PCC编解码器共同的NAL单元被保存到ISOBMFF的文件。NAL单元是PCC编解码器共同的,但由于在NAL单元中保存多个PCC编解码器,所以希望规定与各个编解码器对应的保存方法(Carriage of Codec1、Carriage of Codec2)。
接着,对将支持多个PCC编解码器的共同的PCC NAL单元向ISOBMFF的文件保存的方法进行说明。图16是表示将共同的PCC NAL单元向编解码器1的保存方法(Carriage ofCodec1)的ISOBMFF的文件保存的例子的图。图17是表示将共同的PCC NAL单元向编解码器2的保存方法(Carriage of Codec2)的ISOBMFF的文件保存的例子的图。
这里,ftyp是用来识别文件格的重要的信息,作为ftyp,定义按每个编解码器而不同的识别符。在将通过第1编码方法(编码方式)编码的PCC编码数据向文件保存的情况下,设定为ftyp=pcc1。在将通过第2编码方法编码的PCC编码数据向文件保存的情况下,设定为ftyp=pcc2。
这里,pcc1表示使用PCC的编解码器1(第1编码方法)。pcc2表示使用PCC的编解码器2(第2编码方法)。即,pcc1及pcc2表示数据是PCC(三维数据(点群数据)的代码数据),并且表示PCC编解码器(第1编码方法及第2编码方法)。
以下,对将NAL单元向ISOBMFF的文件保存的方法进行说明。复用部将NAL单元头解析,在pcc_codec_type=Codec1的情况下在ISOBMFF的ftyp中记载pcc1。
此外,复用部将NAL单元头解析,在pcc_codec_type=Codec2的情况下,在ISOBMFF的ftyp中记载pcc2。
此外,复用部在pcc_nal_unit_type是元数据的情况下,通过规定的方法将NAL单元例如向moov或mdat保存。复用部在pcc_nal_unit_type是数据的情况下,通过规定的方法将NAL单元例如向moov或mdat保存。
例如,复用部也可以与HEVC同样向NAL单元保存NAL单元尺寸。
通过用本保存方法在逆复用部(系统层)中将文件中包含的ftyp进行解析,能够判定PCC编码数据是用第1编码方法编码的还是用第2编码方法编码的。进而,如上述那样,通过判定PCC编码数据是用第1编码方法编码的还是用第2编码方法编码的,能够从混合存在用双方的编码方法编码的编码数据的数据提取用某一方的编码方法编码的编码数据。由此,在传输编码数据时,能够抑制被传输的数据量。此外,通过本保存方法,不用在第1编码方法和第2编码方法中设定不同的数据(文件)格式,而能够使用共同的数据格式。
另外,在ISOBMFF中的ftyp等、系统层的元数据中表示编解码器的识别信息的情况下,复用部也可以将删除pcc_nal_unit_type后的NAL单元向ISOBMFF的文件保存。
接着,对有关本实施方式的三维数据编码系统(三维数据编码装置)具备的复用部、以及有关本实施方式的三维数据解码系统(三维数据解码装置)具备的逆复用部的构成及动作进行说明。
图18是表示第1复用部4710的构成的图。第1复用部4710具备通过将由第1编码部4630生成的编码数据及控制信息(NAL单元)向ISOBMFF的文件保存而生成复用数据(文件)的文件变换部4711。该第1复用部4710例如包含于图1所示的复用部4614中。
图19是表示第1逆复用部4720的构成的图。第1逆复用部4720具备从复用数据(文件)取得编码数据及控制信息(NAL单元)、将所取得的编码数据及控制信息向第1解码部4640输出的文件逆变换部4721。该第1逆复用部4720例如包含于图1所示的逆复用部4623中。
图20是表示第2复用部4730的构成的图。第2复用部4730具备通过将由第2编码部4650生成的编码数据及控制信息(NAL单元)向ISOBMFF的文件保存而生成复用数据(文件)的文件变换部4731。该第2复用部4730例如包含于图1所示的复用部4614中。
图21是表示第2逆复用部4740的构成的图。第2逆复用部4740具备从复用数据(文件)取得编码数据及控制信息(NAL单元)、将所取得的编码数据及控制信息向第2解码部4660输出的文件逆变换部4741。该第2逆复用部4740例如包含于图1所示的逆复用部4623中。
图22是由第1复用部4710进行的复用处理的流程图。首先,第1复用部4710通过将NAL单元头中包含的pcc_codec_type解析,判定使用的编解码器是第1编码方法还是第2编码方法(S4701)。
在pcc_codec_type表示第2编码方法的情况下(在S4702中是第2编码方法),第1复用部4710不处理该NAL单元(S4703)。
另一方面,在pcc_codec_type表示第2编码方法的情况下(在S4702中是第1编码方法),第1复用部4710在ftyp中记载pcc1(S4704)。即,第1复用部4710将表示在文件中保存有用第1编码方法编码的数据的信息记载在ftyp中。
接着,第1复用部4710将NAL单元头中包含的pcc_nal_unit_type解析,用与pcc_nal_unit_type所表示的数据类型对应的规定的方法将数据向盒子(moov或mdat等)保存(S4705)。并且,第1复用部4710制作包含上述ftyp及上述盒子的ISOBMFF的文件(S4706)。
图23是由第2复用部4730进行的复用处理的流程图。首先,第2复用部4730通过将NAL单元头中包含的pcc_codec_type解析,判定使用的编解码器是第1编码方法还是第2编码方法(S4711)。
在pcc_unit_type表示第2编码方法的情况下(在S4712中是第2编码方法),第2复用部4730在ftyp中记载pcc2(S4713)。即,第2复用部4730将表示在文件中保存有用第2编码方法编码的数据的信息记载在ftyp中。
接着,第2复用部4730将NAL单元头中包含的pcc_nal_unit_type解析,用与pcc_nal_unit_type所表示的数据类型对应的规定的方法将数据向盒子(moov或mdat等)保存(S4714)。并且,第2复用部4730制作包含上述ftyp及上述盒子的ISOBMFF的文件(S4715)。
另一方面,在pcc_unit_type表示第1编码方法的情况下(在S4712中是第1编码方法),第2复用部4730不处理该NAL单元(S4716)。
另外,上述处理示出了将PCC数据用第1编码方法及第2编码方法的某一方编码的例子。第1复用部4710及第2复用部4730通过识别NAL单元的编解码器类型,向文件保存希望的NAL单元。另外,在NAL单元头以外包含PCC编解码器的识别信息的情况下,第1复用部4710及第2复用部4730在步骤S4701及S4711中,也可以使用NAL单元头以外包含的PCC编解码器的识别信息来识别编解码器类型(第1编码方法或第2编码方法)。
此外,第1复用部4710及第2复用部4730也可以在步骤S4706及S4714中将数据向文件保存时,在从NAL单元头删除pcc_nal_unit_type后向文件保存。
图24是表示由第1逆复用部4720及第1解码部4640进行的处理的流程图。首先,第1逆复用部4720将ISOBMFF的文件中包含的ftyp解析(S4721)。在由ftyp表示的编解码器是第2编码方法(pcc2)的情况下(在S4722中是第2编码方法),第1逆复用部4720判断为NAL单元的有效载荷中包含的数据是用第2编码方法编码的数据(S4723)。此外,第1逆复用部4720将判断结果传递给第1解码部4640。第1解码部4640不处理该NAL单元(S4724)。
另一方面,在由ftyp表示的编解码器是第1编码方法(pcc1)的情况下(在S4722中是第1编码方法),第1逆复用部4720判断为NAL单元的有效载荷中包含的数据是用第1编码方法编码的数据(S4725)。此外,第1逆复用部4720将判断结果传递给第1解码部4640。
第1解码部4640设为NAL单元头中包含的pcc_nal_unit_type是第1编码方法用的NAL单元的识别符而识别数据(S4726)。并且,第1解码部4640使用第1编码方法的解码处理将PCC数据解码(S4727)。
图25是表示由第2逆复用部4740及第2解码部4660进行的处理的流程图。首先,第2逆复用部4740将ISOBMFF的文件中包含的ftyp解析(S4731)。在由ftyp表示的编解码器是第2编码方法(pcc2)的情况下(在S4732中是第2编码方法),第2逆复用部4740判断为NAL单元的有效载荷中包含的数据是用第2编码方法编码的数据(S4733)。此外,第2逆复用部4740将判断结果传递给第2解码部4660。
第2解码部4660设为NAL单元头中包含的pcc_nal_unit_type是第2编码方法用的NAL单元的识别符而识别数据(S4734)。并且,第2解码部4660使用第2编码方法的解码处理将PCC数据解码(S4735)。
另一方面,在由ftyp表示的编解码器是第1编码方法(pcc1)的情况下(在S4732中是第1编码方法),第2逆复用部4740判断为NAL单元的有效载荷中包含的数据是用第1编码方法编码的数据(S4736)。此外,第2逆复用部4740将判断结果传递给第2解码部4660。第2解码部4660不处理该NAL单元(S4737)。
这样,例如在第1逆复用部4720或第2逆复用部4740中通过识别NAL单元的编解码器类型,能够在较早的阶段识别编解码器类型。进而,能够将希望的NAL单元输入至第1解码部4640或第2解码部4660,而去除不需要的NAL单元。在此情况下,在第1解码部4640或第2解码部4660中,有可能不需要将编解码器的识别信息解析的处理。另外,也可以实施在第1解码部4640或第2解码部4660中再次参照NAL单元类型将编解码器的识别信息解析的处理。
此外,在第1复用部4710或第2复用部4730中从NAL单元头删除了pcc_nal_unit_type的情况下,第1逆复用部4720或第2逆复用部4740也可以在对NAL单元赋予pcc_nal_unit_type后向第1解码部4640或第2解码部4660输出。
(实施方式3)
在本实施方式中,对在实施方式1中说明的、与对应于多个编解码器的编码部4670及解码部4680对应的复用部及逆复用部进行说明。图26是表示有关本实施方式的编码部4670及第3复用部4750的构成的图。
编码部4670使用第1编码方法及第2编码方法的某一方或双方的方式将点群数据编码。编码部4670也可以以点群数据单位或帧单位切换编码方法(第1编码方法及第2编码方法)。此外,编码部4670也可以以可编码的单位切换编码方法。
编码部4670生成包含PCC编解码器的识别信息的编码数据(编码流)。
第3复用部4750具备文件变换部4751。文件变换部4751将从编码部4670输出的NAL单元变换为PCC数据的文件。文件变换部4751将NAL单元头中包含的编解码器识别信息解析,判定PCC编码数据是用第1编码方法编码的数据、还是用第2编码方法编码的数据、还是用双方的方式编码的数据。文件变换部4751在ftyp中记载能够识别编解码器的版本名。例如,在表示用双方的方式编码的情况下,在ftyp中记载pcc3。
另外,当编码部4670在NAL单元以外记载有PCC编解码器的识别信息的情况下,文件变换部4751也可以使用该识别信息来判定PCC编解码器(编码方法)。
图27是表示有关本实施方式的第3逆复用部4760及解码部4680的构成的图。
第3逆复用部4760具备文件逆变换部4761。文件逆变换部4761将文件中包含的ftyp解析,判定PCC编码数据是用第1编码方法编码的数据、还是用第2编码方法编码的数据、还是用双方的方式编码的数据。
在PCC编码数据被用某一方的编码方法编码了的情况下,数据被输入至第1解码部4640及第2解码部4660中的对应的解码部,另一方解码部中不被输入数据。在PCC编码数据被用双方的编码方法编码了的情况下,数据被输入至与两方式对应的解码部4680。
解码部4680使用第1编码方法及第2编码方法的某一方或双方的方式将PCC编码数据解码。
图28是表示由有关本实施方式的第3复用部4750进行的处理的流程图。
首先,第3复用部4750通过将NAL单元头中包含的pcc_codec_type解析,判定使用的编解码器是第1编码方法、还是第2编码方法、还是第1编码方法及第2编码方法双方(S4741)。
在使用了第2编码方法的情况下(在S4742中“是”,并且,在S4743中是第2编码方法),第3复用部4750在ftyp中记载pcc2(S4744)。即,第3复用部4750将表示在文件中保存有用第2编码方法编码的数据的信息向ftyp记载。
接着,第3复用部4750将NAL单元头中包含的pcc_nal_unit_type解析,用与由pcc_unit_type表示的数据类型对应的规定的方法将数据保存到盒子(moov或mdat等)(S4745)。并且,第3复用部4750制作包括上述ftyp及上述盒子的ISOBMFF的文件(S4746)。
另一方面,在使用了第1编码方法的情况下(在S4742中“是”,并且,在S4743中是第1编码方法),第3复用部4750在ftyp中记载pcc1(S4747)。即,第3复用部4750将表示在文件中保存有用第1编码方法编码的数据的信息向ftyp记载。
接着,第3复用部4750将NAL单元头中包含的pcc_nal_unit_type解析,用与由pcc_unit_type表示的数据类型对应的规定的方法将数据保存到盒子(moov或mdat等)(S4748)。并且,第3复用部4750制作包含上述ftyp及上述盒子的ISOBMFF的文件(S4746)。
另一方面,在使用了第1编码方法和第2编码方法双方的编码方法的情况下(在S4742中“否”),第3复用部4750在ftyp中记载pcc3(S4749)。即,第3复用部4750将表示在文件中保存有用双方的编码方法编码的数据的信息向ftyp记载。
接着,第3复用部4750将NAL单元头中包含的pcc_nal_unit_type解析,用与由pcc_unit_type表示的数据类型对应的规定的方法将数据保存到盒子(moov或mdat等)(S4750)。并且,第3复用部4750制作包含上述ftyp及上述盒子的ISOBMFF的文件(S4746)。
图29是表示由第3逆复用部4760及解码部4680进行的处理的流程图。首先,第3逆复用部4760将ISOBMFF的文件中包含的ftyp解析(S4761)。在由ftyp表示的编解码器是第2编码方法(pcc2)的情况下(在S4762中“是”,并且在S4763中是第2编码方法),第3逆复用部4760判断为NAL单元的有效载荷中包含的数据是用第2编码方法编码的数据(S4764)。此外,第3逆复用部4760将判断结果传输给解码部4680。
解码部4680设为NAL单元头中包含的pcc_nal_unit_type是第2编码方法用的NAL单元的识别符而识别数据(S4765)。并且,解码部4680使用第2编码方法的解码处理将PCC数据解码(S4766)。
另一方面,在由ftyp表示的编解码器是第1编码方法(pcc1)的情况下(在S4762中“是”,并且在S4763中是第1编码方法),第3逆复用部4760判断为NAL单元的有效载荷中包含的数据是用第1编码方法编码的数据(S4767)。此外,第3逆复用部4760将判断结果传输给解码部4680。
解码部4680设为NAL单元头中包含的pcc_nal_unit_type是第1编码方法用的NAL单元的识别符而识别数据(S4768)。并且,解码部4680使用第1编码方法的解码处理将PCC数据解码(S4769)。
另一方面,在由ftyp表示使用双方的编码方法(pcc3)的情况下(S4762中“否”),第3逆复用部4760判断为NAL单元的有效载荷中包含的数据是用第1编码方法和第2编码方法双方的编码方法编码的数据(S4770)。此外,第3逆复用部4760将判断结果传输给解码部4680。
解码部4680设为NAL单元头中包含的pcc_nal_unit_type是在pcc_codec_type中记载的编解码器用的NAL单元的识别符而识别数据(S4771)。并且,解码部4680使用双方的编码方法的解码处理将PCC数据解码(S4772)。即,解码部4680将用第1编码方法编码的数据使用第1编码方法的解码处理解码,将用第2编码方法编码的数据使用第2编码方法的解码处理解码。
以下,说明本实施方式的变形例。作为由ftyp表示的版本的种类,也可以将以下的种类用识别信息表示。此外,也可以将以下所示的多个种类的组合用识别信息表示。
识别信息表示PCC编码前的原数据的对象是区域被限制的点群、还是如地图信息那样区域没有被限制的大规模点群。
识别信息也可以表示PCC编码前的原数据是静态对象还是动态对象。
如上述那样,识别信息也可以表示PCC编码数据是用第1编码方法编码的数据还是用第2编码方法编码的数据。
识别信息也可以表示在PCC编码中使用的算法。这里,算法例如是在第1编码方法或第2编码方法中能够使用的编码方法。
识别信息也可以表示PCC编码数据向ISOBMFF的文件的保存方法的差异。例如,识别信息也可以表示所使用的保存方法是积蓄用的保存方法、还是动态流(dynamicstreaming)那样的实时送出用的保存方法。
此外,在实施方式2及实施方式3中,以作为文件格式而使用ISOBMFF的例子进行了说明,但也可以使用其他的方式。例如,也可以在向MPEG-2TS Systems、MPEG-DASH、MMT或RMP保存PCC编码数据时也使用与本实施方式同样的方法。
此外,在上述中,表示了在ftyp中保存识别信息等的元数据的例子,但也可以在ftyp以外保存这些元数据。例如,也可以将这些元数据保存在moov中。
如以上这样,三维数据保存装置(或三维数据复用装置、或三维数据编码装置)进行图30所示的处理。
首先,三维数据保存装置(例如,包括第1复用部4710、第2复用部4730或第3复用部4750)取得保存有将点群数据编码而得到的编码流的1个以上的单元(例如NAL单元)(S4781)。接着,三维数据保存装置将1个以上的单元向文件(例如ISOBMFF的文件)保存(S4782)。此外,三维数据保存装置在上述保存(S4782)中,将表示保存在文件中的数据是将点群数据编码而得到的数据的信息(例如pcc1、pcc2或pcc3)保存在上述文件的控制信息(例如ftyp)中。
由此,在将由该三维数据保存装置生成的文件处理的装置中,能够参照文件的控制信息,较早地判定保存在该文件中的数据是否是点群数据的编码数据。因此,能够实现该装置的处理量的减少或处理的高速化。
例如,上述信息还表示第1编码方法和第2编码方法中的在上述点群数据的编码中使用的编码方法。另外,保存在文件中的数据是将点群数据编码而得到的数据、以及第1编码方法和第2编码方法中的在点群数据的编码中使用的编码方法,既可以用单一的信息表示,也可以用不同的信息表示。
由此,在将由该三维数据保存装置生成的文件进行处理的装置中,能够参照文件的控制信息,较早地判定对保存在该文件中的数据使用的编解码器。因此,能够实现该装置的处理量的减少或处理的高速化。
例如,上述第1编码方法是对将点群数据的位置用N(N是2以上的整数)叉树表示的位置信息进行编码、使用上述位置信息将属性信息编码的方式(GPCC),上述第2编码方法是根据点群数据生成二维图像、使用影像编码方法将上述二维图像编码的方式(VPCC)。
例如,上述文件依据ISOBMFF(ISO based media file format:ISO基础媒体文件格式)。
例如,三维数据保存装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,如以上这样,三维数据取得装置(或三维数据逆复用装置、或三维数据解码装置)进行图31所示的处理。
三维数据取得装置(例如,包括第1逆复用部4720、第2逆复用部4740或第3逆复用部4760)取得保存有1个以上的单元(例如NAL单元)的文件(例如ISOBMFF的文件),该1个以上的单元保存有将点群数据编码而得到的编码流(S4791)。接着,三维数据取得装置从文件中取得1个以上的单元(S4792)。此外,文件的控制信息(例如ftyp)包含表示保存在文件中的数据是将有点群数据编码而得到的数据的信息(例如pcc1、pcc2或pcc3)。
例如,三维数据取得装置参照上述信息,判定保存在文件中的数据是否是将点群数据编码而得到的数据。此外,三维数据取得装置在判定为保存在文件中的数据是将点群数据编码而得到的数据的情况下,通过将1个以上的单元中包含的将点群数据编码而得到的数据解码,生成点群数据。或者,三维数据取得装置在判定为保存在文件中的数据是将点群数据编码而得到的数据的情况下,将表示1个以上的单元中包含的数据是将点群数据编码而得到的数据的信息向后级的处理部(例如,第1解码部4640、第2解码部4660或解码部4680)输出(通知)。
由此,该三维数据取得装置能够参照文件的控制信息,较早地判定保存在该文件中的数据是否是点群数据的编码数据。因此,能够实现该三维数据取得装置或后段的装置的处理量的减少或处理的高速化。
例如,上述信息还表示第1编码方法和第2编码方法中的在上述编码中使用的编码方法。另外,保存在文件中的数据是将点群数据编码而得到的数据、以及第1编码方法和第2编码方法中的在点群数据的编码中使用的编码方法,既可以由单一的信息表示,也可以由不同的信息表示。
由此,该三维数据取得装置能够参照文件的控制信息,较早地判定对保存在该文件中的数据使用的编解码器。因此,能够实现该三维数据取得装置或后段的装置的处理量的减少或处理的高速化。
例如,三维数据取得装置基于上述信息,从包含用第1编码方法编码的数据和用第2编码方法编码的数据的编码后的点群数据中取得用某一方的编码方法编码的数据。
例如,上述第1编码方法是对将点群数据的位置用N(N是2以上的整数)叉树表示的位置信息进行编码、使用上述位置信息将属性信息编码的方式(GPCC),上述第2编码方法是根据点群数据生成二维图像、将上述二维图像使用影像编码方法编码的方式(VPCC)。
例如,上述文件依据ISOBMFF(ISO based media file format)。
例如,三维数据取得装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式4)
在本实施方式中,对由上述的第1编码部4630或第2编码部4650生成的编码数据(位置信息(Geometry)、属性信息(Attribute)、附加信息(Metadata))的种类及附加信息(元数据)的生成方法、以及复用部中的复用处理进行说明。另外,附加信息(元数据)也有表述为参数集或控制信息的情况。
在本实施方式中,以在图4中说明的动态对象(随时间而变化的三维点群数据)为例进行说明,但在静态对象(任意的时刻的三维点群数据)的情况下也可以使用同样的方法。
图32是表示在有关本实施方式的三维数据编码装置中包含的编码部4801及复用部4802的构成的图。编码部4801例如对应于上述的第1编码部4630或第2编码部4650。复用部4802对应于上述的复用部4634或4656。
编码部4801将多个PCC(Point Cloud Compression)帧的点群数据编码,生成多个位置信息、属性信息及附加信息的编码数据(Multiple Compressed Data)。
复用部4802通过对多个数据种类(位置信息、属性信息及附加信息)的数据进行NAL单元化,将数据变换为考虑了解码装置中的数据访问的数据构成。
图33是表示由编码部4801生成的编码数据的构成例的图。图中的箭头表示与编码数据的解码有关的依赖关系,箭头的根部依赖于箭头的尖部的数据。即,解码装置将箭头的尖部的数据解码,使用该解码的数据将箭头的根部的数据解码。换言之,依赖是指在依赖源的数据的处理(编码或解码等)中参照(使用)依赖目标的数据。
首先,对位置信息的编码数据的生成处理进行说明。编码部4801通过将各帧的位置信息编码,生成各帧的编码位置数据(Compressed Geometry Data)。此外,将编码位置数据用G(i)表示。i表示帧号或帧的时刻等。
此外,编码部4801生成与各帧对应的位置参数集(GPS(i))。位置参数集包含能够在编码位置数据的解码中使用的参数。此外,每个帧的编码位置数据依赖于对应的位置参数集。
此外,将由多个帧构成的编码位置数据定义为位置序列(Geometry Sequence)。编码部4801生成将在对于位置序列内的多个帧的解码处理中共同使用的参数进行保存的位置序列参数集(Geometry Sequence PS:也记作位置SPS)。位置序列依赖于位置SPS。
接着,对属性信息的编码数据的生成处理进行说明。编码部4801通过将各帧的属性信息编码,生成各帧的编码属性数据(Compressed Attribute Data)。此外,将编码属性数据用A(i)表示。此外,在图33中,示出了存在属性X和属性Y的例子,将属性X的编码属性数据用AX(i)表示,将属性Y的编码属性数据用AY(i)表示。
此外,编码部4801生成与各帧对应的属性参数集(APS(i))。此外,将属性X的属性参数集用AXPS(i)表示,将属性Y的属性参数集用AYPS(i)表示。属性参数集包含能够在编码属性信息的解码中使用的参数。编码属性数据依赖于对应的属性参数集。
此外,将由多个帧构成的编码属性数据定义为属性序列(Attribute Sequence)。编码部4801生成将在对于属性序列内的多个帧的解码处理中共同使用的参数进行保存的属性序列参数集(Attribute Sequence PS:也记作属性SPS)。属性序列依赖于属性SPS。
此外,在第1编码方法中,编码属性数据依赖于编码位置数据。
此外,在图33中,示出了存在两种属性信息(属性X和属性Y)的情况下的例子。在有两种属性信息的情况下,例如由两个编码部生成各自的数据及元数据。此外,例如按属性信息的每个种类来定义属性序列,按属性信息的每个种类来生成属性SPS。
另外,在图33中,示出了位置信息是1种、属性信息是两种的例子,但并不限于此,属性信息也可以是1种,也可以是3种以上。在此情况下,也能够用同样的方法生成编码数据。此外,在不具有属性信息的点群数据的情况下,也可以没有属性信息。在此情况下,编码部4801也可以不生成与属性信息关联的参数集。
接着,对附加信息(元数据)的生成处理进行说明。编码部4801生成PCC流整体的参数集即PCC流PS(PCC Stream PS:也记作流PS)。编码部4801在流PS中保存能够在对1个或多个位置序列及1个或多个属性序列的解码处理中共同使用的参数。例如,在流PS中,包含表示点群数据的编解码器的识别信息及表示在编码中使用的算法的信息等。位置序列及属性序列依赖于流PS。
接着,对访问单元及GOF进行说明。在本实施方式中,新导入访问单元(AccessUnit:AU)及GOF(Group of Frame:帧组)的考虑方式。
访问单元是在解码时用来访问数据的基本单位,由1个以上的数据及1个以上的元数据构成。例如,访问单元由相同时刻的位置信息和1个或多个属性信息构成。GOF是随机访问单位,由1个以上的访问单元构成。
编码部4801生成访问单元头(AU Header)作为表示访问单元的开头的识别信息。编码部4801在访问单元头中保存与访问单元有关的参数。例如,访问单元头包含:在访问单元中包含的编码数据的构成或信息。此外,访问单元头包含对在访问单元中包含的数据共同使用的参数,例如与编码数据的解码有关的参数等。
另外,编码部4801也可以代替访问单元头而生成不包含与访问单元有关的参数的访问单元定界符。该访问单元定界符被用作表示访问单元的开头的识别信息。解码装置通过检测访问单元头或访问单元定界符,识别访问单元的开头。
接着,对GOF开头的识别信息的生成进行说明。编码部4801生成GOF头(GOFHeader)作为表示GOF的开头的识别信息。编码部4801在GOF头中保存与GOF有关的参数。例如,GOF头包含:在GOF中包含的编码数据的构成或信息。此外,GOF头包含对在GOF中包含的数据共同使用的参数,例如与编码数据的解码有关的参数等。
另外,编码部4801也可以代替GOF头而生成不包含与GOF有关的参数的GOF定界符。该GOF定界符被用作表示GOF的开头的识别信息。解码装置通过检测GOF头或GOF定界符,识别GOF的开头。
在PCC编码数据中,例如定义为访问单元是PCC帧单位。解码装置基于访问单元开头的识别信息,对PCC帧进行访问。
此外,例如GOF被定义为1个随机访问单位。解码装置基于GOF开头的识别信息,对随机访问单位进行访问。例如,如果PCC帧相互没有依赖关系而能够单独解码,则也可以将PCC帧定义为随机访问单位。
另外,也可以对1个访问单元分配两个以上的PCC帧,也可以对1个GOF分配多个随机访问单位。
此外,编码部4801也可以定义并生成上述以外的参数集或元数据。例如,编码部4801也可以生成保存有可能在解码时不一定使用的参数(可选的参数)的SEI(Supplemental Enhancement Information:补充增强信息)。
接着,说明编码数据的构成及编码数据向NAL单元的保存方法。
例如,按编码数据的每个种类规定数据格式。图34是表示编码数据及NAL单元的例子的图。
例如,如图34所示,编码数据包括头和有效载荷。另外,编码数据也可以包含编码数据、头或表示有效载荷的长度(数据量)的长度信息。此外,编码数据也可以不包含头。
头例如包含用来确定数据的识别信息。该识别信息例如表示数据种类或帧号。
头例如包含表示参照关系的识别信息。该识别信息例如是在数据间有依赖关系的情况下被保存到头中,用来从参照源对参照目标进行参照的信息。例如,在参照目标的头中,包含用来确定该数据的识别信息。在参照源的头中,包含表示参照目标的识别信息。
另外,在能够从其他信息识别或导出参照目标或参照源的情况下,也可以省略用来确定数据的识别信息或表示参照关系的识别信息。
复用部4802将编码数据保存在NAL单元的有效载荷中。在NAL单元头中,包含作为编码数据的识别信息的pcc_nal_unit_type。图35是表示pcc_nal_unit_type的语义例的图。
如图35所示,在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(AttrX.PS)、位置SPS(Geometry Sequence PS)、属性XSPS(AttributeX Sequence PS)、属性YSPS(AttributeY Sequence PS)、AU头(AU Header)、GOF头(GOF Header)。此外,值11以后被分配为编解码器1的备用。
在pcc_codec_type是编解码器2(Codec2:第2编码方法)的情况下,pcc_nal_unit_type的值0~2被分配给编解码器的数据A(DataA)、元数据A(MetaDataA)、元数据B(MetaDataB)。此外,值3以后被分配为编解码器2的备用。
接着,对数据的送出顺序进行说明。以下,对NAL单元的送出顺序的制约进行说明。
复用部4802将NAL单元以GOF或AU单位一起送出。复用部4802将GOF头配置在GOF的开头,将AU头配置在AU的开头。
复用部4802也可以按每个AU来配置序列参数集(SPS),以使得在因丢包等而丢失了数据的情况下解码装置也能够从下个AU起进行解码。
在编码数据中有与解码有关的依赖关系的情况下,解码装置在将参照目标的数据解码后,将参照源的数据解码。在解码装置中,为了使得能够不将数据重新排列而以接收到的顺序进行解码,复用部4802先送出参照目标的数据。
图36是表示NAL单元的送出顺序的例子的图。图36表示位置信息优先、参数优先和数据合并这3个例子。
位置信息优先的送出顺序是将与位置信息有关的信息和与属性信息有关的信息的各信息一起送出的例子。在该送出顺序的情况下,与位置信息有关的信息的送出比与属性信息有关的信息的送出更早完成。
例如,通过使用该送出顺序,不解码属性信息的解码装置通过忽视属性信息的解码,有可能能够设置不进行处理的时间。此外,例如在想要早解码位置信息的解码装置的情况下,通过较早得到位置信息的编码数据,有可能能够更早地解码位置信息。
另外,在图36中,将属性XSPS与属性YSPS合并而记作属性SPS,但也可以单独地配置属性XSPS和属性YSPS。
在参数集优先的送出顺序中,先送出参数集,后送出数据。
如以上这样,只要遵循NAL单元送出顺序的制约,复用部4802将NAL单元以怎样的顺序送出都可以。例如,也可以定义顺序识别信息,复用部4802具有以多个样式的顺序送出NAL单元的功能。例如在流PS中保存NAL单元的顺序识别信息。
三维数据解码装置也可以基于顺序识别信息进行解码。也可以从三维数据解码装置向三维数据编码装置指示希望的送出顺序,三维数据编码装置(复用部4802)按照被指示的送出顺序对送出顺序进行控制。
另外,只要是如数据合并的送出顺序那样遵循送出顺序的制约的范围,复用部4802也可以生成将多个功能归并的编码数据。例如,如图36所示,也可以将GOF头与AU头合并,也可以将AXPS与AYPS合并。在此情况下,在pcc_nal_unit_type中,定义表示是具有多个功能的数据的识别符。
以下,对本实施方式的变形例进行说明。如帧级的PS、序列级的PS、PCC序列级的PS那样,PS有级别,如果将PCC序列级设为上位的级别,将帧级设为下位的级别,则参数的保存方法也可以使用下述的方法。
将默认的PS的值用较上位的PS表示。此外,在下位的PS的值与上位的PS的值不同的情况下,用下位的PS表示PS的值。或者,在上位不记载PS的值,在下位的PS中记载PS的值。或者,用下位的PS和上位的PS的某一方或双方来表示将PS的值用下位的PS表示、还是用上位的PS表示、还是用双方表示的信息。或者,也可以将下位的PS归并到上位的PS。或者,在下位的PS与上位的PS重复的情况下,复用部4802也可以将某一方的送出省略。
另外,编码部4801或复用部4802也可以将数据分割为切片或瓦片等,将分割后的数据送出。在分割后的数据中,包含用来识别所分割的数据的信息,在参数集中包含在分割数据的解码中使用的参数。在此情况下,在pcc_nal_unit_type中,定义了表示是与瓦片或切片有关的数据或保存参数的数据的识别符。
(实施方式5)
以下,对点群数据的分割方法进行说明。图37是表示切片及瓦片分割的例子的图。
首先,对切片分割的方法进行说明。三维数据编码装置将三维点群数据以切片单位分割为任意的点群。三维数据编码装置在切片分割中不分割构成点的位置信息和属性信息,而将位置信息和属性信息一齐分割。即,三维数据编码装置以任意点处的位置信息和属性信息属于相同的切片的方式进行切片分割。另外,只要遵循这些,则分割数量及分割方法是怎样的方法都可以。此外,分割的最小单位是点。例如,位置信息和属性信息的分割数量相同。例如,与切片分割后的位置信息对应的三维点和与属性信息对应的三维点包含于相同的切片中。
此外,三维数据编码装置在切片分割时生成作为与分割数量及分割方法有关的附加信息的切片附加信息。切片附加信息在位置信息和属性信息中是相同的。例如,切片附加信息包含表示分割后的包围盒(bounding box)的基准坐标位置、大小或边的长度的信息。此外,切片附加信息包含表示分割数量及分割类型等的信息。
接着,对瓦片分割的方法进行说明。三维数据编码装置将被切片分割后的数据分割为切片位置信息(G切片)和切片属性信息(A切片),将切片位置信息和切片属性信息分别分割为瓦片单位。
另外,在图37中示出了以八叉树结构分割的例子,但分割数量及分割方法是怎样的方法都可以。
此外,三维数据编码装置将位置信息和属性信息既可以用不同的分割方法分割,也可以用相同的分割方法分割。此外,三维数据编码装置将多个切片既可以用不同的分割方法分割为瓦片,也可以用相同的分割方法分割为瓦片。
此外,三维数据编码装置在瓦片分割时生成与分割数量及分割方法有关的瓦片附加信息。瓦片附加信息(位置瓦片附加信息及属性瓦片附加信息)在位置信息和属性信息中独立。例如,瓦片附加信息包含表示分割后的包围盒的基准坐标位置、大小或边的长度的信息。此外,瓦片附加信息包含表示分割数量及分割类型等的信息。
接着,说明将点群数据分割为切片或瓦片的方法的例子。作为切片或瓦片分割的方法,三维数据编码装置既可以使用预先设定的方法,也可以根据点群数据而自适应地切换所使用的方法。
在切片分割时,三维数据编码装置对于位置信息和属性信息一齐将三维空间分割。例如,三维数据编码装置判定对象的形状,根据对象的形状将三维空间分割为切片。例如,三维数据编码装置提取树或建筑物等对象,以对象单位进行分割。例如,三维数据编码装置进行切片分割,以使1个或多个对象的整体包含于1个切片中。或者,三维数据编码装置将一个对象分割为多个切片。
在此情况下,编码装置例如也可以按每个切片改变编码方法。例如,编码装置也可以对特定的对象或对象的特定的一部分使用高品质的压缩方法。在此情况下,编码装置也可以将表示每个切片的编码方法的信息向附加信息(元数据)保存。
此外,三维数据编码装置也可以基于地图信息或位置信息进行切片分割,以使各切片对应于预先设定的坐标空间。
在瓦片分割时,三维数据编码装置将位置信息和属性信息独立地分割。例如,三维数据编码装置根据数据量或处理量将切片分割为瓦片。例如,三维数据编码装置判定切片的数据量(例如切片中包含的三维点的数量)是否比预先设定的阈值多。三维数据编码装置在切片的数据量比阈值多的情况下将切片分割为瓦片。三维数据编码装置在切片的数据量比阈值少时不将切片分割为瓦片。
例如,三维数据编码装置将切片分割为瓦片,以使解码装置中的处理量或处理时间成为一定的范围(预先设定的值以下)。由此,解码装置的每个瓦片的处理量成为一定,解码装置中的分散处理变得容易。
此外,三维数据编码装置在位置信息和属性信息中处理量不同的情况下,例如在位置信息的处理量比属性信息的处理量多的情况下,使位置信息的分割数量比属性信息的分割数量多。
此外,例如根据内容,在解码装置也可以将位置信息较早地解码并显示、将属性信息然后慢慢解码而显示的情况下,三维数据编码装置也可以使位置信息的分割数量比属性信息的分割数量多。由此,解码装置能够使位置信息的并行数量变多,所以能够使位置信息的处理比属性信息的处理高速化。
另外,解码装置并不需要一定将被切片化或瓦片化的数据并行处理,也可以根据解码处理部的数量或能力来判定是否将它们并行处理。
通过用以上那样的方法分割,能够实现与内容或对象对应的自适应的编码。此外,能够实现解码处理中的并行处理。由此,点群编码系统或点群解码系统的灵活性提高。
图38是表示切片及瓦片的分割的样式的例子的图。图中的DU是数据单位(DataUnit),表示瓦片或切片的数据。此外,各DU包括切片索引(Slice Index)和瓦片索引(TileIndex)。图中的DU的右上的数值表示切片索引,DU的左下的数值表示瓦片索引。
在样式1中,在切片分割中,在G切片和A切片中分割数量及分割方法相同。在瓦片分割中,对于G切片的分割数量及分割方法与对于A切片的分割数量及分割方法不同。此外,在多个G切片间使用相同的分割数量及分割方法。在多个A切片间使用相同的分割数量及分割方法。
在样式2中,在切片分割中,在G切片和A切片中分割数量及分割方法相同。在瓦片分割中,对于G切片的分割数量及分割方法与对于A切片的分割数量及分割方法不同。此外,在多个G切片间,分割数量及分割方法不同。在多个A切片间,分割数量及分割方法不同。
(实施方式6)
以下,对在瓦片分割后进行切片分割的例子进行说明。在车辆的自动驾驶等的自主型的应用中,不是需要全部区域的点群数据,而是需要车辆的周边区域或车辆的行进方向的地域的点群数据。这里,为了将原来的点群数据有选择地解码而可以使用瓦片及切片。通过将三维点群数据分割为瓦片、再分割为切片,能够实现编码效率的提高或并行处理。在将数据分割时,生成附加信息(元数据),将所生成的附加信息向复用部发送。
图39是表示在有关本实施方式的三维数据编码装置中包含的第1编码部5010的构成的框图。第1编码部5010通过将点群数据用第1编码方法(GPCC(Geometry based PCC))编码而生成编码数据(编码流)。该第1编码部5010包括分割部5011、多个位置信息编码部5012、多个属性信息编码部5013、附加信息编码部5014和复用部5015。
分割部5011通过将点群数据分割,生成多个分割数据。具体而言,分割部5011通过将点群数据的空间分割为多个子空间,生成多个分割数据。这里,子空间是指瓦片及切片的一方或瓦片及切片的组合。更具体地讲,点群数据包括位置信息、属性信息及附加信息。分割部5011将位置信息分割为多个分割位置信息,将属性信息分割为多个分割属性信息。此外,分割部5011生成关于分割的附加信息。
例如,分割部5011首先将点群分割为瓦片。接着,分割部5011将得到的瓦片再分割为切片。
多个位置信息编码部5012通过将多个分割位置信息编码,生成多个编码位置信息。例如,多个位置信息编码部5012将多个分割位置信息并行处理。
多个属性信息编码部5013通过将多个分割属性信息编码而生成多个编码属性信息。例如,多个属性信息编码部5013将多个分割属性信息并行处理。
附加信息编码部5014通过将包含在点群数据中的附加信息和由分割部5011在分割时生成的关于数据分割的附加信息编码,生成编码附加信息。
复用部5015通过将多个编码位置信息、多个编码属性信息及编码附加信息复用,生成编码数据(编码流),送出所生成的编码数据。此外,编码附加信息在解码时被使用。
另外,在图39中表示了位置信息编码部5012及属性信息编码部5013的数量分别为两个的例子,但位置信息编码部5012及属性信息编码部5013的数量分别也可以是1个,也可以是3个以上。此外,关于多个分割数据,既可以如CPU内的多个核那样在同一个芯片内并行处理,也可以由多个芯片的核并行处理,也可以由多个芯片的多个核并行处理。
接着,对解码处理进行说明。图40是表示第1解码部5020的构成的框图。第1解码部5020通过对通过将点群数据用第1编码方法(GPCC)编码而生成的编码数据(编码流)进行解码,将点群数据复原。该第1解码部5020包括逆复用部5021、多个位置信息解码部5022、多个属性信息解码部5023、附加信息解码部5024和结合部5025。
逆复用部5021通过将编码数据(编码流)逆复用,生成多个编码位置信息、多个编码属性信息及编码附加信息。
多个位置信息解码部5022通过将多个编码位置信息解码,生成多个分割位置信息。例如,多个位置信息解码部5022将多个编码位置信息并行处理。
多个属性信息解码部5023通过将多个编码属性信息解码,生成多个分割属性信息。例如,多个属性信息解码部5023将多个编码属性信息并行处理。
多个附加信息解码部5024通过将编码附加信息解码,生成附加信息。
结合部5025通过使用附加信息将多个分割位置信息结合,生成位置信息。结合部5025通过使用附加信息将多个分割属性信息结合,生成属性信息。例如,结合部5025首先通过使用切片附加信息将对于切片的解码后的点群数据结合,生成与瓦片对应的点群数据。接着,结合部5025通过使用瓦片附加信息将与瓦片对应的点群数据结合,将原来的点群数据复原。
另外,在图39中表示了位置信息解码部5022及属性信息解码部5023的数量分别为两个的例子,但位置信息解码部5022及属性信息解码部5023的数量分别也可以是1个,也可以是3个以上。此外,关于多个分割数据,既可以如CPU内的多个核那样在同一个芯片内并行处理,也可以由多个芯片的核并行处理,也可以由多个芯片的多个核并行处理。
接着,对点群数据的分割方法进行说明。在车辆的自动驾驶等的自主型的应用中,不是需要全部区域的点群数据,而是需要车辆的周边区域或车辆的行进方向的地域的点群数据。
图41是表示瓦片的形状的例子的图。如图41所示,作为瓦片的形状,也可以使用圆、矩形或椭圆等的各种各样的形状。
图42是表示瓦片及切片的例子的图。切片的构成也可以在瓦片间不同。例如,也可以将瓦片或切片的构成基于数据量进行优化。或者,也可以将瓦片或切片的构成基于解码速度进行优化。
此外,也可以基于位置信息进行瓦片分割。在此情况下,将属性信息与对应的位置信息同样地分割。
此外,在瓦片分割后的切片分割中,也可以将位置信息和属性信息通过不同的方法分割为切片。例如,各瓦片的切片分割的方法也可以根据来自应用的请求来选择。也可以基于来自应用的请求而使用不同的切片分割的方法或瓦片分割的方法。
例如,分割部5011在将三维点群数据从上观察的二维形状中基于地图信息等的位置信息将点群数据分割为1个以上的瓦片。然后,分割部5011将各个瓦片分割为1个以上的切片。
另外,分割部5011也可以将位置信息(Geometry)和属性信息(Attribute)用相同的方法分割为切片。
另外,位置信息及属性信息分别既可以是1种,也可以是两种以上。此外,在不具有属性信息的点群数据的情况下,也可以没有属性信息。
图43是分割部5011的框图。分割部5011包括瓦片分割部5031(Tile Divider)、位置信息切片分割部5032(Geometry Slice Divider)和属性信息切片分割部5033(Attribute Slice Divider)。
瓦片分割部5031通过将位置信息(Position(Geometry))分割为瓦片,生成多个瓦片位置信息。此外,瓦片分割部5031通过将属性信息(Attribute)分割为瓦片,生成多个瓦片属性信息。此外,瓦片分割部5031输出包含有关瓦片分割的信息、及在瓦片分割中生成的信息的瓦片附加信息(TileMetaData)。
位置信息切片分割部5032通过将多个瓦片位置信息分割为切片,生成多个分割位置信息(多个切片位置信息)。此外,位置信息切片分割部5032输出包含有关位置信息的切片分割的信息、及在位置信息的切片分割中生成的信息的位置切片附加信息(GeometrySlice MetaData)。
属性信息切片分割部5033通过将多个瓦片属性信息分割为切片,生成多个分割属性信息(多个切片属性信息)。此外,属性信息切片分割部5033输出包含有关属性信息的切片分割的信息、及在属性信息的切片分割中生成的信息的属性切片附加信息(AttributeSlice MetaData)。
接着,瓦片的形状的例对进行说明。三维地图(3D地图)的整体被分割为多个瓦片。多个瓦片的数据被有选择地向三维数据解码装置发送。或者,也可以在多个瓦片的数据中从重要度较高的数据依次向三维数据解码装置发送。根据状况,瓦片的形状也可以从多个形状中选择。
图44是表示将由LiDAR得到的点群数据俯视的地图的一例的图。图44所示的例子是高速道路的点群数据,包括立体交叉部分(Flyover)。
图45是表示将图44所示的点群数据分割为正方形的瓦片的例子的图。这样的正方形的分割能够在地图服务器中容易地进行。此外,相对于通常的道路,瓦片的高度被设定得较低。在立体交叉部分,瓦片的高度被设定为比通常的道路高,以使瓦片包含立体交叉部分。
图46是表示将图44所示的点群数据分割为圆形的瓦片的例子的图。在此情况下,有相邻的瓦片在俯视中重复的情况。三维数据编码装置在车辆需要周边区域的点群数据的情况下,将车辆周边的圆柱(俯视中的圆)区域的点群数据发送给车辆。
此外,与图45的例子同样,对于通常的道路,瓦片的高度被设定得较低。在立体交叉部分,瓦片的高度被设定为比通常的道路高,以使瓦片包含立体交叉部分。
三维数据编码装置也可以将瓦片的高度例如根据道路或建筑物的形状或高度改变。此外,三维数据编码装置也可以根据位置信息或区域信息来改变瓦片的高度。此外,三维数据编码装置也可以将瓦片的高度按每个瓦片改变。或者,三维数据编码装置也可以按包括多个瓦片的每个区间改变瓦片的高度。即,三维数据编码装置也可以将区间内的多个瓦片的高度设为相同。此外,不同高度的瓦片也可以在俯视中重复。
图47是表示使用各种各样的形状、大小或高度的瓦片的情况下的瓦片分割的例子的图。瓦片的形状是怎样的形状都可以,是怎样的大小都可以,也可以是它们的组合。
例如,不仅是上述那样的不重复而以正方形的瓦片进行分割的例子、以及以重复的圆形的瓦片进行分割的例子,三维数据编码装置也可以以重复的正方形的瓦片进行分割。此外,瓦片的形状也可以不是正方形及圆形,也可以使用具有3个以上的顶点的多边形,也可以使用不具有顶点的形状。
此外,瓦片的形状也可以是两种以上,也可以是不同形状的瓦片重复。此外,也可以是,瓦片的形状的种类是1个以上,在分割的相同形状中,将大小不同的形状组合,它们也可以重复。
例如,在道路等的没有对象的区域中,使用比存在对象的区域大的瓦片。此外,三维数据编码装置也可以根据对象而适应性地改变瓦片的形状或大小。
此外,例如三维数据编码装置由于需要读入作为汽车(车辆)的行进方向的汽车的前方远方的瓦片的可能性较高,所以也可以将行进方向的瓦片设定为较大的尺寸,由于汽车向汽车的侧方前进的可能性较低,所以将侧方的瓦片设定为比行进方向的瓦片小的尺寸。
图48是表示被保存在服务器中的瓦片的数据的例子的图。例如,预先将点群数据进行瓦片分割而编码,将得到的编码数据保存到服务器中。用户在需要时从服务器取得希望的瓦片的数据。或者,服务器(三维数据编码装置)也可以根据用户的指示进行瓦片分割及编码,以包含用户希望的数据。
例如,在移动体(车辆)的移动速度较快的情况下,可以想到需要更大范围的点群数据。因此,服务器也可以基于预先推测的车的速度(例如,能够根据道路的法定速度、道路的宽度及形状来推测的车的速度或统计上的速度等),决定瓦片的形状及大小,进行瓦片分割。或者,如图48所示,服务器也可以预先将多个形状或大小的瓦片编码,将得到的数据保存。移动体也可以根据该移动体的行进方向及速度,取得适当的形状及大小的瓦片的数据。
图49是表示关于瓦片分割的系统的例子的图。如图49所示,瓦片的形状及区域也可以基于作为传送点群数据的通信手段的天线(基站)的位置或天线所支持的通信区域来决定。或者,在由相机等的传感器生成点群数据的情况下,瓦片的形状及区域也可以基于传感器的位置或传感器的对象范围(检测范围)来决定。
既可以对1个天线或传感器分配1个瓦片,也可以对多个天线或传感器分配1个瓦片。也可以对1个天线或传感器分配多个瓦片。天线或传感器既可以被固定,也可以能够移动。
例如,被分割为瓦片的编码数据也可以由与对应于被分配给瓦片的区域的天线或传感器连接的服务器管理。服务器也可以管理本区域的编码数据和相邻的区域的瓦片信息。也可以在管理与各个瓦片对应的多个服务器的集中管理服务器(云)中管理多个瓦片的多个编码数据。或者,也可以不设置与瓦片对应的服务器,天线或传感器与集中管理服务器直接连接。
另外,天线或传感器的对象范围有可能根据电波的功率、设备的差异及设置条件而不同,瓦片的形状及大小也可以也与这些匹配而变化。基于天线或传感器的对象范围,也可以不是分配瓦片而是分配切片,也可以分配PCC帧。
接着,对将瓦片分割为切片的方法进行说明。通过将类似的对象分配给相同的切片,能够提高编码效率。
例如,三维数据编码装置使用点群数据的特征来识别对象(道路、楼宇、树等),通过按每个对象将点群聚类(clustering)来进行切片分割。
或者,三维数据编码装置也可以将具有相同属性的对象进行分组,通过对各组分配切片来进行切片分割。这里,属性例如是关于运动的信息,通过将对象分类为步行者及车等的动态信息、事故及拥堵等的准动态信息、交通限制及道路工事等的准静态信息、和路面及构造物等的静态信息,来进行分组。
另外,在多个切片中,数据也可以重复。例如,在按多个对象组的每个对象组进行切片分割的情况下,任意的对象既可以属于1个对象组,也可以属于2以上的多个对象组。
图50是表示该切片分割的例子的图。例如,在图50所示的例子中,瓦片是长方体。另外,瓦片也可以是圆柱状,也可以是其他形状。
瓦片中包含的点群例如被分组为道路、建筑物、树等的对象组。并且,以各对象组包含于一个切片中的方式进行切片化。并且,各切片被单独地编码。
接着,对分割数据的编码方法进行说明。三维数据编码装置(第1编码部5010)将被分割后的数据分别编码。三维数据编码装置在将属性信息编码时,生成表示基于哪个构成信息(位置信息、附加信息或其他的属性信息)进行了编码的依赖关系信息作为附加信息。即,依赖关系信息例如表示参照目标(依赖目标)的构成信息。在此情况下,三维数据编码装置基于与属性信息的分割形状对应的构成信息来生成依赖关系信息。另外,三维数据编码装置也可以基于与多个分割形状对应的构成信息来生成依赖关系信息。
也可以由三维数据编码装置生成依赖关系信息,将所生成的依赖关系信息向三维数据解码装置送出。或者,也可以是三维数据解码装置生成依赖关系信息,三维数据编码装置不送出依赖关系信息。此外,也可以是三维数据编码装置预先设定要使用的依赖关系,三维数据编码装置不送出依赖关系信息。
图51是表示各数据的依赖关系的一例的图。图中的箭头的尖部表示依赖目标,箭头的根部表示依赖源。三维数据解码装置以从依赖目标到依赖源的顺序将数据解码。此外,图中由实线表示的数据是实际被送出的数据,由点线表示的数据是没有被送出的数据。
此外,在该图中,G表示位置信息,A表示属性信息。Gt1表示瓦片号码1的位置信息,Gt2表示瓦片号码2的位置信息。Gt1s1表示瓦片号码1且切片号码1的位置信息,Gt1s2表示瓦片号码1且切片号码2的位置信息,Gt2s1表示瓦片号码2且切片号码1的位置信息,Gt2s2表示瓦片号码2且切片号码2的位置信息。同样,At1表示瓦片号码1的属性信息,At2表示瓦片号码2的属性信息。At1s1表示瓦片号码1且切片号码1的属性信息,At1s2表示瓦片号码1且切片号码2的属性信息,At2s1表示瓦片号码2且切片号码1的属性信息,At2s2表示瓦片号码2且切片号码2的属性信息。
Mtile表示瓦片附加信息,MGslice表示位置切片附加信息,MAslice表示属性切片附加信息。Dt1s1表示属性信息At1s1的依赖关系信息,Dt2s1表示属性信息At2s1的依赖关系信息。
另外,根据应用等,也可以使用不同的瓦片分割或切片分割的构造。
此外,三维数据编码装置也可以将数据以解码顺序重新排列,以使得在三维数据解码装置中不需要将数据重新排列。另外,也可以在三维数据解码装置中将数据重新排列,也可以在三维数据编码装置和三维数据解码装置双方中将数据重新排列。
图52是表示数据的解码顺序的例子的图。在图52的例子中,从左方的数据起依次进行解码。三维数据解码装置在处于依赖关系的数据间,从依赖目标的数据起先进行解码。例如,三维数据编码装置将数据预先排序成该顺序而送出。另外,只要是依赖目标的数据为先的顺序,是怎样的顺序都可以。此外,三维数据编码装置也可以将附加信息及依赖关系信息比数据先送出。
此外,三维数据解码装置也可以基于来自应用的请求及从NAL单元头得到的信息,有选择地将瓦片解码。图53是表示瓦片的编码数据的例子的图。例如,瓦片的解码顺序是任意的。即,在瓦片间也可以没有依赖关系。
接着,说明在第1解码部5020中包含的结合部5025的构成。图54是表示结合部5025的构成的框图。结合部5025包括位置信息切片结合部5041(Geometry Slice Combiner)、属性信息切片结合部5042(Attribute Slice Combiner)和瓦片结合部(Tile Combiner)。
位置信息切片结合部5041通过使用位置切片附加信息将多个分割位置信息结合而生成多个瓦片位置信息。属性信息切片结合部5042通过使用属性切片附加信息将多个分割属性信息结合,生成多个瓦片属性信息。
瓦片结合部5043通过使用瓦片附加信息将多个瓦片位置信息结合,生成位置信息。此外,瓦片结合部5043通过使用瓦片附加信息将多个瓦片属性信息结合,生成属性信息。
另外,被分割的切片或瓦片的数量是1个以上。即,也可以不进行切片或瓦片的分割。
接着,说明被切片分割或瓦片分割后的编码数据的构成、以及编码数据向NAL单元的保存方法(复用方法)。图55是表示编码数据的构成及编码数据向NAL单元的保存方法的图。
编码数据(分割位置信息及分割属性信息)被保存至NAL单元的有效载荷。
编码数据包括头和有效载荷。头包含用来确定有效载荷中包含的数据的识别信息。该识别信息例如包括切片分割或瓦片分割的类别(slice_type,tile_type)、用来确定切片或瓦片的索引信息(slice_idx,tile_idx)、数据(切片或瓦片)的位置信息或数据的地址(address)等。用来确定切片的索引信息也记作切片索引(SliceIndex)。用来确定瓦片的索引信息也记作瓦片索引(TileIndex)。此外,分割的类别例如是上述那样的基于对象形状的方法、基于地图信息或位置信息的方法、或者基于数据量或处理量的方法等。
此外,编码数据的头包含表示依赖关系的识别信息。即,该头在数据间有依赖关系的情况下包含用来从依赖源参照依赖目标的识别信息。例如,在依赖目标的数据的头中,包含用来确定该数据的识别信息。在依赖源的数据的头中,包含表示依赖目标的识别信息。另外,在能够根据其他信息识别或导出用来确定数据的识别信息、有关切片分割或瓦片分割的附加信息及表示依赖关系的识别信息的情况下,也可以将这些信息省略。
接着,对有关本实施方式的点群数据的编码处理及解码处理的流程进行说明。图56是有关本实施方式的点群数据的编码处理的流程图。
首先,三维数据编码装置决定要使用的分割方法(S5011)。该分割方法包括是否进行瓦片分割、是否进行切片分割。此外,分割方法也可以包含进行瓦片分割或切片分割的情况下的分割数量及分割的类别等。分割的类别是指上述那样的基于对象形状的方法、基于地图信息或位置信息的方法、或基于数据量或处理量的方法等。另外,分割方法也可以被预先设定。
在进行瓦片分割的情况下(S5012中“是”),三维数据编码装置通过将位置信息和属性信息一齐分割,生成多个瓦片位置信息及多个瓦片属性信息(S5013)。此外,三维数据编码装置生成有关瓦片分割的瓦片附加信息。另外,三维数据编码装置也可以将位置信息和属性信息独立地分割。
在进行切片分割的情况下(S5014中“是”),三维数据编码装置通过将多个瓦片位置信息及多个瓦片属性信息(或位置信息及属性信息)独立地分割,生成多个分割位置信息及多个分割属性信息(S5015)。此外,三维数据编码装置生成有关切片分割的位置切片附加信息及属性切片附加信息。另外,三维数据编码装置也可以将瓦片位置信息和瓦片属性信息一齐分割。
接着,三维数据编码装置通过将多个分割位置信息及多个分割属性信息的各自进行编码,生成多个编码位置信息及多个编码属性信息(S5016)。此外,三维数据编码装置生成依赖关系信息。
接着,三维数据编码装置通过将多个编码位置信息、多个编码属性信息及附加信息进行NAL单元化(复用),生成编码数据(编码流)(S5017)。此外,三维数据编码装置送出所生成的编码数据。
图57是有关本实施方式的点群数据的解码处理的流程图。首先,三维数据解码装置通过将编码数据(编码流)中包含的有关分割方法的附加信息(瓦片附加信息、位置切片附加信息及属性切片附加信息)解析,判定分割方法(S5021)。该分割方法包括是否进行瓦片分割、是否进行切片分割。此外,分割方法也可以包括进行瓦片分割或切片分割的情况下的分割数量及分割的类别等。
接着,三维数据解码装置通过将编码数据中包含的多个编码位置信息及多个编码属性信息使用编码数据中包含的依赖关系信息解码,生成分割位置信息及分割属性信息(S5022)。
在由附加信息表示进行了切片分割的情况下(S5023中“是”),三维数据解码装置通过基于位置切片附加信息及属性切片附加信息将多个分割位置信息和多个分割属性信息用各自的方法结合,生成多个瓦片位置信息及多个瓦片属性信息(S5024)。另外,三维数据解码装置也可以将多个分割位置信息和多个分割属性信息通过相同的方法结合。
在由附加信息表示进行了瓦片分割的情况下(S5025中“是”),三维数据解码装置通过基于瓦片附加信息将多个瓦片位置信息及多个瓦片属性信息(多个分割位置信息及多个分割属性信息)用相同的方法结合,生成位置信息及属性信息(S5026)。另外,三维数据解码装置也可以将多个瓦片位置信息和多个瓦片属性信息分别用不同的方法结合。
接着,对瓦片附加信息进行说明。三维数据编码装置生成作为关于瓦片的分割方法的元数据的瓦片附加信息,将所生成的瓦片附加信息向三维数据解码装置发送。
图58是表示瓦片附加信息(TileMetaData)的句法例的图。如图58所示,例如瓦片附加信息包括分割方法信息(type_of_divide)、形状信息(topview_shape)、重复标志(tile_overlap_flag)、重复信息(type_of_overlap)、高度信息(tile_height)、瓦片数(tile_number)和瓦片位置信息(global_position,relative_position)。
分割方法信息(type_of_divide)表示瓦片的分割方法。例如,分割方法信息表示瓦片的分割方法是基于地图的信息的分割、即基于俯视的分割(top_view),还是其以外(other)。
形状信息(topview_shape)例如在瓦片的分割方法是基于俯视的分割的情况下包含在瓦片附加信息中。形状信息表示将瓦片俯视的形状。例如,该形状包括正方形及圆。另外,该形状既可以包括椭圆、矩形或四边形以外的多边形,也可以包括其以外的形状。另外,形状信息并不限于将瓦片俯视的形状,也可以表示瓦片的三维形状(例如立方体及圆柱等)。
重复标志(tile_overlap_flag)表示瓦片是否重复。例如,在瓦片的分割方法是基于俯视的分割的情况下,重复标志包含在瓦片附加信息中。在此情况下,重复标志表示在俯视中瓦片是否重复。另外,重复标志也可以表示在三维空间中瓦片是否重复。
重复信息(type_of_overlap)例如在瓦片重复的情况下包含在瓦片附加信息中。重复信息表示瓦片的重复方式等。例如,重复信息表示重复的区域的大小等。
高度信息(tile_height)表示瓦片的高度。另外,高度信息也可以包含表示瓦片的形状的信息。例如,在瓦片的俯视的形状是矩形的情况下,该信息也可以表示该矩形的边的长度(纵向的长度及横向的长度)。此外,在瓦片的俯视的形状是圆的情况下,该信息也可以表示该圆的直径或半径。
此外,高度信息既可以表示各瓦片的高度,也可以表示多个瓦片共同的高度。此外,也可以预先设定道路及立体交叉部分等的多个高度类型,由高度信息表示各高度类型的高度和各瓦片的高度类型。或者,也可以将各高度类型的高度预先定义,由高度信息表示各瓦片的高度类型。即,各高度类型的高度也可以不由高度信息表示。
瓦片数(tile_number)表示瓦片的数量。另外,瓦片附加信息也可以包含表示瓦片的间隔的信息。
瓦片位置信息(global_position,relative_position)是用来确定各瓦片的位置的信息。例如,瓦片位置信息表示各瓦片的绝对坐标或相对坐标。
另外,上述的信息的一部分或全部既可以按每个瓦片设置,也可以按每多个瓦片(例如按每个帧或按每多个帧)设置。
三维数据编码装置也可以将瓦片附加信息包含在SEI(SupplementalEnhancement Information)中而送出。或者,三维数据编码装置也可以将瓦片附加信息保存到既有的参数集(PPS、GPS或APS等)中并送出。
例如,在瓦片附加信息按每个帧而变化的情况下,也可以在每个帧的参数集(GPS或APS等)中保存瓦片附加信息。在序列内瓦片附加信息不变化的情况下,也可以在每个序列的参数集(位置SPS或属性SPS)中保存瓦片附加信息。进而,在位置信息和属性信息中使用相同的瓦片分割信息的情况下,也可以在PCC流的参数集(流PS)中保存瓦片附加信息。
此外,瓦片附加信息既可以保存到上述中的任一个参数集中,也可以保存到多个参数集中。此外,瓦片附加信息也可以保存到编码数据的头中。此外,瓦片附加信息也可以保存到NAL单元的头中。
此外,瓦片附加信息的全部或一部分也可以保存到分割位置信息的头及分割属性信息的头的一方中,而不保存到另一方中。例如,在位置信息和属性信息中使用相同的瓦片附加信息的情况下,也可以在位置信息和属性信息的一方的头中包含瓦片附加信息。例如,在属性信息依赖于位置信息的情况下,位置信息先被处理。因此,也可以在位置信息的头中包含这些瓦片附加信息,在属性信息的头中不包含瓦片附加信息。在此情况下,三维数据解码装置例如判断为依赖源的属性信息属于与依赖目标的位置信息的瓦片相同的瓦片。
三维数据解码装置基于瓦片附加信息,重构被瓦片分割的点群数据。三维数据解码装置在有重复的点群数据的情况下,确定重复的多个点群数据,选择某一个或将多个点群数据合并。
此外,三维数据解码装置也可以使用瓦片附加信息进行解码。例如,三维数据解码装置也可以在多个瓦片重复的情况下按每个瓦片进行解码,进行使用被解码的多个数据的处理(例如平滑化或滤波等),生成点群数据。由此,有可能能够进行精度更高的解码。
图59是表示包括三维数据编码装置及三维数据解码装置的系统的构成例的图。瓦片分割部5051将包含位置信息及属性信息的点群数据分割为第1瓦片和第2瓦片。此外,瓦片分割部5051将有关瓦片分割的瓦片附加信息向解码部5053及瓦片结合部5054发送。
编码部5052通过将第1瓦片及第2瓦片编码,生成编码数据。
解码部5053通过将由编码部5052生成的编码数据解码,将第1瓦片及第2瓦片复原。瓦片结合部5054通过使用瓦片附加信息将第1瓦片及第2瓦片结合,将点群数据(位置信息及属性信息)复原。
接着,对切片附加信息进行说明。三维数据编码装置生成作为关于切片的分割方法的元数据的切片附加信息,将所生成的切片附加信息向三维数据解码装置发送。
图60是表示切片附加信息(SliceMetaData)的句法例的图。如图60所示,例如切片附加信息包括分割方法信息(type_of_divide)、重复标志(slice_overlap_flag)、重复信息(type_of_overlap)、切片数(slice_number)、切片位置信息(global_position,relative_position)和切片尺寸信息(slice_bounding_box_size)。
分割方法信息(type_of_divide)表示切片的分割方法。例如,分割方法信息表示切片的分割方法是否是在图50中表示那样的基于对象的信息的分割(object)。另外,切片附加信息也可以包括表示对象分割的方法的信息。例如,该信息表示是将1个对象分割为多个切片还是分配给1个切片。此外,该信息也可以表示将1个对象分割为多个切片的情况下的分割数量等。
重复标志(slice_overlap_flag)表示切片是否重复。重复信息(type_of_overlap)例如在切片重复的情况下包含在切片附加信息中。重复信息表示切片的重复方式等。例如,重复信息表示重复的区域的大小等。
切片数(slice_number)表示切片的数量。
切片位置信息(global_position,relative_position)及切片尺寸信息(slice_bounding_box_size)是关于切片的区域的信息。切片位置信息是用来确定各切片的位置的信息。例如,切片位置信息表示各切片的绝对坐标或相对坐标。切片尺寸信息(slice_bounding_box_size)表示各切片的尺寸。例如,切片尺寸信息表示各切片的包围盒的尺寸。
三维数据编码装置也可以将切片附加信息包含在SEI中而送出。或者,三维数据编码装置也可以将切片附加信息保存在既有的参数集(PPS、GPS或APS等)中而送出。
例如,在切片附加信息按每个帧变化的情况下,也可以在每个帧的参数集(GPS或APS等)中保存切片附加信息。在序列内切片附加信息不变化的情况下,也可以在每个序列的参数集(位置SPS或属性SPS)中保存切片附加信息。进而,在位置信息和属性信息中使用相同的切片分割信息的情况下,也可以在PCC流的参数集(流PS)中保存切片附加信息。
此外,切片附加信息既可以保存到上述中的任一个参数集中,也可以保存到多个参数集中。此外,切片附加信息也可以保存到编码数据的头中。此外,切片附加信息也可以保存到NAL单元的头中。
此外,切片附加信息的全部或一部分也可以保存到分割位置信息的头及分割属性信息的头的一方中,而不保存到另一方中。例如,在位置信息和属性信息中使用相同的切片附加信息的情况下,也可以在位置信息和属性信息的一方的头中包含切片附加信息。例如,在属性信息依赖于位置信息的情况下,位置信息先被处理。因此,也可以在位置信息的头中包含这些切片附加信息,在属性信息的头中不包含切片附加信息。在此情况下,三维数据解码装置例如判断为依赖源的属性信息属于与依赖目标的位置信息的切片相同的切片。
三维数据解码装置基于切片附加信息,重构被切片分割的点群数据。三维数据解码装置在有重复的点群数据的情况下,确定重复的多个点群数据,选择某一个或将多个点群数据合并。
此外,三维数据解码装置也可以使用切片附加信息进行解码。例如,三维数据解码装置也可以在多个切片重复的情况下按每个切片进行解码,进行使用被解码的多个数据的处理(例如平滑化或滤波等),生成点群数据。由此,有可能能够进行精度更高的解码。
图61是由有关本实施方式的三维数据编码装置进行的、包括瓦片附加信息的生成处理的三维数据编码处理的流程图。
首先,三维数据编码装置决定瓦片的分割方法(S5031)。具体而言,三维数据编码装置决定作为瓦片的分割方法而使用基于俯视的分割方法(top_view),还是使用其以外(other)的方法。此外,三维数据编码装置决定使用基于俯视的分割方法的情况下的瓦片的形状。此外,三维数据编码装置决定瓦片是否与其他瓦片重复。
在由步骤S5031决定的瓦片的分割方法是基于俯视的分割方法的情况下(S5032中“是”),三维数据编码装置将瓦片的分割方法是基于俯视的分割方法(top_view)的情况记载在瓦片附加信息中(S5033)。
另一方面,在由步骤S5031决定的瓦片的分割方法是基于俯视的分割方法以外的方法的情况下(S5032中“否”),三维数据编码装置将瓦片的分割方法是基于俯视的分割方法(top_view)以外的方法的情况记载在瓦片附加信息中(S5034)。
此外,在由步骤S5031决定的俯视瓦片的形状是正方形的情况下(S5035中正方形),三维数据编码装置将俯视瓦片的形状是正方形的情况记载在瓦片附加信息中(S5036)。另一方面,在由步骤S5031决定的俯视瓦片的形状是圆的情况下(S5035中圆),三维数据编码装置将俯视瓦片的形状是圆的情况记载在瓦片附加信息中(S5037)。
接着,三维数据编码装置判定瓦片是否与其他瓦片重复(S5038)。在瓦片与其他瓦片重复的情况下(S5038中“是”),三维数据编码装置将瓦片重复的情况记载在瓦片附加信息中(S5039)。另一方面,在瓦片不与其他瓦片重复的情况下(S5038中“否”),三维数据编码装置将瓦片不重复的情况记载在瓦片附加信息中(S5040)。
接着,三维数据编码装置基于在步骤S5031中决定的瓦片的分割方法将瓦片分割,将各瓦片编码,送出所生成的编码数据及瓦片附加信息(S5041)。
图62是由有关本实施方式的三维数据解码装置进行的使用瓦片附加信息的三维数据解码处理的流程图。
首先,三维数据解码装置将比特流中包含的瓦片附加信息解析(S5051)。
在由瓦片附加信息表示瓦片不与其他瓦片重复的情况下(S5052中“否”),三维数据解码装置通过将各瓦片解码而生成各瓦片的点群数据(S5053)。接着,三维数据解码装置基于由瓦片附加信息表示的瓦片的分割方法及瓦片的形状,根据各瓦片的点群数据重构点群数据(S5054)。
另一方面,在由瓦片附加信息表示瓦片与其他瓦片重复的情况下(S5052中“是”),三维数据解码装置通过将各瓦片解码,生成各瓦片的点群数据。此外,三维数据解码装置基于瓦片附加信息,确定瓦片的重复部分(S5055)。另外,三维数据解码装置也可以关于重复部分使用重复的多个信息进行解码处理。接着,三维数据解码装置基于由瓦片附加信息表示的瓦片的分割方法、瓦片的形状及重复信息,根据各瓦片的点群数据重构点群数据(S5056)。
以下,说明关于切片的变形例等。三维数据编码装置也可以将表示对象的种类(道路、建筑物、树等)或属性(动态信息、静态信息等)的信息作为附加信息而发送。或者,也可以根据对象预先规定编码的参数,三维数据编码装置通过将对象的种类或属性送出,向三维数据解码装置通知编码参数。
关于切片数据的编码顺序及送出顺序,也可以使用以下的方法。例如,三维数据编码装置也可以根据对象的识别或聚类较容易的数据起依次将切片数据编码。或者,三维数据编码装置也可以从聚类较早结束的切片数据起依次进行编码。此外,三维数据编码装置也可以从被编码的切片数据起依次送出。或者,三维数据编码装置也可以在应用中以解码的优先级从高到低的顺序将切片数据送出。例如,在动态信息的解码的优先级较高的情况下,三维数据编码装置也可以从以动态信息进行了分组的切片起依次将切片数据送出。
此外,三维数据编码装置在编码数据的顺序与解码的优先级的顺序不同的情况下,也可以将编码数据在重新排列后送出。此外,三维数据编码装置在将编码数据蓄积时,也可以将编码数据在重新排列后蓄积。
应用(三维数据解码装置)向服务器(三维数据编码装置)请求包含希望的数据的切片的送出。服务器也可以送出应用需要的切片数据,而不送出不需要的切片数据。
应用向服务器请求包含希望的数据的瓦片的送出。服务器也可以送出应用需要的瓦片数据,而不送出不需要的瓦片数据。
如以上这样,有关本实施方式的三维数据编码装置进行图63所示的处理。首先,三维数据编码装置通过对将包含多个三维点的对象空间分割而成的多个子空间(例如瓦片)进行编码,生成多个编码数据(S5061)。三维数据编码装置生成包含上述多个编码数据和表示上述多个子空间的形状的第1信息(例如topview_shape)的比特流(S5062)。
由此,三维数据编码装置能够从多个种类的子空间的形状中选择任意的形状,所以能够提高编码效率。
例如,上述形状是上述多个子空间的二维的形状或三维的形状。例如,上述形状是将上述多个子空间俯视的形状。即,第1信息表示将子空间从特定的方向(例如上方)观察的形状。换言之,第1信息表示将子空间俯瞰的形状。例如,上述形状是矩形或圆。
例如,上述比特流包含表示上述多个子区间是否重复的第2信息(例如tile_overlap_flag)。
由此,三维数据编码装置能够使子空间重复,所以能够不使子空间的形状变得复杂而生成子空间。
例如,上述比特流包含表示上述多个子区间的分割方法是否是使用俯视的分割方法的第3信息(例如type_of_divide)。
例如,上述比特流包含表示上述多个子区间的高度、宽度、进深及半径中的至少1个的第4信息(例如tile_height)。
例如,上述比特流包含表示上述多个子区间各自的位置的第5信息(例如global_position或relative_position)。
例如,上述比特流包含表示上述多个子区间的数量的第6信息(例如tile_number)。
例如,上述比特流包含表示上述多个子区间的间隔的第7信息。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,有关本实施方式的三维数据解码装置进行图64所示的处理。首先,三维数据解码装置通过对比特流中包含的、通过对将包含多个三维点的对象空间分割而成的多个子空间(例如瓦片)进行编码而生成的多个编码数据进行解码,将上述多个子空间复原(S5071)。三维数据解码装置通过使用上述比特流中包含的、表示上述多个子空间的形状的第1信息(例如topview_shape)将上述多个子空间结合,将上述对象空间复原(S5072)。例如,三维数据解码装置通过使用第1信息识别多个子空间的形状,能够掌握各子空间在对象空间内的位置及范围。三维数据解码装置能够基于所掌握的多个子空间的位置及范围,将多个子空间结合。由此,三维数据解码装置能够将多个子空间正确地结合。
例如,上述形状是上述多个子空间的二维的形状或三维的形状。例如,上述形状是矩形或圆。
例如,上述比特流包含表示上述多个子区间是否重复的第2信息(例如tile_overlap_flag)。三维数据解码装置在上述对象空间的复原中,还使用上述第2信息将上述多个子空间结合。例如,三维数据解码装置使用第2信息判断子空间是否重复。三维数据解码装置在子空间重复的情况下,确定重复区域,对所确定的重复区域进行规定的对应。
例如,上述比特流包含表示上述多个子区间的分割方法是否是使用俯视的分割方法的第3信息(例如type_of_divide)。三维数据解码装置在由上述第3信息表示上述多个子区间的分割方法是使用俯视的分割方法的情况下,使用上述第1信息将上述多个子空间结合。
例如,上述比特流包含表示上述多个子区间的高度、宽度、进深及半径中的至少1个的第4信息(例如tile_height)。三维数据解码装置在上述对象空间的复原中,还使用上述第4信息将上述多个子空间结合。例如,三维数据解码装置通过使用第4信息识别多个子空间的高度,能够掌握各子空间在对象空间内的位置及范围。三维数据解码装置能够基于所掌握的多个子空间的位置及范围将多个子空间结合。
例如,上述比特流包含表示上述多个子区间各自的位置的第5信息(例如global_position或relative_position)。三维数据解码装置在上述对象空间的复原中,还使用上述第5信息将上述多个子空间结合。例如,三维数据解码装置通过使用第5信息识别多个子空间的位置,能够掌握各子空间在对象空间内的位置。三维数据解码装置能够基于所掌握的多个子空间的位置,将多个子空间结合。
例如,上述比特流包含表示上述多个子区间的数量的第6信息(例如tile_number)。三维数据解码装置在上述对象空间的复原中,还使用上述第6信息将上述多个子空间结合。
例如,上述比特流包含表示上述多个子区间的间隔的第7信息。三维数据解码装置在上述对象空间的复原中,还使用上述第7信息将上述多个子空间结合。例如,三维数据解码装置通过使用第7信息识别多个子空间的间隔,能够掌握各子空间在对象空间内的位置及范围。三维数据解码装置能够基于所掌握的多个子空间的位置及范围,将多个子空间结合。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式7)
在本实施方式中,对不包含点的分割单位(例如瓦片或切片)的处理进行说明。首先,对点群数据的分割方法进行说明。
在HEVC等的运动图像像编码标准中,对于二维图像的全部的像素存在数据,所以即使是将二维空间分割为多个数据区域的情况,也在全部的数据区域中存在数据。另一方面,在三维点群数据的编码中,作为点群数据的要素的点自身是数据,有可能在一部分的区域中不存在数据。
将点群数据在空间上分割的方法有各种各样,根据作为分割的数据单位的分割单位(例如瓦片或切片)是否总是包含1个以上的点数据,能够将分割方法进行分类。
将在多个分割单位的全部中包含1个以上的点数据的分割方法称作第1分割方法。作为第1分割方法,例如有考虑编码的处理时间或编码数据的尺寸来将点群数据分割的方法。在此情况下,在各分割单位中,点的数量大约均等。
图65是表示分割方法的例子的图。例如,作为第1分割方法,也可以使用如图65的(a)所示将属于相同空间的点分割为两个相同的空间的方法。此外,也可以如图65的(b)所示,以各分割单位包含点的方式将空间分割为多个子空间(分割单位)。
这些方法由于是考虑到点的分割,所以总是在全部的分割单位中包含1个以上的点。
将在多个分割单位中有可能包括1个以上不包含点数据的分割单位的分割方法称作第2分割方法。例如,作为第2分割方法,可以使用如图65的(c)所示将空间均等地分割的方法。在此情况下,在分割单位中并不一定存在点。即,有在分割单位中不存在点的情况。
三维数据编码装置在将点群数据分割的情况下,也可以在作为有关分割的附加信息(元数据)的分割附加信息(例如瓦片附加信息或切片附加信息)中表示是(1)使用了在多个分割单位的全部中包含1个以上的点数据的分割方法、还是(2)使用了在多个分割单位中有1个以上不包含点数据的分割单位的分割方法、还是(3)使用了在多个分割单位中有可能有1个以上不包含点数据的分割单位的分割方法,并送出该分割附加信息。
另外,三维数据编码装置也可以将上述的信息表示为分割方法的类型。此外,三维数据编码装置也可以用预先设定的分割方法进行分割,不送出分割附加信息。在此情况下,三维数据编码装置预先明示分割方法是第1分割方法还是第2分割方法。
以下,说明第2分割方法、以及编码数据的生成及送出的例子。另外,以下作为三维空间的分割方法而以瓦片分割为例进行说明,但也可以不是瓦片分割,对于与瓦片不同的分割单位的分割方法也能够应用以下的方法。例如,也可以将瓦片分割替换为切片分割。
图66是表示将点群数据分割为6个瓦片的例子的图。图66表示最小单位是点的例子,表示将位置信息(Geometry)和属性信息(Attribute)一起分割的例子。另外,在将位置信息和属性信息用单独的分割方法或分割数量分割的情况下、没有属性信息的情况下及属性信息有多个的情况下也是同样的。
在图66所示的例子中,在瓦片分割后,存在在瓦片内包含点的瓦片(#1、#2、#4、#6)和在瓦片内不包含点的瓦片(#3、#5)。将在瓦片内不包含点的瓦片称作空瓦片。
另外,并不限于分割为6个瓦片的情况,使用任何的分割的方法都可以。例如,分割单位也可以是立方体,也可以是长方体或圆柱等不为立方体的形状。多个分割单位既可以是相同的形状,也可以包括不同的形状。此外,作为分割方法,既可以使用预先设定的方法,也可以按每个规定的单位(例如PCC帧)而使用不同的方法。
在本分割方法中,在将点群数据分割为瓦片的情况下,在瓦片内没有数据的情况下生成包含表示该瓦片是空瓦片的信息的比特流。
以下,对空瓦片的送出方法及空瓦片的信号传递(Signaling)方法进行说明。三维数据编码装置,作为关于数据分割的附加信息(元数据),例如也可以生成以下的信息,送出所生成的信息。图67是表示瓦片附加信息(TileMetaData)的句法例的图。瓦片附加信息包括分割方法信息(type_of_divide)、分割方法空信息(type_of_divide_null)、瓦片分割数(number_of_tiles)和瓦片空标志(tile_null_flag)。
分割方法信息(type_of_divide)是关于分割方法或分割类别的信息。例如,分割方法信息表示1个或多个分割方法或分割类别。例如,作为分割方法,有俯视(top_view)分割及均等分割等。另外,在分割方法的定义为1个的情况下,也可以在瓦片附加信息中不包含分割方法信息。
分割方法空信息(type_of_divide_null)是表示所使用的分割方法是下述第1分割方法还是第2分割方法的信息。这里,第1分割方法是指在多个分割单位的全部中总是分别包含1个以上的点数据的分割方法。第2分割方法是指在多个分割单位中存在1个以上不包含点数据的分割单位的分割方法、或在多个分割单位中有可能有1个以上不包含点数据的分割单位的分割方法。
此外,瓦片附加信息中,作为瓦片整体的分割信息也可以包含(1)表示瓦片的分割数量的信息(瓦片分割数(number_of_tiles))或用来确定瓦片的分割数量的信息、(2)表示空瓦片的数量的信息或用来确定空瓦片的数量的信息及(3)表示空瓦片以外的瓦片的数量的信息或用来确定空瓦片以外的瓦片的数量的信息中的至少一个。此外,瓦片附加信息中,作为瓦片整体的分割信息也可以包含表示瓦片的形状或表示瓦片是否重复的信息。
此外,瓦片附加信息将每个瓦片的分割信息按顺序表示。例如,瓦片的顺序按每个分割方法而被预先设定,在三维数据编码装置及三维数据解码装置中是已知的。另外,在没有预先设定瓦片的顺序的情况下,三维数据编码装置也可以将表示顺序的信息向三维数据解码装置送出。
每个瓦片的分割信息包含表示在瓦片内是否存在数据(点)的标志即瓦片空标志(tile_null_flag)。另外,在瓦片内没有数据的情况下,作为瓦片分割信息也可以不包含瓦片空标志。
此外,在瓦片不是空瓦片的情况下,瓦片附加信息包含每个瓦片的分割信息(位置信息(例如原点的坐标(origin_x,origin_y,origin_z))及瓦片的高度信息等)。此外,在瓦片是空瓦片的情况下,瓦片附加信息不包含每个瓦片的分割信息。
例如,在每个瓦片的分割信息中保存每个瓦片的切片分割的信息的情况下,三维数据编码装置也可以在附加信息中不保存空瓦片的切片分割的信息。
另外,在该例中,瓦片分割数(number_of_tiles)表示包括空瓦片的瓦片的数量。图68是表示瓦片的索引信息(idx)的例子的图。在图68所示的例子中,索引信息也被分配给空瓦片。
接着,对包括空瓦片的编码数据的数据结构及送出方法进行说明。图69~图71是表示在将位置信息及属性信息分割为6个瓦片的情况下、在第3个及第5个瓦片中不存在数据的情况下的数据结构的图。
图69是表示各数据的依赖关系的一例的图。图中的箭头的尖端表示依赖目标,箭头的根部表示依赖源。此外,在该图中,Gtn(n是1~6)表示瓦片号码n的位置信息,Atn表示瓦片号码n的属性信息。Mtile表示瓦片附加信息。
图70是表示作为从三维数据编码装置送出的编码数据的送出数据的结构例的图。此外,图71是表示编码数据的构成及编码数据向NAL单元的保存方法的图。
如图71所示,在位置信息(分割位置信息)及属性信息(分割属性信息)的数据的头中分别包含瓦片的索引信息(tile_idx)。
此外,也可以如图70的结构1所示,三维数据编码装置不送出构成空瓦片的位置信息或属性信息。或者,也可以如图70的结构2所示,三维数据编码装置作为空瓦片的数据而送出表示该瓦片是空瓦片的信息。例如,三维数据编码装置也可以在保存在NAL单元的头或NAL单元的有效载荷(nal_unit_payload)内的头中的tile_type中记载该数据的类型是空瓦片,将该头送出。另外,以下以结构1为前提进行说明。
在结构1中,在存在空瓦片的情况下,在送出数据中,在位置信息数据或属性信息数据的头中包含的瓦片的索引信息(tile_idx)的值因有些值缺失而不连续。
此外,三维数据编码装置在数据间有依赖关系的情况下,以使参照目标的数据能够比参照源的数据先被解码的方式送出。另外,属性信息的瓦片对于位置信息的瓦片有依赖关系。对于有依赖关系的属性信息和位置信息附加相同的瓦片的索引号。
另外,有关瓦片分割的瓦片附加信息既可以保存到位置信息的参数集(GPS)及属性信息的参数集(APS)双方中,也可以保存到某一方中。在瓦片附加信息被保存到GPS及APS的一方中的情况下,也可以在GPS及APS的另一方中保存表示参照目标的GPS或APS的参照信息。此外,在位置信息和属性信息间瓦片分割方法不同的情况下,在GPS和APS各自中保存不同的瓦片附加信息。此外,在瓦片分割的方法在序列(多个PCC帧)中相同的情况下,也可以在GPS、APS或SPS(序列参数集)中保存瓦片附加信息。
例如,在瓦片附加信息被保存到GPS和APS双方中的情况下,在GPS内保存位置信息的瓦片附加信息,在APS内保存属性信息的瓦片附加信息。此外,在瓦片附加信息被保存到SPS等的共用的信息中的情况下,既可以保存在位置信息和属性信息中共同使用的瓦片附加信息,也可以分别保存位置信息的瓦片附加信息和属性信息的瓦片附加信息。
以下,对瓦片分割和切片分割的组合进行说明。首先,对在切片分割后进行瓦片分割的情况下的数据构成及数据送出进行说明。
图72是表示在切片分割后进行瓦片分割的情况下的各数据的依赖关系的一例的图。图中的箭头的尖端表示依赖目标,箭头的根部表示依赖源。此外,在图中用实线表示的数据是实际被送出的数据,用虚线表示的数据是不被送出的数据。
此外,在该图中,G表示位置信息,A表示属性信息。Gs1表示切片号码1的位置信息,Gs2表示切片号码2的位置信息。Gs1t1表示切片号码1且瓦片号码1的位置信息,Gs2t2表示切片号码2且瓦片号码2的位置信息。同样,As1表示切片号码1的属性信息,As2表示切片号码2的属性信息。As1t1表示切片号码1且瓦片号码1的属性信息,As2t1表示切片号码2且瓦片号码1的属性信息。
Mslice表示切片附加信息,MGtile表示位置瓦片附加信息,MAtile表示属性瓦片附加信息。Ds1t1表示属性信息As1t1的依赖关系信息,Ds2t1表示属性信息As2t1的依赖关系信息。
三维数据编码装置也可以不进行有关空瓦片的位置信息及属性信息的生成及送出。
此外,在全部的切片中瓦片分割数相同的情况下,在切片间生成及送出的瓦片的数量也有可能不同。例如,在位置信息和属性信息的瓦片分割数不同的情况下,有在位置信息和属性信息的某一方中存在空瓦片、在另一方中不存在的情况。在图72所示的例子中,切片1的位置信息(Gs1)被分割为Gs1t1和Gs1t2的2个瓦片,其中Gs1t2是空瓦片。另一方面,切片1的属性信息(As1)没有被分割而存在一个As1t1,不存在空瓦片。
此外,三维数据编码装置不论在位置信息的切片中是否包含空瓦片,在至少在属性信息的瓦片中存在数据的情况下,就生成及送出属性信息的依赖关系信息。例如,三维数据编码装置在有关切片分割的切片附加信息中包含的每个切片的分割信息中保存每个瓦片的切片分割的信息的情况下,在该信息中保存该瓦片是否是空瓦片的信息。
图73是表示数据的解码顺序的例子的图。在图73的例子中,从左方的数据起依次进行解码。三维数据解码装置在处于依赖关系的数据间,从依赖目标的数据起先解码。例如,三维数据编码装置将数据预先重新排列为该顺序而送出。另外,只要是依赖目标的数据为先的顺序,是怎样的顺序都可以。此外,三维数据编码装置也可以将附加信息及依赖关系信息比数据先送出。
接着,对在瓦片分割后进行切片分割的情况下的数据构成及数据送出进行说明。
图74是表示在瓦片分割后进行切片分割的情况下的各数据的依赖关系的一例的图。图中的箭头的尖端表示依赖目标,箭头的根部表示依赖源。此外,在图中用实线表示的数据是实际被送出的数据,用虚线表示的数据是不被送出的数据。
此外,在该图中,G表示位置信息,A表示属性信息。Gt1表示瓦片号码1的位置信息。Gt1s1表示瓦片号码1且切片号码1的位置信息,Gt1s2表示瓦片号码1且切片号码2的位置信息。同样,At1表示瓦片号码1的属性信息,At1s1表示瓦片号码1且切片号码1的属性信息。
Mtile表示瓦片附加信息,MGslice表示位置切片附加信息,MAslice表示属性切片附加信息。Dt1s1表示属性信息At1s1的依赖关系信息,Dt2s1表示属性信息At2s1的依赖关系信息。
三维数据编码装置不将空瓦片进行切片分割。此外,也可以不进行有关空瓦片的位置信息、属性信息及属性信息的依赖关系信息的生成及送出。
图75是表示数据的解码顺序的例子的图。在图75的例子中,从左方的数据起依次进行解码。三维数据解码装置在处于依赖关系的数据间,从依赖目标的数据起先进行解码。例如,三维数据编码装置将数据预先重新排列为该顺序并送出。另外,只要是依赖目标的数据为先的顺序,是怎样的顺序都可以。此外,三维数据编码装置也可以将附加信息及依赖关系信息比数据先送出。
接着,对点群数据的分割处理及结合处理的流程进行说明。另外,这里说明瓦片分割及切片分割的例子,但关于其他的空间的分割也能够应用同样的方法。
图76是包括由三维数据编码装置进行的数据分割处理的三维数据编码处理的流程图。首先,三维数据编码装置决定所使用的分割方法(S5101)。具体而言,三维数据编码装置决定使用第1分割方法和第2分割方法中的哪一个。例如,三维数据编码装置既可以基于来自用户或外部装置(例如三维数据解码装置)的指定来决定分割方法,也可以根据被输入的点群数据来决定分割方法。此外,所使用的分割方法也可以被预先设定。
这里,第1分割方法是指在多个分割单位(瓦片或切片)的全部中总是分别包含1个以上的点数据的分割方法。第2分割方法是指在多个分割单位中存在1个以上不包含点数据的分割单位的分割方法、或在多个分割单位中有可能有1个以上不包含点数据的分割单位的分割方法。
在所决定的分割方法是第1分割方法的情况下(在S5102中为第1分割方法),三维数据编码装置在作为有关数据分割的元数据的分割附加信息(例如瓦片附加信息或切片附加信息)中记载所使用的分割方法是第1分割方法(S5103)。并且,三维数据编码装置将全部的分割单位编码(S5104)。
另一方面,在所决定的分割方法是第2分割方法的情况下(在S5102中为第2分割方法),三维数据编码装置在分割附加信息中记载所使用的分割方法是第2分割方法(S5105)。并且,三维数据编码装置将多个分割单位中的、除了不包含点数据的分割单位(例如空瓦片)以外的分割单位编码(S5106)。
图77是由三维数据解码装置进行的包括数据结合处理的三维数据解码处理的流程图。首先,三维数据解码装置参照比特流中包含的分割附加信息,判定所使用的分割方法是第1分割方法还是第2分割方法(S5111)。
在所使用的分割方法是第1分割方法的情况下(在S5112中为第1分割方法),三维数据解码装置接收全部的分割单位的编码数据,通过将接收到的编码数据解码,生成全部的分割单位的解码数据(S5113)。接着,三维数据解码装置使用全部的分割单位的解码数据来重构三维点群(S5114)。例如,三维数据解码装置通过将多个分割单位结合而重构三维点群。
另一方面,在所使用的分割方法是第2分割方法的情况下(在S5112中为第2分割方法),三维数据解码装置接收包含点数据的分割单位的编码数据及不包含点数据的分割单位的编码数据,通过将接收到的分割单位的编码数据解码,生成解码数据(S5115)。另外,三维数据解码装置在不包含点数据的分割单位没有被送出的情况下,也可以不将不包含点群数据的分割单位接收及解码。接着,三维数据解码装置使用包含点数据的分割单位的解码数据来重构三维点群(S5116)。例如,三维数据解码装置通过将多个分割单位结合,重构三维点群。
以下,对其他的点群数据的分割方法进行说明。在如图65的(c)所示将空间均等地分割的情况下,有在分割后的空间中不存在点的情况。在此情况下,三维数据编码装置将不存在点的空间与存在点的其他空间结合。由此,三维数据编码装置能够以全部的分割单位包含1个以上的点的方式形成多个分割单位。
图78是该情况下的数据分割的流程图。首先,三维数据编码装置将数据用特定的方法分割(S5121)。例如,特定的方法是上述的第2分割方法。
接着,三维数据编码装置判定在作为处理对象的分割单位的对象分割单位中是否包含点(S5122)。在对象分割单位中包含点的情况下(S5122中是),三维数据编码装置将对象分割单位编码(S5123)。另一方面,在对象分割单位中不包含点的情况下(S5122中否),三维数据编码装置将对象分割单位与包含点的其他的分割单位结合,将结合后的分割单位编码(S5124)。即,三维数据编码装置将对象分割单位与包含点的其他的分割单位一起编码。
另外,这里叙述了按每个分割单位进行判定及结合的例子,但处理方法并不限于此。例如,三维数据编码装置也可以判定在多个分割单位各自中是否包含点,进行结合以使得不再有不包含点的分割单位,将结合后的多个分割单位分别编码。
接着,对包含空瓦片的数据的送出方法进行说明。三维数据编码装置在作为处理对象瓦片的对象瓦片是空瓦片的情况下,不送出对象瓦片的数据。图79是数据送出处理的流程图。
首先,三维数据编码装置决定瓦片的分割方法,使用所决定的分割方法将点群数据分割为瓦片(S5131)。
接着,三维数据编码装置判定对象瓦片是否是空瓦片(S5132)。即,三维数据编码装置判定在对象瓦片内是否没有数据。
在对象瓦片是空瓦片的情况下(S5132中是),三维数据编码装置在瓦片附加信息中表示对象瓦片是空瓦片,而不表示对象瓦片的信息(瓦片的位置及尺寸等)(S5133)。此外,三维数据编码装置不送出对象瓦片(S5134)。
另一方面,在对象瓦片不是空瓦片的情况下(S5132中否),三维数据编码装置在瓦片附加信息中表示对象瓦片不是空瓦片,表示每个瓦片的信息(S5135)。此外,三维数据编码装置送出对象瓦片(S5136)。
这样,通过不将空瓦片的信息包含在瓦片附加信息中,能够削减瓦片附加信息的信息量。
以下,对包含空瓦片的编码数据的解码方法进行说明。首先,对没有包丢失的情况下的处理进行说明。
图80是表示作为从三维数据编码装置送出的编码数据的送出数据和向三维数据解码装置输入的接收数据的例子的图。另外,这里设想了没有包丢失的系统环境的情况,接收数据与送出数据相同。
三维数据解码装置在没有包丢失的系统环境的情况下,将送出数据的全部接收。图81是由三维数据解码装置进行的处理的流程图。
首先,三维数据解码装置参照瓦片附加信息(S5141),判定各个瓦片是否是空瓦片(S5142)。
在瓦片附加信息中表示对象瓦片不是空瓦片的情况下(S5142中否),三维数据解码装置判断为对象瓦片不是空瓦片,将对象瓦片解码(S5143)。接着,三维数据解码装置从瓦片附加信息取得瓦片的信息(瓦片的位置信息(原点坐标等)及尺寸等),通过使用所取得的信息将多个瓦片结合,重构三维数据(S5144)。
另一方面,在瓦片附加信息中表示对象瓦片不是空瓦片的情况下(S5142中是),三维数据解码装置判断为对象瓦片是空瓦片,不将对象瓦片解码(S5145)。
另外,三维数据解码装置也可以通过将在编码数据的头中表示的索引信息依次解析,判定为所缺失的数据是空瓦片。此外,三维数据解码装置也可以将使用瓦片附加信息的判定方法与使用索引信息的判定方法组合。
接着,对有包丢失的情况下的处理进行说明。图82是表示从三维数据编码装置送出的送出数据及向三维数据解码装置输入的接收数据的例子的图。这里,设想有包丢失的系统环境的情况。
在有包丢失的系统环境的情况下,三维数据解码装置有可能不能接收到送出数据的全部。在该例中,Gt2和At2的包损失了。
图83是该情况下的三维数据解码装置的处理的流程图。首先,三维数据解码装置对在编码数据的头中表示的索引信息的连续性进行解析(S5151),判定是否存在对象瓦片的索引号(S5152)。
在存在对象瓦片的索引号的情况下(S5152中是),三维数据解码装置判断为对象瓦片不是空瓦片,实施对象瓦片的解码处理(S5153)。接着,三维数据解码装置从瓦片附加信息中取得瓦片的信息(瓦片的位置信息(原点坐标等)及尺寸等),通过使用所取得的信息将多个瓦片结合,重构三维数据(S5154)。
另一方面,在不存在对象瓦片的索引信息的情况下(S5152中否),三维数据解码装置通过参照瓦片附加信息,判定对象瓦片是否是空瓦片(S5155)。
在对象瓦片不是空瓦片的情况下(S5156中否),三维数据解码装置判断为对象瓦片损失了(包丢失),实施错误解码处理(S5157)。错误解码处理例如是设为有数据而尝试元数据的解码的处理。在此情况下,三维数据解码装置也可以将三维数据再现,实施三维数据的重构(S5154)。
另一方面,在对象瓦片是空瓦片的情况下(S5156中是),三维数据解码装置设为对象瓦片是空瓦片,不实施解码处理及三维数据的重构(S5158)。
接着,对不明示空瓦片的情况下的编码方法进行说明。三维数据编码装置也可以通过以下的方法生成编码数据及附加信息。
三维数据编码装置在瓦片附加信息中不表示空瓦片的信息。三维数据编码装置对数据头赋予除了空瓦片以外的瓦片的索引号。三维数据编码装置不送出空瓦片。
在此情况下,瓦片分割数(number_of_tiles)表示不包含空瓦片的分割数量。另外,三维数据编码装置也可以另外将表示空瓦片的数量的信息保存到比特流中。此外,三维数据编码装置既可以在附加信息中表示关于空瓦片的信息,也可以表示关于空瓦片的一部分的信息。
图84是该情况下的由三维数据编码装置进行的三维数据编码处理的流程图。首先,三维数据编码装置决定瓦片的分割方法,使用所决定的分割方法将点群数据分割为瓦片(S5161)。
接着,三维数据编码装置判定对象瓦片是否是空瓦片(S5162)。即,三维数据编码装置判定在对象瓦片内是否没有数据。
在对象瓦片不是空瓦片的情况下(S5162中否),三维数据编码装置对于数据头赋予除了空瓦片以外的瓦片的索引信息(S5163)。并且,三维数据编码装置送出对象瓦片(S5164)。
另一方面,在对象瓦片是空瓦片的情况下(S5162中是),三维数据编码装置不进行对象瓦片的索引信息向数据头的赋予及对象瓦片的送出。
图85是表示向数据头附加的索引信息(idx)的例子的图。如图85所示,不附加空瓦片的索引信息,对空瓦片以外的瓦片附加连续号码。
图86是表示各数据的依赖关系的一例的图。图中的箭头的尖端表示依赖目标,箭头的根部表示依赖源。此外,在该图中,Gtn(n是1~4)表示瓦片号码n的位置信息,Atn表示瓦片号码n的属性信息。Mtile表示瓦片附加信息。
图87是表示作为从三维数据编码装置送出的编码数据的送出数据的构成例的图。
以下,对不明示空瓦片的情况下的解码方法进行说明。图88是表示从三维数据编码装置送出的送出数据及向三维数据解码装置输入的接收数据的例子的图。这里,设想有包丢失的系统环境的情况。
图89是该情况下的三维数据解码装置的处理的流程图。首先,三维数据解码装置将在编码数据的头中表示的瓦片的索引信息解析,判定是否存在对象瓦片的索引号。此外,三维数据解码装置从瓦片附加信息取得瓦片的分割数量(S5171)。
在存在对象瓦片的索引号的情况下(S5172中是),三维数据解码装置实施对象瓦片的解码处理(S5173)。接着,三维数据解码装置从瓦片附加信息取得瓦片的信息(瓦片的位置信息(原点坐标等)及尺寸等),通过使用所取得的信息将多个瓦片结合,重构三维数据(S5175)。
另一方面,在不存在对象瓦片的索引号的情况下(S5172中否),三维数据解码装置判断为对象瓦片有包丢失,实施错误解码处理(S5174)。此外,三维数据解码装置判断为不存在数据的空间是空瓦片,重构三维数据。
此外,三维数据编码装置通过将空瓦片明示地表示,能够适当地判断出不是因测量失误或数据处理等造成的数据缺失或包丢失,而是在瓦片内不存在点。
另外,三维数据编码装置也可以并用将空包明示地表示的方法和不将空包明示地表示的方法。在此情况下,三维数据编码装置也可以在瓦片附加信息中示出表示是否将空包明示地表示的信息。此外,也可以根据分割方法的类型而预先决定是否将空包明示地表示,三维数据编码装置也可以通过表示分割方法的类型来表示是否将空包明示地表示。
此外,在图67等中示出了在瓦片附加信息中表示有关全部的瓦片的信息的例子,但在瓦片附加信息中,也可以表示多个瓦片中的一部分瓦片的信息,也可以表示多个瓦片中的一部分瓦片的空瓦片的信息。
此外,说明了是否有分割数据(瓦片)的信息等的关于分割数据的信息保存在瓦片附加信息中的例子,但这些信息的一部分或全部也可以保存在参数集中,也可以作为数据被保存。在这些信息作为数据被保存的情况下,例如也可以定义意味着表示是否有分割数据的信息的nal_unit_type,将这些信息保存到NAL单元中。此外,也可以将这些信息保存到附加信息和数据双方中。
如以上这样,有关本实施方式的三维数据编码装置进行图90所示的处理。首先,三维数据编码装置通过对将包含多个三维点的对象空间分割而成的多个子空间(例如瓦片或切片)进行编码,生成多个编码数据(S5181)。三维数据编码装置生成包含多个编码数据和与多个子空间各自对应的第1信息(例如tile_null_flag)的比特流(S5182)。多个第1信息分别表示在比特流中是否包含表示对应的子空间的结构的第2信息。
由此,例如对于不包含点的子空间能够省略第2信息,所以能够减少比特流的数据量。
例如,第2信息包含表示对应的子空间的原点的坐标的信息。例如,第2信息包含表示对应的子空间的高度、宽度及进深中的至少1个的信息。
由此,该三维数据编码装置能够削减比特流的数据量。
此外,如图78所示,三维数据编码装置也可以将包含多个三维点的对象空间分割为多个子空间(例如瓦片或切片),将多个子空间根据各子空间中包含的三维点的数量结合,将结合后的子空间编码。例如,三维数据编码装置也可以将多个子空间结合,以使结合后的多个子空间各自中包含的三维点的数量成为预先设定的数量以上。例如,三维数据编码装置也可以将不包含三维点的子空间与包含三维点的子空间结合。
由此,该三维数据编码装置能够抑制生成点的数量较少或不包含点的子空间,所以能够提高编码效率。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,有关本实施方式的三维数据解码装置进行图91所示的处理。首先,三维数据解码装置从比特流取得多个第1信息(例如tile_null_flag),该多个第1信息与将包含多个三维点的对象空间分割而成的多个子空间(例如瓦片或切片)各自对应,分别表示在比特流中是否包含表示对应的子空间的结构的第2信息(S5191)。三维数据解码装置使用多个第1信息,(i)通过对比特流中包含的多个子空间被编码而生成的多个编码数据进行解码,将多个子空间复原,(ii)通过将多个子空间结合,将对象空间复原(S5192)。例如,三维数据解码装置使用第1信息,判定在比特流中是否包含第2信息,在比特流中包含第2信息的情况下,使用第2信息将解码后的多个子空间结合。
由此,例如对不包含点的子空间能够省略第2信息,所以能够减少比特流的数据量。
例如,第2信息包含表示对应的子空间的原点的坐标的信息。例如,第2信息包含表示对应的子空间的高度、宽度及进深中的至少1个的信息。
由此,三维数据解码装置能够削减比特流的数据量。
此外,三维数据解码装置也可以接收通过将包含多个三维点的对象空间分割为多个子空间(例如瓦片或切片)、将多个子空间根据各子空间中包含的三维点的数量结合并将结合后的子空间编码而生成的编码数据,将接收到的编码数据解码。例如,编码数据也可以通过将多个子空间结合以使结合后的多个子空间各自中包含的三维点的数量成为预先设定的数量以上来生成。例如,三维数据也可以通过将不包含三维点的子空间与包含三维点的子空间结合而生成。
由此,该三维数据解码装置能够对通过抑制生成点的数量少或不包含点的子空间而提高了编码效率的编码数据进行解码。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式8)
图92是表示本实施方式的三维数据编码装置的结构的一例的框图。图93是用于说明本实施方式的三维数据编码装置的编码方法的概略的图。
三维数据编码装置6800生成将点群数据分割成多个的分割数据,如瓦片或切片等,并且对多个分割数据中的每一个进行编码。分割数据也称为子点群数据。点群数据是表示三维空间中的多个三维位置的数据。另外,多个分割数据是通过将配置点群数据的三维空间分割为多个子空间而将点群数据分割为多个的多个子点群数据。另外,分割数、即分割数据的数量可以是表示不分割的1,也可以是2以上。
另外,在图92中,以进行2分割的三维数据编码装置6800的结构为例进行说明。在图93中,示出了将点群数据4分割的例子。在图93中,以二维空间为例对分割的空间进行说明,但也可以是一维空间或三维空间。
三维数据编码装置6800具备分割方法决定部6801、分割部6802、量化部6803a、6803b、移位量计算部6804a、6804b、共同位置移位部6805a、6805b、个别位置移位部6806a、6806b、以及编码部6807a、6807b。
分割方法决定部6801决定点群数据的分割方法。分割方法决定部6801将表示分割方法的分割方法信息输出到分割部6802以及移位量计算部6804a、6804b。分割方法的具体例将后述。三维数据编码装置6800也可以不具有分割方法决定部6801。在该情况下,三维数据编码装置6800也可以通过预先确定的分割方法将点群数据分割为多个分割数据。
分割部6802按照由分割方法决定部6801决定的分割方法,将点群数据分割为多个分割数据。由分割部6802分割后的多个分割数据被个别地处理。因此,三维数据编码装置6800具备对每个分割数据执行之后的处理的处理部。具体而言,三维数据编码装置6800具备用于处理第1分割数据的量化部6803a、移位量计算部6804a、共同位置移位部6805a、个别位置移位部6806a以及编码部6807a。另外,三维数据编码装置6800具备用于处理第2分割数据的量化部6803b、移位量计算部6804b、共同位置移位部6805b、个别位置移位部6806b以及编码部6807b。由此,三维数据编码装置6800能够并行地执行多个分割数据的每一个的处理。另外,在图92中,三维数据编码装置6800示出了对2个分割数据进行并行处理的处理部的例子,但也可以具有对3个以上的分割数据进行并行处理的处理部。另外,三维数据编码装置也可以构成为分别通过单体的处理部对多个分割数据进行处理。
量化部6803a、6803b分别对对应的分割数据进行缩放(将位置信息除以任意的值)以及量化。量化部6803a、6803b分别在多个点重复的情况下,可以删除重复的多个点中的至少1个,也可以不对该至少1个点进行处理。
移位量计算部6804a、6804b分别按照由分割方法决定部6801决定的分割方法,对对应的分割数据的位置进行移位,即,计算用于移动的共同位置移位量以及个别位置移位量中的至少一方。移位量计算部6804a、6804b根据分割方法,仅计算共同位置移位量和个别位置移位量中的共同位置移位量,或者仅计算个别位置移位量,或者计算共同位置移位量和个别位置移位量双方。
共同位置移位量是使多个分割数据的位置共同移动的移位量(移动量)。即,共同位置移位量在多个分割数据之间相同。共同位置移位量包含使多个分割数据的位置移动的方向以及使多个分割数据的位置移动的距离。共同位置移位量是第1移动量的一例。
个别位置移位量是使多个分割数据各自的位置个别地移动的移位量(移动量)。个别位置移位量是与多个分割数据分别1对1对应地确定的移位量,在多数情况下,在多个分割数据之间相互不同。个别位置移位量包含使对应的分割数据的位置移动的方向以及使对应的分割数据的位置移动的距离。个别位置移位量是第2移动量的一例。
共同位置移位部6805a、6805b分别以由移位量计算部6804a、6804b计算出的共同位置移位量,对对应的分割数据执行位置移位。由此,图93的(a)所示的点群数据6810被分割后的多个分割数据6811~6814如图93的(b)所示,以由共同位置移位量表示的方向以及距离移动。
个别位置移位部6806a、6806b分别以由移位量计算部6804a、6804b计算出的个别位置移位量,对对应的分割数据执行位置移位。由此,图93的(c)所示的多个分割数据6811~6814以由分别对应的个别移位量表示的方向以及距离移动。
编码部6807a、6807b分别对由个别位置移位部6806a、6806b移动后的多个分割数据中的对应的分割数据进行编码。
另外,分割部6802、量化部6803a、6803b、移位量计算部6804a、6804b、共同位置移位部6805a、6805b、以及个别位置移位部6806a、6806b的处理顺序也可以调换。例如,移位量计算部6804a、6804b和共同位置移位部6805a、6805b可以在分割部6802之前进行处理,在该情况下,移位量计算部6804a、6804b可以合并到1个处理部中,共同位置移位部6805a、6805b可以合并到1个处理部中。另外,在该情况下,移位量计算部6804a、6804b只要在共同位置移位部6805a、6805b之前计算共同位置移位量以及个别位置移位量中的至少共同位置移位量即可,个别位置移位量只要在进行个别位置移位部6806a、6806b的处理之前计算即可。即,也可以是计算共同位置移位量的处理部与计算个别位置移位量的处理部分开,在共同位置移位部之前计算共同位置移位量的结构。此外,上述多个处理部中的任意2个以上的处理部也可以被合并。
接着,使用图94说明共同位置移位量以及个别位置移位量的计算例。图94是用于说明位置移位的第1例的图。第1例是在以共同位置移位量移位点群数据6810之后,以分别对应的个别位置移位量移位多个分割数据6811~6814的例子。
如图94的(a)所示,三维数据编码装置生成包含点群数据6810的全部分割数据6811~6814的尺寸的包围盒6820,计算所生成的包围盒6820的最小值的点。然后,三维数据编码装置计算由计算出的最小值的点与原点的差分表示的矢量的方向以及距离作为共同位置移位量。此外,原点为0,因此差分由最小值的点的坐标表示。原点也可以是非0的规定的基准点。包围盒6820可以是包围全部分割数据6811~6814的最小尺寸的矩形区域。包围盒6820的最小值的点是包围盒6820的区域中最靠近原点的点。包围盒6820也被称为共同包围盒。另外,包围盒也被称为编码包围盒。
如图94的(b)所示,三维数据编码装置以计算出的共同位置移位量移动多个分割数据6811~6814。另外,三维数据编码装置也可以使分割前的点群数据6810以共同位置移位量移动。
接着,如图94的(b)所示,三维数据编码装置针对进行了共同位置移位后的多个分割数据6811~6814的每一个,生成包含该分割数据6811~6814的尺寸的包围盒6821~6824,计算所生成的各包围盒6821~6824的最小值的点。然后,三维数据编码装置针对多个分割数据6811~6814的每一个,计算与该分割数据对应的包围盒的最小值的点与原点的距离,作为该分割数据的个别的位置移位量。也可以是,各包围盒6821~6824是包围对应的分割数据6811~6814的最小尺寸的矩形区域。包围盒6821~6824中的最小值的点是包围盒6821~6824各自的区域中最靠近原点的点。各包围盒6821~6824也称为个别的包围盒。
如图94的(c)所示,三维数据编码装置使多个分割数据6811~6814分别以计算出的对应的个别位置移位量移动。
三维数据编码装置使用对应的包围盒6821~6824对以个别位置移位量移动的多个分割数据6811~6814分别进行编码,由此生成比特流。此时,三维数据编码装置将表示各包围盒6821~6824的最小值的点的位置以及尺寸的第2包围盒信息保存在比特流所包含的元数据中。此外,在下文中,包围盒也被称为编码包围盒(编码BB)。
此外,共同位置移位量、以及表示包围盒6820的最小值的点的位置和尺寸的第1包围盒信息被保存在图94的(e)所示的比特流的数据结构中的SPS中。另外,个别位置移位量被保存在对应的分割数据的位置信息的头。另外,用于各分割数据6811~6814的编码的包围盒6821~6824的第2包围盒信息保存在对应的分割数据的位置信息的头。
在此,若将共同位置移位量设为Shift_A,将个别位置移位量设为Shift_B(i)(i为分割数据的索引),则分割数据(i)的移位量Shift(i)能够使用下述的式子来计算。
Shift(i)=Shift_A+Shift_B(i)
即,如图94的(d)所示,各分割数据的全部移位量能够通过将共同位置移位量以及对应的个别位置移位量相加来计算。
三维数据编码装置在对点群数据进行编码之前,通过对第i个分割数据的点群数据减去Shift(i)来进行位置移位。
三维数据解码装置从SPS以及分割数据的头中取得Shift_A以及Shift_B(i),在计算出Shift(i)之后,通过对解码后的分割数据(i)加上Shift(i),能够使分割数据返回到原来的位置。由此,能够正确地复原多个分割数据。
接着,使用图95说明进行共同位置移位且不进行个别位置移位的位置移位的第2例。在第2例中,由于不送出个别位置移位量,因此能够削减比特流的信息量。
图95是用于说明位置移位的第2例的图。在第2例中,点群数据6810以共同位置移位量进行位置移位,并且各分割数据6811~6814不以个别位置移位量进行位置移位。
如图95的(a)所示,三维数据编码装置生成包含点群数据6810的全部的分割数据6811~6814的尺寸的包围盒6820,使用所生成的包围盒6820来计算共同位置移位量。共同位置移位量的计算方法与使用图94说明的方法相同。
如图95的(b)所示,三维数据编码装置以计算出的共同位置移位量移动多个分割数据6811~6814,使用包含共同位置移位后的全部的分割数据6811~6814的包围盒6820进行编码。
这样,在第2例中,在分割点群数据6810之后,不计算多个分割数据6811~6814中各自的个别位置移位量或包围盒信息。另外,在第2例中,三维数据编码装置将多个分割数据6811~6814以共同位置移位量移位位置,并且使用共同的包围盒进行编码,但不限于此。例如,三维数据编码装置也可以以共同位置移位量对多个分割数据6811~6814的位置进行移位,使用各分割数据6811~6814的个别的包围盒来进行编码。另外,三维数据编码装置也可以将各分割数据6811~6814以个别位置移位量进行移位,使用共同的包围盒来进行编码。
如图95的(c)所示,各分割数据的全部移位量是共同位置移位量。
此外,共同的位置移位量和表示包含全部分割数据的包围盒6820的最小值的点的位置和尺寸的第1包围盒信息保存在图95的(d)所示的比特流的数据结构中的SPS中。
另一方面,在对应的分割数据的位置信息的头中,不保存个别位置移位量和用于各分割数据的编码的第2包围盒信息。
此外,表示使用包含共同位置移位量和全部分割数据6811~6814的包围盒进行了编码的标志(识别信息)、以及表示个别位置移位量和用于分割数据的编码的包围盒的尺寸信息没有保存在每个分割数据的位置信息的头中的标志(识别信息)保存在SPS或GPS中。
三维数据解码装置基于保存在SPS或GPS中的上述标志来判定是以共同信息进行编码还是以个别信息进行编码,并且计算用于解码的位置信息和包围盒的尺寸。
此外,以下,BB表示包围盒。另外,共同信息是多个分割数据中共同的共同位置移位量和第1BB信息。此外,共同位置移位量可以由共同的包围盒的最小值的点表示。另外,个别信息是每个分割数据的个别位置移位量和用于编码的每个分割数据的包围盒的第2BB信息。另外,个别位置移位量也可以用每个分割数据的包围盒的最小值的点表示。分割区域信息是表示分割数据时的空间中的分割边界的信息,也可以包含表示BB的最小值的点以及BB的尺寸的BB信息。
图96是表示在切换进行第1例和第2例的情况下的编码方法的一例的流程图。图97是表示在切换进行第1例和第2例的情况下的解码方法的一例的流程图。
如图96所示,三维数据编码装置决定点群数据6810的共同位置移位量以及包围点群数据6810的共同的BB的尺寸(S6801)。
三维数据编码装置判定是否使用个别位置移位量个别地将各分割数据6811~6814进行移位(S6802)。三维数据编码装置可以基于头信息的削减量或追求编码效率的结果来决定。
三维数据编码装置在不对各分割数据6811~6814个别地进行移位的情况下(S6802中“否”),决定为送出共同位置移位量以及共同的BB的尺寸(S6803),并且决定为不送出个别位置移位量以及共同的BB的尺寸(S6804)。由此,三维数据编码装置生成包含共同位置移位量以及共同的BB的尺寸、且不包含个别位置移位量以及个别的BB的尺寸的比特流。在比特流中,也可以保存表示不个别地移位的识别信息。
另一方面,三维数据编码装置在对各分割数据6811~6814个别地进行移位的情况下(S6802中“是”),决定为送出共同位置移位量以及共同的BB的尺寸(S6805),并且决定为送出个别位置移位量以及个别的BB的尺寸(S6806)。由此,三维数据编码装置生成包含共同位置移位量以及共同的BB的尺寸、且包含个别位置移位量以及个别的BB的尺寸的比特流。在比特流中,也可以保存表示个别地移位的识别信息。另外,三维数据编码装置也可以在步骤S6806中,计算各分割数据6811~6814的个别位置移位量以及个别的BB的尺寸。
如图97所示,三维数据解码装置通过取得比特流来取得表示是否进行了个别移位的识别信息(S6811)。
三维数据解码装置使用识别信息,判定在编码时是否进行了个别移位(S6812)。
三维数据解码装置在判定为未进行针对各分割数据6811~6814的个别的移位的情况下(S6812中“否”),从比特流取得共同位置移位量以及共同的BB的尺寸(S6813)。
另一方面,三维数据解码装置在判定为进行了针对各分割数据6811~6814的个别的移位的情况下(S6812中“是”),从比特流取得共同位置移位量以及共同的BB的尺寸(S6814),并且取得个别位置移位量以及个别的BB的尺寸(S6815)。
接着,使用图98说明以使用点群数据存在的空间的分割区域所决定的位置移位量进行位置移位的第3例。在第3例中,能够进一步削减位置移位量的信息量。
图98是用于说明位置移位的第3例的图。在第3例中,各分割数据6811~6814的全部移位量由3个阶段的移位量表示。
如图98的(a)所示,三维数据编码装置使用包围盒6820计算共同位置移位量。共同位置移位量的计算方法与使用图94说明的方法相同。此时,三维数据编码装置决定用于将点群数据6810分割为多个的多个分割区域6831~6834(图98的(b)),按照所决定的多个分割区域6831~6834将点群数据6810分割为多个分割数据6811~6814。多个分割区域6831~6834分别是与多个分割数据6811~6814对应的区域。此外,多个分割区域6831~6834也称为分割区域包围盒。
如图98的(b)所示,三维数据编码装置计算由包含全部的分割数据的包围盒6820的最小值的点与各分割区域6831~6834的最小值的点之间的差分表示的矢量的方向和距离,作为分割区域的位置移位量。
如图98的(c)所示,三维数据编码装置针对多个分割数据6811~6814的每一个,生成包含该分割数据6811~6814的尺寸的包围盒6821~6824,计算所生成的各包围盒6821~6824的最小值的点。然后,三维数据编码装置针对多个分割数据6811~6814的每一个,计算由与该分割数据对应的包围盒的最小值的点和对应的分割区域的最小值的点的差分表示的矢量的方向以及距离,作为该分割数据的个别位置移位量。
三维数据编码装置将共同位置移位量、每个分割数据的个别位置移位量、表示包围盒6820的尺寸的包围盒信息保存在比特流中。
此外,共同位置移位量和表示包围盒6820的最小点的位置和尺寸的第1包围盒信息被保存在图98的(e)所示的比特流的数据结构中的SPS中。另外,个别位置移位量保存在对应的分割数据的位置信息的头。此外,例如,包含每个分割区域的位置移位量的分割区域信息保存在保存分割元数据的参数集中。另外,用于各分割数据6811~6814的编码的包围盒6821~6824的第2包围盒信息保存在对应的分割数据的位置信息的头。在此,用于各分割数据6811~6814的编码的各包围盒6821~6824包含在各分割区域6831~6834中。
在此,若将共同位置移位量设为Shift_A,将个别位置移位量设为Shift_B(i),将分割区域的位置移位量设为Shift_C(i)(i为分割数据的索引),则分割数据(i)的移位量Shift(i)能够使用下述的式子来计算。
Shift(i)=Shift_A+Shift_B(i)+Shift_C(i)
即,如图98的(d)所示,各分割数据的全部移位量能够通过将共同位置移位量、分割区域的位置移位量以及个别位置移位量这3个移位量相加来计算。
三维数据编码装置在对点群数据进行编码之前,通过对第i个分割数据的点群数据减去Shift(i)来进行位置移位。
三维数据解码装置从SPS以及分割数据的头中取得Shift_A、Shift_B(i)以及Shift_C(i),在计算出Shift(i)之后,通过对解码后的分割数据(i)加上Shift(i),能够使分割数据返回到原来的位置。由此,能够正确地解码多个分割数据。
该方法在送出分割区域信息的情况下,通过将个别位置移位量表示为来自分割区域的差分,具有削减每个分割数据的移位量的信息量的效果。
此外,可以根据是否送出分割区域信息来切换个别位置移位量是共同包围盒的最小值的点与个别包围盒的最小值的点之间的差分,还是每个分割区域的最小值的点与个别包围盒的最小值的点之间的差分。在后者的情况下,个别位置移位量由分割区域的位置移位量与计算出的差分之和表示。
图99是表示在个别地进行位置移位的情况下,切换进行第1例以及第3例的情况下的编码方法的一例的流程图。图100是表示在个别地进行位置移位的情况下,切换进行第1例以及第3例的情况下的解码方法的一例的流程图。
如图99所示,三维数据编码装置决定点群数据6810的分割方法(S6821)。具体而言,三维数据编码装置决定是将点群数据用第1例进行位置移位,还是用第3例进行位置移位。
三维数据编码装置基于所决定的分割方法,判定方法是否是使用分割区域的第3例的方法(S6822)。
在判定为该方法是第1例的方法的情况下(S6822中“否”),三维数据编码装置将个别位置移位量设定为共同BB的最小值的点与个别BB的最小值的点之间的差分(S6823)。
三维数据编码装置生成包含共同信息和个别信息的比特流(S6824)。在比特流中,也可以保存表示方法是第1例的方法的识别信息。
在判定为该方法是第3例的方法的情况下(S6822中“是”),三维数据编码装置将个别位置移位量设定为分割区域BB的最小值的点与个别BB的最小值的点之间的差分(S6825)。
三维数据编码装置送出包含共同信息、个别信息和分割区域信息的比特流(S6826)。比特流中也可以保存表示方法是第3例的方法的识别信息。
如图100所示,三维数据解码装置通过取得比特流来判定比特流中是否包含分割区域信息(S6831)。由此,三维数据解码装置判定所取得的比特流是包含用第1例编码的点群数据,还是包含用第3例编码的点群数据。具体而言,如果在比特流中包含分割区域信息,则判定为该比特流包含用第3例编码的点群数据,如果不包含,则判定为该比特流包含用第1例编码的点群数据。另外,三维数据解码装置也可以通过取得比特流中包含的识别信息,来判定该比特流是用第1例编码还是用第3例编码。
在比特流中未包含分割区域信息的情况下(S6831中“否”),即,在用第1例编码的情况下,三维数据解码装置从比特流取得共同信息和个别信息(S6832)。
三维数据解码装置基于所取得的共同信息和个别信息来计算每个分割数据的位置移位量,即,第1例中的位置移位量Shift(i)、共同BB和个别BB,并且使用这些信息来解码点群数据(S6833)。
在比特流中包含分割区域信息的情况下(S6831中“是”),即,在用第3例编码的情况下,三维数据解码装置从比特流中取得共同信息、个别信息和分割区域信息(S6834)。
三维数据解码装置基于所取得的共同信息、个别信息和分割区域信息来计算每个分割数据的位置移位量,即,第3例中的位置移位量Shift(i)、共同BB、个别BB和分割区域,并且使用这些信息来解码点群数据(S6835)。
接下来,使用图101对将点群数据所存在的空间的分割区域以作为编码的包围盒而决定的位置移位量进行移位的第4例进行说明。在第4例中,由于分割区域与个别的包围盒一致,因此与第3例相比,能够削减包围盒的信息量。
图101是用于说明位置移位的第4例的图。在第4例中,各分割数据6811~6814的全部移位量由共同位置移位量以及分割区域的位置移位量这2个阶段的移位量表示。
如图101的(a)所示,三维数据编码装置使用包围盒6820计算共同位置移位量。共同位置移位量的计算方法与使用图94说明的方法相同。此时,三维数据编码装置将点群数据6810分割为多个分割数据6811~6814。点群数据6810的分割方法与使用图98的(a)说明的方法相同。
如图101的(b)所示,三维数据编码装置计算分割区域的位置移位量。分割区域的位置移位量的计算方法与使用图98的(b)说明的方法相同。
三维数据编码装置计算分割区域的位置移位量作为各分割数据6811~6814的个别的位置移位量。因此,三维数据编码装置将共同位置移位量、个别位置移位量(分割区域的位置移位量)以及表示包围盒(分割区域)的尺寸的包围盒信息保存在比特流中。
此外,共同位置移位量和表示包围盒6820的最小点的位置和尺寸的第1包围盒信息保存在图101的(d)所示的比特流的数据结构中的SPS中。
另外,个别位置移位量保存在对应的分割数据的位置信息的头和分割元数据中的至少一个中。在个别位置移位量保存在位置信息的头和分割元数据中的一个中的情况下,表示个别位置移位量保存在分割数据的位置信息的头中的识别信息、或表示个别位置移位量保存在分割元数据中的识别信息也可以保存在GPS或SPS中。或者,也可以是,例如,个别位置移位量保存在分割数据的头,表示保存在分割数据的头中的位置移位量和包围盒信息是否与分割区域一致的识别信息(标志)保存在GPS或SPS中。由此,三维数据解码装置根据上述标志,判断为分割区域信息保存在分割数据的头,能够将保存在分割数据的头的位置移位量和包围盒信息用作分割区域的信息。或者,上述标志也可以保存在分割元数据中,三维数据解码装置在上述标志表示1的情况下,即,在分割区域信息表示保存在分割数据的头的情况下,也可以通过参照分割数据的头来取得分割区域信息。
在此,若将共同位置移位量设为Shift_A,将个别位置移位量设为Shift_B(i),将分割区域的位置移位量设为Shift_C(i)(i为分割数据的索引),则分割数据(i)的移位量Shift(i)能够使用下述的式子来计算。
Shift_B(i)=Shift_C(i)
Shift(i)=Shift_A+Shift_B(i)
即,如图101的(c)所示,各分割数据的全部移位量能够通过将共同位置移位量与分割区域的位置移位量(即,个别位置移位量)相加来计算。
三维数据编码装置在对点群数据进行编码之前,通过对第i个分割数据的点群数据减去Shift(i)来进行位置移位。
三维数据解码装置从SPS以及分割数据的头中取得Shift_A、Shift_B(i)或者Shift_C(i),在计算出Shift(i)之后,通过对解码后的分割数据(i)加上Shift(i),能够使分割数据返回到原来的位置。由此,能够正确地解码多个分割数据。
该方法通过将个别位置移位量设为分割区域的位置移位量,即使在需要送出分割区域信息的情况下,也可以不重新送出分割区域信息,具有削减信息量的效果。
此外,可以根据是否送出分割区域信息来切换将个别位置移位量设为各分割数据的个别包围盒的包围盒信息还是设为分割区域信息。
图102是表示在保存分割区域信息的情况下切换进行第3例和第4例的情况下的编码方法的一例的流程图。
如图102所示,三维数据编码装置决定点群数据6810的分割方法(S6841)。具体而言,三维数据编码装置决定是将点群数据用第3例进行位置移位,还是用第4例进行位置移位。三维数据编码装置可以基于头信息的削减量或追求编码效率的结果来决定。
基于所决定的分割方法,三维数据编码装置判定是否使用个别的包围盒来进行位置移位(S6842)。即,三维数据编码装置判定是使用第3例的方法还是使用第4例的方法。
三维数据编码装置在判定为方法是第3例的方法的情况下(步骤S6842中“是”),将个别位置移位量设定为分割区域BB的最小值的点与个别BB的最小值的点之间的差分(步骤S6843)。
三维数据编码装置生成包含共同信息、个别信息和分割区域信息的比特流(S6844)。比特流中也可以保存表示方法是第3例的方法的识别信息。
三维数据编码装置在判定为方法是第4例的方法的情况下(步骤S6842中“否”),将个别位置移位量设定为共同BB的最小值的点与分割区域BB的最小值的点之间的差分(步骤S6845)。
三维数据编码装置送出包含共同信息和分割区域信息的比特流(S6846)。在比特流中,也可以保存表示方法是第4例的方法的识别信息。
接着,使用图103说明以使用点群数据存在的空间的分割区域决定的位置移位量进行位置移位的第5例。在第5例中,能够削减移位量的信息量。
图103是用于说明位置移位的第5例的图。与第3例相比,在第5例中的不同之处在于,第5例的分割区域是等分的区域。
如图103的(a)所示,三维数据编码装置使用包围盒6820计算共同位置移位量。共同位置移位量的计算方法与使用图94说明的方法相同。此时,三维数据编码装置例如以包围盒6820为基准按照规定的规则决定用于将点群数据6810分割为多个的多个分割区域6841~6844(图103的(b))。例如,三维数据编码装置在将包围盒6820N等分且N=4的情况下,能够生成大小相等的4个分割区域6841~6844。在此,例如在作为特定出各分割区域6841~6844的识别符而确定为以莫顿序(Morton Order)定义区域编号的情况下,由于各自的分割区域的尺寸相等,能够根据区域的分割数以及区域编号来计算分割区域的位置移位量。因此,三维数据编码装置也可以代替送出分割区域的位置移位量,而送出区域的分割数以及用于识别区域的识别信息。如上所述,识别信息是与多个分割区域6841~6844分别对应的莫顿序。
图103的(c)的例子是将编码的区域设为针对多个分割数据的每一个的个别的包围盒的例子。该情况下的各分割数据的位置移位量由共同位置移位量、对应的分割区域的位置移位量、以及对应的分割区域的从基准位置(最小的点的位置)起的个别位置移位量的相加值来表示。在该情况下,对应的分割区域也可以不包含编码的区域(即,个别BB)的全部区域。
图103的(d)的例子是使各分割数据的编码的区域与各分割区域一致的例子。该情况下的各分割数据的位置移位量由共同位置移位量与对应的分割区域的位置移位量的相加值来表示。在该情况下,对应的分割区域与编码的区域(即,个别BB)一致,因此包含编码的区域。
这样,三维数据编码装置可以使各分割数据的编码的区域与分割点群数据时的分割区域一致,也可以不一致。在使各分割数据的编码的区域与分割区域一致的情况下,能够使用图103的(c)和图103的(d)中的任意一个方法。在各分割数据的编码的区域与分割区域不一致的情况下,能够使用图103的(c)的方法。
在使用图103的(c)和图103的(d)的方法的情况下,共同位置移位量和表示包围盒6820的最小点的位置和尺寸的包围盒信息被保存在比特流的数据结构中的SPS中。另外,作为分割区域信息的、与分割方法有关的信息、分割数作为对所有的分割数据共同的信息而保存在SPS或GPS等中,各分割区域的规定的顺序(莫顿序)中的编号(识别信息)作为各分割区域的信息而保存在分割数据的位置信息的头。
另外,个别位置移位量保存在对应的分割数据的位置信息的头。另外,在图103的(c)的情况下,进一步将个别位置移位量保存在分割数据的位置信息的头。
此外,在使分割区域与分割数据一致的情况下(即,在使分割区域与分割数据的个别包围盒一致的情况下),也可以将分割数据的位置信息的头所包含的分割数据的编号(瓦片ID)作为每个分割区域的规定的顺序中的编号来处理。这样,通过用每个数据的识别信息(规定的顺序中的编号)表示个别位置移位量,具有能够削减头的信息量的效果。
此外,三维数据编码装置可以进行切换,使得在使用第5例的分割方法的情况下,通过使用将共同包围盒等分的分割方法和规定的顺序,将分割区域的位置移位量以包含分割数和分割区域的识别信息的区域信息来表示,在使用其他的分割方法的情况下,以不使用上述的区域信息的方法来表示位置移位量。
在此,若将共同位置移位量设为Shift_A,将个别位置移位量设为Shift_B(i),将分割区域的位置移位量设为Shift_D(i)(i为分割数据的索引),则分割数据(i)的移位量Shift(i)能够使用下述的式子来计算。
Shift(i)=Shift_A+Shift_B(i)+Shift_D(i)
即,各分割数据的全部移位量能够通过将共同位置移位量、分割区域的位置移位量以及个别位置移位量这3个移位量相加来计算。
三维数据编码装置在对点群数据进行编码之前,通过对第i个分割数据的点群数据减去Shift(i)来进行位置移位。
三维数据解码装置从SPS以及分割数据的头中取得Shift_A以及Shift_B(i),进而,作为分割区域信息,取得与分割方法有关的信息、分割数、每个分割区域的规定的顺序中的编号,通过规定的方法导出位置移位量Shift_D(i),在计算出Shift(i)之后,通过对解码后的分割数据(i)加上Shift(i),能够使分割数据返回到原来的位置。由此,能够正确地解码多个分割数据。
对削减以八叉树分割点群数据的情况下的规则以及头量的具体例进行说明。图104是用于说明用八叉树分割三维空间的情况下的编码方法的图。
首先,三维数据编码装置也可以在将处于三维空间上的点群数据以共同位置移位量进行了偏移(位置移位、移动)之后,以八叉树进行分割。三维数据编码装置将点群数据的包围盒6850以八叉树分割为8个分割区域,以八叉树的Depth(深度)设定分割数。例如,针对Depth的分割数通过N=2^(Depth*3)给出,Depth=1的情况下的分割数为8,Depth=2的情况下的分割数为64。另外,将分割区域的顺序设为莫顿序。通过将第5例应用于三维空间,分割区域的位置信息能够根据莫顿序来计算。另外,还具有如下特征:能够根据分割区域的位置信息,通过规定的方法来计算莫顿序。
点群数据的包围盒信息保存在包含在多个分割数据中共同的元数据的SPS或GPS中。包围盒信息包含包围盒的最小值的点(初始位置)和尺寸。
三维数据编码装置将表示分割方法是使用八叉树分割的识别信息、以及在八叉树分割的情况下表示八叉树的Depth(深度)的Depth信息(深度信息)保存在图104的(e)所示的比特流的数据结构中的SPS或GPS中。在各分割数据的头中,保存有作为分割数据编号的按莫顿顺序的编号。另外,在分割方法是八叉树的情况下,以根据莫顿顺序导出分割数据的位置移位量和编码的包围盒信息为前提,不保存在比特流中。
即,如图104的(f)所示,三维数据编码装置使用规定的方法,对由八叉树分割出的多个分割区域各自的位置信息,计算表示由八叉树进行了分割的识别信息、八叉树的Depth、以及莫顿序。在三维数据解码装置中,如图104的(g)所示,取得表示以八叉树进行了分割的识别信息、八叉树的Depth、以及莫顿序,通过规定的方法复原以八叉树进行了分割的多个分割区域各自的位置信息。
另外,在分割区域内没有点群数据的情况下,也可以没有该分割区域信息。例如,在分割数据编号=2的区域中不存在点群数据的情况下,不送出该分割数据编号,因此分割数据编号的排列跳过2而成为1、3、4。
另外,在分割元数据中,既可以保存分割数据编号,也可以保存还包含没有点群数据的分割区域在内的所有的分割区域信息。在该情况下,也可以通过分割区域信息来表示在该分割区域中是否存在点群数据。
图105是表示GPS的句法的一例的图。
octree_partition_flag是表示点群数据的分割方法是否是八叉树分割的标志。
depth表示在对点群数据进行八叉树分割的情况下的、八叉树的分割的深度。
gheader_BBmin_present_flag是表示点群数据的编码的包围盒的位置信息字段是否存在于位置信息的头的标志。
gheader_BBsize_present_flag是表示点群数据的编码的包围盒的尺寸信息字段是否存在于位置信息的头的标志。
另外,在octree_partition_flag=1的情况下,gheader_BBmin_present_flag和gheader_BBsize_present_flag设为0。
图106是表示位置信息的头的句法的一例的图。
partition_id表示分割数据的识别信息。在八叉树分割的情况下,partition_id是以莫顿序的顺序表示唯一的位置。
BBmin表示对数据或分割数据进行编码时的移位量。
BBsize表示对数据或分割数据进行编码时的包围盒的尺寸。
此外,以八叉树的分割为例进行了说明,但在除此以外的分割方法中也同样地通过确定规定的分割方法、分割数据的顺序、位置信息的计算方法,能够应用本方式。例如,在从上方俯视点群数据并在x-y平面中以等间隔进行分割的情况下,通过确定分割方法是上述分割方法、分割的数量或者分割的尺寸、顺序并发送,能够基于该信息在三维数据编码装置以及三维数据解码装置双方中计算位置信息、位置移位量,通过不送出位置信息,能够削减数据量。也可以送出以八叉树进行分割、或进行分割的平面的信息、以四叉树进行分割的信息。
图107是表示根据是否进行八叉树分割来切换处理的编码方法的一例的流程图。图108是表示根据是否进行了八叉树分割来切换处理的解码方法的一例的流程图。
如图107所示,三维数据编码装置决定点群数据的分割方法(S6851)。
三维数据编码装置根据所决定的分割方法,判定是否进行八叉树分割(S6852)。
三维数据编码装置在判定为不进行八叉树分割的情况下(S6852中“否”),将个别位置移位量决定为每个分割数据的个别BB的最小值的点,对分割数据进行位置移位,使用个别BB对分割数据进行编码(S6853)。
三维数据编码装置在共同的元数据中保存共同BB的信息(S6854)。
三维数据编码装置在分割数据的头保存每个分割数据的个别位置移位量(S6855)。
三维数据编码装置在判定为进行八叉树分割的情况下(S6852中“是”),将个别位置移位量决定为进行了八叉树分割的分割区域的最小值的点,对分割数据进行位置移位,使用八叉树的分割区域将分割数据进行编码(S6856)。
三维数据编码装置在共同的元数据中保存共同BB的信息、表示进行了八叉树分割的识别信息、以及Depth信息(S6857)。
三维数据编码装置在分割数据的头保存表示用于特定每个分割数据的个别位置移位量的莫顿序的顺序的顺序信息(S6858)。
三维数据解码装置从共同的元数据中取得表示点群数据的分割方法的信息(S6861)。
三维数据解码装置基于所取得的表示分割方法的信息,判定分割方法是否是八叉树分割(S6862)。具体而言,三维数据解码装置基于表示是否进行了八叉树分割的识别信息,判定分割方法是否是八叉树分割。
三维数据解码装置在分割方法不是八叉树分割的情况下(S6862中“否”),取得共同BB的信息、个别位置移位量以及个别BB的信息,对点群数据进行解码(S6863)。
三维数据解码装置在分割方法是八叉树分割的情况下(S6862中“是”),取得共同BB的信息、Depth信息以及个别的顺序信息,计算个别位置移位量和编码的BB信息,并对点群数据进行解码(S6864)。
在本实施方式中说明的多个例子的方法,能够期待无论使用哪种方法都能够削减编码量的可能性。也可以通过规定的方法切换为多个例子的方法中的任意一个方法。
例如,三维数据编码装置也可以计算编码量,根据计算出的编码量,决定在规定的条件下进行上述多个方法中的第1方法。或者,也可以是,判定量化系数在不可逆压缩的情况下大于规定值的情况、数据的分割数大于规定数的情况、点群的数量小于规定数的情况,在存在开销(overhead)变化的可能性的情况下,从上述多个方法中的第1方法切换为第2方法。
另外,在各分割数据的头中,将针对共同信息的差分作为与该分割数据对应的个别信息来保存,但不限于此,也可以将与该分割数据的前一个分割数据的个别信息的差分作为该分割数据的个别信息来保存。
图109是表示分割数据被分类为可随机访问的A数据和非可随机访问的B数据的情况下的比特流的数据结构的一例的图。图110是将图109的分割数据作为帧的情况下的例子。
在该情况下,即在存在1个以上的多个随机访问单位的情况下,也可以在A数据的数据头和B数据的数据头分别保存不同的信息。例如,A数据的分割数据可以保存来自GPS中保存的共同的信息的个别的差分信息,B数据的分割数据可以保存随机访问单位中的与A数据的差分信息。另外,在以随机访问单位包含多个B数据的分割数据的情况下,可以在同一随机访问单位所包含的多个B数据的分割数据中分别保存与A数据的差分信息,也可以在多个B数据的分割数据中保存与该B数据的前一个A数据或B数据的差分信息。
在上述中,对分割数据进行了说明,但对于帧也是同样的。
在本实施方式中,主要使用以所有的分割数据的BB为对象来分割数据分割中的分割区域或分割边界的区域的例子(图111)进行了说明,但即使在分割区域为其他的情况下,通过使用本实施方式的方法,也能够期待同样的编码量削减的效果。
在如图111所示那样对包含全部分割数据的BB进行分割的情况下,三维数据编码装置也可以通过以BB的最小值为基准进行位置移位,将位置移位后的点群数据作为分割的对象。此外,三维数据编码装置在对点群数据进行了缩放或量化的情况下,可以将缩放或量化后的点群数据作为分割的对象,也可以将缩放或量化前的点群数据作为分割的对象。
如图112所示,三维数据编码装置也可以在点群数据的输入数据的坐标系中设定分割区域。在这种情况下,三维数据编码装置不移位点群数据的BB的最小值的点。
如图113所示,三维数据编码装置也可以在点群数据的上位的坐标系中设定分割区域。例如,三维数据编码装置也可以基于地图数据等GPS坐标来设定分割区域。
在该情况下,三维数据编码装置也可以将针对上位的坐标系的点群的坐标系的相对位置信息保存在比特流并送出。例如,三维数据编码装置也可以在车载Lidar等传感器一边移动一边感测点群数据时,将传感器的位置信息(GPS坐标、加速度、速度、移动距离)作为相对位置信息送出。此外,三维数据编码装置在具有时间序列的帧构造的点群数据的情况下,也可以将每个帧的时间序列的传感器位置信息保存在比特流并送出。另外,上位的坐标系可以是绝对坐标,也可以是基于绝对坐标的相对坐标。上位的坐标系也可以是上位的坐标系的更上位的坐标系。
如图114所示,三维数据编码装置也可以基于点群数据的对象或数据属性来决定分割区域。例如,三维数据编码装置也可以基于图像识别结果来决定分割区域。该情况下的分割区域也可以包含重复的区域。三维数据编码装置可以基于规定的属性来对点群的各点进行聚类(clustering),可以基于点的数量来分割数据,也可以以具有大致相等数量的点群的方式分割区域。
也可以是,三维数据编码装置对编码对象的点的数量进行发信(signaling),三维数据解码装置使用点的数量对点群数据进行解码。
编码对象按每个帧或对1帧进行分割而得到的每个分割数据来设定,编码对象的点的数量基本上保存在各自的数据头。关于被发信的编码对象的点的数量,也可以将基准值保存在共同的元数据中,将与基准值的差分信息保存在数据头。
例如,如图115所示,三维数据编码装置可以将基准的点的数量A(即,基准值)保存在GPS或SPS中,并且可以将作为与基准的点的数量A的差分的点的数量B(i)(i是分割数据的索引)保存在各自的数据头。分割数据(i)的点的数量通过对数A加上数B(i)而得到。因此,三维数据解码装置计算A+B(i),并将计算出的值作为分割数据(i)的点的数量进行解码。
或者,如图116所示,三维数据编码装置也可以将分割数据与之前的分割数据的点的数量的差分信息保存在各自的数据头。在该情况下,分割数据(i)的点的数量通过对数A加上开头的分割数据的数B(1)~数B(i)而得到。
此外,例如,如图117所示,在具有多个帧构造的时间序列点群数据的情况下,三维数据编码装置也可以在共同的SPS中保存编码对象的点的数量的基准值,将各自的帧相对于基准值的相对值保存到GPS或者数据头。另外,三维数据编码装置也可以将相对于SPS中保存的基准值的差分(相对值)保存到GPS,进而将相对于SPS的基准值与GPS的差分值的相加值的差分(相对值)保存到数据头。由此,能够期待削减开销的编码量的效果。
另外,作为分割点群数据的方法,考虑以使点的数量大致相等的方式进行分割的方法。在这种情况下,可以使用与图115同样的方法。
例如,如图118所示,在以分割数据所包含的点的差为1以内的方式进行分割的方法中,Δ可以用1bit的数据表示,在Δ=0的情况下,也可以不表示差分信息。
例如,如图119所示,基本上也可以是将GPS中记载的基准值设为分割数的数据和由余数构成的数据。在Δ=0的情况下,也可以不表示差分信息。
使用上述的图115~图119的任意一个方法都能够期待削减开销的信息量的效果。
如上所述,本实施方式的三维数据编码装置进行图120所示的处理。三维数据编码装置是对表示三维空间中的多个三维位置的点群数据进行编码的装置。三维数据编码装置使点群数据移动第1移动量(S6871)。接着,三维数据编码装置通过将三维空间分割为多个子空间,将点群数据分割为多个子点群数据(S6872)。三维数据编码装置针对移动了第1移动量后的点群数据所包含的多个子点群数据的每一个,使该子点群数据移动基于包含该子点群数据的子空间的位置的第2移动量(S6873)。三维数据编码装置通过对移动后的多个子点群数据进行编码来生成比特流(S6874)。比特流包含第1移动信息和多个第2移动信息,上述第1移动信息用于计算第1移动量,上述多个第2移动信息用于分别计算使多个子点群数据移动的多个第2移动量。由此,由于将分割后的子点群数据移动之后进行编码,能够减少各子点群数据的位置信息的信息量,能够提高编码效率。
例如,多个子空间具有彼此相等的大小。多个第2移动信息分别包含多个子空间的数量及用于识别对应的子空间的第1识别信息。因此,能够减少第2移动信息的信息量,能够提高编码效率。
例如,第1识别信息是与多个子空间分别对应的莫顿序。
例如,多个子空间分别是使用八叉树将1个三维空间分割而成的空间。比特流包含表示多个子空间是使用八叉树分割而得到的空间的第2识别信息和表示八叉树的深度的深度信息。因此,由于使用八叉树来分割三维空间上的点群数据,能够减少各子点群数据的位置信息的信息量,能够提高编码效率。
例如,在使点群数据移动了第1移动量之后进行分割。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,本实施方式的三维数据解码装置进行图121所示的处理。三维数据解码装置从比特流中解码多个子点群数据、第1移动信息以及多个第2移动信息,上述多个子点群数据是通过将三维空间分割为多个子空间来将表示多个三维位置的点群数据分割而得到的,且分别移动了第1移动量以及对应的第2移动量,上述第1移动信息用于计算第1移动量,上述多个第2移动信息用于分别计算使多个子点群数据移动的多个第2移动量(S6881)。三维数据解码装置通过使多个子点群数据分别移动将第1移动量和对应的第2移动量相加后的移动量,复原点群数据(S6882)。由此,能够使用提高了编码效率的比特流来正确地解码点群数据。
例如,多个子空间具有彼此相等的大小。多个第2移动信息分别包含多个子空间的数量及用于识别对应的子空间的第1识别信息。因此,能够减少第2移动信息的信息量,能够提高编码效率。
例如,第1识别信息是与多个子空间分别对应的莫顿序。
例如,多个子空间分别是使用八叉树将1个三维空间分割而成的空间。比特流包含表示多个子空间是使用八叉树分割而得到的空间的第2识别信息和表示八叉树的深度的深度信息。因此,由于使用八叉树来分割三维空间上的点群数据,能够减少各子点群数据的位置信息的信息量,能够提高编码效率。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式9)
在本实施方式中,对使用了上述的分割区域信息的位置移位量的计算中的个别位置移位量和分割区域位置移位量的计算方法的例子进行说明。
图122是表示个别位置移位量以及分割区域位置移位量的例子的图。如图122所示,点群数据(三维数据)的包围盒的最小坐标与原点的差分是共同位置移位量。另外,点群数据的包围盒被分割为多个分割区域。另外,点群数据的包围盒的最小坐标与分割区域的最小坐标的差分是分割区域位置移位量。并且,分割区域的最小坐标与该分割区域所包含的点群数据即分割数据的包围盒的最小坐标的差分是个别位置移位量。
另外,在此,示出了个别地定义共同位置移位量和分割区域位置移位量的例子,但也可以不存在共同位置移位量。另外,也可以是,图122所示的共同位置移位量和分割区域位置移位量的组合是分割区域位置移位量。另外,也可以是,图122所示的分割区域位置移位量和个别位置移位量相加后的矢量是个别位置移位量。
图123是本实施方式的分割区域位置移位量和个别位置移位量的计算处理的流程图。首先,三维数据编码装置将点群数据分割为作为分割数据的切片(S7501)。另外,也可以使用任何分割方法。另外,多个分割区域可以不重复,也可以重复。
接着,三维数据编码装置例如决定将切片编码的基准位置(原点坐标)设定为构成各个切片的点群(三维点)数据的包围盒的最小值(最小坐标)(S7502)。
接着,三维数据编码装置从多个切片中选择处理对象的对象切片,开始每个切片的处理(S7503)。首先,三维数据编码装置计算构成对象切片的点群数据(分割数据)的包围盒的最小位置坐标(S7504)。这里,个别位置移位量是构成对象切片的点群数据的包围盒的最小位置坐标与点群数据的包围盒的最小坐标(即,共同位置移位量)的差分,对应于图122所示的分割区域位置移位量和个别位置移位量的合计。
接着,三维数据编码装置将最小位置坐标用分割边界分割(S7505)。例如,分割边界既可以在全部的切片的全部的轴(x、y、z)中是共同的,也可以使用不同的边界。另外,分割边界可以在切片内是共同的,也可以在2个以上的任意轴中是共同的。
图124是示意性地表示最小位置坐标的分割处理的图。如图124所示,最小位置坐标在分割边界被分割为上位比特和下位比特。
另外,例如,表示分割边界的上位比特数被设定为int(k*N)。这里,N是最小位置坐标的比特数。此外,k(k<=1)是固定或自适应地设定的系数。由此,基于最小位置坐标的比特数决定分割边界。这样,通过分割为上位比特和下位比特,能够将最小位置坐标分割为分割区域位置移位量和个别位置移位量。
接着,三维数据编码装置进行上位比特的处理(S7506)。具体而言,三维数据编码装置将下位比特用0掩蔽(S7511)。由此,能够削减比特数。接着,三维数据编码装置提取上位比特,对提取出的上位比特进行编码(S7512)。
另外,三维数据编码装置进行下位比特的处理(S7507)。具体而言,三维数据编码装置将上位比特用0掩蔽(S7521)。接着,三维数据编码装置提取下位比特,对提取出的下位比特进行编码(S7522)。
在全部切片的处理未完成的情况下(S7508中“否”),三维数据编码装置选择下一个切片作为对象切片(S7503),再次进行步骤S7504以后的处理。在全部的切片的处理完成的情况下(S7508中“是”),三维数据编码装置结束处理。
另外,例如,三维数据编码装置根据最小位置坐标(分割区域位置移位量和个别位置移位量的合计)移动(移位)对象切片内的多个三维点的位置,对移动后的多个三维点的位置进行编码。即,三维数据编码装置对对象切片内的多个三维点的位置与最小位置坐标的差分进行编码。
图125是表示三维数据解码装置中的移位量的计算的例子的图。三维数据解码装置从比特流中对下位比特和上位比特进行解码,使得到的下位比特与上位比特连结,由此计算最小位置坐标。
另外,例如,三维数据解码装置从比特流中对移动后(移位后)的多个三维点的位置进行解码。三维数据解码装置根据计算出的最小位置坐标(分割区域位置移位量和个别位置移位量的合计)移动(移位)对象切片内的移动后的多个三维点的位置,复原多个三维点的位置。另外,由三维数据解码装置进行的移动是由三维数据编码装置进行的移动的相反方向的移动。
接着,对使用八叉树分割方法的情况下的个别位置移位量和分割区域位置移位量的计算方法进行说明。图126是该情况下的分割区域位置移位量和个别位置移位量的计算处理的流程图。另外,图126所示的处理与图123所示的处理的不同之处在于,将S7501变更为S7501A,将S7505变更为S7505A。
首先,三维数据编码装置使用八叉树(Octree)分割方法将点群数据分割成切片(S7501A)。此外,步骤S7502~S7504与图123相同。
接着,三维数据编码装置将最小位置坐标用基于深度比特(depth比特)的分割边界分割(S7505A)。例如,分割边界被设定在从上位起第深度比特的阶层的位置。在此,深度比特表示八叉树中的阶层的深度。
图127是示意性地表示该情况下的最小位置坐标的分割处理的图。如图127所示,分割边界设定为从上位起的深度比特的边界。
例如,对于全部的切片以及全部的轴,用基于共同的深度比特的分割边界进行分割。由此,将下位比特掩码为值0的最小位置坐标表示分割区域位置移位量。另外,上位比特的值等价于表示分割区域的顺序的莫顿序。另外,下位比特为0的概率变高,能够期待编码率的提高。此外,步骤S7506以后的处理与图123相同。
另外,三维数据编码装置也可以将上位比特或下位比特中的任一个或双方进一步分为上位和下位的比特,以多阶段进行处理。
图128是表示三维数据解码装置中的移位量的计算的例子的图。三维数据解码装置从比特流中对下位比特和上位比特进行解码,使得到的下位比特与上位比特连结,由此计算最小位置坐标。
接着,对表示分割边界的边界信息的送出方法进行说明。边界信息可以表示上位比特的比特数,也可以表示下位比特的比特数。
在以切片或轴使用个别的分割边界(比特数)的情况下,边界信息表示各自的分割边界(比特数)。在使用共同的分割边界的情况下,也可以将表示共同的分割边界的、与多个切片共同的边界信息保存到比特流。或者,也可以设置表示与各切片或各轴对应的切片或轴的分割边界的边界信息,用多个边界信息表示相同的分割边界。另外,可以基于标志来切换使用这些方法中的哪一种方法。
另外,三维数据编码装置也可以对上位比特和下位比特的比特数进行比较,边界信息表示上位比特和下位比特中比特数少的比特的比特数。在该情况下,三维数据编码装置将表示边界信息所示的比特数为上位比特的比特数还是下位比特的比特数的标志保存到比特流。三维数据解码装置基于该标志,判定由边界信息表示的比特数为上位比特的比特数还是下位比特的比特数,切换位置移位量的计算方法。
另外,三维数据编码装置在对下位比特进行编码并送出的情况下,由于三维数据解码装置能够基于该下位比特来计算下位比特的数量,因此也可以不送出下位比特的比特数。
另外,三维数据编码装置也可以根据分割方法来切换分割边界(上位比特或下位比特的比特数)的决定方法。例如,在使用八叉树分割的情况下,三维数据编码装置使用深度比特,在使用其他的分割方法的情况下,例如将上位比特的比特数设定为int(k*N)。
以下,对移位量的计算的另一例进行说明。三维数据编码装置也可以发送上位比特,不发送下位比特。例如,三维数据编码装置也可以在使分割区域与编码区域一致的情况下,发送上位比特,不发送下位比特。另外,三维数据编码装置即使在不使分割区域与编码区域一致的情况下,也可以发送上位比特,不发送下位比特。
三维数据编码装置在不发送下位比特的情况下,送出表示分割边界的比特数。送出方法例如与送出上位比特和下位比特双方的方法的情况相同。
在不送出下位比特的情况下,三维数据编码装置也可以对从位置信息(最小位置坐标)的下位起连续的值0的比特进行计数,将从下位起连续的值0的比特设定为下位比特。由此,能够不使位置信息的值变化地削减比特数。图129是表示该情况下的下位比特的设定例的图。在图129所示的切片1中,由于从下位起3比特为值0,因此该3比特被设定为下位比特。在图129所示的切片2中,最下位比特是值1,因此不设定下位比特。在图129所示的切片3中,由于从下位起2比特为值0,因此该2比特被设定为下位比特。
此外,在按每个切片使比特数共同化的情况下,三维数据编码装置也可以对每个切片的从x坐标、y坐标以及z坐标各自的值的下位起连续的值0的比特的数量进行计数,将其中最小的数量设定为下位比特的比特数。即,三维数据编码装置也可以将从下位起连续的x坐标、y坐标以及z坐标的全部为0的比特设定为下位比特。在这种情况下,可以不使最小位置坐标变化地削减比特数。此外,三维数据编码装置也可以在全比特为0的情况下不进行处理而直接送出0。
另外,三维数据编码装置也可以送出全比特数和上位比特的比特数。在该情况下,三维数据解码装置也可以通过从全比特数中减去上位比特的比特数来计算下位比特的比特数。
另外,三维数据编码装置也可以将包含值1的比特的比特设定为下位比特。在该情况下,由于不送出下位比特,所以被解码的位置信息从原来的位置信息的值变化。即,位置信息被量化。
图130是未送出下位比特的情况下的移位量的计算处理的流程图。另外,图130所示的处理相对于图123所示的处理的不同之处在于,S7506变更为S7506B,不包含S7507。
三维数据编码装置在步骤S7505之后,进行上位比特的处理(S7506B)。具体而言,三维数据编码装置提取上位比特,对提取出的上位比特进行编码(S7512)。此外,三维数据编码装置对下位比特的比特数(也记为下位比特数)进行编码(S7513)。即,三维数据编码装置将表示下位比特的比特数的信息保存到比特流。
另外,例如,三维数据编码装置将对象切片内的多个三维点的位置根据将最小位置坐标的下位比特全部置换为零的值(分割区域位置移位量)移动(移位),对移动后的多个三维点的位置进行编码。即,三维数据编码装置对对象切片内的多个三维点的位置与将最小位置坐标的下位比特全部置换为零的值的差分进行编码。
另外,例如,三维数据解码装置从比特流中对移动后的多个三维点的位置进行解码。此外,三维数据解码装置计算由具有解码出的上位比特的值的上位比特和由下位比特数表示的比特数的全部值零的下位比特构成的移动量(分割区域位置移位量)。三维数据解码装置将对象切片内的移动后的多个三维点的位置根据计算出的移动量(分割区域位置移位量)移动(移位),复原多个三维点的位置。另外,由三维数据解码装置进行的移动是由三维数据编码装置进行的移动的相反方向的移动。
图131是在使用八叉树分割方法的情况下不送出下位比特的情况下的移位量的计算处理的流程图。另外,图131所示的处理相对于图126所示的处理的不同之处在于,S7506变更为S7506B,不包含S7507。
在步骤S7505A中,三维数据编码装置将最小位置坐标用基于深度比特(depth比特)的分割边界分割。在此,由于下位比特未被编码,因此该处理等价于用从上位起第深度比特对最小位置坐标进行量化。另外,在八叉树分割的情况下,分割区域所包含的多个点的坐标所包含的从上位到第深度比特为止的比特全部是共同的。因此,三维数据编码装置也可以将构成切片的多个点群的全部所包含的点的从上位起到第深度比特为止的比特提取为上位比特。
接着,三维数据编码装置进行上位比特的处理(S7506B)。具体而言,三维数据编码装置提取上位比特,对提取出的上位比特进行编码(S7512)。此外,三维数据编码装置对下位比特的比特数进行编码(S7513)。即,三维数据编码装置将表示下位比特的比特数的信息保存到比特流。
接下来,说明比特流的句法例。图132是表示GPS(位置信息参数集)的句法例的图。GPS是帧单位的位置信息的参数集(控制信息),是在多个切片(分割区域)中共同的参数集。
GPS包括gheader_origin_present_flag、gheader_origin2_present_flag、origin_shift_bit_present_flag以及origin_shift_bit。
gheader_origin_present_flag是表示在位置信息头(Geometory_header)中是否包含第1移位位置信息的标志。第1移位位置信息例如表示上位比特的值。另外,位置信息头是切片(分割区域)单位的位置信息的头。
gheader_origin2_present_flag是表示在位置信息头中是否包含第2移位位置信息的标志。第2移位位置信息例如表示下位比特的值。
origin_shift_bit_present_flag是表示表示分割边界的比特数(例如下位比特的比特数)包含在GPS中还是包含在位置信息头中的标志。例如,在多个切片中使用共同的分割边界(比特数)的情况下,三维数据编码装置将origin_shift_bit_present_flag设定为开启(例如值1),将比特数(origin_shift_bit)保存到GPS。另一方面,在按每个切片而使用个别的分割边界(比特数)的情况下,三维数据编码装置将origin_shift_bit_present_flag设定为关闭(例如值0),将比特数(origin_shift_bit)保存到每个切片的位置信息头。
origin_shift_bit表示表示分割边界的比特数(下位比特的比特数)。origin_shift_bit在origin_shift_bit_present_flag为开启(例如值1)的情况下包含在GPS中,在origin_shift_bit_present_flag为关闭(例如值0)的情况下不包含在GPS中。
图133是表示位置信息头(Geometory_header)的句法例的图。位置信息头包括BB_origin_x、BB_origin_y及BB_origin_z、origin_shift_bit、BB_origin2_x、BB_origin2_y及BB_origin2_z以及origin2_shift_bit。
BB_origin_x、BB_origin_y及BB_origin_z表示移位量(最小位置坐标)的上位比特的值。BB_origin_x、BB_origin_y及BB_origin_z在gheader_origin_present_flag为开启(例如值1)的情况下包含于位置信息头,在gheader_origin_present_flag为关闭(例如值0)的情况下不包含于位置信息头。
origin_shift_bit表示表示分割边界的比特数(下位比特的比特数)。origin_shift_bit在gheader_origin_present_flag为开启(例如值1)且origin_shift_bit_present_flag为关闭(例如值0)的情况下包含于位置信息头,在除此以外的情况下不包含于位置信息头。
BB_origin2_x、BB_origin2_y及BB_origin2_z表示移位量的下位比特。BB_origin2_x、BB_origin2_y及BB_origin2_z在gheader_origin2_present_flag为开启(例如值1)的情况下包含于位置信息头,在gheader_origin2_present_flag为关闭(例如值0)的情况下不包含于位置信息头。
origin2_shift_bit在将下位比特进一步分割为上位和下位的情况下包含于位置信息头。origin2_shift_bit表示将下位比特进一步分割后的下位比特的比特数。origin2_shift_bit在gheader_origin2_present_flag为开启(例如值1)的情况下包含于位置信息头,在gheader_origin2_present_flag为关闭(例如值0)的情况下不包含于位置信息头。
这样,在gheader_origin2_present_flag为1的情况下,除了第1移位位置信息之外,还追加第2移位位置信息。另外,三维数据编码装置按照第1移位位置信息、第2移位位置信息的顺序来使用。即,三维数据编码装置不送出第1移位位置信息且不送出第2移位位置信息。
接下来,对移位量的决定方法的组合的例子进行说明。三维数据编码装置可以基于分割方法来切换送出方法,也可以基于分割方法以外的方法来切换送出方法。例如,三维数据编码装置也可以在使用了八叉树分割方法的情况下,使用送出上位比特和下位比特双方的方法,在使用其他分割方法的情况下,使用送出上位比特而不送出下位比特的方法。
图134是表示该情况下的移位量的送出处理的例子的流程图。首先,三维数据编码装置决定数据分割方法(S7531)。在所决定的数据分割方法为八叉树分割方法以外的情况下(S7532中“否”),三维数据编码装置送出上位比特,不送出下位比特(S7533)。另外,三维数据编码装置送出下位比特的比特数(S7534)。另一方面,在所决定的数据分割方法是八叉树分割方法的情况下(S7532中“是”),三维数据编码装置送出上位比特和下位比特双方(S7535)。另外,三维数据编码装置不送出下位比特的比特数(S7536)。
另外,在此,叙述了在使用八叉树分割方法的情况下送出上位比特和下位比特双方的例子,但三维数据编码装置也可以在使用八叉树分割方法的情况下送出上位比特,不送出下位比特,在使用八叉树分割方法以外的情况下,送出上位比特和下位比特双方。另外,三维数据编码装置也可以在送出上位比特和下位比特双方的情况下,送出下位比特的比特数。
另外,三维数据编码装置也可以根据分割方法来切换量化的方法或分割边界的比特数的计算方法。图135是该情况下的移位量的计算处理的流程图。首先,三维数据编码装置决定数据分割方法(S7541)。
在所决定的数据分割方法为八叉树分割方法以外的情况下(S7542中“否”),三维数据编码装置按每个分割数据(切片)计算个别位置移位量(例如个别BB的最小值),按照规定的方法按每个分割数据对计算出的个别位置移位量进行量化(S7543)。例如,三维数据编码装置通过提取个别位置移位量的上位比特来进行量化。此外,三维数据编码装置也可以使用不进行量化的方法。另外,三维数据编码装置将用于量化的分割边界的比特数记载于每个分割数据的头(S7544)。
另一方面,在所决定的数据分割方法是八叉树分割方法的情况下(S7542中“是”),三维数据编码装置使用八叉树分割中的深度(depth)信息(例如深度比特)对全部分割数据的个别位置移位量进行量化(S7545)。另外,三维数据编码装置将用于量化的分割边界的比特数记载为多个分割数据所共同的元数据(S7546)。
如上所述,根据本实施方式的三维数据编码装置进行图136所示的处理。三维数据编码装置对表示三维空间中的多个三维位置的点群数据进行编码。三维数据编码装置通过将三维空间分割为多个子空间(例如分割区域),将点群数据分割为多个子点群数据(例如切片)(S7551)。接着,三维数据编码装置使多个子点群数据根据规定的移动量(例如分割区域位置移位量)移动(S7552)。接着,三维数据编码装置通过对移动后的多个子点群数据进行编码而生成比特流(S7553)。另外,比特流包含第1控制信息(例如GPS)和每个子点群数据的多个第2控制信息(位置信息头),所述第1控制信息在多个子点群数据中是共同的,且包含与多个子点群数据的移动量相关的第1信息(例如origin_shift_bit)。
由此,三维数据编码装置能够通过第1信息将移动量传递给三维数据解码装置。另外,通过将第1信息在多个子点群数据中共同化,能够削减编码量。
例如,移动量是基于子点群数据和包含子点群数据的子空间中的任一个的移动量。
例如,移动量包含上位比特和下位比特。第1信息是多个子点群数据中共同的信息,且表示下位比特的比特数。多个第2控制信息分别包含表示针对与该第2控制信息对应的子点群数据的移动量中包含的上位比特的值的第2信息(例如BB_origin_x、BB_origin_y、BB_origin_z)。
由此,三维数据编码装置能够通过第1信息及第2信息将移动量传递给三维数据解码装置。另外,通过将第1信息在多个子点群数据中共同化,能够削减编码量。
例如,第1控制信息包含表示表示下位比特的比特数的信息包含在第1控制信息中还是包含在多个第2控制信息中的每一个中的标志(例如origin_shift_bit_present_flag)。在由标志表示表示下位比特的比特数的信息包含在第1控制信息中的情况下,第1控制信息包含第1信息,多个第2控制信息的每一个不包含表示下位比特的比特数的信息。在由标志表示表示下位比特的比特数的信息包含在多个第2控制信息的每一个中的情况下,多个第2控制信息的每一个包含表示针对与该第2控制信息对应的子点群数据的移动量中包含的下位比特的比特数的第3信息(例如origin_shift_bit),第1控制信息不包含第1信息。
由此,三维数据编码装置能够切换是否将第1信息在多个子点群数据中共同化,因此能够进行适当的编码。
例如,下位比特所包含的全部比特为值零,比特流不包含表示下位比特的值的信息。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
另外,本实施方式的三维数据解码装置进行图137所示的处理。三维数据解码装置从比特流中解码将多个子点群数据(例如切片)根据规定的移动量(例如分割区域位置移位量)而移动了的移动后的多个子点群数据,所述多个子点群数据是通过将三维空间分割为多个子空间(例如分割区域)而将表示多个三维位置的点群数据分割而得到的,(S7561)。此外,三维数据解码装置从比特流中包含的、多个子点群数据中共同的第1控制信息(例如GPS)中取得与多个子点群数据的移动量相关的第1信息(例如origin_shift_bit)(S7562)。
接着,三维数据解码装置使用第1信息计算多个子点群数据的多个移动量(S7563)。接着,三维数据解码装置通过使移动后的多个子点群数据的每一个根据与该子点群数据对应的移动量移动,来复原多个子点群数据(S7564)。
由此,三维数据解码装置能够通过第1信息计算移动量。另外,通过将第1信息在多个子点群数据中共同化,从而削减编码量。
例如,移动量是基于子点群数据和包含子点群数据的子空间中的任一个的移动量。
例如,移动量包含上位比特和下位比特,第1信息是在所述多个子点群数据中共同的信息,且表示所述下位比特的比特数。三维数据解码装置从比特流中包含的、比特流中包含的每个子点群数据的多个第2控制信息(例如位置信息头)取得表示多个子点群数据的每一个的移动量的上位比特的值的多个第2信息(例如BB_origin_x、BB_origin_y、BB_origin_z)。三维数据解码装置在移动量的计算中,使用第1信息以及多个第2信息来计算多个子点群数据的多个移动量。具体而言,三维数据解码装置使用第1信息和处理对象的子点群数据的第2信息来计算处理对象的子点群数据的移动量。
由此,三维数据解码装置能够通过第1信息以及第2信息计算移动量。另外,通过将第1信息在多个子点群数据中共同化,从而削减编码量。
例如,第1控制信息包含表示下位比特的比特数的信息包含在第1控制信息中还是包含在多个第2控制信息中的每一个中的标志(例如origin_shift_bit_present_flag)。在由标志表示表示下位比特的比特数的信息包含在第1控制信息中的情况下,三维数据解码装置从第1控制信息取得第1信息,使用第1信息以及多个第2信息计算多个子点群数据的多个移动量。另一方面,在由标志表示表示下位比特的比特数的信息包含在多个第2控制信息的每一个中的情况下,三维数据解码装置从多个第2控制信息中的每一个取得表示多个子点群数据的每一个的移动量的下位比特的比特数的多个第3信息,使用多个第3信息和多个第2信息计算多个子点群数据的多个移动量。具体而言,三维数据解码装置使用从处理对象的子点群数据的第2控制信息取得的第3信息以及第2信息来计算处理对象的子点群数据的移动量。
由此,三维数据解码装置能够基于第1信息,切换是否在多个子点群数据中共同化,因此进行适当的解码。
例如,三维数据解码装置在移动量的计算(S7563)中,将下位比特所包含的全部比特设定为值零。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
以上,对有关本发明的实施方式的三维数据编码装置及三维数据解码装置等进行了说明,但本发明并不限定于该实施方式。
此外,有关上述实施方式的三维数据编码装置及三维数据解码装置等中包含的各处理部典型的是作为集成电路即LSI实现。它们既可以单独地形成1个芯片,也可以包含一部分或全部而形成1个芯片。
此外,集成电路化并不限于LSI,也可以由专用电路或通用处理器实现。也可以利用在LSI制造后能够编程的FPGA(Field Programmable Gate Array现场可编程门阵列)、或能够重构LSI内部的电路单元的连接或设定的可重构处理器。
此外,在上述各实施方式中,各构成要素也可以由专用的硬件构成,或通过执行适合于各构成要素的软件程序来实现。各构成要素也可以通过由CPU或处理器等程序执行部读出被记录在硬盘或半导体存储器等记录介质中的软件程序并执行来实现。
此外,本发明也可以作为由三维数据编码装置及三维数据解码装置等执行的三维数据编码方法或三维数据解码方法等实现。
此外,框图中的功能块的分割是一例,也可以将多个功能块作为一个功能块实现,或将一个功能块分割为多个,或将一部分功能转移到其他的功能块。此外,也可以是单一的硬件或软件将具有类似的功能的多个功能块的功能并行或分时地处理。
此外,流程图中的各步骤的执行顺序是为了具体地说明本发明而例示的,也可以是上述以外的顺序。此外,也可以将上述步骤的一部分与其他步骤同时(并行)执行。
以上,基于实施方式对有关一个或多个技术方案的三维数据编码装置及三维数据解码装置等进行了说明,但本发明并不限定于该实施方式。只要不脱离本发明的主旨,对本实施方式施以本领域技术人员想到的各种变形的形态、或将不同实施方式的构成要素组合而构建的形态也可以包含在一个或多个技术方案的范围内。
产业上的可利用性
本发明能够应用于三维数据编码装置及三维数据解码装置。
附图标记说明
2400 三维数据编码装置
2401 量化部
2402、2411 八叉树生成部
2403 合并决定部
2404 熵编码部
2410 三维数据解码装置
2412 合并信息解码部
2413 熵解码部
2414 逆量化部
4601 三维数据编码系统
4602 三维数据解码系统
4603 传感器终端
4604 外部连接部
4611 点群数据生成系统
4612 提示部
4613 编码部
4614 复用部
4615 输入输出部
4616 控制部
4617 传感器信息取得部
4618 点群数据生成部
4621 传感器信息取得部
4622 输入输出部
4623 逆复用部
4624 解码部
4625 提示部
4626 用户接口
4627 控制部
4630 第1编码部
4631 位置信息编码部
4632 属性信息编码部
4633 附加信息编码部
4634 复用部
4640 第1解码部
4641 逆复用部
4642 位置信息解码部
4643 属性信息解码部
4644 附加信息解码部
4650 第2编码部
4651 附加信息生成部
4652 位置图像生成部
4653 属性图像生成部
4654 映像编码部
4655 附加信息编码部
4656 复用部
4660 第2解码部
4661 逆复用部
4662 映像解码部
4663 附加信息解码部
4664 位置信息生成部
4665 属性信息生成部
4670 编码部
4680 解码部
4710 第1复用部
4711 文件变换部
4720 第1逆复用部
4721 文件逆变换部
4730 第2复用部
4731 文件变换部
4740 第2逆复用部
4741 文件逆变换部
4750 第3复用部
4751 文件变换部
4760 第3逆复用部
4761 文件逆变换部
4801 编码部
4802 复用部
5010 第1编码部
5011 分割部
5012 位置信息编码部
5013 属性信息编码部
5014 附加信息编码部
5015 复用部
5020 第1解码部
5021 逆复用部
5022 位置信息解码部
5023 属性信息解码部
5024 附加信息解码部
5025 结合部
5031 瓦片分割部
5032 位置信息切片分割部
5033 属性信息切片分割部
5041 位置信息切片结合部
5042 属性信息切片结合部
5043 瓦片结合部
5051 瓦片分割部
5052 编码部
5053 解码部
5054 瓦片结合部
6800 三维数据编码装置
6801 分割方法决定部
6802 分割部
6803a、6803b 量化部
6804a、6804b 移位量计算部
6805a、6805b 共同位置移位部
6806a、6806b 个别位置移位部
6807a、6807b 编码部

Claims (12)

1.一种三维数据编码方法,对表示三维空间中的多个三维位置的点群数据进行编码,其中,
通过将所述三维空间分割为多个子空间,将所述点群数据分割为多个子点群数据,
使所述多个子点群数据的每一个根据规定的移动量移动,
通过对移动后的所述多个子点群数据进行编码来生成比特流,
所述比特流包含所述多个子点群数据中共同的第1控制信息和每个子点群数据的多个第2控制信息,所述第1控制信息包含与所述多个子点群数据的移动量相关的第1信息。
2.根据权利要求1所述的三维数据编码方法,其中,
所述移动量是基于所述子点群数据和包含所述子点群数据的子空间中的任一个的移动量。
3.根据权利要求1或2所述的三维数据编码方法,其中,
所述移动量包含上位比特和下位比特,
所述第1信息是所述多个子点群数据中共同的信息,且表示所述下位比特的比特数,
所述多个第2控制信息的每一个包含表示所述上位比特的值的第2信息,该上位比特包含在针对与该第2控制信息对应的子点群数据的所述移动量中。
4.根据权利要求3所述的三维数据编码方法,其中,
所述第1控制信息包含示出表示所述下位比特的比特数的信息是包含在所述第1控制信息中还是包含在所述多个第2控制信息的每一个中的标志,
在由所述标志示出表示所述下位比特的比特数的信息包含在所述第1控制信息中的情况下,所述第1控制信息包含所述第1信息,所述多个第2控制信息的每一个不包含表示所述下位比特的比特数的信息,
在由所述标志示出表示所述下位比特的比特数的信息包含在所述多个第2控制信息的每一个中的情况下,所述多个第2控制信息的每一个包含表示所述下位比特的比特数的第3信息,该下位比特包含在针对与该第2控制信息对应的子点群数据的所述移动量中,所述第1控制信息不包含所述第1信息。
5.根据权利要求3或4所述的三维数据编码方法,其中,
所述下位比特所包含的全部比特为值零,
所述比特流不包含表示所述下位比特的值的信息。
6.一种三维数据解码方法,其中,
从比特流中解码将多个子点群数据根据规定的移动量移动了的移动后的多个子点群数据,所述多个子点群数据是通过将三维空间分割为多个子空间而将表示多个三维位置的点群数据分割而得到的,
从所述比特流中包含的、所述多个子点群数据中共同的第1控制信息中,取得与所述多个子点群数据的移动量相关的第1信息,
使用所述第1信息计算所述多个子点群数据的多个所述移动量,
通过使被解码的所述移动后的多个子点群数据的每一个根据与该子点群数据对应的所述移动量移动,复原所述多个子点群数据。
7.根据权利要求6所述的三维数据解码方法,其中,
所述移动量是基于所述子点群数据和包含所述子点群数据的子空间中的任一个的移动量。
8.根据权利要求6或7所述的三维数据解码方法,其中,
所述移动量包含上位比特和下位比特,
所述第1信息是所述多个子点群数据中共同的信息,且表示所述下位比特的比特数,
所述三维数据解码方法,进一步地,
从所述比特流所包含的每个子点群数据的多个第2控制信息,取得表示所述多个子点群数据各自的所述移动量的上位比特的值的多个第2信息,
在所述移动量的计算中,使用所述第1信息以及所述多个第2信息来计算所述多个子点群数据的多个所述移动量。
9.根据权利要求8所述的三维数据解码方法,其中,
所述第1控制信息包含示出表示所述下位比特的比特数的信息是包含在所述第1控制信息中还是包含在所述多个第2控制信息的每一个中的标志,
在由所述标志示出表示所述下位比特的比特数的信息包含在所述第1控制信息中的情况下,
从所述第1控制信息中取得所述第1信息,
使用所述第1信息和所述多个第2信息来计算所述多个子点群数据的多个所述移动量,
在由所述标志示出表示所述下位比特的比特数的信息包含在所述多个第2控制信息的每一个中的情况下,
从所述多个第2控制信息的每一个取得表示所述多个子点群数据各自的所述移动量的下位比特的比特数的多个第3信息,
使用所述多个第3信息以及所述多个第2信息计算所述多个子点群数据的多个所述移动量。
10.根据权利要求8或9所述的三维数据解码方法,其中,
在所述移动量的计算中,将所述下位比特所包含的全部比特设定为值零。
11.一种三维数据编码装置,对表示三维空间中的多个三维位置的点群数据进行编码,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,
通过将所述三维空间分割为多个子空间,将所述点群数据分割为多个子点群数据,
使所述多个子点群数据的每一个根据规定的移动量移动,
通过对移动后的所述多个子点群数据进行编码来生成比特流,
所述比特流包含所述多个子点群数据中共同的第1控制信息和每个子点群数据的多个第2控制信息,所述第1控制信息包含与所述多个子点群数据的移动量相关的第1信息。
12.一种三维数据解码装置,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,
从比特流中解码将多个子点群数据根据规定的移动量移动了的移动后的多个子点群数据,所述多个子点群数据是通过将三维空间分割为多个子空间而将表示多个三维位置的点群数据分割而得到的,
从所述比特流中包含的、所述多个子点群数据中共同的第1控制信息中,取得与所述多个子点群数据的移动量相关的第1信息,
使用所述第1信息计算所述多个子点群数据的多个所述移动量,
通过使被解码的所述移动后的多个子点群数据的每一个根据与该子点群数据对应的所述移动量移动,复原所述多个子点群数据。
CN202080016353.4A 2019-02-28 2020-02-28 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 Pending CN113474820A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962811788P 2019-02-28 2019-02-28
US62/811,788 2019-02-28
PCT/JP2020/008542 WO2020175709A1 (ja) 2019-02-28 2020-02-28 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Publications (1)

Publication Number Publication Date
CN113474820A true CN113474820A (zh) 2021-10-01

Family

ID=72239424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080016353.4A Pending CN113474820A (zh) 2019-02-28 2020-02-28 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置

Country Status (8)

Country Link
US (1) US20210377566A1 (zh)
EP (1) EP3933775A4 (zh)
JP (2) JP7448518B2 (zh)
KR (1) KR20210131328A (zh)
CN (1) CN113474820A (zh)
BR (1) BR112021014272A2 (zh)
MX (1) MX2021008753A (zh)
WO (1) WO2020175709A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115379190A (zh) * 2022-08-19 2022-11-22 腾讯科技(深圳)有限公司 一种点云处理方法、装置及计算机设备、存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11770562B2 (en) * 2020-06-23 2023-09-26 Qualcomm Incorporated High-level syntax for geometry-based point cloud compression

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11215496A (ja) * 1998-01-29 1999-08-06 Fujitsu Ltd 3次元データ圧縮装置、3次元データ復元装置および記録媒体
JP2011156108A (ja) * 2010-01-29 2011-08-18 Toshiba Corp 磁気共鳴スペクトロスコピー装置
US20140375638A1 (en) 2012-07-30 2014-12-25 Mitsubishi Electric Corporation Map display device
WO2015179695A1 (en) * 2014-05-21 2015-11-26 Smart Multimedia, Inc. Point cloud systems and methods
JP6826368B2 (ja) * 2016-01-14 2021-02-03 キヤノン株式会社 符号化装置及びその制御方法
WO2019012975A1 (ja) 2017-07-10 2019-01-17 ソニー株式会社 情報処理装置および方法
US10805646B2 (en) * 2018-06-22 2020-10-13 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
EP3467778A1 (en) * 2017-10-06 2019-04-10 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
EP3493158A1 (en) * 2017-12-04 2019-06-05 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
EP3553746B1 (en) * 2018-04-09 2021-08-25 BlackBerry Limited Methods and devices for predictive coding of point clouds
EP3779886A4 (en) * 2018-04-10 2021-06-16 Panasonic Intellectual Property Corporation of America TRIMDIMENSIONAL DATA CODING AND DECODING PROCESS AND TRIDMENSIONAL DATA ENCODING AND DECODING DEVICE
US10796458B2 (en) * 2018-04-23 2020-10-06 Qualcomm Incorporated Compression of point clouds via a novel hybrid coder
CN112997498A (zh) * 2018-11-13 2021-06-18 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
JPWO2020138463A1 (ja) * 2018-12-28 2021-11-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115379190A (zh) * 2022-08-19 2022-11-22 腾讯科技(深圳)有限公司 一种点云处理方法、装置及计算机设备、存储介质
CN115379190B (zh) * 2022-08-19 2024-04-26 腾讯科技(深圳)有限公司 一种点云处理方法、装置及计算机设备、存储介质

Also Published As

Publication number Publication date
EP3933775A1 (en) 2022-01-05
JPWO2020175709A1 (zh) 2020-09-03
BR112021014272A2 (pt) 2021-09-28
EP3933775A4 (en) 2022-05-11
JP7448518B2 (ja) 2024-03-12
MX2021008753A (es) 2021-08-24
US20210377566A1 (en) 2021-12-02
JP2024055951A (ja) 2024-04-19
KR20210131328A (ko) 2021-11-02
WO2020175709A1 (ja) 2020-09-03

Similar Documents

Publication Publication Date Title
US20210264641A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
EP3883246A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2020116563A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN113228110A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
JP7441798B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN112313710A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
KR20240058994A (ko) 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치
CN112313709A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
JP2024055951A (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN113168719A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
US20210168402A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20210168392A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021060526A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination