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

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

Info

Publication number
CN113557550A
CN113557550A CN202080021032.3A CN202080021032A CN113557550A CN 113557550 A CN113557550 A CN 113557550A CN 202080021032 A CN202080021032 A CN 202080021032A CN 113557550 A CN113557550 A CN 113557550A
Authority
CN
China
Prior art keywords
dimensional data
dimensional
information
encoding
decoding
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
CN202080021032.3A
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 CN113557550A publication Critical patent/CN113557550A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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

Abstract

三维数据编码方法是使用第1编码方式和与第1编码方式不同的第2编码方式的三维数据编码方法,使用第1表,将第1量化参数变换为第1尺度值,或者将第1尺度值变换为第1量化参数,所述第1表是表示第1量化参数的多个值与第1尺度值的多个值的对应关系的表,且在第1编码方式和第2编码方式中共用(S7921),通过包含第1量化处理的编码来生成编码属性信息,所述第1量化处理将基于点群数据所包含的多个三维点的多个属性信息的多个第1系数值分别除以第1尺度值(S7922),生成包含编码属性信息和第1量化参数的比特流(S7923)。

Description

三维数据编码方法、三维数据解码方法、三维数据编码装置、 以及三维数据解码装置
技术领域
本公开涉及三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置。
背景技术
在用于汽车或机器人自主地进行工作的计算机视觉、地图信息、监控、基础结构检查、或影像分发等较大的领域中,今后将会普及灵活运用了三维数据的装置或服务。三维数据通过测距仪等距离传感器、立体摄影机、或多个单眼相机的组合等各种方法来获得。
作为三维数据的一个表现方法有被称作点云的表现方法,该方法通过三维空间内的点群来表现三维结构的形状。在点云中存放了点群的位置以及颜色。虽然预想点云作为三维数据的表现方法将成为主流,但是,点群的数据量非常大。因此,在三维数据的蓄积或传输中与二维的动态图像(作为一个例子,有以MPEG而被标准化后的MPEG-4AVC或HEVC等)一样,需要通过编码来进行数据量的压缩。
并且,关于点云的压缩,有一部分由进行点云关联的处理的公开的库(PointCloud Library:点云库)等支持。
并且,有周知的利用三维的地图数据,检索在车辆周边的设施,并进行显示的技术(例如,参照专利文献1)。
现有技术文献
专利文献
专利文献1 国际公开第2014/020663号
发明内容
发明要解决的问题
在三维数据的编码处理中,期望能够削减使用的存储器容量。
本公开的目的在于提供能够削减使用的存储器容量的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
用来解决课题的手段
本公开的一形态的三维数据编码方法使用第1编码方式和与所述第1编码方式不同的第2编码方式,其中,使用第1表,将第1量化参数变换为第1尺度值,或者将所述第1尺度值变换为所述第1量化参数,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1编码方式和所述第2编码方式中共用,通过包含第1量化处理的编码来生成编码属性信息,所述第1量化处理将基于点群数据所包含的多个三维点的多个属性信息的多个第1系数值分别除以所述第1尺度值,生成包含所述编码属性信息和所述第1量化参数的比特流。
本公开的一形态的三维数据解码方法使用第1解码方式和与所述第1解码方式不同的第2解码方式,其中,从比特流取得点群数据所包含的多个三维点的多个属性信息被编码后的编码属性信息和第1量化参数,使用第1表,将第1量化参数变换为第1尺度值,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1解码方式和所述第2解码方式中共用,通过包含第1逆量化处理的解码,对所述多个属性信息进行解码,所述第1逆量化处理对基于所述编码属性信息的多个第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是用于说明实施方式7的旋转以及平移处理的图。
图46示出了实施方式7的RT适用标志以及RT信息的句法的例子。
图47是用于说明实施方式7的帧间预测处理的图。
图48是实施方式7的三维数据解码装置的框图。
图49是由实施方式7的三维数据编码装置进行的三维数据编码处理的流程图。
图50是由实施方式7的三维数据解码装置进行的三维数据解码处理的流程图。
图51是表示实施方式8的三维点的例子的图。
图52是表示实施方式8的LoD的设定例的图。
图53是表示实施方式8的LoD的设定中使用的阈值的例子的图。
图54是表示实施方式8的预测值中使用的属性信息的例子的图。
图55是表示实施方式8的指数哥伦布码的一例的图。
图56是表示实施方式8的针对指数哥伦布码的处理的图。
图57是表示实施方式8的属性头部的句法例的图。
图58是表示实施方式8的属性数据的句法例的图。
图59是实施方式8的三维数据编码处理的流程图。
图60是实施方式8的属性信息编码处理的流程图。
图61是表示实施方式8的针对指数哥伦布码的处理的图。
图62是表示实施方式8的表示剩余编码与其值的关系的反推表的例子的图。
图63是实施方式8的三维数据解码处理的流程图。
图64是实施方式8的属性信息解码处理的流程图。
图65是实施方式8的三维数据编码装置的框图。
图66是实施方式8的三维数据解码装置的框图。
图67是实施方式8的三维数据编码处理的流程图。
图68是实施方式8的三维数据解码处理的流程图。
图69是表示示出在实施方式9的各预测模式中计算出的预测值的表的第1例的图。
图70是表示实施方式9的预测值中使用的属性信息的例子的图。
图71是表示示出在实施方式9的各预测模式中计算出的预测值的表的第2例的图。
图72是表示示出在实施方式9的各预测模式中计算出的预测值的表的第3例的图。
图73是表示示出在实施方式9的各预测模式中计算出的预测值的表的第4例的图。
图74是用于说明使用了实施方式10的RAHT的属性信息的编码的图。
图75是表示实施方式10的按每个阶层设定量化尺度的例子的图。
图76是表示实施方式10的第1编码串和第2编码串的例子的图。
图77是表示实施方式10的截断一元编码的例子的图。
图78是用于说明实施方式10的逆Haar变换的图。
图79是表示实施方式10的属性信息的句法例的图。
图80是表示实施方式10的编码系数和ZeroCnt的例子的图。
图81是实施方式10的三维数据编码处理的流程图。
图82是实施方式10的属性信息编码处理的流程图。
图83是实施方式10的编码系数编码处理的流程图。
图84是实施方式10的三维数据解码处理的流程图。
图85是实施方式10的属性信息解码处理的流程图。
图86是实施方式10的编码系数解码处理的流程图。
图87是实施方式10的属性信息编码部的框图。
图88是实施方式10的属性信息解码部的框图。
图89是用来对有关实施方式11的量化部及逆量化部的处理进行说明的图。
图90是用来说明有关实施方式11的量化值的默认值和量化delta(Δ)的图。
图91是表示在有关实施方式11的三维数据编码装置中包含的第1编码部的构成的框图。
图92是表示有关实施方式11的分割部的构成的框图。
图93是表示有关实施方式11的位置信息编码部及属性信息编码部的构成的框图。
图94是表示有关实施方式11的第1解码部的构成的框图。
图95是表示有关实施方式11的位置信息解码部及属性信息解码部的构成的框图。
图96是表示有关实施方式11的位置信息的编码或属性信息的编码中的关于量化值的决定的处理的一例的流程图。
图97是表示有关实施方式11的位置信息及属性信息的解码处理的一例的流程图。
图98是用来对有关实施方式11的量化参数的传输方法的第1例进行说明的图。
图99是用来对有关实施方式11的量化参数的传输方法的第2例进行说明的图。
图100是用来对有关实施方式11的量化参数的传输方法的第3例进行说明的图。
图101是有关实施方式11的点群数据的编码处理的流程图。
图102是表示有关实施方式11的决定QP值并将附加信息更新的处理的一例的流程图。
图103是表示有关实施方式11的将所决定的QP值编码的处理的一例的流程图。
图104是有关实施方式11的点群数据的解码处理的流程图。
图105是表示有关实施方式11的取得QP值并将切片或瓦片的QP值解码的处理的一例的流程图。
图106是表示有关实施方式11的GPS的句法例的图。
图107是表示有关实施方式11的APS的句法例的图。
图108是表示有关实施方式11的位置信息的头部的句法例的图。
图109是表示有关实施方式11的属性信息的头部的句法例的图。
图110是用来对有关实施方式11的量化参数的传输方法的另一例进行说明的图。
图111是用来对有关实施方式11的量化参数的传输方法的另一例进行说明的图。
图112是用来对有关实施方式11的量化参数的传输方法的第9例另进行说明的图。
图113是是用来说明有关实施方式11的QP值的控制例的图。
图114是表示有关实施方式11的基于对象的品质的QP值的决定方法的一例的流程图。
图115是表示有关实施方式11的基于速率控制的QP值的决定方法的一例的流程图。
图116是有关实施方式11的编码处理的流程图。
图117是有关实施方式11的解码处理的流程图。
图118是用来对有关实施方式12的量化参数的传输方法的一例进行说明的图。
图119是表示有关实施方式12的APS的句法及属性信息的头部的句法的第1例的图。
图120是表示有关实施方式12的APS的句法的第2例的图。
图121是表示有关实施方式12的属性信息的头部的句法的第2例的图。
图122是表示有关实施方式12的SPS、APS及属性信息的头部的关系的图。
图123是有关实施方式12的编码处理的流程图。
图124是有关实施方式12的解码处理的流程图。
图125是示出了有关实施方式13的三维数据编码装置的结构的框图。
图126是示出了有关实施方式13的三维数据解码装置的结构的框图。
图127是示出了实施方式13的LoD的设定例的图。
图128是示出了有关实施方式13的RAHT的阶层结构的例子的图。
图129是有关实施方式13的三维数据编码装置的框图。
图130是有关实施方式13的分割部的框图。
图131是有关实施方式13的属性信息编码部的框图。
图132是有关实施方式13的三维数据解码装置的框图。
图133是有关实施方式13的属性信息解码部的框图。
图134是示出了有关实施方式13的瓦片和切片分割中的量化参数的设定例的图。
图135是示出了有关实施方式13的量化参数的设定例的图。
图136是示出了有关实施方式13的量化参数的设定例的图。
图137是示出了有关实施方式13的属性信息头部的句法例的图。
图138是示出了有关实施方式13的属性信息头部的句法例的图。
图139是示出了有关实施方式13的量化参数的设定例的图。
图140是示出了有关实施方式13的属性信息头部的句法例的图。
图141是示出了有关实施方式13的属性信息头部的句法例的图。
图142是有关实施方式13的三维数据编码处理的流程图。
图143是有关实施方式13的属性信息编码处理的流程图。
图144是有关实施方式13的ΔQP决定处理的流程图。
图145是有关实施方式13的三维数据解码处理的流程图。
图146是有关实施方式13的属性信息解码处理的流程图。
图147是有关实施方式13的属性信息编码部的框图。
图148是有关实施方式13的属性信息解码部的框图。
图149是示出了有关实施方式13的量化参数的设定例的图。
图150是示出了有关实施方式13的属性信息头部的句法例的图。
图151是示出了有关实施方式13的属性信息头部的句法例的图。
图152是有关实施方式13的三维数据编码处理的流程图。
图153是有关实施方式13的属性信息编码处理的流程图。
图154是有关实施方式13的三维数据解码处理的流程图。
图155是有关实施方式13的属性信息解码处理的流程图。
图156是有关实施方式13的属性信息编码部的框图。
图157是有关实施方式13的属性信息解码部的框图。
图158是示出了有关实施方式13的属性信息头部的句法例的图。
图159是有关实施方式13的三维数据编码处理的流程图。
图160是有关实施方式13的三维数据解码处理的流程图。
图161是实施方式14的三维数据编码装置的框图。
图162是实施方式14的三维数据解码装置的框图。
图163是实施方式14的三维数据编码装置的框图。
图164是实施方式14的三维数据解码装置的框图。
图165是实施方式14的属性信息编码部的框图。
图166是实施方式14的属性信息解码部的框图。
图167是实施方式14的三维数据解码装置的框图。
图168是实施方式14的三维数据解码装置的框图。
图169是表示实施方式14的表的例子的图。
图170是实施方式14的尺度值计算部的框图。
图171是实施方式14的三维数据编码装置的框图。
图172是实施方式14的尺度值计算部的框图。
图173是实施方式14的三维数据解码处理的流程图。
图174是实施方式14的尺度值计算部的框图。
图175是实施方式14的三维数据解码装置的框图。
图176是实施方式14的三维数据编码处理的流程图。
图177是实施方式14的三维数据解码处理的流程图。
具体实施方式
本公开的一形态的三维数据编码方法使用第1编码方式和与所述第1编码方式不同的第2编码方式,其中,使用第1表,将第1量化参数变换为第1尺度值,或者将所述第1尺度值变换为所述第1量化参数,所述第1表是表示所述第1量化参数的多个值与第1尺度值的多个值的对应关系的表,且在所述第1编码方式和所述第2编码方式中共用,通过包含第1量化处理的编码来生成编码属性信息,所述第1量化处理将基于点群数据所包含的多个三维点的多个属性信息的多个第1系数值分别除以所述第1尺度值,生成包含所述编码属性信息和所述第1量化参数的比特流。
由此,该三维数据编码方法能够在第1编码方式和第2编码方式中将第1表共同化。由此,该三维数据编码方法能够削减使用的存储器容量。
例如,也可以是,在包含所述第1量化处理的编码中,通过对所述多个属性信息分别进行向左方向的比特移位来生成多个移位后属性信息,通过对所述多个移位后属性信息进行使用了所述多个三维点的多个位置信息的变换处理来生成所述多个第1系数值,所述第1尺度值是对量化中使用的第2尺度值乘以与向所述左方向的比特移位对应的系数而得到的值,通过将所述多个第1系数值分别除以所述第1尺度值,进行所述量化和与向所述左方向的比特移位相同的比特数的向右方向的比特移位。
由此,该三维数据编码方法能够提高精度。
例如,也可以是,所述第1编码方式中使用的向所述左方向的比特移位以及向所述右方向的比特移位的比特数即第1比特数、与所述第2编码方式中使用的向所述左方向的比特移位以及向所述右方向的比特移位的比特数即第2比特数不同,在从所述第1尺度值向所述第1量化参数的变换、或者从所述第1量化参数向所述第1尺度值的变换中,在使用所述第1编码方式的情况下,(i)通过对所述第1尺度值应用所述第1表来决定所述第1量化参数,或者,(ii)通过对所述第1量化参数应用所述第1表来决定所述第1尺度值,在使用所述第2编码方式的情况下,(i)对所述第1尺度值进行所述第1比特数与所述第2比特数的差分的比特数的比特移位,通过对比特移位后的第1尺度值应用所述第1表来决定所述第1量化参数,(ii)通过对所述第1量化参数应用所述第1表来决定第3尺度值,通过对所述第3尺度值进行所述第1比特数与所述第2比特数的所述差分的比特数的比特移位来计算所述第1尺度值。
由此,该三维数据编码方法即使在第1编码方式和第2编码方式中比特移位的比特数不同的情况下,也能够将表共同化。由此,该三维数据编码方法能够削减使用的存储器容量。
例如,也可以是,所述三维数据编码方法进一步使用第2表,将第2量化参数变换为第4尺度值,或者将所述第4尺度值变换为所述第2量化参数,所述第2表是表示所述第2量化参数的多个值与所述第4尺度值的多个值的对应关系的表,且在所述第1编码方式和所述第2编码方式中共用,通过包含第2量化处理的编码来生成编码位置信息,所述第2量化处理将基于所述多个三维点的多个位置信息的多个第2系数值分别除以所述第4尺度值,所述比特流还包含编码位置信息和所述第2量化参数。
由此,该三维数据编码方法能够在第1编码方式和第2编码方式中将第2表共同化。由此,该三维数据编码方法能够削减使用的存储器容量。
本公开的一形态的三维数据解码方法是使用第1解码方式和与所述第1解码方式不同的第2解码方式,其中,从比特流取得点群数据所包含的多个三维点的多个属性信息被编码后的编码属性信息和第1量化参数,使用第1表,将第1量化参数变换为第1尺度值,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1解码方式和所述第2解码方式中共用,通过包含第1逆量化处理的解码,对所述多个属性信息进行解码,所述第1逆量化处理对基于所述编码属性信息的多个第1量化系数分别乘以所述第1尺度值。
由此,该三维数据解码方法能够在第1解码方式和第2解码方式中将第1表共同化。由此,该三维数据解码方法能够削减使用的存储器容量。
例如,也可以是,在包含所述第1逆量化处理的解码中,通过所述第1逆量化处理根据所述多个第1量化系数生成多个第1系数值,通过对所述多个第1系数值进行使用了所述多个三维点的多个位置信息的逆变换处理来生成多个移位后属性信息,通过对所述多个移位后属性信息分别进行向右方向的比特移位来生成所述多个属性信息,所述第1尺度值是对用于逆量化的第2尺度值乘以与向所述右方向的比特移位对应的系数而得到的值,通过对所述多个第1量化系数分别乘以所述第1尺度值,进行与向所述右方向的比特移位相同的比特数的向左方向的比特移位和所述逆量化。
由此,该三维数据解码方法能够提高精度。
例如,也可以是,所述第1解码方式中使用的向所述右方向的比特移位以及向所述左方向的比特移位的比特数即第1比特数、与所述第2解码方式中使用的向所述右方向的比特移位以及向所述左方向的比特移位的比特数即第2比特数不同,在从所述第1量化参数向所述第1尺度值的变换中,在使用所述第1解码方式的情况下,通过对所述第1量化参数应用所述第1表来决定所述第1尺度值,在使用所述第2解码方式的情况下,通过对所述第1量化参数应用所述第1表来决定第3尺度值,通过对所述第3尺度值进行所述第1比特数与所述第2比特数的差分的比特数的比特移位来计算所述第1尺度值。
由此,该三维数据解码方法即使在第1解码方式和第2解码方式中比特移位的比特数不同的情况下也能够将表共同化。由此,该三维数据解码方法能够削减使用的存储器容量。
例如,也可以是,所述三维数据解码方法进一步从所述比特流取得所述多个三维点的多个位置信息被编码后的编码位置信息和第2量化参数,使用第2表,将所述第2量化参数变换为第4尺度值,所述第2表是表示所述第2量化参数的多个值与所述第4尺度值的多个值的对应关系的表,且在所述第1解码方式和所述第2解码方式中共用,通过包含第2逆量化处理的解码,对所述多个位置信息进行解码,所述第2逆量化处理对基于所述编码位置信息的多个第2量化系数分别乘以所述第4尺度值。
由此,该三维数据解码方法能够在第1解码方式和第2解码方式中将第2表共同化。由此,该三维数据解码方法能够削减使用的存储器容量。
例如,也可以是,在所述第1量化参数小于4的情况下,将所述第1量化参数视为4。
由此,该三维数据解码方法能够正确地进行解码。
此外,本公开的一形态的三维数据编码装置是使用第1编码方式和与所述第1编码方式不同的第2编码方式的三维数据编码装置,其中,具备处理器和存储器,所述处理器使用所述存储器,使用第1表,将第1量化参数变换为第1尺度值,或者将所述第1尺度值变换为所述第1量化参数,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1编码方式和所述第2编码方式中共用,通过包含第1量化处理的编码来生成编码属性信息,所述第1量化处理将基于点群数据所包含的多个三维点的多个属性信息的多个第1系数值分别除以所述第1尺度值,生成包含所述编码属性信息和所述第1量化参数的比特流。
由此,该三维数据编码装置能够在第1编码方式和第2编码方式中将第1表共同化。由此,该三维数据编码装置能够削减使用的存储器容量。
此外,本公开的一形态的三维数据解码装置是使用第1解码方式和与所述第1解码方式不同的第2解码方式的三维数据解码装置,其中,具备处理器和存储器,所述处理器使用所述存储器,从比特流取得点群数据所包含的多个三维点的多个属性信息被编码后的编码属性信息和第1量化参数,使用第1表,将第1量化参数变换为第1尺度值,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1解码方式和所述第2解码方式中共用,通过包含第1逆量化处理的解码,对所述多个属性信息进行解码,所述第1逆量化处理对基于所述编码属性信息的多个第1量化系数分别乘以所述第1尺度值。
由此,该三维数据解码装置能够在第1解码方式和第2解码方式中将第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附加到比特流。
图45在模式上示出了本实施方式所涉及的帧间预测处理。帧间预测部1311针对某个时刻T_Cur的空间(SPC),使用不同时刻T_LX的已编码空间来进行编码(帧间预测)。在这种情况下,帧间预测部1311针对不同时刻T_LX的已编码空间适用旋转以及平移处理,来进行编码处理。
并且,三维数据编码装置1300将与适用了不同时刻T_LX的空间的旋转以及平移处理有关的RT信息附加到比特流。不同时刻T_LX例如是在所述某个时刻T_Cur之前的时刻T_L0。此时,三维数据编码装置1300也可以将与适用了时刻T_L0的空间的旋转以及平移处理有关的RT信息RT_L0附加到比特流。
或者,不同时刻T_LX例如是在所述某个时刻T_Cur之后的时刻T_L1。此时,三维数据编码装置1300可以将与适用了时刻T_L1的空间的旋转以及平移处理有关的RT信息RT_L1附加到比特流。
或者,帧间预测部1311参照不同时刻T_L0以及时刻T_L1这双方的空间来进行编码(双预测)。在这种情况下,三维数据编码装置1300可以将与分别适用了空间的旋转以及平移有关的RT信息RT_L0以及RT_L1这双方附加到比特流。
另外,以上虽然将T_L0设为T_Cur之前的时刻、将T_L1设为T_Cur之后的时刻,但是并非受此所限。例如,T_L0与T_L1可以均为T_Cur之前的时刻。或者,T_L0与T_L1可以均为T_Cur之后的时刻。
并且也可以是,三维数据编码装置1300在参照多个不同时刻的空间来进行编码的情况下,将与适用了各个空间的旋转以及平移有关的RT信息附加到比特流。例如,三维数据编码装置1300将参照的多个已编码空间,通过两个参照列表(L0列表以及L1列表)来管理。在将L0列表内的第1参照空间设为L0R0,将L0列表内的第2参照空间设为L0R1,将L1列表内的第1参照空间设为L1R0,将L1列表内的第2参照空间设为L1R1的情况下,三维数据编码装置1300将L0R0的RT信息RT_L0R0、L0R1的RT信息RT_L0R1、L1R0的RT信息RT_L1R0、L1R1的RT信息RT_L1R1附加到比特流。例如,三维数据编码装置1300将这些RT信息附加到比特流的头部等。
并且也可以是,三维数据编码装置1300在参照多个不同时刻的参照空间来进行编码的情况下,判断是否按照每个参照空间适用旋转以及平移。此时,三维数据编码装置1300可以将示出是否按照每个参照空间毎适用旋转以及平移的信息(RT适用标志等)附加到比特流的头部信息等。例如,三维数据编码装置1300根据编码对象空间,按照将要参照的每个参照空间,利用ICP(Interactive Closest Point)算法,算出RT信息以及ICP错误值。三维数据编码装置1300在ICP错误值为预先规定的一定值以下的情况下,判断为不需要进行旋转以及平移,将RT适用标志设定为OFF(无效)。另外,三维数据编码装置1300在ICP错误值比上述的一定值大的情况下,将RT适用标志设定为ON(有效),将RT信息附加到比特流。
图46示出了将RT信息以及RT适用标志附加到头部的句法例。另外,分配到各句法的比特数可以根据该句法能够取的范围来决定。例如,在参照列表L0内包含的参照空间数为8的情况下,可以在MaxRefSpc_l0中分配3bit。可以按照各句法能取的值来改变分配的比特数,也可以不受可取的值的影响,而使分配的比特数固定。在使分配的比特数固定的情况下,三维数据编码装置1300可以将该固定比特数附加到其他的头部信息。
在此,图46所示的MaxRefSpc_l0示出参照列表L0内包含的参照空间数。RT_flag_l0[i]是参照列表L0内的参照空间i的RT适用标志。在RT_flag_l0[i]为1的情况下,对参照空间i适用旋转以及平移。在RT_flag_l0[i]为0的情况下,对参照空间i不适用旋转以及平移。
R_l0[i]以及T_l0[i]是参照列表L0内的参照空间i的RT信息。R_l0[i]是参照列表L0内的参照空间i的旋转信息。旋转信息示出被适用的旋转处理的内容,例如是旋转矩阵或四元数等。T_l0[i]是参照列表L0内的参照空间i的平移信息。平移信息示出被适用的平移处理的内容,例如是平移向量等。
MaxRefSpc_l1示出参照列表L1内包含的参照空间数。RT_flag_l1[i]是参照列表L1内的参照空间i的RT适用标志。在RT_flag_l1[i]为1的情况下,对参照空间i适用旋转以及平移。在RT_flag_l1[i]为0的情况下,对参照空间i不适用旋转以及平移。
R_l1[i]以及T_l1[i]是参照列表L1内的参照空间i的RT信息。R_l1[i]是参照列表L1内的参照空间i的旋转信息。旋转信息示出被适用的旋转处理的内容,例如是旋转矩阵或四元数等。T_l1[i]是参照列表L1内的参照空间i的平移信息。平移信息示出被适用的平移处理的内容,例如是平移向量等。
帧间预测部1311利用被存放在参照空间存储器1310的已编码的参照空间的信息,生成编码对象体积的预测体积。如以上所述,帧间预测部1311在生成编码对象体积的预测体积之前,为了使编码对象空间与参照空间的全体的位置关系接近,而在编码对象空间和参照空间利用ICP(Interactive Closest Point:迭代最近点)算法来求出RT信息。于是,帧间预测部1311利用求出的RT信息,对参照空间适用旋转以及平移处理,从而得到参照空间B。在此之后,帧间预测部1311利用参照空间B内的信息,生成编码对象空间内的编码对象体积的预测体积。在此,三维数据编码装置1300将为了得到参照空间B而使用的RT信息附加到编码对象空间的头部信息等。
这样,帧间预测部1311通过对参照空间适用旋转以及平移处理,从而在使编码对象空间与参照空间的整体上的位置关系接近后,利用参照空间的信息来生成预测体积,这样,能够提高预测体积的精确度。并且,由于能够抑制预测残差,因此能够减少编码量。另外,在此虽然示出了利用编码对象空间和参照空间来进行ICP的例子,但是并非受此所限。例如,帧间预测部1311为了减少处理量,也可以利用抽取了体素或点云数的编码对象空间、以及抽取了体素或点云数的参照空间的至少一方来进行ICP,从而求出RT信息。
并且,帧间预测部1311在从ICP的结果得到的ICP错误值比预先规定的第1阈值小的情况下,即例如编码对象空间与参照空间的位置关系接近的情况下,可以判断为不需要旋转以及平移处理,而不执行旋转以及平移。在这种情况下,三维数据编码装置1300可以不将RT信息附加到比特流,从而能够抑制额外开销。
并且,帧间预测部1311在ICP错误值比预先规定的第2阈值大的情况下,判断为在空间上的形状变化大,可以对编码对象空间的所有的体积适用帧内预测。以下,将适用帧内预测的空间称为帧内空间。并且,第2阈值是比上述的第1阈值大的值。并且,并非受限于ICP,只要从两个体素集合、或两个点云集合来求RT信息的方法,可以适用任意的方法。
并且,在三维数据中含有形状或颜色等属性信息的情况下,作为编码对象空间内的编码对象体积的预测体积,帧间预测部1311例如搜索在参照空间内与编码对象体积的形状或颜色属性信息最近的体积。并且,该参照空间例如是进行了上述的旋转以及平移处理后的参照空间。帧间预测部1311根据通过搜索而得到的体积(参照体积),来生成预测体积。图47是用于说明预测体积的生成工作的图。帧间预测部1311在针对图47所示的编码对象体积(体积idx=0),利用帧间预测来进行编码的情况下,一边依次扫描参照空间内的参照体积,一边搜索编码对象体积与参照体积的差分即预测残差为最小的体积。帧间预测部1311将预测残差最小的体积作为预测体积来选择。编码对象体积与预测体积的预测残差,由变换部1303以后的处理来编码。在此,预测残差是指,编码对象体积的属性信息与预测体积的属性信息的差分。并且,三维数据编码装置1300将作为预测体积而参照的参照空间内的参照体积的体积idx附加到比特流的头部等。
在图47所示的例子中,参照空间L0R0的体积idx=4的参照体积,作为编码对象体积的预测体积而被选择。于是,编码对象体积与参照体积的预测残差以及参照体积idx=4被编码,并被附加到比特流。
另外,在此虽然以生成属性信息的预测体积为例进行了说明,针对位置信息的预测体积也可以执行同样的处理。
预测控制部1312对采用帧内预测以及帧间预测的哪一个来编码编码对象体积进行控制。在此,将包括帧内预测以及帧间预测的模式称为预测模式。例如,预测控制部1312将通过帧内预测而预测了编码对象体积的情况下的预测残差、与通过帧间预测而预测了的情况下的预测残差,作为评价值来算出,选择评价值小的一方的预测模式。另外可以是,预测控制部1312针对帧内预测的预测残差以及帧间预测的预测残差,分别适用正交变换、量化、以及、熵编码,来算出实际的编码量,将算出的编码量作为评价值,来选择预测模式。并且,也可以将预测残差以外的额外开销信息(参照体积idx信息等)加到评价值中。并且,预测控制部1312在编码对象空间被预先决定为在帧内空间进行编码的情况下,也可以通常选择帧内预测。
熵编码部1313通过对来自量化部1304的输入即量化系数进行可变长编码,来生成编码信号(编码比特流)。具体而言,熵编码部1313例如对量化系数进行二值化,对得到的二值信号进行算术编码。
接着,对解码由三维数据编码装置1300生成的编码信号的三维数据解码装置进行说明。图48是本实施方式所涉及的三维数据解码装置1400的方框图。该三维数据解码装置1400具备:熵解码部1401、逆量化部1402、逆变换部1403、加法部1404、参照体积存储器1405、帧内预测部1406、参照空间存储器1407、帧间预测部1408、以及预测控制部1409。
熵解码部1401对编码信号(编码比特流)进行可变长解码。例如,熵解码部1401对编码信号进行算术解码,生成二值信号,根据生成的二值信号来生成量化系数。
逆量化部1402针对从熵解码部1401输入的量化系数,利用被附加到比特流等的量化参数来进行逆量化,从而生成逆量化系数。
逆变换部1403针对从逆量化部1402输入的逆量化系数进行逆变换,从而生成预测残差。例如,逆变换部1403根据被附加到比特流的信息,对逆量化系数进行逆正交变换,从而生成预测残差。
加法部1404对由逆变换部1403生成的预测残差、与通过帧内预测或帧间预测而生成的预测体积进行相加,来生成重构体积。该重构体积作为解码三维数据被输出,并且被存放到参照体积存储器1405或参照空间存储器1407。
帧内预测部1406利用参照体积存储器1405内的参照体积以及被附加到比特流的信息,通过帧内预测来生成预测体积。具体而言,帧内预测部1406获得预测模式信息以及被附加到比特流的相邻体积信息(例如体积idx),利用相邻体积信息所示的相邻体积,通过以预测模式信息示出的模式来生成预测体积。另外,关于这些处理的详细,除了采用被附加到比特流的信息之外,与上述的帧内预测部1309的处理相同。
帧间预测部1408利用参照空间存储器1407内的参照空间以及被附加到比特流的信息,通过帧间预测来生成预测体积。具体而言,帧间预测部1408利用被附加到比特流的每个参照空间的RT信息,针对参照空间适用旋转以及平移处理,利用适用后的参照空间来生成预测体积。另外,在每个参照空间的RT适用标志存在于比特流内的情况下,帧间预测部1408按照RT适用标志,对参照空间适用旋转以及平移处理。另外,关于上述的处理的详细,除了使用被附加到比特流的信息之外,与上述的帧间预测部1311的处理相同。
关于是以帧内预测来对解码对象体积进行解码还是以帧间预测来进行解码,将由预测控制部1409来控制。例如,预测控制部1409按照被附加到比特流的且示出将要使用的预测模式的信息,选择帧内预测或帧间预测。另外,预测控制部1409在解码对象空间以帧内空间来进行解码被预先决定的情况下,也可以通常选择帧内预测。
以下对本实施方式的变形例进行说明。在本实施方式中,虽然以空间单位来适用旋转以及平移为例进行了说明,不过也可以适用更细小的单位来适用旋转以及平移。例如,三维数据编码装置1300可以将空间分割为子空间,以子空间单位来适用旋转以及平移。在这种情况下,三维数据编码装置1300按照每个子空间来生成RT信息,将生成的RT信息附加到比特流的头部等。并且,三维数据编码装置1300可以采用作为编码单位的体积单位来适用旋转以及平移。在这种情况下,三维数据编码装置1300以编码体积单位来生成RT信息,将生成的RT信息附加到比特流的头部等。而且,可以对上述进行组合。即,三维数据编码装置1300可以在以大的单位适用旋转以及平移之后,再以细小的单位来适用旋转以及平移。例如可以是,三维数据编码装置1300以空间单位来适用旋转以及平移,针对得到的空间中所包含的多个体积的每一个,适用彼此不同的旋转以及平移。
并且,在本实施方式中虽然以对参照空间适用旋转以及平移为例进行了说明,但是并非受此所限。例如可以是,三维数据编码装置1300适用缩放处理,来使三维数据的大小发生变化。并且,三维数据编码装置1300也可以适用旋转、平移以及缩放中的任一个或两个。并且,如以上所述,在分多阶段以不同的单位来适用处理的情况下,各单位中所适用的处理种类可以不同。例如可以是,在空间单位中适用旋转以及平移,在体积单位中适用平移。
另外,关于这些变形例,能够同样适用于三维数据解码装置1400。
如以上所述,本实施方式所涉及的三维数据编码装置1300进行以下的处理。图48是三维数据编码装置1300进行的帧间预测处理的流程图。
首先,三维数据编码装置1300利用对象三维数据(例如编码对象空间)以及不同时刻的参照三维数据(例如参照空间)中包含的三维点的位置信息,来生成预测位置信息(例如预测体积)(S1301)。具体而言,三维数据编码装置1300通过针对参照三维数据中包含的三维点的位置信息适用旋转以及平移处理,从而生成预测位置信息。
另外,三维数据编码装置1300以第1单位(例如空间)进行旋转以及平移处理,以比第1单位更细小的第2单位(例如体积)进行预测位置信息的生成。例如可以是,三维数据编码装置1300从旋转以及平移处理后的参照空间中包含的多个体积中,搜索编码对象空间中包含的编码对象体积与位置信息的差为最小的体积,将得到的体积作为预测体积来使用。另外,三维数据编码装置1300也可以对旋转以及平移处理、和预测位置信息的生成以相同的单位来进行。
并且可以是,三维数据编码装置1300对参照三维数据中包含的三维点的位置信息,以第1单位(例如空间)来适用第1旋转以及平移处理,对通过第1旋转以及平移处理而得到的三维点的位置信息,以比第1单位细小的第2单位(例如体积)来适用第2旋转以及平移处理,据此生成预测位置信息。
在此,三维点的位置信息以及预测位置信息如图41所示,以八叉树结构来表现。例如,三维点的位置信息以及预测位置信息以使八叉树结构中的深度与宽度中的宽度优先的扫描顺序而被表示。或者,三维点的位置信息以及预测位置信息以使八叉树结构中的深度与宽度之中的深度优先的扫描顺序而被表示。
并且,如图46所示,三维数据编码装置1300对示出是否针对参照三维数据中包含的三维点的位置信息适用旋转以及平移处理的RT适用标志进行编码。即,三维数据编码装置1300生成包括RT适用标志的编码信号(编码比特流)。并且,三维数据编码装置1300对示出旋转以及平移处理的内容的RT信息进行编码。即,三维数据编码装置1300生成包括RT信息的编码信号(编码比特流)。另外可以是,三维数据编码装置1300在由RT适用标志示出适用旋转以及平移处理的情况下,对RT信息进行编码,在由RT适用标志示出不适用旋转以及平移处理的情况下,不对RT信息进行编码。
并且,三维数据例如包括三维点的位置信息、以及各三维点的属性信息(颜色信息等)。三维数据编码装置1300利用参照三维数据中包含的三维点的属性信息,生成预测属性信息(S1302)。
接着,三维数据编码装置1300利用预测位置信息,来编码对象三维数据中包含的三维点的位置信息。例如,三维数据编码装置1300如图38所示,算出对象三维数据中包含的三维点的位置信息与预测位置信息的差分即差分位置信息(S1303)。
并且,三维数据编码装置1300利用预测属性信息,编码对象三维数据中包含的三维点的属性信息。例如,三维数据编码装置1300算出对象三维数据中包含的三维点的属性信息与预测属性信息的差分即差分属性信息(S1304)。接着,三维数据编码装置1300针对算出的差分属性信息进行变换以及量化(S1305)。
最后,三维数据编码装置1300对差分位置信息与量化后的差分属性信息进行编码(例如熵编码)(S1306)。即,三维数据编码装置1300生成包括差分位置信息和差分属性信息的编码信号(编码比特流)。
另外,在三维数据中不包括属性信息的情况下,三维数据编码装置1300也可以不进行步骤S1302、S1304以及S1305。并且,三维数据编码装置1300也可以仅进行三维点的位置信息的编码与三维点的属性信息的编码之中的一方。
并且,图49所示的处理的顺序仅为一个例子,并非受此限。例如,由于针对位置信息的处理(S1301、S1303)、与针对属性信息的处理(S1302、S1304、S1305)彼此是独立的,因此可以通过任意的顺序来执行,也可以是其中的一部分进行并行处理。
如以上所述,在本实施方式中,三维数据编码装置1300利用对象三维数据与不同时刻的参照三维数据中包含的三维点的位置信息,来生成预测位置信息,对对象三维数据中包含的三维点的位置信息与预测位置信息的差分即差分位置信息进行编码。据此,由于能够减少编码信号的数据量,因此能够提高编码效率。
并且,在本实施方式中,三维数据编码装置1300利用参照三维数据中包含的三维点的属性信息来生成预测属性信息,对对象三维数据中包含的三维点的属性信息与预测属性信息的差分即差分属性信息进行编码。据此,由于能够减少编码信号的数据量,因此能够提高编码效率。
例如,三维数据编码装置1300具备处理器和存储器,处理器利用存储器来进行上述的处理。
图48是三维数据解码装置1400进行的帧间预测处理的流程图。
首先,三维数据解码装置1400根据编码信号(编码比特流),对差分位置信息与差分属性信息进行解码(例如熵解码)(S1401)。
并且,三维数据解码装置1400根据编码信号,对示出是否针对参照三维数据中包含的三维点的位置信息适用旋转以及平移处理的RT适用标志进行解码。并且,三维数据解码装置1400对示出旋转以及平移处理的内容的RT信息进行解码。另外,三维数据解码装置1400在由RT适用标志示出适用旋转以及平移处理的情况下,对RT信息进行解码,在由RT适用标志示出不适用旋转以及平移处理的情况下,对RT信息不进行解码。
接着,三维数据解码装置1400针对被解码的差分属性信息进行逆量化以及逆变换(S1402)。
接着,三维数据解码装置1400利用对象三维数据(例如解码对象空间)和不同时刻的参照三维数据(例如参照空间)中包含的三维点的位置信息,生成预测位置信息(例如预测体积)(S1403)。具体而言,三维数据解码装置1400通过针对参照三维数据中包含的三维点的位置信息适用旋转以及平移处理,来生成预测位置信息。
更具体而言,三维数据解码装置1400在由RT适用标志示出适用旋转以及平移处理的情况下,针对RT信息所示的参照三维数据中包含的三维点的位置信息适用旋转以及平移处理。并且,在由RT适用标志示出不适用旋转以及平移处理的情况下,三维数据解码装置1400针对参照三维数据中包含的三维点的位置信息不适用旋转以及平移处理。
另外,三维数据解码装置1400可以以第1单位(例如空间)来进行旋转以及平移处理,并且可以以比第1单位细小的第2单位(例如体积)来进行预测位置信息的生成。另外,三维数据解码装置1400也可以针对旋转以及平移处理、以及预测位置信息的生成,以相同的单位来执行。
并且可以是,三维数据解码装置1400针对参照三维数据中包含的三维点的位置信息,以第1单位(例如空间)来适用第1旋转以及平移处理,针对通过第1旋转以及平移处理而得到的三维点的位置信息,以比第1单位细小的第2单位(例如体积)来适用第2旋转以及平移处理,据此,生成预测位置信息。
在此,三维点的位置信息以及预测位置信息例如图41所示,以八叉树结构来表现。例如,三维点的位置信息以及预测位置信息以使八叉树结构中的深度与宽度之中的宽度优先的扫描顺序而被表示。或者,三维点的位置信息以及预测位置信息以使八叉树结构中的深度与宽度之中的深度优先的扫描顺序而被表示。
三维数据解码装置1400利用参照三维数据中包含的三维点的属性信息,来生成预测属性信息(S1404)。
接着,三维数据解码装置1400通过利用预测位置信息,对编码信号中包含的编码位置信息进行解码,从而使对象三维数据中包含的三维点的位置信息复原。在此,编码位置信息例如是差分位置信息,三维数据解码装置1400通过对差分位置信息与预测位置信息相加,来使对象三维数据中包含的三维点的位置信息复原(S1405)。
并且,三维数据解码装置1400通过利用预测属性信息,对编码信号中包含的编码属性信息进行解码,从而使对象三维数据中包含的三维点的属性信息复原。在此,编码属性信息例如是差分属性信息,三维数据解码装置1400通过对差分属性信息与预测属性信息相加,从而使对象三维数据中包含的三维点的属性信息复原(S1406)。
另外可以是,在三维数据中不包含属性信息的情况下,三维数据解码装置1400也可以不执行步骤S1402、S1404以及S1406。并且,三维数据解码装置1400也可以仅进行三维点的位置信息的解码、以及三维点的属性信息的解码中的一方。
并且,图50所示的处理的顺序为一个例子,并非受此所限。例如,由于针对位置信息的处理(S1403、S1405)、与针对属性信息的处理(S1402、S1404、S1406)彼此是独立的,因此能够以任意的顺序进行,还可以使其中的一部分进行并行处理。
(实施方式8)
三维点群的信息包含位置信息(geometry)和属性信息(attribute)。位置信息包含以某个点为基准的坐标(x坐标、y坐标、z坐标)。在对位置信息进行编码的情况下,代替直接对各三维点的坐标进行编码,而使用通过用八叉树表现来表现各三维点的位置并对八叉树的信息进行编码从而削减编码量的方法。
另一方面,属性信息包含表示各三维点的颜色信息(RGB、YUV等)、反射率以及法线向量等的信息。例如,三维数据编码装置能够使用与位置信息不同的编码方法对属性信息进行编码。
在本实施方式中,对属性信息的编码方法进行说明。另外,在本实施方式中,使用整数值来作为属性信息的值进行说明。例如在颜色信息RGB或YUV的各颜色成分为8bit精度的情况下,各颜色成分取0~255的整数值。在反射率的值为10bit精度的情况下,反射率的值取0~1023的整数值。此外,在属性信息的比特精度为小数精度的情况下,三维数据编码装置也可以对该值乘以缩放值之后舍入为整数值,以使属性信息的值成为整数值。另外,三维数据编码装置也可以将该缩放值附加于比特流的头部等。
作为三维点的属性信息的编码方法,考虑计算三维点的属性信息的预测值,并对原来的属性信息的值与预测值的差分(预测残差)进行编码。例如,在三维点p的属性信息的值为Ap、预测值为Pp的情况下,三维数据编码装置对其差分绝对值Diffp=|Ap-Pp|进行编码。在该情况下,如果能够高精度地生成预测值Pp,则差分绝对值Diffp的值变小。因此,例如通过使用值越小则产生比特数越小的编码表来对差分绝对值Diffp进行熵编码,能够削减编码量。
作为生成属性信息的预测值的方法,考虑使用位于编码对象的对象三维点的周围的其他三维点即参照三维点的属性信息。在此,参照三维点是指距对象三维点处于预先规定的距离范围内的三维点。例如,在存在对象三维点p=(x1,y1,z1)和三维点q=(x2,y2,z2)的情况下,三维数据编码装置计算(式A1)所示的三维点p与三维点q的欧氏距离d(p,q)。
【数式1】
Figure BDA0003261060930000621
三维数据编码装置在欧氏距离d(p,q)小于预定的阈值THd的情况下,判定为三维点q的位置接近对象三维点p的位置,判定为在对象三维点p的属性信息的预测值的生成中利用三维点q的属性信息的值。另外,距离计算方法也可以是其他方法,例如也可以使用马氏距离等。另外,三维数据编码装置也可以判定为不将距对象三维点预先规定的距离范围外的三维点用于预测处理。例如,在存在三维点r、且对象三维点p与三维点r的距离d(p,r)为阈值THd以上的情况下,三维数据编码装置也可以判定为不将三维点r用于预测。此外,三维数据编码装置也可以将表示阈值THd的信息附加于比特流的头部等。
图51是表示三维点的例子的图。在该例中,对象三维点p与三维点q的距离d(p、q)小于阈值THd。因此,三维数据编码装置将三维点q判定为对象三维点p的参照三维点,判定为在对象三维点p的属性信息Ap的预测值Pp的生成中利用三维点q的属性信息Aq的值。
另一方面,对象三维点p与三维点r的距离d(p,r)为阈值THd以上。因此,三维数据编码装置判定为三维点r不是对象三维点p的参照三维点,判定为在对象三维点p的属性信息Ap的预测值Pp的生成中不利用三维点r的属性信息Ar的值。
此外,在使用预测值对对象三维点的属性信息进行编码的情况下,三维数据编码装置将已经对属性信息编码及已解码的三维点作为参照三维点利用。同样地,在使用预测值对解码对象的对象三维点的属性信息进行解码的情况下,三维数据解码装置将已经对属性信息已解码的三维点作为参照三维点利用。由此,能够在编码时和解码时生成相同的预测值,因此能够在解码侧正确地对通过编码生成的三维点的比特流进行解码。
另外,在对三维点的属性信息进行编码的情况下,考虑使用三维点的位置信息将各三维点分类为多个阶层之后进行编码。在此,将分类后的各阶层称为LoD(Level ofDetail)。使用图52对LoD的生成方法进行说明。
首先,三维数据编码装置选择初始点a0,并分配给LoD0。接着,三维数据编码装置提取距点a0的距离大于LoD0的阈值Thres_LoD[0]的点a1并分配给LoD0。接着,三维数据编码装置提取距点a1的距离大于LoD0的阈值Thres_LoD[0]的点a2并分配给LoD0。这样,三维数据编码装置以LoD0内的各点之间的距离大于阈值Thres_LoD[0]的方式构成LoD0。
接着,三维数据编码装置选择还未分配LoD的点b0,并分配给LoD1。接着,三维数据编码装置提取距点b0的距离大于LoD1的阈值Thres_LoD[1]、且未分配LoD的点b1并分配给LoD1。接着,三维数据编码装置提取距点b1的距离大于LoD1的阈值Thres_LoD[1]、且未分配LoD的点b2并分配给LoD1。这样,三维数据编码装置以LoD1内的各点之间的距离大于阈值Thres_LoD[1]的方式构成LoD1。
接着,三维数据编码装置选择还未分配LoD的点c0,并分配给LoD2。接着,三维数据编码装置提取距点c0的距离大于LoD2的阈值Thres_LoD[2]、且未分配LoD的点c1并分配给LoD2。接着,三维数据编码装置提取距点c1的距离大于LoD2的阈值Thres_LoD[2]、且未分配LoD的点c2并分配给LoD2。这样,三维数据编码装置以LoD2内的各点之间的距离大于阈值Thres_LoD[2]的方式构成LoD2。例如,如图53所示,设定各LoD的阈值Thres_LoD[0]、Thres_LoD[1]以及Thres_LoD[2]。
另外,三维数据编码装置也可以将表示各LoD的阈值的信息附加于比特流的头部等。例如,在图53所示的例子的情况下,三维数据编码装置也可以将阈值Thres_LoD[0]、Thres_LoD[1]以及Thres_LoD[2]附加到头部。
另外,三维数据编码装置也可以将未分配LoD的所有三维点分配给LoD的最下层。在该情况下,三维数据编码装置能够通过不将LoD的最下层的阈值附加到头部来削减头部的编码量。例如,在图53所示的例子的情况下,三维数据编码装置将阈值Thres_LoD[0]和Thres_LoD[1]附加到头部,不将Thres_LoD[2]附加到头部。在该情况下,三维数据解码装置也可以将Thres_LoD[2]的值估计为0。另外,三维数据编码装置也可以将LoD的阶层数附加到头部。由此,三维数据解码装置能够使用LoD的阶层数来判定最下层的LoD。
另外,如图53所示,将LoD的各层的阈值的值设定为越靠上位层越大,从而越是上位层(越接近LoD0的层)则越是成为三维点间的距离远的疏点群(sparse),越是下位层则越是成为三维点间的距离近的密点群(dense)。另外,在图53所示的例子中,LoD0是最上位层。
另外,设定各LoD时的初始三维点的选择方法也可以依赖于位置信息编码时的编码顺序。例如,三维数据编码装置选择在位置信息编码时最初被编码的三维点作为LoD0的初始点a0,以初始点a0为基点,选择点a1、点a2来构成LoD0。而且,三维数据编码装置也可以选择在不属于LoD0的三维点中最早位置信息被编码的三维点作为LoD1的初始点b0。即,三维数据编码装置也可以选择在不属于LoDn的上层(LoD0~LoDn-1)的三维点中,最早位置信息被编码的三维点作为LoDn的初始点n0。由此,三维数据解码装置通过在解码时使用同样的初始点选择方法,能够构成与编码时相同的LoD,因此能够适当地对比特流进行解码。具体而言,三维数据解码装置选择在不属于LoDn的上层的三维点中,最早位置信息被解码的三维点作为LoDn的初始点n0。
以下,对使用LoD的信息生成三维点的属性信息的预测值的手法进行说明。例如,在从LoD0所包含的三维点开始依次进行编码的情况下,三维数据编码装置使用LoD0及LoD1所包含的编码且已解码(以下,也简称为“已编码”)的属性信息,生成LoD1所包含的对象三维点。这样,三维数据编码装置使用LoDn’(n’<=n)所包含的已编码的属性信息,生成LoDn所包含的三维点的属性信息的预测值。即,三维数据编码装置在LoDn所包含的三维点的属性信息的预测值的计算中,不使用LoDn的下层所包含的三维点的属性信息。
例如,三维数据编码装置通过计算编码对象的对象三维点的周边的已编码的三维点中的N个以下的三维点的属性值的平均值来生成三维点的属性信息的预测值。此外,三维数据编码装置可以将N的值附加到比特流的头部等。另外,三维数据编码装置也可以对每个三维点变更N的值,对每个三维点附加N的值。由此,能够对每个三维点选择适当的N,因此能够提高预测值的精度。因此,能够减小预测残差。另外,三维数据编码装置也可以将N的值附加到比特流的头部,在比特流内固定N的值。由此,不需要对每个三维点对N的值进行编码或解码,因此能够削减处理量。另外,三维数据编码装置也可以对每个LoD分别对N的值进行编码。由此,通过对每个LoD选择适当的N,能够提高编码效率。
或者,三维数据编码装置也可以通过周围的已编码的N个三维点的属性信息的加权平均值来计算三维点的属性信息的预测值。例如,三维数据编码装置使用对象三维点和周围的N个三维点各自的距离信息来计算权重。
三维数据编码装置在对每个LoD分别对N的值进行编码的情况下,例如越是LoD的上位层则将N的值设定得越大,越是下位层则将N的值设定得越小。在LoD的上位层中,属于该层的三维点间的距离远,因此有可能通过将N的值设定得大并选择多个周围的三维点来进行平均化,从而能够提高预测精度。另外,由于在LoD的下位层中,属于该层的三维点间的距离近,因此有可能在将N的值设定得小来抑制平均化的处理量的同时进行高效的预测。
图54是表示预测值中使用的属性信息的例子的图。如上所述,使用LoDN’(N’<=N)所包含的已编码的周围点P’来生成LoDn所包含的点P的预测值。在此,周围点P’基于与点P的距离来选择。例如,使用点a0、a1、a2、b0、b1的属性信息来生成图54所示的点b2的属性信息的预测值。
根据上述N的值,所选择的周围点发生变化。例如在N=5的情况下,作为点b2的周围点,选择a0、a1、a2、b0、b1。在N=4的情况下,基于距离信息选择点a0、a1、a2、b1。
通过依赖于距离的加权平均来计算预测值。例如,在图54所示的例子中,点a2的预测值a2p如(式A2)以及(式A3)所示,通过点a0以及点a1的属性信息的加权平均来计算。另外,Ai是点ai的属性信息的值。
【数式2】
Figure BDA0003261060930000651
Figure BDA0003261060930000652
另外,点b2的预测值b2p如(式A4)~(式A6)所示,通过点a0、a1、a2、b0、b1的属性信息的加权平均来计算。另外,Bi是点bi的属性信息的值。
【数式3】
Figure BDA0003261060930000653
Figure BDA0003261060930000654
Figure BDA0003261060930000655
另外,三维数据编码装置也可以计算三维点的属性信息的值与从周围点生成的预测值的差分值(预测残差),对计算出的预测残差进行量化。例如,三维数据编码装置通过将预测残差除以量化尺度(也称为量化步长)来进行量化。在这种情况下,量化尺度越小,由于量化而会产生的误差(量化误差)越小。相反,量化尺度越大,量化误差越大。
此外,三维数据编码装置也可以对每个LoD改变所使用的量化尺度。例如,三维数据编码装置越是上位层,越减小量化尺度,越是下位层,越增大量化尺度。属于上位层的三维点的属性信息的值有可能作为属于下位层的三维点的属性信息的预测值来使用,因此能够减小上位层的量化尺度而抑制在上位层会产生的量化误差,通过提高预测值的精度,能够提高编码效率。此外,三维数据编码装置也可以将对每个LoD使用的量化尺度附加到头部等。由此,三维数据解码装置能够正确地对量化尺度进行解码,因此能够适当地对比特流进行解码。
此外,三维数据编码装置也可以将作为量化后的预测残差的带符号整数值(附符号量化值)变换为无符号整数值(无符号量化值)。由此,在对预测残差进行熵编码的情况下,不需要考虑负的整数的产生。此外,三维数据编码装置不一定需要将带符号整数值变换为无符号整数值,例如也可以对符号比特另外进行熵编码。
通过从原始值减去预测值来计算预测残差。例如,如(式A7)所示,点a2的预测残差a2r通过从点a2的属性信息的值A2减去点a2的预测值a2p来计算。如(式A8)所示,点b2的预测残差b2r通过从点b2的属性信息的值B2减去点b2的预测值b2p来计算。
a2r=A2-a2p…(式A7)
b2r=B2-b2p…(式A8)
另外,预测残差通过除以QS(量化步长(Quantization Step))而被量化。例如,点a2的量化值a2q通过(式A9)来计算。点b2的量化值b2q通过(式A10)来计算。在此,QS_LoD0是LoD0用的QS,QS_LoD1是LoD1用的QS。即,可以根据LoD变更QS。
a2q=a2r/QS_LoD0…(式A9)
b2q=b2r/QS_LoD1…(式A10)
此外,如以下所述,三维数据编码装置将作为上述量化值的带符号整数值变换为无符号整数值。在带符号整数值a2q小于0的情况下,三维数据编码装置将无符号整数值a2u设定为-1-(2×a2q)。在带符号整数值a2q为0以上的情况下,三维数据编码装置将无符号整数值a2u设定为2×a2q。
同样地,在带符号整数值b2q小于0的情况下,三维数据编码装置将无符号整数值b2u设定为-1-(2×b2q)。在带符号整数值b2q为0以上的情况下,三维数据编码装置将无符号整数值b2u设定为2×b2q。
此外,三维数据编码装置也可以通过熵编码对量化后的预测残差(无符号整数值)进行编码。例如,也可以在对无符号整数值进行二值化之后,应用二值的算术编码。
此外,在该情况下,三维数据编码装置也可以根据预测残差的值来切换二值化方法。例如,在预测残差pu小于阈值R_TH的情况下,三维数据编码装置为了表现阈值R_TH以所需的固定比特数对预测残差pu进行二值化。另外,在预测残差pu为阈值R_TH以上的情况下,三维数据编码装置使用指数哥伦布(Exponential-Golomb)等对阈值R_TH的二值化数据和(pu-R_TH)的值进行二值化。
例如,在阈值R_TH为63、预测残差pu小于63的情况下,三维数据编码装置将预测残差pu以6bit进行二值化。另外,在预测残差pu为63以上的情况下,三维数据编码装置使用指数哥伦布对阈值R_TH的二值数据(111111)和(pu-63)进行二值化,由此进行算术编码。
在更具体的例子中,三维数据编码装置在预测残差pu为32的情况下,生成6bit的二值数据(100000),对该比特串进行算术编码。另外,在预测残差pu为66的情况下,三维数据编码装置生成用指数哥伦布表示阈值R_TH的二值数据(111111)和值3(66-63)的比特串(00100),对该比特串(111111+00100)进行算术编码。
这样,三维数据编码装置根据预测残差的大小切换二值化的方法,从而能够在抑制预测残差变大的情况下的二值化比特数的急剧增加的同时进行编码。此外,三维数据编码装置也可以将阈值R_TH附加于比特流的头部等。
例如,在以高比特率进行编码的情况下,即,在量化尺度小的情况下,量化误差变小,预测精度变高,结果预测残差可能不会变大。因此,在该情况下,三维数据编码装置将阈值R_TH设定得大。由此,对阈值R_TH的二值化数据进行编码的可能性变低,编码效率提高。相反,在以低比特率进行编码的情况下,即,在量化尺度大的情况下,量化误差变大,预测精度变差,结果有可能预测残差变大。因此,在该情况下,三维数据编码装置将阈值R_TH设定得小。由此,能够防止二值化数据的急剧的比特长度增加。
另外,三维数据编码装置也可以对每个LoD切换阈值R_TH,并将每个LoD的阈值R_TH附加到头部等。即,三维数据编码装置也可以对每个LoD切换二值化的方法。例如,在上位层中,由于三维点间的距离远,预测精度变差,结果预测残差有可能变大。因此,三维数据编码装置通过对上位层将阈值R_TH设定得小,来防止二值化数据的急剧的比特长度增加。另外,在下位层中,由于三维点间的距离近,预测精度变高,结果有可能预测残差变小。因此,三维数据编码装置通过对阶层将阈值R_TH设定得大来提高编码效率。
图55是表示指数哥伦布码的一例的图,是表示二值化前的值(多值)与二值化后的比特(编码)的关系的图。另外,也可以使图55所示的0和1反转。
另外,三维数据编码装置对预测残差的二值化数据应用算术编码。由此,能够提高编码效率。此外,在应用算术编码时,在二值化数据中,在以n比特进行了二值化的部分即n比特编码(n-bit code)和使用指数哥伦布进行了二值化的部分即剩余编码(remainingcode)中,各比特的0和1的出现概率的倾向有可能不同。因此,三维数据编码装置也可以通过n比特编码和剩余编码来切换算术编码的应用方法。
例如,对于n比特编码,三维数据编码装置对每个比特使用不同的编码表(概率表)进行算术编码。此时,三维数据编码装置也可以改变对每个比特使用的编码表的数量。例如,三维数据编码装置使用1个编码表来对n比特编码的开头比特b0进行算术编码。另外,三维数据编码装置对下一个比特b1使用2个编码表。此外,三维数据编码装置根据b0的值(0或1)切换比特b1的算术编码中使用的编码表。同样地,三维数据编码装置还对下一个比特b2使用4个编码表。另外,三维数据编码装置根据b0以及b1的值(0~3),切换比特b2的算术编码中使用的编码表。
这样,三维数据编码装置在对n比特编码的各比特bn-1进行算术编码时,使用2n-1个编码表。另外,三维数据编码装置根据bn-1之前的比特的值(发生样式),切换使用的编码表。由此,三维数据编码装置能够对每个比特使用适当的编码表,因此能够提高编码效率。
另外,三维数据编码装置也可以削减在各比特中使用的编码表的数量。例如,在对各比特bn-1进行算术编码时,三维数据编码装置也可以根据bn-1之前的m比特(m<n-1)的值(发生样式)来切换2m个编码表。由此,能够抑制在各比特中使用的编码表的数量,并且提高编码效率。此外,三维数据编码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。另外,三维数据编码装置也可以将一部分比特的编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。
例如,n比特编码为b0b1b2…bn-1的情况下,b0用的编码表是1个(CTb0)。b1用的编码表是2个(CTb10、CTb11)。另外,根据b0的值(0~1)来切换使用的编码表。b2用的编码表是4个(CTb20、CTb21、CTb22、CTb23)。此外,根据b0以及b1的值(0~3)来切换使用的编码表。bn-1用的编码表是2n-1个(CTbn0,CTbn1,…,CTbn(2n-1-1))。另外,根据b0b1…bn-2的值(0~2n-1-1)来切换使用的编码表。
此外,三维数据编码装置也可以对n比特编码不进行二值化而应用设定0~2n-1的值的m-ary的算术编码(m=2n)。此外,在三维数据编码装置用m-ary对n比特编码进行算术编码的情况下,三维数据解码装置也可以通过m-ary的算术解码来复原n比特编码。
图56是用于说明例如剩余编码是指数哥伦布码的情况下的处理的图。如图56所示,使用指数哥伦布进行了二值化的部分即剩余编码包括prefix部和suffix部。例如,三维数据编码装置在prefix部和suffix部中切换编码表。即,三维数据编码装置使用prefix用的编码表来对prefix部所包含的各比特进行算术编码,使用suffix用的编码表来对suffix部所包含的各比特进行算术编码。
此外,三维数据编码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。或者,三维数据编码装置也可以将某一个编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。例如,三维数据编码装置也可以对prefix部更新发生概率,对suffix部将发生概率固定化。
此外,三维数据编码装置通过逆量化以及重构来对量化后的预测残差进行解码,将解码出的预测残差即解码值利用于编码对象的三维点以后的预测。具体而言,三维数据编码装置通过对量化后的预测残差(量化值)乘以量化尺度来计算逆量化值,将逆量化值和预测值相加而得到解码值(重构值)。
例如,点a2的逆量化值a2iq使用点a2的量化值a2q通过(式A11)来计算。点b2的逆量化值b2iq使用点b2的量化值b2q通过(式A12)来计算。在此,QS_LoD0是LoD0用的QS,QS_LoD1是LoD1用的QS。即,可以根据LoD变更QS。
a2iq=a2q×QS_LoD0…(式A11)
b2iq=b2q×QS_LoD1…(式A12)
例如,如(式A13)所示,点a2的解码值a2rec通过对点a2的逆量化值a2iq加上点a2的预测值a2p来计算。如(式A14)所示,点b2的解码值b2rec通过对点b2的逆量化值b2iq加上点b2的预测值b2p来计算。
a2rec=a2iq+a2p…(式A13)
b2rec=b2iq+b2p…(式A14)
以下,对本实施方式的比特流的句法例进行说明。图57是示出了有关本实施方式的属性头部(attribute_header)的句法例的图。属性头部是属性信息的头部信息。如图57所示,属性头部包括阶层数信息(NumLoD)、三维点数信息(NumOfPoint[i])、阶层阈值(Thres_Lod[i])、周围点数信息(NumNeighborPoint[i])、预测阈值(THd[i])、量化尺度(QS[i])、以及二值化阈值(R_TH[i])。
阶层数信息(NumLoD)表示所使用的LoD的阶层数。
三维点数信息(NumOfPoint[i])表示属于阶层i的三维点的数量。此外,三维数据编码装置也可以将表示三维点的总数的三维点总数信息(AllNumOfPoint)附加于其他的头部。在该情况下,三维数据编码装置也可以不将表示属于最下层的三维点的数量的NumOfPoint[NumLoD-1]附加到头部。在该情况下,三维数据解码装置能够通过(式A15)计算NumOfPoint[NumLoD-1]。由此,能够削减头部的编码量。
【数式4】
Figure BDA0003261060930000701
阶层阈值(Thres_Lod[i])是用于设定阶层i的阈值。三维数据编码装置以及三维数据解码装置以LoDi内的各点之间的距离大于阈值Thres_LoD[i]的方式构成LoDi。另外,三维数据编码装置也可以不将Thres_Lod[NumLoD-1](最下层)的值附加到头部。在该情况下,三维数据解码装置将Thres_Lod[NumLoD-1]的值估计为0。由此,能够削减头部的编码量。
周围点数信息(NumNeighborPoint[i])表示在属于阶层i的三维点的预测值的生成中使用的周围的点数的上限值。在周围的点数M小于NumNeighborPoint[i]的情况下(M<NumNeighborPoint[i]),三维数据编码装置也可以使用M个周围的点数来计算预测值。另外,在不需要在各LoD中分开NumNeighborPoint[i]的值的情况下,三维数据编码装置也可以将在所有的LoD中使用的1个周围点数信息(NumNeighborPoint)附加到头部。
预测阈值(THd[i])表示在阶层i中编码或解码对象的对象三维点的预测中使用的周围的三维点与对象三维点的距离的上限值。三维数据编码装置以及三维数据解码装置不将距对象三维点的距离比THd[i]远的三维点用于预测。另外,在不需要在各LoD中分开THd[i]的值的情况下,三维数据编码装置也可以将在所有的LoD中使用的1个预测阈值(THd)附加到头部。
量化尺度(QS[i])表示在阶层i的量化和逆量化中使用的量化尺度。
二值化阈值(R_TH[i])是用于切换属于阶层i的三维点的预测残差的二值化方法的阈值。例如,三维数据编码装置在预测残差小于阈值R_TH的情况下,以固定比特数对预测残差pu进行二值化,在预测残差为阈值R_TH以上的情况下,使用指数哥伦布对阈值R_TH的二值化数据和(pu-R_TH)的值进行二值化。另外,在不需要在各LoD中切换R_TH[i]的值的情况下,三维数据编码装置也可以将在所有的LoD中使用的1个二值化阈值(R_TH)附加到头部。
此外,R_TH[i]也可以是以nbit表示的最大值。例如,在6bit中,R_TH为63,在8bit中,R_TH为255。另外,三维数据编码装置也可以代替对以nbit表示的最大值作为二值化阈值进行编码,而对比特数进行编码。例如,三维数据编码装置可以在R_TH[i]=63的情况下将值6附加到头部,在R_TH[i]=255的情况下将值8附加到头部。另外,三维数据编码装置也可以定义表示R_TH[i]的比特数的最小值(最小比特数),将根据最小值的相对比特数附加到头部。例如,三维数据编码装置可以在R_TH[i]=63且最小比特数为6的情况下将值0附加到头部,在R_TH[i]=255且最小比特数为6的情况下将值2附加到头部。
另外,三维数据编码装置也可以对NumLoD、Thres_Lod[i]、NumNeighborPoint[i]、THd[i]、QS[i]以及R_TH[i]中的至少一个进行熵编码并附加到头部。例如,三维数据编码装置也可以对各值进行二值化而进行算术编码。另外,为了抑制处理量,三维数据编码装置也可以以固定长度对各值进行编码。
此外,三维数据编码装置可以不将NumLoD、Thres_Lod[i]、NumNeighborPoint[i]、THd[i]、QS[i]以及R_TH[i]中的至少一个附加到头部。例如,它们中的至少一个的值也可以由标准等的档次(profile)或级别(level)等规定。由此,能够削减头部的比特量。
图58是示出了有关本实施方式的属性数据(attribute_data)的句法例的图。该属性数据包括多个三维点的属性信息的编码数据。如图58所示,属性数据包括n比特编码(n-bit code)和剩余编码(remaining code)。
n比特编码(n-bit code)是属性信息的值的预测残差的编码数据或其一部分。n比特编码的比特长度依赖于R_TH[i]的值。例如在R_TH[i]所示的值为63的情况下,n比特编码为6bit,在R_TH[i]所示的值为255的情况下,n比特编码为8bit。
剩余编码(remaining code)是属性信息的值的预测残差的编码数据中的用指数哥伦布编码后的编码数据。在n比特编码与R_TH[i]相同的情况下,对该剩余编码进行编码或解码。另外,三维数据解码装置将n比特编码的值和剩余编码的值相加而对预测残差进行解码。此外,在n比特编码不是与R_TH[i]相同的值的情况下,剩余编码也可以不被编码或解码。
以下,说明三维数据编码装置中的处理的流程。图59是由三维数据编码装置进行的三维数据编码处理的流程图。
首先,三维数据编码装置对位置信息(geometry)进行编码(S3001)。例如,三维数据编码装置使用八叉树表现来进行编码。
三维数据编码装置在位置信息的编码后,在三维点的位置由于量化等而变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息(S3002)。例如,三维数据编码装置通过根据位置的变化量对属性信息的值进行插值来进行重新分配。例如,三维数据编码装置检测N个接近变化后的三维位置的变化前的三维点,对N个三维点的属性信息的值进行加权平均。例如,三维数据编码装置在加权平均中,基于从变化后的三维位置到各N个三维点的距离来决定权重。然后,三维数据编码装置将通过加权平均得到的值决定为变化后的三维点的属性信息的值。另外,在由于量化等而2个以上的三维点变化到同一三维位置的情况下,三维数据编码装置也可以分配变化前的2个以上的三维点的属性信息的平均值作为该变化后的三维点的属性信息的值。
接着,三维数据编码装置对重新分配后的属性信息(Attribute)进行编码(S3003)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置也可以生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果的顺序不限于此顺序,可以是任何顺序。
另外,三维数据编码装置也可以将比特流内的各属性信息的表示编码数据开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
图60是属性信息编码处理(S3003)的流程图。首先,三维数据编码装置设定LoD(S3011)。即,三维数据编码装置将各三维点分配给多个LoD中的任一个。
接着,三维数据编码装置开始LoD单位的循环(S3012)。即,三维数据编码装置对每个LoD反复进行步骤S3013~S3021的处理。
接着,三维数据编码装置开始三维点单位的循环(S3013)。即,三维数据编码装置对每个三维点反复进行步骤S3014~S3020的处理。
首先,三维数据编码装置搜索在处理对象的对象三维点的预测值的计算中使用的、存在于对象三维点的周围的三维点即多个周围点(S3014)。接着,三维数据编码装置计算多个周围点的属性信息的值的加权平均,并将得到的值设定为预测值P(S3015)。接着,三维数据编码装置计算对象三维点的属性信息与预测值的差分即预测残差(S3016)。接着,三维数据编码装置通过对预测残差进行量化来计算量化值(S3017)。接着,三维数据编码装置对量化值进行算术编码(S3018)。
此外,三维数据编码装置通过对量化值进行逆量化来计算逆量化值(S3019)。接着,三维数据编码装置通过对逆量化值加上预测值来生成解码值(S3020)。接着,三维数据编码装置结束三维点单位的循环(S3021)。另外,三维数据编码装置结束LoD单位的循环(S3022)。
以下,对由上述的三维数据编码装置生成的比特流进行解码的三维数据解码装置中的三维数据解码处理进行说明。
三维数据解码装置通过用与三维数据编码装置同样的方法对由三维数据编码装置生成的比特流内的属性信息的二值化数据进行算术解码,生成被解码的二值化数据。此外,在三维数据编码装置中,在用n比特进行了二值化的部分(n比特编码)和用指数哥伦布进行了二值化的部分(剩余编码)之间切换了算术编码的应用方法的情况下,三维数据解码装置在应用算术解码时,与其相应地进行解码。
例如,三维数据解码装置在n比特编码的算术解码方法中,对每个比特使用不同的编码表(解码表)进行算术解码。此时,三维数据解码装置也可以改变对每个比特使用的编码表的数量。例如,对n比特编码的开头比特b0使用1个编码表来进行算术解码。另外,三维数据解码装置对下一个比特b1使用2个编码表。此外,三维数据解码装置根据b0的值(0或1)切换比特b1的算术解码中使用的编码表。同样地,三维数据解码装置进一步对下一个比特b2使用4个编码表。另外,三维数据解码装置根据b0以及b1的值(0~3),切换比特b2的算术解码中使用的编码表。
这样,三维数据解码装置在对n比特编码的各比特bn-1进行算术解码时,使用2n-1个编码表。另外,三维数据解码装置根据bn-1之前的比特的值(发生样式),切换使用的编码表。由此,三维数据解码装置能够对每个比特使用适当的编码表来适当地对提高了编码效率的比特流进行解码。
另外,三维数据解码装置也可以削减在各比特中使用的编码表的数量。例如,三维数据解码装置也可以在对各比特bn-1进行算术解码时,根据bn-1之前的m比特(m<n-1)的值(发生样式)来切换2m个编码表。由此,三维数据解码装置能够在抑制在各比特中使用的编码表的数量的同时适当地对提高了编码效率的比特流进行解码。此外,三维数据解码装置也可以根据实际产生的二值化数据的值来更新各编码表中的0和1的发生概率。另外,三维数据解码装置也可以将一部分比特的编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。
例如,n比特编码为b0b1b2…bn-1的情况下,b0用的编码表是1个(CTb0)。b1用的编码表是2个(CTb10、CTb11)。此外,根据b0的值(0~1)来切换编码表。b2用的编码表是4个(CTb20、CTb21、CTb22、CTb23)。此外,根据b0和b1的值(0~3)来切换编码表。bn-1用的编码表是2n-1个(CTbn0,CTbn1,…,CTbn(2n-1-1))。另外,根据b0b1…bn-2的值(0~2n-1-1)来切换编码表。
例如,图61是用于说明剩余编码是指数哥伦布码的情况下的处理的图。如图61所示,三维数据编码装置使用指数哥伦布进行了二值化而编码的部分(剩余编码)包括prefix部和suffix部。例如,三维数据解码装置在prefix部和suffix部中切换编码表。即,三维数据解码装置使用prefix用的编码表来对prefix部所包含的各比特进行算术解码,使用suffix用的编码表来对suffix部所包含的各比特进行算术解码。
此外,三维数据解码装置也可以根据在解码时产生的二值化数据的值来更新各编码表中的0和1的发生概率。或者,三维数据解码装置也可以将某一个编码表中的0和1的发生概率固定化。由此,能够抑制发生概率的更新次数,因此能够削减处理量。例如,三维数据解码装置也可以对prefix部更新发生概率,对suffix部将发生概率固定化。
另外,三维数据解码装置将算术解码出的预测残差的二值化数据与在三维数据编码装置中使用的编码方法相匹配地进行多值化,由此对量化后的预测残差(无符号整数值)进行解码。三维数据解码装置首先计算通过对n比特编码的二值化数据进行算术解码而解码出的n比特编码的值。接着,三维数据解码装置将n比特编码的值与R_TH的值进行比较。
在n比特编码的值与R_TH的值一致的情况下,三维数据解码装置判定为接下来存在用指数哥伦布进行了编码的比特,对用指数哥伦布进行了编码的二值化数据即剩余编码进行算术解码。然后,三维数据解码装置根据解码出的剩余编码,使用表示剩余编码与该值之间的关系的反推表来计算剩余编码的值。图62是表示表示剩余编码与其值之间的关系的反推表的例子的图。接着,三维数据解码装置通过将所得到的剩余编码的值与R_TH相加而得到进行了多值化的量化后的预测残差。
另一方面,在n比特编码的值与R_TH的值不一致(值小于R_TH)的情况下,三维数据解码装置将n比特编码的值直接决定为进行了多值化的量化后的预测残差。由此,三维数据解码装置能够适当地对在三维数据编码装置中根据预测残差的值切换二值化方法而生成的比特流进行解码。
此外,在阈值R_TH附加到比特流的头部等的情况下,三维数据解码装置也可以从头部解码阈值R_TH的值,并使用解码出的阈值R_TH的值来切换解码方法。另外,三维数据解码装置在对每个LoD将阈值R_TH附加到头部等的情况下,使用解码出的阈值R_TH对每个LoD切换解码方法。
例如,在阈值R_TH为63、解码出的n比特编码的值为63的情况下,三维数据解码装置通过利用指数哥伦布对剩余编码进行解码,从而得到剩余编码的值。例如,在图62所示的例子中,剩余编码为00100,作为剩余编码的值而得到3。接着,三维数据解码装置通过将阈值R_TH的值63和剩余编码的值3相加,得到预测残差的值66。
另外,在解码出的n比特编码的值为32的情况下,三维数据解码装置将n比特编码的值32设定为预测残差的值。
另外,三维数据解码装置通过例如与三维数据编码装置中的处理相反的处理,将解码出的量化后的预测残差从无符号整数值变换为带符号整数值。由此,三维数据解码装置在对预测残差进行熵编码的情况下,能够适当地对不考虑负的整数的产生而生成的比特流进行解码。另外,三维数据解码装置不一定需要将无符号整数值变换为带符号整数值,例如在对将符号比特另外进行熵编码而生成的比特流进行解码的情况下,也可以对符号比特进行解码。
三维数据解码装置通过逆量化及重构对变换为带符号整数值的量化后的预测残差进行解码,由此生成解码值。另外,三维数据解码装置将所生成的解码值利用于解码对象的三维点以后的预测。具体而言,三维数据解码装置通过对量化后的预测残差乘以解码出的量化尺度来计算逆量化值,将逆量化值和预测值相加来得到解码值。
被解码的无符号整数值(无符号量化值)通过以下的处理变换为带符号整数值。在被解码的无符号整数值a2u的LSB(least significant bit:最低有效位)为1的情况下,三维数据解码装置将带符号整数值a2q设定为-((a2u+1)>>1)。在无符号整数值a2u的LSB不是1的情况下,三维数据解码装置将带符号整数值a2q设定为(a2u>>1)。
同样地,在被解码的无符号整数值b2u的LSB为1的情况下,三维数据解码装置将带符号整数值b2q设定为-((b2u+1)>>1)。在无符号整数值n2u的LSB不是1的情况下,三维数据解码装置将带符号整数值b2q设定为(b2u>>1)。
另外,由三维数据解码装置进行的逆量化及重构处理的详细情况与三维数据编码装置中的逆量化及重构处理相同。
以下,说明三维数据解码装置中的处理的流程。图63是由三维数据解码装置进行的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(S3031)。例如,三维数据解码装置使用八叉树表现进行解码。
接着,三维数据解码装置从比特流中解码属性信息(Attribute)(S3032)。例如,在对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加到比特流的属性信息的编码结果进行解码都可以。
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
图64是属性信息解码处理(S3032)的流程图。首先,三维数据解码装置设定LoD(S3041)。即,三维数据解码装置将具有被解码的位置信息的多个三维点分别分配给多个LoD中的任一个。例如,该分配方法是与在三维数据编码装置中使用的分配方法相同的方法。
接着,三维数据解码装置开始LoD单位的循环(S3042)。即,三维数据解码装置对每个LoD反复进行步骤S3043~S3049的处理。
接着,三维数据解码装置开始三维点单位的循环(S3043)。即,三维数据解码装置针对每个三维点反复进行步骤S3044~S3048的处理。
首先,三维数据解码装置搜索在处理对象的对象三维点的预测值的计算中使用的、存在于对象三维点的周围的三维点即多个周围点(S3044)。接着,三维数据解码装置计算多个周围点的属性信息的值的加权平均,将得到的值设定为预测值P(S3045)。另外,这些处理与三维数据编码装置中的处理相同。
接着,三维数据解码装置从比特流中对量化值进行算术解码(S3046)。另外,三维数据解码装置通过对解码出的量化值进行逆量化来计算逆量化值(S3047)。接着,三维数据解码装置通过对逆量化值加上预测值来生成解码值(S3048)。接着,三维数据解码装置结束三维点单位的循环(S3049)。另外,三维数据解码装置结束LoD单位的循环(S3050)。
接着,对本实施方式的三维数据编码装置以及三维数据解码装置的结构进行说明。图65是示出了有关本实施方式的三维数据编码装置3000的结构的框图。该三维数据编码装置3000具备位置信息编码部3001、属性信息重新分配部3002、以及属性信息编码部3003。
属性信息编码部3003对输入点群所包含的多个三维点的位置信息(geometry)进行编码。属性信息重新分配部3002使用位置信息的编码及解码结果,重新分配输入点群所包含的多个三维点的属性信息的值。属性信息编码部3003对重新分配的属性信息(attribute)进行编码。此外,三维数据编码装置3000生成包含被编码的位置信息和被编码的属性信息的比特流。
图66是示出了有关本实施方式的三维数据解码装置3010的结构的框图。该三维数据解码装置3010包括位置信息解码部3011和属性信息解码部3012。
位置信息解码部3011从比特流中解码多个三维点的位置信息(geometry)。属性信息解码部3012从比特流中解码多个三维点的属性信息(attribute)。另外,三维数据解码装置3010通过将解码出的位置信息与解码出的属性信息结合来生成输出点群。
如上所述,本实施方式的三维数据编码装置进行图67中所示的处理。三维数据编码装置对具有属性信息的三维点进行编码。首先,三维数据编码装置计算三维点的属性信息的预测值(S3061)。接着,三维数据编码装置计算三维点的属性信息与预测值的差分即预测残差(S3062)。接着,三维数据编码装置通过对预测残差进行二值化来生成二值数据(S3063)。接着,三维数据编码装置对二值数据进行算术编码(S3064)。
由此,三维数据编码装置通过计算属性信息的预测残差,进而对该预测残差进行二值化和算术编码,从而能够削减属性信息的编码数据的编码量。
例如,在算术编码(S3064)中,三维数据编码装置对二值数据的每个比特使用不同的编码表。由此,三维数据编码装置能够提高编码效率。
例如,在算术编码(S3064)中,越是二值数据的下位比特,使用的编码表的数量越多。
例如,在算术编码(S3064)中,三维数据编码装置根据二值数据所包含的对象比特的上位比特的值,选择在对象比特的算术编码中使用的编码表。由此,三维数据编码装置能够根据上位比特的值选择编码表,因此能够提高编码效率。
例如,在二值化(S3063)中,在预测残差小于阈值(R_TH)的情况下,三维数据编码装置通过以固定比特数对预测残差进行二值化来生成二值数据,在预测残差为阈值(R_TH)以上的情况下,生成包含表示阈值(R_TH)的固定比特数的第1编码(n比特编码)、和将从预测残差减去阈值(R_TH)而得到的值用指数哥伦布进行二值化而得到的第2编码(剩余编码)的二值数据。三维数据编码装置在算术编码(S3064)中,对第1编码和第2编码使用不同的算术编码方法。
由此,三维数据编码装置例如能够通过分别适合于第1编码和第2编码的算术编码方法对第1编码和第2编码进行算术编码,因此能够提高编码效率。
例如,三维数据编码装置对预测残差进行量化,在二值化(S3063)中,对被量化的预测残差进行二值化。阈值(R_TH)根据量化中的量化尺度而变更。由此,三维数据编码装置能够使用与量化尺度相应的适当的阈值,因此能够提高编码效率。
例如,第2编码包括prefix部和suffix部。三维数据编码装置在算术编码(S3064)中,在prefix部和suffix部中使用不同的编码表。由此,三维数据编码装置能够提高编码效率。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
另外,本实施方式的三维数据解码装置进行图68所示的处理。三维数据解码装置对具有属性信息的三维点进行解码。首先,三维数据解码装置计算三维点的属性信息的预测值(S3071)。接着,三维数据解码装置通过对比特流所包含的编码数据进行算术解码来生成二值数据(S3072)。接着,三维数据解码装置通过对二值数据进行多值化来生成预测残差(S3073)。接着,三维数据解码装置通过将预测值与预测残差相加,计算三维点的属性信息的解码值(S3074)。
由此,三维数据解码装置能够计算属性信息的预测残差,进而适当地对通过对该预测残差进行二值化和算术编码而生成的属性信息的比特流进行解码。
例如,在算术解码(S3072)中,三维数据解码装置对二值数据的每个比特使用不同的编码表。由此,三维数据解码装置能够适当地对提高了编码效率的比特流进行解码。
例如,在算术解码(S3072)中,越是二值数据的下位比特,使用的编码表的数量越多。
例如,在算术解码(S3072)中,三维数据解码装置根据二值数据所包含的对象比特的上位比特的值,选择在对象比特的算术解码中使用的编码表。由此,三维数据解码装置能够适当地对提高了编码效率的比特流进行解码。
例如,在多值化(S3073)中,三维数据解码装置通过对二值数据所包含的固定比特数的第1编码(n比特编码)进行多值化来生成第1值。三维数据解码装置在第1值小于阈值(R_TH)的情况下,将第1值决定为预测残差,在第1值为阈值(R_TH)以上的情况下,通过对二值数据所包含的指数哥伦布码即第2编码(剩余编码)进行多值化来生成第2值,并将第1值与第2值相加,由此生成预测残差。三维数据解码装置在算术解码(S3072)中,对第1编码和第2编码使用不同的算术解码方法。
由此,三维数据解码装置能够适当地对提高了编码效率的比特流进行解码。
例如,三维数据解码装置对预测残差进行逆量化,在加法运算(S3074)中,将预测值与被逆量化的预测残差相加。阈值(R_TH)根据逆量化中的量化尺度而变更。由此,三维数据解码装置能够适当地对提高了编码效率的比特流进行解码。
例如,第2编码包括prefix部和suffix部。三维数据解码装置在算术解码(S3072)中,对prefix部和suffix部使用不同的编码表。由此,三维数据解码装置能够适当地对提高了编码效率的比特流进行解码。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式9)
也可以通过与实施方式8不同的方法来生成预测值。以下,有时将编码对象的三维点称为第1三维点,将其周围的三维点称为第2三维点。
例如,在三维点的属性信息的预测值的生成中,也可以将编码对象的三维点的已编码且已解码的周围的三维点中的距离最近的三维点的属性值直接作为预测值来生成。另外,在预测值的生成中,也可以对每个三维点附加预测模式信息(PredMode),通过从多个预测值中选择1个预测值来生成预测值。即,例如,可以考虑在总数M的预测模式中,对预测模式0分配平均值,对预测模式1分配三维点A的属性值、…、对预测模式M-1分配三维点Z的属性值,将预测中使用的预测模式按每个三维点附加到比特流。这样,也可以是,表示将周围的三维点的属性信息的平均作为预测值来计算的第1预测模式的第1预测模式值小于表示将周围的三维点的属性信息本身作为预测值来计算的第2预测模式的第2预测模式值。在此,在预测模式0中计算出的预测值即“平均值”是编码对象的三维点的周围的三维点的属性值的平均值。
图69是表示示出在实施方式9的各预测模式中计算出的预测值的表的第1例的图。图70是表示实施方式9的预测值中使用的属性信息的例子的图。图71是表示示出在实施方式9的各预测模式中计算出的预测值的表的第2例的图。
预测模式数M也可以附加于比特流。此外,预测模式数M也可以不附加于比特流而通过标准的档次、级别等来规定值。另外,预测模式数M也可以使用根据预测中使用的三维点数N计算出的值。例如,预测模式数M也可以通过M=N+1来计算。
另外,图69所示的表是在预测中使用的三维点数N=4、且预测模式数M=5的情况的例子。可以使用点a0、a1、a2、b1的属性信息来生成点b2的属性信息的预测值。在从多个预测模式选择1个预测模式的情况下,也可以基于从点b2到各点a0、a1、a2、b1的距离信息,选择生成各点a0、a1、a2、b1的属性值作为预测值的预测模式。对编码对象的每个三维点附加预测模式。根据与所附加的预测模式相应的值来计算预测值。
图71所示的表与图69同样,是预测中使用的三维点数N=4、且预测模式数M=5的情况下的例子。点a2的属性信息的预测值可以使用点a0、a1的属性信息来生成。在从多个预测模式选择1个预测模式的情况下,也可以基于从点a2到各点a0、a1的距离信息,选择生成各点a0、a1的属性值作为预测值的预测模式。对编码对象的每个三维点附加预测模式。根据与所附加的预测模式相应的值来计算预测值。
此外,在如上述的点a2那样相邻点数、即周围的三维点数N不足4个的情况下,也可以将在表中未分配预测值的预测模式设为不可用(not available)。
此外,预测模式的值的分配也可以按照距编码对象的三维点的距离顺序来决定。例如,从编码对象的三维点到具有作为预测值使用的属性信息的周围的三维点的距离越近,表示多个预测模式的预测模式值越小。在图69的例子中,表示以点b1、a2、a1、a0的顺序到作为编码对象的三维点的点b2的距离近的情况。例如,在预测值的计算中,在2个以上的预测模式中的预测模式值为“1”所示的预测模式中计算点b1的属性信息作为预测值,在预测模式值为“2”所示的预测模式中计算点a2的属性信息作为预测值。这样,表示计算点b1的属性信息作为预测值的预测模式的预测模式值小于表示将计算点a2的属性信息作为预测值的预测模式的预测模式值,所述点a2位于距点b2的距离比点b1远的位置。
由此,能够将小的预测模式值分配给有可能容易选择的由于距离近而容易预测到的某个点,能够削减用于对预测模式值进行编码的比特数。另外,也可以对与编码对象的三维点属于相同的LoD的三维点优先分配小的预测模式值。
图72是表示示出在实施方式9的各预测模式中计算出的预测值的表的第3例的图。具体而言,第3例是在预测值中使用的属性信息是基于周围的三维点的颜色信息(YUV)的值的情况的例子。这样,用于预测值的属性信息也可以是表示三维点的颜色的颜色信息。
如图72所示,在预测模式值为“0”所示的预测模式中计算出的预测值是定义YUV颜色空间的YUV各自的成分的平均。具体而言,该预测值包括:分别与点b1、a2、a1、a0对应的Y成分的值即Yb1、Ya2、Ya1、Ya0的加权平均Yave;分别与点b1、a2、a1、a0对应的U成分的值即Ub1、Ua2、Ua1、Ua0的加权平均Uave;以及分别与点b1、a2、a1、a0对应的V成分的值即Vb1、Va2、Va1、Va0的加权平均Vave。另外,在预测模式值为“1”~“4”所示的预测模式下计算出的预测值分别包含周围的三维点b1、a2、a1、a0的颜色信息。颜色信息由Y成分、U成分以及V成分的值的组合表示。
另外,在图72中,颜色信息用由YUV颜色空间定义的值表示,但不限于YUV颜色空间,也可以用由RGB颜色空间定义的值表示,也可以用由其他颜色空间定义的值表示。
这样,也可以是,在预测值的计算中,计算2个以上的平均或属性信息作为预测模式的预测值。另外,2个以上的平均或属性信息也可以分别表示定义颜色空间的2个以上的成分的值。
此外,例如,在图72的表中选择了预测模式值为“2”所示的预测模式的情况下,也可以将编码对象的三维点的属性值的Y成分、U成分以及V成分分别用作预测值Ya2、Ua2、Va2来进行编码。在这种情况下,作为预测模式值的“2”被附加到比特流。
图73是表示示出在实施方式9的各预测模式中计算出的预测值的表的第4例的图。具体而言,第4例是在预测值中使用的属性信息是基于周围的三维点的反射率信息的值的情况的例子。反射率信息例如是表示反射率R的信息。
如图73所示,在预测模式值为“0”所示的预测模式下计算出的预测值是分别与点b1、a2、a1、a0对应的反射率Rb1、Ra2、Ra1、Ra0的加权平均Rave。另外,在预测模式值为“1”~“4”所示的预测模式下计算出的预测值分别为周围的三维点b1、a2、a1、a0的反射率Rb1、Ra2、Ra1、Ra0。
此外,例如,在图73的表中选择了预测模式值为“3”所示的预测模式的情况下,也可以使用编码对象的三维点的属性值的反射率作为预测值Ra1来进行编码。在这种情况下,作为预测模式值的“3”被附加到比特流。
如图72和图73所示,属性信息可以包括第1属性信息和与第1属性信息不同种类的第2属性信息。第1属性信息例如是颜色信息。第2属性信息例如是反射率信息。在预测值的计算中,也可以使用第1属性信息来计算第1预测值,并且使用第2属性信息来计算第2预测值。
(实施方式10)
以下,作为对三维点的属性信息进行编码的其他方法,说明使用了RAHT(RegionAdaptive Hierarchical Transform:区域自适应分层变换)的方法。图74是用于说明使用了RAHT的属性信息的编码的图。
首先,三维数据编码装置基于三维点的位置信息生成莫顿编码(Morton code),按照莫顿编码顺序对三维点的属性信息进行排序(sort)。例如,三维数据编码装置可以按照莫顿编码的升序进行排序。此外,排序顺序不限于莫顿编码顺序,也可以使用其他顺序。
接着,三维数据编码装置通过对按照莫顿编码顺序相邻的2个三维点的属性信息应用Haar变换,生成阶层L的高频成分和低频成分。例如,三维数据编码装置也可以使用2×2矩阵的Haar变换。所生成的高频成分作为阶层L的高频成分被包含在编码系数中,所生成的低频成分被用作阶层L的上位阶层L+1的输入值。
三维数据编码装置在使用阶层L的属性信息生成阶层L的高频成分之后,继续进行阶层L+1的处理。在阶层L+1的处理中,三维数据编码装置通过对通过阶层L的属性信息的Haar变换而得到的2个低频成分应用Haar变换来生成阶层L+1的高频成分和低频成分。所生成的高频成分作为阶层L+1的高频成分被包含在编码系数中,所生成的低频成分被用作阶层L+1的上位阶层L+2的输入值。
三维数据编码装置反复进行这样的阶层处理,在输入到阶层的低频成分成为1个的时间点,判定为到达了最上位阶层Lmax。三维数据编码装置将输入到阶层Lmax的阶层Lmax-1的低频成分包含在编码系数中。然后,对编码系数所包含的低频成分或高频成分的值进行量化,使用熵编码等进行编码。
此外,在仅存在1个三维点作为应用Haar变换时相邻的2个三维点的情况下,三维数据编码装置也可以将存在的1个三维点的属性信息的值用作上位阶层的输入值。
这样,三维数据编码装置对输入的属性信息分层地应用Haar变换,生成属性信息的高频成分和低频成分,应用后述的量化等进行编码。由此,能够提高编码效率。
在属性信息为N维的情况下,三维数据编码装置也可以按每个维独立地应用Haar变换,计算各自的编码系数。例如,在属性信息是颜色信息(RGB或YUV等)的情况下,三维数据编码装置按每个成分应用Haar变换,计算各自的编码系数。
三维数据编码装置也可以按照阶层L、L+1、…、阶层Lmax的顺序应用Haar变换。生成越接近阶层Lmax包含越多输入的属性信息的低频成分的编码系数。
图74所示的w0和w1是分配给各三维点的权重。例如,三维数据编码装置也可以基于应用Haar变换的相邻的2个三维点间的距离信息等来计算权重。例如,三维数据编码装置也可以通过距离越近则越增大权重来提高编码效率。另外,三维数据编码装置可以通过其他方法计算该权重,也可以不使用权重。
在图74所示的例子中,输入属性信息是a0、a1、a2、a3、a4以及a5。另外,对Haar变换后的编码系数中的Ta1、Ta5、Tb1、Tb3、Tc1、d0进行编码。其他的编码系数(b0、b2、c0等)为中间值,不被编码。
具体而言,在图74所示的例子中,通过对a0和a1进行Haar变换,生成高频成分Ta1和低频成分b0。在此,在权重w0与w1相等的情况下,低频成分b0是a0与a1的平均值,高频成分Ta1是a0与a1的差分。
由于在a2中不存在成对的属性信息,因此a2直接用作b1。同样地,由于在a3中不存在成对的属性信息,因此a3直接用作b2。另外,通过对a4和a5进行Haar变换,生成高频成分Ta5和低频成分b3。
在阶层L+1中,通过对b0和b1进行Haar变换,生成高频成分Tb1和低频成分c0。同样地,通过对b2和b3进行Haar变换,生成高频成分Tb3和低频成分c1。
在阶层Lmax-1中,通过对c0和c1进行Haar变换,生成高频成分Tc1和低频成分d0。
三维数据编码装置也可以在对应用Haar变换后的编码系数进行了量化的基础上进行编码。例如,三维数据编码装置通过将编码系数除以量化尺度(也称为量化步长(QS(Quantization Step)))来进行量化。在这种情况下,量化尺度越小,通过量化产生的误差(量化误差)越小。相反,量化尺度越大,量化误差越大。
此外,三维数据编码装置也可以按每个阶层改变量化尺度的值。图75是表示按每个阶层设定量化尺度的例子的图。例如,三维数据编码装置越是上位层,越减小量化尺度,越是下位层,越增大量化尺度。属于上位层的三维点的编码系数比下位层更多地包含低频成分,因此在人的视觉特性等中是重要的成分的可能性高。因此,通过减小上位层的量化尺度来抑制在上位层产生的量化误差来抑制视觉上的劣化,能够提高编码效率。
此外,三维数据编码装置也可以将每个阶层的量化尺度附加到头部等。由此,三维数据解码装置能够正确地对量化尺度进行解码,能够适当地对比特流进行解码。
另外,三维数据编码装置也可以根据编码对象的对象三维点的重要度,自适应地切换量化尺度的值。例如,三维数据编码装置在重要度高的三维点使用小的量化尺度,在重要度低的三维点使用大的量化尺度。例如,三维数据编码装置也可以根据Haar变换时的权重等计算重要度。例如,三维数据编码装置也可以使用w0和w1的相加值来计算量化尺度。这样,通过减小重要度高的三维点的量化尺度,量化误差变小,能够改善编码效率。
另外,也可以越是上位层,越减小QS的值。由此,越是上位层QW的值越大,通过抑制该三维点的量化误差,能够改善预测效率。
这里,属性信息a1的编码系数Ta1的量化后的编码系数Ta1q由Ta1/QS_L表示。此外,QS也可以是在所有的阶层或一部分的阶层中相同的值。
QW(Quantization Weight)是表示编码对象的三维点的重要度的值。例如,也可以使用上述的w0和w1的相加值作为QW。由此,越是上位层QW的值越大,通过抑制该三维点的量化误差,能够改善预测效率。
例如,三维数据编码装置也可以最初将所有的三维点中的QW的值用1初始化,使用Haar变换时的w0和w1的值来更新各三维点的QW。或者,三维数据编码装置也可以不将所有的三维点的QW用值1来初始化,而是根据阶层来变更初始值。例如,通过越是上位层将QW的初始值设定得越大,上位层的量化尺度变小。由此,能够抑制上位层的预测误差,因此能够提高下位层的预测精度,改善编码效率。另外,三维数据编码装置也可以不必使用QW。
在使用QW的情况下,通过(式K1)和(式K2)计算Ta1的量化值Ta1q。
【数式5】
Figure BDA0003261060930000851
Figure BDA0003261060930000852
另外,三维数据编码装置按照某个顺序对量化后的编码系数(无符号整数值)进行扫描,并进行编码。例如,三维数据编码装置从上位层所包含的三维点开始依次朝向下位层对多个三维点进行编码。
例如,在图74所示的例子的情况下,三维数据编码装置按照从上位层Lmax中包含的d0q到Tc1q、Tb1q、Tb3q、Ta1q、Ta5q的顺序对多个三维点进行编码。在此,存在越是下位层L,量化后的编码系数越容易成为0的倾向。作为其主要原因,提出以下的情况等。
下位层L的编码系数表示高于上位层的频率成分,因此存在因对象三维点而容易变为0的倾向。另外,通过与上述的重要度等相应的量化尺度的切换,越是下位层,量化尺度越大,量化后的编码系数越容易成为0。
这样,越是下位层,量化后的编码系数越容易成为0,值0容易连续地在第1编码串中产生。图76是表示第1编码串和第2编码串的例子的图。
三维数据编码装置对在第1编码串中产生了值0的次数进行计数,并取代连续的值0而对值0连续产生的次数进行编码。即,三维数据编码装置通过将在第1编码串中连续的值0的编码系数置换为0的连续次数(ZeroCnt)来生成第2编码串。由此,在量化后的编码系数的值0连续的情况下,与对大量的0进行编码相比,通过对0的连续次数进行编码,能够提高编码效率。
此外,三维数据编码装置也可以对ZeroCnt的值进行熵编码。例如,三维数据编码装置以编码三维点的总数T的截断一元编码(truncated unary code)对ZeroCnt的值进行二值化,对二值化后的各比特进行算术编码。图77是表示在编码三维点的总数是T的情况下的截断一元编码的例子的图。此时,三维数据编码装置也可以通过使用按每个比特而不同的编码表来提高编码效率。例如,在三维数据编码装置中,在第1比特中使用编码表1,在第2比特中使用编码表2,在其以后的比特中使用编码表3。这样,三维数据编码装置通过对每个比特切换编码表,能够提高编码效率。
另外,三维数据编码装置也可以在用指数哥伦布(Exponential-Golomb)对ZeroCnt进行二值化之后进行算术编码。由此,在ZeroCnt的值容易变大的情况下,与基于截断一元编码的二值化算术编码相比,能够提高效率。此外,三维数据编码装置也可以将用于切换使用截断一元编码还是使用指数哥伦布的标志附加到头部。由此,三维数据编码装置通过选择最佳的二值化方法,能够提高编码效率。另外,三维数据解码装置参照头部中包含的标志来切换二值化方法,能够正确地对比特流进行解码。
三维数据解码装置也可以通过与由三维数据编码装置进行的方法相反的方法,将解码后的量化后的编码系数从无符号整数值变换为带符号整数值。由此,在对编码系数进行熵编码的情况下,三维数据解码装置能够不考虑负的整数的产生而适当地对生成的比特流进行解码。另外,三维数据解码装置不需要将编码系数从无符号整数值变换为带符号整数值。例如,在另外对包含熵编码后的符号比特的比特流进行解码的情况下,三维数据解码装置也可以对该符号比特进行解码。
三维数据解码装置通过逆量化和逆Haar变换对变换为带符号整数值的量化后的编码系数进行解码。另外,三维数据解码装置将解码出的编码系数利用于解码对象的三维点以后的预测。具体而言,三维数据解码装置通过对量化后的编码系数乘以解码后的量化尺度来计算逆量化值。接着,三维数据解码装置通过对逆量化值应用后述的逆Haar变换而得到解码值。
例如,三维数据解码装置将被解码的无符号整数值通过以下的方法变换为带符号整数值。在被解码的无符号整数值a2u的LSB(least significant bit)为1的情况下,带符号整数值Ta1q被设定为-((a2u+1)>>1)。在被解码的无符号整数值a2u的LSB不是1的情况下(为0的情况下),带符号整数值Ta1q被设定为(a2u>>1)。
此外,Ta1的逆量化值由Ta1q×QS_L表示。在此,Ta1q是Ta1的量化值。此外,QS_L是阶层L的量化步长。
此外,QS可以是在所有的阶层或一部分阶层中相同的值。另外,三维数据编码装置也可以将表示QS的信息附加到头部等。由此,三维数据解码装置能够使用与在三维数据编码装置中使用的QS相同的QS,正确地进行逆量化。
接着,对逆Haar变换进行说明。图78是用于说明逆Haar变换的图。三维数据解码装置通过对逆量化后的编码系数应用逆Haar变换来对三维点的属性值进行解码。
首先,三维数据解码装置基于三维点的位置信息生成莫顿编码,按照莫顿编码顺序对三维点进行排序。例如,三维数据解码装置可以按照莫顿编码的升序进行排序。此外,排序顺序不限于莫顿编码顺序,也可以使用其他顺序。
接着,三维数据解码装置通过对包含阶层L+1的低频成分的编码系数和包含阶层L的高频成分的编码系数应用逆Haar变换,复原在阶层L中按照莫顿编码顺序相邻的三维点的属性信息。例如,三维数据解码装置也可以使用2×2矩阵的逆Haar变换。被复原的阶层L的属性信息被用作下位阶层L-1的输入值。
三维数据解码装置反复这样的阶层处理,如果最下层的属性信息全部被解码,则结束处理。另外,在仅存在1个三维点作为应用逆Haar变换时在阶层L-1中相邻的2个三维点的情况下,三维数据解码装置也可以将阶层L的编码成分的值代入存在的1个三维点的属性值。由此,三维数据解码装置对输入的属性信息的所有值应用Haar变换,能够正确地对提高了编码效率的比特流进行解码。
在属性信息为N维的情况下,三维数据解码装置也可以按每个维独立地应用逆Haar变换,对各自的编码系数进行解码。例如,在属性信息是颜色信息(RGB或YUV等)的情况下,三维数据解码装置对每个成分的编码系数应用逆Haar变换,对各自的属性值进行解码。
三维数据解码装置也可以按照阶层Lmax、L+1、…、阶层L的顺序应用逆Haar变换。另外,图78所示的w0和w1是分配给各三维点的权重。例如,三维数据解码装置也可以基于应用逆Haar变换的相邻的2个三维点间的距离信息等来计算权重。例如,三维数据编码装置也可以通过距离越近则越增大权重来对提高了编码效率的比特流进行解码。
在图78所示的例子中,逆量化后的编码系数是Ta1、Ta5、Tb1、Tb3、Tc1以及d0,作为解码值能够得到a0、a1、a2、a3、a4以及a5。
图79是表示属性信息(attribute_data)的句法例的图。属性信息(attribute_data)包含零连续数(ZeroCnt)、属性维数(attribute_dimension)和编码系数(value[j][i])。
零连续数(ZeroCnt)表示在量化后的编码系数中值0连续的次数。此外,三维数据编码装置也可以在对ZeroCnt进行二值化之后进行算术编码。
另外,如图79所示,三维数据编码装置也可以判定编码系数所属的阶层L(layerL)是否为预先确定的阈值TH_layer以上,根据判定结果切换对比特流附加的信息。例如,如果判定结果为真,则三维数据编码装置将属性信息的所有的编码系数附加到比特流。另外,如果判定结果为假,则三维数据编码装置也可以将一部分的编码系数附加到比特流。
具体而言,如果判定结果为真,则三维数据编码装置将颜色信息的RGB或YUV的三维信息的编码结果附加到比特流。如果判定结果为假,则三维数据编码装置也可以将颜色信息中的G或Y等一部分信息附加到比特流,不将除此以外的成分附加到比特流。这样,三维数据编码装置通过不将包含表示在视觉上劣化不显著的高频成分的编码系数的阶层(比TH_layer小的阶层)的编码系数的一部分附加到比特流,能够提高编码效率。
属性维数(attribute_dimension)表示属性信息的维数。例如,在属性信息为三维点的颜色信息(RGB或YUV等)的情况下,颜色信息为三维,因此属性维数被设定为值3。在属性信息为反射率的情况下,反射率为一维,因此属性维数被设定为值1。此外,属性维数也可以附加到比特流的属性信息的头部等。
编码系数(value[j][i])表示第i个三维点的第j维属性信息的量化后的编码系数。例如,在属性信息是颜色信息的情况下,value[99][1]表示第100个三维点的第2维(例如G值)的编码系数。另外,在属性信息是反射率信息的情况下,value[119][0]表示第120个三维点的第1维(例如反射率)的编码系数。
此外,在满足以下的条件的情况下,三维数据编码装置也可以从value[j][i]减去值1,对得到的值进行熵编码。在这种情况下,三维数据解码装置通过将值1与熵解码后的value[j][i]相加来复原编码系数。
上述条件是(1)attribute_dimension=1的情况,或者(2)attribute_dimension为1以上且所有维的值相等的情况。例如,在属性信息是反射率的情况下,attribute_dimension=1,因此,三维数据编码装置从编码系数中减去值1来计算value,并对计算出的value进行编码。三维数据解码装置将值1与解码后的value相加来计算编码系数。
更具体而言,例如,在反射率的编码系数为10的情况下,三维数据编码装置对从编码系数的值10减去值1而得到的值9进行编码。三维数据解码装置将值1与解码后的值9相加,计算编码系数的值10。
另外,在属性信息为颜色的情况下,attribute_dimension=3,因此,例如,在R、G、B的各成分的量化后的编码系数相同的情况下,三维数据编码装置从各编码系数减去值1,对得到的值进行编码。三维数据解码装置对解码后的值加上值1。更具体而言,例如,在R、G、B的编码系数=(1,1,1)的情况下,三维数据编码装置对(0,0,0)进行编码。三维数据解码装置对(0,0,0)的各成分加上1,计算出(1,1,1)。另外,在R、G、B的编码系数=(2,1,2)的情况下,三维数据编码装置直接对(2,1,2)进行编码。三维数据解码装置将解码的(2,1,2)直接用作编码系数。
这样,通过设置ZeroCnt,不生成作为value的所有维为0的模式,因此能够对从value的值减去1而得到的值进行编码。因此,能够提高编码效率。
另外,图79所示的value[0][i]表示第i个三维点的第1维属性信息的量化后的编码系数。如图79所示,如果编码系数所属的阶层L(layerL)小于阈值TH_layer,则也可以通过将第1维的属性信息附加到比特流(不对第2维以后的属性信息附加比特流)来削减编码量。
三维数据编码装置也可以根据attribute_dimension的值来切换ZeroCnt的值的计算方法。例如,在attribute_dimension=3的情况下,三维数据编码装置可以对所有成分(维)的编码系数的值为0的次数进行计数。图80是表示该情况下的编码系数和ZeroCnt的例子的图。例如,在图80所示的颜色信息的情况下,三维数据编码装置对R、G、B成分全部为0的编码系数连续的数量进行计数,将计数的数量作为ZeroCnt附加到比特流。由此,不需要按每个成分对ZeroCnt进行编码,能够削减开销。因此,能够改善编码效率。此外,在attribute_dimension为2以上的情况下,三维数据编码装置也可以按每个维计算ZeroCnt,将计算出的ZeroCnt附加到比特流。
图81是本实施方式的三维数据编码处理的流程图。首先,三维数据编码装置对位置信息(geometry)进行编码(S6601)。例如,三维数据编码装置使用八叉树表现进行编码。
接着,三维数据编码装置对属性信息进行变换(S6602)。例如三维数据编码装置在位置信息的编码后,在三维点的位置由于量化等而变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息。此外,三维数据编码装置也可以根据位置的变化量对属性信息的值进行插值来进行重新分配。例如,三维数据编码装置检测N个接近变化后的三维位置的变化前的三维点,对N个三维点的属性信息的值基于从变化后的三维位置到各N个三维点的距离进行加权平均,将得到的值设定为变化后的三维点的属性信息的值。另外,在由于量化等而2个以上的三维点变化到同一三维位置的情况下,三维数据编码装置也可以分配变化前的2个以上的三维点中的属性信息的平均值作为该变化后的属性信息的值。
接着,三维数据编码装置对属性信息进行编码(S6603)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果可以是任何顺序。
另外,三维数据编码装置也可以将比特流内的各属性信息的表示编码数据开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
图82是属性信息编码处理(S6603)的流程图。首先,三维数据编码装置通过Haar变换从属性信息生成编码系数(S6611)。接着,三维数据编码装置对编码系数应用量化(S6612)。接着,三维数据编码装置通过对量化后的编码系数进行编码来生成编码属性信息(比特流)(S6613)。
此外,三维数据编码装置对量化后的编码系数应用逆量化(S6614)。接着,三维数据解码装置通过对逆量化后的编码系数应用逆Haar变换来对属性信息进行解码(S6615)。例如,解码后的属性信息在后续的编码中被参照。
图83是编码系数编码处理(S6613)的流程图。首先,三维数据编码装置将编码系数从带符号整数值变换为无符号整数值(S6621)。例如,三维数据编码装置将带符号整数值如下述那样变换为无符号整数值。在带符号整数值Ta1q小于0的情况下,无符号整数值被设定为-1-(2×Ta1q)。在带符号整数值Ta1q为0以上的情况下,无符号整数值被设定为2×Ta1q。此外,在编码系数不成为负值的情况下,三维数据编码装置也可以将编码系数直接作为无符号整数值进行编码。
在未处理完所有的编码系数的情况下(S6622的“否”),三维数据编码装置判定处理对象的编码系数的值是否为零(S6623)。在处理对象的编码系数的值为零的情况下(S6623的“是”),三维数据编码装置使ZeroCnt递增1(S6624),返回到步骤S6622。
在处理对象的编码系数的值不为零的情况下(S6623的“否”),三维数据编码装置对ZeroCnt进行编码,将ZeroCnt重置为0(S6625)。另外,三维数据编码装置对处理对象的编码系数进行算术编码(S6626),返回到步骤S6622。例如,三维数据编码装置进行二值算术编码。另外,三维数据编码装置也可以从编码系数减去值1,对得到的值进行编码。
另外,对每个编码系数反复进行步骤S6623~S6626的处理。另外,在已处理完所有的编码系数的情况下(S6622的“是”),三维数据编码装置结束处理。
图84是本实施方式的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(S6631)。例如,三维数据解码装置使用八叉树表现进行解码。
接着,三维数据解码装置从比特流中解码属性信息(S6632)。例如,在对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加于比特流的属性信息的编码结果进行解码都可以。
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据的开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
图85是属性信息解码处理(S6632)的流程图。首先,三维数据解码装置从比特流中解码编码系数(S6641)。接着,三维数据解码装置对编码系数应用逆量化(S6642)。接着,三维数据解码装置通过对逆量化后的编码系数应用逆Haar变换来对属性信息进行解码(S6643)。
图86是编码系数解码处理(S6641)的流程图。首先,三维数据解码装置从比特流中解码ZeroCnt(S6651)。在未处理完所有的编码系数的情况下(S6652的“否”),三维数据解码装置判定ZeroCnt是否大于0(S6653)。
在ZeroCnt大于零的情况下(S6653的“是”),三维数据解码装置将处理对象的编码系数设定为0(S6654)。接着,三维数据解码装置对ZeroCnt减去1(S6655),返回到步骤S6652。
在ZeroCnt为零的情况下(S6653的“否”),三维数据解码装置对处理对象的编码系数进行解码(S6656)。例如,三维数据解码装置使用二值算术解码。另外,三维数据解码装置也可以对解码出的编码系数加上值1。
接着,三维数据解码装置对ZeroCnt进行解码,将得到的值设定为ZeroCnt(S6657),返回到步骤S6652。
此外,对每个编码系数反复进行步骤S6653~S6657的处理。另外,在已处理完所有的编码系数的情况下(S6652的“是”),三维数据编码装置将解码出的多个编码系数从无符号整数值变换为带符号整数值(S6658)。例如,三维数据解码装置也可以如下述那样将解码出的编码系数从无符号整数值变换为带符号整数值。在被解码的无符号整数值Ta1u的LSB(least significant bit)为1的情况下,带符号整数值Ta1q被设定为-((Ta1u+1)>>1)。在被解码的无符号整数值Ta1u的LSB不是1的情况下(为0的情况下),带符号整数值Ta1q被设定为(Ta1u>>1)。此外,在编码系数不成为负值的情况下,三维数据解码装置也可以将解码出的编码系数直接用作带符号整数值。
图87是三维数据编码装置所包含的属性信息编码部6600的框图。属性信息编码部6600具备排序部6601、Haar变换部6602、量化部6603、逆量化部6604、逆Haar变换部6605、存储器6606以及算术编码部6607。
排序部6601使用三维点的位置信息生成莫顿编码,按照莫顿编码顺序对多个三维点进行排序。Haar变换部6602通过对属性信息应用Haar变换来生成编码系数。量化部6603对属性信息的编码系数进行量化。
逆量化部6604对量化后的编码系数进行逆量化。逆Haar变换部6605对编码系数应用逆Haar变换。存储器6606存储已解码的多个三维点的属性信息的值。例如,存储器6606中存储的已解码的三维点的属性信息也可以利用于未被编码的三维点的预测等。
算术编码部6607根据量化后的编码系数计算ZeroCnt,对ZeroCnt进行算术编码。另外,算术编码部6607对量化后的非零的编码系数进行算术编码。算术编码部6607可以在算术编码前对编码系数进行二值化。另外,算术编码部6607也可以生成和编码各种头部信息。
图88是三维数据解码装置所包含的属性信息解码部6610的框图。属性信息解码部6610具备算术解码部6611、逆量化部6612、逆Haar变换部6613以及存储器6614。
算术解码部6611对比特流所包含的ZeroCnt和编码系数进行算术解码。另外,算术解码部6611也可以对各种头部信息进行解码。
逆量化部6612对算术解码出的编码系数进行逆量化。逆Haar变换部6613对逆量化后的编码系数应用逆Haar变换。存储器6614存储已解码的多个三维点的属性信息的值。例如,存储器6614中存储的已解码的三维点的属性信息也可以利用于未被解码的三维点的预测。
另外,在上述实施方式中,示出了作为编码顺序从下位层到上位层的顺序对三维点进行编码的例子,但未必限于此。例如,也可以使用从上位层到下位层的顺序扫描Haar变换后的编码系数的方法。此外,在该情况下,三维数据编码装置也可以将值0的连续次数作为ZeroCnt来进行编码。
另外,三维数据编码装置也可以以WLD、SPC或体积单位切换是否使用本实施方式中所述的使用了ZeroCnt的编码方法。在该情况下,三维数据编码装置也可以将表示是否应用了使用了ZeroCnt的编码方法的信息附加到头部信息。由此,三维数据解码装置能够适当地进行解码。作为切换方法的例子,例如,三维数据编码装置对1个体积对值0的编码系数的产生次数进行计数。三维数据编码装置在计数值超过了预先确定的阈值的情况下,对下一个体积应用使用了ZeroCnt的方法,在计数值为阈值以下的情况下,不对下一个体积应用使用了ZeroCnt的方法。由此,三维数据编码装置能够根据编码对象的三维点的特征来适当地切换是否应用使用了ZeroCnt的编码方法,因此能够提高编码效率。
(实施方式11)
以下,对量化参数进行说明。
为了基于点群数据的特性及位置将点群数据分割,使用切片及瓦片。这里,根据硬件的限制及实时处理的要件,有对各个分割后的点群数据要求的品质不同的情况。例如,在按每个对象分割为切片而进行编码的情况下,由于包括植物的切片数据不那么重要,所以通过量化能够降低分辨率(品质)。另一方面,关于重要的切片数据,通过将量化的值设定为较低的值,能够成为较高的分辨率(品质)。为了能够进行这样的量化值的控制而使用量化参数。
这里,作为量化的对象的数据、在量化中使用的尺度(scale)和作为通过量化计算的结果的量化数据由以下的(式G1)和(式G2)表示。
量化数据=数据/尺度 (式G1)
数据=量化数据*尺度 (式G2)
图89是用来说明对数据进行量化的量化部5323及对量化数据进行逆量化的逆量化部5333的处理的图。
量化部5323通过使用尺度对数据进行量化即进行使用式G1的处理,计算数据被量化的量化数据。
逆量化部5333通过使用尺度对量化数据进行逆量化、即进行使用式G2的处理,计算量化数据被逆量化的数据。
此外,尺度和量化值(QP(Quantization Parameter:量化参数)值)由以下的(式G3)表示。
量化值(QP值)=log(尺度) (式G3)
量化值(QP值)=默认值(基准值)+量化delta(差分信息) (式G4)
此外,将这些参数总称为量化参数(Quantization Parameter)。
例如,如图90所示,量化值是以默认值为基准的值,通过对默认值加上量化delta来计算。在量化值是比默认值小的值的情况下,量化delta为负值。在量化值是比默认值大的值的情况下,量化delta为正值。在量化值与默认值相等的情况下,量化delta为0。在量化delta是0的情况下,量化delta也可以没有。
对编码处理进行说明。图91是表示在有关本实施方式的三维数据编码装置中包含的第1编码部5300的构成的框图。图92是表示有关本实施方式的分割部5301的构成的框图。图93是表示有关本实施方式的位置信息编码部5302及属性信息编码部5303的构成的框图。
第1编码部5300通过将点群数据用第1编码方法(GPCC(Geometry based PCC))编码而生成编码数据(编码流)。该第1编码部5300包括分割部5301、多个位置信息编码部5302、多个属性信息编码部5303、附加信息编码部5304和复用部5305。
分割部5301通过将点群数据分割而生成多个分割数据。具体而言,分割部5301通过将点群数据的空间分割为多个子空间而生成多个分割数据。这里,子空间指的是瓦片及切片中的一方、或瓦片及切片的组合。更具体地讲,点群数据包含位置信息、属性信息及附加信息。分割部5301将位置信息分割为多个分割位置信息,将属性信息分割为多个分割属性信息。此外,分割部5301生成关于分割的附加信息。
分割部5301如图92所示,包括瓦片分割部5311和切片分割部5312。例如,瓦片分割部5311将点群分割为瓦片。瓦片分割部5311也可以将在分割的各瓦片中使用的量化值决定为瓦片附加信息。
切片分割部5312将由瓦片分割部5311得到的瓦片再分割为切片。切片分割部5312也可以将在分割的各切片中使用的量化值决定为切片附加信息。
多个位置信息编码部5302通过将多个分割位置信息编码而生成多个编码位置信息。例如,多个位置信息编码部5302将多个分割位置信息并行处理。
位置信息编码部5302如图93所示,包括量化值计算部5321和熵编码部5322。量化值计算部5321取得被编码的分割位置信息的量化值(量化参数)。熵编码部5322通过使用由量化值计算部5321取得的量化值(量化参数)对分割位置信息进行量化,计算量化位置信息。
多个属性信息编码部5303通过将多个分割属性信息编码,生成多个编码属性信息。例如,多个属性信息编码部5303将多个分割属性信息并行处理。
属性信息编码部5303如图93所示,包括量化值计算部5331和熵编码部5332。量化值计算部5331取得被编码的分割属性信息的量化值(量化参数)。熵编码部5332通过使用由量化值计算部5331取得的量化值(量化参数)对分割属性信息进行量化,计算量化属性信息。
附加信息编码部5304通过将点群数据中包含的附加信息和由分割部5301在分割时生成的关于数据分割的附加信息编码,生成编码附加信息。
复用部5305通过将多个编码位置信息、多个编码属性信息及编码附加信息复用而生成编码数据(编码流),送出所生成的编码数据。此外,编码附加信息在解码时被使用。
另外,在图91中示出了位置信息编码部5302及属性信息编码部5303的数量分别为两个的例子,但位置信息编码部5302及属性信息编码部5303的数量分别可以是1个,也可以是3个以上。此外,多个分割数据既可以如CPU内的多个核那样在同一芯片内被并行处理,也可以由多个芯片的核并行处理,也可以由多个芯片的多个核并行处理。
接着,对解码处理进行说明。图94是表示第1解码部5340的构成的框图。图95是表示位置信息解码部5342及属性信息解码部5343的构成的框图。
第1解码部5340通过对通过将点群数据用第1编码方法(GPCC)编码而生成的编码数据(编码流)进行解码,将点群数据复原。该第1解码部5340包括逆复用部5341、多个位置信息解码部5342、多个属性信息解码部5343、附加信息解码部5344和结合部5345。
逆复用部5341通过将编码数据(编码流)逆复用,生成多个编码位置信息、多个编码属性信息及编码附加信息。
多个位置信息解码部5342通过将多个编码位置信息解码,生成多个量化位置信息。例如,多个位置信息解码部5342将多个编码位置信息并行处理。
位置信息解码部5342如图95所示,包括量化值计算部5351和熵解码部5352。量化值计算部5351取得量化位置信息的量化值。熵解码部5352通过使用由量化值计算部5351取得的量化值对量化位置信息进行逆量化,计算位置信息。
多个属性信息解码部5343通过将多个编码属性信息解码,生成多个分割属性信息。例如,多个属性信息解码部5343将多个编码属性信息并行处理。
属性信息解码部5343如图95所示,包括量化值计算部5361和熵解码部5362。量化值计算部5361取得量化属性信息的量化值。熵解码部5362通过使用由量化值计算部5361取得的量化值对量化属性信息进行逆量化,计算属性信息。
多个附加信息解码部5344通过将编码附加信息解码,生成附加信息。
结合部5345通过使用附加信息将多个分割位置信息结合,生成位置信息。结合部5345通过使用附加信息将多个分割属性信息结合,生成属性信息。例如,结合部5345首先通过使用切片附加信息将针对切片的解码后的点群数据结合,生成与瓦片对应的点群数据。接着,结合部5345通过使用瓦片附加信息将与瓦片对应的点群数据结合,复原原来的点群数据。
另外,在图94中示出了位置信息解码部5342及属性信息解码部5343的数量分别为两个的例子,但位置信息解码部5342及属性信息解码部5343的数量分别可以是1个,也可以是3个以上。此外,多个分割数据既可以如CPU内的多个核那样在同一芯片内被并行处理,也可以由多个芯片的核并行处理,也可以由多个芯片的多个核并行处理。
[量化参数的决定方法]
图96是表示位置信息(Geometry)的编码或属性信息(Attribute)的编码中的与量化值(Quantization Parameter值:QP值)的决定有关的处理的一例的流程图。
关于QP值,例如按构成PCC帧的位置信息的每数据单位、或按属性信息的每数据单位,考虑编码效率而决定。在数据单位是分割后的瓦片单位或分割后的切片单位的情况下,考虑分割的数据单位的编码效率而以分割的数据单位决定QP值。此外,QP值也可以以分割前的数据单位来决定。
如图96所示,三维数据编码装置决定在位置信息的编码中使用的QP值(S5301)。三维数据编码装置也可以按分割后的多个切片的每一个,基于规定的方法进行QP值的决定。具体而言,三维数据编码装置基于位置信息的数据的特征或品质来决定QP值。三维数据编码装置例如也可以按每数据单位判定点群数据的密度、即属于切片的每个单位区域的点的数量,将与点群数据的密度对应的值决定为QP值。或者,三维数据编码装置也可以基于点群数据的点的数量、点的分布、点的偏倚、或根据点的信息得到的特征量、特征点的数量、或识别的对象,将对应的值决定为QP值。此外,三维数据编码装置也可以判定地图的位置信息中的对象,根据基于位置信息的对象来决定QP值,也可以基于将三维点群投影为二维的信息或特征量来决定QP值。对应的QP值也可以预先作为与点群数据的密度、点的数量、点的分布、点的偏倚建立了对应的表而保持在存储器中。此外,对应的QP值也可以预先作为与根据点的信息得到的特征量、特征点的数量、或基于点的信息识别的对象建立了对应的表而保持在存储器中。此外,对应的QP值也可以在将点群数据的位置信息编码时,基于用各种各样的QP值模拟了编码率等的结果来决定。
接着,三维数据编码装置决定位置信息的QP值的基准值(默认值)及差分信息(量化delta)(S5302)。具体而言,三维数据编码装置使用所决定的QP值及规定的方法决定要传输的基准值及差分信息,将所决定的基准值及差分信息设定(追加)到附加信息及数据的头部的至少一方。
接着,三维数据编码装置决定在属性信息的编码中使用的QP值(S5303)。三维数据编码装置也可以按分割后的多个切片的每一个,基于规定的方法来进行QP值的决定。具体而言,三维数据编码装置基于属性信息的数据的特征或品质来决定QP值。三维数据编码装置例如也可以按每数据单位,基于属性信息的特性来决定QP值。颜色的特性例如是亮度、色度、彩度、它们的直方图、颜色的连续性等。在属性信息是反射率的情况下,也可以根据基于反射率的信息来判定。三维数据编码装置例如在从点群数据中作为对象而检测到脸的情况下,也可以对构成检测到脸的对象的点群数据决定品质较好的QP值。这样,三维数据编码装置也可以根据对象的种类来决定对于构成对象的点群数据的QP值。
此外,三维数据编码装置在三维点有多个属性信息的情况下,也可以按每个属性信息独立地决定基于各个属性信息的QP值,或者,也可以基于某一方的属性信息来决定多个属性信息的QP值,也可以使用多个属性信息来决定该多个属性信息的QP值。
接着,三维数据编码装置决定属性信息的QP值的基准值(默认值)及差分信息(量化delta)(S5304)。具体而言,三维数据编码装置使用所决定的QP值及规定的方法,决定要传输的基准值及差分信息,将所决定的基准值及差分信息设定(追加)到附加信息及数据的头部的至少一方。
并且,三维数据编码装置分别基于所决定的位置信息及属性信息的QP值,对位置信息及属性信息进行量化、编码(S5305)。
另外,说明了基于位置信息决定位置信息的QP值、基于属性信息决定属性信息的QP值的例子,但并不限于此。例如,位置信息及属性信息的QP值也可以基于位置信息来决定,也可以基于属性信息来决定,也可以基于位置信息及属性信息来决定。
另外,位置信息及属性信息的QP值也可以考虑点群数据中的、位置信息的品质与属性信息的品质的平衡来调整。例如,也可以将位置信息及属性信息的QP值决定为,使得位置信息的品质被设定得较高,并且属性信息的品质被设定得比位置信息的品质低。例如,也可以将属性信息的QP值决定为,使得满足位置信息的QP值以上这一制约条件。
此外,也可以调整QP值,以使编码数据被编码成包含在预先设定的规定的速率的范围内。例如在前一个数据单位的编码中编码量要超过规定的速率的情况下,即在与规定的速率的差小于第1差分的情况下,QP值也可以被调整为,使得编码品质下降,以使数据单位的编码量小于第1差分。另一方面,在与规定的速率的差大于比第1差分大的第2差而有充分大的差的情况下,QP值也可以被调整为,使得数据单位的编码品质提高。数据单位之间的调整例如既可以是PCC帧之间,也可以是瓦片之间或切片之间。属性信息的QP值的调整也可以基于位置信息的编码的速率来调整。
另外,在图96的流程图中,有关位置信息的处理和有关属性信息的处理的处理顺序也可以相反,也可以是并行。
另外,在图96的流程图中,以切片单位的处理为例,但在瓦片单位或其他数据单位下的处理的情况也能够与切片单位同样地处理。即,图96的流程图的切片可以替换为瓦片或其他数据单位。
图97是表示位置信息及属性信息的解码处理的一例的流程图。
如图97所示,三维数据解码装置取得表示位置信息的QP值的基准值及差分信息、和表示属性信息的QP值的基准值及差分信息(S5311)。具体而言,三维数据解码装置将被传输的元数据、编码数据的头部的某一方或双方解析,取得用来导出QP值的基准值及差分信息。
接着,三维数据解码装置使用所取得的基准值及差分信息,基于规定的方法来导出QP值(S5312)。
并且,三维数据解码装置取得量化位置信息,通过使用所导出的QP值对量化位置信息进行逆量化,将位置信息解码(S5313)。
接着,三维数据解码装置取得量化属性信息,通过使用所导出的QP值对量化属性信息进行逆量化,将属性信息解码(S5314)。
接着,对量化参数的传输方法进行说明。
图98是用来说明量化参数的传输方法的第1例的图。图98的(a)是表示QP值的关系的一例的图。
在图98中,QG及QA分别表示在位置信息的编码中使用的QP值的绝对值、以及在属性信息的编码中使用的QP值的绝对值。QG是为了对多个三维点各自的位置信息进行量化而使用的第1量化参数的一例。此外,Δ(QA,QG)示出表示与在QA的导出中使用的QG的差分的差分信息。即,使用QG和Δ(QA,QG)导出QA。这样,将QP值分为基准值(绝对值)和差分信息(相对值)来传输。此外,在解码中,根据被传输的基准值及差分信息来导出希望的QP值。
例如,在图98的(a)中,传输绝对值QG和差分信息Δ(QA,QG),在解码中,如下述的(式G5)所示,通过对QG加上Δ(QA,QG)而导出QA
QA=QG+Δ(QA,QG) (式G5)
说明使用图98的(b)及(c)将由位置信息及属性信息构成的点群数据进行切片分割的情况下的QP值的传输方法。图98的(b)是表示各QP值的基准值与差分信息的关系的第1例的图。图98的(c)是表示QP值、位置信息及属性信息的传输顺序的第1例的图。
QP值按每个位置信息及按每个属性信息,大体上被分为PCC的帧单位的QP值(帧QP)和数据单位的QP值(数据QP)。数据单位的QP值是在图96的步骤S5301中决定的、在编码中使用的QP值。
这里,将作为在PCC帧单位的位置信息的编码中使用的QP值的QG设为基准值,关于数据单位的QP值,作为表示与QG的差分的差分信息来生成并送出。
QG:PCC帧中的位置信息的编码的QP值…使用GPS作为基准值“1.”被送出
QA:PCC帧中的属性信息的编码的QP值…使用APS作为表示与QG的差分的差分信息“2.”被送出
QGs1、QGs2:切片数据中的位置信息的编码的QP值…使用位置信息的编码数据的头部,作为表示与QG的差分的差分信息“3.”及“5.”被送出
QAs1、QAs2:切片数据中的属性信息的编码的QP值…使用属性信息的编码数据的头部,作为表示与QA的差分的差分信息“4.”及“6.”被送出
另外,在帧QP的导出中使用的信息被记载在有关帧的元数据(GPS,APS)中,在数据QP的导出中使用的信息被记载在有关数据的元数据(编码数据的头)中。
这样,数据QP作为表示与帧QP的差分的差分信息而被生成并送出。由此,能够削减数据QP的数据量。
第1解码部5340在各个编码数据中,参照由图98的(c)的箭头表示的元数据,取得与该编码数据对应的基准值及差分信息。并且,第1解码部5340基于所取得的基准值及差分信息,导出与解码对象的编码数据对应的QP值。
第1解码部5340例如从元数据或头取得在图98的(c)中用箭头表示的基准信息“1.”及差分信息“2.”“6.”,如用下述的(式G6)表示那样,通过对基准信息“1.”加上差分信息“2.”及“6.”,导出As2的QP值。
QAS2=QG+Δ(QA,QG)+Δ(QAs2,QA) (式G6)
点群数据包含位置信息和0以上的属性信息。即,点群数据既有不具有属性信息的情况,也有具有多个属性信息的情况。
例如,对于1个三维点,作为属性信息,有具有颜色信息的情况、具有颜色信息和反射信息的情况、具有与1个以上的视点信息分别建立关联的1个以上的颜色信息的情况等。
这里,使用图99对具有两个颜色信息、及反射信息的情况下的例子进行说明。图99是用来说明量化参数的传输方法的第2例的图。图99的(a)是表示各QP值的基准值与差分信息的关系的第2例的图。图99的(b)是表示QP值、位置信息及属性信息的传输顺序的第2例的图。
QG与图98同样,是第1量化参数的一例。
两个颜色信息分别由亮度(Luma)Y和色差(chroma)Cb、Cr表示。作为在第1颜色的亮度Y1的编码中使用的QP值的QY1使用作为基准值的QG和表示其差分的Δ(QY1,QG)来导出。亮度Y1是第1亮度的一例,QY1是为了对作为第1亮度的亮度Y1进行量化而使用的第2量化参数的一例。Δ(QY1,QG)是差分信息“2.”。
此外,作为在第1颜色的色差Cb1、Cr1的编码中使用的QP值的QCb1、QCr1分别使用QY1和表示其差分的Δ(QCb1,QY1)、Δ(QCr1,QY1)来导出。色差Cb1、Cr1是第1色差的一例,QCb1、QCr1是为了对作为第1色差的色差Cb1、Cr1进行量化而使用的第3量化参数的一例。Δ(QCb1,QY1)是差分信息“3.”,Δ(QCr1,QY1)是差分信息“4.”。Δ(QCb1,QY1)及Δ(QCr1,QY1)分别是第1差分的一例。
另外,QCb1及QCr1既可以使用相互相同的值,也可以使用共同的值。在使用共同的值的情况下,由于只要使用QCb1及QCr1的一方就可以,所以另一方没有也可以。
此外,作为在切片数据的第1颜色的亮度Y1D的编码中使用的QP值的QY1D使用QY1和表示其差分的Δ(QY1D,QY1)来导出。切片数据的第1颜色的亮度Y1D是子空间中包含的1个以上的三维点的第1亮度的一例,QY1D是为了对亮度Y1D进行量化而使用的第5量化参数的一例。Δ(QY1D,QY1)是差分信息“10.”,是第2差分的一例。
同样,作为在切片数据的第1颜色的色差Cb1D、Cr1D的编码中使用的QP值的QCb1D、QCr1D分别使用QCb1、QCr1和表示其差分的Δ(QCb1D,QCb1)、Δ(QCr1D,QCr1)来导出。切片数据的第1颜色的色差Cb1D、Cr1D是子空间中包含的1个以上的三维点的第1色差的一例,QCb1D、QCr1D是为了对色差Cb1D、Cr1D进行量化而使用的第6量化参数的一例。Δ(QCb1D,QCb1)是差分信息“11.”,Δ(QCr1D,QCr1)是差分信息“12.”。Δ(QCb1D,QCb1)及Δ(QCr1D,QCr1)是第3差分的一例。
第1颜色的QP值的关系对于第2颜色也可以说是同样的,所以省略说明。
作为在反射率R的编码中使用的QP值的QR,使用作为基准值的QG和表示其差分的Δ(QR,QG)来导出。QR是为了对反射率R进行量化而使用的第4量化参数的一例。Δ(QR,QG)是差分信息“8.”。
此外,作为在切片数据的反射率RD的编码中使用的QP值的QRD,使用QR和表示其差分的Δ(QRD,QR)来导出。Δ(QRD,QR)是差分信息“16.”。
这样,差分信息“9.”~“16.”表示数据QP和帧QP的差分信息。
另外,例如在数据QP和帧QP的值是相同值的情况下,既可以将差分信息设为0,也可以通过不送出差分信息而看作0。
第1解码部5340例如在将第2颜色的色差Cr2解码时,从元数据或头取得由图99的(b)的箭头表示的基准信息“1.”及差分信息“5.”、“7.”及“15.”,如由下述的(式G7)表示那样,通过对基准信息“1.”加上差分信息“5.”“7.”及“15.”,导出色差Cr2的QP值。
QCr2D=QG+Δ(QY2,QG)+Δ(QCr2,QY2)+Δ(QCr2D,QCr2) (式G7)
接着,使用图100对将位置信息及属性信息二分割为瓦片后、二分割为切片的情况下的例子进行说明。图100是用来说明量化参数的传输方法的第3例的图。图100的(a)是表示各QP值的基准值与差分信息的关系的第3例的图。图100的(b)是表示QP值、位置信息及属性信息的传输顺序的第3例的图。图100的(c)是用来说明第3例中的差分信息的中间生成值的图。
在分割为多个瓦片后、进一步分割为多个切片的情况下,如图100的(c)所示,在分割为瓦片后,生成各个瓦片的QP值(QAt1)及差分信息Δ(QAt1,QA)作为中间生成值。并且,在分割为切片后,生成各切片的QP值(QAt1s1,QAt1s2)及差分信息(Δ(QAt1s1,QAt1)、Δ(QAt1s2,QAt1))。
在此情况下,例如图100的(a)中的差分信息“4.”通过以下的(式G8)导出。
Δ(QAt1s1,QA)=Δ(QAt1,QA)+Δ(QAt1s1,QAt1) (式G8)
第1解码部5340例如在将瓦片2的切片1的属性信息At2s1解码时,从元数据或头取得由图100的(b)的箭头表示的基准信息“1.”及差分信息“2.”,“8.”,如由下述的(式G9)表示那样,通过对基准信息“1.”加上差分信息“2.”、“8.”,导出属性信息At2s1的QP值。
QAt2s1=QG+Δ(QAt2s1,QA)+Δ(QA,QG) (式G9)
接着,对有关本实施方式的点群数据的编码处理及解码处理的流程进行说明。图101是有关本实施方式的点群数据的编码处理的流程图。
首先,三维数据编码装置决定要使用的分割方法(S5321)。该分割方法包括是否进行瓦片分割、是否进行切片分割。此外,分割方法也可以包括进行瓦片分割或切片分割的情况下的分割数量及分割种类等。分割种类是上述那样的基于对象形状的方法、基于地图信息或位置信息的手法、或基于数据量或处理量的方法等。另外,分割方法也可以被预先设定。
在进行瓦片分割的情况下(在S5322中是),三维数据编码装置通过将位置信息和属性信息以瓦片单位进行分割,生成多个瓦片位置信息及多个瓦片属性信息(S5323)。此外,三维数据编码装置生成有关瓦片分割的瓦片附加信息。
在进行切片分割的情况下(在S5324中是),三维数据编码装置通过将多个瓦片位置信息及多个瓦片属性信息(或位置信息及属性信息)分割,生成多个分割位置信息及多个分割属性信息(S5325)。此外,三维数据编码装置生成有关切片分割的位置切片附加信息及属性切片附加信息。
接着,三维数据编码装置通过将多个分割位置信息及多个分割属性信息分别编码,生成多个编码位置信息及多个编码属性信息(S5326)。此外,三维数据编码装置生成依赖关系信息。
接着,三维数据编码装置通过将多个编码位置信息、多个编码属性信息及附加信息进行NAL单元化(复用),生成编码数据(编码流)(S5327)。此外,三维数据编码装置送出所生成的编码数据。
图102是表示在瓦片的分割(S5323)或切片的分割(S5325)中决定QP值、更新附加信息的处理的一例的流程图。
在步骤S5323、S5325中,瓦片及/或切片的位置信息及属性信息既可以用各自的方法独立地单独分割,也可以共同一起分割。由此,生成按每个瓦片及/或按每个切片分割的附加信息。
此时,三维数据编码装置按分割后的每个瓦片及/或每个切片,决定QP值的基准值及差分信息(S5331)。具体而言,三维数据编码装置决定在图98~图100中例示那样的基准值及差分信息。
并且,三维数据编码装置更新附加信息,以包含所决定的基准值及差分信息(S5332)。
图103是表示在编码(S5326)的处理中将所决定的QP值编码的处理的一例的流程图。
三维数据编码装置将在步骤S5331中决定的QP值编码(S5341)。具体而言,三维数据编码装置将更新后的附加信息中包含的QP值的基准值及差分信息编码。
并且,三维数据编码装置继续进行编码处理,直到满足编码处理的停止条件、例如直到不再有编码对象的数据(S5342)。
图104是有关本实施方式的点群数据的解码处理的流程图。首先,三维数据解码装置通过将编码数据(编码流)中包含的有关分割方法的附加信息(瓦片附加信息、位置切片附加信息及属性切片附加信息)解析,判定分割方法(S5351)。该分割方法包括是否进行瓦片分割、是否进行切片分割。此外,分割方法也可以包括进行瓦片分割或切片分割的情况下的分割数量及分割种类等。
接着,三维数据解码装置通过使用编码数据中包含的依赖关系将编码数据中包含的多个编码位置信息及多个编码属性信息信息解码,生成分割位置信息及分割属性信息(S5352)。
在由附加信息表示进行了切片分割的情况下(在S5353中是),三维数据解码装置通过基于位置切片附加信息及属性切片附加信息将多个分割位置信息和多个分割属性信息结合,生成多个瓦片位置信息及多个瓦片属性信息(S5354)。
在由附加信息表示进行了瓦片分割的情况下(在S5355中是),三维数据解码装置通过基于瓦片附加信息将多个瓦片位置信息及多个瓦片属性信息(多个分割位置信息及多个分割属性信息)结合,生成位置信息及属性信息(S5356)。
图105是表示在按每个切片分割后的信息的结合(S5354)或按每个瓦片分割后的信息的结合(S5356)中取得QP值、将切片或瓦片的QP值解码的处理的一例的流程图。
切片或瓦片的位置信息及属性信息既可以使用各自的方法结合,也可以使用相同的方法结合。
三维数据解码装置根据编码流的附加信息,将基准值及差分信息解码(S5361)。
接着,三维数据解码装置使用解码后的基准值及差分信息计算量化值,将在逆量化中使用的QP值更新为计算出的QP值(S5362)。由此,能够导出用来对每个瓦片或每个切片的量化属性信息进行逆量化的QP值导出。
并且,三维数据解码装置继续进行解码处理,直到满足解码处理的停止条件,例如直到不再有解码对象的数据(S5363)。
图106是表示GPS的句法例的图。图107是表示APS的句法例的图。图108是表示位置信息的头部的句法例的图。图109是表示属性信息的头部的句法例的图。
如图106所示,例如作为位置信息的附加信息的GPS包括表示作为QP值的导出的基准的绝对值的QP_value。QP value例如相当于在图98~图100中例示的QG
此外,如图107所示,例如作为属性信息的附加信息的APS在三维点有多个视点的多个颜色信息的情况下,也可以定义默认的视点,第0个必定记载默认视点的信息。例如,三维数据编码装置在将单一的颜色信息解码或显示的情况下,只要将第0个属性信息解码或显示就可以。
APS包括QP_delta_Attribute_to_Geometry。QP_delta_Attribute_to_Geometry表示与在GPS中记载的基准值(QP_value)的差分信息。该差分信息例如在属性信息是颜色信息的情况下是与亮度的差分信息。
此外,GPS也可以包含表示在Geometry_header(位置信息的头)中是否有用来计算QP值的差分信息的标志。此外,APS也可以包含表示在Attribute_header(属性信息的头)中是否有用来计算QP值的差分信息的标志。标志表示在属性信息中是否有用来计算数据QP的、数据QP与帧QP的差分信息。
这样,在编码流中,在属性信息中的第1颜色由第1亮度及第1色差表示的情况下,在使用用来对第1亮度进行量化的第2量化参数的量化、以及使用用来对第1色差进行量化的第3量化参数的量化中使用第5量化参数及第6量化参数进行了量化的情况下,也可以包含表示使用第5量化参数及第6量化参数进行了量化的识别信息(标志)。
此外,如图108所示,位置信息的头也可以包含表示与GPS中记载的基准值(QP_value)的差分信息的QP_delta_data_to_frame。此外,位置信息的头也可以分为每个瓦片及/或每个切片的信息,按每个瓦片及/或每个切片分别表示对应的QP值。
此外,如图109所示,属性信息的头也可以包括表示与APS中记载的QP值的差分信息的QP_delta_data_to_frame。
在图98~图100中,将QP值的基准值设为PCC帧中的位置信息的QP值而进行了说明,但并不限于此,也可以使用其他的值作为基准值。
图110是用来说明量化参数的传输方法的另一例的图。
图110的(a)及(b)表示设定在PCC帧中的位置信息及属性信息的QP值中共同的基准值Q的第4例。在第4例中,将基准值Q保存到GPS,将位置信息的QP值(QG)与基准值Q的差分信息保存到GPS,将属性信息的QP值(QY及QR)与基准值Q的差分信息保存到APS。另外,基准值Q也可以保存在SPS中。
图110的(c)及(d)表示按每个位置信息及属性信息独立地设定基准值的第5例。在第5例中,在GPS及APS中分别保存位置信息及属性信息的基准的QP值(绝对值)。即,对于位置信息设定基准值QG,对于属性信息的颜色信息设定基准值QY,对于属性信息的反射率设定基准值QR。这样,对于位置信息及多个种类的属性信息也可以分别设定QP值的基准值。另外,第5例也可以与另一例组合。即,第1例中的QA、第2例中的QY1、QY2、QR也可以是QP值的基准值。
图110的(e)及(f)表示在有多个PCC帧的情况下设定在多个PCC帧中共同的基准值Q的第6例。在第6例中,将基准值Q保存在SPS或GSPS中,将各个PCC帧的位置信息的QP值与基准值的差分信息保存在GPS中。另外,例如也可以如GOF那样,在随机访问单位的范围内,例如将随机访问单位的开头帧作为基准值,送出PCC帧之间的差分信息(例如,Δ(QG(1),QG(0)))。
另外,即使在瓦片或切片进一步被分割的情况下,也用同样的方法在数据头中保存与分割单位的QP值的差分信息并送出。
图111是用来说明量化参数的传输方法的另一例的图。
图111(a)及(b)表示设定在PCC帧中的位置信息及属性信息中共同的基准值QG的第7例。在第7例中,将基准值QG保存在GPS中,将与位置信息或属性信息的差分信息保存在各个数据头中。基准值QG也可以保存在SPS中。
此外,图111的(c)及(d)表示将属性信息的QP值用与属于同一个切片及瓦片的位置信息的QP值的差分信息表示的第8例。在第8例中,基准值QG也可以保存在SPS中。
图112是用来说明量化参数的传输方法的第9例的图。
图112的(a)及(b)是将属性信息中共同的QP值解析,分别表示与位置信息的QP值的差分信息、与属性信息中共同的QP值的差分信息的第9例。
图113是用来说明QP值的控制例的图。
量化参数的值越低则品质越提高,但由于需要更多的比特,所以编码效率下降。
例如,在将三维点群数据分割为瓦片而编码时,在瓦片中包含的点群数据是主要道路的情况下,使用预先定义的属性信息的QP值进行编码。另一方面,由于周围的瓦片不是重要的信息,所以通过将QP值的差分信息设定为正值,使数据的品质下降,有可能能够提高编码效率。
进而,在将分割为瓦片的三维点群数据分割为切片而编码时,对于人行道、树及建筑物而言,在自动驾驶中为了进行位置估计(定位及映射)是重要的,所以将QP值设定为负值,移动体及其他由于重要性较低,所以将QP值设定为正值。
图113(b)示出了基于瓦片及切片中包含的对象导出预先设定有量化delta值的情况下的差分信息的例子。例如,在分割数据是“主要道路”这一瓦片中包含的“建筑物”的切片数据的情况下,将“主要道路”这一瓦片的量化delta值0与“建筑物”这一切片数据的量化delta值-5相加,将差分信息导出为-5。
图114是表示基于对象的品质的QP值的决定方法的一例的流程图。
三维数据编码装置基于地图信息,将点群数据分割为1个以上的瓦片,判定在1个以上的瓦片各自中包含的对象(S5371)。具体而言,三维数据编码装置例如使用通过机器学习得到的学习模型,进行识别对象是什么的物体识别处理。
接着,三维数据编码装置判定是否将处理对象的瓦片以高品质编码(S5372)。高品质下的编码例如是以比规定的速率大的比特率进行编码。
接着,三维数据编码装置在将处理对象的瓦片以高品质编码的情况下(在S5372中是),设定瓦片的QP值以使编码品质变高(S5373)。
另一方面,三维数据编码装置在不将处理对象的瓦片以高品质编码的情况下(在S5372中否),设定瓦片的QP值以使编码品质变低(S5374)。
在步骤S5373或步骤S5374之后,三维数据编码装置判定瓦片内的对象,分割为1个以上的切片(S5375)。
接着,三维数据编码装置判定是否将处理对象的切片以高品质编码(S5376)。
接着,三维数据编码装置在将处理对象的切片以高品质编码的情况下(在S5376中是),设定切片的QP值以使编码品质变高(S5377)。
另一方面,三维数据编码装置在不将处理对象的切片以高品质编码的情况下(在S5376中否),设定切片的QP值以使编码品质变低(S5378)。
接着,三维数据编码装置基于所设定的QP值,决定用规定的方法传输的基准值及差分信息,将所决定的基准值及差分信息保存到附加信息及数据的头部的至少一方(S5379)。
接着,三维数据编码装置基于所决定的QP值,对位置信息及属性信息进行量化、编码(S5380)。
图115是表示基于速率控制的QP值的决定方法的一例的流程图。
三维数据编码装置将点群数据依次编码(S5381)。
接着,三维数据编码装置根据编码数据的编码量及编码缓冲器的占用量,判定有关编码处理的速率控制状况,决定下次编码的品质(S5382)。
接着,三维数据编码装置判定是否提高编码品质(S5383)。
接着,三维数据编码装置在提高编码品质的情况下(在S5383中是),设定瓦片的QP值以使编码品质变高(S5384)。
另一方面,三维数据编码装置在不提高编码品质的情况下(在S5383中否),设定瓦片的QP值以使编码品质变低(S5385)。
接着,三维数据编码装置基于所设定的QP值,决定用规定的方法传输的基准值及差分信息,将所决定的基准值及差分信息保存到附加信息及数据的头部的至少一方(S5386)。
接着,三维数据编码装置基于所决定的QP值,对位置信息及属性信息进行量化、编码(S5387)。
如以上这样,有关本实施方式的三维数据编码装置进行图116所示的处理。首先,三维数据编码装置使用第1量化参数对多个三维点各自的位置信息进行量化(S5391)。三维数据编码装置针对表示上述多个三维点各自的属性信息中的第1颜色的第1亮度及第1色差,使用第2量化参数对上述第1亮度进行量化,并且,使用第3量化参数对上述第1色差进行量化(S5392)。三维数据编码装置生成包含量化后的上述位置信息、量化后的上述第1亮度、量化后的上述第1色差、上述第1量化参数、上述第2量化参数、以及上述第2量化参数与上述第3量化参数的第1差分的比特流(S5393)。
由此,在比特流中,用与第2量化参数的第1差分表示第3量化参数,所以能够提高编码效率。
例如,三维数据编码装置还使用第4量化参数,对上述多个三维点各自的上述属性信息中的反射率进行量化。此外,在上述生成中,生成还包含量化后的上述反射率及上述第4量化参数的比特流。
例如,在使用上述第2量化参数的量化中,在按照将包含上述多个三维点的对象空间进行分割而得到的多个子空间的每一个子空间、对该子空间中包含的1个以上的三维点的上述第1亮度进行量化的情况下,还使用第5量化参数对上述子空间中包含的1个以上的三维点的上述第1亮度进行量化。在使用上述第3量化参数的量化中,在对上述1个以上的三维点的上述第1色差进行量化的情况下,还使用第6量化参数对上述1个以上的三维点的上述第1色差进行量化。在上述生成中,生成还包含上述第2量化参数与上述第5量化参数的第2差分、以及上述第3量化参数与上述第6量化参数的第3差分的比特流。
由此,在比特流中,用与第2量化参数的第2差分表示第5量化参数,并且用与第3量化参数的第3差分表示第6量化参数,所以能够提高编码效率。
例如,在上述生成中,在使用上述第2量化参数的量化及使用上述第3量化参数的量化中使用上述第5量化参数及上述第6量化参数进行量化的情况下,生成还包括以下识别信息的比特流,该识别信息表示使用上述第5量化参数及上述第6量化参数进行了量化。
由此,取得了比特流的三维数据解码装置能够使用识别信息判定为使用第5量化参数及第6量化参数进行了量化,所以能够减小解码处理的处理负荷。
例如,三维数据编码装置还针对表示上述多个三维点各自的属性信息中的第2颜色的第2亮度及第2色差,使用第7量化参数对上述第2亮度进行量化,并且使用第8量化参数对上述第2色差进行量化。在上述生成中,生成还包含量化后的上述第2亮度、量化后的上述第2色差、上述第7量化参数、以及上述第7量化参数与上述第8量化参数的第4差分的比特流。
由此,在比特流中,用与第7量化参数的第4差分表示第8量化参数,所以能够提高编码效率。此外,在三维点的属性信息中可以包含两种颜色信息。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,有关本实施方式的三维数据解码装置进行图117所示的处理。首先,三维数据解码装置通过取得比特流,取得包含量化后的位置信息、量化后的第1亮度、量化后的第1色差、第1量化参数、第2量化参数、以及上述第2量化参数与第3量化参数的第1差分(S5394)。三维数据解码装置通过使用上述第1量化参数对上述量化后的位置信息进行逆量化,计算多个三维点的位置信息(S5395)。三维数据解码装置通过使用上述第2量化参数对上述量化后的第1亮度进行逆量化,计算表示上述多个三维点的第1颜色的第1亮度及第1色差中的上述第1亮度(S5396)。三维数据解码装置通过使用根据上述第2量化参数及上述第1差分得到的上述第3量化参数对上述量化后的第1色差进行逆量化,计算上述第1色差(S5397)。
因此,三维数据解码装置能够将三维点的位置信息及属性信息正确地解码。
例如,在上述取得中,通过取得上述比特流,还取得量化后的反射率及第4量化参数。三维数据解码装置还使用上述第4量化参数对上述量化后的反射率进行逆量化,由此计算上述多个三维点的反射率。
因此,三维数据解码装置能够将三维点的反射率正确地解码。
例如,在上述取得中,通过取得上述比特流,还取得上述第2量化参数与第5量化参数的第2差分、以及上述第3量化参数与第6量化参数的第3差分。在上述第1亮度的计算中,在上述量化后的第1亮度是按照将包含上述多个三维点的对象空间进行分割而得到的多个子空间的每一个子空间、对该子空间中包含的1个以上的三维点的第1亮度进行量化而得到的亮度的情况下,使用根据上述第2量化参数及上述第2差分得到的上述第5量化参数对上述量化后的第1亮度进行逆量化,由此计算上述1个以上的三维点的上述第1亮度。在上述第1色差的计算中,在上述量化后的第1色差是对上述1个以上的三维点的第1色差进行量化而得到的色差的情况下,使用根据上述第3量化参数及上述第3差分得到的上述第6量化参数对上述量化后的第1色差进行逆量化,由此计算上述1个以上的三维点的上述第1色差。
例如,在上述取得中,通过取得上述比特流,还取得表示使用上述第5量化参数及上述第6量化参数进行了量化的识别信息。在上述第1亮度的计算中,在上述识别信息表示使用上述第5量化参数及上述第6量化参数进行了量化的情况下,判定为上述量化后的第1亮度是对上述1个以上的三维点的上述第1亮度进行量化而得到的亮度。在上述第1色差的计算中,在上述识别信息表示使用上述第5量化参数及上述第6量化参数进行了量化的情况下,判定为上述量化后的第1色差是对上述1个以上的三维点的上述第1色差进行量化而得到的色差。
由此,三维数据解码装置能够使用识别信息判定出使用第5量化参数及第6量化参数进行了量化,所以能够减小解码处理的处理负荷。
例如,在上述取得中,通过取得上述比特流,还取得量化后的第2亮度、量化后的第2色差、第7量化参数、以及上述第7量化参数与第8量化参数的第4差分。三维数据解码装置还使用上述第7量化参数对上述量化后的第2亮度进行逆量化,由此计算表示上述多个三维点的第2颜色的第2亮度及第2色差中的上述第2亮度。此外,三维数据解码装置还使用根据上述第7量化参数及上述第4差分得到的上述第8量化参数对上述量化后的第2色差进行逆量化,由此计算上述第2色差。
因此,三维数据解码装置能够将三维点的第2颜色正确地解码。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式12)
在上述实施方式8中说明的三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置中,也可以进行在本实施方式中说明的处理。
图118是用来对有关实施方式12的量化参数的传输方法的一例进行说明的图。图118的(a)表示在位置信息及属性信息各自中设定了QP值的基准值的例子。图118与实施方式8的图105相比,主要是与位置信息同样对属性信息也设定了QP值的基准值这一点不同。即,将包括第1颜色、第2颜色及反射率的多个属性信息中的某1个属性信息的QP值表示为基准值,将其他属性信息的QP值表示为与共同基准值的差分信息。
在图118中,作为在第1颜色的亮度Y1的编码中使用的QP值的QY1被设定为在包括第1颜色、第2颜色及反射率的多个属性信息间共同的基准值。此外,作为第2颜色的基准值的QY2使用作为共同的基准值的QY1和与QY1的差分信息“5.”的Δ(QY2,QY1)来导出。作为反射率的基准值的QR使用作为共同基准值的QY1和与QY1的差分信息“8.”的Δ(QR,QY1)来导出。在此情况下,作为共同基准值的QY1被包含在作为与第1颜色对应的APS的APS1中。
此外,第4属性也可以被设定与作为共同基准值的QY1独立的基准值。此外,第5属性也可以不具有QP值。这样,也可以混合存在用来导出在多个属性信息的量化中使用的多个QP值的共同基准值利用于量化的属性信息、以及与共同基准值独立的基准值利用于量化的属性信息。此外,也可以还混合存在QP值不利用于编码的属性信息。
另外,在图118的例子中,说明了在第1颜色的属性信息的量化中使用的QP值是用来导出在多个属性信息的量化中使用的QP值的共同基准值的例子,但也可以按照以下的规则来决定共同基准值。例如,在SPS等的控制信息中记载全部的属性信息的情况下,也可以将在全部的属性信息中的在SPS中最初表示的属性信息中包含的QP值设定为共同基准值。或者,在SPS等的控制信息中,也可以示出被设定为共同基准值的QP值利用于量化的属性信息。相反,在SPS等的控制信息中,也可以在多个属性信息的最初示出被设定为共同基准值的QP值利用于量化的属性信息。不论使用哪种方法,都将在多个属性信息各自的量化中使用的各QP值用基准值与差分信息的组合的信息表示,由此能够期待编码数据的削减。
另外,也可以将每个属性信息的基准值QY1、QY2、QR分别独立地用APS表示,属于第1颜色的QP值以QY1为基准值,属于第2颜色的QP值以QY2为基准值,属于反射率的QP值以QR为基准值。即,在此情况下,QY2及QR与QY1同样用绝对值表示。
第1例是表示将多个属性信息的元数据一起记载在1个APS中的情况下的属性信息的QP值的方法。
图119是表示APS的句法及属性信息的头部的句法的第1例的图。
首先,对APS的句法例进行说明。
aps_idx表示APS的索引号。aps_idx表示APS与属性信息的头之间的对应关系。
sps_idx表示APS所对应的SPS的索引号。
num_of_attribute表示属性信息的数量。另外,在按每个属性信息设定APS的情况下,num_of_attribute的字段或循环也可以不包含在APS中。
attribute_type表示属性信息的类型、即属性信息的种类。另外,在属性信息的类型记载在对应的SPS中的情况下,也可以代替attribute_type而将用来参照在SPS中记载的属性信息的类型的信息包含在APS中。
在图119中由虚线6701包围的if语句中,表示与attribute_type对应的QP值。例如,在属性信息的类型是颜色的情况下,将由绝对值表示的亮度(流明)的QP值表示为基准值,将色差(色度:Cb、Cr)的QP值表示为与亮度的QP值的差分信息。
另一方面,在属性信息的类型是反射率的情况下,示出由绝对值表示的反射率的QP值。此外,属性信息的类型作为其他例,在不具有QP值的情况下不示出QP值。
此外,在属性信息有2个以上的情况下,属性信息的基准值(这里是QP_value_Luma或QP_value)也可以由与其他属性信息的基准值的差分来表示。例如,在num_of_attribute的循环中,也可以在i=0的情况下示出共同的属性信息的基准值,在i=>1的情况下,示出与共同的属性信息的差分值。
data_QP_delata_present_flag是表示在属性信息的头中是否存在各个Data(切片)的QP值的标志。在该标志是1的情况下,在属性信息的头中示出各个Data(切片)的QP值。
接着,对属性信息的头部的句法例进行说明。
在属性信息的头中也包含有aps_idx。由此,由APS及在属性信息的头中包含的aps_idx表示APS与属性信息的头之间的对应关系。即,具有共同的aps_idx则表示APS及属性信息的头相互处于对应关系。
attribute_type表示属性信息的类型(属性信息的种类)。另外,在属性信息的类型被记载在对应的APS或SPS中的情况下,也可以代替attribute_type而将用来参照记载在APS或SPS中的属性信息的类型的信息包含在属性信息的头中。
由虚线6702包围的if语句中的各字段、即QP_delata_data_to_frame、QP_delta1_to_frame及QP_delta2_to_frame各自的QP值表示与attribute_type对应的数据的QP值。各QP值表示与在APS中记载的值的差分信息。
第2例是表示将1个属性信息的元数据独立地记载到1个APS中的情况下的属性信息的QP值的方法。在第2例中,通过做成在各种各样的类型(种类)的属性信息中共同的头结构,有避免与属性信息相应的句法结构的变化的效果。
图120是表示APS的句法的第2例的图。图121是表示属性信息的头部的句法的第2例的图。
在APS中包含帧的QP值的基准值及差分值。此外,在APS的data_QP_delta_present_flag为1的情况下,在属性信息的头中包含与APS的基准值的差分信息。
这里,假设不论属性信息的类型是颜色、反射率、帧号等中的哪一个,有关QP值的字段都总是存在。不论属性信息的类型如何,APS都具有保存N个(N是2以上)QP值的第1数量的字段。这里,N例如是3。
例如,在属性信息的类型是颜色的情况下,在APS的QP_value中,保存表示流明的QP值的信息,在QP_delta1及QP_delta2中保存表示色度的QP值的信息。例如,QP_value是基准值,QP_delta1及QP_delta2是以QP_value为基准的差分信息。即,流明的QP值由QP_value表示,色度的QP值由对QP_value加上QP_delta1后的值以及对QP_value加上QP_delta2后的值表示。这样,在APS中,包含用来将对应的属性信息量化的量化参数的基准值。
此外,同样,在属性信息的头部的QP_delata_data_to_frame中,保存流明的QP值与对应的APS的QP_value的差分信息。此外,在QP_delta1_to_frame及QP_delta2_to_frame中,也可以保存色度的QP值与对应的APS的QP_delta1及QP_delta2的差分信息。
此外,例如在属性信息的类型是反射率的情况下,也可以在APS的QP_value中保存表示反射率的QP值的信息,在QP_delta1及QP_delta2中保存表示总为0或无效的信息。此外同样,也可以在属性信息的头部的QP_delata_data_to_frame中保存表示反射率的QP值的信息,在QP_delta1_to_frame及QP_delta2_to_frame中保存表示总为0或无效的信息。在此情况下,三维数据解码装置也可以将保存有表示是0或无效的信息的、QP_delta1及QP_delta2以及QP_delta1_to_frame及QP_delta2_to_frame中保存的信息无论该信息如何都不用于解码而忽视。
此外,例如在属性信息的类型作为其他例而不具有QP值的情况下,也可以在APS的全部字段中保存表示是0或无效的信息。在此情况下,还可以将data_AP_delta_present_flag设为0。在此情况下,三维数据解码装置也可以将保存有表示是0或无效的信息的、QP_delta1及QP_delta2以及QP_delta1_to_frame及QP_delta2_to_frame中保存的信息无论该信息如何都不用于解码而忽视。这样,三维数据解码装置也可以将多个属性信息的头中的与特定种类的属性对应的特定的属性信息的头部的多个字段中的特定字段中保存的参数忽视。
在这样的构成的情况下,即使在属性信息的类型不同的情况下,也能够通过共同的句法结构,用基准值和差分信息的组合来表示QP值,所以能够期待编码率的提高。
另外,在与1个位置信息对应的属性信息具有2个以上的颜色信息的情况下,也可以用共同的QP基准值和其差分信息表示,反射率的QP基准值独立地用APS表示等,根据属性信息的类型改变表示方式。
并不限于在实施方式8及本实施方式中说明的方法,即可以将基准值分为基准值和差分信息来发信号(Signalng),也可以将差分信息独立地作为基准值发信号。例如,也可以在需要独立的解码的单位的情况下,送出至少1个基准值,在不需要独立的解码的单位的情况下送出差分信息等,根据数据的特性而自适应地使基准值及差分信息的组合变化。由此,能够期待功能提升和编码量削减双方的效果。
或者,也可以计算基准值和差分信息的组合的信息量,基于计算结果,生成例如计算结果成为最小的基准值和差分信息的组合并送出。在自适应地切换的情况下,也可以使表示基准值的字段和表示差分信息的字段的意义(语义,semantics)自适应地变化。例如也可以如是否按照如上所述的规则将各字段设为无效等那样,改变各字段的意义,也可以追加表示对各字段的意义进行切换的标志。此外,也可以自适应地改变基准值的参照目的地。在此情况下,也可以示出表示参照目的地发生了变化的标志或用来确定参照目的地的Id等。
接着,使用图122对使用attribute_component_id表示记载在SPS中的属性信息与APS及Attribute_header(属性信息的头部)的关系的方法进行说明。图122是表示SPS、APS及属性信息的头部的关系的图。另外,在图122中,箭头的尖部表示参照目的地。
在SPS中包含与多个属性信息的类型有关的信息。这样,SPS也可以与多个属性信息对应,并且包含分别表示相互不同的属性信息的种类的多个attribute_type。此外,SPS按属性信息的每个类型,包含表示用来识别属性信息的类型的号码的attribute_component_id。另外,SPS是控制信息的一例。attribute_type是种类信息的一例。SPS中包含的attribute_component_id是表示与多个种类信息中的某一个建立了对应的第1识别信息的一例。
APS或Attribute_header包含与SPS中包含的attribute_component_id对应的attribute_component_id。另外,APS是第2属性控制信息的一例。Attribute_header是第1属性控制信息的一例。APS中包含的attribute_component_id是表示与多个种类信息中的某一个建立了对应的第2识别信息的一例。
三维数据解码装置参照由APS或Attribute_header中包含的sps_idx表示的SPS。并且,三维数据解码装置在参照的SPS中,取得与该APS或该Attribute_header中包含的attribute_component_id对应的属性信息的类型,作为该APS或该Attribute_header中包含的信息所对应的属性信息的类型。另外,1个APS与属性信息的类型的1个对应。此外,1个属性信息的头与属性信息的类型的1个对应。多个APS分别对应着1个以上的属性信息的头。即,1个APS对应着与对应于其他APS的1个以上的属性信息的头不同的1个以上的属性信息的头。
例如,在attribute_component_id=0的情况下,三维数据解码装置可以从SPS中取得相同的、即与值为0的attribute_component_id对应的属性信息(attribute_type等)。
另外,在SPS中,也可以代替attribute_component_id而使用在SPS中记载的属性信息的顺序。即,表示多个属性信息的种类的种类信息也可以在SPS中以规定的顺序被保存(记述)。在此情况下,APS或Attribute_header中包含的attribute_component_id表示包含attribute_component_id的APS或Attribute_header与规定的顺序中的一个序号的种类信息建立了对应。
或者,也可以通过使APS或属性信息的送出顺序与记载在SPS中的属性信息的顺序一致,三维数据解码装置导出APS或属性信息的到达顺序,参照与到达顺序对应的属性信息。此外,在点群数据包含APS或Attribute_header按每个帧存在或不存在的属性信息和APS或Attribute_header按每个帧总是存在的属性信息的情况下,也可以以按每个帧总是存在的属性信息的序号为先、以有时可能不存在的属性信息的序号为后而送出。
另外,在图118及图122中,在1个帧中表示了与多个属性信息分别对应的多个APS,但也可以代替多个APS而使用1个APS。即,该情况下的1个APS包含与多个属性信息对应的关于属性信息的信息。
此外,aps_idx也可以包含相当于帧号的序列号。由此,也可以表示APS与Attribute_header的对应关系。另外,aps_idx也可以具有attirubte_component_id的功能。通过该方法,能够将与1个以上的种类的APS或属性信息有关的序列整体的信息保存到SPS中,从各APS或各Attribute_header参照。
另外,作为判定APS或Attribute_header的属性信息的种类(attribute_type)的方法,也可以在APS或Attribute_header中直接包含attribute_type,也可以作为NAL单元的种类而在NAL单元头中包含attribute_type。
使用哪种方法,都能够进行APS或Attribute_hedaer的属性信息的取得及属性的种类的判定。
如以上这样,有关本实施方式的三维数据编码装置进行图123所示的处理。首先,三维数据编码装置使用参数将多个三维点各自所具有的多个属性信息编码(S6701)。三维数据编码装置生成包含编码后的上述多个属性信息、控制信息及多个第1属性控制信息的比特流(S6702)。上述控制信息与上述多个属性信息对应,并且包含分别表示相互不同的属性信息的种类的多个种类信息。此外,上述多个第1属性控制信息与上述多个属性信息分别对应。上述多个第1属性控制信息各自包含表示与上述多个种类信息的某一个建立了对应的第1识别信息。
由此,生成包含用来确定第1属性控制信息所对应的属性信息的种类的第1识别信息的比特流,所以接收到该比特流的三维数据解码装置能够将三维点的属性信息正确且高效地解码。
例如,上述多个种类信息在上述控制信息中以规定的顺序被保存。上述第1识别信息表示包含该第1识别信息的第1属性控制信息与上述规定的顺序中的一个序号的种类信息建立了对应。
由此,即使不附加表示种类信息的信息,由于种类信息被以规定的顺序表示,所以也能够削减比特流的数据量,能够削减比特流的传输量。
例如,上述比特流还包括与上述多个属性信息对应的多个第2属性控制信息。上述多个第2属性控制信息各自包含在对应的第1属性信息的编码中使用的参数的基准值。
由此,多个第2属性控制信息各自包含参数的基准值,所以能够使用基准值将该第2属性控制信息所对应的属性信息编码。此外,接收到比特流的三维数据解码装置由于能够使用第2识别信息确定第2属性信息的种类,所以能够将三维点的属性信息正确且高效地解码。
例如,上述第1属性控制信息包含与上述参数的上述基准值的差分即差分信息。因此,能够提高编码效率。
例如,上述比特流还包含与上述多个属性信息对应的多个第2属性控制信息。上述多个第2属性控制信息各自具有表示与上述多个种类信息中的某一个建立了对应的第2识别信息。
由此,生成包含用来确定第2属性控制信息所对应的属性信息的种类的第2识别信息的比特流,所以能够生成能够将三维点的属性信息正确且高效地解码的比特流。
例如,上述多个第1属性控制信息各自具有保存N个(N是2以上)参数的上述N个字段。在上述多个第1属性控制信息中的与特定种类的属性对应的特定的第1属性控制信息中,上述第1数量的字段的一个字段包含表示无效的值。
因此,接收到比特流的三维数据解码装置能够使用第1识别信息确定第1属性信息的种类,在特定的第1属性控制信息的情况下能够省去解码处理,所以能够将三维点的属性信息正确且高效地解码。
例如,在上述编码中,使用作为上述参数的量化参数将上述多个属性信息量化。
由此,将参数使用与基准值的差分来表示,所以能够提高有关量化的编码效率。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,有关本实施方式的三维数据解码装置进行图124所示的处理。首先,三维数据解码装置通过取得比特流而取得编码后的多个属性信息及参数(S6711)。三维数据解码装置使用上述参数将上述编码后的多个属性信息解码,从而将多个三维点各自所具有的多个属性信息解码(S6712)。上述比特流包含控制信息及多个第1属性控制信息。上述控制信息与上述多个属性信息对应,并且包含分别表示相互不同的属性信息的种类的多个种类信息。上述多个第1属性控制信息与上述多个属性信息分别对应。上述多个第1属性控制信息各自包含表示与上述多个种类信息中的某一个建立了对应的第1识别信息。
由此,三维数据解码装置能够使用第1识别信息确定第1属性控制信息所对应的属性信息的种类,所以能够将三维点的属性信息正确且高效地解码。
例如,上述多个种类信息在上述控制信息中以规定的顺序被保存。上述第1识别信息表示包含该第1识别信息的第1属性控制信息与上述规定的顺序中的一个序号的种类信息建立了对应。
由此,即使不附加表示种类信息的信息,由于种类信息被以规定的顺序表示,所以也能够削减比特流的数据量,能够削减比特流的传输量。
例如,上述比特流还包含与上述多个属性信息对应的多个第2属性控制信息。上述多个第2属性控制信息各自包含在对应的属性信息的编码中使用的参数的基准值。
由此,三维数据解码装置能够使用基准值将第2属性控制信息所对应的属性信息解码,所以能够将三维点的属性信息正确且高效地解码。
例如,上述第1属性控制信息包含与上述参数的上述基准值的差分即差分信息。由此,能够使用基准值及差分信息将属性信息解码,所以能够将三维点的属性信息正确且高效地解码。
例如,上述比特流还包含与上述多个属性信息对应的多个第2属性控制信息。上述多个第2属性控制信息各自具有表示与上述多个种类信息中的某一个建立了对应的第2识别信息。由此,能够使用第2识别信息确定第2属性控制信息所对应的属性信息的种类,所以能够将三维点的属性信息正确且高效地解码。
例如,上述多个第1属性控制信息各自具有保存多个参数的多个字段。在上述解码中,将上述多个第1属性控制信息中的与特定种类的属性对应的特定的第1属性控制信息的上述多个字段中的特定字段中保存的参数忽视。
由此,三维数据解码装置使用第1识别信息确定第1属性信息的种类,在特定的第1属性控制信息的情况下能够省去解码处理,所以能够将三维点的属性信息正确且高效地解码。
例如,在上述解码中,使用作为上述参数的量化参数将上述编码后的多个属性信息逆量化。
由此,能够将三维点的属性信息正确地解码。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式13)
为了实现高压缩,PCC(Point Cloud Compression,点云压缩)数据中包含的属性信息使用Lifting、RAHT(Region Adaptive Hierarchical Transform)或其他变换方法等多个方法进行转换。在此,Lifting是使用LoD(Level of Detail)的变换方法之一。
重要的信号信息具有包含在低频成分中的倾向,因此通过对高频成分进行量化来削减编码量。即,变换处理具有强的能量压缩特性。此外,根据量化参数的大小,由于量化而失去精度。
图125是示出了有关本实施方式的三维数据编码装置的结构的框图。该三维数据编码装置具备减法部7001、变换部7002、变换矩阵保持部7003、量化部7004、量化控制部7005和熵编码部7006。
减法部7001计算输入数据与参照数据的差分即系数值。例如,输入数据是指点群数据中包含的属性信息,是与参照数据的属性信息的预测值。
变换部7002对系数值进行变换处理。例如,该变换处理是将多个属性信息分类为LoD的处理。此外,该变换处理也可以是Haar变换等。变换矩阵保持部7003保持在变换部7002的变换处理中使用的变换矩阵。例如,该变换矩阵是Haar变换矩阵。另外,在此,示出了三维数据编码装置具有进行使用了LoD的变换处理和Haar变换等变换处理双方的功能的例子,但也可以具有某一方的功能。此外,三维数据编码装置也可以选择性地使用这2种变换处理。此外,三维数据编码装置也可以按每个规定的处理单位切换所使用的变换处理。
量化部7004通过对系数值进行量化来生成量化值。量化控制部7005控制量化部7004在量化中使用的量化参数。例如,量化控制部7005可以与编码的阶层结构相应地切换量化参数(或量化步长)。因此,能够通过为每个阶层结构选择适当的量化参数来控制每个阶层的产生编码量。此外,例如,量化控制部7005将包括对主观画质影响小的频率成分的阶层以下的量化参数设定为最大值,并且将该阶层以下的量化系数设为0。因此,能够在抑制主观画质的劣化的同时削减产生编码量。此外,量化控制部7005能够更细致地控制主观画质和产生编码量。在此,阶层是指LoD或RAHT(Haar变换)中的阶层(树结构中的深度)。
熵编码部7006通过对量化系数进行熵编码(例如算术编码)来生成比特流。另外,熵编码部7006对由量化控制部7005设定的每个阶层的量化参数进行编码。
图126是示出了有关本实施方式的三维数据解码装置的结构的框图。该三维数据解码装置具备熵解码部7011、逆量化部7012、量化控制部7013、逆变换部7014、变换矩阵保持部7015和加法部7016。
熵解码部7011从比特流中对量化系数和每个阶层的量化参数进行解码。逆量化部7012通过对量化系数进行逆量化来生成系数值。量化控制部7013基于由熵解码部7011得到的阶层号的量化参数,控制逆量化部7012用于逆量化的量化参数。
逆变换部7014对系数值进行逆变换。例如,逆变换部7014对系数值进行逆Haar变换。变换矩阵保持部7015保持在逆变换部7014的逆变换处理中使用的变换矩阵。例如,该变换矩阵是逆Haar变换矩阵。
加法部7016通过对系数值加上参照数据来生成输出数据。例如,输出数据是指点群数据中包含的属性信息,是与参照数据的属性信息的预测值。
接着,将说明对每个阶层设定量化参数的例子。在Predicting/Lifting等属性信息的编码中,基于LoD的阶层应用不同的量化参数。例如,减小低层的量化参数,提高低层的精度。由此,能够提高高层的预测精度。另外,对于高层,通过增大量化参数,能够削减数据量。这样,能够根据用户的使用方针,对每个LoD单独地设定量化树值(Qt)。在此,量化树值例如是量化参数。
图127是示出了LoD的设定例的图。例如,如图127所示,对LoD0~LoD2设定独立的Qt0~Qt2。
此外,在使用了RAHT的属性信息的编码中,基于树结构的深度而应用不同的量化参数。例如,减小低层的量化参数,提高低层的精度。由此,能够提高高层的预测精度。另外,对于高层,通过增大量化参数,能够削减数据量。这样,能够根据用户的使用方针,按照树结构的每个深度单独地设定量化树值(Qt)。
图128是示出了RAHT的阶层结构(树结构)的例子的图。例如,如图128所示,对树结构的每个深度设定独立的Qt0~Qt2。
以下,说明本实施方式的三维数据编码装置的结构。图129是示出了有关本实施方式的三维数据编码装置7020的结构的框图。三维数据编码装置7020通过编码点群数据(点云)来生成编码数据(编码流)。该三维数据编码装置7020包括分割部7021、多个位置信息编码部7022、多个属性信息编码部7023、附加信息编码部7024以及复用部7025。
分割部7021通过分割点群数据来生成多个分割数据。具体而言,分割部7021通过将点群数据的空间分割为多个子空间来生成多个分割数据。在此,子空间是瓦片以及切片中的一方、或者瓦片以及切片的组合。更具体而言,点群数据包含位置信息、属性信息(颜色或反射率等)以及附加信息。分割部7021通过分割位置信息来生成多个分割位置信息,通过分割属性信息来生成多个分割属性信息。另外,分割部7021生成与分割有关的附加信息。
例如,分割部7021首先将点群分割为瓦片。接着,分割部7021将得到的瓦片进一步分割为切片。
多个位置信息编码部7022通过对多个分割位置信息进行编码来生成多个编码位置信息。例如,位置信息编码部7022使用八叉树等N叉树结构对分割位置信息进行编码。具体而言,在八叉树中,对象空间被分割为8个节点(子空间),并生成表示在各节点中是否包含点群的8比特的信息(占用率编码)。另外,包含点群的节点进一步被分割为8个节点,生成表示在该8个节点的每一个中是否包含点群的8比特的信息。反复进行该处理,直到成为预先设定的阶层或节点所包含的点群的数量的阈值以下为止。例如,多个位置信息编码部7022对多个分割位置信息进行并行处理。
属性信息编码部7023使用由位置信息编码部7022生成的结构信息对属性信息进行编码,由此生成作为编码数据的编码属性信息。例如,属性信息编码部7023基于由位置信息编码部7022生成的八叉树结构,决定在处理对象的对象点(对象节点)的编码中参照的参照点(参照节点)。例如,属性信息编码部7023参照周边节点或邻接节点中的、八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
此外,位置信息或属性信息的编码处理也可以包括量化处理、预测处理以及算术编码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点、或者在编码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,编码的参数是指量化处理中的量化参数、或者算术编码中的上下文等。
附加信息编码部7024通过对点群数据中包含的附加信息和由分割部7021在分割时生成的关于数据分割的附加信息进行编码,生成编码附加信息。
复用部7025通过对多个编码位置信息、多个编码属性信息以及编码附加信息进行复用来生成编码数据(编码流),并送出所生成的编码数据。此外,编码附加信息在解码时使用。
图130是分割部7021的框图。分割部7021包括瓦片分割部7031和切片分割部7032。
瓦片分割部7031通过将位置信息(Position(Geometry))分割成瓦片来生成多个瓦片位置信息。另外,瓦片分割部7031通过将属性信息(Attribute)分割为瓦片来生成多个瓦片属性信息。另外,瓦片分割部7031输出与瓦片分割有关的信息和包含瓦片分割中生成的信息的瓦片附加信息(Tile MetaData)。
切片分割部7032通过将多个瓦片位置信息分割成切片来生成多个分割位置信息(多个切片位置信息)。另外,切片分割部7032通过将多个瓦片属性信息分割成切片来生成多个分割属性信息(多个切片属性信息)。另外,切片分割部7032输出与切片分割有关的信息、以及包含在切片分割中生成的信息的切片附加信息(Slice MetaData)。
另外,瓦片分割部7031和切片分割部7032基于所生成的附加信息来决定量化树值(量化参数)。
图131是属性信息编码部7023的框图。属性信息编码部7023包括变换部7035、量化部7036和熵编码部7037。
变换部7035将分割属性信息分类到LoD等的阶层中,并且通过计算分割属性信息与预测值之间的差分来生成系数值(差分值)。此外,变换部7035也可以通过对分割属性信息进行Haar变换来生成系数值。
量化部7036通过量化系数值来生成量化值。具体而言,量化部7036将系数除以基于量化参数的量化步长。熵编码部7037通过对量化值进行熵编码来生成编码属性信息。
以下,说明本实施方式的三维数据解码装置的结构。图132是示出了三维数据解码装置7040的结构的框图。三维数据解码装置7040通过对通过对点群数据进行编码而生成的编码数据(编码流)进行解码来复原点群数据。该三维数据解码装置7040包括逆复用部7041、多个位置信息解码部7042、多个属性信息解码部7043、附加信息解码部7044以及结合部7045。
逆复用部7041通过对编码数据(编码流)进行逆复用来生成多个编码位置信息、多个编码属性信息以及编码附加信息。
多个位置信息解码部7042通过对多个编码位置信息进行解码来生成多个分割位置信息。例如,多个位置信息解码部7042对多个编码位置信息进行并行处理。
多个属性信息解码部7043通过对多个编码属性信息进行解码来生成多个分割属性信息。例如,多个属性信息解码部7043对多个编码属性信息进行并行处理。
多个附加信息解码部7044通过对编码附加信息进行解码来生成附加信息。
结合部7045通过使用附加信息结合多个分割位置信息来生成位置信息。结合部7045通过使用附加信息结合多个分割属性信息来生成属性信息。
图133是属性信息解码部7043的框图。属性信息解码部7043包括熵解码部7051、逆量化部7052和逆变换部7053。熵解码部7051通过对编码属性信息进行熵解码来生成量化值。逆量化部7052通过对量化值进行逆量化来生成系数值。具体而言,将基于从比特流中取得的量化树值(量化参数)的量化步长乘以系数值。逆变换部7053通过对系数值进行逆变换来生成分割属性信息。在此,逆变换是指例如在系数值上加上预测值的处理。或者,逆变换是逆Haar变换。
以下,说明量化参数的决定方法的例子。图134是示出了瓦片和切片分割中的量化参数的设定例的图。
如果量化参数的值小,则容易维持原来的信息。例如,量化参数的既定值为1。例如,在使用了PCC数据的瓦片的编码处理中,主要道路的瓦片的量化参数为了维持数据质量而被设定为小的值。另一方面,周围区域中的瓦片的量化参数被设定为大的值。由此,周边区域的数据质量降低,但能够提高编码效率。
同样地,在使用了PCC数据的切片的编码处理中,人行道、树以及建筑物在自身位置估计以及映射中是重要的,人行道、树以及建筑物的切片的量化参数被设定为小的值。另一方面,由于移动体及其他数据的重要性低,所以将移动体及其他数据的切片的量化参数设定得高。
另外,在使用后述的ΔQP(DeltaQP)的情况下,三维数据编码装置也可以在主要道路等属于重要区的三维点的编码中,为了减小量化参数而对ΔQP的值设定负值,以量化误差变小的方式进行编码。由此,能够使属于重要区的三维点的解码后的属性值接近编码前的值。此外,三维数据编码装置在对属于周边区域等不重要的区的三维点进行编码时,为了增大量化参数,也可以对ΔQP的值设定正值来削减信息量。由此,能够在保持重要区的信息量的同时削减整体的编码量。
以下,说明表示每个阶层的量化参数的信息的例子。在对三维点的属性信息进行量化并编码的情况下,除了针对帧、切片或瓦片等的量化参数QPbase以外,还导入以更细小的单位控制量化参数的机制。例如,三维数据编码装置在使用LoD对属性信息进行编码的情况下,按每个LoD设置Delta_Layer,按每个LoD对QPbase的值加上Delta_Layer,由此一边改变量化参数的值一边进行编码。另外,三维数据编码装置将用于编码的Delta_Layer附加到比特流的头部等。由此,三维数据编码装置例如能够一边根据目标编码量和产生编码量来改变每个LoD的量化参数一边对三维点的属性信息进行编码,因此最终能够生成与目标编码量接近的编码量的比特流。另外,三维数据解码装置通过对头部所包含的QPbase以及Delta_Layer进行解码来生成三维数据编码装置所使用的量化参数,从而能够适当地对比特流进行解码。
图135是表示使用量化参数QPbase对全部三维点的属性信息进行编码的情况的例子的图。图136是表示按LoD的每个阶层切换量化参数来进行编码的情况的例子的图。在图136所示的例子中,开头的LoD的量化参数通过对QPbase加上开头的LoD的Delta_Layer来计算。在第2个以后的LoD中,处理对象的LoD的量化参数通过对紧前的LoD的量化参数加上处理对象的LoD的Delta_Layer来计算。例如,LoD3的开头的量化参数QP3通过QP3=QP2+Delta_Layer[3]来计算。
另外,各LoD的Delta_Layer[i]也可以表示相对于QPbase的差分值。即,第i个LoDi的量化参数QPi由QPi=QPbase+Delta_Layer[i]表示。例如,由QP1=QPbase+Delta_Layer[1]表示,由QP2=QPbase+Delta_Layer[2]表示。
图137是表示属性信息头部(Attribute header information)的句法例的图。在此,属性信息头部是指例如帧、切片或瓦片单位的头部,并且是属性信息的头部。如图137所示,属性信息头部包含QPbase(基准量化参数)、NumLayer(阶层数)和Delta_Layer[i](差分量化参数)。
QPbase表示在帧、切片或瓦片等中成为基准的量化参数的值。NumLayer表示LoD或RAHT的阶层数。换言之,NumLayer表示属性信息头部中所包含的Delta_Layer[i]的数量。
Delta_Layer[i]表示阶层i的ΔQP的值。在此,ΔQP是通过从层i-1的量化参数中减去阶层i的量化参数而得到的值。此外,ΔQP也可以是从QPbase减去阶层i的量化参数而得到的值。另外,ΔQP可以取正或负的值。另外,也可以不将Delta_Layer[0]附加到头部。在这种情况下,阶层0的量化参数等于QPbase。由此,能够削减头部编码量。
图138是表示属性信息头部(Attribute header information)的另一句法例的图。相对于图137所示的属性信息头部,图138所示的属性信息头部还包含delta_Layer_present_flag。
delta_Layer_present_flag是表示Delta_Layer是否包含在比特流中的标志。例如,值1表示Delta_Layer包含在比特流中,值0表示Delta_Layer不包含在比特流中。在delta_Layer_present_flag为0的情况下,三维数据解码装置例如以Delta_Layer为0进行以后的解码处理。
此外,在此,叙述了通过QPbase以及Delta_Layer来表示量化参数的例子,但也可以通过QPbase以及Delta_Layer来表示量化步长。量化步长是根据量化参数,使用预先设定的式子或表等来计算的。三维数据编码装置在量化处理中将系数值除以量化步长。三维数据解码装置通过在逆量化处理中对量化值乘以量化步长来复原系数值。
接着,说明以更细小的单位控制量化参数的例子。图139是表示以比LoD细小的单位控制量化参数的例子的图。
例如,三维数据编码装置在使用LoD对属性信息进行编码的情况下,除了每个LoD阶层的Delta_Layer之外,还定义ADelta_QP和表示加上ADelta_QP的三维点的位置信息的NumPointADelta。三维数据编码装置一边基于Delta_Layer、ADelta_QP以及NumPointADelta变更量化参数的值一边进行编码。
此外,三维数据编码装置也可以将用于编码的ADelta以及NumPointADelta附加到比特流的头部等。由此,三维数据编码装置例如能够一边根据目标编码量和产生编码量来变更每个三维点的量化参数,一边对多个三维点的属性信息进行编码。由此,三维数据编码装置最终能够生成与目标编码量接近的编码量的比特流。此外,三维数据解码装置通过对头部所包含的QPbase、Delta_Layer以及ADelta进行解码来生成三维数据编码装置所使用的量化参数,从而能够适当地对比特流进行解码。
例如,如图139所示,第N0个属性信息的量化值QP4通过QP4=QP3+ADelta_QP[0]来计算。
此外,也可以使用与图139所示的编码/解码顺序相反的编码/解码顺序。例如也可以按照LoD3、LoD2、LoD1、LoD0的顺序进行编码/解码。
图140是表示使用图139所示的例子的情况的属性信息头部(Attribute headerinformation)的句法例的图。相对于图137所示的属性信息头部,图140所示的属性信息头部还包含NumADelta、NumPointADelta[i]和ADelta_QP[i]。
NumADelta表示比特流中包含的ADelta_QP的数量。NumPointADelta[i]表示应用ADelta_QP[i]的三维点A的识别编号。例如,NumPointADelta[i]表示按照编码/解码顺序从开头的三维点到三维点A的三维点的个数。另外,NumPointADelta[i]也可以表示从三维点A所属的LoD内的最初的三维点到三维点A的三维点的个数。
或者,NumPointADelta[i]也可以表示由NumPointADelta[i-1]表示的三维点的识别编号与三维点A的识别编号的差分值。由此,能够减小NumPointADelta[i]的值,因此能够削减编码量。
ADelta_QP[i]表示由NumPointADelta[i]表示的三维点的ΔQP的值。即,ADelta_QP[i]表示由NumPointADelta[i]表示的三维点的量化参数与该三维点的紧前的三维点的量化参数的差分。
图141是表示使用图139所示的例子的情况的属性信息头部(Attribute headerinformation)的另一句法例的图。相对于图140所示的属性信息头部,图141所示的属性信息头部还包含delta_Layer_present_flag和additional_delta_QP_present_flag,代替NumADelta而包含NumADelta_minus1。
delta_Layer_present_flag与已经使用图138说明的内容相同。
additional_delta_QP_present_flag是表示ADelta_QP是否包含在比特流中的标志。例如,值1表示ADelta_QP包含在比特流中,值0表示ADelta_QP不包含在比特流中。在additional_delta_QP_present_flag为0的情况下,三维数据解码装置例如以ADelta_QP为0进行以后的解码处理。
NumADelta_minus1表示比特流中包含的ADelta_QP的数量-1。这样,通过将从ADelta_QP的数量减去1而得到的值附加到头部,能够削减头部的编码量。例如,三维数据解码装置计算NumADelta=NumADelta_minus1+1。ADelta_QP[i]表示第i个ADelta_QP的值。另外,ADelta_QP[i]不仅可以设定为正值,也可以设定为负值。
图142是本实施方式的三维数据编码处理的流程图。首先,三维数据编码装置对位置信息(geometry)进行编码(S7001)。例如,三维数据编码装置使用八叉树表现进行编码。
接着,三维数据编码装置对属性信息进行变换(S7002)。例如,三维数据编码装置在位置信息的编码后,在由于量化等而三维点的位置发生了变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息。另外,三维数据编码装置也可以根据位置的变化量对属性信息的值进行插值而进行再分配。例如,三维数据编码装置检测N个与变化后的三维位置接近的变化前的三维点,基于从变化后的三维位置到各N个三维点的距离对N个三维点的属性信息的值进行加权平均,将得到的值决定为变化后的三维点的属性信息的值。此外,三维数据编码装置在由于量化等而2个以上的三维点变化到同一三维位置的情况下,作为该变化后的属性信息的值,也可以分配变化前的2个以上的三维点中的属性信息的平均值。
接着,三维数据编码装置对属性信息进行编码(S7003)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果可以是任何顺序。
另外,三维数据编码装置也可以将表示比特流内的各属性信息的编码数据的开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
图143是属性信息编码处理(S7003)的流程图。首先,三维数据编码装置设定LoD(S7011)。即,三维数据编码装置将各三维点分配给多个LoD中的某一个。
接着,三维数据编码装置开始LoD单位的循环(S7012)。即,三维数据编码装置对每个LoD反复进行步骤S7013~S7021的处理。
接着,三维数据编码装置开始三维点单位的循环(S7013)。即,三维数据编码装置对每个三维点反复进行步骤S7014~S7020的处理。
首先,三维数据编码装置搜索在处理对象的对象三维点的预测值的计算中使用的、作为存在于对象三维点的周围的三维点的多个周围点(S7014)。接着,三维数据编码装置计算多个周围点的属性信息的值的加权平均,将得到的值设定为预测值P(S7015)。接着,三维数据编码装置计算对象三维点的属性信息与预测值的差分即预测残差(S7016)。接着,三维数据编码装置通过对预测残差进行量化来计算量化值(S7017)。接着,三维数据编码装置对量化值进行算术编码(S7018)。接着,三维数据编码装置决定ΔQP(S7019)。在此决定的ΔQP用于决定在后续的预测残差的量化中使用的量化参数。
此外,三维数据编码装置通过对量化值进行逆量化来计算逆量化值(S7020)。接着,三维数据编码装置通过对逆量化值加上预测值来生成解码值(S7021)。接着,三维数据编码装置结束三维点单位的循环(S7022)。此外,三维数据编码装置结束LoD单位的循环(S7023)。
图144是ΔQP决定处理(S7019)的流程图。首先,三维数据编码装置计算下一个编码对象的对象三维点A所属的阶层i和编码顺序N(S7031)。阶层i例如表示LoD阶层或RAHT的阶层。
接着,三维数据编码装置对累计编码量加上产生编码量(S7032)。在此,累计编码量是指对象三维点的1帧量、1切片量或1瓦片量的累积编码量。另外,累计编码量也可以是将多个帧、多个切片或多个瓦片的编码量相加而得到的累积编码量。此外,可以使用属性信息的累积编码量,也可以使用通过将位置信息和属性信息两者相加而得到的累积编码量。
接着,三维数据编码装置判定累计编码量是否比目标编码量×TH1多(S7033)。在此,目标编码量是指对象三维点的1帧量、1切片量、或者1瓦片量的目标编码量。此外,目标编码量可以是通过将多个帧、多个切片或多个瓦片相加而得到的目标编码量。此外,可以使用属性信息的目标编码量,也可以使用通过将位置信息和属性信息两者相加而得到的目标编码量。
在累计编码量为目标编码量×TH1以下的情况下(S7033中否),三维数据编码装置判定累计编码量是否比目标编码量×TH2多(S7036)。
在此,作为阈值TH1以及TH2,例如设定从0.0到1.0的值。另外,TH1>TH2。例如,三维数据编码装置在累积编码量超过了目标编码量×TH1的值的情况下(S7033中是),判断为需要尽快抑制编码量,为了增大下一个三维点N的量化参数而将ADelta_QP设定为值α。此外,三维数据编码装置将NumPointADelta设定为值N,将j递增1(S7034)。接着,三维数据编码装置将ADelta_QP=α和NumPointADelta=N附加到头部(S7035)。另外,值α可以是固定值,也可以是可变值。例如,三维数据编码装置也可以根据累积编码量与目标编码量×TH1的差分的大小来决定α的值。例如,三维数据编码装置设定累积编码量与目标编码量×TH1之间的差分越大α的值越大。因此,三维数据编码装置能够控制量化参数,使得累积编码量不超过目标编码量。
另外,在累积编码量超过了目标编码量×TH2的值的情况下(S7036中是),三维数据编码装置为了增大对象三维点A所属的阶层i或者下一个阶层i+1的量化参数而将Delta_Layer设定为值β(S7037)。例如,三维数据编码装置如果对象三维点A是阶层i的开头,则将阶层i的Delta_Layer[i]设定为值β,如果对象三维点A是阶层i的开头以外,则将阶层i+1的Delta_Layer[i+1]设定为值β。
另外,三维数据编码装置将阶层i或者阶层i+1的Delta_Layer=β附加到头部(S7038)。此外,值β可以是固定值,也可以是可变值。例如,三维数据编码装置也可以根据累积编码量与目标编码量×TH2的差分的大小来决定β的值。例如,三维数据编码装置设定累积编码量与目标编码量×TH2之间的差分越大β的值越大。因此,三维数据编码装置能够控制量化参数,使得累积编码量不超过目标编码量。
此外,在累积编码量超过目标编码量的情况下,或者在累积编码量可能超过目标编码量的情况下,三维数据编码装置可以设定ADelta_QP或Delta_Layer的值,使得量化参数成为由标准等支持的值的最大值。因此,三维数据编码装置通过将三维点A以后或阶层i以后的量化系数设为0来抑制产生编码量的增加,并且能够进行控制使得累积编码量不超过目标编码量。
此外,如果累积编码量小于目标编码量×TH3,则三维数据编码装置可以降低量化参数以增加产生编码量。例如,三维数据编码装置可以通过根据累积编码量与目标编码量的差分对Delta_Layer或Adelta_QP的值设定负值来降低量化参数。由此,三维数据编码装置能够生成接近目标编码量的比特流。
图145是本实施方式的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(S7005)。例如,三维数据解码装置使用八叉树表现进行解码。
接着,三维数据解码装置从比特流中解码属性信息(S7006)。例如,在对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加于比特流的属性信息的编码结果进行解码都可以。
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据的开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
图146是属性信息解码处理(S7006)的流程图。首先,三维数据解码装置设定LoD(S7041)。即,三维数据解码装置将具有被解码的位置信息的多个三维点分别分配给多个LoD中的某一个。例如,该分配方法是与在三维数据编码装置中使用的分配方法相同的方法。
接着,三维数据解码装置从比特流解码ΔQP(S7042)。具体而言,三维数据编码装置从比特流的头部,对Delta_Layer、ADelta_QP以及NumPointADelta进行解码。
接着,三维数据解码装置开始LoD单位的循环(S7043)。即,三维数据解码装置对每个LoD反复进行步骤S7044~S7050的处理。
接着,三维数据解码装置开始三维点单位的循环(S7044)。即,三维数据解码装置对每个三维点反复进行步骤S7045~S7049的处理。
首先,三维数据解码装置搜索在处理对象的对象三维点的预测值的计算中使用的、作为存在于对象三维点的周围的三维点的多个周围点(S7045)。接着,三维数据解码装置计算多个周围点的属性信息的值的加权平均,将得到的值设定为预测值P(S7046)。另外,这些处理与三维数据编码装置中的处理相同。
接着,三维数据解码装置从比特流中对量化值进行算术解码(S7047)。另外,三维数据解码装置通过对解码出的量化值进行逆量化来计算逆量化值(S7048)。在该逆量化中,使用利用在步骤S7042中得到的ΔQP计算出的量化参数。
接着,三维数据解码装置通过对逆量化值加上预测值来生成解码值(S7049)。接着,三维数据解码装置结束三维点单位的循环(S7050)。此外,三维数据解码装置结束LoD单位的循环(S7051)。
图147是属性信息编码部7023的框图。属性信息编码部7023具备LoD设定部7061、搜索部7062、预测部7063、减法部7064、量化部7065、逆量化部7066、重构部7067、存储器7068以及ΔQP计算部7070。
LoD设定部7061使用三维点的位置信息生成LoD。搜索部7062使用LoD生成结果和三维点间的距离信息来搜索各三维点的邻近三维点。预测部7063生成对象三维点的属性信息的预测值。此外,预测部7063将预测值分配给0~M-1的多个预测模式,并且从多个预测模式中选择要使用的预测模式。
减法部7064通过从属性信息减去预测值来生成预测残差。量化部7065对属性信息的预测残差进行量化。逆量化部7066对量化后的预测残差进行逆量化。重构部7067通过将预测值与逆量化后的预测残差相加来生成解码值。存储器7068存储已解码的各三维点的属性信息的值(解码值)。存储器7068中存储的已解码的三维点的属性信息被利用于由预测部7063进行的未被编码的三维点的预测。
算术编码部7069根据量化后的预测残差计算ZeroCnt,对ZeroCnt进行算术编码。另外,算术编码部7069对量化后的非零的预测残差进行算术编码。算术编码部7069也可以在算术编码前对预测残差进行二值化。此外,算术编码部7069也可以生成并编码各种头部信息。此外,算术编码部7069也可以对表示预测部7063在编码中使用的预测模式的预测模式信息(PredMode)进行算术编码并附加到比特流。
ΔQP计算部7070根据由算术编码部7069得到的产生编码量和预先设定的目标编码量来决定Delta_Layer、ADelta_QP以及NumPointADelta的值。使用基于被决定的Delta_Layer、ADelta_QP以及NumPointADelta的量化参数来进行由量化部7065进行的量化。另外,算术编码部7069对Delta_Layer、ADelta_QP以及NumPointADelta进行算术编码并附加到比特流。
图148是属性信息解码部7043的框图。属性信息解码部7043具备算术解码部7071、LoD设定部7072、搜索部7073、预测部7074、逆量化部7075、重构部7076以及存储器7077。
算术解码部7071对比特流中包含的ZeroCnt和预测残差进行算术解码。另外,算术解码部7071对各种头部信息进行解码。另外,算术解码部7071从比特流中对预测模式信息(PredMode)进行算术解码,将得到的预测模式信息输出到预测部7074。另外,算术解码部7071从比特流的头部对Delta_Layer、ADelta_QP以及NumPointADelta进行解码。
LoD设定部7072使用被解码的三维点的位置信息生成LoD。搜索部7073使用LoD生成结果和三维点间的距离信息来搜索各三维点的邻近三维点。
预测部7074生成解码对象的对象三维点的属性信息的预测值。逆量化部7075对被算术解码出的预测残差进行逆量化。具体而言,逆量化部7075使用基于解码后的Delta_Layer、ADelta_QP以及NumPointADelta的量化参数进行逆量化。
重构部7076通过将预测值与逆量化后的预测残差相加来生成解码值。存储器7077存储已解码的各三维点的属性信息的值(解码值)。存储器7077中存储的已解码的三维点的属性信息被利用于由预测部7074进行的未被解码的三维点的预测。
以下,对代替LoD阶层而使用RAHT的阶层的情况的例子进行说明。图149是表示在使用了RAHT的属性信息的编码时,以更细小的单位控制量化参数的例子的图。例如,三维数据编码装置在使用RAHT对属性信息进行编码的情况下,除了RAHT的每个阶层的Delta_Layer之外,还定义ADelta_QP和表示加上ADelta_QP的三维点的位置信息的NumPointADelta。三维数据编码装置一边基于Delta_Layer、ADelta_QP以及NumPointADelta变更量化参数的值一边进行编码。
此外,三维数据编码装置也可以将用于编码的ADelta以及NumPointADelta附加到比特流的头部等。由此,三维数据编码装置例如能够一边根据目标编码量和产生编码量来变更每个三维点的量化参数,一边对三维点的属性信息进行编码。由此,三维数据编码装置最终能够生成与目标编码量接近的编码量的比特流。此外,三维数据解码装置通过对头部所包含的QPbase、Delta_Layer以及ADelta进行解码来生成三维数据编码装置所使用的量化参数,能够适当地对比特流进行解码。
例如第N0个属性信息的量化值QP4通过QP4=QP3+ADelta_QP[0]来计算。此外,如QP4=QPbase+ADelta_QP[0]那样,各ADelta_QP[i]也可以是相对于QPbase的差分值。
图150是表示使用图149所示的例子的情况的属性信息头部(Attribute headerinformation)的句法例的图。另外,图150所示的属性信息头部与图140所示的属性信息头部基本相同,不同之处在于LoD阶层被变更为RAHT的阶层。
NumADelta表示比特流中包含的ADelta_QP的数量。NumPointADelta[i]表示应用ADelta_QP[i]的三维点A的识别编号。例如,NumPointADelta[i]表示按照编码/解码顺序从开头的三维点到三维点A的三维点的个数。另外,NumPointADelta[i]也可以表示从三维点A所属的阶层内的最初的三维点到三维点A的三维点的个数。
或者,NumPointADelta[i]也可以表示由NumPointADelta[i-1]表示的三维点的识别编号与三维点A的识别编号的差分值。由此,能够将NumPointADelta[i]的值设定得小,因此能够削减编码量。
图151是表示使用图149所示的例子的情况的属性信息头部(Attribute headerinformation)的另一句法例的图。另外,图151所示的属性信息头部与图141所示的属性信息头部基本相同,不同之处在于LoD阶层被变更为RAHT的阶层。
additional_delta_QP_present_flag是表示ADelta_QP是否包含在比特流中的标志。例如,值1表示ADelta_QP包含在比特流中,值0表示ADelta_QP不包含在比特流中。在additional_delta_QP_present_flag为0的情况下,三维数据解码装置例如以ADelta_QP为0进行以后的解码处理。
NumADelta_minus1表示比特流中包含的ADelta_QP的数量-1。这样,通过将从ADelta_QP的数量减去1而得到的值附加到头部,能够削减头部的编码量。例如,三维数据解码装置计算NumADelta=NumADelta_minus1+1。ADelta_QP[i]表示第i个ADelta_QP的值。另外,ADelta_QP[i]不仅可以设定为正值,也可以设定为负值。
图152是使用RAHT的情况的三维数据编码处理的流程图。首先,三维数据编码装置对位置信息(geometry)进行编码(S7061)。例如,三维数据编码装置使用八叉树表现进行编码。
接着,三维数据编码装置对属性信息进行变换(S7062)。例如,三维数据编码装置在位置信息的编码后,在由于量化等而三维点的位置发生了变化的情况下,对变化后的三维点重新分配原来的三维点的属性信息。另外,三维数据编码装置也可以根据位置的变化量对属性信息的值进行插值而进行再分配。例如,三维数据编码装置检测N个与变化后的三维位置接近的变化前的三维点,基于从变化后的三维位置到各N个三维点的距离对N个三维点的属性信息的值进行加权平均,将得到的值设定为变化后的三维点的属性信息的值。此外,三维数据编码装置在由于量化等而2个以上的三维点变化到同一三维位置的情况下,作为该变化后的属性信息的值,也可以分配变化前的2个以上的三维点中的属性信息的平均值。
接着,三维数据编码装置对属性信息进行编码(S7063)。例如,在对多个属性信息进行编码的情况下,三维数据编码装置也可以依次对多个属性信息进行编码。例如,在作为属性信息对颜色和反射率进行编码的情况下,三维数据编码装置生成在颜色的编码结果之后附加了反射率的编码结果的比特流。另外,附加到比特流的属性信息的多个编码结果可以是任何顺序。
另外,三维数据编码装置也可以将表示比特流内的各属性信息的编码数据的开始部位的信息附加到头部等。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。此外,三维数据编码装置也可以并行地对多个属性信息进行编码,并将编码结果合并为1个比特流。由此,三维数据编码装置能够高速地对多个属性信息进行编码。
图153是属性信息编码处理(S7063)的流程图。首先,三维数据编码装置通过Haar变换根据属性信息生成编码系数(S7071)。
接着,三维数据编码装置对编码系数应用量化(S7072)。接着,三维数据编码装置通过对量化后的编码系数进行编码来生成编码属性信息(比特流)(S7073)。
接着,三维数据解码装置决定ΔQP(S7074)。另外,ΔQP的决定方法与使用LoD阶层的情况的步骤S7019相同。另外,所决定的ΔQP用于决定在后续的编码系数的量化中使用的量化参数。
此外,三维数据编码装置对量化后的编码系数应用逆量化(S7075)。接着,三维数据解码装置通过对逆量化后的编码系数应用逆Haar变换来对属性信息进行解码(S7076)。例如,解码后的属性信息在后续的编码中被参照。
图154是使用RAHT的情况下的三维数据解码处理的流程图。首先,三维数据解码装置从比特流中解码位置信息(geometry)(S7065)。例如,三维数据解码装置使用八叉树表现进行解码。
接着,三维数据解码装置从比特流对属性信息进行解码(S7066)。例如,在对多个属性信息进行解码的情况下,三维数据解码装置也可以依次对多个属性信息进行解码。例如,在作为属性信息对颜色和反射率进行解码的情况下,三维数据解码装置按照附加到比特流的顺序,对颜色的编码结果和反射率的编码结果进行解码。例如,在比特流中,在颜色的编码结果之后附加有反射率的编码结果的情况下,三维数据解码装置对颜色的编码结果进行解码,然后对反射率的编码结果进行解码。另外,三维数据解码装置按照怎样的顺序对附加于比特流的属性信息的编码结果进行解码都可以。
另外,三维数据解码装置也可以通过对头部等进行解码来获得比特流内的各属性信息的表示编码数据的开始部位的信息。由此,三维数据解码装置能够选择性地对需要解码的属性信息进行解码,因此能够省略不需要解码的属性信息的解码处理。因此,能够削减三维数据解码装置的处理量。另外,三维数据解码装置也可以并行地对多个属性信息进行解码,将解码结果合并到1个三维点群。由此,三维数据解码装置能够高速地对多个属性信息进行解码。
图155是属性信息解码处理(S7066)的流程图。首先,三维数据解码装置从比特流对编码系数进行解码(S7081)。接着,三维数据解码装置从比特流对ΔQP进行解码(S7082)。具体而言,三维数据编码装置从比特流的头部对Delta_Layer、ADelta_QP以及NumPointADelta进行解码。
接着,三维数据解码装置对编码系数应用逆量化(S7083)。在该逆量化中,使用利用在步骤S7082中得到的ΔQP计算出的量化参数。接着,三维数据解码装置通过对逆量化后的编码系数应用逆Haar变换来对属性信息进行解码(S7084)。
图156是使用RAHT的情况下的属性信息编码部7023的框图。属性信息编码部7023具备排序部7081、Haar变换部7082、量化部7083、逆量化部7084、逆Haar变换部7085、存储器7086、算术编码部7087以及ΔQP计算部7088。
排序部7081使用三维点的位置信息来生成莫顿编码,按照莫顿编码顺序对多个三维点进行排序。Haar变换部7082通过对属性信息应用Haar变换来生成编码系数。量化部7083对属性信息的编码系数进行量化。
逆量化部7084对量化后的编码系数进行逆量化。逆Haar变换部7085对编码系数应用逆Haar变换。存储器7086存储已解码的多个三维点的属性信息的值。例如,存储器7086中存储的已解码的三维点的属性信息也可以利用于未被编码的三维点的预测等。
算术编码部7087根据量化后的编码系数计算ZeroCnt,对ZeroCnt进行算术编码。另外,算术编码部7087对量化后的非零的编码系数进行算术编码。算术编码部7087也可以在算术编码前对编码系数进行二值化。此外,算术编码部7087也可以生成并编码各种头部信息。
ΔQP计算部7088根据由算术编码部7087得到的产生编码量和预先设定的目标编码量来决定Delta_Layer、ADelta_QP以及NumPointADelta的值。使用基于所决定的Delta_Layer、ADelta_QP以及NumPointADelta的量化参数来进行由量化部7083进行的量化。另外,算术编码部7087对Delta_Layer、ADelta_QP以及NumPointADelta进行算术编码并附加到比特流。
图157是使用RAHT的情况下的属性信息解码部7043的框图。属性信息解码部7043具备算术解码部7091、逆量化部7092、逆Haar变换部7093以及存储器7094。
算术解码部7091对比特流中包含的ZeroCnt和编码系数进行算术解码。另外,算术解码部7091也可以对各种头部信息进行解码。另外,算术解码部7091从比特流中的头部对Delta_Layer、ADelta_QP以及NumPointADelta进行解码。
逆量化部7092对算术解码后的编码系数进行逆量化。具体而言,逆量化部7092使用基于解码后的Delta_Layer、ADelta_QP以及NumPointADelta的量化参数进行逆量化。
逆Haar变换部7093对逆量化后的编码系数应用逆Haar变换。存储器7094存储已解码的多个三维点的属性信息的值。例如,存储器7094中存储的已解码的三维点的属性信息也可以利用于未被解码的三维点的预测。
以下,对本实施方式的变形例进行说明。三维数据编码装置也可以将三维点的属性信息的量化参数作为新的属性信息按每个三维点进行编码。
以下,说明该情况下的三维数据编码装置的处理的例子。三维数据编码装置按照图143所示的流程,一边计算量化参数一边对属性信息A(例如颜色)进行编码。此时,三维数据编码装置对所使用的量化参数进行编码,作为各三维点的新的属性值。在该情况下,三维数据编码装置也可以一边按每个三维点变更量化参数的值一边进行编码。例如,在累积编码量超过目标编码量×TH1的值的情况下,三维数据编码装置可以将量化参数的值设定得大,以抑制产生编码量。另外,三维数据编码装置在累积编码量小于目标编码量×TH3的值的情况下,为了增加产生编码量,也可以将量化参数的值设定得小。
三维数据编码装置在对属性信息A进行编码后,将分配给各三维点的量化参数作为新的属性信息A’进行编码。此时,三维数据编码装置也可以为了防止量化参数的信息量的缺失而应用无损(lossless)编码。此外,三维数据编码装置也可以在头部等中附加表示编码后的属性信息是量化参数的信息。由此,三维数据解码装置能够适当地对三维数据编码装置所使用的量化参数进行解码。
此外,三维数据编码装置在使用对象三维点的周围的N个三维点进行属性信息的预测编码的情况下,也可以设为N=1来对量化参数进行编码。由此,能够削减计算量。
接着,说明三维数据解码装置的处理的例子。首先,三维数据解码装置对比特流内的属性信息中的属性信息A’进行解码,取得在属性信息A的解码中使用的量化参数。接着,三维数据解码装置使用解码后的量化参数对属性信息A进行解码。
另外,三维数据编码装置也可以取代上述量化参数,而将各三维点的量化参数的变化量即ΔQP作为新的属性信息A’进行编码。另外,三维数据编码装置在ΔQP取正以及负的值的情况下,也可以如下述那样将带符号ΔQP变换为正的值之后进行编码。在带符号ΔQP(deltaQP_s)小于0的情况下,无符号ΔQP(deltaQP_u)被设定为-1-(2×deltaQP_s)。在带符号ΔQP(deltaQP_s)为0以上的情况下,无符号ΔQP(deltaQP_u)被设定为2×deltaQP_s。
另外,三维数据编码装置也可以按每个属性信息将用于编码的量化参数作为属性信息进行编码。例如,三维数据编码装置也可以将颜色的属性信息A的量化参数编码为属性信息A’,将反射率的属性信息B的量化参数编码为属性信息B’。由此,能够按每个属性信息切换量化参数。例如,通过将优先级高的属性信息的量化参数设定得小,并且将优先级低的属性信息的量化参数设定得大,可以在保护优先级高的属性信息的同时削减整体的编码量。
另外,三维数据编码装置在对三维点的属性信息的预测残差进行量化并编码时,在根据delta_Layer_present_flag以及additional_delta_QP_present_flag等将Delta_Layer以及ADelta_QP设定到头部的情况下,也可以不应用表示三维点的重要度的QW(Quantization weight)的值。例如,在应用QW的情况下,QW越大(重要度越高),则量化参数被设定得越小。由此,能够切换是根据通过预测等内部处理决定的重要度来进行量化,还是根据用户在头部中设定的值来进行量化,因此能够根据用户的用途分开使用两者。
另外,三维数据编码装置也可以将表示是否应用QW(Quantization weight)的值的标志附加到头部。由此,能够将Delta_Layer和ADelta_QP的值与QW组合来切换是否进行量化,因此能够根据用户的用途分开使用两者。
另外,三维数据编码装置在使用RAHT等对三维点的属性信息的变换系数进行量化并编码时,在通过delta_Layer_present_flag以及additional_delta_QP_present_flag等将Delta_Layer以及ADelta_QP设定为头部的情况下,也可以不应用QW(Quantizationweight)的值。由此,能够切换是根据通过预测等内部处理决定的重要度来进行量化,还是根据用户在头部中设定的值来进行量化,因此能够根据用户的用途分开使用两者。另外,三维数据编码装置也可以将表示是否应用QW(Quantization weight)的值的标志附加到头部。由此,能够将Delta_Layer和ADelta_QP的值与QW组合来切换是否进行量化,因此能够根据用户的用途分开使用两者。
图158是表示该情况下的属性信息头部(Attribute header information)的句法例的图。相对于图141所示的属性信息头部,图158所示的属性信息头部还包括default_delta_Layer_present_flag、default_delta_Layer_index、default_additional_delta_QP_present_flag和default_additional_delta_QP_index。
default_delta_Layer_present_flag是表示是否使用在标准等中定义的初始设定的Delta_Layer的值的标志。例如,值1表示使用初始设定的Delta_Layer。值0表示不使用初始设定的Delta_Layer。在值为0的情况下,三维数据解码装置例如以Delta_Layer为0进行以后的解码处理。
default_delta_Layer_index是用于识别在标准等中定义的1个以上的初始设定的Delta_Layer中使用的Delta_Layer的信息。例如,default_delta_Layer_index如下定义。
在default_delta_Layer_index=0的情况下,将所有的阶层的Delta_Layer设定为1。即,每当阶层增加时,量化参数的值增加1。在default_delta_Layer_index=1的情况下,将所有的阶层的Delta_Layer设定为2。即,每当阶层增加时,量化参数的值增加2。
通过以这种方式使用标准等来定义初始设定的Delta_Layer,能够不将Delta_Layer的值附加到头部地变更量化参数,因此能够削减头部的编码量。
default_additional_delta_QP_present_flag是表示是否使用在标准等中定义的初始设定的ADelta_QO的值的标志。例如,值1表示使用初始设定的ADelta_QP。值0表示不使用初始设定的ADelta_QP。在值0的情况下,三维数据解码装置例如以ADelta_QP为0进行以后的解码处理。
default_additional_delta_QP_index是用于识别在标准等中定义的1个以上的初始设定的ADelta_QP中使用的ADelta_QP的信息。例如,default_additional_delta_QP_index如下定义。
在default_additional_delta_QP_index=0的情况下,按每N个三维点数将ADelta_QP设定为1。即,每当对N个三维点进行编码或解码时,量化参数的值增加1。另外,三维数据编码装置也可以将表示N个的信息另外附加到头部。
在default_additional_delta_QP_index=1的情况下,按每N个三维点数将ADelta_QP设定为2。即,每当对N个三维点进行编码或解码时,量化参数的值增加2。另外,三维数据编码装置也可以将表示N个的信息另外附加到头部。
通过这样用标准等定义初始设定的ADelta_QP,能够在不将ADelta_QP的值附加到头部的情况下变更量化参数,因此能够削减头部的编码量。
如上所述,本实施方式的三维数据编码装置进行图159所示的处理。三维数据编码装置根据点群数据所包含的多个三维点的多个属性信息来计算多个系数值(例如预测残差或编码系数)(S7091)。接着,三维数据编码装置通过对多个系数值分别进行量化来生成多个量化值(S7092)。接着,三维数据编码装置生成包含多个量化值的比特流(S7093)。多个系数值属于多个阶层(例如LoD阶层或RAHT的阶层)中的某一个。三维数据编码装置进行量化(S7092中,对多个系数值的每一个使用该系数值所属的阶层用的量化参数进行量化)。比特流包含表示基准量化参数的第1信息(例如QPbase)、和用于根据基准量化参数计算多个阶层用的多个量化参数的多个第2信息(例如Delta_layer[i])。
由此,三维数据编码装置能够按每阶层切换量化参数,因此能够适当地进行编码。此外,三维数据编码装置通过对表示基准量化参数的第1信息和用于根据基准量化参数计算多个量化参数的多个第2信息进行编码,能够提高编码效率。
例如,多个第2信息分别表示基准量化参数与该阶层用的量化参数的差分。
例如,比特流还包含表示在比特流中是否包含多个第2信息的第1标志(delta_layer_present_flag)。
例如,比特流还包含表示比特流中包含的多个第2信息的数量的第3信息(例如NumLayer)。
例如,多个三维点基于多个三维点的位置信息被分类为多个阶层(例如LoD)中的某一个。
例如,多个系数值是通过将多个属性信息分别分为高频成分和低频成分并阶层化为多个阶层(例如RAHT的阶层)而生成的。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,本实施方式的三维数据解码装置进行图160所示的处理。三维数据解码装置使用比特流中包含的(i)表示基准量化参数的第1信息(例如QPbase)和(ii)用于根据基准量化参数计算多个阶层用的多个量化参数的多个第2信息(例如Delta_layer[i])来计算多个阶层用的量化参数(S7095)。
接着,三维数据解码装置使用计算出的多个阶层用的量化参数中的该量化值所属的阶层用的量化参数,对比特流中包含的多个量化值的每一个进行逆量化,由此生成多个系数值(例如预测残差或编码系数)(S7096)。接着,三维数据解码装置根据多个系数值,计算点群数据中包含的多个三维点的多个属性信息(S7097)。
由此,三维数据解码装置能够按每阶层切换量化参数,因此能够适当地进行解码。此外,三维数据解码装置通过使用表示基准量化参数的第1信息和用于根据基准量化参数计算多个量化参数的多个第2信息,能够适当地对提高了编码效率的比特流进行解码。
例如,多个第2信息分别表示基准量化参数与该阶层用的量化参数的差分。
例如,比特流还包含表示在比特流中是否包含多个第2信息的第1标志(delta_layer_present_flag)。
例如,比特流还包含表示比特流中包含的多个第2信息的数量的第3信息(例如NumLayer)。
例如,多个三维点基于多个三维点的位置信息被分类为多个阶层(例如LoD)中的某一个。
例如,多个系数值是通过将多个属性信息分别分为高频成分和低频成分并阶层化为多个阶层(例如RAHT的阶层)而生成的。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式14)
为了实现高压缩,PCC(Point Cloud Compression)数据中包含的属性信息使用Lifting、RAHT(Region Adaptive Hierarchical Transform)或者其他变换方法等多个方法进行变换。这里,Lifting是使用LoD(Level of Detail)的变换方法之一。
重要的信号信息具有包含在低频成分中的趋势,因此通过对高频成分进行量化来削减编码量。即,变换处理具有强的能量压缩特性。
在此,对于不同的变换方式,有时使用与变换系数的特性相应的不同的量化参数。在本实施方式中,对通过根据属性种类或变换方式控制变换或量化来提高效率的方法进行说明。
图161是表示本实施方式的三维数据编码装置的结构的框图。该三维数据编码装置具备减法部7901、变换部7902、变换矩阵保持部7903、量化部7904、量化控制部7905和熵编码部7906。
减法部7901计算作为输入数据与参照数据的差分的系数值。例如,输入数据是点群数据所包含的属性信息,是与参照数据的属性信息的预测值。
变换部7902对系数值进行变换处理。例如,该变换处理是将多个属性信息分类到LoD的处理。另外,该变换处理也可以是Haar变换等。变换矩阵保持部7903保持在变换部7902的变换处理中使用的变换矩阵。例如,该变换矩阵是Haar变换矩阵。另外,三维数据编码装置也可以选择性地使用这2种变换处理。另外,三维数据编码装置也可以对每个规定的处理单位切换使用的变换处理。
量化部7904通过对系数值进行量化来生成量化系数。量化控制部7905控制量化部7904在量化中使用的尺度值(也称为量化步长)。例如,量化控制部7905基于QP(量化参数)、作为属性信息的种类(颜色、反射率等)的属性种类、以及变换方式(LoD或RAHT(Haar变换)等)中的至少一个来控制尺度值。
熵编码部7906通过对量化系数进行熵编码(例如,算术编码)来生成比特流。
图162是表示本实施方式的三维数据解码装置的结构的框图。该三维数据解码装置具备熵解码部7911、逆量化部7912、量化控制部7913、逆变换部7914、变换矩阵保持部7915和加法部7916。
熵解码部7911从比特流中解码量化系数和QP。逆量化部7912通过对量化系数进行逆量化来生成系数值。量化控制部7913基于QP、属性种类和变换方法等中的至少一个来控制逆量化部7912使用的尺度值。
逆变换部7914对系数值进行逆变换。例如,逆变换部7914对系数值进行逆Haar变换。变换矩阵保持部7915保持由逆变换部7914进行的逆变换处理中使用的变换矩阵。例如,该变换矩阵是逆Haar变换矩阵。
加法部7916通过将参照数据与系数值相加来生成输出数据。例如,输出数据是点群数据所包含的属性信息,是与参照数据的属性信息的预测值。
在此,作为量化前的数据的系数值与作为量化后的系数值的量化系数的关系使用尺度值(Scale)由下式表示。
量化系数=系数值/Scale
系数值=量化系数×Scale
即,三维数据编码装置通过在量化中将系数值除以尺度值来计算量化系数。另外,三维数据解码装置通过在逆量化中对量化系数乘以尺度值来计算系数值。
另外,量化参数(QP)与尺度值(Scale)的关系例如由下式表示。此外,QP被称为量化值(Quantization value)。
QP=log(Scale)
此外,作为QP与尺度值的关系,也可以使用AVC(Advanced Video Coding:高级视频编码)和HEVC(High Efficiency Video Coding:高效率视频编码)等中使用的以下的式子。另外,也可以使用对以下的式子加上规定的运算而得到的式子。
Scale=2(QP-4)/6
QP=log2(Scale×6)+4
三维数据编码装置将与量化中使用的尺度值对应的QP存放在编码比特流内的元数据中。三维数据解码装置从比特流中解码QP,导出与解码后的QP对应的尺度值,将导出的尺度值用于逆量化。
此外,三维数据编码装置可以决定向三维数据编码装置发送的QP,之后,将QP变换为尺度值,使用所得到的尺度值进行量化,也可以决定尺度值,之后将尺度值变换为QP,将得到的QP存放在比特流中。另外,通过送出变换了尺度值的QP,能够削减元数据的比特数。
图163是表示本实施方式的三维数据编码装置的结构的图。图164是表示本实施方式的三维数据解码装置的结构的图。另外,在图163和图164中,主要记载了与属性信息的编码或解码相关的处理部。
如图163所示,三维数据编码装置7920具备属性信息编码部7921和属性信息编码部7922。属性信息编码部7921和属性信息编码部7922所对应的属性信息编码方式(属性信息编码方法)不同。例如,属性信息编码部7921和属性信息编码部7922的变换方式或使用的控制参数等不同。例如,三维数据编码装置7920根据来自外部的指示或设定、或者处理对象的属性信息,选择使用的属性信息编码方式。另外,三维数据编码装置7920也可以将表示使用的属性信息编码方式的信息附加到比特流。
如图164所示,三维数据解码装置7930具备属性信息解码部7931和属性信息解码部7932。例如,属性信息解码部7931和7932的变换方式或使用的控制参数等不同。例如,三维数据解码装置7930基于附加到比特流的、表示在编码属性信息的编码中使用的属性信息编码方式的信息,选择使用的属性信息编码方式(属性信息解码方式)。或者,三维数据解码装置7930可以根据来自外部的指示或设定、或者处理对象的编码属性信息,选择使用的属性信息编码方式(属性信息解码方式)。
三维数据编码装置7920可以根据内容的种类或编码的精度自适应地切换要使用的编码方法。另外,三维数据编码装置7920也可以对一个内容所包含的属性信息以规定的单位自适应地切换编码方式。另外,三维数据编码装置7920可以使用某一个属性编码方式,也可以同时并用多个编码方式。
图165是表示属性信息编码部7921的结构的框图。属性信息编码部7921包含左比特移位部7941、变换部7942、右比特移位部7943、尺度值计算部7944、量化部7945和熵编码部7946。
左比特移位部7941通过对属性信息进行左比特移位(进位)来生成移位后属性信息。变换部7942通过使用多个三维点的位置信息对移位后属性信息进行变换处理,从而生成移位后系数值。在此,变换处理例如是使用LoD的Lifting或RAHT。右比特移位部7943通过将移位后系数值设为右比特移位(退位)来生成系数值。在此,右比特移位的比特数与左比特移位的比特数相同。这样,三维数据编码装置在变换处理之前通过左比特移位将属性信息进位,对进位后的属性信息(移位后属性信息)进行变换处理,通过右位移对所得到的系数值(移位后系数值)进行退位。由此,能够提高变换处理的运算精度,因此能够提高编码效率。
尺度值计算部7944将QP变换为尺度值。量化部7945通过使用尺度值对系数值进行量化来生成量化系数。熵编码部7946通过对QP和量化系数进行熵编码来生成编码属性信息(比特流)。
此外,属性信息编码部7922的结构的概要与属性信息编码部7921相同,但在变换部7942中使用的变换方式、以及在各处理部中使用的控制参数等与属性信息编码部7921不同。
图166是表示属性信息解码部7931的结构的框图。属性信息解码部7931具备熵解码部7951、尺度值计算部7952、逆量化部7953、左比特移位部7954、逆变换部7955和右比特移位部7956。
熵解码部7951通过对编码属性信息进行熵解码来生成量化系数。尺度值计算部7952将从比特流解码的QP变换为尺度值。逆量化部7953通过使用尺度值对量化系数进行逆量化来生成系数值。
左比特移位部7954通过使系数值左比特移位(进位)来生成移位后系数值。逆变换部7955通过使用从比特流解码出的多个三维点的位置信息即解码位置信息,对移位后系数值进行逆变换处理,生成移位后属性信息。在此,逆变换处理是由属性信息编码部7921所包含的变换部7942进行的变换处理的逆变换处理,例如是使用了LoD的Lifting或者RAHT的逆变换处理。右比特移位部7956通过将移位后属性信息进行右比特移位(退位)而生成解码属性信息。在此,右比特移位的比特数与左比特移位的比特数相同。
此外,属性信息解码部7932的结构的概要与属性信息解码部7931相同,但在逆变换部7955中使用的变换方式、以及在各处理部中使用的控制参数等与属性信息解码部7931不同。
图167是表示三维数据解码装置的另一结构例的框图。图167所示的三维数据解码装置具备属性信息解码部7931A和7932A、以及尺度值计算部7952A。
属性信息解码部7931A和7932A与上述的属性信息解码部7931和7932相同,例如,变换方式或控制参数不同。另外,属性信息解码部7931A所包含的熵解码部7951A、逆量化部7953A、左比特移位部7954A、逆变换部7955A、右比特移位部7956A的功能与熵解码部7951、逆量化部7953、左比特移位部7954、逆变换部7955、右比特移位部7956的功能相同。属性信息解码部7931B所包含的熵解码部7951B、逆量化部7953B、左比特移位部7954B、逆变换部7955B和右比特移位部7956B的功能与熵解码部7951、逆量化部7953、左比特移位部7954、逆变换部7955和右比特移位部7956的功能相同。
尺度值计算部7952A使用表7960A(量化表)基于QP来计算逆量化部7953A中使用的尺度值(Scale1)和逆量化部7953B中使用的尺度值(Scale2)。
表7960A是表示QP的多个值与尺度值的多个值的对应关系的表。这样,通过使用表7960A,与使用变换式进行变换的情况相比,能够削减处理量。
此外,在Scale1的计算中使用的表和在Scale2的计算中使用的表可以不同,也可以相同。在使用相同表的情况下,通过对2个变换方式(编码方式)共用表,能够削减存储器。
此外,左比特移位部7954A和右比特移位部7956A中的比特移位的比特数A1(移位量)与左比特移位部7954B和右比特移位部7956B中的比特移位的比特数A2可以相同,也可以不同。
图168是表示三维数据解码装置的另一结构例的框图。图168所示的三维数据解码装置具备属性信息解码部7931B和7932B、以及尺度值计算部7952B。
属性信息解码部7931B相对于属性信息解码部7931A,具备逆量化部7953C来代替逆量化部7953A和左比特移位部7954A。属性信息解码部7932B相对于属性信息解码部7932A,具备逆量化部7953D来代替逆量化部7953B和左比特移位部7954B。
在图168所示的例子中,在用于将QP变换为尺度值的表7960B中,对每个属性编码的变换处理前的左比特移位的处理进行合并。此外,表7960B可以根据编码方式单独地设置,也可以以多个编码方式共用化。
即,逆量化部7953C将由熵解码部7951A得到的量化系数乘以由尺度值计算部7952B生成的尺度值(Scale3),从而一并进行图167所示的在逆量化部7953A中进行的逆量化处理和在左比特移位部7954A中进行的左比特移位。同样地,逆量化部7953D将由熵解码部7951B得到的量化系数乘以由尺度值计算部7952B生成的尺度值(Scale4),从而一并进行图167所示的在逆量化部7953B中进行的逆量化处理和在左比特移位部7954B中进行的左比特移位。
尺度值计算部7952B使用表7960B基于QP计算逆量化部7953C中使用的尺度值(Scale3)和逆量化部7953D中使用的尺度值(Scale4)。表7960B是表示QP的多个值与尺度值的多个值的对应关系的表。
图169是表示表7960B的例子的图。该图表示A1=8bit的情况下的QP与Scale3的对应关系。另外,在该图中,还示出了用于参考的QP和不合并左比特移位的情况下的尺度值(Scale1)的对应关系,但该信息不需要包含在表7960B中。另外,图167所示的尺度值计算部7952A使用的表7960A表示图169所示的QP与Scale1的对应关系。
如图169所示,Scale3通过将Scale1乘以2A1并进行四舍五入(round)来计算。另外,也可以代替四舍五入而使用向上取整、向下取整或近似。另外,A1的值可以是固定值,也可以是可变值。由此,能够计算合并了左比特移位的处理的情况下的Scale3的值。
另外,QP与Scale4的对应关系也相同。另外,在比特数A2与比特数A1不同的情况下,另行制作包含基于比特数A2计算出的Scale4的值的表,使用该表根据QP计算Scale4。
这样,通过使用四舍五入等使Scale4的值为整数,能够削减处理量。进而,通过合并左比特移位的处理,Scale×2A1的分辨率提高,因此能够减轻round运算引起的误差。
另外,在图169所示的例子中,表7960B包含0~5的6个值作为QP的值。在此,QP的值也可以取6以上的值。尺度值计算部7952B使用以下的式子从QP导出Scale3(或Scale4)。
Scale3=Table(QP%6)>>(QP/6)
在此,QP%6是QP除以6的余数,QP/6表示QP除以6的商。另外,Table(N)表示在图169所示的表中与QP的值N对应的Scale3的值。例如,在QP为8的情况下,QP%6为2。因此,Table(QP%6)是图169所示的QP=2的值即“203”。此外,由于QP/6为1,因此将“203”左比特移位1比特的值计算为Scale3。通过这样组合表和运算,能够计算与QP为6以上的情况下也包含的全部QP的值对应的Scale3。
此外,表7960B也可以表示与QP能够取得的全部值对应的尺度值。在该情况下,不进行上述的运算,在表7960B中将与QP的值对应的值决定为Scale3。
以下,说明在比特移位的比特数A1和A2不同的情况下,在2个编码方式中使用共同的表7960B的情况的例子。图170是表示这种情况下的尺度值计算部7952B的结构的框图。尺度值计算部7952B具备共同计算部7961和比特移位部7962。
表7960B是基于某一方的属性编码的比特移位量而制作的表。在该例子中,表7960B是基于A1比特制作的表。因此,共同计算部7961使用表7960B将QP变换为属性信息解码部7931B用的Scale3。另外,共同计算部7961使用表7960B将QP变换为Scale3A。在此,在QP的值相同的情况下,Scale3A为与Scale3相同的值。
比特移位部7962在(A2-A1)>0的情况下,通过使Scale3A左移位A2-A1比特来生成属性信息解码部7932B用的Scale4。另外,比特移位部7962在(A2-A1)<0的情况下,通过使Scale3A右比特移位A1-A2比特来生成Scale4。
以下,将合并到表7960B中的比特数A1或A2的比特移位称为第1比特移位,将由比特移位部7962进行的比特移位也称为第2比特移位。即,Scale3及Scale4由下述式表示。
Scale3=Table(QP%6)>>(QP/6)
Scale4=Table(QP%6)>>(QP/6)>>(A2-A1)
此外,成为表7960B的制作的基准的属性编码方式是任意的,也可以以在属性信息解码部7322B中使用的编码方式为基准。另外,所使用的属性信息编码方式也可以是3个以上。
另外,例如在使用3个属性编码方式的情况下,在各个第1比特移位的比特数(移位量)为A1、A2、A3的情况下,通过使用A1、A2、A3中最小的比特数来制作表,能够使表的值的比特数最小。另一方面,通过使用A1、A2、A3中最大的比特数来制作表,能够降低因round运算引起的误差,因此能够提高精度。另外,通过使用A1、A2、A3中中间的比特数来制作表,能够兼顾上述的优点。
另外,在第1比特移位的比特数(A1或A2)为固定值的情况下,也可以将第2比特移位的比特数设为固定。另外,在A1=A2的情况下,也可以不进行第2比特移位。另外,也可以使没有合并第1比特移位的表共同化,在该情况下,A1=0。
以下,对例外处理进行说明。三维数据解码装置在使用下述所示的QP与Scale的关系计算出的Scale为Scale<1的情况下,也可以设定为Scale=1。
Scale=2(QP-4)/6
另外,三维数据解码装置在使用下述所示的QP与Scale的关系计算出的Scale为QP<4的情况下,即QP=0、1、2、3的情况下,也可以设定为Scale=1。换言之,QP的最小值为4,在QP小于4的情况下,三维数据解码装置也可以视为QP=4。
Scale=Table(QP%6)>>(QP/6)
另外,在下述所示的QP与Scale的关系中,从QP中减去的值可以不是4,可以是任意的值x。在该情况下,三维数据解码装置在QP<x的情况下设定为Scale=1。
Scale=2(QP-4)/6
另外,也可以在三维数据编码装置中根据QP计算出Scale的情况下进行同样的处理。
另外,即使在QP与Scale的关系为上述的式子以外的情况下,通过使用在本实施方式中说明的处理,也能够削减传输的QP的比特量。此外,可以减少与量化或逆量化相关的处理量。
接着,说明三维数据编码装置的处理。三维数据编码装置的处理也与三维数据解码装置的处理相同。图171是表示三维数据编码装置的结构的框图。三维数据编码装置具备属性信息编码部7921A和7922A、以及尺度值计算部7944A。
属性信息编码部7921A和7922A与上述的属性信息解码部7931B和7932B相同,例如,变换方式或作为处理对象的属性种类不同。另外,属性信息编码部7921A所包含的左比特移位部7941A、变换部7942A、熵编码部7946A的功能与左比特移位部7941、变换部7942、熵编码部7946的功能相同。属性信息编码部7922A所包含的左比特移位部7941B、变换部7942B和熵编码部7946B的功能与左比特移位部7941、变换部7942和熵编码部7946的功能相同。
尺度值计算部7944A使用表7970A,基于QP,计算在量化部7945A中使用的尺度值(Scale3)和在量化部7945B中使用的尺度值(Scale4)。表7970A是表示QP的多个值与尺度值的多个值的对应关系的表。例如,表7970A是与表7960B相同的表。此外,例如,由尺度值计算部7944A进行的处理与由尺度值计算部7952B进行的处理相同。
此外,量化部7945A将由变换部7942A得到的移位后系数值除以由尺度值计算部7952B生成的尺度值(Scale3),从而一并进行图165所示的在右比特移位部7943中进行的右比特移位和在量化部7945中进行的量化处理。同样地,量化部7945B将由变换部7942B得到的移位后系数值除以由尺度值计算部7952B生成的尺度值(Scale4),从而一并进行图165所示的在右比特移位部7943中进行的右比特移位和在量化部7945中进行的量化处理。
图172是表示尺度值计算部7944A的结构的框图。尺度值计算部7944A具备共同计算部7971和比特移位部7972。
表7970A是基于某一方的属性编码的比特移位量而制作的表。在该例子中,表7970A是基于A1比特制作的表。因此,共同计算部7971使用表7970A将QP变换为Scale3。另外,共同计算部7971使用表7970A将QP变换为Scale3A。在此,在QP的值相同的情况下,Scale3A为与Scale3相同的值。
在(A2-A1)>0的情况下,比特移位部7972通过使Scale3A左移位A2-A1比特来生成Scale4。另外,比特移位部7972在(A2-A1)<0的情况下,通过使Scale3A右比特移位A1-A2比特来生成Scale4。
例如,尺度值与QP之间的关系与三维数据解码装置中的关系相同,由下述式表示。
Scale3=Table(QP%6)>>(QP/6)
Scale4=Table(QP%6)>>(QP/6)>>(A2-A1)
此外,表7970A可以与在三维数据解码装置中使用的表7960B相同,也可以不同。例如,也可以制作QP与1/Scale3(或1/Scale4)的表,三维数据编码装置对1/Scale3乘以移位后系数值。在该情况下,也可以将以1/Scale3的值成为整数的方式对1/Scale3乘以2的T次方,对得到的值进行四舍五入(或者向上取整、向下取整、近似)而得到的值记载于表。即,表的值如下所示。
表的值=round((1/Scale)×2T)
在该情况下,三维数据编码装置将通过使用了表的变换而得到的值除以2T。即,三维数据编码装置进行T比特的右比特移位。
图173是由三维数据解码装置进行的三维数据解码处理的流程图。首先,三维数据解码装置通过对编码属性信息进行熵解码而取得量化系数以及QP(S7901)。接着,三维数据解码装置计算尺度值(S7902)。
具体而言,三维数据解码装置使用表将QP变换为尺度值(S7911)。在应用于属性信息的编码方式不是第1编码方式(是第2编码方式)的情况下(S7912中否),三维数据解码装置进行将S7911中得到的尺度值左比特移位的第2比特移位(S7913)。第2比特移位的移位量是(A2-A1)比特。在此,A1是第1编码方式的第1比特移位的移位量,A2是第2编码方法的第1比特移位的移位量。此外,A1、A2、A2-A1可以是预先确定的固定值,也可以是可变值。
接着,三维数据解码装置通过对步骤S7901中得到的量化系数乘以步骤S7913中得到的尺度值来同时实施逆量化和左比特移位(S7903)。
另一方面,在应用于属性信息的编码方式为第1编码方式的情况下(S7912中是),三维数据解码装置通过对在步骤S7901中得到的量化系数乘以在步骤S7911中得到的尺度值,同时实施逆量化和左比特移位(S7903)。
另外,三维数据编码装置中的尺度值的计算处理也相同。三维数据编码装置通过将计算出的尺度值除以移位后系数值,同时实施量化和右比特移位。
以下,对其他例子进行说明。在上述说明中,说明了对多个属性编码方式使用包含左比特移位(第1比特移位)的处理的共同的表(量化表),根据需要使用第2比特移位的例子,但也可以对于颜色和反射率等多个属性的种类使用共同的表。
图174是表示这种情况下的尺度值计算部7952C的结构的框图。除了图170所示的尺度值计算部7952B的结构之外,尺度值计算部7952C还具备比特移位部7963和7964。在此,Scale3是第1编码方式的颜色用的尺度值,Scale4是第2编码方式的颜色用的尺度值,Scale5是第1编码方式的反射率用的尺度值,Scale6是第2编码方式的反射率用的尺度值。另外,根据第1比特移位中的编码方式和属性种类,第1编码方式是X比特,第2编码方式是Y比特,颜色是S比特,反射率是T比特,第1比特移位的移位量是预先确定的。
在这种情况下,基于第1编码方式中的颜色的比特数来制作共同的表7960B。共同计算部7961使用表7960B生成Scale3、Scale3A和Scale3B。在此,Scale3、Scale3A和Scale3B在QP为相同值的情况下为相同的值。比特移位部7962通过对Scale3A实施(Y-X)比特的第2比特移位,生成Scale4和Scale4A。在此,Scale4和Scale4A为相同的值。比特移位部7963通过对Scale3B实施(T-S)比特的第3比特移位来生成Scale5。比特移位部7964通过对Scale4A实施(T-S)比特的第3比特移位来生成Scale6。
此外,在此,示出了用编码方式和属性的种类分别确定移位量(比特数)的例子,但也可以按编码方式和属性的种类的每个组合来决定移位量。在该情况下也能够应用相同的方法。
另外,在确定了与属性编码方式的参数、位置信息(几何)编码方式相应的偏移量的情况下,也同样地使用共同的表,进行差分的比特数量的比特移位即可。即,也可以对编码方式的多个参数使用共同的表。另外,在位置信息的编码或解码中也可以同样地使用共同的表。
另外,也可以使用多个表。即,也可以在多个量化的条件的一部分中使用共同的表。例如,在1个属性编码方式中,也可以根据比特移位或计算方法的不同而准备多个表,并切换多个表。在该情况下,三维数据编码装置将表示使用了哪个表的信息存放于元数据(例如属性数据的头部),并将该信息通知给三维数据解码装置。三维数据解码装置基于元数据所包含的信息判定使用了哪个表,将该表用于逆量化。
另外,作为属性信息的编码方法,在并用有可能实施量化的Lifting或RAHT和不实施量化的Predicting等方法的情况下,也可以使用实施量化的方式和不实施量化的方式共用的表。在该情况下,在不实施量化的方式中,QP被设定为不实施量化的值(例如尺度值=1)。或者,三维数据解码装置也可以对实施量化的Lifting和RAHT使用共同的表,对不实施量化的方法不使用共同的表。即,也可以根据是否进行量化来决定是否使用共同的表。
另外,三维数据编码装置也可以在A1、A2以及A3等的比特移位量可变的情况下,将各自的比特移位量或者表示比特移位量的标识符存放于元数据,将比特移位量通知给三维数据解码装置。此外,三维数据编码装置也可以送出(A2-A1)等的第2比特移位的移位量或第3比特移位的移位量。另外,A2-A1可以被限制为正值或负值,也可以表示正负双方的值。
另外,也可以在将QP变换为尺度值的表中,根据属性信息来切换是否合并变换前的左比特移位的处理。图175是表示该情况下的三维数据解码装置的结构的框图。该三维数据解码装置具备属性信息解码部7931B和7932A、以及尺度值计算部7952A和7952B。
在属性信息解码部7931B中,第1比特移位的处理被合并。尺度值计算部7952B具有将逆量化和左比特移位合起来的表7960B,使用表7960B导出Scale3。
在属性信息解码部7932A中,不合并第1比特移位的处理。尺度值计算部7952A具有未进行合并的逆量化的表7960A,使用表7960A导出Scale2。
另外,也可以自适应地切换是否合并第1比特移位的处理。例如,三维数据解码装置也可以在使2个属性信息解码部的逆变换处理所包含的逆量化以及第1比特移位以外的处理运算共同化的情况下等,以使编码成为最佳的方式切换表。
这样,三维数据解码装置也可以根据编码方式,切换是否使用合并了第1比特移位处理的表,或者是否进行第1比特移位处理。
另外,可以预先确定使用上述的哪一种方法,也可以自适应地切换。在自适应切换的情况下,三维数据编码装置将表示使用了哪个方法的标识符存放于元数据,并将该标识符向三维数据解码装置送出。此外,也可以根据属性信息的种类或编码的参数来切换使用的方法。
另外,也可以将与上述说明的三维数据解码装置中的处理同样的处理应用于三维数据编码装置中的处理。此外,在三维数据编码装置中,也可以与三维数据解码装置中的处理同样地,进行将QP变换为尺度值的处理,也可以进行其逆变换(将尺度值变换为QP的处理)。
如上所述,本实施方式的三维数据编码装置进行图176所示的处理。三维数据编码装置使用第1编码方式和与第1编码方式不同的第2编码方式。例如,第1编码方式和第2编码方式是不同的属性信息编码方式。例如,在第1编码方式和第2编码方式中,变换处理的方式或控制参数等不同。
三维数据编码装置使用第1表(例如表7970A),将第1量化参数变换为第1尺度值(例如Scale3),或者将第1尺度值变换为第1量化参数(S7921),所述第1表是表示第1量化参数(例如QP)的多个值与第1尺度值的多个值的对应关系的表,且在第1编码方式和第2编码方式中共用。
接着,三维数据编码装置通过包含第1量化处理的编码来生成编码属性信息(S7922),所述第1量化处理将基于点群数据所包含的多个三维点的多个属性信息的多个第1系数值(例如移位后系数值)分别除以第1尺度值。接着,三维数据编码装置生成包含编码属性信息和第1量化参数的比特流(S7923)。
由此,三维数据编码装置能够在第1编码方式和第2编码方式中将第1表共同化。由此,三维数据编码装置能够削减使用的存储器容量。
例如,在包含第1量化处理的编码(S7922)中,通过对多个属性信息中的每一个进行向左方向的移位(左比特移位)来生成多个移位后属性信息,通过对多个移位后属性信息进行使用了多个三维点的多个位置信息的变换处理,从而生成多个第1系数值。第1尺度值是对用于量化的第2尺度值(例如Scale1)乘以与向左方向的比特移位对应的系数(例如2A1)而得到的值。三维数据编码装置通过将多个第1系数值的每一个除以第1尺度值,进行量化和与向左方向的比特移位相同比特数的向右方向的比特移位(右比特移位)。
由此,三维数据编码装置能够提高精度。
例如,在第1编码方式中使用的向左方向的比特移位以及向右方向的比特移位的比特数即第1比特数(例如A1)与在第2编码方式中使用的向左方向的比特移位以及向右方向的比特移位的比特数即第2比特数(例如A2)不同。三维数据编码装置在从第1尺度值向第1量化参数、或者从第1量化参数向第1尺度值的变换(S7921)中,在使用第1编码方式的情况下,(i)通过对第1尺度值(例如Scale3)应用第1表来决定第1量化参数(例如QP),或者(ii)通过对第1量化参数应用第1表来决定第1尺度值(例如Scale3),在使用第2编码方式的情况下,(i)对第1尺度值(例如Scale4)进行第1比特数与第2比特数的差分的比特数的比特移位,通过对比特移位后的第1尺度值(例如Scale3A)应用第1表来决定第1量化参数,或者(ii)通过对第1量化参数应用第1表来决定第3尺度值(例如Scale3A),通过对第3尺度值进行第1比特数与第2比特数的差分的比特数的比特移位来计算第1尺度值(Scale4)。
由此,三维数据编码装置即使在第1编码方式和第2编码方式中比特移位的比特数不同的情况下,也能够将表共同化。由此,三维数据编码装置能够削减使用的存储器容量。
例如,三维数据编码装置进一步使用第2表,将第2量化参数变换为第4尺度值,或者将第4尺度值变换为第2量化参数,所述第2表是表示第2量化参数的多个值与第4尺度值的多个值的对应关系的表,且在第1编码方式和第2编码方式中共用。三维数据编码装置通过包含第2量化处理的编码来生成编码位置信息,所述第2量化处理将基于多个三维点的多个位置信息的多个第2系数值分别除以第4尺度值。比特流还包含编码位置信息和第2量化参数。即,三维数据编码装置也可以对位置信息也进行与属性信息同样的控制。
由此,三维数据编码装置能够在第1编码方式和第2编码方式中将第2表共同化。由此,三维数据编码装置能够削减使用的存储器容量。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
另外,本实施方式的三维数据解码装置进行图177所示的处理。三维数据解码装置使用第1解码方式(第1编码方式)和与第1解码方式不同的第2解码方式(第2编码方式)。三维数据解码装置从比特流取得点群数据所包含的多个三维点的多个属性信息被编码后的编码属性信息和第1量化参数(例如QP)(S7931)。
接着,三维数据解码装置使用第1表(例如表7960B),将第1量化参数变换为第1尺度值(例如Scale3)(S7932),所述第1表是表示第1量化参数的多个值与第1尺度值的多个值的对应关系的表,且在第1解码方式和第2解码方式中共用。
接着,三维数据解码装置通过包含第1逆量化处理的解码,对多个属性信息(例如解码属性信息)进行解码(S7933),所述第1逆量化处理对基于编码属性信息的多个第1量化系数分别乘以第1尺度值。
由此,三维数据解码装置能够在第1解码方式和第2解码方式中将第1表共同化。由此,三维数据解码装置能够削减使用的存储器容量。
例如,三维数据解码装置在包含第1逆量化处理的解码(S7933)中,通过第1逆量化处理从多个第1量化系数生成多个第1系数值(例如移位后系数值),通过对多个第1系数值进行使用了多个三维点的多个位置信息的逆变换处理来生成多个移位后属性信息,通过对多个移位后属性信息分别进行向右方向的移位(右比特移位)来生成多个属性信息。第1尺度值是对用于逆量化的第2尺度值(例如Scale1)乘以与向右方向的比特移位对应的系数(例如2A1)而得到的值。通过对多个第1量化系数分别乘以第1尺度值,进行与向右方向的比特移位相同的比特数的向左方向的比特移位(左比特移位)和逆量化。
由此,三维数据解码装置能够提高精度。
例如,第1解码方式中使用的向右方向的比特移位以及向左方向的比特移位的比特数即第1比特数(例如A1)与第2解码方式中使用的向右方向的比特移位以及向左方向的比特移位的比特数即第2比特数(例如A2)不同。三维数据解码装置在从第1量化参数向第1尺度值的变换(S7932)中,在使用第1解码方式的情况下,通过对第1量化参数(例如QP)应用第1表来决定第1尺度值(例如Scale3),在使用第2解码方式的情况下,通过对第1量化参数应用第1表来决定第3尺度值(例如Scale3A),通过对第3尺度值进行第1比特数与第2比特数的差分的比特数的比特移位来计算第1尺度值(例如Scale4)。
由此,三维数据解码装置即使在第1解码方式和第2解码方式中比特移位的比特数不同的情况下,也能够将表共同化。由此,三维数据解码装置能够削减使用的存储器容量。
例如,三维数据解码装置进一步从所述比特流取得多个三维点的多个位置信息被编码后的编码位置信息和第2量化参数。三维数据解码装置使用第2表,将第2量化参数变换为第4尺度值,所述第2表是表示第2量化参数的多个值与第4尺度值的多个值的对应关系的表,且在第1解码方式和第2解码方式中共用。三维数据解码装置通过包含第2逆量化处理的解码,对多个位置信息进行解码,所述第2逆量化处理对基于编码位置信息的多个第2量化系数分别乘以第4尺度值。即,三维数据解码装置也可以对位置信息也进行与属性信息同样的控制。
由此,三维数据解码装置能够在第1解码方式和第2解码方式中将第2表共同化。由此,三维数据解码装置能够削减使用的存储器容量。
例如,三维数据解码装置在第1量化参数小于4的情况下,将第1量化参数视为4。由此,三维数据解码装置能够正确地进行解码。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
以上,对本公开的实施方式的三维数据编码装置以及三维数据解码装置等进行了说明,但本公开并不限定于该实施方式。
并且,上述的实施方式的三维数据编码装置以及三维数据解码装置等中包含的各处理部典型的能够作为集成电路的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 熵解码部
3000 三维数据编码装置
3001 位置信息编码部
3002 属性信息重新分配部
3003 属性信息编码部
3010 三维数据解码装置
3011 位置信息解码部
3012 属性信息解码部
5300 第1编码部
5301 分割部
5302 位置信息编码部
5303 属性信息编码部
5304 附加信息编码部
5305 复用部
5311 瓦片分割部
5312 切片分割部
5321、5331、5351、5361 量化值计算部
5322、5332 熵编码部
5323 量化部
5333 逆量化部
5340 第1解码部
5341 逆复用部
5342 位置信息解码部
5343 属性信息解码部
5344 附加信息解码部
5345 结合部
5352、5362 熵解码部
6600 属性信息编码部
6601 排序部
6602 Haar变换部
6603 量化部
6604、6612 逆量化部
6605、6613 逆Haar变换部
6606、6614 存储器
6607 算术编码部
6610 属性信息解码部
6611 算术解码部
7001 减法部
7002 变换部
7003 变换矩阵保持部
7004 量化部
7005 量化控制部
7006 熵编码部
7011 熵解码部
7012 逆量化部
7013 量化控制部
7014 逆变换部
7015 变换矩阵保持部
7016 加法部
7020 三维数据编码装置
7021 分割部
7022 位置信息编码部
7023 属性信息编码部
7024 附加信息编码部
7025 复用部
7031 瓦片分割部
7032 切片分割部
7035 变换部
7036 量化部
7037 熵编码部
7040 三维数据解码装置
7041 逆复用部
7042 位置信息解码部
7043 属性信息解码部
7044 附加信息解码部
7045 结合部
7051 熵解码部
7052 逆量化部
7053 逆变换部
7061、7072 LoD设定部
7062、7073 搜索部
7063、7074 预测部
7064 减法部
7065、7083 量化部
7066、7075、7084、7092逆量化部
7067、7076 重构部
7068、7077、7086、7094存储器
7069、7087算术编码部
7070、7088 ΔQP计算部
7071、7091 算术解码部
7081 排序部
7082 Haar变换部
7085、7093 逆Haar变换部
7901 减法部
7902 变换部
7903 变换矩阵保持部
7904 量化部
7905 量化控制部
7906 熵编码部
7911 熵解码部
7912 逆量化部
7913 量化控制部
7914 逆变换部
7915 变换矩阵保持部
7916 加法部
7920 三维数据编码装置
7921、7921A、7922、7922A 属性信息编码部
7930三维数据解码装置
7931、7931A、7931B、7932、7932A、7932B 属性信息解码部
7941、7941A、7941B 左比特移位部
7942、7942A、7942B 变换部
7943 右比特移位部
7944、7944A 尺度值计算部
7945、7945A、7945B 量化部
7946、7946A、7946B 熵编码部
7951、7951A、7951B 熵解码部
7952、7952A、7952B、7952C 尺度值计算部
7953、7953A、7953B、7953C、7953D 逆量化部
7954、7954A、7954B 左比特移位部
7955、7955A、7955B 逆变换部
7956、7956A、7956B 右比特移位部
7960A、7960B、7970A 表
7961、7971 共同计算部
7962、7963、7964、7972 比特移位部

