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

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

Info

Publication number
CN113168720A
CN113168720A CN201980079638.XA CN201980079638A CN113168720A CN 113168720 A CN113168720 A CN 113168720A CN 201980079638 A CN201980079638 A CN 201980079638A CN 113168720 A CN113168720 A CN 113168720A
Authority
CN
China
Prior art keywords
information
data
point
frame
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980079638.XA
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 CN113168720A publication Critical patent/CN113168720A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/251Fusion techniques of input or preprocessed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/12Acquisition of 3D measurements of objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

三维数据编码方法通过结合多个点群数据来生成结合点群数据(S6361),通过对结合点群数据进行编码而生成比特流(S6362),比特流包含:(i)第1信息,表示多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于多个点群数据的哪一个,所述点索引是被分配了与最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点。

Description

三维数据编码方法、三维数据解码方法、三维数据编码装置、 以及三维数据解码装置
技术领域
本公开涉及三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置。
背景技术
在用于汽车或机器人自主地进行工作的计算机视觉、地图信息、监控、基础结构检查、或影像分发等较大的领域中,今后将会普及灵活运用了三维数据的装置或服务。三维数据通过测距仪等距离传感器、立体相机、或多个单眼相机的组合等各种方法来获得。
作为三维数据的一个表现方法有被称作点云的表现方法,该方法通过三维空间内的点群来表现三维结构的形状。在点云中存放了点群的位置以及颜色。虽然预想点云作为三维数据的表现方法将成为主流,但是,点群的数据量非常大。因此,在三维数据的蓄积或传输中与二维的动态图像(作为一个例子,有以MPEG而被标准化后的MPEG-4AVC或HEVC等)一样,需要通过编码来进行数据量的压缩。
并且,关于点云的压缩,有一部分由进行点云关联的处理的公开的库(PointCloud Library:点云库)等支持。
并且,有周知的利用三维的地图数据,检索在车辆周边的设施,并进行显示的技术(例如,参照专利文献1)。
现有技术文献
专利文献
专利文献1国际公开第2014/020663号
发明内容
发明要解决的问题
期望在三维数据的编码处理中能够提高编码效率。
本公开的目的是提供一种能够提高编码效率的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
用来解决课题的手段
本公开的一技术方案的三维数据编码方法,通过结合多个点群数据来生成结合点群数据,通过对所述结合点群数据进行编码来生成比特流,所述比特流包含:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点。
本公开的一技术方案的三维数据解码方法,从通过对结合了多个点群数据的结合点群数据进行编码而生成的比特流获得:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点,使用所述第1信息以及所述多个第2信息,(i)从所述比特流对所述结合点群数据进行解码,(ii)从所述结合点群数据生成所述多个点群数据。
发明效果
本公开能够提供能够提高编码效率的三维数据编码方法、三维数据解码方法、三维数据编码装置或三维数据解码装置。
附图说明
图1是表示实施方式1的三维数据编码解码系统的结构的图。
图2是表示实施方式1的点群数据的结构例的图。
图3是表示记述了实施方式1的点群数据信息的数据文件的结构例的图。
图4是表示实施方式1的点群数据的种类的图。
图5是表示实施方式1的第1编码部的结构的图。
图6是实施方式1的第1编码部的框图。
图7是表示实施方式1的第1解码部的结构的图。
图8是实施方式1的第1解码部的框图。
图9是表示实施方式1的第2编码部的结构的图。
图10是实施方式1的第2编码部的框图。
图11是表示实施方式1的第2解码部的结构的图。
图12是实施方式1的第2解码部的框图。
图13是表示实施方式1的有关PCC编码数据的协议栈的图。
图14是表示实施方式2的ISOBMFF的基本结构的图。
图15是表示实施方式2的协议栈的图。
图16是表示实施方式3的编码部以及复用部的结构的图。
图17是表示实施方式3的编码数据的结构例的图。
图18是表示实施方式3的编码数据以及NAL单元的结构例的图。
图19是表示实施方式3的pcc_nal_unit_type的语义例的图。
图20是表示实施方式3的NAL单元的发送顺序的例子的图。
图21是实施方式4的第1编码部的框图。
图22是实施方式4的第1解码部的框图。
图23是实施方式4的分割部的框图。
图24是表示实施方式4的切片以及瓦片的分割例的图。
图25是表示实施方式4的切片以及瓦片的分割样式的例子的图。
图26是表示实施方式4的依赖关系的例子的图。
图27是表示实施方式4的数据的解码顺序的例子的图。
图28是实施方式4的编码处理的流程图。
图29是实施方式4的结合部的框图。
图30是表示实施方式4的编码数据以及NAL单元的结构例的图。
图31是实施方式4的编码处理的流程图。
图32是实施方式4的解码处理的流程图。
图33是实施方式4的编码处理的流程图。
图34是实施方式4的解码处理的流程图。
图35是表示实施方式5的根据多个帧的点群数据生成树结构以及占用率编码的图像的图。
图36是表示实施方式5的帧结合的例子的图。
图37是表示实施方式5的多个帧的结合的例子的图。
图38是实施方式5的三维数据编码处理的流程图。
图39是实施方式5的编码处理的流程图。
图40是实施方式5的三维数据解码处理的流程图。
图41是实施方式5的解码以及分割处理的流程图。
图42是实施方式5的编码部的框图。
图43是实施方式5的分割部的框图。
图44是实施方式5的位置信息编码部的框图。
图45是实施方式5的属性信息编码部的框图。
图46是实施方式5的点群数据的编码处理的流程图。
图47是实施方式5的编码处理的流程图。
图48是实施方式5的解码部的框图。
图49是实施方式5的位置信息解码部的框图。
图50是实施方式5的属性信息解码部的框图。
图51是实施方式5的结合部的框图。
图52是实施方式5的点群数据的解码处理的流程图。
图53是实施方式5的解码处理的流程图。
图54是表示实施方式5的帧的结合样式的例子的图。
图55是表示实施方式5的PCC帧的结构例的图。
图56是表示实施方式5的编码位置信息的结构的图。
图57是表示实施方式5的编码位置信息的头部的句法例的图。
图58是表示实施方式5的编码位置信息的有效载荷的句法例的图。
图59是表示实施方式5的叶节点信息的例子的图。
图60是表示实施方式5的叶节点信息的例子的图。
图61是表示实施方式5的比特映射信息的例子的图。
图62是表示实施方式5的编码属性信息的结构的图。
图63是表示实施方式5的编码属性信息的头部的句法例的图。
图64是表示实施方式5的编码属性信息的有效载荷的句法例的图。
图65是表示实施方式5的编码数据的结构的图。
图66是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
图67是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
图68是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
图69是表示实施方式5的对一部分帧进行解码的例子的图。
图70是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
图71是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
图72是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
图73是表示实施方式5的数据的发送顺序以及数据的参照关系的图。
图74是实施方式5的编码处理的流程图。
图75是实施方式5的解码处理的流程图。
图76是实施方式6的编码部的框图。
图77是实施方式6的帧索引生成部的框图。
图78是实施方式6的解码部的框图。
图79是实施方式6的帧索引获得部的框图。
图80是实施方式6的帧索引编码部的框图。
图81是表示实施方式6的叶节点和比特映射的一例的图。
图82是表示实施方式6的排序(Ranking)的一例的图。
图83是表示实施方式6的查找表(look up table)的一例的图。
图84是实施方式6的编码处理的流程图。
图85是实施方式6的编码数据的生成处理的流程图。
图86是表示实施方式6的结合信息的句法例的图。
图87是实施方式6的帧索引获得部的框图。
图88是表示实施方式6的查找表的一例的图。
图89是实施方式6的帧索引的解码处理的流程图。
图90是实施方式6的共同信息以及个别信息的解码处理的流程图。
图91是表示实施方式6的叶节点的句法的第1例的图。
图92是表示实施方式6的叶节点的句法的第2例的图。
图93是表示实施方式6的位置信息的句法的第1例的图。
图94是表示实施方式6的位置信息的句法的第2例的图。
图95是实施方式6的编码处理的流程图。
图96是实施方式6的解码处理的流程图。
图97是表示实施方式7的帧结合时的重复点的例子的图。
图98是表示实施方式7的头部的句法例的图。
图99是表示实施方式7的节点信息的句法例的图。
图100是表示实施方式7的重复点的例子的图。
图101是表示实施方式7的重复点的例子的图。
图102是表示实施方式7的重复点的例子的图。
图103是实施方式7的三维数据编码处理的流程图。
图104是表示实施方式7的排名(sort)处理的例子的图。
图105是表示实施方式7的排名处理的例子的图。
图106是实施方式7的三维数据解码处理的流程图。
图107是表示实施方式7的节点信息的句法例的图。
图108是表示实施方式7的比特映射信息与num_combine_point以及combine_equalzero的关系的图。
图109是表示实施方式7的比特映射信息与num_combine_point以及combine_idx的关系的图。
图110是实施方式7的三维数据编码处理的流程图。
图111是实施方式7的三维数据解码处理的流程图。
图112是表示实施方式7的SPS的句法例的图。
图113是表示实施方式7的GPS的句法例的图。
图114是表示实施方式7的GPS的句法例的图。
图115是表示实施方式7的编码效率的比与可否应用帧结合的关系的例子的图。
图116是表示实施方式7的编码效率的比与帧间的距离的关系的例子的图。
图117是示意性地表示实施方式7的可否应用帧结合的切换的图。
图118是实施方式7的三维数据编码处理的流程图。
图119是实施方式7的三维数据编码处理的流程图。
图120是实施方式7的三维数据编码装置的框图。
图121是实施方式7的三维数据编码装置的框图。
图122是表示实施方式7的编码数据的结构例的图。
图123是表示实施方式7的编码数据的结构例的图。
图124是实施方式7的元数据的解码处理的流程图。
图125是实施方式7的三维数据编码处理的流程图。
图126是实施方式7的三维数据解码处理的流程图。
具体实施方式
本公开的一技术方案的三维数据编码方法,通过结合多个点群数据来生成结合点群数据,通过对所述结合点群数据进行编码来生成比特流,所述比特流包含:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点。
由此,通过将多个点群数据汇总进行编码,能够提高编码效率。进而,根据第1信息以及第2信息,在存在点群数据内的重复点以及点群数据间的重复点的情况下,能够高效地识别重复点。
例如,也可以是,所述多个第2信息的每一个分别包含:第3信息,表示具有对应的点索引的三维点的数量;以及第4信息,能够通过与所述第3信息的组合来特定具有所述对应的点索引的所述三维点属于所述多个点群数据中的哪一个。
例如,也可以是,在由所述第3信息表示的所述三维点的数量与所述多个点群数据的数量相等的情况下,对应的所述第2信息不包含所述第4信息。
由此,能够降低比特流的编码量。
例如,也可以是,所述多个第2信息的每一个是具有与所述多个点群数据的数量相同的比特数的比特映射信息。
本公开的一技术方案的三维数据解码方法,从通过对结合了多个点群数据的结合点群数据进行编码而生成的比特流获得:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点,使用所述第1信息以及所述多个第2信息,(i)从所述比特流对所述结合点群数据进行解码,(ii)从所述结合点群数据生成所述多个点群数据。
由此,通过将多个点群数据汇总进行编码,能够提高编码效率。进而,根据第1信息以及第2信息,在存在点群数据内的重复点以及点群数据间的重复点的情况下,能够高效地识别重复点。
例如,也可以是,所述多个第2信息的每一个包含:第3信息,表示具有对应的点索引的三维点的数量;以及第4信息,能够通过与所述第3信息的组合来特定具有所述对应的点索引的所述三维点属于所述多个点群数据中的哪一个。
例如,也可以是,在由所述第3信息表示的所述三维点的数量与所述多个点群数据的数量相等的情况下,对应的所述第2信息不包含所述第4信息。
由此,能够降低比特流的编码量。
例如,也可以是,所述多个第2信息的每一个是具有与所述多个点群数据的数量相同的比特数的比特映射信息。
另外,本公开的一技术方案的三维数据编码装置具备处理器和存储器,所述处理器使用所述存储器,通过结合多个点群数据来生成结合点群数据,通过对所述结合点群数据进行编码来生成比特流,所述比特流包含:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点。
由此,通过将多个点群数据汇总进行编码,能够提高编码效率。进而,根据第1信息以及第2信息,在存在点群数据内的重复点以及点群数据间的重复点的情况下,能够高效地识别重复点。
另外,本公开的一技术方案的三维数据解码装置具备处理器和存储器,所述处理器使用所述存储器,从通过对结合了多个点群数据的结合点群数据进行编码而生成的比特流获得:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点,使用所述第1信息以及所述多个第2信息,(i)从所述比特流对所述结合点群数据进行解码,(ii)从所述结合点群数据生成所述多个点群数据。
由此,通过将多个点群数据汇总进行编码,能够提高编码效率。进而,根据第1信息以及第2信息,在存在点群数据内的重复点以及点群数据间的重复点的情况下,能够高效地识别重复点。
另外,这些概括性的或具体的形态可以由系统、方法、集成电路、计算机程序或计算机可读取的CD-ROM等记录介质来实现,而且可以由系统、方法、集成电路、计算机程序以及记录介质的任意的组合来实现。
以下参照附图对实施方式进行具体说明。另外,以下将要说明的实施方式均为示出本公开的一个具体例子。以下的实施方式所示的数值、形状、材料、构成要素、构成要素的配置位置以及连接形态、步骤、步骤的顺序等均为一个例子,其主旨并非是对本公开进行限定。并且,针对以下的实施方式的构成要素之中没有记载在独立技术方案中的构成要素,作为任意的构成要素来说明。
(实施方式1)
在将点云的编码数据用于实际的装置或服务时,为了抑制网络带宽,而希望按照用途来对所需要的信息进行收发。然而,至今的三维数据的编码结构中不存在这样的功能,因此也没有与此相对的编码方法。
在本实施方式中将要说明的是,用于提供在三维的点云的编码数据中,按照用途来对所需要的信息进行收发的功能的三维数据编码方法以及三维数据编码装置、还有对该编码数据进行解码的三维数据解码方法以及三维数据解码装置,以及对该编码数据进行复用的三维数据复用方法、以及传输该编码数据的三维数据传输方法。
特别是,当前,作为点群数据的编码方法(编码方式)研究了第1编码方法、以及第2编码方法,但没有定义将编码数据的结构以及编码数据向系统格式存放的方法,存在无法直接进行编码部中的MUX处理(复用)、或者传输或蓄积这样的课题。
此外,如PCC(Point Cloud Compression:点云压缩)那样,对第1编码方法和第2编码方法这2个编解码器混合存在的格式进行支持的方法至今不存在。
在本实施方式中,对将第1编码方法和第2编码方法这2个编解码器混合存在的PCC编码数据的结构以及将编码数据向系统格式存放的方法进行说明。
首先,说明本实施方式的三维数据(点群数据)编码解码系统的结构。图1是表示本实施方式的三维数据编码解码系统的结构例的图。如图1所示,三维数据编码解码系统包括三维数据编码系统4601、三维数据解码系统4602、传感器终端4603以及外部连接部4604。
三维数据编码系统4601通过对作为三维数据的点群数据进行编码来生成编码数据或复用数据。此外,三维数据编码系统4601可以是由单个装置实现的三维数据编码装置,也可以是由多个装置实现的系统。另外,三维数据编码装置也可以包含于三维数据编码系统4601中包含的多个处理部中的一部分。
三维数据编码系统4601包括点群数据生成系统4611、提示部4612、编码部4613、复用部4614、输入输出部4615、以及控制部4616。点群数据生成系统4611包括传感器信息获得部4617和点群数据生成部4618。
传感器信息获得部4617从传感器终端4603获得传感器信息,并将传感器信息输出到点群数据生成部4618。点群数据生成部4618根据传感器信息生成点群数据,并将点群数据向编码部4613输出。
提示部4612向用户提示传感器信息或点群数据。例如,提示部4612显示基于传感器信息或点群数据的信息或图像。
编码部4613对点群数据进行编码(压缩),将得到的编码数据、在编码过程中得到的控制信息和其他附加信息向复用部4614输出。附加信息例如包含传感器信息。
复用部4614通过复用从编码部4613输入的编码数据、控制信息和附加信息来生成复用数据。复用数据的格式例如是用于蓄积的文件格式、或用于传输的包格式。
输入输出部4615(例如,通信部或接口)将复用数据向外部输出。或者,复用数据被蓄积于内部存储器等的蓄积部。控制部4616(或应用程序执行部)控制各处理部。即,控制部4616进行编码及复用等控制。
此外,也可以将传感器信息向编码部4613或复用部4614输入。另外,输入输出部4615也可以将点群数据或编码数据直接向外部输出。
从三维数据编码系统4601输出的传输信号(复用数据)经由外部连接部4604输入到三维数据解码系统4602。
三维数据解码系统4602通过对编码数据或复用数据进行解码而生成作为三维数据的点群数据。此外,三维数据解码系统4602可以是由单一的装置实现的三维数据解码装置,也可以是由多个装置实现的系统。另外,三维数据解码装置也可以包含三维数据解码系统4602中包含的多个处理部中的一部分。
三维数据解码系统4602包括传感器信息获得部4621、输入输出部4622、逆复用部4623、解码部4624、提示部4625、用户接口4626、以及控制部4627。
传感器信息获得部4621从传感器终端4603获得传感器信息。
输入输出部4622获得传输信号,根据传输信号对复用数据(文件格式或者包)进行解码,并将复用数据向逆复用部4623输出。
逆复用部4623从复用数据中获得编码数据、控制信息以及附加信息,并将编码数据、控制信息以及附加信息向解码部4624输出。
解码部4624通过对编码数据进行解码而重构点群数据。
提示部4625将点群数据提示给用户。例如,提示部4625显示基于点群数据的信息或图像。用户接口4626获得基于用户的操作的指示。控制部4627(或应用程序执行部)控制各处理部。即,控制部4627进行逆复用、解码以及提示等控制。
此外,输入输出部4622也可以从外部直接获得点群数据或编码数据。另外,提示部4625也可以获得传感器信息等附加信息,并提示基于附加信息的信息。另外,提示部4625也可以基于由用户接口4626获得的用户的指示来进行提示。
传感器终端4603生成由传感器获得的信息即传感器信息。传感器终端4603是搭载有传感器或相机的终端,例如有汽车等移动体、飞机等飞行物体、移动终端或相机等。
能够由传感器终端4603获得的传感器信息例如是(1)由LIDAR、毫米波雷达或者红外线传感器得到的传感器终端4603与对象物的距离、或者对象物的反射率、(2)从多个单眼相机图像或者立体相机图像得到的相机与对象物的距离或者对象物的反射率等。另外,传感器信息也可以包含传感器的姿势、朝向、角运动(角速度)、位置(GPS信息或者高度)、速度或者加速度等。另外,传感器信息也可以包含气温、气压、湿度、或者磁性等。
外部连接部4604通过集成电路(LSI或IC)、外部蓄积部、经由互联网的与云服务器的通信、或者广播等来实现。
接着,对点群数据进行说明。图2是表示点群数据的结构的图。图3是表示记述了点群数据的信息的数据文件的结构例的图。
点群数据包含多个点的数据。各点的数据包含位置信息(三维坐标)以及针对该位置信息的属性信息。将聚集了多个该点的群称为点群。例如,点群表示对象物(object)的三维形状。
有时也将三维坐标等位置信息(Position)称为几何形状(geometry)。另外,各点的数据也可以包含多个属性类别的属性信息(attribute)。属性类别例如是颜色或反射率等。
既可以对1个位置信息将1个属性信息建立对应,也可以对1个位置信息将具有多个不同的属性类别的属性信息建立对应。另外,也可以对1个位置信息将多个相同的属性类别的属性信息建立对应。
图3所示的数据文件的结构例是位置信息和属性信息1对1对应的情况的例子,表示构成点群数据的N个点的位置信息和属性信息。
位置信息例如是x、y、z这3轴的信息。属性信息例如是RGB的颜色信息。作为代表性的数据文件,有ply文件等。
接着,对点群数据的种类进行说明。图4是表示点群数据的种类的图。如图4所示,点群数据包含静态对象和动态对象。
静态对象是任意时间(某个时刻)的三维点群数据。动态对象是随时间变化的三维点群数据。以下,将某时刻的三维点群数据称为PCC帧或者帧。
对象可以是如通常的影像数据那样区域被某种程度限制的点群,也可以是像地图信息那样区域未被限制的大规模点群。
另外,也可以有各种密度的点群数据,存在稀疏的点群数据和密集的点群数据。
以下,对各处理部的详细情况进行说明。传感器信息通过LIDAR或者测距仪等距离传感器、立体相机或者多个单眼相机的组合等各种方法来获得。点群数据生成部4618基于由传感器信息获得部4617得到的传感器信息生成点群数据。点群数据生成部4618生成位置信息作为点群数据,对位置信息附加针对该位置信息的属性信息。
点群数据生成部4618也可以在生成位置信息或者附加属性信息时,对点群数据进行加工。例如,点群数据生成部4618也可以通过删除位置重复的点群来减少数据量。另外,点群数据生成部4618也可以对位置信息进行变换(位置转变、旋转或者标准化等),也可以对属性信息进行渲染(rendering)。
此外,在图1中,点群数据生成系统4611包含于三维数据编码系统4601,但也可以独立设置于三维数据编码系统4601的外部。
编码部4613基于预先规定的编码方法对点群数据进行编码,由此生成编码数据。编码方法大致有以下2种。第1种是使用了位置信息的编码方法,以后将该编码方法记载为第1编码方法。第2种是使用了视频编解码器的编码方法,以后将该编码方法记载为第2编码方法。
解码部4624基于预先规定的编码方法对编码数据进行解码,由此对点群数据进行解码。
复用部4614通过使用现有的复用方式对编码数据进行复用,从而生成复用数据。所生成的复用数据被传输或蓄积。复用部4614除了PCC编码数据以外,还复用影像、声音、字幕、应用程序、文件等其他媒体、或者基准时刻信息。另外,复用部4614还可以对与传感器信息或者点群数据关联的属性信息进行复用。
作为复用方式或文件格式,有ISOBMFF、作为基于ISOBMFF的传输方式的MPEG-DASH、MMT、MPEG-2TS Systems、RMP等。
逆复用部4623从复用数据中提取PCC编码数据、其他媒体以及时刻信息等。
输入输出部4615使用与广播或通信等传输的介质或蓄积的介质一致的方法传输复用数据。输入输出部4615可以经由互联网与其他设备进行通信,也可以与云服务器等蓄积部进行通信。
作为通信协议,使用http、ftp、TCP或UDP等。既可以使用PULL型的通信方式,也可以使用PUSH型的通信方式。
可以使用有线传输和无线传输中的任一种。作为有线传输,使用Ethernet(注册商标)、USB、RS-232C、HDMI(注册商标)或同轴电缆等。作为无线传输,使用无线LAN、Wi-Fi(注册商标)、Bluetooth(注册商标)或毫米波等。
此外,作为广播方式,例如使用DVB-T2、DVB-S2、DVB-C2、ATSC3.0或ISDB-S3等。
图5是表示作为进行第1编码方法的编码的编码部4613的例子的第1编码部4630的结构的图。图6是第1编码部4630的框图。第1编码部4630通过用第1编码方法对点群数据进行编码来生成编码数据(编码流)。该第1编码部4630包括位置信息编码部4631、属性信息编码部4632、附加信息编码部4633以及复用部4634。
第1编码部4630具有考虑三维结构来进行编码的特征。另外,第1编码部4630具有属性信息编码部4632使用从位置信息编码部4631得到的信息进行编码的特征。第1编码方法也被称为GPCC(Geometry based PCC)。
点群数据是PLY文件那样的PCC点群数据、或者根据传感器信息生成的PCC点群数据,包含位置信息(Position)、属性信息(Attribute)以及其他的附加信息(MetaData)。位置信息被输入到位置信息编码部4631,属性信息被输入到属性信息编码部4632,附加信息被输入到附加信息编码部4633。
位置信息编码部4631通过对位置信息进行编码,来生成作为编码数据的编码位置信息(Compressed Geometry)。例如,位置信息编码部4631使用八叉树等N叉树结构对位置信息进行编码。具体而言,在八叉树中,对象空间被分割为8个节点(子空间),生成表示各节点中是否包含点群的8比特的信息(占用率编码)。另外,包含点群的节点进一步被分割为8个节点,生成表示在该8个节点的每一个中是否包含点群的8比特的信息。反复进行该处理,直到成为预先规定的阶层或节点中包含的点群的数量的阈值以下为止。
属性信息编码部4632通过使用由位置信息编码部4631生成的结构信息进行编码,来生成作为编码数据的编码属性信息(Compressed Attribute)。例如,属性信息编码部4632基于由位置信息编码部4631生成的八叉树结构,决定在处理对象的对象点(对象节点)的编码中参照的参照点(参照节点)。例如,属性信息编码部4632参照周边节点或相邻节点中的八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
另外,属性信息的编码处理可以包括量化处理、预测处理和算术编码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点,或者在编码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,编码的参数是量化处理中的量化参数、或者算术编码中的上下文等。
附加信息编码部4633通过对附加信息中的可压缩的数据进行编码,来生成作为编码数据的编码附加信息(Compressed MetaData)。
复用部4634通过对编码位置信息、编码属性信息、编码附加信息以及其他附加信息进行复用,来生成作为编码数据的编码流(Compressed Stream)。所生成的编码流向未图示的系统层的处理部输出。
接着,对作为进行第1编码方法的解码的解码部4624的例子的第1解码部4640进行说明。图7是表示第1解码部4640的结构的图。图8是第1解码部4640的框图。第1解码部4640通过用第1编码方法对用第1编码方法编码后的编码数据(编码流)进行解码,来生成点群数据。该第1解码部4640包括逆复用部4641、位置信息解码部4642、属性信息解码部4643以及附加信息解码部4644。
从未图示的系统层的处理部将作为编码数据的编码流(Compressed Stream)输入到第1解码部4640。
逆复用部4641从编码数据中分离编码位置信息(Compressed Geometry)、编码属性信息(Compressed Attribute)、编码附加信息(Compressed MetaData)以及其他附加信息。
位置信息解码部4642通过对编码位置信息进行解码来生成位置信息。例如,位置信息解码部4642根据由八叉树等N叉树结构表示的编码位置信息,复原用三维坐标表示的点群的位置信息。
属性信息解码部4643基于由位置信息解码部4642生成的结构信息,对编码属性信息进行解码。例如,属性信息解码部4643基于由位置信息解码部4642得到的八叉树结构,决定在处理对象的对象点(对象节点)的解码中参照的参照点(参照节点)。例如,属性信息解码部4643参照周边节点或相邻节点中的八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
另外,属性信息的解码处理也可以包括逆量化处理、预测处理以及算术解码处理中的至少一个。在该情况下,参照是指在属性信息的预测值的计算中使用参照节点,或者在解码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,解码的参数是逆量化处理中的量化参数、或者算术解码中的上下文等。
附加信息解码部4644通过对编码附加信息进行解码来生成附加信息。另外,第1解码部4640在解码时使用位置信息以及属性信息的解码处理所需的附加信息,将应用程序所需的附加信息输出到外部。
接着,对作为进行第2编码方法的编码的编码部4613的例子的第2编码部4650进行说明。图9是表示第2编码部4650的结构的图。图10是第2编码部4650的框图。
第2编码部4650通过用第2编码方法对点群数据进行编码来生成编码数据(编码流)。该第2编码部4650包括附加信息生成部4651、位置图像生成部4652、属性图像生成部4653、影像编码部4654、附加信息编码部4655以及复用部4656。
第2编码部4650具有如下特征:通过将三维结构投影于二维图像来生成位置图像以及属性图像,并使用现有的影像编码方式对所生成的位置图像以及属性图像进行编码。第2编码方法也被称为VPCC(Video based PCC,基于视频的PCC)。
点群数据是PLY文件那样的PCC点群数据、或者根据传感器信息生成的PCC点群数据,包含位置信息(Position)、属性信息(Attribute)以及其他的附加信息(MetaData)。
附加信息生成部4651通过将三维结构投影到二维图像,来生成多个二维图像的映射信息。
位置图像生成部4652基于位置信息和由附加信息生成部4651生成的映射信息,生成位置图像(Geometry Image)。该位置图像例如是表示距离(Depth)作为像素值的距离图像。另外,该距离图像既可以是从一个视点观察多个点群的图像(在一个二维平面上投影了多个点群的图像),也可以是从多个视点观察多个点群的多个图像,也可以是将这些多个图像整合而成的一个图像。
属性图像生成部4653基于属性信息和由附加信息生成部4651生成的映射信息,生成属性图像。该属性图像例如是表示属性信息(例如颜色(RGB))作为像素值的图像。另外,该图像可以是从一个视点观察多个点群的图像(在一个二维平面上投影了多个点群的图像),也可以是从多个视点观察多个点群的多个图像,也可以是将这些多个图像整合而成的一个图像。
影像编码部4654通过使用影像编码方式对位置图像以及属性图像进行编码,来生成作为编码数据的编码位置图像(Compressed Geometry Image)以及编码属性图像(Compressed Attribute Image)。另外,作为影像编码方式,可以使用公知的任意编码方法。例如,影像编码方式是AVC或HEVC等。
附加信息编码部4655通过对点群数据中包含的附加信息以及映射信息等进行编码来生成编码附加信息(Compressed MetaData)。
复用部4656通过对编码位置图像、编码属性图像、编码附加信息以及其他附加信息进行复用,来生成作为编码数据的编码流(Compressed Stream)。所生成的编码流向未图示的系统层的处理部输出。
接着,对作为进行第2编码方法的解码的解码部4624的例子的第2解码部4660进行说明。图11是表示第2解码部4660的结构的图。图12是第2解码部4660的框图。第2解码部4660通过用第2编码方法对通过第2编码方法编码后的编码数据(编码流)进行解码,来生成点群数据。该第2解码部4660包括逆复用部4661、影像解码部4662、附加信息解码部4663、位置信息生成部4664以及属性信息生成部4665。
从未图示的系统层的处理部将作为编码数据的编码流(Compressed Stream)输入到第2解码部4660。
逆复用部4661从编码数据中分离编码位置图像(Compressed Geometry Image)、编码属性图像(Compressed Attribute Image)、编码附加信息(Compressed MetaData)以及其他附加信息。
影像解码部4662通过使用影像编码方式对编码位置图像以及编码属性图像进行解码,来生成位置图像以及属性图像。此外,作为影像编码方式,可以使用公知的任意的编码方式。例如,影像编码方式是AVC或HEVC等。
附加信息解码部4663通过对编码附加信息进行解码,来生成包含映射信息等的附加信息。
位置信息生成部4664使用位置图像和映射信息生成位置信息。属性信息生成部4665使用属性图像和映射信息生成属性信息。
第2解码部4660在解码时使用解码所需的附加信息,将应用程序所需的附加信息输出到外部。
以下,说明PCC编码方式中的课题。图13是表示与PCC编码数据有关的协议栈的图。图13表示在PCC编码数据中复用、传输或蓄积影像(例如HEVC)或声音等其他媒体的数据的例子。
复用方式及文件格式具有用于复用、传输或蓄积各种编码数据的功能。为了传输或蓄积编码数据,必须将编码数据变换为复用方式的格式。例如,在HEVC中,规定了将编码数据存放在被称为NAL单元的数据结构中,并将NAL单元存放到ISOBMFF中的技术。
另一方面,当前,作为点群数据的编码方法,研究了第1编码方法(Codec1)以及第2编码方法(Codec2),但没有定义编码数据的结构以及将编码数据向系统格式存放的方法,存在无法直接进行编码部中的MUX处理(复用)、传输以及蓄积这样的课题。
另外,以下,如果没有特定的编码方法的记载,则表示第1编码方法和第2编码方法中的任一个。
(实施方式2)
在本实施方式中,对将NAL单元存放到ISOBMFF的文件中的方法进行说明。
ISOBMFF(ISO based media file format,基于ISO的媒体文件格式)是ISO/IEC14496-12中规定的文件格式标准。ISOBMFF规定了能够复用并存放视频、音频和文本等各种媒体的格式,是不依赖于媒体的标准。
对ISOBMFF的基本结构(文件)进行说明。ISOBMFF中的基本单位是盒子(box)。盒子由type(类型)、length(长度)、data(数据)构成,组合了各种type的盒子的集合是文件。
图14是表示ISOBMFF的基本结构(文件)的图。ISOBMFF的文件主要包括文件的品牌(brand)为4CC(4字符代码)所示的ftyp、存放控制信息等元数据的moov以及存放数据的mdat等盒子。
另外规定了针对ISOBMFF的文件的每个媒体的存放方法,例如,AVC视频和HEVC视频的存放方法由ISO/IEC14496-15规定。在此,为了蓄积或传输PCC编码数据,考虑将ISOBMFF的功能扩展使用,但还没有将PCC编码数据存放在ISOBMFF的文件中的规定。因此,在本实施方式中,对将PCC编码数据存放到ISOBMFF的文件中的方法进行说明。
图15是表示将PCC编解码器共同的NAL单元存放到ISOBMFF的文件中的情况下的协议栈的图。在此,将PCC编解码器共同的NAL单元存放在ISOBMFF的文件中。NAL单元是PCC编解码器共同的,但由于NAL单元中存放有多个PCC编解码器,因此优选规定与各个编解码器相应的存放方法(Carriage of Codec1、Carriage of Codec2)。
(实施方式3)
在本实施方式中,对由上述的第1编码部4630或第2编码部4650生成的编码数据(位置信息(Geometry)、属性信息(Attribute)、附加信息(Metadata))的类别、以及附加信息(元数据)的生成方法、以及复用部中的复用处理进行说明。另外,附加信息(元数据)有时也表述为参数集或控制信息。
在本实施方式中,以在图4中说明的动态对象(随时间变化的三维点群数据)为例进行说明,但在静态对象(任意时刻的三维点群数据)的情况下也可以使用同样的方法。
图16是表示本实施方式的三维数据编码装置中包含的编码部4801和复用部4802的结构的图。编码部4801例如对应于上述的第1编码部4630或第2编码部4650。复用部4802对应于上述复用部4634或4656。
编码部4801对多个PCC(Point Cloud Compression)帧的点群数据进行编码,生成多个位置信息、属性信息以及附加信息的编码数据(Multiple Compressed Data)。
复用部4802通过将多个数据类别(位置信息、属性信息以及附加信息)的数据进行NAL单元化,来将数据变换为考虑了解码装置中的数据访问的数据结构。
图17是表示由编码部4801生成的编码数据的结构例的图。图中的箭头表示编码数据的解码的依赖关系,箭头的来向依赖于箭头的去向的数据。即,解码装置对箭头的去向的数据进行解码,使用该解码后的数据对箭头的来向的数据进行解码。换言之,所谓依赖是指在依赖源的数据的处理(编码或解码等)中参照(使用)依赖目标的数据。
首先,对位置信息的编码数据的生成处理进行说明。编码部4801通过对各帧的位置信息进行编码,来生成每个帧的编码位置数据(Compressed Geometry Data)。另外,用G(i)表示编码位置数据。i表示帧编号或帧的时刻等。
另外,编码部4801生成与各帧对应的位置参数集(GPS(i))。位置参数集包含能够在编码位置数据的解码中使用的参数。另外,每个帧的编码位置数据依赖于对应的位置参数集。
另外,将由多个帧构成的编码位置数据定义为位置序列(Geometry Sequence)。编码部4801生成位置序列参数集(Geometry Sequence PS:也记为位置SPS),该位置序列参数集存放在针对位置序列内的多个帧的解码处理中共同使用的参数。位置序列依赖于位置SPS。
接着,对属性信息的编码数据的生成处理进行说明。编码部4801通过对各帧的属性信息进行编码,生成每个帧的编码属性数据(Compressed Attribute Data)。此外,用A(i)表示编码属性数据。另外,在图17中,示出了存在属性X和属性Y的例子,用AX(i)表示属性X的编码属性数据,用AY(i)表示属性Y的编码属性数据。
此外,编码部4801生成与各帧对应的属性参数集(APS(i))。另外,用AXPS(i)表示属性X的属性参数集,用AYPS(i)表示属性Y的属性参数集。属性参数集包含能够在编码属性信息的解码中使用的参数。编码属性数据依赖于对应的属性参数集。
另外,将由多个帧构成的编码属性数据定义为属性序列(Attribute Sequence)。编码部4801生成属性序列参数集(Attribute Sequence PS:也记为属性SPS),该属性序列参数集存放在针对属性序列内的多个帧的解码处理中共同使用的参数。属性序列依赖于属性SPS。
此外,在第1编码方法中,编码属性数据依赖于编码位置数据。
另外,在图17中,示出了存在2种属性信息(属性X和属性Y)的情况的例子。在存在2种属性信息的情况下,例如由2个编码部生成各自的数据以及元数据。另外,例如,按照属性信息的每个种类定义属性序列,按属性信息的每个种类生成属性SPS。
另外,在图17中,示出了位置信息为1种、属性信息为2种的例子,但不限于此,属性信息可以是1种,也可以是3种以上。在该情况下,也能够通过同样的方法生成编码数据。另外,在不具有属性信息的点群数据的情况下,也可以不存在属性信息。在该情况下,编码部4801也可以不生成与属性信息相关联的参数集。
接着,对附加信息(元数据)的生成处理进行说明。编码部4801生成作为PCC流整体的参数集的PCC流PS(PCC Stream PS:也记作流PS)。编码部4801在流PS中存放能够针对1个或者多个位置序列以及1个或者多个属性序列的解码处理中共同使用的参数。例如,流PS包含表示点群数据的编解码器的识别信息、以及表示在编码中使用的算法的信息等。位置序列和属性序列依赖于流PS。
接着,对访问单元以及GOF进行说明。在本实施方式中,导入新的访问单元(AccessUnit:AU)以及GOF(Group of Frame)的想法。
访问单元是用于在解码时访问数据的基本单位,由1个以上的数据以及1个以上的元数据构成。例如,访问单元由同一时刻的位置信息和1个或多个属性信息构成。GOF是随机访问单位,由1个以上的访问单元构成。
编码部4801生成访问单元头部(AU Header)作为表示访问单元的开头的识别信息。编码部4801在访问单元头部中存放访问单元的参数。例如,访问单元头部包含访问单元中包含的编码数据的结构或信息。另外,访问单元头部包含访问单元中包含的数据共同使用的参数,例如编码数据的解码的参数等。
此外,编码部4801也可以生成不包含访问单元的参数的访问单元定界符来代替访问单元头部。该访问单元定界符被用作表示访问单元的开头的识别信息。解码装置通过检测访问单元头部或访问单元定界符,来识别访问单元的开头。
接着,对GOF开头的识别信息的生成进行说明。编码部4801生成GOF头部(GOFHeader)作为表示GOF的开头的识别信息。编码部4801在GOF头部中存放GOF的参数。例如,GOF头部包含GOF中包含的编码数据的结构或信息。另外,GOF头部包含在GOF中包含的数据中共同使用的参数,例如编码数据的解码的参数等。
此外,编码部4801也可以生成不包含GOF的参数的GOF定界符来代替GOF头部。该GOF定界符被用作表示GOF的开头的识别信息。解码装置通过检测GOF头部或GOF定界符,来识别GOF的开头。
在PCC编码数据中,例如,访问单元被定义为PCC帧单位。解码装置基于访问单元开头的识别信息,访问PCC帧。
此外,例如,GOF被定义为1个随机访问单位。解码装置基于GOF开头的识别信息,访问随机访问单位。例如,如果PCC帧相互没有依赖关系,能够单独进行解码,则也可以将PCC帧定义为随机访问单位。
另外,可以对1个访问单元分配2个以上的PCC帧,也可以对1个GOF分配多个随机访问单元。
另外,编码部4801也可以定义并生成上述以外的参数集或元数据。例如,编码部4801也可以生成SEI(Supplemental Enhancement Information),该SEI存放有可能在解码时不一定使用的参数(选项的参数)。
接着,对编码数据的结构以及编码数据向NAL单元的存放方法进行说明。
例如,对编码数据的每个种类规定数据形式。图18是表示编码数据以及NAL单元的例子的图。
例如,如图18所示,编码数据包含头部和有效载荷。此外,编码数据也可以包含表示编码数据、头部或有效载荷的长度(数据量)的长度信息。此外,编码数据也可以不包含头部。
头部例如包含用于确定数据的识别信息。该识别信息例如表示数据类别或帧编号。
头部例如包含表示参照关系的识别信息。该识别信息例如在数据间存在依赖关系的情况下存放在头部中,是用于根据参照源参照参照目标的信息。例如,在参照目标的头部中包含用于确定该数据的识别信息。在参照源的头部中包含表示参照目标的识别信息。
此外,在根据其他信息能够识别或者能够导出参照目标或者参照源的情况下,也可以省略用于确定数据的识别信息或者表示参照关系的识别信息。
复用部4802将编码数据存放在NAL单元的有效载荷中。NAL单元头部中包含作为编码数据的识别信息的pcc_nal_unit_type。图19是表示pcc_nal_unit_type的语义的例子的图。
如图19所示,在pcc_codec_type是编解码器1(Codec1:第1编码方法)的情况下,pcc_nal_unit_type的值0~10被分配给编解码器1中的编码位置数据(Geometry)、编码属性X数据(AttributeX)、编码属性Y数据(AttributeY)、位置PS(Geom.PS)、属性XPS(AttrX.PS)、属性YPS(AttrY.PS)、位置SPS(Geometry Sequence PS)、属性XSPS(AttributeX Sequence PS)、属性YSPS(AttributeY Sequence PS)、AU头部(AU Header)、GOF头部(GOF Header)。另外,值11以后,被分配给编解码器1的备用。
在pcc_codec_type是编解码器2(Codex2:第2编码方法)的情况下,pcc_nal_unit_type的值0~2被分配给编解码器的数据A(DataA)、元数据A(MetaDataA)、元数据B(MetaDataB)。另外,值3以后,被分配给编解码器2的备用。
接着,对数据的发送顺序进行说明。以下,对NAL单元的发送顺序的制约进行说明。
复用部4802以GOF或AU单位汇总并发送NAL单元。复用部4802在GOF的开头配置GOF头部,在AU的开头配置AU头部。
即使在由于丢包等丢失了数据的情况下,复用部4802也可以按每个AU配置序列参数集(SPS),使得解码装置能够从下一个AU进行解码。
在编码数据中存在解码的依赖关系的情况下,解码装置在对参照目标的数据进行解码之后,对参照源的数据进行解码。在解码装置中,为了能够不对数据进行重新排序而按照接收到的顺序进行解码,复用部4802先发送参照目标的数据。
图20是表示NAL单元的发送顺序的例子的图。图20表示位置信息优先、参数优先、数据整合这3个例子。
位置信息优先的发送顺序是将与位置信息有关的信息和与属性信息有关的信息分别汇总并发送的例子。在该发送顺序的情况下,与位置信息有关的信息的发送比与属性信息有关的信息的发送更快地完成。
例如,通过使用该发送顺序而不对属性信息进行解码的解码装置通过忽略属性信息的解码,有可能设置不进行处理的时间。另外,例如,在想要尽快解码位置信息的解码装置的情况下,通过尽快得到位置信息的编码数据,有可能更快地对位置信息进行解码。
另外,在图20中,将属性XSPS和属性YSPS整合,记载为属性SPS,但也可以将属性XSPS和属性YSPS个别配置。
在参数集优先的发送顺序中,先发送参数集,之后发送数据。
如上所述,按照NAL单元发送顺序的制约,复用部4802以怎样的顺序发送NAL单元皆可。例如,也可以定义顺序识别信息,复用部4802具有以多个样式的顺序发送NAL单元的功能。例如,在流PS中存放NAL单元的顺序识别信息。
三维数据解码装置也可以基于顺序识别信息进行解码。也可以从三维数据解码装置向三维数据编码装置指示期望的发送顺序,三维数据编码装置(复用部4802)按照所指示的发送顺序来控制发送顺序。
此外,复用部4802也可以如数据整合的发送顺序那样,如果是按照发送顺序的制约的范围,则生成合并了多个功能的编码数据。例如,如图20所示,可以将GOF头部和AU头部整合,也可以将AXPS与AYPS整合。在该情况下,在pcc_nal_unit_type中,定义了表示作为具有多个功能的数据的标识符。
以下,对本实施方式的变形例进行说明。如帧级别的PS、序列级别的PS、PCC序列级别的PS那样,PS具有级别,如果将PCC序列级别设为上位的级别,并将帧级别设为下位的级别,则参数的存放方法也可以使用下述的方法。
用比默认的PS的值靠上位的PS表示。另外,在下位的PS的值与上位的PS的值不同的情况下,用下位的PS表示PS的值。或者,在上位不记载PS的值,在下位的PS中记载PS的值。或者,将PS的值用下位的PS表示,还是用上位的PS表示,还是用双方表示的信息表示在下位的PS和上位的PS的任一方或双方。或者,也可以将下位的PS合并为上位的PS。或者,在下位的PS与上位的PS重复的情况下,复用部4802也可以省略任一方的发送。
此外,编码部4801或复用部4802也可以将数据分割为切片或瓦片等,并发送分割后的数据。在分割后的数据中包含用于识别分割后的数据的信息,在参数集中包含用于分割数据的解码的参数。在该情况下,在pcc_nal_unit_type中,定义了表示是存放瓦片或切片的数据或参数的数据的标识符。
(实施方式4)
在HEVC编码中,为了能够进行解码装置中的并行处理,存在切片或瓦片这样的数据分割的工具,但还不是PCC(Point Cloud Compression)编码。
在PCC中,通过并行处理、压缩效率以及压缩算法,考虑各种数据分割方法。在此,对切片以及瓦片的定义、数据结构以及收发方法进行说明。
图21是表示本实施方式的三维数据编码装置中包含的第1编码部4910的结构的框图。第1编码部4910通过用第1编码方法(GPCC(Geometry based PCC))对点群数据进行编码来生成编码数据(编码流)。该第1编码部4910包括分割部4911、多个位置信息编码部4912、多个属性信息编码部4913、附加信息编码部4914、以及复用部4915。
分割部4911通过分割点群数据来生成多个分割数据。具体而言,分割部4911通过将点群数据的空间分割为多个子空间来生成多个分割数据。在此,子空间是指瓦片以及切片中的一方或者瓦片以及切片的组合。更具体而言,点群数据包含位置信息、属性信息以及附加信息。分割部4911将位置信息分割为多个分割位置信息,将属性信息分割为多个分割属性信息。另外,分割部4911生成与分割相关的附加信息。
多个位置信息编码部4912通过对多个分割位置信息进行编码来生成多个编码位置信息。例如,多个位置信息编码部4912对多个分割位置信息进行并行处理。
多个属性信息编码部4913通过对多个分割属性信息进行编码来生成多个编码属性信息。例如,多个属性信息编码部4913对多个分割属性信息进行并行处理。
附加信息编码部4914通过对点群数据中包含的附加信息和在分割部4911中分割时生成的与数据分割相关的附加信息进行编码,来生成编码附加信息。
复用部4915通过对多个编码位置信息、多个编码属性信息以及编码附加信息进行复用来生成编码数据(编码流),并发送所生成的编码数据。另外,编码附加信息在解码时使用。
另外,在图21中,示出了位置信息编码部4912和属性信息编码部4913的数量分别为2个的例子,但位置信息编码部4912和属性信息编码部4913的数量分别可以为1个,也可以为3个以上。另外,多个分割数据可以如CPU内的多个核那样在同一芯片内被并行处理,也可以由多个芯片的核进行并行处理,也可以由多个芯片的多个核进行并行处理。
图22是表示第1解码部4920的结构的框图。第1解码部4920通过对编码数据(编码流)进行解码来复原点群数据,所述编码数据通过用第1编码方法(GPCC)对点群数据进行编码而生成。该第1解码部4920包括逆复用部4921、多个位置信息解码部4922、多个属性信息解码部4923、附加信息解码部4924、以及结合部4925。
逆复用部4921通过对编码数据(编码流)进行逆复用,生成多个编码位置信息、多个编码属性信息以及编码附加信息。
多个位置信息解码部4922通过对多个编码位置信息进行解码来生成多个分割位置信息。例如,多个位置信息解码部4922对多个编码位置信息进行并行处理。
多个属性信息解码部4923通过对多个编码属性信息进行解码来生成多个分割属性信息。例如,多个属性信息解码部4923对多个编码属性信息进行并行处理。
多个附加信息解码部4924通过对编码附加信息进行解码来生成附加信息。
结合部4925通过使用附加信息结合多个分割位置信息来生成位置信息。结合部4925通过使用附加信息结合多个分割属性信息来生成属性信息。
另外,在图22中,示出了位置信息解码部4922及属性信息解码部4923的数量分别为2个的例子,但位置信息解码部4922及属性信息解码部4923的数量分别可以为1个,也可以为3个以上。另外,多个分割数据可以如CPU内的多个核那样在同一芯片内被并行处理,也可以由多个芯片的核进行并行处理,也可以由多个芯片的多个核进行并行处理。
接着,对分割部4911的结构进行说明。图23是分割部4911的框图。分割部4911包括切片分割部4931(Slice Divider)、位置信息瓦片分割部4932(Geometry Tile Divider)、以及属性信息瓦片分割部4933(Attribute Tile Divider)。
切片分割部4931通过将位置信息(Position(Geometry))分割为切片来生成多个切片位置信息。另外,切片分割部4931通过将属性信息(Attribute)分割为切片来生成多个切片属性信息。另外,切片分割部4931输出包含切片分割的信息以及在切片分割中生成的信息的切片附加信息(Slice MetaData)。
位置信息瓦片分割部4932通过将多个切片位置信息分割为瓦片来生成多个分割位置信息(多个瓦片位置信息)。另外,位置信息瓦片分割部4932输出包含位置信息的瓦片分割的信息、以及在位置信息的瓦片分割中生成的信息的位置瓦片附加信息(GeometryTile MetaData)。
属性信息瓦片分割部4933通过将多个切片属性信息分割为瓦片来生成多个分割属性信息(多个瓦片属性信息)。另外,属性信息瓦片分割部4933输出包含属性信息的瓦片分割的信息、以及在属性信息的瓦片分割中生成的信息的属性瓦片附加信息(AttributeTile MetaData)。
另外,被分割的切片或瓦片的数量为1以上。即,也可以不进行切片或瓦片的分割。
另外,在此,示出了在切片分割后进行瓦片分割的例子,但也可以在瓦片分割后进行切片分割。另外,除了切片以及瓦片之外,还可以定义新的分割类别,以3个以上的分割类别进行分割。
以下,对点群数据的分割方法进行说明。图24是表示切片以及瓦片分割的例子的图。
首先,对切片分割的方法进行说明。分割部4911以切片单位将三维点群数据分割为任意的点群。分割部4911在切片分割中,不分割构成点的位置信息和属性信息,将位置信息和属性信息一并分割。即,分割部4911以任意的点的位置信息和属性信息属于相同的切片的方式进行切片分割。另外,按照这些方法,分割数以及分割方法是怎样的方法都可以。另外,分割的最小单位是点。例如,位置信息和属性信息的分割数相同。例如,与切片分割后的位置信息对应的三维点和与属性信息对应的三维点包含在同一切片中。
另外,分割部4911在切片分割时生成分割数以及分割方法的附加信息即切片附加信息。切片附加信息在位置信息和属性信息中相同。例如,切片附加信息包括表示分割后的边界框的基准坐标位置、大小或者边的长度的信息。另外,切片附加信息包含表示分割数以及分割类型等的信息。
接着,对瓦片分割的方法进行说明。分割部4911将切片分割后的数据分割为切片位置信息(G切片)和切片属性信息(A切片),将切片位置信息和切片属性信息分别分割为瓦片单位。
另外,在图24中,示出了以八叉树结构进行分割的例子,但分割数以及分割方法是怎样的方法都可以。
另外,分割部4911可以将位置信息和属性信息用不同的分割方法进行分割,也可以用相同的分割方法进行分割。另外,分割部4911可以将多个切片用不同的分割方法分割为瓦片,也可以用相同的分割方法分割为瓦片。
另外,分割部4911在瓦片分割时生成分割数以及分割方法的瓦片附加信息。瓦片附加信息(位置瓦片附加信息以及属性瓦片附加信息)在位置信息和属性信息中独立。例如,瓦片附加信息包含表示分割后的边界框的基准坐标位置、大小或边的长度的信息。另外,瓦片附加信息包含表示分割数以及分割类型等的信息。
接着,对将点群数据分割为切片或瓦片的方法的例子进行说明。作为切片或瓦片分割的方法,分割部4911可以使用预先规定的方法,也可以根据点群数据自适应地切换使用的方法。
在切片分割时,分割部4911对位置信息和属性信息一并分割三维空间。例如,分割部4911判定对象的形状,并且根据对象的形状将三维空间划分成为切片。例如,分割部4911提取树或建筑物等对象,并且以对象单位进行分割。例如,分割部4911以1个或多个对象的整体包含在1个切片中的方式进行切片分割。或者,分割部4911将一个对象分割为多个切片。
在该情况下,编码装置例如也可以对每个切片改变编码方法。例如,编码装置也可以对特定的对象或对象的特定的一部分使用高品质的压缩方法。在这种情况下,编码装置可以将表示每个切片的编码方法的信息存放在附加信息(元数据)中。
另外,分割部4911也可以基于地图信息或者位置信息,以各切片与预先规定的坐标空间对应的方式进行切片分割。
在瓦片分割时,分割部4911将位置信息和属性信息独立地分割。例如,分割部4911根据数据量或处理量将切片分割为瓦片。例如,分割部4911判定切片的数据量(例如切片中包含的三维点的数量)是否比预先规定的阈值多。分割部4911在切片的数据量比阈值多的情况下将切片分割为瓦片。分割部4911在切片的数据量比阈值少时不将切片分割为瓦片。
例如,分割部4911将切片分割为瓦片,使得解码装置中的处理量或处理时间成为一定的范围(预先规定的值以下)。由此,解码装置中的每个瓦片的处理量成为一定,解码装置中的分散处理变得容易。
另外,在处理量在位置信息和属性信息中不同的情况下,例如,在位置信息的处理量比属性信息的处理量多的情况下,分割部4911使位置信息的分割数比属性信息的分割数多。
另外,例如,也可以是,在根据内容在解码装置中对位置信息进行快速解码并显示,并在之后可以缓慢地对属性信息进行解码并显示的情况下,分割部4911使位置信息的分割数比属性信息的分割数多。由此,解码装置能够增多位置信息的并列数,因此能够使位置信息的处理比属性信息的处理高速化。
此外,解码装置不一定需要对切片化或瓦片化的数据进行并行处理,也可以根据解码处理部的数量或能力,判定是否对它们进行并行处理。
通过用如上所述的方法进行分割,能够实现与内容或对象相应的自适应的编码。另外,能够实现解码处理中的并行处理。由此,点群编码系统或者点群解码系统的灵活性提高。
图25是表示切片以及瓦片的分割的样式的例子的图。图中的DU是数据单位(DataUnit),表示瓦片或切片的数据。另外,各DU包含切片索引(SliceIndex)和瓦片索引(TileIndex)。图中的DU的右上的数值表示切片索引,DU的左下的数值表示瓦片索引。
在样式1中,在切片分割中,在G切片和A切片中分割数以及分割方法相同。在瓦片分割中,针对G切片的分割数以及分割方法与针对A切片的分割数以及分割方法不同。另外,在多个G切片之间使用相同的分割数以及分割方法。在多个A切片之间使用相同的分割数以及分割方法。
在样式2中,在切片分割中,在G切片和A切片中分割数以及分割方法相同。在瓦片分割中,针对G切片的分割数以及分割方法与针对A切片的分割数以及分割方法不同。另外,在多个G切片之间分割数以及分割方法不同。在多个A切片之间分割数以及分割方法不同。
接着,对分割数据的编码方法进行说明。三维数据编码装置(第1编码部4910)对分割后的数据分别进行编码。三维数据编码装置在对属性信息进行编码时,生成表示基于哪个结构信息(位置信息、附加信息或其他属性信息)进行了编码的依赖关系信息作为附加信息。即,依赖关系信息例如表示参照目标(依赖目标)的结构信息。在该情况下,三维数据编码装置基于与属性信息的分割形状对应的结构信息生成依赖关系信息。此外,三维数据编码装置也可以基于与多个分割形状对应的结构信息生成依存关系信息。
也可以是,依赖关系信息由三维数据编码装置生成,将所生成的依赖关系信息发送到三维数据解码装置。或者,也可以是,三维数据解码装置生成依赖关系信息,三维数据编码装置不发送依赖关系信息。另外,也可以是,预先规定三维数据编码装置使用的依赖关系,三维数据编码装置不发送依赖关系信息。
图26是表示各数据的依赖关系的一例的图。图中的箭头的去向表示依赖目标,箭头的来向表示依赖源。三维数据解码装置按照从依赖目标到依赖源的顺序对数据进行解码。另外,图中由实线表示的数据是实际发送的数据,由虚线表示的数据是不被发送的数据。
另外,在该图中,G表示位置信息,A表示属性信息。Gs1表示切片编号1的位置信息,Gs2表示切片编号2的位置信息。Gs1t1表示切片编号1且瓦片编号1的位置信息,Gs1t2表示切片编号1且瓦片编号2的位置信息,Gs2t1表示切片编号2且瓦片编号1的位置信息,Gs2t2表示切片编号2且瓦片编号2的位置信息。同样,As1表示切片编号1的属性信息,As2表示切片编号2的属性信息。As1t1表示切片编号1且瓦片编号1的属性信息,As1t2表示切片编号1且瓦片编号2的属性信息,As2t1表示切片编号2且瓦片编号1的属性信息,As2t2表示切片编号2且瓦片编号2的属性信息。
Mslice表示切片附加信息,MGtile表示位置瓦片附加信息,MAtile表示属性瓦片附加信息。Ds1t1表示属性信息As1t1的依赖关系信息,Ds2t1表示属性信息As2t1的依赖关系信息。
另外,三维数据编码装置也可以以解码顺序对数据进行重新排序,使得不需要在三维数据解码装置中对数据进行重新排序。另外,可以在三维数据解码装置中对数据进行重新排序,也可以在三维数据编码装置和三维数据解码装置双方中对数据进行重新排序。
图27是表示数据的解码顺序的例子的图。在图27的例子中,从左侧的数据起依次进行解码。三维数据解码装置在处于依赖关系的数据间,从依赖目标的数据先解码。例如,三维数据编码装置以成为该顺序的方式预先将数据重新排序并发送。另外,只要是依赖目标的数据在先的顺序,则怎样的顺序都可以。另外,三维数据编码装置也可以将附加信息以及依赖关系信息先于数据发送。
图28是表示由三维数据编码装置进行的处理的流程的流程图。首先,三维数据编码装置如上所述对多个切片或瓦片的数据进行编码(S4901)。接着,如图27所示,三维数据编码装置以依赖目标的数据为先的方式对数据进行重新排序(S4902)。接着,三维数据编码装置对重新排序后的数据进行复用(NAL单元化)(S4903)。
接着,对第1解码部4920中包含的结合部4925的结构进行说明。图29是表示结合部4925的结构的框图。结合部4925包括位置信息瓦片结合部4941(Geometry TileCombiner)、属性信息瓦片结合部4942(Attribute Tile Combiner)、以及切片结合部(Slice Combiner)。
位置信息瓦片结合部4941通过使用位置瓦片附加信息结合多个分割位置信息,来生成多个切片位置信息。属性信息瓦片结合部4942通过使用属性瓦片附加信息将多个分割属性信息结合来生成多个切片属性信息。
切片结合部4943通过使用切片附加信息结合多个切片位置信息来生成位置信息。另外,切片结合部4943通过使用切片附加信息结合多个切片属性信息来生成属性信息。
另外,被分割的切片或瓦片的数量为1以上。即,也可以不进行切片或瓦片的分割。
另外,在此,示出了在切片分割后进行瓦片分割的例子,但也可以在瓦片分割后进行切片分割。另外,除了切片以及瓦片之外,还可以定义新的分割类别,以3个以上的分割类别进行分割。
接着,对切片分割或瓦片分割后的编码数据的结构、以及编码数据向NAL单元的存放方法(复用方法)进行说明。图30是表示编码数据的结构以及编码数据向NAL单元的存放方法的图。
编码数据(分割位置信息和分割属性信息)存放在NAL单元的有效载荷中。
编码数据包含头部和有效载荷。头部包含用于确定有效载荷中包含的数据的识别信息。该识别信息例如包含切片分割或瓦片分割的类别(slice_type、tile_type)、用于确定切片或瓦片的索引信息(slice_idx、tile_idx)、数据(切片或瓦片)的位置信息、或数据的地址(address)等。用于确定切片的索引信息也记作切片索引(SliceIndex)。用于确定瓦片的索引信息也记作瓦片索引(TileIndex)。另外,分割的类别例如是基于上述那样的对象形状的手法、基于地图信息或者位置信息的手法、或者基于数据量或者处理量的手法等。
另外,上述信息的全部或一部分也可以存放在分割位置信息的头部和分割属性信息的头部中的一方,而不存放在另一方。例如,在位置信息和属性信息中使用相同的分割方法的情况下,在位置信息和属性信息中分割的类别(slice_type、tile_type)以及索引信息(slice_idx、tile_idx)相同。因此,也可以在位置信息和属性信息的一方的头部中包含这些信息。例如,在属性信息依赖于位置信息的情况下,先处理位置信息。因此,也可以在位置信息的头部中包含这些信息,而在属性信息的头部中不包含这些信息。在该情况下,三维数据解码装置例如判断为依赖源的属性信息属于与依赖目标的位置信息的切片或瓦片相同的切片或瓦片。
另外,切片分割或瓦片分割的附加信息(切片附加信息、位置瓦片附加信息或属性瓦片附加信息)、以及表示依赖关系的依赖关系信息等也可以存放在现有的参数集(GPS、APS、位置SPS或属性SPS等)中发送。在分割方法按每个帧变化的情况下,也可以在每个帧的参数集(GPS或APS等)中存放表示分割方法的信息。在序列内分割方法不变化的情况下,也可以在每个序列的参数集(位置SPS或者属性SPS)中存放表示分割方法的信息。进而,在位置信息和属性信息中使用相同的分割方法的情况下,也可以在PCC流的参数集(流PS)中存放表示分割方法的信息。
另外,上述的信息可以存放在上述任一个参数集中,也可以存放在多个参数集中。另外,也可以定义瓦片分割或切片分割用的参数集,并在该参数集中存放上述的信息。另外,这些信息也可以存放在编码数据的头部中。
此外,编码数据的头部包含表示依赖关系的识别信息。即,该头部在数据间存在依赖关系的情况下,包含用于从依赖源参照依赖目标的识别信息。例如,在依赖目标的数据的头部中包含用于确定该数据的识别信息。在依赖源的数据的头部中包含表示依赖目标的识别信息。另外,在从其他信息中能够识别或能够导出用于确定数据的识别信息、切片分割或瓦片分割的附加信息以及表示依赖关系的识别信息的情况下,也可以省略这些信息。
接着,对本实施方式的点群数据的编码处理以及解码处理的流程进行说明。图31是本实施方式的点群数据的编码处理的流程图。
首先,三维数据编码装置决定要使用的分割方法(S4911)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包含进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。分割的类别是基于如上所述的对象形状的手法、基于地图信息或位置信息的手法、或者基于数据量或处理量的手法等。另外,分割方法也可以预先规定。
在进行切片分割的情况下(S4912中的“是”),三维数据编码装置通过将位置信息和属性信息一并分割来生成多个切片位置信息以及多个切片属性信息(S4913)。另外,三维数据编码装置生成切片分割的切片附加信息。另外,三维数据编码装置也可以独立地分割位置信息和属性信息。
在进行瓦片分割的情况下(S4914中的“是”),三维数据编码装置通过独立地分割多个切片位置信息以及多个切片属性信息(或者位置信息以及属性信息),来生成多个分割位置信息以及多个分割属性信息(S4915)。另外,三维数据编码装置生成瓦片分割的位置瓦片附加信息以及属性瓦片附加信息。另外,三维数据编码装置也可以将切片位置信息和切片属性信息一并分割。
接着,三维数据编码装置通过对多个分割位置信息以及多个分割属性信息分别进行编码,来生成多个编码位置信息以及多个编码属性信息(S4916)。此外,三维数据编码装置生成依赖关系信息。
接着,三维数据编码装置通过对多个编码位置信息、多个编码属性信息以及附加信息进行NAL单元化(复用),来生成编码数据(编码流)(S4917)。此外,三维数据编码装置发送所生成的编码数据。
图32是本实施方式的点群数据的解码处理的流程图。首先,三维数据解码装置通过解析编码数据(编码流)中包含的、分割方法的附加信息(切片附加信息、位置瓦片附加信息以及属性瓦片附加信息),来判定分割方法(S4921)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包括进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。
接着,三维数据解码装置通过使用编码数据中包含的依赖关系信息对编码数据中包含的多个编码位置信息和多个编码属性信息进行解码,来生成分割位置信息和分割属性信息(S4922)。
在通过附加信息表示进行了瓦片分割的情况下(S4923中的“是”),三维数据解码装置基于位置瓦片附加信息以及属性瓦片附加信息,以各自的方法结合多个分割位置信息和多个分割属性信息,从而生成多个切片位置信息以及多个切片属性信息(S4924)。另外,三维数据解码装置也可以将多个分割位置信息和多个分割属性信息以相同的方法结合。
在由附加信息表示进行了切片分割的情况下(S4925中的“是”),三维数据解码装置基于切片附加信息,以相同的方法结合多个切片位置信息以及多个切片属性信息(多个分割位置信息以及多个分割属性信息),从而生成位置信息以及属性信息(S4926)。另外,三维数据解码装置也可以将多个切片位置信息和多个切片属性信息分别用不同的方法结合。
如上所述,本实施方式的三维数据编码装置进行图33所示的处理。首先,三维数据编码装置分割为各自包含1个以上的三维点的多个分割数据(例如瓦片),所述多个分割数据包含于将包含多个三维点的对象空间分割后的多个子空间(例如切片)。在此,分割数据包含在子空间中,是包含1个以上的三维点的1个以上的数据集合体。另外,分割数据也可以是空间,也可以包含不包含三维点的空间。另外,可以在1个子空间中包含多个分割数据,也可以在1个子空间中包含1个分割数据。另外,可以在对象空间中设定多个子空间,也可以在对象空间中设定1个子空间。
接着,三维数据编码装置通过对多个分割数据的每一个进行编码,来生成与多个分割数据的每一个对应的多个编码数据(S4931)。三维数据编码装置生成包含多个编码数据和针对多个编码数据的每一个的多个控制信息(例如图30所示的头部)的比特流(S4932)。在多个控制信息中的每一个中,存放表示与对应于该控制信息的编码数据对应的子空间的第1标识符(例如slice_idx)、和表示与对应于该控制信息的编码数据对应的分割数据的第2标识符(例如tile_idx)。
由此,对由三维数据编码装置生成的比特流进行解码的三维数据解码装置能够使用第1标识符以及第2标识符,将多个分割数据的数据结合而容易地复原对象空间。因此,能够降低三维数据解码装置中的处理量。
例如,在所述编码中,三维数据编码装置对多个分割数据的每一个所包含的三维点的位置信息和属性信息进行编码。多个编码数据中的每一个包含位置信息的编码数据和属性信息的编码数据。多个控制信息的每一个包含位置信息的编码数据的控制信息和属性信息的编码数据的控制信息。第1标识符和第2标识符存放在位置信息的编码数据的控制信息中。
例如,在比特流中,多个控制信息分别配置在与该控制信息对应的编码数据之前。
另外,也可以是,三维数据编码装置将包含多个三维点的对象空间设定为1个以上的子空间,在所述子空间中包含包含1个以上的三维点的1个以上的分割数据,对所述分割数据的每一个进行编码,从而生成与所述多个分割数据的每一个对应的多个编码数据,生成包含所述多个编码数据和针对所述多个编码数据的每一个的多个控制信息的比特流,在所述多个控制信息的每一个中存放表示与对应于该控制信息的编码数据对应的子空间的第1标识符、和表示与对应于该控制信息的编码数据对应的分割数据的第2标识符。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
另外,本实施方式的三维数据解码装置进行图34所示的处理。首先,三维数据解码装置从包含多个编码数据和多个控制信息(例如图30所示的头部)的比特流,获得存放在所述多个控制信息中的第1标识符(例如slice_idx)和第2标识符(例如tile_idx)(S4941),所述多个编码数据通过对包含在包含多个三维点的对象空间分割后的多个子空间(例如切片)中的、分别包含1个以上的三维点的多个分割数据(例如瓦片)的每一个进行编码而生成,所述多个控制信息针对多个编码数据的每一个,所述第1标识符表示与对应于该控制信息的编码数据对应的子空间,所述第2标识符表示与对应于该控制信息的编码数据对应的分割数据。接着,三维数据解码装置通过对多个编码数据进行解码,来复原多个分割数据(S4942)。接着,三维数据解码装置使用第1标识符以及第2标识符,结合多个分割数据,从而复原对象空间(S4943)。例如,三维数据编码装置通过使用第2标识符将多个分割数据结合来复原多个子空间,通过使用第1标识符将多个子空间结合来复原对象空间(多个三维点)。此外,三维数据解码装置也可以使用第1标识符以及第2标识符中的至少一方,从比特流获得期望的子空间或者分割数据的编码数据,并选择性地对获得的编码数据进行解码或者优先解码。
由此,三维数据解码装置能够使用第1标识符以及第2标识符,将多个分割数据的数据结合而容易地复原对象空间。因此,能够降低三维数据解码装置中的处理量。
例如,多个编码数据中的每一个通过对包含在对应的分割数据中的三维点的位置信息和属性信息进行编码而生成,包含位置信息的编码数据和属性信息的编码数据。多个控制信息分别包含位置信息的编码数据的控制信息和属性信息的编码数据的控制信息。第1标识符以及第2标识符存放在位置信息的编码数据的控制信息中。
例如,在比特流中,控制信息配置在对应的编码数据之前。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式5)
在使用了相邻依赖的位置信息编码中,存在点群的密度越高,则编码效率越提高的可能性。在本实施方式中,三维数据编码装置通过将连续的帧的点群数据结合,来对连续的帧的点群数据进行汇总编码。此时,三维数据编码装置生成编码数据,所述编码数据添加了用于识别结合后的点群数据中包含的叶节点各自所属的帧的信息。
在此,连续的帧的点群数据类似的可能性高。因此,在连续的帧中,占用率编码的上位级别相同的可能性高。即,通过对连续的帧进行汇总编码,能够共用占用率编码的上位级别。
此外,点群属于哪个帧的辨别,是通过对帧的索引进行编码,而在叶节点中进行的。
图35是表示从N个PCC(Point Cloud Compression)帧的点群数据生成树结构以及占用率编码(Occupancy Code)的图像的图。在该图中,箭头中的点示出了属于各个PCC帧的点。首先,对属于各个PCC帧的点赋予用于确定帧的帧索引。
接着,将属于N个帧的点变换为树结构,生成占用率编码。具体而言,对每个点判定点属于树结构中的哪个叶节点。在该图中,树结构(Tree Structure)示出了节点的集合。从上位节点起依次判定点属于哪个节点。每个节点的判定结果被编码为占用率编码。占用率编码在N个帧中是共同的。
在节点中,存在被赋予了不同的帧索引的、不同的帧的点混合存在的情况。另外,在八叉树(Octree)的分辨率小的情况下,也存在被赋予了相同的帧索引的相同帧的点混合存在的情况。
有时在最下层的节点(叶节点)中混合存在(重复)属于多个帧的点。
在树结构以及占用率编码中,上位级别的树结构以及占用率编码有可能在所有帧中都是共同成分,下位级别的树结构以及占用率编码有可能是每个帧的个别成分、或者混合存在共同成分和个别成分。
例如,在叶节点等最下层的节点中生成具有帧索引的0以上的点,生成表示点的数量的信息以及针对各点的帧索引的信息。这些信息也可以说是在帧中个别的信息。
图36是表示帧结合的例子的图。如图36的(a)所示,通过将多个帧汇总并生成树结构,同一节点中包含的帧的点的密度增加。另外,通过共有树结构,能够削减占用率编码的数据量。由此,存在能够提高编码率的可能性。
另外,如图36的(b)所示,树结构中的占用率编码的个别成分变得更密集,由此算术编码的效果提高,因此存在能够提高编码率的可能性。
以下,以时间上不同的多个PCC帧的结合为例进行说明,但在不是多个帧的情况下,即在不结合帧的情况下(N=1)也能够应用。另外,结合的多个点群数据不限于多个帧,即不限于同一对象物的时刻不同的点群数据。即,以下的手法也能够应用于空间上或时空上不同的多个点群数据的结合。另外,以下的手法也能够应用于内容不同的点群数据或者点群文件的结合。
图37是表示时间上不同的多个PCC帧的结合的例子的图。图37表示汽车一边移动一边通过LiDAR等传感器获得点群数据的例子。虚线示出了每个帧的传感器的获得范围,即点群数据的区域。在传感器的获得范围大的情况下,点群数据的范围也变大。
结合点群数据进行编码的手法对于以下那样的点群数据是有效的。例如,在图37所示的例子中,汽车移动,帧通过汽车的周边的360°的扫描来识别。即,作为下一个帧的帧2与车辆向X方向移动后的另一360°的扫描对应。
在该情况下,由于在帧1和帧2中存在重复的区域,因此存在包含相同的点群数据的可能性。因此,通过结合帧1和帧2进行编码,存在能够提高编码效率的可能性。另外,还考虑结合更多的帧。但是,如果增加要结合的帧数,则附加于叶节点的帧索引的编码所需的比特数增加。
另外,也可以通过不同位置的传感器获得点群数据。由此,也可以将从各个位置获得的各个点群数据分别用作帧。即,多个帧可以是由单一的传感器获得的点群数据,也可以是由多个传感器获得的点群数据。另外,在多个帧间,一部分或全部对象物可以相同,也可以不同。
接着,说明本实施方式的三维数据编码处理的流程。图38是三维数据编码处理的流程图。三维数据编码装置基于作为进行结合的帧的数量的结合帧数N,读入N个全部帧的点群数据。
首先,三维数据编码装置决定结合帧数N(S5401)。例如,该结合帧数N由用户指定。
接着,三维数据编码装置获得点群数据(S5402)。接着,三维数据编码装置记录所获得的点群数据的帧索引(S5403)。
在非已处理N个帧的情况下(S5404中的“否”),三维数据编码装置指定下一个点群数据(S5405),对指定的点群数据进行步骤S5402以后的处理。
另一方面,在已处理N个帧的情况下(S5404中的“是”),三维数据编码装置结合N个帧,对结合后的帧进行编码(S5406)。
图39是编码处理(S5406)的流程图。首先,三维数据编码装置在N个帧中生成共同的共同信息(S5411)。例如,共同信息包含表示占用率编码以及结合帧数N的信息。
接着,三维数据编码装置对每个帧生成个别的信息即个别信息(S5412)。例如,个别信息包含叶节点中包含的点的数量、以及叶节点中包含的点的帧索引。
接着,三维数据编码装置将共同信息与个别信息结合,对结合后的信息进行编码,由此生成编码数据(S5413)。接着,三维数据编码装置生成帧结合的附加信息(元数据),对生成的附加信息进行编码(S5414)。
接着,说明本实施方式的三维数据解码处理的流程。图40是三维数据解码处理的流程图。
首先,三维数据解码装置从比特流获得结合帧数N(S5421)。接着,三维数据编码装置从比特流获得编码数据(S5422)。接着,三维数据解码装置通过对编码数据进行解码,来获得点群数据和帧索引(S5423)。最后,三维数据解码装置使用帧索引对解码后的点群数据进行分割(S5424)。
图41是解码和分割处理(S5423和S5424)的流程图。首先,三维数据解码装置从编码数据(比特流)中解码(获得)共同信息以及个别信息(S5431)。
接着,三维数据解码装置决定是对单个帧进行解码还是对多个帧进行解码(S5432)。例如,可以从外部指定是对单个帧进行解码还是对多个帧进行解码。在此,多个帧可以是结合的帧的全部帧,也可以是一部分帧。例如,三维数据解码装置也可以决定为对需要应用程序的特定的帧进行解码,不对不需要的帧进行解码。或者,在要求实时的解码的情况下,三维数据解码装置也可以决定为对所结合的多个帧中的单一帧进行解码。
在对单一帧进行解码的情况下(S5432中的“是”),三维数据解码装置从解码出的个别信息中提取与指定的单一帧索引对应的个别信息,对提取出的个别信息进行解码,由此复原与指定的帧索引对应的帧的点群数据(S5433)。
另一方面,在对多个帧进行解码的情况下(S5432中的“否”),三维数据解码装置提取与所指定的多个帧(或全部帧)的帧索引对应的个别信息,对提取出的个别信息进行解码,由此复原所指定的多个帧的点群数据(S5434)。接着,三维数据解码装置基于帧索引对解码后的点群数据(个别信息)进行分割(S5435)。即,三维数据解码装置将解码后的点群数据分割为多个帧。
此外,三维数据解码装置可以对结合后的所有帧的数据一并进行解码,将解码后的数据分割为各帧,也可以将结合后的所有帧中的任意的一部分帧一并解码,将解码后的数据分割为各帧。另外,三维数据解码装置也可以单独地对由多个帧构成的预先规定的单位帧进行解码。
以下,对本实施方式的三维数据编码装置的结构进行说明。图42是表示本实施方式的三维数据编码装置中包含的编码部5410的结构的框图。编码部5410通过对点群数据(点云)进行编码来生成编码数据(编码流)。编码部5410包括分割部5411、多个位置信息编码部5412、多个属性信息编码部5413、附加信息编码部5414以及复用部5415。
分割部5411通过对多个帧的点群数据进行分割来生成多个帧的多个分割数据。具体而言,分割部5411通过将各帧的点群数据的空间分割为多个子空间来生成多个分割数据。在此,子空间是指瓦片以及切片中的一方或者瓦片以及切片的组合。更具体而言,点群数据包含位置信息、属性信息(颜色或者反射率等)以及附加信息。另外,对分割部5411输入帧编号。分割部5411将各帧的位置信息分割为多个分割位置信息,将各帧的属性信息分割为多个分割属性信息。另外,分割部5411生成与分割相关的附加信息。
例如,分割部5411首先将点群分割为瓦片。接下来,分割部5411将所获得的瓦片进一步分割为切片。
多个位置信息编码部5412通过对多个分割位置信息进行编码来生成多个编码位置信息。例如,位置信息编码部5412使用八叉树等N叉树结构对分割位置信息进行编码。具体而言,在八叉树中,对象空间被分割为8个节点(子空间),生成表示各节点中是否包含点群的8比特的信息(占用率编码)。另外,包含点群的节点还被分割为8个节点,生成表示在该8个节点的每一个中是否包含点群的8比特的信息。反复进行该处理,直到成为预先规定的阶层或节点中包含的点群的数量的阈值以下为止。例如,多个位置信息编码部5412对多个分割位置信息进行并行处理。
属性信息编码部4632通过使用由位置信息编码部4631生成的结构信息进行编码,来生成作为编码数据的编码属性信息。例如,属性信息编码部4632基于由位置信息编码部4631生成的八叉树结构,决定在处理对象的对象点(对象节点)的编码中参照的参照点(参照节点)。例如,属性信息编码部4632参照周边节点或相邻节点中的、八叉树中的父节点与对象节点的父节点相同的节点。另外,参照关系的决定方法不限于此。
另外,位置信息或者属性信息的编码处理也可以包括量化处理、预测处理以及算术编码处理中的至少一个。在该情况下,参照是指,在属性信息的预测值的计算中使用参照节点、或者在编码的参数的决定中使用参照节点的状态(例如,表示在参照节点中是否包含点群的占有信息)。例如,编码的参数是指量化处理中的量化参数、或者算术编码中的上下文等。
多个属性信息编码部5413通过对多个分割属性信息进行编码来生成多个编码属性信息。例如,多个属性信息编码部5413对多个分割属性信息进行并行处理。
附加信息编码部5414通过对点群数据中包含的附加信息和由分割部5411分割时生成的与数据分割相关的附加信息进行编码,生成编码附加信息。
复用部5415通过对多个帧的多个编码位置信息、多个编码属性信息以及编码附加信息进行复用,来生成编码数据(编码流),并发送所生成的编码数据。另外,编码附加信息在解码时使用。
图43是分割部5411的框图。分割部5411包括瓦片分割部5421和切片分割部5422。
瓦片分割部5421通过将多个帧的位置信息(Position(Geometry))分别分割为瓦片来生成多个瓦片位置信息。另外,瓦片分割部5421通过将多个帧的属性信息(Attribute)分别分割为瓦片来生成多个瓦片属性信息。另外,瓦片分割部5421输出包含瓦片分割的信息、以及在瓦片分割中生成的信息的瓦片附加信息(Tile MetaData)。
切片分割部5422通过将多个瓦片位置信息分割为切片来生成多个分割位置信息(多个切片位置信息)。另外,切片分割部5422通过将多个瓦片属性信息分割为切片来生成多个分割属性信息(多个切片属性信息)。另外,切片分割部5422输出包含切片分割的信息以及在切片分割中生成的信息的切片附加信息(Slice MetaData)。
另外,分割部5411在分割处理中,为了表示原点坐标以及属性信息等,使用帧编号(帧索引)。
图44是位置信息编码部5412的框图。位置信息编码部5412包括帧索引生成部5431和熵编码部5432。
帧索引生成部5431基于帧编号决定帧索引的值,并且将所决定的帧索引附加到位置信息。熵编码部5432通过对附加了帧索引的分割位置信息进行熵编码来生成编码位置信息。
图45是属性信息编码部5413的框图。属性信息编码部5413包括帧索引生成部5441和熵编码部5442。
帧索引生成部5441基于帧编号决定帧索引的值,并且将所决定的帧索引附加到属性信息。熵编码部5442通过对附加了帧索引的分割属性信息进行熵编码来生成编码属性信息。
接着,对本实施方式的点群数据的编码处理以及解码处理的流程进行说明。图46是本实施方式的点群数据的编码处理的流程图。
首先,三维数据编码装置决定要使用的分割方法(S5441)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包括进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。
在进行瓦片分割的情况下(S5442中的“是”),三维数据编码装置通过对位置信息和属性信息进行分割来生成多个瓦片位置信息以及多个瓦片属性信息(S5443)。另外,三维数据编码装置生成瓦片分割的瓦片附加信息。
在进行切片分割的情况下(S5444中的“是”),三维数据编码装置通过分割多个瓦片位置信息以及多个瓦片属性信息(或者位置信息以及属性信息)来生成多个分割位置信息以及多个分割属性信息(S5445)。另外,三维数据编码装置生成切片分割的切片附加信息。
接着,三维数据编码装置通过将多个分割位置信息以及多个分割属性信息分别与帧索引进行编码,来生成多个编码位置信息以及多个编码属性信息(S5446)。此外,三维数据编码装置生成依赖关系信息。
接着,三维数据编码装置通过对多个编码位置信息、多个编码属性信息以及附加信息进行NAL单元化(复用)来生成编码数据(编码流)(S5447)。此外,三维数据编码装置发送所生成的编码数据。
图47是编码处理(S5446)的流程图。首先,三维数据编码装置对分割位置信息进行编码(S5451)。接着,三维数据编码装置对分割位置信息用的帧索引进行编码(S5452)。
在存在分割属性信息的情况下(S5453中的“是”),三维数据编码装置对分割属性信息进行编码(S5454),对分割属性信息用的帧索引进行编码(S5455)。另一方面,在不存在分割属性信息的情况下(S5453中的“否”),三维数据编码装置不进行分割属性信息的编码以及分割属性信息用的帧索引的编码。另外,帧索引也可以存放在分割位置信息和分割属性信息中的任一方或双方。
此外,三维数据编码装置对属性信息可以使用帧索引进行编码,也可以不使用帧索引而进行编码。即,三维数据编码装置可以使用帧索引来识别各个点所属的帧,并对每个帧进行编码,也可以不识别帧而对属于所有帧的点进行编码。
以下,说明本实施方式的三维数据解码装置的结构。图48是表示解码部5450的结构的框图。解码部5450通过对编码数据(编码流)进行解码来复原点群数据,所述编码数据通过对点群数据进行编码而生成。该解码部5450包括逆复用部5451、多个位置信息解码部5452、多个属性信息解码部5453、附加信息解码部5454、以及结合部5455。
逆复用部5451通过对编码数据(编码流)进行逆复用而生成多个编码位置信息、多个编码属性信息以及编码附加信息。
多个位置信息解码部5452通过对多个编码位置信息进行解码来生成多个分割位置信息。例如,多个位置信息解码部5452对多个编码位置信息进行并行处理。
多个属性信息解码部5453通过对多个编码属性信息进行解码来生成多个分割属性信息。例如,多个属性信息解码部5453对多个编码属性信息进行并行处理。
多个附加信息解码部5454通过对编码附加信息进行解码来生成附加信息。
结合部5455通过使用附加信息结合多个分割位置信息来生成位置信息。结合部5455通过使用附加信息结合多个分割属性信息来生成属性信息。另外,结合部5455使用帧索引将位置信息以及属性信息分割为多个帧的位置信息以及多个帧的属性信息。
图49是位置信息解码部5452的框图。位置信息解码部5452包括熵解码部5461和帧索引获得部5462。熵解码部5461通过对编码位置信息进行熵解码来生成分割位置信息。帧索引获得部5462从分割位置信息获得帧索引。
图50是属性信息解码部5453的框图。属性信息解码部5453包括熵解码部5471和帧索引获得部5472。熵解码部5471通过对编码属性信息进行熵解码来生成分割属性信息。帧索引获得部5472从分割属性信息获得帧索引。
图51是表示结合部5455的结构的图。结合部5455通过结合多个分割位置信息来生成位置信息。结合部5455通过结合多个分割属性信息来生成属性信息。另外,结合部5455使用帧索引将位置信息以及属性信息分割为多个帧的位置信息以及多个帧的属性信息。
图52是本实施方式的点群数据的解码处理的流程图。首先,三维数据解码装置通过解析编码数据(编码流)中包含的、分割方法的附加信息(切片附加信息以及瓦片附加信息),来判定分割方法(S5461)。该分割方法包括是否进行切片分割、是否进行瓦片分割。另外,分割方法也可以包括进行切片分割或瓦片分割的情况下的分割数、以及分割的类别等。
接着,三维数据解码装置使用编码数据中包含的依赖关系信息,对编码数据中包含的多个编码位置信息和多个编码属性信息进行解码,从而生成分割位置信息以及分割属性信息(S5462)。
在由附加信息表示进行了切片分割的情况下(S5463中的“是”),三维数据解码装置基于切片附加信息,通过将多个分割位置信息结合来生成多个瓦片位置信息,通过将多个分割属性信息结合来生成多个瓦片属性信息(S5464)。在此,多个分割位置信息、多个分割属性信息、多个瓦片位置信息以及多个瓦片属性信息包含帧索引。
在由附加信息表示进行了瓦片分割的情况下(S5465中的“是”),三维数据解码装置基于瓦片附加信息,通过将多个瓦片位置信息(多个分割位置信息)结合来生成位置信息,通过将多个瓦片属性信息(多个分割属性信息)结合来生成属性信息(S5466)。在此,多个瓦片位置信息、多个瓦片属性信息、位置信息以及属性信息包含帧索引。
图53是解码处理(S5464或S5466)的流程图。首先,三维数据解码装置对分割位置信息(切片位置信息)进行解码(S5471)。接着,三维数据解码装置对分割位置信息用的帧索引进行解码(S5472)。
在存在分割属性信息的情况下(S5473中的“是”),三维数据解码装置对分割属性信息进行解码(S5474),对分割属性信息用的帧索引进行解码(S5475)。另一方面,在不存在分割属性信息的情况下(S5473中的“否”),三维数据解码装置不进行分割属性信息的解码以及分割属性信息用的帧索引的解码。
此外,三维数据解码装置对属性信息可以使用帧索引进行解码,也可以不使用帧索引而进行解码。
以下,对帧结合中的编码单位进行说明。图54是表示帧的结合样式的例子的图。该图的例子例如是PCC帧为时间序列、实时地进行数据的生成以及编码的情况的例子。
图54的(a)示出了固定地结合4帧的情况。三维数据编码装置在等待生成4帧的量的数据之后生成编码数据。
图54的(b)示出了帧数自适应地变化的情况。例如,三维数据编码装置为了在速率控制中调整编码数据的编码量而使结合帧数变化。
此外,三维数据编码装置在有可能不存在基于帧结合的效果的情况下,也可以不结合帧。另外,三维数据编码装置也可以对进行帧结合的情况和不进行帧结合的情况进行切换。
图54的(c)是结合的多个帧的一部分与接下来结合的多个帧的一部分重复的情况的例子。该例子在从能够编码的帧依次发送等要求实时性、或低延迟的情况下是有用的。
图55是表示PCC帧的结构例的图。三维数据编码装置也可以构成为包含至少能够单独地对结合的帧进行解码的数据单位。例如,如图55的(a)所示,在PCC帧全部被帧内编码,能够单独地对PCC帧进行解码的情况下,也能够应用上述的任意的样式。
另外,如图55的(b)所示,在应用帧间预测的情况下等设定GOF(group of frame)等的随机访问单位的情况下,三维数据编码装置也可以将该GOF单位作为最小单位,将数据结合。
此外,三维数据编码装置可以对共同信息和个别信息一并进行编码,也可以分别进行编码。另外,三维数据编码装置可以对共同信息和个别信息使用共同的数据结构,也可以使用不同的数据结构。
另外,也可以是,三维数据编码装置在按每个帧生成了占用率编码之后,对多个帧的占用率编码进行比较,例如,以规定的基准判定在多个帧的占用率编码之间共同部分是否多,在共同部分多的情况下生成共同信息。或者,三维数据编码装置也可以基于共同部分是否多,来决定是否进行帧结合、结合哪个帧、或者结合帧数。
接着,对编码位置信息的结构进行说明。图56是表示编码位置信息的结构的图。编码位置信息包括头部和有效载荷。
图57是表示编码位置信息的头部(Geometry_header)的句法例的图。编码位置信息的头部包含GPS索引(gps_idx)、偏移信息(offset)、其他信息(other_geometry_information)、帧结合标志(combine_frame_flag)、以及结合帧数(number_of_combine_frame)。
GPS索引表示与编码位置信息对应的参数集(GPS)的标识符(ID)。GPS是一帧或多个帧的编码位置信息的参数集。另外,在每一帧中存在参数集的情况下,也可以在头部中表示多个参数集的标识符。
偏移信息表示用于获得结合数据的偏移位置。其他信息表示关于位置信息的其他信息(例如,量化参数的差分值(QPdelta)等)。帧结合标志是表示编码数据是否被帧结合的标志。结合帧数表示结合的帧的数量。
另外,上述信息的一部分或全部也可以记载于SPS或GPS。此外,SPS是序列(多个帧)单位的参数集,是在编码位置信息和编码属性信息中共同使用的参数集。
图58是表示编码位置信息的有效载荷(Geometry_data)的句法例的图。编码位置信息的有效载荷包括共同信息和叶节点信息。
共同信息是1个以上的帧结合后的数据,包括占用率编码(occupancy_Code)等。
叶节点信息(combine_information)是各叶节点的信息。作为帧数的循环,也可以对每个帧表示叶节点信息。
作为表示叶节点中包含的点的帧索引的方法,能够使用方法1和方法2中的任一个。图59是表示方法1的情况下的叶节点信息的例子的图。图59所示的叶节点信息包含表示节点中包含的点的数量的三维点数(NumberOfPoints)和每个点的帧索引(FrameIndex)。
图60是表示方法2的情况下的叶节点信息的例子的图。在图60所示的例子中,叶节点信息包含通过比特映射表示多个点的帧索引的比特映射信息(bitmapIsFramePointsFlag)。图61是表示比特映射信息的例子的图。在该例中,通过比特映射表示叶节点包含帧索引1和3和5的三维点。
此外,在量化的分辨率低的情况下,有时在相同的帧中存在重复点。在该情况下,也可以共享三维点数(NumberOfPoints),示出了各帧的三维点的数量和多个帧的合计的三维点的数量。
另外,在使用不可逆压缩的情况下,三维数据编码装置也可以删除重复点,削减信息量。三维数据编码装置可以在帧结合前删除重复点,也可以在帧结合后删除重复点。
接着,对编码属性信息的结构进行说明。图62是表示编码属性信息的结构的图。编码属性信息包括头部和有效载荷。
图63是表示编码属性信息的头部(Attribute_header)的句法例的图。编码属性信息的头部包含APS索引(aps_idx)、偏移信息(offset)、其他信息(other_attribute_information)、帧结合标志(combine_frame_flag)、以及结合帧数(number_of_combine_frame)。
APS索引表示与编码属性信息对应的参数集(APS)的标识符(ID)。APS是一帧或多个帧的编码属性信息的参数集。另外,在每一帧中存在参数集的情况下,也可以在头部中表示多个参数集的标识符。
偏移信息表示用于获得结合数据的偏移位置。其他信息表示与属性信息相关的其他信息(例如,量化参数的差分值(QPdelta)等)。帧结合标志是表示编码数据是否被帧结合的标志。结合帧数表示结合的帧的数量。
此外,上述信息的一部分或全部也可以记载于SPS或APS。
图64是表示编码属性信息的有效载荷(Attribute_data)的句法例的图。编码属性信息的有效载荷包含叶节点信息(combine_information)。例如,该叶节点信息的结构与编码位置信息的有效载荷中包含的叶节点信息相同。即,叶节点信息(帧索引)也可以包含在属性信息中。
另外,叶节点信息(帧索引)也可以存放在编码位置信息和编码属性信息中的一方,不存放在另一方中。在该情况下,存放在编码位置信息和编码属性信息中的一方的叶节点信息(帧索引)在另一方的信息的解码时被参照。另外,表示参照目标的信息也可以包含在编码位置信息或编码属性信息中。
接着,对编码数据的发送顺序和解码顺序的例子进行说明。图65是表示编码数据的结构的图。编码数据包含头部和有效载荷。
图66~图68是表示数据的发送顺序与数据的参照关系的图。在该图中,G(1)等表示编码位置信息,GPS(1)等表示编码位置信息的参数集,SPS表示序列(多个帧)的参数集。另外,()内的数字表示帧索引的值。此外,三维数据编码装置也可以以解码顺序发送数据。
图66是表示不结合帧的情况下的发送顺序的例子的图。图67是表示在结合帧的情况下,按每个PCC帧附加元数据(参数集)的情况的例子的图。图68是表示在结合帧的情况下,以结合的单位附加元数据(参数集)的情况的例子的图。
在进行了帧结合的数据的头部中,为了得到该帧的元数据,存放参照目标的元数据的标识符。如图68所示,可以汇总多个帧的每一个帧的元数据。在进行了帧结合的多个帧中共同的参数也可以汇总为一个。帧中不共同的参数表示针对各帧的值。
每帧的信息(在帧中不共同的参数)是指,例如表示帧数据的生成时刻、编码时刻、或解码时刻等的时间戳。另外,每帧的信息也可以包含获得了帧数据的传感器的信息(传感器的速度、加速度、位置信息、传感器的朝向、以及其他的传感器信息等)。
图69是表示在图67所示的例子中对一部分帧进行解码的例子的图。如图69所示,如果在帧结合数据内帧间不存在依赖关系,则三维数据解码装置能够独立地对各数据进行解码。
在点群数据具有属性信息的情况下,三维数据编码装置也可以对属性信息进行帧结合。属性信息参照位置信息进行编码以及解码。所参照的位置信息可以是进行帧结合之前的位置信息,也可以是进行了帧结合之后的位置信息。位置信息的结合帧数与属性信息的结合帧数可以共同(相同),也可以独立(不同)。
图70~图73是表示数据的发送顺序与数据的参照关系的图。图70以及图71表示将位置信息和属性信息一起以4帧结合的例子。在图70中,对每个PCC帧附加元数据(参数集)。在图71中,以结合的单位附加元数据(参数集)。在该图中,A(1)等表示编码属性信息,APS(1)等表示编码属性信息的参数集。另外,()内的数字表示帧索引的值。
图72表示用4帧结合位置信息,不结合属性信息的例子。如图72所示,也可以对位置信息进行帧结合,不对属性信息进行帧结合。
图73表示将帧结合与瓦片分割组合的例子。如图73所示,在进行瓦片分割的情况下,各瓦片位置信息的头部包含GPS索引(gps_idx)以及结合帧数(number_of_combine_frame)等信息。另外,各瓦片位置信息的头部包含用于识别瓦片的瓦片索引(tile_idx)。
如上所述,本实施方式的三维数据编码装置进行图74中所示的处理。首先,三维数据编码装置通过将第1点群数据与第2点群数据结合来生成第3点群数据(S5481)。接着,三维数据编码装置通过对第3点群数据进行编码来生成编码数据(S5482)。另外,编码数据包含表示第3点群数据中包含的多个三维点分别属于第1点群数据和第2点群数据中的哪一个的识别信息(例如帧索引)。
由此,三维数据编码装置通过对多个点群数据进行汇总编码,能够提高编码效率。
例如,第1点群数据和第2点群数据是不同时刻的点群数据(例如PCC帧)。例如,第1点群数据和第2点群数据是指,同一对象物的不同时刻的点群数据(例如PCC帧)。
编码数据包含在第3点群数据中包含的多个三维点各自的位置信息和属性信息,识别信息包含在属性信息中。
例如,编码数据包含使用N(N为2以上的整数)叉树来表示第3点群数据中包含的多个三维点中的各个三维点的位置的位置信息(例如占用率编码)。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述处理。
另外,本实施方式的三维数据解码装置进行图75所示的处理。首先,三维数据解码装置通过对编码数据进行解码,获得通过第1点群数据和第2点群数据结合来生成的第3点群数据、和表示第3点群数据中包含的多个三维点分别属于第1点群数据和第2点群数据中的哪一个的识别信息(S5491)。接着,三维数据解码装置使用识别信息,从第3点群数据中分离第1点群数据和第2点群数据(S5492)。
由此,三维数据解码装置能够通过对多个点群数据进行汇总编码来对提高了编码效率的编码数据进行解码。
例如,第1点群数据和第2点群数据是不同时刻的点群数据(例如PCC帧)。例如,第1点群数据和第2点群数据是同一对象物的不同时刻的点群数据(例如PCC帧)。
编码数据包含在第3点群数据中包含的多个三维点各自的位置信息和属性信息,识别信息包含在属性信息中。
例如,编码数据包含使用N(N为2以上的整数)叉树来表示第3点群数据中包含的多个三维点中的每一个的位置的位置信息(例如占用率编码)。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式6)
在上述说明中,说明了表示位于叶节点的点的帧索引信息的方法。作为表示帧索引信息的方法,在上述说明中,说明了分别表示节点中包含的点的数量和每个点的帧索引的值的方法、用比特映射表示节点中包含的点的数量和每个点的帧索引的值的方法等。
以下,对能够期待进一步提高编码率的三维数据编码方法进行说明。通过使用以下说明的三维数据编码方法,存在能够削减算术编码后的编码数据(编码数据的比特数)的可能性,能够提高基于帧结合的编码效率提高的效果。
图76是本实施方式的编码部的框图。具体而言,图76是表示对帧索引的值(以下,也简称为帧索引)进行编码的编码部的框图。本实施方式的三维数据编码装置所具备的编码部具有位置信息编码部5510和属性信息编码部5520。位置信息编码部5510具备帧索引生成部5511和熵编码部5512。
帧索引生成部5511决定并变换三维点的位置信息的帧索引(是表示属于多个帧(三维数据)中的哪一个的值的标识符)。
熵编码部5512对由帧索引生成部5511变换的帧索引进行熵编码。熵编码部5512生成并输出包含编码数据的比特流,该编码数据包含编码后的帧索引。更具体而言,熵编码部5512输出包含编码后的帧索引以及编码后的位置信息的编码数据的位置信息比特流。
属性信息编码部5520具备帧索引生成部5521和熵编码部5522。
帧索引生成部5521决定属性信息的帧索引并进行变换。
熵编码部5522对由帧索引生成部5521变换后的帧索引进行熵编码。熵编码部5522输出包含编码数据的比特流,该编码数据包含编码后的帧索引。更具体而言,熵编码部5522输出包含编码数据的属性信息比特流,该编码数据包含编码后的帧索引以及编码后的属性信息。
图77是实施方式6的帧索引生成部5511的框图。
帧索引生成部5511具备帧结合部5550、帧索引编码部5560、以及结合数据生成部5570。
帧结合部5550获得多个帧,并且通过结合所获得的多个帧来生成结合三维数据。具体而言,帧结合部5550生成将帧索引与多个帧分别建立关联的帧数据,换言之,生成包含帧索引的结合三维数据。帧结合部5550输出表示帧的结合数的信息(以下,也称为结合数)、表示叶节点中存在的重复的点的数量的信息(以下,也称为重复点数)、以及包含帧索引的值的帧数据(以下,也称为结合三维数据)。
另外,叶节点中存在的重复的点表示叶节点中存在的三维点,表示相同单位空间中包含的三维点。
帧索引编码部5560获得帧结合部5550输出的、结合数、重复点数以及包含帧索引的帧数据。帧索引编码部5560使用预先确定的方法将帧索引变换为以0或正整数表示的数值即等级(rank)(也称为排序(ranking)或变换符号)。例如,帧索引编码部5560生成表示结合了多个三维数据的结合三维数据中的叶节点(单位空间)中包含的三维点属于该多个三维数据中的哪一个的比特映射。比特映射是由0和1表示的数字数据。比特映射与变换符号以及单位空间中包含的三维点的数量1对1对应。帧索引编码部5560例如使用后述的查找表,将所生成的比特映射变换为等级,换言之,根据所生成的比特映射而生成等级。帧索引编码部5560将等级的比特数(也称为等级比特)和等级输出到结合数据生成部5570。
结合数据生成部5570生成将与所获得的等级的比特数相应的尺寸的等级与帧数据结合而成的结合数据。
此外,上述的帧索引的处理既可以由位置信息编码部5510执行,也可以由属性信息编码部5520执行,只要任意一方执行即可。即,帧结合部5550、帧索引编码部5560和结合数据生成部5570可以具备帧索引生成部5521。
图78是实施方式6的解码部的框图。具体而言,图78是表示本实施方式的三维数据解码装置所具备的对编码后的帧索引进行解码并获得的解码部的框图。解码部具备位置信息解码部5530和属性信息解码部5540。
位置信息解码部5530具备熵解码部5531和帧索引获得部5532。
熵解码部5531获得包含熵编码部5512进行了熵编码的编码数据(包含结合数、重复点数和结合数据的编码数据)的比特流(更具体而言,位置信息比特流),对该编码数据进行解码。
帧索引获得部5532从熵解码部5531解码后的编码数据中获得帧索引。
属性信息解码部5540具备熵解码部5541和帧索引获得部5542。
熵解码部5541获得包含熵编码部5522进行了熵编码的编码数据(包含结合数、重复点数和结合数据的编码数据)的比特流(更具体而言,属性信息比特流),对该编码数据进行解码。
帧索引获得部5542获得熵解码部5541解码后的编码数据中包含的帧索引。
图79是实施方式6的帧索引获得部5532的框图。
帧索引获得部5532使用预先确定的方法获得帧索引。具体而言,帧索引获得部5532使用从帧结合部5550及帧索引编码部5560获得的包含结合数、重复点数及等级的结合数据,使用预先确定的方法获得帧索引。帧索引获得部5532输出包含帧索引的值的数据即帧数据。
另外,上述的帧索引的处理既可以由位置信息解码部5530执行,也可以由属性信息解码部5540执行,只要任意一方执行即可。即,帧索引获得部5532执行的处理也可以由帧索引获得部5542执行。
接着,对用于从比特映射获得等级的查找表(LUT)进行说明。
图80是实施方式6的帧索引编码部5560的框图。
帧索引编码部5560生成并编码个别信息(各帧的个别信息)。
帧索引编码部5560包括比特映射生成部5561、查找表参照部5562和比特数获得部5563。
首先,比特映射生成部5561基于结合数、重复点数以及每个点(三维点)的帧索引,生成比特映射。结合数例如使用上述的帧结合中的编码单位的方法来决定。另外,比特映射生成部5561在树结构的分割中,对每个叶节点存在的重复点数进行计数,并且基于与重复的点关联的帧索引,例如通过图81所示的方法变换为比特映射。
图81是表示实施方式6的叶节点和比特映射的例子的图。
例如,设为用比特映射表示包含帧索引的值是1、3和5的三维点。
例如,比特映射生成部5561获得表示图81的(a)所示的叶节点的信息(换言之,表示包含帧索引的值是1、3和5的三维点的信息)。在该情况下,比特映射生成部5561生成图81的(b)所示的比特映射。
接着,查找表参照部5562使用规定的查找表将比特映射变换为等级。换言之,查找表参照部5562使用查找表来从比特映射生成等级。查找表是表示比特映射的值与等级的对应关系的表。查找表参照部5562例如具有存储查找表的存储器。
图82是表示实施方式6的等级的一例的图。
等级是指,将比特映射按如下方式分类,即,将在图82所示的比特映射中包含的1的个数用N来表示,并表示分类后的组内的索引或顺序的数值。
图83是表示实施方式6的查找表参照部5562使用的查找表的一例的图。具体而言,图83是表示将比特映射变换为等级时的查找表的图。
例如,在No.0~No.7中,比特映射中包含的1的个数为1个的是No.1、No.2及No.4。另外,等级依次为0、1、2。
另外,图83例示了比特映射为8比特的情况下的查找表,是与结合数为8以下对应的表。在结合数小于8的情况下,也可以使用图83所示的查找表的一部分,在帧的结合数大于8的情况下,也可以用同样的方法扩展查找表。例如,查找表中包含表示比特映射与等级的对应关系的信息即可,也可以不包含表示比特映射与重复点数的对应关系的信息。
比特数获得部5563根据结合数以及重复点数,获得等级的比特数。此外,根据等级的最大数决定的等级的所需比特数(用二进制数表现等级所需的比特数)是由结合数以及重复点数唯一决定的数。三维数据编码装置通过比特数获得部5563生成表示等级的比特数的信息(等级信息),在未图示的比特数获得部5563的后级进行计算编码。
另外,比特数获得部5563在等级的值为0的情况下,也可以不发送等级信息。另外,在比特数获得部5563中,在等级不是0的情况下,也可以对等级-1的值进行编码。或者,比特数获得部5563也可以在等级不是0的情况下,将等级-1的值作为等级信息输出。
此外,查找表可以预先由三维数据编码装置保持,例如,查找表参照部5562也可以使用规定的计算式来每次计算。
另外,也可以预先确定最大的结合数,用三维数据编码装置和三维数据解码装置双方保持与最大的结合数对应的查找表,即使在结合数小于最大的情况下,也可以使用相同的查找表。
另外,三维数据解码装置也可以预先保持与三维数据编码装置保持的查找表对应的查找表。或者,三维数据解码装置也可以保持比特映射与等级的对应关系互不相同的查找表。在这种情况下,例如,三维数据编码装置可以送出与查找表的种类相关的附加信息(元数据)。另外,在该情况下,三维数据解码装置也可以基于附加信息来判定用于解码的查找表的种类。
接着,对帧索引的编码处理进行说明。
图84是实施方式6的编码处理的流程图。
首先,三维数据编码装置生成多个帧中共同的信息即共同信息(帧共同信息)(S5501)。共同信息是在多个帧中共同的信息,例如是包含占用率编码、以及结合数等的信息。
接着,三维数据编码装置针对多个帧的每一个生成个别的信息即个别信息(帧个别信息)(S5502)。个别信息是针对多个帧中的每一个而个别地建立了对应的信息,例如是包含重复点数、以及叶节点中的帧索引等的信息。
接着,三维数据编码装置将共同信息与个别信息结合,生成编码数据(S5503)。
接着,三维数据编码装置生成帧结合的附加信息并进行编码(S5504)。
图85是实施方式6的编码数据的生成处理的流程图。具体而言,是表示图84所示的步骤S5502及步骤S5503的详细情况的流程图。
首先,三维数据编码装置生成表示重复点数及帧索引的比特映射(S5511)。
接着,三维数据编码装置使用预先确定的方法获得等级(S5512)。在本实施方式中,三维数据编码装置通过使用查找表来将比特映射变换为等级来获得。
接着,三维数据编码装置获得需要编码的等级的比特数(S5513)。
接着,三维数据编码装置对占用率编码、结合数、重复点数以及等级进行编码(S5514)。即,三维数据编码装置生成包含编码后的占用率编码、结合数、重复点数以及等级的编码数据。
图86是表示实施方式6的结合信息(表示结合数的信息)的句法例的图。
等级的比特数由重复点数和结合数决定。例如,在结合数为8、即结合了8个帧的结合数据(结合三维数据)的情况下,重复点数为7时,等级的比特数的最大值为8。
在三维数据解码装置中,为了获得等级的比特数,需要重复点数。因此,三维数据编码装置也可以按照重复点数、等级的顺序记述(将数据包含在比特流中)。
接着,对三维数据解码装置从等级获得比特映射的查找表进行说明。
图87是实施方式6的帧索引获得部5532的框图。
帧索引获得部5532对个别信息进行解码。
帧索引获得部5532具备比特数获得部5581、等级获得部5582、查找表参照部5583以及帧分割部5584。
比特数获得部5581根据编码数据中包含的编码后的附加信息,对结合数进行解码,而且,从编码数据中提取每个叶节点的重复点数。接着,比特数获得部5581根据结合数以及重复点数,获得等级的比特数。
另外,等级的最大数以及等级的所需比特数是由结合数以及重复点数唯一决定的数。另外,比特数获得部5581的处理与编码中的处理(更具体而言,比特数获得部5563的处理)相同。
等级获得部5582从比特数获得部5581解码出的各种数据中获得上述获得的比特数量的等级。
查找表参照部5583使用规定的查找表来从叶节点的重复点数及等级获得比特映射。
图88是表示实施方式6的查找表参照部5583使用的查找表的一例的图。
图88所示的查找表例如是与三维数据编码装置使用的查找表对应的表。更具体而言,图88所示的查找表是与查找表参照部5562使用的查找表相同的查找表。查找表参照部5583例如使用图88所示的查找表来从比特映射中获得结合三维数据中的重复的三维点的帧索引。
三维数据解码装置使用这样获得的期望的帧索引的数据,从结合三维数据重构多个三维数据。
此外,在三维数据编码装置的查找表和三维数据解码装置的查找表中查找表中的索引的数量有可能不同。例如,三维数据编码装置也可以存储8个互不相同的查找表,以便能够对应1比特到8比特。在该情况下,三维数据解码装置也可以存储8个互不相同的查找表,以便能够对应1比特~4比特。由此,有可能减少三维数据解码装置的查找表的数量。
帧分割部5584基于帧索引生成并输出将结合数据分割为多个帧数据的帧数据。
接着,对编码后的帧索引的解码处理进行说明。
图89是实施方式6的帧索引的解码处理的流程图。
首先,三维数据解码装置对共同信息以及个别信息进行解码并获得(S5521)。
接着,三维数据解码装置判定是否对单一的帧进行解码(S5522)。例如,三维数据解码装置判定是对单一的帧进行解码,还是对任意的多个帧进行解码。
三维数据解码装置在判定为对单一的帧进行解码的情况下(S5522中“是”),提取与指定的帧索引(即,上述单一的帧索引)建立了对应的个别信息,进行解码(S5523)。
另一方面,三维数据解码装置在判定为不对单一的帧进行解码即判定为对多个帧进行解码的情况下(S5522中“否”),提取与多个帧索引对应的每一个的个别信息,进行解码(S5524)。
接着,三维数据解码装置基于帧索引对数据进行分割(S5525)。即,三维数据解码装置在对由多个三维数据构成的结合三维数据进行解码的情况下(S5522中“否”),在步骤S5525中,基于帧索引将结合三维数据分割为多个帧。
图90是实施方式6的共同信息以及个别信息的解码处理的流程图。具体而言,图90是表示图89所示的步骤S5521的详细情况的流程图。
首先,三维数据解码装置通过对编码数据进行解码,对获得的编码后的结合数以及获得的编码后的重复点数进行解码(S5531)。
接着,三维数据解码装置使用预先确定的方法获得等级的比特数(S5532)。
接着,三维数据解码装置获得等级(S5533)。
接着,三维数据解码装置使用预先确定的方法获得比特映射(S5534)。在本实施方式中,三维数据解码装置通过使用查找表来将等级变换为比特映射,从而获得比特映射。
接着,三维数据解码装置使用比特映射获得帧索引(S5535)。
接着,对重复点数的决定方法进行说明。
在叶节点中,在三维点重复的情况下,存在原本在1帧的叶节点存在2个以上的三维点的情况、和在通过帧结合而结合的结合三维数据的叶节点存在帧索引不同的2个以上的三维点的情况。
对应用帧结合的情况下的表示上述的重复点的方法以及编码的制约进行说明。
图91是表示实施方式6的叶节点的句法的第1例的图。具体而言,图91是使用相同的字段表示1帧内的重复点数和基于帧结合的多个帧的重复点数的情况下的句法例。
对于表示每个叶节点的重复点数的字段,只要是例如设为1、“在1帧内没有重复点”且“进行2个以上的帧结合的情况”、或者“在1帧内有重复点的情况”且“不进行帧结合的情况”,则三维数据编码装置也可以计算重复点数。另外,例如,三维数据编码装置在帧结合2帧以上的情况下且1帧内有重复点的情况下,可以删除1帧内的重复点,设为1个。或者,例如,三维数据编码装置在1帧内有重复点的情况下,也可以不进行使用了该1帧的帧结合。
图92是表示实施方式6的叶节点的句法的第2例的图。具体而言,图92是使用另外的字段表示1帧内的重复点和基于帧结合的多个帧的重复点数的情况的句法例。
如图92所示,三维数据编码装置在“不进行帧结合”且“1帧内有重复点”的情况下,表示1帧内的重复点,在“进行帧结合”的情况下,表示基于帧结合的重复点,进而,在“1帧内有重复点”的情况下,也可以表示每个帧的重复点数。
图93是表示实施方式6的位置信息的句法的第1例的图。
如图93所示,叶节点的信息也可以作为帧数的循环,按每个帧表示叶节点的信息。
接着,对节点信息进行说明。
在Octree分割等树分割中,存在如下方法:不分割到最下位层的叶节点,而是代替叶节点的信息而表示分割后的深度的节点的信息。作为节点信息,例如有属于节点的每个三维点的坐标、即直接表示体素的位置的信息。在这种情况下,节点信息由图94所示的directflag控制。
接着,对应用使用了上述directflag的方法和帧结合的情况下的发信(signaling)方法以及编码的制约进行说明。
图94是表示实施方式6的位置信息的句法的第2例的图。
如图94所示,三维数据编码装置在帧的结合数大于1的情况下,即,在对多个帧进行帧结合的情况下,也可以将directflag设为0,不应用上述方法。
另一方面,例如,三维数据编码装置在帧的结合数为1的情况下,也可以将directflag设为1。
由此,三维数据编码装置在帧结合时,在帧的结合数大于1的情况下,即,在对多个帧进行帧结合的情况下,不使用将directflag设为0而利用了directflag的方法,由此,具有能够进一步提高帧结合的效果的可能性。
另外,directflag和结合数例如被保存在GPS(Geometry Parameter Set)中。
如上所述,本实施方式的三维数据编码装置进行图95所示的处理。
图95是实施方式6的编码处理的流程图。
首先,三维数据编码装置生成比特映射,该比特映射表示结合有多个三维数据(帧)的结合三维数据中的、单位空间中包含的三维点属于多个三维数据中的哪一个(S5541)。三维数据编码装置例如生成表示结合三维数据中的叶节点中包含的三维点属于多个三维数据中的哪一个的比特映射。
比特映射例如是结合后的多个三维数据的数量的位数,是表示由0或1表示的数列的信息(映射信息)。例如,在结合有从第1三维数据到第8三维数据的8个三维数据的结合三维数据的情况下,比特映射为8位。比特映射的各位分别与从第1三维数据到第8三维数据中的某一个个别地建立对应。
例如,在属于第1三维数据的三维点和属于第2三维数据的三维点位于规定的单位空间,且属于从第3三维数据到第8三维数据中的任意一个三维数据的三维点不包含在该规定的单位空间中的情况下,三维数据编码装置生成“00000011”这样的比特映射。
或者,例如,在属于第1三维数据的三维点、属于第5三维数据的三维点与属于第7三维数据的三维点位于规定的单位空间,且属于第2三维数据、第3三维数据、第4三维数据、第6三维数据以及第8三维数据的任意的三维数据的三维点不包含于该规定的单位空间的情况下,三维数据编码装置生成“01050001”这样的比特映射。
此外,三维数据编码装置也可以在执行步骤S5551之前,生成结合了多个三维数据的结合三维数据。三维数据编码装置所结合的三维数据的数量没有特别限定。
接着,三维数据编码装置使用比特映射生成变换符号(S5542)。变换符号是表示上述的等级的值。三维数据编码装置例如使用查找表来从比特映射生成等级。
查找表是表示比特映射的值与变换符号的对应关系的表。比特映射的值的每一个与变换符号以及单位空间中包含的三维点的数量的组合的每一个对应。例如,如图83所示,三维数据编码装置在比特映射为“00000001”的情况下,将等级(即,变换符号)作为0生成。另外,在查找表中,与等级为0且单位空间中包含的三维点的数量(图83所示的重复点数)为1的组合对应的比特映射为“00000001”。这样,在查找表中,与等级和单位空间中包含的三维点的数量的组合对应的比特映射存在1个。例如,在查找表中,比特映射的值的每一个与变换符号以及单位空间中包含的三维点的数量的组合的每一个以1对1的方式对应。
接着,三维数据编码装置生成包含表示单位空间中包含的三维点的数量的重复点信息和表示变换符号的变换符号信息的编码数据(S5543)。另外,在本实施方式中,也将比特映射的生成以及变换符号的生成称为编码。
另外,如上所述,比特映射的值的每一个与变换符号及单位空间中包含的三维点的数量的组合的每一个对应。
由此,例如,为了使用查找表等将比特映射变换为等级,与将比特映射的值直接包含在编码数据中的情况相比,能够削减编码数据的数据量。
另外,例如,编码数据包含三维点的位置信息和属性信息,变换符号信息和重复点信息包含在位置信息中。三维数据编码装置生成包含位置信息的位置信息比特流和包含属性信息的属性信息比特流作为比特流。变换符号信息和重复点信息包含在位置信息比特流中。
另外,例如,编码数据还包含表示在结合三维数据中结合的多个三维数据的数量的数据数量信息。
另外,例如,变换符号是0或正整数。例如,三维数据编码装置在变换符号不是0的情况下,生成包含变换符号信息的编码数据,该变换符号信息是从变换符号减去1而得到的数。另一方面,例如,三维数据编码装置在变换符号为0的情况下,生成不包含变换符号信息的编码数据。
由此,在变换符号为0的情况下,由于在编码数据中不包含变换符号,能够进一步削减编码数据的数据量。
另外,例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
另外,本实施方式的三维数据解码装置进行图96所示的处理。
图96是实施方式6的解码处理的流程图。
首先,三维数据解码装置通过对编码数据进行解码,获得通过结合多个三维数据而生成的结合三维数据中的、表示单位空间中包含的三维点的数量的重复点信息、和表示变换符号的变换符号信息(S5551)。例如,三维数据解码装置获得包含编码数据的比特流,对所获得的比特流中包含的编码数据进行解码。
接着,三维数据解码装置使用重复点信息和变换符号信息,生成表示单位空间中包含的三维点属于多个三维数据中的哪一个的比特映射(S5552)。
接着,三维数据解码装置使用比特映射,判定单位空间中包含的三维点属于多个三维数据中的哪一个(S5553)。即,三维数据解码装置从比特映射中获得上述的帧索引。
例如,接着,三维数据解码装置使用所获得的帧索引,将结合三维数据分割为多个三维数据。
另外,如上所述,比特映射的值的每一个与变换符号以及单位空间中包含的三维点的数量的组合的每一个对应。
由此,例如能够使用查找表等从等级生成比特映射,从生成的比特映射中获得帧索引。即,能够根据单位空间中包含的三维点的数量和变换符号,适当地获得表示多个三维数据与结合三维数据中的三维点的对应关系的比特映射。另外,使用数据量比比特映射少的等级,能够分割结合三维数据中包含的多个三维数据。由此,能够削减编码数据的数据量,并且能够适当地将结合三维数据分割为结合前的多个三维数据。
另外,例如,编码数据包含三维点的位置信息和属性信息,变换符号信息和重复点信息包含在位置信息中。
另外,例如,编码数据还包含表示在结合三维数据中结合的多个三维数据的数量的数据数量信息。
另外,例如,变换符号是0或正整数。例如,三维数据解码装置在编码数据中包含变换符号信息的情况下,获得在变换符号信息中加上1而得到的数作为变换符号。另一方面,例如,三维数据解码装置在编码数据中不包含变换符号信息的情况下,获得0作为变换符号。
另外,例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
(实施方式7)
在本实施方式中,对在结合帧中支持重复点的方法进行说明。通过使用结合帧,能够对连续的多个帧进行汇总编码。由此,能够提高点群数据的密度。另外,由于能够共享在占用率编码中的八叉树的上位级别的占有状态,能够提高编码效率。另外,使用比特映射编码或等级编码样式来表示各节点所属的帧。
在使用结合帧的情况下,在结合前的一个帧中包含重复点的情况下产生问题。即,需要识别重复点所属的帧的方法。例如,在三维数据的编码及解码中,重复点的数量表示参数num_point。例如,在num_point的值为3的情况下,表示在该帧内存在具有相同的位置信息的3个点。以下对解决上述问题的方法进行详细说明。
图97是表示帧结合时的重复点的例子的图。该图表示将帧0与帧1进行了帧结合的例子。
在结合前的帧内的叶节点存在2个以上的三维点的情况下,将它们称为帧内重复点(internal duplicated point)。将通过帧结合而在叶节点内生成的重复点称为帧间重复点(frame duplicated point)。另外,有时在同一叶节点内混合存在帧内重复点和帧间重复点。
当多个帧被结合时,空的叶节点不被编码。另外,需要对包含来自帧0或帧1的至少一个点的叶节点全部进行编码。对于包含重复点的叶节点,需要用与来自其他帧的节点同样的方法对重复点的最大数进行编码。
接着,说明使用比特映射编码样式来表示重复点的情况下的句法例。
图98是表示比特流中包含的头部的句法例的图。图98所示的头部包含单一点信息(single_point_per_leaf)和结合帧数(NumberOfCombineFrame)。
单一点信息(single_point_per_leaf)是表示八叉树的各叶节点是否包含1个点(是否不包含多个点)的信息。例如,值1表示各叶节点具有1个点,值0表示各叶节点具有1个以上的点。
三维数据编码装置也可以不将single_point_per_leaf附加到头部,而是根据标准或标准的档次(profile)或级别(level)等来规定八叉树的各叶节点是否包含1个点。由此,三维数据解码装置参照标准信息,判定八叉树的各叶节点是否包含1个点,能够正确地复原比特流。
结合帧数(NumberOfCombineFrame)表示进行帧结合的帧的张数。
图99是表示八叉树中包含的各节点的信息即节点信息(node(depth,index))的句法例的图。节点信息包含占用率编码(occupancy_code)、三维点数(num_point)以及比特映射信息(combine_bit)。
占用率编码(occupancy_code)表示节点所具有的子节点是否为占有状态(包含三维点)。在八叉树的情况下,occupancy_code用8比特表示,各比特表示8个子节点分别是否处于占有状态。
另外,根据节点是否属于比树结构的最下层靠上1个的阶层来判定节点的子节点是否是叶节点。由此,不需要对表示子节点是否是叶节点的标志进行编码,能够削减头部的编码量。
表示包含点的叶节点的数量的num_leaf也可以根据occupancy_code来计算。例如,在八叉树中occupancy_code=3的情况下,计算为num_leaf=2。
三维点数(num_point)表示叶节点中包含的三维点的数量。在single_point_per_leaf==0的情况下,对num_point进行编码。此外,三维数据编码装置在进行帧结合的情况下,也可以将叶节点内的各帧的帧内重复点的最大值编码为num_point的值。例如,在某个叶节点中,在帧1的帧内重复点的数量为2、帧2的帧内重复点的数量为1的情况下,num_point设定为值2。
比特映射信息(combine_bit)是表示某个叶节点的第i个帧内重复点是否存在于第j个帧的信息。例如,值1表示帧内重复点存在,值0表示帧内重复点不存在。
例如,在combine_bit[0][0][0]=1、combine_bit[0][0][1]=1的情况下,表示叶节点0的第0个帧内重复点存在于帧0和帧1,它们是帧间重复点。比特映射信息的其他例子将后述。
三维数据编码装置也可以对num_point进行熵编码。另外,三维数据编码装置也可以在此时切换多个编码表来进行编码。例如,三维数据编码装置也可以使用编码表A对开头比特进行算术编码,使用编码表B对剩余的比特进行算术编码。
三维数据编码装置也可以对combine_bit进行熵编码。例如,三维数据编码装置也可以在将值二值化之后进行算术编码。
这里,参数num_point在不进行帧结合的通常的PCC编码中对重复点进行编码的情况下使用。与此相对,在帧结合中,将参数num_point用作表示帧内重复点的最大数的信息,而不是帧间重复点。
图100是表示重复点的例子的图。在该例子中,帧0具有帧内重复点0、1。帧1具有帧内重复点0。因此,帧内重复点的最大数是帧0的2个,num_point是2。由此,num_point_minus2设定为0。这里,num_point_minus2表示从num_point减去2而得到的值。
另外,通过比特映射信息表示叶节点所具有的重复点。比特映射的各比特的值1表示占有(occupied),值0表示空(empty)。比特映射信息的各比特由combine_bit[帧内重复点编号][帧编号]表示。因此,图100所示的例子用combine_bit[0][0]=1、combine_bit[0][1]=1、combine_bit[1][0]=1、combine_bit[1][1]=0表示。
此外,也可以如combine_bit[帧编号][帧内重复点编号]那样调换排列的索引的顺序。
以下,说明使用了比特映射信息的具体例。图101以及图102是表示某个叶节点的重复点的例子的图。在该图的例子中,叶节点的位置信息为(3、8、6)。另外,图101以及图102所示的帧的列表示重复点所属的结合前的帧的编号。
在图101所示的例子中,帧0中包含3个重复点,帧1中包含1个重复点。因此,帧内重复点的最大值为帧0的3个。即,num_point是3。
此外,combine_bit[0][0]=1,combine_bit[0][1]=1,combine_bit[1][0]=1,combine_bit[1][1]=0,combine_bit[2][0]=1,combine_bit[2][1]=0。
在此,帧内重复点编号的最大值与num_point相等。另外,帧编号的最大值与结合帧数相等。因此,通过帧内重复点编号与帧编号的组合来识别各重复点。另外,生成具有num_point×结合帧数的比特数的比特映射(combine_bit[帧内重复点编号][帧编号])。
在图102所示的例子中,帧0中包含3个重复点,帧1中包含2个重复点,帧2中包含4个重复点,帧3中包含1个重复点。因此,帧内重复点的最大值是帧2的4个。即,num_point是4。
另外,combine_bit[0][0]=1,combine_bit[0][1]=1,combine_bit[0][2]=1,combine_bit[0][3]=1,combine_bit[1][0]=1,combine_bit[1][1]=1,combine_bit[1][2]=1,combine_bit[1][3]=0,combine_bit[2][0]=1,combine_bit[2][1]=0,combine_bit[2][2]=1,combine_bit[2][3]=0,combine_bit[3][0]=0,combine_bit[3][1]=0,combine_bit[3][2]=1,combine_bit[3][3]=0。
接着,说明三维数据编码处理的流程。图103是三维数据编码处理的流程图。图103所示的处理对每个节点反复进行。
首先,三维数据编码装置判定子节点是否是叶节点(S6301)。在子节点是叶节点的情况下(S6301中“是”),三维数据编码装置计算叶节点内的每个帧的帧内重复点的数量(S6302)。接着,三维数据编码装置将表示针对每个帧计算出的帧内重复点的最大值的num_point[leaf]附加到头部(S6303)。即,对每个叶节点将num_point附加到头部。
接着,三维数据编码装置对叶节点内的重复点进行排名(sort)(S6304)。另外,该处理的详细情况将后述。
接着,三维数据编码装置将i设定为0(S6305)。这里,i是帧内重复点编号。接着,三维数据编码装置判定是否满足i<num_point[leaf](S6306)。在满足i<num_point[leaf]的情况下(S6306中“是”),三维数据编码装置将j设定为0(S6307)。这里,j是帧编号。
接着,三维数据编码装置判定是否满足j<NumberOfCombineFrame(S6308)。这里,NumberOfCombineFrame表示进行了帧结合的帧的数量(结合帧数)。
在满足j<NumberOfCombineFrame的情况下(S6308中“是”),三维数据编码装置判定第i个重复点是否存在于帧j中(S6309)。在第i个重复点存在于帧j的情况下(S6309中“是”),三维数据编码装置将combine_bit[i][j]设定为1(S6310)。另一方面,在第i个重复点不存在于帧j的情况下(S6309中“否”),三维数据编码装置将combine_bit[i][j]设定为0(S6311)。
在步骤S6310或S6311之后,三维数据编码装置将j递增1(S6312),再次进行步骤S6308以后的处理。
另一方面,在步骤S6308中,在不满足j<NumberOfCombineFrame的情况下(S6308中“否”),三维数据编码装置将i递增1(S6313),再次执行步骤S6306之后的处理。
此外,在步骤S6306中,在不满足i<num_point[leaf]的情况下(S6306中“否”),三维数据编码装置判定是否完成了所有叶节点的处理(S6314)。在未完成所有叶节点的处理的情况下(S6314中“否”),三维数据编码装置对下一个叶节点进行步骤S6302以后的处理。在完成了所有叶节点的处理的情况下(S6314中“是”),三维数据编码装置结束处理。
接下来,说明在上述的步骤S6304中执行的排名处理。图104以及图105是表示排名处理的例子的图。
三维数据编码装置在对叶节点中的重复点进行编码的情况下,如图104和图105所示,可以对叶节点内的重复点进行排名并编码。
例如,三维数据编码装置也可以将帧间重复点及其属性信息按照帧编号从小到大的顺序进行排名。例如,三维数据编码装置在帧0和帧1中存在帧间重复点的情况下,进行排名,使得首先对帧0的重复点进行编码,接着对帧1的重复点进行编码。
另外,三维数据编码装置也可以在存在多个帧间重复点的情况下进行排名,使得属于相同的帧间重复点的三维点依次被编码。
如上所述,三维数据解码装置能够根据解码出的顺序对帧间重复点附加帧编号,因此能够削减解码处理的负荷。此外,三维数据解码装置能够正确地对属于三维点的属性信息进行解码。
图106是三维数据解码处理的流程图。图106所示的处理对每个节点反复进行。
首先,三维数据解码装置判定子节点是否是叶节点(S6321)。在子节点是叶节点的情况下(S6321中“是”),三维数据解码装置从比特流中包含的头部中解码num_point[leaf](S6322)。
接着,三维数据解码装置将i设定为0(S6323)。这里,i是帧内重复点编号。接着,三维数据解码装置判定是否满足i<num_point[leaf](S6324)。
在满足i<num_point[leaf]的情况下(S6324中“是”),三维数据解码装置将j设定为0(S6325)。这里,j是帧编号。接着,三维数据解码装置判定是否满足j<NumberOfCombineFrame(S6326)。这里,NumberOfCombineFrame表示帧结合后的帧的数量,例如包含在比特流中。
在满足j<NumberOfCombineFrame的情况下(S6326中“是”),三维数据解码装置从比特流解码combine_bit[i][j](S6327)。接着,三维数据解码装置判定解码后的combine_bit[i][j]是1还是0(S6328)。
在combine_bit[i][j]为1的情况下(S6328中“是”),三维数据解码装置生成属于第j个帧且具有与解码中的叶节点的位置对应的位置信息(x,y,z)的第i个帧内重复点作为三维点的解码结果(S6329)。
在步骤S6329之后,或者在combine_bit[i][j]为0的情况下(S6328中“否”),三维数据解码装置使j递增1(S6330),再次进行步骤S6326以后的处理。
此外,在步骤S6326中,在不满足j<NumberOfCombineFrame的情况下(S6326中“否”),三维数据解码装置使i递增1(S6331),再次进行步骤S6324以后的处理。
此外,在步骤S6324中,在不满足i<num_point[leaf]的情况下(S6324中“否”),三维数据解码装置判定是否完成了所有叶节点的处理(S6332)。在未完成所有叶节点的处理的情况下(S6332中“否”),三维数据解码装置对下一个叶节点进行步骤S6322以后的处理。在所有叶节点的处理完成的情况下(S6332中“是”),三维数据解码装置结束处理。
接着,说明使用等级编码样式的例子。图107是表示使用等级编码样式的情况下的节点信息(node(depth,index))的句法例的图。另外,头部的结构例如与图98相同。
节点信息包含占用率编码(occupancy_code)、三维点数(num_point)、重复点数(num_combine_point)、帧0信息(combine_equalzero)、以及结合索引(combine_idx)。
另外,occupancy_code、num_point、以及num_leaf等与图99相同。
重复点数(num_combine_point)表示与第i个帧内重复点有关的帧间重复点的数量。例如,在帧0和帧1包含第0个帧内重复点的情况下,设定num_combine_point[i]=2。该值与图83所示的重复点数对应。
combine_equalzero表示叶节点中包含的第i个帧内重复点是否存在于第0个帧中。例如,值1表示第i个帧内重复点存在于第0个帧,值0表示第i个帧内重复点不存在于第0个帧(存在于第1个帧)。
在NumberOfCombineFrame=2且num_combine_point[i]=2的情况下,可知在帧0和帧1中存在帧间重复点,因此三维数据编码装置也可以不在比特流中包含combine_equalzero。由此,能够抑制比特量。另外,此时,三维数据解码装置也可以判定为先解码出的重复点属于帧0,后解码出的重复点属于帧1。另外,三维数据编码装置在有帧间重复点的情况下,也可以以属于帧0的三维点比属于帧1的三维点先被编码的方式对编码顺序进行排名。由此,能够适当地对三维点及其属性值进行编码和解码。
结合索引(combine_idx)是表示第i个帧内重复点的等级的信息,与图83所示的等级对应。即,比特映射信息与重复点数(num_combine_point)和结合索引(combine_idx)的组合唯一地建立对应。
三维数据编码装置可以对num_point和num_combine_point进行熵编码。另外,此时,三维数据编码装置也可以一边切换多个编码表一边进行编码。例如,三维数据编码装置也可以使用编码表A对开头比特进行算术编码,使用编码表B对剩余的比特进行算术编码。
num_combine_point始终为1以上,因此三维数据编码装置也可以代替num_combine_point而对num_combine_point_minus1(=num_combine_point-1)进行编码。
此外,三维数据编码装置也可以对combine_equalzero以及combine_idx进行熵编码。例如,三维数据编码装置也可以在将值进行二值化之后进行算术编码。
接着,在图100所示的例子中,对使用了等级编码样式的情况进行说明。在图100所示的例子中,帧0具有帧内重复点0、1。帧1具有帧内重复点0。因此,帧内重复点的最大数是帧0的2个,num_point是2。由此,num_point_minus2设定为0。这里,num_point_minus2表示通过从num_point中减去2而得到的值。
重复点0的num_combine_point是2,重复点1的num_combine_point是1。
另外,combine_equalzero按每个重复点个别地设置。重复点0包含在帧0和帧1双方中。因此,重复点0的combine_equalzero不被编码。重复点1包含在帧0中,不包含在帧1中。因此,重复点0的combine_equalzero设定为1,被编码为比特流。
以下,在图101以及图102所示的例子中,对使用了等级编码样式的情况进行说明。在图101以及图102所示的例子中,叶节点的位置信息是(3、8、6)。另外,图101以及图102所示的帧的列表示重复点所属的原来的帧的编号。
在图101所示的例子中,在帧0中包含3个重复点,在帧1中包含1个重复点。因此,帧内重复点的最大值是帧0的3个。即,num_point是3。
另外,num_combine_point[0]=2,combine_equalzero[0]不被编码。num_combine_point[1]=1,combine_equalzero[1]=1。num_combine_point[2]=1,combine_equalzero[2]=1。
另外,图108是表示图101所示的例子中的帧0、帧1的占有状态(比特映射信息)与num_combine_point和combine_equalzero之间的关系的图。如图108所示,通过num_combine_point和combine_equalzero的组合,唯一地识别帧0、帧1的占有状态(比特映射信息)。
在图102所示的例子中,在帧0中包含3个重复点,在帧1中包含2个重复点,在帧2中包含4个重复点,在帧3中包含1个重复点。因此,帧内重复点的最大值是帧2的4个。即,num_point是4。
另外,num_combine_point[0]=4,combine_idx[0]=0。另外,combine_idx[0]也可以不被编码。num_combine_point[1]=3,combine_idx[1]=3。num_combine_point[2]=2,combine_idx[2]=4。num_combine_point[3]=1,combine_idx[3]=1。
另外,图109是表示图102所示的例子中的帧0~帧3的占有状态(比特映射信息)与num_combine_point和combine_idx的关系的图。如图109所示,通过num_combine_point和combine_idx的组合,唯一地识别帧0~帧3的占有状态(比特映射信息)。
接着,说明使用了等级编码样式的三维数据编码处理的流程。图110是使用了等级编码样式的三维数据编码处理的流程图。图110所示的处理对每个节点反复进行。此外,步骤S6301~步骤S6306以及步骤S6314的处理与图103相同,省略说明。
在步骤S6306中,在满足i<num_point[leaf]的情况下(S6306中“是”),三维数据编码装置对num_combine_point[leaf][i]进行编码(S6307A)。接着,三维数据编码装置判定是否满足NumberOfCombineFrame==2且num_combine_point[leaf][i]==1(S6308A)。
在满足NumberOfCombineFrame==2且num_combine_point[leaf][i]==1的情况下(S6308A中“是”),三维数据编码装置对combine_equalzero[leaf][i]进行编码(S6309A)。
另一方面,在不满足NumberOfCombineFrame==2且num_combine_point[leaf][i]==1的情况下(S6308A中“否”),三维数据编码装置判定是否满足NumberOfCombineFrame>2(S6310A)。
在满足NumberOfCombineFrame>2的情况下(S6310A中“是”),三维数据编码装置对combine_idx[leaf][i]进行编码(S6311A)。
在步骤S6309A或者步骤S6311A之后,或者在步骤S6310A中不满足NumberOfCombineFrame>2的情况下(S6310A中“否”),三维数据编码装置使i递增1(S6312A),再次进行步骤S6306以后的处理。
图111是使用了等级编码样式的三维数据解码处理的流程图。图111所示的处理对每个节点反复进行。此外,步骤S6321~步骤S6324以及步骤S6332的处理与图106相同,省略说明。
在步骤S6324中,在满足i<num_point[leaf]的情况下(S6324中“是”),三维数据解码装置从比特流中解码num_combine_point[leaf][i](S6325A)。
接着,三维数据解码装置判定是否满足NumberOfCombineFrame==2且num_combine_point[leaf][i]==1(S6326A)。这里,NumberOfCombineFrame表示帧结合后的帧的数量,例如包含在比特流中。
在满足NumberOfCombineFrame==2且num_combine_point[leaf][i]==1的情况下(S6326A中“是”),三维数据解码装置从比特流解码combine_equalzero[leaf][i](S6327A)。
另外,在NumberOfCombineFrame=2且num_combine_point[i]=2的情况下,可知在帧0和帧1中存在帧间重复点,因此三维数据解码装置也可以不对combine_equalzero进行解码。此时,三维数据解码装置判断为先解码出的重复点属于帧0,后解码出的重复点属于帧1。
另一方面,在不满足NumberOfCombineFrame==2且num_combine_point[leaf][i]==1的情况下(S6326A中“否”),三维数据解码装置判定是否满足NumberOfCombineFrame>2(S6328A)。在满足NumberOfCombineFrame>2的情况下(S6328A中“是”),三维数据解码装置从比特流解码combine_idx[leaf][i](S6329A)。
在步骤S6327A或S6329A之后,或者在步骤S6328A中不满足NumberOfCombineFrame>2的情况下(S6328A中“否”),三维数据解码装置根据num_combine_point和combine_equalzero或combine_idx的值,计算帧间重复点包含在哪个帧中。此外,三维数据解码装置通过将与解码中的叶节点的位置对应的位置信息(x,y,z)附加到各重复点来对三维点进行解码(S6330A)。此时,三维数据解码装置也可以对最初的三维点附加值最小的帧编号,以后,按升序附加帧编号。
接着,三维数据解码装置使i递增1(S6331A),再次进行步骤S6324以后的处理。
以下,说明在结合编码中使用的各种标志的句法例。图112是表示序列单位(多个帧单位)的参数集即SPS的句法例的图。图112所示的SPS包含帧结合应用标志(combine_coding_enable_flag)。
帧结合应用标志(combine_coding_enable_flag)是用于切换是否以序列级别应用帧结合的标志。例如,值1表示应用帧结合,值0表示不应用帧结合。
三维数据编码装置在序列内存在应用帧结合的可能性的情况下,也可以将帧结合应用标志设定为值1,在不应用的情况下,将帧结合应用标志设定为值0。三维数据编码装置也可以将帧结合应用标志附加到SPS以外的头部等。
图113是帧单位的参数集,是表示位置信息的参数集即GPS的句法例的图。图113所示的GPS包含结合帧数-1(NumberOfCombineFrame_minus1)。
结合帧数-1(NumberOfCombineFrame_minus1)是表示进行了帧结合的帧张数-1的信息。NumberOfCombineFrame_minus1也可以在combine_coding_enable_flag是1时附加到比特流。此外,NumberOfCombineFrame_minus1也可以附加到GPS以外的头部等。
三维数据编码装置也可以将从NumberOfCombineFrame减去值1后的值作为NumberOfCombineFrame_minus1附加到比特流。此外,三维数据编码装置也可以对与不应用帧结合的帧有关的GPS附加值0的NumberOfCombineFrame_minus1。
由此,三维数据解码装置能够对解码出的NumberOfCombineFrame_minus1加上值1来计算NumberOfCombineFrame。此外,三维数据解码装置在NumberOfCombineFrame是1的情况下,能够判断为未在与解码出的GPS关联的帧中应用帧结合。此时,三维数据解码装置也可以判断为与帧结合有关的信息(例如,每个三维点群的帧信息(例如,表示点群所属的帧的帧索引))不包含在相应的帧的比特流中,不对这些信息进行解码。另外,NumberOfCombineFrame的值例如取从1到最大结合数的值。另外,最大结合数也可以限制为2的幂的值。
图114是表示GPS的另一句法例的图。图114所示的GPS包含帧结合应用标志(combine_coding_enable_flag)和结合帧数-2(NumberOfCombineFrame_minus2)。
帧结合应用标志(combine_coding_enable_flag)是用于切换是否以帧级别应用帧结合的标志。例如,值1表示应用帧结合,值0表示不应用帧结合。三维数据编码装置在对编码对象的三维点群进行了帧结合并编码的情况下,也可以将帧结合应用标志设定为值1,在未应用的情况下,将帧结合应用标志设定为值0。此外,三维数据解码装置在解码出的combine_coding_enable_flag是1的情况下,可以判断为在与解码出的GPS关联的帧中不应用帧结合。此时,三维数据解码装置也可以判断为与帧结合有关的信息(例如,每个三维点群的帧信息(例如,表示点群所属的帧的帧索引))不包含在相应的帧的比特流中,不对这些信息进行解码。
结合帧数-2(NumberOfCombineFrame_minus2)表示进行了帧结合的帧张数-2。三维数据编码装置也可以在combine_coding_enable_flag是1时,将NumberOfCombineFrame_minus2附加到比特流。三维数据编码装置也可以将从NumberOfCombineFrame减去值2而得到的值作为NumberOfCombineFrame_minus2附加到比特流。此外,三维数据解码装置也可以通过对解码出的NumberOfCombineFrame_minus2加上值2来计算NumberOfCombineFrame。
另外,NumberOfCombineFrame的值取从2到最大结合数的值。另外,最大结合数也可以限制为2的幂的值。
三维数据编码装置可以对combine_coding_enable_flag、NumberOfCombineFrame_minus1或NumberOfCombineFrame_minus2进行熵编码。例如,三维数据编码装置将值进行二值化后进行算术编码。另外,三维数据编码装置也可以以固定长度对这些信息进行编码。
另外,三维数据编码装置在将附加于三维点的帧信息(例如表示点群所属的帧的帧索引)作为属性信息进行编码的情况下,也可以将属性信息可取的最大值设定为NumberOfCombine的最大结合数。
以下,对是否应用帧结合的切换进行说明。通过对一部分帧将帧结合设定为不能应用,有能够提高编码效率的可能性。作为判定是否应用帧结合的方法,有使用要结合的帧间的距离的方法、使用外部信息的方法、以及将使用帧结合的情况与不使用帧结合的情况进行比较的方法。
在此,外部信息例如包括速度计或加速度计的数据。另外,在对使用帧结合的情况和不使用帧结合的情况进行比较的方法中,通过测试压缩来确认结合编码是否有益。
例如,三维数据编码装置从速度计或加速度传感器判定车身是否停止,在停止的情况下应用帧结合,否则不应用帧结合。另外,三维数据编码装置也可以在车辆的速度为预先确定的速度以下时应用帧结合,否则不应用帧结合。由此,对帧结合有效的情形(scene)应用帧结合,能够提高编码效率。
图115是表示不进行帧结合的情况下的编码效率相对于进行帧结合的情况下的编码效率之比与能否应用帧结合的关系的例子的图。该图的纵轴表示不进行帧结合的情况下的编码效率除以进行帧结合的情况下的编码效率而得到的值。即,在值超过1的情况下,不进行帧结合的情况下的编码效率比进行帧结合的情况提高。因此,在纵轴的比超过1的区域中,帧结合设定为不应用,在除此以外的区域中,帧结合设定为应用。
图116是表示上述的编码效率之比与进行帧结合的帧间的距离的关系的图。如该图所示,上述的编码效率之比与帧间的距离存在相关。因此,三维数据编码装置能够使用帧间的距离来切换能否应用帧结合。
例如,三维数据编码装置使用下述(式I1)来计算帧间的距离dist。
【数式1】
Figure BDA0003096531280000741
此外,三维数据编码装置也可以在多个帧的编码时,在编码对象帧的剩余数量比GOP少的情况下,判断为不进行帧结合。此外,三维数据编码装置也可以配合编码对象帧的剩余数量来变更GOP中包含的帧的数量。由此,能够适当地对所有帧进行编码。
图117是示意性地表示切换能否应用这些帧结合的图。如图117所示,自适应地切换帧结合的应用。
图118是三维数据编码处理的流程图。首先,三维数据编码装置获得输入帧的数据(S6341)。接着,三维数据编码装置判定是否能够利用帧结合(S6342)。例如,该判定可以基于来自外部的指示等来进行,也可以使用上述的判定中的任一个。
在能够利用帧结合的情况下(S6342中“是”),三维数据编码装置判定是否利用帧结合(S6343)。例如,在该判定中使用上述的判定中的任一个。
在判定为利用帧结合的情况下(S6343中“是”),三维数据编码装置进行帧结合(S6344),对结合帧进行编码(S6345)。
另一方面,在帧结合不能利用的情况下(S6342中“否”),或者在判定为不利用帧结合的情况下(S6343中“否”),三维数据编码装置不进行帧结合而对输入帧进行编码(S6345)。
图119是表示图118所示的三维数据编码处理的具体例的图。图119所示的处理包括步骤S6343A和S6343B来代替图118所示的步骤S6343。
在能够利用帧结合的情况下(S6342中“是”),三维数据编码装置计算要结合的帧间的距离diff(S6343A)。接着,三维数据编码装置判定距离diff是否大于预先确定的阈值th(S6343B)。在距离diff为阈值th以下的情况下(S6343B中“否”),三维数据编码装置进行帧结合(S6344),对结合帧进行编码(S6345)。另一方面,在距离diff大于阈值th的情况下(S6343B中“是”),三维数据编码装置不进行帧结合而对输入帧进行编码(S6345)。
图120是本实施方式的三维数据编码装置的框图。图120所示的三维数据编码装置6300具备I/O模块6301、结合决定部6302、结合编码部6303、编码部6304以及I/O模块6305。
I/O模块6301获得点群数据。结合决定部6302决定是否应用帧结合。例如,结合决定部6302使用上述的使用要结合的帧间的距离的方法、使用外部信息的方法、比较使用帧结合的情况和不使用帧结合的情况的方法中的任一个,决定是否应用帧结合。
结合编码部6303在决定为应用帧结合的情况下,进行帧结合,对结合帧进行编码。编码部6304在决定为不应用帧结合的情况下,不进行帧结合而对输入帧进行编码。I/O模块6305输出由结合编码部6303或编码部6304生成的比特流。
图121是表示结合决定部6302的具体例的图。图121所示的三维数据编码装置6300A具备距离计算部6302A来代替图120所示的结合决定部6302。距离计算部6302A计算要结合的帧间的距离diff。距离计算部6302A在距离diff大于预先确定的阈值th的情况下,决定为不应用帧结合,在距离diff为阈值th以下的情况下,决定为应用帧结合。
以下,说明元数据(附加信息)的送出例。三维数据编码装置在进行了帧结合的情况下,也可以在GPS或APS等中保存在结合帧的解码中使用的元数据。例如,该元数据也可以是结合帧数、或者用于特定要结合的帧的信息等在结合帧内共同的信息。另外,APS例如是帧单位的属性信息的参数集。
另一方面,三维数据编码装置也可以将解码中不是必须的信息、或者解码后在应用(Application)中能够活用的信息例如按每个帧保存到SEI(Supplemental EnhancementInformation)等元数据中,并按每个帧表示。例如,该元数据包含表示帧数据的生成时刻、编码时刻、解码时刻或再现时刻等的时间戳。另外,该元数据也可以包含获得帧数据时的传感器信息。传感器信息例如包含传感器的速度、加速度、位置信息或方向等。此外,传感器信息也可以包含由其他传感器得到的信息。
换言之,三维数据编码装置将在结合帧的解码中使用的元数据汇总为一个,按每个帧表示在分割了结合帧后使用的数据。由此,有不需要三维数据解码装置中的每个帧的信息的整合或分割处理的可能性。
另外,三维数据编码装置也可以记载记载有与SEI对应的帧的信息的GPS、APS或SPS的索引。由此,三维数据解码装置能够参照对应的信息。
此外,例如,也可以是,SEI被规定为在GPS或APS之后发送,三维数据解码装置判定为在SEI之前发送的GPS或APS与该SEI对应。
图122是表示编码数据(比特流)的结构例的图。如图122所示,在对结合帧进行解码时使用的元数据将全部帧的信息汇总保存。另外,将在分割结合帧后使用的元数据按每个帧进行保存。
此外,三维数据编码装置在解码中不是必须的,但也可以将能够在解码中使用的元数据的全部帧的信息汇总而保存到SEI中,将在解码后在应用中使用的数据按每个帧进行保存。通过对用于解码的数据进行汇总,能够削减编码的开销,并且能够将在应用中使用的数据直接输入到后级。
图123是表示编码数据(比特流)的结构例的图。如图123所示,在对结合帧进行解码时使用的元数据将全部帧的信息汇总保存。虽然在解码中不是必须的,但能够用于解码的元数据将全部帧的信息汇总保存。
另外,在上述中,说明了在元数据中保存结合帧的全部帧的信息的例子和是否保存每个帧的信息的例子,但也可以在元数据中保存一部分帧的信息。例如,在一部分帧不包含传感器信息的情况下,元数据也可以表示包含传感器信息的剩余帧的信息。
接着,对元数据的解码处理进行说明。图124是元数据的解码处理的流程图。首先,三维数据解码装置接收元数据(S6351)。接着,三维数据解码装置判定元数据是否包含2个以上的帧的信息(S6352)。即,三维数据解码装置判定在元数据中保存有结合帧的全部帧的信息还是保存有每个帧的信息。另外,在元数据中是保存有结合帧的全部帧的信息还是保存有每个帧的信息也可以根据元数据的种类、或者SEI的类型等来预先规定。或者,也可以在元数据内保存表示是保存有结合帧的全部帧的信息还是保存有每个帧的信息的信息。三维数据解码装置能够基于这些判定元数据中包含的帧的数量,实施处理。
在元数据包含2个以上的帧的信息的情况下(S6352中“是”),三维数据解码装置解析该2个以上的帧的信息,将得到的信息使用于解码处理(S6353)。接着,三维数据解码装置将2个以上的帧的信息变换为每个帧的信息,将每个帧的信息输入到后级的系统层(S6354)。
另一方面,在元数据不包含2个以上的帧的信息的情况下(S6352中“否”),三维数据解码装置不将该信息用于解码,而将该信息输入到系统层(S6355)。
如上所述,本实施方式的三维数据编码装置进行图125所示的处理。三维数据编码装置通过将多个点群数据(例如多个帧)结合而生成结合点群数据(S6361)。接着,三维数据编码装置通过对结合点群数据进行编码来生成比特流(S6362)。比特流包含:(i)第1信息(例如num_point),表示在多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息(例如,(1)combine_bit[i][j]、(2)num_combine_point[i]以及combine_equalzero[i]、或者(3)num_combine_point[i]以及combine_idx[i]),与点索引(例如“i”)的每一个对应,且表示具有对应的点索引的三维点属于多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点。
由此,通过将多个点群数据汇总进行编码,能够提高编码效率。进而,根据第1信息以及第2信息,在存在点群数据内的重复点以及点群数据间的重复点的情况下,能够高效地识别重复点。例如,与附加对象节点中包含的重复点的总数、表示各重复点所属的点群数据的信息、以及各重复点的标识符的情况相比,能够削减数据量。
例如,多个第2信息的每一个包含:第3信息(例如num_combine_point[i]),表示具有对应的点索引的三维点的数量;以及第4信息(例如combine_equalzero[i]、或者combine_idx[i]),能够通过与第3信息的组合来特定具有对应的点索引的三维点属于多个点群数据中的哪一个。换言之,第3信息与第4信息的组合将比特映射信息所示的各样式唯一地建立对应。另外,比特映射信息具有与多个点群数据的数量相同的比特数。多个比特与多个点群数据一对一地对应,通过各比特来表示属于对应的点群数据的三维点(重复点)是否存在于对象节点。
例如,在由第3信息表示的三维点的数量与多个点群数据的数量相等的情况下,对应的第2信息不包含第4信息。由此,能够减少比特流的编码量。
例如,多个第2信息的每一个是具有与多个点群数据的数量相同的比特数的比特映射信息(例如,combine_bit[i][j])。
例如,三维数据编码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
此外,本实施方式的三维数据解码装置进行图126所示的处理。三维数据解码装置从通过对结合了多个点群数据的结合点群数据进行编码而生成的比特流获得:(i)第1信息(例如num_point),表示在多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息(例如(1)combine_bit[i][j]、(2)num_combine_point[i]以及combine_equalzero[i]、或者(3)num_combine_point[i]以及combine_idx[i]),与点索引(例如“i”)的每一个对应,且表示具有对应的点索引的三维点属于多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点(S6371)。三维数据解码装置使用第1信息以及多个第2信息,(i)从比特流解码结合点群数据,(ii)根据结合点群数据生成多个点群数据(S6372)。例如,三维数据解码装置使用第1信息以及多个第2信息,判定对象节点中包含的三维点(重复点)的数量和各三维点所属的点群数据。三维数据解码装置基于对象节点中包含的三维点(重复点)的数量对结合点群数据进行解码,基于各三维点所属的点群数据,从结合点群数据中分离多个点群数据。
由此,通过将多个点群数据汇总进行编码,能够提高编码效率。进而,根据第1信息以及第2信息,在存在点群数据内的重复点以及点群数据间的重复点的情况下,能够高效地识别重复点。
例如,多个第2信息的每一个包含:第3信息(例如num_combine_point[i]),表示具有对应的点索引的三维点的数量;以及第4信息(例如combine_equalzero[i]、或者combine_idx[i]),能够通过与第3信息的组合来特定具有对应的点索引的三维点属于多个点群数据中的哪一个。
例如,在由第3信息表示的三维点的数量与多个点群数据的数量相等的情况下,对应的第2信息不包含第4信息。由此,能够减少比特流的编码量。
例如,多个第2信息的每一个是具有与多个点群数据的数量相同的比特数的比特映射信息(例如,combine_bit[i][j])。
例如,三维数据解码装置具备处理器和存储器,处理器使用存储器进行上述的处理。
以上,对本公开的实施方式的三维数据编码装置以及三维数据解码装置等进行了说明,但本公开并不限定于该实施方式。
并且,上述的实施方式的三维数据编码装置以及三维数据解码装置等中包含的各处理部典型的能够作为集成电路的LSI来实现。这些可以分别地制成一个芯片,也可以是其中的一部分或全部被制成一个芯片。
并且,集成电路化并非受LSI所限,也可以由专用电路或通用处理器来实现。也可以利用在LSI制造后可编程的FPGA(Field Programmable Gate Array:现场可编程门阵列)、或能够重构LSI内部的电路部的连接或设定的可重构处理器。
并且,在上述的各实施方式中,各构成要素可以由专用的硬件来构成,或者可以通过执行适于各构成要素的软件程序来实现。各构成要素也可以通过CPU或处理器等程序执行部读出被记录在硬盘或半导体存储器等记录介质的软件程序并执行来实现。
并且,本公开能够作为由三维数据编码装置以及三维数据解码装置等来执行的三维数据编码方法或三维数据解码方法等来实现。
并且,框图中的功能块的分割为一个例子,多个功能块可以作为一个功能块来实现,一个功能块也可以分割为多个,一部分的功能也可以移动到其他的功能块。并且,具有类似的功能的多个功能块的功能也可以由单一的硬件或软件进行并行处理或者进行时间分割处理。
并且,关于流程图中的各步骤的执行顺序,是为了对本公开进行具体说明而举出的例子,也可以是上述以外的顺序。并且,上述步骤的一部分也可以与其他的步骤同时(并行)执行。
以上基于实施方式对一个或多个形态的三维数据编码装置以及三维数据解码装置等进行了说明,但是,本公开并非受这些实施方式所限。在不脱离本公开的主旨的范围内,将本领域技术人员能够想到的各种变形执行于本实施方式而得到的形态、以及对不同的实施方式中的构成要素进行组合而得到的形态均包含在一个或多个形态的范围内。
产业上的可利用性
本公开能够适用于三维数据编码装置以及三维数据解码装置。
附图标记说明
4601 三维数据编码系统
4602 三维数据解码系统
4603 传感器终端
4604 外部连接部
4611 点群数据生成系统
4612 提示部
4613 编码部
4614 复用部
4615 输入输出部
4616 控制部
4617 传感器信息获得部
4618 点群数据生成部
4621 传感器信息获得部
4622 输入输出部
4623 逆复用部
4624 解码部
4625 提示部
4626 用户接口
4627 控制部
4630 第1编码部
4631 位置信息编码部
4632 属性信息编码部
4633 附加信息编码部
4634 复用部
4640 第1解码部
4641 逆复用部
4642 位置信息解码部
4643 属性信息解码部
4644 附加信息解码部
4650 第2编码部
4651 附加信息生成部
4652 位置图像生成部
4653 属性图像生成部
4654 影像编码部
4655 附加信息编码部
4656 复用部
4660 第2解码部
4661 逆复用部
4662 影像解码部
4663 附加信息解码部
4664 位置信息生成部
4665 属性信息生成部
4801 编码部
4802 复用部
4910 第1编码部
4911 分割部
4912 位置信息编码部
4913 属性信息编码部
4914 附加信息编码部
4915 复用部
4920 第1解码部
4921 逆复用部
4922 位置信息解码部
4923 属性信息解码部
4924 附加信息解码部
4925 结合部
4931 切片分割部
4932 位置信息瓦片分割部
4933 属性信息瓦片分割部
4941 位置信息瓦片结合部
4942 属性信息瓦片结合部
4943 切片结合部
5410 编码部
5411 分割部
5412 位置信息编码部
5413 属性信息编码部
5414 附加信息编码部
5415 复用部
5421 瓦片分割部
5422 切片分割部
5431、5441 帧索引生成部
5432、5442 熵编码部
5450 解码部
5451 逆复用部
5452 位置信息解码部
5453 属性信息解码部
5454 附加信息解码部
5455 结合部
5461、5471 熵解码部
5462、5472 帧索引获得部
5510 位置信息编码部
5511、5521 帧索引生成部
5512、5522 熵编码部
5520 属性信息编码部
5530 位置信息解码部
5531、5541 熵解码部
5532、5542 帧索引获得部
5540 属性信息解码部
5550 帧结合部
5560 帧索引编码部
5561 比特映射生成部
5562、5583 查找表参照部
5563、5581 比特数获得部
5570 结合数据生成部
5582 等级获得部
5584 帧分割部
6300、6300A 三维数据编码装置
6301、6305 I/O模块
6302 结合决定部
6302A 距离计算部
6303 结合编码部
6304 编码部。

