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

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

Info

Publication number
CN112424833A
CN112424833A CN201980046320.1A CN201980046320A CN112424833A CN 112424833 A CN112424833 A CN 112424833A CN 201980046320 A CN201980046320 A CN 201980046320A CN 112424833 A CN112424833 A CN 112424833A
Authority
CN
China
Prior art keywords
dimensional
dimensional data
information
data
encoding
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
CN201980046320.1A
Other languages
English (en)
Inventor
韩中定
P·拉桑
王驰
井口贺敬
杉尾敏康
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 CN112424833A publication Critical patent/CN112424833A/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
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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/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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/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

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)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Processing (AREA)

Abstract

三维数据编码方法通过对包含多个三维点的对象空间所包含的多个子空间进行编码而生成包含与多个子空间对应的多个编码数据的比特流,在比特流的生成中,在比特流中包含的多个编码数据所共用的第1控制信息中,存放与分配给多个子空间的多个标识符建立了对应的多个子空间的信息的一览表(S4531),在多个编码数据的各自的头部中,存放分配给与该编码数据对应的子空间的标识符(S4532)。

Description

三维数据编码方法、三维数据解码方法、三维数据编码装置、 以及三维数据解码装置
技术领域
本公开涉及三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置。
背景技术
在用于汽车或机器人自主地进行工作的计算机视觉、地图信息、监控、基础结构检查、或影像分发等较大的领域中,今后将会普及灵活运用了三维数据的装置或服务。三维数据通过测距仪等距离传感器、立体摄影机、或多个单眼相机的组合等各种方法来获得。
作为三维数据的一个表现方法有被称作点云的表现方法,该方法通过三维空间内的点群来表现三维结构的形状。在点云中存放了点群的位置以及颜色。虽然预想点云作为三维数据的表现方法将成为主流,但是,点群的数据量非常大。因此,在三维数据的蓄积或传输中与二维的动态图像(作为一个例子,有以MPEG而被标准化后的MPEG-4AVC或HEVC等)一样,需要通过编码来进行数据量的压缩。
并且,关于点云的压缩,有一部分由进行点云关联的处理的公开的库(PointCloud Library:点云库)等支持。
并且,有周知的利用三维的地图数据,检索在车辆周边的设施,并进行显示的技术(例如,参照专利文献1)。
现有技术文献
专利文献
专利文献1 国际公开第2014/020663号
发明内容
发明要解决的问题
在三维数据的编码及解码中,期望能够降低三维数据解码装置的处理量。
本公开的目的在于,提供能够降低三维数据解码装置的处理量的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
用来解决课题的手段
本公开的一形态的三维数据编码方法通过对包含多个三维点的对象空间中包含的多个子空间进行编码,生成包含与所述多个子空间对应的多个编码数据的比特流,在所述比特流的生成中,在所述比特流包含的由所述多个编码数据共用的第1控制信息中,存放与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表,在所述多个编码数据各自的头部中,存放分配给与该编码数据对应的所述子空间的标识符。
本公开的一形态的三维数据解码方法,对比特流进行解码,所述比特流是通过对包含多个三维点的对象空间中包含的多个子空间进行编码而得到的、并包含与所述多个子空间对应的多个编码数据,在所述比特流的解码中,决定所述多个子空间中的解码对象的子空间,使用在所述比特流包含的由所述多个编码数据共用的第1控制信息中包含的、与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表、和所述多个编码数据各自的头部所包含的分配给与该编码数据对应的所述子空间的标识符,获得所述解码对象的子空间的编码数据。
发明效果
本公开能够提供能够降低三维数据解码装置的处理量的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
附图说明
图1示出了实施方式1的编码三维数据的构成。
图2示出了属于实施方式1的GOS的最下层的SPC间的预测结构的一个例子。
图3示出了实施方式1的层间的预测结构的一个例子。
图4示出了实施方式1的GOS的编码顺序的一个例子。
图5示出了实施方式1的GOS的编码顺序的一个例子。
图6是实施方式1的三维数据编码装置的框图。
图7是实施方式1的编码处理的流程图。
图8是实施方式1的三维数据解码装置的框图。
图9是实施方式1的解码处理的流程图。
图10示出了实施方式1的元信息的一个例子。
图11示出了实施方式2的SWLD的构成例。
图12示出了实施方式2的服务器以及客户端的工作例。
图13示出了实施方式2的服务器以及客户端的工作例。
图14示出了实施方式2的服务器以及客户端的工作例。
图15示出了实施方式2的服务器以及客户端的工作例。
图16是实施方式2的三维数据编码装置的框图。
图17是实施方式2的编码处理的流程图。
图18是实施方式2的三维数据解码装置的框图。
图19是实施方式2的解码处理的流程图。
图20示出了实施方式2的WLD的构成例。
图21示出了实施方式2的WLD的八叉树结构的例子。
图22示出了实施方式2的SWLD的构成例。
图23示出了实施方式2的SWLD的八叉树结构的例子。
图24是实施方式3的三维数据制作装置的框图。
图25是实施方式3的三维数据发送装置的框图。
图26是实施方式4的三维信息处理装置的框图。
图27是实施方式5的三维数据制作装置的框图。
图28示出了实施方式6的系统的构成。
图29是实施方式6的客户端装置的框图。
图30是实施方式6的服务器的框图。
图31是由实施方式6的客户端装置进行的三维数据制作处理的流程图。
图32是由实施方式6的客户端装置进行的传感器信息发送处理的流程图。
图33是由实施方式6的服务器进行的三维数据制作处理的流程图。
图34是由实施方式6的服务器进行的三维地图发送处理的流程图。
图35示出了实施方式6的系统的变形例的构成。
图36示出了实施方式6的服务器以及客户端装置的构成。
图37是实施方式7的三维数据编码装置的框图。
图38示出了实施方式7的预测残差的例子。
图39示出了实施方式7的体积的例子。
图40示出了实施方式7的体积的八叉树表现的例子。
图41示出了实施方式7的体积的比特串的例子。
图42示出了实施方式7的体积的八叉树表现的例子。
图43示出了实施方式7的体积的例子。
图44是用于说明实施方式7的帧内预测处理的图。
图45是示出了实施方式8的分发系统的构成的图。
图46是示出了实施方式8的编码三维地图的比特流的构成例的图。
图47是用于说明实施方式8的编码效率的改善效果的图。
图48是实施方式8的服务器进行的处理的流程图。
图49是实施方式8的客户端进行的处理的流程图。
图50示出了实施方式8的子地图的句法例子。
图51示意性地示出了实施方式8的编码类型的切换处理。
图52是表示实施方式8的子地图的句法例子的图。
图53是实施方式8的三维数据编码处理的流程图。
图54是实施方式8的三维数据解码处理的流程图。
图55示意性地示出了实施方式8的编码类型的切换处理的变形例的工作。
图56示意性地示出了实施方式8的编码类型的切换处理的变形例的工作。
图57示意性地示出了实施方式8的编码类型的切换处理的变形例的工作。
图58示意性地示出了实施方式8的差分值的算出处理的变形例的工作。
图59示意性地示出了实施方式8的差分值的算出处理的变形例的工作。
图60示意性地示出了实施方式8的差分值的算出处理的变形例的工作。
图61示意性地示出了实施方式8的差分值的算出处理的变形例的工作。
图62示出了实施方式8的体积的句法例子。
图63是表示有关实施方式9的树结构的一例的图。
图64是表示有关实施方式9的各分支所具有的有效叶节点的数量的例子的图。
图65是表示有关实施方式9的编码方式的应用例的图。
图66是表示有关实施方式9的稠密的分支区域的例子的图。
图67是表示有关实施方式9的稠密的三维点群的例子的图。
图68是表示有关实施方式9的稀疏的三维点群的例子的图。
图69是有关实施方式9的编码处理的流程图。
图70是有关实施方式9的解码处理的流程图。
图71是有关实施方式9的编码处理的流程图。
图72是有关实施方式9的解码处理的流程图。
图73是有关实施方式9的编码处理的流程图。
图74是有关实施方式9的解码处理的流程图。
图75是表示有关实施方式9的三维点的分离处理的流程图。
图76是表示有关实施方式9的句法例的图。
图77是表示有关实施方式9的稠密的分支的例子的图。
图78是表示有关实施方式9的稀疏的分支的例子的图。
图79是有关实施方式9的变形例的编码处理的流程图。
图80是有关实施方式9的变形例的解码处理的流程图。
图81是有关实施方式9的变形例的三维点的分离处理的流程图。
图82是表示有关实施方式9的变形例的句法例的图。
图83是有关实施方式9的编码处理的流程图。
图84是有关实施方式9的解码处理的流程图。
图85是表示实施方式10的八叉树结构中的参照关系的图。
图86是表示实施方式10的空间区域中的参照关系的图。
图87是表示实施方式10的变形例1的空间区域中的参照关系的图。
图88是表示实施方式10的变形例1的头部信息的句法例的图。
图89是表示实施方式10的变形例1的头部信息的句法例的图。
图90是表示实施方式10的变形例2的相邻参照节点的例子的图。
图91是表示实施方式10的变形例2的对象节点及相邻节点的例子的图。
图92是实施方式10的变形例3的八叉树结构中的参照关系的图。
图93是表示实施方式10的变形例3的空间区域中的参照关系的图。
图94是表示实施方式11的树结构的例子的图。
图95是表示实施方式11的子三维点群的例子的图。
图96是表示实施方式11的子三维点群的例子的图。
图97是表示实施方式11的比特流的构成例的图。
图98是表示实施方式11的树结构的例子的图。
图99是用于说明实施方式11的全并行编码的图,是表示树结构的例子的图。
图100是空间地表示实施方式11的并行处理的子三维点群的图。
图101是表示实施方式11的比特流的构成例的图。
图102是用于说明实施方式11的并行解码处理的图。
图103是示意性地表示实施方式11的全并行编码处理的流程的图。
图104是示意性地表示实施方式11的全并行解码处理的流程的图。
图105是用于说明实施方式11的渐进并行编码的图,是表示树结构的例子的图。
图106是表示实施方式11的渐进并行编码中的核的工作的图。
图107是示意性地表示实施方式11的渐进并行编码处理的流程的图。
图108是实施方式11的三维数据编码处理的流程图。
图109是实施方式11的三维数据解码处理的流程图。
图110是示意性地表示实施方式12的汽车存取比特流的工作的图。
图111是表示实施方式12的瓦片分割的一例的图。
图112是表示实施方式12的瓦片分割的一例的图。
图113是表示实施方式12的瓦片分割的一例的图。
图114是表示实施方式12的树结构中的瓦片分割的例子的图。
图115是表示实施方式12的三维的瓦片分割的例子的图。
图116是表示在实施方式12的汽车的移动时读入的瓦片的图。
图117是表示实施方式12的系统的构成例的图。
图118是表示实施方式12的汽车所获得的瓦片的区域的例子的图。
图119是表示实施方式12的汽车所获得的瓦片的区域的例子的图。
图120是表示实施方式12的三维数据的例子的图。
图121是表示实施方式12的切片的数据的例子的图。
图122是表示实施方式12的切片的数据的例子的图。
图123是表示实施方式12的切片的数据的例子的图。
图124是表示实施方式12的瓦片的例子的图。
图125是表示实施方式12的八叉树中的瓦片的例子的图。
图126是表示实施方式12的比特流的例子的图。
图127是表示实施方式12的瓦片表的例子的图。
图128是表示实施方式12的瓦片表的例子的图。
图129是表示实施方式12的瓦片表的例子的图。
图130是表示实施方式12的瓦片表的例子的图。
图131是实施方式12的三维数据编码处理的流程图。
图132是实施方式12的三维数据解码处理的流程图。
图133是实施方式12的三维数据编码装置的框图。
图134是实施方式12的三维数据解码装置的框图。
图135是实施方式12的三维数据编码处理的流程图。
图136是实施方式12的三维数据解码处理的流程图。
图137是表示实施方式13的不进行切片或瓦片分割的情况下和进行的情况下的存储器、要求实际时间、现行的解码时间及距离的图。
图138是表示实施方式13的瓦片或切片分割的例子的图。
图139是表示对实施方式13的八叉树分割的计数数量进行分类的手法的例子的图。
图140是表示实施方式13的瓦片或切片分割的例子的图。
图141是表示实施方式13的比特流的构成例的图。
图142是表示实施方式13的SEI的构成例的图。
图143是表示实施方式13的SEI的句法例的图。
图144是表示实施方式13的三维数据解码装置的构成例的图。
图145是用于说明实施方式13的瓦片或切片的数据的获得工作的图。
图146是用于说明实施方式13的瓦片或切片的数据的获得工作的图。
图147是表示实施方式13的SEI的测试工作的图。
图148是表示实施方式13的SEI的测试工作的图。
图149是实施方式13的三维数据编码处理的流程图。
图150是实施方式13的三维数据解码处理的流程图。
图151是实施方式13的三维数据编码装置的框图。
图152是实施方式13的三维数据解码装置的框图。
图153是实施方式13的三维数据编码处理的流程图。
图154是实施方式13的三维数据解码处理的流程图。
具体实施方式
本公开的一形态的三维数据编码方法通过对包含多个三维点的对象空间中包含的多个子空间进行编码,生成包含与所述多个子空间对应的多个编码数据的比特流,在所述比特流的生成中,在所述比特流包含的由所述多个编码数据共用的第1控制信息中,存放与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表,在所述多个编码数据各自的头部中,存放分配给与该编码数据对应的所述子空间的标识符。
由此,三维数据解码装置在对通过该三维数据编码方法生成的比特流进行解码时,能够参照存放于第1控制信息的与多个标识符建立了对应的多个子空间的信息的一览表和存放于多个编码数据各自的头部的标识符,获得期望的编码数据。因此,能够降低三维数据解码装置的处理量。
例如,也可以是,在所述比特流中,所述第1控制信息配置在所述多个编码数据之前。
例如,也可以是,所述一览表包含所述多个子空间的位置信息。
例如,也可以是,所述一览表包含所述多个子空间的尺寸信息。
例如,也可以是,所述三维数据编码方法将所述第1控制信息变换为所述比特流的发送目的地的系统的协议中的第2控制信息。
由此,该三维数据编码方法能够根据比特流的发送目的地的系统的协议来变换控制信息。
例如,也可以是,所述第2控制信息是用于所述协议中的随机存取的表。
例如,也可以是,所述第2控制信息是ISOBMFF中的mdat box(媒体数据箱)或trackbox(轨道箱)。
本公开的一形态的三维数据解码方法,对比特流进行解码,所述比特流是通过对包含多个三维点的对象空间中包含的多个子空间进行编码而得到的、并包含与所述多个子空间对应的多个编码数据,在所述比特流的解码中,决定所述多个子空间中的解码对象的子空间,使用在所述比特流包含的由所述多个编码数据共用的第1控制信息中包含的、与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表、和所述多个编码数据各自的头部所包含的分配给与该编码数据对应的所述子空间的标识符,获得所述解码对象的子空间的编码数据。
由此,该三维数据解码方法能够参照存放于第1控制信息的与多个标识符建立了对应的多个子空间的信息的一览表和存放于多个编码数据各自的头部的标识符,获得期望的编码数据。因此,能够降低三维数据解码装置的处理量。
例如,也可以是,在所述比特流中,所述第1控制信息配置在所述多个编码数据之前。
例如,也可以是,所述一览表包含所述多个子空间的位置信息。
例如,也可以是,所述一览表包含所述多个子空间的尺寸信息。
另外,本公开的一形态的三维数据编码装置是对具有属性信息的多个三维点进行编码的三维数据编码装置,具备处理器和存储器,所述处理器使用所述存储器,通过对包含多个三维点的对象空间中包含的多个子空间进行编码,生成包含与所述多个子空间对应的多个编码数据的比特流,在所述比特流的生成中,在所述比特流包含的由所述多个编码数据共用的第1控制信息中,存放与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表,在所述多个编码数据各自的头部中,存放分配给与该编码数据对应的所述子空间的标识符。
由此,三维数据解码装置在对由该三维数据编码装置生成的比特流进行解码时,能够参照存放于第1控制信息的与多个标识符建立了对应的多个子空间的信息的一览表和存放于多个编码数据各自的头部的标识符,获得期望的编码数据。因此,能够降低三维数据解码装置的处理量。
另外,本公开的一形态的三维数据解码装置是对具有属性信息的多个三维点进行解码的三维数据解码装置,具备处理器和存储器,所述处理器使用所述存储器,对比特流进行解码,所述比特流是通过对包含多个三维点的对象空间中包含的多个子空间进行编码而得到的、并包含与所述多个子空间对应的多个编码数据,在所述比特流的解码中,决定所述多个子空间中的解码对象的子空间,使用在所述比特流包含的由所述多个编码数据共用的第1控制信息中包含的、与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表、和所述多个编码数据各自的头部所包含的分配给与该编码数据对应的所述子空间的标识符,获得所述解码对象的子空间的编码数据。
由此,该三维数据解码装置能够参照存放于第1控制信息的与多个标识符建立了对应的多个子空间的信息的一览表和存放于多个编码数据各自的头部的标识符,获得期望的编码数据。因此,能够降低三维数据解码装置的处理量。
另外,这些概括性的或具体的形态可以由系统、方法、集成电路、计算机程序或计算机可读取的CD-ROM等记录介质来实现,而且可以由系统、方法、集成电路、计算机程序以及记录介质的任意的组合来实现。
以下参照附图对实施方式进行具体说明。另外,以下将要说明的实施方式均为示出本公开的一个具体例子。以下的实施方式所示的数值、形状、材料、构成要素、构成要素的配置位置以及连接形态、步骤、步骤的顺序等均为一个例子,其主旨并非是对本公开进行限定。并且,针对以下的实施方式的构成要素之中没有记载在示出最上位概念的技术方案中的构成要素,作为任意的构成要素来说明。
(实施方式1)
首先,对本实施方式的编码三维数据(以下也记作编码数据)的数据结构进行说明。图1示出了本实施方式的编码三维数据的构成。
在本实施方式中,三维空间被分割为相当于动态图像的编码中的图片的空间(SPC),以空间为单位对三维数据进行编码。空间被进一步分割为相当于动态图像编码中的宏块等的体积(VLM),以VLM为单位进行预测以及转换。体积包括与位置坐标相对应的最小单位即多个体素(VXL)。另外,预测是指,与二维图像中进行的预测相同,参照其他的处理单位,生成与处理对象的处理单位类似的预测三维数据,并对该预测三维数据与处理对象的处理单位的差异进行编码。并且,该预测不仅包括参照同一时刻的其他的预测单位的空间预测,而且包括参照不同时刻的预测单位的时间预测。
例如,三维数据编码装置(以下也记作编码装置)在对由点云等的点群数据来表现的三维空间进行编码时,按照体素的大小,对点群的各个点或体素内所包含的多个点一并进行编码。若将体素细分,则能够对点群的三维形状进行高精确度的表现,若将体素的大小增大,则能够对点群的三维形状进行粗略的表现。
另外,以下虽然以三维数据为点云的情况为例进行说明,但是,三维数据并非受点云所限,也可以是任意形式的三维数据。
并且,可以利用阶层结构的体素。在这种情况下,在n次的阶层中,可以按顺序示出在n-1次以下的阶层(n次的阶层的下层)中是否存在采样点。例如,在仅对n次的阶层进行解码时,当在n-1次以下的阶层存在采样点的情况下,能够视为n次阶层的体素的中心存在采样点来进行解码。
并且,编码装置通过距离传感器、立体摄影机、单眼相机、回转仪、或惯性传感器等来获得点群数据。
关于空间,与动态图像的编码同样,至少被分类为以下3个预测结构的任一个,这3个预测结构为:能够单独解码的帧内空间(I-SPC)、仅能单向参照的预测空间(P-SPC)、以及能够双向参照的双向空间(B-SPC)。并且,空间具有解码时刻和显示时刻这两种时刻信息。
并且,如图1所示,作为包括多个空间的处理单位,有作为随机存取单位的GOS(Group Of Space:空间群)。而且,作为包括多个GOS的处理单位,存在世界空间(WLD)。
世界空间所占的空间区域通过GPS或纬度以及经度信息等,与地球上的绝对位置建立了对应。该位置信息作为元信息而被存放。另外,元信息可以包含在编码数据中,也可以与编码数据分开来传输。
并且,在GOS内,所有的SPC可以是三维上的邻接,也可以存在与其他的SPC不是三维上邻接的SPC。
另外,以下将与GOS、SPC或VLM等处理单位中包含的三维数据所对应的编码、解码或参照等处理,也简单地记作对处理单位进行编码、解码或参照等。并且,处理单位中所包含的三维数据例如包括三维坐标等空间位置与颜色信息等特性值的至少一个组。
接着,对GOS中的SPC的预测结构进行说明。同一GOS内的多个SPC、或同一SPC内的多个VLM虽然彼此占有不同的空间,却持有相同的时刻信息(解码时刻以及显示时刻)。
并且,在GOS内,在解码顺序上为开头的SPC是I-SPC。并且,GOS中存在封闭式GOS和开放式GOS这两种。封闭式GOS是从开头I-SPC开始解码时,能够对GOS内的所有的SPC进行解码的GOS。在开放式GOS中,在GOS内,比开头I-SPC的显示时刻早的一部分SPC参照不同的GOS,只能在该GOS进行解码。
另外,在地图信息等的编码数据中,有从与编码顺序相反的方向对WLD进行解码的情况,若在GOS间存在依存性,则难以进行逆方向再生。因此,在这种情况下,基本上采用封闭式GOS。
并且,GOS在高度方向上具有层结构,从底下的层的SPC开始顺序进行编码或解码。
图2示出了属于GOS的最下层的层的SPC间的预测结构的一个例子。图3示出了层间的预测结构的一个例子。
在GOS内中存在一个以上的I-SPC。在三维空间内虽然存在人、动物、汽车、自行车、信号灯、或成为陆上标志的建筑物等对象,但是,尤其是将尺寸小的对象作为I-SPC来编码时有效。例如,三维数据解码装置(以下也记作解码装置)在对GOS以低处理量或高速进行解码时,仅对GOS内的I-SPC进行解码。
并且,编码装置可以按照WLD内的对象的疏密程度,对I-SPC的编码间隔或出现频度进行切换。
并且,在图3所示的构成中,编码装置或解码装置针对多个层从下层(层1)开始依次进行编码或解码。据此,例如针对自动行走的车辆等而言,能够提高信息量多的地面附近的数据的优先级。
另外,在无人机(drone)等使用的编码数据中,在GOS内,可以从高度方向的上方的层的SPC开始依次进行编码或解码。
并且,编码装置或解码装置也可以是以解码装置大致掌握GOS并能够逐渐提高析像度的方式,来对多个层进行编码或解码。例如,编码装置或解码装置可以按照层3、8、1、9……的顺序进行编码或解码。
接着,对静态对象以及动态对象的对应方法进行说明。
在三维空间中存在建筑物或道路等静态对象或场景(以后统一称为静态对象)、以及车辆或人等动态对象(以后称为动态对象)。对象的检测可以通过从点云的数据、或立体摄影机等拍摄影像等中提取特征点来另外执行。在此,对动态对象的编码方法的例子进行说明。
第1方法是不区别静态对象与动态对象而进行编码的方法。第2方法是通过识别信息来区别静态对象与动态对象的方法。
例如,GOS被用作识别单位。在这种情况下,包括构成静态对象的SPC的GOS、与包括构成动态对象的SPC的GOS在编码数据内、或由与编码数据分开存放的识别信息来区別。
或者,SPC被用作识别单位。在这种情况下,仅包括构成静态对象的VLM的SPC、与包括构成动态对象的VLM的SPC,由上述的识别信息来区別。
或者,可以将VLM或VXL用作识别单位。在这种情况下,包括静态对象的VLM或VXL、与包括动态对象的VLM或VXL由上述的识别信息来区別。
并且,编码装置可以将动态对象作为一个以上的VLM或SPC来进行编码,将包括静态对象的VLM或SPC、与包括动态对象的SPC作为彼此不同的GOS来进行编码。并且,编码装置在按照动态对象的大小而GOS的大小成为可变的情况下,将GOS的大小作为元信息来另外存放。
并且,编码装置使静态对象与动态对象彼此独立地编码,针对由静态对象构成的世界空间,可以重叠动态对象。此时,动态对象由一个以上的SPC构成,各SPC与构成重叠了该SPC的静态对象一个以上的SPC对应。另外,动态对象可以不由SPC来表现,可以由一个以上的VLM或VXL来表现。
并且,编码装置可以将静态对象与动态对象作为彼此不同的流来编码。
并且,编码装置也可以生成包括构成动态对象的一个以上的SPC的GOS。而且,编码装置可以将包括动态对象的GOS(GOS_M)、与和GOS_M的空间区域对应的静态对象的GOS设定为大小相同(占有相同的空间区域)。这样,能够以GOS为单位来进行重叠处理。
构成动态对象的P-SPC或B-SPC也可以参照编码完毕的不同的GOS中包含的SPC。动态对象的位置随着时间发生变化,同一动态对象作为不同时刻的GOS而被编码的情况中,跨越GOS的参照从压缩率的观点来看是有效的。
并且,也可以按照编码数据的用途,来对上述的第1方法与第2方法进行切换。例如,在编码三维数据作为地图而被应用的情况下,由于希望与动态对象分离,因此,编码装置采用第2方法。另外,编码装置在对音乐会或体育等活动的三维数据进行编码的情况下,若无需对动态对象进行分离,则采用第1方法。
并且,GOS或SPC的解码时刻与显示时刻能够存放在编码数据内、或作为元信息存放。并且,静态对象的时刻信息可以全部相同。此时,实际的解码时刻与显示时刻可以由解码装置来决定。或者,作为解码时刻,按照每个GOS或SPC来赋予不同的值,作为显示时刻,也可以全被赋予同一个值。而且,如HEVC的HRD(Hypothetical Reference Decoder)等动态图像编码中的解码器模式所示,解码器具有规定的大小的缓冲器,只要按照解码时刻,以规定的比特率读取比特流,就可以导入不会被破坏且保证能够解码的模型。
接着,对世界空间内的GOS的配置进行说明。世界空间中的三维空间的坐标由彼此正交的3个坐标轴(x轴、y轴、z轴)来表现。通过在GOS的编码顺序中设定规定的规则,从而在空间上邻接的GOS能够在编码数据内进行连续的编码。例如在图4所示的例子中,对xz平面内的GOS进行连续的编码。在一个xz平面内的所有的GOS的编码结束后,对y轴的值进行更新。即,随着不断地编码,世界空间向y轴方向延伸。并且,GOS的索引编号被设定为编码顺序。
在此,世界空间的三维空间与GPS、或纬度以及经度等地理上的绝对坐标一一对应。或者,可以由相对于预先设定的基准位置的相对位置来表现三维空间。三维空间的x轴、y轴、z轴的方向作为基于纬度以及经度等而被决定的方向向量来表现,该方向向量作为元信息与编码数据一同存放。
并且,GOS的大小被设定为固定,编码装置将该大小作为元信息来存放。并且,GOS的大小例如可以根据是否为市内或者室内、室外等来进行切换。即,GOS的大小可以按照具有作为信息的价值的对象的量或性质来进行切换。或者,编码装置可以在同一世界空间内,按照对象的密度等,对GOS的大小、或GOS内的I-SPC的间隔进行恰当地切换。例如,编码装置在对象的密度越高的情况下,就越将GOS的大小设定为小、将GOS内的I-SPC的间隔设定为短。
在图5的例子中,在从第3至第10个GOS的区域中,由于对象的密度高,因此,为了实现微小粒度的随机存取,则GOS被细分。并且,从第7到第10个GOS分别存在于第3至第6个GOS的背面。
接着,对本实施方式的三维数据编码装置的构成以及工作的流程进行说明。图6是本实施方式的三维数据编码装置100的框图。图7是示出三维数据编码装置100的工作例子的流程图。
图6所示的三维数据编码装置100通过对三维数据111进行编码,来生成编码三维数据112。该三维数据编码装置100具备:获得部101、编码区域决定部102、分割部103、以及编码部104。
如图7所示,首先,获得部101获得作为点群数据的三维数据111(S101)。
接着,编码区域决定部102从获得的点群数据所对应的空间区域中,决定编码对象的区域(S102)。例如,编码区域决定部102按照用户或车辆的位置,将该位置的周边的空间区域决定为编码对象的区域。
接着,分割部103将编码对象的区域中包含的点群数据分割为各个处理单位。在此,处理单位是上述的GOS以及SPC等。并且,该编码对象的区域例如与上述的世界空间对应。具体而言,分割部103根据预先设定的GOS的大小、动态对象的有无或大小,将点群数据分割为处理单位(S103)。并且,分割部103在各个GOS中决定在编码顺序中成为开头的SPC的开始位置。
接着,编码部104通过对各个GOS内的多个SPC进行依次编码,来生成编码三维数据112(S104)。
另外,在此,在将编码对象的区域分割为GOS以及SPC之后,虽然示出了对各个GOS进行编码的例子,不过,处理的顺序并非受上述所限。例如,可以在决定了一个GOS的构成之后,对该GOS进行编码,在此之后决定GOS的构成等顺序。
这样,三维数据编码装置100通过对三维数据111进行编码,来生成编码三维数据112。具体而言,三维数据编码装置100将三维数据分割为随机存取单位,即分割为分别与三维坐标对应的第1处理单位(GOS),将第1处理单位(GOS)分割为多个第2处理单位(SPC),将第2处理单位(SPC)分割为多个第3处理单位(VLM)。并且,第3处理单位(VLM)包括一个以上的体素(VXL),体素(VXL)是与位置信息对应的最小单位。
接着,三维数据编码装置100通过对多个第1处理单位(GOS)的每一个进行编码,来生成编码三维数据112。具体而言,三维数据编码装置100在各个第1处理单位(GOS),对多个第2处理单位(SPC)的每一个进行编码。并且,三维数据编码装置100在各个第2处理单位(SPC),对多个第3处理单位(VLM)的每一个进行编码。
例如,三维数据编码装置100在处理对象的第1处理单位(GOS)为封闭式GOS的情况下,针对处理对象的第1处理单位(GOS)中包含的处理对象的第2处理单位(SPC),参照处理对象的第1处理单位(GOS)中包含的其他的第2处理单位(SPC)进行编码。即,三维数据编码装置100不参照与处理对象的第1处理单位(GOS)不同的第1处理单位(GOS)中包含的第2处理单位(SPC)。
另一方面,在处理对象的第1处理单位(GOS)为开放式GOS的情况下,针对处理对象的第1处理单位(GOS)中包含的处理对象的第2处理单位(SPC),参照处理对象的第1处理单位(GOS)中包含的其他的第2处理单位(SPC)、或与处理对象的第1处理单位(GOS)不同的第1处理单位(GOS)中包含的第2处理单位(SPC)进行编码。
并且,三维数据编码装置100,作为处理对象的第2处理单位(SPC)的类型,从不参照其他的第2处理单位(SPC)的第1类型(I-SPC)、参照其他的一个第2处理单位(SPC)的第2类型(P-SPC)、以及参照其他的两个第2处理单位(SPC)的第3类型中选择一个,并按照选择的类型,对处理对象的第2处理单位(SPC)进行编码。
接着,对本实施方式的三维数据解码装置的构成以及工作的流程进行说明。图8是本实施方式的三维数据解码装置200的框图。图9是示出三维数据解码装置200的工作例子的流程图。
图8所示的三维数据解码装置200通过对编码三维数据211进行解码,来生成解码三维数据212。在此,编码三维数据211例如是在三维数据编码装置100生成的编码三维数据112。该三维数据解码装置200具备:获得部201、解码开始GOS决定部202、解码SPC决定部203、以及解码部204。
首先,获得部201获得编码三维数据211(S201)。接着,解码开始GOS决定部202决定为解码对象的GOS(S202)。具体而言,解码开始GOS决定部202参照编码三维数据211内或与编码三维数据分别存放的元信息,将包括开始解码的空间位置、对象、或与时刻对应的SPC的GOS决定为解码对象的GOS。
接着,解码SPC决定部203决定在GOS内进行解码的SPC的类型(I、P、B)(S203)。例如,解码SPC决定部203对(1)是否仅解码I-SPC、(2)是否解码I-SPC以及P-SPC、(3)是否解码所有的类型进行决定。另外,在解码所有的SPC等预先规定了将要解码的SPC的类型的情况下,也可以不进行本步骤。
接着,解码部204获得在GOS内的解码顺序(与编码顺序相同)中为开头的SPC,在编码三维数据211内开始的地址位置,从该地址位置获得开头SPC的编码数据,从该开头SPC依次对各个SPC进行解码(S204)。并且,上述地址位置被存放在元信息等中。
这样,三维数据解码装置200对解码三维数据212进行解码。具体而言,三维数据解码装置200通过对分别与三维坐标对应的第1处理单位(GOS)的编码三维数据211的每一个进行解码,来生成作为随机存取单位的第1处理单位(GOS)的解码三维数据212。更具体而言,三维数据解码装置200在各个第1处理单位(GOS)对多个第2处理单位(SPC)的每一个进行解码。并且,三维数据解码装置200在各个第2处理单位(SPC)对多个第3处理单位(VLM)的每一个进行解码。
以下对随机存取用的元信息进行说明。该元信息由三维数据编码装置100生成,包含在编码三维数据112(211)中。
在以往的二维的动态图像的随机存取中,解码是从指定的时刻的附近的随机存取单位的开头帧开始的。然而,在世界空间中,除了时刻以外还设想了针对(坐标或对象等)的随机存取。
因此,为了至少实现对坐标、对象、以及时刻这3个要素的随机存取,准备了对各个要素与GOS的索引编号建立了对应的表。而且,将GOS的索引编号与成为GOS的开头的I-SPC的地址建立对应。图10示出了元信息中包含的表的一个例子。另外,无需使用图10所示的所有的表,至少使用一个表即可。
以下作为一个例子,对以坐标为起点的随机存取进行说明。在针对坐标(x2、y2、z2)进行存取时,首先参照坐标-GOS表,可以知道坐标为(x2、y2、z2)的地点包含在第2个GOS中。接着,参照GOS地址表,由于可以知道第2个GOS中开头的I-SPC的地址为addr(2),因此解码部204从该地址获得数据,并开始解码。
另外,地址可以是逻辑格式中的地址,也可以是HDD或存储器的物理地址。并且,也可以取代地址而采用对文件段进行确定的信息。例如,文件段是对一个以上的GOS等进行分段后的单位。
并且,在对象为跨越多个GOS的情况下,在对象GOS表中也可以示出多个对象所属的GOS。若该多个GOS为封闭式GOS,编码装置以及解码装置能够并行进行编码或解码。另外,若该多个GOS为开放式GOS,则通过多个GOS彼此相互参照,从而能够进一步提高压缩效率。
作为对象的例子有人、动物、汽车、自行车、信号灯、或成为陆上标志的建筑物等。例如,三维数据编码装置100在世界空间的编码时,从三维的点云等中提取对象所特有的特征点,根据该特征点来检测对象,并能够将检测的对象设定为随机存取点。
这样,三维数据编码装置100生成第1信息,该第1信息示出多个第1处理单位(GOS)、以及与多个第1处理单位(GOS)的每一个对应的三维坐标。并且,编码三维数据112(211)包括该第1信息。并且,第1信息进一步示出与多个第1处理单位(GOS)的每一个对应的对象、时刻以及数据存放目的地之中的至少一个。
三维数据解码装置200从编码三维数据211中获得第1信息,利用第1信息来确定与被指定的三维坐标、对象或时刻对应的第1处理单位的编码三维数据211,并对该编码三维数据211进行解码。
以下对其他的元信息的例子进行说明。除了随机存取用的元信息以外,三维数据编码装置100还可以生成并存放以下的元信息。并且,三维数据解码装置200也可以将该元信息在解码时利用。
在将三维数据作为地图信息来利用的情况下等,按照用途来规定档次(profile),示出该档次的信息可以包含在元信息内。例如规定了面向市区或郊外的档次、或者规定了面向飞行物的档次,并且分别定义了世界空间、SPC或VLM的最大或最小的大小等。例如,在面向市区的档次中,需要比郊外更详细的信息,因此VLM的最小尺寸被设定得较小。
元信息也可以包括示出对象的种类的标签值。该标签值与构成对象的VLM、SPC、或GOS对应。可以按照对象的种类等来设定标签值,例如标签值“0”表示“人”、标签值“1”表示“汽车”、标签值“2”表示“信号灯”。或者,在对象的种类难以判断或不需要判断的情况下,也可以使用表示大小、或是动态对象还是静态对象等性质的标签值。
并且,元信息也可以包括示出世界空间所占的空间区域的范围的信息。
并且,元信息也可以作为编码数据的流全体、或GOS内的SPC等多个SPC所共用的头部信息,来存放SPC或VXL的大小。
并且,元信息也可以包括点云的生成中所使用的距离传感器或摄像机等识别信息,或者包括示出点云内的点群的位置精确度的信息。
并且,元信息可以包括示出世界空间是仅由静态对象构成还是含有动态对象的信息。
以下对本实施方式的变形例进行说明。
编码装置或解码装置可以对彼此不同的两个以上的SPC或GOS并行进行编码或解码。并行进行编码或解码的GOS能够根据示出GOS的空间位置的元信息等来决定。
在将三维数据作为车辆或飞行物体等移动时的空间地图来使用、或者生成这种空间地图的情况等中,编码装置或解码装置可以对基于GPS、路径信息、或缩放倍率等而被确定的空间中包含的GOS或SPC进行编码或解码。
并且,解码装置也可以从离自身位置或行走路径近的空间开始依次进行解码。编码装置或解码装置也可以使离自身位置或行走路径远的空间的优先级比近的空间的优先级低,来进行编码或解码。在此,使优先级降低是指,降低处理顺序、降低析像度(筛选后处理)、或降低画质(提高编码效率。例如加大量化步长)等。
并且,解码装置在对空间内被分阶层编码的编码数据进行解码时,也可以仅解码低阶层。
并且,解码装置也可以按照地图的缩放倍率或用途,先从低阶层开始进行解码。
并且,在汽车或机器人的自动走行时所进行的自身位置估计或物体识别等用途中,编码装置或解码装置也可以将距离路面规定高度以内的区域(进行识别的区域)之外的区域的析像度降低来进行编码或解码。
并且,编码装置也可以对表现室内和室外的空间形状的点云分别独立地进行编码。例如通过将表现室内的GOS(室内GOS)与表现室外的GOS(室外GOS)分开,从而解码装置在利用编码数据时,能够按照视点位置来选择将要解码的GOS。
并且,编码装置可以使坐标近的室内GOS和室外GOS在编码流中邻接,来进行编码。例如,编码装置将两者的标识符对应起来,对示出在编码流内、或另外存放的元信息内建立了对应的标识符的信息进行存放。据此,解码装置能够参照元信息内的信息,来识别坐标近的室内GOS与室外GOS。
并且,编码装置也可以在室内GOS与室外GOS对GOS或SPC的大小进行切换。例如,编码装置在室内与室外相比,将GOS的大小设定得较小。并且,编码装置也可以在室内GOS和室外GOS,对从点云提取特征点时的精确度或对象检测的精确度等进行变更。
并且,编码装置可以将用于解码装置将动态对象与静态对象进行区分显示的信息附加到编码数据。据此,解码装置能够对动态对象与红色框或说明用的文字等进行组合来表示。另外,解码装置也可以取代动态对象而仅用红色框或说明用文字来表示。并且,解码装置可以表示更详细的对象类别。例如,汽车可以采用红色框,人可以采用黄色框。
并且,编码装置或解码装置可以按照动态对象的出现频度、或静态对象与动态对象的比例等,将动态对象与静态对象作为不同的SPC或GOS,来决定是否进行编码或解码。例如,在动态对象的出现频度或比例超过阈值的情况下,动态对象与静态对象混在的SPC或GOS则被允许,在动态对象的出现频度或比例没有超过阈值的情况下,动态对象与静态对象混在的SPC或GOS则不会被允许。
在动态对象不是从点云而是从摄像机的二维图像信息检测时,编码装置可以对用于识别检测结果的信息(框或文字等)与对象位置分别获得,将这些信息作为三维的编码数据的一部分来编码。在这种情况下,解码装置针对静态对象的解码结果,使表示动态对象的辅助信息(框或文字)重叠显示。
并且,编码装置可以按照静态对象的形状的复杂程度等,对VXL或VLM的疏密程度进行变更。例如,编码装置在静态对象的形状越复杂的情况下,就越将VXL或VLM设定成密。而且,编码装置可以按照VXL或VLM的疏密程度,来决定在对空间位置或颜色信息进行量化时的量化步长等。例如,编码装置在VXL或VLM越密的情况下,就越将量化步长设定为小。
如以上所示,本实施方式的编码装置或解码装置以具有坐标信息的空间单位,来进行空间的编码或解码。
并且,编码装置以及解码装置在空间内以体积单位来进行编码或解码。体积包括与位置信息对应的最小单位即体素。
并且,编码装置以及解码装置通过将包括坐标、对象、以及时间等的空间信息的各个要素与GOP建立了对应的表、或在各个要素间对应的表,使任意的要素之间建立对应来进行编码或解码。并且,解码装置利用被选择的要素的值来判断坐标,并根据坐标来确定体积、体素或空间,对包括该体积或体素的空间、或被确定的空间进行解码。
并且,编码装置通过特征点提取或对象识别,来判断能够由要素选择的体积、体素或空间,并作为能够随机存取的体积、体素或空间来编码。
空间被分为三种类型,即:以该空间单体能够编码或解码的I-SPC、参照任意的一个处理完毕的空间来编码或解码的P-SPC、参照任意的两个处理完毕的空间来编码或解码的B-SPC。
一个以上的体积与静态对象或动态对象对应。包含静态对象的空间与包含动态对象的空间彼此作为不同的GOS而被编码或解码。即,包含静态对象的SPC与包含动态对象的SPC被分配到不同的GOS。
动态对象按每个对象来编码或解码,与仅包含静态对象的一个以上的空间对应。即,多个动态对象被分别编码,得到的多个动态对象的编码数据与仅包含静态对象的SPC对应。
编码装置以及解码装置提高GOS内的I-SPC的优先级,来进行编码或解码。例如,编码装置以使I-SPC的劣化减少的方式(解码后,原本的三维数据能够更忠实地被再现)来进行编码。并且,解码装置例如仅对I-SPC进行解码。
编码装置可以按照世界空间内的对象的疎密程度或数值(数量),改变利用I-SPC的频度,来进行编码。即,编码装置按照三维数据中包含的对象的数量或疏密程度,来变更对I-SPC进行选择的频度。例如,编码装置在世界空间内的对象的密度越大的情况下,就越提高I空间的使用频度。
并且,编码装置以GOS为单位对随机存取点进行设定,将示出与GOS对应的空间区域的信息存放到头部信息。
编码装置例如采用默认值来作为GOS的空间大小。另外,编码装置也可以按照对象或动态对象的数值(数量)或疏密程度来变更GOS的大小。例如,编码装置在对象或动态对象越密或数量越多的情况下,就越将GOS的空间大小设定为小。
并且,空间或体积包括利用深度传感器、回转仪、或摄像机等传感器得到的信息而被导出的特征点群。特征点的坐标被设定为体素的中心位置。并且,通过体素的细分化,能够实现位置信息的高精确度化。
特征点群利用多个图片而被导出。多个图片至少具有以下的两种时刻信息,即:实际的时刻信息、以及与空间对应的在多个图片中的同一个时刻信息(例如,用于速率控制等的编码时刻)。
并且,以包括一个以上的空间的GOS为单位来进行编码或解码。
编码装置以及解码装置参照处理完毕的GOS内的空间,对处理对象的GOS内的P空间或B空间进行预测。
或者,编码装置以及解码装置不参照不同的GOS,利用处理对象的GOS内的处理完毕的空间,对处理对象的GOS内的P空间或B空间进行预测。
并且,编码装置以及解码装置以包括一个以上的GOS的世界空间为单位,来发送或接收编码流。
并且,GOS至少在世界空间内的一个方向上具有层结构,编码装置以及解码装置从下位层开始进行编码或解码。例如,能够随机存取的GOS属于最下位层。属于上位层的GOS仅参照属于同一层以下的层的GOS。即,GOS在预先规定的方向上被空间分割,包括分别具有一个以上的SPC的多个层。编码装置以及解码装置针对各个SPC,通过参照与该SPC为同一层或比该SPC下层的层中包含的SPC来进行编码或解码。
并且,编码装置以及解码装置在包括多个GOS的世界空间单位内,连续地对GOS进行编码或解码。编码装置以及解码装置将示出编码或解码的顺序(方向)的信息作为元数据进行写入或读取。即,编码数据包括示出多个GOS的编码顺序的信息。
并且,编码装置以及解码装置对彼此不同的两个以上的空间或GOS并行进行编码或解码。
并且,编码装置以及解码装置对空间或GOS的空间信息(坐标、大小等)进行编码或解码。
并且,编码装置以及解码装置对根据GPS、路径信息或倍率等与自己的位置或/以及区域大小有关的外部信息,而被确定的特定空间中包含的空间或GOS进行编码或解码。
编码装置或解码装置使离自己的位置远的空间的优先级低于离自己近的空间,来进行编码或解码。
编码装置按照倍率或用途,对世界空间中的一个方向进行设定,对在该方向上具有层结构的GOS进行编码。并且,解码装置针对按照倍率或用途而被设定的在世界空间的一个方向具有层结构的GOS,从下位层开始优先进行解码。
编码装置使室内和室外的空间中所包含的特征点提取、对象识别的精确度、或空间区域大小等发生变化。但是,编码装置以及解码装置将坐标近的室内GOS与室外GOS在世界空间内相邻来进行编码或解码,将这些标识符也对应起来进行编码或解码。
(实施方式2)
在将点云的编码数据用于实际的装置或服务时,为了抑制网络带宽,而希望按照用途来对所需要的信息进行收发。然而,至今的三维数据的编码结构中不存在这样的功能,因此也没有与此相对的编码方法。
在本实施方式中将要说明的是,用于提供在三维的点云的编码数据中,按照用途来对所需要的信息进行收发的功能的三维数据编码方法以及三维数据编码装置、还有对该编码数据进行解码的三维数据解码方法以及三维数据解码装置。
将具有一定以上的特征量的体素(VXL)定义为特征体素(FVXL),将以FVXL构成的世界空间(WLD)定义为稀疏世界空间(SWLD)。图11示出了稀疏世界空间以及世界空间的构成例。在SWLD中包括:FGOS,是以FVXL构成的GOS;FSPC,是以FVXL构成的SPC;以及FVLM,是以FVXL构成的VLM。FGOS、FSPC以及FVLM的数据结构以及预测结构可以与GOS、SPC以及VLM相同。
特征量是指,对VXL的三维位置信息、或VXL位置的可见光信息进行表现的特征量,尤其是立体物的角部以及边缘等能够检测到较多的特征量。具体而言,该特征量虽然是以下所述的三维特征量或可见光的特征量,除此之外,只要是表示VXL的位置、亮度、或颜色信息等的特征量,可以是任意的特征量。
作为三维特征量,采用SHOT特征量(Signature of Histograms ofOrienTations:方位直方图特征)、PFH特征量(Point Feature Histograms:点特征直方图)、或PPF特征量(Point Pair Feature:点对特征)。
SHOT特征量通过对VXL周边进行分割,并对基准点与被分割的区域的法线向量的内积进行计算,进行直方图化而得到的。该SHOT特征量具有维数高、特征表现力高的特征。
PFH特征量是通过在VXL附近选择多个2点群,根据这2点算出法线向量等,并进行直方图化而得到的。该PFH特征量由于是直方图特征,针对少量干扰具有橹棒性,而且具有特征表现力高的特征。
PPF特征量是按照2点的VXL,利用法线向量等而算出的特征量。在该PPF特征量中,由于使用所有的VXL,因此针对遮蔽具有橹棒性。
并且,作为可见光的特征量,能够使用采用了图像的亮度梯度信息等信息的SIFT(Scale-Invariant Feature Transform:尺度不变特征转换)、SURF(Speeded Up RobustFeatures:加速稳健特征)、或HOG(Histogram of Oriented Gradients:方向梯度直方图)等。
SWLD是通过从WLD的各VXL算出上述特征量,并提取FVXL而生成的。在此,SWLD可以在WLD每次被更新时来更新,也可以是与WLD的更新定时无关,在一定时间经过后定期地进行更新。
SWLD可以按照每个特征量来生成。例如基于SHOT特征量的SWLD1和基于SIFT特征量的SWLD2所示,可以按照每个特征量来分别生成SWLD,并按照用途来区分使用SWLD。并且,也可以将算出的各FVXL的特征量作为特征量信息来保持到各FVXL。
接着,对稀疏世界空间(SWLD)的利用方法进行说明。由于SWLD仅包含特征体素(FVXL),因此,与包括所有的VXL的WLD相比,数据大小一般比较小。
在利用特征量来实现某种目的的应用程序中,通过取代WLD而利用SWLD的信息,能够抑制从硬盘的读出时间,并且能够抑制网络传输时的频带以及传输时间。例如,作为地图信息,事先将WLD和SWLD保持到服务器,通过按照来自客户端的需求来将发送的地图信息切换为WLD或SWLD,从而能够抑制网络带宽以及传输时间。以下示出具体的例子。
图12以及图13示出了SWLD以及WLD的利用例。如图12所示,在作为车载装置的客户端1需要作为自身位置判断用途的地图信息的情况下,客户端1向服务器发送自身位置估计用的地图数据的获得需求(S301)。服务器按照该获得需求将SWLD发送给客户端1(S302)。客户端1利用接收的SWLD进行自身位置判断(S303)。此时,客户端1通过测距仪等距离传感器、立体摄像机、或多个单眼相机的组合等各种方法,来获得客户端1的周边的VXL信息,根据得到的VXL信息和SWLD来估计自身位置信息。在此,自身位置信息包括客户端1的三维位置信息以及朝向等。
如图13所示,在作为车载装置的客户端2需要作为三维地图等地图描绘的用途的地图信息的情况下,客户端2将地图描绘用的地图数据的获得需求发送给服务器(S311)。服务器按照该获得需求,将WLD发送给客户端2(S312)。客户端2利用接收的WLD来进行地图描绘(S313)。此时,客户端2例如使用自己用可见光摄像机等拍摄的图像、以及从服务器获得的WLD,来制成构思图像,将制成的图像描绘到汽车导航等画面。
如以上所示,服务器在主要需要自身位置估计这种各VXL的特征量的用途中,将SWLD发送给客户端,像地图描绘那样,在需要详细的VXL信息的情况下,将WLD发送给客户端。据此,能够高效地对地图数据进行收发。
另外,客户端可以判断自己需要SWLD和WLD的哪一个,并向服务器请求SWLD或WLD的发送。并且,服务器可以根据客户端或网络的状况,来判断应该发送SWLD或WLD的哪一个。
接着,将要说明的是对稀疏世界空间(SWLD)与世界空间(WLD)的收发进行切换的方法。
可以按照网络带宽来对WLD或SWLD的接收进行切换。图14示出了这种情况下的工作例。例如,在能够使用LTE(Long Term Evolution:长期演进)环境下等的网络带宽的低速网络被使用的情况下,客户端经由低速网络来向服务器进行存取时(S321),从服务器获得作为地图信息的SWLD(S322)。另外在使用WiFi环境下等网络带宽有富余的高速网络的情况下,客户端经由高速网络来向服务器进行存取(S323),从服务器获得WLD(S324)。据此,客户端能够按照该客户端的网络带宽来获得恰当的地图信息。
具体而言,客户端在室外经由LTE来接收SWLD,在进入到设施等室内的情况下,经由WiFi来获得WLD。据此,客户端能够获得室内的更加详细的地图信息。
这样,客户端可以按照自身所使用的网络的频带,向服务器请求WLD或SWLD。或者,客户端可以将示出自身所使用的网络的频带的信息发送给服务器,服务器按照该信息,向该客户端发送恰当的数据(WLD或SWLD)。或者,服务器可以判别客户端的网络带宽,向该客户端发送恰当的数据(WLD或SWLD)。
并且,可以按照移动速度来对WLD或SWLD的接收进行切换。图15示出了这种情况下的工作例。例如,在客户端高速移动的情况下(S331),客户端从服务器接收SWLD(S332)。另外,在客户端低速移动的情况下(S333),客户端从服务器接收WLD(S334)。据此,客户端既能够抑制网络带宽,又能够按照速度来获得地图信息。具体而言,客户端在高速公路行驶中,通过接收数据量少的SWLD,从而大致能够以恰当的速度来更新地图信息。另外,在客户端在一般道路行驶时,通过接收WLD,从而能够获得更加详细的地图信息。
这样,客户端可以按照自身的移动速度向服务器请求WLD或SWLD。或者,客户端可以将示出自身的移动速度的信息发送给服务器,服务器按照该信息,向该客户端发送恰当的数据(WLD或SWLD)。或者,服务器可以判别客户端的移动速度,向该客户端发送恰当的数据(WLD或SWLD)。
并且,也可以是,客户端先从服务器获得SWLD,而后获得其中的重要区域的WLD。例如,客户端在获得地图数据时,首先以SWLD获得概略的地图信息,从中筛选建筑物、标识、或人物等的特征出现较多的区域,之后再获得筛选后的区域的WLD。据此,客户端既能够抑制来自服务器的接收数据量,又能够获得所需要的区域的详细信息。
并且,也可以是,服务器根据WLD按照每个物体来分别制作SWLD,客户端按照用途来分别进行接收。据此,能够抑制网络带宽。例如,服务器从WLD中预先识别人或车,制作出人的SWLD和车的SWLD。客户端在想获得周围的人的信息的情况下,接收人的SWLD,在想获得车的信息的情况下,接收车的SWLD。并且,这种SWLD的种类可以根据被附加在头部等的信息(标志或类型等)来区別。
接着,对本实施方式的三维数据编码装置(例如服务器)的构成以及工作的流程进行说明。图16是本实施方式的三维数据编码装置400的框图。图17是由三维数据编码装置400进行三维数据编码处理的流程图。
图16所示的三维数据编码装置400,通过对输入三维数据411进行编码,从而生成作为编码流的编码三维数据413以及414。在此,编码三维数据413是与WLD对应的编码三维数据,编码三维数据414是与SWLD对应的编码三维数据。该三维数据编码装置400具备:获得部401、编码区域决定部402、SWLD提取部403、WLD编码部404、以及SWLD编码部405。
如图17所示,首先,获得部401获得作为三维空间内的点群数据的输入三维数据411(S401)。
接着,编码区域决定部402根据点群数据所存在的空间区域,来决定编码对象的空间区域(S402)。
接着,SWLD提取部403将编码对象的空间区域定义为WLD,根据WLD中包含的各VXL算出特征量。并且,SWLD提取部403提取特征量为预先规定的阈值以上的VXL,将提取的VXL定义为FVXL,通过将该FVXL追加到SWLD,从而生成提取三维数据412(S403)。即,从输入三维数据411提取特征量为阈值以上的提取三维数据412。
接着,WLD编码部404通过对与WLD对应的输入三维数据411进行编码,从而生成与WLD对应的编码三维数据413(S404)。此时,WLD编码部404将用于区别该编码三维数据413是包含WLD的流的信息附加到编码三维数据413的头部。
并且,SWLD编码部405通过对与SWLD对应的提取三维数据412进行编码,从而生成与SWLD对应的编码三维数据414(S405)。此时,SWLD编码部405将用于区别该编码三维数据414是包含SWLD的流的信息附加到编码三维数据414的头部。
并且,生成编码三维数据413的处理与生成编码三维数据414的处理的处理顺序也可以与上述相反。并且,上述的处理的一部分或全部也可以并行执行。
作为被赋予到编码三维数据413以及414的头部的信息例如被定义为“world_type”这种参数。在world_type=0的情况下,表示流包含WLD,在world_type=1的情况下,表示流包含SWLD。在定义其他的更多的类别的情况下,可以如world_type=2这样,增加分配的数值。并且,在编码三维数据413以及414的一方中可以包含特定的标志。例如,在编码三维数据414可以被赋予包括示出该流包含SWLD的标志。在这种情况下,解码装置可以根据标志的有无,来判别是包含WLD的流、还是包含SWLD的流。
并且,WLD编码部404对WLD进行编码时使用的编码方法可以与SWLD编码部405对SWLD进行编码时使用的编码方法不同。
例如,由于在SWLD数据被抽选,这与WLD相比,与周边的数据的相关有可能变低。因此,在用于SWLD的编码方法中,与用于WLD的编码方法相比,帧内预测以及帧间预测之中的帧间预测被优先。
并且,也可以是在用于SWLD的编码方法与用于WLD的编码方法中,三维位置的表现手法不同。例如,可以是,在FWLD由三维坐标来表现FVXL的三维位置,在WLD通过后述的八叉树来表现三维位置,并且可以是相反的。
并且,SWLD编码部405以SWLD的编码三维数据414的数据大小比WLD的编码三维数据413的数据大小小的方式进行编码。例如以上所述,SWLD与WLD相比,数据间的相关有可能降低。据此,编码効率降低,编码三维数据414的数据大小有可能比WLD的编码三维数据413的数据大小大。因此,SWLD编码部405在得到的编码三维数据414的数据大小比WLD的编码三维数据413的数据大小大的情况下,通过进行再编码,从而再次生成降低了数据大小的编码三维数据414。
例如,SWLD提取部403再次生成提取的特征点的数量减少了的提取三维数据412,SWLD编码部405对该提取三维数据412进行编码。或者,可以将SWLD编码部405中的量化程度变得粗糙。例如,在后述的八叉树结构中,通过对最下层的数据进行舍入,从而能够使量化的程度变得粗糙。
并且,SWLD编码部405在不能将SWLD的编码三维数据414的数据大小比WLD的编码三维数据413的数据大小小的情况下,也可以不生成SWLD的编码三维数据414。或者,可以将WLD的编码三维数据413复制到SWLD的编码三维数据414。即,作为SWLD的编码三维数据414,可以直接使用WLD的编码三维数据413。
接着,对本实施方式的三维数据解码装置(例如客户端)的构成以及工作的流程进行说明。图18是本实施方式的三维数据解码装置500的框图。图19是三维数据解码装置500进行三维数据解码处理的流程图。
图18所示的三维数据解码装置500通过对编码三维数据511进行解码,从而生成解码三维数据512或513。在此,编码三维数据511例如是在三维数据编码装置400生成的编码三维数据413或414。
该三维数据解码装置500具备:获得部501、头部解析部502、WLD解码部503、以及SWLD解码部504。
如图19所示,首先,获得部501获得编码三维数据511(S501)。接着,头部解析部502对编码三维数据511的头部进行解析,判别编码三维数据511是包含WLD的流、还是包含SWLD的流(S502)。例如,参照上述的world_type的参数来进行判别。
在编码三维数据511是包含WLD的流的情况下(S503的“是”),WLD解码部503对编码三维数据511进行解码,从而生成WLD的解码三维数据512(S504)。另外,在编码三维数据511是包含SWLD的流的情况下(S503的“否”),SWLD解码部504对编码三维数据511进行解码,从而生成SWLD的解码三维数据513(S505)。
并且,与编码装置同样,WLD解码部503在对WLD进行解码时使用的解码方法、与SWLD解码部504对SWLD进行解码时使用的解码方法可以不同。例如,在用于SWLD的解码方法中,与用于WLD的解码方法相比,可以使帧内预测以及帧间预测中的帧间预测优先。
并且,在用于SWLD的解码方法与用于WLD的解码方法中,三维位置的表现手法可以不同。例如,在SWLD可以通过三维坐标来表现FVXL的三维位置,在WLD可以通过后述的八叉树来表现三维位置,并且也可以相反。
接着,对作为三维位置的表现手法的八叉树表现进行说明。三维数据中包含的VXL数据被转换为八叉树结构后被编码。图20示出了WLD的VXL的一个例子。图21示出了图20所示的WLD的八叉树结构。在图20所示的例子中,存在作为包含点群的VXL(以下,有效VXL)的3个VXL1~3。如图21所示,八叉树结构由节点和叶节点构成。各节点最大具有8个节点或叶节点。各叶节点具有VXL信息。在此,图21所示的叶节点之中,叶节点1、2、3分别表示图20所示的VXL1、VXL2、VXL3。
具体而言,各节点以及叶节点与三维位置对应。节点1与图20所示的所有的块对应。与节点1对应的块被分割为8个块,8个块之中,包括有效VXL的块被设定为节点,除此以外的块被设定为叶节点。与节点对应的块进一步被分割为8个节点或叶节点,这种处理被重复的次数与树状结构中的阶层数相同。并且,最下层的块全被设定为叶节点。
并且,图22示出了从图20所示的WLD生成的SWLD的例子。图20所示的VXL1以及VXL2的特征量提取的结果被判断为FVXL1以及FVXL2,被加入到SWLD。另外,VXL3没有被判断为FVXL,因此不包含在SWLD中。图23示出了图22所示的SWLD的八叉树结构。在图23所示的八叉树结构中,图21所示的、相当于VXL3的叶节点3被删除。据此,图21所示的节点3没有有效VXL,而被变更为叶节点。这样,一般而言,SWLD的叶节点数比WLD的叶节点数少,SWLD的编码三维数据也比WLD的编码三维数据小。
以下对本实施方式的变形例进行说明。
例如也可以是,在车载装置等客户端在进行自身位置估计时,从服务器接收SWLD,利用SWLD进行自身位置估计,并进行障碍物检测的情况下,利用测距仪等距离传感器、立体摄像机、或多个单眼相机的组合等各种方法,根据自身获得的周边的三维信息来执行障碍物检测。
并且,一般而言,在SWLD中很难包含平坦区域的VXL数据。为此,服务器保持用于静止的障碍物的检测的对WLD进行了下采样的下采样世界空间(SubWLD),并可以将SWLD与SubWLD发送给客户端。据此,既能够抑制网络带宽,又能够在客户端侧进行自身位置估计以及障碍物检测。
并且,在客户端快速描绘三维地图数据时,地图信息为网格结构则会有方便的情况。于是,服务器可以根据WLD生成网格,作为网格世界空间(MWLD)来事先保持。例如,在客户端需要进行粗糙的三维描绘时则接收MWLD,在需要进行详细的三维描绘时则接收WLD。据此,能够抑制网络带宽。
并且,服务器虽然从各VXL中,将特征量为阈值以上的VXL设定为FVXL,不过也可以通过不同的方法来算出FVXL。例如,服务器将构成信号或交叉点等的VXL、VLM、SPC、或GOS判断为在自身位置估计、驾驶辅助、或自动驾驶等中需要,则可以作为FVXL、FVLM、FSPC、FGOS而包含在SWLD。并且,上述判断可以通过手动进行。另外,可以在基于特征量而设定的FVXL等中加入由上述方法得到的FVXL等。即,SWLD提取部403进一步可以从输入三维数据411,将与具有预先规定的属性的物体对应的数据作为提取三维数据412来提取。
并且,可以针对需要用于这些用途的状况赋予与特征量不同的标签。服务器可以将信号或交叉点等自身位置估计、驾驶辅助、或自动驾驶等中所需要的FVXL,作为SWLD的上位层(例如车道(lane)世界空间)而另外保持。
并且,服务器也可以按照随机存取单位或规定的单位,将属性附加到WLD内的VXL。属性例如包括:示出自身位置估计中所需要的或不需要的信息、或示出作为信号或交叉点等交通信息是否重要等信息。并且,属性中也可以包括车道信息(GDF:Geographic DataFiles等)中的与Feature(交叉点或道路等)的对应关系。
并且,作为WLD或SWLD的更新方法,可以采用如下的方法。
示出人、施工、或街道树(面向轨迹)的变化等更新信息作为点群或元数据被上传到服务器。服务器根据该上传来更新WLD,在此之后,利用更新的WLD来更新SWLD。
并且,在客户端对自身位置估计时自身所生成的三维信息与从服务器接收的三维信息的不匹配进行检测的情况下,可以将自身所生成的三维信息与更新通知一起发送到服务器。在这种情况下,服务器利用WLD来更新SWLD。在SWLD没有被更新的情况下,服务器判断WLD自身是旧的。
并且,作为编码流的头部信息,虽然附加了用于区别是WLD还是SWLD的信息,例如在网格世界空间或车道世界空间等存在多种世界空间的情况下,用于对他们进行区別的信息可以被附加到头部信息。并且,在特征量不同的SWLD存在多个的情况下,用于对他们分别进行区別的信息也可以被附加到头部信息。
并且,SWLD虽然由FVXL来构成,不过也可以包括没有被判断为FVXL的VXL。例如,SWLD可以包括在算出FVXL的特征量时所使用的邻接VXL。据此,即使在SWLD的各FVXL没有附加特征量信息的情况下,客户端也能够在接收SWLD时来算出FVXL的特征量。另外,此时,SWLD可以包括用于区别各VXL是FVXL还是VXL的信息。
如以上所述,三维数据编码装置400从输入三维数据411(第1三维数据)提取特征量为阈值以上的提取三维数据412(第2三维数据),通过对提取三维数据412进行编码,来生成编码三维数据414(第1编码三维数据)。
据此,三维数据编码装置400生成对特征量为阈值以上的数据进行编码而得到的编码三维数据414。这样,与直接对输入三维数据411进行编码的情况相比,能够减少数据量。因此,三维数据编码装置400能够减少传输时的数据量。
并且,三维数据编码装置400进一步通过对输入三维数据411进行编码,来生成编码三维数据413(第2编码三维数据)。
据此,三维数据编码装置400例如按照使用用途等,能够对编码三维数据413与编码三维数据414进行有选择地传输。
并且,提取三维数据412由第1编码方法而被编码,输入三维数据411由与第1编码方法不同的第2编码方法而被编码。
据此,三维数据编码装置400能够针对输入三维数据411与提取三维数据412分别采用恰当的编码方法。
并且,在第1编码方法中,与第2编码方法相比,帧内预测以及帧间预测之中的帧间预测被优先。
据此,三维数据编码装置400能够针对邻接的数据间的相关容易变低的提取三维数据412,来提高帧间预测的优先级。
并且,在第1编码方法与第2编码方法中,三维位置的表现手法不同。例如在第2编码方法中,由八叉树来表现三维位置,在第1编码方法中,由三维坐标来表现三维位置。
据此,三维数据编码装置400针对数据数(VXL或FVXL的数量)不同的三维数据,能够采用更加恰当的三维位置的表现手法。
并且,在编码三维数据413以及414的至少一方包括,示出该编码三维数据是通过对输入三维数据411进行编码而得到的编码三维数据、还是通过对输入三维数据411之中的一部分进行编码而得到的编码三维数据的标识符。即,该标识符示出编码三维数据是WLD的编码三维数据413、还是SWLD的编码三维数据414。
据此,解码装置能够容易地判断获得的编码三维数据是编码三维数据413还是编码三维数据414。
并且,三维数据编码装置400以编码三维数据414的数据量比编码三维数据413的数据量少的方式,对提取三维数据412进行编码。
据此,三维数据编码装置400能够使编码三维数据414的数据量比编码三维数据413的数据量少。
并且,三维数据编码装置400进一步,从输入三维数据411将与具有预先规定的属性的物体对应的数据,作为提取三维数据412来提取。例如,具有预先规定的属性的物体是指,自身位置估计、驾驶辅助、或自动驾驶等中所需要的物体,是信号或交叉点等。
据此,三维数据编码装置400能够生成包括解码装置所需要的数据的编码三维数据414。
并且,三维数据编码装置400(服务器)进一步按照客户端的状态,将编码三维数据413以及414的一方发送到客户端。
据此,三维数据编码装置400能够按照客户端的状态,来发送恰当的数据。
并且,客户端的状态包括客户端的通信状况(例如网络带宽)或客户端的移动速度。
并且,三维数据编码装置400进一步按照客户端的请求,将编码三维数据413以及414的一方发送到客户端。
据此,三维数据编码装置400能够按照客户端的请求,发送恰当的数据。
并且,本实施方式的三维数据解码装置500对由上述三维数据编码装置400生成的编码三维数据413或414进行解码。
即,三维数据解码装置500通过第1解码方法,对从输入三维数据411提取的特征量为阈值以上的提取三维数据412被编码而得到的编码三维数据414进行解码。并且,三维数据解码装置500对输入三维数据411被编码而得到的编码三维数据413,利用与第1解码方法不同的第2解码方法进行解码。
据此,三维数据解码装置500针对特征量为阈值以上的数据被编码而得到的编码三维数据414与编码三维数据413,例如能够按照使用用途等来有选择地接收。据此,三维数据解码装置500能够减少传输时的数据量。而且,三维数据解码装置500能够针对输入三维数据411与提取三维数据412分别采用恰当的解码方法。
并且,在第1解码方法中,与第2解码方法相比,帧内预测以及帧间预测之中的帧间预测被优先。
据此,三维数据解码装置500针对邻接的数据间的相关容易变低的提取三维数据,能够提高帧间预测的优先级。
并且,在第1解码方法与第2解码方法中,三维位置的表现手法不同。例如在第2解码方法中通过八叉树来表现三维位置,在第1解码方法中通过三维坐标来表现三维位置。
据此,三维数据解码装置500针对数据数(VXL或FVXL的数量)不同的三维数据,能够采用更恰当的三维位置的表现手法。
并且,编码三维数据413以及414的至少一方包括标识符,该标识符示出该编码三维数据是通过对输入三维数据411进行编码而得到的编码三维数据、还是通过对输入三维数据411中的一部分进行编码而得到的编码三维数据。三维数据解码装置500参照该标识符,来识别编码三维数据413以及414。
据此,三维数据解码装置500能够容易地判断获得的编码三维数据是编码三维数据413还是编码三维数据414。
并且,三维数据解码装置500进一步将客户端(三维数据解码装置500)的状态通知给服务器。三维数据解码装置500按照客户端的状态,来接收从服务器发送的编码三维数据413以及414的一方。
据此,三维数据解码装置500能够按照客户端的状态来接收恰当的数据。
并且,客户端的状态包括客户端的通信状况(例如网络带宽)或客户端的移动速度。
并且,三维数据解码装置500进一步向服务器请求编码三维数据413以及414的一方,并按照该请求,接收从服务器发送的编码三维数据413以及414的一方。
据此,三维数据解码装置500能够接收与用途对应的恰当的数据。
(实施方式3)
在本实施方式中,对车辆间的三维数据的收发方法进行说明。例如进行自身车辆与周围车辆之间的三维数据的收发。
图24是本实施方式的三维数据制作装置620的框图。该三维数据制作装置620例如被包括在自身车辆,通过将接收的第2三维数据635与三维数据制作装置620所制作的第1三维数据632进行合成,从而制作更密的第3三维数据636。
该三维数据制作装置620具备:三维数据制作部621、请求范围决定部622、搜索部623、接收部624、解码部625、以及合成部626。
首先,三维数据制作部621利用由自身车辆具备的传感器检测的传感器信息631,制作第1三维数据632。接着,请求范围决定部622决定请求范围,该请求范围是指制作的第1三维数据632中的数据不够的三维空间范围。
接着,搜索部623对持有请求范围的三维数据的周围车辆进行搜索,将示出请求范围的请求范围信息633,发送到通过搜索而确定的周围车辆。接着,接收部624从周围车辆接收作为请求范围的编码流的编码三维数据634(S624)。另外,搜索部623可以针对确定的范围中存在的所有的车辆无差别地发出请求,从有应答的对方接收编码三维数据634。并且,搜索部623并非受限于车辆,也可以向信号机或标识等物体发出请求,并从该物体接收编码三维数据634。
接着,通过解码部625对接收的编码三维数据634进行解码,而获得第2三维数据635。接着,通过合成部626对第1三维数据632与第2三维数据635进行合成,来制作更密的第3三维数据636。
接着,对本实施方式的三维数据发送装置640的构成以及工作进行说明。图25是三维数据发送装置640的框图。
三维数据发送装置640例如包括在上述的周围车辆中,将周围车辆制作的第5三维数据652加工为自身车辆所请求的第6三维数据654,并通过对第6三维数据654进行编码来生成编码三维数据634,将编码三维数据634发送到自身车辆。
三维数据发送装置640具备:三维数据制作部641、接收部642、提取部643、编码部644、以及发送部645。
首先,三维数据制作部641利用由周围车辆具备的传感器检测的传感器信息651,制作第5三维数据652。接着,接收部642接收从自身车辆发送的请求范围信息633。
接着,通过提取部643从第5三维数据652提取由请求范围信息633表示的请求范围的三维数据,将第5三维数据652加工成第6三维数据654。接着,通过编码部644对第6三维数据654进行编码,从而生成作为编码流的编码三维数据634。于是,发送部645向自身车辆发送编码三维数据634。
另外,在此,虽然对自身车辆具备三维数据制作装置620,周围车辆具备三维数据发送装置640的例子进行了说明,但是,各个车辆也可以具有三维数据制作装置620和三维数据发送装置640的功能。
(实施方式4)
在本实施方式中,对基于三维地图的自身位置估计中的有关异常状况的工作进行说明。
使机动车的自动驾驶、机器人、或者无人机等飞行物体等移动体自律的移动等用途今后将会扩大。作为实现这种自律的移动的方法的一个例子有,移动体一边估计自己在三维地图内的位置(自身位置估计),一边按照地图来行驶的方法。
自身位置估计是通过对三维地图、与搭载于自身车辆的测距仪(LIDAR等)或立体相机等传感器所获得的自身车辆周边的三维信息(以后称为自身车辆检测三维数据)进行匹配,并对三维地图内的自身车辆位置进行估计而实现的。
三维地图如HERE公司提出的HD地图等所示,不仅是三维的点云,而且可以包括道路以及交叉路口的形状信息等二维的地图数据、或堵塞以及事故等以实际时间发生变化的信息。由三维数据、二维数据、实际时间中发生变化的元数据等多个层次构成三维地图,装置可以仅获得需要的数据,或者也可以参照所需要的数据。
点云的数据可以是上述的SWLD,也可以包括不是特征点的点群数据。并且,点云的数据的收发基本上以一个或多个随机存取单位来执行。
作为三维地图与自身车辆检测三维数据的匹配方法,能够采用以下的方法。例如,装置对彼此的点云中的点群的形状进行比较,将特征点间的类似度高的部位决定为同一位置。并且,在三维地图由SWLD构成的情况下,装置对构成SWLD的特征点、与从自身车辆检测三维数据提取的三维特征点进行比较并进行匹配。
在此,为了高精确度地进行自身位置估计,需要满足如下的(A)和(B),(A)已经能够获得三维地图和自身车辆检测三维数据,(B)他们的精确度满足预先决定的基准。但是,在以下的这种异常情况中,(A)或(B)不能满足。
(1)通过通信路径不能获得三维地图。
(2)不存在三维地图,或者获得的三维地图被损坏。
(3)自身车辆的传感器出现故障,或者由于天气不好,自身车辆检测三维数据的生成精确度不够。
以下对为了应对这些异常情况的工作进行说明。以下虽然以车辆为例对其工作进行说明,以下的方法也能够适用于机器人或无人机等进行自律移动的所有的运动物体。
以下将要说明的是为了对应三维地图或自身车辆检测三维数据中的异常情况的本实施方式的三维信息处理装置的构成以及工作。图26是示出本实施方式的三维信息处理装置700的构成例的框图。
三维信息处理装置700例如被搭载于机动车等移动物体。如图26所示,三维信息处理装置700具备:三维地图获得部701、自身车辆检测数据获得部702、异常情况判断部703、应对工作决定部704、以及工作控制部705。
另外,三维信息处理装置700也可以具备获得二维图像的相机,或者可以具备采用了超声波或激光的一维数据的传感器等用于检测自身车辆周边的结构物体或移动物体的未图示的二维或一维传感器。并且,三维信息处理装置700也可以具备通信部(未图示),该通信部用于通过4G或5G等移动体通信网、或者车与车之间的通信、道路与车之间的通信,来获得三维地图。
三维地图获得部701获得行驶路径附近的三维地图711。例如,三维地图获得部701通过移动体通信网、或车与车之间的通信、道路与车之间的通信获得三维地图711。
接着,自身车辆检测数据获得部702根据传感器信息,获得自身车辆检测三维数据712。例如,自身车辆检测数据获得部702根据由自身车辆所具备的传感器获得的传感器信息,生成自身车辆检测三维数据712。
接着,异常情况判断部703通过针对获得的三维地图711以及自身车辆检测三维数据712的至少一方执行预先决定的检查,来检测异常情况。即,异常情况判断部703对获得的三维地图711以及自身车辆检测三维数据712的至少一方判断是否为异常。
在异常情况被检测出的情况下,应对工作决定部704决定针对异常情况的应对工作。接着,工作控制部705对三维地图获得部701等在应对工作的实施中所需要的各处理部的工作进行控制。
另外,在没有检测出异常情况的情况下,三维信息处理装置700结束处理。
并且,三维信息处理装置700利用三维地图711和自身车辆检测三维数据712,进行具有三维信息处理装置700的车辆的自身位置估计。接着,三维信息处理装置700利用自身位置估计的结果,使该车辆进行自动驾驶。
据此,三维信息处理装置700经由信道,获得包括第1三维位置信息的地图数据(三维地图711)。例如,第1三维位置信息以具有三维的坐标信息的部分空间为单位而被编码,第1三维位置信息包括多个随机存取单位,多个随机存取单位的每一个为一个以上的部分空间的集合体,且能够被独立解码。例如,第1三维位置信息是三维的特征量成为规定的阈值以上的特征点被编码的数据(SWLD)。
并且,三维信息处理装置700根据由传感器检测的信息,生成第2三维位置信息(自身车辆检测三维数据712)。接着,三维信息处理装置700通过针对第1三维位置信息或第2三维位置信息执行异常判断处理,来判断第1三维位置信息或所述第2三维位置信息是否为异常。
三维信息处理装置700在判断第1三维位置信息或第2三维位置信息为异常的情况下,决定针对该异常的应对工作。接着,三维信息处理装置700执行在应对工作的实施时所需要的控制。
据此,三维信息处理装置700能够检测第1三维位置信息或第2三维位置信息的异常,并能够进行应对工作。
(实施方式5)
在本实施方式中,对给后方车辆的三维数据发送方法等进行说明。
图27是示出本实施方式的三维数据制作装置810的构成例的框图。该三维数据制作装置810例如被搭载于车辆。三维数据制作装置810与外部的交通云监控、前方车辆或后方车辆进行三维数据的收发,同时对三维数据进行制作并蓄积。
三维数据制作装置810具备:数据接收部811、通信部812、接收控制部813、格式转换部814、多个传感器815、三维数据制作部816、三维数据合成部817、三维数据蓄积部818、通信部819、发送控制部820、格式转换部821、以及数据发送部822。
数据接收部811从交通云监控或前方车辆接收三维数据831。三维数据831例如包括含有自身车辆的传感器815不能检测的区域的信息的点云、可见光影像、深度信息、传感器位置信息、或速度信息等。
通信部812与交通云监控或前方车辆进行通信,将数据发送请求等发送到交通云监控或前方车辆。
接收控制部813经由通信部812,将对应的格式等信息与通信对方交换,确立与通信对方的通信。
格式转换部814通过对数据接收部811接收的三维数据831进行格式转换等来生成三维数据832。并且,格式转换部814在三维数据831被压缩或编码的情况下,进行解压缩或解码处理。
多个传感器815是LiDAR、可见光相机或红外线相机等获得车辆的外部的信息的传感器群,生成传感器信息833。例如,在传感器815为LiDAR等激光传感器的情况下,传感器信息833是点云(点群数据)等三维数据。另外,传感器815也可以不是多个。
三维数据制作部816根据传感器信息833生成三维数据834。三维数据834例如包括点云、可见光影像、深度信息、传感器位置信息、或速度信息的信息。
三维数据合成部817通过将交通云监控或前方车辆等制作的三维数据832,合成到根据自身车辆的传感器信息833而制作的三维数据834,从而能够构筑自身车辆的传感器815不能检测的前方车辆的前方的空间也包括在内的三维数据835。
三维数据蓄积部818对生成的三维数据835等进行蓄积。
通信部819与交通云监控或后方车辆进行通信,将数据发送请求等发送到交通云监控或后方车辆。
发送控制部820经由通信部819,将对应的格式等信息与通信对方进行交换,确立与通信对方的通信。并且,发送控制部820根据在三维数据合成部817生成的三维数据832的三维数据构筑信息、以及来自通信对方的数据发送请求,来决定作为发送对象的三维数据的空间的发送区域。
具体而言,发送控制部820按照来自交通云监控或后方车辆的数据发送请求,来决定包括后方车辆的传感器不能检测的自身车辆的前方的空间的发送区域。并且,发送控制部820通过根据三维数据构筑信息来判断能够发送的空间或已发送空间的更新有无等,从而决定发送区域。例如,发送控制部820将既是由数据发送请求指定的区域、又是对应的三维数据835存在的区域决定为发送区域。并且,发送控制部820将通信对方所对应的格式、以及发送区域通知给格式转换部821。
格式转换部821通过将被蓄积在三维数据蓄积部818的三维数据835中的发送区域的三维数据836,转换为与接收侧对应的格式,来生成三维数据837。另外,也可以通过格式转换部821对三维数据837进行压缩或编码,来减少数据量。
数据发送部822将三维数据837发送到交通云监控或后方车辆。该三维数据837例如包括含有成为后方车辆的死角的区域的信息的自身车辆的前方的点云、可见光影像、深度信息、或传感器位置信息等。
另外,在此虽然以格式转换部814以及821进行格式转换等为例进行了说明,但是也可以不进行格式转换。
通过此构成,三维数据制作装置810从外部获得在自身车辆的传感器815不能检测的区域的三维数据831,并通过对三维数据831与基于自身车辆的传感器815检测到的传感器信息833的三维数据834进行合成,来生成三维数据835。据此,三维数据制作装置810能够生成自身车辆的传感器815不能检测的范围的三维数据。
并且,三维数据制作装置810能够按照来自交通云监控或后方车辆的数据发送请求,将包括后方车辆的传感器不能检测的自身车辆的前方的空间的三维数据发送到交通云监控或后方车辆等。
(实施方式6)
在实施方式5将要说明的例子是,车辆等客户端装置将三维数据发送到其他的车辆或交通云监控等服务器。在本实施方式中,客户端装置向服务器或其他的客户端装置发送由传感器得到的传感器信息。
首先,对本实施方式的系统的构成进行说明。图28示出了本实施方式的三维地图以及传感器信息的收发系统的构成。该系统包括服务器901、客户端装置902A以及902B。另外,在不对客户端装置902A以及902B进行特殊区分的情况下,也记作客户端装置902。
客户端装置902例如是被搭载在车辆等移动体的车载设备。服务器901例如是交通云监控等,能够与多个客户端装置902进行通信。
服务器901向客户端装置902发送由点云构成的三维地图。另外,三维地图的构成并非受点云所限,也可以通过网格结构等其他的三维数据来表现。
客户端装置902向服务器901发送由客户端装置902获得的传感器信息。传感器信息例如至少包括LiDAR获得信息、可见光图像、红外图像、深度图像、传感器位置信息以及速度信息之中的一个。
关于在服务器901与客户端装置902之间收发的数据,在想要减少数据的情况下可以被压缩,在想要维持数据的精确度的情况下可以不进行压缩。在对数据进行压缩的情况下,在点云中例如能够采用基于八叉树的三维压缩方式。并且,在可见光图像、红外图像、以及深度图像中可以采用二维的图像压缩方式。二维的图像压缩方式例如是以MPEG标准化的MPEG-4AVC或HEVC等。
并且,服务器901按照来自客户端装置902的三维地图的发送请求,将在服务器901进行管理的三维地图发送到客户端装置902。另外,服务器901也可以不等待来自客户端装置902的三维地图的发送请求,就对三维地图进行发送。例如,服务器901也可以将三维地图广播到预先规定的空间中的一个以上的客户端装置902。并且,服务器901也可以向接受过一次发送请求的客户端装置902,每隔一定的时间发送适于客户端装置902的位置的三维地图。并且,服务器901也可以在每当服务器901所管理的三维地图被更新时,向客户端装置902发送三维地图。
客户端装置902向服务器901发出三维地图的发送请求。例如,在客户端装置902在行驶时想要进行自身位置估计的情况下,客户端装置902将三维地图的发送请求发送到服务器901。
另外,在以下的情况下,客户端装置902也可以向服务器901发出三维地图的发送请求。在客户端装置902所持有的三维地图比较旧的情况下,客户端装置902也可以向服务器901发出三维地图的发送请求。例如,在客户端装置902获得三维地图并经过了一定期间的情况下,客户端装置902也可以向服务器901发出三维地图的发送请求。
也可以是,在客户端装置902将要从客户端装置902所保持的三维地图所示的空间出来的一定时刻之前,客户端装置902向服务器901发出三维地图的发送请求。例如也可以是,在客户端装置902存在于从客户端装置902所保持的三维地图所示的空间的边界预先规定的距离以内的情况下,客户端装置902向服务器901发出三维地图的发送请求。并且,在掌握到客户端装置902的移动路径以及移动速度的情况下,可以根据掌握到的移动路径和移动速度,来预测客户端装置902从客户端装置902所保持的三维地图示出的空间出来的时刻。
在客户端装置902根据传感器信息制作的三维数据与三维地图的位置对照时的误差在一定范围以上时,客户端装置902可以向服务器901发出三维地图的发送请求。
客户端装置902按照从服务器901发送来的传感器信息的发送请求,将传感器信息发送到服务器901。另外,客户端装置902也可以不等待来自服务器901的传感器信息的发送请求,就将传感器信息发送到服务器901。例如,客户端装置902在从服务器901得到过一次传感器信息的发送请求的情况下,可以在一定的期间之中,定期地将传感器信息发送到服务器901。并且也可以是,在客户端装置902根据传感器信息制作的三维数据、与从服务器901得到的三维地图的位置对照时的误差为一定范围以上的情况下,客户端装置902判断在客户端装置902的周边的三维地图有发生变化的可能性,并将这一判断结果和传感器信息一起发送到服务器901。
服务器901向客户端装置902发出传感器信息的发送请求。例如,服务器901从客户端装置902接收GPS等客户端装置902的位置信息。服务器901根据客户端装置902的位置信息,在判断为客户端装置902接近到服务器901所管理的三维地图中信息少的空间的情况下,为了重新生成三维地图,而将传感器信息的发送请求发出到客户端装置902。并且也可以是,服务器901在想要更新三维地图的情况、在想要确认积雪时或灾害时等道路状况的情况、在想要确认堵塞状况或事件事故状况等情况下,也可以发出传感器信息的发送请求。
并且也可以是,客户端装置902按照从服务器901接受的传感器信息的发送请求的接收时的通信状态或频带,来设定发送到服务器901的传感器信息的数据量。对发送到服务器901的传感器信息的数据量进行设定例如是指,对该数据本身进行增减、或者选择适宜的压缩方式。
图29是示出客户端装置902的构成例的框图。客户端装置902从服务器901接收以点云等构成的三维地图,根据基于客户端装置902的传感器信息而制作的三维数据,来估计客户端装置902的自身位置。并且,客户端装置902将获得的传感器信息发送到服务器901。
客户端装置902具备:数据接收部1011、通信部1012、接收控制部1013、格式转换部1014、多个传感器1015、三维数据制作部1016、三维图像处理部1017、三维数据蓄积部1018、格式转换部1019、通信部1020、发送控制部1021、以及数据发送部1022。
数据接收部1011从服务器901接收三维地图1031。三维地图1031是包括WLD或SWLD等点云的数据。三维地图1031也可以包括压缩数据、以及非压缩数据的任一方。
通信部1012与服务器901进行通信,将数据发送请求(例如,三维地图的发送请求)等发送到服务器901。
接收控制部1013经由通信部1012,与通信对方交换对应格式等信息,确立与通信对方的通信。
格式转换部1014通过对数据接收部1011所接收的三维地图1031进行格式转换等,来生成三维地图1032。并且,格式转换部1014在三维地图1031被压缩或编码的情况下,进行解压缩或解码处理。另外,格式转换部1014在三维地图1031为非压缩数据的情况下,不进行解压缩或解码处理。
多个传感器1015是LiDAR、可见光相机、红外线相机、或深度传感器等客户端装置902所搭载的用于获得车辆的外部的信息的传感器群,生成传感器信息1033。例如,在传感器1015为LiDAR等激光传感器的情况下,传感器信息1033是点云(点群数据)等三维数据。另外,传感器1015也可以不是多个。
三维数据制作部1016根据传感器信息1033,制作自身车辆的周边的三维数据1034。例如,三维数据制作部1016利用由LiDAR获得的信息、以及由可见光相机得到的可见光影像,来制作自身车辆的周边的具有颜色信息的点云数据。
三维图像处理部1017利用接收的点云等三维地图1032、以及根据传感器信息1033生成的自身车辆的周边的三维数据1034,来进行自身车辆的自身位置估计处理等。另外,也可以是,三维图像处理部1017对三维地图1032与三维数据1034进行合成,来制作自身车辆的周边的三维数据1035,利用制作的三维数据1035,来进行自身位置估计处理。
三维数据蓄积部1018对三维地图1032、三维数据1034以及三维数据1035等进行蓄积。
格式转换部1019通过将传感器信息1033转换为接收侧所对应的格式,来生成传感器信息1037。另外,格式转换部1019可以通过对传感器信息1037进行压缩或编码来减少数据量。并且,在不需要格式转换的情况下,格式转换部1019可以省略处理。并且,格式转换部1019可以对按照发送范围的指定来发送的数据量进行控制。
通信部1020与服务器901进行通信,从服务器901接收数据发送请求(传感器信息的发送请求)等。
发送控制部1021经由通信部1020,与通信对方交换对应格式等信息,从而确立通信。
数据发送部1022将传感器信息1037发送到服务器901。传感器信息1037例如包括通过LiDAR获得的信息、通过可见光相机获得的亮度图像(可见光图像)、通过红外线相机获得的红外图像、通过深度传感器获得的深度图像、传感器位置信息、以及速度信息等由多个传感器1015获得的信息。
接着,对服务器901的构成进行说明。图30是示出服务器901的构成例的框图。服务器901接收从客户端装置902发送来的传感器信息,根据接收的传感器信息,来制作三维数据。服务器901利用制作的三维数据,对服务器901管理的三维地图进行更新。并且,服务器901按照来自客户端装置902的三维地图的发送请求,将更新的三维地图发送到客户端装置902。
服务器901具备:数据接收部1111、通信部1112、接收控制部1113、格式转换部1114、三维数据制作部1116、三维数据合成部1117、三维数据蓄积部1118、格式转换部1119、通信部1120、发送控制部1121、以及数据发送部1122。
数据接收部1111从客户端装置902接收传感器信息1037。传感器信息1037例如包括通过LiDAR获得的信息、通过可见光相机获得的亮度图像(可见光图像)、通过红外线相机获得的红外图像、通过深度传感器获得的深度图像、传感器位置信息、以及速度信息等。
通信部1112与客户端装置902进行通信,将数据发送请求(例如,传感器信息的发送请求)等发送到客户端装置902。
接收控制部1113经由通信部1112,与通信对方交换对应格式等信息,从而确立通信。
格式转换部1114在接收的传感器信息1037被压缩或编码的情况下,通过进行解压缩或解码处理,来生成传感器信息1132。另外,在传感器信息1037是非压缩数据的情况下,格式转换部1114不进行解压缩或解码处理。
三维数据制作部1116根据传感器信息1132,制作客户端装置902的周边的三维数据1134。例如,三维数据制作部1116利用通过LiDAR获得的信息、以及通过可见光相机得到的可见光影像,来制作客户端装置902的周边具有颜色信息的点云数据。
三维数据合成部1117将基于传感器信息1132而制作的三维数据1134,与服务器901管理的三维地图1135进行合成,据此来更新三维地图1135。
三维数据蓄积部1118对三维地图1135等进行蓄积。
格式转换部1119通过将三维地图1135转换为接收侧对应的格式,来生成三维地图1031。另外,格式转换部1119也可以通过对三维地图1135进行压缩或编码,来减少数据量。并且,在不需要格式转换的情况下,格式转换部1119也可以省略处理。并且,格式转换部1119可以对按照发送范围的指定来发送的数据量进行控制。
通信部1120与客户端装置902进行通信,从客户端装置902接收数据发送请求(三维地图的发送请求)等。
发送控制部1121经由通信部1120,与通信对方交换对应格式等信息,从而确立通信。
数据发送部1122将三维地图1031发送到客户端装置902。三维地图1031是包括WLD或SWLD等点云的数据。在三维地图1031中也可以包括压缩数据以及非压缩数据的任一方。
接着,对客户端装置902的工作流程进行说明。图31是示出客户端装置902进行的三维地图获得时的工作的流程图。
首先,客户端装置902向服务器901请求三维地图(点云等)的发送(S1001)。此时,客户端装置902也将通过GPS等得到的客户端装置902的位置信息一起发送,据此,可以向服务器901请求与该位置信息相关联的三维地图的发送。
接着,客户端装置902从服务器901接收三维地图(S1002)。若接收的三维地图是压缩数据,客户端装置902对接收的三维地图进行解码,生成非压缩的三维地图(S1003)。
接着,客户端装置902根据从多个传感器1015得到的传感器信息1033,来制作客户端装置902的周边的三维数据1034(S1004)。接着,客户端装置902利用从服务器901接收的三维地图1032、以及根据传感器信息1033制作的三维数据1034,来估计客户端装置902的自身位置(S1005)。
图32是示出客户端装置902进行的传感器信息的发送时的工作的流程图。首先,客户端装置902从服务器901接收传感器信息的发送请求(S1011)。接收了发送请求的客户端装置902将传感器信息1037发送到服务器901(S1012)。另外,在传感器信息1033包括通过多个传感器1015得到的多个信息的情况下,客户端装置902针对各信息,以适于各信息的压缩方式来进行压缩,从而生成传感器信息1037。
接着,对服务器901的工作流程进行说明。图33是示出服务器901进行传感器信息的获得时的工作的流程图。首先,服务器901向客户端装置902请求传感器信息的发送(S1021)。接着,服务器901接收按照该请求而从客户端装置902发送的传感器信息1037(S1022)。接着,服务器901利用接收的传感器信息1037,来制作三维数据1134(S1023)。接着,服务器901将制作的三维数据1134反映到三维地图1135(S1024)。
图34是示出服务器901进行的三维地图的发送时的工作的流程图。首先,服务器901从客户端装置902接收三维地图的发送请求(S1031)。接收了三维地图的发送请求的服务器901向客户端装置902发送三维地图1031(S1032)。此时,服务器901可以与客户端装置902的位置信息相对应地提取其附近的三维地图,并发送提取的三维地图。并且可以是,服务器901针对由点云构成的三维地图,例如利用通过八叉树的压缩方式等来进行压缩,并发送压缩后的三维地图。
以下,对本实施方式的变形例进行说明。
服务器901利用从客户端装置902接收的传感器信息1037,来制作客户端装置902的位置附近的三维数据1134。接着,服务器901对制作的三维数据1134、与服务器901所管理的相同区域的三维地图1135进行匹配,算出三维数据1134与三维地图1135的差分。服务器901在差分为预先决定的阈值以上的情况下,判断在客户端装置902的周边发生了某种异常。例如,在因地震等自然灾害而发生了地表下沉等时,可以考虑到在服务器901所管理的三维地图1135、与基于传感器信息1037而制作的三维数据1134之间会产生较大的差。
传感器信息1037也可以包括传感器的种类、传感器的性能、以及传感器的型号之中的至少一个。并且也可以是,传感器信息1037中被附加与传感器的性能相对应的类别ID等。例如,在传感器信息1037是由LiDAR获得的信息的情况下,可以考虑到针对传感器的性能来分配标识符,例如,针对能够以几mm单位的精确度来获得信息的传感器分配类别1、针对能够以几Cm单位的精确度来获得信息的传感器分配类别2、针对能够以几m单位的精确度来获得信息的传感器分配类别3。并且,服务器901也可以从客户端装置902的型号来估计传感器的性能信息等。例如,在客户端装置902搭载于车辆的情况下,服务器901可以根据该车辆的车型来判断传感器的规格信息。在这种情况下,服务器901可以事前获得车辆的车型的信息,也可以使该信息包括在传感器信息中。并且也可以是,服务器901利用获得的传感器信息1037,来切换针对利用传感器信息1037而制作的三维数据1134的校正的程度。例如,在传感器性能为高精确度(类别1)的情况下,服务器901不进行针对三维数据1134的校正。在传感器性能为低精确度(类别3)的情况下,服务器901将适于传感器的精确度的校正适用到三维数据1134。例如,服务器901在传感器的精确度越低的情况下就越增强校正的程度(强度)。
服务器901也可以向存在于某个空间的多个客户端装置902同时发出传感器信息的发送请求。服务器901在从多个客户端装置902接收到多个传感器信息的情况下,没有必要将所有的传感器信息都利用到三维数据1134的制作,例如可以按照传感器的性能,来选择将要利用的传感器信息。例如,服务器901在对三维地图1135进行更新的情况下,可以从接收的多个传感器信息中选择高精确度的传感器信息(类别1),利用选择的传感器信息来制作三维数据1134。
服务器901并非受交通云监控等服务器所限,也可以是其他的客户端装置(车载)。图35示出了这种情况下的系统构成。
例如,客户端装置902C向附近存在的客户端装置902A发出传感器信息的发送请求,并从客户端装置902A获得传感器信息。于是,客户端装置902C利用获得的客户端装置902A的传感器信息,来制作三维数据,并更新对客户端装置902C的三维地图进行更新。这样,客户端装置902C能够活用客户端装置902C的性能,来生成能够从客户端装置902A获得的空间的三维地图。例如,在客户端装置902C的性能高的情况下,可以考虑发生这种情况。
并且,在这种情况下,提供了传感器信息的客户端装置902A被给予获得由客户端装置902C生成的高精确度的三维地图的权利。客户端装置902A按照该权利,从客户端装置902C接收高精确度的三维地图。
并且也可以是,客户端装置902C向附近存在的多个客户端装置902(客户端装置902A以及客户端装置902B)发出传感器信息的发送请求。在客户端装置902A或客户端装置902B的传感器为高性能的情况下,客户端装置902C能够利用通过该高性能的传感器得到的传感器信息来制作三维数据。
图36是示出服务器901以及客户端装置902的功能构成的框图。服务器901例如具备:对三维地图进行压缩以及解码的三维地图压缩/解码处理部1201、对传感器信息进行压缩以及解码的传感器信息压缩/解码处理部1202。
客户端装置902具备:三维地图解码处理部1211、以及传感器信息压缩处理部1212。三维地图解码处理部1211接收压缩后的三维地图的编码数据,对编码数据进行解码并获得三维地图。传感器信息压缩处理部1212不对通过获得的传感器信息而制作的三维数据进行压缩,而是对传感器信息本身进行压缩,将压缩后的传感器信息的编码数据发送到服务器901。根据此构成,客户端装置902可以将用于对三维地图(点云等)进行解码处理的处理部(装置或LSI)保持在内部,而不必将用于对三维地图(点云等)的三维数据进行压缩处理的处理部保持在内部。这样,能够抑制客户端装置902的成本以及耗电量等。
如以上所述,本实施方式的客户端装置902被搭载在移动体,根据通过被搭载在移动体的传感器1015得到的、示出移动体的周边状况的传感器信息1033,来制作移动体的周边的三维数据1034。客户端装置902利用制作的三维数据1034,来估计移动体的自身位置。客户端装置902将获得的传感器信息1033发送到服务器901或者其他的移动体902。
据此,客户端装置902将传感器信息1033发送到服务器901等。这样,与发送三维数据的情况相比,将会有能够减少发送数据的数据量的可能性。并且,由于没有必要在客户端装置902执行三维数据的压缩或编码等处理,因此能够减少客户端装置902的处理的量。因此,客户端装置902能够实现传输的数据量的减少或装置的构成的简略化。
并且,客户端装置902进一步向服务器901发送三维地图的发送请求,从服务器901接收三维地图1031。客户端装置902在自身位置的估计中,利用三维数据1034和三维地图1032,来对自身位置进行估计。
并且,传感器信息1033至少包括通过激光传感器得到的信息、亮度图像(可见光图像)、红外图像、深度图像、传感器的位置信息、以及传感器的速度信息之中的一个。
并且,传感器信息1033包括示出传感器的性能的信息。
并且,客户端装置902对传感器信息1033进行编码或压缩,在传感器信息的发送中,将编码或压缩后的传感器信息1037发送到服务器901或者其他的移动体902。据此,客户端装置902能够减少传输的数据量。
例如,客户端装置902具备处理器以及存储器,处理器利用存储器进行上述的处理。
并且,本实施方式的服务器901能够与搭载在移动体的客户端装置902进行通信,从客户端装置902接收通过被搭载在移动体的传感器1015得到的、示出移动体的周边状况的传感器信息1037。服务器901根据接收的传感器信息1037,来制作移动体的周边的三维数据1134。
据此,服务器901利用从客户端装置902发送来的传感器信息1037,来制作三维数据1134。这样,与客户端装置902发送三维数据的情况相比,将会有能够减少发送数据的数据量的可能性。并且,由于可以不必在客户端装置902进行三维数据的压缩或编码等处理,因此能够减少客户端装置902的处理量。这样,服务器901能够实现传输的数据量的减少、或装置的构成的简略化。
并且,服务器901进一步向客户端装置902发送传感器信息的发送请求。
并且,服务器901进一步利用制作的三维数据1134,来更新三维地图1135,按照来自客户端装置902的三维地图1135的发送请求,将三维地图1135发送到客户端装置902。
并且,传感器信息1037至少包括通过激光传感器得到的信息、亮度图像(可见光图像)、红外图像、深度图像、传感器的位置信息、以及传感器的速度信息之中的一个。
并且,传感器信息1037包括示出传感器的性能的信息。
并且,服务器901进一步按照传感器的性能,对三维数据进行校正。据此,该三维数据制作方法能够提高三维数据的品质。
并且,服务器901在传感器信息的接收中,从多个客户端装置902接收多个传感器信息1037,根据多个传感器信息1037中包括的示出传感器的性能的多个信息,来选择三维数据1134的制作中使用的传感器信息1037。据此,服务器901能够提高三维数据1134的品质。
并且,服务器901对接收的传感器信息1037进行解码或解压缩,根据解码或解压缩后的传感器信息1132,制作三维数据1134。据此,服务器901能够减少传输的数据量。
例如,服务器901具备处理器和存储器,处理器利用存储器进行上述的处理。
(实施方式7)
在本实施方式,对利用了帧间预测处理的三维数据的编码方法以及解码方法进行说明。
图37是本实施方式的三维数据编码装置1300的框图。该三维数据编码装置1300通过对三维数据进行编码,从而生成作为编码信号的编码比特流(以下也简单记作比特流)。如图37所示,三维数据编码装置1300具备:分割部1301、减法部1302、变换部1303、量化部1304、逆量化部1305、逆变换部1306、加法部1307、参照体积存储器1308、帧内预测部1309、参照空间存储器1310、帧间预测部1311、预测控制部1312、以及熵编码部1313。
分割部1301将三维数据中包含的各空间(SPC)分割为作为编码单位的多个体积(VLM)。并且,分割部1301对各体积内的体素进行八叉树表现(Octree化)。另外,分割部1301也可以使空间与体积成为相同的大小,对空间进行八叉树表现。并且,分割部1301也可以将八叉树化所需要的信息(深度信息等)附加到比特流的头部等。
减法部1302算出从分割部1301输出的体积(编码对象体积)、与由后述的帧内预测或帧间预测生成的预测体积的差分,将算出的差分作为预测残差输出到变换部1303。图38示出了预测残差的算出例。另外,在此示出的编码对象体积以及预测体积的比特串例如是,示出体积中包含的三维点(例如点云)的位置的位置信息。
以下,对八叉树表现与体素的扫描顺序进行说明。体积被变换为八叉树结构(八叉树化)后,被编码。八叉树结构由节点和叶节点(leaf node)构成。各节点具有8个节点或叶节点,各叶节点具有体素(VXL)信息。图39示出了包括多个体素的体积的构成例。图40示出了将图39所示的体积变换为八叉树结构的例子。在此,图40所示的叶节点之中的叶节点1、2、3,分别表示图39所示的体素VXL1、VXL2、VXL3,表现了包括点群的VXL(以下记作有效VXL)。
八叉树例如以0、1的二值序列来表现。例如在将节点或有效VXL设为值1,除此以外的设为值0时,在各节点以及叶节点被分配图40所示的二值序列。于是,按照宽度优先或深度优先的扫描顺序,该二值序列被扫描。例如在以宽度优先进行了扫描的情况下,得到图41的A所示的二值序列。在以深度优先进行了扫描的情况下,得到图41的B所示的二值序列。通过该扫描得到的二值序列由熵编码来编码,从而信息量减少。
接着,对八叉树表现中的深度信息进行说明。八叉树表现中的深度用于将体积内所包含的点云信息保持到哪一个粒度为止的控制中。若将深度设定得大,则能够以更加细小的级别来再现点云信息,但是用于表现节点以及叶节点的数据量就会增加。相反,若将深度设定得小,虽然可以减少数据量,但是多个不同位置以及颜色不同的点云信息会被视为同一位置且同一颜色,因此会失去本来的点云信息所具有的信息。
例如,图42示出了将图40所示的深度=2的八叉树,以深度=1的八叉树来表现的例子。图42所示的八叉树比图40所示的八叉树的数据量少。即,图42所示的八叉树与图42所示的八叉树相比,二值序列化后的比特数少。在此,图40所示的叶节点1和叶节点2成为,以图41所示的叶节点1来表现。即,失去了图40所示的叶节点1与叶节点2为不同的位置这一信息。
图43示出了与图42所示的八叉树对应的体积。图39所示的VXL1和VXL2与图43所示的VXL12对应。在这种情况下,三维数据编码装置1300根据图39所示的VXL1和VXL2的颜色信息,生成图43所示的VXL12的颜色信息。例如,三维数据编码装置1300将VXL1和VXL2的颜色信息的平均值、中间值、或权重平均值等作为VXL12的颜色信息来算出。这样,三维数据编码装置1300通过改变八叉树的深度,从而能够对数据量的减少进行控制。
三维数据编码装置1300也可以利用世界空间单位、空间单位、以及体积单位中的任一个单位来设定八叉树的深度信息。并且,此时,三维数据编码装置1300也可以将深度信息附加到世界空间的头部信息、空间的头部信息、或体积的头部信息。并且,也可以在时间不同的所有的世界空间、空间、以及体积中,作为深度信息而使用相同的值。在这种情况下,三维数据编码装置1300也可以将深度信息附加到对所有时间的世界空间进行管理的头部信息。
在体素中包含颜色信息的情况下,变换部1303针对体积内的体素的颜色信息的预测残差,适用正交变换等频率变换。例如,变换部1303以某个扫描顺序对预测残差进行扫描,来制作一维排列。在此之后,变换部1303通过对制作的一维排列适用一维的正交变换,从而将一维排列变换为频域。据此,在体积内的预测残差的值近的情况下,低频带的频率成分的值变大,高频带的频率成分的值变小。因此,在量化部1304能够更有效地使编码量减少。
并且,变换部1303也可以不利用一维的正交变换而可以利用二维以上的正交变换。例如,变换部1303以某个扫描顺序,将预测残差映射为二维排列,对得到的二维排列适用二维正交变换。并且,变换部1303也可以从多个正交变换方式中选择将要使用的正交变换方式。在这种情况下,三维数据编码装置1300将示出利用了哪一个正交变换方式的信息附加到比特流。并且可以是,变换部1303从维数不同的多个正交变换方式中选择将要使用的正交变换方式。在这种情况下,三维数据编码装置1300将示出利用了哪一个维数的正交变换方式的信息附加到比特流。
例如,变换部1303将预测残差的扫描顺序与体积内的八叉树中的扫描顺序(宽度优先或深度优先等)吻合。据此,由于不必将示出预测残差的扫描顺序的信息附加到比特流,从而能够减少额外开销。并且,变换部1303也可以适用与八叉树的扫描顺序不同的扫描顺序。在这种情况下,三维数据编码装置1300将示出预测残差的扫描顺序的信息附加到比特流。据此,三维数据编码装置1300能够高效地对预测残差进行编码。并且也可以是,三维数据编码装置1300将示出是否适用八叉树的扫描顺序的信息(标志等)附加到比特流,在不适用八叉树的扫描顺序的情况下,将示出预测残差的扫描顺序的信息附加到比特流。
变换部1303不仅是颜色信息的预测残差,也可以对体素所具有的其他的属性信息进行变换。例如可以是,变换部1303对通过LiDAR等获得点云时得到的反射率等信息进行变换并编码。
变换部1303在空间不具有颜色信息等的属性信息的情况下,可以跳过处理。并且,三维数据编码装置1300可以将是否跳过变换部1303的处理的信息(标志)附加到比特流。
量化部1304针对在变换部1303生成的预测残差的频率成分,利用量化控制参数进行量化,从而生成量化系数。据此来减少信息量。生成的量化系数被输出到熵编码部1313。量化部1304可以按照世界空间单位、空间单位、或体积单位,对量化控制参数进行控制。此时,三维数据编码装置1300将量化控制参数附加到各自的头部信息等。并且,量化部1304也可以按照每个预测残差的频率成分,改变权重来进行量化控制。例如,量化部1304可以对低频率成分进行细致的量化,对高频率成分进行粗略的量化。在这种情况下,三维数据编码装置1300可以将表示各频率成分的权重的参数附加到头部。
量化部1304在空间不具有颜色信息等的属性信息的情况下,可以跳过处理。并且,三维数据编码装置1300也可以将示出是否跳过量化部1304的处理的信息(标志)附加到比特流。
逆量化部1305利用量化控制参数,对量化部1304生成的量化系数进行逆量化,据此,生成预测残差的逆量化系数,将生成的逆量化系数输出到逆变换部1306。
逆变换部1306针对在逆量化部1305生成的逆量化系数适用逆变换,从而生成逆变换适用后预测残差。由于该逆变换适用后预测残差是量化后生成的预测残差,因此可以与由变换部1303输出的预测残差不完全一致。
加法部1307对由逆变换部1306生成的逆变换适用后预测残差、与量化前的预测残差的生成中所使用的并且由后述的帧内预测或帧间预测生成的预测体积进行相加,来生成重构体积。该重构体积被存放在参照体积存储器1308或参照空间存储器1310。
帧内预测部1309利用被存放在参照体积存储器1308的相邻体积的属性信息,生成编码对象体积的预测体积。属性信息中包括体素的颜色信息或反射率。帧内预测部1309生成编码对象体积的颜色信息或反射率的预测值。
图44是用于说明帧内预测部1309的工作的图。例如,图44所示,帧内预测部1309根据相邻体积(体积idx=0),生成编码对象体积(体积idx=3)的预测体积。在此,体积idx是针对空间内的体积附加的标识符信息,在各体积被分配不同的值。体积idx的分配的顺序可以与编码顺序相同,也可以与编码顺序不同。例如,作为图44所示的编码对象体积的颜色信息的预测值,帧内预测部1309使用作为相邻体积的体积idx=0内包含的体素的颜色信息的平均值。在这种情况下,通过从编码对象体积内包含的各体素的颜色信息减去颜色信息的预测值,从而生成预测残差。针对该预测残差执行变换部1303以后的处理。并且,在这种情况下,三维数据编码装置1300将相邻体积信息和预测模式信息附加到比特流。在此,相邻体积信息是示出在预测中使用的相邻体积的信息,例如示出在预测中使用的相邻体积的体积idx。并且,预测模式信息示出预测体积的生成中所使用的模式。模式例如是指,根据相邻体积内的体素的平均值来生成预测值的平均值模式、或根据相邻体积内的体素的中间值来生成预测值的中间值模式等。
帧内预测部1309也可以根据多个相邻体积来生成预测体积。例如在图44所示的构成中,帧内预测部1309根据体积idx=0的体积来生成预测体积0,根据体积idx=1的体积来生成预测体积1。于是,帧内预测部1309将预测体积0与预测体积1的平均作为最终的预测体积来生成。在这种情况下,三维数据编码装置1300也可以将预测体积的生成中所使用的多个体积的多个体积idx附加到比特流。
(实施方式8)
在本实施方式中,对三维数据的编码中的三维点(点云)的表现手法进行说明。
图45是示出本实施方式的三维数据的分发系统的构成的框图。图45所示的分发系统包括服务器1501以及多个客户端1502。
服务器1501包括存储部1511以及控制部1512。存储部1511存放被编码的三维数据即编码三维地图1513。
图46是示出了编码三维地图1513的比特流的构成例的图。三维地图被分割为多个子地图(sub-map),各子地图被编码。在各子地图中被附加包括子坐标信息的随机存取头部(RA)。子坐标信息被用于提高子地图的编码效率。该子坐标信息示出子地图的子坐标(sub-coordinate)。子坐标是以基准坐标(reference coordinate)为基准的子地图的坐标。另外,将包括多个子地图的三维地图称为全体地图。并且,在全体地图中,将成为基准的坐标(例如原点)称为基准坐标。即,子坐标是全体地图的坐标系中的子地图的坐标。换而言之,子坐标示出全体地图的坐标系与子地图的坐标系的偏差。并且,将以基准坐标为基准的全体地图的坐标系中的坐标称为全体坐标。将以子坐标为基准的子地图的坐标系中的坐标称为差分坐标。
客户端1502将消息发送到服务器1501。该消息包括客户端1502的位置信息。服务器1501中包含的控制部1512根据接收的消息中包含的位置信息,获得离客户端1502的位置最近的位置的子地图的比特流。子地图的比特流包括子坐标信息,被发送到客户端1502。客户端1502中包含的解码器1521利用该子坐标信息,得到以基准坐标为基准的子地图的全体坐标。客户端1502中包含的应用程序1522利用得到的子地图的全体坐标,执行与自身位置相关联的应用程序。
并且,子地图示出全体地图的一部分区域。子坐标是在全体地图的基准坐标空间中,子地图所处的位置的坐标。例如,视为在A的全体地图中存在AA的子地图A、以及AB的子地图B。车辆在想要参照AA的地图的情况下,从子地图A开始解码,在想要参照AB的地图的情况下,从子地图B开始解码。在此,子地图是随机存取点。具体而言,A为大阪府,AA为大阪市,AB为高规市等。
各子地图与子坐标信息一起被发送到客户端。子坐标信息包含在各子地图的头部信息、或发送数据包等中。
成为各子地图的子坐标信息的基准的坐标的基准坐标,也可以被附加到全体地图的头部信息等比子地图更上位的空间的头部信息。
子地图可以由一个空间(SPC)构成。并且,子地图也可以由多个SPC构成。
并且,子地图也可以包括GOS(Group of Space:空间群)。并且,子地图也可以由世界空间构成。例如,在子地图中有多个对象的情况下,若将多个对象分配到不同的SPC,则子地图由多个SPC构成。并且,若将多个对象分配到一个SPC,子地图由一个SPC构成。
接着,对采用了子坐标信息的情况下的编码效率的改善效果进行说明。图47是用于说明该效果的图。例如,要想对图47所示的离基准坐标远的位置的三维点A进行编码,则需要较多的比特数。在此,子坐标与三维点A的距离,比基准坐标与三维点A的距离短。因此,与编码以基准坐标为基准的三维点A的坐标的情况相比,在编码以子坐标为基准的三维点A的坐标的情况下,能够改善编码效率。并且,子地图的比特流包括子坐标信息。通过将子地图的比特流与基准坐标送出到解码侧(客户端),从而能够在解码侧对子地图的全体坐标进行复原。
图48是子地图的发送侧即服务器1501进行的处理的流程图。
首先,服务器1501从客户端1502接收包括客户端1502的位置信息的消息(S1501)。控制部1512从存储部1511,获得基于客户端的位置信息的子地图的编码比特流(S1502)。于是,服务器1501将子地图的编码比特流和基准坐标发送到客户端1502(S1503)。
图49是子地图的接收侧即客户端1502进行的处理的流程图。
首先,客户端1502接收从服务器1501发送的子地图的编码比特流和基准坐标(S1511)。接着,客户端1502通过对编码比特流进行解码,从而获得子地图和子坐标信息(S1512)。接着,客户端1502利用基准坐标和子坐标,将子地图内的差分坐标复原为全体坐标(S1513)。
接着,对与子地图相关的信息的句法例子进行说明。在子地图的编码中,三维数据编码装置通过从各点云(三维点)的坐标减去子坐标,从而算出差分坐标。于是,三维数据编码装置将差分坐标编码到比特流,以作为各点云的值。并且,编码装置将示出子坐标的子坐标信息作为比特流的头部信息来编码。据此,三维数据解码装置能够得到各点云的全体坐标。例如,三维数据编码装置包括在服务器1501中,三维数据解码装置包括在客户端1502中。
图50示出了子地图的句法例子。图50所示的NumOfPoint表示子地图中包含的点云数。sub_coordinate_x、sub_coordinate_y、以及sub_coordinate_z是子坐标信息。sub_coordinate_x表示子坐标的x坐标。sub_coordinate_y表示子坐标的y坐标。sub_coordinate_z表示子坐标的z坐标。
并且,diff_x[i]、diff_y[i]、以及diff_z[i]是子地图内的第i个点云的差分坐标。diff_x[i]表示子地图内的第i个点云的x坐标与子坐标的x坐标的差分值。diff_y[i]表示子地图内的第i个点云的y坐标与子坐标的y坐标的差分值。diff_z[i]表示子地图内的第i个点云的z坐标与子坐标的z坐标的差分值。
三维数据解码装置针对作为第i个的点云的全体坐标的point_cloud[i]_x、point_cloud[i]_y、以及point_cloud[i]_z,利用下式进行解码。point_cloud[i]_x是第i个的点云的全体坐标的x坐标。point_cloud[i]_y是第i个的点云的全体坐标的y坐标。point_cloud[i]_z是第i个的点云的全体坐标的z坐标。
point_cloud[i]_x=sub_coordinate_x+diff_x[i]
point_cloud[i]_y=sub_coordinate_y+diff_y[i]
point_cloud[i]_z=sub_coordinate_z+diff_z[i]
接着,对八叉树编码的适用切换处理进行说明。三维数据编码装置在进行子地图编码时,或者选择八叉树表现来编码各点云(以下称为八叉树编码(octree编码)),或者选择对与子坐标的差分值进行编码(以下称为非八叉树编码(non-octree编码))。图51示意性地示出了该工作。例如,三维数据编码装置在子地图内的点云数为预先规定的阈值以上的情况下,对子地图适用八叉树编码。三维数据编码装置在子地图内的点云数比上述阈值小的情况下,对子地图适用非八叉树编码。据此,三维数据编码装置按照子地图内包含的对象的形状以及密度,恰当地选择是采用八叉树编码、还是非八叉树编码,这样,能够提高编码效率。
并且,三维数据编码装置将示出针对子地图适用八叉树编码和非八叉树编码的哪一个的信息(以下称为八叉树编码适用信息),附加到子地图的头部等。据此,三维数据解码装置能够判别比特流是子地图被八叉树编码而得到的比特流、还是子地图被非八叉树编码而得到的比特流。
并且,三维数据编码装置可以算出将八叉树编码与非八叉树编码分别适用于同一个点云时的编码效率,将编码效率高的编码方式适用于子地图。
图52示出了进行这种切换的情况下的子地图的句法例子。图52所示的coding_type是示出编码类型的信息,是上述的八叉树编码适用信息。coding_type=00表示适用了八叉树编码。coding_type=01表示适用了非八叉树编码。coding_type=10或11表示适用了除上述以外的其他的编码方式等。
在编码类型是非八叉树编码(non_octree)的情况下,子地图包括NumOfPoint、和子坐标信息(sub_coordinate_x、sub_coordinate_y、以及sub_coordinate_z)。
在编码类型是八叉树编码(octree)的情况下,子地图包括octree_info。octree_info是八叉树编码中所需要的信息,例如包括depth信息等。
在编码类型是非八叉树编码(non_octree)的情况下,子地图包括差分坐标(diff_x[i]、diff_y[i]、以及diff_z[i])。
在编码类型是八叉树编码(octree)的情况下,子地图包括与八叉树编码相关的编码数据即octree_data。
另外,在此,作为点云的坐标系虽然示出了采用xyz坐标系的例子,不过也可以采用极坐标系。
图53是三维数据编码装置进行的三维数据编码处理的流程图。首先,三维数据编码装置算出处理对象的子地图即对象子地图内的点云数(S1521)。接着,三维数据编码装置判断算出的点云数是否为预先规定的阈值以上(S1522)。
在点云数为阈值以上的情况下(S1522的“是”),三维数据编码装置针对对象子地图适用八叉树编码(S1523)。并且,三维点数据编码装置将表示针对对象子地图适用了八叉树编码的八叉树编码适用信息附加到比特流的头部(S1525)。
另外,在点云数低于阈值的情况下(S1522的“否”),三维数据编码装置针对对象子地图适用非八叉树编码(S1524)。并且,三维点数据编码装置将表示针对对象子地图适用了非八叉树编码的八叉树编码适用信息附加到比特流的头部(S1525)。
图54是三维数据解码装置进行的三维数据解码处理的流程图。首先,三维数据解码装置从比特流的头部解码八叉树编码适用信息(S1531)。接着,三维数据解码装置根据解码的八叉树编码适用信息,判断被适用到对象子地图的编码类型是否为八叉树编码(S1532)。
在八叉树编码适用信息示出的编码类型是八叉树编码的情况下(S1532的“是”),三维数据解码装置利用八叉树解码来解码对象子地图(S1533)。另外,在八叉树编码适用信息示出的编码类型是非八叉树编码的情况下(S1532的“否”),三维数据解码装置利用非八叉树解码来解码对象子地图(S1534)。
以下对本实施方式的变形例进行说明。图55至图57示意性地示出了编码类型的切换处理的变形例的工作。
如图55所示,三维数据编码装置可以按照每个空间,来选择是适用八叉树编码、还是适用非八叉树编码。在这种情况下,三维数据编码装置将八叉树编码适用信息附加到空间的头部。据此,三维数据解码装置能够按照每个空间来判断是否适用八叉树编码。并且,在这种情况下,三维数据编码装置按照每个空间设定子坐标,对从空间内的各点云的坐标中减去子坐标的值之后的差分值进行编码。
据此,由于三维数据编码装置能够按照空间内的对象的形状或点云数来恰当地切换是否适用八叉树编码,因此能够提高编码效率。
并且,如图56所示,三维数据编码装置可以按照每个体积来选择是适用八叉树编码、还是适用非八叉树编码。在这种情况下,三维数据编码装置将八叉树编码适用信息附加到体积的头部。据此,三维数据解码装置能够按照每个体积来判断是否适用八叉树编码。并且,在这种情况下,三维数据编码装置按照每个体积设定子坐标,对从体积内的各点云的坐标减去子坐标的值后的差分值进行编码。
据此,由于三维数据编码装置能够按照体积内的对象的形状或点云数,恰当地切换是否适用八叉树编码,因此能够提高编码效率。
并且,在上述的说明中,作为非八叉树编码,示出了对从各点云的坐标减去子坐标之后的差分进行编码的例子,但是并非受此所限,也可以利用八叉树编码以外的任意的编码方法来编码。例如图57所示,三维数据编码装置也可以不利用与子坐标差分,而是可以利用对子地图、空间、或体积内的点云的值本身进行编码的方式(以下称为原坐标编码),以作为非八叉树编码。
在这种情况下,三维数据编码装置将示出针对对象空间(子地图、空间、或体积)适用了原坐标编码的信息存放到头部。据此,三维数据解码装置能够判断针对对象空间是否适用了原坐标编码。
并且,在适用原坐标编码的情况下,三维数据编码装置针对原坐标可以不适用量化以及算术编码而进行编码。并且,三维数据编码装置可以针对原坐标以预先规定的固定的比特长来编码。据此,三维数据编码装置能够在某个定时来生成具有一定的比特长的流。
并且,在上述的说明中,虽然作为非八叉树编码,示出了对从各点云的坐标减去子坐标的差分进行编码的例子,不过并非受此所限。
例如,三维数据编码装置可以依次对各点云的坐标间的差分值进行编码。图58是用于说明这种情况的工作的图。例如在图58所示的例子中,三维数据编码装置在对点云PA进行编码时,将子坐标用作预测坐标,对点云PA的坐标与预测坐标的差分值进行编码。并且,三维数据编码装置在对点云PB进行编码时,将点云PA的坐标用作预测坐标,对点云PB与预测坐标的差分值进行编码。并且,在三维数据编码装置对点云PC进行编码时,将点云PB用作预测坐标,对点云PB与预测坐标的差分值进行编码。这样,三维数据编码装置可以针对多个点云设定扫描顺序,对处理对象的对象点云的坐标、与相对于对象点云在扫描顺序上为前一个点云的坐标的差分值进行编码。
并且,在上述的说明中,子坐标虽然是子地图的左下前方的角落的坐标,不过,子坐标的位置并非受此所限。图59至图61示出了子坐标的位置的其他的例子。关于子坐标的设定位置,可以设定为对象空间(子地图、空间、或体积)内任意的坐标。即,如以上所述,子坐标可以是左下前方的角落的坐标。如图59所示,子坐标也可以是对象空间的中心的坐标。如图60所示,子坐标也可以是对象空间的右上后方的角落的坐标。并且,子坐标并非受限于对象空间的左下前方或右上后方的角落的坐标,可以是对象空间中的任意的角落的坐标。
并且,子坐标的设定位置也可以与对象空间(子地图、空间、或体积)内的某个点云的坐标相同。例如,在图61所示的例子中,子坐标的坐标与点云PD的坐标一致。
并且,在本实施方式中虽然示出了是适用八叉树编码、还是适用非八叉树编码的切换例子,但是并非受此所限。例如,三维数据编码装置也可以对是适用八叉树以外的其他的树结构、还是适用该树结构以外的非树结构进行切换。例如,其他的树结构是指,利用与坐标轴的其中之一垂直的平面,来进行分割的kd树等。另外,作为其他的树结构,可以采用任意的方式。
并且,在本实施方式中虽然示出了对点云所具有的坐标信息进行编码的例子,但是并非受此所限。三维数据编码装置例如也可以对颜色信息、三维特征量、或可见光的特征量等,以与坐标信息相同的方法进行编码。例如,三维数据编码装置也可以将子地图内的各点云所具有的颜色信息的平均值设定为子颜色信息(sub-color),对各点云的颜色信息与子颜色信息的差分进行编码。
并且,在本实施方式中虽然示出了按照点云的数量等来选择编码效率高的编码方式(八叉树编码或非八叉树编码)的例子,但是并非受此所限。例如,作为服务器侧的三维数据编码装置可以事先保持通过八叉树编码而编码的点云的比特流、通过非八叉树编码而编码的点云的比特流、以及通过这两种方式而编码的点云的比特流,按照通信环境或三维数据解码装置的处理能力,对发送到三维数据解码装置比特流进行切换。
图62示出了对八叉树编码的适用进行切换的情况下的体积的句法例子。图62所示的句法与图52所示的句法基本相同,各信息为体积单位的信息之处不同。具体而言,NumOfPoint示出体积中包含的点云数。sub_coordinate_x、sub_coordinate_y、以及sub_coordinate_z是体积的子坐标信息。
并且,diff_x[i]、diff_y[i]、以及diff_z[i]是体积内的第i个点云的差分坐标。diff_x[i]表示体积内的第i个点云的x坐标与子坐标的x坐标的差分值。diff_y[i]表示体积内的第i个点云的y坐标与子坐标的y坐标的差分值。diff_z[i]表示体积内的第i个点云的z坐标与子坐标的z坐标的差分值。
另外,在空间中的体积的相对位置能够计算的情况下,三维数据编码装置也可以不使子坐标信息包含在体积的头部。即,三维数据编码装置可以不使子坐标信息包含在头部,而计算空间中的体积的相对位置,将计算的位置作为各体积的子坐标。
如以上所述,本实施方式的三维数据编码装置判断是否以八叉树结构来对三维数据中包含的多个空间单位(例如子地图、空间或体积)中的对象空间单位进行编码(例如,图53的S1522)。例如,三维数据编码装置在对象空间单位中包含的三维点的数量比预先规定的阈值多的情况下,判断为以八叉树结构对对象空间单位进行编码。并且,三维数据编码装置在对象空间单位中包含的三维点的数量为上述阈值以下的情况下,判断为不以八叉树结构对对象空间单位进行编码。
在判断为以八叉树结构对对象空间单位进行编码的情况下(S1522的“是”),三维数据编码装置以八叉树结构来编码对象空间单位(S1523)。并且,在判断为不以八叉树结构对对象空间单位进行的编码的情况下(S1522的“否”),三维数据编码装置针对对象空间单位,以与八叉树结构不同的方式来进行编码(S1524)。例如,作为不同的方式,三维数据编码装置对对象空间单位中包含的三维点的坐标进行编码。具体而言,作为不同的方式,三维数据编码装置对对象空间单位的基准坐标、与对象空间单位中包含的三维点的坐标的差分进行编码。
接着,三维数据编码装置将示出是否以八叉树结构来编码对象空间单位的信息附加到比特流(S1525)。
据此,该三维数据编码装置能够减少编码信号的数据量,从而能够提高编码效率。
例如,三维数据编码装置具备处理器和存储器,处理器利用存储器,进行上述的处理。
并且,本实施方式的三维数据解码装置从比特流中,解码示出是否以八叉树结构来解码三维数据中包含的多个对象空间单位(例如,子地图、空间或体积)中的对象空间单位的信息(例如,图54的S1531)。在由上述信息示出以八叉树结构来解码对象空间单位的情况下(S1532的“是”),三维数据解码装置以八叉树结构来解码对象空间单位(S1533)。
在由上述信息示出不以八叉树结构对所述对象空间单位进行解码的情况下(S1532的“否”),三维数据解码装置以与八叉树结构不同的方式来解码对象空间单位(S1534)。例如,三维数据解码装置在不同的方式中,对对象空间单位中包含的三维点的坐标进行解码。具体而言,三维数据解码装置在不同的方式中,对对象空间单位的基准坐标与对象空间单位中包含的三维点的坐标的差分进行解码。
由此,该三维数据解码装置能够减少编码信号的数据量,因此能够提高编码效率。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式9)
在本实施方式中,对八叉树结构等的树结构的编码方法的另一例进行说明。图63是表示有关本实施方式的树结构的一例的图。另外,图63表示四叉树结构的例子。
将包含三维点的叶节点称作有效叶节点,将不包含三维点的叶节点称作无效叶节点。将有效叶节点的数量是阈值以上的分支(branch)称作稠密的分支(dense branch)。将有效叶节点的数量比阈值小的分支称作稀疏的分支(sparse branch)。
三维数据编码装置在树结构的某层(layer)中,计算各分支中包含的三维点的数量(即有效叶节点的数量)。图63表示阈值是5的情况下的例子。在该例中,在层1中存在两个分支。由于在左侧的分支中包含7个三维点,所以左侧的分支被判定为稠密的分支。由于在右侧的分支中包含两个三维点,所以右侧的分支被判定为稀疏的分支。
图64例如是表示层5的各分支所具有的有效叶节点的数量(3D points)的例子的图。图64的横轴表示层5的分支的识别号即索引。如图64所示,在特定的分支中,包含比其他分支明显多的三维点。在这样的稠密的分支中,与稀疏的分支相比,占用率编码更为有效。
以下,对占用率编码和位置编码的应用方法进行说明。图65是表示层5的各分支中包含的三维点的数量(有效叶节点的数量)与所应用的编码方式的关系的图。如图65所示,三维数据编码装置对于稠密的分支应用占用率编码,对于稀疏的分支应用位置编码。由此,能够提高编码效率。
图66是表示LiDAR数据中的稠密的分支区域的例子的图。如图66所示,根据区域,基于各分支中包含的三维点的数量计算的三维点的密度不同。
此外,通过将稠密的三维点(分支)与稀疏的三维点(分支)分离,有以下的优点。距LiDAR传感器越近,三维点的密度越高。因此,通过对应于疎密而将分支分离,能够进行距离方向的划区。这样的划区在特定的应用程序中是有效的。此外,对于稀疏的分支,使用占用率编码以外的方法是有效的。
在本实施方式中,三维数据编码装置将被输入的三维点群分离为两个以上的子三维点群,对各子三维点群应用不同的编码方法。
例如,三维数据编码装置将被输入的三维点群分离为包括稠密的分支的子三维点群A(稠密的三维点群:dense cloud)、和包括稀疏的分支的子三维点群B(稀疏的三维点群:sparse cloud)。图67是表示从图63所示的树结构分离出的、包括稠密的分支的子三维点群A(稠密的三维点群)的例子的图。图68是表示从图63所示的树结构分离出的、包括稀疏的分支的子三维点群B(稀疏的三维点群)的例子的图。
接着,三维数据编码装置将子三维点群A通过占用率编码进行编码,将子三维点群B通过位置编码进行编码。
另外,这里表示了作为不同的编码方法而应用不同的编码方式(占用率编码和位置编码)的例子,但例如三维数据编码装置也可以对子三维点群A和子三维点群B使用相同的编码方式,并且在子三维点群A和子三维点群B间使在编码中使用的参数不同。
以下,对由三维数据编码装置进行的三维数据编码处理的流程进行说明。图69是由有关本实施方式的三维数据编码装置进行的三维数据编码处理的流程图。
首先,三维数据编码装置将被输入的三维点群分离为子三维点群(S1701)。三维数据编码装置既可以自动地进行该分离,也可以基于由用户输入的信息来进行。例如,也可以由用户指定子三维点群的范围等。此外,作为自动进行的例子,例如在输入数据是LiDAR数据的情况下,三维数据编码装置使用到各点群的距离信息进行分离。具体而言,三维数据编码装置将距计测地点处于一定范围内的点群与处于范围外的点群分离。此外,三维数据编码装置也可以使用重要的区域和不重要的区域的信息进行分离。
接着,三维数据编码装置将子三维点群A通过方法A进行编码,从而生成编码数据(编码比特流)(S1702)。此外,三维数据编码装置将子三维点群B通过手法B进行编码,从而生成编码数据(S1703)。另外,三维数据编码装置也可以将子三维点群B通过手法A进行编码。在此情况下,三维数据编码装置使用与在子三维点群A的编码中使用的编码参数不同的参数将子三维点群B进行编码。例如,该参数也可以是量化参数。例如,三维数据编码装置使用比在子三维点群A的编码中使用的量化参数大的量化参数,将子三维点群B进行编码。在此情况下,三维数据编码装置也可以对各子三维点群的编码数据的头部附加表示在该子三维点群的编码中使用的量化参数的信息。
接着,三维数据编码装置通过将在步骤S1702中得到的编码数据与在步骤S1703中得到的编码数据结合而生成比特流(S1704)。
此外,三维数据编码装置也可以作为比特流的头部信息而将用来将各子三维点群解码的信息编码。例如,三维数据编码装置也可以将下述这样的信息编码。
头部信息也可以包含表示被编码的子三维点的数量的信息。在该例中,该信息表示2。
头部信息也可以包含表示各子三维点群中包含的三维点的数量和编码方法的信息。在该例中,该信息表示子三维点群A中包含的三维点的数量、对子三维点群A应用的编码方法(手法A)、子三维点群B中包含的三维点的数量和对子三维点群B应用的编码方法(手法B)。
头部信息也可以包含用来识别各子三维点群的编码数据的开始位置或末端位置的信息。
此外,三维数据编码装置也可以将子三维点群A和子三维点群B并行地编码。或者,三维数据编码装置也可以将子三维点群A和子三维点群B依次编码。
此外,向子三维点群的分离的方法并不限于上述。例如,三维数据编码装置使改变分离方法,使用多个分离方法的每一个进行编码,计算使用各分离方法得到的编码数据的编码效率。并且,三维数据编码装置选择编码效率最高的分离方法。例如,三维数据编码装置也可以在多个层的每一个中将三维点群分离,计算各个情况下的编码效率,选择编码效率最高的分离方法(即进行分离的层),用所选择的分离方法生成子三维点群而进行编码。
此外,三维数据编码装置也可以在将编码数据结合时,越是重要的子三维点群的编码信息,则配置在距比特流的开头越近的位置。由此,三维数据解码装置仅通过将开头的比特流解码就能够获得重要的信息,所以能够较早地获得重要的信息。
接着,对由三维数据解码装置进行的三维数据解码处理的流程进行说明。图70是由有关本实施方式的三维数据解码装置进行的三维数据解码处理的流程图。
首先,三维数据解码装置例如获得由上述三维数据编码装置生成的比特流。接着,三维数据解码装置从所获得的比特流中将子三维点群A的编码数据与子三维点群B的编码数据分离(S1711)。具体而言,三维数据解码装置从比特流的头部信息中将用来解码各子三维点群的信息进行解码,使用该信息将各子三维点群的编码数据分离。
接着,三维数据解码装置通过将子三维点群A的编码数据用手法A解码而得到子三维点群A(S1712)。此外,三维数据解码装置通过将子三维点群B的编码数据用手法B解码,得到子三维点群B(S1713)。接着,三维数据解码装置将子三维点群A与子三维点群B结合(S1714)。
另外,三维数据解码装置也可以将子三维点群A和子三维点群B并行地解码。或者,三维数据解码装置也可以将子三维点群A和子三维点群B依次解码。
此外,三维数据解码装置也可以将需要的子三维点群解码。例如,三维数据解码装置也可以将子三维点群A解码,而不解码子三维点群B。例如,在子三维点群A是LiDAR数据的重要区域中包含的三维点群的情况下,三维数据解码装置将该重要区域的三维点群进行解码。使用该重要区域的三维点群进行车等的自我位置估计等。
接着,说明有关本实施方式的编码处理的具体例。图71是由有关本实施方式的三维数据编码装置进行的三维数据编码处理的流程图。
首先,三维数据编码装置将被输入的三维点分离为稀疏的三维点群和稠密的三维点群(S1721)。具体而言,三维数据编码装置将八叉树结构的某个层的分支所具有的有效叶节点的数量进行计数。三维数据编码装置根据各分支的有效叶节点数,将各分支设定为稠密的分支或稀疏的分支。并且,三维数据编码装置生成将稠密的分支汇集的子三维点群(稠密的三维点群)和将稀疏的分支汇集的子三维点群(稀疏的三维点群)。
接着,三维数据编码装置通过将稀疏的三维点群编码而生成编码数据(S1722)。例如,三维数据编码装置使用位置编码将稀疏的三维点群编码。
此外,三维数据编码装置通过将稠密的三维点群编码而生成编码数据(S1723)。例如,三维数据编码装置使用占用率编码将稠密的三维点群编码。
接着,三维数据编码装置通过将在步骤S1722中得到的稀疏的三维点群的编码数据与在步骤S1723中得到的稠密的三维点群的编码数据结合而生成比特流(S1724)。
此外,三维数据编码装置也可以作为比特流的头部信息而将用来解码稀疏的三维点群和稠密的三维点群的信息进行编码。例如,三维数据编码装置也可以将下述那样的信息编码。
头部信息也可以包含表示被编码的子三维点群的数量的信息。在该例中,该信息表示2。
头部信息也可以包含表示各子三维点群中包含的三维点的数量和编码方法的信息。在该例中,该信息表示稀疏的三维点群中包含的三维点的数量、应用于稀疏的三维点群的编码方法(位置编码)、稠密的三维点群中包含的三维点的数量和应用于稠密的三维点群应用的编码方法(占用率编码)。
头部信息也可以包含用来识别各子三维点群的编码数据的开始位置或末端位置的信息。在该例中,该信息表示稀疏的三维点群的编码数据的开始位置及末端位置、以及稠密的三维点群的编码数据的开始位置及末端位置中的至少一个。
此外,三维数据编码装置也可以将稀疏的三维点群和稠密的三维点群并行地编码。或者,三维数据编码装置也可以将稀疏的三维点群和稠密的三维点群依次编码。
接着,对三维数据解码处理的具体例进行说明。图72是由有关本实施方式的三维数据解码装置进行的三维数据解码处理的流程图。
首先,三维数据解码装置例如获得由上述三维数据编码装置生成的比特流。接着,三维数据解码装置从所获得的比特流分离为稀疏的三维点群的编码数据和稠密的三维点群的编码数据(S1731)。具体而言,三维数据解码装置从比特流的头部信息将用来解码各子三维点群的信息进行解码,使用该信息将各子三维点群的编码数据分离。在该例中,三维数据解码装置使用头部信息从比特流分离稀疏的三维点群和稠密的三维点群的编码数据。
接着,三维数据解码装置通过将稀疏的三维点群的编码数据解码而得到稀疏的三维点群(S1732)。例如,三维数据解码装置利用用来将被位置编码的编码数据解码的位置解码将稀疏的三维点群解码。
此外,三维数据解码装置通过将稠密的三维点群的编码数据解码而得到稠密的三维点群(S1733)。例如,三维数据解码装置利用用来将被占用率编码的编码数据解码的占用率解码将稠密的三维点群解码。
接着,三维数据解码装置将在步骤S1732中得到的稀疏的三维点群与在步骤S1733中得到的稠密的三维点群结合(S1734)。
另外,三维数据解码装置也可以将稀疏的三维点群和稠密的三维点群并行地解码。或者,三维数据解码装置也可以将稀疏的三维点群和稠密的三维点群依次解码。
此外,三维数据解码装置也可以将一部分的需要的子三维点群解码。例如,三维数据解码装置也可以将稠密的三维点群解码,而不解码稀疏的三维数据。例如,在稠密的三维点群是LiDAR数据的重要区域中包含的三维点群的情况下,三维数据解码装置将该重要区域的三维点群解码。使用该重要区域的三维点群进行车等的自我位置估计等。
图73是有关本实施方式的编码处理的流程图。首先,三维数据编码装置通过将被输入的三维点群分离为稀疏的三维点群和稠密的三维点群,生成稀疏的三维点群和稠密的三维点群(S1741)。
接着,三维数据编码装置通过将稠密的三维点群编码而生成编码数据(S1742)。此外,三维数据编码装置通过将稀疏的三维点群编码而生成编码数据(S1743)。最后,三维数据编码装置通过将在步骤S1742中得到的稀疏的三维点群的编码数据与在步骤S1743中得到的稠密的三维点群的编码数据结合而生成比特流(S1744)。
图74是有关本实施方式的解码处理的流程图。首先,三维数据解码装置从比特流中提取稠密的三维点群的编码数据和稀疏的三维点群的编码数据(S1751)。接着,三维数据解码装置通过将稠密的三维点群的编码数据解码而得到稠密的三维点群的解码数据(S1752)。此外,三维数据解码装置通过将稀疏的三维点群的编码数据解码而得到稀疏的三维点群的解码数据(S1753)。接着,三维数据解码装置通过将在步骤S1752中得到的稠密的三维点群的解码数据与在步骤S1753中得到的稀疏的三维点群的解码数据结合而生成三维点群(S1754)。
另外,三维数据编码装置及三维数据解码装置将稠密的三维点群和稀疏的三维点群中的哪一个先编码或解码都可以。此外,也可以由多个处理器等并行地编码处理或解码处理。
此外,三维数据编码装置也可以将稠密的三维点群以及稀疏的三维点群的一方编码。例如,在稠密的三维点群中包含重要的信息的情况下,三维数据编码装置从被输入的三维点群中提取稠密的三维点群和稀疏的三维点群,将稠密的三维点群编码,而不编码稀疏的三维点群。由此,三维数据编码装置能够在抑制比特量的同时,将重要的信息附加到流中。例如,在服务器与客户端之间,在从客户端对服务器有客户端周围的三维点群信息的发送请求的情况下,服务器将客户端周围的重要的信息作为稠密的三维点群进行编码并向客户端发送。由此,服务器能够在抑制网络带宽的同时发送客户端所请求的信息。
此外,三维数据解码装置也可以将稠密的三维点群以及稀疏的三维点群的一方解码。例如,在稠密的三维点群中包含重要的信息的情况下,三维数据解码装置将稠密的三维点群解码,而不解码稀疏的三维点群。由此,三维数据解码装置能够在抑制解码处理的处理负荷的同时获得需要的信息。
图75是图73所示的三维点的分离处理(S1741)的流程图。首先,三维数据编码装置设定层L和阈值TH(S1761)。另外,三维数据编码装置也可以将表示所设定的层L和阈值TH的信息附加到比特流中。即,三维数据编码装置也可以生成包含表示所设定的层L和阈值TH的信息的比特流。
接着,三维数据编码装置将处理对象的位置从八叉树的根节点移动到层L的开头的分支。即,三维数据编码装置选择层L的开头的分支作为处理对象的分支(S1762)。
接着,三维数据编码装置将层L的处理对象的分支的有效叶节点数进行计数(S1763)。在处理对象的分支的有效叶节点数比阈值TH多的情况下(S1764的“是”),三维数据编码装置将处理对象的分支作为稠密的分支,向稠密的三维点群登记(S1765)。另一方面,在处理对象的分支的有效叶节点数为阈值TH以下的情况下(S1764的“否”),三维数据编码装置将处理对象的分支作为稀疏的分支,向稀疏的三维点群登记(S1766)。
在没有完成层L的全部的分支的处理的情况下(S1767的“否”),三维数据编码装置将处理对象的位置移动至层L的下一分支。即,三维数据编码装置选择层L的下一分支作为处理对象的分支(S1768)。并且,三维数据编码装置对所选择的下一个处理对象的分支进行步骤S1763以后的处理。
将上述的处理反复进行,直到完成层L的全部的分支的处理(S1767的“是”)。
另外,在上述说明中预先设定了层L和阈值TH,但并不一定限定于此。例如,三维数据编码装置将层L和阈值TH的组设定多个样式,使用各组生成稠密的三维点群和稀疏的三维点群,并分别进行编码。三维数据编码装置用多个组中的所生成的编码数据的编码效率最高的层L和阈值TH的组,最终将稠密的三维点群和稀疏的三维点群编码。由此能够提高编码效率。此外,三维数据编码装置例如也可以计算层L及阈值TH。例如,三维数据编码装置也可以对层L设定树结构中包含的层的最大值的一半的值。此外,三维数据编码装置也可以将树结构中包含的多个三维点的总数的一半的值设定为阈值TH。
此外,在上述说明中,叙述了将输入三维点群分类为稠密的三维点群和稀疏的三维点群这两种的例子,但三维数据编码装置也可以将输入三维点群分类为3种以上的三维点群。例如,三维数据编码装置在处理对象的分支的有效叶节点数是阈值TH1以上的情况下,将处理对象的分支分类为第1稠密的三维点群,在处理对象的分支的有效叶节点数小于第1阈值TH1且为第2阈值TH2以上的情况下,将处理对象的分支分类为第2稠密的三维点群。三维数据编码装置在处理对象的分支的有效叶节点数小于第2阈值TH2且为第3阈值TH3以上的情况下,将处理对象的分支分类为第1稀疏的三维点群,在处理对象的分支的有效叶节点数小于阈值TH3的情况下,将处理对象的分支分类为第2稀疏的三维点群。
以下,对有关本实施方式的三维点群的编码数据的句法例进行说明。图76是表示该句法例的图。pc_header()例如是被输入的多个三维点的头部信息。
图76所示的num_sub_pc表示子三维点群的数量。numPoint[i]表示第i个子三维点群之中包含的三维点的数量。coding_type[i]是表示应用于第i个子三维点群的编码类型(编码方式)的编码类型信息。例如,coding_type=00表示应用了位置编码。coding_type=01表示应用了占用率编码。coding_type=10或11表示应用了其他的编码方式。
data_sub_cloud()是第i个子三维点群的编码数据。coding_type_00_data是应用了coding_type为00的编码类型的编码数据,例如是应用了位置编码的编码数据。coding_type_01_data是应用了coding_type为01的编码类型的编码数据,例如是应用了占用率编码的编码数据。
end_of_data是表示编码数据的末端的末端信息。例如,对于该end_of_data,分配没有用于编码数据的固定的比特串。由此,三维数据解码装置通过从比特流中搜索例如end_of_data的比特串,能够跳过不需要解码的编码数据的解码处理。
另外,三维数据编码装置也可以将通过上述方法生成的编码数据进行熵编码。例如,三维数据编码装置在将各值进行二值化后进行计算编码。
此外,在本实施方式中,表示了四叉树结构或八叉树结构的例子,但并不一定限定于此,也可以对二叉树、十六叉树等N叉树(N是2以上的整数)或其他的树结构应用上述手法。
[变形例]
在上述说明中,如图68及图69所示,将包括稠密的分支和其上层(从整体的树结构的根节点到稠密的分支的根节点的树结构)的树结构编码,将包括稀疏的分支和其上层(从整体的树结构的根节点到稀疏的分支的根节点的树结构)的树结构编码。在本变形例中,三维数据编码装置将稠密的分支与稀疏的分支分离,将稠密的分支和稀疏的分支编码。即,在编码的树结构中,不包含上层的树结构。例如,三维数据编码装置对稠密的分支应用占用率编码,对稀疏的分支应用位置编码。
图77是表示从图63所示的树结构分离的稠密的分支的例子的图。图78是表示从图63所示的树结构分离的稀疏的分支的例子的图。本变形例将图77及图78所示的树结构分别编码。
此外,三维数据编码装置代替不编码上层的树结构,而将表示分支的位置的信息进行编码。例如,该信息表示分支的根节点的位置。
例如,三维数据编码装置将表示生成了稠密的分支的层的层信息和表示稠密的分支是该层的第几个分支的分支信息编码为该稠密的分支的编码数据。由此,三维数据解码装置能够从比特流解码层信息及分支信息,并使用这些层信息及分支信息掌握解码后的稠密的分支是哪个层的第几个分支的三维点群。此外同样,三维数据编码装置将表示生成了稀疏的分支的层的层信息和表示稀疏的分支是该层的第几个分支的分支信息编码为稀疏的分支的编码数据。
由此,三维数据解码装置能够从比特流解码层信息及分支信息,并使用这些层信息及分支信息掌握解码后的稀疏的分支是哪个层的第几个分支的三维点群。由此,能够削减因将比稠密的分支及稀疏的分支上位的层的信息编码而带来的开销,所以能够提高编码效率。
另外,分支信息也可以表示被分配给由层信息表示的层内的各分支的值。此外,分支信息也可以表示以八叉树的根节点为起点而分配给各节点的值。在此情况下,也可以不编码层信息。此外,三维数据编码装置也可以分别生成多个稠密的分支和多个稀疏的分支。
图79是本变形例的编码处理的流程图。首先,三维数据编码装置根据被输入的三维点群生成1个以上的稀疏的分支和1个以上的稠密的分支(S1771)。
接着,三维数据编码装置通过将稠密的分支编码而生成编码数据(S1772)。接着,三维数据编码装置判定是否在步骤S1771中生成的全部的稠密的分支的编码已完成(S1773)。
在全部的稠密的分支的编码没有完成的情况下(S1773的“否”),三维数据编码装置选择下一个稠密的分支(S1774),通过将所选择的稠密的分支编码而生成编码数据(S1772)。
另一方面,在全部的稠密的分支的编码完成的情况下(S1773的“是”),三维数据编码装置通过将稀疏的分支编码而生成编码数据(S1775)。接着,三维数据编码装置判定是否在步骤S1771中生成的全部的稀疏的分支的编码已完成(S1776)。
在全部的稀疏的分支的编码没有完成的情况下(S1776的“否”),三维数据编码装置选择下一个稀疏的分支(S1777),通过将所选择的稀疏的分支编码而生成编码数据(S1775)。
另一方面,在全部的稀疏的分支的编码完成的情况下(S1776的“是”),三维数据编码装置将在步骤S1772及S1775中生成的编码数据结合而生成比特流(S1778)。
图79是本变形例的解码处理的流程图。首先,三维数据解码装置从比特流中提取稠密的分支的1个以上的编码数据和稀疏的分支的1个以上的编码数据(S1781)。接着,三维数据解码装置通过将稠密的分支的编码数据解码,得到稠密的分支的解码数据(S1782)。
接着,三维数据解码装置判定是否在步骤S1781中提取出的全部的稠密的分支的编码数据的解码已完成(S1783)。在全部的稠密的分支的编码数据的解码没有完成的情况下(S1783的“否”),三维数据解码装置选择下一个稠密的分支的编码数据(S1784),通过将所选择的稠密的分支的编码数据解码,得到稠密的分支的解码数据(S1782)。
另一方面,在全部的稠密的分支的编码数据的解码完成的情况下(S1783的“是”),三维数据解码装置通过将稀疏的分支的编码数据解码,得到稀疏的分支的解码数据(S1785)。
接着,三维数据解码装置判定是否在步骤S1781中提取出的全部的稀疏的分支的编码数据的解码已完成(S1786)。在全部的稀疏的分支的编码数据的解码没有完成的情况下(S1786的“否”),三维数据解码装置选择下一个稀疏的分支的编码数据(S1787),通过将所选择的稀疏的分支的编码数据解码,得到稀疏的分支的解码数据(S1785)。
另一方面,在全部的稀疏的分支的编码数据的解码已完成的情况下(S1786的“是”),三维数据解码装置通过将在步骤S1782及S1785中得到的解码数据结合而生成三维点群(S1788)。
另外,三维数据编码装置及三维数据解码装置将稠密的分支以及稀疏的分支的哪一方先编码或解码都可以。此外,也可以由多个处理器等并行地编码处理或解码处理。
此外,三维数据编码装置也可以将稠密的分支以及稀疏的分支的一方编码。此外,三维数据编码装置也可以将多个稠密的分支的一部分编码。例如,在特定的稠密的分支中包含重要的信息的情况下,三维数据编码装置从被输入的三维点群中提取稠密的分支和稀疏的分支,将包含重要的信息的稠密的分支编码,不编码其他稠密的分支及稀疏的分支。由此,三维数据编码装置能够在抑制比特量的同时将重要的信息附加到流中。例如,在服务器与客户端之间从客户端向服务器有客户端周围的三维点群信息的发送请求的情况下,服务器将客户端周围的重要的信息作为稠密的分支编码并发送给客户端。由此,服务器能够在抑制网络带宽的同时发送客户端请求的信息。
此外,三维数据解码装置也可以将稠密的分支以及稀疏的分支的一方解码。此外,三维数据解码装置也可以将多个稠密的分支的一部分解码。例如,在特定的稠密的分支中包含重要的信息的情况下,三维数据解码装置将该特定的稠密的分支解码,而不解码其他稠密的分支及稀疏的分支。由此,三维数据解码装置能够在抑制解码处理的处理负荷的同时获得需要的信息。
图81是图79所示的三维点的分离处理(S1771)的流程图。首先,三维数据编码装置设定层L和阈值TH(S1761)。另外,三维数据编码装置也可以将表示所设定的层L和阈值TH的信息附加到比特流中。
接着,三维数据编码装置选择层L的开头的分支作为处理对象的分支(S1762)。接着,三维数据编码装置将层L的处理对象的分支的有效叶节点数计数(S1763)。在处理对象的分支的有效叶节点数比阈值TH多的情况下(S1764的“是”),三维数据编码装置将处理对象的分支设定为稠密的分支,对比特流附加层信息和分支信息(S1765A)。另一方面,在处理对象的分支的有效叶节点数为阈值TH以下的情况下(S1764的“否”),三维数据编码装置将处理对象的分支设定为稀疏的分支,对比特流附加层信息和分支信息(S1766A)。
在没有完成层L的全部的分支的处理的情况下(S1767的“否”),三维数据编码装置选择层L的下一个分支作为处理对象的分支(S1768)。并且,三维数据编码装置对所选择的下一个处理对象的分支进行步骤S1763以后的处理。反复进行上述的处理,直到完成层L的全部的分支的处理(S1767的“是”)。
另外,在上述说明中预先设定了层L和阈值TH,但并不一定限于此。例如,三维数据编码装置设定多个样式的层L和阈值TH的组,使用各组生成稠密的分支和稀疏的分支,并分别进行编码。三维数据编码装置用多个组中的、所生成的编码数据的编码效率最高的层L和阈值TH的组最终将稠密的分支和稀疏的分支编码。由此能够提高编码效率。此外,三维数据编码装置例如也可以计算层L及阈值TH。例如,三维数据编码装置也可以将树结构中包含的层的最大值的一半的值设定为层L。此外,三维数据编码装置也可以将树结构中包含的多个三维点的总数的一半的值设定为阈值TH。
以下,对有关本变形例的三维点群的编码数据的句法例进行说明。图82是表示该句法例的图。在图82所示的句法例中,相对于图76所示的句法例,追加了作为层信息的layer_id[i]和作为分支信息的branch_id[i]。
layer_id[i]表示第i个子三维点群所属的层号。branch_id[i]表示第i个子三维点群的layer_id[i]内的分支号。
layer_id[i]及branch_id[i]是表示例如八叉树的分支的场所的层信息及分支信息。例如,layer_id[i]=2,branch_id[i]=5表示第i个分支是层2的第5个分支。
另外,三维数据编码装置也可以将通过上述方法生成的编码数据进行熵编码。例如,三维数据编码装置在将各值二值化后进行计算编码。
此外,在本变形例中表示了四叉树结构或八叉树结构的例子,但并不一定限于此,也可以对二叉树、十六叉树等的N叉树(N是2以上的整数)或其他的树结构应用上述手法。
如以上这样,有关本实施方式的三维数据编码装置进行图83所示的处理。
首先,三维数据编码装置生成三维数据中包含的多个三维点的N(N是2以上的整数)叉树结构(S1801)。
接着,三维数据编码装置将以第1层中包含的第1节点为根节点的第1分支通过第1编码处理进行编码,从而生成第1编码数据,第1层是N叉树结构中包含的多个层的某一个(S1802)。
此外,三维数据编码装置将以第1层中包含的与第1节点不同的第2节点为根节点的第2分支通过与第1编码处理不同的第2编码处理进行编码,从而生成第2编码数据(S1803)。
接着,三维数据编码装置生成包括第1编码数据和第2编码数据的比特流(S1804)。
由此,三维数据编码装置能够应用适合于N叉树结构中包含的各个分支的编码处理,所以能够提高编码效率。
例如,第1分支中包含的三维点的数量比预先设定的阈值少,第2分支中包含的三维点的数量比阈值多。即,三维数据编码装置在处理对象的分支中包含的三维点的数量比阈值少的情况下,将处理对象的分支设定为第1分支,在处理对象的分支中包含的三维点的数量比阈值多的情况下,将处理对象的分支设定为第2分支。
例如,第1编码数据包含以第1方式表示第1分支中包含的多个第1三维点的第一N叉树结构的第1信息。第2编码数据包含以第2方式表示第2分支中包含的多个第2三维点的第二N叉树结构的第2信息。即,第1编码处理和第2编码处理的编码方式不同。
例如,在第1编码处理中使用位置编码,在第2编码处理中使用占用率编码。即,第1信息包含与多个第1三维点的每一个对应的三维点信息。各三维点信息包含与第一N叉树结构中的多个层的每一个对应的索引。各索引表示属于对应的层的N个子块中的、对应的第1三维点所属的子块。第2信息包含多个与属于第二N叉树结构中的多个层的多个子块的每一个对应、且表示在对应的子块中是否存在三维点的1比特的信息。
例如,在第2编码处理中使用的量化参数与在第1编码处理中使用的量化参数不同。即,第1编码处理和第2编码处理的编码方式相同,使用的参数不同。
例如,如图67及图68所示,三维数据编码装置在第1分支的编码中,将包括从N叉树结构的根节点到第1节点的树结构和第1分支的树结构通过第1编码处理进行编码,在第2分支的编码中,将包括从N叉树结构的根节点到第2节点的树结构和第2分支的树结构通过第2编码处理进行编码。
例如,第1编码数据包含第1分支的编码数据、和表示N叉树结构中的第1节点的位置的第3信息。第2编码数据包括第2分支的编码数据、和表示N叉树结构中的第2节点的位置的第4信息。
例如,第3信息包括表示第1层的信息(层信息)、和表示第1节点是第1层中包含的节点中的哪一个节点的信息(分支信息)。第4信息包括表示第1层的信息(层信息)、和表示第2节点是第1层中包含的节点中的哪一个节点的信息(分支信息)。
例如,第1编码数据包括第1分支中包含的三维点的数量的信息(numPoint),第2编码数据包含表示第2分支中包含的三维点的数量的信息(numPoint)。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器,进行上述的处理。
此外,有关实施方式的三维数据解码装置进行图84所示的处理。
首先,三维数据解码装置从比特流获得:第1编码数据,其是以第1层中包含的第1节点为根节点的第1分支被编码而得到的,所述第1层是多个三维点的N(N是2以上的整数)叉树结构中包含的多个层中的某一个;以及第2编码数据,其是以第1层中包含的与第1节点不同的第2节点为根节点的第2分支被编码而得到的(S1811)。
接着,三维数据解码装置通过将第1编码数据用第1解码处理进行解码,生成第1分支的第1解码数据(S1812)。
此外,三维数据解码装置通过将第2编码数据用与第1解码处理不同的第2解码处理进行解码,生成第2分支的第2解码数据(S1813)。
接着,三维数据解码装置使用第1解码数据和第2解码数据,复原多个三维点(S1814)。例如,该三维点包括由第1解码数据表示的多个三维点和由第2解码数据表示的多个三维点。
由此,三维数据解码装置能够将提高了编码效率的比特流解码。
例如,第1分支中包含的三维点的数量比预先设定的阈值少,第2分支中包含的三维点的数量比阈值多。
例如,第1编码数据包含以第1方式表示第1分支中包含的多个第1三维点的第一N叉树结构的第1信息。第2编码数据包含以第2方式表示第2分支中包含的多个第2三维点的第二N叉树结构的第2信息。即,第1解码处理和第2解码处理的编码方式(解码方式)不同。
例如,在第1编码数据中使用位置编码,在第2编码数据中使用占用率编码。即,第1信息包含与多个第1三维点的每一个对应的三维点信息。各三维点信息包含与第一N叉树结构中的多个层的每一个对应的索引。各索引表示属于对应的层的N个子块中的、对应的第1三维点所属的子块。第2信息包含多个与属于第二N叉树结构中的属于多个层的多个子块的每一个对应、且表示在对应的子块中是否存在三维点的1比特的信息。
例如,在第2解码处理中使用的量化参数与在第1解码处理中使用的量化参数不同。即,第1解码处理和第2解码处理的编码方式(解码方式)相同,使用的参数不同。
例如,如图67及图68所示,三维数据解码装置在第1分支的解码中,将包括从N叉树结构的根节点到第1节点的树结构和第1分支的树结构通过第1解码处理进行解码,在第2分支的解码中,将包括从N叉树结构的根节点到第2节点的树结构和第2分支的树结构通过第2解码处理进行解码。
例如,第1编码数据包含第1分支的编码数据、和表示N叉树结构中的第1节点的位置的第3信息。第2编码数据包含第2分支的编码数据、和表示N叉树结构中的第2节点的位置的第4信息。
例如,第3信息包含表示第1层的信息(层信息)、和表示第1节点是第1层中包含的节点中的哪一个节点的信息(分支信息)。第4信息包含表示第1层的信息(层信息)、和表示第2节点是第1层中包含的节点中的哪一个节点的信息(分支信息)。
例如,第1编码数据包含表示第1分支中包含的三维点的数量的信息(numPoint),第2编码数据包含表示第2分支中包含的三维点的数量的信息(numPoint)。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式10)
对本实施方式中占用率编码的编码时的参照的控制方法进行说明。此外,以下,主要说明三维数据编码装置的工作,但三维数据解码装置中也可以进行同样的处理。
图85以及图86是表示本实施方式的参照关系的图,图85是在八叉树结构上表示参照关系的图,图86是在空间区域上表示参照关系的图。
在本实施方式中,三维数据编码装置对编码对象的节点(以下,称为对象节点)的编码信息进行编码时,参照对象节点所属的父节点(parent node)内的各节点的编码信息。但是,不参照与父节点同一层的其他的节点(以下,母相邻节点)内的各节点的编码信息。即,三维数据编码装置将母相邻节点设定为不能参照,或者禁止参照。
此外,三维数据编码装置也可以许可参照父节点所属的父节点(以下,称为祖父节点(grandparent node))内的编码信息。即,三维数据编码装置也可以参照对象节点所属的父节点以及祖父节点的编码信息,对对象节点的编码信息进行编码。
在此,编码信息是例如占用率编码。三维数据编码装置在对对象节点的占用率编码进行编码时,参照表示对象节点所属的父节点内的各节点中是否包含点群的信息(以下,占有信息)。换言之,三维数据编码装置在对对象节点的占用率编码进行编码时,参照父节点的占用率编码。另一方面,三维数据编码装置不参照母相邻节点内的各节点的占有信息。即,三维数据编码装置不参照母相邻节点的占用率编码。另外,三维数据编码装置也可以参照祖父节点内的各节点的占有信息。即,三维数据编码装置也可以参照父节点以及母相邻节点的占有信息。
例如,三维数据编码装置在对对象节点的占用率编码进行编码时,使用对象节点所属的父节点或者祖父节点的占用率编码,切换对对象节点的占用率编码进行熵编码时使用的编码表。此外,其详细情况后述。此时,三维数据编码装置也可以不参照母相邻节点的占用率编码。由此,三维数据编码装置能够在对对象节点的占用率编码进行编码时,根据父节点或者祖父节点的占用率编码的信息适当地切换编码表,因此能够提高编码效率。另外,三维数据编码装置不参照母相邻节点,从而能够抑制母相邻节点的信息的确认处理以及用于存储该处理的存储器容量。另外,对八叉树以深度优先顺序扫描的各节点的占用率编码进行编码变得容易。
以下,对本实施方式的变形例1进行说明。图87是表示本变形例中的参照关系的图。上述实施方式中,三维数据编码装置不参照母相邻节点的占用率编码,但也可以根据特定的条件切换是否参照母相邻节点的占用率编码。
例如,三维数据编码装置在对八叉树以宽度优先扫描的同时进行编码时,参照母相邻节点内的节点的占有信息,对对象节点的占用率编码进行编码。另一方面,三维数据编码装置在对八叉树以深度优先扫描的同时进行编码时,禁止参照母相邻节点内的节点的占有信息。这样根据八叉树的节点的扫描顺序(编码顺序),适当地切换能够参照的节点,从而能够实现编码效率的提高和处理负荷的抑制。
此外,三维数据编码装置以宽度优先编码八叉树,但也可以将以深度优先进行编码等信息附加到比特流的头部。图88是表示这种情况的头部信息的句法例的图。图88所示的octree_scan_order是表示八叉树的编码顺序的编码顺序信息(编码顺序标志)。例如,octree_scan_order为0的情况表示宽度优先,为1的情况表示深度优先。由此,三维数据解码装置通过参照octree_scan_order,能够知道比特流以宽度优先及深度优先的哪一个被编码,能够适当地解码比特流。
另外,三维数据编码装置也可以将表示是否禁止参照母相邻节点的信息附加到比特流的头部信息。图89是表示这种情况的头部信息的句法例的图。limit_refer_flag是表示是否禁止参照母相邻节点的禁止切换信息(禁止切换标志)。例如,limit_refer_flag为1的情况表示禁止参照母相邻节点,0的情况表示无参照限制(许可参照母相邻节点)。
即,三维数据编码装置决定是否禁止参照母相邻节点,基于上述决定的结果,切换是禁止还是许可参照母相邻节点。另外,三维数据编码装置生成包含禁止切换信息的比特流,所述禁止切换信息是上述决定的结果,且表示是否禁止参照母相邻节点。
另外,三维数据解码装置是从比特流获得表示是否禁止参照母相邻节点的禁止切换信息,基于禁止切换信息,切换是禁止还是许可参照母相邻节点。
由此三维数据编码装置能够控制生成母相邻节点的参照并生成比特流。另外,三维数据解码装置能够从比特流的头部获得表示是禁止还是许可参照母相邻节点的信息。
另外,在本实施方式中,作为禁止参照母相邻节点的编码处理的例子,记载了占用率编码的编码处理为例子,但不一定限于此。例如,对八叉树的节点的其他信息进行编码时也能够适用同样的手法。例如,在对附加于节点的颜色、法线向量、或者反射率等的其他属性信息进行编码时,本实施方式的手法也可以适用。另外,对编码表或者预测值进行编码时也能够适用同样的手法。
接着,对本实施方式的变形例2进行说明。在上述说明中,示出了使用了3个参照相邻节点的例子,但也可以使用4个以上的参照相邻节点。图90是表示对象节点以及参照相邻节点的例子的图。
例如,三维数据编码装置通过例如下式,算出对图90所示的对象节点的占用率编码进行熵编码时的编码表。
CodingTable=(FlagX0<<3)+(FlagX1<<2)+(FlagY<<1)+(FlagZ)
在此,CodingTable表示对象节点的占用率编码用的编码表,表示值0~15的任一个。FlagXN是相邻节点XN(N=0…1)的占有信息,如果相邻节点XN包含(占有)点群则表示1,如果并非如此则表示0。FlagY是相邻节点Y的占有信息,如果相邻节点Y包含(占有)点群则表示1,如果并非如此则表示0。FlagZ是相邻节点Z的占有信息,如果相邻节点Z包含(占有)点群则表示1,如果并非如此则表示0。
此时,假如是不能参照(参照禁止)相邻节点例如图90的相邻节点X0的情况,三维数据编码装置也可以使用如1(占有)或者0(非占有)这样的固定值作为代替值。
图91是表示对象节点以及相邻节点的例子的图。如图91所示,不能参照(禁止参照)相邻节点的情况也可以参照对象节点的祖父节点的占用率编码,算出相邻节点的占有信息。例如,代替图91所示的相邻节点X0,三维数据编码装置也可以使用相邻节点G0的占有信息算出上式的FlagX0,使用算出的FlagX0决定编码表的值。此外,图91所示的相邻节点G0是能够判別是否以祖父节点的占用率编码占有的相邻节点。相邻节点X1是能够判別是否以父节点的占用率编码占有的相邻节点。
以下,对本实施方式的变形例3进行说明。图92以及图93是表示本变形例的参照关系的图,图92是在八叉树结构上表示参照关系的图,图93是在空间区域上表示参照关系的图。
在本变形例中,三维数据编码装置在对编码对象的节点(以下,称为对象节点2)的编码信息进行编码时,参照对象节点2所属的父节点内的各节点的编码信息。即,三维数据编码装置许可参照多个相邻节点中的、父节点与对象节点的父节点相同的第1节点的子节点的信息(例如占有信息)。例如,三维数据编码装置在对图92所示的对象节点2的占用率编码进行编码时,存在于对象节点2所属的父节点内的节点,例如,参照图92所示的对象节点的占用率编码。如图93所示,图92所示的对象节点的占用率编码表示例如与对象节点2相邻的对象节点内的各节点是否为占有。因此,三维数据编码装置能够根据对象节点的更细的形状来切换对象节点2的占用率编码的编码表,因此能够提高编码效率。
三维数据编码装置也可以通过例如下式算出对对象节点2的占用率编码进行熵编码时的编码表。
CodingTable=(FlagX1<<5)+(FlagX2<<4)+(FlagX3<<3)+(FlagX4<<2)+(FlagY<<1)+(FlagZ)
在此,CodingTable表示对象节点2的占用率编码用的编码表,表示值0~63的任一个。FlagXN是相邻节点XN(N=1…4)的占有信息,如果相邻节点XN包含(占有)点群则表示1,如果并非如此则表示0。FlagY是相邻节点Y的占有信息,如果相邻节点Y包含(占有)点群则表示1,如果并非如此则表示0。FlagZ是相邻节点Y的占有信息,如果相邻节点Z包含(占有)点群则表示1,如果并非如此则表示0。
此外,三维数据编码装置也可以根据父节点内的对象节点2的节点位置来变更编码表的算出方法。
另外,不是禁止参照母相邻节点的情况下,三维数据编码装置参照母相邻节点内的各节点的编码信息即可。例如,不是禁止参照的情况下,许可参照与对象节点父节点不同的第3节点的子节点的信息(例如占有信息)。例如,在图91所示的例子中,三维数据编码装置参照与对象节点父节点不同的相邻节点X0的占用率编码,获得相邻节点X0的子节点的占有信息。三维数据编码装置基于所获得的相邻节点X0的子节点的占有信息,切换对象节点的占用率编码的熵编码中使用的编码表。
如上所述,本实施方式的三维数据编码装置对三维数据中包含的多个三维点的N(N为2以上的整数)叉树结构中包含的对象节点的信息(例如占用率编码)进行编码。如图85以及图86所示,三维数据编码装置在上述编码中,许可参照与对象节点在空间上相邻的多个相邻节点中的、父节点与对象节点的父节点相同的第1节点的信息(例如占有信息),禁止参照父节点与对象节点的父节点不同的第2节点的信息(例如占有信息)。换言之,在上述编码中,三维数据编码装置许可参照父节点的信息(例如占用率编码),禁止参照与父节点同一层的其他节点(母相邻节点)的信息(例如占用率编码)。
由此,该三维数据编码装置通过参照对象节点在空间上相邻的多个相邻节点中的、父节点与对象节点的父节点相同的第1节点的信息,能够提高编码效率。另外,该三维数据编码装置由于不参照多个相邻节点中的、父节点与对象节点的父节点不同的第2节点的信息,能够降低处理量。这样,该三维数据编码装置能够提高编码效率并且能够降低处理量。
例如,三维数据编码装置进一步决定是否禁止参照第2节点的信息,在上述编码中,基于上述决定的结果,切换是禁止还是许可参照第2节点的信息。三维数据编码装置进一步生成包含禁止切换信息(例如,图89所示的limit_refer_flag)的比特流,所述禁止切换信息为上述决定的结果,且表示是否禁止参照第2节点的信息。
由此,该三维数据编码装置能够切换是否禁止参照第2节点的信息。另外,三维数据解码装置能够使用禁止切换信息适当地进行解码处理。
例如,对象节点的信息是表示属于对象节点的子节点的各自是否存在三维点的信息(例如占用率编码),第1节点的信息是表示在第1节点是否存在三维点的信息(第1节点的占有信息),第2节点的信息是表示在第2节点是否存在三维点的信息(第2节点的占有信息)。
例如,三维数据编码装置在上述编码中,基于在第1节点是否存在三维点选择编码表,使用所选择的编码表,对对象节点的信息(例如占用率编码)进行熵编码。
例如,如图92以及图93所示,三维数据编码装置在上述编码中,许可参照多个相邻节点中的、第1节点的子节点的信息(例如占有信息)。
由此,该三维数据编码装置由于能够参照相邻节点的更详细的信息,能够提高编码效率。
例如,三维数据编码装置在上述编码中,根据对象节点的父节点内的空间位置,切换多个相邻节点中的、进行参照的相邻节点。
由此,该三维数据编码装置根据对象节点的父节点内的空间位置,能够参照适当的相邻节点。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
另外,本实施方式的三维数据解码装置对三维数据所包含的多个三维点的N(N为2以上的整数)叉树结构中包含的对象节点的信息(例如占用率编码)进行解码。如图85以及图86所示,三维数据解码装置在上述解码中,许可参照对象节点在空间上相邻多个相邻节点中的、父节点与对象节点的父节点相同的第1节点的信息(例如占有信息),禁止参照父节点与对象节点的父节点不同的第2节点的信息(例如占有信息)。换言之,三维数据解码装置在上述解码中,许可参照父节点的信息(例如占用率编码),禁止参照与父节点同一层的其他的节点(母相邻节点)的信息(例如占用率编码)。
由此,该三维数据解码装置通过参照与对象节点在空间上相邻的多个相邻节点中的、父节点与对象节点的父节点相同的第1节点的信息,能够提高编码效率。另外,该三维数据解码装置由于不参照多个相邻节点中的、父节点与对象节点的父节点不同的第2节点的信息,能够降低处理量。这样,该三维数据解码装置能够提高编码效率并且能够降低处理量。
例如,三维数据解码装置进一步从比特流获得表示是否禁止参照第2节点的信息的禁止切换信息(例如,图89所示的limit_refer_flag),在上述解码中,基于禁止切换信息,切换是禁止还是许可参照第2节点的信息。
由此,该三维数据解码装置能够使用禁止切换信息适当地进行解码处理。
例如,对象节点的信息是表示属于对象节点的子节点的各自是否存在三维点的信息(例如占用率编码),第1节点的信息是表示在第1节点是否存在三维点的信息(第1节点的占有信息),第2节点的信息是表示在第2节点是否存在三维点的信息(第2节点的占有信息)。
例如,三维数据解码装置在上述解码中,基于在第1节点是否存在三维点选择编码表,使用所选择的编码表,对对象节点的信息(例如占用率编码)进行熵解码。
例如,如图92以及图93所示,三维数据解码装置在上述解码中,许可参照多个相邻节点中的、第1节点的子节点的信息(例如占有信息)。
由此,该三维数据解码装置能够通过参照相邻节点的更详细的信息,因此能够提高编码效率。
例如,三维数据解码装置在上述解码中,根据对象节点的父节点内的空间位置,切换多个相邻节点中的、进行参照的相邻节点。
由此,该三维数据解码装置能够根据对象节点的父节点内的空间位置,参照适当的相邻节点。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式11)
在本实施方式中,三维数据编码装置将输入的三维点群分离为2个以上的子三维点群,将各子三维点群编码为多个子三维点群之间不产生依赖关系。由此,三维数据编码装置能够并行地对多个子三维点群进行编码。例如,三维数据编码装置将输入的三维点群分离为子三维点群A和子三维点群B,将子三维点群A和子三维点群B并行地编码。
另外,作为分离的方法,三维数据编码装置例如在使用八叉树结构进行编码的情况下,将分割成八叉树的8个子节点并行地编码。例如,三维数据编码装置对将各子节点设为根的多个树结构并行地编码。
此外,三维数据编码装置不需要将多个子三维点群并行地编码,也可以以不产生依赖关系的方式,对多个子三维点群逐次地编码。另外,并不限定于八叉树,也可以将本实施方式的手法应用于四叉树或者十六叉树等N叉树(N为2以上的整数)。另外,三维数据编码装置也可以使用点群的颜色、反射率或法线向量等属性信息进行分割。另外,如使用实施方式9的图67~图68等说明的那样,三维数据编码装置也可以根据点群的密度的不同来进行分割。
另外,三维数据编码装置也可以将编码后的多个子三维点群的多个编码数据与1个比特流结合。此时,三维数据编码装置也可以将各子三维点群的各编码数据的开始位置包含在比特流的头部等。例如,三维数据编码装置也可以将来自比特流的开头部的地址(比特位置或者字节数等)包含在头部等。由此,三维数据解码装置能够通过对比特流的开头进行解码来获知各子三维点群的编码数据的开始位置。另外,由于三维数据解码装置能够对多个子三维点群的编码数据并行地进行解码,能够削减处理时间。
另外,三维数据编码装置也可以将标志附加到比特流的头部,所述标志表示以多个子三维点群之间不产生依赖关系的方式,对多个子三维点群进行了编码、或者表示将多个子三维点群并行地进行了编码。由此,三维数据解码装置通过对头部进行解码,能够判断是否能够对多个三维点群的多个编码数据并行地进行解码。
在此,多个子三维点群之间不产生依赖关系是指,例如针对各子三维点群独立地具有用于对多个子三维点群的多个节点的占用率编码或叶节点信息等进行编码的编码表(用于熵编码的概率表等)。例如,为了不产生依赖关系地对子三维点群A和子三维点群B进行编码,三维数据编码装置针对子三维点群A和子三维点群B使用不同的编码表。或者,在逐次处理子三维点群A和子三维点群B的情况下,三维数据编码装置在对子三维点群A进行了编码后、对子三维点群B进行编码之前对编码表进行初始化,以便在子三维点群A和子三维点群B之间不产生依赖关系。这样,三维数据编码装置通过独立地具有各子三维点群的编码表或者在编码前对编码表进行初始化,能够以多个子三维点群之间不产生依赖关系的方式对多个子三维点群进行编码。另外,三维数据解码装置也同样地,通过独立地具有各子三维点群的编码表(解码表),或者在各子三维点群的解码前对编码表进行初始化,能够适当地对各子三维点群进行解码。
另外,多个子三维点群之间不产生依赖关系也可以是指,例如在对多个子三维点群的多个节点的占用率编码或叶节点信息等进行编码时,在子三维点群之间禁止参照。例如,在对编码对象的对象节点的占用率编码进行编码时,三维数据编码装置使用八叉树中的相邻节点的信息进行编码。在该情况下,三维数据编码装置在相邻节点包含于其他子三维点群的情况下,不参照该相邻节点而对对象节点进行编码。在该情况下,三维数据编码装置可以设为不存在相邻节点并进行编码,也可以在存在相邻节点但该相邻节点包含于其他的子三维点群这样的条件的基础上对对象节点进行编码。
同样地,三维数据解码装置例如在对多个子三维点群的多个节点的占用率编码或叶节点信息等进行解码时,在子三维点群之间禁止参照。例如,在对解码对象的对象节点的占用率编码进行解码时,三维数据解码装置使用八叉树中的相邻节点的信息进行解码。在该情况下,三维数据解码装置在相邻节点包含于其他的子三维点群的情况下,不参照该相邻节点而对对象节点进行解码。在该情况下,三维数据解码装置可以设为不存在相邻节点而进行解码,也可以在存在相邻节点但该相邻节点包含于其他的子三维点群这样的条件的基础上对对象节点进行解码。
另外,三维数据编码装置也可以在对多个子三维点群的三维位置信息和属性信息(颜色、反射率或者法线向量等)分别进行编码时,对一方以不产生依赖关系的方式进行编码,对另一方以具有依赖关系的方式进行编码。例如,三维数据编码装置也可以以不产生依赖关系的方式对三维位置信息进行编码,以具有依赖关系的方式对属性信息进行编码。由此,三维数据编码装置通过并行地对三维位置信息进行编码,能够削减处理时间,通过逐次地对属性信息进行编码,能够削减编码量。此外,三维数据编码装置也可以将表示是否以不具有依赖关系的方式对三维位置信息进行编码的信息、和表示是否以不具有依赖关系的方式对属性信息进行编码的信息这两者附加在头部。由此,三维数据解码装置通过对头部进行解码,能够分别判断是否能够以不具有依赖关系的方式对三维位置信息进行解码,是否能够以不具有依赖关系的方式对属性信息进行解码。由此,三维数据解码装置在不具有依赖关系的情况下能够并行地进行解码。例如,三维数据解码装置在三维位置信息以不产生依赖关系的方式被编码,属性信息以具有依赖关系的方式被编码的情况下,通过并行地对三维位置信息进行解码来削减处理时间,逐次地对属性信息进行解码。
图94是表示树结构的例子的图。另外,在图94中表示四叉树的例子,但也可以使用八叉树等其他叉树结构。三维数据编码装置将图94所示的树结构分割为例如图95所示的子三维点群A和图96所示的子三维组B。此外,在该例子中,在层1的有效节点进行分割。即,在四叉树的情况下,最大生成4个子三维点群,在八叉树的情况下,最大生成8个子三维点群。另外,三维数据编码装置也可以利用属性信息或点群密度等信息进行分割。
三维数据编码装置进行编码,以使子三维点群A和子三维点群B不产生依赖关系。例如,三维数据编码装置针对每个子三维点群切换用于占用率编码的熵编码的编码表。或者,三维数据编码装置在各子三维点群的编码前对编码表进行初始化。或者,三维数据编码装置在计算节点的相邻信息时,在相邻节点包含于不同的子三维点群的情况下,禁止参照该相邻节点。
图97是表示本实施方式的比特流的构成例的图。如图97所示,比特流包括头部、子三维点群A的编码数据、以及子三维点群B的编码数据。头部包含点群数量信息、依赖关系信息、开头部地址信息A以及开头地址信息B。
点群数量信息表示比特流中包含的子三维点群的个数。此外,作为点群数量信息,也可以通过占用率编码来表示个数。例如,在图94所示的例子中,使用层0的占用率编码“1010”,由占用率编码中所包含的“1”的数量来表示子三维点群的个数。
依赖关系信息表示是否不具有依赖关系地对子三维点群进行了编码。例如,三维数据解码装置基于该依赖关系信息,判定是否并行地对子三维点群进行解码。
开头地址信息A表示子三维点群A的编码数据的开头地址。开头地址信息B表示子三维点群B的编码数据的开头地址。
以下,对并行编码的效果进行说明。在三维点群(点云)的八叉树数据中,通过分割几何信息(三维位置信息)或属性信息并进行并行编码,能够减少处理时间。在父节点的阶层中节点从其他节点独立的情况下,能够实现并行编码。即,需要不参照相邻父节点。该条件需要在全部子节点以及孙节点中也都满足。
图98是表示树结构的例子的图。在图98所示的例子中,在使用深度优先的编码的情况下,节点A从层1与节点C独立。另外,节点C从层2与节点D独立。节点A从层3与节点B独立。
三维数据编码装置使用各节点的该独立的信息,基于硬件的类别、用户设定、算法、或数据的自适应性等,从2个方式的并行编码方法中选择使用的并行编码方法。
该2个方式是全并行编码(full parallel encoding)和渐进并行编码(incremental parallel encoding)。
首先,对全并行编码进行说明。在并行处理或并行编程中,需要同时处理大量的数据,因此处理非常繁重。
使用GPU(Graphics Processing Unit:图形处理单元)中包含的处理单元(PU)的数量、CPU中包含的核的数量、或者软件安装中的线程的数量,决定能够并行处理的节点的数量。
在此,一般八叉树中包含的节点的数量比可利用的PU的数量多。三维数据编码装置使用表示层所包含的已编码的节点的数量的信息,判定层所包含的节点的数量是否为与可利用的PU的数量对应的最佳数量,并以层所包含的节点的数量达到最佳数量为触发,开始全并行编码。另外,在并行处理中,能够使用宽度优先或深度优先的处理。
三维数据编码装置可以将表示开始了并行编码处理的节点(层)的信息存放在比特流的头部中。由此,三维数据解码装置能够使用该信息,如果需要则能够进行并行解码处理。另外,表示开始了并行编码处理的节点的信息的形式可以是任意的,例如也可以使用位置编码。
另外,三维数据编码装置对进行并行编码的各节点(子三维点群)准备编码表(概率表)。该编码表在每个初始值或每个节点被初始化为不同的值。例如,按每个节点而不同的值是基于父节点的占用率编码的值。在该全并行编码中,具有一次GPU的初始化即可的优点。
图99是用于说明全并行编码的图,是表示树结构的例子的图。图100是空间地表示并行处理的子三维点群的图。三维数据编码装置以与PU或线程的数量相关的节点的数量达到最佳点为触发开始并行处理。
在图99所示的例子中,在层3中,该层所包含的占有节点的数量为9,超过最佳值。因此,三维数据编码装置将层3以下的三维点(节点)分割为以层3的各占有节点为根的多个子三维点群,并对各子三维点群进行并行处理。例如,在图99所示的例子中,生成9个子三维点群。
三维数据编码装置也可以对表示开始了并行处理的层的层信息进行编码。另外,三维数据编码装置也可以对表示开始了并行处理时的占有节点的数量(在图99的例子中为9)的信息进行编码。
另外,三维数据编码装置例如在禁止相互参照的同时对多个子三维点群进行编码。另外,三维数据编码装置例如在各子三维点群的编码前对用于熵编码的编码表(概率表等)进行初始化。
图101是表示本实施方式的比特流的构成例的图。如图101所示,比特流包括头部、上层编码数据、子头部、子三维点群A的编码数据、以及子三维点群B的编码数据。
头部包括空间最大尺寸信息和并行开始层信息。空间尺寸信息表示将三维点群分割为八叉树的最初的三维空间。例如,空间尺寸信息表示最初的三维空间的最大坐标(x,y,z)。
并行开始层信息表示作为能够开始并行处理的层的并行开始层。在此,并行开始层信息例如表示层N。
上层编码数据是开始并行处理之前的到层N为止的编码数据,是到层N为止的节点信息。例如,上层编码数据包括到层N为止的节点的占用率编码等。
子头部包含用于对层N以后进行解码所需的信息。例如,子头部表示各子三维点群的编码数据的开头地址等。在图101所示的例子中,子头部包含开头地址信息A和开头地址信息B。开头地址信息A表示子三维点群A的编码数据的开头地址。开头地址信息B表示子三维点群B的编码数据的开头地址。
此外,三维数据编码装置也可以在头部中存放开头地址信息A以及开头地址信息B。由此,三维数据解码装置能够比起上层编码数据先并行地对子三维点群的编码数据进行解码。在该情况下,子头部也可以包含表示各子三维点群的空间的信息。该信息表示各子三维点群的空间的最大坐标(x,y,z)。
图102是用于说明并行解码处理的图。如图102所示,三维数据解码装置对子三维点群A的编码数据和子三维点群B的编码数据并行地进行解码,生成子三维点群A的解码数据和子三维点群B的解码数据。接着,三维数据解码装置对生成的子三维点群A的解码数据和子三维点群B的解码数据进行整合,生成三维点群的解码数据。这样,三维数据解码装置对多个子三维点群的解码数据所包含的三维位置信息以及属性信息(颜色信息以及反射率等)进行整合。另外,三维数据解码装置也可以将整合后的数据作为1个文件输出。
此外,三维数据解码装置不一定需要对子三维点群的全部进行解码,也可以选择性地对三维数据解码装置所需的子三维点群进行解码。例如,在三维数据解码装置为车载等移动性装置的情况下,三维数据解码装置对多个子三维点群中的、接近由GPS等获得的当前的位置的区域的子三维点群进行解码。
另外,三维数据编码装置也可以在子头部中存放表示各子三维点群的优先顺序的信息。在该情况下,三维数据解码装置按照子头部所包含的信息所示的优先顺序,对优先顺序高的子三维点群优先赋予CPU等运算资源并执行并行解码。由此,三维数据解码装置能够高效地对包含对于三维数据解码装置来说重要的区域的子三维点群进行解码。
图103是示意性地表示全并行编码处理的流程的图。首先,三维数据编码装置决定可利用的PU的数量(S2601)。接着,三维数据编码装置对八叉树进行处理,存放节点的位置(S2602)。接着,三维数据编码装置判定占有节点的数量是否多于PU的数量(S2603)。
在占有节点数量为PU的数量以下的情况下(S2603的“否”),三维数据编码装置对下一个节点进行步骤S2602的处理。在占有节点的数量比PU的数量多的情况下(S2603的“是”),三维数据编码装置将当前的层设定为开始并行处理的层即并行开始层(S2604)。
接着,三维数据编码装置对多个编码表进行初始化,开始并行编码(S2605)。在并行编码完成之后,三维数据编码装置基于在步骤S2602中存放的位置重构八叉树(S2606)。
另外,三维数据编码装置也可以将表示开始了并行编码的并行开始层的并行开始层信息附加到比特流的头部。由此,三维数据解码装置通过对头部进行解码,能够判定能够从哪个层并行解码。
另外,也可以预先决定从哪个层开始并行处理。此外,表示开始并行化的层的并行开始层信息也可以不被附加到比特流,开始并行化的层由标准等规定。例如,三维数据编码装置将表示是否并行化的标志附加到比特流。三维数据解码装置也可以在该标志为ON的情况下,从最初的层开始并行处理,在标志为OFF的情况下,应用逐次处理。
图104是示意性地表示全并行解码处理的流程的图。首先,三维数据解码装置通过对头部进行解码来获得表示能够并行处理的层N的并行开始层信息(S2611)。接着,三维数据解码装置对占用率编码进行解码,对当前节点进行8分割,向占有状态的子节点的处理转移(S2612)。
接着,三维数据解码装置判定处理对象的层是否到达并行开始层N(S2613)。在处理对象的层未到达并行开始层N的情况下(S2613的“否”),三维数据解码装置对下一个节点进行步骤S2612的处理。在处理对象的层到达了并行开始层N的情况下(S2613的“是”),三维数据解码装置对子头部进行解码,获得多个子三维点群的开始地址(S2614)。
接着,三维数据解码装置对多个编码表进行初始化,开始多个子三维点群的并行解码(S2615)。并行解码完成了之后,三维数据解码装置对解码后的多个子三维点群的三维位置信息和属性信息进行整合(S2616)。
例如,三维数据解码装置从比特流的头部解码并行开始层信息。由此,三维数据解码装置能够判定是否能够从哪个层并行地进行解码。
此外,表示开始并行化的层的并行开始层信息也可以不附加于比特流,开始并行化的层由标准等规定。例如,三维数据编码装置将表示是否并行化的标志附加到比特流。三维数据解码装置也可以在该标志为ON的情况下,从最初的层开始并行处理,在标志为OFF的情况下,应用逐次处理。
接着,对渐进并行编码进行说明。图105和图106是用于说明该渐进并行编码的图。图105是表示树结构中的并行处理的图,图106是表示并行处理中的时间序列的变化的图。
在渐进并行编码中,在父节点被分割为1个以上的子节点的情况下,在存在可利用的PU的情况下,是使并行数量依次增加的处理。另外,每当找到需要追加的PU的新的节点时,将编码表设定为预先规定的表。
在图105所示的例子中,在顶部(根)中开始基于核1的处理。在层1中,在右侧的节点的处理中使用核2,核1处理左侧的节点。在层2中,核1继续左侧节点的处理。在层3中,核1处理节点A,核4处理新找到的节点B。另外,对于层1的右侧的节点,在层2中,核2继续左节点的处理,在层3中处理节点C。另外,在层2中追加了核3,核3处理右节点,在层3中处理节点D。
此外,三维数据编码装置也可以在各节点中追加表示是否需要熵编码的编码表的初始化的标志。由此,三维数据解码装置通过该标志能够将初始化成为了ON的节点的下一个子节点判定为能够并行处理。
图107是示意性地表示渐进并行编码处理的流程的图。首先,三维数据编码装置处理八叉树,存放节点的位置(S2621)。接着,三维数据编码装置判定对象节点是否具有多个占有状态的子节点即占有子节点(S2622)。在对象节点具有多个占有子节点的情况下(S2613的“是”),三维数据编码装置判定是否存在并行编码中可利用的PU(S2623)。
在对象节点不具有多个占有子节点的情况下(S2613的“否”),或者在不存在并行编码中可利用的PU的情况下(S2623的“否”),三维数据编码装置使用当前使用中的PU继续八叉树的处理(S2624)。例如,在初始状态下,三维数据编码装置使用初始状态的一个PU继续处理。另外,对象节点不具有多个占有子节点的情况包括对象节点不具有占有子节点的情况、以及对象节点具有1个占有子节点的情况。
另一方面,在存在并行编码中可利用的PU的情况下(S2623的“是”),三维数据编码装置在使用的PU中追加新的PU,对多个编码表进行初始化,开始并行编码(S2625)。
在所有节点的处理未完成的情况下(S2626的“否”),三维数据编码装置对下一个节点进行步骤S2621的处理。在所有节点的处理完成了的情况下(S2626的“是”),三维数据编码装置基于在步骤S2602中存放的位置,重构八叉树(S2627)。
在这样的渐进并行编码中,对象节点具有多个占有节点,在存在空闲的PU的情况下,立即开始并行处理。由此,在PU的处理在较短的时间内完成了的情况下,能够对下一个处理分配PU,因此能够实现无法进行理想的处理的填充。
另一方面,每次请求并行处理时都需要初始化处理。另外,在上下或左右的处理顺序中的下一个处理之前,不一定多个PU中的处理结束,因此为了进行数据的写回,需要使所有各层的节点及子节点同步的机制。换言之,在上述的全并行编码中,由于不需要这样的处理,所以能够实现能够降低处理量的效果。
如上所述,在本实施方式中,原来的三维点被分割为能够并行处理的分支。在八叉树中,例如对节点生成能够并行处理的8个分支。另外,定义表示从八叉树的哪个层开始能够并行处理的分支的新的参数。
在处理转移到下一个可并行处理的分支时,用于熵编码的编码表被复位。或者,对多个可并行处理的分支使用不同的编码表。
例如,禁止参照相邻节点的信息等不同的可并行处理的分支中包含的节点。
定义与并行处理相关的多个模式。例如,模式0是不进行并行处理的模式。模式1是并行处理位置信息(结构信息)的模式。在该模式下,对于属性信息,许可参照其他可并行处理的分支。第2模式是并行处理位置信息和属性信息的模式。即,对于位置信息以及属性信息的双方,禁止参照其他可并行处理的分支。
各可并行处理的分支的数据的开始地址例如被编码到切片头部等的头部内。
三维数据解码装置可以并行处理所有可并行处理的分支,也可以并行处理多个可并行处理的分支的一部分。
如上所述,本实施方式的三维数据编码装置进行图108所示的处理。首先,三维数据编码装置将三维数据中包含的多个三维点的N(N为2以上的整数)叉树结构分离为第1分支(第1子三维点群)和第2分支(第2子三维点群)(S2631)。接着,三维数据编码装置将第1分支和第2分支各自编码为能够独立解码(S2632)。换言之,三维数据编码装置将第1分支和第2分支编码为不具有依赖关系。例如,三维数据编码装置对第1分支和第2分支进行并行编码。
例如,所述第1分支的根是所述N叉树结构中的第1层所包含的第1节点,所述第2分支的根是所述第1层中包含的与所述第1节点不同的第2节点。即,第1分支的根和第2分支的根属于相同的层。
例如,三维数据编码装置对表示所述第1层的信息(并行开始层信息)进行编码。即,三维数据编码装置生成包含表示所述第1层的信息(并行开始层信息)的比特流。
例如,三维数据编码装置使用不同的编码表对所述第1分支和所述第2分支进行熵编码。
例如,三维数据编码装置在对所述第1分支进行熵编码后、对所述第2分支进行熵编码之前对编码表进行初始化。
例如,三维数据编码装置在所述第1分支的编码中,禁止参照所述第2分支,在所述第2分支的编码中,禁止参照所述第1分支。
例如,三维数据编码装置对所述第1分支所包含的多个第1三维点的位置信息和所述第2分支所包含的多个第2三维点的位置信息各自编码为能够独立解码,将所述多个第1三维点的属性信息和所述多个第2三维点的属性信息各自编码为能够独立解码。即,三维数据编码装置对位置信息和属性信息双方以不具有依赖关系的方式进行编码。
例如,三维数据编码装置将(1)所述第1分支所包含的多个第1三维点的位置信息和所述第2分支所包含的多个第2三维点的位置信息的每一个,以及(2)所述多个第1三维点的属性信息和所述多个第2三维点的属性信息的每一个中的一方编码为能够独立解码,并且将(1)所述多个第1三维点的位置信息和所述多个第2三维点的位置信息的每一个,以及(2)所述多个第1三维点的属性信息和所述多个第2三维点的属性信息的每一个中的另一方编码为具有依赖关系。即,三维数据编码装置对位置信息和属性信息中的一方以不具有依赖关系的方式进行编码,对位置信息和属性信息中的另一方以具有依赖关系的方式进行编码。另外,具有依赖关系是指,例如,使用相同的编码表来对所述第1分支和所述第2分支进行熵编码,或者,在对所述第1分支进行熵编码之后、对所述第2分支进行熵编码之前不对编码表进行初始化,或者,在所述第1分支的编码中,许可参照所述第2分支,或者,在所述第2分支的编码中,许可参照所述第1分支。
例如,三维数据编码装置对表示是否将所述第1分支和所述第2分支各自编码为能够独立地解码的标志进行编码。即,三维数据编码装置生成包含表示是否将所述第1分支和所述第2分支各自编码为能够独立解码的标志的比特流。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
另外,本实施方式的三维数据解码装置进行图109所示的处理。首先,三维数据解码装置获得第1编码数据和第2编码数据,所述第1编码数据和所述第2编码数据通过将三维数据所包含的多个三维点的N(N为2以上的整数)叉树结构所包含的第1分支和第2分支各自编码为能够独立解码而生成(S2641)。例如,三维数据解码装置从比特流获得第1编码数据和第2编码数据。接着,三维数据解码装置通过对所述第1编码数据和所述第2编码数据分别进行解码,来复原所述第1分支和所述第2分支(S2642)。例如,三维数据解码装置对第1编码数据和第2编码数据进行并行解码。
例如,所述第1分支的根是所述N叉树结构中的第1层所包含的第1节点,所述第2分支的根是所述第1层所包含的与所述第1节点不同的第2节点。即,第1分支的根和第2分支的根属于相同的层。
例如,三维数据解码装置对表示所述第1层的信息(并行开始层信息)进行解码。即,三维数据解码装置从比特流获得表示所述第1层的信息(并行开始层信息)。
例如,三维数据解码装置使用不同的编码表对所述第1分支和所述第2分支进行熵解码。
例如,三维数据解码装置在对所述第1分支进行熵解码之后、对所述第2分支进行熵解码之前对编码表进行初始化。
例如,三维数据解码装置在所述第1分支的解码中,不参照所述第2分支,在所述第2分支的解码中,不参照所述第1分支。
例如,所述第1编码数据包含第1编码位置数据和第1编码属性数据,所述第1编码位置数据通过对所述第1分支所包含的多个第1三维点的位置信息进行编码而生成,所述第1编码属性数据通过对所述多个第1三维点的属性信息进行编码而生成。所述第2编码数据包含第2编码位置数据和第2编码属性数据,所述第2编码位置数据通过对所述第2分支所包含的多个第2三维点的位置信息进行编码而生成,所述第2编码属性数据通过对所述多个第2三维点的属性信息进行编码而生成。所述所述第1编码位置数据和所述第2编码位置数据生成为能够独立解码,所述所述第1编码属性数据和所述第2编码属性数据生成为能够独立解码。即,三维数据编码装置通过对位置信息和属性信息双方以不具有依赖关系的方式进行编码,生成第1编码数据和第2编码数据。
例如,所述第1编码数据以及所述第2编码数据通过将所述第1分支所包含的多个第1三维点以及所述第2分支所包含的多个第2三维点的位置信息以及属性信息中的一方各自编码为能够独立解码而生成。三维数据解码装置通过对所述第1编码数据和所述第2编码数据各自进行解码,各自复原所述多个第1三维点以及所述多个第2三维点的所述位置信息以及所述属性信息的所述一方。三维数据解码装置进一步获得第3编码数据以及第4编码数据,所述第3编码数据以及所述第4编码数据通过所述多个第1三维点以及所述多个第2三维点的所述位置信息以及所述属性信息中的另一方各自编码为具有依赖关系而生成。三维数据解码装置通过对所述第3编码数据和所述第4编码数据各自进行解码,各自复原所述多个第1三维点以及所述多个第2三维点的所述位置信息以及所述属性信息的所述另一方。即,三维数据编码装置对位置信息和属性信息中的一方以不具有依赖关系的方式进行编码,对位置信息和属性信息中的另一方以具有依赖关系的方式进行编码。例如,在2个编码数据具有依赖关系的情况下,三维数据解码装置使用相同的编码表来对2个编码数据进行熵解码,或者,在对一方的编码数据进行熵解码之后、对另一方的编码数据进行熵解码之前不对编码表进行初始化,或者,在一方的编码数据的解码中,参照另一方的编码数据。
例如,三维数据解码装置对表示所述第1分支和所述第2分支各自是否编码为能够独立解码的标志进行解码。即,三维数据解码装置从比特流获得表示所述第1分支和所述第2分支各自是否编码为能够独立解码的标志。例如,在由所述标志表示所述第1分支和所述第2分支各自编码为能够独立解码的情况下,三维数据解码装置对所述第1编码数据和所述第2编码数据进行并行解码,在由所述标志未表示将所述第1分支和所述第2分支各自编码为能够独立解码的情况下,对所述第1编码数据和所述第2编码数据依次解码。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式12)
被编码的三维点(点云)的比特流的数据尺寸变大,因此需要大容量的储存器或超高速缓存。另外,该比特流变得复杂,需要高性能的硬件。此外,通过分散比特流,需要多个PCC(Point Cloud Compression:点云压缩)比特流。
另一方面,用户未必总是需要三维点的比特流的全部信息,也存在需要几个PCC比特流或者包含比特流的多个成分的结合比特流的情况。因此,期望有效地并且并行地获得三维点的信息的方法。
图110是示意性地表示具有GPS坐标的汽车为了获得俯视的地图信息而存取三维点的比特流的情况下的工作的图。例如,如图110所示,比特流A是车辆周边的区域的三维点的PCC比特流,比特流B以及比特流C是相邻区域的三维点的PCC比特流。另外,各比特流表示以块形式俯视的状态。
在本实施方式中,使用瓦片分割作为将三维点的比特流分割为小区域的方法。瓦片是基于用户描述将三维点的比特流分割为不同的块区域的分割区域。
瓦片具有来自根节点的多个级别。另外,具有不同级别的瓦片也可以分别具有可变的不同的尺寸。另外,多个瓦片也可以相互独立。
三维数据编码装置也可以对1个或多个瓦片级别进行编码,三维数据解码装置对1个或多个瓦片级别中的、应用程序所需的1个以上的瓦片级别进行解码。
图111是在俯视下表示将单一的PCC比特流分割为小的瓦片的状态的图。图112是在俯视下表示将单一的PCC比特流分割为大的瓦片的状态的图。图123是在俯视下表示将单一的PCC比特流分割为多个尺寸的瓦片的状态的图。
这样,三维数据编码装置也可以使用小的瓦片分割(图111)对同一区域进行编码,并且使用大的瓦片分割(图112)进行编码。例如,三维数据编码装置根据来自三维数据解码装置的请求,对每个区域切换是发送小的瓦片分割的结果还是发送大的瓦片分割的结果。或者,三维数据编码装置也可以将双方的结果发送到三维数据解码装置,三维数据解码装置根据汽车的状态(例如速度或者场所等)等切换使用小的瓦片分割的结果以及大的瓦片分割的结果中的哪一个。
以下,对使用多个瓦片尺寸的复合瓦片分割进行说明。三维数据编码装置也可以将多种尺寸的瓦片编码到比特流。例如,在图113所示的例子中,在汽车正在移动的情况下,周边状况以不同的速度变化。例如,远离汽车的区域或前方或后方的区域的变化比汽车的侧方的区域的变化慢。这样,通过对变化慢的区域应用大的瓦片尺寸,能够提高编码效率。
图114是表示四叉树中的瓦片分割的例子的图。在图114所示的例子中,一部分的瓦片是层2的级别,其他的一部分的瓦片是层3的级别。
另外,在上述中,对二维(俯视)的瓦片分割进行了说明,但在三维的瓦片分割中也能够应用同样的方法。图115是表示三维的瓦片分割的例子的图。另外,在图115中,为了简化说明,仅图示了一部分的瓦片。
汽车的行进方向即汽车的前方远方的瓦片由于需要读入的可能性高,因此设定为较大的尺寸。汽车的侧方的瓦片由于汽车向该方向前进的可能性低,因此设定为小的尺寸。
另外,与图111以及图112所示的例子同样地,在三维的情况下也可以使用固定尺寸的瓦片。
另外,对于地图上的相同区域,也可以将使用大尺寸的瓦片生成的编码数据和使用小尺寸的瓦片生成的编码数据存放在服务器或外部存储装置中。在汽车移动到该区域的情况下,无论哪种情况都需要该区域的数据,因此将大的瓦片的数据发送到汽车。另外,在不是汽车的行进方向的方向的区域中,汽车仅需要该区域的一部分的数据,因此将小的瓦片的数据发送到汽车。
另外,通过使用瓦片,能够提高空间上的随机存取性。三维数据解码装置(例如搭载于汽车)能够根据其编码方式并行地对读入的(载入的)瓦片进行解码。另外,三维数据解码装置能够将移动中所需的存储器的尺寸(例如3×3瓦片)控制为恒定。
图116是表示在汽车移动时读入的瓦片的例子的图。如图116所示,在汽车正在向x方向移动的情况下,汽车将行进方向(x方向)的3个瓦片的数据新读入(载入)存储器,将与行进方向相反的方向(-x方向)的3个瓦片的数据从存储器删除。
此外,三维数据解码装置也可以并行地对读入的瓦片进行解码。另外,三维数据解码装置也可以对读入的瓦片决定优先排位,按照优先排位的顺序对瓦片进行解码。例如,三维数据解码装置也可以优先对接近汽车的行进方向的区域的瓦片(例如图116所示的瓦片A)进行解码。
同样地,在汽车正在向-y方向移动的情况下,汽车将行进方向(-y方向)的3个瓦片的数据新读入(载入)存储器,将与行进方向相反的方向(y方向)的3个瓦片的数据从存储器删除。
另外,在汽车正在向对角线方向(该图的右上方向)移动的情况下,汽车将行进方向的5个瓦片的数据新读入(载入)存储器,将与行进方向相反的方向的5个瓦片的数据从存储器删除。
这样,由于在存储器中始终保存3×3的瓦片的数据,因此能够限制存储器尺寸为3×3的瓦片的数据。
图117是表示本实施方式的系统的构成例的图。该系统包括服务器或外部存储装置(三维数据编码装置)和搭载于汽车等的车载计算机(三维数据解码装置)。
服务器或外部存储装置存放所有的三维地图。根据来自车载计算机的请求,期望的瓦片被读入到车载计算机所具备的存储器中并被解码。例如,车载计算机向服务器或外部存储装置请求与汽车的当前位置相应的区域的瓦片。
接着,对瓦片的使用例进行说明。图118以及图119是表示汽车所获得的瓦片的区域的例子的图。例如,在汽车在高速公路上行驶的情况下,由于移动速度快,所以需要迅速地对前方的信息进行解码。因此,期望以更少的数据量获得所需的信息。因此,例如,汽车获得区域A的瓦片。
另一方面,在汽车在市区行驶的情况下,汽车获得区域A以及区域B双方的信息,以便驾驶员能够进一步获得周边状况。另外,在汽车越野或驾驶员在不习惯的道路上行驶的情况下,为了获得更多的数据,汽车也可以获得例如8×8瓦片等更宽的范围的数据。
另外,作为另一例,也可以根据汽车的移动速度选择解码的瓦片,以使得解码处理的处理负荷不会变得过多。例如,在汽车以高速在高速公路上行驶的情况下,需要迅速更新前方的信息。另一方面,汽车的侧方的区域的重要性低。因此,汽车选择前方的矩形区域的瓦片并进行解码。另一方面,在汽车以低速行驶的情况下,前方所需的瓦片变少。因此,获得前方瓦片的区域比高速行驶时窄。另外,在汽车在交叉路口等停止的情况下,周边的所有方向的瓦片同等重要。因此,汽车获得所有方向的瓦片。
另外,如使用图115所说明的那样,也可以根据汽车的行进方向以及速度来变更区域A以及区域B的瓦片的大小。
接着,对切片进行说明。为了用作三维空间内的语义信息,将多个瓦片分类为切片。切片是根据三维空间内的语义信息(属性信息)对瓦片进行了分类的组。即,各瓦片属于多个切片中的某一个。瓦片所属的切片的信息被编码成三维点的编码比特流的头部或子头部。
例如,在行驶中的汽车中,到目的地为止的路径大致决定,因此不使用地图上的几个道路。因此,能够忽略这些道路。另外,各个树木的外观每天发生变化。因此,与建筑物和道路相比,树木的重要性低。
图120是表示三维数据(三维点)的一例的图。图121~图123是表示将图120所示的三维数据分割后的3个切片的数据的例子的图。图121所示的切片包含高速公路的三维数据。图122所示的切片包含各个树木的三维数据。图123所示的切片包含侧道的三维数据。
另外,作为切片的分割方法,考虑使用瓦片或瓦片内包含的点群的特性(颜色、反射率、法线向量、或关联对象)等。另外,也可以将包含在车载的自身位置估计中使用的点群的瓦片分类为切片A,将包含显示于导航画面的点群的瓦片分类为切片B等,对作为目标的每个应用程序设定切片。另外,在按三维地图中的用途设定切片的情况下,也可以基于点群或瓦片所属的地域信息(在日本为都道府县或市镇村等)来设定切片。
接着,对八叉树中的瓦片的例子进行说明。图124是表示瓦片的例子的图。图125是表示八叉树中的瓦片的例子的图。
例如,各瓦片以及各切片能够独立地进行编码,独立地进行解码。在编码及解码中,各瓦片及各切片包含与整体的八叉树相关联的子八叉树。例如,三维数据编码装置和三维数据解码装置针对每个瓦片来初始化编码表。
另外,解码后的瓦片或切片也可以不等待其他瓦片或切片的解码而立即用于应用程序。
另外,瓦片或切片的数据在比特流内以规定的顺序配置。例如,根据该顺序,示出应用程序中的数据的优先级。
例如,如图125所示,瓦片A和瓦片B分别被熵编码,所生成的瓦片A的比特流和瓦片B的比特流被包含在整体的比特流中。
以下,说明本实施方式的比特流的构成例。图126是表示通过对多个瓦片进行熵编码而获得的比特流的例子的图。如图126所示,比特流包括作为多个瓦片的共用的头部信息(第1头部)的共用头部2801、瓦片表2802、以及编码数据2803。
共用头部2801包括整体头部2804、固定尺寸标志2805、以及瓦片数量信息2806。整体头部2804是整体树结构的头部,包括表示整体的树结构的位置的位置信息2807。即,位置信息2807是确定整体的树结构的位置、或者与该树结构对应的三维空间(边界框)的位置的信息。例如,位置信息2807表示整体的树结构内的任意的节点、或者与该树结构对应的三维空间中包含的任意的点的位置(例如坐标)。例如,位置信息2807表示树结构的根的位置。例如,位置信息2807也可以表示以世界空间坐标(world coordinate)为基点的树结构的根的坐标。另外,整体头部也可以包含表示整体的树结构所包含的三维点的数量的信息等。
固定尺寸标志2805是表示是否固定瓦片的尺寸的标志。即,固定尺寸标志2805表示是否使多个瓦片的尺寸相同。例如,固定尺寸标志=0表示不固定瓦片的尺寸,固定尺寸标志=1表示固定瓦片的尺寸。
瓦片数量信息2806是表示瓦片是数量的信息,用于解析瓦片表2802。此外,瓦片数量信息2806可以包括在瓦片表2802中。瓦片表2802包括多个瓦片的信息。
编码数据2803包括各瓦片的编码数据。各瓦片的编码数据例如独立。
图127是表示固定尺寸标志=0(不固定)的情况下的瓦片表2802的构成例的图。瓦片表2802包括作为瓦片单位的头部信息(第2头部)的瓦片信息2811。即,多个瓦片信息2811与多个瓦片一对一地对应。
瓦片信息2811包括瓦片位置信息2812、瓦片尺寸信息2813和编码量信息2814。瓦片位置信息2812表示瓦片的位置。例如,瓦片位置信息2812表示瓦片的根的位置。例如,瓦片位置信息2812也可以表示以世界空间坐标(world coordinate)为基点的坐标。此外,在该情况下,三维数据解码装置能够直接使用解码后的三维点的坐标,因此能够降低处理量。或者,瓦片位置信息2812也可以表示由位置信息2807表示的整体的树结构的位置(坐标)与瓦片的位置(坐标)的差分。
瓦片尺寸信息2813表示瓦片的尺寸。另外,瓦片的尺寸例如可以由x、y、z各自的方向的尺寸表示,在x、y、z的尺寸相等的前提下,也可以表示一边的尺寸。此外,如上所述,瓦片的尺寸与树结构中的阶层(级别)对应。因此,瓦片的尺寸可以由阶层(级别)表示。
编码量信息2814表示对应的瓦片的编码数据的编码量(比特尺寸)。
另外,三维数据解码装置也可以通过参照瓦片表2802内所包含的各瓦片的编码量信息2814来计算比特流内的各瓦片的编码数据的开始位置(start bit)。例如,三维数据解码装置通过将瓦片A的编码量和瓦片B的编码量相加来计算图126所示的瓦片C的开始位置。另外,各瓦片的编码数据的比特流内的开始位置也可以存放在瓦片表2802中。由此,三维数据解码装置能够通过参照瓦片表2802来获知比特流内的各瓦片的编码数据的开始位置,因此能够获得所需的瓦片的编码数据,尽早开始解码。此外,编码量信息2814也可以表示比特流内的该编码数据的结束位置。
图128是表示固定尺寸标志=0(不固定)的情况下的瓦片表2802的另一构成例的图。图128所示的瓦片信息2811除了图127所示的瓦片信息2811以外,还包含切片信息2815。切片信息2815表示与该瓦片关联的切片的信息(语义信息)。即,切片信息2815表示该瓦片所属的切片。该信息依赖于所使用的应用程序,例如表示颜色、对象物的属性、到车辆的距离、三维点的密度等。
图129是表示固定尺寸标志=1(固定)的情况下的瓦片表2802的构成例的图。在该情况下,瓦片尺寸信息2813不是在各瓦片的瓦片信息2811内,而是作为多个瓦片共用的信息而包含在瓦片表2802中。即,瓦片尺寸信息2813包含于多个瓦片共用的第1头部。
另外,图130是表示固定尺寸标志=1(固定)的情况下的瓦片表2802的另一构成例的图。与图128所示的例子同样地,瓦片信息2811也可以包含切片信息2815。
以下,说明三维数据解码装置中的工作。在包含三维数据解码装置的汽车与地图服务器连接时,进行以下的工作。包含三维数据解码装置的汽车根据当前的汽车的大致位置以及应用程序的请求,向地图服务器发送瓦片的发送请求。地图服务器参照瓦片表,选择符合请求的瓦片,生成包含所选择的瓦片的编码数据的新的比特流,并将该比特流发送到汽车。汽车参照接收到的比特流中包含的瓦片表,获得各瓦片的信息。汽车使用由该信息表示的各瓦片的根的三维位置,对多个瓦片的比特流进行解码,由此复原三维点。
另外,也可以是,汽车是离线的,代替地图服务器而使用外部存储装置。在该情况下,进行以下的工作。汽车根据当前的汽车的大致位置以及应用程序的请求,从本地的瓦片表判定最佳的瓦片。汽车参照比特流中包含的瓦片表,获得各瓦片的信息。汽车使用由该信息表示的各瓦片的根的三维位置,对多个瓦片的比特流进行解码,由此复原三维点。
此外,三维数据编码装置也可以在切片信息2815中存放切片的识别编号(slice_id)。由此,三维数据解码装置能够从瓦片表2802获得具有所需的slice_id的瓦片的信息,因此能够进行对具有所需的slice_id的瓦片进行解码等的处理。
三维数据编码装置也可以将共用头部2801(或整体头部2804)、瓦片表2802和各瓦片的编码数据2803作为各自的NAL(Network Abstraction Layer:网络抽象层)单元进行编码。即,三维数据编码装置也可以将包含多个瓦片的多个第2头部的流生成为与多个瓦片的编码数据独立的流。由此,例如,服务器(三维数据编码装置)先将瓦片表2802的NAL单元发送至客户端(三维数据解码装置)。客户端对瓦片表2802进行解码以决定所需的瓦片,并对服务器进行所需瓦片的发送请求。服务器根据客户端的请求,将所请求的瓦片的NAL单元发送至客户端。
瓦片位置信息2812也可以表示以某个世界空间坐标(world coordinate)为基点的坐标。由此,三维数据编码装置能够尽早获知各瓦片中包含的点群是以世界空间坐标为基点的哪个位置的三维信息。另外,瓦片位置信息2812也可以表示从整体头部2804所包含的位置信息2807所示的坐标起的相对坐标。在该情况下,三维数据解码装置也可以通过将在由位置信息2807表示的坐标加上由瓦片位置信息2812表示的相对坐标来计算以各瓦片的世界空间坐标为基点的坐标。由此,能够抑制瓦片位置信息2812的值的大小,因此能够削减瓦片表2802的尺寸。
以下,对三维数据编码装置的工作以及三维数据解码装置的工作进行说明。图131是本实施方式的三维数据编码装置的三维数据编码处理的流程图。
首先,三维数据编码装置设定包括所输入的三维点的边界框(S2801)。接着,三维数据编码装置将该边界框分割为8个子节点(S2802)。
接着,三维数据编码装置生成8个子节点中的包含三维点的子节点各自的占用率编码(S2803)。接着,三维数据编码装置判定处理对象的节点的级别(树结构的阶层)是否到达了对象瓦片级别(S2804)。在此,对象瓦片级别是指进行瓦片分割的级别(树结构的阶层)。
在处理对象的节点的级别未到达对象瓦片级别的情况下(S2804的“否”),三维数据编码装置将各子节点分割为8个孙节点(S2805),针对各个孙节点进行步骤S2803以后的处理。
在处理对象的节点的级别到达了对象瓦片级别的情况下(S2804的“是”),三维数据编码装置在瓦片表中保存当前的节点位置和瓦片级别(瓦片尺寸)(S2806)。
接着,三维数据编码装置将各子节点分割为8个孙节点(S2807)。接着,三维数据编码装置反复进行生成占用率编码的处理,直到节点不能分割为止(S2808)。接着,三维数据编码装置对各瓦片的占用率编码进行编码(S2809)。
最后,三维数据编码装置将所生成的多个瓦片的编码比特流(编码数据)结合(S2810)。另外,三维数据编码装置将瓦片表等附加到比特流的头部信息中。
在此,在瓦片表2802中存放瓦片尺寸(瓦片级别)。因此,三维数据解码装置能够使用该瓦片尺寸,来获得各瓦片的子树的边界框的尺寸。另外,三维数据解码装置能够使用子树的边界框的尺寸,计算整体的树结构的边界框的尺寸。
另外,三维数据编码装置也可以将各瓦片的边界框的尺寸存放在瓦片表2802中。由此,三维数据解码装置能够通过参照瓦片表2802来获得各瓦片的边界框的尺寸。
图132是本实施方式的三维数据解码装置的三维数据解码处理的流程图。
首先,三维数据解码装置使用比特流中包含的头部信息,设定包含输出的三维点的边界框(S2821)。接着,三维数据解码装置使用比特流中包含的头部信息来设定各瓦片(子树)的根位置(S2822)。
接着,三维数据解码装置将该边界框分割为8个子节点(S2823)。接着,三维数据解码装置对各节点的占用率编码进行解码,基于解码后的占用率编码将节点分割为8个子节点。另外,三维数据解码装置反复进行该处理,直到各瓦片(子树)的节点不能分割为止(S2824)。
最后,三维数据解码装置将解码后的多个瓦片的三维点结合(S2825)。
图133是表示本实施方式的三维数据编码装置2820的结构的框图。三维数据编码装置2820具备八叉树生成部2821、瓦片分割部2822、多个熵编码部2823和比特流生成部2824。
对象瓦片级别被输入到三维数据编码装置2820。三维数据编码装置2820在处理到达该对象瓦片级别之后,存放各瓦片的占用率编码,通过对多个瓦片的占用率编码分别进行编码来生成各瓦片的编码数据。
八叉树生成部2821设定边界框,并且将边界框分割为8个子节点。另外,八叉树生成部2821反复进行该分割处理,直到处理到达对象瓦片级别为止。
瓦片分割部2822设定瓦片。具体而言,在上述处理到达了对象瓦片级别的情况下,设定以该级别为根的多个瓦片。
多个熵编码部2823对多个瓦片分别进行编码。比特流生成部2824通过结合对多个瓦片进行编码而得到的编码数据来生成比特流。
图134是表示本实施方式的三维数据解码装置2830的结构的框图。三维数据解码装置2830具备八叉树生成部2831、比特流分割部2832、多个熵解码部2833、以及三维点结合部2834。
八叉树生成部2831设定边界框,并且将边界框分割为8个子节点。另外,八叉树生成部2831反复进行该分割处理直到处理到达对象瓦片级别为止。
比特流分割部2832通过使用包含在比特流中的头部信息将比特流分割为各瓦片的编码数据。
多个熵解码部2833分别对多个瓦片进行解码。三维点结合部2834结合解码后的多个瓦片的三维点。另外,也存在被解码的三维点在应用程序中直接使用的情况。在这样的情况下,跳过该结合处理。
如上所述,本实施方式的三维数据编码装置进行图135所示的处理。三维数据编码装置通过对包含多个三维点的对象空间(例如边界框)所包含的多个子空间(例如瓦片)进行编码而生成比特流。在所述比特流的生成中,三维数据编码装置在比特流包含的由多个子空间共用的第1头部(例如,共用头部2801或整体头部2804)中存放表示对象空间的坐标即第1坐标的第1信息(例如位置信息2807)(S2831),在比特流中包含的、子空间单位的第2头部(例如瓦片信息2811)中存放表示对应的子空间的坐标即第2坐标与第1坐标的差分的第2信息(例如瓦片位置信息2812)(S2832)。
由此,存放表示第1坐标与第2坐标的差分的信息作为第2信息,因此能够降低比特流的编码量。
另外,第1头部的至少一部分和多个第2头部也可以包含在单一的头部(句法)中。例如,如图129所示,也可以在瓦片表2802中包含多个子空间中共用的信息即瓦片尺寸信息2913(第1头部)和作为子空间单位的信息的瓦片信息2811(第2头部)。另外,第1头部也可以包括共用头部2801的至少一部分和瓦片表2802的一部分。
例如,多个子空间中包含的第1子空间和第2子空间的一部分重复。例如,如图111、图112以及图113所示,同一区域也可以使用不同的瓦片分割。
例如,在所述比特流的生成中,三维数据编码装置在第2头部(例如,图127中的瓦片信息2811)中存放表示对应的子空间的大小的第3信息(例如,图127中的瓦片尺寸信息2813)。
例如,在所述比特流的生成中,三维数据编码装置在第1头部中存放表示多个子空间的大小的第3信息(图129的瓦片尺寸信息2813)。
例如,在所述比特流的生成中,三维数据编码装置在所述第1头部(例如共用头部2801或瓦片表2802)中存放表示多个子空间的数量的第4信息(瓦片数量信息2806)。
例如,在所述比特流的生成中,三维数据编码装置生成包含多个子空间的多个第2头部的流作为与多个子空间的编码数据独立的流。例如,多个子空间的多个第2头部和多个子空间的编码数据被编码为不同的NAL单元。
由此,例如,三维数据解码装置通过参照包含第2头部的流,能够判定所需的子空间,从而选择性地获得所需的子空间的编码数据。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
另外,本实施方式的三维数据解码装置进行图136所示的处理。三维数据解码装置对通过对包含多个三维点的对象空间中包含的多个子空间进行编码而得到的比特流进行解码。在所述比特流的解码中,三维数据解码装置从比特流中包含的、多个子空间共用的第1头部(例如共用头部2801或整体头部2804)对表示所述对象空间的坐标即第1坐标的第1信息(例如位置信息2807)进行解码(S2841),从比特流中包含的、子空间单位的第2头部(例如瓦片信息2811)对表示对应的子空间的坐标即第2坐标与第1坐标的差分的第2信息(例如瓦片位置信息2812)进行解码(S2842)。例如,三维数据解码装置通过对由第1信息表示的第1坐标加上由第2信息表示的差分来计算第2坐标。
由此,存放表示第1坐标与第2坐标的差分的信息作为第2信息,因此能够降低比特流的编码量。
例如,多个子空间中包含的第1子空间和第2子空间之间的一部分重复。例如,如图111、图112以及图113所示,同一区域也可以使用不同的瓦片分割。
例如,在比特流的解码中,三维数据解码装置从第2头部(例如,图127中的瓦片信息2811)中解码表示对应的子空间的大小的第3信息(例如,图127中的瓦片尺寸信息2813)。
例如,在所述比特流的解码中,三维数据解码装置从第1头部对表示多个子空间的大小的第3信息(图129的瓦片尺寸信息2813)进行解码。
例如,在所述比特流的解码中,三维数据解码装置从第1头部(例如共用头部2801)对表示多个子空间的数量的第4信息(瓦片数量信息2806)进行解码。
例如,包含多个子空间的多个第2头部的流作为与多个子空间的解码数据独立的流而被生成。例如,多个子空间的多个第2头部和多个子空间的编码数据分别被编码为NAL单元。例如,三维数据解码装置通过参照包含第2头部的流,判定所需的子空间,从而选择性地获得所需的子空间的编码数据。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式13)
根据传输速度、输入输出性能、存储器使用率、以及CPU性能等硬件的限制,对大规模的三维地图(点云地图)的全部进行解码,难以将解码后的数据载入到系统。与此相对,在本实施方式中,使用将大规模的三维地图作为多个切片或瓦片而编码到比特流的手法。由此,能够降低对三维数据解码装置中的硬件的要求,能够在嵌入式系统或者便携终端中实现实时的解码处理。
关于切片和瓦片的编码处理和解码处理,如上所述。但是,为了实现上述手法,需要不可逆地变更PCC(Point Cloud Compression)编码的格式以及解码的格式双方。
在本实施方式中,使用用于切片和瓦片的编码的SEI(Supplemental EnhancementInformation:补充增强信息)。由此,能够在不进行格式的变更的情况下实现切片以及瓦片的编码处理以及解码处理。
在本实施方式中,三维数据编码装置在PCC编码中生成瓦片或切片的数据,并且生成包含瓦片或切片的属性信息(元数据)和数据存取信息的SEI,将生成的SEI与数据一起编码。
另外,三维数据解码装置在PCC解码中,基于包含瓦片或切片的属性信息及数据存取信息的SEI,确定解码所需的瓦片或切片和该数据存取位置。由此,三维数据解码装置能够实现使用了瓦片或切片的高速并行解码。
另外,既可以使用瓦片以及切片中的一方,也可以使用双方。
以下,对切片或瓦片的分割例进行说明。例如,在以60km/hr行驶的汽车中的三维数据解码装置中,对硬件要求16.67m/s的处理能力。另外,使用长度约为2.2km的城市部的隧道的数据作为测试流。为了对该测试流进行实时解码,需要以132秒对该测试流进行解码。另外,为了存放解码的点群信息,需要2GB的存储器。
另一方面,在比特流作为20个切片或瓦片被编码的情况下,三维数据解码装置能够对其中的1个进行解码。在该情况下,能够将要求实际时间缩短为6.5秒,能够将所要求的存储器削减为100MB。图137是表示不进行切片或瓦片分割的情况(整体)和进行20个切片或瓦片分割的情况下的存储器、要求实际时间、现行的解码时间及距离的例子的图。
图138是表示瓦片或切片分割的例子的图。例如,使用基于固定数量的点群数据的聚类来进行分割。在该手法中,所有的瓦片具有固定数量的点群数据,不存在空的瓦片。在该手法中,具有能够使瓦片和处理负荷均等的优点。另一方面,该手法为了决定数据的聚类以及各瓦片的世界空间坐标,需要进一步的运算以及信息。
另外,也可以代替基于每个切片或瓦片的点群数据的数量或比特数的切片或瓦片分割,而使用将点群数据有效地分割的其他手法。将该手法也称为非均匀分割(nonuniform division)。在该手法中,以避免空间的重复或设为最小限度,同时能够提供集群间的坐标关系的方式,对接近位置的点群数据进行聚类。
作为对点群数据进行聚类的手法,例如存在对八叉树分割的计数数量进行分类的手法、阶层聚类、基于重心的聚类(k平均法(k means clustering))、基于分布的聚类、基于密度的聚类等多个手法。
对八叉树分割的计数数量进行分类的手法是安装容易的手法之一。在该手法中,点群数据被分类并被计数。然后,在点群数据的数量达到固定值的情况下,到此为止的组被分类为1个集群。图139是表示该手法的例子的图。例如,在图139所示的例子中,输入各点群数据的区域的编号。在此,区域的编号例如是八叉树中的8个节点的编号。此外,通过分类提取具有相同编号的点群数据,例如,具有相同编号的点群数据被分配给一个切片或瓦片。
接着,对切片或瓦片分割的另一例进行说明。作为切片或瓦片分割的手法,使用使用俯视的二维地图的手法。三维数据编码装置基于用户输入的瓦片的数量,根据边界框的最小值和最大值进行划区。
该手法具有如下优点:在三维数据编码装置中,无需进行追加的运算就能够均等地配置点群数据的空间。但是,根据点群的密度,在很多区域中可能不包含点群。
图140是表示该手法的例子的图。如图140所示,点群数据的空间被分割为相同尺寸的多个边界框。
接着,对SEI的构成进行说明。为了能够在三维数据解码装置中对切片或瓦片信息进行解码,三维数据编码装置导入追加信息。例如,三维数据编码装置也可以导入用于PCC的SEI。SEI也能够在三维数据编码装置以及三维数据解码装置这两者中使用。
另外,与SEI的解码处理不对应的三维数据解码装置能够对包含SEI消息的比特流进行解码。另一方面,与SEI的解码处理对应的三维数据解码装置能够对不包含SEI消息的比特流进行解码。
图141是表示包含用于PCC的SEI的比特流的构成例的图。图142是表示用于瓦片或切片的SEI所包含的信息的例子的图。图143是表示该SEI(Tile_Slice_information_SEI)的句法例的图。
该SEI例如包含在比特流的头部中。即,该SEI包含在多个瓦片或切片的编码数据中共用的控制信息中。此外,如图142和图143所示,SEI包括瓦片索引(Tile idx)或切片索引(slide idx)、区域信息(Area information)、存储器偏移(指针)(Memory offsetpointer)和全局位置信息(Global position information)。另外,该SEI也可以包含与瓦片或切片的编码或解码相关联的其他信息。此外,SEI包括针对每个瓦片索引或切片索引的上述信息。此外,SEI也可以包含上述信息的至少一部分。
瓦片索引是用于识别多个瓦片的标识符,对多个瓦片的每一个分配不同的瓦片索引的值。切片索引是用于识别多个切片的标识符,对多个切片的每一个分配不同的切片索引的值。另外,对各瓦片或各切片的编码数据的头部附加与该编码数据对应的瓦片或切片的瓦片索引或切片索引。
区域信息是表示瓦片或切片的空间范围(区域)的信息。例如,区域信息包含表示瓦片或切片的尺寸的尺寸信息。存储器偏移是表示存放有瓦片或切片的编码数据的存储器的位置(地址)的信息,是表示比特流内的瓦片或切片的编码数据的位置(地址)的信息。全局位置信息是表示瓦片或切片的全局位置(例如世界空间坐标(纬度经度等))的信息。
另外,三维数据编码装置进行各瓦片或切片的字节校准处理等。
此外,SEI的用途不限于切片或瓦片的编码,也可以用于作为选项而被编码到比特流的其他信息。
另外,三维数据编码装置可以使1个瓦片或1个切片对应1个属性信息(上述的区域信息、地址信息(存储器偏移)及位置信息(全局位置信息)等),也可以使1个瓦片或1个切片对应多个属性信息。另外,三维数据编码装置也可以使多个瓦片或多个切片对应1个属性信息。另外,三维数据编码装置如果是并用瓦片与切片的情况,则也可以将针对各个瓦片与切片的属性信息附加于比特流。此外,例如,三维数据编码装置可以生成作为区域信息的第1属性信息和表示第1区域信息和第2区域信息之间的关联性的第2属性信息,并且将第1属性信息和第2属性信息存放在SEI中。
另外,如图143所示,SEI也可以包含针对瓦片或切片的属性信息(区域信息、地址信息以及位置信息)。例如,规定属性信息的编号,SEI也可以包含与属性信息的编号对应的瓦片索引或切片索引。
接着,说明三维数据解码装置的硬件构成的例子。图144是表示三维数据解码装置的硬件构成例的图。如图144所示,三维数据解码装置包括输入部4501、本地化部4502、存储器管理部4503、解码部4504、存储器4505和显示部4506。
输入部4501经由无线通信等网络进行与外部的数据的输入输出。另外,输入部4501进行SSD(Solid State Drive:固态驱动器)、HDD(hard disk drive:硬盘驱动器)以及存储器模块等储存器的数据的输入输出。
本地化部4502例如是GPS(Global Positioning System:全球定位系统)、轮的朝向的检测器、或者陀螺仪传感器等,是检测搭载有三维数据编码装置的移动体等的位置以及速度等的模块。
存储器管理部4503管理存储器4505。存储器管理部4503从本地化部4502获得信息,使用所获得的信息,参照SEI,读入关联的切片或瓦片的流,并将所读入的流载入到解码部4504。
解码部4504对切片或瓦片的流进行解码,并且将所获得的三维数据存放在存储器4505中。存储器4505存放切片或瓦片的流和三维数据。
显示部4506显示基于存放在存储器4505中的三维数据的图像或影像。
接着,说明对切片或瓦片的存取工作。PCC流被分割,在SEI中存放该信息。由此,三维数据解码装置能够容易地实现以区域单位的存取。存储器管理部4503基于来自本地化部4502(例如,GPS)的信息以及搭载有三维数据解码装置的移动体的移动方向等,判定需要的区域,从存储器4505获得需要的区域(被编码的切片或瓦片)的数据。
在SEI中,作为区域信息,对与关联的全局位置或者地图相关联的相对位置进行编码。图145和图146是表示对切片或瓦片的存取工作的例子的图。在该例子中,识别为搭载有三维数据解码装置的对象物的当前位置是区域M。另外,如图145和图146所示,对象物向左方向移动。在该情况下,由于区域F、K以及P不能够利用(未被载入),所以为了对这些区域的数据进行解码,通过存储器管理部4503从存储器4505读出这些区域的数据。另外,由于其他区域不与移动方向相关联,因此不需要进行解码。
通过上述手法,能够缩短解码时间,并且能够削减硬件中所需的存储器容量。
接着,对切片或瓦片的解码处理的测试的例子进行说明。以下,对点群数据比特流的解码中的SEI的测试进行说明。图147以及图148是表示SEI的测试工作的图。
用于测试的点群数据比特流是通过分割原始的PLY格式的点群数据并对分割后的点群数据分别进行编码而生成的。通过连结得到的多个比特流,生成1个文件(连结的流)。另外,该1个文件与表示各比特流的文件大小的文本格式的SEI一起被发送。
解码部4504通过使用SEI和来自存储器管理部4503的信息来进行变更以载入和解码流的一部分。通过多次观测,以微小的开销观测解码时间的上限。
以下,对三维数据编码装置的工作以及三维数据解码装置的工作进行说明。图149是本实施方式的三维数据编码装置的三维数据编码处理的流程图。
首先,三维数据编码装置基于针对瓦片或切片的请求的用户设定,设定包含所输入的三维点的边界框(S4501)。接着,三维数据编码装置将该边界框分割为8个子节点(S4502)。
接着,三维数据编码装置生成8个子节点中的包含三维点的子节点各自的占用率编码(S4503)。接着,三维数据编码装置判定处理对象的节点的级别(树结构的阶层)是否到达了对象瓦片级别(S4504)。在此,对象瓦片级别是指进行瓦片分割的级别(树结构的阶层)。
在处理对象的节点的级别未到达对象瓦片级别的情况下(S4504的“否”),三维数据编码装置将各子节点分割为8个孙节点(S4505),针对各个孙节点进行步骤S4503以后的处理。
在处理对象的节点的级别到达了对象瓦片级别的情况下(S4504的“是”),三维数据编码装置在瓦片表中保存当前的节点位置和瓦片级别(瓦片尺寸)(S4506)。
接着,三维数据编码装置将各子节点分割为8个孙节点(S4507)。接着,三维数据编码装置重复生成占用率编码的处理,直到节点不能被分割(S4508)。接着,三维数据编码装置对各瓦片的占用率编码进行编码(S4509)。
接着,三维数据编码装置将所生成的多个瓦片的编码比特流(编码数据)结合(S4510)。此外,三维数据编码装置将表示每个编码比特流(编码数据)的尺寸的信息和瓦片表等附加到比特流的头部信息。另外,三维数据编码装置将各编码比特流(编码数据)所对应的瓦片或切片的标识符(瓦片索引或切片索引)附加到各编码比特流的头部信息中。
在此,在瓦片表中存放有瓦片尺寸(瓦片级别)。因此,三维数据解码装置能够使用该瓦片尺寸,获得各瓦片的子树的边界框的尺寸。另外,三维数据解码装置能够使用子树的边界框的尺寸,计算整体的树结构的边界框的尺寸。
另外,三维数据编码装置也可以将各瓦片的边界框的尺寸存放在瓦片表中。由此,三维数据解码装置能够通过参照瓦片表来获得各瓦片的边界框的尺寸。
最后,三维数据编码装置将SEI附加到比特流(S4511)。如上所述,SEI包含表示各瓦片或各切片的属性信息(区域信息、地址信息及位置信息等)与标识符(瓦片索引或切片索引)的对应关系的一览表。此外,上述瓦片表也可以包含在SEI中。
图150是本实施方式的三维数据解码装置的三维数据解码处理的流程图。
首先,存储器管理部4503设定从SEI(SEI头部)获得的瓦片或切片的信息(S4521)。接着,三维数据解码装置参照SEI(SEI头部),存取关联的瓦片或切片(S4522)。
例如,如图145和146所示,存储器管理部4503基于三维数据解码装置的当前位置和移动方向来决定要获得的瓦片或切片的位置。或者,存储器管理部4503基于来自用户的设定,决定要获得的瓦片或切片的位置。接着,存储器管理部4503参照SEI所包含的属性信息与标识符(瓦片索引或切片索引)的一览表,判定所决定的位置的瓦片或切片的标识符。接着,存储器管理部4503参照各编码比特流的头部信息,获得附加有判定出的标识符的编码比特流作为解码对象的编码比特流。
接着,三维数据解码装置使用比特流中包含的头部信息,设定包含输出的三维点的边界框(S4523)。接着,三维数据解码装置使用比特流中包含的头部信息来设定各瓦片(子树)的根位置(S4524)。
接着,三维数据解码装置将该边界框分割为8个子节点(S4525)。接着,三维数据解码装置对各节点的占用率编码进行解码,基于解码后的占用率编码将节点分割为8个子节点。另外,三维数据解码装置反复进行该处理,直到各瓦片(子树)的节点不能分割为止(S4526)。
最后,三维数据解码装置将解码后的多个瓦片的三维点结合(S4527)。
图151是表示本实施方式的三维数据编码装置4510的构成的框图。三维数据编码装置4510具备八叉树生成部4511、瓦片分割部4512、多个熵编码部4513、比特流生成部4514、以及SEI处理部4515。
对象瓦片级别被输入到三维数据编码装置4510。三维数据编码装置4510,在处理到达了该对象瓦片级别后,存放各瓦片的占用率编码,通过对多个瓦片的占用率编码分别进行编码来生成各瓦片的编码数据。
八叉树生成部4511设定边界框,并且将边界框划分为8个子节点。另外,八叉树生成部4511反复进行该分割处理,直到处理到达对象瓦片级别为止。此外,所得到的信息被解析,并且被发送到SEI处理部4515。
瓦片分割部4512设定瓦片。具体而言,在上述处理到达了对象瓦片级别的情况下,设定以该级别为根的多个瓦片。
多个熵编码部4513对多个瓦片分别进行编码。比特流生成部4514通过结合对多个瓦片进行编码而得到的编码数据来生成比特流。
SEI处理部4515生成SEI,并将所生成的SEI写入比特流。
图152是表示本实施方式的三维数据解码装置4520的构成的框图。三维数据解码装置4520具备SEI处理部4521、八叉树生成部4522、比特流分割部4523、多个熵解码部4524、以及三维点结合部4525。
SEI处理部4521参照SEI,决定读出哪个数据并进行处理。此外,决定结果被发送到比特流分割部4523。
八叉树生成部4522设定边界框,并且将边界框分割为8个子节点。另外,八叉树生成部4522反复进行该分割处理直到处理到达对象瓦片级别为止。
比特流分割部4523使用包含在比特流中的头部信息将比特流分割为各瓦片的编码数据。另外,基于来自SEI处理部4521的信息,将进行解码处理的瓦片的编码数据发送至熵解码部4524。
多个熵解码部4524分别对多个瓦片进行解码。三维点结合部4525结合解码后的多个瓦片的三维点。另外,也存在被解码的三维点在应用程序中直接使用的情况。在这样的情况下,跳过该结合处理。
另外,瓦片或切片的属性信息(标识符、区域信息、地址信息及位置信息等)不限于SEI,也可以存放在其他控制信息中。例如,属性信息可以存放在表示PCC数据整体的构成的控制信息中,也可以存放在每个瓦片或切片的控制信息中。
另外,三维数据编码装置(三维数据发送装置)在将PCC数据传输到其他设备时,也可以将SEI等控制信息变换为该系统的协议所特有的控制信息来表示。
例如,当将包含属性信息的PCC数据变换为ISOBMFF(ISO Base Media FileFormat:ISO基本媒体文件格式)时,三维数据编码装置可以将SEI与PCC数据一起存放在“mdat box”中,也可以存放在记载与流相关的控制信息的“track box”中。即,三维数据编码装置也可以将控制信息存放在用于随机存取的表中。此外,在将PCC数据打包并传输的情况下,三维数据编码装置也可以将SEI存放在包头部中。这样,通过使系统的层能够获得属性信息,使属性信息和瓦片数据或切片数据的存取变得容易,能够提高存取的速度。
另外,在图144所示的三维数据解码装置的构成中,存储器管理部4503也可以预先判定解码处理所需的信息是否在存储器4505中,如果没有解码处理所需的信息,则从储存器或网络获得该信息。
在三维数据解码装置从储存器或网络使用MPEG-DASH等协议中的Pull获得PCC数据的情况下,存储器管理部4503也可以基于来自本地化部4502等的信息,确定解码处理所需的数据的属性信息,请求包含所确定的属性信息的瓦片或切片,获得所需的数据(PCC流)。包含属性信息的瓦片或切片的确定可以在储存器或网络侧进行,也可以由存储器管理部4503进行。例如,存储器管理部4503也可以预先获得所有PCC数据的SEI,基于该信息来确定瓦片或切片。
在UDP协议等中使用Push从储存器或网络发送了所有PCC数据的情况下,存储器管理部4503也可以基于来自本地化部4502等的信息,确定解码处理所需的数据的属性信息、以及瓦片或切片,根据所送出的PCC数据对期望的瓦片或切片进行滤波,从而获得期望的数据。
另外,三维数据编码装置也可以在获得数据时,基于是否存在期望的数据、或者数据尺寸等来判定是否能够进行实际时间内的处理、或者通信状态等。基于该判定结果,在判断为数据获得困难的情况下,三维数据编码装置也可以选择优先度或数据量不同的其他切片或瓦片来获得。
另外,三维数据解码装置也可以向云服务器发送来自本地化部4502等的信息,云服务器基于该信息判定需要的信息。
如上所述,本实施方式的三维数据编码装置进行图153所示的处理。三维数据编码装置通过对包含多个三维点的对象空间所包含的多个子空间(例如瓦片或切片)进行编码,生成包含与多个子空间对应的多个编码数据的比特流。
在比特流的生成中,三维数据编码装置在比特流中包含的、多个编码数据中共用的第1控制信息(例如SEI)中存放与分配给多个子空间的多个标识符(例如瓦片索引或切片索引)建立了对应的多个子空间的信息(例如位置信息或尺寸信息)的一览表(S4531)。三维数据编码装置在多个编码数据各自的头部(例如,瓦片头部或切片头部)中,存放分配给与该编码数据对应的子空间的标识符(S4532)。
由此,三维数据解码装置在对由该三维数据编码装置生成的比特流进行解码时,能够参照与在第1控制信息中存放的多个标识符建立了对应的所述多个子空间的信息的一览表、和在多个编码数据各自的头部中存放的标识符,获得期望的编码数据。因此,能够降低三维数据解码装置的处理量。
例如,在比特流中,第1控制信息被配置在多个编码数据之前。
例如,所述一览表包含多个子空间的位置信息(例如全局位置或相对位置)。例如,所述一览表包含多个子空间的尺寸信息。
例如,三维数据编码装置将第1控制信息变换为比特流的发送目的地的系统的协议中的第2控制信息。
由此,该三维数据编码装置能够根据比特流的发送目的地的系统的协议来变换控制信息。
例如,第2控制信息是用于所述协议中的随机存取的表。例如,第2控制信息是ISOBMFF中的mdat box或track box。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
另外,本实施方式的三维数据解码装置进行图154所示的处理。首先,三维数据解码装置对比特流进行解码,所述比特流是通过对包含多个三维点的对象空间中包含的多个子空间(例如瓦片或切片)进行编码而得到的、并包含与多个子空间对应的多个编码数据。
在比特流的解码中,三维数据解码装置决定多个子空间中的解码对象的子空间(S4541)。三维数据解码装置使用在比特流包含的由多个编码数据共用的第1控制信息(例如SEI)中包含的、与分配给多个子空间的多个标识符(例如瓦片索引或切片索引)建立了对应的多个子空间的信息(例如位置信息或尺寸信息)的一览表、和多个编码数据各自的头部(例如瓦片头部或切片头部)所包含的分配给与该编码数据对应的子空间的标识符,获得解码对象的子空间的编码数据(S4542)。
由此,该三维数据解码装置能够参照存放于第1控制信息的与多个标识符建立了对应的多个子空间的信息的一览表和存放于多个编码数据各自的头部的标识符,获得期望的编码数据。因此,能够降低三维数据解码装置的处理量。
例如,在比特流中,第1控制信息被配置在多个编码数据之前。
例如,所述一览表包含多个子空间的位置信息(例如全局位置或相对位置)。例如,所述一览表包含多个子空间的尺寸信息。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
以上,对本公开的实施方式的三维数据编码装置以及三维数据解码装置等进行了说明,但本公开并不限定于该实施方式。
并且,上述的实施方式的三维数据编码装置以及三维数据解码装置等中包含的各处理部典型的能够作为集成电路的LSI来实现。这些可以分别地制成一个芯片,也可以是其中的一部分或全部被制成一个芯片。
并且,集成电路化并非受LSI所限,也可以由专用电路或通用处理器来实现。也可以利用在LSI制造后可编程的FPGA(Field Programmable Gate Array:现场可编程门阵列)、或能够重构LSI内部的电路部的连接或设定的可重构处理器。
并且,在上述的各实施方式中,各构成要素可以由专用的硬件来构成,或者可以通过执行适于各构成要素的软件程序来实现。各构成要素也可以通过CPU或处理器等程序执行部读出被记录在硬盘或半导体存储器等记录介质的软件程序并执行来实现。
并且,本公开能够作为由三维数据编码装置以及三维数据解码装置等来执行的三维数据编码方法或三维数据解码方法等来实现。
并且,框图中的功能块的分割为一个例子,多个功能块可以作为一个功能块来实现,一个功能块也可以分割为多个,一部分的功能也可以移动到其他的功能块。并且,具有类似的功能的多个功能块的功能也可以由单一的硬件或软件进行并行处理或者进行时间分割处理。
并且,关于流程图中的各步骤的执行顺序,是为了对本公开进行具体说明而举出的例子,也可以是上述以外的顺序。并且,上述步骤的一部分也可以与其他的步骤同时(并行)执行。
以上基于实施方式对一个或多个形态的三维数据编码装置以及三维数据解码装置等进行了说明,但是,本公开并非受这些实施方式所限。在不脱离本公开的主旨的范围内,将本领域技术人员能够想到的各种变形执行于本实施方式而得到的形态、以及对不同的实施方式中的构成要素进行组合而得到的形态均包含在一个或多个形态的范围内。
产业上的可利用性
本公开能够适用于三维数据编码装置以及三维数据解码装置。
附图标记说明
100、400 三维数据编码装置
101、201、401、501 获得部
102、402 编码区域决定部
103 分割部
104、644 编码部
111 三维数据
112、211、413、414、511、634 编码三维数据
200、500 三维数据解码装置
202 解码开始GOS决定部
203 解码SPC决定部
204、625 解码部
212、512、513 解码三维数据
403 SWLD提取部
404 WLD编码部
405 SWLD编码部
411 输入三维数据
412 提取三维数据
502 头部解析部
503 WLD解码部
504 SWLD解码部
620、620A 三维数据制作装置
621、641 三维数据制作部
622 请求范围决定部
623 搜索部
624、642 接收部
626 合成部
631、651 传感器信息
632 第1三维数据
633 请求范围信息
635 第2三维数据
636 第3三维数据
640 三维数据发送装置
643 提取部
645 发送部
652 第5三维数据
654 第6三维数据
700 三维信息处理装置
701 三维地图获得部
702 自身车辆检测数据获得部
703 异常情况判断部
704 应对工作决定部
705 工作控制部
711 三维地图
712 自身车辆检测三维数据
810 三维数据制作装置
811 数据接收部
812、819 通信部
813 接收控制部
814、821 格式转换部
815 传感器
816 三维数据制作部
817 三维数据合成部
818 三维数据蓄积部
820 发送控制部
822 数据发送部
831、832、834、835、836、837 三维数据
833 传感器信息
901 服务器
902、902A、902B、902C 客户端装置
1011、1111 数据接收部
1012、1020、1112、1120 通信部
1013、1113 接收控制部
1014、1019、1114、1119 格式转换部
1015 传感器
1016、1116 三维数据制作部
1017 三维图像处理部
1018、1118 三维数据蓄积部
1021、1121 发送控制部
1022、1122 数据发送部
1031、1032、1135 三维地图
1033、1037、1132 传感器信息
1034、1035、1134 三维数据
1117 三维数据合成部
1201 三维地图压缩/解码处理部
1202 传感器信息压缩/解码处理部
1211 三维地图解码处理部
1212 传感器信息压缩处理部
1300 三维数据编码装置
1301 分割部
1302 减法部
1303 变换部
1304 量化部
1305、1402 逆量化部
1306、1403 逆变换部
1307、1404 加法部
1308、1405 参照体积存储器
1309、1406 帧内预测部
1310、1407 参照空间存储器
1311、1408 帧间预测部
1312、1409 预测控制部
1313 熵编码部
1400 三维数据解码装置
1401 熵解码部
1501 服务器
1502 客户端
1511 存储部
1512 控制部
1513 编码三维地图
1521 解码器
1522 应用程序
2100 三维数据编码装置
2101、2111 八叉树生成部
2102、2112 几何信息计算部
2103、2113 编码表选择部
2104 熵编码部
2110 三维数据解码装置
2114 熵解码部
2801 共用头部
2802 瓦片表
2803 编码数据
2804 整体头部
2805 固定尺寸标志
2806 瓦片数量信息
2807 位置信息
2811 瓦片信息
2812 瓦片位置信息
2813 瓦片尺寸信息
2814 编码量信息
2815 切片信息
2820 三维数据编码装置
2821、2831 八叉树生成部
2822 瓦片分割部
2823 熵编码部
2824 比特流生成部
2830 三维数据解码装置
2832 比特流分割部
2833 熵解码部
2834 三维点结合部
4501 输入部
4502 本地化部
4503 存储器管理部
4504 解码部
4505 存储器
4506 显示部
4510 三维数据编码装置
4511、4522 八叉树生成部
4512 瓦片分割部
4513 熵编码部
4514 比特流生成部
4515、4521 SEI 处理部
4520 三维数据解码装置
4523 比特流分割部
4524 熵解码部
4525 三维点结合部