Claims (11)

1.一种三维数据编码方法,使用第1编码方式和与所述第1编码方式不同的第2编码方式,其中,
使用第1表,将第1量化参数变换为第1尺度值,或者将所述第1尺度值变换为所述第1量化参数,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1编码方式和所述第2编码方式中共用,
通过包含第1量化处理的编码来生成编码属性信息,所述第1量化处理将基于点群数据所包含的多个三维点的多个属性信息的多个第1系数值分别除以所述第1尺度值,
生成包含所述编码属性信息和所述第1量化参数的比特流。
2.根据权利要求1所述的三维数据编码方法,其中,
在包含所述第1量化处理的编码中,
通过对所述多个属性信息分别进行向左方向的比特移位来生成多个移位后属性信息,
通过对所述多个移位后属性信息进行使用了所述多个三维点的多个位置信息的变换处理来生成所述多个第1系数值,
所述第1尺度值是对用于量化的第2尺度值乘以与向所述左方向的比特移位对应的系数而得到的值,
通过将所述多个第1系数值分别除以所述第1尺度值,进行所述量化和与向所述左方向的比特移位相同的比特数的向右方向的比特移位。
3.根据权利要求2所述的三维数据编码方法,其中,
所述第1编码方式中使用的向所述左方向的比特移位以及向所述右方向的比特移位的比特数即第1比特数、与所述第2编码方式中使用的向所述左方向的比特移位以及向所述右方向的比特移位的比特数即第2比特数不同,
在从所述第1尺度值向所述第1量化参数的变换、或者从所述第1量化参数向所述第1尺度值的变换中,
在使用所述第1编码方式的情况下,
(i)通过对所述第1尺度值应用所述第1表来决定所述第1量化参数,或者,
(ii)通过对所述第1量化参数应用所述第1表来决定所述第1尺度值,
在使用所述第2编码方式的情况下,
(i)对所述第1尺度值进行所述第1比特数与所述第2比特数的差分的比特数的比特移位,通过对比特移位后的第1尺度值应用所述第1表来决定所述第1量化参数,或者,
(ii)通过对所述第1量化参数应用所述第1表来决定第3尺度值,通过对所述第3尺度值进行所述第1比特数与所述第2比特数的所述差分的比特数的比特移位来计算所述第1尺度值。
4.根据权利要求1所述的三维数据编码方法,其中,
所述三维数据编码方法进一步地,
使用第2表,将第2量化参数变换为第4尺度值,或者将所述第4尺度值变换为所述第2量化参数,所述第2表是表示所述第2量化参数的多个值与所述第4尺度值的多个值的对应关系的表,且在所述第1编码方式和所述第2编码方式中共用,
通过包含第2量化处理的编码来生成编码位置信息,所述第2量化处理将基于所述多个三维点的多个位置信息的多个第2系数值分别除以所述第4尺度值,
所述比特流还包含编码位置信息和所述第2量化参数。
5.一种三维数据解码方法,使用第1解码方式和与所述第1解码方式不同的第2解码方式,其中,
从比特流取得点群数据所包含的多个三维点的多个属性信息被编码后的编码属性信息和第1量化参数,
使用第1表,将所述第1量化参数变换为第1尺度值,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1解码方式和所述第2解码方式中共用,
通过包含第1逆量化处理的解码,对所述多个属性信息进行解码,所述第1逆量化处理对基于所述编码属性信息的多个第1量化系数分别乘以所述第1尺度值。
6.根据权利要求5所述的三维数据解码方法,其中,
在包含所述第1逆量化处理的解码中,
通过所述第1逆量化处理根据所述多个第1量化系数生成多个第1系数值,
通过对所述多个第1系数值进行使用了所述多个三维点的多个位置信息的逆变换处理来生成多个移位后属性信息,
通过对所述多个移位后属性信息分别进行向右方向的比特移位来生成所述多个属性信息,
所述第1尺度值是对用于逆量化的第2尺度值乘以与向所述右方向的比特移位对应的系数而得到的值,
通过对所述多个第1量化系数分别乘以所述第1尺度值,进行与向所述右方向的比特移位相同的比特数的向左方向的比特移位和所述逆量化。
7.根据权利要求6所述的三维数据解码方法,其中,
所述第1解码方式中使用的向所述右方向的比特移位以及向所述左方向的比特移位的比特数即第1比特数、与所述第2解码方式中使用的向所述右方向的比特移位以及向所述左方向的比特移位的比特数即第2比特数不同,
在从所述第1量化参数向所述第1尺度值的变换中,
在使用所述第1解码方式的情况下,
通过对所述第1量化参数应用所述第1表来决定所述第1尺度值,
在使用所述第2解码方式的情况下,
通过对所述第1量化参数应用所述第1表来决定第3尺度值,通过对所述第3尺度值进行所述第1比特数与所述第2比特数的差分的比特数的比特移位来计算所述第1尺度值。
8.根据权利要求5所述的三维数据解码方法,其中,
所述三维数据解码方法进一步地,
从所述比特流取得所述多个三维点的多个位置信息被编码后的编码位置信息和第2量化参数,
使用第2表,将所述第2量化参数变换为第4尺度值,所述第2表是表示所述第2量化参数的多个值与所述第4尺度值的多个值的对应关系的表,且在所述第1解码方式和所述第2解码方式中共用,
通过包含第2逆量化处理的解码,对所述多个位置信息进行解码,所述第2逆量化处理对基于所述编码位置信息的多个第2量化系数分别乘以所述第4尺度值。
9.根据权利要求5所述的三维数据解码方法,其中,
在所述第1量化参数小于4的情况下,将所述第1量化参数视为4。
10.一种三维数据编码装置,使用第1编码方式和与所述第1编码方式不同的第2编码方式,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,
使用第1表,将第1量化参数变换为第1尺度值,或者将所述第1尺度值变换为所述第1量化参数,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1编码方式和所述第2编码方式中共用,
通过包含第1量化处理的编码来生成编码属性信息,所述第1量化处理将基于点群数据所包含的多个三维点的多个属性信息的多个第1系数值分别除以所述第1尺度值,
生成包含所述编码属性信息和所述第1量化参数的比特流。
11.一种三维数据解码装置,使用第1解码方式和与所述第1解码方式不同的第2解码方式,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,
从比特流取得点群数据所包含的多个三维点的多个属性信息被编码后的编码属性信息和第1量化参数,
使用第1表,将所述第1量化参数变换为第1尺度值,所述第1表是表示所述第1量化参数的多个值与所述第1尺度值的多个值的对应关系的表,且在所述第1解码方式和所述第2解码方式中共用,
通过包含第1逆量化处理的解码,对所述多个属性信息进行解码,所述第1逆量化处理对基于所述编码属性信息的多个第1量化系数分别乘以所述第1尺度值。
CN202080021032.3A 2019-03-18 2020-03-18 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 Pending CN113557550A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962819913P 2019-03-18 2019-03-18
US62/819,913 2019-03-18
PCT/JP2020/011928 WO2020189709A1 (ja) 2019-03-18 2020-03-18 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Publications (1)

