CN116915966A - 点云数据发送设备和方法以及点云数据接收设备和方法 - Google Patents

点云数据发送设备和方法以及点云数据接收设备和方法 Download PDF

Info

Publication number
CN116915966A
CN116915966A CN202311109174.7A CN202311109174A CN116915966A CN 116915966 A CN116915966 A CN 116915966A CN 202311109174 A CN202311109174 A CN 202311109174A CN 116915966 A CN116915966 A CN 116915966A
Authority
CN
China
Prior art keywords
point cloud
data
information
video
atlas
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
CN202311109174.7A
Other languages
English (en)
Inventor
吴世珍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
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 LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN116915966A publication Critical patent/CN116915966A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及点云数据发送设备和方法以及点云数据接收设备和方法。根据实施方式的用于发送点云数据的方法包括以下步骤:对点云数据进行编码;将包含编码的点云数据的比特流封装到文件中;以及发送文件,其中,比特流被存储在文件的一个或更多个轨道中,文件包括信令数据,信令数据包括至少一个参数集和视口相关信息,并且视口相关信息至少包括第一视口信息或第二视口信息。

Description

点云数据发送设备和方法以及点云数据接收设备和方法
本申请是原案申请号为202180028193.X的发明专利申请(国际申请号:PCT/KR2021/004554,申请日:2021年4月12日,发明名称:点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法)的分案申请。
技术领域
实施方式提供了一种提供点云内容以向用户提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自主驾驶服务之类的各种服务的方法。
背景技术
点云是三维(3D)空间中的点集合。因为3D空间中的点的数量大,所以难以生成点云数据。
需要大吞吐量以发送和接收点云的数据。
发明内容
技术问题
本公开的一个目的在于提供一种用于高效地发送和接收点云的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于解决延迟和编码/解码复杂度的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于通过发信号通知点云数据的视口相关信令来向用户提供优化的点云内容的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于通过允许在比特流中发送用于V-PCC比特流中的数据处理和渲染的视口信息、推荐视口信息和初始观看取向(即,视点)来向用户提供优化的点云内容的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于通过以文件格式级别发信号通知点云数据的视口相关信息来向用户提供优化的点云数据的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于发信号通知在轨道或项目中是静态的或随时间改变的用户视口相关信息来有效地向用户提供点云数据的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的附加优点、目的和特征将在以下描述中部分地阐述,并且对于本领域普通技术人员而言在考察以下内容后将部分地变得显而易见或者可从本公开的实践学习。本公开的目的和其它优点可通过所撰写的说明书及其权利要求以及附图中具体指出的结构来实现和获得。
技术方案
为了实现这些目的和其它优点并且根据本公开的目的,如本文所实施和广泛描述的,一种发送点云数据的方法可以包括:对点云数据进行编码;将包括编码的点云数据的比特流封装到文件中;以及发送文件。
根据实施方式,比特流存储在文件的一个或更多个轨道中,文件还包括信令数据,信令数据包括至少一个参数集和视口相关信息,并且视口相关信息至少包括第一视口信息或第二视口信息。
根据实施方式,点云数据包括几何数据、属性数据和占用图数据,它们通过基于视频的点云压缩(V-PCC)方案进行编码。
根据实施方式,第一视口信息包括用于标识与视口相机相关的视口相机参数的标识信息和用于指示视口相机的投影类型的类型信息。
根据实施方式,第二视口信息包括用于标识视口的标识信息和视口的位置信息。
根据实施方式,第二视口信息还包括用于指示视口的位置是对应于视口的中心还是对应于视口的两个立体位置(stereo position)中的一个的信息。
根据实施方式,点云数据发送设备可以包括:编码器,其对点云数据进行编码;封装器,其将包括编码的点云数据的比特流封装到文件中;以及发送器,其发送文件。
根据实施方式,比特流存储在文件的一个或更多个轨道中,文件还包括信令数据,信令数据包括至少一个参数集和视口相关信息,并且其中,视口相关信息至少包括第一视口信息或第二视口信息。
根据实施方式,点云数据包括几何数据、属性数据和占用图数据,它们通过基于视频的点云压缩(V-PCC)方案进行编码。
根据实施方式,第一视口信息包括用于标识与视口相机相关的视口相机参数的标识信息和用于指示视口相机的投影类型的类型信息。
根据实施方式,第二视口信息包括用于标识视口的标识信息和视口的位置信息。
根据实施方式,第二视口信息还包括用于指示视口的位置是对应于视口的中心还是对应于视口的两个立体位置中的一个的信息。
根据实施方式,一种点云数据接收方法可以包括:接收文件;将文件解封装成包括点云数据的比特流,比特流存储在文件的一个或更多个轨道中并且文件还包括信令数据;基于信令数据对点云数据进行解码;以及基于信令数据对解码后的点云数据进行渲染。
根据实施方式,信令数据包括至少一个参数集和视口相关信息,并且视口相关信息至少包括第一视口信息或第二视口信息。
根据实施方式,点云数据包括几何数据、属性数据和占用图数据,它们通过基于视频的点云压缩(V-PCC)方案进行编码。
根据实施方式,第一视口信息包括用于标识与视口相机相关的视口相机参数的标识信息和用于指示视口相机的投影类型的类型信息。
根据实施方式,第二视口信息包括用于标识视口的标识信息和视口的位置信息。
根据实施方式,第二视口信息还包括用于指示视口的位置是对应于视口的中心还是对应于视口的两个立体位置中的一个的信息。
根据实施方式,点云数据接收设备可以包括:接收文件的接收器;将文件解封装成包括点云数据的比特流的解封装器,比特流存储在文件的一个或更多个轨道中,并且文件还包括信令数据;基于信令数据对点云数据进行解码的解码器;以及基于信令数据对解码后的点云数据进行渲染的渲染器。
根据实施方式,信令数据包括至少一个参数集和视口相关信息,并且视口相关信息至少包括第一视口信息或第二视口信息。
根据实施方式,点云数据包括几何数据、属性数据和占用图数据,它们通过基于视频的点云压缩(V-PCC)方案进行编码。
根据实施方式,第一视口信息包括用于标识与视口相机相关的视口相机参数的标识信息和用于指示视口相机的投影类型的类型信息。
根据实施方式,第二视口信息包括用于标识视口的标识信息和视口的位置信息。
根据实施方式,第二视口信息还包括用于指示视口的位置是对应于视口的中心还是对应于视口的两个立体位置中的一个的信息。
有利效果
根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置可以提供良好质量的点云服务。
根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置可以实现各种视频编解码方案。
根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置可以提供诸如自驾驶服务之类的通用点云内容。
根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置可以通过配置V-PCC比特流并允许文件被发送、接收和存储来提供最佳的点云内容服务。
利用根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置,可以通过在V-PCC单元的基础上复用V-PCC比特流来高效地访问V-PCC比特流。另外,V-PCC比特流的阿特拉斯流可以有效地存储在文件中的轨道中,从而被发送和接收。
利用根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置,可以将V-PCC比特流划分并存储在文件中的一个或多个轨道中,可以发信号通知指示存储V-PCC比特流的多个轨道之间的关系的信令信息。此外,可以提供针对存储在文件中的另选V-PCC轨道的指示。因此,点云比特流的文件可以被高效地存储和发送。
利用根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置,用于V-PCC比特流中的数据处理和渲染的元数据可以包括在V-PCC中比特流从而被发送和接收。因此,可以提供最佳的点云内容服务。
利用根据实施方式的点云数据发送方法、发送设备、点云数据接收方法和接收装置,可以通过文件格式级别的轨道发送和接收用于V-PCC比特流中的数据处理和渲染的视口相关信息。因此,可以提供最佳的点云内容服务。
根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置可以使得播放器等能够基于视口相关信息执行对点云对象/内容进行空间或部分访问。因此,可以根据用户视口高效地访问和处理点云比特流。
利用根据实施方式的点云数据发送方法、发送装置、点云数据接收方法和接收装置,可以基于视口相关信息来选择文件中包含点云数据的轨道或项目,或者轨道或项目中的部分数据可以被解析和解码或渲染。此外,可以减少不必要的数据,即对与用户视口无关的点云数据的不必要操作。由此,可以有效地执行文件中的点云数据的解析和点云数据的解码/渲染。
附图说明
附图被包括以提供本公开的进一步理解,并且被并入本申请中并构成本申请的一部分,附图示出本公开的实施方式并与说明书一起用于说明本公开的原理。附图中:
图1示出根据实施方式的用于提供点云内容的发送/接收系统的示例性结构。
图2示出根据实施方式的点云数据的捕获。
图3示出根据实施方式的示例性点云、几何和纹理图像。
图4示出根据实施方式的示例性V-PCC编码处理。
图5示出根据实施方式的表面的切平面和法向量的示例。
图6示出根据实施方式的点云的示例性边界框。
图7示出根据实施方式的占用图上的各个补片位置的确定的示例。
图8示出根据实施方式的法向轴、切向轴和双切轴之间的示例性关系。
图9示出根据实施方式的投影模式的最小模式和最大模式的示例性配置。
图10示出根据实施方式的示例性EDD码。
图11示出根据实施方式的基于邻近点的颜色值重新着色的示例。
图12示出根据实施方式的推拉式背景填充的示例。
图13示出根据实施方式的4*4块的示例性可能遍历顺序。
图14示出根据实施方式的示例性最佳遍历顺序。
图15示出根据实施方式的示例性2D视频/图像编码器。
图16示出根据实施方式的示例性V-PCC解码处理。
图17示出根据实施方式的示例性2D视频/图像解码器。
图18是示出根据本公开的实施方式的发送装置的操作的流程图。
图19是示出根据实施方式的接收装置的操作的流程图。
图20示出根据实施方式的用于点云数据的基于V-PCC的存储和流传输的示例性架构。
图21是根据实施方式的用于存储和发送点云数据的装置的示例性框图。
图22是根据实施方式的点云数据接收装置的示例性框图。
图23示出根据实施方式的可与点云数据发送/接收方法/装置结合操作的示例性结构。
图24示出根据实施方式的V-PCC比特流的示例性结构。
图25示出根据实施方式的由V-PCC比特流中的样本流V-PCC单元载送的数据的示例。
图26示出根据实施方式的包括在V-PCC比特流中的样本流V-PCC头的语法结构的示例。
图27示出根据实施方式的样本流V-PCC单元的语法结构的示例。
图28示出根据实施方式的V-PCC单元的语法结构的示例。
图29示出根据实施方式的V-PCC单元头的语法结构的示例。
图30示出根据实施方式的指派给vuh_unit_type字段的V-PCC单元类型的示例。
图31示出根据实施方式的V-PCC单元有效载荷(vpcc_unit_payload())的语法结构的示例。
图32示出根据实施方式的包括在V-PCC单元有效载荷中的V-PCC参数集的语法结构的示例。
图33示出根据实施方式将补片帧划分为多个拼块的示例。
图34是示出根据实施方式的阿特拉斯子流的结构示例的图。
图35示出根据实施方式的包含在阿特拉斯子流中的样本流NAL头的语法结构的示例。
图36示出根据实施方式的样本流NAL单元的语法结构的示例。
图37示出根据实施方式的nal_unit(NumBytesInNalUnit)的语法结构的示例。
图38示出根据实施方式的NAL单元头的语法结构的示例。
图39示出根据实施方式分配给nal_unit_type字段的RBSP数据结构的类型的示例。
图40示出当根据实施方式的NAL单元类型是阿特拉斯序列参数集时NAL单元中包括的RBSP数据结构的语法。
图41示出根据实施方式的阿特拉斯帧参数集。
图42示出根据实施方式的阿特拉斯帧拼块信息的语法结构。
图43示出根据实施方式的阿特拉斯适配参数集。
图44示出根据实施方式的相机参数的语法结构。
图45示出根据实施方式的指派给acp_camera_model字段的相机模型的示例。
图46示出根据实施方式的阿特拉斯拼块组层头的语法结构。
图47示出根据实施方式的包括在阿特拉斯拼块组层中的阿特拉斯拼块组(或拼块)头的语法结构。
图48示出根据实施方式的指派给atgh_type字段的编码类型的示例。
图49示出根据实施方式的ref_list_struct()的语法结构的示例。
图50示出根据实施方式的阿特拉斯拼块组数据。
图51示出根据实施方式的当atgh_type字段指示I_TILE_GRP时分配给atgdu_patch_mode字段的补片模式类型的示例。
图52示出根据实施方式的当atgh_type字段指示P_TILE_GRP时分配给atgdu_patch_mode字段的补片模式类型的示例。
图53示出根据实施方式的当atgh_type字段指示SKIP_TILE_GRP时分配给atgdu_patch_mode字段的补片模式类型的示例。
图54示出根据实施方式的补片信息数据。
图55示出根据实施方式的补片数据单元的语法结构。
图56示出根据实施方式的相对于补片取向的旋转和偏移。
图57示出根据实施方式的SEI信息的语法结构。
图58示出根据实施方式的SEI消息有效载荷的语法结构的示例。
图59是示出根据实施方式的视锥体中的点云数据的空间部分实际显示在视口上的示例的图。
图60是示出根据实施方式的视锥体中的点云数据的空间部分实际显示在视口上的示例的图。
图61示出根据实施方式的视锥体的示例性俯视图。
图62示出根据实施方式的视锥体的示例性侧视图。
图63示出根据实施方式的用于发送点云数据的方法的流程图。
图64示出根据实施方式的用于接收点云数据的方法的流程图。
具体实施方式
现在将详细参考本公开的优选实施方式,其示例示出于附图中。下面将参照附图给出的详细描述旨在说明本公开的示例性实施方式,而非示出可根据本公开实现的仅有实施方式。以下详细描述包括具体细节以便提供本公开的彻底理解。然而,对于本领域技术人员而言将显而易见的是,本公开可在没有这些具体细节的情况下实践。
尽管本公开中使用的大多数术语选自本领域中广泛使用的通用术语,但是一些术语由申请人任意选择并且在以下描述中根据需要详细说明其含义。因此,本公开应该基于术语的预期含义而非其简单名称或含义来理解。
图1示出根据实施方式的用于提供点云内容的发送/接收系统的示例性结构。
本公开提供一种提供点云内容以向用户提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自主驾驶的各种服务的方法。根据实施方式的点云数据表示将对象表示为点的数据,并且可以被称作点云、点云数据、点云视频数据、点云图像数据等。
根据实施方式的点云数据发送装置10000可包括点云视频获取单元10001、点云视频编码器10002、文件/片段封装模块(文件/片段封装器)10003和/或发送器(或通信模块)10004。根据实施方式的发送装置可取得和处理点云视频(或点云内容)并将其发送。根据实施方式,发送装置可包括固定站、基站收发器系统(BTS)、网络、人工智能(AI)装置和/或系统、机器人、以及AR/VR/XR装置和/或服务器。根据实施方式,发送装置10000可包括被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信的装置、机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器。
根据实施方式的点云视频获取单元10001通过捕获、合成或生成点云视频的处理来获取点云视频。
根据实施方式的点云视频编码器10002对从点云视频获取单元10001获取的点云视频数据进行编码。根据实施方式,点云视频编码器10002可以被称为点云编码器、点云数据编码器、编码器等。根据实施方式的点云压缩编码(编码)不限于上述实施方式。点云视频编码器可以输出包括编码的点云视频数据的比特流。比特流不仅可以包括编码的点云视频数据,还可以包括与点云视频数据的编码相关的信令信息。
根据实施方式的点云视频编码器10002可以支持基于几何的点云压缩(G-PCC)编码方案和/或基于视频的点云压缩(V-PCC)编码方案。此外,点云视频编码器10002可以对点云(称作点云数据或点)和/或与点云相关的信令数据进行编码。
根据实施方式的文件/片段封装模块10003以文件和/或片段的形式封装点云数据。根据实施方式的点云数据发送方法/装置可以以文件和/或片段的形式发送点云数据。
根据实施方式的发送器(或通信模块)10004以比特流的形式发送编码的点云视频数据。根据实施方式,文件或片段可以通过网络发送到接收装置,或者存储在数字存储介质(例如,USB、SD、CD、DVD、蓝光、HDD、SSD等)中。根据实施方式的发送器能够通过4G、5G、6G等网络与接收装置(或接收器)有线/无线通信。另外,发送器可根据网络系统(例如,4G、5G或6G通信网络系统)执行必要的数据处理操作。发送装置可按照按需方式发送封装的数据。
根据实施方式的点云数据接收装置10005可包括接收器10006、文件/片段解封装器(或文件/片段解封装模块)10007、点云视频解码器10008和/或渲染器10009。根据实施方式,接收装置可包括被配置为使用无线电接入技术(例如,5G新RAT(NR)、长期演进(LTE))与基站和/或其它无线装置执行通信的装置、机器人、车辆、AR/VR/XR装置、便携式装置、家用电器、物联网(IoT)装置和AI装置/服务器。
根据实施方式的接收器10006接收包含点云视频数据的比特流。根据实施方式,接收器10006可向点云数据发送装置10000发送反馈信息。
文件/片段解封装模块10007将包含点云数据的文件和/或片段解封装。
点云视频解码器10008对所接收的点云视频数据进行解码。
渲染器10009渲染解码的点云视频数据。根据实施方式,渲染器10009可将在接收侧获得的反馈信息发送给点云视频解码器10008。根据实施方式的点云视频数据可将反馈信息载送到接收器10006。根据实施方式,点云发送装置所接收的反馈信息可被提供给点云视频编码器10002。
图中由虚线指示的箭头表示接收装置10005所获取的反馈信息的传输路径。反馈信息是反映与消费点云内容的用户的交互性的信息,并且包括用户信息(例如,头部取向信息、视口信息等)。具体地,当点云内容是用于需要与用户交互的服务(例如,自主驾驶服务等)的内容时,反馈信息可被提供给内容发送方(例如,发送装置10000)和/或服务提供商。根据实施方式,反馈信息可在接收装置10005以及发送装置10000中使用,并且可不提供。
根据实施方式的头部取向信息是关于用户的头部位置、取向、角度、运动等的信息。根据实施方式的接收装置10005可基于头部取向信息来计算视口信息。视口信息可以是关于用户正在观看的点云视频的区域的信息。视点(或取向)是用户观看点云视频的点,并且可指视口区域的中心点。也就是说,视口是以视点为中心的区域,并且区域的尺寸和形状可由视场(FOV)确定。换句话说,视口是根据视觉相机或用户的位置和视点(或取向)来确定的,点云数据基于视口信息在视口中被渲染。因此,除了头部取向信息之外,接收装置10005还可基于装置所支持的垂直或水平FOV来提取视口信息。另外,接收装置10005执行注视分析以检查用户如何消费点云、点云视频中用户注视的区域、注视时间等。根据实施方式,接收装置10005可将包括注视分析结果的反馈信息发送到发送装置10000。根据实施方式的反馈信息可在渲染和/或显示过程中获取。根据实施方式的反馈信息可由包括在接收装置10005中的一个或更多个传感器取得。此外,根据实施方式,反馈信息可由渲染器10009或单独的外部元件(或装置、组件等)取得。图1中的虚线表示发送渲染器10009所取得的反馈信息的过程。点云内容提供系统可基于反馈信息来处理(编码/解码)点云数据。因此,点云视频解码器10008可基于反馈信息来执行解码操作。接收装置10005可将反馈信息发送到发送装置。发送装置(或点云视频编码器10002)可基于反馈信息来执行编码操作。因此,点云内容提供系统可基于反馈信息高效地处理必要数据(例如,与用户的头部位置对应的点云数据)而非处理(编码/解码)全部点云数据,并将点云内容提供给用户。
根据实施方式,发送装置10000可被称为编码器、发送装置、发送器等,接收装置10005可被称为解码器、接收装置、接收器等。
根据实施方式的图1的点云内容提供系统中(通过获取/编码/传输/解码/渲染的一系列过程)处理的点云数据可被称为点云内容数据或点云视频数据。根据实施方式,点云内容数据可用作涵盖与点云数据有关的元数据或信令信息的概念。
图1所示的点云内容提供系统的元件可由硬件、软件、处理器和/或其组合实现。
实施方式可提供一种提供点云内容以向用户提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自主驾驶的各种服务的方法。
为了提供点云内容服务,可首先获取点云视频。所获取的点云视频可通过一系列处理发送到接收侧,并且接收侧可将所接收的数据处理回到原始点云视频并渲染所处理的点云视频。由此,点云视频可被提供给用户。实施方式提供一种有效地执行这一系列处理的方法。
用于提供点云内容服务的所有处理(点云数据发送方法和/或点云数据接收方法)可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
根据实施方式,提供点云内容(或点云数据)的处理可被称为点云压缩处理。根据实施方式,点云压缩处理可表示基于视频的点云压缩(V-PCC)处理。
根据实施方式的点云数据发送装置和点云数据接收装置的各个元件可以是硬件、软件、处理器和/或其组合。
点云压缩系统可包括发送装置和接收装置。根据实施方式,发送装置可以称作编码器、发送设备、发送器、点云数据发送设备等。根据实施方式,接收装置可以称作解码器、接收设备、接收器、点云数据接收设备等。发送装置可通过对点云视频进行编码来输出比特流,并通过数字存储介质或网络将其以文件或流(流传输片段)的形式传送至接收装置。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。
发送装置可包括点云视频获取单元、点云视频编码器、文件/片段封装器和发送单元(发送器),如图1所示。接收装置可包括接收器、文件/片段解封装器、点云视频解码器和渲染器,如图1所示。编码器可被称为点云视频/画面/画面/帧编码器,解码器可被称为点云视频/画面/画面/帧解码装置。渲染器可包括显示器。渲染器和/或显示器可被配置成单独的装置或外部组件。发送装置和接收装置还可包括用于反馈处理的单独的内部或外部模块/单元/组件。根据实施方式,发送装置和接收装置中的每个元件可以由硬件、软件和/或处理器配置。
根据实施方式,接收装置的操作可以是发送装置的操作的反向处理。
点云视频获取器可通过捕获、编排或生成点云视频的处理来执行获取点云视频的处理。在获取处理中,可生成多个点的3D位置(x,y,z)/属性(颜色、反射率、透明度等)的数据,例如polygon文件格式(PLY)(或斯坦福三角形(stanford triangle)格式)文件。对于具有多个帧的视频,可获取一个或更多个文件。在捕获处理期间,可生成点云相关元数据(例如,捕获相关元数据)。
根据实施方式的点云数据发送装置可包括被配置为对点云数据进行编码的编码器以及被配置为发送点云数据或包括点云数据的比特流的发送器。
根据实施方式的点云数据接收装置可包括被配置为接收包括点云数据的比特流的接收器、被配置为对点云数据进行解码的解码器以及被配置为渲染点云数据的渲染器。
根据实施方式的方法/装置表示点云数据发送装置和/或点云数据接收装置。
图2示出根据实施方式的点云数据的捕获。
根据实施方式的点云数据(点云视频数据)可通过相机等来获取。根据实施方式的捕获技术可包括例如面向内和/或面向外。
在根据实施方式的面向内中,向内面向点云数据的对象的一个或更多个相机可从对象外部拍摄对象。
在根据实施方式的面向外中,向外面向点云数据的对象的一个或更多个相机可拍摄对象。例如,根据实施方式,可存在四个相机。
根据实施方式的点云数据或点云内容可以是在各种类型的3D空间中表示的对象/环境的视频或静止图像。根据实施方式,点云内容可以包括对象的视频/音频/图像。
作为捕获点云内容的设备,可配置能够获取深度的相机设备(红外图案投影仪和红外相机的组合)和能够提取与深度信息对应的颜色信息的RGB相机的组合。另选地,可通过使用雷达系统的LiDAR来提取深度信息,该雷达系统通过发射激光脉冲并测量返回时间来测量反射器的位置坐标。可从深度信息提取由3D空间中的点组成的几何形状,并且可从RGB信息提取表示各个点的颜色/反射率的属性。点云内容可包括关于位置(x,y,z)和点的颜色(YCbCr或RGB)或反射率(r)的信息。对于点云内容,可使用捕获外部环境的面向外技术和捕获中心对象的面向内技术。在VR/AR环境中,当对象(例如,诸如角色、玩家、事物或演员的核心对象)被配置到用户可在任何方向(360度)观看的点云内容中时,捕获相机的配置可基于面向内技术。当在诸如自主驾驶的车辆模式下当前周围环境被配置到点云内容中时,捕获相机的配置可基于面向外技术。由于可通过多个相机捕获点云内容,所以可能需要在捕获内容之前执行相机校准处理以为相机配置全局坐标系。
点云内容可以是存在于各种类型的3D空间中的对象/环境的视频或静止图像。
另外,在点云内容获取方法中,可基于捕获的点云视频编排任何点云视频。另选地,当要提供计算机生成的虚拟空间的点云视频时,可能不执行利用实际相机的捕获。在这种情况下,捕获处理可简单地由生成相关数据的处理代替。
可能需要对捕获的点云视频进行后处理以改进内容的质量。在视频捕获处理中,可在相机设备所提供的范围内调节最大/最小深度。即使在调节之后,仍可能存在不想要的区域的点数据。因此,可执行去除不想要的区域(例如,背景)或识别连接的空间并填充空间孔洞的后处理。另外,从共享空间坐标系的相机提取的点云可通过基于通过校准处理获取的各个相机的位置坐标将各个点变换到全局坐标系中的处理而被整合为一条内容。由此,可生成具有宽范围的一条点云内容,或者可获取具有高密度点的点云内容。
点云视频编码器10002可将输入点云视频编码为一个或更多个视频流。一个点云视频可包括多个帧,各个帧可对应于静止图像/画面。在本说明书中,点云视频可包括点云图像/帧/画面/视频/音频。另外,术语“点云视频”可与点云图像/帧/画面互换使用。点云视频编码器10002可执行基于视频的点云压缩(V-PCC)处理。为了压缩和编码效率,点云视频编码器可执行诸如预测、变换、量化和熵编码的一系列处理。编码的数据(编码的视频/图像信息)可按比特流的形式输出。基于V-PCC处理,点云视频编码器可通过将点云视频分成几何视频、属性视频、占用图视频和辅助信息(或辅助数据)来对点云视频进行编码(将稍后描述)。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
文件/片段封装器(文件/片段封装模块)10003可以例如文件的形式封装编码的点云视频数据和/或与点云视频有关的元数据。这里,与点云视频有关的元数据可从元数据处理器接收。元数据处理器可包括在点云视频编码器10002中,或者可被配置成单独的组件/模块。文件/片段封装器10003可按照诸如ISOBMFF的文件格式封装数据或者按照DASH片段等的形式处理数据。根据实施方式,文件/片段封装器10003可包括文件格式的点云视频相关元数据。点云视频元数据可被包括在例如ISOBMFF文件格式的各种级别的盒中,或作为文件内的单独轨道中的数据。根据实施方式,文件/片段封装器10003可将点云视频相关元数据封装到文件中。发送处理器可对根据文件格式封装的点云视频数据执行传输处理。发送处理器可包括在发送器10004中,或者可被配置成单独的组件/模块。发送处理器可根据传输协议来处理点云视频数据。传输处理可包括经由广播网络传送的处理和通过宽带传送的处理。根据实施方式,发送处理器可从元数据处理器连同点云视频数据一起接收点云视频相关元数据,并且执行点云视频数据的处理以进行传输。
发送器10004可通过数字存储介质或网络将以比特流的形式输出的编码的视频/图像信息或数据以文件或流的形式发送到接收装置的接收器10006。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。发送器可包括用于以预定文件格式生成媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。接收器可提取比特流并将所提取的比特流发送到解码装置。
接收器10006可接收根据本公开的点云视频发送装置所发送的点云视频数据。根据传输信道,接收器可经由广播网络或通过宽带接收点云视频数据。另选地,点云视频数据可通过数字存储介质来接收。
接收处理器可根据传输协议处理所接收的点云视频数据。接收处理器可包括在接收器10006中,或者可被配置成单独的组件/模块。接收处理器可反向执行发送处理器的上述处理,使得处理对应于在发送侧执行的传输处理。接收处理器可将所获取的点云视频数据传送至文件/片段解封装器10007,并将所获取的点云视频相关元数据传送至元数据处理器(未示出)。接收处理器所获取的点云视频相关元数据可采取信令表的形式。
文件/片段解封装器(文件/片段解封装模块)10007可将以文件的形式从接收处理器接收的点云视频数据解封装。文件/片段解封装器10007可根据ISOBMFF等对文件进行解封装,并且可获取点云视频比特流或点云视频相关元数据(元数据比特流)。所获取的点云视频比特流可被传送至点云视频解码器10008,并且所获取的点云视频相关元数据(元数据比特流)可被传送至元数据处理器(未示出)。点云视频比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云视频解码器10008中,或者可被配置成单独的组件/模块。文件/片段解封装器10007所获取的点云视频相关元数据可采取文件格式中的盒或轨道的形式。当需要时,文件/片段解封装器10007可从元数据处理器接收解封装所需的元数据。点云视频相关元数据可被传送至点云视频解码器10008并在点云视频解码处理中使用,或者可被传送至渲染器10009并在点云视频渲染处理中使用。
点云视频解码器10008可接收比特流并且通过执行与点云视频编码器的操作对应的操作来将视频/图像解码。在这种情况下,点云视频解码器10008可通过如下所述将点云视频分成几何视频、属性视频、占用图视频和辅助信息来对点云视频进行解码。几何视频可包括几何图像,属性视频可包括属性图像。占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
3D几何可基于解码的几何图像、占用图和辅助补片信息来重构,然后可经受平滑处理。可通过基于纹理图像向平滑的3D几何指派颜色值来重构颜色点云图像/画面。渲染器10009可渲染重构的几何和颜色点云图像/画面。渲染的视频/图像可通过显示器(未示出)显示。用户可通过VR/AR显示器或典型显示器来观看全部或部分渲染结果。
反馈处理可包括将可在渲染/显示处理中获取的各种类型的反馈信息传送至发送侧或接收侧的解码器。可在消费点云视频时通过反馈处理提供交互性。根据实施方式,头部取向信息、指示用户当前观看的区域的视口信息等可在反馈处理中被传送至发送侧。根据实施方式,用户可与VR/AR/MR/自主驾驶环境中实现的事物交互。在这种情况下,与交互有关的信息可在反馈处理期间被传送至发送侧或服务提供商。根据实施方式,反馈处理可被跳过。
头部取向信息可表示用户头部的位置、角度和运动的信息。基于该信息,可计算关于用户当前观看的点云视频的区域的信息(即,视口信息)。
视口信息可以是关于用户当前观看的点云视频的区域的信息。可使用视口信息来执行注视分析,以检查用户消费点云视频的方式、用户所注视的点云视频的区域以及用户注视该区域多长时间。可在接收侧执行注视分析,并且可在反馈信道上将分析结果传送至发送侧。诸如VR/AR/MR显示器的装置可基于用户头部的位置/方向、装置所支持的垂直或水平FOV等来提取视口区域。
根据实施方式,上述反馈信息可不仅被传送至发送侧,而且在接收侧消费。也就是说,可基于上述反馈信息执行接收侧的解码和渲染处理。例如,可基于头部取向信息和/或视口信息仅优先解码和渲染用户当前观看的区域的点云视频。
这里,视口或视口区域可表示用户当前观看的点云视频的区域。视点是点云视频中用户所观看的点,并且可表示视口区域的中心点。也就是说,视口是视点周围的区域,并且区域的大小和形式可由视场(FOV)确定。
本公开涉及如上所述的点云视频压缩。例如,本公开中公开的方法/实施方式可应用于运动图像专家组(MPEG)的点云压缩或点云编码(PCC)标准或下一代视频/图像编码标准。
如本文所使用的,画面/帧通常可表示特定时间间隔中表示一个图像的单位。
像素或画素可以是构成一个画面(或图像)的最小单位。另外,“样本”可用作与像素对应的术语。样本通常可表示像素或像素值。它可仅表示亮度分量的像素/像素值,仅表示色度分量的像素/像素值,或者仅表示深度分量的像素/像素值。
单元可表示图像处理的基本单位。单元可包括画面的特定区域和与该区域有关的信息中的至少一个。在一些情况下,单元可与诸如块或区域或模块之类的术语互换使用。在一般情况下,M×N块可包括按M列和N行配置的样本(或样本阵列)或变换系数集合(或阵列)。
图3示出根据实施方式的点云、几何图像和纹理图像的示例。
根据实施方式的点云可以被输入到将在下面描述的图4的V-PCC编码处理,以生成几何图像和纹理图像。根据实施方式,点云可以具有与点云数据相同的含义。
如图3所示,左部示出了点云,其中点云对象位于3D空间中并且可以用边界框等来表示。图3中的中间部示出了几何图像,并且图3中的右部示出了纹理图像(非填充图像)。在本公开中,几何图像可以称为几何补片帧/画面或几何帧/画面,并且纹理图像可以称为属性补片帧/画面或属性帧/画面。
根据实施方式的基于视频的点云压缩(V-PCC)是一种基于诸如高效视频编码(HEVC)或多功能视频编码(VVC)的2D视频编解码器来压缩3D点云数据的方法。V-PCC压缩处理中可以生成的数据和信息如下:
占用图:这是在将构成点云的点分成补片并将其映射到2D平面时使用值0或1指示在2D平面中的对应位置是否存在数据的二值图。占用图可以表示与阿特拉斯(atlas)对应的2D阵列,并且占用图的值可以指示阿特拉斯中的每个样本位置是否对应3D点。阿特拉斯是指包括关于每个点云帧的2D补片的信息的对象。例如,阿特拉斯可以包括2D布置和补片的大小、3D点内的对应3D区域的位置、投影计划和细节的级别参数。
补片:构成点云的点集合,其指示属于同一补片的点在3D空间中彼此相邻并且在映射到2D图像的处理中在6面边界框平面之间在相同方向上映射。
几何图像:这是逐补片呈现关于构成点云的各个点的位置信息(几何)的深度图形式的图像。几何图像可由一个通道的像素值组成。几何表示与点云帧相关联的坐标的集合。
纹理图像:这是逐补片表示关于构成点云的各个点的颜色信息的图像。纹理图像可由多个通道(例如,R、G和B三个通道)的像素值组成。纹理包括在属性中。根据实施方式,纹理和/或属性可被解释为相同的对象和/或具有包含关系。
辅助补片信息:这指示利用各个补片重构点云所需的元数据。辅助补片信息可包括关于2D/3D空间中的补片的位置、尺寸等的信息。
根据实施方式的点云数据,例如,V-PCC分量,可以包括阿特拉斯、占用图、几何和属性。
阿特拉斯表示2D边界框的集合。它可以是一组补片,例如,投影到对应于3D空间中的3维边界框的矩形框架中的补片,3D空间可以表示点云的子集。在这种情况下,补片可以表示对应于平面投影中的矩形区域的阿特拉斯中的矩形区域。此外,补片数据可以表示需要执行包括在阿特拉斯中的补片从2D到3D的变换的数据。此外,补片数据组也称为阿特拉斯。
属性可以表示与点云中的每个点相关联的标量或向量。例如,属性可以包括颜色、反射率、表面法线、时间戳、材料ID。
根据实施方式的点云数据表示根据基于视频的点云压缩(V-PCC)方案的PCC数据。点云数据可包括多个分量。例如,其可包括占用图、补片、几何和/或纹理。
图4示出根据实施方式的点云视频编码器的示例。
图4示出用于生成和压缩占用图、几何图像、纹理图像和辅助补片信息的V-PCC编码处理。图4的V-PCC编码处理可以由图1的的点云视频编码器10002处理。图4的每个元件可以由软件、硬件、处理器和/或其组合来执行。
补片生成或补片生成器14000接收点云帧(其可以是包含点云数据的比特流的形式)。补片生成器14000根据点云数据生成补片。此外,生成包括关于补片生成的信息的补片信息。
补片打包或补片打包器14001打包一个或更多个补片。另外,补片打包器14001生成包含关于补片打包的信息的占用图。
几何图像生成或几何图像生成器14002基于点云数据、补片信息(或辅助信息)和/或占用图信息生成几何图像。几何图像是指包含与点云数据相关的几何的数据(即,点的3D坐标值),并且是指几何框架。
纹理图像生成或纹理图像生成器14003基于点云数据、补片、打包的补片、补片信息(或辅助信息)和/或平滑的几何来生成纹理图像。纹理图像是指属性帧。也就是说,可以进一步基于通过基于补片信息进行平滑的平滑处理生成的平滑的几何来生成纹理图像。
平滑或平滑器14004可以减轻或消除包含在图像数据中的错误。例如,重构的几何图像基于补片信息被平滑化。也就是说,可以平滑地过滤掉可能导致数据之间的错误的部分以生成平滑的几何。
辅助补片信息压缩或辅助补片信息压缩器14005可以压缩与在补片生成中生成的补片信息相关的辅助补片信息。此外,辅助补片信息压缩器14005中压缩的辅助补片信息可以被发送到复用器14013。辅助补片信息可以在几何图像生成器14002中使用。
图像填充或图像填充器14006和14007可以分别填充几何图像和纹理图像。填充数据可以被填充到几何图像和纹理图像。
组扩张或组扩张器14008可以以与图像填充类似的方式将数据添加到纹理图像。辅助补片信息可以被插入到纹理图像中。
视频压缩或视频压缩器14009、14010和14011可以分别压缩填充的几何图像、填充的纹理图像和/或占用图。换句话说,视频压缩器14009、14010和14011可以分别压缩输入的几何帧、属性帧和/或占用图帧,以输出几何图像的视频比特流、纹理图像的视频比特流、占用图的视频比特流。视频压缩可以对几何信息、纹理信息和占用信息进行编码。
熵压缩或熵压缩器14012可以基于熵方案来压缩占用图。
根据实施方式,熵压缩和/或视频压缩可以根据点云数据是无损的和/或有损的而对占用图帧执行。
复用器14013将来自各个压缩器的压缩的几何的视频比特流、压缩的纹理图像的视频比特流、压缩的占用图的视频比特流和压缩的辅助补片信息的比特流复用成一个比特流。
上述块可以被省略或者可以被具有相似或相同功能的块代替。此外,图4所示的每个块可以用作处理器、软件和硬件中的至少一种。
根据实施方式的图4的每个处理的详细操作描述如下。
补片生成(14000)
补片生成处理是指将点云分成补片(映射单元)以便将点云映射到2D图像的处理。补片生成处理可被分成三个步骤:法向值计算、分段和补片分段。
将参照图5详细描述法向值计算处理。
图5示出根据实施方式的表面的切平面和法向量的示例。
在图4的V-PCC编码处理的补片生成器14000中如下使用图5的表面。
与补片生成相关的法向计算
点云的各个点具有其自己的方向,其由称为法向量的3D向量表示。使用利用K-D树等获得的各个点的邻居,可获得如图5所示构成点云的表面的各个点的切平面和法向量。应用于搜索邻居的处理的搜索范围可由用户定义。
切平面是指穿过表面上的点并且完全包括表面上的曲线的切线的平面。
图6示出根据实施方式的点云的示例性边界框。
根据实施方式的边界框指代用于基于3D空间中的六面体来划分点云数据的单位的框。
根据实施方式的方法/装置(例如,补片生成器14000)可在从点云数据生成补片的处理中使用边界框。
可在将点云数据的目标对象投影到3D空间中的六面体的各个平坦面的平面上的处理中使用边界框。边界框可以由图1的点云视频获取单元10001和点云视频编码器10002生成和处理。此外,基于边界框,可以执行图4的V-PCC编码处理的补片生成14000、补片打包14001、几何图像生成14002和纹理图像生成14003。
与补片生成相关的分段
分段被分成两个处理:初始分段和细化分段。
根据实施方式的点云视频编码器10002将点投影到边界框的一个面上。具体地,如图6所示,构成点云的各个点被投影到围绕点云的边界框的六个面之一上。初始分段是确定各个点要投影至的边界框的平坦面之一的处理。
其是与六个平坦面中的每一个对应的法向值,如下定义:
(1.0,0.0,0.0),(0.0,1.0,0.0),(0.0,0.0,1.0),(-1.0,0.0,0.0),(0.0,-1.0,0.0),(0.0,0.0,-1.0)。
如下式所示,在法向值计算处理中获得的各个点的法向量与/>的点积的值最大的面被确定为对应点的投影平面。也就是说,法向量与点的法向量的方向最相似的平面被确定为点的投影平面。
所确定的平面可由一个集群索引(0至5之一)标识。
细化分段是考虑邻近点的投影平面增强在初始分段处理中确定的构成点云的各个点的投影平面的处理。在该处理中,得分法向和得分平滑可一起考虑,得分法向表示在初始分段处理中确定投影平面时考虑的各个点的法向量与边界框的各个平坦面的法向之间的相似度,得分平滑指示当前点的投影平面与邻近点的投影平面之间的相似度。
可通过向得分法向指派权重来考虑得分平滑。在这种情况下,权重值可由用户定义。细化分段可重复地执行,重复次数也可由用户定义。
与补片生成相关的补片分段
补片分段是基于在初始/细化分段处理中获得的关于构成点云的各个点的投影平面信息将整个点云分成补片(邻近点的集合)的处理。补片分段可包括以下步骤:
使用K-D树等计算构成点云的各个点的邻近点。最大邻居数量可由用户定义;
①当邻近点被投影到与当前点相同的平面上时(当它们具有相同的集群索引时),②提取当前点和邻近点作为一个补片;
③计算所提取的补片的几何值。
④重复操作②至③,直至不存在未提取的点。
各个补片的占用图、几何图像和纹理图像以及各个补片的大小通过补片分段处理来确定。
图7示出根据实施方式的确定占用图上的各个补片位置的示例。
根据实施方式的点云视频编码器10002可以执行补片打包并生成占用图。
补片打包和占用图生成(14001)
这是确定2D图像中的各个补片的位置以将分段的补片映射到2D图像的处理。作为一种2D图像,占用图是使用值0或1指示对应位置处是否存在数据的二值图。占用图由块组成,其分辨率可由块的大小确定。例如,当块为1*1块时,获得像素级分辨率。占用打包块大小可由用户确定。
确定占用图上的各个补片的位置的处理可配置如下:
①将占用图上的所有位置设定为0;
②将补片置于占用图平面中水平坐标在(0,occupancySizeU-patch.sizeU0)范围内并且垂直坐标在(0,occupancySizeV-patch.sizeV0)范围内的点(u,v)处;
③将补片平面中水平坐标在(0,patch.sizeU0)范围内并且垂直坐标在(0,patch.sizeV0)范围内的点(x,y)设定为当前点;
④按光栅顺序改变点(x,y)的位置,并且如果补片占用图上的坐标(x,y)的值为1(补片中的点处存在数据)并且全局占用图上的坐标(u+x,v+y)的值为1(以先前补片填充占用图),则重复操作③和④。否则,进行至操作⑥;
⑤按光栅顺序改变(u,v)的位置并且重复操作③至⑤;
⑥将(u,v)确定为补片的位置并且将关于补片的占用图数据复制到全局占用图上的对应部分上;以及
⑦针对下一补片重复操作②至⑥。
occupancySizeU:指示占用图的宽度。其单位是占用打包块大小。
occupancySizeV:指示占用图的高度。其单位是占用打包块大小。
patch.sizeU0:指示占用图的宽度。其单位是占用打包块大小。
patch.sizeV0:指示占用图的高度。其单位是占用打包块大小。
例如,如图7所示,在与占用打包大小块对应的框中,存在于具有补片大小的补片对应的框,并且点(x,y)可以位于该框中。
图8示出根据实施方式的法向轴、切向轴和双切轴之间的示例性关系。
根据实施方式的点云视频编码器10002可以生成几何图像。几何图像指代包括关于点云的几何信息的图像数据。几何图像生成处理可以采用途8的补片的三个轴(法向、切向和双切)。
几何图像生成(14002)
在该处理中,确定构成各个补片的几何图像的深度值,并且整个几何图像基于在上述补片打包处理中确定的补片的位置来生成。确定构成各个补片的几何图像的深度值的处理可配置如下。
①计算与各个补片的位置和大小有关的参数。参数可包括以下信息。根据实施方式,补片的位置被包括在补片信息中。
指示法向轴的法向索引在先前补片生成处理中获得。切向轴是垂直于法向轴的轴当中与补片图像的水平轴u一致的轴,双切轴是垂直于法向轴的轴当中与补片图像的垂直轴v一致的轴。三个轴可如图8所示。
图9示出根据实施方式的投影模式的最小模式和最大模式的示例性配置。
根据实施方式的点云视频编码器10002可以执行基于补片的投影以生成几何图像,并且根据实施方式的投影模式包括最小模式和最大模式。
可基于围绕补片的最小尺寸的边界框来计算补片的3D空间坐标。例如,3D空间坐标可包括补片的最小切向值(在补片3d移位切向轴上)、补片的最小双切值(在补片3d移位双切轴上)和补片的最小法向值(在补片3d移位法向轴上)。
补片的2D尺寸指示当补片被打包成2D图像时补片的水平尺寸和垂直尺寸。水平尺寸(补片2d尺寸u)可作为边界框的最大切向值和最小切向值之差获得,垂直尺寸(补片2d尺寸v)可作为边界框的最大双切值和最小双切值之差获得。
②确定补片的投影模式。投影模式可以是最小模式或最大模式。关于补片的几何信息利用深度值表示。当构成补片的各个点在补片的法向上投影时,可生成两层图像,利用最大深度值构造的图像和利用最小深度值构造的图像。
在最小模式下,在生成两层图像d0和d1时,可为d0配置最小深度,并且可为d1配置从最小深度的表面厚度内的最大深度,如图9所示。
例如,当点云位于2D中(如图9所示)时,存在包括多个点的多个补片。如图所示,指示了标记有相同风格的阴影的点可以属于相同的补片。图示出投影标记有空白的点的补片的处理。
当将标记有空白的点左/右投影时,相对于左侧,深度可以递增1,为0、1、2、…、6、7、8、9,并且用于计算点的深度的数字可以标记在右侧。
可对所有点云应用相同的投影模式,或者可根据用户定义对各个帧或补片应用不同的投影模式。当对各个帧或补片应用不同的投影模式时,可自适应地选择可增强压缩效率或使缺失的点最少的投影模式。
③计算各个点的深度值。
在最小模式下,利用depth0构造图像d0,depth0是通过针对各个点的最小法向值从补片的最小法向值(在补片3d移位法向轴上)减去在操作1)中计算的补片的最小法向值(在补片3d移位法向轴上)而获得的值。如果在同一位置在depth0与表面厚度之间的范围内存在另一深度值,则该值被设定为depth1。否则,depth0的值被指派给depth1。利用depth1的值构造图像d1。
例如,在计算图像d0的点的深度时可以计算最小值(4 2 4 4 0 6 0 0 9 9 0 80)。在计算图像d1的点的深度时,可以计算两个或更多个点当中的更大值。当仅存在一个点时,其值可以被计算(4 4 4 4 6 6 6 8 9 9 8 8 9)。在编码和重构补片的点的处理中,一些点可能会缺失(例如,在图中,缺失了八个点)。
在最大模式下,利用depth0构造图像d0,depth0是通过针对各个点的最大法向值从补片的最小法向值(在补片3d移位法向轴上)减去在操作1)中计算的补片的最小法向值(在补片3d移位法向轴上)而获得的值。如果在同一位置在depth0与表面厚度之间的范围内存在另一深度值,则该值被设定为depth1。否则,depth0的值被指派给depth1。利用depth1的值构造图像d1。
例如,在计算图像d0的点的深度时可以计算最小值(4 4 4 4 6 6 6 8 9 9 8 89)。在计算图像d1的点的深度时,可以计算两个或更多个点当中的更小值。当仅存在一个点时,其值可以被计算(4 2 4 4 5 6 0 6 9 9 0 8 0)。在编码和重构补片的点的处理中,一些点可能会缺失(例如,在图中,缺失了六个点)。
整个几何图像可通过基于在补片打包处理中确定的补片位置信息将通过上述处理生成的各个补片的几何图像放置到整个几何图像上来生成。
所生成的整个几何图像的层d1可使用各种方法来编码。第一方法(绝对d1编码方法)是对先前生成的图像d1的深度值进行编码。第二方法(差分编码方法)是对先前生成的图像d1的深度值与图像d0的深度值之差进行编码。
在如上所述使用两个层d0和d1的深度值的编码方法中,如果两个深度之间存在另一点,则在编码处理中丢失关于该点的几何信息,因此增强-增量-深度(EDD)码可用于无损编码。
以下,将参照图10详细描述EDD码。
图10示出根据实施方式的示例性EDD码。
在点云视频编码器10002和/或V-PCC编码的一些/全部处理(例如,视频压缩14009)中,可以基于EOD码来编码关于点的几何信息。
如图10所示,EDD码用于包括d1的表面厚度范围内的所有点的位置的二值编码。例如,在图10中,由于在D0上的第一位置和第四位置处存在点并且第二位置和第三位置为空,所以包括在左侧第二列中的点可由EDD码0b1001(=9)表示。当EDD码与D0一起编码并发送时,接收终端可无损地恢复关于所有点的几何信息。
例如,当存在在参考点上方的点时,值为1。当不存在点时,值为0。因此,可以基于4个比特来表示码。
平滑(14004)
平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的操作。可由点云视频编码器10002或平滑器14004执行平滑:
①从几何图像重构点云。此操作可与上述几何图像生成相反。例如,可以重构编码的反向处理;
②使用K-D树等计算构成重构的点云的各个点的邻近点;
③确定各个点是否位于补片边界上。例如,当存在具有与当前点不同的投影平面(集群索引)的邻近点时,可确定点位于补片边界上;
④如果在补片边界上存在点,则使该点移动到邻近点的质心(位于邻近点的平均x、y、z坐标处)。也就是说,改变几何值。否则,维持先前几何值。
图11示出根据实施方式的基于邻近点的颜色值来重新着色的示例。
根据实施方式的点云视频编码器10002或纹理图像生成器14003可以基于重新着色来生成纹理图像。
纹理图像生成(14003)
与上述几何图像生成处理类似,纹理图像生成处理包括生成各个补片的纹理图像并且通过将纹理图像布置在确定的位置来生成整个纹理图像。然而,在生成各个补片的纹理图像的操作中,代替用于几何生成的深度值,生成具有构成与位置对应的点云的点的颜色值(例如,R、G和B值)的图像。
在估计构成点云的各个点的颜色值时,可使用先前通过平滑处理获得的几何。在平滑的点云中,一些点的位置可能已相对于原始点云移位,因此可能需要寻找适合于改变的位置的颜色的重新着色处理。可使用邻近点的颜色值来执行重新着色。例如,如图11所示,可考虑最近邻近点的颜色值和邻近点的颜色值来计算新颜色值。
例如,参照图11,在重新着色中,可以基于关于点的最近原始点的属性信息的平均和/或关于点的最近原始点的属性信息的平均来计算改变的位置的合适颜色值。
类似于以两个层d0和d1生成的几何图像,纹理图像也可以两个层t0和t1生成。
辅助补片信息压缩(14005)
根据实施方式的点云视频编码器10002或辅助补片信息压缩器14005可以压缩辅助补片信息(关于点云的辅助信息)。
辅助补片信息压缩器14005压缩在上述补片生成、补片打包和几何生成处理中生成的辅助补片信息。辅助补片信息可包括以下参数:
用于标识投影平面(法向平面)的索引(集群索引);
补片的3D空间位置,即,补片的最小切向值(在补片3d移位切向轴上)、补片的最小双切值(在补片3d移位双切轴上)和补片的最小法向值(在补片3d移位法向轴上);
补片的2D空间位置和尺寸,即,水平尺寸(补片2d尺寸u)、垂直尺寸(补片2d尺寸v)、最小水平值(补片2d移位u)和最小垂直值(补片2d移位u);以及
关于各个块和补片的映射信息,即,候选索引(当补片基于关于补片的2D空间位置和尺寸信息按顺序设置时,多个补片可按交叠方式映射到一个块。在这种情况下,映射的补片构成候选列表,并且候选索引指示其数据存在于块中的补片的顺序位置)和局部补片索引(指示存在于帧中的一个补片的索引)。表1示出表示基于候选列表和局部补片索引在块和补片之间匹配的处理的伪代码。
候选列表的最大数量可由用户定义。
[表1]
图12示出根据实施方式的推拉式背景填充。
图像填充和组扩张(14006、14007、14008)
根据实施方式的图像填充器可以基于推拉式背景填充技术来用无意义的补充数据填充除了补片区域之外的空间。
图像填充14006和14007是以无意义的数据填充补片区域以外的空间以改进压缩效率的处理。对于图像填充,可复制补片中靠近边界的列或行中的像素值以填充空白空间。另选地,如图12所示,可使用推拉式背景填充方法。根据该方法,在逐渐降低非填充图像的分辨率并再次增加分辨率的处理中利用来自低分辨率图像的像素值填充空白空间。
组扩张14008是填充分别以两个层d0/d1和t0/t1配置的几何图像和纹理图像的空白空间的处理。在此处理中,利用同一位置的值的平均填充通过图像填充计算的两个层的空白空间。
图13示出根据实施方式的4*4块的示例性可能遍历顺序。
占用图压缩(14012、14011)
根据实施方式的占用图压缩器可以压缩先前生成的占用图。具体地,可以使用两个方法,即:用于有损压缩的视频压缩和用于无损压缩的熵压缩。下面描述视频压缩。
可通过以下操作执行熵压缩。
①如果构成占用图的块被完全占用,则对1进行编码并针对占用图的下一块重复相同的操作。否则,对0进行编码并执行操作2)至5)。
②确定对块的占用像素执行游程长度编码的最佳遍历顺序。图13示出4*4块的四个可能遍历顺序。
图14示出根据实施方式的示例性最佳遍历顺序。
如上所述,根据实施方式的熵压缩器可以基于图14所示的遍历顺序方案对块进行编码(编码)。
例如,从可能遍历顺序当中选择具有最小游程数量的最佳遍历顺序,并且对其索引进行编码。图中示出选择图13中的第三遍历顺序的情况。在所示情况下,游程数量可被最小化为2,因此第三遍历顺序可被选为最佳遍历顺序。
③对游程数量进行编码。在图14的示例中,存在两个游程,因此对2进行编码。
④对第一游程的占用进行编码。在图14的示例中,对0进行编码,因为第一游程对应于未占用像素。
⑤对各个游程(游程数量那么多)的长度进行编码。在图14的示例中,依次对第一游程和第二游程的长度6和10进行编码。
视频压缩(14009、14010、14011)
根据实施方式的视频压缩器14009、14010、14011使用诸如HEVC或VVC的2D视频编解码器对在上述操作中生成的几何图像、纹理图像、占用图图像等的序列进行编码。
图15示出根据实施方式的示例性2D视频/图像编码器。根据实施方式,2D视频/图像编码器可以称作编码装置。
表示应用了上述视频压缩器14009、14010和14011的实施方式的图15是被配置为对视频/图像信号进行编码的2D视频/图像编码器15000的示意性框图。2D视频/图像编码器15000可包括在上述点云视频编码器10002中,或者可被配置成内部/外部组件。图15的每个组件可以对应于软件、硬件、处理器和/或其组合。
这里,输入图像可包括上述几何图像、纹理图像(属性图像)和占用图图像之一。当图15的2D视频/图像编码器被应用于视频压缩器14009时,输入到2D视频/图像编码器15000的图像是填充的几何图像,并且从2D视频/图像编码器15000输出的比特流是压缩的几何图像的比特流。当图15的2D视频/图像编码器被应用于视频压缩器14010时,输入到2D视频/图像编码器15000的图像是填充的纹理图像,并且从2D视频/图像编码器15000输出的比特流是压缩的纹理图像的比特流。当图15的2D视频/图像编码器被应用于视频压缩器14011时,输入到2D视频/图像编码器15000的图像是占用图图像,并且从2D视频/图像编码器15000输出的比特流是压缩的占用图图像的比特流。
帧间预测器15090和帧内预测器15100可被统称为预测器。也就是说,预测器可包括帧间预测器15090和帧内预测器15100。变换器15030、量化器15040、逆量化器15050和逆变换器15060可以统称为残差处理器。残差处理器还可包括减法器15020。根据实施方式,图15的图像分割器15010、减法器15020、变换器15030、量化器15040、逆量化器15050、逆变换器15060、加法器15200、滤波器15070、帧间预测器15090、帧内预测器15100和熵编码器15110可由一个硬件组件(例如,编码器或处理器)配置。另外,存储器15080可包括解码画面缓冲器(DPB)并且可由数字存储介质配置。
图像分割器15010可将输入到编码器15000的图像(或者画面或帧)分割成一个或更多个处理单元。例如,处理单元可被称为编码单元(CU)。在这种情况下,CU可根据四叉树二叉树(QTBT)结构从编码树单元(CTU)或最大编码单元(LCU)递归地分割。例如,一个CU可基于四叉树结构和/或二叉树结构被分割为较低深度的多个CU。在这种情况下,例如,可首先应用四叉树结构,稍后可应用二叉树结构。另选地,可首先应用二叉树结构。根据本公开的编码处理可基于不再分割的最终CU来执行。在这种情况下,根据图像的特性基于编码效率,LCU可用作最终CU。必要时,CU可被递归地分割为较低深度的CU,并且最优大小的CU可用作最终CU。这里,编码处理可包括预测、变换和重构(将稍后描述)。作为另一示例,处理单元还可包括预测单元(PU)或变换单元(TU)。在这种情况下,PU和TU可从上述最终CU分割或划分。PU可以是样本预测的单元,TU可以是推导变换系数的单元和/或从变换系数推导残差信号的单元。
术语“单元”可与诸如块或区域或模块的术语互换使用。在一般情况下,M×N块可表示以M列和N行配置的样本或变换系数的集合。样本通常可表示像素或像素值,并且可仅指示亮度分量的像素/像素值,或者仅指示色度分量的像素/像素值。“样本”可用作与一个画面(或图像)中的像素或画素对应的术语。
编码装置15000的减法器15020可通过从输入图像信号(原始块或原始样本阵列)减去从帧间预测器15090或帧内预测器15100输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列),并且所生成的残差信号被发送到变换器15030。在这种情况下,如图所示,在编码装置15000中从输入图像信号(原始块或原始样本阵列)减去预测信号(预测块或预测样本阵列)的单元可被称为减法器15020。预测器可对处理目标块(以下称为当前块)执行预测并且生成包括当前块的预测样本的预测块。预测器可基于当前块或CU确定是应用帧内预测还是帧间预测。如稍后将在各个预测模式的描述中描述的,预测器可生成关于预测的各种类型的信息(例如,预测模式信息),并将所生成的信息传送至熵编码器15110。关于预测的信息可由熵编码器15110编码并以比特流的形式输出。
预测器的帧内预测器15100可参考当前画面中的样本来预测当前块。根据预测模式,样本可邻近或远离当前块。在帧内预测下,预测模式可包括多个非定向模式和多个定向模式。非定向模式可包括例如DC模式和平面模式。根据预测方向的精细度,定向模式可包括例如33个定向预测模式或65个定向预测模式。然而,这仅是示例,可根据设置使用更多或更少的定向预测模式。帧内预测器15100可基于应用于邻近块的预测模式来确定要应用于当前块的预测模式。
预测器的帧间预测器15090可基于参考画面上运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式下发送的运动信息量,可基于邻近块与当前块之间的运动信息的相关性基于每块、子块或样本来预测运动信息。运动信息可包括运动向量和参考画面索引。运动信息还可包括关于帧间预测方向(L0预测、L1预测、Bi预测等)的信息。在帧间预测的情况下,邻近块可包括存在于当前画面中的空间邻近块和存在于参考画面中的时间邻近块。包括参考块的参考画面可与包括时间邻近块的参考画面相同或不同。时间邻近块可被称为并置参考块或并置CU(colCU),并且包括时间邻近块的参考画面可被称为并置画面(colPic)。例如,帧间预测器15090可基于邻近块来配置运动信息候选列表并且生成指示要用于推导当前块的运动向量和/或参考画面索引的候选的信息。可基于各种预测模式执行帧间预测。例如,在跳过模式和合并模式下,帧间预测器15090可使用关于邻近块的运动信息作为关于当前块的运动信息。在跳过模式下,与合并模式不同,可不发送残差信号。在运动向量预测(MVP)模式下,邻近块的运动向量可用作运动向量预测器,并且可发信号通知运动向量差以指示当前块的运动向量。
由帧间预测器15090或帧内预测器15100生成的预测信号可用于生成重构信号或生成残差信号。
变换器15030可通过对残差信号应用变换技术来生成变换系数。例如,变换技术可包括离散余弦变换(DCT)、离散正弦变换(DST)、Karhunen–Loève变换(KLT)、基于图形的变换(GBT)或条件非线性变换(CNT)中的至少一个。这里,GBT是指从描绘像素之间的关系的图形获得的变换。CNT是指基于根据所有先前重构的像素生成的预测信号获得的变换。另外,变换操作可应用于具有相同大小的正方形像素块,或者可应用于具有正方形以外的可变大小的块。
量化器15040可将变换系数量化并将其发送到熵编码器15110。熵编码器15110可对量化的信号(关于量化的变换系数的信息)进行编码并输出编码的信号的比特流。关于量化的变换系数的信息可被称为残差信息。量化器15040可基于系数扫描顺序按照一维向量的形式重排块形式的量化的变换系数,并且基于一维向量形式的量化的变换系数来生成关于量化的变换系数的信息。
熵编码器15110可采用诸如例如指数Golomb、上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)的各种编码技术。熵编码器15110可与量化的变换系数一起或分开对视频/图像重构所需的信息(例如,语法元素的值)进行编码。编码的信息(例如,编码的视频/图像信息)可基于网络抽象层(NAL)单元以比特流的形式发送或存储。
比特流可经由网络发送或者可被存储在数字存储介质中。这里,网络可包括广播网络和/或通信网络,并且数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。发送从熵编码器15110输出的信号的发送器(未示出)和/或存储该信号的存储部(未示出)可被配置成编码器15000的内部/外部元件。另选地,发送器可被包括在熵编码器15110中。
从量化器15040输出的量化的变换系数可用于生成预测信号。例如,可通过逆量化器15050和逆变换器15060对量化的变换系数应用逆量化和逆变换,以重构残差信号(残差块或残差样本)。加法器15200将重构的残差信号与从帧间预测器15090或帧内预测器15100输出的预测信号相加。由此,可生成重构信号(重构画面、重构块、重构样本阵列)。当如应用跳过模式的情况中一样不存在处理目标块的残差信号时,预测块可用作重构块。加法器15200可被称为重构器或重构块生成器。如下所述,所生成的重构信号可用于当前画面中的下一处理目标块的帧内预测,或者可通过滤波用于下一画面的帧间预测。
滤波器15070可通过对从加法器15200输出的重构信号应用滤波来改进主观/客观图像质量。例如,滤波器15070可通过对重构画面应用各种滤波技术来生成修改的重构画面,并且修改的重构画面可被存储在存储器15080(具体地,存储器15080的DPB)中。例如,各种滤波技术可包括去块滤波、样本自适应偏移、自适应环路滤波和双边滤波。如下面在滤波技术的描述中描述的,滤波器15070可生成关于滤波的各种类型的信息并且将所生成的信息传送至熵编码器15110。关于滤波的信息可由熵编码器15110编码并以比特流的形式输出。
存储在存储器15080中的修改的重构画面可由帧间预测器15090用作参考画面。因此,当应用帧间预测时,编码器可避免编码器15000与解码器之间的预测失配并且改进编码效率。
存储器15080的DPB可存储修改的重构画面以由帧间预测器15090用作参考画面。存储器15080可存储关于推导(或编码)当前画面中的运动信息的块的运动信息和/或关于画面中已经重构的块的运动信息。所存储的运动信息可被传送到帧间预测器15090以用作关于空间邻近块的运动信息或关于时间邻近块的运动信息。存储器15080可存储当前画面中的重构块的重构样本并将重构样本传送至帧内预测器15100。
可跳过上述预测、变换和量化过程中的至少一个。例如,对于应用了脉冲编码调制(PCM)的块,可跳过预测、变换和量化过程,并且原始样本的值可被编码并以比特流的形式输出。
图16示出根据实施方式的示例性V-PCC解码处理。
V-PCC解码处理或V-PCC解码器可以遵循图4的V-PCC编码处理(或编码器)的反向处理。图16的每个组件可以对应于软件、硬件、处理器和/或其组合。
解复用器16000将压缩的比特流解复用,以分别输出压缩的纹理图像、压缩的几何图像、压缩的占用图和压缩的辅助补片信息。
视频解压缩或视频解压缩器16001、16002解压缩压缩的纹理图像和压缩的几何图像中的每一个。
占用图解压缩或占用图解压缩器16003对压缩的占用图图像进行解压缩。
辅助补片信息解压缩或辅助补片信息解压缩器16004对压缩的辅助补片信息进行解压缩。
几何重构或几何重构器16005基于解压缩的几何图像、解压缩的占用图和/或解压缩的辅助补片信息来恢复(重构)几何信息。例如,在编码处理中改变的几何可被重构。
平滑或平滑器16006可对重构的几何应用平滑。例如,可应用平滑滤波。
纹理重构或纹理重构器16007从解压缩的纹理图像和/或平滑的几何重构纹理。
颜色平滑或颜色平滑器16008从重构的纹理平滑颜色值。例如,可应用平滑滤波。
结果,可生成重构的点云数据。
图16示出通过对压缩的占用图、几何图像、纹理图像和辅助补片信息进行解压缩(解码)来重构点云的V-PCC的解码处理。
图16所示的每个单元可以用作处理器、软件和硬件中的至少一个。根据实施方式的图16的每个单元的详细操作描述如下。
视频解压缩(16001、16002)
视频解压缩是上述视频压缩的逆处理。它是使用诸如HEVC或VVC的2D视频编解码器来将在上述处理中生成的几何图像的比特流、压缩的纹理图像的比特流和/或压缩的占用图图像的比特流解码的处理。
图17示出根据实施方式的示例性2D视频/图像解码器,其也称作解码装置。
2D视频/图像解码器可以遵循图15的2D视频/图像编码器的操作的反向处理。
图17的2D视频/图像解码器是图16的视频解压缩器16001和16002的实施方式。图17是对视频/图像信号进行解码的2D视频/图像解码器17000的示意性框图。2D视频/图像解码器17000可被包括在上述点云视频解码器10008中,或者可被配置成内部/外部组件。图17的每个组件可以对应于软件、硬件、处理器和/或其组合。
这里,输入比特流可以是几何图像的比特流、纹理图像(属性图像)的比特流和占用图图像的比特流之一。当图17的2D视频/图像解码器被应用于视频解压缩器16001时,输入到2D视频/图像解码器的比特流是压缩的纹理图像的比特流,并且从2D视频/图像解码器输出的重构图像是解压缩的纹理图像。当图17的2D视频/图像解码器被应用于视频解压缩器16002时,输入到2D视频/图像解码器的比特流是压缩的几何图像的比特流,并且从2D视频/图像解码器输出的重构图像是解压缩的几何图像。图17的2D视频/图像解码器可以接收压缩的占用图图像的比特流并且对齐进行解压缩。重构图像(或输出图像或解码图像)可以表示上述几何图像、纹理图像(属性图像)和占用图图像的重构图像。
参照图17,帧间预测器17070和帧内预测器17080可被统称为预测器。也就是说,预测器可包括帧间预测器17070和帧内预测器17080。逆量化器17020和逆变换器17030可被统称为残差处理器。也就是说,根据实施方式,残差处理器可包括逆量化器17020和逆变换器17030。图17的熵解码器17010、逆量化器17020、逆变换器17030、加法器17040、滤波器17050、帧间预测器17070和帧内预测器17080可由一个硬件组件(例如,解码器或处理器)配置。另外,存储器17060可包括解码画面缓冲器(DPB)或者可由数字存储介质配置。
当输入包含视频/图像信息的比特流时,解码器17000可在与图15的编码器处理视频/图像信息的处理对应的处理中重构图像。例如,解码器17000可使用编码器中应用的处理单元来执行解码。因此,解码的处理单元可以是例如CU。CU可沿着四叉树结构和/或二叉树结构从CTU或LCU分割。然后,可通过播放器播放通过解码器17000解码和输出的重构的视频信号。
解码器17000可接收从编码器以比特流的形式输出的信号,并且所接收的信号可通过熵解码器17010解码。例如,熵解码器17010可解析比特流以推导图像重构(或画面重构)所需的信息(例如,视频/图像信息)。例如,熵解码器17010可基于诸如指数Golomb编码、CAVLC或CABAC的编码技术对比特流中的信息进行解码,输出图像重构所需的语法元素和残差的变换系数的量化值。更具体地,在CABAC熵解码中,可接收与比特流中的各个语法元素对应的信元(bin),并且可基于解码目标语法元素信息以及关于邻近解码目标块的解码信息或关于在先前步骤中解码的符号/信元的信息来确定上下文模型。然后,可根据所确定的上下文模型来预测信元出现的概率,并且可执行信元的算术解码以生成与各个语法元素的值对应的符号。根据CABAC熵解码,在确定上下文模型之后,可基于关于为下一符号/信元的上下文模型解码的符号/信元的信息来更新上下文模型。熵解码器17010所解码的信息中关于预测的信息可被提供给预测器(帧间预测器17070和帧内预测器17080),并且已由熵解码器17010执行了熵解码的残差值(即,量化的变换系数和相关参数信息)可被输入到逆量化器17020。另外,熵解码器17010所解码的信息中关于滤波的信息可被提供给滤波器17050。被配置为接收从编码器输出的信号的接收器(未示出)还可被配置成解码器17000的内部/外部元件。另选地,接收器可以是熵解码器17010的组件。
逆量化器17020可通过将量化的变换系数逆量化来输出变换系数。逆量化器17020可按二维块的形式重排量化的变换系数。在这种情况下,可基于编码器所实现的系数扫描顺序来执行重排。逆量化器17020可使用量化参数(例如,量化步长信息)对量化的变换系数执行逆量化并且获取变换系数。
逆变换器17030通过对变换系数进行变换来获取残差信号(残差块和残差样本阵列)。
预测器可对当前块执行预测并生成包括当前块的预测样本的预测块。预测器可基于从熵解码器17010输出的关于预测的信息来确定对当前块应用帧内预测还是帧间预测,并且可确定特定帧内/帧间预测模式。
预测器的帧内预测器17080可参考当前画面中的样本来预测当前块。根据预测模式,样本可邻近或远离当前块。在帧内预测中,预测模式可包括多个非定向模式和多个定向模式。帧内预测器17080可使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
预测器的帧间预测器17070可基于参考画面上运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式下发送的运动信息量,可基于邻近块与当前块之间的运动信息的相关性基于每块、子块或样本来预测运动信息。运动信息可包括运动向量和参考画面索引。运动信息还可包括关于帧间预测方向(L0预测、L1预测、Bi预测等)的信息。在帧间预测的情况下,邻近块可包括存在于当前画面中的空间邻近块和存在于参考画面中的时间邻近块。例如,帧间预测器17070可基于邻近块来配置运动信息候选列表,并且基于所接收的候选选择信息来推导当前块的运动向量和/或参考画面索引。可基于各种预测模式来执行帧间预测。关于预测的信息可包括指示当前块的帧间预测模式的信息。
加法器17040可将逆变换器17030中获取的残差信号与从帧间预测器17070或帧内预测器17080输出的预测信号(预测块或预测样本阵列)相加,从而生成重构信号(重构画面、重构块或重构样本阵列)。当如应用跳过模式的情况中一样不存在用于处理目标块的残差信号时,预测块可用作重构块。
加法器17040可被称为重构器或重构块生成器。所生成的重构信号可用于当前画面中的下一处理目标块的帧内预测,或者可如下所述通过滤波用于下一画面的帧间预测。
滤波器17050可通过对从加法器17040输出的重构信号应用滤波来改进主观/客观图像质量。例如,滤波器17050可通过对重构画面应用各种滤波技术来生成修改的重构画面,并且可将修改的重构画面发送到存储器17060(具体地,存储器17060的DPB)。例如,各种滤波方法可包括去块滤波、样本自适应偏移、自适应环路滤波和双边滤波。
存储在存储器17060的DPB中的重构画面可用作帧间预测器17070中的参考画面。存储器17060可存储关于当前画面中推导(或解码)运动信息的块的运动信息和/或关于已经重构的画面中的块的运动信息。所存储的运动信息可被传送至帧间预测器17070以用作关于空间邻近块的运动信息或关于时间邻近块的运动信息。存储器17060可存储当前画面中的重构块的重构样本并将重构样本传送至帧内预测器17080。
在本公开中,关于图15的编码器15000的滤波器15070、帧间预测器15090和帧内预测器15100描述的实施方式可分别以相同或对应的方式应用于解码器17000的滤波器17050、帧间预测器17070和帧内预测器17080。
可跳过上述预测、逆变换和逆量化过程中的至少一个。例如,对于应用了脉冲编码调制(PCM)的块,可跳过预测、逆变换和逆量化过程,并且解码的样本的值可用作重构图像的样本。
占用图解压缩(16003)
这是上述占用图压缩的逆处理。占用图解压缩是通过将占用图比特流解压缩来重构占用图的处理。
辅助补片信息解压缩(16004)
辅助补片信息可以通过执行上述辅助补片信息压缩的逆处理并且解码压缩的辅助补片信息比特流来重构。
几何重构(16005)
这是上述几何图像生成的逆处理。最初,使用重构的占用图、包括在辅助补片信息中的关于补片的2D位置/尺寸信息以及关于块和补片之间的映射的信息从几何图像提取补片。然后,基于所提取的补片的几何图像和包括在辅助补片信息中的关于补片的3D位置信息在3D空间中重构点云。当与补片内的点(u,v)对应的几何值为g(u,v),并且在3D空间的法向轴、切向轴和双切轴上补片的位置坐标为(δ0,s0,r0)时,映射到点(u,v)的位置在3D空间中的法向、切向和双切坐标δ(u,v)、s(u,v)和r(u,v)可表示如下。
δ(u,v)=δ0+g(u,v)
s(u,v)=s0+u
r(u,v)=r0+v
平滑(16006)
与上述编码处理中的平滑相同,平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的处理。
纹理重构(16007)
纹理重构是通过向构成平滑的点云的各个点指派颜色值来重构颜色点云的处理。这可通过基于上述几何重构处理中重构的几何图像和点云的映射信息向点云中与3D空间中的相同位置对应的点指派与2D空间中的几何图像中相同的位置处的纹理图像像素所对应的颜色值来执行。
颜色平滑(16008)
颜色平滑类似于上述几何平滑的处理。颜色平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的处理。颜色平滑可通过以下操作执行:
①使用K-D树等计算构成重构的点云的各个点的邻近点。可使用在上述几何平滑处理中计算的邻近点信息。
②确定各个点是否位于补片边界上。这些操作可基于在上述几何平滑处理中计算的边界信息来执行。
③检查存在于边界上的点的邻近点的颜色值的分布并且确定是否要执行平滑。例如,当亮度值的熵小于或等于阈值局部条目(存在许多相似的亮度值)时,可确定对应部分不是边缘部分,并且可执行平滑。作为平滑方法,点的颜色值可被替换为邻近点的颜色值的平均。
图18是示出根据本公开的实施方式的用于压缩和发送基于V-PCC的点云数据的发送装置的操作的流程图。
根据实施方式的发送装置可以对应于图1的发送装置、图4的编码处理、和图15的2D视频/图像编码器,或者执行其操作的一些/全部。发送装置的每个组件可以对应于软件、硬件、处理器和/或其组合。
发送终端使用V-PCC压缩和传输点云数据的操作处理可如图所示执行。
根据实施方式的点云数据发送装置可被称为发送装置或发送系统。
关于补片生成器18000,基于输入的点云数据生成用于点云的2D图像映射的补片。作为补片生成的结果,生成补片信息和/或辅助补片信息。生成的补片信息和/或辅助补片信息可以用于几何图像生成、纹理图像生成、平滑和用于平滑的几何重构的处理中。
补片打包器18001执行将由补片生成器18000生成的补片映射到2D图像中的补片打包处理。例如,可以打包一个或更多个补片。作为补片打包的结果,可以生成占用图。占用图可用于几何图像生成、几何图像填充、纹理图像填充和/或用于平滑的几何重构的处理中。
几何图像生成器18002基于点云数据、补片信息(或辅助补片信息)和/或占用图生成几何图像。生成的几何图像由编码预处理器18003预处理,然后由视频编码器18006编码成一个比特流。
编码预处理器18003可以包括图像填充过程。换句话说,生成的几何图像和生成的纹理图像中的一些空间可以被无意义的数据填充。编码预处理器18003还可以包括用于生成的纹理图像或已经对其执行图像填充的纹理图像的组扩张过程。
几何重构器18010基于由视频编码器18006编码的几何比特流、辅助补片信息和/或占用图来重构3D几何图像。
平滑器18009基于辅助补片信息对由几何重构器18010重构并输出的3D几何图像进行平滑,并将平滑的3D几何图像输出到纹理图像生成器18004。
纹理图像生成器18004可以基于平滑的3D几何、点云数据、补片(或打包的补片)、补片信息(或辅助补片信息)和/或占用图来生成纹理图像。生成的纹理图像可以由编码预处理器18003进行预处理,然后由视频编码器18006编码成一个视频比特流。
元数据编码器18005可以将辅助补片信息编码成一个元数据比特流。
视频编码器18006可以将从编码预处理器18003输出的几何图像和纹理图像编码成相应的视频比特流,并且可以将占用图编码成一个视频比特流。根据实施方式,视频编码器18006通过应用图15的2D视频/图像编码器对每个输入图像进行编码。
复用器18007将从视频编码器18006输出的几何的视频比特流、纹理图像的视频比特流、占用图的视频比特流以及从元数据编码器18005输出的元数据的比特流(包括辅助补片信息)复用到一个比特流中。
发送器18008将从复用器18007输出的比特流发送到接收侧。另选地,还可以在复用器18007和发送器18008之间设置文件/片段封装器,并且可以将从复用器18007输出的比特流封装成文件和/或片段的形式并输出到发送器18008。
图18的补片生成器18000、补片打包器18001、几何图像生成器18002、纹理图像生成器18004、元数据编码器18005和平滑器18009可以分别对应于补片生成14000、补片打包14001、几何图像生成14002、纹理图像生成14003、辅助补片信息压缩14005和平滑14004。图18的编码预处理器18003可以包括图4的图像填充器14006和14007以及组扩张器14008,并且图18的视频编码器18006可以包括图4的视频压缩器14009、14010和14011和/或熵压缩器14012。对于没有参照图18描述的部分,参照图4至图15的描述。上述块可以省略或可以由具有相似或相同功能的块代替。此外,图18所示的每个块可以用作处理器、软件或硬件中的至少一种。另选地,可以将生成的几何、纹理图像、占用图的视频比特流和辅助补片信息的元数据比特流形成为文件中的一个或更多个轨道数据,或者封装成片段,并通过发送器发送到接收侧。
操作接收装置的过程
图19是示出根据实施方式的用于接收和恢复基于V-PCC的点云数据的接收装置的操作的流程图。
根据实施方式的接收装置可以对应于图1的接收装置、图16的解码处理和图17的2D视频/图像编码器,或者执行其操作的一些/全部。接收装置的每个组件可以对应于软件、硬件、处理器和/或其组合。
接收终端使用V-PCC接收和重构点云数据的操作可以如图中所示地执行。V-PCC接收终端的操作可以遵循图18的V-PCC发送终端的操作的逆处理。
根据实施方式的点云数据接收装置可以被称为接收装置、接收系统等。
接收器接收点云的比特流(即,压缩的比特流),解复用器19000从接收到的点云比特流中解复用纹理图像的比特流、几何图像的比特流、和占用图图像的比特流以及元数据(即,辅助补片信息)的比特流。纹理图像、几何图像和占用图图像的解复用的比特流被输出到视频解码器19001,并且元数据的比特流被输出到元数据解码器19002。
根据实施方式,当图18的发送装置设置有文件/片段封装器时,文件/片段解封装器设置在图19的接收装置的接收器和解复用器19000之间。在这种情况下,发送装置将点云比特流以文件和/或片段的形式进行封装和发送,并且接收装置接收并解封装包含点云比特流的文件和/或片段。
视频解码器19001将几何图像的比特流、纹理图像的比特流和占用图图像的比特流分别解码为几何图像、纹理图像和占用图图像。根据实施方式,视频解码器19001通过应用图17的2D视频/图像解码器来对每个输入的比特流执行解码操作。元数据解码器19002将元数据的比特流解码为辅助补片信息,并将该信息输出到几何重构器19003。
几何重构器19003基于从视频解码器19001和元数据解码器19002输出的几何图像、占用图和/或辅助补片信息来重构3D几何。
平滑器19004平滑由几何重构器19003重构的3D几何。
纹理重构器19005使用从视频解码器19001输出的纹理图像和/或平滑的3D几何来重构纹理。也就是说,纹理重构器19005通过使用纹理图像将颜色值指派给平滑的3D几何来重构颜色点云图像/画面。此后,为了提高客观/主观视觉质量,可以通过颜色平滑器19006对颜色点云图像/画面执行附加的颜色平滑处理。在点云渲染器19007中的渲染处理后,将通过上述操作推导的修改的点云图像/画面显示给用户。在一些情况下,可以省略颜色平滑处理。
上述块可以被省略或者可以被具有相似或相同功能的块代替。此外,图19所示的每个块可以用作处理器、软件和硬件中的至少一种。
图20示出根据实施方式的用于点云数据的基于V-PCC的存储和流传输的示例性架构。
图20的系统的一部分/全部可以包括图1的发送装置和接收装置、图4的编码处理、图15的2D视频/图像编码器、图16的解码处理、图18的发送装置和/或图19的接收装置中的一些或全部。图中的每个组件可以对应于软件、硬件、处理器和/或其组合。
图20示出用于存储或流传输根据基于视频的点云压缩(V-PCC)压缩的点云数据的总体架构。存储和流传输点云数据的处理可包括获取处理、编码处理、传输处理、解码处理、渲染处理和/或反馈处理。
实施方式提出了一种有效地提供点云媒体/内容/数据的方法。
为了有效地提供点云媒体/内容/数据,点云获取器20000可获取点云视频。例如,一个或更多个相机可通过捕获、编排或生成点云来获取点云数据。通过该获取处理,可获取包括各个点的3D位置(可由x、y和z位置值等表示)(以下称为几何)和各个点的属性(颜色、反射率、透明度等)的点云视频。例如,可生成包含点云视频的Polygon文件格式(PLY)(或斯坦福三角形格式)文件等。对于具有多个帧的点云数据,可获取一个或更多个文件。在此处理中,可生成点云相关元数据(例如,与捕获有关的元数据等)。
对于捕获的点云视频可能需要用于改进内容的质量的后处理。在视频捕获处理中,可在相机设备所提供的范围内调节最大/最小深度。即使在调节之后,仍可能存在不想要区域的点数据。因此,可执行去除不想要区域(例如,背景)或识别连接的空间并填充空间孔洞的后处理。另外,从共享空间坐标系的相机提取的点云可通过基于通过校准处理获取的各个相机的位置坐标将各个点变换到全局坐标系的处理被整合为一条内容。由此,可获取具有高密度点的点云视频。
点云预处理器20001可生成点云视频的一个或更多个画面/帧。一般地,画面/帧可以是以特定时间间隔表示一个图像的单元。此外,在将构成点云视频的点划分成一个或更多个补片并且将其映射到2D平面时,点云预处理器20001可以生成具有值0或1的占用图画面/帧,其是指示数据在2D平面中的对应位置处的存在与否的二值图。这里,补片是构成点云视频的点的集合,其中,属于同一补片的点在3D空间中彼此相邻并且在映射到2D图像时被映射到6面边界框的平坦面当中的相同面。此外,点云预处理器20001可生成逐补片表示关于构成点云视频的各个点的位置(几何)的信息的深度图形式的几何画面/帧。点云预处理器20001也可生成逐补片表示关于构成点云视频的各个点的颜色信息的纹理画面/帧。在此处理中,可生成从各个补片重构点云所需的元数据。元数据可包含关于补片的信息(辅助信息或辅助补片信息),例如各个补片在2D/3D空间中的位置和大小。这些画面/帧可按时间顺序连续地生成以构造视频流或元数据流。
点云视频编码器20002可对与点云视频有关的一个或更多个视频流进行编码。一个视频可包括多个帧,并且一个帧可对应于静止图像/画面。在本公开中,点云视频可包括点云图像/帧/画面,并且术语“点云视频”可与点云视频/帧/画面互换使用。点云视频编码器20002可执行基于视频的点云压缩(V-PCC)处理。为了压缩和编码效率,点云视频编码器20002可执行诸如预测、变换、量化和熵编码的一系列处理。编码的数据(编码的视频/图像信息)可按比特流的形式输出。基于V-PCC处理,如下所述,点云视频编码器20002可通过将点云视频分成几何视频、属性视频、占用图视频和元数据(例如,关于补片的信息)来对点云视频进行编码。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。作为辅助信息的补片数据可包括补片相关信息。属性视频/图像可包括纹理视频/图像。
点云图像编码器20003可对与点云视频有关的一个或更多个图像进行编码。点云图像编码器20003可执行基于视频的点云压缩(V-PCC)处理。为了压缩和编码效率,点云图像编码器20003可执行诸如预测、变换、量化和熵编码的一系列处理。编码的图像可按比特流的形式输出。基于V-PCC处理,如下所述,点云图像编码器20003可通过将点云图像分成几何图像、属性图像、占用图图像和元数据(例如,关于补片的信息)来对点云图像进行编码。
根据实施方式,点云视频编码器20002、点云图像编码器20003、点云视频解码器20006和点云图像解码器20008可以由如上所述的一个编码器/解码器执行,并且可以沿着单独的路径执行,如图所示。
在文件/片段封装器20004中,可将编码的点云数据和/或点云相关元数据封装为文件或片段以用于流传输。这里,点云相关元数据可接收自元数据处理器(未示出)等。元数据处理器可包括在点云视频/图像编码器20002/20003中,或者可被配置成单独的组件/模块。文件/片段封装器20004可按诸如ISOBMFF的文件格式或按DASH片段等形式封装对应视频/图像/元数据。根据实施方式,文件/片段封装器20004可包括文件格式的点云元数据。点云相关元数据可包括在例如ISOBMFF文件格式的各种级别的盒中,或作为文件内的单独轨道中的数据。根据实施方式,文件/片段封装器20004可将点云相关元数据封装成文件。
根据实施方式的文件/片段封装器20004可以将一个比特流或单独的比特流存储到文件中的一个或更多个轨道中,并且还可以封装用于该操作的信令信息。此外,包括在比特流中的阿特拉斯(atlas)流(或补片流)可以被存储为文件中的轨道,并且可以存储相关信令信息。此外,比特流中存在的SEI消息可以存储在文件的轨道中,并且可以存储相关信令信息。
发送处理器(未示出)可根据文件格式来执行封装的点云数据的传输处理。发送处理器可包括在发送器(未示出)中,或者可被配置成单独的组件/模块。发送处理器可根据传输协议处理点云数据。传输处理可包括经由广播网络传送的处理和通过宽带传送的处理。根据实施方式,发送处理器可从元数据处理器接收点云相关元数据以及点云数据,并且执行点云视频数据的传输处理。
发送器可经由数字存储介质或网络将点云比特流或包括比特流的文件/片段发送到接收装置的接收器(未示出)。为了传输,可执行根据任何传输协议的处理。为传输而处理的数据可经由广播网络和/或通过宽带传送。数据可按照按需方式传送至接收侧。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。发送器可包括用于生成预定文件格式的媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。接收器可提取比特流并将提取的比特流发送到解码器。
接收器可接收根据本公开的点云数据发送装置所发送的点云数据。根据传输信道,接收器可经由广播网络或通过宽带接收点云数据。另选地,可通过数字存储介质接收点云数据。接收器可包括将所接收的数据解码并根据用户的视口渲染数据的处理。
接收处理器(未示出)可根据传输协议对所接收的点云视频数据执行处理。接收处理器可包括在接收器中,或者可被配置成单独的组件/模块。接收处理器可相反地执行上述发送处理器的处理,以与在发送侧执行的传输处理对应。接收处理器可将获取的点云视频传送至文件/片段解封装器20005,并将获取的点云相关元数据传送至元数据解析器。
文件/片段解封装器20005可将以文件的形式从接收处理器接收的点云数据解封装。文件/片段解封装器20005可根据ISOBMFF等对文件进行解封装,并且可获取点云比特流或点云相关元数据(或单独的元数据比特流)。所获取的点云比特流可被传送至点云视频解码器20006和点云图像解码器20008,并且所获取的点云视频相关元数据(元数据比特流)可被传送至元数据处理器(未示出)。点云比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云视频解码器20006中,或者可被配置成单独的组件/模块。文件/片段解封装器20005所获取的点云视频相关元数据可采取文件格式中的盒或轨道的形式。必要时,文件/片段解封装器20005可从元数据处理器接收解封装所需的元数据。点云相关元数据可被传送至点云视频解码器20006和/或点云图像解码器20008并在点云解码处理中使用,或者可被传送至渲染器20009并在点云渲染处理中使用。
点云视频解码器20006可接收比特流并通过执行与点云视频编码器20002的操作对应的操作来对视频/图像进行解码。在这种情况下,如下所述,点云视频解码器20006可通过将点云视频分成几何视频、属性视频、占用图视频和辅助补片信息来将点云视频解码。几何视频可包括几何图像,属性视频可包括属性图像,占用图视频可包括占用图图像。辅助信息可包括辅助补片信息。属性视频/图像可包括纹理视频/图像。
点云图像解码器20008可以接收比特流并且执行对应于点云图像编码器20003的操作的逆处理。在这种情况下,点云图像解码器20008可以将点云图像划分成几何图像、属性图像、占用图图像和元数据(其是例如辅助补片信息),以对其进行解码。
3D几何可基于解码的几何视频/图像、占用图和辅助补片信息来重构,然后可经受平滑处理。可通过基于纹理视频/图像向平滑的3D几何指派颜色值来重构颜色点云图像/画面。渲染器20009可渲染重构的几何和颜色点云图像/画面。渲染的视频/图像可通过显示器显示。渲染结果的全部或部分可通过VR/AR显示器或典型显示器显示给用户。
传感器/跟踪器(感测/跟踪)20007从用户或接收侧获取取向信息和/或用户视口信息并将取向信息和/或用户视口信息传送至接收器和/或发送器。取向信息可表示关于用户头部的位置、角度、移动等的信息,或者表示关于用户正通过其观看视频/图像的装置的位置、角度、移动等的信息。基于该信息,可计算关于3D空间中用户当前观看的区域的信息(即,视口信息)。
视口信息可以是关于3D空间中用户当前通过装置或HMD观看的区域的信息。诸如显示器的装置可基于取向信息、装置所支持的垂直或水平FOV等提取视口区域。可在接收侧提取或计算取向或视口信息。在接收侧分析的取向或视口信息可在反馈信道上发送至发送侧。
基于传感器/跟踪器20007获取的取向信息和/或指示用户当前观看的区域的视口信息,接收器可有效地从文件仅提取或解码特定区域(即,取向信息和/或视口信息所指示的区域)的媒体数据。另外,基于传感器/跟踪器20007所获取的取向信息和/或视口信息,发送器可有效地仅对特定区域(即,取向信息和/或视口信息所指示的区域)的媒体数据进行编码,或者生成并发送其文件。
渲染器20009可在3D空间中渲染解码的点云数据。渲染的视频/图像可通过显示器显示。用户可通过VR/AR显示器或典型显示器来观看渲染结果的全部或部分。
反馈处理可包括将可在渲染/显示处理中获取的各种反馈信息传送至发送侧或接收侧的解码器。通过反馈处理,可在消费点云数据时提供交互性。根据实施方式,头部取向信息、指示用户当前观看的区域的视口信息等可在反馈处理中被传送至发送侧。根据实施方式,用户可与在VR/AR/MR/自主驾驶环境中实现的内容交互。在这种情况下,与交互有关的信息可在反馈处理中被传送至发送侧或服务提供商。根据实施方式,可跳过反馈处理。
根据实施方式,上述反馈信息可不仅被发送至发送侧,而且在接收侧处消费。也就是说,接收侧的解封装处理、解码和渲染处理可基于上述反馈信息来执行。例如,可基于取向信息和/或视口信息优先解封装、解码和渲染关于用户当前观看的区域的点云数据。
图21是根据实施方式的用于存储和发送点云数据的装置的示例性框图。
图21示出根据实施方式的点云系统。图21的系统的一部分/全部可以包括图1的发送装置和接收装置、图4的编码处理、图15的2D视频/图像编码器、图16的解码处理、图18的发送装置和/或图19的接收装置中的一些或全部。此外,它可以被包括或对应于图20的系统的一部分/全部。
根据实施方式的点云数据发送装置可如图所示配置。发送装置的各个元件可以是模块/单元/组件/硬件/软件/处理器。
点云的几何、属性、占用图、辅助数据(辅助信息)和网格数据可各自被配置成单独的流或存储在文件中的不同轨道中。此外,它们可被包括在单独的片段中。
点云获取器21000获取点云。例如,一个或更多个相机可通过捕获、编排或生成点云来获取点云数据。通过该获取处理,可获取包括各个点的3D位置(可由x、y和z位置值等表示)(以下称为几何)和各个点的属性(颜色、反射率、透明度等)的点云数据。例如,可生成包括点云数据的Polygon文件格式(PLY)(或斯坦福三角形格式)文件等。对于具有多个帧的点云数据,可获取一个或更多个文件。在此处理中,可生成点云相关元数据(例如,与捕获有关的元数据等)。补片生成器21001从点云数据生成补片。补片生成器21001将点云数据或点云视频生成为一个或更多个画面/帧。画面/帧通常可表示以特定时间间隔表示一个图像的单元。当构成点云视频的点被分成一个或更多个补片(构成点云视频的点的集合,其中,属于同一补片的点在3D空间中彼此相邻并且在映射到2D图像时在6面边界框的平坦面之间在相同方向上映射)并映射到2D平面时,可生成二值图的占用图画面/帧,其以0或1指示2D平面中的对应位置处是否存在数据。另外,可生成逐补片表示关于构成点云视频的各个点的位置(几何)的信息的深度图形式的几何画面/帧。可生成逐补片表示关于构成点云视频的各个点的颜色信息的纹理画面/帧。在此处理中,可生成从各个补片重构点云所需的元数据。元数据可包括关于补片的信息,例如各个补片在2D/3D空间中的位置和大小。这些画面/帧可按时间顺序连续地生成以构造视频流或元数据流。
另外,补片可用于2D图像映射。例如,点云数据可被投影到立方体的各个面上。在补片生成之后,可基于所生成的补片来生成几何图像、一个或更多个属性图像、占用图、辅助数据和/或网格数据。
几何图像生成、属性图像生成、占用图生成、辅助数据生成和/或网格数据生成由点云预处理器20001或控制器(未示出)执行。点云预处理器20001可以包括补片生成器21001、几何图像生成器21002、属性图像生成器21003、占用图生成器21004、辅助数据生成器21005和网格数据生成器21006。
几何图像生成器21002基于补片生成的结果来生成几何图像。几何表示3D空间中的点。使用占用图来生成几何图像,其包括与补片的2D图像打包有关的信息、辅助数据(包括补片数据)和/或基于补片的网格数据。几何图像与诸如在补片生成之后生成的补片的深度(例如,近、远)的信息有关。
属性图像生成器21003生成属性图像。例如,属性可表示纹理。纹理可以是与各个点匹配的颜色值。根据实施方式,可生成包括纹理的多个属性(例如,颜色和反射率)(N个属性)的图像。多个属性可包括材料信息和反射率。根据实施方式,属性可另外包括指示颜色的信息,其即使对于相同的纹理也可根据视角和光而变化。
占用图生成器21004从补片生成占用图。占用图包括指示像素(例如,对应几何或属性图像)中是否存在数据的信息。
辅助数据生成器21005生成包括关于补片的信息的辅助数据(或辅助信息)。也就是说,辅助数据表示关于点云对象的补片的元数据。例如,其可表示诸如补片的法向量的信息。具体地,辅助数据可包括从补片重构点云所需的信息(例如,关于补片在2D/3D空间中的位置、大小等的信息以及投影(正常)平面标识信息、补片映射信息等)。
网格数据生成器21006从补片生成网格数据。网格表示邻近点之间的连接。例如,其可表示三角形形状的数据。例如,网格数据是指点之间的连接性。
点云预处理器20001或控制器生成与补片生成、几何图像生成、属性图像生成、占用图生成、辅助数据生成和网格数据生成有关的元数据。
点云发送装置响应于点云预处理器20001所生成的结果而执行视频编码和/或图像编码。点云发送装置可生成点云图像数据以及点云视频数据。根据实施方式,点云数据可仅具有视频数据,仅具有图像数据,和/或具有视频数据和图像数据二者。
视频编码器21007执行几何视频压缩、属性视频压缩、占用图视频压缩、辅助数据压缩和/或网格数据压缩。视频编码器21007生成包含编码的视频数据的视频流。
具体地,在几何视频压缩中,点云几何视频数据被编码。在属性视频压缩中,点云的属性视频数据被编码。在辅助数据压缩中,与点云视频数据关联的辅助数据被编码。在网格数据压缩中,点云视频数据的网格数据被编码。点云视频编码器的各个操作可并行执行。
图像编码器21008执行几何图像压缩、属性图像压缩、占用图图像压缩、辅助数据压缩和/或网格数据压缩。图像编码器生成包含编码的图像数据的图像。
具体地,在几何图像压缩中,点云几何图像数据被编码。在属性图像压缩中,点云的属性图像数据被编码。在辅助数据压缩中,与点云图像数据关联的辅助数据被编码。在网格数据压缩中,与点云图像数据关联的网格数据被编码。点云图像编码器的各个操作可并行执行。
视频编码器21007和/或图像编码器21008可从点云预处理器20001接收元数据。视频编码器21007和/或图像编码器21008可基于元数据来执行各个编码处理。
文件/片段封装器21009以文件和/或片段的形式封装视频流和/或图像。文件/片段封装器21009执行视频轨道封装、元数据轨道封装和/或图像封装。
在视频轨道封装中,一个或更多个视频流可被封装到一个或更多个轨道。
在元数据轨道封装中,与视频流和/或图像有关的元数据可被封装在一个或更多个轨道中。元数据包括与点云数据的内容有关的数据。例如,其可包括初始观看取向元数据。根据实施方式,元数据可被封装到元数据轨道,或者可被一起封装在视频轨道或图像轨道中。
在图像封装中,一个或更多个图像可被封装到一个或更多个轨道或项目中。
例如,根据实施方式,当四个视频流和两个图像被输入到封装器时,四个视频流和两个图像可被封装在一个文件中。
文件/片段封装器21009可从点云预处理器20001接收元数据。文件/片段封装器21009可基于元数据来执行封装。
由文件/片段封装器21009生成的文件和/或片段由点云发送装置或发送器发送。例如,片段可根据基于DASH的协议来传送。
传送器可经由数字存储介质或网络将点云比特流或包括比特流的文件/片段发送到接收装置的接收器。为了传输,可执行根据任何传输协议的处理。为传输已处理的数据可经由广播网络和/或通过宽带传送。数据可按照按需方式传送至接收侧。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。
根据实施方式的文件/片段封装器21009可以将一个比特流或单独的比特流划分并存储到文件中的一个或更多个轨道中,并且可以封装用于其的信令信息。此外,包括在比特流中的补片(或阿特拉斯)流可以被存储为文件中的轨道,并且可以存储相关信令信息。此外,比特流中存在的SEI消息可以存储在文件的轨道中,并且可以存储相关信令信息。
传送器可包括用于生成预定文件格式的媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。传送器从接收器接收取向信息和/或视口信息。传送器可将所获取的取向信息和/或视口信息(或用户所选择的信息)传送至点云预处理器20001、视频编码器21007、图像编码器21008、文件/片段封装器21009和/或点云编码器。基于取向信息和/或视口信息,点云编码器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行编码。基于取向信息和/或视口信息,文件/片段封装器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行封装。基于取向信息和/或视口信息,传送器可传送所有点云数据或取向信息和/或视口信息所指示的点云数据。
例如,点云预处理器20001可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。视频编码器21007和/或图像编码器21008可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。文件/片段封装器21009可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。发送器可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。
图22是根据实施方式的点云数据接收装置的示例性框图。
图22示出根据实施方式的点云系统。图22的系统的一部分/全部可以包括图1的发送装置和接收装置、图4的编码处理、图15的2D视频/图像编码器、图16的解码处理、图18的发送装置和/或图19的接收装置中的一些或全部。此外,它可以被包括或对应于图20和图21的系统的一部分/全部。
接收装置的各个组件可以是模块/单元/组件/硬件/软件/处理器。传送客户端可接收包括根据实施方式的点云数据发送装置所发送的比特流的点云数据、点云比特流或文件/片段。根据用于传输的信道,接收器可经由广播网络或通过宽带接收点云数据。另选地,可通过数字存储介质接收点云数据。接收器可包括将所接收的数据解码并根据用户视口渲染所接收的数据的处理。传送客户端(接收处理器)22006可根据传输协议对所接收的点云数据执行处理。接收处理器可包括在接收器中,或者被配置成单独的组件/模块。接收处理器可相反地执行上述发送处理器的处理,以与发送侧执行的传输处理对应。接收处理器可将所获取的点云数据传送至文件/片段解封装器22000并将所获取的点云相关元数据传送至元数据处理器(未示出)。
传感器/跟踪器22005获取取向信息和/或视口信息。传感器/跟踪器22005可将所获取的取向信息和/或视口信息传送至传送客户端22006、文件/片段解封装器22000、点云解码器22001和22002、以及点云处理器22003。
传送客户端22006可基于取向信息和/或视口信息来接收所有点云数据或取向信息和/或视口信息所指示的点云数据。文件/片段解封装器22000可基于取向信息和/或视口信息将所有点云数据或取向信息和/或视口信息所指示的点云数据解封装。点云解码器(视频解码器22001和/或图像解码器22002)可基于取向信息和/或视口信息将所有点云数据或取向信息和/或视口信息所指示的点云数据解码。点云处理器22003可基于取向信息和/或视口信息来处理所有点云数据或取向信息和/或视口信息所指示的点云数据。
文件/片段解封装器22000执行视频轨道解封装、元数据轨道解封装和/或图像解封装。文件/片段解封装器22000可将从接收处理器以文件的形式接收的点云数据解封装。文件/片段解封装器22000可根据ISOBMFF等对文件或片段进行解封装,以获取点云比特流或点云相关元数据(或单独的元数据比特流)。所获取的点云比特流可被传送至点云解码器22001和22002,并且所获取的点云相关元数据(或元数据比特流)可被传送至元数据处理器(未示出)。点云比特流可包括元数据(元数据比特流)。元数据处理器可包括在点云视频解码器中,或者可被配置成单独的组件/模块。文件/片段解封装器22000所获取的点云相关元数据可采取文件格式中的盒或轨道的形式。必要时,文件/片段解封装器22000可从元数据处理器接收解封装所需的元数据。点云相关元数据可被传送至点云解码器22001和22002并在点云解码处理中使用,或者可被传送至渲染器22004并在点云渲染处理中使用。文件/片段解封装器22000可生成与点云数据有关的元数据。
在由文件/片段解封装器22000进行的视频轨道解封装中,包含在文件和/或片段中的视频轨道被解封装。包括几何视频、属性视频、占用图、辅助数据和/或网格数据的视频流被解封装。
在由文件/片段解封装器22000进行的元数据轨道解封装中,包括与点云数据和/或辅助数据有关的元数据的比特流被解封装。
在由文件/片段解封装器22000进行的图像解封装中,包括几何图像、属性图像、占用图、辅助数据和/或网格数据的图像被解封装。
根据实施方式的文件/片段解封装器22000可以将一个比特流或单独的比特流存储到文件中的一个或更多个轨道中,并且还可以解封装用于其的信令信息。此外,包括在比特流中的或阿特拉斯(补片)流可以基于文件中的轨道而被解封装,并且可以解析相关信令信息。此外,比特流中存在的SEI消息可以基于文件中的轨道而被解封装,并且还可以获取相关信令信息。
视频解码器22001执行几何视频解压缩、属性视频解压缩、占用图解压缩、辅助数据解压缩和/或网格数据解压缩。视频解码器22001在与根据实施方式的点云发送装置的视频编码器所执行的处理对应的处理中对几何视频、属性视频、辅助数据和/或网格数据进行解码。
图像解码器22002执行几何图像解压缩、属性图像解压缩、占用图解压缩、辅助数据解压缩和/或网格数据解压缩。图像解码器22002在与根据实施方式的点云发送装置的图像编码器所执行的处理对应的处理中对几何图像、属性图像、辅助数据和/或网格数据进行解码。
根据实施方式的视频解码器22001和视频解码器22002可以由如上所述的一个视频/图像解码器处理,并且可以沿着单独的路径执行,如图所示。
视频解码器22001和/或图像解码器22002可生成与视频数据和/或图像数据有关的元数据。
在点云处理器22003中,执行几何重构和/或属性重构。
在几何重构中,基于占用图、辅助数据和/或网格数据从解码的视频数据和/或解码的图像数据重构几何视频和/或几何图像。
在属性重构中,基于占用图、辅助数据和/或网格数据从解码的属性视频和/或解码的属性图像重构属性视频和/或属性图像。根据实施方式,例如,属性可以是纹理。根据实施方式,属性可表示多条属性信息。当存在多个属性时,根据实施方式的点云处理器22003执行多个属性重构。
点云处理器22003可从视频解码器22001、图像解码器22002和/或文件/片段解封装器22000接收元数据,并且基于元数据来处理点云。
点云渲染器22004渲染重构的点云。点云渲染器22004可从视频解码器22001、图像解码器22002和/或文件/片段解封装器22000接收元数据,并且基于元数据来渲染点云。
显示器将渲染结果显示在实际显示装置上。
根据根据实施方式的方法/装置,如图20至图22所示,发送侧可以将点云数据编码成比特流,将比特流封装成文件和/或片段的形式并将其发送。接收侧可以将文件和/或片段解封装成包含点云的比特流,并且可以将比特流解码成点云数据。例如,根据实施方式的点云数据装置可以基于文件封装点云数据。文件可以包括包含点云的参数的V-PCC轨道、包含几何的几何轨道、包含属性的属性轨道和包含占用图的占用轨道。
另外,根据实施方式的点云数据接收装置基于文件对点云数据进行解封装。文件可以包括包含点云的参数的V-PCC轨道、包含几何的几何轨道、包含属性的属性轨道和包含占用图的占用轨道。
上述封装操作可以由图20的文件/片段封装器20004、图21的文件/片段封装器21009执行。上述解封装操作可由图20的文件/片段解封装器20005或图22的文件/片段解封装器22000执行。
图23示出可结合根据实施方式的点云数据发送/接收方法/装置操作的示例性结构。
在根据实施方式的结构中,服务器23600、机器人23100、自驾驶车辆23200、XR装置23300、智能电话23400、家用电器23500和/或头戴式显示器(HMD)23700中的至少一个连接到云网络23000。这里,机器人23100、自驾驶车辆23200、XR装置23300、智能电话23400或家用电器23500可被称为装置。另外,XR装置23300可对应于根据实施方式的点云数据(PCC)装置,或者可在操作上连接到PCC装置。
云网络23000可表示构成云计算基础设施的一部分或存在于云计算基础设施中的网络。这里,云网络23000可使用3G网络、4G或长期演进(LTE)网络或5G网络来配置。
服务器23600可经由云网络23000连接到机器人23100、自驾驶车辆23200、XR装置23300、智能电话23400、家用电器23500和/或HMD 23700中的至少一个,并且可辅助所连接的装置23100至23700的至少一部分处理。
HMD 23700表示根据实施方式的XR装置和/或PCC装置的实现类型之一。根据实施方式的HMD型装置包括通信单元、控制单元、存储器、I/O单元、传感器单元和电源单元。
以下,将描述应用了上述技术的装置23100至23500的各种实施方式。图23所示的装置23100至23500可在操作上连接/联接到根据上述实施方式的点云数据发送和接收装置。
<PCC+XR>
XR/PCC装置23300可采用PCC技术和/或XR(AR+VR)技术,并且可被实现为HMD、设置在车辆中的平视显示器(HUD)、电视、移动电话、智能电话、计算机、可穿戴装置、家用电器、数字标牌、车辆、固定机器人或移动机器人。
XR/PCC装置23300可分析通过各种传感器或从外部装置获取的3D点云数据或图像数据并且生成关于3D点的位置数据和属性数据。由此,XR/PCC装置23300可获取关于周围空间或真实对象的信息,并且渲染和输出XR对象。例如,XR/PCC装置23300可使包括关于所识别的对象的辅助信息的XR对象与所识别的对象匹配并输出匹配的XR对象。
<PCC+自驾驶+XR>
自驾驶车辆23200可通过应用PCC技术和XR技术被实现为移动机器人、车辆、无人驾驶飞行器等。
应用了XR/PCC技术的自驾驶车辆23200可表示设置有用于提供XR图像的手段的自主车辆,或者作为XR图像中的控制/交互目标的自主车辆。具体地,作为XR图像中的控制/交互目标的自驾驶车辆23200可与XR装置23300相区分并且可操作上与之连接。
具有用于提供XR/PCC图像的手段的自驾驶车辆23200可从包括相机的传感器获取传感器信息,并且基于所获取的传感器信息来输出所生成的XR/PCC图像。例如,自驾驶车辆可具有HUD并向其输出XR/PCC图像以向乘客提供与真实对象或存在于画面上的对象对应的XR/PCC对象。
在这种情况下,当XR/PCC对象被输出到HUD时,XR/PCC对象的至少一部分可被输出以与乘客眼睛所指向的真实对象交叠。另一方面,当XR/PCC对象输出在自驾驶车辆内部提供的显示器上时,XR/PCC对象的至少一部分可被输出以与画面上的对象交叠。例如,自驾驶车辆可输出与诸如道路、另一车辆、交通灯、交通标志、两轮车、行人和建筑物的对象对应的XR/PCC对象。
根据实施方式的虚拟现实(VR)技术、增强现实(AR)技术、混合现实(MR)技术和/或点云压缩(PCC)技术适用于各种装置。
换句话说,VR技术是仅提供真实世界对象、背景等作为CG图像的显示器技术。另一方面,AR技术是指显示在真实对象图像上虚拟创建的CG图像的技术。MR技术与上述AR技术的相似之处在于,要显示的虚拟对象与真实世界混合并组合。然而,MR技术不同于AR技术,AR技术在真实对象与作为CG图像创建的虚拟对象之间进行清楚的区分并且使用虚拟对象作为真实对象的补充对象,而MR技术将虚拟对象当作具有与真实对象相同特性的对象。更具体地,MR技术应用的示例是全息服务。
最近,VR、AR和MR技术通常被称为扩展现实(XR)技术,而非彼此清楚地区分。因此,本公开的实施方式适用于所有VR、AR、MR和XR技术。对于这些技术,可应用基于PCC、V-PCC和G-PCC技术的编码/解码。
根据实施方式的PCC方法/装置可应用于提供自驾驶服务的自驾驶车辆23200。
提供自驾驶服务的自驾驶车辆23200连接到PCC装置以进行有线/无线通信。
当根据实施方式的点云数据压缩发送和接收装置(PCC装置)连接到自驾驶车辆23200以进行有线/无线通信时,装置可接收并处理与可与自驾驶服务一起提供的AR/VR/PCC服务有关的内容数据并且将处理的内容数据发送到自驾驶车辆23200。在点云数据发送和接收装置被安装在车辆上的情况下,点云发送和接收装置可根据通过用户接口装置输入的用户输入信号来接收并处理与AR/VR/PCC服务有关的内容数据并且将处理的内容数据提供给用户。根据实施方式的自驾驶车辆23200或用户接口装置可接收用户输入信号。根据实施方式的用户输入信号可包括指示自驾驶服务的信号。
如上所述,图1、图4、图18、图20或图21的基于V-PCC的点云视频编码器将3D点云数据(或内容)投影到2D空间中以生成补片。通过将数据划分为表示位置信息的几何图像(称为几何帧或几何补片帧)和表示颜色信息的纹理图像(称为属性帧或属性补片帧)来在2D空间中生成补片。几何图像和纹理图像针对每一帧进行视频压缩,并输出几何图像的视频比特流(称为几何比特流)和纹理图像的视频比特流(称为属性比特流)。此外,包括关于每个补片的投影平面信息和补片大小信息(这些是在接收侧解码2D补片所需的)的辅助补片信息(也称为补片信息或元数据)也被视频压缩并且输出辅助补片信息的比特流。此外,将每个像素的点的存在/不存在指示为0或1的占用图根据它是处于无损模式还是有损模式而被熵压缩或视频压缩,并且输出占用图的视频比特流(或称为占用图比特流)。将压缩的几何比特流、压缩的属性比特流、压缩的辅助补片信息比特流和压缩的占用图比特流复用成V-PCC比特流的结构。
根据实施方式,V-PCC比特流可以按原样发送到接收侧,或者可以由图1、图18、图20或图21的文件/片段封装器以文件/片段的形式封装,并且发送到接收装置或存储在数字存储介质(例如,USB、SD、CD、DVD、蓝光、HDD、SSD等)中。根据本公开的实施方式,文件为文件格式ISOBMFF。
根据实施方式,V-PCC比特流可以通过文件中的多个轨道发送,或者可以通过单个轨道发送。稍后将描述细节。
在本公开中,点云数据(即,V-PCC数据)表示由点云帧的序列组成的点云的体积编码。在点云序列(其是点云帧的序列)中,每个点云帧包括点的集合。每个点可以具有3D位置(即,几何信息)以及诸如颜色、反射率、表面法线等的多个属性。也就是说,每个点云帧表示在特定的时间实例处由3D点的笛卡尔坐标(x、y、z)(即,位置)和零个或更多个属性指定的3D点的集合。
如本文所用,术语基于视频的点云压缩(V-PCC)与基于视觉体积视频的编码(V3C)相同。根据实施方式,术语V-PCC和V3C可以具有相同的含义并且可互换地使用。
根据实施方式,点云内容(或称为V-PCC内容或V3C内容)是指使用V-PCC编码的体积媒体。
根据实施方式,体积场景可以表示3D数据,并且可以由一个或更多个对象构成。也就是说,体积场景是由构成体积媒体的一个或更多个对象构成的区域或单元。另外,在将数据封装成文件格式以发送V-PCC比特流时,通过根据空间标准对整个体积媒体的边界框进行划分获得的区域称为3D空间区域。根据实施方式,3D空间区域可以被称为3D区域或空间区域。
整个点云数据中对应于特定3D空间区域的部分点云数据可以与一个或更多个2D区域相关。根据实施方式,2D区域表示包括与3D区域中的点云数据相关联的数据的一个或更多个视频帧或阿特拉斯帧。
根据实施方式,阿特拉斯数据是信令信息,其包括阿特拉斯序列参数集(ASPS)、阿特拉斯帧参数集(AFPS)、阿特拉斯适配参数集(AAPS)、阿特拉斯拼块组信息(也称为阿特拉斯拼块信息)和SEI消息,并且可以称为关于阿特拉斯的元数据。根据实施方式,ASPS是包含语法元素的语法结构,语法元素应用于如由ASPS中的语法元素(被称为每个拼块组(或拼块)头中的语法元素)的内容所确定的零个或更多个完整的编码阿特拉斯序列(CAS)。根据实施方式,AFPS是包括语法元素的语法结构,语法元素应用于如由每个拼块组(或拼块)中的语法元素的内容所确定的零个或更多个完整的编码阿特拉斯帧。根据实施方式,AAPS可以包括与阿特拉斯子比特流的一部分相关的相机参数,例如,相机位置、旋转、比例、和相机模型。在下文中,根据实施方式,语法元素以与字段或参数相同的含义使用。
根据实施方式,阿特拉斯表示2D边界框的集合,并且可以是投影到矩形框架中的补片。
根据实施方式,阿特拉斯帧是拼块投影到其上的阿特拉斯样本的二维矩形阵列。阿特拉斯样本是与阿特拉斯相关的补片投影到其上的矩形框架的位置。
根据实施方式,阿特拉斯帧可以被划分为一个或更多个矩形拼块。也就是说,拼块是分割2D帧的单位。换句话说,拼块是用于划分点云数据的信令信息(称为阿特拉斯)的单元。根据实施方式,阿特拉斯帧中的拼块彼此不交叠,并且阿特拉斯帧可以包括与拼块无关的区域。此外,高度和宽度可以在阿特拉斯中包括的拼块当中变化。
根据实施方式,3D区域可以对应于一个阿特拉斯帧,因此一个3D区域可以与多个2D区域相关联。
根据实施方式,补片是构成点云的点的集合,其指示属于同一补片的点在3D空间中彼此相邻,并且在映射到2D图像的过程中在6面边界框平面当中沿相同方向映射。补片是关于点云数据的配置的信令信息。
根据实施方式的接收设备可以重构属性视频数据、几何视频数据和占用视频数据,它们是基于阿特拉斯(拼块、补片)的具有相同呈现时间的实际视频数据。
当用户放大或用户改变视口时,整个点云对象/数据的一部分可以被渲染或显示在改变的视口上。在这种情况下,PCC解码器/播放器解码或处理与在用户视口上渲染或显示的点云数据的一部分相关联的视频或阿特拉斯数据并且跳过解码或处理与未渲染或显示的部分/区域的点云数据相关联的视频或阿特拉斯数据可以在效率方面更好。
为此,需要支持对点云数据的部分访问。
根据实施方式的视口相关信息(或称为视口信息)是关于用户通过装置或HMD观看的3D空间中的点云数据(视频或图像)的区域的信息。视点或方向是用户正在观看点云数据(视频或图像)的点,并且可以表示视口区域的中心点。也就是说,视口可以是视点周围的区域,并且区域的大小和形状可以由视场(FOV)确定。换句话说,视口是根据虚拟相机或用户的位置和视点(或取向)确定的,并且基于视口相关信息在视口处渲染点云数据。例如,接收装置可以基于视口相关信息优先解封装、解码或渲染关于用户当前正在观看的区域的点云数据(视频或图像)。
为此,需要一种根据关于点云数据(视频或图像)的用户视口信息(其是静态的或动态地随时间改变)和/或关于点云数据(视频或图像)的观看信息来构造点云数据并且发信号通知视口信息和/或观看信息的方法。
根据实施方式,视口相关信息可以具有与视口信息或视图信息相同或相似的含义。
根据实施方式,视口相关信息可以包括视口相机信息、推荐视口信息或观看信息中的至少一种。
根据实施方式,为了在根据虚拟相机或用户的位置和视点(或取向)确定的视口处渲染点云数据,V-PCC比特流可以包含视口相机参数和与视口位置相关的SEI消息。然而,SEI消息仅在编码之前确定预期视口时使用。然而,可以在编码之后确定V-PCC数据的预期视口。因此,需要一种用于指示V-PCC数据的预期视口的有效方法,而不管它是在编码之前/之后还是在编码的中间。为此,在实施方式中,至少静态或动态视口相关信息可以在文件格式级别被发信号通知。
根据实施方式,视口相关信息可以由图18的点云数据发送装置的元数据编码器18005或者图21的V-PCC系统的点云预处理器20001和/或视频/图像编码单元21007和21008生成/编码,并且可以由图19的点云数据接收装置的元数据解码器19002或者图22的V-PCC系统的视频/图像解码单元22001和22002和/或点云后处理单元22003获取/解码。
根据实施方式,视口相关信息可以通过点云数据发送装置的文件/片段封装器在文件的轨道中的样本、样本条目、样本组、轨道组或实体组中被发信号通知,或者可以在单独的元数据轨道中被发信号通知。
根据实施方式,关于点云数据(视频或图像)的推荐视口信息(观看位置、观看取向、观看方向、观看区域等)可以是静态的或随时间动态改变的。根据实施方式,为了有效地向用户提供点云视频数据,推荐视口信息可以在轨道或项目中被存储或发信号通知。另外,依据观看信息的改变的属性,可以在样本条目、轨道组、样本组、或单独的元数据轨道中载送信息。
根据实施方式,关于点云数据(视频或图像)的观看信息(观看位置、观看取向、观看方向等)可以是静态的或随时间动态改变的。根据实施方式,为了有效地向用户提供点云视频数据,可以在轨道或项目中存储或发信号通知观看信息。另外,依据观看信息的改变的属性,可以在样本条目、轨道组、样本组、实体组、或单独的元数据轨道中载送信息。
也就是说,为了允许接收装置的PCC解码器/播放器渲染/显示用户视口上的点云数据,发送装置可以通过V-PCC比特流发送点云数据(视频或图像)的用户视口信息(其是静态的或随时间动态改变的),和/或关于点云数据(视频或图像)的观看信息,在载送V-PCC比特流的文件的样本条目和/或样本中发信号通知它,或者以元数据的形式发送它。在本公开中,在V-PCC比特流或文件中发信号通知或以元数据的形式发送的信息被称为信令信息。
为了在接收装置的PCC解码器/播放器渲染/显示基于用户视口的点云数据时使能对渲染/显示的点云数据的空间访问或部分访问,发送装置可以通过V-PCC比特流发送关于点云的3D区域信息(可以是静态的或随时间变化),在载送V-PCC比特流的文件的样本条目和/或样本中发信号通知它,或者以元数据的形式发送它。在本公开中,在V-PCC比特流或文件中发信号通知或以元数据的形式发送的信息被称为信令信息。
根据实施方式,信令信息可以存储在轨道中的样本、样本条目、样本组、轨道组或单独的元数据轨道中。具体地,可以将部分信令信息以盒或全盒(fullbox)的形式存储在样本条目中。后面将详细描述包括在信令信息中的视口信息、观看信息、3D空间区域信息等的存储和发信号通知。
根据实施方式,用于支持基于视口的访问和/或部分访问的信令信息可以由发送装置的元数据生成器(例如,图18的元数据编码器18005)生成,然后由文件/片段封装器在文件的轨道中的样本、样本条目、样本组或轨道组中或者或在单独的元数据轨道中中发信号通知,或者可以由文件/片段封装器生成并在轨道的样本、样本条目、样本组或轨道组中或在单独的元数据轨道中发信号通知。在本公开中,信令信息可以包括与点云数据相关的元数据(例如,设定值等)。根据应用,信令信息可以在诸如文件格式、HTTP上的动态自适应流(DASH)或MPEG媒体传输(MMT)之类的系统级别或者诸如高清多媒体接口(HDMI)、显示端口、视频电子标准协会(VESA)或CTA之类的有线接口级别被定义。
图24示出根据本公开的其它实施方式的V-PCC比特流结构的示例。在实施方式中,图24的V-PCC比特流由图1、图4、图18、图20或图21的基于V-PCC的点云视频编码器生成和输出。
根据实施方式的包含编码点云序列(CPCS)的V-PCC比特流可以由样本流V-PCC单元组成。样本流V-PCC单元载送V-PCC参数集(VPS)数据、阿特拉斯比特流、2D视频编码的占用图比特流、2D视频编码的几何比特流以及零个或多个2D视频编码的属性比特流。
在图24中,V-PCC比特流可以包括一个样本流V-PCC头40010和一个或更多个样本流V-PCC单元40020。为简单起见,一个或更多个样本流V-PCC单元40020可以是称为样本流V-PCC有效载荷。也就是说,样本流V-PCC有效载荷可以被称为样本流V-PCC单元的集合。将在图26中描述样本流V-PCC头40010的详细描述。
每个样本流V-PCC单元40021可以包括V-PCC单元大小信息40030和V-PCC单元40040。V-PCC单元大小信息40030指示V-PCC单元40040的大小。为简单起见,V-PCC单元大小信息40030可以被称为样本流V-PCC单元头,并且V-PCC单元40040可以被称为样本流V-PCC单元有效载荷。
每个V-PCC单元40040可以包括V-PCC单元头40041和V-PCC单元有效载荷40042。
在本公开中,包含在V-PCC单元有效载荷40042中的数据由V-PCC单元头40041区分。为此,V-PCC单元头40041包含指示V-PCC单元的类型的类型信息。根据V-PCC单元头40041中的类型信息,每个V-PCC单元有效载荷40042可以包含几何视频数据(即,2D视频编码的几何比特流)、属性视频数据(即,2D视频编码的属性比特流)、占用视频数据(即,2D视频编码的占用图比特流)、阿特拉斯数据或V-PCC参数集(VPS)。
根据实施方式的VPS也被称为序列参数集(SPS)。这两个术语可以互换使用。
根据实施方式的阿特拉斯数据可以表示由点云数据的属性(例如,纹理(补片))和/或深度组成的数据,并且也可以称为补片数据组。
图25示出根据实施方式的由V-PCC比特流中的样本流V-PCC单元载送的数据的示例。
在图25的示例中,V-PCC比特流包含载送V-PCC参数集(VPS)的样本流V-PCC单元、载送阿特拉斯数据(AD)的样本流V-PCC单元、载送占用视频数据(OVD)的样本流V-PCC单元,载送几何视频数据(GVD)的样本流V-PCC单元,以及载送属性视频数据(AVD)的样本流V-PCC单元。
根据实施方式,每个样本流V-PCC单元包含VPS、AD、OVD、GVD和AVD中的一种类型的V-PCC单元。
作为在下面描述的本公开的语法中使用的术语的字段可以具有与参数或元素(或语法元素)相同的含义。
图26示出根据实施方式的包含在V-PCC比特流中的样本流V-PCC头40010的语法结构的示例。
根据实施方式的sample_stream_v-pcc_header()可以包括ssvh_unit_size_precision_bytes_minus1字段和ssvh_reserved_zero_5bits字段。
ssvh_unit_size_precision_bytes_minus1字段的值加1可以指定所有样本流V-PCC单元中的ssvu_vpcc_unit_size元素的精度(以字节为单位)。该字段的值可以在0到7的范围内。
ssvh_reserved_zero_5bits字段是预留字段以供将来使用。
图27示出根据实施方式的样本流V-PCC单元(sample_stream_vpcc_unit())的语法结构的示例。
每个样本流V-PCC单元的内容与与包含在样本流V-PCC单元中的V-PCC单元相同的访问单元相关联。
根据实施方式的sample_stream_vpcc_unit()可以包括ssvu_vpcc_unit_size字段和vpcc_unit(ssvu_vpcc_unit_size)。
ssvu_vpcc_unit_size字段对应于图24的V-PCC单元大小信息40030,并指定后续vpcc_unit的大小(以字节为单位)。用于表示ssvu_vpcc_unit_size字段的比特数等于(ssvh_unit_size_precision_bytes_minus1+1)*8。
vpcc_unit(ssvu_vpcc_unit_size)具有对应于ssvu_vpcc_unit_size字段的值的长度,并且载送VPS、AD、OVD、GVD和AVD之一。
图28示出根据实施方式的V-PCC单元的语法结构的示例。V-PCC单元由V-PCC单元头(vpcc_unit_header())40041和V-PCC单元有效载荷(vpcc_unit_payload())40042组成。根据实施方式的V-PCC单元可以包含更多数据。在这种情况下,它还可以包括trailing_zero_8bits字段。根据实施方式的trailing_zero_8bits字段是对应于0x00的字节。
图29示出根据实施方式的V-PCC单元头40041的语法结构的示例。在实施方式中,图29的vpcc_unit_header()包括vuh_unit_type字段。vuh_unit_type字段指示对应的V-PCC单元的类型。根据实施方式的vuh_unit_type字段也被称为vpcc_unit_type字段。
图30示出根据实施方式的指派给vuh_unit_type字段的V-PCC单元类型的示例。
参照图30,根据实施方式,设置为0的vuh_unit_type字段指示包含在V-PCC单元的V-PCC单元有效载荷中的数据是V-PCC参数集(VPCC_VPS)。设置为1的vuh_unit_type字段指示数据为阿特拉斯数据(VPCC_AD)。设置为2的vuh_unit_type字段指示数据是占用视频数据(VPCC_OVD)。设置为3的vuh_unit_type字段指示数据是几何视频数据(VPCC_GVD)。设置为4的vuh_unit_type字段指示数据是属性视频数据(VPCC_AVD)。
本领域技术人员可以容易地改变指派给vuh_unit_type字段的值的含义、顺序、删除、添加等,因此本公开将不限于上述实施方式。
当vuh_unit_type字段指示VPCC_AVD、VPCC_GVD、VPCC_OVD或VPCC_AD时,根据实施方式的V-PCC单元头还可以包括vuh_vpcc_parameter_set_id字段和vuh_atlas_id字段。
vuh_vpcc_parameter_set_id字段指定活动V-PCC VPS的vps_vpcc_parameter_set_id的值。
vuh_atlas_id字段指定对应于当前V-PCC单元的阿特拉斯的索引。
当vuh_unit_type字段指示VPCC_AVD时,根据实施方式的V-PCC单元头还可以包括vuh_attribute_index字段、vuh_attribute_partition_index字段、vuh_map_index字段和vuh_auxiliary_video_flag字段。
vuh_attribute_index字段指示属性视频数据单元中载送的属性数据的索引。
vuh_attribute_partition_index字段指示属性视频数据单元中载送的属性维度组的索引。
当存在时,vuh_map_index字段可以指示当前几何或属性流的图索引。
当vuh_auxiliary_video_flag字段设置为1时,可以指示相关联的属性视频数据单元仅包含RAW和/或EOM(增强的占用模式)编码点。作为另一示例,当vuh_auxiliary_video_flag字段设置为0时,可以指示相关联的属性视频数据单元可以包含RAW和/或EOM编码点。当vuh_auxiliary_video_flag字段不存在时,其值可被推断为等于0。根据实施方式,RAW和/或EOM编码点也被称为脉冲编码调制(PCM)编码点。
当vuh_unit_type字段指示VPCC_GVD时,根据实施方式的V-PCC单元头还可以包括vuh_map_index字段、vuh_auxiliary_video_flag字段和vuh_reserved_zero_12bits字段。
当存在时,vuh_map_index字段指示当前几何流的索引。
当vuh_auxiliary_video_flag字段设置为1时,可以指示相关的几何视频数据单元仅包含RAW和/或EOM编码点。作为另一示例,当vuh_auxiliary_video_flag字段设置为0时,可以指示相关联的几何视频数据单元可以包含RAW和/或EOM编码点。当vuh_auxiliary_video_flag字段不存在时,其值可被推断为等于0。根据实施方式,RAW和/或EOM编码点也被称为PCM编码点。
vuh_reserved_zero_12bits字段是预留字段以供将来使用。
如果vuh_unit_type字段指示VPCC_OVD或VPCC_AD,则根据实施方式的V-PCC单元头还可以包括vuh_reserved_zero_17bits字段。否则,V-PCC单元头还可以包括vuh_reserved_zero_27bits字段。
vuh_reserved_zero_17bits字段和vuh_reserved_zero_27bits字段是预留字段以供将来使用。
图31示出根据实施方式的V-PCC单元有效载荷(vpcc_unit_payload())的语法结构的示例。
图31的V-PCC单元有效载荷可以根据V-PCC单元头中的vuh_unit_type字段的值而包含V-PCC参数集(vpcc_parameter_set())、阿特拉斯子比特流(atlas_sub_bitstream())和视频子比特流(video_sub_bitstream())之一。
例如,当vuh_unit_type字段指示VPCC_VPS时,V-PCC单元有效载荷包含vpcc_parameter_set(),该vpcc_parameter_set()包含关于比特流的整体编码信息。当vuh_unit_type字段指示VPCC_AD时,V-PCC单元有效载荷包含载送阿特拉斯数据的atlas_sub_bitstream()。此外,根据实施方式,当vuh_unit_type字段指示VPCC_OVD时,V-PCC单元有效载荷包含载送占用视频数据的占用视频子比特流(video_sub_bitstream())。当vuh_unit_type字段指示VPCC_GVD时,V-PCC单元有效载荷包含载送几何视频数据的几何视频子比特流(video_sub_bitstream())。当vuh_unit_type字段指示VPCC_AVD时,V-PCC单元有效载荷包含载送属性视频数据的属性视频子比特流(video_sub_bitstream())。
根据实施方式,阿特拉斯子比特流可以被称为阿特拉斯子流,并且占用视频子比特流可以被称为占用视频子流。几何视频子比特流可以称为几何视频子流,并且属性视频子比特流可以称为属性视频子流。根据实施方式的V-PCC单元有效载荷符合高效视频编码(HEVC)网络抽象层(NAL)单元的格式。
图32示出根据实施方式的包括在V-PCC单元有效载荷中的V-PCC参数集的语法结构的示例。
在图32中,profile_tier_level()包含V-PCC编解码器简档相关信息并指定对比特流的约束。它表示对解码比特流所需的能力的限制。简档、层级和级别可以用于指示单独的解码器实现之间的互操作性点。
vps_vpcc_parameter_set_id字段提供V-PCC VPS的标识符以供其它语法元素引用。
vps_atlas_count_minus1字段的值加1指示当前比特流中支持的阿特拉斯的总数。
根据vps_atlas_count_minus1字段的值,即,阿特拉斯的总数,参数集中还可以包括以下参数。
vps_frame_width[j]字段指示具有索引j的阿特拉斯的整数亮度样本方面的V-PCC帧宽度。该帧宽度是与索引为j的阿特拉斯的所有V-PCC分量相关联的标称宽度。
vps_frame_height[j]字段指示具有索引j的阿特拉斯的整数亮度样本方面的V-PCC帧高度。该帧高度是与索引为j的阿特拉斯的所有V-PCC分量相关联的标称高度。
vps_map_count_minus1[j]字段加1指示用于对索引为j的阿特拉斯的几何和属性数据进行编码的图的数量。
当vps_map_count_minus1[j]字段大于0时,参数集中还可以包含以下参数。
根据vps_map_count_minus1[j]field的值,参数集中还可以包括以下参数。
vps_multiple_map_streams_present_flag[j]字段等于0指示索引为j的阿特拉斯的所有几何或属性图分别放置在单个几何或属性视频流中。vps_multiple_map_streams_present_flag[j]字段等于1指示具有索引j的阿特拉斯的所有几何或属性图放置在单独的视频流中。
如果vps_multiple_map_streams_present_flag[j]字段等于1,则vps_map_absolute_coding_enabled_flag[j][i]字段还可以被包括在参数集中。否则,vps_map_absolute_coding_enabled_flag[j][i]字段可以为1。
vps_map_absolute_coding_enabled_flag[j][i]字段等于1指示索引为j的阿特拉斯的索引为i的几何图在没有任何形式的图预测的情况下被编码。vps_map_absolute_coding_enabled_flag[j][i]字段等于0指示索引为j的阿特拉斯的索引为i的几何图首先是在编码前从另一更早的编码图中先预测的。
vps_map_absolute_coding_enabled_flag[j][0]字段等于1指示索引为0的几何图在没有图预测的情况下进行编码。
如果vps_map_absolute_coding_enabled_flag[j][i]字段为0且i大于0,则vps_map_predictor_index_diff[j][i]字段还可以被包括在参数集中。否则,vps_map_predictor_index_diff[j][i]字段可以为0。
当vps_map_absolute_coding_enabled_flag[j][i]字段等于0时,vps_map_predictor_index_diff[j][i]字段用于计算索引为j的阿特拉斯的索引为i的几何图的预测符。
vps_auxiliary_video_present_flag[j]字段等于1指示索引为j的阿特拉斯的辅助信息,即RAW或EOM补片数据,可以存储在单独的视频流中,称为辅助视频流。vps_auxiliary_video_present_flag[j]字段等于0指示索引为j的阿特拉斯的辅助信息不存储在单独的视频流中。
occupancy_information()包括占用视频相关信息。
geometry_information()包括相关的几何视频信息。
attribute_information()包括属性视频相关信息。
vps_extension_present_flag字段等于1指定vps_extension_length字段存在于vpcc_parameter_set中。vps_extension_present_flag字段等于0指定vps_extension_length字段不存在。
vps_extension_length_minus1字段加1指定遵循此语法元素的vps_extension_data_byte元素的数量。
依据vps_extension_length_minus1字段,扩展数据(vps_extension_data_byte)可以进一步包括在参数集中..
vps_extension_data_byte字段可以具有任何值。
作为点云数据的目标的补片帧(也称为点云对象或阿特拉斯帧)可以被划分为一个或多个拼块。根据实施方式的拼块可以表示3D空间中的特定区域或2D平面中的特定区域。此外,拼块可以是一个边界框中的长方体,或者补片帧或子边界框的一部分。在本公开中,可以通过图1的点云视频编码器、图18的补片生成器、图20的点云预处理单元或图21的补片生成器,或通过单独的组件/模块,来将补片帧(或点云对象)划分为一个或多个拼块。
图33示出通过将补片帧(或阿特拉斯帧)43010划分成一个或更多个拼块行和一个或更多个拼块列来将补片帧(或阿特拉斯帧)43010划分为多个拼块的示例。拼块43030是补片帧的矩形区域,并且拼块组43050可以包含补片帧中的多个拼块。在本公开中,拼块组43050包含拼块帧的多个拼块,它们共同形成拼块帧的矩形(四边形)区域。在本公开中,拼块和拼块组可以不彼此区分开,并且拼块组可以对应于一个拼块。例如,图33示出其中补片帧(或阿特拉斯帧)被划分为24个拼块(即,6个拼块列和4个拼块行)和9个矩形(四边形)拼块组的示例。
根据其它实施方式,在图33中,拼块组43050可以被称为拼块,并且拼块43030可以被称为拼块分区。术语信令信息也可以根据上述互补关系进行变化和引用。
图34是示出如上所述的阿特拉斯子流的结构的示例的图。在实施方式中,图34的阿特拉斯子流符合HEVC NAL单元的格式。
根据实施方式的阿特拉斯子流可以由包含阿特拉斯序列参数集(ASPS)的样本流NAL单元、包含阿特拉斯帧参数集(AFPS)的样本流NAL单元、以及包含关于一个或更多个阿特拉斯拼块组的信息的一个或更多个样本流NAL单元和/或包含一个或更多个SEI消息的一个或更多个样本流NAL单元组成。
根据实施方式的一个或更多个SEI消息可以包括前缀SEI消息和后缀SEI消息。
根据实施方式的阿特拉斯子流可以进一步包含放置在一个或更多个NAL单元前面的样本流NAL头。
图35示出根据实施方式的包含在阿特拉斯子流中的样本流NAL头(sample_stream_nal_header())的语法结构的示例。
根据实施方式的sample_stream_nal_header()可以包括ssnh_unit_size_precision_bytes_minus1字段和ssnh_reserved_zero_5bits字段。
ssnh_unit_size_precision_bytes_minus1字段的值加1可以指定所有样本流NAL单元中ssnu_nal_unit_size元素的精度(以字节为单位)。该字段的值可以在0到7的范围内。
ssnh_reserved_zero_5bits字段是预留字段以供将来使用。
图36示出根据实施方式的样本流NAL单元(sample_stream_nal_unit())的语法结构的示例。
根据实施方式的sample_stream_nal_unit()可以包括ssnu_nal_unit_size字段和nal_unit(ssnu_nal_unit_size)。
ssnu_nal_unit_size字段指定后续NAL_unit的大小(以字节为单位)。用于表示ssnu_nal_unit_size字段的比特数等于(ssnh_unit_size_precision_bytes_minus1+1)*8。
nal_unit(ssnu_nal_unit_size)具有与ssnu_nal_unit_size字段的值对应的长度,并载送阿特拉斯序列参数集(ASPS)、阿特拉斯帧参数集(AFPS)、阿特拉斯拼块组信息和SEI消息之一。也就是说,每个样本流NAL单元可以包含ASPS、AFPS、阿特拉斯拼块组信息或SEI消息。根据实施方式,ASPS、AFPS、阿特拉斯拼块组信息和SEI消息被称为阿特拉斯数据(或阿特拉斯元数据)。
根据实施方式的SEI消息可以辅助与解码、重构、显示或其它目的相关的处理。
图37示出图36的nal_unit(NumBytesInNalUnit)的语法结构的示例。
在图37中,NumBytesInNalUnit指示NAL单元的大小(以字节为单位)。NumBytesInNalUnit指示图36的ssnu_nal_unit_size字段的值。
根据实施方式,NAL单元可以包括NAL单元头(nal_unit_header())和NumBytesInRbsp字段。NumBytesInRbsp字段初始化为0并指示属于NAL单元的有效载荷的字节。
NAL单元包括重复次数与NumBytesInNalUnit的值一样多的迭代语句。在实施方式中,迭代语句包括rbsp_byte[NumBytesInRbsp++]。根据实施方式,在迭代语句中,i被初始化为2并且每次执行迭代语句就递增1。重复迭代语句,直到i达到NumBytesInNalUnit的值。
rbsp_byte[NumBytesInRbsp++]是载送阿特拉斯数据的原始字节序列有效载荷(RBSP)的第i个字节。RBSP被指定为字节的连续序列。也就是说,rbsp_byte[NumBytesInRbsp++]载送阿特拉斯序列参数集(ASPS)、阿特拉斯帧参数集(AFPS)、阿特拉斯拼块组信息和SEI消息之一。
图38示出图37的NAL单元头的语法结构的示例。NAL单元头可以包括nal_forbidden_zero_bit字段、nal_unit_type字段、nal_layer_id字段和nal_temporal_id_plus1字段。
nal_forbidden_zero_bit用于NAL单元中的错误检测,并且必须为0。
nal_unit_type指定包含在NAL单元中的RBSP数据结构的类型。将参照图39描述根据nal_unit_type字段的值的RBSP数据结构的示例。
nal_layer_id指定阿特拉斯编码层(ACL)NAL单元所属的层的标识符或非ACL NAL单元应用于的层的标识符。
nal_temporal_id_plus1减1指定NAL单元的时间标识符。
图39示出分配给nal_unit_type字段的RBSP数据结构的类型的示例。也就是说,该图示出样本流NAL单元中包括的NAL单元的NAL单元头中的nal_unit_type字段的类型。
在图39中,NAL_TRAIL指示非TSA、非STSA结尾阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。根据实施方式,拼块组可以对应于拼块。
NAL TSA指示TSA阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_STSA指示STSA阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_RADL指示RADL阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_RASL指示RASL阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构是atlas_tile_group_layer_rbsp()或aatlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_SKIP指示跳过的阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_RSV_ACL_6至NAL_RSV_ACL_9指示保留的非IRAP ACL NAL单元类型被包括在NAL单元中。NAL单元的类型类是ACL。
NAL_BLA_W_LP、NAL_BLA_W_RADL和NAL_BLA_N_LP指示BLA阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_GBLA_W_LP、NAL_GBLA_W_RADL和NAL_GBLA_N_LP指示GBLA阿特拉斯帧的编码拼块组可以被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_IDR_W_RADL和NAL_IDR_N_LP指示IDR阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_GIDR_W_RADL和NAL_GIDR_N_LP指示GIDR阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_CRA指示CRA阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_GCRA指示GCRA阿特拉斯帧的编码拼块组被包括在NAL单元中。NAL单元的RBSP语法结构为atlas_tile_group_layer_rbsp()或atlas_tile_layer_rbsp()。NAL单元的类型类是ACL。
NAL_IRAP_ACL_22和NAL_IRAP_ACL_23指示保留的IRAP ACL NAL单元类型被包括在NAL单元中。NAL单元的类型类是ACL。
NAL_RSV_ACL_24至NAL_RSV_ACL_31指示保留的非IRAP ACL NAL单元类型被包括在NAL单元中。NAL单元的类型类是ACL。
NAL_ASPS指示NAL单元中包括ASPS。NAL单元的RBSP语法结构是atlas_sequence_parameter_set_rbsp()。NAL单元的类型类是非ACL。
NAL_AFPS指示NAL单元中包括AFPS。NAL单元的RBSP语法结构为atlas_frame_parameter_set_rbsp()。NAL单元的类型类是非ACL。
NAL_AUD指示在NAL单元中包括访问单元分隔符。NAL单元的RBSP语法结构是access_unit_delimiter_rbsp()。NAL单元的类型类是非ACL。
NAL_VPCC_AUD指示V-PCC访问单元分隔符被包括在NAL单元中。NAL单元的RBSP语法结构是access_unit_delimiter_rbsp()。NAL单元的类型类是非ACL。
NAL_EOS指示NAL单元类型可以是序列的结尾。NAL单元的RBSP语法结构是end_of_seq_rbsp()。NAL单元的类型类是非ACL。
NAL_EOB指示NAL单元类型可以是比特流的结尾。NAL单元的RBSP语法结构是end_of_atlas_sub_bitstream_rbsp()。NAL单元的类型类是非ACL。
NAL_FD填充指示fill_data_rbsp()被包括在NAL单元中。NAL单元的类型类是非ACL。
NAL_PREFIX_NSEI和NAL_SUFFIX_NSEI指示NAL单元中包括非必要补充增强信息。NAL单元的RBSP语法结构是sei_rbsp()。NAL单元的类型类是非ACL。
NAL_PREFIX_ESEI和NAL_SUFFIX_ESEI指示必要补充增强信息被包括在NAL单元中。NAL单元的RBSP语法结构是sei_rbsp()。NAL单元的类型类是非ACL。
NAL_AAPS指示NAL单元中包括阿特拉斯适配参数集。NAL单元的RBSP语法结构是atlas_adaptation_parameter_set_rbsp()。类型类NAL单元是非ACL。
NAL_RSV_NACL_44至NAL_RSV_NACL_47指示NAL单元类型可以是保留的非ACL NAL单元类型。NAL单元的类型类是非ACL。
NAL_UNSPEC_48至NAL_UNSPEC_63指示NAL单元类型可以是未指定的非ACL NAL单元类型。NAL单元的类型类是非ACL。
图40示出根据实施方式的阿特拉斯序列参数集的语法结构。
图40示出当NAL单元类型是阿特拉斯序列参数时包括在NAL单元中的RBSP数据结构的语法。
每个样本流NAL单元可以包含阿特拉斯参数集(例如,ASPS、AAPS或AFPS)、一个或更多个拼块组和SEI之一。
ASPS可以包含应用于如由ASPS中找到的语法元素(被称为每个拼块组(或拼块)头中的语法元素)的内容所确定的零个或更多个完整的编码阿特拉斯序列(CAS)的语法元素。根据实施方式,语法元素可以具有与字段或参数相同的含义。
在图40中,asps_atlas_sequence_parameter_set_id字段可以提供用于标识阿特拉斯序列参数集的标识符,以供其它语法元素引用。
asps_frame_width字段指示整数个样本方面的阿特拉斯帧宽度,其中样本对应于视频分量的亮度样本。
asps_frame_height字段指示整数个样本方面的阿特拉斯帧高度,其中样本对应于视频分量的亮度样本。
asps_log2_patch_packing_block_size字段指定变量PatchPackingBlockSize的值,该变量用于补片在阿特拉斯内的水平和垂直放置。
asps_log2_max_atlas_frame_order_cnt_lsb_minus4字段指定用于阿特拉斯帧顺序计数的解码过程中的变量MaxAtlasFrmOrderCntLsb的值。
asps_max_dec_atlas_frame_buffering_minus1字段加1指定CAS的解码阿特拉斯帧缓冲器所需的最大大小,以阿特拉斯帧存储缓冲器为单位。
asps_long_term_ref_atlas_frames_flag字段等于0指定长期参考阿特拉斯帧不用于CAS中任何编码阿特拉斯帧的帧间预测。asps_long_term_ref_atlas_frames_flag字段等于1指定长期参考阿特拉斯帧可以用于CAS中一个或更多个编码阿特拉斯帧的帧间预测。
asps_num_ref_atlas_frame_lists_in_asps字段指定包括在阿特拉斯序列参数集中的ref_list_struct(rlsIdx)语法结构的数量。
ASAP包括重复次数与asps_num_ref_atlas_frame_lists_in_asps字段的值一样多的迭代语句。在实施方式中,迭代语句包括ref_list_struct(i)。根据实施方式,在迭代语句中,i被初始化为0并且每次执行迭代语句就递增1。重复迭代语句,直到i达到asps_num_ref_atlas_frame_lists_in_asps字段的值。
将参照图49详细描述ref_list_struct(i)。
当asps_num_ref_atlas_frame_lists_in_asps字段大于0时,atgh_ref_atlas_frame_list_sps_flag字段可以被包括在阿特拉斯拼块组(拼块)头中。当asps_num_ref_atlas_frame_lists_in_asps字段大于1时,atgh_ref_atlas_frame_list_idx字段可以被包括在阿特拉斯拼块组(拼块)头中。
asps_use_eight_orientations_flag字段等于0指定索引为i的帧中索引为j的补片的补片取向索引pdu_orientation_index[i][j]字段在0到1(内包含)的范围内。asps_use_eight_orientations_flag字段等于1指定在具有索引i的帧中具有索引j的补片的补片取向索引pdu_orientation_index[i][j]字段在0到7(内包含)的范围内。
asps_extended_projection_enabled_flag字段等于0指定不针对当前阿特拉斯拼块组发信号通知补片投影信息。asps_extended_projection_enabled_flag字段等于1指定针对当前阿特拉斯拼块组发信号通知补片投影信息。
asps_normal_axis_limits_quantization_enabled_flag字段等于1指定量化参数应被发信号通知并用于量化补片数据单元、合并补片数据单元或补片间数据单元的法线轴相关元素。如果asps_normal_axis_limits_quantization_enabled_flag字段等于0,则不对补片数据单元、合并补片数据单元或补片间数据单元的任何法线轴相关元素应用量化。
当asps_normal_axis_limits_quantization_enabled_flag字段为1时,atgh_pos_min_z_quantizer字段可以被包括在阿特拉斯拼块组(或拼块)头中。
asps_normal_axis_max_delta_value_enabled_flag字段等于1指定在具有索引j的帧中索引为i的补片的几何信息中可以存在的法线轴的最大标称移位值将在每个补片数据单元、合并补片数据单元、或补片间数据单元的比特流中指示。如果asps_normal_axis_max_delta_value_enabled_flag字段等于0,则在具有索引j的帧中具有索引i的补片的几何信息中可以存在的法线轴的最大标称移位值不应在每个补片数据单元、合并补片数据单元或补片间数据单元的比特流中指示。
当asps_normal_axis_max_delta_value_enabled_flag字段为1时,atgh_pos_delta_max_z_quantizer字段可以被包括在阿特拉斯拼块组(或拼块)头中。
asps_remove_duplicate_point_enabled_flag字段等于1指示不为当前阿特拉斯构造重复点,其中重复点是与来自较低索引图中的另一点具有相同2D和3D几何坐标的点。asps_remove_duplicate_point_enabled_flag字段等于0指示所有点被重构。
asps_max_dec_atlas_frame_buffering_minus1字段加1指定CAS的解码阿特拉斯帧缓冲器所需的最大大小,以阿特拉斯帧存储缓冲器为单位。
asps_pixel_deinterleaving_flag字段等于1指示当前阿特拉斯的解码的几何和属性视频包含来自两个图的空间交错像素。asps_pixel_deinterleaving_flag字段等于0指示与当前阿特拉斯对应的解码的几何和属性视频包含来自仅单个图的像素。
asps_patch_precedence_order_flag字段等于1指示当前阿特拉斯的补片优先级与解码顺序相同。asps_patch_precedence_order_flag字段等于0指示当前阿特拉斯的补片优先级与解码顺序相反。
asps_patch_size_quantizer_present_flag字段等于1指示补片大小量化参数存在于阿特拉斯拼块组头中。asps_patch_size_quantizer_present_flag字段等于0指示补片大小量化参数不存在。
当asps_patch_size_quantizer_present_flag字段等于1时,atgh_patch_size_x_info_quantizer字段和atgh_patch_size_y_info_quantizer字段可以包括在阿特拉斯拼块组(或拼块)头中。
asps_eom_patch_enabled_flag字段等于1指示当前阿特拉斯的解码占用图视频包含与两个深度图之间的中间深度位置是否被占用有关的信息。asps_eom_patch_enabled_flag字段等于0指示解码的占用图视频不包含与两个深度图之间的中间深度位置是否被占用有关的信息。
asps_raw_patch_enabled_flag字段等于1指示当前阿特拉斯的解码的几何和属性视频包含与RAW编码点相关的信息。asps_raw_patch_enabled_flag字段等于0指示解码的几何和属性视频不包含与RAW编码点相关的信息。
当asps_eom_patch_enabled_flag字段或asps_raw_patch_enabled_flag字段等于1时,asps_auxiliary_video_enabled_flag字段可以被包括在阿特拉斯序列参数集语法中。
asps_auxiliary_video_enabled_flag字段等于1指示与RAW和EOM补片类型相关的信息可以放置在辅助视频子比特流中。asps_auxiliary_video_enabled_flag字段等于0指示与RAW和EOM补片类型相关的信息只能放置在主视频子比特流中。
asps_point_local_reconstruction_enabled_flag字段等于1指示点本地重构模式信息可以存在于当前阿特拉斯的比特流中。asps_point_local_reconstruction_enabled_flag字段等于0指示当前阿特拉斯的比特流中不存在与点本地重构模式相关的信息。
asps_map_count_minus1字段加1指示可以用于对当前阿特拉斯的几何和属性数据进行编码的图的数量。
当asps_pixel_deinterleaving_enabled_flag字段等于1时,对于asps_map_count_minus1字段的每个值,asps_pixel_deinterleaving_map_flag[j]字段可以包括在ASPS中。
asps_pixel_deinterleaving_map_flag[i]字段等于1指示与当前阿特拉斯中索引为i的图相对应的解码的几何和属性视频包含对应于两个图的空间交错像素。asps_pixel_deinterleaving_map_flag[i]字段等于0指示当前阿特拉斯中索引为i的图对应的解码的几何和属性视频包含对应于单个图的像素。
当asps_eom_patch_enabled_flag字段和asps_map_count_minus1字段等于0时,ASPS还可以包括asps_eom_fix_bit_count_minus1字段。
asps_eom_fix_bit_count_minus1字段加1指示EOM码字的比特大小。
当asps_point_local_reconstruction_enabled_flag字段等于1时,asps_point_local_reconstruction_information(asps_map_count_minus1)可以被包括在ASPS中并被发送。
当asps_pixel_deinterleaving_enabled_flag字段或asps_point_local_reconstruction_enabled_flag字段等于1时,ASPS还可以包括asps_surface_thickness_minus1字段。
asps_surface_thickness_minus1字段加1指定当asps_pixel_deinterleaving_enabled_flag字段或asps_point_local_reconstruction_enabled_flag字段等于1时显式编码深度值和插值深度值之间的最大绝对差。
asps_vui_parameters_present_flag字段等于1指示存在vui_parameters()语法结构。asps_vui_parameters_present_flag字段等于0指示不存在vui_parameters()语法结构。
asps_extension_flag字段等于0指示在ASPS RBSP语法结构中不存在asps_extension_data_flag字段。
asps_extension_data_flag字段指示用于扩展的数据被包括在ASPS RBSP语法结构中。
rbsp_trailing_bits字段用于在添加1(其是停止比特)后用0填充剩余比特以进行字节对齐,以指示RBSP数据的结束。
图41示出根据实施方式的阿特拉斯帧参数集。
图41示出当NAL单元类型(nal_unit_type)为如图39所示的NAL_AFPS时包含在NAL单元中的阿特拉斯帧参数集的语法结构。
在图41中,阿特拉斯帧参数集(AFPS)包含语法结构,其包含应用于所有的零个或更多个完整编码阿特拉斯帧的语法元素。
afps_atlas_frame_parameter_set_id字段可以提供用于标识阿特拉斯帧参数集的标识符,以供其它语法元素引用。也就是说,可以通过AFPS阿特拉斯帧参数集提供可以被其它语法元素引用的标识符。
afps_atlas_sequence_parameter_set_id字段指定活动阿特拉斯序列参数集的asps_atlas_sequence_parameter_set_id的值。
将参照图42描述atlas_frame_tile_information()。
afps_output_flag_present_flag字段等于1指示atgh_atlas_output_flag或ath_atlas_output_flag字段存在于相关联的拼块组(或拼块)头中。afps_output_flag_present_flag字段等于0指示atgh_atlas_output_flag字段或ath_atlas_output_flag字段不存在于相关联的拼块组(或拼块)头中。
afps_num_ref_idx_default_active_minus1字段加1指定atgh_num_ref_idx_active_override_flag字段等于0的拼块组的变量NumRefIdxActive的推断值。
afps_additional_lt_afoc_lsb_len字段指定在参考阿特拉斯帧的解码过程中使用的变量MaxLtAtlasFrmOrderCntLsb的值。
afps_3d_pos_x_bit_count_minus1字段加1指定在引用afps_atlas_frame_parameter_set_id字段的阿特拉斯拼块组中具有索引j的补片的pdu_3d_pos_x[j]字段的固定长度表示中的比特数。
afps_3d_pos_y_bit_count_minus1字段加1指定在引用afps_atlas_frame_parameter_set_id字段的阿特拉斯拼块组中具有索引j的补片的pdu_3d_pos_y[j]字段的固定长度表示中的比特数。
afps_lod_mode_enabled_flag字段等于1指示LOD参数可以存在于补片中。afps_lod_mode_enabled_flag字段等于0指示LOD参数不存在于补片中。
afps_override_eom_for_depth_flag字段等于1指示afps_eom_number_of_patch_bit_count_minus1字段和afps_eom_max_bit_count_minus1字段的值显式存在于比特流中。afps_override_eom_for_depth_flag字段等于0指示afps_eom_number_of_patch_bit_count_minus1字段和afps_eom_max_bit_count_minus1字段的值是隐式推导的。
afps_eom_number_of_patch_bit_count_minus1字段加1指定用于表示与此阿特拉斯帧参数集相关联的阿特拉斯帧中的EOM属性补片中关联的几何补片的数量的比特数。
afps_eom_max_bit_count_minus1字段加1指定用于表示与此阿特拉斯帧参数集相关联的阿特拉斯帧中的EOM属性补片相关联的每个几何补片的EOM点的数量的比特数。
afps_raw_3d_pos_bit_count_explicit_mode_flag字段等于1指示rpdu_3d_pos_x字段、rpdu_3d_pos_y字段和rpdu_3d_pos_z字段的固定长度表示中的比特数由引用afps_atlas_frame_parameter_set_id字段的阿特拉斯拼块组头中的atgh_raw_3d_pos_axis_bit_count_minus1字段显式编码。afps_raw_3d_pos_bit_count_explicit_mode_flag字段等于0指示atgh_raw_3d_pos_axis_bit_count_minus1字段的值是隐式推导的。
当afps_raw_3d_pos_bit_count_explicit_mode_flag字段等于1时,atgh_raw_3d_pos_axis_bit_count_minus1字段可以包括在阿特拉斯拼块组(或拼块)头中。
afps_fixed_camera_model_flag指示是否存在固定相机模型。
afps_extension_flag字段等于0指示AFPS RBSP语法结构中不存在afps_extension_data_flag字段。
afps_extension_data_flag字段可以包含扩展相关数据。
图42示出根据实施方式的atlas_frame_tile_information的语法结构。
图42示出图41中包含的atlas_frame_tile_information的语法。
afti_single_tile_in_atlas_frame_flag字段等于1指定在引用AFPS的每个阿特拉斯帧中只有一个块。afti_single_tile_in_atlas_frame_flag字段等于0指示在引用AFPS的每个阿特拉斯帧中存在不止一个拼块。
afti_uniform_tile_spacing_flag字段等于1指定拼块列和行边界均匀分布在阿特拉斯帧上,并分别使用语法元素afti_tile_cols_width_minus1字段和afti_tile_rows_height_minus1字段发信号通知。afti_uniform_tile_spacing_flag字段等于0指定拼块列和行边界可以或可以不均匀分布在阿特拉斯帧上,并使用afti_num_tile_columns_minus1字段和afti_num_tile_rows_minus1字段以及语法元素对afti_tile_column_width_minus1[i]和afti_tile_row_height_minus1[i]的列表发信号通知。
afti_tile_cols_width_minus1字段加1指定当afti_uniform_tile_spacing_flag字段等于1时,以64个样本为单位的不包括阿特拉斯帧的最右拼块列的拼块列的宽度。
afti_tile_rows_height_minus1字段加1指定当afti_uniform_tile_spacing_flag字段等于1时,以64个样本为单位的不包括阿特拉斯帧的底部拼块行的拼块行的高度。
afti_num_tile_columns_minus1字段加1指定当afti_uniform_tile_spacing_flag字段等于0时划分阿特拉斯帧的拼块列数。
afti_num_tile_rows_minus1字段加1指定当pti_uniform_tile_spacing_flag字段等于0时划分阿特拉斯帧的拼块行数。
afti_tile_column_width_minus1[i]字段加1指定第i个拼块列的宽度,以64个样本为单位。
afti_tile_row_height_minus1[i]字段加1指定第i个拼块行的高度,以64个样本为单位。
afti_single_tile_per_tile_group_flag字段等于1指定引用此AFPS的每个拼块组包括一个拼块。afti_single_tile_per_tile_group_flag字段等于0指定引用此AFPS的拼块组可以包括不止一个拼块。
当afti_single_tile_per_tile_group_flag字段等于0时,在阿特拉斯帧拼块信息中载送afti_num_tile_groups_in_atlas_frame_minus1字段。
afti_num_tile_groups_in_atlas_frame_minus1字段加1指定引用AFPS的每个阿特拉斯帧中的拼块组(或拼块)的数量。
针对afti_num_tile_groups_in_atlas_frame_minus1字段的每个值,afti_top_left_tile_idx[i]字段和afti_bottom_right_tile_idx_delta[i]字段可以进一步包括在AFPS中。
afti_top_left_tile_idx[i]字段指定位于第i个拼块组的左上角的拼块的拼块索引。
afti_bottom_right_tile_idx_delta[i]字段指定位于第i个拼块组的右下角的拼块的拼块索引与afti_top_left_tile_idx[i]字段之间的差异。
afti_signalled_tile_group_id_flag字段等于1指定发信号通知每个拼块组的拼块组ID。
当afti_signalled_tile_group_id_flag字段为1时,可以在阿特拉斯帧拼块信息中载送afti_signalled_tile_group_id_length_minus1字段和afti_tile_group_id[i]字段。
afti_signalled_tile_group_id_length_minus1字段加1指定用于表示语法元素afti_tile_group_id[i]字段(当存在时)以及拼块组头中的语法元素atgh_address的比特数。
afti_tile_group_id[i]字段指定第i个拼块组的拼块组ID。afti_tile_group_id[i]字段的长度是afti_signalled_tile_group_id_length_minus1+1比特。
图43示出根据实施方式的阿特拉斯适配参数集(atlas_adaptation_parameter_set_rbsp())。
图43示出当NAL单元类型(nal_unit_type)为NAL_AAPS时由NAL单元载送的阿特拉斯适配参数集(AAPS)的语法结构。
AAPS RBSP包括可以由一个或更多个编码阿特拉斯帧的编码拼块组(或拼块)NAL单元引用的参数。在解码过程的操作期间的任何给定时刻,至多一个AAPS RBSP被认为是活动的,并且任何特定AAPS RBSP的激活导致先前活动的AAPS RBSP的去激活。
在图43中,aaps_atlas_adaptation_parameter_set_id字段提供了用于标识阿特拉斯适配参数集的标识符,以供其它语法元素引用。
aaps_atlas_sequence_parameter_set_id字段指定活动阿特拉斯序列参数集的asps_atlas_sequence_parameter_set_id字段的值。
aaps_camera_parameters_present_flag字段等于1指定相机参数(atlas_camera_parameters)存在于当前阿特拉斯适配参数集中。aaps_camera_parameters_present_flag字段等于0指定当前适配参数集的相机参数不存在。atlas_camera_parameters将参照图44进行描述。
aaps_extension_flag字段等于0指示AAPS RBSP语法结构中不存在aaps_extension_data_flag字段。
aaps_extension_data_flag字段可以指示AAPS是否包含扩展相关数据。
图44示出根据实施方式的atlas_camera_parameters。
图44示出图43的atlas_camera_parameters的详细语法。
在图44中,acp_camera_model字段指示与当前阿特拉斯适应参数集相关联的点云帧的相机模型。
图45是示出根据实施方式的指派给acp_camera_model字段的相机模型的示例的表。
例如,acp_camera_model字段等于0指示相机模型未指定。
acp_camera_model字段等于1指示相机模型为正交相机模型。
当acp_camera_model字段为2-255时,可以预留相机模型。
根据实施方式,当acp_camera_model字段的值等于1时,相机参数还可以包括与缩放、偏移和旋转相关的acp_scale_enabled_flag字段、acp_offset_enabled_flag字段和/或acp_rotation_enabled_flag字段。
acp_scale_enabled_flag字段等于1指示当前相机模型的缩放参数存在。acp_scale_enabled_flag等于0字段指示当前相机模型的缩放参数不存在。
当acp_scale_enabled_flagfield等于1时,acp_scale_on_axis[d]字段可以被包括在每个d值的阿特拉斯相机参数中。
acp_scale_on_axis[d]字段指定当前相机模型沿d轴的缩放值Scale[d]。d的取值范围为0到2(内包含),其中0、1和2的值分别对应X、Y和Z轴。
acp_offset_enabled_flag字段等于1指示当前相机模型的偏移参数存在。acp_offset_enabled_flag字段等于0指示当前相机模型的偏移参数不存在。
当acp_offset_enabled_flag字段等于1时,对于每个d值,acp_offset_on_axis[d]字段可以包含在阿特拉斯相机参数中。
acp_offset_on_axis[d]字段指示当前相机模型沿d轴的偏移Offset[d]的值,其中d在0到2(内包含)的范围内。d的值等于0、1和2,分别对应于X、Y和Z轴。
acp_rotation_enabled_flag字段等于1指示当前相机模型的旋转参数存在。acp_rotation_enabled_flag字段等于0指示当前相机模型的旋转参数不存在。
当acp_rotation_enabled_flagfield等于1时,阿特拉斯相机参数还可以包括acp_rotation_qx字段、acp_rotation_qy字段和acp_rotation_qz字段。
acp_rotation_qx字段使用四元数表示为当前相机模型的旋转指定x分量qX。
acp_rotation_qy字段使用四元数表示为当前相机模型的旋转指定y分量qY。
acp_rotation_qz字段使用四元数表示为当前相机模型的旋转指定z分量qZ。
如上所述的atlas_camera_parameters()可以被包括在至少一个SEI消息中并且被发送。
图46示出根据实施方式的atlas_tile_group_layer。
图46示出根据图39所示的NAL单元类型在NAL单元中载送的atlas_tile_group_layer的语法结构。
根据实施方式,拼块组可以对应于拼块。在本公开中,术语“拼块组”可以被称为术语“拼块”。类似地,术语“atgh”可以解释为术语“ath”。
atlas_tile_group_layer字段或atlas_tile_layer字段可以包含atlas_tile_group_header(atlas_tile_group_header)或atlas_tile_header(atlas_tile_header)。将参照图47描述阿特拉斯拼块组(或拼块)头(atlas_tile_group_header或atlas_tile_header)。
当阿特拉斯拼块组(或拼块)的atgh_type字段不是SKIP_TILE_GRP时,阿特拉斯拼块组(或拼块)数据可以包含在atlas_tile_group_layer或atlas_tile_layer中。
图47示出根据实施方式的包括在阿特拉斯拼块组层中的阿特拉斯拼块组(或拼块)头(atlas_tile_group_header()或atlas_tile_header())的语法结构的示例。
在图47中,atgh_atlas_frame_parameter_set_id字段指定当前阿特拉斯块组的活动阿特拉斯帧参数集的afps_atlas_frame_parameter_set_id字段的值。
atgh_atlas_adaptation_parameter_set_id字段指定用于当前阿特拉斯拼块组的活动阿特拉斯适配参数集的aaps_atlas_adaptation_parameter_set_id字段的值。
atgh_address字段指定拼块组(或拼块)的拼块组(或拼块)地址。当不存在时,atgh_address字段的值被推断为等于0。拼块组(或拼块)地址是拼块组(或拼块)的拼块组ID(或拼块ID)。atgh_address字段的长度为afti_signalled_tile_group_id_length_minus1字段+1比特。如果afti_signalled_tile_group_id_flag字段等于0,则atgh_address字段的值在0到afti_num_tile_groups_in_atlas_frame_minus1字段(内包含)的范围内。否则,atgh_address字段的值在0到2(afti_signalled_tile_group_id_length_minus1field+1)-1(内包含)的范围内。AFTI中包括afti_signalled_tile_group_id_length_minus1字段和afti_signalled_tile_group_id_flag字段。
atgh_type字段指定当前阿特拉斯拼块组(拼块)的编码类型。
图48示出根据实施方式的指派给atgh_type字段的编码类型的示例。
例如,当atgh_type字段的值为0时,阿特拉斯拼块组(或拼块)的编码类型为P_TILE_GRP(帧间阿特拉斯拼块组(或拼块))。
当atgh_type字段的值为1时,阿特拉斯拼块组(或拼块)的编码类型为I_TILE_GRP(帧内阿特拉斯拼块组(或拼块))。
当atgh_type字段的值为2时,阿特拉斯拼块组(或拼块)的编码类型为SKIP_TILE_GRP(跳过阿特拉斯拼块组(或拼块))。
AFTI中包括的afps_output_flag_present_flag字段的值等于1,阿特拉斯拼块组(或拼块)头还可以包括atgh_atlas_output_flag字段。
atgh_atlas_output_flag字段影响解码后的阿特拉斯输出和去除过程。
atgh_atlas_frm_order_cnt_lsb字段指定当前阿特拉斯拼块组的阿特拉斯帧顺序计数模(modulo)MaxAtlasFrmOrderCntLsb。
根据实施方式,如果包括在阿特拉斯序列参数集(ASPS)中的asps_num_ref_atlas_frame_lists_in_asps字段的值大于1,则阿特拉斯拼块组(或拼块)头还可以包括atgh_ref_atlas_frame_list_sps_flag字段。asps_num_ref_atlas_frame_lists_in_asps指定ASPS中包括的ref_list_struct(rlsIdx)语法结构的数量。
atgh_ref_atlas_frame_list_sps_flag字段等于1指定当前阿特拉斯拼块组(或拼块)的参考阿特拉斯帧列表是基于活动ASPS中的ref_list_struct(rlsIdx)语法结构之一推导的。atgh_ref_atlas_frame_list_sps_flag字段等于0指定当前atlastile列表的参考阿特拉斯帧列表是基于直接包括在当前阿特拉斯拼块组的拼块组头中的ref_list_struct(rlsIdx)语法结构推导的。
根据实施方式,当atgh_ref_atlas_frame_list_sps_flag字段等于0时,阿特拉斯拼块组(或拼块)头包括ref_list_struct(asps_num_ref_atlas_frame_lists_in_asps),并且当atgh_ref_atlas_frame_list_sps_flag大于1时,阿特拉斯拼块组(或拼块)头包括atgh_ref_atlas_frame_list_sps_flag字段。
atgh_ref_atlas_frame_list_idx字段指定ref_list_struct(rlsIdx)语法结构的索引,其用于推导当前阿特拉斯拼块组(或拼块)的参考阿特拉斯帧列表。参考阿特拉斯帧列表是活动ASPS中包括的ref_list_struct(rlsIdx)语法结构的列表。
根据实施方式,根据NumLtrAtlasFrmEntries字段的值,阿特拉斯拼块组(或拼块)头还包括atgh_additional_afoc_lsb_present_flag[j]字段,并且如果atgh_additional_afoc_lsb_present_flag[j]等于1,则还可以包括atgh_additional_afoc_lsb_val[j]字段。
atgh_additional_afoc_lsb_val[j]指定当前阿特拉斯拼块组(或拼块)的FullAtlasFrmOrderCntLsbLt[RlsIdx][j]的值。
根据实施方式,如果atgh_type字段不指示SKIP_TILE_GRP,则阿特拉斯拼块组(或拼块)头还可以包括atgh_pos_min_z_quantizer字段、atgh_pos_delta_max_z_quantizer字段、atgh_patch_size_x_info_quantizer字段、atgh_patch_size_y_info_quantizer字段、atgh_raw_3d_pos_axis_bit_count_minus1字段,和/或atgh_num_ref_idx_active_minus1字段,这取决于ASPS或AFPS中包括的信息。
根据实施方式,当包括在ASPS中的asps_normal_axis_limits_quantization_enabled_flag字段的值为1时,包括atgh_pos_min_z_quantizer字段。当ASPS中包括的asps_normal_axis_limits_quantization_enabled_flag和asps_axis_max_enabled_flag字段二者的值为1时,包括atgh_pos_delta_max_z_quantizer字段。
根据实施方式,当包括在ASPS中的asps_patch_size_quantizer_present_flag字段的值为1时,包括atgh_patch_size_x_info_quantizer字段和atgh_patch_size_y_info_quantizer字段。当AFPS中包括的afps_raw_3d_pos_bit_count_explicit_mode_flag字段的值为1时,包括atgh_raw_3d_pos_axis_bit_explicit_minus1字段。
根据实施方式,当atgh_type字段指示P_TILE_GRP并且num_ref_entries[RlsIdx]大于1时,阿特拉斯拼块组(或拼块)头还包括atgh_num_ref_idx_active_override_flag字段。当atgh_num_ref_idx_active_override_flag字段的值为1时,atgh_num_ref_idx_active_minus1字段被包括在阿特拉斯拼块组(或拼块)头中。
atgh_pos_min_z_quantizer指定要应用于具有索引p的补片的pdu_3d_pos_min_z[p]的量化器。如果atgh_pos_min_z_quantizer字段不存在,则可以推断其值等于0。
atgh_pos_delta_max_z_quantizer字段指定要应用于具有索引p的补片的pdu_3d_pos_delta_max_z[p]字段的值的量化器。如果atgh_pos_delta_max_z_quantizer字段不存在,则可以推断其值等于0。
atgh_patch_size_x_info_quantizer字段指定要应用于具有索引p的补片的变量pdu_2d_size_x_minus1[p]、mpdu_2d_delta_size_x[p]、ipdu_2d_delta_size_x[p]、rpdu_2d_size_x_minus1[p]和epdu_2d_size_x.minus1[p]的变量的量化器PatchSizeXQuantizer的值。如果atgh_patch_size_x_info_quantizer字段不存在,则可以推断其值等于asps_log2_patch_packing_block_size字段。
atgh_patch_size_y_info_quantizer字段指定要应用于具有索引p的补片的变量pdu_2d_size_y_minus1[p]、mpdu_2d_delta_size_y[p]、ipdu_2d_delta_size_y[p]、rpdu_2d_size_y_minus1[p]和epdu_2d_size_y_minus1[p]的变量的量化器PatchSizeYQuantizer的值。如果atgh_patch_size_y_info_quantizer字段不存在,则可以推断其值等于asps_log2_patch_packing_block_size字段。
atgh_raw_3d_pos_axis_bit_count_minus1字段加1指定rpdu_3d_pos_x、rpdu_3d_pos_y和rpdu_3d_pos_z的固定长度表示中的比特数。
atgh_num_ref_idx_active_override_flag字段等于1指定语法元素atgh_num_ref_idx_active_minus1字段存在于当前阿特拉斯拼块组(或拼块)。atgh_num_ref_idx_active_override_flag字段等于0指定语法元素atgh_num_ref_idx_active_minus1不存在。如果atgh_num_ref_idx_active_override_flag字段不存在,则可以推断其值等于0。
atgh_num_ref_idx_active_minus1字段加1指定可以用于解码当前阿特拉斯拼块组的参考阿特拉斯帧列表的最大参考索引。当atgh_num_ref_idx_active_minus1字段的值等于0时,可以不使用参考阿特拉斯帧列表的参考索引来解码当前阿特拉斯拼块组(或拼块)。
byte_alignment用于在添加1(其是停止比特)后用0填充剩余比特以进行字节对齐,来指示数据的结束。
如上所述,一个或更多个ref_list_struct(rlsIdx)语法结构可以包括在ASPS中和/或可以直接包括在阿特拉斯拼块组(或拼块)头中。
图49示出根据实施方式的ref_list_struct()的语法结构的示例。
在图49中,num_ref_entries[rlsIdx]字段指定ref_list_struct(rlsIdx)语法结构中的条目数。
与num_ref_entries[rlsIdx]字段的值一样多的以下元素可以被包括在参考列表结构中。
当asps_long_term_ref_atlas_frames_flag字段等于1时,参考阿特拉斯帧标志(st_ref_atlas_frame_flag[rlsIdx][i])可以被包括在参考列表结构中。
当第i个条目是ref_list_struct(rlsIdx)语法结构中的第一个短期参考阿特拉斯帧条目时,abs_delta_afoc_st[rlsIdx][i]字段指定当前阿特拉斯拼块组与第i个条目引用的阿特拉斯帧的阿特拉斯帧顺序计数值之间的绝对差。当第i个条目是短期参考阿特拉斯帧条目但不是ref_list_struct(rlsIdx)中的第一个短期参考阿特拉斯帧条目时,该字段指定由ref_list_struct(rlsIdx)语法结构中的第i个条目和前一个短期参考阿特拉斯帧条目引用的阿特拉斯帧的阿特拉斯帧顺序计数值之间的绝对差。
当st_ref_atlas_frame_flag[rlsIdx][i]字段等于1时,abs_delta_afoc_st[rlsIdx][i]字段可以包括在参考列表结构中。
abs_delta_afoc_st[rlsIdx][i]字段指定当第i个条目是ref_list_struct(rlsIdx)语法结构中的第一个短期参考阿特拉斯帧条目时,当前阿特拉斯拼块组与第i个条目引用的阿特拉斯帧的阿特拉斯帧顺序计数值之间的绝对差,或指定当第i个条目是短期参考阿特拉斯帧条目但不是ref_list_struct(rlsIdx)语法结构中的第一个短期参考阿特拉斯帧条目时,ref_list_struct(rlsIdx)语法结构中的第i个条目和前一个短期参考阿特拉斯帧条目所引用的阿特拉斯帧的阿特拉斯帧顺序计数值之间的绝对差。
当abs_delta_afoc_st[rlsIdx][i]字段的值大于0时,条目符号标志(strpf_entry_sign_flag[rlsIdx][i])字段可以包括在参考列表结构中。
strpf_entry_sign_flag[rlsIdx][i]字段等于1指定语法结构ref_list_struct(rlsIdx)字段中的第i个条目具有大于或等于0的值。strpf_entry_sign_flag[rlsIdx][i]字段等于0指定语法结构ref_list_struct(rlsIdx)中的第i个条目具有小于0的值。当不存在时,可以推断strpf_entry_sign_flag[rlsIdx][i]字段的值等于1。
当ASPS中包括的asps_long_term_ref_atlas_frames_flag等于0时,afoc_lsb_lt[rlsIdx][i]字段可以包括在参考列表结构中。
afoc_lsb_lt[rlsIdx][i]字段指定由ref_list_struct(rlsIdx)字段中的第i个条目引用的阿特拉斯帧的阿特拉斯帧顺序计数模MaxAtlasFrmOrderCntLsb的值。afoc_lsb_lt[rlsIdx][i]字段的长度为asps_log2_max_atlas_frame_order_cnt_lsb_minus4+4比特。
图50示出根据实施方式的阿特拉斯拼块组数据(atlas_tile_group_data_unit)。
图50示出包括在图46的阿特拉斯拼块组(或拼块)层中的阿特拉斯拼块组数据(atlas_tile_group_data_unit())的语法。阿特拉斯拼块组数据可以对应于阿特拉斯拼块数据,并且拼块组可以称为拼块。
在图50中,随着p从0递增1,根据索引p的阿特拉斯相关元素(或字段)可以包括在阿特拉斯拼块组(或拼块)数据中。
atgdu_patch_mode[p]字段指示当前阿特拉斯拼块组中索引为p的补片的补片模式。当阿特拉斯拼块组(或拼块)头中包括的atgh_type字段指示SKIP_TILE_GRP时,这指示整个拼块组(或拼块)信息直接从与对应于第一参考阿特拉斯帧的当前拼块组(或拼块)具有相同atgh_address的拼块组(或拼块)复制而来。
当atgdu_patch_mode[p]字段不是I_END并且atgdu_patch_mode[p]不是P_END时,patch_information_data和atgdu_patch_mode[p]可以包括在每个索引p的阿特拉斯拼块组数据(或阿特拉斯拼块数据)中。
图51示出根据实施方式的当atgh_type字段指示I_TILE_GRP时指派给atgdu_patch_mode字段的补片模式类型的示例。
例如,atgdu_patch_mode字段等于0指示标识符为I_INTRA的非预测补片模式。
atgdu_patch_mode字段等于1指示标识符为I_RAW的RAW点补片模式。
atgdu_patch_mode字段等于2指示标识符为I_EOM的EOM点补片模式。
atgdu_patch_mode字段等于14指示标识符为I_END的补片终止模式。
图52示出根据实施方式的当atgh_type字段指示P_TILE_GRP时指派给atgdu_patch_mode字段的补片模式类型的示例。
例如,atgdu_patch_mode字段等于0指示标识符为P_SKIP的补片跳过模式。
atgdu_patch_mode字段等于1指示标识符为P_MERGE的补片合并模式。
atgdu_patch_mode字段等于2指示标识符为P_INTER的帧间预测补片模式。
atgdu_patch_mode字段等于3指示标识符为P_INTRA的非预测补片模式。
atgdu_patch_mode字段等于4指示标识符为P_RAW的RAW点补片模式。
atgdu_patch_mode字段等于5指示标识符为P_EOM的EOM点补片模式。
atgdu_patch_mode字段等于14指示标识符为P_END的补片终止模式。
图53示出根据实施方式的当atgh_type字段指示SKIP_TILE_GRP时指派给atgdu_patch_mode字段的补片模式类型的示例。
例如,atgdu_patch_mode等于0指示标识符为P_SKIP的补片跳过模式。
根据实施方式,阿特拉斯拼块组(或拼块)数据单元还可以包括AtgduTotalNumberOfPatches字段。AtgduTotalNumberOfPatches字段指示补片的数量并且可以设置为p的最终值。
图54示出根据实施方式的补片信息数据(patch_information_data(patchIdx,patchMode))。
图54示出包括在图50的拼块组(或拼块)数据单元中的补片信息数据(patch_information_data(p,atgdu_patch_mode[p]))的语法结构的示例。在图50的patch_information_data(p,atgdu_patch_mode[p])中,p对应于图54的patchIdx,并且atgdu_patch_mode[p]对应于图54的patchMode。
例如,当atgh_type字段指示SKIP_TILE_GR时,skip_patch_data_unit(patchIdx)作为补片信息数据被包括在内。
当atgh_type字段指示P_TILE_GR时,根据patchMode,skip_patch_data_unit(patchIdx)、merge_patch_data_unit(patchIdx)、patch_data_unit(patchIdx)、inter_patch_data_unit(patchIdx)、raw_patch_data_unit(patchIdx)和eom_patch_data_unit(patchIdx)之一可以作为补片信息数据包括在内。
例如,当patchMode指示补片跳过模式(P_SKIP)时,包括skip_patch_data_unit(patchIdx)。当patchMode指示补片合并模式(P_MERGE)时,包括merge_patch_data_unit(patchIdx)。当patchMode指示P_INTRA时,包括patch_data_unit(patchIdx)。当patchMode指示P_INTER时,包括inter_patch_data_unit(patchIdx)。当patchMode指示RAW点补片模式(P_RAW)时,包括raw_patch_data_unit(patchIdx)。当patchMode为EOM点补片模式(P_EOM)时,包括eom_patch_data_unit(patchIdx)。
当atgh_type字段指示I_TILE_GR时,可以根据patchMode包括patch_data_unit(patchIdx)、raw_patch_data_unit(patchIdx)和eom_patch_data_unit(patchIdx)之一作为补片信息数据。
例如,当patchMode指示I_INTRA时,包括patch_data_unit(patchIdx)。当patchMode指示RAW点补片模式(I_RAW)时,包括raw_patch_data_unit(patchIdx)。当patchMode指示EOM点补片模式(I_EOM)时,包括eom_patch_data_unit(patchIdx)。
图55示出根据实施方式的补片数据单元(patch_data_unit(patchIdx))的语法结构。如上所述,当atgh_type字段指示P_TILE_GR并且patchMode指示P_INTRA时,或者当atgh_type字段指示I_TILE_GR并且patchMode指示I_INTRA时,可以包括patch_data_unit(patchIdx)作为补片信息数据。
在图55中,pdu_2d_pos_x[p]字段指示当前阿特拉斯拼块组(或拼块)(tileGroupIdx)中具有索引p的补片的补片边界框的左上角的x坐标(或左偏移)。阿特拉斯拼块组(或拼块)可以具有拼块组(或拼块)索引(tileGroupIdx)。tileGroupIdx可以表示为PatchPackingBlockSize的倍数。
pdu_2d_pos_y[p]字段指示当前阿特拉斯拼块组(或拼块)(tileGroupIdx)中具有索引p的拼块的拼块边界框的左上角的y坐标(或上偏移)。tileGroupIdx可以表示为PatchPackingBlockSize的倍数。
pdu_2d_size_x_minus1[p]字段加1指定当前阿特拉斯拼块组(或拼块)tileGroupIdx中索引为p的补片的量化宽度值。
pdu_2d_size_y_minus1[p]字段加1指定当前阿特拉斯拼块组(或拼块)tileGroupIdx中索引为p的补片的量化高度值。
pdu_3d_pos_x[p]字段指定要应用于当前阿特拉斯拼块组(或拼块)的索引为p的补片中的重构补片点沿切线轴的偏移。
pdu_3d_pos_y[p]字段指定要应用于当前阿特拉斯拼块组(或拼块)的索引为p的补片中的重构补片点沿双切轴的偏移。
pdu_3d_pos_min_z[p]字段指定要应用于当前阿特拉斯拼块组(或拼块)的索引为p的补片中的重构补片点沿法线轴的偏移。
当包括在ASPS中的asps_normal_axis_max_delta_value_enabled_flag字段的值等于1时,pdu_3d_pos_delta_max_z[patchIdx]字段可以包括在补片数据单元中。
如果存在,pdu_3d_pos_delta_max_z[p]字段指定在转换为它们的标称表示后,在当前阿特拉斯拼块组(或拼块)的索引p的补片中的重构bitdepth补片几何样本中预期存在的沿法线轴的移位的标称最大值。
pdu_projection_id[p]字段指定当前阿特拉斯拼块组(或拼块)的索引为p的补片的投影模式和投影平面的法线的索引的值。
pdu_orientation_index[p]字段指示当前阿特拉斯拼块组(或拼块)的索引为p的补片的补片取向索引。pdu_orientation_index[p]字段将参照图56进行描述。
当AFPS中包括的afps_lod_mode_enabled_flag字段的值等于1时,pdu_lod_enabled_flag[patchIndex]可以包括在补片数据单元中。
当pdu_lod_enabled_flag[patchIndex]字段大于0时,pdu_lod_scale_x_minus1[patchIndex]字段和pdu_lod_scale_y[patchIndex]字段可以包括在补片数据单元中。
当pdu_lod_enabled_flag[patchIndex]字段等于1且patchIndex为p时,它指定具有索引p的当前补片存在LOD参数。如果pdu_lod_enabled_flag[p]字段等于0,则当前补片不存在LOD参数。
pdu_lod_scale_x_minus1[p]字段加1指定在将其添加到补片坐标Patch3dPosX[p]之前要应用于当前阿特拉斯拼块组(或拼块)的索引为p的补片中的点的本地x坐标的LOD缩放因子。
pdu_lod_scale_y[p]字段指定在将其添加到补片坐标Patch3dPosY[p]之前要应用于当前阿特拉斯拼块组(或拼块)的索引为p的补片中的点的本地y坐标的LOD缩放因子。
当包括在ASPS中的asps_point_local_reconstruction_enabled_flag字段的值等于1时,可以在补片数据单元中包括point_local_reconstruction_data(patchIdx)。
根据实施方式,point_local_reconstruction_data(patchIdx)可以包含允许解码器恢复由于压缩损失等而丢失的点的信息。
图56示出根据实施方式的相对于补片取向的旋转和偏移。
图56示出指派给图55的补片取向索引(pdu_orientation_index[p]字段)的旋转矩阵和偏移。
根据实施方式的方法/装置可以对点云数据执行取向操作。该操作可以使用图56所示的标识符、旋转和偏移来执行。
根据实施方式,NAL单元可以包括SEI信息。例如,可以根据nal_unit_type将非必要补充增强信息或必要补充增强信息包括在NAL单元中。
图57示例性地示出根据实施方式的包括sei_message()的SEI信息的语法结构。
SEI消息有助于与解码、重构、显示或其它目的相关的过程。根据实施方式,可以存在两种类型的SEI消息:必要和非必要。
解码过程可能不需要非必要SEI消息。可能不需要一致性解码器来处理此信息以用于输出顺序一致性。
必要SEI消息可以是V-PCC比特流的整数部分,并且不应从比特流中去除。必要SEI消息可以分类为以下两种类型:
类型A必要SEI消息包含检查比特流一致性和输出定时解码器一致性所需的信息。每个符合点A的V-PCC解码器可以不丢弃任何类型A必要SEI消息,并且为了比特流一致性和输出定时解码器一致性而考虑它们。
类型B必要SEI消息:符合特定重构简档的V-PCC解码器可以不丢弃任何类型B必要SEI消息,并且为了3D点云重构和一致性目的而考虑它们。
根据实施方式,SEI消息由SEI消息头和SEI消息有效载荷组成。SEI消息头包括sm_payload_type_byte字段和sm_payload_size_byte字段。
sm_payload_type_byte字段指示SEI消息的有效载荷类型。例如,可以基于sm_payload_type_byte字段的值来识别SEI消息是前缀SEI消息还是后缀SEI消息。
sm_payload_size_byte字段指示SEI消息的有效载荷大小。
根据实施方式,sm_payload_type_byte字段被设置为SEI消息有效载荷中的PayloadType的值,并且sm_payload_size_byte字段被设置为SEI消息有效载荷中的PayloadSize的值。
图58示出根据实施方式的SEI消息有效载荷(sei_payload(payloadType,payloadSize))的语法结构的示例。
在实施方式中,当nal_unit_type是NAL_PREFIX_NSEI或NAL_PREFIX_ESEI时,根据PayloadType,SEI消息有效载荷可以包括sei(payloadSize)。
在另一实施方式中,当nal_unit_type为NAL_SUFFIX_NSEI或NAL_SUFFIX_ESEI时,根据PayloadType,SEI消息有效载荷可包括sei(payloadSize)。
具有图24所示的结构的V-PCC比特流可以按原样发送到接收侧,也可以由图1、图18、图20或图21的文件/片段封装器封装成ISOBMFF文件格式并发送到接收侧。
在后一种情况下,V-PCC比特流可以通过文件中的多个轨道发送,也可以通过单个轨道发送。在这种情况下,文件可以通过图20或图22的接收装置的文件/片段解封装器解封装成V-PCC比特流。
例如,载送V-PCC参数集、几何比特流、占用图比特流、属性比特流和/或阿特拉斯数据比特流的V-PCC比特流可以被图20或图21的文件/片段封装器封装成基于ISOBMFF(ISO基础媒体文件格式)的文件格式。在这种情况下,根据实施方式,V-PCC比特流可以存储在基于ISOBMFF的文件中的单个轨道或多个轨道中。
根据实施方式,基于ISOBMFF的文件可以被称为容器、容器文件、媒体文件、V-PCC文件等。具体地,文件可以由可以称为ftyp、meta、moov或mdat的盒和/或信息组成。
ftyp盒(文件类型盒)可以提供与文件的文件兼容性或文件类型有关的信息。接收侧可以参考ftyp盒来识别文件。
meta盒可以包括vpcg{0,1,2,3}盒(V-PCC组盒)。
mdat盒,也称为媒体数据盒,包括实际媒体数据。根据实施方式,视频编码的几何比特流、视频编码的属性比特流、视频编码的占用图比特流和阿特拉斯数据比特流被包含在文件的mdat盒的样本中。根据实施方式,样本可以称为V-PCC样本。
也称为电影盒的moov盒可以包含关于文件的媒体数据(例如,几何比特流、属性比特流、占用图比特流等)的元数据。例如,它可以包含解码和播放媒体数据所需的信息,以及关于文件的样本的信息。moov盒可以用作所有元数据的容器。moov盒可以是元数据相关盒当中的最高层的盒。根据实施方式,文件中可以仅存在一个moov盒。
根据实施方式的盒可以包括提供与文件的轨道有关的信息的轨道(trak)盒。轨道盒可以包括提供关于轨道的媒体信息的媒体(mdia)盒和用于参考轨道和对应于轨道的文件的样本的轨道参考容器(tref)盒。
mdia盒可以包括提供关于对应的媒体数据的信息的媒体信息容器(minf)盒以及指示流的类型的处置器(hdlr)盒(HandlerBox)。
minf盒可以包括提供与mdat盒的样本相关的元数据的样本表(stbl)盒。
stbl盒可以包括样本描述(stsd)盒,该样本描述(stsd)盒提供关于所采用的编码类型的信息和该编码类型所需的初始化信息。
根据实施方式,stsd盒可以包括用于存储V-PCC比特流的轨道的样本条目。
在本公开中,文件中载送部分或全部的V-PCC比特流的轨道可以称为V-PCC轨道或体积视觉轨道(或体积轨道)。
为了将根据实施方式的V-PCC比特流存储在文件中的单个轨道或多个轨道中,本公开可以定义体积视觉轨道、体积视觉媒体头、体积样本条目、体积样本、以及V-PCC轨道的样本和简单条目。
本文使用的术语V-PCC可以与基于视觉体积视频的编码(V3C)相同。这两个术语可以用来相互补充。
根据实施方式,基于视频的点云压缩(V-PCC)表示点云视觉信息的体积编码。
也就是说,moov盒的trak盒中的minf盒还可以包括体积视觉媒体头盒。体积视觉媒体头盒包含关于包含体积视觉场景的体积视觉轨道的信息。
每个体积视觉场景可以由唯一的体积视觉轨道来表示。ISOBMFF文件可以包含多个场景,因此ISOBMFF文件中可以存在多个体积视觉轨道。
根据实施方式,体积视觉轨道可以由MediaBox的HandlerBox中的体积视觉媒体处置器类型'volv'和/或mdia盒(MediaBox)的minf盒中的体积视觉媒体头(vvhd)来识别。minf盒可以称为媒体信息容器或媒体信息盒。minf盒被包括在mdia盒中。mdia盒被包括在trak盒中。trak盒被包括在文件的moov盒中。文件中可以存在单个体积视觉轨道或多个体积视觉轨道。
根据实施方式,体积视觉轨道可以使用MediaInformationBox中的VolumetricVisualMediaHeaderBox。MediaInformationBox被称为minf盒,而VolumetricVisualMediaHeaderBox被称为vvhd盒。
根据实施方式,体积视觉媒体头(vvhd)盒的语法可以定义如下。
盒类型:'vvhd'
容器:MediaInformationBox
强制:是
数量:正好一个
根据实施方式的体积视觉媒体头盒(即,vvhd类型盒)的语法如下所示。
aligned(8)类VolumetricVisualMediaHeaderBox
扩展FullBox('vvhd',version=0,1){
}
version可以是指示该盒的版本的整数。
根据实施方式,体积视觉轨道可以使用VolumetricVisualSampleEntry来发送信令信息,并且可以使用VolumetricVisualSample来发送实际数据。
根据实施方式,体积视觉样本条目可称为样本条目或V-PCC样本条目,并且体积视觉样本可称为样本或V-PCC样本。
根据实施方式,单个体积视觉轨道或多个体积视觉轨道可以存在于文件中。根据实施方式,单个体积视觉轨道可以被称为单个轨道或V-PCC单个轨道,并且多个体积视觉轨道可以被称为多个轨道或多个V-PCC轨道。
VolumetricVisualSampleEntry的语法结构的示例如下所示。
类VolumetricVisualSampleEntry(codingname)扩展SampleEntry(codingname){
unsigned int(8)[32]compressor_name;
}
compressor_name字段是用于信息目的的压缩器的名称。它被格式化为固定的32字节字段,其中第一个字节设置为要显示的字节的数量,然后是使用UTF-8编码的可显示数据的字节数,然后填充以完成总共32个字节(包括大小字节)。该字段可以设置为0。
根据实施方式,体积视觉样本的格式可以由编码系统定义。
根据实施方式,V-PCC单元头盒可以存在于包括在样本条目中的V-PCC轨道和包括在方案信息中的所有视频编码的V-PCC分量轨道中。V-PCC单元头盒可以包含如下的用于由各个轨道载送的数据的V-PCC单元头。
aligned(8)类VPCCUnitHeaderBox extends FullBox('vunt',version=0,0){
vpcc_unit_header()unit_header;
}
也就是说,VPCCUnitHeaderBox可以包括vpcc_unit_header()。图30示出vpcc_unit_header()的语法结构的示例。
根据实施方式,从其继承VolumetricVisualSampleEntry的样本条目(即,VolumetricVisualSampleEntry的上类)包括VPCC解码器配置盒(VPCCConfigurationBox)。
根据实施方式,VPCCConfigurationBox可以包括如下所示的VPCCDecoderConfigurationRecord。
类VPCCConfigurationBox extends Box(‘VpcC’){
VPCCDecoderConfigurationRecord()VPCCConfig;
}
根据实施方式,VPCCDDecoderConfigurationRecord()的语法可以定义如下。
aligned(8)类VPCCDDecoderConfigurationRecord{
unsigned int(8)configurationVersion=1;
unsigned int(2)lengthSizeMinusOne;
bit(1)reserved=1;
unsigned int(5)numOfVPCCParameterSets;
for(i=0;i<numOfVPCCParameterSets;i++){
unsigned int(16)VPCCParameterSetLength;
vpcc_unit(VPCCParameterSetLength)vpccParameterSet;
}
unsigned int(8)numOfSetupUnitArrays;
for(j=0;j<numOfSetupUnitArrays;j++){
bit(1)array_completeness;
bit(1)reserved=0;
unsigned int(6)NAL_unit_type;
unsigned int(8)numNALUnits;
for(i=0;i<numNALUnits;i++){
unsigned int(16)SetupUnitLength;
nal_unit(SetupUnitLength)setupUnit;
}
}
}
configurationVersion是版本字段。对记录的不兼容更改由版本号的更改指示。
当lengthSizeMinusOne字段的值加1时,可以指示包括在VPCCDecoderConfigurationRecord或应用了VPCCDecoderConfigurationRecord的流的V-PCC样本中的NALUnitLenght字段的长度(以字节为单位)。例如,1个字节的大小由“0”指示。该字段的值与阿特拉斯子流的sample_stream_nal_header()中的ssnh_unit_size_precision_bytes_minus1字段的值相同。图35示出包括ssnh_unit_size_precision_bytes_minus1字段的sample_stream_nal_header()的语法结构示例。ssnh_unit_size_precision_bytes_minus1字段的值加1可以指示所有样本流NAL单元中的ssnu_vpcc_unit_size元素的精度,以字节为单位。
numOfVPCCParameterSets指定在VPCCDecoderConfigurationRecord中发信号通知的V-PCC参数集(VPS)的数量。
VPCC参数集是VPCC_VPS类型的V-PCC单元的sample_stream_vpcc_unit()实例。V-PCC单元可以包括vpcc_parameter_set()。也就是说,VPCCParameterSet阵列可以包括vpcc_parameter_set()。图27示出sample_stream_vpcc_unit()的语法结构示例。
numOfSetupUnitArrays指示指定类型的阿特拉斯NAL单元的阵列的数量。
重复次数与numOfSetupUnitArrays的值一样多的n迭代语句可以包含array_completeness。
array_completeness等于1指示给定类型的所有阿特拉斯NAL单元都在以下阵列中,并且没有在流中。array_completeness等于0指示指定类型的附加阿特拉斯NAL单元可以在流中。默认值和允许值受样本条目名称的约束。
NAL_unit_type指示以下阵列中的阿特拉斯NAL单元的类型。NAL_unit_type被约束为采用指示NAL_ASPS、NAL_AFPS、NAL_AAPS、NAL_PREFIX_ESEI、NAL_SUFFIX_ESEI、NAL_PREFIX_NSEI或NAL_SUFFIX_NSEI阿特拉斯NAL单元的值之一。
numNALUnits字段指示包括在VPCCDDecoderConfigurationRecord应用到的流的VPCCDDecoderConfigurationRecord中的指定类型的阿特拉斯NAL单元的数量。SEI阵列应仅包含SEI消息。
SetupUnitLength字段指示setupUnit字段的大小(以字节为单位)。该字段包括NAL单元头和NAL单元有效载荷二者的大小,但不包括长度字段本身。
setupUnit是包含NAL_ASPS、NAL_AFPS、NAL_AAPS、NAL_PREFIX_ESEI、NAL_PREFIX_NSEI、NAL_SUFFIX_ESEI或NAL_SUFFIX_NSEI类型的NAL单元的sample_stream_nal_unit()实例。
根据实施方式,SetupUnit阵列可以包括阿特拉斯参数集,其对于其中存在VPCCDDecoderConfigurationRecord的样本条目引用的流是恒定的,并且包括阿特拉斯子流必要或非必要SEI消息。根据实施方式,阿特拉斯设置单元可以简称为设置单元。
根据实施方式,文件/片段封装器可以向样本条目添加与样本的分组、轨道的分组、在V-PCC比特流的单个轨道中的封装、在V-PCC比特流的多个轨道中的封装、或视口相关的信令信息,或者以盒或FullBox的形式支持空间访问的信令信息,或者可以将其添加到单独的元数据轨道。下面将详细描述相应的盒。
在下文中,将描述视口相关信息和/或3D区域相关信息,它们被包括在文件的至少一个轨道中的样本、样本条目、样本组或轨道组中发信号通知,或者在单独的元数据轨道中发信号通知的信令信息中。
3D点信息结构
根据实施方式,3D点信息可以包括如下关于每个点的位置信息。
aligned(8)class 3DPoint(){
unsigned int(16)point_x;
unsigned int(16)point_y;
unsigned int(16)point_z;
}
3DPoint()可以包含pos_x字段、pos_y字段和pos_z字段。
pos_x字段、pos_y字段和pos_z字段可以指示笛卡尔坐标中的x、y和z坐标值。
立方体区域信息结构
根据实施方式,立方体区域信息可以包括与在笛卡尔坐标系中发信号通知的锚点相关的立方体区域信息,如下所述。
aligned(8)class CuboidRegionStruct(){
unsigned int(16)cuboid_dx;
unsigned int(16)cuboid_dy;
unsigned int(16)cuboid_dz;
}
CuboidRegionStruct()可以包括cuboid_region_dx字段、cuboid_region_dy字段和cuboid_region_dz字段。
cuboid_dx、cuboid_dy和cuboid_dz可以分别指示笛卡尔坐标中相对于某个点(或锚点)沿x、y和z轴的立方体子区域的维度。
3D空间区域信息结构
根据实施方式,3D空间区域信息可以包括如下的3D点信息和立方体区域信息。
aligned(8)class 3DSpatialRegionStruct(dimensions_included_flag){
unsigned int(16)3d_region_id;
3DPoint 3d_region_anchor;
if(dimensions_included_flag){
CuboidRegionStruct();
}
}
在3DSpatialRegionStruct(dimensions_included_flag)中,dimensions_included_flag是指示是否发信号通知3D空间区域的维度的标志。也就是说,当dimensions_included_flag字段的值为“真”时,3D空间区域信息包括CuboidRegionStruct()。
3d_region_id是用于标识3D空间区域的标识符。
3d_region_anchor指示笛卡尔坐标系中的用作3D空间区域的锚点的3D点。例如,当3D区域为立方体类型时,锚点可以是立方体的原点,而cuboid_region_dx、cuboid_region_dy和cuboid_region_dz可以表示x坐标、y坐标和z坐标的值。
视口相机信息结构
aligned(8)class ViewportCameraParameterStruct(){
unsigned int(10)camera_id;
unsigned int(8)camera_type;
if(camera_type==0){
signed int(32)erp_horizontal_fov;
signed int(32)erp_vertical_fov;
}
if(camera_type==1){
signed int(32)perspective_horizontal_fov;
signed int(32)perspective_vertical_fov;
}
if(camera_type==2){
signed int(32)ortho_aspect_ratio;
signed int(32)ortho_horizontal_size;
}
unsigned int(32)clipping_near_plane;
unsigned int(32)clipping_far_plane;
}
根据实施方式,视口相机信息结构(ViewportCameraParameterStruct())可以被称为内在相机信息(IntCameraInfoStruct)。
根据实施方式,视口相机信息结构(ViewportCameraParameterStruct())可以包括camera_id字段和camera_type字段。
camera_id包含可用于标识视口相机参数的标识号。
camera_type字段指示视口相机的投影方式。camera_type等于0可以指定等量矩形投影。camera_type等于1可以指定透视投影。camera_type等于2可以指定正交投影。
根据实施方式,当camera_type等于0时,视口相机信息结构(ViewportCameraParameterStruct())还可以包括erp_horizontal_fov字段和erp_vertical_fov字段。当camera_type等于1时,ViewportCameraParameterStruct()还可以包括perspective_horizontal_fov字段和perspective_vertical_fov字段。当camera_type等于2时,ViewportCameraParameterStruct()还可以包括ortho_aspect_ratio字段和ortho_horizontal_size字段。
erp_horizontal_fov指示视口区域的水平大小,并且erp_vertical_fov指示视口区域的垂直大小。
perspective_horizontal_fov指示透视投影的水平视场。
perspective_vertical_fov指示透视投影的视口的相对纵横比。
ortho_aspect_ratio指示正交投影的视口的相对纵横比(水平/垂直)。
ortho_horizontal_size指示正交视口的水平大小。
视口相机信息结构(ViewportCameraParameterStruct())还可以包括clipping_near_plane字段和clipping_far_plane字段。
clipping_near_plane指示给定视口的近裁剪平面的距离。
clipping_far_plane指示给定视口的远裁剪平面的距离。
视口信息结构
根据实施方式,视口信息结构(ViewportInfoStruct())可以包括与如下所示的视口位置、视口相机参数和视口取向相关的信息。根据实施方式,视口信息结构(ViewportInfoStruct())可以被称为外部相机信息(ExtCameraInfoStruct)。
aligned(8)class ViewportInfoStruct(vp_pos_present){
unsigned int(15)viewport_id;
unsigned_int(1)camera_param_present;
unsigned_int(1)vp_center_view_flag;
if(camera_param_present){
unsigned int(32)camera_id;
ViewportCameraParameterStruct();
if(vp_pos_present){
signed int(32)vp_pos_x;
signed int(32)vp_pos_y;
signed int(32)vp_pos_z;
}
signed int(32)vp_quat_x;
signed int(32)vp_quat_y;
signed int(32)vp_quat_z;
if(!vp_center_view_flag){
unsigned int(1)vp_left_view_flag;
}
}
}
根据实施方式,ViewportInfoStruct(vp_pos_present)中的vp_pos_present可以指示视口位置信息是否包括在视口信息结构(ViewportInfoStruct)中。
根据实施方式,ViewportInfoStruct()可以包括viewport_id字段、camera_param_present字段和vp_center_view_flag字段。
viewport_id字段包括可用于标识视口的标识号。
camera_parameter_present字段可以指示camera_id是否存在。例如,camera_parameter_present等于1指示camera_id存在。camera_parameters_present_flag等于0指示camera_id不存在。
vp_center_view_flag可以指示发信号通知的视口信息是对应于视口的中心还是对应于视口的两个立体位置之一。例如,vp_center_view_flag等于1可以指示发信号通知的视口信息对应于视口的中心。等于0的vp_center_view_flag可以指示发信号通知的视口信息对应于视口的两个立体位置之一。
根据实施方式,当camera_param_present等于1时,ViewportInfoStruct()还可以包括camera_id字段和ViewportCameraParameterStruct()。
camera_id是标识视口相机参数的标识符。
ViewportCameraParameterStruct()可以包括视口相机信息和与视口相关的参数。
根据实施方式,当vp_pos_present字段的值为“真”时,ViewportInfoStruct()还可以包括vp_pos_x字段、vp_pos_y字段和vp_pos_z字段。
vp_pos_x、vp_pos_y和vp_pos_z指示视口沿x、y和z轴的位置。
根据实施方式,ViewportInfoStruct()还可以包括vp_quat_x字段、vp_quat_y字段和vp_quat_z字段。
vp_quat_x、vp_quat_y和vp_quat_z分别指示使用四元数表示的视口区域旋转的x、y和z分量。
根据实施方式,当vp_center_view_flag字段的值为“假”(即,0)时,ViewportInfoStruct()还可以包括vp_left_view_flag字段。
vp_left_view_flag字段可以指示发信号通知的视口信息是否对应于视口的左立体位置。例如,vp_left_view_flag等于1可以指示发信号通知的视口信息对应于视口的左立体位置。vp_left_view_flag等于0可以指示发信号通知的视口信息对应于视口的右立体位置。
观看信息结构
根据实施方式,ViewinginformationStruct()可以包括如下的ViewportInfoStruct()。
aligned(8)class ViewingInformationStruct(){
unsigned int(1)vi_pos_flag;
ViewportInfoStruct(vi_pos_flag);
}
根据实施方式,ViewinginformationStruct()可以包括vi_pos_flag字段,并且当vi_pos_flag等于1时,可以包括ViewportInfoStruct(vi_pos_flag)。
也就是说,vi_pos_flag字段可以指示视口信息结构是否包括在观看信息结构中。当vi_pos_flag字段等于1时,观看信息结构可以包括视口信息结构。
上面已经详细描述了ViewportInfoStruct(),因此将跳过其描述以避免冗余描述。
在本公开中,为了简单起见,视口信息结构将被称为视口信息或视口相关信息,并且观看信息结构将被称为观看信息或观看相关信息。
根据另一实施方式,观看信息结构(ViewinginformationStruct())可以包括与观看位置、观看取向和观看方向如下。
aligned(8)class ViewingInformationStruct(){
unsigned int(2)reserved=0;
unsigned int(1)pos_present;
unsigned int(1)dir_present;
unsigned int(1)orientation_present;
unsigned int(1)coord_present;
if(pos_present){
unsigned int(1)refreseh_pos_flag;
unsigned int(16)pos_x;
unsigned int(16)pos_y;
unsigned int(16)pos_z;
}
if(coord_present){
unsigned int(4)coord_type;
unsigned int(16)up_x;
unsigned int(16)up_y;
unsigned int(16)up_z;
unsigned int(16)front_x;
unsigned int(16)front_y;
unsigned int(16)front_z;
}
if(dir_present){
unsigned int(1)refreseh_dir_flag;
unsigned int(8)dir_coord;
unsigned int(16)dir_x;
unsigned int(16)dir_y;
unsigned int(16)dir_z;
}
if(orientation_present){
unsigned int(1)refreseh_rot_flag;
unsigned int(8)rot_coord;
unsigned int(16)rot_x;
unsigned int(16)rot_y;
unsigned int(16)rot_z;
}
}
根据实施方式,ViewinginformationStruct()可以包括pos_present字段、dir_present字段、orientation_present字段和coord_present字段。
pos_present是指示是否在ViewinginformationStruct()中发信号通知观看位置信息的标志。
dir_present是指示是否在ViewinginformationStruct()中发信号通知关于用户观看的方向的信息。
orientation_present是指示是否将关于用户的观看取向信息发信号通知给ViewinginformationStruct()的标志。
coord_present是指示用于确定用户视口、用户观看取向和用户观看方向的坐标系相关信息是否在ViewinginformationStruct()中发信号通知的标志。
当pos_present字段的值为“真”时,ViewinginformationStruct()还可以包括refreseh_pos_flag字段、pos_x字段、pos_y字段和pos_z字段。
refreseh_pos_flag是指示发信号通知的观看信息是否用于渲染的标志。
pos_x、pos_y和pos_z可以指示观看位置在3D空间中沿x、y和z轴的偏移。
当coord_present字段的值为“真”时,ViewinginformationStruct()还可以包括coord_type字段、up_x字段、up_y字段、up_z字段、front_x字段、front_y字段和front_z字段。
coord_type可以指示坐标系的类型。例如,它可以是右手坐标系或左手坐标系。
up_x、up_y和up_z可以指示上向量,即3D坐标系中的向上方向。它们可以通过将由pos_x、pos_y和pos_z发信号通知的观看位置连接到由up_x、up_y和up_z发信号通知的3D空间中的点来指示向上向量。
front_x、front_y和front_z可以表示前向量,即3D坐标系中的前向方向。它们可以通过将由pos_x、pos_y和pos_z发信号通知的观看位置连接到由front_x、front_y和front_z发信号通知的3D空间中的点来指示前向量。
当dir_present字段的值为“真”时,ViewinginformationStruct()还可以包括refreseh_dir_flag字段、dir_coord字段、dir_x字段、dir_y字段和dir_z字段。
refreseh_dir_flag是指示发信号通知的方向信息是否用于渲染的标志。
dir_coord可以指示用于指示用户在3D空间中的观看方向的坐标。例如,它可以指示世界坐标、相机坐标或当coord_present等于1时发信号通知的坐标等。
dir_x、dir_y和dir_z可以指示关于用户在3D空间中的观看方向的信息。其坐标可以与由dir_coord指示的坐标一致。
当orientation_present字段的值为“真”时,ViewinginformationStruct()还可以包括refreseh_rot_flag字段、rot_coord字段、rot_x字段、rot_y字段和rot_z字段。
refreseh_rot_flag是指示发信号通知的观看方向是否用于渲染的标志。
在实施方式中,可以基于coord_type、up_x、up_y、up_z、front_x、front_y和front_z来推断左向量或右向量。
rot_coord可以指示用于指示用户在3D空间中的观看取向的坐标。例如,它可以指示世界坐标、相机坐标、当coord_present等于1时发信号通知的坐标等。
rot_x、rot_y和rot_z可以指示关于用户在3D空间中的观看取向的信息。其坐标可以与由rot_coord指示的坐标一致。它们可以表示为x、y和z轴上的旋转值。
根据实施方式,视口信息结构、观看信息结构和3D区域信息结构可以包括在单个轨道的样本条目、多个轨道的样本条目、用于样本分组的信息、用于轨道分组的信息、用于项目分组的信息等中。
根据实施方式,静态视口相关信息可以在存在于V-PCC轨道样本条目或V-PCC比特流轨道样本条目中的V3CViewportInforBox中发信号通知。
根据实施方式的V3CViewportInforBox可以定义如下。
盒类型:'v3vp'
容器:V3CSampleEntry或V3CBitstreamSampleEntry
强制:否
数量:零个或一个
根据实施方式,V3CViewportInforBox的语法可以定义如下。
aligned(8)class V3CViewportInfoBox extends FullBox(‘v3vp’,0,0){
V3CViewportConfigBox();
for(i=0;i<num_viewports;i++){
ViewportInfoStruct();
}
}
aligned(8)class V3CViewportConfigBox extends FullBox(‘v3vc’,0,0){
ViewportCameraParamsStruct vp_camera_params;
unsigned int(8)num_viewports;
}
vp_camera_params指示视口相机参数,并且可以应用于在样本条目中发信号通知的视口。
num_viewports指示在样本条目中发信号通知的视口的数量。
由于上面已经详细描述了ViewportInfoStruct(),因此将跳过对其的描述以避免冗余描述。
样本组
根据实施方式,图20或图21的文件/片段封装器可以通过对一个或更多个样本进行分组来生成样本组。根据实施方式,图20或图21的文件/片段封装器或元数据处理器可以在样本、样本组或样本条目中发信号通知与样本组相关的信令信息。也就是说,可以将与样本组相关的样本组信息添加到样本、样本组或样本条目中。下面将与对应的样本组一起详细描述样本组信息。根据实施方式,样本组信息可以包括视口相机参数样本组信息、视口样本组信息和观看信息样本组信息。
视口相机参数样本组
可应用相同的视口相机参数信息的一个或更多个样本可以被分组。以此方式配置的样本组可以称为视口相机参数样本组。
根据实施方式,与视口相机参数样本组相关的视口相机参数样本组信息(ViewportCameraParamSampleGroupDescriptionEntry)的语法可以定义如下。
aligned(8)class ViewportCameraParamSampleGroupDescriptionEntry()extends SampleGroupDescriptionEntry(‘vcsg’){
ViewportCameraParameterStruct();
}
根据实施方式,用于样本分组的'vcsg'表示将轨道中的样本指派给视口相机参数中载送的视口相机信息样本组。
根据实施方式,当存在grouping_type等于'vcsg'的SampleToGroupBox时,存在具有相同分组类型的随附SampleGroupDescriptionBox,并包含样本所属的组的ID。
grouping_type等于'vcsg'的视口相机参数样本组信息(ViewportCameraParamSampleGroupDescriptionEntry)可以包括ViewportCameraParameterStruct()。
ViewportCameraParameterStruct()包括应用于样本组的样本的视口照相机参数,诸如例如,相机类型、视场和剪裁平面距离。
已在上面关于“视口相机信息结构”详细描述了包括在ViewportCameraParameterStruct()中的视口相机参数(即,字段),因此将跳过其描述以避免冗余描述。
推荐视口样本组
可应用相同的视口信息的一个或更多个样本可以被分组。以这种方式配置的样本组可以称为推荐视口样本组。
根据实施方式,与推荐视口样本组相关的视口样本组信息(ViewportSampleGroupDescriptionEntry)的语法可以定义如下。
aligned(8)class ViewportSampleGroupDescriptionEntry()extendsSampleGroupDescriptionEntry(‘rvsg’){
ViewportInfoStruct(1);
}
根据实施方式,样本分组的'rvsg'的grouping_type表示将轨道中的样本指派给推荐视口样本组中载送的视口信息。
根据实施方式,当存在grouping_type等于'rvsg'的SampleToGroupBox时,存在具有相同分组类型的随附SampleGroupDescriptionBox,并包含样本所属的样本组的ID。
grouping_type等于“rvsg”的ViewportSampleGroupDescriptionEntry可以包括ViewportInfoStruct(1)。
ViewportInfoStruct(1)包括适用于该样本组的样本的视口信息,诸如例如,观看位置信息、观看取向信息、观看方向信息和/或视口相机信息。
已经在上面关于“视口信息结构”详细描述了包括在ViewportInfoStruct(1)中的视口信息(即,字段),因此将跳过其描述以避免冗余描述。
观看信息样本组
可应用相同观看信息的一个或更多个样本可以被分组,以这种方式配置的样本组可以称为观看信息样本组。
根据实施方式,与观看信息样本组相关的观看信息样本组信息(ViewingInformationSampleGroupDescriptionEntry)的语法可以定义如下。
aligned(8)class ViewingInformationSampleGroupDescriptionEntry()extends SampleGroupDescriptionEntry(‘visg’){
ViewingInformationStruct();
}
根据实施方式,样本分组的'visg'的grouping_type表示将载送阿特拉斯子比特流或者V-PCC分量比特流的轨道中的样本指派到观看信息样本组中载送的观看信息(包括观看位置、观看取向和/或观看方向)。载送阿特拉斯子比特流的轨道可以包括V-PCC轨道或V-PCC比特流轨道。
根据实施方式,当存在grouping_type等于'visg'的SampleToGroupBox时,存在具有相同分组类型的随附SampleGroupDescriptionBox,并包含样本所属的组的ID。
grouping_type等于'visg'的观看信息样本组信息(ViewingInformationsampleGroupDescriptionEntry)可以包括ViewingInformationStruct()。
ViewingInformationStruct()可以包括应用于样本组的样本的观看信息,诸如例如,观看位置、观看取向和/或观看方向。
已经在上面关于“观看信息结构”详细描述了包括在ViewingInformationStruct()中的观看信息(即,字段),因此将跳过其描述以避免冗余描述。
轨道组
根据实施方式,图20或图21的文件/片段封装器可以通过将一个或更多个轨道进行分组来生成轨道组。根据实施方式,图20或图21的文件/片段封装器或元数据处理器可以在样本、轨道组或样本条目中发信号通知与轨道组相关的信令信息。也就是说,可以将与轨道组相关的轨道组信息添加到样本、轨道组或样本条目。下面将与轨道组一起详细描述轨道组信息。根据实施方式,轨道组信息可以包括视口相机参数轨道组信息、视口轨道组信息和观看信息轨道组信息。
视口相机参数轨道组
根据实施方式,可应用相同视口相机参数信息的一个或更多个轨道可以被分组。以此方式配置的轨道组可以称为视口相机参数轨道组。
根据实施方式,与视口相机参数轨道组相关的框型视口相机参数轨道组信息(ViewportCameraParamGroupBox)的语法可以定义如下。
aligned(8)class ViewportCameraParamGroupBox extends TrackGroupTypeBox(‘vctg’){
ViewportCameraParameterStruct();
}
根据实施方式,track_group_type等于'vctg'的TrackGroupTypeBox表示该轨道属于载送与视口相机参数信息相关联的V-PCC分量比特流或阿特拉斯子比特流的一组轨道。
根据实施方式,属于相同视口相机参数信息的轨道对于track_group_type'vctg'具有相同的track_group_id值。来自一个视口相机参数信息的轨道的track_group_id不同于来自任何其它视口相机参数信息的轨道的track_group_id。
分组类型为“vctg”的视口相机参数轨道组信息(ViewportCameraParamGroupBox)可以包括ViewportCameraParameterStruct()。
ViewportCameraParameterStruct()包括应用于该轨道组的轨道的视口相机参数,诸如例如,相机类型、视场(FOV)和剪裁平面距离。
ViewportCameraParameterStruct()中包括的视口相机参数(即,字段)已经在上面关于“视口相机信息结构”进行了详细描述,因此将跳过其描述以避免冗余描述。
视口信息轨道组
根据实施方式,可应用相同视口信息的一个或更多个轨道可以被进行分组。以这种方式配置的轨道组可以称为视口信息轨道组。
根据实施方式,与视口信息轨道组相关的盒型视口轨道组信息(ViewportGroupBox)的语法可以定义如下。
aligned(8)class ViewportGroupBox extends TrackGroupTypeBox(‘rvtg’){
ViewportInfoStruct(1);
}
根据实施方式,track_group_type等于'rvtg'的TrackGroupTypeBox可以指示该轨道属于载送与视口信息相关联的V-PCC分量比特流或阿特拉斯子比特流的一组的轨道。
根据实施方式,属于同一视口信息的轨道对于track_group_type'rvtg'具有相同的track_group_id值,并且来自一个视口信息的轨道的track_group_id与来自任何其它视口信息的轨道的track_group_id不同。
分组类型为“rvtg”的视口轨道组信息(ViewportGroupBox)可以包括ViewportInfoStruct(1)。
ViewportInfoStruct(1)包括适用于该轨道组的轨道的视口信息,诸如例如,观看位置信息、观看取向信息、观看方向信息和/或视口相机信息。
ViewportInfoStruct(1)中包括的视口信息(即,字段)已经在上面关于“视口信息结构”进行了详细描述,因此将跳过其描述以避免冗余描述。
观看信息轨道组
根据实施方式,可应用相同观看信息(包括观看位置、观看取向和/或观看方向)的一个或更多个轨道可以被分组。以这种方式配置的轨道组可称为观看信息轨道组。
根据实施方式,与观看信息轨道组相关的盒型观看信息轨道组信息(ViewingInformationGroupBox)的语法可以定义如下。
aligned(8)class ViewingInformationGroupBox extends TrackGroupTypeBox(‘vitg’){
ViewingInformationStruct();
}
根据实施方式,track_group_type等于'vitg'的TrackGroupTypeBox可以指示该轨道属于载送与观看信息相关联的V-PCC分量比特流或阿特拉斯子比特流的一组轨道。观看信息包括观看位置、观看取向和观看方向。
根据实施方式,与相同观看信息相关联的轨道对于track_group_type'vitg具有相同的track_group_id值,并且来自该观看信息的轨道的track_group_id与来自任何其它观看信息的轨道的track_group_id不同。
分组类型为'vitg'的观看信息轨道组信息(ViewingInformationGroupBox)可以包括ViewingInformationStruct()。
ViewingInformationStruct()可以包括应用于该轨道组的轨道的观看信息,诸如例如,观看位置、观看取向和/或观看方向。
根据实施方式,当观看信息定时元数据轨道存在时,ViewingInformationStruct()指示应用于该轨道组的轨道的初始观看信息。例如,可以在观看信息定时元数据轨道的样本条目中发信号通知初始观看信息。
包括在ViewingInformationStruct()中的观看信息(即,字段)已经在上面关于“观看信息结构”进行了详细描述,因此对其进行了描述将省略以避免冗余描述。
实体组
根据实施方式,图20或图21的文件/片段封装器可以通过将一个或更多个实体(轨道或项目)分组来生成实体组。根据实施方式,图20或图21的文件/片段封装器或元数据处理器可以在样本、实体组、或样本条目中发信号通知与实体组相关的信令信息。也就是说,可以将与实体组相关的实体组信息添加到样本、实体组或样本条目中。下面将与实体组一起详细描述实体组信息。根据实施方式,实体组信息可以包括视口相机参数实体组信息、视口实体组信息和观看信息实体组信息。
视口相机参数实体组
根据实施方式,可应用相同视口相机参数信息的一个或更多个实体(例如,轨道或项目)可以被分组。以此方式配置的实体组可以称为视口相机参数实体组。
根据实施方式,与视口相机参数实体组相关的视口相机参数实体组信息(ViewportCameraParamEntityGroupBox)可以以盒的形式存储在样本、实体组、或样本条目中。
根据实施方式的ViewportCameraParamEntityGroupBox可以定义如下。
盒类型:'vceg'
容器:GroupsListBox
强制:否
数量:零个或更多个
根据实施方式,具有“vceg”作为盒类型的值的视口相机参数实体组信息(ViewportCameraParamEntityGroupBox)可以被包括在组列表盒(GroupListBox)中。
根据实施方式,视口相机参数实体组信息(ViewportCameraParamEntityGroupBox)是静态视口相关信息,并且可以在V-PCC轨道样本条目或V-PCC比特流轨道样本条目中发信号通知。
根据实施方式,可以如下定义ViewportCameraParamEntityGroupBox的语法。
aligned(8)class ViewportCameraParamEntityGroupBox(version,flags)extends EntityToGroupBox(‘vceg’,version,flags){
for(i=0;i<num_entities_in_group;i++){
ViewportCameraParameterStruct();
}
}
根据实施方式,entity_group_type等于'vceg'的EntityToGroupBox表示轨道或项目属于与视口相机参数信息相关联的组。
发信号通知的视口相机参数信息可以应用于该实体组的定时轨道或非定时项目。
根据实施方式,在上述语法中,“version”是指示对应盒的版本的整数。
num_entities_in_group可以指示包含在该实体组中的实体的数量。
根据num_entities_in_group字段的值,分组类型为'vceg'的视口相机参数实体组信息(ViewportCameraParamEntityGroupBox)可以包括ViewportCameraParameterStruct()。
ViewportCameraParameterStruct()包括应用于实体组实体的视口相机参数,诸如例如,相机类型、视场(FOV)和剪裁平面距离。
ViewportCameraParameterStruct()中包括的视口相机参数(即,字段)已经在上面关于“视口相机信息结构”进行了详细描述,因此在此将省略其描述以避免冗余描述。
视口信息实体组
根据实施方式,可应用相同视口信息的一个或更多个实体(例如,轨道或项目)可以被分组。以此方式配置的实体组可以称为视口信息实体组。
根据实施方式,与视口信息实体组相关的视口信息实体组信息(ViewportEntityGroupBox)可以以盒的形式存储在样本、实体组或样本条目中。
根据实施方式的ViewportEntityGroupBox可以定义如下。
盒类型:'vpeg'
容器:GroupsListBox
强制:否
数量:零个或更多个
根据实施方式,与视口信息实体组相关的ViewportEntityGroupBox的语法可以定义如下。
aligned(8)class ViewportEntityGroupBox(version,flags)extendsEntityToGroupBox(‘vpeg’,version,flags){
for(i=0;i<num_entities_in_group;i++){
ViewportInfoStruct(1);
}
}
根据实施方式,entity_group_type等于“vpeg”的EntityToGroupBox指示轨道或项目属于与视口信息(包括,例如,观看位置、观看取向、观看方向、视口相机信息)相关联的组。
发信号通知的视口信息可以应用于该实体组的定时轨道或非定时项目。
根据实施方式,“version”是指示盒的版本的整数。
num_entities_in_group可以指示该实体组中的实体的数量。
根据num_entities_in_group字段的值,具有'vpeg'的分组类型的视口信息实体组信息(ViewportEntityGroupBox)可以包括ViewportInfoStruct(1)。
ViewportInfoStruct(1)包括适用于该实体组的轨道或项目的视口信息,诸如例如,观看位置信息、观看取向信息、观看方向信息和/或视口相机信息。
ViewportInfoStruct(1)中包括的视口信息(即,字段)已经在上面关于“视口信息结构”进行了详细描述,因此将跳过其描述以避免冗余描述。
观看信息实体组
根据实施方式,可应用相同观看信息(包括观看位置、观看取向和/或观看方向)的一个或更多个实体(例如,轨道或项目)可以被分组。以此方式配置的实体组可以称为观看信息实体组。
根据实施方式,与观看信息实体组相关的观看信息实体组信息(ViewingEntityGroupBox)可以以盒的形式存储在样本、实体组或样本条目中。
根据实施方式的ViewingEntityGroupBox可以定义如下。
盒类型:'vieg'
容器:GroupsListBox
强制:否
数量:零个或更多个
根据实施方式,与观看信息实体组相关的ViewingEntityGroupBox的语法可以定义如下。
aligned(8)class ViewingEntityGroupBox(version,flags)extendsEntityToGroupBox(‘vieg’,version,flags){
for(i=0;i<num_entities_in_group;i++){
ViewingInformationStruct();
}
}
根据实施方式,track_group_type等于'vieg'的EntityToGroupBox指示轨道或项目属于与观看信息(包括观看位置、观看取向和/或观看方向)相关联的组。
发信号通知的观看信息可以应用于该实体组的定时轨道或非定时项目。
根据实施方式,在上述语法中,“version”是指示盒的版本的整数。
num_entities_in_group可以指示该实体组中的实体的数量。
根据num_entities_in_group字段的值,分组类型为'vieg'的观看信息实体组信息(ViewingEntityGroupBox)可以包括ViewingInformationStruct()。
ViewingInformationStruct()可以包括应用于该实体组的轨道或项目的观看信息,诸如例如,观看位置信息、观看取向信息和/或观看方向信息。
包括在ViewingInformationStruct()中的观看信息(即,字段)已经在上面关于“观看信息结构”进行了详细描述,因此将跳过其描述以避免冗余描述。
如上所述,可以在单个轨道或多个轨道中存储和发送V-PCC比特流。
在下文中,将描述与多个轨道相关的V-PCC比特流的多轨道容器。
根据实施方式,在多轨道容器(也称为多轨道ISOBMFF V-PCC容器)的一般布局中,V-PCC基本流中的V-PCC单元可以基于它们的类型映射到容器文件内的各个轨道。在根据实施方式的多轨道ISOBMFF V-PCC容器中存在两种类型的轨道。其中一种类型是V-PCC轨道,另一种类型是V-PCC分量轨道。
根据实施方式的V-PCC轨道是载送V-PCC比特流中的体积视觉信息的轨道,其包括阿特拉斯子比特流和序列参数集(或V-PCC参数集)。
根据实施方式的V-PCC分量轨道是受限制的视频方案轨道,其载送用于V-PCC比特流的占用图、几何和属性子比特流的2D视频编码数据。此外,V-PCC分量轨道可以满足以下条件:
a)在样本条目中,在V-PCC系统中插入了新盒,其记录了该轨道中包含的视频流的作用;
b)从V-PCC轨道向V-PCC分量轨道引入轨道参考,以建立V-PCC分量轨道在由V-PCC轨道表示的特定点云中的成员资格;
c)轨道头标志设置为0,以指示该轨道不直接影响电影的整体布局,但对V-PCC系统有贡献。
属于同一V-PCC序列的轨道可以是时间对齐的。跨不同视频编码的V-PCC分量轨道和V-PCC轨道对相同点云帧有贡献的样本具有相同的呈现时间。用于此类样本的V-PCC阿特拉斯序列参数集和阿特拉斯帧参数集的解码时间等于或早于点云帧的合成时间。此外,属于同一V-PCC序列的所有轨道都具有相同的隐式或显式编辑列表。
组件轨道中的基本流之间的同步由ISOBMFF轨道定时结构(stts、ctts和cslg)或电影片段中的等同机制处置。
根据实施方式,V-PCC轨道和V-PCC分量轨道中的同步样本可以是时间对齐的,也可以不是时间对齐的。在没有时间对齐的情况下,随机访问可以涉及从不同的同步开始时间预轮询各种轨道,以使得能够在所需时间开始。在时间对齐的情况下(例如,诸如基本工具集简档之类的V-PCC简档所需的),应将V-PCC轨道的同步样本视为V-PCC内容的随机访问点,并且随机访问应当仅需要参考V-PCC轨道的同步样本信息来完成。
基于此布局,V-PCC ISOBMFF容器可以包括以下内容:
-包含V-PCC参数集和阿特拉斯子比特流参数集(在样本条目中)和载送阿特拉斯子比特流NAL单元的样本的V-PCC轨道。该轨道还包括对载送视频压缩的V-PCC单元(即,单元类型VPCC_OVD、VPCC_GVD和VPCC_AVD)的有效载荷的其它轨道的轨道参考。
-受限视频方案轨道,其中样本包含用于占用图数据的视频编码基本流的访问单元(即,类型为VPCC_OVD的V-PCC单元的有效载荷)。
-一个或更多个受限视频方案轨道,其中样本包含用于几何数据的视频编码基本流的访问单元(即,类型为VPCC_GVD的V-PCC单元的有效载荷)。
-零个或多个受限视频方案轨道,其中样本包含用于属性数据的视频编码基本流的访问单元(即,类型为VPCC_AVD的V-PCC单元的有效载荷)。
接下来,下面描述V-PCC轨道。
根据实施方式的V-PCC轨道样本条目的语法结构配置如下。
样本条目类型:“vpc1”、“vpcg”
容器:SampleDescriptionBox
强制性:“vpc1”或“vpcg”样本条目是强制性的。
数量:可以存在一个或更多个样本条目。
样本条目类型是“vpc1”或“vpcg”。
在'vpc1'样本条目下,所有阿特拉斯序列参数集、阿特拉斯帧参数集、阿特拉斯适配参数集、V-PCC必要SEI或V-PCC非必要SEI都在setupUnit阵列(即,样本条目)中。
在“vpcg”样本条目下,阿特拉斯序列参数集、阿特拉斯帧参数集、阿特拉斯适应参数集、V-PCC必要SEI或V-PCC非必要SEI可以存在于该阵列(即,样本条目)中,或在流(即,样本)中。
VPCC体积样本条目中可以存在可选的BitRateBox,以发信号通知V-PCC轨道的比特率信息。
如下所示,V-PCC轨道使用继承VolumetricVisualSampleEntry的VPCCSampleEntry。VPCCSampleEntry包括VPCCConfigurationBox、VPCCUnitHeaderBox和/或ViewportInformationBox()。VPCCConfigurationBox包括VPCCDDecoderConfigurationRecord。
aligned(8)class VPCCSampleEntry()extends VolumetricVisualSampleEntry(‘vpc1’){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCC3DBoundingInformationBox();
ViewportInformationBox();
}
VPCC3DBoundingInformationBox指示轨道中载送的样本对应的V-PCC内容的3D边界框信息。3d_bb_updated_flag等于1指示发信号通知的3D边界框信息是与轨道载送的样本对应的V-PCC内容的初始3D边界框信息。动态变化的3D边界框信息可以通过样本分组或定时元数据轨道发信号通知。3d_bb_updated_flag等于0指示对应的V-CC内容的3D边界框信息没有变化。当3d_bb_type等于0时,可以发信号通知关于与样本数据相关联的3D边界框当中的最大边界框的信息。当3d_bb_type等于1时,可以发信号通知相关联的初始3D边界框信息。动态变化的3D边界框信息可以通过样本分组或单独的元数据轨道发信号通知。
ViewportInformationBox包含关于与此轨道中载送的样本对应的V-PCC内容的视口信息。根据实施方式,视口信息包括观看位置信息、观看取向信息、观看方向信息和/或视口相机信息。当存在视口信息样本组或视口信息定时元数据轨道时,它可以指示初始视口信息。
根据实施方式,存储在V-PCC轨道的样本条目中的ViewportInformationBox()的语法可以定义如下。
aligned(8)class ViewportInformationBox(){
unsigned int(1)vp_camera_present;
unsigned int(1)vp_pos_present;
unsigned int(6)vp_type;
if(vp_camera_present){
ViewportCameraParameterStruct();
}
ViewportInfoStruct(vp_pos_present);
}
根据实施方式,ViewportInformationBox()可以包括vp_camera_present字段、vp_pos_present字段和vp_type字段。
vp_camera_present可以指示视口相机信息是否包括在该视口信息盒中。当vp_camera_present字段的值为1时,可以包括视口相机信息(ViewportCameraParameterStruct())。
ViewportCameraParameterStruct()可以包括视口相机信息和与视口相关的参数。
ViewportCameraParameterStruct()中包括的视口相机参数(即,字段)已经在上面关于“视口相机信息结构”进行了详细描述,因此这里将省略对其的描述以避免冗余描述。
vp_type可以指示视口的类型。推荐视口或观看取向可以由vp_type字段的值指示。
vp_pos_present可以指示视口位置信息是否包括在ViewportInfoStruct中。例如,当vp_pos_present字段的值为1时,视口位置信息可以被包括在ViewportInfoStruct中。当值为0时,ViewportInfoStruct可以指示视口的取向,即,观看取向信息。
包括在ViewportInfoStruct()中的视口信息(即,字段)已经在上面关于“视口信息结构”进行了详细描述,因此将省略其描述以避免冗余描述。
在下文中,将描述V-PCC轨道样本格式。
V-PCC轨道中的每个样本对应于单个编码的阿特拉斯访问单元(也称为点云帧)。各种分量轨道中与该帧对应的样本应具有与V-PCC轨道样本相同的合成时间。每个V-PCC样本应仅包含类型为VPCC_AD的一个V-PCC单元有效载荷,如下所示。
aligned(8)class VPCCSample{
unsigned int PointCloudPictureLength=sample_size;//size of sample(e.g.,from SampleSizeBox)
for(i=0;i<PointCloudPictureLength;){
sample_stream_nal_unit nalUnit
i+=(VPCCDecoderConfigurationRecord.lengthSizeMinusOne+1)+nalUnit.ssnu_nal_unit_size;
}
}
根据实施方式,V-PCC轨道中的同步样本是包含内部随机访问点(IRAP)编码的阿特拉斯访问单元的样本。如果需要,可以在同步样本中重复阿特拉斯子比特流参数集(例如,ASPS、AAPS、AFPS)和SEI消息,以允许随机访问。
接下来,下面描述视频编码的V-PCC分量轨道。
使用MPEG指定的编解码器的编码视频轨道的载送可以符合ISOBMFF推导的规范。例如,对于AVC和HEVC编码的视频的载送,可以参考ISO/IEC 14496-15。如果需要其它编解码器类型,ISOBMFF也可以提供扩展机制。
由于显示来自属性、几何或占用图轨道的解码帧而不在播放器侧重构点云是没有意义的,因此可以为这些视频编码轨道定义受限视频方案类型。
接下来,下面描述受限视频方案。
V-PCC分量视频轨道可以在文件中表示为受限视频,并且可以通过受限视频样本条目的RestrictedSchemeInfoBox的SchemeTypeBox的scheme_type字段中的'pccv'来标识。
应当注意,对用于属性、几何和占用图V-PCC分量的编码的视频编解码器没有限制。此外,可以使用不同的视频编解码器对这些分量进行编码。
根据实施方式的方案信息(SchemeInformationBox)可以存在并且包含VPCCUnitHeaderBox。
接下来,参考V-PCC分量轨道在下面描述。
为了将V-PCC轨道链接到分量视频轨道,可以将三个TrackReferenceTypeBox添加到V-PCC轨道的TrackBox内的TrackReferenceBox,每个分量一个。TrackReferenceTypeBox包含指定V-PCC轨道参考的视频轨道的track_ID的阵列。TrackReferenceTypeBox的reference_type标识分量的类型,诸如占用图、几何或属性。轨道参考类型如下。
在“pcco”中,参考轨道包含视频编码的占用图V-PCC分量。
在“pccg”中,参考轨道包含视频编码的几何V-PCC分量。
在“pcca”中,参考的轨道包含视频编码的属性V-PCC分量。
由参考的受限视频轨道载送并在轨道的RestrictedSchemeInfoBox中发信号通知的V-PCC分量的类型应与来自V-PCC轨道的轨道参考的参考类型相匹配。
接下来,下面描述V-PCC比特流的单个轨道容器。
V-PCC数据的单轨道封装需要V-PCC编码的基本比特流由单轨道声明来表示。
在V-PCC编码比特流的简单ISOBMFF封装的情况下,可以使用PCC数据的单轨道封装。这样的比特流可以直接存储为单个轨道而无需进一步处理。V-PCC单元头数据结构可以保存在比特流中。可以将V-PCC数据的单个轨道容器提供给媒体工作流以进行进一步处理(例如,多轨道文件生成、转码、DASH分段等)。
包含单轨道封装的V-PCC数据的ISOBMFF文件可以在FileTypeBox的compatible_brands[]列表中包含“pcst”。
根据实施方式,V-PCC比特流(或基本流)轨道的样本条目的语法结构可以定义如下
样本条目类型:“vpe1”、“vpeg”
容器:SampleDescriptionBox
强制性:“vpe1”或“vpeg”样本条目是强制性的数量:可以存在一个或更多个样本条目
V-PCC比特流轨道使用样本条目类型为“vpe1”或“vpeg”的VolumetricVisualSampleEntry。
V-PCC比特流样本条目包括VPCCConfigurationBox。
在“vpe1”样本条目下,所有的阿特拉斯序列参数集、阿特拉斯适配参数集、阿特拉斯帧参数集、V-PCC必要SEI或V-PCC非必要SEI可以在setupUnit阵列中。在“vpeg”样本条目下,阿特拉斯序列参数集、阿特拉斯帧参数集、阿特拉斯适配参数集、V-PCC必要SEI或V-PCC非必要SEI可以存在于该阵列或流中。
如下所示,V-PCC比特流轨道使用继承VolumetricVisualSampleEntry的V-PCC比特流样本入口(VPCCBitstreamSampleEntry)。VPCCBitstreamSampleEntry包括V-PCC配置盒(VPCCConfigurationBox)和/或视口信息盒(ViewportInformationBox())。VPCCConfigurationBox包括V-PCC解码器配置记录(VPCCDecoderConfigurationRecord)。
aligned(8)class VPCCBitStreamSampleEntry()extendsVolumetricVisualSampleEntry(‘vpe1’){
VPCCConfigurationBox config;
VPCC3DBoundingInformationBox();
ViewportInformationBox();
}
VPCC3DBoundingInformationBox()指示关于轨道中载送的样本对应的V-PCC内容的3D边界框信息。
ViewportInformationBox包含关于轨道中载送的样本对应的V-PCC内容的视口信息。根据实施方式,视口信息包括观看位置信息、观看取向信息、观看方向信息和/或视口相机信息。当存在视口信息样本组或视口信息定时元数据轨道时,ViewportInformationBox可以指示初始视口信息。
上面已经描述了ViewportInformationBox中包括的信息,因此将跳过其描述以避免冗余描述。
在下文中,将描述V-PCC比特流样本格式。
V-PCC比特流样本可以包含属于同一呈现时间的一个或更多个V-PCC单元(即,一个V-PCC访问单元)。样本可以是自包含的(例如,同步样本)或者可以是依赖于其它V-PCC比特流样本来进行解码。
接下来,下面描述V-PCC比特流同步样本。
V-PCC比特流同步样本可以满足以下所有条件:
-它是可独立解码的;
-在解码顺序中,在同步样本之后的样本对同步样本之前的任何样本没有任何解码依赖性;以及
-在解码顺序中出现在同步样本之后的所有样本都是可成功解码的。
接下来,下面描述V-PCC比特流子样本。
V-PCC比特流子样本是包含在V-PCC比特流样本中的V-PCC单元。
V-PCC比特流轨道在SampleTableBox或每个MovieFragmentBoxes的TrackFragmentBox中包含一个SubSampleInformationBox,其中列出了V-PCC比特流子样本。
可以将表示子样本的V-PCC单元的32比特单元头复制到SubSampleInformationBox中的子样本条目的32比特codec_specific_parameters字段。每个子样本的V-PCC单元类型通过解析SubSampleInformationBox中的子样本条目的codec_specific_parameters字段来识别。
定时元数据轨道
下文中,将描述定时元数据轨道。
根据实施方式,当图20或图21的文件/片段封装器将V-PCC比特流封装到文件中时,可以生成元数据轨道以载送包含在V-PCC比特流中的元数据。根据实施方式,元数据轨道可以被称为定时元数据轨道。
在实施方式中,本公开描述了载送视口信息的视口定时元数据轨道。
根据实施方式,动态视口信息定时元数据轨道可以指示视口信息(或视口相关信息),其包括观看位置(或称为视口位置)、观看取向、观看方向、旋转和/或视口相机参数,并且可以随时间动态变化。视口信息定时元数据轨道链接到载送阿特拉斯子比特流或V-PCC分量比特流的相应轨道(例如,V-PCC轨道或V-PCC比特流轨道)。也就是说,视口信息定时元数据轨道指示用于渲染相关V-PCC分量轨道(或媒体轨道)的视口。此动态视口定时元数据轨道包含对相关V-PCC轨道或V-PCC比特流轨道的“cdsc”轨道参考。
根据实施方式,随时间动态变化的内在相机信息和/或外在相机信息可以在视口信息定时元数据轨道的样本或样本条目中发信号通知。
根据实施方式,视口信息定时元数据轨道中的样本条目(ViewportInformationSampleEntry)可以包含初始内在相机信息和/或初始外在相机信息。
根据实施方式,视口信息定时元数据轨道中的样本条目(ViewportInformationSampleEntry)的语法可以定义如下。
aligned(8)class ViewportInformationSampleEntry extendsMetadataSampleEntry(‘dyvp’){
unsigned int(1)dynamic_camera_present;
unsigned int(1)dynamic_pos_present;
unsigned int(1)dynamic_ori_present;
ViewportInformationBox default_viewport;
}
当视口信息随时间改变时,视口信息定时元数据轨道的样本条目可以包含应用于对应的V-PCC内容的初始视口信息。视口信息包括观看位置、观看取向、观看方向和/或视口相机参数。
根据实施方式,视口信息定时元数据轨道中的ViewportInformationSampleEntry可以包括dynamic_camera_present字段、dynamic_pos_present字段、dynamic_ori_present字段和视口信息盒(ViewportInformationBox)。
dynamic_camera_present可以指示视口相机参数信息是否可以存在于元数据轨道的样本中。
dynamic_pos_present可以指示视口位置信息是否可以存在于元数据轨道的样本中。
dynamic_ori_present可以指示视口取向或方向信息是否可以存在于元数据轨道的样本中。
default_viewport可以包括默认应用的视口信息(例如,观看位置(或视口位置)、观看取向、观看方向、观看旋转和视口相机参数)。根据包括在对应的视口信息盒(ViewportInformationBox)中的vp_type的值,定时元数据轨道可以包含关于改变后的推荐视口或观看取向的信息。
根据实施方式,视口信息定时元数据轨道中的ViewportInformationSample的语法可以定义如下。也就是说,该样本对应于样本条目类型“dyvp”的样本条目。
aligned(8)class ViewportInformationSample{
ViewportInformationBox();
ViewingInformationStruct();
}
上面已经详细描述了ViewportInformationBox(),因此将跳过其描述以避免冗余描述。
ViewingInformationStruct()包括动态变化的观看信息。
根据实施方式,视口信息定时元数据轨道中的ViewportInformationSample可以包括随时间动态变化的内在相机信息和/或外在相机信息。
在另一实施方式中,本公开描述了一种载送观看信息的观看定时元数据轨道。
根据实施方式,动态观看信息定时元数据轨道可以指示包括观看位置、观看取向和/或观看方向的观看信息,并且可以随时间动态改变。观看信息定时元数据轨道链接到载送阿特拉斯子比特流或V-PCC分量比特流的相应轨道(例如,V-PCC轨道或V-PCC比特流轨道)。
根据实施方式,可以如下定义观看信息定时元数据轨道中的样本条目(ViewingInformationSampleEntry)的语法。
aligned(8)class ViewingInformationSampleEntry extendsMetadataSampleEntry(‘dyvi’){
ViewingInformationBox();
}
当观看信息随时间改变时,观看信息定时元数据轨道的样本条目可以包括应用于V-PCC内容的初始观看信息。观看信息(ViewingInformationBox())包括观看位置、观看取向和/或观看方向。
根据实施方式,观看信息定时元数据轨道中的样本(ViewingInformationSample)的语法可以定义如下。也就是说,样本对应于样本条目类型“dyvi”的样本条目。
aligned(8)class ViewportInformationSample{
ViewingInformationStruct();
}
ViewingInformationStruct()包括动态变化的观看信息。观看信息包括观看位置、观看取向和/或观看方向。
在根据实施方式的接收装置中,点云数据的渲染可以由图1的渲染器10009、图19的点云渲染器19007、图20的渲染器20009或图22的点云渲染器22004执行。根据实施方式,可以基于元数据在3D空间中渲染点云数据。用户可以通过VR/AR显示器或普通显示器观看全部或部分的渲染结果。根据实施方式,可以基于上述视口相关信息来渲染点云数据。视口相关信息可以包括视口相机信息、推荐视口信息和观看信息中的至少一种。视口相关信息可以根据改变的属性通过样本条目、样本组、轨道组、实体组或单独的元数据轨道来发送/接收。
基于指示用户当前正在观看的区域的取向信息和/或视口相关信息,根据实施方式的接收装置的点云视频解码器可以高效地提取或解码仅特定区域的媒体数据,即,由取向信息和/或视口相关信息所指示的区域。基于取向信息和/或视口相关信息,根据实施方式的发送装置的点云视频编码器可以仅编码特定区域的媒体数据,即,由取向信息和/或视口相关信息指示的区域,或者可以将编码的媒体数据封装到文件中并将其发送。
根据实施方式,发送装置的文件/片段封装器可以基于取向信息和/或视口相关信息将整个点云数据封装成文件/片段,或者可以将由取向和/或视口相关信息指示的点云数据信息封装到文件/片段中。
根据实施方式,接收装置的文件/片段解封装器可以基于取向信息和/或视口相关信息解封装包含整个点云数据的文件,或者可以解封装包含由取向信息和/或视口相关信息指示的点云数据的文件。
根据实施方式,视口相关信息可以包括视口相机信息、视口信息、或观看信息中的至少一种。上面已经详细描述了视口相机信息、视口信息和观看信息,因此将跳过其描述。
根据实施方式,视口相关信息可以由图18的点云数据发送装置的元数据编码器18005或图21的PCC系统的点云预处理器20001和/或视频/图像编码器21007和21008生成/编码,并且可以由图19的点云数据接收装置的元数据解码器19002或图22的V-PCC系统的视频/图像解码器22001和22002和/或点云后处理器22003获取/解码。
接下来,下面描述非定时V-PCC数据的载送。
图59是示出根据实施方式的用于封装非定时V-PCC数据的示例性结构的图。
根据实施方式的非定时V-PCC数据可以作为图像项目存储在文件中。
根据实施方式,定义称为V-PCC项目和V-PCC单元项目的两种项目类型用于封装非定时V-PCC数据。
根据实施方式,新的处置器类型4CC码'vpcc'被定义并存储在MetaBox的HandlerBox中,以指示V-PCC项目、V-PCC单元项目和其它V-PCC编码的内容呈现信息。
V-PCC项目是表示可独立解码的V-PCC访问单元的项目。
根据实施方式,新的处置器类型4CC码'vpcc'被定义并存储在MetaBox的HandlerBox中,以便指示V-PCC项目的存在。根据实施方式,V-PCC项目可以存储阿特拉斯子比特流的V-PCC单元有效载荷。
如果存在PrimaryItemBox,则设置该盒中的item_id以指示V-PCC项目。
根据实施方式的V-PCC单元项目是表示V-PCC单元数据的项目。根据实施方式,V-PCC单元项目可以存储占用、几何和属性视频数据单元的V-PCC单元有效载荷。
根据实施方式的V-PCC单元项目应存储仅一个V-PCC访问单元相关数据。
根据实施方式,可以根据用于编码对应视频数据单元的编解码器来设置用于V-PCC单元项目的项目类型。
根据实施方式,V-PCC单元项目可以与对应的V-PCC单元头项目属性和编解码器特定配置项目属性相关联。
根据实施方式,V-PCC单元项目可以被标记为隐藏项目。这是因为独立地显示是没有意义的。
根据实施方式,为了指示V-PCC项目和V-PCC单元项目之间的关系,定义了具有4CC码“pcco”、“pccg”和“pcca”的三个新项目参考类型。根据实施方式的项目参考被定义为“从”V-PCC项目“到”相关的V-PCC单元项目。
根据实施方式的项目参考类型的4CC码如下:
在类型“pcco”中,参考的V-PCC单元项目包含占用视频数据单元。
在类型“pccg”中,参考的V-PCC单元项目包含几何视频数据单元。
在类型“pcca”中,参考的V-PCC单元项目包含属性视频数据单元。
接下来,下面描述V-PCC相关项目属性。
根据实施方式,描述性项目属性被定义为分别载送V-PCC参数集信息和V-PCC单元头信息:
以下是V-PCC配置项目属性的语法结构的示例。
盒类型:'vpcp'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目
数量(每个项目):一个或更多个,对于“vpci”类型的V-PCC项目
根据实施方式,V-PCC参数集被存储为描述性项目属性并且与V-PCC项目相关联。
根据实施方式,对于'vpcp'项目属性,essential被设置为1。
aligned(8)类vpcc_unit_payload_struct(){
unsigned int(16)vpcc_unit_payload_size;
vpcc_unit_payload();
}
vpcc_unit_payload_size字段指定vpcc_unit_paylod()大小(以字节为单位)。
vpcc_unit_paylod()包括类型为VPCC_VPS的V-PCC单元。
aligned(8)类VPCCConfigurationProperty extends ItemProperty('vpcc'){
vpcc_unit_payload_Struct()[];
}
以下是V-PCC单元头项目属性的语法结构的示例。
盒类型:'vunt'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,V-PCC单元头被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
根据实施方式,对于'vunt'项目属性,essential被设置为1。
aligned(8)类VPCCUnitHeaderProperty()extends ItemFullProperty('vunt',version=0,0){
vpcc_unit_header();
}
根据实施方式,视口相机信息项目属性可以定义如下。
盒类型: 'vpci'
属性类型: 描述性项目属性
容器: ItemPropertyContainerBox
强制性(每项):否
数量(每件): 零个或一个
根据实施方式,具有“vpci”作为盒类型值的视口相机信息属性信息(ViewportCameraInformationProperty)可以包括在项目属性容器盒(ItemPropertyContainerBox)中。
根据实施方式,可以如下定义ViewportCameraInformationProperty的语法。
aligned(8)class ViewportCameraInformationProperty()extendsItemFullProperty(‘vpci’,version=0,0){
ViewportCameraParameterStruct();
}
根据实施方式,ViewportCameraInformationProperty根据要为用户渲染的图像指示视口相机信息。
ViewportCameraParameterStruct()存储为项目属性,并且与V-PCC项目和V-PCC单元项目相关。也就是说,ViewportCameraParameterStruct()包括与V-PCC项目相关的视口相机参数。视口相机参数包括相机类型、FOV和剪裁平面距离。
根据实施方式,观看信息项目属性可以定义如下。
盒类型: 'vpvi'
属性类型: 描述性项目属性
容器: ItemPropertyContainerBox
强制性(每项):否
数量(每件): 零个或一个
根据实施方式,具有“vpvi”作为盒类型值的观看信息属性信息(ViewingInformationProperty)可以被包括在ItemPropertyContainerBox中。
根据实施方式,ViewingInformationProperty的语法可以定义如下。
aligned(8)class ViewingInformationProperty()extends ItemFullProperty(‘vpvi’,version=0,0){
ViewingInformationStruct();
}
根据实施方式,ViewingInformationProperty指示根据要为用户渲染的图像的观看信息。
ViewingInformationStruct()被存储为项目属性,并且与V-PCC项目和V-PCC单元项目相关。也就是说,ViewingInformationStruct()包括与V-PCC项目相关的观看信息。观看信息包括观看位置、观看取向和/或观看方向。
图60是示出根据实施方式的其中视锥体中的点云数据的空间部分实际显示在视口上的示例的图。
根据实施方式,实际提供点云数据的视口可以基于如图60所示的视锥体来定义。图60中由粗线指示的部分可以是视锥体,并且可以实际渲染存在于视锥体中的点云数据并将其提供给用户。
图61示出根据实施方式的视锥体的示例性俯视图。也就是说,图61示出虚拟相机的水平FOV或用户/用户视图(眼睛)的示例。
图62示出根据实施方式的视锥体的示例性侧视图。也就是说,图62示出虚拟相机的垂直FOV或用户/用户视图(眼睛)的示例。
根据实施方式,虚拟相机可以匹配用户的眼睛,即,用户在三维空间中的视角/视图。也就是说,它可以是用户在3D空间中的视图/眼睛。
图63示出根据实施方式的发送点云数据的方法的示例。
根据实施方式的点云数据发送方法可以包括对点云数据进行编码(71001),和/或发送包含点云数据和信令信息的比特流(71002)。
在根据实施方式的操作71001中,可以对点云数据进行编码。在根据实施方式的操作71001中,可以基于上述视口相关信息仅对特定区域的媒体数据进行编码。根据实施方式的视口相关信息可以包括视口相机信息、推荐视口信息和观看信息中的至少一种。由于上面已经充分描述了包含在视口相关信息中的详细信息,因此将省略其描述。例如,图1的发送装置10000和/或点云视频编码器10002可以执行编码。根据实施方式,可以对如图3所示的点云数据进行编码。可以通过图4的V-PCC编码处理对点云数据进行编码。可以基于图5至图14的方法对点云数据进行编码。另外,可以通过图15的编码器对点云数据进行编码。在根据实施方式的操作71002中,可以发送点云数据或包含点云数据和信令信息的比特流。包含点云数据的比特流可以由图1的发送装置10000和发送器10004发送。信令信息也称为元数据,并且可以包括上述语法(包括视口相关信息)。点云数据(或包含点云数据的比特流)可以由文件/片段封装器10003以文件/片段的形式发送。
在根据实施方式的操作71002中,可以基于视口相关信息将所有点云数据封装成文件/片段,或者由视口相关信息指示的点云数据可以封装成文件/片段。根据实施方式的视口相关信息可以包括视口相机信息、推荐视口信息和观看信息中的至少一种。由于上面已经充分描述了包含在视口相关信息中的详细信息,因此将省略其描述。视口相关信息可以通过文件的轨道中的样本、样本条目、样本组、轨道组或实体组,或者通过文件的单独的元数据轨道来发送。点云数据发送处理可以由图18的发送装置执行。此外,点云数据可以由图20至图22的V-PCC系统发送。此外,点云数据可以通过图23的网络与各种装置组合地提供给用户。
根据实施方式的点云数据发送方法/装置可以与上述实施方式的全部/部分组合以提供点云内容。
图64示出根据实施方式的接收点云数据的方法的示例。
根据实施方式的点云数据接收方法包括接收包含点云数据和信令信息的比特流(81001)、对点云数据进行解码(81002)和/或渲染点云数据(81003)。
在根据实施方式的操作81001中,可以接收包含点云数据的比特流。在点云数据接收方法中,可以以文件/片段的形式接收包含点云数据的比特流。根据实施方式,在操作81001,包括所有点云数据的文件可以基于视口相关信息被解封装,或者包括由视口相关信息指示的点云数据的文件可以被解封装。根据实施方式,视口相关信息可以从通过文件的轨道中的样本、样本条目、样本组、轨道组或实体组,或者从文件的单独的元数据轨道来获得。根据实施方式的视口相关信息可以包括视口相机信息、推荐视口信息和观看信息中的至少一种。由于上面已经充分描述了包含在视口相关信息中的详细信息,因此将省略其描述。图1的接收装置10005和接收器10006可以接收比特流(或包括比特流的文件/片段)。图1的文件/片段解封装器10007可以对文件/片段形式的点云数据和/或视口相关信息进行解封装。已经描述了根据实施方式的接收装置执行从接收操作到渲染操作的图19的接收处理。
在根据实施方式的操作81002中,点云数据被解码。在根据实施方式的操作81002中,可以基于指示用户当前正在观看的区域的视口相关信息从文件中高效地提取或解码仅特定区域(即,由视口相关信息指示的区域)的媒体数据。根据实施方式的视口相关信息可以包括视口相机信息、推荐视口信息和观看信息中的至少一种。由于上面已经充分描述了包含在视口相关信息中的详细信息,因此将省略其描述。图1的点云视频解码器10008可以对点云数据进行解码。解码器可以通过图16所示的操作执行V-PCC解码处理。包含点云数据的比特流可以由如图17所示的解码器解码。点云数据可以由如图20至22所示的被配置为处理点云数据的系统处理。此外,如图23所示,点云数据可以通过经由网络连接的各种装置/环境提供给用户。
在根据实施方式的操作81003中,点云数据被渲染/显示。
在根据实施方式的操作81003中,点云数据的渲染可以由图1的渲染器10009、图19的点云渲染器19007、图20的渲染器2001或图22的点云渲染器22004执行。根据实施方式,可以基于元数据在3D空间中呈现点云数据。用户可以通过VR/AR显示器或一般显示器观看全部或部分的渲染结果。特别地,可以根据视口相关信息来渲染点云数据。
根据实施方式的视口相关信息可以是关于用户当前在3D空间中通过装置或HMD观看的区域的信息。基于该信息,可以执行注视分析以检查用户消费点云视频的方式、用户正在注视的点云视频的区域以及用户注视该区域的时间。可以在接收侧执行注视分析,并且可以通过反馈信道将注视分析的结果发送到发送侧。诸如VR/AR/MR之类的显示装置可以基于取向信息、用户头部的位置/取向以及由装置支持的垂直或水平FOV来提取视口区域。视口相关信息可以由接收装置提取或计算。接收装置所分析的视口相关信息可以通过反馈信道发送到发送装置。
根据实施方式的视口相关信息可以包括视口相机信息、推荐的视口信息和观看信息中的至少一种。由于上面已经充分描述了包含在视口相关信息中的详细信息,因此将省略其描述。
根据实施方式的用于接收点云数据的方法/装置可以与上述实施方式的全部/部分结合以提供点云内容。
如上所述,根据实施方式的文件封装或文件封装器可以根据V-PCC视频或图像的视口相机参数、视口和观看取向的变化程度,将相应的信息存储在文件中的轨道或图像项目中。它还可以将V-PCC视频或图像的观看信息存储在文件中的轨道或图像项目中。
根据实施方式的文件解封装或文件解封装器可以获取包含在文件中的轨道或图像项目中的视口相机参数、视口或观看取向信息,并且可以基于此来有效地提取、解码和渲染文件中的轨道数据或图像数据。它还可以获取包含在文件中的轨道或图像项目中的观看信息,并且可以基于此来渲染点云视频或图像。
上述V-PCC和V-PCC系统的数据可以由根据实施方式的发送装置的封装器(可以称为生成器)生成,也可以由发送装置的发送器发送。另外,V-PCC和V-PCC系统的数据可以由根据实施方式的接收装置的接收器接收,并且可以由接收装置的解封装器(可以称为解析器)获取。接收装置的解码器、渲染器等可以基于V-PCC和V-PCC系统的数据向用户提供适当的点云数据。
上述各个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的软件、处理器或硬件部分。在上述实施方式中描述的各个步骤可由处理器、软件或硬件部分执行。在上述实施方式中描述的各个模块/块/单元可作为处理器、软件或硬件操作。另外,实施方式所提出的方法可作为代码执行。该代码可被写在处理器可读存储介质上,因此由设备所提供的处理器读取。
尽管为了简单参照各个附图说明了实施方式,但是可通过将附图所示的实施方式合并来设计新的实施方式。如果本领域技术人员设计了记录有用于执行以上描述中提及的实施方式的程序的计算机可读记录介质,则其可落在所附权利要求及其等同物的范围内。
设备和方法可不限于上述实施方式的配置和方法。上述实施方式可通过选择性地彼此完全或部分地组合来配置,以实现各种修改。
尽管参照附图描述了优选实施方式,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可对实施方式进行各种修改和变化。这些修改不应从实施方式的技术思想或观点方面单独地理解。
本领域技术人员将理解,在不脱离本公开的范围的情况下,可对实施方式进行各种修改和变化。因此,本公开旨在涵盖实施方式的修改和变化,只要它们落在所附权利要求及其等同物的范围内。
本说明书中描述了设备和方法公开二者,并且设备和方法公开二者的描述互补地适用。
在本文档中,术语“/”和“、”应该被解释为指示“和/或”。例如,表达“A/B”可意指“A和/或B”。此外,“A、B”可意指“A和/或B”。此外,“A/B/C”可意指“A、B和/或C中的至少一个”。“A、B、C”也可意指“A、B和/或C中的至少一个”。
此外,在本文档中,术语“或”应该被解释为“和/或”。例如,表达“A或B”可意指1)仅A、2)仅B和/或3)A和B二者。换言之,在本文档中术语“或”应该被解释为“另外地或另选地”。
实施方式的设备的各种元件可由硬件、软件、固件或其组合实现。实施方式中的各种元件可由单个芯片(例如,单个硬件电路)实现。根据实施方式,根据实施方式的组件可分别被实现为单独的芯片。根据实施方式,根据实施方式的设备的至少一个或更多个组件可包括能够执行一个或更多个程序的一个或更多个处理器。一个或更多个程序可执行根据实施方式的任一个或更多个操作/方法,或者包括用于执行其的指令。用于执行根据实施方式的设备的方法/操作的可执行指令可被存储在被配置为由一个或更多个处理器执行的非暂时性CRM或其它计算机程序产品中,或者可被存储在被配置为由一个或更多个处理器执行的暂时性CRM或其它计算机程序产品中。另外,根据实施方式的存储器可用作不仅涵盖易失性存储器(例如,RAM),而且涵盖非易失性存储器、闪存和PROM的概念。另外,其还可按照载波的形式实现(例如,经由互联网的传输)。另外,处理器可读记录介质可分布到经由网络连接的计算机系统,使得处理器可读代码可按照分布式方式存储和执行。
诸如第一和第二之类的术语可用于描述实施方式的各种元件。然而,根据实施方式的各种组件不应受上述术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,第一用户输入信号可被称为第二用户输入信号。类似地,第二用户输入信号可被称为第一用户输入信号。这些术语的使用应该被解释为不脱离各种实施方式的范围。第一用户输入信号和第二用户输入信号均是用户输入信号,但除非上文清楚地另外规定,否则并不意味着相同的用户输入信号。
用于描述实施方式的术语仅用于描述特定实施方式的目的,并非旨在限制实施方式。如在实施方式的描述和权利要求中使用的,除非上文清楚地另外规定,否则单数形式包括复数指称物。表达“和/或”用于包括术语的所有可能组合。诸如“包括”或“具有”的术语旨在指示存在图形、数量、步骤、元件和/或组件,应该被理解为不排除存在附加图形、数量、步骤、元件和/或组件的可能性。
如本文所使用的,诸如“如果”和“当”的条件表达不限于可选情况,旨在被解释为当满足特定条件时执行相关操作或根据该特定条件解释相关定义。
本发明的模式
如上所述,在用于执行这些实施方式的最佳模式下描述了相关细节。
工业实用性
如上所述,这些实施方式完全或部分地适用于点云数据发送/接收装置和系统。
本领域技术人员可在实施方式的范围内以各种方式改变或修改实施方式。
实施方式可包括权利要求及其等同物的范围内的变化/修改。