Claims (10)

1.一种三维数据编码方法,其中,
通过结合多个点群数据来生成结合点群数据,
通过对所述结合点群数据进行编码来生成比特流,
所述比特流包含:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点。
2.根据权利要求1所述的三维数据编码方法,其中,
所述多个第2信息的每一个分别包含:
第3信息,表示具有对应的点索引的三维点的数量;以及
第4信息,能够通过与所述第3信息的组合来特定具有所述对应的点索引的所述三维点属于所述多个点群数据中的哪一个。
3.根据权利要求2所述的三维数据编码方法,其中,
在由所述第3信息表示的所述三维点的数量与所述多个点群数据的数量相等的情况下,对应的所述第2信息不包含所述第4信息。
4.根据权利要求1所述的三维数据编码方法,其中,
所述多个第2信息的每一个是具有与所述多个点群数据的数量相同的比特数的比特映射信息。
5.一种三维数据解码方法,其中,
从通过对结合了多个点群数据的结合点群数据进行编码而生成的比特流获得:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点,
使用所述第1信息以及所述多个第2信息,(i)从所述比特流对所述结合点群数据进行解码,(ii)从所述结合点群数据生成所述多个点群数据。
6.根据权利要求5所述的三维数据解码方法,其中,
所述多个第2信息的每一个包含:
第3信息,表示具有对应的点索引的三维点的数量;以及
第4信息,能够通过与所述第3信息的组合来特定具有所述对应的点索引的所述三维点属于所述多个点群数据中的哪一个。
7.根据权利要求6所述的三维数据解码方法,其中,
在由所述第3信息表示的所述三维点的数量与所述多个点群数据的数量相等的情况下,对应的所述第2信息不包含所述第4信息。
8.根据权利要求5所述的三维数据解码方法,其中,
所述多个第2信息的每一个是具有与所述多个点群数据的数量相同的比特数的比特映射信息。
9.一种三维数据编码装置,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,
通过结合多个点群数据来生成结合点群数据,
通过对所述结合点群数据进行编码来生成比特流,
所述比特流包含:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点。
10.一种三维数据解码装置,其中,具备:
处理器;以及
存储器,
所述处理器使用所述存储器,
从通过对结合了多个点群数据的结合点群数据进行编码而生成的比特流获得:(i)第1信息,表示所述多个点群数据的每一个中包含的、位置信息相同的三维点即重复点的最大数;以及(ii)多个第2信息,与点索引的每一个对应,且表示具有对应的点索引的三维点属于所述多个点群数据的哪一个,所述点索引是被分配了与所述最大数同数的值的索引,且用于识别属于同一点群数据的多个重复点,
使用所述第1信息以及所述多个第2信息,(i)从所述比特流对所述结合点群数据进行解码,(ii)从所述结合点群数据生成所述多个点群数据。
CN201980079638.XA 2018-12-06 2019-12-05 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 Pending CN113168720A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862776185P 2018-12-06 2018-12-06
US62/776,185 2018-12-06
PCT/JP2019/047630 WO2020116563A1 (ja) 2018-12-06 2019-12-05 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Publications (1)