Publication Number Publication Date
CN113557550A true CN113557550A (zh) 2021-10-26

Family

ID=72520338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080021032.3A Pending CN113557550A (zh) 2019-03-18 2020-03-18 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置

Country Status (8)

Country Link
US (2) US11889114B2 (zh)
EP (1) EP3944195A4 (zh)
JP (1) JP7453211B2 (zh)
KR (1) KR20210139261A (zh)
CN (1) CN113557550A (zh)
BR (1) BR112021016832A2 (zh)
MX (1) MX2021010964A (zh)
WO (1) WO2020189709A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023543752A (ja) * 2020-09-25 2023-10-18 オッポ広東移動通信有限公司 点群コーデック方法及びシステム、並びに点群エンコーダ及び点群デコーダ
WO2022075079A1 (ja) * 2020-10-06 2022-04-14 ソニーグループ株式会社 情報処理装置および方法
WO2022075326A1 (ja) * 2020-10-07 2022-04-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20240056604A1 (en) * 2020-12-28 2024-02-15 Sony Group Corporation Information processing apparatus and method
WO2022191132A1 (ja) * 2021-03-09 2022-09-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2023204040A1 (ja) * 2022-04-22 2023-10-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法、符号化方法、復号装置及び符号化装置
WO2024020403A1 (en) * 2022-07-22 2024-01-25 Bytedance Inc. Method, apparatus, and medium for visual data processing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
EP4160150A1 (en) 2016-08-26 2023-04-05 Panasonic Intellectual Property Corporation of America Three-dimensional information processing method and three-dimensional information processing apparatus
EP3293702B1 (en) 2016-09-13 2020-04-29 Dassault Systèmes Compressing a signal that represents a physical attribute
JP2018078503A (ja) * 2016-11-11 2018-05-17 日本電信電話株式会社 データ符号化方法、データ符号化装置及びデータ符号化プログラム