Claims (12)

1.一种点云数据发送方法,所述方法包括以下步骤:
对点云数据中的几何数据、属性数据和占用图数据进行编码;
将比特流封装到文件中,所述比特流包括编码的几何数据、编码的属性数据和编码的占用图数据,
其中,所述比特流由样本流头以及一个或更多个样本流基于视频的数据单元构成,
其中,每个样本流基于视频的数据单元由基于视频的数据单元大小信息和基于视频的数据单元构成,
其中,所述样本流头包括用于指定所述一个或更多个样本流基于视频的数据单元中的所述基于视频的数据单元大小信息的精度的信息,
其中,所述基于视频的数据单元大小信息包括用于标识所述基于视频的数据单元的大小的信息,
其中,所述基于视频的数据单元由头和有效载荷构成,
其中,所述头包括用于标识所述有效载荷中包括的数据的类型信息,并且
其中,所述有效载荷中包括的所述数据是所述编码的几何数据、所述编码的属性数据、所述编码的占用图数据、至少一个参数集和阿特拉斯数据中的一者;以及
发送所述文件,
其中,所述比特流被包括在所述文件的一个或更多个轨道中,
其中,所述文件还包括视口相关信息,并且
其中,所述视口相关信息至少包括用于标识视口相机参数的相机标识信息、用于指示视口相机的投影方式的相机类型信息、或用于指示视口的基于近裁剪平面的近距离和基于远裁剪平面的远距离的信息。
2.根据权利要求1所述的方法,
其中,所述视口相关信息还包括用于指示视口的位置是对应于所述视口的中心还是对应于所述视口的两个立体位置中的一个的标志信息。
3.根据权利要求1所述的方法,
其中,所述相机类型信息指示等量矩形投影、透视投影或正交投影中的一种。
4.一种点云数据发送设备,所述设备包括:
编码器,所述编码器对点云数据中的几何数据、属性数据和占用图数据进行编码;
封装器,所述封装器将比特流封装到文件中,所述比特流包括编码的几何数据、编码的属性数据和编码的占用图数据,
其中,所述比特流由样本流头以及一个或更多个样本流基于视频的数据单元构成,
其中,每个样本流基于视频的数据单元由基于视频的数据单元大小信息和基于视频的数据单元构成,
其中,所述样本流头包括用于指定所述一个或更多个样本流基于视频的数据单元中的所述基于视频的数据单元大小信息的精度的信息,
其中,所述基于视频的数据单元大小信息包括用于标识所述基于视频的数据单元的大小的信息,
其中,所述基于视频的数据单元由头和有效载荷构成,
其中,所述头包括用于标识所述有效载荷中包括的数据的类型信息,并且
其中,所述有效载荷中包括的所述数据是所述编码的几何数据、所述编码的属性数据、所述编码的占用图数据、至少一个参数集和阿特拉斯数据中的一者;以及
发送器,所述发送器发送所述文件,
其中,所述比特流被包括在所述文件的一个或更多个轨道中,
其中,所述文件还包括视口相关信息,并且
其中,所述视口相关信息至少包括用于标识视口相机参数的相机标识信息、用于指示视口相机的投影方式的相机类型信息、或用于指示视口的基于近裁剪平面的近距离和基于远裁剪平面的远距离的信息。
5.根据权利要求4所述的设备,
其中,所述视口相关信息还包括用于指示视口的位置是对应于所述视口的中心还是对应于所述视口的两个立体位置中的一个的标志信息。
6.根据权利要求4所述的设备,
其中,所述相机类型信息指示等量矩形投影、透视投影或正交投影中的一种。
7.一种点云数据接收方法,所述方法包括以下步骤:
接收文件;
将所述文件解封装成包括几何数据、属性数据和占用图数据的比特流,
其中,所述比特流被包括在所述文件的一个或更多个轨道中,
其中,所述文件还包括视口相关信息,
其中,所述比特流由样本流头以及一个或更多个样本流基于视频的数据单元构成,
其中,每个样本流基于视频的数据单元由基于视频的数据单元大小信息和基于视频的数据单元构成,
其中,所述样本流头包括用于指定所述一个或更多个样本流基于视频的数据单元中的所述基于视频的数据单元大小信息的精度的信息,
其中,所述基于视频的数据单元大小信息包括用于标识所述基于视频的数据单元的大小的信息,
其中,所述基于视频的数据单元由头和有效载荷构成,
其中,所述头包括用于标识所述有效载荷中包括的数据的类型信息,并且
其中,所述有效载荷中包括的所述数据是所述几何数据、所述属性数据、所述占用图数据、至少一个参数集和阿特拉斯数据中的一者;
对所述几何数据、所述属性数据、所述占用图数据进行解码以恢复点云数据;以及
基于所述视口相关信息对所述点云数据进行渲染,并且
其中,所述视口相关信息至少包括用于标识视口相机参数的相机标识信息、用于指示视口相机的投影方式的相机类型信息、或用于指示视口的基于近裁剪平面的近距离和基于远裁剪平面的远距离的信息。
8.根据权利要求7所述的方法,
其中,所述视口相关信息还包括用于指示视口的位置是对应于所述视口的中心还是对应于所述视口的两个立体位置中的一个的标志信息。
9.根据权利要求7所述的方法,
其中,所述相机类型信息指示等量矩形投影、透视投影或正交投影中的一种。
10.一种点云数据接收设备,所述设备包括:
接收器,所述接收器接收文件;
解封装器,所述解封装器将所述文件解封装成包括几何数据、属性数据和占用图数据的比特流,
其中,所述比特流被包括在所述文件的一个或更多个轨道中,
其中,所述文件还包括视口相关信息,
其中,所述比特流由样本流头以及一个或更多个样本流基于视频的数据单元构成,
其中,每个样本流基于视频的数据单元由基于视频的数据单元大小信息和基于视频的数据单元构成,
其中,所述样本流头包括用于指定所述一个或更多个样本流基于视频的数据单元中的所述基于视频的数据单元大小信息的精度的信息,
其中,所述基于视频的数据单元大小信息包括用于标识所述基于视频的数据单元的大小的信息,
其中,所述基于视频的数据单元由头和有效载荷构成,
其中,所述头包括用于标识所述有效载荷中包括的数据的类型信息,并且
其中,所述有效载荷中包括的所述数据是所述几何数据、所述属性数据、所述占用图数据、至少一个参数集和阿特拉斯数据中的一者;
解码器,所述解码器对所述几何数据、所述属性数据、所述占用图数据进行解码以恢复点云数据;以及
渲染器,所述渲染器基于所述视口相关信息对所述点云数据进行渲染,并且
其中,所述视口相关信息至少包括用于标识视口相机参数的相机标识信息、用于指示视口相机的投影方式的相机类型信息、或用于指示视口的基于近裁剪平面的近距离和基于远裁剪平面的远距离的信息。
11.根据权利要求10所述的设备,
其中,所述视口相关信息还包括用于指示视口的位置是对应于所述视口的中心还是对应于所述视口的两个立体位置中的一个的标志信息。
12.根据权利要求10所述的设备,
其中,所述相机类型信息指示等量矩形投影、透视投影或正交投影中的一种。
CN202311109174.7A 2020-04-12 2021-04-12 点云数据发送设备和方法以及点云数据接收设备和方法 Pending CN116915966A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202063008804P 2020-04-12 2020-04-12
US63/008,804 2020-04-12
US202063042530P 2020-06-22 2020-06-22
US63/042,530 2020-06-22
CN202180028193.XA CN115398890B (zh) 2020-04-12 2021-04-12 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
PCT/KR2021/004554 WO2021210860A1 (ko) 2020-04-12 2021-04-12 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202180028193.XA Division CN115398890B (zh) 2020-04-12 2021-04-12 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法