Publication Number Publication Date
CN113168720A true CN113168720A (zh) 2021-07-23

Family

ID=70973669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980079638.XA Pending CN113168720A (zh) 2018-12-06 2019-12-05 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置

Country Status (5)

Country Link
US (1) US20210295569A1 (zh)
EP (1) EP3893204A4 (zh)
JP (2) JPWO2020116563A1 (zh)
CN (1) CN113168720A (zh)
WO (1) WO2020116563A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11475605B2 (en) * 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
EP4113442A1 (en) * 2021-07-02 2023-01-04 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding point cloud captured by a spinning sensors head

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140375638A1 (en) * 2012-07-30 2014-12-25 Mitsubishi Electric Corporation Map display device
JP6934224B2 (ja) * 2017-04-17 2021-09-15 凸版印刷株式会社 三次元形状モデル生成装置、三次元形状モデル生成方法及びプログラム
AU2019256021B2 (en) * 2018-04-19 2024-05-16 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US10911787B2 (en) * 2018-07-10 2021-02-02 Apple Inc. Hierarchical point cloud compression
WO2021002558A1 (ko) * 2019-07-03 2021-01-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법.
CN114270832A (zh) * 2019-08-14 2022-04-01 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法

Also Published As

Publication number Publication date
EP3893204A1 (en) 2021-10-13
EP3893204A4 (en) 2022-01-26
JPWO2020116563A1 (ja) 2021-10-28
WO2020116563A1 (ja) 2020-06-11
US20210295569A1 (en) 2021-09-23
JP2024026525A (ja) 2024-02-28

Similar Documents

Publication Publication Date Title
CN113168720A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
US11470352B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US11423581B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US11488327B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
EP3866115B1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN112313710A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
CN113228110A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
US11750840B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN112368744A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
US11553181B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US11936919B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN113228108A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
US20230362414A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN113474820A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
CN112639885A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
CN115023741A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN112639884A (zh) 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
CN112513938A (zh) 三维数据保存方法、三维数据获得方法、三维数据保存装置以及三维数据获得装置

Legal Events

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