Claims (13)

1.一种三维数据编码方法,其中,
通过对包含多个三维点的对象空间中包含的多个子空间进行编码,生成包含与所述多个子空间对应的多个编码数据的比特流,
在所述比特流的生成中,
在所述比特流包含的由所述多个编码数据共用的第1控制信息中,存放与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表,
在所述多个编码数据各自的头部中,存放分配给与该编码数据对应的所述子空间的标识符。
2.根据权利要求1所述的三维数据编码方法,其中,
在所述比特流中,所述第1控制信息被配置在所述多个编码数据之前。
3.根据权利要求1或2所述的三维数据编码方法,其中,
所述一览表包含所述多个子空间的位置信息。
4.根据权利要求1至3中任一项所述的三维数据编码方法,其中,
所述一览表包含所述多个子空间的尺寸信息。
5.根据权利要求1至4中任一项所述的三维数据编码方法,其中,
所述三维数据编码方法将所述第1控制信息变换为所述比特流的发送目的地的系统的协议中的第2控制信息。
6.根据权利要求5所述的三维数据编码方法,其中,
所述第2控制信息是用于所述协议中的随机存取的表。
7.根据权利要求6所述的三维数据编码方法,其中,
所述第2控制信息是ISO基本媒体文件格式即ISOBMFF中的媒体数据箱即mdat box或轨道箱即track box。
8.一种三维数据解码方法,其中,
对比特流进行解码,所述比特流是通过对包含多个三维点的对象空间中包含的多个子空间进行编码而得到的、并包含与所述多个子空间对应的多个编码数据,
在所述比特流的解码中,
决定所述多个子空间中的解码对象的子空间,
使用在所述比特流包含的由所述多个编码数据共用的第1控制信息中包含的、与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表、和所述多个编码数据各自的头部所包含的分配给与该编码数据对应的所述子空间的标识符,获得所述解码对象的子空间的编码数据。
9.根据权利要求8所述的三维数据解码方法,其中,
在所述比特流中,所述第1控制信息被配置在所述多个编码数据之前。
10.根据权利要求8或9所述的三维数据解码方法,其中,
所述一览表包含所述多个子空间的位置信息。
11.根据权利要求8至10中任一项所述的三维数据解码方法,其中,
所述一览表包含所述多个子空间的尺寸信息。
12.一种三维数据编码装置,是对具有属性信息的多个三维点进行编码的三维数据编码装置,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,通过对包含多个三维点的对象空间中包含的多个子空间进行编码,生成包含与所述多个子空间对应的多个编码数据的比特流,
在所述比特流的生成中,
在所述比特流包含的由所述多个编码数据共用的第1控制信息中,存放与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表,
在所述多个编码数据各自的头部中,存放分配给与该编码数据对应的所述子空间的标识符。
13.一种三维数据解码装置,是对具有属性信息的多个三维点进行解码的三维数据解码装置,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,对比特流进行解码,所述比特流是通过对包含多个三维点的对象空间中包含的多个子空间进行编码而得到的、并包含与所述多个子空间对应的多个编码数据,
在所述比特流的解码中,
决定所述多个子空间中的解码对象的子空间,
使用在所述比特流包含的由所述多个编码数据共用的第1控制信息中包含的、与分配给所述多个子空间的多个标识符建立了对应的所述多个子空间的信息的一览表、和所述多个编码数据各自的头部所包含的分配给与该编码数据对应的所述子空间的标识符,获得所述解码对象的子空间的编码数据。
CN201980046320.1A 2018-07-13 2019-07-10 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 Pending CN112424833A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862697598P 2018-07-13 2018-07-13
US62/697,598 2018-07-13
PCT/JP2019/027401 WO2020013249A1 (ja) 2018-07-13 2019-07-10 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Publications (1)