Also Published As

Publication number Publication date
US20240114167A1 (en) 2024-04-04
WO2020189709A1 (ja) 2020-09-24
JP7453211B2 (ja) 2024-03-19
US20210409769A1 (en) 2021-12-30
US11889114B2 (en) 2024-01-30
EP3944195A1 (en) 2022-01-26
EP3944195A4 (en) 2022-08-03
MX2021010964A (es) 2021-10-13
JPWO2020189709A1 (zh) 2020-09-24
BR112021016832A2 (pt) 2021-10-19
KR20210139261A (ko) 2021-11-22

Similar Documents

Publication Publication Date Title
WO2020162495A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7245244B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7453211B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN112262412A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN112313708A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
JP7448519B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7410879B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7478668B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN112219227A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
JP7448517B2 (ja) 三次元データの符号化方法、三次元データの復号方法、三次元データの符号化装置、及び三次元データの復号装置
CN113228109A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN112292713A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
WO2020196677A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020196680A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7444849B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7453212B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
RU2806744C2 (ru) Способ кодирования трехмерных данных, способ декодирования трехмерных данных, устройство кодирования трехмерных данных и устройство декодирования трехмерных данных
CN113348488B (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
JP2024061790A (ja) 符号化方法、復号方法、符号化装置、及び復号装置
JP2024061785A (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Legal Events

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