CN114503587A - 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 - Google Patents
点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 Download PDFInfo
- Publication number
- CN114503587A CN114503587A CN202080070476.6A CN202080070476A CN114503587A CN 114503587 A CN114503587 A CN 114503587A CN 202080070476 A CN202080070476 A CN 202080070476A CN 114503587 A CN114503587 A CN 114503587A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- information
- video
- data
- patch
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 310
- 238000009877 rendering Methods 0.000 claims abstract description 86
- 230000011664 signaling Effects 0.000 claims abstract description 59
- 239000013598 vector Substances 0.000 claims description 83
- 230000005540 biological transmission Effects 0.000 claims description 67
- 238000007906 compression Methods 0.000 claims description 63
- 230000006835 compression Effects 0.000 claims description 58
- 239000000523 sample Substances 0.000 description 219
- 230000008569 process Effects 0.000 description 196
- 239000010410 layer Substances 0.000 description 158
- 239000012634 fragment Substances 0.000 description 80
- 230000033001 locomotion Effects 0.000 description 41
- 238000012545 processing Methods 0.000 description 41
- 238000009499 grossing Methods 0.000 description 32
- 239000002365 multiple layer Substances 0.000 description 29
- 238000003860 storage Methods 0.000 description 29
- 230000000007 visual effect Effects 0.000 description 26
- 230000015654 memory Effects 0.000 description 22
- 230000008859 change Effects 0.000 description 20
- 238000001914 filtration Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 19
- 210000003128 head Anatomy 0.000 description 18
- 230000011218 segmentation Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 238000012856 packing Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000006837 decompression Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 11
- 238000013144 data compression Methods 0.000 description 9
- 210000000887 face Anatomy 0.000 description 9
- 238000005538 encapsulation Methods 0.000 description 8
- 238000002310 reflectometry Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000004806 packaging method and process Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 101000740587 Botryotinia fuckeliana Presilphiperfolan-8-beta-ol synthase Proteins 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 3
- 101000581802 Homo sapiens Lithostathine-1-alpha Proteins 0.000 description 3
- 102100027361 Lithostathine-1-alpha Human genes 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000000945 filler Substances 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- UGODCLHJOJPPHP-AZGWGOJFSA-J tetralithium;[(2r,3s,4r,5r)-5-(6-aminopurin-9-yl)-4-hydroxy-2-[[oxido(sulfonatooxy)phosphoryl]oxymethyl]oxolan-3-yl] phosphate;hydrate Chemical compound [Li+].[Li+].[Li+].[Li+].O.C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP([O-])(=O)OS([O-])(=O)=O)[C@@H](OP([O-])([O-])=O)[C@H]1O UGODCLHJOJPPHP-AZGWGOJFSA-J 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000010339 dilation Effects 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000013074 reference sample Substances 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 108091000069 Cystinyl Aminopeptidase Proteins 0.000 description 1
- 102100020872 Leucyl-cystinyl aminopeptidase Human genes 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Abstract
根据实施方式的点云数据发送方法可以包括对点云数据进行编码的步骤以及发送包括点云数据和信令信息的比特流的步骤。根据实施方式的点云数据接收方法可以包括接收包括点云数据和信令信息的比特流的步骤、对点云数据进行解码的步骤以及渲染解码的点云数据的步骤。
Description
技术领域
实施方式提供了一种提供点云内容以向用户提供诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)和自主驾驶服务之类的各种服务的方法。
背景技术
点云是三维(3D)空间中的点集合。因为3D空间中的点的数量大,所以难以生成点云数据。
需要大吞吐量以发送和接收点云的数据。
发明内容
技术问题
本公开的目的在于提供一种用于高效地发送和接收点云的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于解决延迟和编码/解码复杂度的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于通过发信号通知点云数据的视口相关信令来向用户提供优化的点云内容的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的另一目的在于提供一种用于通过允许在比特流中发送用于V-PCC比特流中的数据处理和渲染的视口信息、推荐视口信息和初始观看取向(即,视口)来向用户提供优化的点云内容的点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法。
本公开的附加优点、目的和特征将在以下描述中部分地阐述,并且对于本领域普通技术人员而言在考察以下内容后将部分地变得显而易见或者可从本公开的实践学习。本公开的目的和其它优点可通过所撰写的说明书及其权利要求以及附图中具体指出的结构来实现和获得。
技术方案
为了实现这些目的和其它优点并且根据本公开的目的,如本文中具体实现并广义描述的,一种发送点云数据的方法可包括以下步骤:对点云数据进行编码;以及发送包括点云数据和信令信息的比特流。
根据实施方式,点云数据可以包括几何数据、属性数据和占用图数据,它们通过基于视频的点云压缩(V-PCC)方案进行编码。
根据实施方式,信令信息可以包括根据相机或用户的位置和取向确定的视口的视口相关信息。
根据实施方式,视口相关信息可以包括相机或用户的3维(3D)空间中的坐标信息、用于指示相机或用户正在观看的方向的方向向量信息、用于指示相机或用户的向上方向的上向量信息、以及用于指示相机或用户的向右方向的右向量信息。
根据实施方式,视口相关信息可以包括用于生成视口的水平视场(FOV)信息和垂直FOV信息。
根据实施方式,点云数据发送设备可以包括用于对点云数据进行编码的编码器和用于发送包括点云数据和信令信息的比特流的发送器。
根据实施方式,点云数据可以包括由基于视频的点云压缩(V-PCC)方案编码的几何数据、属性数据和占用图数据。
根据实施方式,信令信息可以包括根据相机或用户的位置和取向确定的视口的视口相关信息。
根据实施方式,视口相关信息可以包括相机或用户的3维(3D)空间中的坐标信息、用于指示相机或用户正在观看的方向的方向向量信息、用于指示相机或用户的向上方向的上向量信息、以及用于指示相机或用户的向右方向的右向量信息。
根据实施方式,视口相关信息可以包括用于生成视口的水平视场(FOV)信息和垂直FOV信息。
根据实施方式,点云数据接收方法可以包括接收包括点云数据和信令信息的比特流,对点云数据进行解码,以及渲染解码的点云数据。
根据实施方式,信令信息可以包括根据相机或用户的位置和取向确定的视口的视口相关信息。
根据实施方式,视口相关信息可以包括相机或用户的3维(3D)空间中的坐标信息、用于指示相机或用户正在观看的方向的方向向量信息、用于指示相机或用户的向上方向的上向量信息、以及用于指示相机或用户的向右方向的右向量信息。
根据实施方式,视口相关信息可以包括用于生成视口的水平视场(FOV)信息和垂直FOV信息。
根据实施方式,可以基于视口相关信息来渲染解码的点云数据。
根据实施方式,点云数据接收装置可以包括:接收器,其用于接收包括点云数据和信令信息的比特流;解码器,其用于对点云数据进行解码;以及渲染器,其用于渲染解码的点云数据。
根据实施方式,信令信息可以包括根据相机或用户的位置和取向确定的视口的视口相关信息。
根据实施方式,视口相关信息可以包括相机或用户的3维(3D)空间中的坐标信息、用于指示相机或用户正在观看的方向的方向向量信息、用于指示相机或用户的向上方向的上向量信息、以及用于指示相机或用户的向右方向的右向量信息。
根据实施方式,视口相关信息可以包括用于生成视口的水平视场(FOV)信息和垂直FOV信息。
根据实施方式,可以基于视口相关信息来渲染解码的点云数据。
有益效果
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可提供良好质量的点云服务。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可实现各种视频编解码方法。
根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置可提供诸如自主驾驶服务之类的通用点云内容。
利用根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,可以配置V-PCC比特流,并且文件可以被发送、接收和存储。因此,可以提供最佳的点云内容服务。
利用根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,用于V-PCC比特流中的数据处理和渲染的元数据可以在V-PCC比特流中发送和接收。因此,可以提供最佳的点云内容服务。
利用根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,播放器等可以实现根据用户视口的点云对象/内容的空间或部分访问。因此,可以根据用户视口高效地访问和处理点云比特流。
利用根据实施方式的点云数据发送方法、点云数据发送装置、点云数据接收方法和点云数据接收装置,用于对点云内容和及其信令信息进行部分访问和/或空间访问的边界框可以被提供。因此,可以考虑到播放器环境或用户环境在接收侧以各种方式访问点云内容。
根据实施方式的点云数据发送方法和发送装置可以提供关于点云内容的3D区域信息和与其相关联的视频或阿特拉斯帧中的2D区域相关元数据,以支持根据用户视口对点云内容的空间/部分访问。
根据实施方式的点云数据发送方法和发送装置可以处理关于点云比特流中的点云的3D区域信息和与其相关联的视频或阿特拉斯帧中的2D区域相关元数据的信令。
利用根据实施方式的点云数据接收方法和接收装置,可以基于关于点云比特流中的点云的3D区域信息和与其相关联的视频或阿特拉斯帧中的2D区域相关元数据的存储和信令来高效地访问点云内容。
利用根据实施方式的点云数据接收方法和接收装置,可以基于关于与文件中的图像项目相关联的点云的3D区域信息和与其相关联的视频或阿特拉斯帧中的2D区域相关信息考虑用户环境来提供点云内容。
附图说明
附图被包括以提供本公开的进一步理解,并且被并入本申请中并构成本申请的一部分,附图示出本公开的实施方式并与说明书一起用于说明本公开的原理。附图中:
图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文件的结构的图。
图26是示出根据实施方式的指派给data_type的PCC数据的轨道类型的示例的表。
图27是示出根据实施方式的指派给attribute_type的属性类型的示例的表。
图28示出根据实施方式的profile_tier_level()的语法结构的示例。
图29是示出根据实施方式的参考轨道中的PCC数据的类型的示例的表。
图30是示出根据实施方式的属性类型的示例的表。
图31是示出根据实施方式的属性类型的示例的表。
图32示出通过将补片帧划分为一个或更多个拼块行和一个或更多个拼块列来将补片帧划分为多个拼块的示例。
图33示出根据实施方式的每个V-PCC单元的语法结构的示例。
图34示出根据实施方式的V-PCC单元头的语法结构的示例。
图35示出根据实施方式的指派给vpcc_unit_type字段的V-PCC单元的类型的示例。
图36示出根据实施方式的包括在V-PCC单元头中的pcm_separate_video_data()的语法结构的示例。
图37示出根据实施方式的V-PCC单元有效载荷的语法结构的示例。
图38示出根据实施方式的包含在V-PCC单元有效载荷中的sequence_parameter_set()的语法结构的示例。
图39示出根据实施方式的补片数据组的语法结构的示例。
图40是示出根据实施方式的指派给补片数据组的pdg_unit_type字段的补片数据组的类型的示例的表。
图41示出根据实施方式的补片数据组单元有效载荷的语法结构的示例。
图42示出根据实施方式的补充增强信息(SEI)消息(sei_message())的语法结构的示例。
图43示出根据本公开的其它实施方式的V-PCC比特流结构的示例。
图44示出根据实施方式的由V-PCC比特流中的样本流V-PCC单元载送的数据的示例。
图45示出根据实施方式的包含在V-PCC比特流中的样本流V-PCC头的语法结构的示例。
图46示出根据实施方式的样本流V-PCC单元的语法结构的示例。
图47示出根据实施方式的V-PCC单元的语法结构的示例。
图48示出根据实施方式的V-PCC单元头的语法结构的示例。
图49示出根据实施方式的指派给vuh_unit_type字段的V-PCC单元类型的示例。
图50示出根据实施方式的V-PCC单元有效载荷(vpcc_unit_payload())的语法结构的示例。
图51是示出根据实施方式的阿特拉斯子流的结构示例的图。
图52示出根据实施方式的包含在阿特拉斯子流中的样本流NAL头(sample_stream_nal_header())的语法结构的示例。
图53示出根据实施方式的样本流NAL单元的语法结构的示例。
图54示出根据实施方式的SEI消息有效载荷(sei_payload())的语法结构的示例。
图55示出根据实施方式的V-PCC样本条目结构的示例。
图56示出根据实施方式的使用虚拟相机和ViewInfoStruct信息生成视图的示例。
图57示出根据实施方式的使用ObjectRenderingInfoStruct()信息创建视图的示例。
图58是示出根据实施方式的用于封装非定时V-PCC数据的示例性结构的图。
图59是示出根据实施方式的视锥体中的点云数据的空间部分实际显示在视口上的示例的图。
图60示出根据实施方式的视锥体的示例性俯视图。
图61示出根据实施方式的视锥体的示例性侧视图。
图62示出根据实施方式的发送点云数据的方法的示例。
图63示出根据实施方式的接收点云数据的方法的示例。
具体实施方式
现在将详细参考本公开的优选实施方式,其示例示出于附图中。下面将参照附图给出的详细描述旨在说明本公开的示例性实施方式,而非示出可根据本公开实现的仅有实施方式。以下详细描述包括具体细节以便提供本公开的彻底理解。然而,对于本领域技术人员而言将显而易见的是,本公开可在没有这些具体细节的情况下实践。
尽管本公开中使用的大多数术语选自本领域中广泛使用的通用术语,但是一些术语由申请人任意选择并且在以下描述中根据需要详细说明其含义。因此,本公开应该基于术语的预期含义而非其简单名称或含义来理解。
图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的每个元件可以由软件、硬件、处理器和/或其组合来执行。
补片生成或补片生成器40000接收点云帧(其可以是包含点云数据的比特流的形式)。补片生成器40000根据点云数据生成补片。此外,生成包括关于补片生成的信息的补片信息。
补片打包或补片打包器40001打包一个或更多个补片。另外,补片打包器40001生成包含关于补片打包的信息的占用图。
几何图像生成或几何图像生成器40002基于点云数据、补片信息(或辅助信息)和/或占用图信息生成几何图像。几何图像是指包含与点云数据相关的几何的数据(即,点的3D坐标值),并且是指几何框架。
纹理图像生成或纹理图像生成器40003基于点云数据、补片、打包的补片、补片信息(或辅助信息)和/或平滑的几何来生成纹理图像。纹理图像是指属性帧。即,可以进一步基于通过基于补片信息进行平滑的平滑处理生成的平滑的几何来生成纹理图像。
平滑或平滑器40004可以减轻或消除包含在图像数据中的错误。例如,重构的几何图像基于补片信息被平滑化。也就是说,可以平滑地过滤掉可能导致数据之间的错误的部分以生成平滑的几何。
辅助补片信息压缩或辅助补片信息压缩器40005可以压缩与在补片生成中生成的补片信息相关的辅助补片信息。此外,辅助补片信息压缩器40005中压缩的辅助补片信息可以被发送到复用器40013。辅助补片信息可以在几何图像生成器40002中使用。
图像填充或图像填充器40006和40007可以分别填充几何图像和纹理图像。填充数据可以被填充到几何图像和纹理图像。
组扩张或组扩张器40008可以以与图像填充类似的方式将数据添加到纹理图像。辅助补片信息可以被插入到纹理图像中。
视频压缩或视频压缩器40009、40010和40011可以分别压缩填充的几何图像、填充的纹理图像和/或占用图。换言之,视频压缩器40009、40010和40011可以分别压缩输入的几何帧、属性帧和/或占用图帧,以输出几何图像的视频比特流、纹理图像的视频比特流、占用图的视频比特流。视频压缩可以对几何信息、纹理信息和占用信息进行编码。
熵压缩或熵压缩器40012可以基于熵方案来压缩占用图。
根据实施方式,熵压缩和/或视频压缩可以根据点云数据是无损的和/或有损的而对占用图帧执行。
复用器40013将来自各个压缩器的压缩的几何的视频比特流、压缩的纹理图像的视频比特流、压缩的占用图的视频比特流和压缩的辅助补片信息的比特流复用成一个比特流。
上述块可以被省略或者可以被具有相似或相同功能的块代替。此外,图4所示的每个块可以用作处理器、软件和硬件中的至少一种。
根据实施方式的图4的每个处理的详细操作描述如下。
补片生成(40000)
补片生成处理是指将点云分成补片(映射单元)以便将点云映射到2D图像的处理。补片生成处理可被分成三个步骤:法向值计算、分段和补片分段。
将参照图5详细描述法向值计算处理。
图5示出根据实施方式的表面的切平面和法向量的示例。
在图4的V-PCC编码处理的补片生成器40000中如下使用图5的表面。
与补片生成相关的法向计算
点云的各个点具有其自己的方向,其由称为法向量的3D向量表示。使用利用K-D树等获得的各个点的邻居,可获得如图5所示构成点云的表面的各个点的切平面和法向量。应用于搜索邻居的处理的搜索范围可由用户定义。
切平面是指穿过表面上的点并且完全包括表面上的曲线的切线的平面。
图6示出根据实施方式的点云的示例性边界框。
根据实施方式的边界框指代用于基于3D空间中的六面体来划分点云数据的单位的框。
根据实施方式的方法/装置(例如,补片生成器40000)可在从点云数据生成补片的处理中使用边界框。
可在将点云数据的目标对象投影到3D空间中的六面体的各个平坦面的平面上的处理中使用边界框。边界框可以由图1的点云视频获取单元10001和点云视频编码器10002生成和处理。此外,基于边界框,可以执行图4的V-PCC编码处理的补片生成40000、补片打包40001、几何图像生成40002和纹理图像生成40003。
与补片生成相关的分段
分段被分成两个处理:初始分段和细化分段。
根据实施方式的点云视频编码器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可以执行补片打包并生成占用图。
补片打包和占用图生成(40001)
这是确定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的补片的三个轴(法向、切向和双切)。
几何图像生成(40002)
在该处理中,确定构成各个补片的几何图像的深度值,并且整个几何图像基于在上述补片打包处理中确定的补片的位置来生成。确定构成各个补片的几何图像的深度值的处理可配置如下。
①计算与各个补片的位置和大小有关的参数。参数可包括以下信息。根据实施方式,补片的位置被包括在补片信息中。
指示法向轴的法向索引在先前补片生成处理中获得。切向轴是垂直于法向轴的轴当中与补片图像的水平轴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编码的一些/全部处理(例如,视频压缩40009)中,可以基于EOD码来编码关于点的几何信息。
如图10所示,EDD码用于包括d1的表面厚度范围内的所有点的位置的二值编码。例如,在图10中,由于在D0上的第一位置和第四位置处存在点并且第二位置和第三位置为空,所以包括在左侧第二列中的点可由EDD码0b1001(=9)表示。当EDD码与D0一起编码并发送时,接收终端可无损地恢复关于所有点的几何信息。
例如,当存在在参考点上方的点时,值为1。当不存在点时,值为0。因此,可以基于4个比特来表示码。
平滑(40004)
平滑是用于消除由于在压缩处理期间发生的图像质量劣化而可能出现在补片边界上的不连续的操作。可由点云视频编码器10002或平滑器40004执行平滑:
①从几何图像重构点云。此操作可与上述几何图像生成相反。例如,可以重构编码的反向处理;
②使用K-D树等计算构成重构的点云的各个点的邻近点;
③确定各个点是否位于补片边界上。例如,当存在具有与当前点不同的投影平面(集群索引)的邻近点时,可确定点位于补片边界上;
④如果在补片边界上存在点,则使该点移动到邻近点的质心(位于邻近点的平均x、y、z坐标处)。即,改变几何值。否则,维持先前几何值。
图11示出根据实施方式的基于邻近点的颜色值来重新着色的示例。
根据实施方式的点云视频编码器10002或纹理图像生成器40003可以基于重新着色来生成纹理图像。
纹理图像生成(40003)
与上述几何图像生成处理类似,纹理图像生成处理包括生成各个补片的纹理图像并且通过将纹理图像布置在确定的位置来生成整个纹理图像。然而,在生成各个补片的纹理图像的操作中,代替用于几何生成的深度值,生成具有构成与位置对应的点云的点的颜色值(例如,R、G和B值)的图像。
在估计构成点云的各个点的颜色值时,可使用先前通过平滑处理获得的几何。在平滑的点云中,一些点的位置可能已相对于原始点云移位,因此可能需要寻找适合于改变的位置的颜色的重新着色处理。可使用邻近点的颜色值来执行重新着色。例如,如图11所示,可考虑最近邻近点的颜色值和邻近点的颜色值来计算新颜色值。
例如,参照图11,在重新着色中,可以基于关于点的最近原始点的属性信息的平均和/或关于点的最近原始点的属性信息的平均来计算改变的位置的合适颜色值。
类似于以两个层d0和d1生成的几何图像,纹理图像也可以两个层t0和t1生成。
辅助补片信息压缩(40005)
根据实施方式的点云视频编码器10002或辅助补片信息压缩器40005可以压缩辅助补片信息(关于点云的辅助信息)。
辅助补片信息压缩器40005压缩在上述补片生成、补片打包和几何生成处理中生成的辅助补片信息。辅助补片信息可包括以下参数:
用于标识投影平面(法向平面)的索引(集群索引);
补片的3D空间位置,即,补片的最小切向值(在补片3d移位切向轴上)、补片的最小双切值(在补片3d移位双切轴上)和补片的最小法向值(在补片3d移位法向轴上);
补片的2D空间位置和尺寸,即,水平尺寸(补片2d尺寸u)、垂直尺寸(补片2d尺寸v)、最小水平值(补片2d移位u)和最小垂直值(补片2d移位u);以及
关于各个块和补片的映射信息,即,候选索引(当补片基于关于补片的2D空间位置和尺寸信息按顺序设置时,多个补片可按交叠方式映射到一个块。在这种情况下,映射的补片构成候选列表,并且候选索引指示其数据存在于块中的补片的顺序位置)和局部补片索引(指示存在于帧中的一个补片的索引)。表1示出表示基于候选列表和局部补片索引在块和补片之间匹配的处理的伪代码。
候选列表的最大数量可由用户定义。
[表1]
图12示出根据实施方式的推拉式背景填充。
图像填充和组扩张(40006、40007、40008)
根据实施方式的图像填充器可以基于推拉式背景填充技术来用无意义的补充数据填充除了补片区域之外的空间。
图像填充40006和40007是以无意义的数据填充补片区域以外的空间以改进压缩效率的处理。对于图像填充,可复制补片中靠近边界的列或行中的像素值以填充空白空间。另选地,如图12所示,可使用推拉式背景填充方法。根据该方法,在逐渐降低非填充图像的分辨率并再次增加分辨率的处理中利用来自低分辨率图像的像素值填充空白空间。
组扩张40008是填充分别以两个层d0/d1和t0/t1配置的几何图像和纹理图像的空白空间的处理。在此处理中,利用同一位置的值的平均填充通过图像填充计算的两个层的空白空间。
图13示出根据实施方式的4*4块的示例性可能遍历顺序。
占用图压缩(40012、40011)
根据实施方式的占用图压缩器可以压缩先前生成的占用图。具体地,可以使用两个方法,即:用于有损压缩的视频压缩和用于无损压缩的熵压缩。下面描述视频压缩。
可通过以下操作执行熵压缩。
①如果构成占用图的块被完全占用,则对1进行编码并针对占用图的下一块重复相同的操作。否则,对0进行编码并执行操作2)至5)。
②确定对块的占用像素执行游程长度编码的最佳遍历顺序。图13示出4*4块的四个可能遍历顺序。
图14示出根据实施方式的示例性最佳遍历顺序。
如上所述,根据实施方式的熵压缩器可以基于图14所示的遍历顺序方案对块进行编码(编码)。
例如,从可能遍历顺序当中选择具有最小游程数量的最佳遍历顺序,并且对其索引进行编码。图中示出选择图13中的第三遍历顺序的情况。在所示情况下,游程数量可被最小化为2,因此第三遍历顺序可被选为最佳遍历顺序。
③对游程数量进行编码。在图14的示例中,存在两个游程,因此对2进行编码。
④对第一游程的占用进行编码。在图14的示例中,对0进行编码,因为第一游程对应于未占用像素。
⑤对各个游程(游程数量那么多)的长度进行编码。在图14的示例中,依次对第一游程和第二游程的长度6和10进行编码。
视频压缩(40009、40010、40011)
根据实施方式的视频压缩器40009、40010、40011使用诸如HEVC或VVC的2D视频编解码器对在上述操作中生成的几何图像、纹理图像、占用图图像等的序列进行编码。
图15示出根据实施方式的示例性2D视频/图像编码器。根据实施方式,2D视频/图像编码器可以称作编码装置。
表示应用了上述视频压缩器40009、40010和40011的实施方式的图15是被配置为对视频/图像信号进行编码的2D视频/图像编码器15000的示意性框图。2D视频/图像编码器15000可包括在上述点云视频编码器10002中,或者可被配置成内部/外部组件。图15的每个组件可以对应于软件、硬件、处理器和/或其组合。
这里,输入图像可包括上述几何图像、纹理图像(属性图像)和占用图图像之一。当图15的2D视频/图像编码器被应用于视频压缩器40009时,输入到2D视频/图像编码器15000的图像是填充的几何图像,并且从2D视频/图像编码器15000输出的比特流是压缩的几何图像的比特流。当图15的2D视频/图像编码器被应用于视频压缩器40010时,输入到2D视频/图像编码器15000的图像是填充的纹理图像,并且从2D视频/图像编码器15000输出的比特流是压缩的纹理图像的比特流。当图15的2D视频/图像编码器被应用于视频压缩器40011时,输入到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可以分别对应于补片生成40000、补片打包40001、几何图像生成40002、纹理图像生成40003、辅助补片信息压缩40005和平滑40004。图18的编码预处理器18003可以包括图4的图像填充器40006和40007以及组扩张器40008,并且图18的视频编码器18006可以包括图4的视频压缩器40009、40010和40011和/或熵压缩器40012。对于没有参照图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可从点云预处理器21001接收元数据。视频编码器21007和/或图像编码器21008可基于元数据来执行各个编码处理。
文件/片段封装器21009以文件和/或片段的形式封装视频流和/或图像。文件/片段封装器21009执行视频轨道封装、元数据轨道封装和/或图像封装。
在视频轨道封装中,一个或更多个视频流可被封装到一个或更多个轨道。
在元数据轨道封装中,与视频流和/或图像有关的元数据可被封装在一个或更多个轨道中。元数据包括与点云数据的内容有关的数据。例如,其可包括初始观看取向元数据。根据实施方式,元数据可被封装到元数据轨道,或者可被一起封装在视频轨道或图像轨道中。
在图像封装中,一个或更多个图像可被封装到一个或更多个轨道或项目中。
例如,根据实施方式,当四个视频流和两个图像被输入到封装器时,四个视频流和两个图像可被封装在一个文件中。
文件/片段封装器21009可从点云预处理器21001接收元数据。文件/片段封装器21009可基于元数据来执行封装。
由文件/片段封装器21009生成的文件和/或片段由点云发送装置或发送器发送。例如,片段可根据基于DASH的协议来传送。
传送器可经由数字存储介质或网络将点云比特流或包括比特流的文件/片段发送到接收装置的接收器。为了传输,可执行根据任何传输协议的处理。为传输已处理的数据可经由广播网络和/或通过宽带传送。数据可按照按需方式传送至接收侧。数字存储介质可包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。
根据实施方式的文件/片段封装器21009可以将一个比特流或单独的比特流划分并存储到文件中的一个或更多个轨道中,并且可以封装用于其的信令信息。此外,包括在比特流中的补片(或阿特拉斯)流可以被存储为文件中的轨道,并且可以存储相关信令信息。此外,比特流中存在的SEI消息可以存储在文件的轨道中,并且可以存储相关信令信息。
传送器可包括用于生成预定文件格式的媒体文件的元件,并且可包括用于经由广播/通信网络传输的元件。传送器从接收器接收取向信息和/或视口信息。传送器可将所获取的取向信息和/或视口信息(或用户所选择的信息)传送至点云预处理器21001、视频编码器21007、图像编码器21008、文件/片段封装器21009和/或点云编码器。基于取向信息和/或视口信息,点云编码器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行编码。基于取向信息和/或视口信息,文件/片段封装器可对所有点云数据或取向信息和/或视口信息所指示的点云数据进行封装。基于取向信息和/或视口信息,传送器可传送所有点云数据或取向信息和/或视口信息所指示的点云数据。
例如,点云预处理器21001可对所有点云数据或对取向信息和/或视口信息所指示的点云数据执行上述操作。视频编码器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比特流可以通过文件中的多个轨道发送,或者可以通过单个轨道发送。稍后将描述细节。
图24示出根据实施方式的V-PCC比特流的示例性结构。根据实施方式,图24的V-PCC比特流是从图1、图4、图18、图20或图21的基于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单元头中的类型信息包含几何视频数据(即,压缩的几何比特流)、属性视频数据(即,压缩的属性比特流)、占用视频数据(即,压缩的占用图比特流)、补片数据组(PDG)或序列参数集(SPS)。PDG也称为阿特拉斯。在本公开中,阿特拉斯可以代替PDG。
至少包含几何视频数据、属性视频数据和占用图视频数据(也称为占用视频数据)的V-PCC单元有效载荷对应于可由合适的视频解码器解码的视频数据单元(例如,HEVC NAL单元)。。
几何视频数据、属性视频数据和占用图视频数据被称为用于编码的点云的几何、属性和占用图分量的2D视频编码信息,并且PDG(或阿特拉斯)被称为作为非视频编码信息。PDG包括辅助补片信息。SPS包括关于比特流的整体编码信息,并且也称为配置和元数据信息。SPS和PDG可以称为信令信息,并且可以由点云视频编码器中的元数据处理器生成,或者可以由点云视频编码器中的单独组件/模块生成。另外,在本公开中,将SPS和PDG称为初始化信息,并且将几何视频数据、属性视频数据、占用图视频数据称为点云数据。
在一个实施方式中,当V-PCC单元头中的类型信息指示VPCC_PDG时,对应的V-PCC单元有效载荷可以包括补片数据组。相反,当V-PCC单元有效载荷包含补片数据组时,对应的V-PCC单元头中的类型信息可以标识相同的内容。这是设计者的选项,因此本公开不限于上述实施方式。其它V-PCC单元以相同或相似的方式配置。
补片数据组以patch_data_group()的格式包含在V-PCC单元有效载荷中。补片数据组可以包含关于一个或更多个补片拼块组的信息以及补片序列参数集、补片帧参数集、补片帧几何参数集、几何补片参数集、补片帧属性参数集、或属性补片参数集中的至少一个。
作为点云数据的目标的补片帧(也称为点云对象)可以被划分为一个或更多个拼块。根据实施方式的拼块可以表示3D空间中的特定区域或2D平面中的特定区域。此外,拼块可以是一个边界框中的长方体,或者补片帧或子边界框的一部分。在本公开中,可以通过图1的点云视频编码器、图18的补片生成器、图20的点云预处理单元或图21的补片生成器,或通过单独的组件/模块,来将补片帧(或点云对象)划分为一个或更多个拼块。
根据实施方式,具有如图24所示的结构的V-PCC比特流可以照原样被发送到接收侧,或者可以被封装成文件/片段形式并且被发送到接收侧。
根据本公开的实施方式,V-PCC比特流被封装成文件格式并且被发送。例如,可以将V-PCC比特流封装成基于ISOBMFF(ISO基础媒体文件格式)的文件格式。
根据实施方式,将V-PCC比特流封装成文件是由图1的文件/片段封装器10003、图18的发送器18008、图20的文件/片段封装器20004或图21的文件/片段封装器21009执行的。根据实施方式,将文件解封装成V-PCC比特流是由图1的文件/片段解封装器10007、图19的接收器、图20的文件/片段解封装器20005或图22的文件/片段解封装器22000执行的。
图25是示出根据实施方式的多轨道V-PCC文件的结构的图。也就是说,示出了包含多个轨道的基于ISOBMFF的文件的布局的示例。
根据实施方式的基于ISOBMFF的文件可以被称为容器、容器文件、媒体文件、V-PCC文件等。具体地,文件可以由可以称为ftyp、meta、moov或mdat的盒和/或信息组成。
ftyp盒(文件类型盒)可以提供与文件的文件兼容性或文件类型有关的信息。接收侧可以参考ftyp盒来识别文件。
meta盒可以包括vpcg{0,1,2,3}盒(V-PCC组盒),下面将对其进行详细描述。
mdat盒,也称为媒体数据盒,可以包含视频编码的几何比特流、视频编码的属性比特流、视频编码的占用图比特流和补片数据组比特流。
也称为电影盒的moov盒可以包含关于文件的媒体数据(例如,几何比特流、属性比特流、占用图比特流等)的元数据。例如,它可以包含解码和播放媒体数据所需的信息,以及关于文件的样本的信息。moov盒可以用作所有元数据的容器。moov盒可以是元数据相关盒当中的最高层的盒。根据实施方式,文件中可以仅存在一个moov盒。
根据实施方式,在如图25所示的ISOBMFF容器结构中,包括在V-PCC比特流中的V-PCC单元基于其类型被映射到文件中的各个轨道。
基于图25所示的布局,用于V-PCC比特流的ISOBMFF容器可以包括以下内容:
1)V-PCC轨道。V-PCC轨道包含序列参数集和载送包括非视频编码信息(例如,指示V-PCC单元头中的相应V-PCC单元的类型的类型信息指示SPS或PDG)的V-PCC单元的有效载荷的样本。V-PCC轨道还可以提供对包含样本的其它轨道的轨道参考,该样本载送包含视频压缩信息(例如,V-PCC单元头中的类型信息指示几何视频数据、属性视频数据、或占用图视频数据)的V-PCC单元的有效载荷。
2)用于几何视频数据的一个或更多个受限视频方案轨道。这些轨道中包含的样本包含用于几何视频数据的视频编码基本流的NAL单元。在这种情况下,V-PCC单元头中的类型信息指示几何视频数据,并且NAL单元对应于载送几何视频数据的有效载荷。
3)用于属性视频数据的一个或更多个受限视频方案轨道。这些轨道中包含的样本包含用于属性视频数据的视频编码基本流的NAL单元。在这种情况下,V-PCC单元头中的类型信息指示属性视频数据,并且NAL单元对应于载送属性视频数据的有效载荷。
4)用于占用图数据的受限视频方案轨道。这些轨道中包含的样本包含用于占用图视频数据的视频编码基本流的NAL单元。在这种情况下,V-PCC单元头中的类型信息指示占用图视频数据,并且NAL单元对应于载送占用图视频数据的有效载荷。
根据实施方式,包括用于几何视频数据、属性视频数据和占用图视频数据的视频编码基本流的轨道被称为分量轨道。
根据实施方式,包含在分量轨道中的基本流之间的同步由ISOBMFF轨道定时结构(stts、ctts和cslg,或电影片段中的等效机制)处置。跨不同视频编码分量轨道和V-PCC轨道对相同点云帧有贡献的样本可以具有相同的合成时间。
用于此类样本的V-PCC参数集可以具有等于或早于帧的合成时间的解码时间。
载送V-PCC内容的ISOBMFF文件可以与V-PCC定义的品牌区分开。V-PCC内容的轨道可以在VPCCGroupBox内进行分组,其是具有V-PCC特定分组4CC值('vpcg')的文件级别的EntityToGroupBox。VPCCGroupBox可以用作访问容器中V-PCC内容的入口点,并包含描述V-PCC内容的初始元数据。作为EntityToGroupBox的VPCCGroupBox可以包含在MetaBox盒或Moov盒中。
实体组可以是对轨道进行分组的一组项目。实体组中的实体可以共享由分组类型指示的特定特征,也可以具有特定关系。
实体组在GroupsListBox中指示。GroupsListBox可以包括在文件级别的MetaBox、电影级别的MetaBox或轨道级别的MetaBox中的至少一个中。在文件级别的MetaBox的GroupsListBox中指定的实体组是指轨道或文件级别的项目。电影级别的MetaBox的GroupsListBox中指定的实体组指的是电影级别的项目。在轨道级别的MetaBox的GroupsListBox中指定的实体组指的是该轨道的轨道级别的项目。
GroupsListBox包含EntityToGroupBoxes,各自指定一个实体组如下。
组列表盒
盒类型:'grpl'
容器:未包含在AdditionalMetadataContainerBox中的MetaBox
强制:否
数量:零或一
GroupsListBox包括为文件指定的实体组。此盒包含一组完整的盒,各自称为EntityToGroupBox,带有表示定义的分组类型的四字符码。
GroupsListBox不应出现在AdditionalMetadataContainerBox中。
当GroupsListBox存在于文件级别的MetaBox中时,在任何文件级别的MetaBox中的ItemInfoBox中可以不存在与任何TrackHeaderBox中的track_ID值相等的item_ID值。
aligned(8)类GroupsListBox扩展盒('grpl'){
}
盒类型:如下指定的,具有用于EntityToGroupBox的grouping_type值
容器:GroupsListBox
强制:否
数量:一个或更多个
EntityToGroupBox指定实体组。
盒类型(grouping_type)指示实体组的分组类型。每个grouping_type码与描述分组的语义相关联。指定了以下grouping_type值:
‘altr’:映射到该分组的项目和轨道是彼此的替代品,并且仅其中一个可以被播放(当映射的项目和轨道是呈现的一部分时,例如,可显示的项目或轨道)或通过其它方式处理(当映射的项目或轨道不是呈现的一部分,而是例如元数据时)。播放器可以从它可以处理的entity_id值的列表中选择第一实体,例如,解码和播放作为呈现的一部分并且适合应用需要的映射的项目和轨道。任何entity_id值应映射到仅“altr”类型的一个分组。实体的另选组由映射到同一类型“altr”的实体组的项目和轨道组成。
注意:EntityToGroupBox包含特定于grouping_type的扩展。
aligned(8)类EntityToGroupBox(grouping_type、版本、标志)扩展FullBox(grouping_type、版本、标志){
unsigned int(32)group_id;
unsigned int(32)num_entities_in_group;
for(i=0;i<num_entities_in_group;i++)
unsigned int(32)entity_id;
}
根据实施方式,group_id是指派给特定分组的非负整数,它不等于任何其它EntityToGroupBox的任何group_id值、包含GroupsListBox或任何track_ID值(当GroupsListBox包含在文件级别中时)。
根据实施方式,num_entities_in_group指定映射到该实体组的entity_id值的数量。
根据实施方式,当item_ID等于entity_id的项目存在于包含GroupsListBox的层次级别(文件、电影或轨道)中时,entity_id被解析为项目,或者当track_ID等于entity_id的轨道存在并且GroupsListBox包含在文件级别中时,entity_id被解析为轨道。
下面描述V-PCC组盒。
盒类型:‘vpcg’
容器:GroupListBox
强制:是
数量:一个或更多个
V-PCC组盒被包括在GroupsListBox中并且提供包括V-PCC内容的轨道的列表。
在该盒中列出了V-PCC内容特定信息,诸如属性类型和层到相关轨道的映射。此信息提供了一种方便的方式来初步了解V-PCC内容。为了灵活配置支持各种不同客户端功能的V-PCC内容,此盒中列出了多个版本的编码V-PCC分量。V-PCC定义的建档、层级和级别信息也包含在该盒中。
aligned(8)类VPCCGroupBox()扩展EntityToGroupBox('vpcg'、版本、标志){
for(i=0;i<num_entities_in_group;i++){
unsigned int(4)数据类型;
unsigned int(4)属性类型;
unsigned int(1)multiple_layer_present_flag;
unsigned int(4)layer_count_munus1;
for(i=0;i<layer_count_minus1+1;i++){
unsigned int(4)layer_id;
}
unsigned int(32)entity_id;
}
unsigned int(4)PCC_layer_count_minus1;
vpcc_profile_tier_level()
}
根据实施方式,data_type指示参考轨道中的PCC数据的轨道类型。
图26是示出根据实施方式指派给data_type的PCC数据的轨道类型的示例的表格。例如,data_type等于1可以指示V-PCC轨道。data_type等于2可以指示几何视频轨道。data_type等于3可以指示属性视频轨道。data_type等于4可以指示占用图视频轨道。
根据实施方式,multiple_layer_present_flag指示关联实体(或轨道)是载送单个几何或属性层还是载送多个几何或属性层。例如,multiple_layer_present_flag等于0指示在关联实体(或轨道)中载送单个几何或属性层。multiple_layer_present_flag等于1指示在关联实体(或轨道)中载送多个几何或属性层。根据实施方式的V-PCC轨道(即,data_type指示V-PCC轨道)应具有multiple_layer_present_flag等于0。作为另一示例,当data_type指示几何视频轨道时,multiple_layer_present_flag等于0可以指示几何视频轨道载送单个几何层,multiple_layer_present_flag等于1指示几何视频轨道载送多个几何层。作为另一示例,当data_type指示属性视频轨道时,multiple_layer_present_flag等于0可以指示属性视频轨道载送单个属性层,multiple_layer_present_flag等于1可以指示属性视频轨道载送多个属性层。
根据实施方式,layer_count_minus1加1指示相关实体(或轨道)中载送的几何或属性层的数量。根据实施方式的V-PCC轨道的layer_count_minus1等于0。例如,当data_type指示几何视频轨道时,layer_count_minus1加1可以指示几何视频轨道中载送的几何层的数量。作为另一示例,当data_type指示属性视频轨道时,layer_count_minus1加1可以指示属性视频轨道载送的属性层的数量。
根据实施方式,layer_id指定关联实体(或轨道)中的几何或属性层的层标识符。根据实施方式的V-PCC轨道具有等于0的layer_id。按升序布置的任何V-PCC分量轨道类型的layer_id值的集合是从0开始的连续整数集合。作为示例,当data_type指示几何视频轨道时,layer_id可以指示几何层的层标识符。作为另一示例,当data_type指示属性视频轨道时,layer_id可以指示属性层的层标识符。
根据实施方式,pcc_layer_count_minus1加1指示用于对点云流的几何和属性分量进行编码的层的数量。例如,当data_type指示几何视频轨道时,pcc_layer_count_munus1加1可以指示用于对点云流的几何分量进行编码的层的数量。作为另一示例,当data_type指示属性视频轨道时,pcc_layer_count_munus1加1可以指示用于对点云流的属性分量进行编码的层的数量。
根据实施方式,attribute_type指示参考实体(或轨道)中载送的属性视频数据的属性类型。
图27是示出根据实施方式指派给attribute_type的属性类型的示例的表。例如,attribute_type等于0可以指示纹理,attribute_type等于1可以指示材料ID。等于2的attribute_type可以指示透明性,等于3的attribute_type可以指示反射性,并且等于4的attribute_type可以指示法向(Normals)。
根据实施方式,entity_id指定相关项目或轨道的标识符。当item_ID等于entity_id的项目出现在包含GroupsListBox的层次级别(文件、电影或轨道)中时,它被解析为项目,或者当track_ID等于entity_id的轨道存在且GroupsListBox包含在文件级别中时,它被解析为轨道。
vpcc_profile_tier_level()与在sequence_parameter_set()中指定的profile_tier_level()相同。
图28示出了根据实施方式的profile_tier_level()的语法结构的示例。
ptl_tier_flag字段指定用于对V-PCC内容进行编码的编解码器简档层级。
ptl_profile_idc字段指示编码点云序列符合的简档信息。
ptl_level_idc字段指示编码点云序列符合的编解码器简档的级别。
接下来,将描述V-PCC轨道。
每个V-PCC内容的入口点可以由唯一的V-PCC轨道表示。一个ISOBMFF文件可以包含多个V-PCC内容,因此文件中可以存在多个V-PCC轨道。V-PCC轨道应由MediaBox的HandlerBox中的体积视觉媒体处置器类型“volm”标识。
盒类型:'vohd'
容器:MediaInformationBox
强制:是
数量:正好一个
体积轨道使用MediaInformationBox中的VolumetricMediaHeaderBox
aligned(8)类VolumetricMediaHeaderBox扩展FullBox('vohd',version=0,1){
//如果我们在这里不需要任何东西,则使用Null Media Header(空媒体头)
}
//补片流的随机访问点
V-PCC轨道的随机访问点可以是载送具有空解码器缓冲器的I补片帧的样本。为了指示V-PCC轨道的随机访问点,存在syncsampleBox。同步样本指示载送I补片帧的同步样本。
如果轨道中的一些样本(包括任何轨道片段)是非同步样本,则SyncSampleBox应该存在于SampleTableBox中,但是轨道片段中的样本的标志sample_is_non_sync_sample是有效的并且描述了这些样本,即使SyncSampleBox不存在。如果轨道没有分段并且SyncSampleBox不存在,则轨道中的所有样本都是同步样本。
盒类型:‘stbl’
容器:MediaInformationBox
强制:是
数量:正好一个
aligned(8)类SampleTableBox扩展Box('stbl'){
}
盒类型:‘stss’
容器:SampleTableBox
强制:否
数量:零或一
该盒提供流内的同步样本的紧凑标记。该表严格按照样本编号升序布置。如果SyncSampleBox不存在,则每个样本都是一个同步样本。
aligned(8)类SyncSampleBox
扩展FullBox('stss',version=0,0){
unsigned int(32)entry_count;
int i;
for(i=0;i<entry_count;i++){
unsigned int(32)sample_number;
}
}
‘version’是整数,代表该盒的版本。
entry_count是整数,它给出下表中的条目的数量。如果entry_count为零,则流内没有同步样本,并且下表为空。
sample_number为流中的每个同步样本给出其样本编号。特别是,对于V-PCC轨道中载送I-patch帧的每个同步样本,sample_number给出其样本编号。
下面描述V-PCC轨道样本条目。
样本条目类型:'vpc1'
容器:SampleDescriptionBox('stsd')
强制:“vpc1”样本条目是强制的数量:一个或更多个
使用轨道样本条目类型'vpc1'。VPCC轨道样本条目包含VPCC配置盒,定义如下。这包括定义的VPCCDDecoderConfigurationRecord。VPCC轨道样本条目中可以存在可选的BitRateBox,以发信号通知VPCC视频流的比特率信息。
aligned(8)类VPCCDDecoderConfigurationRecord{
unsigned int(8)configurationVersion=1;
unsigned int(8)numOfSequenceParameterSets;
for(i=0;i<numOfSequenceParameterSets;i++){
sequence_parameter_set();
}
//附加字段
}
类VPCCConfigurationBox扩展Box('vpcc'){
VPCCDecoderConfigurationRecord()VPCCConfig;
}
aligned(8)类VPCCSampleEntry()扩展VolumetricSampleEntry('vpc1'){
VPCCConfigurationBox config;
}
类VolumetricSampleEntry(codingname)扩展SampleEntry(codingname){
}
configurationVersion是版本字段。对记录的不兼容更改由版本号的更改指示。
numOfSequenceParameterSets表示在解码器配置记录中发信号通知的V-PCC序列参数集的数量。
基类VisualSampleEntry中的Compressorname指示推荐使用具有值“\012VPCCCoding”的压缩器的名称。
V-PCC规范允许VPCC_SPS单元的多个实例(具有从1到15的id)。因此,VPCCSampleEntry包含多个sequence_parameter_set单元有效载荷。
下面描述V-PCC样本格式。
V-PCC轨道中的每个样本对应于单个点云帧。
在各个分量轨道中对应于该帧的样本具有与用于V-PCC轨道中的帧的V-PCC轨道样本相同的合成时间。
每个V-PCC样本仅包含其V-PCC单元头中的类型信息指示补片数据组(PDG)的一个V-PCC单元有效载荷。该V-PCC单元有效载荷包括一个或更多个补片块组单元有效载荷,如图24所示。
aligned(8)类vpcc_unit_payload_struct{
vpcc_unit_payload();
}
aligned(8)类VPCCSample{
vpcc_unit_payload_Struct();
}
vpcc_unit_payload()是V-PCC单元头中的类型信息指示PDG的V-PCC单元的有效载荷,并且包含一个patch_data_group_unit()实例。
对于V-PCC轨道,载送I-patch帧的样本被定义为同步样本。
接下来,下面描述V-PCC轨道参考。
为了将V-PCC轨道链接到分量视频轨道,使用ISOBMFF标准的轨道参考工具。三个TrackReferenceTypeBox被添加到V-PCC轨道的TrackBox内的一个TrackReferenceBox,每个组件一个。
TrackReferenceTypeBox包含指定V-PCC轨道所参考的视频轨道的track_ID阵列。
TrackReferenceTypeBox中的reference_type标识分量的类型(即,几何、属性或占用图)。新轨道参考类型的4CC包括“pcca”、“pccg”和“pcco”。
在类型“pcca”中,参考的轨道包含视频编码的属性V-PCC分量。
在类型“pccg”中,参考的轨道包含视频编码的几何V-PCC分量。
在类型“pcco”类型中,参考的轨道包含视频编码的占用图V-PCC分量。
接下来,下面描述视频编码的V-PCC分量轨道。
由于显示来自属性、几何或占用图轨道的解码帧而不在播放器侧重构点云是没有意义的,因此可以为这些视频编码轨道定义受限视频方案类型。V-PCC视频轨道应包含4CC标识符“pccv”。4CC标识符'pccv'包含在受限样本条目的RestrictedSchemeInfoBox的SchemeTypeBox的scheme_type字段中。
对受限视频样本条目类型'resv'使用V-PCC视频方案指示解码画面包含点云的属性、几何或占用图数据。
V-PCC视频方案的使用由RestrictedSchemeInfoBox中的SchemeTypeBox内的等于'pccv'(基于视频的点云视频)的scheme_type指示。
该盒是包含指示该轨道的V-PCC特定信息的框的容器。VPCCVideoBox提供了可应用于轨道中所有样本的PCC特定参数。
盒类型:‘pccv’
容器:SchemeInformationBox
强制:当scheme_type等于‘pccv’时,是
数量:零或一
aligned(8)类VPCCVideoBox扩展FullBox('vpcc',0,0){
unsigned int(4)data_type;
unsigned int(4)attribute_count;
for(int i=0;i<attribute_count+1;i++){
unsigned int(4)attribute_type;
}
unsigned int(1)multiple_layer_present_flag;
unsigned int(4)layer_count_minus1;
for(i=0;i<layer_count_minus1+1;i++){
unsigned int(4)layer_id;
}
}
data_type可以指示包括在对应轨道中的视频样本中包含的数据的类型。
图29是示出根据实施方式的参考轨道中的PCC数据的类型的示例的表。例如data_type在等于1时指示V-PCC轨道,在等于2时指示几何视频轨道,在等于3时指示属性视频轨道,并且在等于4时指示占用图视频轨道。
multiple_layer_present_flag指示在该轨道中是载送单个几何或属性层还是载送多个几何或属性层。例如,multiple_layer_present_flag等于0可以指示在该轨道中载送单个几何或属性层。multiple_layer_present_flag等于1可以指示在该轨道中载送了多个几何或属性层。作为另一示例,当data_type指示几何视频轨道时,multiple_layer_present_flag等于0可以指示几何视频轨道载送单个几何层,multiple_layer_present_flag等于1可以指示几何视频轨道载送多个几何层。作为另一示例,当data_type表示属性视频轨道时,multiple_layer_present_flag等于0可以指示属性视频轨道载送单个属性层,multiple_layer_present_flag等于1可以指示属性视频轨道载送多个属性层。
layer_count_minus1加1指示该轨道中载送的几何和/或属性层的数量。例如,当data_type指示几何视频轨道时,layer_count_minus1加1可以指示几何视频轨道载送的几何层的数量。作为另一示例,当data_type指示属性视频轨道时,layer_count_minus1加1可以指示属性视频轨道中载送的属性层的数量。
layer_id指定与轨道中的样本相关联的几何或属性层的层标识符。作为示例,当data_type指示几何视频轨道时,layer_id可以指示几何层的层标识符。作为另一示例,当data_type指示属性视频轨道时,layer_id可以指示属性层的层标识符。attribute_count可以指示包含在轨道中的点云流的属性数据的数量。一个或更多个属性数据可以包含在一个轨道中。在这种情况下,根据实施方式,data_type指示属性视频轨道。
attribute_type指示轨道中载送的属性视频数据的属性类型。
图30是示出根据实施方式的属性类型的示例的表。例如,attribute_type字段在等于0时指示纹理,在等于1时指示材料ID,在等于2时指示透明性,在等于3时指示反射性,并且在等于4时指示法向。
当VPCCVideoBox中存在的字段值被包括在与项目相关联的信令中时,可以指示关于项目(图像)的信息。
接下来,下面描述属性样本分组。
当轨道包含点云的属性数据时,它可以包含一种或更多种属性类型的数据。在这种情况下,包含在相应轨道中的样本中包含的数据的属性类型可以如下发信号通知。
类PCCAttributeSampleGroupEntry扩展VisualSampleGroupEntry('pcca'){
unsigned int(4)attribute_type;
}
attribute_type指示轨道中的相关样本中载送的属性视频数据的属性类型。
图31是示出根据实施方式的属性类型的示例的表。例如,attribute_type字段在等于0时指示纹理,在等于1时指示材料ID,在等于2时指示透明性,在等于3时指示反射性,并且在等于4时指示法向。
接下来,下面描述层样本分组。
它可以包括与轨道的点云的相同数据类型(例如,几何数据、属性数据)的一个或更多个层相关联的数据。在这种情况下,关于轨道中包括的样本中包含的数据的层相关信息可以如下发信号通知。
类PCCLayerSampleGroupEntry扩展VisualSampleGroupEntry('pccl'){
unsigned int(4)pcc_layer_count_minus1;
unsigned int(4)layer_id;
}
pcc_layer_count_minus1加1指示用于编码点云流的几何和属性分量的层的数量。
layer_id指定轨道中的相关样本的层标识符。
接下来,下面描述层跟踪分组。
从V-PCC的角度来看,预计除了几何之外,所有其它类型的信息(除了占用和补片信息之外)可以具有相同数量的层。此外,所有标记有相同层索引的信息(几何/属性)相互相关。也就是说,用相同层索引标记的信息指的是3D空间中的相同的重构点。
为了构造具有层索引M的属性,具有索引M的几何层也应该是可用的。如果由于某种原因缺少该几何层,则此类属性信息将是无用的,因为两者“链接”在一起。
从渲染的角度来看,这样的信息可以被认为“增强”重构的点云。注意,这意味着仍然可以通过丢弃一些层来获得合理的重构。然而,根据实施方式,不丢弃层0。
根据实施方式,属于同一层的轨道对于track_group_type'pccl'具有相同的track_group_id值,并且来自一个层的轨道的track_group_id与来自任何其它层的轨道的track_group_id不同。
默认地,当没有针对文件中的任何轨道指示该轨道分组时,该文件被视为仅包含一层的内容。
aligned(8)类PCCLayerTrackGroupBox扩展TrackGroupTypeBox('pccl'){
unsigned int(4)pcc_layer_count_minus1;
unsigned int(4)layer_id;
}
pcc_layer_count_minus1加1指示用于编码点云流的几何/或属性分量的层的数量。
layer_id指定轨道中载送的相关pcc数据(例如,几何和/或属性)层的层标识符。
这可以通知图20的播放器或图1、图19、图20或图22的渲染器,属于同一轨道组的轨道的数据可用于重构同一层的点云。
如上所述,在本公开中,在V-PCC轨道和属性轨道中的至少一个中发信号通知用于允许客户端/播放器根据需要选择和使用属性比特流的信令信息。
另外,根据本公开,与V-PCC轨道中的样本当中的随机访问点有关的信令信息在V-PCC轨道和属性轨道中的至少一个中被发信号通知。
因此,由于允许客户端/播放器获取与随机访问点相关的信令信息并基于信令信息获取和使用必要的属性比特流,因此可以实现高效且更快的数据处理。
此外,在本公开中,当文件中的几何和/或属性视频数据由多个层组成时,一起使用的轨道分组信息在V-PCC轨道和对应的视频轨道中的至少一个(即,几何轨道或属性轨道)中发信号通知。
此外,在本公开中,当几何和/或属性视频数据由一个轨道中的多个层组成时,在V-PCC轨道和对应的视频轨道中的至少一个(即,几何轨道或属性轨道)中发信号通知针对其的样本分组信息。
此外,在本公开中,当多个属性视频数据包含在一个轨道中时,在V-PCC轨道和属性轨道中的至少一个中发信号通知针对其的样本分组信息。
作为点云数据的目标的补片帧(或称为点云对象或阿特拉斯帧)可以被划分为一个或更多个拼块,如上所述。根据实施方式的拼块可以表示3D空间中的特定区域或2D平面中的特定区域。此外,拼块可以是一个边界框中的长方体,或者补片帧或子边界框的一部分。在本公开中,可以通过图1的点云视频编码器、图18的补片生成器、图20的点云预处理单元或图21的补片生成器,或通过单独的组件/模块,来执行将补片帧(或点云对象)划分为一个或更多个拼块。
图32示出了通过将补片帧划分为一个或更多个拼块行和一个或更多个拼块列来将补片帧划分为多个拼块的示例。拼块是补片帧的矩形区域,并且拼块组可以包含补片帧的多个拼块。在本公开中,拼块组包含共同形成补片帧的矩形(四边形)区域的补片帧的多个拼块。特别地,图32示出了其中补片帧被划分为24个拼块(6个拼块列和4个拼块行)和9个矩形(四边形)拼块组的示例。
这里,当图24的PCC单元头中的类型信息指示包括至少一个补片的补片数据组(VPCC-PDG)时,对应的V-PCC单元有效载荷可以包括补片数据组。相反,当V-PCC单元有效载荷包括补片数据组时,V-PCC单元头中的类型信息可以识别相同的内容。
补片数据组可以包含关于一个或更多个补片拼块组的信息以及补片序列参数集、补片帧参数集、补片帧几何参数集、几何补片参数集、补片帧属性参数集、或属性补片参数集中的至少一个。
图33示出根据实施方式的每个V-PCC单元的语法结构的示例。每个V-PCC单元由V-PCC单元头和V-PCC单元有效载荷组成。图33的V-PCC单元可以包含更多数据。在这种情况下,它还可以包括trailing_zero_8bits字段。根据实施方式的trailing_zero_8bits字段是对应于0x00的字节。
图34示出根据实施方式的V-PCC单元头的语法结构的示例。在实施方式中,图34的V-PCC单元头(vpcc_unit_header())包括vpcc_unit_type字段。vpcc_unit_type字段指示V-PCC单元的类型。
图35示出根据实施方式的指派给vpcc_unit_type字段的V-PCC单元的类型的示例。
参照图35,根据实施方式,设置为0的vpcc_unit_type字段指示包含在V-PCC单元的V-PCC单元有效载荷中的数据是序列参数集(VPCC_SPS)。设置为1的vpcc_unit_type字段指示数据是补片数据组(VPCC_PDG)。设置为2的vpcc_unit_type字段指示数据是占用视频数据(VPCC_OVD)。设置为3的vpcc_unit_type字段指示数据是属性视频数据(VPCC_AVD)。设置为4的vpcc_unit_type字段指示数据是几何视频数据=(VPCC_GVD)。
本领域技术人员可以容易地改变指派给vpcc_unit_type字段的值的含义、顺序、删除、添加等,因此本公开将不限于上述实施方式。
这里,V-PCC单元有效载荷符合HEVC NAL单元的格式。也就是说,根据vpcc_unit_type字段的值,占用、几何和属性视频数据V-PCC单元有效载荷对应于对应的占用、几何和属性参数集V-PCC单元(例如,HEVCNAL单元)中的指定视频解码器可解码的视频数据单元。
根据实施方式,当vpcc_unit_type字段指示属性视频数据(VPCC_AVD)、几何视频数据(VPCC_GVD)、占用时间视频数据(VPCC_OVD)或补片数据组(VPCC_PDG)时,V-PCC单元头还包括vpcc_sequence_parameter_set_id字段。
vpcc_sequence_parameter_set_id字段指定活动序列参数集(VPCC SPS)的标识符(即,sps_sequence_parameter_set_id)。vpcc_sequence_parameter_set_id字段的值可以在0到15的范围内,包括0和15。
根据实施方式,当vpcc_unit_type字段指示属性视频数据(VPCC_AVD)时,V-PCC单元头还包括vpcc_attribute_index字段和vpcc_attribute_dimension_index字段。
vpcc_attribute_index字段指示属性视频数据单元中载送的属性视频数据的索引。vpcc_attribute_index字段的值可以在0到(ai_attribute_count-1)的范围内,包括1和(ai_attribute_count-1)。
vpcc_attribute_dimension_index字段指示属性视频数据单元中载送的属性维度组的索引。vpcc_attribute_dimension_index字段的值可以在0到127的范围内,包括0和127。
图34的V-PCC单元头中的sps_multiple_layer_streams_present_flag字段指示是否包括vpcc_layer_index字段和pcm_separate_video_data(11)字段。
例如,如果vpcc_unit_type字段的值指示属性视频数据(VPCC_AVD)并且sps_multiple_layer_streams_present_flag字段的值为真(例如,0),则vpcc_layer_index字段和pcm_separate_video_data(11)字段被进一步包括在V-PCC单元头。即,当sps_multiple_layer_streams_present_flag字段的值为真时,它指示存在用于属性视频数据或几何视频数据的多个层。在这种情况下,需要指示当前层的索引的字段(例如,vpcc_layer_index)。
vpcc_layer_index字段指示属性视频数据的当前层的索引。vpcc_layer_index字段的值在0到15的范围内。
例如,当vpcc_unit_type字段的值指示属性视频数据(VPCC_AVD),并且sps_multiple_layer_streams_present_flag字段的值为假(例如,1)时,pcm_separate_video_data(15)字段被进一步包括在V-PCC中单元头。也就是说,sps_multiple_layer_streams_present_flag字段设置为假指示不存在用于属性视频数据和/或几何视频数据的多个层。在这种情况下,不需要指示当前层的索引的字段。
例如,当vpcc_unit_type字段的值指示几何视频数据(VPCC_GVD)并且sps_multiple_layer_streams_present_flag字段的值为真(例如,0)时,vpcc_layer_index字段和pcm_separate_video_data(18)字段被进一步包括在V-PCC单元头中。
vpcc_layer_index字段指示几何视频数据的当前层的索引。vpcc_layer_index字段的值在0到15的范围内。
例如,当vpcc_unit_type字段的值指示几何视频数据(VPCC_GVD)并且sps_multiple_layer_streams_present_flag字段的值为假(例如,1)时,pcm_separate_video_data(22)字段被进一步包括在V-PCC单元头中。
例如,如果vpcc_unit_type字段的值指示占用视频数据(VPCC_OVD)或补片数据组(VPCC_PDG),则vpcc_reserved_zero_23bits字段进一步包括在V-PCC单元头中。否则,进一步包括vpcc_reserved_zero_27bits字段。
图34的V-PCC单元头可以进一步包括vpcc_pcm_video_flag字段。
例如,设置为1的vpcc_pcm_video_flag字段可以指示相关联的几何或属性视频数据单元仅包含PCM(脉冲编码调制)编码点。作为另一示例,设置为0的vpcc_pcm_video_flag字段可以指示相关联的几何或属性视频数据单元可以包含非PCM编码点。当vpcc_pcm_video_flag字段不存在时,可以推断该字段的值等于0。
图36示出根据实施方式的包括在V-PCC单元头中的pcm_separate_video_data(bitCount)的语法结构的示例。
在图36中,pcm_separate_video_data的bitCount根据如上所述的图34的V-PCC单元头中的vpcc_unit_type字段的值而变化。
如果sps_pcm_separate_video_present_flag字段的值为真而vpcc_layer_index字段不是,则pcm_separate_video_data(bitCount)包括vpcc_pcm_video_flag字段和vpcc_reserved_zero_bitcount_bits字段。否则,它可以包含vpcc_reserved_bits字段。
设置为1的vpcc_pcm_video_flag字段可以指示相关联的几何或属性视频数据单元仅为PCM编码点视频。设置为0的vpcc_pcm_video_flag字段可以指示相关的几何或属性视频数据单元可以包含PCM编码点。当vpcc_pcm_video_flag字段不存在时,它的值可以被认为是0。
图37示出根据实施方式的V-PCC单元有效载荷的语法结构的示例。
图37的V-PCC单元有效载荷根据V-PCC单元头中的vpcc_unit_type字段的值而包含序列参数集(sequence_parameter_set())、补片数据组(patch_data_group())和视频数据单元(video_data_unit())中的一个。
例如,根据实施方式,当vpcc_unit_type字段指示序列参数集(VPCC_SPS)时,V-PCC单元有效载荷包含sequence_parameter_set()。当vpcc_unit_type字段指示补片数据组(VPCC_PDG)时,V-PCC单元有效载荷包含patch_data_group()。此外,当vpcc_unit_type字段指示占用视频数据(VPCC_OVD)时,V-PCC单元有效载荷包含载送占用视频数据的占用视频数据单元(video_data_unit())。当vpcc_unit_type字段指示几何视频数据(VPCC_GVD)时,V-PCC单元有效载荷包含载送几何视频数据的几何视频数据单元(video_data_unit())。当vpcc_unit_type字段指示属性视频数据(VPCC_AVD)时,V-PCC单元有效载荷包含属性视频数据单元(video_data_unit())。
图38示出根据实施方式的包含在V-PCC单元有效载荷中的sequence_parameter_set()的语法结构的示例。
图38的序列参数集(SPS)可应用于包括编码的几何视频数据单元、属性视频数据单元和占用视频数据单元的序列的编码点云序列。
图38的序列参数集(SPS)可以包括profile_tier_level()、sps_sequence_parameter_set_id字段、sps_frame_width字段、sps_frame_height字段和sps_avg_frame_rate_present_flag字段。
profile_tier_level()指定用于压缩SPS的编解码器信息。
sps_sequence_parameter_set_id字段提供由其它语法元素参考的VPCC SPS的标识符。
sps_frame_width字段以整数亮度样本表示的标称帧宽度。
sps_frame_height字段以整数亮度样本表示的标称帧高度。
sps_avg_frame_rate_present_flag字段指示平均标称帧速率信息是否包括在比特流中。例如,设置为0的sps_avg_frame_rate_present_flag字段可以指示比特流中没有平均标称帧速率信息。设置为1的sps_avg_frame_rate_present_flag字段可以指示应在比特流中指示平均标称帧速率信息。例如,当sps_avg_frame_rate_present_flag字段的值为真,即1时,序列参数集还可以包括sps_avg_frame_rate字段、sps_enhanced_occupancy_map_for_depth_flag字段和sps_geometry_attribute_different_layer_flag字段。
sps_avg_frame_rate字段指示平均标称点云帧速率,以每256秒的点云帧为单位。当sps_avg_frame_rate字段不存在时,应推断该字段的值等于0。在重构阶段期间,可以使用适当的缩放将解码的占用、几何和属性视频转换为标称宽度、高度和帧速率。
sps_enhanced_occupancy_map_for_depth_flag字段指示解码的占用图视频是否包含与两个深度层之间的中间深度位置是否被占用有关的信息。例如,设置为1的sps_enhanced_occupancy_map_for_depth_flag字段可以指示解码的占用图视频包含与两个深度层之间的中间深度位置是否被占用有关的信息。设置为0的sps_enhanced_occupancy_map_for_depth_flag字段可以指示解码的占用图视频不包含与两个深度层之间的中间深度位置是否被占用有关的信息。
sps_geometry_attribute_different_layer_flag字段指示用于几何和属性视频数据的编码的层的数量是否不同。例如,设置为1的sps_geometry_attribute_different_layer_flag字段可以指示用于几何和属性视频数据的编码的层的数量不同。例如,可以使用两层来编码几何视频数据,并且可以使用一层来编码属性视频数据。另外,设置为1的sps_geometry_attribute_different_layer_flag字段可以指示用于几何和属性数据的编码的层的数量是否在补片序列数据单元中被发信号通知。
sps_geometry_attribute_different_layer_flag字段指示是否包括sps_layer_count_geometry_minus1字段和sps_layer_count_minus1字段。例如,当sps_geometry_attribute_different_layer_flag字段的值为真(例如,1)时,可以进一步包括sps_layer_count_geometry_minus1字段。当值为假(例如,0)时,可以进一步包括sps_layer_count_minus1字段。
sps_layer_count_geometry_minus1字段指示用于几何数据的编码的层的数量。
sps_layer_count_minus1字段指示用于对几何和属性视频数据进行编码的层的数量。
当sps_layer_count_minus1字段的值大于0时,序列参数集还可以包括sps_multiple_layer_streams_present_flag字段和sps_layer_absolute_coding_enabled_flag[0]=1字段。
sps_multiple_layer_streams_present_flag字段指示几何层或属性层是放置在单个视频流还是放置在单独的视频流中。例如,sps_multiple_layer_streams_present_flag字段设置为0可以指示所有几何层或属性层分别放置在单个几何或属性视频流中。设置为1的sps_multiple_layer_streams_present_flag字段可以指示所有几何或属性层都放置在单独的视频流中。
此外,序列参数集(SPS)包括迭代语句,其重复次数与sps_layer_count_minus1字段的值一样多。迭代语句包括一个sps_layer_absolute_coding_enabled_flag字段。根据实施方式,变量i被初始化为0并且每次执行迭代语句时递增1。重复迭代语句,直到i等于sps_layer_count_minus1字段的值。另外,如果sps_layer_absolute_coding_enabled_flag字段的值为0且i的值大于0,则进一步包括sps_layer_predictor_index_diff字段。否则,不包括sps_layer_predictor_index_diff字段。
设置为1的sps_layer_absolute_coding_enabled_flag[i]字段可以指示具有索引i的几何层在没有任何形式的层预测的情况下被编码。设置为0的sps_layer_absolute_coding_enabled_flag[i]字段可以指示具有索引i的几何层在编码之前首先从另一个更早的编码层进行预测。
当sps_layer_absolute_coding_enabled_flag[i]字段设置为0时,sps_layer_predictor_index_diff[i]字段用于计算具有索引i的几何层的预测器。
根据本公开的SPS还可以包括sps_pcm_patch_enabled_flag字段。sps_pcm_patch_enabled_flag字段指示是否包括sps_pcm_separate_video_present_flag字段、occupancy_parameter_set()、geometry_parameter_set()和sps_attribute_count字段。例如,当sps_pcm_patch_enabled_flag字段设置为1时,可以进一步包括sps_pcm_separate_video_present_flag字段、occupancy_parameter_set()、geometry_parameter_set()和sps_attribute_count字段。也就是说,sps_pcm_patch_enabled_flag字段设置为1表示具有PCM编码点的补片可以存在于比特流中。
sps_pcm_separate_video_present_flag字段指示PCM编码的几何视频数据和属性视频数据是否存储在单独的视频流中。例如,sps_pcm_separate_video_present_flag字段设置为1指示PCM编码的几何视频数据和属性视频数据可以存储在单独的视频流中。
occupancy_parameter_set()包含关于占用图的信息。
geometry_parameter_set()包含关于几何视频数据的信息。
sps_attribute_count字段指示与点云相关联的属性的数量。
此外,根据本公开的SPS包括迭代语句,其重复次数与sps_attribute_count字段的值一样多。根据实施方式,当sps_geometry_attribute_different_layer_flag字段设置为1时,迭代语句包括sps_layer_count_attribute_minus1字段和attribute_parameter_set()。在迭代语句中,i被初始化为0,并且每次执行迭代语句时递增1。重复迭代语句直到i等于sps_attribute_count字段的值。
sps_layer_count_attribute_minus1[i]字段指示用于对与点云相关联的第i个属性视频数据进行编码的层的数量。
attribute_parameter_set(i)包含关于与点云相关联的第i个属性视频数据的信息。
根据本公开的实施方式,SPS还包括sps_patch_sequence_orientation_enabled_flag字段、sps_patch_inter_prediction_enabled_flag字段、sps_pixel_deinterleaving_flag字段、sps_point_local_reconstruction_enabled_flag字段、sps_remove_duplicate_point_enabled_flag字段和byte_alignment()字段。
sps_patch_sequence_orientation_enabled_flag字段指示是否在补片序列数据单元中发信号通知灵活取向。例如,sps_patch_sequence_orientation_enabled_flag字段设置为1指示在补片序列数据单元中发信号通知灵活取向。设置为0的sps_patch_sequence_orientation_enabled_flag字段指示不发信号通知灵活取向。
设置为1的sps_patch_inter_prediction_enabled_flag字段指示可以使用通过使用来自先前编码的补片帧的补片信息的补片信息的帧间预测。
设置为1的sps_pixel_deinterleaving_flag字段指示对应于单个流的解码几何和属性视频包含来自两层的交错像素。设置为0的sps_pixel_deinterleaving_flag字段指示对应于单个流的解码的几何和属性视频仅包含来自单个层的像素。
设置为1的sps_point_local_reconstruction_enabled_flag字段指示在点云重构过程期间使用局部重构模式。
设置为1的sps_remove_duplicate_point_enabled_flag字段指示不应重构重复的点。这里,重复的点是与来自较低层的另一个点具有相同2D和3D几何坐标的点。
图39示出根据实施方式的补片数据组(patch_data_group())的语法结构的示例。
如上所述,当V-PCC单元头中的vpcc_unit_type字段的值指示补片数据组时,图37的V-PCC单元有效载荷包含图39的patch_data_group()。
根据一个实施方式,patch_data_group()包括pdg_unit_type字段、具有根据pdg_unit_type字段的值变化的信令信息的pdg_data_group_unit_payload(pdg_unit_type)和pdg_terminate_patch_data_group_flag字段。
pdg_unit_type字段指示补片数据组的类型。
pdg_terminate_patch_data_group_flag字段指示补片数据组的结束。设置为0的pdg_terminate_patch_data_group_flag字段可以指示补片数据组中存在附加的补片数据组单元。设置为1的pdg_terminate_patch_data_group_flag字段可以指示补片数据组中不再存在补片数据组单元,并且这是当前补片数据组单元的结尾。
图40是示出指派给图39的补片数据组的pdg_unit_type字段的补片数据组的类型的示例的表。
例如,设置为0的pdg_unit_type字段可以指示补片序列参数集(PDG_PSPS)。设置为1的pdg_unit_type字段可以指示补片帧参数集(PDG_PFPS)。设置为2的pdg_unit_type字段可以指示补片帧几何参数集(PDG_PFGPS)。设置为3的pdg_unit_type字段可以指示补片帧属性参数集(PDG_PFAPS)。设置为4的pdg_unit_type字段可以指示几何补片参数集(PDG_GPPS)。设置为5的pdg_unit_type字段可以指示属性补片参数集(PDG_APPS)。设置为6的pdg_unit_type字段可以指示补片拼块组层单元(PDG_PTGLU)。设置为7的pdg_unit_type字段可以指示前缀SEI消息(PDG_PREFIX_SEI)。设置为8的pdg_unit_type字段可以指示后缀SEI消息(PDG_SUFFIX_SEI)。
PDG_PSPS可以包括序列级别参数,并且PDG_PFPS可以包括帧级别参数。PDG_PFGPS可以包括帧级别几何类型参数,并且PDG_PFAPS可以包括帧级别属性类型参数。PDG_GPPS可以包括补片级别几何类型参数,并且PDG_APPS可以包括补片级别属性类型参数。
图41示出根据实施方式的补片数据组单元有效载荷(patch_data_group_unit_payload(pdg_unit_type))的语法结构的示例。
当图39的补片数据组的pdg_unit_type字段的值指示PDG_PSPS时,patch_data_group_unit_payload()可以包含补片序列参数集(patch_sequence_parameter_set())。
当pdg_unit_type字段的值指示PDG_GPPS时,patch_data_group_unit_payload()可以包含几何补片参数集(geometry_patch_parameter_set())。
当pdg_unit_type字段的值指示PDG_APPS时,patch_data_group_unit_payload()可以包含属性补片参数集(attribute_patch_parameter_set())。
当pdg_unit_type字段的值指示PDG_PFPS时,patch_data_group_unit_payload()可以包含补片帧参数集(patch_frame_parameter_set())。
当pdg_unit_type字段的值指示PDG_PFAPS时,patch_data_group_unit_payload()可以包含补片帧属性参数集(patch_frame_attribute_parameter_set())。
当pdg_unit_type字段的值指示PDG_PFGPS时,patch_data_group_unit_payload()可以包含补片帧几何参数集(patch_frame_geometry_parameter_set())。
当pdg_unit_type字段的值指示PDG_PTGLU时,patch_data_group_unit_payload()可以包含补片拼块组层单元(patch_tile_group_layer_unit())。
当pdg_unit_type字段的值指示PDG_PREFIX_SEI或PDG_SUFFIX_SEI时,patch_data_group_unit_payload()可以包含sei_message()。
图42示出根据实施方式的补充增强信息(SEI)消息(sei_message())的语法结构的示例。即,当包括在图39的补片数据组中的pdg_unit_type字段的值指示PDG_PREFIX_SEI或PDG_SUFFIX_SEI时,图41的patch_data_group_unit_payload()包含sei_message()。
根据实施方式的每个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消息的有效载荷大小的字节。
图42的SEI消息将PayloadType初始化为0,然后将迭代语句中的sm_payload_type_byte字段的值设置为PayloadType的值。当sm_payload_type_byte字段的值为0xFF时,迭代语句终止。
此外,图42的SEI消息将PayloadSize初始化为0,然后将迭代语句中的sm_payload_size_byte字段的值设置为PayloadSize的值。当sm_payload_size_byte字段的值为0xFF时,迭代语句终止。
然后,与在两个迭代语句中设置的payloadType和payloadSize相对应的信息通过SEI消息的有效载荷(sei_payload(payloadType,payloadSize))发信号通知。
图43示出根据本公开的其它实施方式的V-PCC比特流结构的示例。在实施方式中,图43的V-PCC比特流由图1、图4、图18、图20或图21的基于V-PCC的点云视频编码器生成和输出。
根据实施方式的包含编码点云序列(CPCS)的V-PCC比特流可以由样本流V-PCC单元组成。样本流V-PCC单元载送V-PCC参数集(VPS)数据、阿特拉斯比特流、2D视频编码的占用图比特流、2D视频编码的几何比特流以及零个或多个2D视频编码的属性比特流。
在图43中,V-PCC比特流可以包括一个样本流V-PCC头40010和一个或更多个样本流V-PCC单元40020。为简单起见,一个或更多个样本流V-PCC单元40020可以是称为样本流V-PCC有效载荷。也就是说,样本流V-PCC有效载荷可以被称为样本流V-PCC单元的集合。
每个样本流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)。这两个术语可以互换使用。
根据实施方式的阿特拉斯数据可以表示由点云数据的属性(例如,纹理(补片))和/或深度组成的数据,并且也可以称为补片数据组。
图44示出根据实施方式的由V-PCC比特流中的样本流V-PCC单元载送的数据的示例。
在图44的示例中,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单元。
图45示出根据实施方式的包含在V-PCC比特流中的样本流V-PCC头的语法结构的示例。
根据实施方式的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字段是预留字段以供将来使用。
图46示出根据实施方式的样本流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字段对应于图43的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之一。
图47示出根据实施方式的V-PCC单元的语法结构的示例。V-PCC单元由V-PCC单元头(vpcc_unit_header())和V-PCC单元有效载荷(vpcc_unit_payload())组成。根据实施方式的V-PCC单元可以包含更多数据。在这种情况下,它还可以包括trailing_zero_8bits字段。根据实施方式的trailing_zero_8bits字段是对应于0x00的字节。
图48示出根据实施方式的V-PCC单元头的语法结构的示例。在实施方式中,图48的vpcc_unit_header()包括vuh_unit_type字段。vuh_unit_type字段指示对应的V-PCC单元的类型。根据实施方式的vuh_unit_type字段也被称为vpcc_unit_type字段。
图49示出根据实施方式的指派给vuh_unit_type字段的V-PCC单元类型的示例。
参照图49,根据实施方式,设置为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-PCCVPS的vps_vpcc_parameter_set_id的值。
vuh_atlas_id字段指定对应于当前V-PCC单元的阿特拉斯的索引。
当vuh_unit_type字段指示VPCC_AVD时,根据实施方式的V-PCC单元头还可以包括vuh_attribute_index字段、vuh_attribute_dimension_index字段、vuh_map_index字段和vuh_raw_video_flag字段。
vuh_attribute_index字段指示属性视频数据单元中载送的属性数据的索引。
vuh_attribute_dimension_index字段指示属性视频数据单元中载送的属性维度组的索引。
当存在时,vuh_map_index字段可以指示当前几何或属性流的地图索引。
vuh_raw_video_flag字段可以指示是否包含RAW编码点。例如,设置为1的vuh_raw_video_flag字段可以指示相关联的属性视频数据单元仅包含RAW编码点。作为另一示例,设置为0的vuh_raw_video_flag字段可以指示相关联的属性视频数据单元可以包含RAW编码点。当vuh_raw_video_flag字段不存在时,其值可被推断为等于0。根据实施方式,RAW编码点也被称为脉冲编码调制(PCM)编码点。
当vuh_unit_type字段指示VPCC_GVD时,根据实施方式的V-PCC单元头还可以包括vuh_map_index字段、vuh_raw_video_flag字段和vuh_reserved_zero_12bits字段。
当存在时,vuh_map_index字段指示当前几何流的索引。
vuh_raw_video_flag字段可以指示是否包含RAW编码点。例如,设置为1的vuh_raw_video_flag字段可以指示相关的几何视频数据单元仅包含RAW编码点。作为另一示例,设置为0的vuh_raw_video_flag字段可以指示相关联的几何视频数据单元可以包含RAW编码点。当vuh_raw_video_flag字段不存在时,其值可被推断为等于0。根据实施方式,RAW编码点也被称为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字段是预留字段以供将来使用。
图50示出根据实施方式的V-PCC单元有效载荷(vpcc_unit_payload())的语法结构的示例。
图50的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)单元的格式。
图51是示出根据实施方式的阿特拉斯子流的结构的示例的图。在实施方式中,图51的阿特拉斯子流符合HEVC NAL单元的格式。
根据实施方式的阿特拉斯子流可以由包含阿特拉斯序列参数集(ASPS)的样本流NAL单元、包含阿特拉斯帧参数集(AFPS)的样本流NAL单元、以及包含关于一个或更多个阿特拉斯拼块组的信息的一个或更多个样本流NAL单元和/或包含一个或更多个SEI消息的一个或更多个样本流NAL单元组成。
根据实施方式的一个或更多个SEI消息可以包括前缀SEI消息和后缀SEI消息。
根据实施方式的阿特拉斯子流可以进一步包含放置在一个或更多个NAL单元前面的样本流NAL头。
图52示出根据实施方式的包含在阿特拉斯子流中的样本流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字段是预留字段以供将来使用。
图53示出根据实施方式的样本流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消息可以辅助与解码、重构、显示或其它目的相关的处理。
根据实施方式的每个SEI消息由SEI消息头和SEI消息有效载荷(sei_payload)组成。SEI消息头可以包含有效载荷类型信息(payloadType)和有效载荷大小信息(payloadSize)。
有效载荷类型指示SEI消息的有效载荷类型。例如,可以基于payloadType来识别SEI消息是前缀SEI消息还是后缀SEI消息。
有效载荷大小指示SEI消息的有效载荷大小。
图54示出根据实施方式的SEI消息有效载荷(sei_payload())的语法结构的示例。
根据实施方式的SEI消息可以包括前缀SEI消息或后缀SEI消息。此外,每个SEI消息通过SEI消息有效载荷(sei_payload(payloadType,payloadSize))发信号通知与有效载荷类型信息(payloadType)和有效载荷大小信息(payloadSize)相对应的信息。
当payloadType等于0时,根据实施方式的前缀SEI消息可以包含buffering_period(payloadSize)。当payloadType等于1时,前缀SEI消息可以包含pic_timing(payloadSize)。当payloadType等于2时,前缀SEI消息可以包含filler_payload(payloadSize)。当payloadType等于10时,前缀SEI消息可以包含sei_prefix_indication(payloadSize)。当payloadType等于13时,前缀SEI消息可以包含3d_region_mapping(payloadSize)。
当payloadType等于2时,后缀SEI消息可以包含filler_payload(payloadSize)。当payloadType等于3时,后缀SEI消息可以包含user_data_registered_itu_t_t35(payloadSize)。当payloadType是时,后缀SEI消息可以包含user_data_unregistered(payloadSize)等于4。当payloadType等于11时,后缀SEI消息可以包含decoded_pcc_hash(payloadSize)。
根据实施方式,具有如图24或图43所示结构的V-PCC比特流由图1、图18、图20或图21的文件/片段封装器以ISOBMFF文件格式封装。
在这种情况下,V-PCC流可以通过文件的多个轨道或单个轨道来发送。
根据实施方式的基于ISOBMFF的文件可以由框和/或信息组成,其可以被称为ftyp、meta、moov或mdat。
ftyp盒(文件类型盒)可以提供与文件的文件兼容性或文件类型有关的信息。接收侧可以参考ftyp盒来识别文件。
meta盒可以包括vpcg{0,1,2,3}盒(V-PCC组盒)。
也称为媒体数据盒的mdat盒可以包含视频编码几何比特流、视频编码属性比特流、视频编码占用图比特流和/或阿特拉斯数据比特流。
也称为电影盒的moov盒可以包含关于文件的媒体数据(例如,几何比特流、属性比特流、占用图比特流等)的元数据。例如,它可以包含解码和播放媒体数据所需的信息,以及关于文件的样本的信息。moov盒可以用作所有元数据的容器。moov盒可以是元数据相关盒当中的最高层的盒。根据实施方式,文件中可以仅存在一个moov盒。
根据实施方式的盒可以包括提供与文件的轨道有关的信息的轨道(trak)盒。轨道盒可以包括提供关于轨道的媒体信息的媒体(mdia)盒和用于参考轨道和对应于轨道的文件的样本的轨道参考容器(tref)盒。
mdia盒可以包括提供关于媒体数据的信息的媒体信息容器(minf)盒。minf盒可以包括提供与mdat盒的样本相关的元数据的样本表(stbl)盒。
stbl盒可以包括样本描述(stsd)盒,该样本描述(stsd)盒提供关于所采用的编码类型的信息和该编码类型所需的初始化信息。
根据实施方式,stsd盒可以包括用于存储V-PCC比特流的轨道的样本条目。
为了将根据实施方式的V-PCC比特流存储在文件中的单个轨道或多个轨道中,本公开定义了体积视觉轨道、体积视觉媒体头、体积样本条目、体积样本、以及V-PCC轨道的样本和简单条目。
本文使用的术语V-PCC与基于视觉体积视频的编码(V3C)相同。这两个术语可以用来相互补充。
根据实施方式,基于视频的点云压缩(V-PCC)表示点云视觉信息的体积编码。
也就是说,moov盒的trak盒中的minf盒还可以包括体积视觉媒体头盒。体积视觉媒体头盒包含关于包含体积视觉场景的体积视觉轨道的信息。
每个体积视觉场景可以由唯一的体积视觉轨道来表示。ISOBMFF文件可以包含多个场景,因此ISOBMFF文件中可以存在多个体积视觉轨道。
根据实施方式,体积视觉轨道可以由MediaBox的HandlerBox中的体积视觉媒体处置器类型'volv'来识别。
根据实施方式的体积视觉媒体头盒的语法被配置如下。
盒类型:'vvhd'
容器:MediaInformationBox
强制:是
数量:正好一个
根据实施方式的体积视觉轨道可以如下使用媒体信息盒(MediaInformationBox)中的体积视觉媒体处置器盒(VolumetricVisualMediaHeaderBox)。
aligned(8)类VolumetricVisualMediaHeaderBox
扩展FullBox('vvhd',version=0,1){
}
version可以是指示该盒的版本的整数。
根据实施方式的体积视觉轨道可以如下使用体积视觉样本条目(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
扩展FullBox('vunt',version=0,0){
vpcc_unit_header()unit_header;
}
也就是说,VPCCUnitHeaderBox可以包括vpcc_unit_header()。图34和图48示出(vpcc_unit_header())的语法结构的示例。
根据实施方式,V-PCC轨道样本条目可以包含VPCC配置盒(VPCCConfigurationBox)。
根据实施方式,VPCCConfigurationBox可以包括如下所示的VPCC解码器配置记录(VPCCDecoderConfigurationRecord)。
aligned(8)类VPCCDDecoderConfigurationRecord{
unsigned int(8)configurationVersion=1;
unsigned int(3)sampleStreamSizeMinusOne;
unsigned int(5)numOfVPCCParameterSets;
for(i=0;i<numOfVPCCParameterSets;i++){
sample_stream_vpcc_unit VPCCParameterSet;
}
unsigned int(8)numOfAtlasSetupUnits;
for(i=0;i<numOfAtlasSetupUnits;i++){
sample_stream_vpcc_unit atlas_setupUnit;
}
}
VPCCDDecoderConfigurationRecord中包括的configurationVersion指示版本字段。对记录的不兼容更改由版本号的更改指示。
sampleStreamSizeMinusOne加1可以指示该配置记录中的所有样本流V-PCC单元或者该配置记录适用的流中的V-PCC样本中的ssvu_vpcc_unit_size元素的精度。
numOfVPCCParameterSets指定在VPCCDecoderConfigurationRecord中发信号通知的V-PCC参数集(VPS)的数量。
VPCCParameterSet是类型VPCC_VPS的V-PCC单元的sample_stream_vpcc_unit()实例。V-PCC单元可以包括vpcc_parameter_set()。也就是说,VPCCParameterSet阵列可以包括vpcc_parameter_set()。图46示出样本流V-PCC单元(sample_stream_vpcc_unit())的语法结构的示例。
numOfAtlasSetupUnits指示在VPCCDecoderConfigurationRecord中发信号通知的阿特拉斯流的设置阵列的数量。
Atlas_setupUnit是包含阿特拉斯序列参数集、阿特拉斯帧参数集或SEI阿特拉斯NAL单元的sample_stream_vpcc_unit()实例。图46示出样本流V-PCC单元(sample_stream_vpcc_unit())的语法结构的示例。
具体地,atlas_setupUnit阵列可以包括阿特拉斯参数集,这些参数集对于存在VPCCDecoderConfigurationRecord的样本条目所指的流以及阿特拉斯流SEI消息是恒定的。根据实施方式,atlas_setupUnit可以简称为设置单元。
根据其它实施方式,VPCCDDecoderConfigurationRecord可以表示如下。
aligned(8)类VPCCDDecoderConfigurationRecord{
unsigned int(8)configurationVersion=1;
unsigned int(3)sampleStreamSizeMinusOne;
bit(2)reserved=1;
unsigned int(3)lengthSizeMinusOne;
unsigned int(5)numOfVPCCParameterSets;
for(i=0;i<numOfVPCCParameterSets;i++){
sample_stream_vpcc_unit 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++){
sample_stream_nal_unit setupUnit;
}
}
configurationVersion是版本字段。对记录的不兼容更改由版本号的更改指示。
lengthSizeMinusOne加1的值可以指示VPCCDecoderConfigurationRecord或VPCCDecod erConfigurationRecord应用到的流中的V-PCC样本中的所有样本流NAL单元中的ssnu_nal_unit_size元素的精度(以字节为单位)。图53示出了包括ssnu_nal_unit_size字段的样本流NAL单元(sample_stream_nal_unit())的语法结构的示例。
numOfVPCCParameterSets指定在VPCCDecoderConfigurationRecord中发信号通知的V-PCC参数集(VPS)的数量。
VPCCParameterSet是VPCC_VPS类型的V-PCC单元的sample_stream_vpcc_unit()实例。V-PCC单元可以包括vpcc_parameter_set()。也就是说,VPCCParameterSet阵列可以包括vpcc_parameter_set()。图46示出sample_stream_vpcc_unit()的语法结构的示例。
numOfSetupUnitArrays指示所指示的类型的阿特拉斯NAL单元的阵列数量。
重复与numOfSetupUnitArrays的值一样多的迭代语句可以包含array_completeness。
array_completeness等于1指示给定类型的所有阿特拉斯NAL单元都在以下阵列中,并且没有一个在流中。array_completeness等于0指示指定类型的附加阿特拉斯NAL单元可以在流中。默认值和允许值受样本条目名称的限制。
NAL_unit_type指示以下阵列中的阿特拉斯NAL单元的类型。NAL_unit_type被限制为采用指示NAL_ASPS、NAL_PREFIX_SEI或NAL_SUFFIX_SEI阿特拉斯NAL单元的值之一。
numNALUnits指示包含在VPCCDecoderConfigurationRecord中用于VPCCDecoderConfigurationRecord应用到的流的指示类型的阿特拉斯NAL单元的数量。SEI阵列应仅包含“声明性”性质的SEI消息,即提供有关整个流的信息的SEI消息。这种SEI的一个示例可以是用户数据SEI
setupUnit是sample_stream_nal_unit()实例,包含阿特拉斯序列参数集、或阿特拉斯帧参数集、或声明性SEI阿特拉斯NAL单元。
根据实施方式,在多轨道容器(也称为多轨道ISOBMFFV-PCC容器)的一般布局中,可以将V-PCC基本流中的V-PCC单元根据它们的类型映射到容器文件内的各个轨道。在根据实施方式的多轨道ISOBMFF 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 ISOBMFF容器可包括以下内容:
-V-PCC轨道,它包含V-PCC参数集(在样本条目中)和载送V-PCC参数集V-PCC单元(单元类型VPCC_VPS)和阿特拉斯V-PCC单元(单元类型VPCC_AD)的有效载荷的样本。该轨道还包括对载送视频压缩的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”样本条目是强制性的。
数量:可以存在一个或更多个样本条目。
V-PCC轨道使用VPCCSampleEntry,它扩展了VolumetricVisualSampleEntry。样本条目类型为“vpc1”或“vpcg”。
VPCC样本条目包含VPCCConfigurationBox。此盒包括VPCCDDecoderConfigurationRecord。
在“vpc1”样本条目下,所有阿特拉斯序列参数集、阿特拉斯帧参数集或V-PCC SEI都在setupUnit阵列中。
在“vpcg”样本条目下,阿特拉斯序列参数集、阿特拉斯帧参数集、V-PCC SEI可以存在于该阵列中或流中。
VPCC体积样本条目中可以存在可选的BitRateBox,以发信号通知V-PCC轨道的比特率信息。
体积序列:
类VPCCConfigurationBox扩展Box('vpcC'){
VPCCDecoderConfigurationRecord()VPCCConfig;
}
aligned(8)类VPCCSampleEntry()扩展VolumetricVisualSampleEntry('vpc1'){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
}
图55示出根据实施方式的V-PCC样本条目结构的示例。在图55中,V-PCC样本条目包括一个V-PCC参数集,并且可以可选地包括阿特拉斯序列参数集(ASPS)、阿特拉斯帧参数集(AFPS)或SEI。
根据实施方式的V-PCC比特流还可以包含样本流V-PCC头、样本流NAL头和V-PCC单元头盒。
接下来,下面描述V-PCC轨道样本格式。
V-PCC轨道中的每个样本对应于单个点云帧。各种分量轨道中与该帧对应的样本与V-PCC轨道样本具有相同的合成时间。每个V-PCC样本包括一个或更多个阿特拉斯NAL单元,如下所示。
aligned(8)类VPCCSample{
unsigned int PointCloudPictureLength=sample_size;//样本的大小(例如,来自SampleSizeBox)
for(i=0;i<PointCloudPictureLength;){
sample_stream_nal_unit nalUnit
i+=(VPCCDecoderConfigurationRecord.lengthSizeMinusOne+1)+nalUnit.ssnu_nal_unit_size;
}
}
aligned(8)类VPCCSample
{
unsigned int PictureLength=sample_size;//样本的大小(例如,来自SampleSizeBox)
for(i=0;i<PictureLength;)//发信号通知直至画面的结束
{
unsigned int((VPCCDDecoderConfigurationRecord.LengthSizeMinusOne+1)*8)
NALUnitLength;
位(NALUnitLength*8)NALUnit;
i+=(VPCCDDecoderConfigurationRecord.LengthSizeMinusOne+1)+NALUnitLength;
}
}
V-PCC轨道中的同步样本(随机访问点)是V-PCC IRAP编码的补片数据访问单元的V-PCC轨道。如果需要,可以在同步样本处重复阿特拉斯参数集以允许随机访问。
接下来,下面描述视频编码的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。
VPCC基本流样本条目包含VPCCConfigurationBox。
在'vpe1'样本条目下,所有阿特拉斯序列参数集、阿特拉斯帧参数集和SEI可以在setupUnit阵列中。在“vpeg”样本条目下,阿特拉斯序列参数集、阿特拉斯帧参数集和SEI可以存在于此阵列或流中。
体积序列:
类VPCCConfigurationBox扩展Box('vpcC'){
VPCCDecoderConfigurationRecord()VPCCConfig;
}
aligned(8)类VPCCElementaryStreamSampleEntry()扩展VolumetricVisualSampleEntry('vpe1'){
VPCCConfigurationBox config;
VPCCBoundingInformationBox 3d_bb;
}
接下来,下面描述V-PCC基本流样本格式。
V-PCC基本流样本可以包括属于相同呈现时间的一个或更多个V-PCC单元。每个样本都有唯一的呈现时间、大小和持续时间。样本可以是同步样本,或者是依赖于其它V-PCC基本流样本的解码方式。
接下来,下面描述V-PCC基本流同步样本。
V-PCC基本流同步样本可以满足以下所有条件:
-它是可独立解码的;
-在解码顺序中,在同步样本之后的样本对同步样本之前的任何样本没有任何解码依赖性;以及
-在解码顺序中出现在同步样本之后的所有样本都是可成功解码的。
接下来,下面描述V-PCC基本流子样本。
V-PCC基本流子样本是包含在V-PCC基本流样本中的V-PCC单元。
V-PCC基本流轨道在SampleTableBox中或在每个MovieFragmentBox的TrackFragmentBox中包含一个SubSampleInformationBox,其中列出了V-PCC基本流子样本。
可以将表示子样本的V-PCC单元的32比特单元头复制到SubSampleInformationBox中的子样本条目的32比特codec_specific_parameters字段。每个子样本的V-PCC单元类型通过解析SubSampleInformationBox中的子样本条目的codec_specific_parameters字段来识别。
接下来,以下描述点云数据的渲染。
根据实施方式的点云数据的渲染由图1的渲染器10009、图19的点云渲染器19007、图20的渲染器2001或图22的点云渲染器22004执行。根据实施方式,可以基于元数据在3D空间中渲染点云数据。用户可以通过VR/AR显示器或普通显示器观看渲染结果的全部或部分区域。特别地,可以根据用户的视口等来渲染点云数据。
这里,视口或视口区域可以是指用户在点云视频中正在观看的区域。视点是用户在点云视频中观看的点,并且可以表示视口区域的中心点。即,视口是以视点为中心的区域,并且该区域所占据的大小、形状等可以由视场(FOV)确定。
根据实施方式的视口信息可以是关于用户当前通过装置或HMD在3D空间中观看的区域的信息。可以使用视口信息来执行注视分析以检查用户消费点云视频的方式、用户注视的点云视频的区域以及用户注视该区域的时间。可以在接收侧执行注视分析,并且可以在反馈信道上将分析结果传送到发送侧。诸如VR/AR/MR之类的显示装置可以基于取向信息、用户头部的位置/取向、装置所支持的垂直或水平FOV等来提取视口区域。由接收装置分析的方向或视口信息可以在反馈信道上被发送到发送装置。
根据实施方式的接收装置的点云视频解码器可以基于指示用户当前正在观看的区域的取向信息和/或视口信息高效地从文件中仅提取或解码特定区域(即,由取向信息和/或视口信息指示的区域)的媒体数据。根据实施方式的发送装置的点云视频编码器可以基于从接收装置反馈的取向信息和/或视口信息仅对特定区域(即,由取向信息和/或视口信息指示的区域)的媒体数据进行编码,或者可以将编码的媒体数据封装成文件以进行发送。
根据实施方式,发送装置的文件/片段封装器可以基于取向信息和/或视口信息将所有点云数据封装成文件/片段,或者可以将由取向信息和/或视口信息指示的点云数据封装成文件/片段。
根据实施方式,接收装置的文件/片段解封装器可以基于取向信息和/或视口信息解封装包含所有点云数据的文件或者包含由取向信息和/或视口信息指示的点云数据的文件。
根据实施方式,视口信息可以以与ViewInfoStruct信息或视图信息相同或相似的含义使用。
根据实施方式的视口信息也可以称为视口相关信息或视口信息相关元数据。根据实施方式的视口相关信息可以包括视口信息、渲染参数和对象渲染信息中的至少一种。
根据实施方式,视口相关信息可以由图18的点云数据发送装置的元数据编码器18005或者图21的V-PCC系统的点云预处理器20001和/或视频/图像编码器21007和21008生成/编码,并且可以由图19的点云数据接收装置的元数据解码器19002或者图22的V-PCC系统的视频/图像解码器22001和22002和/或点云处理器22003获取/解码。
在本公开中,以下描述定义与点云数据的视口(或视图)信息相关的元数据以及在文件中存储和发信号通知与视口信息相关的元数据的实施方式。
在本公开中,以下描述将与随时间动态变化的点云数据的视口信息相关的元数据存储在文件中的实施方式。
在本公开中,以下描述定义与点云数据的渲染参数相关的元数据以及在文件中存储和发信号通知与渲染参数相关的元数据的实施方式。
在本公开中,以下描述将与根据时间动态变化的点云数据的渲染参数相关的元数据存储在文件中的实施方式。
在本公开中,以下描述在文件中定义与和点云数据相关的对象渲染信息相关的元数据以及在文件中存储和发信号通知与对象渲染信息相关的元数据的实施方式。
在本公开中,以下描述将与根据时间动态变化的点云数据的对象渲染信息相关的元数据存储在文件中的实施方式。
图56示出根据实施方式的使用虚拟相机和ViewInfoStruct信息生成视图的示例。
根据实施方式的ViewInfoStruct信息可以包括用于创建要渲染和提供的视图的详细信息。具体地,ViewInfoStruct可以包括关于用于创建视图的3D空间中的虚拟相机的位置信息、虚拟相机的垂直/水平视场(FOV)、指示虚拟相机面向的方向的方向向量,以及指示虚拟相机的向上方向的上向量。虚拟相机可以类似于用户的眼睛,即,用户对3D空间中的部分区域的视图。视锥体可以基于上述信息来推断。视锥体是指3D空间中的一个区域,该区域包括实际渲染和显示的全部或部分的点云数据。根据实施方式,当推断的视锥体以2D帧的形式投影时,可以创建视图(即,要实际显示的2D图像/视频帧)。
以下是示出包括在ViewInfoStruct中的信息的示例的语法。
aligned(8)类ViewInfoStruct(){
unsigned int(16)view_pos_x;
unsigned int(16)view_pos_y;
unsigned int(16)view_pos_z;
unsigned int(8)view_vfov;
unsigned int(8)view_hfov;
unsigned int(16)view_dir_x;
unsigned int(16)view_dir_y;
unsigned int(16)view_dir_z;
unsigned int(16)view_up_x;
unsigned int(16)view_up_y;
unsigned int(16)view_up_z;
}
view_pos_x、view_pos_y和view_pos_z可以指示能够创建视图(例如,要实际显示的2D图像/视频帧)的虚拟相机的3D空间中的x、y和z坐标值。
view_vfov和view_hfov可以指示能够创建视图的虚拟相机的垂直视场(FOV)和水平视场(FOV)。
view_dir_x、view_dir_y和view_dir_z可以指示3D空间中的x、y和z坐标值,用于指示表示由虚拟相机观看的方向的方向向量。
view_up_x、view_up_y和view_up_z可以指示三维空间中的x、y和z坐标值以表示指示虚拟相机的向上方向的上向量。
根据实施方式的ViewInfoStruct()信息可以如下在点云比特流中以SEI等的形式传送。
V-PCC视图信息盒
aligned(8)类VPCCViewInfoBox扩展FullBox('vpvi',0,0){
ViewInfoStruct();
}
接下来,下面描述静态V-PCC视口信息。
当根据实施方式的视口信息在点云序列内没有改变时,VPCCViewInfoBox可以被包括在V-PCC轨道的样本条目或V-PCC基本流轨道的样本条目中,如下所示。
aligned(8)类VPCCSampleEntry()扩展VolumetricVisualSampleEntry('vpc1'){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCCViewInfoBox view_info;
}
VPCCViewInfoBox可以包含用于创建视图的详细信息,在该视图中,与存储在轨道内的样本中的阿特拉斯帧相关联的点云数据被渲染和提供,如下所示。
aligned(8)类VPCCElementaryStreamSampleEntry()扩展VolumetricVisualSampleEntry('vpe1'){
VPCCConfigurationBox config;
VPCCViewInfoBox view_info;
}
VPCCViewInfoBox可以包含用于创建视图的详细信息,在该视图中渲染和提供与存储在轨道中的子样本中的视频帧或阿特拉斯帧相关联的点云数据。
接下来,下面描述V-PCC视图信息样本分组。
根据实施方式,用于样本分组的'vpvs'grouping_type表示将V-PCC轨道中的样本指派给该样本组中载送的视图信息。当存在grouping_type等于'vpvs'的SampleToGroupBox时,具有相同分组类型的随附SampleGroupDescriptionBox存在并包含该组样本所属的ID。
aligned(8)类VPCCViewInfoSampleGroupDescriptionEntry()扩展SampleGroupDescriptionEntry('vpvs'){
ViewInfoStruct();
}
接下来,下面描述动态V-PCC视图信息。
如果V-PCC轨道具有关联的定时元数据轨道,其样本条目类型为“dyvi”,则为由V-PCC轨道载送的点云流定义的视图信息被认为是动态的。也就是说,视图信息可以随时间动态变化。
相关联的定时元数据轨道包含对载送阿特拉斯流的V-PCC轨道的“cdsc”轨道参考。
如果V-PCC基本流轨道具有关联的定时元数据轨道,其样本条目类型为“dyvi”,则为由V-PCC基本轨道载送的点云流定义的视图信息被认为是动态的。即,视图信息可以随时间动态变化。
相关联的定时元数据轨道包含对V-PCC基本流轨道的“cdsc”轨道参考。
aligned(8)类DynamicViewInfoSampleEntry扩展MetaDataSampleEntry('dyvi'){
VPCCViewInfoBox init_view_info;
}
init_view_info可以包括用于生成点云数据的初始视图的视图信息(viewinformation())。
该样本条目类型“dyvi”的样本语法可以指定如下:
aligned(8)DynamicViewInfoSample(){
VPCCViewInfoBox view_info;
}
每个样本可以包含随时间变化的视图信息()。
根据实施方式,作为用于渲染的渲染参数的RenderingParamStruct可以包含可以在渲染点云数据中应用的参数信息。该参数可以包含点的大小、点的渲染类型、如何处理重复的点,例如,在点云数据的渲染中是否显示重复的点等,如下所示。
aligned(8)类RenderingParamStruct(){
unsigned int(16)point_size;
unsigned int(7)point_type;
unsigned int(2)duplicated_point;
}
point_size可以指示要渲染/显示的点的大小。
point_type可以指示要渲染/显示的点的类型。例如,point_type等于0可以指示长方体。point_type等于1可以指示圆圈。point_type等于2可以指示点。
duplicated_point可以指示当存在时如何处理3D空间中具有相同x、y和z值的多个点。例如,当duplicated_point等于0时,可以忽略重复的点。在实施方式中,当duplicated_point等于1时,可以仅随机选择并渲染/显示一个点。在实施方式中,当duplicated_point等于2时,可以基于平均属性值对重复点的属性值进行平均和渲染/显示。
RenderingParamStruct()信息可以如下在点云比特流中以SEI等的形式载送。
V-PCC渲染参数盒
aligned(8)类VPCCRenderingParamBox扩展FullBox('vprp',0,0){
RenderingParamStruct();
}
接下来,下面描述静态V-PCC渲染参数。
根据实施方式,当渲染相关参数在点云序列内没有改变时,VPCCRenderingParamBox可以被包括在V-PCC轨道的样本条目或V-PCC基本流轨道的样本条目中,如下所示。
aligned(8)类VPCCSampleEntry()扩展VolumetricVisualSampleEntry('vpc1'){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCCRenderingParamBox rendering_param;
}
VPCCRenderingParamBox可以包含关于当渲染与存储在轨道中的样本中的阿特拉斯帧相关联的点云数据时可以应用的渲染参数的详细信息,如下所述。
aligned(8)类VPCCElementaryStreamSampleEntry()扩展VolumetricVisualSampleEntry('vpe1'){
VPCCConfigurationBox config;
VPCCRenderingParamBox rendering_param;
}
VPCCRenderingParamBox可以包含关于可以在渲染存储在轨道中的子样本中的阿特拉斯帧、视频帧和点云数据时应用的渲染参数的详细信息。
接下来,下面描述V-PCC渲染参数样本分组。
根据实施方式,用于样本分组的'vprp'grouping_type表示将V-PCC轨道中的样本指派给该样本组中载送的渲染参数。当存在grouping_type等于'vpvs'的SampleToGroupBox时,具有相同分组类型的随附SampleGroupDescriptionBox存在并且可以包含该组样本的ID。
aligned(8)类VPCCRenderingParamSampleGroupDescriptionEntry()扩展SampleGroupDescriptionEntry('vprp'){
RenderingParamStruct();
}
接下来,下面描述动态V-PCC渲染参数信息。
如果V-PCC轨道具有关联的定时元数据轨道,其样本条目类型为“dyrp”,则为由V-PCC轨道载送的点云流定义的渲染参数被视为动态渲染参数。也就是说,渲染参数可以随时间动态变化。
相关联的定时元数据轨道包含对载送阿特拉斯流的V-PCC轨道的“cdsc”轨道参考。
如果V-PCC基本流轨道具有关联的定时元数据轨道,其样本条目类型为“dyrp”,则为由V-PCC基本轨道载送的点云流定义的渲染参数被视为动态渲染参数。也就是说,渲染参数可以随时间动态变化。
相关联的定时元数据轨道包含对V-PCC基本流轨道的“cdsc”轨道参考。
aligned(8)类DynamicRenderingParamSampleEntry扩展MetaDataSampleEntry('dyrp'){
VPCCRenderingParamBox init_rendering_param;
}
init_rendering_param可以包含点云数据的初始渲染参数。
根据实施方式的样本条目类型'dyvi'的样本语法可以指定如下:
aligned(8)DynamicRenderingParamSample(){
VPCCRenderingParamBox rendering_param;
}
每个样本可以包括随时间改变的渲染参数。
图57示出根据实施方式的使用ObjectRenderingInfoStruct()信息创建视图的示例。
根据实施方式,作为对象渲染信息的ObjectRenderingInfoStruct可以包括在渲染点云数据时应用于点云数据的详细信息。根据实施方式,ObjectRenderingInfoStruct可以包含诸如由点云数据使用的坐标系信息、点云数据在基于坐标系的3D空间中的位置、点云数据的法向量和可以指示点云数据的向上方向的上向量之类的信息。
aligned(8)类ObjectRenderingInfoStruct(){
unsigned int(8)obj_id;
unsinged int(4)obj_coord_type;
bit(4)reserved=1;
unsigned int(16)obj_pos_x;
unsigned int(16)obj_pos_y;
unsigned int(16)obj_pos_z;
unsigned int(16)obj_dir_x;
unsigned int(16)obj_dir_y;
unsigned int(16)obj_dir_z;
unsigned int(16)obj_up_x;
unsigned int(16)obj_up_y;
unsigned int(16)obj_up_z;
unsigned int(16)obj_scale_x;
unsigned int(16)obj_scale_y;
unsigned int(16)obj_scale_z;
}
obj_id可以指示点云数据的标识符。
obj_coord_type可以指示用于渲染点云的坐标系。例如,当obj_coord_type的值为0时,可以使用全局坐标。例如,当obj_coord_type的值为1时,可以使用视图坐标(即,可用于生成视口数据的虚拟相机的坐标系)。
obj_pos_x、obj_pos_y和obj_pos_z可以指示点云数据的边界框的原点在obj_coord_type指示的坐标系中的x、y和z坐标值。根据实施方式,可以指示点云数据的边界框的中心点在obj_coord_type指示的坐标系中的x、y和z坐标值。
obj_dir_x、obj_dir_y和obj_dir_z可以指示3D空间中的x、y和z坐标值,用于表示指示点云数据面向前方的方向的方向向量(或法向量)。
obj_up_x、obj_up_y和obj_up_z可以指示3D空间中的x、y和z坐标值,用于表示指示点云数据的向上方向的上向量。
obj_scale_x、obj_scale_y和obj_scale_z可以指示与渲染/显示中的点云数据的原始源相比要应用于x、y和z轴的缩放因子。
根据实施方式,ObjectRenderingInfoStruct()信息可以以点云比特流中的SEI等的形式载送。
根据实施方式的V-PCC对象渲染信息盒可以包括ObjectRenderingInfoStruct()信息。
aligned(8)类VPCCObjectRenderingInfoBox扩展FullBox('vpoi',0,0){
ObjectRenderingInfoStruct();
}
接下来,下面描述静态V-PCC对象渲染信息。
根据实施方式,当应用于点云数据的对象渲染信息在点云数据渲染期间在点云序列内没有改变时,VPCCObjectRenderingInfoBox可以被包括在V-PCC轨道的样本条目中或V-PCC基本流轨道的样本条目中。
aligned(8)类VPCCSampleEntry()扩展VolumetricVisualSampleEntry('vpc1'){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCCObjectRenderingInfoBox obj_rendering_info;
}
VPCCObjectRenderingInfoBox可以包含与点云数据相关联的对象渲染信息,该点云数据与存储在轨道中的样本中的阿特拉斯帧相关联。
aligned(8)类VPCCElementaryStreamSampleEntry()扩展VolumetricVisualSampleEntry('vpe1'){
VPCCConfigurationBox config;
VPCCObjectRenderingInfoBox obj_rendering_info;
}
VPCCObjectRenderingInfoBox可以包含与点云数据相关联的对象渲染信息,该点云数据与存储在轨道中的子样本中的阿特拉斯帧和/或视频帧相关联。
接下来,下面描述V-PCC对象渲染信息样本分组。
根据实施方式,用于样本分组的'vpoi'grouping_type表示将V-PCC轨道中的样本指派给该样本组中载送的对象渲染信息。当存在grouping_type等于'vpoi'的SampleToGroupBox时,具有相同分组类型的随附SampleGroupDescriptionBox存在并且可以包含该组样本的ID。
aligned(8)类VPCCObjRenderingInfoSampleGroupDescriptionEntry()扩展SampleGroupDescriptionEntry('vpoi'){
VPCCObjectRenderingInfoStruct();
}
接下来,下面描述动态V-PCC视图信息。
如果V-PCC轨道具有关联的定时元数据轨道,其样本条目类型为“dyoi”,则为由V-PCC轨道载送的点云流定义的对象渲染信息被视为动态渲染信息。也就是说,对象渲染信息可以随时间动态变化。
相关联的定时元数据轨道包含对载送阿特拉斯流的V-PCC轨道的“cdsc”轨道参考。
如果V-PCC基本流轨道具有与样本条目类型“dyoi”相关联的定时元数据轨道,则由V-PCC基本轨道载送的点云流定义的对象渲染信息被视为动态渲染信息。也就是说,对象渲染信息可以随时间动态变化。
相关联的定时元数据轨道包含对V-PCC基本流轨道的“cdsc”轨道参考。
aligned(8)类DynamicObjRenderingInfoSampleEntry扩展MetaDataSampleEntry('dyoi'){
VPCCObjectRenderingInfoBox init_obj_rendering;
}
init_obj_rendering可以包括与点云数据相关的初始对象渲染信息。
该样本条目类型“dyvi”的样本语法可以指定如下:
aligned(8)DynamicObjRenderingInfoSample(){
VPCCObjectRenderingInfoBox obj_rendering_info;
}
每个样本可以包括随时间变化的点云数据的对象渲染信息。
接下来,下面描述非定时V-PCC数据的载送。
图58是示出根据实施方式的用于封装非定时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单元项目的项目类型4CC码。
根据实施方式,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();
}
aligned(8)类VPCCConfigurationProperty
扩展ItemProperty('vpcc'){
vpcc_unit_payload_Struct()[];
}
vpcc_unit_payload_size指定vpcc_unit_payload()的字节大小。
以下是V-PCC单元头项目属性的语法结构的示例。
盒类型:'vunt'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,V-PCC单元头被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
根据实施方式,对于'vunt'项目属性,essential被设置为1。
aligned(8)类VPCCUnitHeaderProperty()
扩展ItemFullProperty('vunt',version=0,0){
vpcc_unit_header();
}
以下是V-PCC视图形成项目属性的语法结构的示例。
盒类型:'vpvi'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,视图信息被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
aligned(8)类VPCCViewInfoproperty()
扩展ItemFullProperty('vpvi',version=0,0){
ViewInfoStruct();
}
以下是V-PCC渲染参数项目属性的语法结构的示例。
盒类型:'vprp'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,渲染参数被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
aligned(8)类VPCCRenderingParamsproperty()
扩展ItemFullProperty('vprp',version=0,0){
RenderingParamStruct();
}
以下是V-PCC对象渲染信息项目属性的语法结构的示例。
盒类型:'vpri'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,对象渲染信息被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
aligned(8)类VPCCObjRenderingInfoproperty()
扩展ItemFullProperty('vpri',version=0,0){
ObjectRenderingInfoStruct();
}
如上所述,根据实施方式的点云数据发送装置可以提供关于V-PCC内容的3D区域信息,以根据用户的视口和与之相关的视频或阿特拉斯帧中的2D区域相关元数据来支持V-PCC内容的空间访问。
根据实施方式的点云数据发送装置可以处理关于点云比特流中的点云的3D区域信息以及与其相关联的视频或阿特拉斯帧中的2D区域相关信息的信令。
根据实施方式的点云数据接收设备可以基于文件中关于点云的3D区域信息、与之相关联的视频或阿特拉斯帧中的2D区域相关信息的存储和信令等高效地访问点云内容。
根据实施方式的点云数据接收装置可以基于关于与文件中的图像项目相关联的点云的3D区域信息和与之相关的视频或阿特拉斯帧中的2D区域相关信息考虑用户环境来提供点云内容。
根据实施方式,视口信息可以以与6DOF(六自由度)视口信息相同或相似的含义使用。根据实施方式,视口信息不仅适用于6DOF而且适用于3DOF+内容。
根据实施方式的视口信息也可以称为视口相关信息或与视口信息相关的元数据。根据实施方式的视口相关信息可以包括视口信息、推荐的视口信息或初始观看取向信息中的至少一种。
根据实施方式,视口相关信息可以由图18的点云数据发送装置的元数据编码器18005或者图21的V-PCC系统的点云预处理器20001和/或视频/图像编码器21007和21008生成/编码,并且可以由图19的点云数据接收装置的元数据解码器19002或者图22的V-PCC系统的视频/图像解码器22001和22002和/或点云处理器22003获取/解码。
在本公开中,以下描述定义与点云数据或3DOF+视频的视口信息相关的元数据并在文件中存储和发信号通知与视口信息相关的元数据的实施方式。
在本公开中,以下描述将与随时间动态变化的点云数据或3DOF+视频的视口信息相关的元数据存储在文件中的实施方式。
在本公开中,以下描述定义与点云数据或3DOF+视频的推荐视口信息相关的元数据,以及将与推荐视口信息相关的元数据存储在文件中并发信号通知的实施方式。
在本公开中,以下描述将与随时间动态变化的点云数据或3DOf+视频的推荐视口信息相关的元数据存储在文件中的实施方式。
在本公开中,以下描述定义与点云数据或3DOF+视频的初始观看取向信息相关的元数据,并将与初始观看取向信息相关的元数据存储在文件中并发信号通知的实施方式。
在本公开中,以下描述将与随时间动态变化的点云数据或3DOf+视频的初始观看取向信息相关的元数据存储在文件中的实施方式。
图59是示出根据实施方式的其中视锥体中的点云数据的空间部分实际显示在视口上的示例的图。
根据实施方式,实际通过其提供点云数据的视口可以基于如图59所示的视锥体来定义。在图59中,由粗线指示的部分可以是视锥体,并且存在于视锥体中的点云数据可以实际渲染并提供给用户。
因此,可以使用如下所述的视口信息来表示6DOF视口。基于视口信息,可以推断视锥体(即,3D空间中的包括实际渲染和显示的全部或部分点云数据的区域)。由于视锥体以2D帧的形式投影,因此可以创建视图(要实际显示的2D图像/视频帧)。
虚拟相机或用户/用户视图(眼睛)在3D空间中的位置(x,y,z)
-指示虚拟相机或用户/用户视图(眼睛)的向上方向的上向量(图59中的“上”箭头)
-指示虚拟相机或用户/用户视图(眼睛)的向右方向的右向量(图59中的“右”箭头)
-由虚拟相机或用户/用户视图(眼睛)观察到的位置(x、y、z)(图59中的Fc)
-从虚拟相机或用户/用户视图(眼睛)的位置到近平面的距离
-从虚拟相机或用户/用户视图(眼睛)的位置到远平面的距离
-虚拟相机或用户/用户视图(眼睛)的水平FOV
-虚拟相机或用户/用户视图(眼睛)的垂直FOV
图60示出根据实施方式的视锥体的示例性俯视图。即,图60示出虚拟相机或用户/用户视图(眼睛)的示例性水平FOV。
图61示出根据实施方式的视锥体的示例性侧视图。即,图61示出了虚拟相机或用户/用户视图(眼睛)的示例性垂直FOV。
根据实施方式,作为视口信息的ViewportInfoStruct可以包括用于生成被渲染并提供给用户的视口的详细信息。根据实施方式,视口信息(ViewportInfoStruct)可以包括6DOF视口信息。例如,视口信息可以包括关于用于生成视口的3D空间中的虚拟相机的位置信息、虚拟相机的垂直/水平视场(FOV)、虚拟相机面向的方向的方向向量、以及指示虚拟相机的向上方向的上向量信息,以及指示虚拟相机的向右方向的右向量。视口信息还可以包括到可以执行渲染的空间的近/远平面的距离。根据实施方式,在3D空间中,虚拟相机可以与用户的眼睛(即,用户视图)一致。也就是说,它可以是用户在3D空间中的视图/眼睛。
以下是示出包括在作为视口信息的ViewInfoStruct信息中的信息的示例的语法。
aligned(8)类6DOFViewportInfoStruct(){
unsigned int(16)viewport_pos_x;
unsigned int(16)viewport_pos_y;
unsigned int(16)viewport_pos_z;
unsigned int(16)viewport_dir_x;
unsigned int(16)viewport_dir_y;
unsigned int(16)viewport_dir_z;
unsigned int(16)viewport_up_x;
unsigned int(16)viewport_up_y;
unsigned int(16)viewport_up_z;
unsigned int(16)viewport_right_x;
unsigned int(16)viewport_right_y;
unsigned int(16)viewport_right_z;
unsigned int(8)viewport_vfov;
unsigned int(8)viewport_hfov;
unsigned int(16)viewport_near_distance;
unsigned int(16)viewport_far_distance
}
viewport_pos_x、viewport_pos_y和viewport_pos_z可以指示能够生成视口(例如,要实际显示的2D图像/视频帧)的虚拟相机(或用户或用户视图/眼睛)的3D空间中的x、y、z坐标值)。
viewport_dir_x、viewport_dir_y和viewport_dir_z可以指示3D空间中的x、y和z坐标值,用于表示指示虚拟相机(或用户或用户视图/眼睛)面向的方向的方向向量。
viewport_up_x、viewport_up_y和viewport_up_z可以指示3D空间中的x、y和z坐标值,用于表示指示虚拟相机(或用户或用户视图/眼睛)的向上方向的上向量。
viewport_right_x、viewport_right_y和viewport_right_z可以指示3D空间中的x、y和z坐标值,用于表示指示虚拟相机(或用户或用户视图/眼睛)的向右方向的右向量。
可以基于方向向量、上向量和右向量生成虚拟相机(或用户、用户视图/眼睛)的坐标系。即,右向量可以是x轴,上向量可以是y轴,并且方向向量可以是z轴。另选地,虚拟相机的x、y和z轴可以通过附加信令来发信号通知。
viewport_hfov可以指示能够生成如图60所示的视口的虚拟相机(或用户、用户视图/眼睛)的水平FOV。
如图61所示,viewport_vfov可以指示能够生成视口的虚拟相机(或用户、用户视图/眼睛)的垂直FOV。
根据实施方式的6DOF视口信息结构可以包括以下信息。
aligned(8)类6DOFViewportInfoStruct(){
unsigned int(1)viewport_right_vector_flag;
unsigned int(1)dimension_flag;
unsigned int(16)viewport_pos_x;
unsigned int(16)viewport_pos_y;
unsigned int(16)viewport_pos_z;
unsigned int(16)viewport_dir_x;
unsigned int(16)viewport_dir_y;
unsigned int(16)viewport_dir_z;
unsigned int(16)viewport_up_x;
unsigned int(16)viewport_up_y;
unsigned int(16)viewport_up_z;
if(viewport_right_vector_flag){
unsigned int(16)viewport_right_x;
unsigned int(16)viewport_right_y;
unsigned int(16)viewport_right_z;
}
if(dimension_flag){
unsigned int(8)viewport_vfov;
unsigned int(8)viewport_hfov;
unsigned int(16)viewport_near_distance;
unsigned int(16)viewport_far_distance
}
}
viewport_right_vector_flag可以是指示视口信息是否包括指示视口的向右方向的右向量信息的标志。
dimension_flag可以是指示视口信息是否包括关于视口的垂直视场、水平视场、近平面和远平面的信息的标志。
ViewportInfoStruct()信息可以载送在点云比特流中的SEI等中。
接下来,下面描述6DOF视口信息盒。
6DOF视口信息盒可以包含关于点云数据(其可以包括V-PCC)的视口信息或关于3DOF+视频的内容的视口信息。
aligned(8)类6DOFViewportInfoBox扩展FullBox('vpvi',0,0){
6DOFViewportInfoStruct();
}
接下来,下面描述静态6DOF视口信息。
根据实施方式,当视口信息在点云数据或3DOF+视频序列内没有改变时,6DOFViewportInfoBox可以被包括在V-PCC轨道的样本条目或V-PCC基本流轨道的样本条目中,如下所示。
aligned(8)类VPCCSampleEntry()扩展VolumetricVisualSampleEntry('vpc1'){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
6DOFViewportInfoBox 6dof_viewport;
}
根据实施方式的6DOFViewportInfoBox可以包含用于生成视口的详细信息,通过该视口渲染和提供与存储在轨道中的样本中的阿特拉斯帧相关联的3DOF+视频或点云数据。
aligned(8)类VPCCElementaryStreamSampleEntry()扩展VolumetricVisualSampleEntry('vpe1'){
VPCCConfigurationBox config;
6DOFViewportInfoBox 6dof_viewport;
}
根据实施方式的6DOFViewportInfoBox可以包含用于生成视口的详细信息,通过该视口渲染和提供与存储在轨道中的子样本中的视频帧和/或阿特拉斯帧相关联的3DOF+视频或点云数据.
接下来,下面描述6DOF视口信息样本分组。
根据实施方式,用于样本分组的'vpvs'grouping_type表示将V-PCC轨道中的样本指派给该样本组中载送的视口信息。当存在grouping_type等于'vpvs'的SampleToGroupBox时,具有相同分组类型的随附SampleGroupDescriptionBox存在并包含该组样本的ID。
aligned(8)类6DOFViewportInfoSampleGroupDescriptionEntry()扩展SampleGroupDescriptionEntry('vpvs'){
6DOFViewportInfoStruct();
}
接下来,下面描述动态6DOF视口信息。
根据实施方式,可以发信号通知随时间改变的3DOF+视频序列或点云数据的视口信息。
如果V-PCC轨道具有关联的定时元数据轨道,其样本条目类型为“dyvp”,则为由V-PCC轨道载送的点云流定义的视口信息被认为是动态的。也就是说,视口信息可以随时间动态变化。
相关联的定时元数据轨道包含对载送阿特拉斯流的V-PCC轨道的“cdsc”轨道参考。
如果V-PCC基本流轨道具有关联的定时元数据轨道,其具有样本条目类型'dyvp',则为由V-PCC基本流轨道载送的点云流定义的视口信息被认为是动态的。也就是说,视口信息可以随时间动态变化。
相关联的定时元数据轨道包含对V-PCC基本流轨道的“cdsc”轨道参考。
aligned(8)类DynamicViewportInfoSampleEntry扩展MetaDataSampleEntry('dyvp'){
6DOFViewportInfoBox init_6dof_viewport;
}
init_6dof_viewport可以包括用于生成3DOF+视频的初始视口的点云数据或视口信息(viewport information())。
根据实施方式,该样本条目类型'dyvp'的样本语法可以指定如下:
aligned(8)DynamicViewInfoSample(){
6DOFViewportInfoBox 6dof_viewport;
}
每个样本可以包括随时间变化的3DOF+视频或点云数据的视口信息,即viewportinformation()。
接下来,下面描述6DOF推荐视口信息的信令。
根据实施方式的6DOF推荐视口信息盒可以包括通过点云数据、3DOF+视频的内容创建者的意图或观看统计推荐的视口信息(6DOF推荐视口信息)。
aligned(8)类6DOFRecommendedViewportInfoBox扩展FullBox('vpvi',0,0){
6DOFViewportInfoStruct();
}
接下来,下面描述静态6DOF推荐视口信息。
如果根据实施方式的推荐视口信息在点云数据或3DOF+视频序列内没有改变,则可以将6DOFRecommendedViewportInfoBox包括在V-PCC轨道的样本条目或V-PCC基本流轨道的样本条目中。
aligned(8)类VPCCSampleEntry()扩展VolumetricVisualSampleEntry('vpc1'){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
6DOFRecommendedViewportInfoBox 6dof_rec_viewport;
}
根据实施方式的6DOFRecommendedViewportInfoBox可以包含用于生成推荐视口的详细信息,通过该推荐视口可以渲染和提供与存储在轨道中的样本中的阿特拉斯帧相关联的3DOF+视频或点云数据。
aligned(8)类VPCCElementaryStreamSampleEntry()扩展VolumetricVisualSampleEntry('vpe1'){
VPCCConfigurationBox config;
6DOFRecommendedViewportInfoBox 6dof_rec_viewport;
}
根据实施方式的6DOFRecommendedViewportInfoBox可以包含用于生成推荐视口的详细信息,通过该推荐视口可以渲染并提供与存储在轨道中的子样本中的视频帧和/或阿特拉斯帧相关联的3DOF+视频或点云数据。
接下来,下面描述6DOF视口信息样本分组。
根据实施方式,用于样本分组的'vpvs'grouping_type表示将V-PCC轨道中的样本指派给该样本组中载送的推荐视口信息。当存在grouping_type等于'vprv'的SampleToGroupBox时,具有相同分组类型的随附SampleGroupDescriptionBox可以存在并包含该组样本的ID。
aligned(8)类6DOFRecommendedViewportInfoSampleGroupDescriptionEntry()
扩展SampleGroupDescriptionEntry('vprv'){
6DOFViewportInfoStruct();
}
接下来,描述动态6DOF推荐视口信息。
根据实施方式,可以发信号通知随时间改变的点云数据或3DOF+视频序列的推荐视口信息。
如果V-PCC轨道具有关联的定时元数据轨道,其样本条目类型为“dyrv”,则为由V-PCC轨道载送的点云流定义的推荐视口信息被认为是动态的。也就是说,推荐的视口信息可以随时间动态变化。
相关联的定时元数据轨道包含对载送阿特拉斯流的V-PCC轨道的“cdsc”轨道参考)。
如果V-PCC基本流轨道具有关联的定时元数据轨道,其样本条目类型为“dyrv”,则为V-PCC基本轨道载送的点云流定义的推荐视口信息被认为是动态的。也就是说,推荐的视口信息可以随时间动态变化。
相关联的定时元数据轨道包含对V-PCC基本流轨道的“cdsc”轨道参考。
aligned(8)类DynamicRecommendedViewportInfoSampleEntry扩展MetaDataSampleEntry('dyrv'){
6DOFRecommendedViewportInfoBox init_6dof_rec_viewport;
}
init_6dof_rec_viewport可以包括推荐视口信息(),用于生成点云数据或3DOF+视频的初始推荐视口。
该样本条目类型“dyrv”的样本语法可以指定如下:
aligned(8)DynamicViewInfoSample(){
6DOFRecommendedViewportInfoBox 6dof_rec_viewport;
}
每个样本可以包含推荐视口信息,即,随时间变化的3DOF+视频或点云数据的推荐视口信息()。
接下来,描述了6DOF初始观看取向的信令。
根据实施方式,6DOF初始观看取向信息盒可以包含3DOF+视频或点云数据的内容的初始观看取向信息。
aligned(8)类6DOFInitialViewingOrientationStruct(){
6DOFViewportInfoStruct();
}
另选地,包含在6DOF初始观看取向信息盒中的信息可以如下。
Aligned(8)类6DOFInitialViewingOrientationStruct(){
unsigned int(16)viewport_pos_x;
unsigned int(16)viewport_pos_y;
unsigned int(16)viewport_pos_z;
unsigned int(16)viewport_dir_x;
unsigned int(16)viewport_dir_y;
unsigned int(16)viewport_dir_z;
unsigned int(16)viewport_up_x;
unsigned int(16)viewport_up_y;
unsigned int(16)viewport_up_z;
unsigned int(16)viewport_right_x;
unsigned int(16)viewport_right_y;
unsigned int(16)viewport_right_z;
}
viewport_pos_x、viewport_pos_y和viewport_pos_z可以指示能够生成视口(例如,要实际显示的2D图像/视频帧)的虚拟相机(或用户或用户视图/眼睛)的3D空间中的x、y、z坐标值)。
viewport_dir_x、viewport_dir_y和viewport_dir_z可以指示3D空间中的x、y和z坐标值,用于表示指示虚拟相机(或用户或用户视图/眼睛)面向的方向的方向向量。
viewport_up_x、viewport_up_y和viewport_up_z可以指示3D空间中的x、y和z坐标值,用于表示指示虚拟相机(或用户或用户视图/眼睛)的向上方向的上向量。
viewport_right_x、viewport_right_y和viewport_right_z可以指示3D空间中的x、y和z坐标值,用于表示指示虚拟相机(或用户或用户视图/眼睛)的向右方向的右向量。
可以基于方向向量、上向量和右向量生成虚拟相机(或用户、用户视图/眼睛)的坐标系。即,右向量可以是x轴,上向量可以是y轴,并且方向向量可以是z轴。另选地,虚拟相机的x、y和z轴可以通过附加信令来发信号通知。
aligned(8)类6DOFInitialViewingInfoBox扩展FullBox('vpiv',0,0){
6DOFInitialViewingOrientationStruct();
}
接下来,下面描述静态6DOF初始观看取向信息。
根据实施方式,当初始观看取向信息在点云数据或3DOF+视频序列内没有改变时,6DOFInitialViewingInfoBox可以被包括在V-PCC轨道的样本条目或V-PCC基本流轨道的样本条目中。
aligned(8)类VPCCSampleEntry()扩展VolumetricVisualSampleEntry('vpc1'){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
6DOFInitialViewingInfoBox 6dof_init_orientation;
}
根据实施方式,6DOFInitialViewingInfoBox可以包含用于生成初始观看方向的详细信息,通过该初始观看方向可以渲染和提供与存储在轨道中的样本中的阿特拉斯帧相关联的3DOF+视频或点云数据。
aligned(8)类VPCCElementaryStreamSampleEntry()扩展VolumetricVisualSampleEntry('vpe1'){
VPCCConfigurationBox config;
6DOFInitialViewingInfoBox 6dof_intial_orientaton;
}
根据实施方式,6DOFInitialViewingInfoBox可以包含用于生成初始观看方向的详细信息,通过该初始观看方向可以渲染并提供与存储在轨道中的子样本中的视频帧和/或阿特拉斯帧相关联的3DOF+视频或点云数据。
接下来,下面描述6DOF视口信息样本分组。
根据实施方式,用于样本分组的'vpvs'grouping_type表示将V-PCC轨道中的样本指派给该样本组中载送的初始观看取向信息。当存在grouping_type等于'vprv'的SampleToGroupBox时,具有相同分组类型的随附SampleGroupDescriptionBox可以存在并包含该组样本的ID。
aligned(8)类6DOFInitialViewingInfoSampleGroupDescriptionEntry()扩展SampleGroupDescriptionEntry('vprv'){
6DOFViewportInfoStruct();
}
接下来,下面描述动态6DOF初始观看取向信息。
根据实施方式,可以发信号通知随时间改变的点云数据或3DOF+视频序列的初始观看取向信息。
如果V-PCC轨道具有关联的定时元数据轨道,其样本条目类型为“dyiv”,则为由V-PCC轨道载送的点云流定义的初始观看取向信息被认为是动态的。即,初始观看取向信息可以随时间动态变化。
相关联的定时元数据轨道包含对载送阿特拉斯流的V-PCC轨道的“cdsc”轨道参考。
如果V-PCC基本流轨道具有关联的定时元数据轨道,其样本条目类型为“dyiv”,则为由V-PCC基本流轨道载送的点云流定义的初始观看取向信息被认为是动态的.即,初始观看取向信息可以随时间动态变化。
相关联的定时元数据轨道包含对V-PCC基本流轨道的“cdsc”轨道参考。
aligned(8)类DynamicInitialViewingInfoSampleEntry扩展MetaDataSampleEntry('dyiv'){
6DOFInitialViewingInfoBox init_6dof_orientation;
}
init_6dof_orientation可以包括点云数据或3DOF+视频的初始观看取向信息()。
根据实施方式,该样本条目类型'dyrv'的样本语法可以指定如下:
aligned(8)DynamicViewInfoSample(){
6DOFInitialViewingInfoBox 6dof_viewing_orientation;
}
每个样本可以包含随时间变化的点云数据或3DOF+视频的观看取向信息,即观看取向信息()。
接下来,以下描述6DOF视口信息项目属性。
根据实施方式,关于3DOF+视频图像或点云图像项的视口的信息(6DOF视口信息)可以通过如下信令来传送。
盒类型:'vpvi'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,视口信息被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
aligned(8)类6DOFViewPortInfoproperty()
扩展ItemFullProperty('vpvi',version=0,0){
ViewportInfoStruct();
}
接下来,描述6DOF推荐视口信息项目属性。
根据实施方式,关于3DO+视频图像或点云图像项目的推荐视口的信息(6DOF推荐视口信息)可以通过如下信令传送。
盒类型:'vprv'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,推荐的视口信息被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
aligned(8)类6DOFRecommendedViewPortInfoproperty()
扩展ItemFullProperty('vprv',version=0,0){
ViewportInfoStruct();
}
接下来,下面描述6DOF初始观看取向信息项目属性。
根据实施方式,关于3DO+视频图像或点云图像项目的初始观看取向的信息(6DOF初始观看取向信息)可以通过如下信令传送。
盒类型:'vpiv'
属性类型:描述性项目属性
容器:ItemPropertyContainerBox
强制(每个项目):是,对于“vpci”类型的V-PCC项目和V-PCC单元项目
数量(每个项目):一个
根据实施方式,初始观看取向信息被存储为描述性项目属性并且与V-PCC项目和V-PCC单元项目相关联。
aligned(8)类6DOFRecommendedViewPortInfoproperty()
扩展ItemFullProperty('vpiv',version=0,0){
6DOFInitialViewingOrientationStruct();}
根据实施方式,上述元数据(或信令信息)可以由点云数据发送方法/装置的PCC处理生成(或编码或封装),并在点云数据接收方法/装置处理的处理中使用。因此,可以向用户提供优化的PCC内容。
图62示出根据实施方式的发送点云数据的方法的示例。
根据实施方式的点云数据发送方法可以包括对点云数据进行编码(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的网络与各种装置组合地提供给用户。
根据实施方式的点云数据发送方法/装置可以与上述实施方式的全部/部分组合以提供点云内容。
图63示出了根据实施方式的接收点云数据的方法的示例。
根据实施方式的点云数据接收方法包括接收包含点云数据和信令信息的比特流(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来提取视口区域。取向或视口相关信息可以由接收装置提取或计算。接收装置所分析的方向或视口相关信息可以通过反馈信道发送到发送装置。
根据实施方式的视口相关信息可以包括视口信息、推荐的视口信息或初始观看取向信息中的至少一种。由于上面已经充分描述了包含在视口相关信息中的详细信息,因此将省略其描述。
根据实施方式的用于接收点云数据的方法/装置可以与上述实施方式的全部/部分结合以提供点云内容。
上述各个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的软件、处理器或硬件部分。在上述实施方式中描述的各个步骤可由处理器、软件或硬件部分执行。在上述实施方式中描述的各个模块/块/单元可作为处理器、软件或硬件操作。另外,实施方式所提出的方法可作为代码执行。该代码可被写在处理器可读存储介质上,因此由设备所提供的处理器读取。
尽管为了简单参照各个附图说明了实施方式,但是可通过将附图所示的实施方式合并来设计新的实施方式。如果本领域技术人员设计了记录有用于执行以上描述中提及的实施方式的程序的计算机可读记录介质,则其可落在所附权利要求及其等同物的范围内。
设备和方法可不限于上述实施方式的配置和方法。上述实施方式可通过选择性地彼此完全或部分地组合来配置,以实现各种修改。
尽管参照附图描述了优选实施方式,但本领域技术人员将理解,在不脱离所附权利要求中描述的本公开的精神或范围的情况下,可对实施方式进行各种修改和变化。这些修改不应从实施方式的技术思想或观点方面单独地理解。
本领域技术人员将理解,在不脱离本公开的范围的情况下,可对实施方式进行各种修改和变化。因此,本公开旨在涵盖实施方式的修改和变化,只要它们落在所附权利要求及其等同物的范围内。
本说明书中描述了设备和方法公开二者,并且设备和方法公开二者的描述互补地适用。
实施方式的设备的各种元件可由硬件、软件、固件或其组合实现。实施方式中的各种元件可由单个芯片(例如,单个硬件电路)实现。根据实施方式,根据实施方式的组件可分别被实现为单独的芯片。根据实施方式,根据实施方式的设备的至少一个或更多个组件可包括能够执行一个或更多个程序的一个或更多个处理器。一个或更多个程序可执行根据实施方式的任一个或更多个操作/方法,或者包括用于执行其的指令。用于执行根据实施方式的设备的方法/操作的可执行指令可被存储在被配置为由一个或更多个处理器执行的非暂时性CRM或其它计算机程序产品中,或者可被存储在被配置为由一个或更多个处理器执行的暂时性CRM或其它计算机程序产品中。另外,根据实施方式的存储器可用作不仅涵盖易失性存储器(例如,RAM),而且涵盖非易失性存储器、闪存和PROM的概念。另外,其还可按照载波的形式实现(例如,经由互联网的传输)。另外,处理器可读记录介质可分布到经由网络连接的计算机系统,使得处理器可读代码可按照分布式方式存储和执行。
在本文档中,术语“/”和“、”应该被解释为指示“和/或”。例如,表达“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二者。换言之,在本文档中术语“或”应该被解释为“另外地或另选地”。
实施方式的各种元件可以通过硬件、软件、固件或其组合来实现。实施方式中的各个元件可以由单个芯片实现,例如单个硬件电路。可选地,这些组件可以分别实现为单独的芯片。根据实施方式,根据实施方式的组件中的至少一个可以在包括用于执行根据实施方式的操作的指令的一个或更多个处理器中实现。
诸如第一和第二的术语可用于描述实施方式的各种元件。然而,根据实施方式的各种组件不应受上述术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,第一用户输入信号可被称为第二用户输入信号。类似地,第二用户输入信号可被称为第一用户输入信号。这些术语的使用应该被解释为不脱离各种实施方式的范围。第一用户输入信号和第二用户输入信号均是用户输入信号,但除非上文清楚地另外规定,否则并不意味着相同的用户输入信号。
用于描述实施方式的术语仅用于描述特定实施方式的目的,并非旨在限制实施方式。如在实施方式的描述和权利要求中使用的,除非上文清楚地另外规定,否则单数形式包括复数指称物。表达“和/或”用于包括术语的所有可能组合。诸如“包括”或“具有”的术语旨在指示存在图形、数量、步骤、元件和/或组件,应该被理解为不排除存在附加图形、数量、步骤、元件和/或组件的可能性。
如本文所使用的,诸如“如果”和“当”的条件表达不限于可选情况,旨在被解释为当满足特定条件时执行相关操作或根据该特定条件解释相关定义。
另外,根据本公开中描述的实施方式的操作可以由根据实施方式的包括一个或更多个存储器和/或一个或更多个处理器的发送/接收装置来执行。一个或更多个存储器可以存储用于根据实施方式的处理/控制操作的程序。一个或更多个处理器可以控制本公开中描述的各种操作。一个或更多个处理器可以称为控制器等。根据实施方式的操作可以通过固件、软件和/或其组合来执行。固件、软件和/或其组合可以存储在处理器或存储器中。
工业适用性
如上所述,实施方式可以全部或部分地应用于点云数据发送/接收装置和系统。
对于本领域技术人员将显而易见的是,可以在实施方式的范围内对实施方式进行各种改变或修改。
因此,实施方式旨在覆盖本公开的修改和变化,只要它们落入所附权利要求及其等同物的范围内。
Claims (20)
1.一种点云数据发送方法,所述点云数据发送方法包括以下步骤:
对点云数据进行编码;以及
发送包括所述点云数据和信令信息的比特流。
2.根据权利要求1所述的点云数据发送方法,
其中,所述点云数据包括几何数据、属性数据和占用图数据,所述几何数据、所述属性数据和所述占用图数据通过基于视频的点云压缩V-PCC方案来编码。
3.根据权利要求1所述的点云数据发送方法,
其中,所述信令信息包括根据相机或用户的位置和取向确定的视口的视口相关信息。
4.根据权利要求3所述的点云数据发送方法,
其中,所述视口相关信息包括所述相机或所述用户在3维3D空间中的坐标信息、用于指示所述相机或所述用户正在观看的方向的方向向量信息、用于指示所述相机或所述用户的向上方向的上向量信息、以及用于指示所述相机或所述用户的向右方向的右向量信息。
5.根据权利要求3所述的点云数据发送方法,
其中,所述视口相关信息包括用于生成所述视口的水平视场FOV信息和垂直FOV信息。
6.一种点云数据发送设备,所述点云数据发送设备包括:
用于对点云数据进行编码的编码器;以及
发送器,所述发送器用于发送包括所述点云数据和信令信息的比特流。
7.根据权利要求6所述的点云数据发送设备,
其中,所述点云数据包括几何数据、属性数据和占用图数据,所述几何数据、所述属性数据和所述占用图数据通过基于视频的点云压缩V-PCC方案来编码。
8.根据权利要求6所述的点云数据发送设备,
其中,所述信令信息包括根据相机或用户的位置和取向确定的视口的视口相关信息。
9.根据权利要求8所述的点云数据发送设备,
其中,所述视口相关信息包括所述相机或所述用户在3维3D空间中的坐标信息、用于指示所述相机或所述用户正在观看的方向的方向向量信息、用于指示所述相机或所述用户的向上方向的上向量信息、以及用于指示所述相机或所述用户的向右方向的右向量信息。
10.根据权利要求8所述的点云数据发送设备,
其中,所述视口相关信息包括用于生成所述视口的水平视场FOV信息和垂直FOV信息。
11.一种点云数据接收方法,所述点云数据接收方法包括以下步骤:
接收包括点云数据和信令信息的比特流;
对所述点云数据进行解码;以及
渲染解码的点云数据。
12.根据权利要求11所述的点云数据接收方法,
其中,所述信令信息包括根据相机或用户的位置和取向确定的视口的视口相关信息。
13.根据权利要求12所述的点云数据接收方法,
其中,所述视口相关信息包括所述相机或所述用户在3维3D空间中的坐标信息、用于指示所述相机或所述用户正在观看的方向的方向向量信息、用于指示所述相机或所述用户的向上方向的上向量信息、以及用于指示所述相机或所述用户的向右方向的右向量信息。
14.根据权利要求12所述的点云数据接收方法,
其中,所述视口相关信息包括用于生成所述视口的水平视场FOV信息和垂直FOV信息。
15.根据权利要求12所述的点云数据接收方法,
其中,所述解码的点云数据是基于所述视口相关信息来渲染的。
16.一种点云数据接收设备,所述点云数据接收设备包括:
接收器,所述接收器用于接收包括点云数据和信令信息的比特流;
解码器,所述解码器用于对所述点云数据进行解码;以及
渲染器,所述渲染器用于渲染解码的点云数据。
17.根据权利要求16所述的点云数据接收设备,
其中,所述信令信息包括根据相机或用户的位置和取向确定的视口的视口相关信息。
18.根据权利要求17所述的点云数据接收设备,
其中,所述视口相关信息包括所述相机或所述用户在3维3D空间中的坐标信息、用于指示所述相机或所述用户正在观看的方向的方向向量信息、用于指示所述相机或所述用户的向上方向的上向量信息、以及用于指示所述相机或所述用户的向右方向的右向量信息。
19.根据权利要求17所述的点云数据接收设备,
其中,所述视口相关信息包括用于生成所述视口的水平视场FOV信息和垂直FOV信息。
20.根据权利要求17所述的点云数据接收设备,
其中,所述解码的点云数据是基于所述视口相关信息来渲染的。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962911939P | 2019-10-07 | 2019-10-07 | |
US62/911,939 | 2019-10-07 | ||
US202062959130P | 2020-01-09 | 2020-01-09 | |
US62/959,130 | 2020-01-09 | ||
US202062990434P | 2020-03-16 | 2020-03-16 | |
US62/990,434 | 2020-03-16 | ||
PCT/KR2020/013685 WO2021071257A1 (ko) | 2019-10-07 | 2020-10-07 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114503587A true CN114503587A (zh) | 2022-05-13 |
Family
ID=75437973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080070476.6A Pending CN114503587A (zh) | 2019-10-07 | 2020-10-07 | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11380019B2 (zh) |
EP (1) | EP4044603A4 (zh) |
JP (2) | JP7376705B2 (zh) |
KR (1) | KR102518819B1 (zh) |
CN (1) | CN114503587A (zh) |
WO (1) | WO2021071257A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114608B (zh) * | 2020-01-10 | 2022-06-10 | 上海交通大学 | 点云数据封装方法及传输方法 |
WO2022250276A1 (ko) * | 2021-05-28 | 2022-12-01 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치 |
WO2023014085A1 (ko) * | 2021-08-03 | 2023-02-09 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
WO2023137321A2 (en) * | 2022-01-11 | 2023-07-20 | Bytedance Inc. | Method, apparatus, and medium for video processing |
JP2024058010A (ja) * | 2022-10-13 | 2024-04-25 | Kddi株式会社 | メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107750458A (zh) * | 2015-06-18 | 2018-03-02 | 高通股份有限公司 | 分层hevc文件格式中的轨道和操作点信令的设计 |
US20180091735A1 (en) * | 2016-09-23 | 2018-03-29 | Mediatek Inc. | System And Method For Specifying, Signaling And Using Coding-Independent Code Points In Processing Media Contents from Multiple Media Sources |
CN108702528A (zh) * | 2016-02-17 | 2018-10-23 | Lg电子株式会社 | 发送360视频的方法、接收360视频的方法、发送360视频的设备和接收360视频的设备 |
CN109076255A (zh) * | 2016-04-26 | 2018-12-21 | Lg电子株式会社 | 发送360度视频的方法、接收360度视频的方法、发送360度视频的设备、接收360度视频的设备 |
US20190087979A1 (en) * | 2017-09-18 | 2019-03-21 | Apple Inc. | Point cloud compression |
CN109792537A (zh) * | 2016-09-29 | 2019-05-21 | 皇家飞利浦有限公司 | 图像处理 |
WO2019158821A1 (en) * | 2018-02-19 | 2019-08-22 | Nokia Technologies Oy | An apparatus, a method and a computer program for volumetric video |
US20190297132A1 (en) * | 2018-03-26 | 2019-09-26 | Mediatek Singapore Pte. Ltd. | Methods and apparatus for signaling viewports and regions of interest |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8731313B2 (en) * | 2009-03-23 | 2014-05-20 | Level Set Systems, Inc. | Method and apparatus for accurate compression and decompression of three-dimensional point cloud data |
US10694210B2 (en) * | 2016-05-28 | 2020-06-23 | Microsoft Technology Licensing, Llc | Scalable point cloud compression with transform, and corresponding decompression |
US10560660B2 (en) * | 2017-01-04 | 2020-02-11 | Intel Corporation | Rectilinear viewport extraction from a region of a wide field of view using messaging in video transmission |
US20190373245A1 (en) * | 2017-03-29 | 2019-12-05 | Lg Electronics Inc. | 360 video transmission method, 360 video reception method, 360 video transmission device, and 360 video reception device |
WO2018204330A1 (en) * | 2017-05-01 | 2018-11-08 | Realnetworks, Inc. | Multi-layered video streaming systems and methods |
EP3422724B1 (en) * | 2017-06-26 | 2024-05-01 | Nokia Technologies Oy | An apparatus, a method and a computer program for omnidirectional video |
US11657539B2 (en) * | 2017-10-16 | 2023-05-23 | Sony Corporation | Information processing apparatus and information processing method |
US10535161B2 (en) * | 2017-11-09 | 2020-01-14 | Samsung Electronics Co., Ltd. | Point cloud compression using non-orthogonal projection |
US10783668B2 (en) | 2017-12-22 | 2020-09-22 | Samsung Electronics Co., Ltd. | Handling duplicate points in point cloud compression |
US10916041B2 (en) * | 2018-03-30 | 2021-02-09 | Samsung Electronics Co., Ltd. | Method for depth image di coding |
WO2019194434A1 (ko) * | 2018-04-05 | 2019-10-10 | 엘지전자 주식회사 | 복수의 뷰포인트들에 대한 메타데이터를 송수신하는 방법 및 장치 |
US11381621B2 (en) * | 2018-04-11 | 2022-07-05 | Samsung Electronics Co., Ltd. | Device and method for processing data in multimedia system |
US11178373B2 (en) * | 2018-07-31 | 2021-11-16 | Intel Corporation | Adaptive resolution of point cloud and viewpoint prediction for video streaming in computing environments |
US11200700B2 (en) * | 2019-01-10 | 2021-12-14 | Mediatek Singapore Pte. Ltd. | Methods and apparatus for signaling viewports and regions of interest for point cloud multimedia data |
BR112021013402A2 (pt) * | 2019-02-05 | 2021-09-14 | Panasonic Intellectual Property Corporation Of America | Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais, e dispositivo de decodificação de dados tridimensionais |
US11310560B2 (en) * | 2019-05-17 | 2022-04-19 | Samsung Electronics Co., Ltd. | Bitstream merger and extractor |
WO2021002657A1 (ko) * | 2019-07-04 | 2021-01-07 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
CN114402571A (zh) * | 2019-07-16 | 2022-04-26 | 苹果公司 | 基于会话描述协议和实时协议的体积点云内容的流式传输 |
US11831861B2 (en) * | 2019-08-12 | 2023-11-28 | Intel Corporation | Methods for viewport-dependent adaptive streaming of point cloud content |
KR20190101927A (ko) * | 2019-08-13 | 2019-09-02 | 엘지전자 주식회사 | Xr 디바이스 및 그 제어 방법 |
US20200154121A1 (en) * | 2020-01-10 | 2020-05-14 | Jill Boyce | Multi-dimensional video transcoding |
-
2020
- 2020-10-07 WO PCT/KR2020/013685 patent/WO2021071257A1/ko unknown
- 2020-10-07 JP JP2022521344A patent/JP7376705B2/ja active Active
- 2020-10-07 CN CN202080070476.6A patent/CN114503587A/zh active Pending
- 2020-10-07 KR KR1020200129707A patent/KR102518819B1/ko active IP Right Grant
- 2020-10-07 US US17/064,855 patent/US11380019B2/en active Active
- 2020-10-07 EP EP20875306.1A patent/EP4044603A4/en active Pending
-
2023
- 2023-10-26 JP JP2023183920A patent/JP2023178464A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107750458A (zh) * | 2015-06-18 | 2018-03-02 | 高通股份有限公司 | 分层hevc文件格式中的轨道和操作点信令的设计 |
CN108702528A (zh) * | 2016-02-17 | 2018-10-23 | Lg电子株式会社 | 发送360视频的方法、接收360视频的方法、发送360视频的设备和接收360视频的设备 |
CN109076255A (zh) * | 2016-04-26 | 2018-12-21 | Lg电子株式会社 | 发送360度视频的方法、接收360度视频的方法、发送360度视频的设备、接收360度视频的设备 |
US20180091735A1 (en) * | 2016-09-23 | 2018-03-29 | Mediatek Inc. | System And Method For Specifying, Signaling And Using Coding-Independent Code Points In Processing Media Contents from Multiple Media Sources |
CN109792537A (zh) * | 2016-09-29 | 2019-05-21 | 皇家飞利浦有限公司 | 图像处理 |
US20190087979A1 (en) * | 2017-09-18 | 2019-03-21 | Apple Inc. | Point cloud compression |
WO2019158821A1 (en) * | 2018-02-19 | 2019-08-22 | Nokia Technologies Oy | An apparatus, a method and a computer program for volumetric video |
US20190297132A1 (en) * | 2018-03-26 | 2019-09-26 | Mediatek Singapore Pte. Ltd. | Methods and apparatus for signaling viewports and regions of interest |
Non-Patent Citations (2)
Title |
---|
SEJIN OH (LGE): "On Video encoded V-PCC component tracks", MPEG MEETING, 13 June 2019 (2019-06-13), pages 1 - 4 * |
XIN WANG (MEDIATEK) ET AL: "Carriage of CICP information for multiple media sources in ISOBMFF", MPEG MEETING, 15 October 2016 (2016-10-15), pages 1 - 9 * |
Also Published As
Publication number | Publication date |
---|---|
US20210209806A1 (en) | 2021-07-08 |
EP4044603A1 (en) | 2022-08-17 |
EP4044603A4 (en) | 2023-11-29 |
JP2022551690A (ja) | 2022-12-13 |
KR20210041528A (ko) | 2021-04-15 |
WO2021071257A1 (ko) | 2021-04-15 |
JP7376705B2 (ja) | 2023-11-08 |
JP2023178464A (ja) | 2023-12-14 |
KR102518819B1 (ko) | 2023-04-06 |
US11380019B2 (en) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151742B2 (en) | Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus, and point cloud data reception method | |
US11170556B2 (en) | Apparatus for transmitting point cloud data, a method for transmitting point cloud data, an apparatus for receiving point cloud data and a method for receiving point cloud data | |
US11017591B2 (en) | Point cloud data transmitting apparatus, point cloud transmitting method, point cloud data receiving apparatus, and point cloud receiving method | |
US11631158B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20220159261A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US11968393B2 (en) | Point cloud data transmitting device, point cloud data transmitting method, point cloud data receiving device, and point cloud data receiving method | |
CN114946178B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN115443652B (zh) | 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 | |
US11380019B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN114930813A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN115398890B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN114946179B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
US11601634B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
CN115769583A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN115380528A (zh) | 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 | |
CN115804096A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
CN115428442B (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 |