Publication Number Publication Date
CN112424833A true CN112424833A (zh) 2021-02-26

Family

ID=69142437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980046320.1A Pending CN112424833A (zh) 2018-07-13 2019-07-10 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置

Country Status (9)

Country Link
US (3) US11197027B2 (zh)
EP (1) EP3822915A4 (zh)
JP (2) JP7374089B2 (zh)
KR (1) KR20210029187A (zh)
CN (1) CN112424833A (zh)
BR (1) BR112020027050A2 (zh)
CA (1) CA3105948A1 (zh)
MX (1) MX2021000430A (zh)
WO (1) WO2020013249A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102660514B1 (ko) * 2018-07-13 2024-04-24 한국전자통신연구원 스케일러블 포인트 클라우드 부호화/복호화 방법 및 장치
MX2021003384A (es) * 2018-10-02 2021-05-27 Panasonic Ip Corp America Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo de codificacion de datos tridimensionales y dispositivo de decodificacion de datos tridimensionales.
JPWO2020075861A1 (ja) * 2018-10-12 2021-09-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN111869201B (zh) * 2019-01-08 2023-01-31 三星电子株式会社 处理和发送三维内容的方法
US20220245863A1 (en) * 2019-07-02 2022-08-04 Sony Group Corporation Information processing device and method
US11218698B2 (en) * 2019-09-27 2022-01-04 Nokia Technologies Oy Fractional/arbitrary tile grouping
KR102551149B1 (ko) * 2020-02-27 2023-07-03 애플 인크. 포인트 클라우드 클러스터들의 공간적 관계들
US11310528B2 (en) * 2020-03-30 2022-04-19 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
EP4138040A4 (en) * 2020-04-14 2023-08-09 Panasonic Intellectual Property Corporation of America METHOD OF ENCODING THREE-DIMENSIONAL DATA, METHOD OF DECODING OF THREE-DIMENSIONAL DATA, DEVICE FOR ENCODING OF THREE-DIMENSIONAL DATA, AND DECODER OF DECODER OF THREE-DIMENSIONAL DATA
MX2022015293A (es) * 2020-06-09 2023-01-04 Sony Group Corp Dispositivo y metodo de procesamiento de informacion.
CN115702442A (zh) * 2020-06-19 2023-02-14 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
JP2022002382A (ja) * 2020-06-22 2022-01-06 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
US11941856B2 (en) 2020-08-18 2024-03-26 Tencent America LLC Predictive tree-based geometry coding for a point cloud
WO2022137537A1 (ja) * 2020-12-25 2022-06-30 日本電信電話株式会社 復号方法、復号装置及びプログラム
JPWO2022149589A1 (zh) * 2021-01-07 2022-07-14
WO2023013037A1 (ja) * 2021-08-06 2023-02-09 日本電信電話株式会社 点群データ処理装置、点群データ処理方法及びプログラム
CN116309896A (zh) * 2021-12-20 2023-06-23 华为技术有限公司 数据编解码方法、装置和设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668091B1 (en) * 1998-10-02 2003-12-23 Samsung Electronics Co., Ltd. 3D mesh coding/decoding method
US6577310B1 (en) * 1998-12-01 2003-06-10 Samsung Electronics Co., Ltd. 3D mesh coding/decoding method and apparatus for error resilience and incremental rendering
JP5936687B2 (ja) * 2011-07-18 2016-06-22 トムソン ライセンシングThomson Licensing ツリー構造の適応的エントロピー符号化方法
EP2749023A4 (en) * 2011-08-25 2016-04-06 Thomson Licensing HIERARCHICAL ENCODING AND DECODING BY ENTROPY
WO2013075334A1 (en) * 2011-11-25 2013-05-30 Thomson Licensing Position coding based on spatial tree with duplicate points
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
CN116883522A (zh) * 2015-12-14 2023-10-13 松下电器(美国)知识产权公司 三维数据编码方法、解码方法、编码装置、解码装置
CN113008263B (zh) 2016-11-01 2024-04-30 松下电器(美国)知识产权公司 数据生成方法及数据生成装置
MX2020011944A (es) * 2018-05-11 2021-01-15 Panasonic Ip Corp America Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo codificador de datos tridimensionales y dispositivo decodificador de datos tridimensionales.

Also Published As

Publication number Publication date
JPWO2020013249A1 (ja) 2021-07-15
US20230300375A1 (en) 2023-09-21
BR112020027050A2 (pt) 2021-04-20
US20210127136A1 (en) 2021-04-29
EP3822915A4 (en) 2021-08-18
US20220030272A1 (en) 2022-01-27
WO2020013249A1 (ja) 2020-01-16
MX2021000430A (es) 2021-03-25
JP7374089B2 (ja) 2023-11-06
JP2023181308A (ja) 2023-12-21
CA3105948A1 (en) 2020-01-16
EP3822915A1 (en) 2021-05-19
KR20210029187A (ko) 2021-03-15
US11677981B2 (en) 2023-06-13
US11197027B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
JP7374089B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7414713B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7248582B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019156141A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7168591B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019203297A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN111989713A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN111373447A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
JP7285789B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN112313711A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN111213175A (zh) 三维数据编码方法、解码方法、三维数据编码装置、解码装置
CN112204341B (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN111937042A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置

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