Publications (1)

Publication Number Publication Date
CN116915966A true CN116915966A (zh) 2023-10-20

Family

ID=78084350

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202180028193.XA Active CN115398890B (zh) 2020-04-12 2021-04-12 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN202311109174.7A Pending CN116915966A (zh) 2020-04-12 2021-04-12 点云数据发送设备和方法以及点云数据接收设备和方法
CN202311109541.3A Pending CN116915967A (zh) 2020-04-12 2021-04-12 点云数据发送设备和方法以及点云数据接收设备和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202180028193.XA Active CN115398890B (zh) 2020-04-12 2021-04-12 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311109541.3A Pending CN116915967A (zh) 2020-04-12 2021-04-12 点云数据发送设备和方法以及点云数据接收设备和方法

Country Status (4)

Country Link
US (1) US11418564B2 (zh)
EP (1) EP4124032A4 (zh)
CN (3) CN115398890B (zh)
WO (1) WO2021210860A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112022013389A2 (pt) * 2020-01-06 2022-09-13 Huawei Tech Co Ltd Sinalização de parâmetros de câmera em codificação de nuvem de pontos
GB2613853B (en) * 2021-12-16 2024-01-24 Canon Kk Method, device, and computer program for optimizing encapsulation of point cloud data
WO2023198426A1 (en) * 2022-04-13 2023-10-19 Interdigital Ce Patent Holdings, Sas Dynamic block decimation in v-pcc decoder
WO2024039703A1 (en) * 2022-08-16 2024-02-22 Iinnopeak Technology, Inc. Dynamic mesh geometry refinement
CN116310135B (zh) * 2023-04-11 2023-11-21 广州市易鸿智能装备有限公司 一种基于多分辨率lod模型的曲面显示方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130116782A (ko) * 2012-04-16 2013-10-24 한국전자통신연구원 계층적 비디오 부호화에서의 계층정보 표현방식
US20160261878A1 (en) * 2013-10-11 2016-09-08 Sharp Kabushiki Kaisha Signaling information for coding
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US10909725B2 (en) * 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US11113845B2 (en) * 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
EP3474562A1 (en) 2017-10-20 2019-04-24 Thomson Licensing Method, apparatus and stream for volumetric video format
US10783668B2 (en) * 2017-12-22 2020-09-22 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
WO2019135024A1 (en) 2018-01-02 2019-07-11 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
US10916041B2 (en) * 2018-03-30 2021-02-09 Samsung Electronics Co., Ltd. Method for depth image di coding
US10939129B2 (en) * 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
WO2020009341A1 (ko) * 2018-07-06 2020-01-09 엘지전자 주식회사 동적 뷰포인트의 좌표계에 대한 메타데이터를 송수신하는 방법 및 장치
EP3821608A4 (en) * 2018-07-11 2022-04-13 Nokia Technologies Oy METHOD AND DEVICE FOR STORAGE AND SIGNALING OF COMPRESSED POINT CLOUDS
WO2020071632A1 (ko) * 2018-10-02 2020-04-09 엘지전자 주식회사 360 비디오 시스템에서 오버레이 처리 방법 및 그 장치
WO2020070379A1 (en) * 2018-10-03 2020-04-09 Nokia Technologies Oy Method and apparatus for storage and signaling of compressed point clouds
US11245926B2 (en) * 2019-03-19 2022-02-08 Mediatek Singapore Pte. Ltd. Methods and apparatus for track derivation for immersive media data tracks
US11711544B2 (en) * 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
WO2021050234A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for signaling video coding information
US11711535B2 (en) * 2019-09-19 2023-07-25 Nokia Technologies Oy Video-based point cloud compression model to world signaling information
US10964089B1 (en) * 2019-10-07 2021-03-30 Sony Corporation Method and apparatus for coding view-dependent texture attributes of points in a 3D point cloud
US11741634B2 (en) * 2019-10-09 2023-08-29 Sony Group Corporation Synchronization of decoded frames before point cloud reconstruction
CN114930853A (zh) * 2020-01-07 2022-08-19 Lg电子株式会社 点云数据发送装置、发送方法、处理装置和处理方法
KR102373833B1 (ko) * 2020-01-09 2022-03-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN115053531A (zh) * 2020-01-10 2022-09-13 诺基亚技术有限公司 在isobmff中存储来自一个v-pcc基本流的多个图集
EP4115624A4 (en) * 2020-03-03 2024-03-27 Nokia Technologies Oy EFFICIENT READOUT OF VOLUMETRIC VIDEO ATLASBIT STREAMS
US20210354728A1 (en) * 2020-05-12 2021-11-18 Toyota Research Institute, Inc. Autonomous driving requirements deficiency determination

Also Published As

Publication number Publication date
CN115398890A (zh) 2022-11-25
WO2021210860A1 (ko) 2021-10-21
US11418564B2 (en) 2022-08-16
CN116915967A (zh) 2023-10-20
EP4124032A4 (en) 2023-05-31
US20220060529A1 (en) 2022-02-24
CN115398890B (zh) 2023-09-15
EP4124032A1 (en) 2023-01-25

Similar Documents

Publication Publication Date Title
CN114930863B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US11631158B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114930813B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115443652B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN115398890B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114946178B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US11601634B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20210409767A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114946179B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114503587A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115380528B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
US11908168B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115428442B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN118138736A (zh) 点云数据编码设备和点云数据解码设备
CN118138737A (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