处理和发送三维内容的方法

文档序号:958980 发布日期:2020-10-30 浏览:9次 >En<

阅读说明:本技术 处理和发送三维内容的方法 (Method for processing and transmitting three-dimensional content ) 是由 叶浩晴 裵宰贤 梁贤九 于 2020-01-08 设计创作,主要内容包括:根据本公开的实施例,一种发送三维(3D)视频内容的方法包括:定义3D空间;获得关于将被放置在3D空间中的至少一个3D对象的放置信息;划分该至少一个3D对象;将包括划分的至少一个3D对象的3D视频内容压缩成二维(2D)视频帧;从该2D视频帧获得关于与所划分的至少一个3D对象相对应的压缩数据的位置信息;对该2D视频帧进行编码;生成包括编码的2D视频帧和位置信息的媒体文件;以及发送媒体文件。(According to an embodiment of the present disclosure, a method of transmitting three-dimensional (3D) video content includes: defining a 3D space; obtaining placement information regarding at least one 3D object to be placed in a 3D space; partitioning the at least one 3D object; compressing 3D video content including the divided at least one 3D object into two-dimensional (2D) video frames; obtaining position information on compressed data corresponding to the divided at least one 3D object from the 2D video frame; encoding the 2D video frame; generating a media file including the encoded 2D video frame and the position information; and transmitting the media file.)

处理和发送三维内容的方法

技术领域

本公开涉及一种用于发送多媒体内容的方法和装置。更具体地,本公开涉及一种通过使用内容划分和部分传送技术来处理和发送6自由度内容的方法。

背景技术

6自由度(以下称为6DoF)包括在三维(three-dimensional,3D)笛卡尔坐标系中绕X轴的滚动、绕Y轴的俯仰、绕Z轴的偏航、向前/向后(波动)、向左/向右(摇摆)、和向上/向下(起伏)平移运动。人们对6DoF内容的生成和传输越来越感兴趣,其中通过在工作室或体育场中使用多个相机来生成关于虚拟空间中的玩家或对象的信息而能够在用户期望的方向上消费6DoF内容。英特尔等公司使用38台5K相机在虚拟空间中生成并提供现有相机先前无法生成的新类型的内容。然而,为了发送对应的信息,要求在传统的二维(two-dimensional,2D)图像的传输中传输3D空间信息、颜色信息等。因此,需要非常大容量的媒体传输。

因此,运动图像专家组(Moving Picture Experts Group,MPEG)已经讨论了一种新类型的3D媒体存储方法,称为点云压缩(point cloud compression,PCC),以便发生和存储这种3D媒体。然而,这也要求非常大量的数据用于经由网络传输,并且终端也要求非常大量的计算以便再现对应的内容。因此,MPEG已经研究了一种通过划分3D内容并发生和处理不是所有的3D内容而是部分3D内容(划分的内容)来减少负载的方法。

发明内容

技术问题

如上所述,三维(3D)内容,特别是6自由度(6DoF)内容,可以向内容消费者提供各种体验和更高的沉浸感,但是要处理的数据量呈指数增长。因此,不仅会成为系统的负担,还会发生处理时间和传输时间的延迟。

本公开旨在通过将3D内容划分并处理成空间部分或时间部分来解决上述问题并减少系统负载以及提高系统操作效率。

技术方案

用于实现上述目的的本公开的代表性配置如下。

为了解决上述问题,根据本公开的实施例,一种发送三维(3D)视频内容的方法包括:定义3D空间;获得关于将被放置在3D空间中的至少一个3D对象的放置信息;划分该至少一个3D对象;将包括划分的至少一个3D对象的3D视频内容压缩成二维(2D)视频帧;从该2D视频帧获得关于与所划分的至少一个3D对象相对应的压缩数据的位置信息;对该2D视频帧进行编码;生成包括编码的2D视频帧和位置信息的媒体文件;以及发送媒体文件。

根据本公开的另一实施例,媒体文件的生成包括:将与编码的2D视频帧中的所划分的至少一个3D对象相对应的多个分量的比特流和包括关于所述至少一个3D对象的补片信息的比特流***到所述媒体文件内部的媒体数据框中,并且将与所述多个分量中的每一个分量相对应的元数据的轨迹和与所述补片信息相对应的元数据的轨迹***到所述媒体文件内部的元数据框中。

根据本公开的另一实施例,所述划分包括将单个3D对象划分成第一子对象和第二子对象,并且

媒体文件的生成包括:将第一子对象的每个分量的比特流和第二子对象的每个分量的比特流生成为每个分量的单个比特流;和将第一子对象的每个分量的轨迹和第二子对象的每个分量的轨迹生成为每个分量的单个轨迹。

根据本公开的另一实施例,划分包括将单个3D对象划分成第一子对象和第二子对象,并且媒体文件的生成包括:将第一子对象的每个分量的比特流和第二子对象的每个分量的比特流生成为每个分量的分离的比特流;和将第一子对象的每个分量的轨迹和第二子对象的每个分量的轨迹生成为每个分量的分离的轨迹。

根据本公开的另一实施例,所述媒体文件是以基于国际标准化组织(ISO)的媒体文件格式(ISOBMFF)为基础的文件,所述媒体数据框是mdat框,并且所述元数据框是moov框。

根据本公开的另一实施例,所述3D视频内容包括点云,所述2D视频帧包括表示关于包括在所述点云中的点的位置信息的几何图像、表示关于所述点的颜色信息的纹理图像、和表示关于在包括在所述2D视频帧中的2D图像的像素当中具有关于所述点云的信息的像素的信息的占用图图像,并且与补片信息相对应的元数据包括辅助数据,所述辅助数据包括关于从所述点云获得的补片的信息。

为了解决上述问题,根据本公开的实施例,一种接收3D视频内容的方法包括:处理接收到的数据包以恢复媒体文件;解析所述媒体文件以提取编码的2D视频帧和元数据;解码所述编码的2D视频帧;和基于所述2D视频帧和所述元数据重构并输出3D视频内容,并且所述媒体文件的解析包括获得关于3D空间的信息、关于放置在所述3D空间中的至少一个3D对象的放置信息、关于所述至少一个3D对象的划分信息、和关于所述2D视频帧中与所划分的至少一个3D对象相对应的数据的位置信息。

为了解决上述问题,根据本公开的实施例的一种用于发送3D视频内容的装置包括:处理器,被配置为生成通过压缩3D视频内容获得的2D视频帧和将2D视频帧重构为3D内容所需的元数据、编码所述2D视频帧、以及生成包括编码的2D视频帧和元数据的媒体文件;以及通信器,被配置为发送所述媒体文件,其中所述元数据包括关于3D空间的信息、关于将被放置在3D空间中的至少一个3D对象的放置信息、以及关于所述至少一个3D对象的划分信息。

为了解决上述问题,根据本公开的实施例的一种用于接收3D视频内容的装置包括:通信器,被配置为接收打包的(packetized)数据;和至少一个处理器,被配置为:处理打包的数据以恢复媒体文件;以及解析媒体文件以提取编码的2D视频帧和元数据,解码所述编码的2D视频帧,并基于所述2D视频帧和所述元数据重构并输出3D视频内容,并且该处理器还被配置为获得关于3D空间的信息、关于放置在3D空间中的至少一个3D对象的放置信息、关于所述至少一个3D对象的划分信息、以及关于在所述2D视频帧中与所划分的至少一个3D对象相对应的数据的位置信息。

根据本公开的实施例,提供了一种其上记录有用于执行上述方法的程序的计算机可读记录介质。

此外,还提供了用于实施本公开的另一种方法和另一种系统,以及其上记录有用于执行该方法的计算机程序的计算机可读记录介质。

有益效果

根据本公开,通过将三维(3D)内容划分并处理成空间部分或时间部分,可以减少系统负载并提高系统操作效率。

附图说明

图1示出了根据本公开的实施例的用于压缩和发送三维(3D)视频内容的装置的操作。

图2示出了根据本公开的实施例的用于接收和输出3D视频内容的接收装置的操作。

图3示出了根据本公开的实施例的在6自由度(6DoF)内容中定义的6DoF空间。

图4示出了根据本公开的实施例的在6DoF空间中定义的6DoF对象。

图5是用于描述根据本公开的实施例的在6DoF空间中放置6DoF对象的过程的图。

图6是示出根据本公开的实施例的划分3D点云对象并包括与所划分的对象相对应的基于视频的点云压缩(video-based point cloud compression,V-PCC)数据的补片(patch)的图。

图7示出了根据本公开的实施例的发送3D视频内容的方法的流程图。

图8示出了根据本公开的实施例的V-PCC模块的输出。

图9示出了根据本公开的实施例的点云访问单元。

图10示出了根据本公开的实施例的基于国际标准化组织(InternationalOrganization for Standardization,ISO)的媒体文件格式(ISO media file format,ISOBMFF)文件结构。

图11示出了根据本公开的实施例的用于将V-PCC内容存储在ISOBMFF文件中的轨迹替代和分组。

图12示出了根据本公开的实施例的ISOBMFF V-PCC容器结构。

图13示出了根据本公开的实施例的轨迹和媒体数据,其被包括在ISOBMFF文件中的电影框和媒体数据框中。

图14示出了根据本公开的实施例的、在点云内容被划分时将ISOBMFF文件中的每个子体积(sub-volume)的数据封装到单个轨迹中的方法。

图15示出了根据本公开的另一实施例的、在点云内容被划分时将ISOBMFF文件中的每个子体积的数据封装到分离的轨迹中的方法。

图16示出了根据本公开的实施例的封装的点云内容的分量。

图17示出了根据本公开的另一实施例的封装的点云内容的分量。

图18示出了根据本公开的实施例的用于发送3D内容的装置的框图。

图19示出了根据本公开的实施例的用于接收3D内容的装置的框图。

具体实施方式

用于实现上述目的的本公开的代表性配置如下。

为了解决上述问题,根据本公开的实施例,一种发送三维(3D)视频内容的方法包括:定义3D空间;获得关于将被放置在3D空间中的至少一个3D对象的放置信息;划分该至少一个3D对象;将包括所划分的至少一个3D对象的3D视频内容压缩成二维(2D)视频帧;从该2D视频帧获得关于与所划分的至少一个3D对象相对应的压缩数据的位置信息;对该2D视频帧进行编码;生成包括编码的2D视频帧和位置信息的媒体文件;以及发送媒体文件。

实施方式

在下文中,将参考附图详细描述本公开的实施例。

在描述本公开的实施例时,将不描述本公开所属领域中众所周知并且不与本公开直接相关联的技术内容。通过省略不必要的描述,本公开被更清楚地传达,而不会模糊本公开的主题。

出于同样的原因,附图中的一些元件被放大、省略、或示意性地示出。此外,每个元件的大小并不反映实际大小。在每个附图中,相同的附图标记被分配给相同或对应的元件。

从结合附图详细描述的本公开的以下实施例中,本公开的优点和特征以及实现它们的方法将变得更加明显。然而,应当理解,本公开不限于本公开的以下实施例,并且可以进行各种修改,而不脱离本公开的范围。提供在本文阐述的本公开的实施例,使得本公开将是彻底和完整的,并且将向本领域普通技术人员充分传达本公开的构思。本公开应由所附权利要求来限定。在整个说明书中,相同的附图标记表示相同的元件。

应当理解,流程图的各个块以及流程图的组合可以由计算机程序指令来执行。因为这些计算机程序指令可以嵌入到通用计算机、专用计算机、或其他可编程数据处理装置的处理器中,所以通过计算机或其他可编程数据处理装置的处理器执行的指令生成用于执行(多个)流程图块中描述的功能的模块。由于这些计算机程序指令也可以存储在可以指导计算机或其他可编程数据处理装置以特定方式实施功能的计算机可用或计算机可读存储器中,所以存储在计算机可用或计算机可读存储器中的指令也能够产生包含用于执行(多个)流程图块中描述的功能的指令模块的制品。由于计算机程序指令也可以安装在计算机或其他可编程数据处理装置上,通过在计算机或其他可编程数据处理装置上执行一系列操作生成计算机实施的过程来执行计算机或其他可编程数据处理装置的指令可以提供用于执行(多个)流程图块中描述的功能的操作。

此外,每个块可以代表包括用于执行(多个)指定逻辑功能的一个或多个可执行指令的模块、段、或代码的一部分。还应该注意的是,在一些替代实施方式中,块中标注的功能可能会无序发生。例如,根据所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。

本文使用的术语“模块”是指软件元件或硬件元件,诸如现场可编程门阵列(fieldprogrammable gate array,FPGA)或专用集成电路(application specific integratedcircuit,ASIC),并且术语“模块”执行某些功能。然而,术语“模块”不限于软件或硬件。术语“模块”可以被配置在可寻址存储介质中,或者可以被配置成再现一个或多个处理器。因此,例如,术语“模块”包括诸如软件元素、面向对象的软件元素、类元素、和任务元素的元素;过程;函数;属性;过程;子程序;程序代码段;驱动器;固件;微代码;电路;数据;数据库;数据结构;表格;数组;和变量。在元素和“模块”中提供的功能可以与更少的元素和“模块”结合,或者可以与附加的元素和“模块”分离。此外,元素和“模块”可以被实施为再现设备中的一个或多个中央处理单元(central processing units,CPU)或安全多媒体卡。此外,在本公开的实施例中,“模块”可以包括一个或多个处理器。

在下文中,将参考附图详细描述本公开。

6自由度(6DoF)内容是指基于关于虚拟或真实空间中每个对象的位置的信息以及与媒体数据中的点相关联的颜色信息来生成并发送用于表示媒体数据中的点的附加信息的内容。

6DoF相机或内容服务器可以通过各种方法生成或存储作为6DoF媒体数据和元数据存储的6DoF内容。代表性的6DoF内容生成方法如下。

在通过使用视频发送媒体数据信息的点云压缩(PCC)方法中,每单位时间将对象投影到虚拟平面上以形成图像,并且将时间上连续的图像存储为视频。生成包括关于投影到每个平面上的点的颜色信息的撷取(fetch)视频和包括关于投影的点的位置信息的深度视频,并且通过使用通用视频编码器来压缩关于撷取视频和深度视频的信息。另外,还生成用于表示虚拟空间中的撷取视频和深度视频的附加信息(场景描述、占用信息等)。

作为存储6DoF内容的另一方法,存在以二进制或美国信息交换标准(AmericanStandard for Information Interchange,ASCII)格式(ply、obj等)发送关于对象的位置或颜色信息的方法。三维(3D)空间中的对象包括作为关于点的几何学信息的几何信息、作为关于点的颜色信息的RGB信息、构成通过连接对象的点而形成的平面的材料信息、和包括多条几何信息以及关于与周围环境的关系的信息之间的关于对象在3D空间中的位置的信息的纹理信息,并且在存储内容时基于多条信息来生成和存储内容。

当以上述方式生成的6DoF内容经由网络被发送时,构成和表示媒体的媒体数据(诸如关于构成对象的点的位置和颜色信息、关于这些点之间的连接的信息、以及表示虚拟空间大小的元数据、关于对象的位置信息等)必须一起被发送。

6DoF内容是这样的内容,其中内容的消费者能够自由地改变他或她的视角,以便看到场景的不同部分,并且用户的视野可以根据场景中用户的位置和用户在该位置的方向而改变。为了让观看者在6DoF内容中将视野自由移动到6个自由度,需要体积多媒体的概念。

点云技术是表示基于体积的6DoF内容的最常见技术。与传统的二维(two-dimensional,2D)视频不同(在传统的2D视频中,实际数据是通过使用2D传感器以像素为单位捕获的),3D空间中的多个点可以由点云来表示。

通常,点云数据的单个点可以包括深度信息和纹理信息。深度信息是表示空间中的点的3D位置的坐标,并且可以由(x,y,z)表示。纹理信息是表示点的颜色纹理的信息,并且可以由(r,g,b)表示。

根据捕获方法和用例,关于表示点的其他属性的信息可以被包括在点云数据中。

目前,通过使用在MPEG中开发的视频压缩技术(高级视频编码(advanced videocoding,AVC)、高效视频编码(high efficiency video coding,HEVC)编解码器等)来压缩2D视频,并且由于表示高质量视频所要求的数据量不断增加,所以要求更高的压缩效率。点云数据也需要被压缩,以便用作6DoF内容数据类型。

作为点云数据压缩技术,基于视频的点云压缩(V-PCC)是由MPEG开发的。2D视频编解码器用于压缩3D点云数据。

将压缩的点云数据封装到单个文件中(本地或经由网络)的方法由MPEG的系统组来执行,并且具体地,可以通过将V-PCC存储在ISOBMFF文件中来执行。

在本说明书中,6DoF被用作和描述为具有大容量的3D视频内容的示例。然而,本公开中描述的技术不限于6DoF内容,并且可以应用于各种类型的3D视频内容。

图1示出了根据本公开的实施例的用于压缩和发送3D视频内容的装置的操作。

参考图1,根据本公开实施例的传输装置10的媒体源11可以获取并输出预先直接捕获或存储的一个或多个3D对象。3D对象可以是例如包括点云数据的ply文件。点云是指3D空间中的被表示为点(或体素)的集合的图像数据,其中每个点(或体素)具有颜色值。3D对象可以是包括多个点云帧的3D视频内容。

根据本公开实施例的传输装置10的预处理器12可以执行预处理,以利用2D视频编码器压缩3D对象。预处理器12可以从3D对象输出要用作视频编码器13的输入的视频帧和在接收装置中重构3D对象所需的元数据。

预处理器12可以通过将包括在3D对象中的3D图像数据投影到2D平面上来生成至少一个2D图像。根据该实施例的预处理器12可以执行投影,以将3D空间中的全向图像投影到具有一定格式的矩形图片上。预处理器12可以从投影的2D图像生成2D视频帧。

例如,预处理器12可以通过将3D点云中包括的多个点投影到2D平面上来生成补片。包括在3D点云中的点可以基于该点的法向量的方向、该点的位置、和该点的颜色中的至少一个来被分组。预处理器12可以通过将分组的点投影到平面上来生成补片。预处理器12可以通过对具有高相似性的补片进行分类并收集和打包分类的补片来生成几何图像、纹理图像、和占用图图像。几何图像可以表示关于包括在点云中的点的位置信息,并且纹理图像可以表示关于点的颜色信息。占用图图像可以表示关于几何图像和纹理图像的像素当中具有关于点云的信息的像素的信息。

预处理器12可以包括几何图像、纹理图像、和占用图图像的视频帧以及在接收装置中重构3D对象所需的元数据。例如,预处理器12可以输出辅助信息作为元数据。

接下来,根据本公开实施例的传输装置10可以通过使用视频编码器13和元数据编码器14来压缩视频帧和元数据。根据实施方法,传输装置10可以包括两个或更多个视频编码器13,或者可以不包括元数据编码器14。

根据该实施例的传输装置10的ISOBMFF封装器15可以将由视频编码器13和元数据编码器14压缩的视频数据和元数据封装到媒体文件中。例如,ISOBMFF封装器15可以将压缩的视频数据和元数据封装到ISOBMFF媒体文件中。

根据该实施例的传输装置10的打包器16可以以数据包(packet)为单位打包和发送封装的媒体文件。例如,打包器16可以发送包括根据MPEG媒体传输(MPEG mediatransport,MMT)方案生成的数据包的比特流。

根据本公开实施例的传输装置10可以通过使用一个或多个视频编解码器来压缩视频帧,以便向具有各种容量(capacity)的接收装置提供相同的内容。在这种情况下,单个ISOBMFF文件可以仅包括通过使用单个视频编解码器生成的视频数据,或者可以包括通过使用多个视频编解码器生成的所有视频数据。

当单个ISOBMFF分组包括通过使用多个视频编解码器生成的所有视频数据时,接收装置可以选择视频编解码器并选择性地解码视频数据。作为另一示例,位于传输装置和接收装置之间的网络中的处理实体可以根据来自接收装置的请求或预共享偏好信息修改文件以仅包括通过使用单个视频编解码器生成的视频数据,然后发送修改后的文件。

图2示出了根据本公开的实施例的用于接收和输出3D视频内容的接收装置的操作。

根据实施例的接收装置20的拆包器21可以处理接收到的数据包以恢复媒体文件。可选地,拆包器21可以按照接收的顺序处理接收的数据包,而不用等待构成媒体文件的所有数据包。例如,拆包器21可以处理接收到的数据包,以恢复ISOBMFF文件。

根据本公开的实施例的接收装置20的ISOBMFF解析器22可以处理接收的媒体文件的全部或部分,以提取编码的视频数据和元数据。ISOBMFF解析器22可以从接收到的ISOBMFF文件中提取编码的视频数据和元数据。

根据本公开实施例的接收装置20可以通过使用视频解码器23和元数据解码器24来解码编码的视频数据和元数据。

根据本公开实施例的接收装置20的重构器25可以通过使用解码的视频数据和元数据来重构3D对象。根据本公开实施例的接收装置20还可以包括用于提高图像质量的后处理器。

例如,视频数据可以包括纹理图像、几何图像、和占用图图像,并且元数据可以包括包含补片信息的辅助信息。根据实施例的重构器25可以通过使用几何图像、占用图图像、和辅助信息来重构点的几何结构。重构器25可以基于重构的几何结构和纹理图像重构点云。

根据本公开实施例的接收装置20的渲染器26可以通过渲染重构的3D对象来在屏幕上显示3D图像。

如上参考图1所述,为了发送3D视频内容,根据本公开实施例的传输装置10可以将3D视频内容压缩成2D视频数据,并且根据一定的媒体文件格式封装压缩的视频数据。在这种情况下,根据本公开的实施例,压缩的点云可以被封装在ISOBMFF文件中,并且然后被发送。

V-PCC流包括V-PCC分量,这些分量包含用于几何结构、纹理、和占用图的2D视频压缩流。ISOBMFF容器包括以下轨迹。

定时(timed)元数据轨迹,包含V-PCC定义的元数据(参数集和辅助信息)

至少一个受限视频方案轨迹,包含用于几何数据的视频编码的基本流

至少一个受限视频方案轨迹,包含用于纹理数据的视频编码的基本流

至少一个受限视频方案轨迹,包含用于占用图数据的视频编码的基本流

分量轨迹中的基本流之间的同步由ISOBMFF轨迹定时结构(stt、ctt和cslg,或电影片段中的等效机制)来处理。与定时元数据轨迹一样,包括跨越不同分量轨迹的单个点云帧的样本必须具有相同的解码时间。用于这样的样本的V-PCC参数集必须具有等于或早于帧解码时间的解码时间。

因为点云是基于体积的,所以即使有压缩,表示点云所需的数据大小也很大。因此,这种点云数据的部分空间或时间访问是可以支持点云6DoF内容传送的重要工具。

可以对体积点云进行空间划分,以便对内容进行空间访问和传送。

从用例的角度来看,用户消费的6DoF体验可以包括多个点云内容,或者来自这些内容的部分。因此,对6DoF内容的选择性访问(识别和检索内容数据的特定部分的过程)是6DoF沉浸式媒体所要求的重要功能。

被压缩为V-PCC数据的点云对象包括由用于编码点云数据的多个比特定义的3D边界框。为了允许对V-PCC数据的6DoF访问(空间随机访问),3D边界框可以被划分成更小的3D块或网格。每个3D块内的点云数据可以用2D V-PCC编码数据来声明。

图3示出了根据本公开的实施例的在6DoF内容中定义的6DoF空间。

6DoF空间可以由可以被定义用于包含各种6DoF对象的体积长方体、体积球体、或体积几何结构来表示。

参考图3,6DoF空间300由具有高度、宽度、和深度的体积长方体表示。

对于由体积长方体表示的6DoF空间,元数据可用于定义长方体的三个维度中的三个长度(宽度、高度和深度)。用于定义长方体的尺寸的单位可以是绝对单位(毫米、厘米、米、公里等)或由6DoF空间自身定义和引用的其他单位。在6DoF空间中使用的坐标系的参考点可以是长方体的每个角点(corner point)或长方体内部的空间中心。

[表1]

Figure BDA0002683433070000111

表1是用于定义6DoF空间的6DoF空间元数据的语法的示例,该6DoF空间由3D长方体表示并且其中放置了6DoF内容。

space_box_x_width定义长方体6DoF空间的宽度(x方向),space_box_y_height定义长方体6DoF空间的高度(y方向),并且space_box_z_depth定义长方体6DoF空间的深度(z方向)。

space_units定义6DoF空间中使用的单位和6DoF空间的大小。根据实施例,space_units的值为0的情况可以表示毫米,space_units的值为1的情况可以表示厘米,space_units的值为2的情况可以表示米,space_units的值为3的情况可以表示公里,space_units的值为4的情况可以表示由6DoF空间定义的内部引用,并且space_units的值为其他值的情况可以表示英制单位或任何其他种类的单位。

space_origin定义了在6DoF空间中使用的笛卡尔坐标的原点。根据实施例,space_origin的值为0到7的情况可以分别表示长方体的角点,并且space_origin的值为8的情况可以表示长方体内部的精确空间中心。

图4示出了根据本公开的实施例的在6DoF空间中定义的6DoF对象。

参考图4,6DoF空间400可以包括三个6DoF对象410、420和430。在这种情况下,6DoF对象不限于点云数据,并且可以包括各种媒体类型。

当6DoF对象被定义时,其中6DoF对象被放置在6DoF空间中以便组成6DoF内容,并且场景必须被定义。该过程还可以包括定义对象在空间中的放置、缩放对象、旋转对象等的机制。

6DoF空间可以包括将在6DoF空间内部放置和渲染的至少一个6DoF对象。放置在6DoF空间内部的6DoF对象可以由各种媒体类型来表示,诸如点云数据、360视频数据、或2D视频数据。在点云数据的情况下,表示6DoF对象的每个点云数据可以由包括所有点云的局部边界框来定义。

局部边界框的大小由x、y和z定义,它们分别是三个轴上的宽度、高度和深度。用于定义局部边界框的宽度、高度和深度的单位与用于V-PCC中的点云的单位相同。

定义了边界框放置原点和6DoF放置原点。边界框中使用的坐标系的参考原点可以是边界框的八个角点中的任何一个、长方体内部的精确中心、或边界框内部的任何一个点。

图5是用于描述根据本公开的实施例的在6DoF空间中放置6DoF对象的过程的图。

参考图5,由边界框表示的6DoF对象520可以被放置在6DoF空间510中。

当定义点云6DoF对象的边界框时,定义边界框放置原点。同样,定义了6DoF空间放置原点。

为了将6DoF对象520放置在6DoF空间510中,边界框放置原点521和6DoF空间放置原点511必须在6DoF空间中彼此匹配。可以通过匹配用于6DoF空间和边界框的参考坐标系的方向来定义6DoF空间中的边界框的默认方向。

从这个默认方向,可以定义放置在6DoF空间内部的边界框(以及边界框内部的点云数据)的旋转。首先,针对旋转,定义边界框域中的静态点和围绕三个轴中的每一个轴的对应点的旋转角度。

旋转的顺序和姿态必须被定义为围绕x轴顺时针旋转(当向下看向正方向时)、围绕y轴顺时针旋转(当向下看向正方向时)、以及围绕z轴顺时针旋转(当向下看向正方向时)。

为了将边界框放置在6DoF空间中,必须针对x、y和z轴中的每一个轴定义边界框(以及边界框内部的点云数据)的缩放因子。

[表2]

表2是用于描述6DoF空间中对应的6DoF内容(对象)的渲染位置的6DoF放置元数据的语法的示例。

content_type定义表示6DoF对象的内容媒体类型。根据实施例,content_type的值为0的情况可以表示点云数据,content_type的值为1的情况可以表示360度视频数据,content_type的值为2的情况可以表示2D视频数据,并且剩余值可以保持保留以用于诸如光场数据的其他数据类型。

bounding_box_x_width、bounding_box_y_height、和bounding_box_z_depth分别以与用于由V-PCC表示的点云中使用的单位相同的单位来定义边界框的宽度(x方向)、高度(y方向)、和深度(z方向)。

box_placement_origin_x、box_placement_origin_y、和box_placement_origin_z分别定义表示边界框域中的边界框放置原点的边界框的点。

scale_x、scale_y、和scale_z定义将包括6DoF对象的边界框放置在6DoF空间中时(在边界框的x、y、和z方向上)使用的缩放因子。

rotation_point_x、rotation_point_y、和rotation_point_z定义了当将边界框放置在6DoF空间中时围绕其对边界框应用一定的旋转的点在边界框域中的x、y、和z坐标。

rotation_angle_x、rotation_angle_y、和rotation_angle_z分别按x、y、和z轴的顺序定义了当在正方向观察时的顺时针旋转。

space_placement_origin_x、space_placement_origin_y、和space_placement_origin_z定义了6DoF空间中的、边界框放置原点在6DoF域中被放置在其上的点。在这种情况下,边界框放置原点和6DoF空间放置原点被放置在同一位置上。

如上参考图5所述,当边界框被放置在6DoF空间中时,可以定义通过将由单个点云(单个6DoF对象)表示的空间划分成3D分区或块来启用部分传送的机制。

由于用于点云的数据的(大的)大小,即使是由单个点云表示的单个6DoF对象(其通过使用V-PCC编码并通过使用在ISOBAMFF存储机制中的V-PCC的存储装置被封装到ISOBAMFF文件中)也可能包括非常大量的数据,或者在6DoF空间中可能具有在物理上的大的体积。在这种情况下,启用点云数据的部分传送可能是有利的。

为了启用点云数据的部分传送,边界框可以被划分为更小单位的3D块或网格,如当通过使用V-PCC对点云数据进行编码时所定义的。

根据本公开的实施例,为了定义3D块,针对每个轴确定边界框的子划分的数量。例如,边界框的总宽度可以划分为四个子宽度。接下来,定义每个子块的宽度、高度、和深度。在这种情况下,每个子块可以具有不同的大小。

单个块或网格的大小可以被单独定义,但是块不能彼此重叠,并且子块的宽度之和必须等于边界框的宽度。这同样适用于子块的高度或深度。

用于V-PCC的6DoF访问元数据被定义,以便描述V-PCC边界框(PCC块)内的特定空间与其等效数据位置之间的对应关系。

[表3]

表3是PCCBlockStruct(PCC框结构)的语法的示例,其中PCCBlockStruct定义了一种在空间上将V-PCC边界框划分为用于数据访问的块的方法。

bounding_box_x_width、bounding_box_y_height、和bounding_box_z_depth以由V-PCC中的点云表示的整数点为单位定义边界框的宽度(x轴长度)、高度(y轴长度)、和深度(z轴长度)。subdivisions_x、subdivisions_y、和subdivisions_z是表示在每个轴中划分的子划分的数量的整数。subdivision_width、subdivision_height、和subdivision_depth以与边界框相同的单位定义特定PCC块的宽度、高度、和深度。

当将边界框划分为子块的机制被确定并且边界框被划分时,定义用于V-PCC的声明元数据,该声明元数据标识2D V-PCC压缩域中的对应压缩数据的位置并且描述该位置。

当V-PCC压缩点云的边界框被划分成子块时,在PCC块内携带数据的压缩数据的声明可用于V-PCC数据的部分传送和访问。根据V-PCC数据是如何编码和封装的,可以以不同的级别定义PCC块和V-PCC数据位置之间的对应关系。在最精细的级别上,PCC块可以对应于V-PCC子帧数据(例如,运动约束贴片集(motion constrained tile set,MCTS)、宏块/编码树单元、或像素组),并且其他PCC块可以简单地对应于V-PCC分量轨迹的特定集合或完整的ISOBMFF文件。

根据本公开的实施例,以下元数据可以用于定义与V-PCC子帧数据的表示对应关系。对于每个PCC块,包括对应数据的区域的数量被定义和声明,因为用于单个PCC块的数据可能不都包括在2D帧中的单个连续区域内。

可以如下定义每个区域:

矩形像素区域声明在这种情况下,对应的区域可以由区域的宽度和高度以及与矩形区域左上角相对应的角点的坐标来定义。

由HEVC中定义的索引ID标识的MCTS

由切片分段地址标识的切片分段

由编码树单元(coding tree unit,CTU)计数标识的CTU

当声明数据在V-PCC文件中可用时,它可以进一步暴露在高级别下,以用于MMT或DASH

该声明数据可以如下使用:

必须渲染6DoF内容的客户端实体识别要向用户显示的6DoF空间的一部分。

这是作为请求被传送给服务器的(当服务器被驱动时),或者这被用作下一个操作的要求(当客户端被驱动时)。

服务器或客户端(取决于传送模式)解析6DoF放置元数据,识别显示和渲染所要求的空间所需的6DoF对象。

当空间包括多个完整的6DoF对象时,撷取V-PCC压缩的点云6DoF作为V-PCC文件。

当空间仅包括由V-PCC文件PCC 6DoF对象表示的一部分时,子划分元数据被解析,并且与该空间相对应的(多个)子划分PCC块被识别。

然后,当解析声明元数据时,将所识别的(多个)PCC块用作输入,以便识别与(多个)PCC块相对应的编码的V-PCC数据的数据位置。

然后,客户端撷取、传送、访问、解码、和渲染V-PCC数据。

用于V-PCC的6DoF访问元数据可以定义如下:

[表4]

Figure BDA0002683433070000171

表4是针对MCTS、切片分段、或CTU的VPCCBlockDeclarationStruct(VPCC框声明结构)的语法的示例。

subdivisions_x、subdivisions_y和subdivisions_z是指定每个轴被划分成的子划分块的数量的整数。

subdivision_width、subdivision_height、和subdivision_depth以与边界框相同的单位指定特定PCC块的宽度、高度、和深度。

num_regions指定2D帧区域的数量,2D帧区域包括与特定PCC块体积相对应的V-PCC补片数据。当该值为0时,这指示没有与特定PCC块体积相对应的V-PCC数据。

declaration_type定义了用于2D帧区域的声明的粒度。

[表5]

声明类型
0x00 矩形像素区域
0x01 运动约束贴片集
0x02 切片分段
0x03 编码树单元
0x04~ 保留

表5示出了根据declaration_type的值的声明类型。

由于上述所有6DoF元数据都随时间而变化,所以6DoF元数据可以被包括在ISOBMFF文件的V-PCC元数据轨迹中。或者,可以定义分离的6DoF容器定时元数据轨迹来包括元数据。

为了通过使用现有的视频编解码器压缩点云数据,必须对原始点云数据进行预处理。

点云数据可以包括点在3D空间中的位置,该位置由(x,y,z)坐标、关于在对应位置的点的纹理的信息(r,g,b)、和可以包括在每个点中的可选数据来指定。因此,能够描述单个点云的最小数据集是(x,y,z,r,g,b)。

点云中所有点的累积数据以多边形文件格式(.ply)存储,该ply文件格式简单地列出文件中每个点的数据集(没有重新排列或压缩)。

由于通用视频编解码器在编码过程期间仅支持三个输入(r,g,b),因此点云数据分量被分离成传送给每个编码器的分量。

图6是示出根据本公开的实施例的划分3D点云对象并包括与所划分的对象相对应的V-PCC数据的补片的图。

因为点云是基于体积的,所以即使有压缩,表示点云所要求的数据大小也很大。因此,这种点云数据的部分空间访问是可用于支持点云6DoF内容的传送的重要工具。

可以对体积点云进行空间划分,以便对内容进行空间访问和传送。

从用例的角度来看,用户消费的6DoF体验可以包括多个点云内容,或者来自这些内容的部分。因此,对6DoF内容的选择性访问(识别和检索内容数据的特定部分的过程)是6DoF沉浸式媒体所要求的重要功能。

被压缩为V-PCC的点云对象包括由被用于编码点云数据的多个比特定义的3D边界框。为了允许对V-PCC数据的6DoF访问(空间随机访问),3D边界框可以被划分成更小的3D块或网格。每个3D块内的点云数据可以用2D V-PCC编码数据来声明。

参考图6,点云对象可以由3D边界框610表示,并且3D边界框可以被划分成更小的子块611。通过对边界框610进行视频编码获得的2D补片620可以包括子块611的部分621、622和623。

在图6中,假设子块611与点云对象(人)的右臂相对应,并且用户从对象的右侧看向对象的右臂。在这种情况下,考虑视口,当通过在向右的方向上投影右臂而被观看时,在2D补片620中与子块611的视口相对应的数据区域与2D图像的部分621、622和623相对应。

为了描述这种相关性,提出了6DoF声明元数据。为了部分地访问和传送V-PCC内容,必须引入用于携带空间对应信息的V-PCC数据的6DoF访问元数据。上面已经描述了6DoF声明元数据和6DoF访问元数据的细节。

图7示出了根据本公开的实施例的发送3D视频内容的方法的流程图。

参考图7,根据本公开的实施例,发送3D视频内容的方法可以包括以下操作。在这种情况下,3D视频内容可以是6DoF内容。此外,6DoF对象不限于点云数据,并且可以包括各种媒体类型。

在操作710,定义用于放置3D对象的3D空间。3D空间可以由长方体、球体、或其他几何结构来表示。当3D空间由长方体表示时,3D空间可以被定义为三个表面的长度和长度单位,并且放置的参考点可以是长方体的每个角点或者长方体内部的空间中心。

在操作720中,获得关于将被放置在3D空间中的至少一个3D对象的放置信息。当定义3D对象时,必须定义在3D空间中将放置3D对象的位置。关于3D对象的放置信息不仅可以包括关于对象的放置的信息,还可以包括缩放信息和旋转信息。

在点云数据的情况下,6DoF对象可以由局部边界框定义。可以通过匹配边界框放置原点和3D空间放置原点来放置3D对象。

在操作730中,3D对象被划分。3D空间可以被划分,以便对每个部分应用部分传送或分离的编码方法。

在点云数据的情况下,可以定义针对边界框的每个轴划分的子块的数量和长度,并且针对每个轴的子块的长度的总和必须等于边界框的每个轴的长度。

在操作740,包括划分的至少一个3D对象的3D视频内容被压缩成2D帧。

可以通过使用V-PCC来压缩点云,并且使用V-PCC压缩的点云对象包括由用于编码点云数据的比特定义的3D边界框和3D边界框的子块。

在操作750中,从2D视频帧获得关于与划分的3D对象相对应的压缩数据的位置信息。

在V-PCC中,定义了携带用于内容的部分访问和传送的空间对应信息的6DoF访问元数据。

在操作760,压缩的2D视频帧被编码。

在V-PCC中,每个3D块内部的点云数据用2D V-PCC编码数据来声明,并通过使用现有的视频编码器(诸如HEVC)进行编码。

在操作770,生成包括编码的2D视频帧和关于压缩数据的位置信息的媒体文件。在操作780,发送生成的媒体文件。

媒体文件的生成包括将数据封装到媒体文件中。媒体文件的发送包括打包并发送封装的媒体文件。

图8示出了根据本公开的实施例的V-PCC模块的输出。

参考图8,V-PCC模块的输出800可以包括流头部810和至少一个帧组(group offrame,GOF)流820。每个GOF包括32帧点云,即连续时间间隔上的点云的实例。此时,可以根据捕获过程任意确定精确的时间间隔。

每个GOF流可以包括GOF头部821、GOF几何视频流822、GOF辅助信息和占用图823、以及GOF纹理视频流824。

GOF头部821包括封装的GOF结构元数据。GOF几何视频流822包括点云数据的(x,y,z)分量。GOF纹理视频流823包括点云数据的(r,g,b)分量。

为了将包括几何流822、GOF纹理视频流824、以及GOF辅助信息和占用图823的GOF流820进行视频压缩,要求用于通过2D信息的场景来表示3D信息的预处理和后处理。

不像整体.ply文件被传送并且点云数据被渲染的技术那样,沉浸式媒体的动态点云必须支持点云媒体的时间随机访问和传送、点云媒体的空间随机访问和传送、和点云媒体的质量适配。

对于动态点云媒体,每个点云帧包括对点云帧的解码来说都必需的分量,并且每个分量可以以不同于其他分量的方式被编码、封装和传送。因此,必须新定义点云访问单元(access unit,AU)。“访问单元”是指最小的数据单元,它在系统层将数据属性化,以便进行压缩的同步。

图9示出了根据本公开的实施例的点云访问单元。

参考图9,点云访问单元900可以包括用于深度信息的访问单元(D01和D11)911和912、用于纹理信息的访问单元(T01和T11)921和922、用于占用图信息的访问单元930、和用于辅助补片信息的访问单元940。在这种情况下,用于深度信息的访问单元(D01和D11)911和912表示关于单个点云帧的深度信息,并且访问单元(T01和T11)921和922表示关于单个点云帧的深度信息。占用信息和补片信息可以被视为点云访问单元的解码所要求的基本元数据。

根据另一实施例,可以包括单个D帧而不是用于深度信息的访问单元(D01和D11)911和912,并且可以包括单个T帧而不是访问单元(T01和T11)921和922。根据另一实施例,可以通过使用除视频编码器之外的其他编码器来编码占用信息和辅助补片信息。

视频编码器(诸如HEVC)的使用可以取决于编码配置在相同流的视频帧之间(例如,在D01和D11之间)引入时间依赖性,该编码配置对于点云访问单元的每个分量可以是不同的。根据点云访问单元的每个分量,每个分量的时间频率或变化也可以不同,并且可以生成不包括视频帧或不包括占用/辅助补片信息的点云访问单元。

可以将压缩后的点云数据封装在ISOBMFF文件中并将其传送。ISOBMFF存储媒体样本,并针对每个相应样本定义用于呈现的元数据以及用于其他用途的其他元数据。

实际的媒体数据存储在媒体数据框(mdat)中,并且与媒体数据相关联的所有元数据都包括在电影框(moov)中。存在于样本描述框(stsd)内的样本条目类型字段定义了轨迹类型(视频、音频、元、或提示轨迹)。为用于携带点云媒体的每个分量的轨迹的点云压缩媒体数据定义新的媒体处置器(handler)类型和编码样本条目类型。

可以通过使用以下五种方法在ISOBMFF中定义PCC媒体数据的信令:

1.对点云媒体类型、样本条目、和多个轨迹中携带的分量的定义

2.对点云媒体类型和样本条目的定义、媒体类型编码格式中的子样本预定义、和作为点云媒体的分离的分量的子样本

3.各种点云媒体分量的样本分组

4.使用用于基于HEVC的分量的辅助视频处置器以及用于其他分量的定时元数据或样本辅助信息的受限样本条目方案

5.对点云媒体类型和样本条目的定义,对其而言轨迹中的这些样本包括点云媒体的非视频编码分量,包括对包括视频编码分量的其他轨迹的引用。此时,视频编码轨迹使用具有所定义的新的方案类型“pccv”的受限样本条目方案。

为了使用上述方法,必须针对点云媒体新定义以下内容。

-点云媒体处置器和类型

-点云样本条目和类型(对于当单个点云样本仅由引用其他轨迹的一个分量组成时以及当单个点云样本由同一样本中的多个分量组成时两者)

-当单个点云样本的定义包括所有点云媒体分量时,需要每个样本的子样本定义和边界

-轨迹级别信息。

图10示出了根据本公开的实施例的ISOBMFF文件结构。

根据实施例,传输装置1000可以生成并发送包括V-PCC内容的ISOBMFF文件。

图10示出了根据本公开的实施例的将点云数据存储在ISOBMFF媒体文件中的示例。在图10中,ISOBMFF的MetaBox(元框)的基于EntityToGroupBox(实体到组框)的轨迹设计被用作与用于PCC流的轨迹设计相关的实施例。

V-PCC比特流是视频流(几何、纹理和占用图)和静态元数据的集合,它们根据相关联的时间可以被独立解码。ISOBMFF已经提供了用于发信号通知流的集合和对其进行封装的成熟的结构。ISOBMFF的轨迹结构适合于定时流(视频和定时元数据)。样本项、样本组、或轨迹级别元数据框适合于静态元数据。该实施例呈现了轨迹级别设计的建议。

参考图10,根据本公开的实施例的V-PCC ISOBMFF文件结构1000可以包括ftyp框1010、meta框1020、moov框1030、和mdat框1040。

ftyp框(文件类型框)1010可以提供关于媒体文件的文件类型或兼容性相关信息。

moov框(电影框)1030可以是包括关于媒体文件的媒体数据的元数据的框。moov框可以用作所有元数据的容器。

mdat框(媒体数据框)1040可以是包含媒体文件的实际媒体数据的框。媒体数据可以包括音频样本和/或视频样本,并且mdat框可以用作存储这些媒体样本的容器。

根据本公开的实施例的传输装置1000在ISOBMFF中携带V-PCC内容时可以在多个轨迹中携带多个V-PCC分量。

在将压缩的V-PCC分量流映射到单独的轨迹时,逻辑轨迹可以被包括在moov框1030中,并且实际的压缩数据可以以样本的形式被包括在mdat框1040中。

meta框(元数据框)1020可以包括一个或多个V-PCC组框,并且V-PCC组框可以提供V-PCC内容的轨迹列表。包括V-PCC内容的ISOBMFF文件必须与V-PCC中定义的铭牌(brand)相区别。必须在具有V-PCC特定分组4CC值的文件级别的EntityToGroupBox(“vpcg”)内对V-PCC内容的轨迹进行分组。在EntityToGroupBox中指定了对V-PCC内容来说是公共的所有元数据。EntityToGroupBox提供了访问V-PCC内容的入口点。

V-PCC元数据可以被包括在定时元数据轨迹中。可以以与视频轨迹的携带相同或相似的方式来处置定时元数据的携带。可以指定定时元数据轨迹“vpcm”的V-PCC特定样本条目类型。

一般而言,V-PCC解决方案所需的元数据可划分为流级别、GOF级别、或每帧可用的信息。因此,可以提出以下ISOBMFF结构。假设V-PCC编码规范定义了以下包括的数据结构。

例如,流级别的元数据必须在全局范围内使用,并且不得因静态特性而随时间改变。因此,流级别的元数据可以存储在文件级别的MetaBox中包括的V-PCC特定EntityToGroupBox“vpcg”中。

下面的表6示出了V-PCC组框的定义。

[表6]

“V-PCC”组框提供了V-PCC内容的轨迹的列表。为了灵活配置支持各种客户端(终端)能力的V-PCC内容,可以引用各种版本的编码数据分量。V-PCC定义的配置文件和层级信息可以被包括在V-PCC组框中。

下面的表7是存储在V-PCC特定EntityToGroupBox“vpcg”中的流级别元数据的语法。

[表7]

Figure BDA0002683433070000242

在表7的语法中,DataType指示表8中列出的所引用的轨迹中的PCC数据的类型。

[表8]

PCC数据类型
0x00 保留用于ISO用途
0x01 元数据轨迹
0x02 几何视频轨迹
0x03 纹理视频轨迹
0x04 占用图视频轨迹
0x04~0x0E 保留用于ISO用途

layer_id指定相关联的轨迹的层标识符。V-PCC定时元数据轨迹的layer_id必须等于0。当按升序排列时,受限视频方案类型的layer_id必须是从0开始的连续整数集。vpcc_profile_tier_level()可以在[V-PCC编码规范]中指定。

每个V-PCC内容的入口点由唯一的定时元数据轨迹表示。由于ISOBMFF文件可以包括多个V-PCC内容,因此多个定时元数据轨迹可以存在于该文件中。V-PCC元数据轨迹必须由媒体处置器类型“vpcc”来标识。VPCCMetadataSampleEntry(VPCC元数据样本条目)必须用于V-PCC元数据轨迹的样本描述。下面将描述VPCCMetadataSampleEntry。

下面的表9示出了V-PCC元数据轨迹的定义。

[表9]

Figure BDA0002683433070000251

PCC元数据轨迹的定时元数据轨迹可以被包括在PCC元数据轨迹的stsd框(样本描述框)中。stsd框可以被包括在stbl框(样本表框)中,stbl框可以被包括在minf框(媒体信息框)中,并且minf框可以被包括在PCC元数据轨迹的mdia框(媒体框)中。

轨迹样本条目类型“vpc1”可以用作定时元数据轨迹的样本条目类型。样本条目类型的样本条目可由下表10指定。

[表10]

V-PCC元数据轨迹中的每个样本对应于单个点云帧。在各种分量轨迹中与该帧相对应的样本具有与V-PCC元数据样本相同的合成时间。每个样本包括参数集信息和辅助信息。

PCC元数据轨迹可以包括样本条目中的静态配置参数(不随时间变化),并且可以包括根据样本格式内的帧而变化的动态辅助信息或动态补片信息。

PCC元数据轨迹的每个样本可以生成单个点云实例(点云“帧”)。一个点云实例的各种分量(辅助信息、占用图、几何、和纹理)的解码时间与PCC元数据样本解码时间(被定义为使用解码时间的样本框“stts”)相同。因此,由PCC元数据样本引用的其他轨迹的所有样本必须具有相同的解码时间戳。

同时,根据是否存在由分离的2D视频编解码器压缩的占用图数据流,每个样本可以包括辅助信息和占用图数据两者,或者仅包括辅助信息。

示例条目类型“pcc1”的示例语法可由下表11指定。

[表11]

Figure BDA0002683433070000261

为了将V-PCC元数据链接到视频轨迹分量,使用了ISOBMFF标准的轨迹引用工具。

三个TrackReferenceTypeBoxes(轨迹引用类型框)被添加到V-PCC元数据轨迹的TrackBox(轨迹框)内的TrackReferenceBox(轨迹引用框)中,每个分量有一个。TrackReferenceTypeBox(轨迹引用类型框)包括指定V-PCC元数据轨迹引用的视频轨迹的track_ID的数组。TrackReferenceTypeBox的reference_type标识分量的类型(即几何、纹理、或占用图)。

新的轨迹引用类型的4CC为“pcct”、“pccg”、和“pcco”。“pcct”可以指包括视频编码纹理V-PCC分量的(多个)引用轨迹,“pccg”可以指包括视频编码几何V-PCC分量的(多个)引用轨迹,并且“pcco”可以指包括视频编码占用图V-PCC分量的(多个)引用轨迹。

使用MPEG指定的编解码器的编码视频轨迹的携带在由ISOBMFF导出的规范中被很好地定义。由于在不在玩家侧重构点云的情况下显示纹理轨迹、几何轨迹、或占用图轨迹是没有意义的,因此针对这些视频编码的轨迹定义了受限视频方案类型。V-PCC视频轨迹使用4CC“pccv”作为受限视频方案的类型。

对用于编码作为V-PCC分量的纹理、几何、和占用图的视频编码器没有限制。

图11示出了根据本公开的实施例的用于将V-PCC内容存储在ISOBMFF文件中的轨迹替代和分组。

ISOBMFF容器1100可以包括多个V-PCC内容、相同内容的不同版本、或不同内容。可以通过使用作为ISOBMFF中的工具的实体分组来识别V-PCC内容的所有轨迹,例如,通过将相关轨迹添加到EntityToGroupBox(“vpcg”)中。

可以作为彼此替代的所有轨迹都可以由ISOBMFF中定义的轨迹替代机制来指示,诸如TrackHeaderBox(轨迹头框)('tkhd')的alternate_group字段。具有相同alternate_group字段的轨迹必须是同一V-PCC分量的不同编码版本。

属于同一V-PCC内容的V-PCC元数据轨迹必须被指示为替代轨迹。否则,V-PCC元数据轨迹被视为不同V-PCC内容的入口轨迹。

当电影片段被用于提供V-PCC内容的流式传输时,必须在V-PCC元数据片段中的MovieFragmentBox(电影片段框)中包括的类型“vpgd”的SampleGroupDescriptionBox(样本组描述框)中引入参数集信息。

可以通过以下表12规定ISOBMFF分片设计的样本条目类型“vpgd”的样本条目。

[表12]

Figure BDA0002683433070000271

图12示出了根据本公开的实施例的ISOBMFF V-PCC容器结构。

用于V-PCC内容的包括单个对象的V-PCC ISOBMFF文件具有以下结构。

包括元数据的文件级别框,其用作内容的入口点并提供关于构成文件中内容的各种轨迹的高级别信息。文件级别框包括包含点云媒体样本的至少一个V-PCC轨迹。

作为V-PCC内容的“基本”轨迹,V-PCC轨迹包括引用构成V-PCC内容的各种视频编码分量轨迹的各种类型的轨迹引用框。

在没有V-PCC数据分量(和文件元数据)的任何复用或重新封装的情况下,ISOBMFF必须至少具有以下分量。

与视觉媒体相关的4个媒体轨迹

·3个视频轨迹(几何、纹理、占用)

·一个V-PCC轨迹,包括非视频编码数据和轨迹引用

文件级别框,其提供构成V-PCC内容的轨迹的列表。此框包括V-PCC相关信息,诸如属性类型与层到相关轨迹的映射。

参考图12,ISOBMFF V-PCC容器可以包括MetaBox(元框)1210和MovieBox(电影框)1220。

MetaBox 1210可以包括GroupListBox(组列表框)1211,并且GroupListBox可以包括EntityToGroupBox(实体到组框)1212。EntityToGroupBox 1212是指提供V-PCC内容的初始高级别信息的PCC文件的入口点。

MovieBox 1220可以包括V-PCC轨迹1221、几何轨迹1222、属性轨迹1223、和占用轨迹1224。元数据轨迹1221是指V-PCC内容的入口点,包括在V-PCC中通过添加其他压缩元数据而定义的序列和帧参数集。几何轨迹1222、属性轨迹1223、和占用轨迹1224是指V-PCC流的视频编码分量的视频轨迹。

V-PCC内容可以包括几何数据基本流、纹理数据基本流、占用图数据基本流、和元数据基本流。

几何数据基本流、纹理数据基本流、和占用图数据基本流符合独立的2D视频编解码器,并且可以存储为兼容的2D视频媒体轨迹。元数据基本流必须提供PCC文件的入口点,并且还提供对几何数据基本流、纹理数据基本流、和占用图数据基本流的引用。

构成单个PC帧的帧辅助信息、占用图帧、几何帧、和纹理帧的样本必须具有相同的解码时间。因此,用于这样的样本的V-PCC参数集必须具有等于或早于帧的解码时间的解码时间。

单个V-PCC文件的轨迹可以通过使用具有V-PCC特定分组4CC值的文件级别的EntityToGroupBox(例如,视觉点云组“vpcg”)来分组。对于单个V-PCC流公共的所有元数据可以在V-PCC特定EntityToGroupBox中指定。EntityToGroupBox可以用作访问V-PCC内容的入口点。

使用MPEG指定的编解码器的编码视频轨迹的携带在由ISOBMFF导出的规范中被很好地定义。例如,14496-15规范中定义了AVC和HEVC编码视频的携带。当需要其他编解码器类型时,ISOBMFF还提供了一种扩展机制(见14496-12的附录C)。

由于在不在玩家侧重构点云的情况下显示纹理轨迹、几何轨迹或占用图轨迹是没有意义的,因此可以指定受限视频方案类型“pcct”、“pccg”、和“pcco”,并将其用于PCC轨迹。

图13示出了根据本公开的实施例的轨迹和媒体数据,其被包括在ISOBMFF文件中的电影框和媒体数据框中。

参考图13,ISOBMFF文件1300可以包括电影框(moov)1310和媒体数据框(mdat)1320,该电影框1310包括与单个点云内容相关联的各种V-PCC分量的轨迹,媒体数据框1320包括媒体数据。

电影框1310包括定义文件中其他轨迹的文件元数据,但是实际媒体数据一起存储在媒体数据框1320中。

电影框1310可以包括:G轨迹1311,其包括与单个点云内容相关联的分量当中的几何的元数据;A轨迹1312,其包括属性(纹理)的元数据;O轨迹1313,其包括占用(占用图)的元数据;以及V轨迹1314,其包括V-PCC的非视频编码数据和轨迹引用信息。

媒体数据框1320可以包括:几何比特流1321,其包括与单个点云内容相关联的分量当中的几何的媒体数据;属性比特流1322,其包括属性(纹理)的媒体数据;占用比特流1323,其包括占用(占用图)的媒体数据;以及补片序列数据比特流1324,其包括关于V-PCC的信息。在这种情况下,可以对与G轨迹1311、A轨迹1312、和O轨迹1313相关联的比特流1321、1322、和1323进行视频编码,并且可以通过其他方法对与V轨迹1314相关联的比特流1324进行编码。

图14示出了根据本公开的实施例的,在点云内容被划分时将用于ISOBMFF文件中的每个子体积的数据封装到单个轨迹中的方法。

如上所述,当文件中的PCC对象占据大空间(例如足球场、房间、建筑物等)时,点云中存在大量点。因此,要解码的数据量增加,并且渲染的计算复杂度增加。因此,根据观众或用户的位置对空间的空间访问是重要的。

另外,当已经用在文件中定义的空间部分访问元数据对对象进行编码并且在文件中定义编码结构时,相同的元数据可以用于提取3D内容的部分体积的媒体数据及其对应的元数据,并且可以与对象的其他部分分离地传送对应的数据。在这种情况下,媒体数据及其对应的元数据可以被分离地封装到部分访问轨迹或文件中。

如上所述,对于空间部分访问,要求以下元数据。

-识别3D空间中点云对象的一部分并将用于编码对象的边界框划分为不同的3D网格的元数据

-对于表示对象的一部分的部分的3D网格,声明了渲染内容所要求的数据。对于V-PCC,通常要求解码点云数据所要求的不同分量的视频帧(几何帧、纹理帧、和占用帧)中的2D矩形像素区域。当补片相关元数据也能够在空间上分离时,也可以提取文件中声明的元数据的位置。

根据本公开的实施例,当元数据中定义的与空间划分相对应的数据被编码使得划分的点云内容(划分的对象的一部分)是可独立解码的时,客户端能够访问、解码、和渲染相关的所要求的数据。

参考图14,ISOBMFF文件1400可以包括电影框(moov)1410和媒体数据框(mdat)1420,电影框1410包括与单个点云内容相关的各种V-PCC分量的轨迹,并且媒体数据框1420包括媒体数据。

假设对象被划分成两个子体积,并且与点云内容相关联的各种分量被划分成可独立解码的矩形区域,使得每个区域与点云内容的子体积相对应。

在图14中,moov框1410包括四个轨迹,即图13中的G轨迹、A轨迹、O轨迹、和V轨迹。

然而,与图13不同,每个轨迹包括两个可独立解码的区域。例如,G轨迹1411可以在不同区域中存储用于子体积1的几何信息1411_1和用于子体积2的几何信息1411_2。当特定分量使用两层或更多层进行编码时,可以存在附加的轨迹。

如图13,mdat框1420包括几何比特流、属性比特流、占用比特流、和补片序列比特流。然而,每个比特流还包括两个可独立解码的区域。

V-PCC的2D补片包括用于子体积1的区域1430和用于子体积2的区域1440,它们是用于相同帧和轨迹的相同分量的矩形区域,并且各个区域1430和1440可以彼此独立地被解码。

图15示出了根据本公开的另一个实施例、在点云内容被划分时将用于ISOBMFF文件中的每个子体积的数据封装到分离的轨迹中的方法。

如上所述,包括单个对象V-PCC内容的单个文件至少有四个轨迹。当文件中的数据被编码使得数据在空间上(独立地)被访问、解码、和渲染时,在空间上分离的编码数据可以被封装到多个轨迹中,以便以在空间上部分传送的方式被传送。轨迹可以存在于单个文件或多个文件中。

当轨迹存在于单个文件中时,每个在空间上划分的体积可以由对应的视频编码分量(几何、纹理、占用)表示,并且每个分量可以作为“部分对象分量”轨迹存在。当单个对象被划分成两个分离的子体积时,每个子体积可以具有三个视频编码轨迹。因此,每个子体积可以由每个子体积的总共六个视频编码轨迹和两个补片序列数据轨迹来表示。

可选地,与来自每个子体积的相关补片相对应的补片数据可以在算术编码之前被分离,使得每个子体积的补片数据可以被携带在分离的轨迹中。在这种情况下,与每个子体积相对应的数据可以在四个分离的轨迹中传送。

参考图15,单个ISOBMFF文件1500可以包括电影框1510和媒体数据框1520。

在图15中,因为对象被划分成两个子体积,所以moov框1510具有用于每个子体积的G轨迹、A轨迹、O轨迹、和V轨迹。因此,moov框1510包括总共八个轨迹,即,用于第一子体积的几何轨迹1511、用于第二子体积的几何轨迹1512、用于第一子体积的属性轨迹、用于第二子体积的属性轨迹、用于第一子体积的占用轨迹、用于第二子体积的占用轨迹、用于第一子体积的V轨迹、和用于第二子体积的V轨迹。

mdat框1520还包括用于每个子体积的几何比特流、属性比特流、占用比特流、和补片序列比特流。因此,mdat框1520包括总共八个比特流,即,用于第一子体积的几何比特流1521、用于第二子体积的几何比特流1522、用于第一子体积的属性比特流、用于第二子体积的属性比特流、用于第一子体积的占用比特流、用于第二子体积的占用比特流、用于第一子体积的补片序列比特流、和用于第二子体积的补片序列比特流。

V-PCC的2D补片包括用于子体积1的区域1530和用于子体积2的区域1540,它们是用于相同帧和轨迹的相同分量的矩形区域,并且各个区域1530和1540可以彼此独立地被解码并且可以被封装到分离的文件中。

根据本公开的实施例,针对使用MMT经由流式传输传送或者以实时方式传送的情况,提出了用于打包的媒体数据框中的媒体数据结构。

除了用于传送的空间部分访问之外,在流式传输或实时传送的情况下,媒体数据必须被封装到单独的分组中以用于传送。在这种情况下,由于已经整体存储在单个文件中的媒体数据必须在时间上被划分,因此可以传送、访问、解码、和渲染短的时间“碎片(snippet)”。例如,这意味着在媒体的前5秒钟被封装并传送到客户端设备之后,第二个5秒钟以及随后的5秒钟等被传送。

对于V-PCC编码数据,由于组成编码数据的不同分量,重新排列数据以进行封装的时间方式可以有几种方法。

图16示出了根据本公开的实施例的封装的点云内容的分量。

图16示出了在特定时间帧内被封装到单个MMT MPU流中的点云内容的分量。流的单个MPU和该MPU内部的mdat框包括所有的V-PCC分量。根据情况,用于分量的级联的时间帧可以基于单个帧、单个GOF(即32帧)、或确定的时间段(即6秒)。

用于第一子体积的moov框1610包括用于第一子体积的几何轨迹1611、属性轨迹1612、占用轨迹1613、和V-PCC轨迹1614,并且mdat框1620包括被级联用于第一子体积的几何比特流1621、属性比特流1622、占用比特流1623、和补片(V-PCC)序列比特流1624。

此时,mdat框1620的每个分量可以在单个MPU中的媒体数据框内在时间帧中重新组合。在单个MPU 1630内的媒体数据框中,用于特定帧的第一子体积的几何比特流的一部分(G-SV1)1625、属性比特流的一部分(A-SV1)1626、占用比特流的一部分(O-SV1)1627、以及补片序列比特流的一部分(V-SV1)1628被放置为连续的。随后,用于下一帧的第一子体积的几何比特流的一部分(G-SV1)、属性比特流的一部分(A-SV1)、占用比特流的一部分(O-SV1)、和补片序列比特流的一部分(V-SV1)被放置为连续的。

图17示出了根据本公开的另一实施例的封装的点云内容的分量。

图17示出了在特定时间帧内被封装到多个MMT MPU流中的点云内容的分量。流的每个MPU和MPU内部的mdat框包括单个V-PCC分量(几何、属性、占用、和V-PCC)。所携带的分量的媒体数据可以与整个点云内容体积或点云内容的某个子体积相对应。根据情况,每个分量的MPU打包的时间帧可以基于单个帧、单个GOF(即32帧)、或确定的时间段(即6秒)。

第一子体积的moov框1710包括用于第一子体积的几何轨迹1711、属性轨迹1712、占用轨迹1713、和V-PCC轨迹1714,并且mdat框1720包括被级联用于第一子体积的几何比特流1721、属性比特流1722、占用比特流1723、和补片(V-PCC)序列比特流1724。

此时,mdat框1720的每个分量可以在每个MPU中的媒体数据框内在时间帧内重新组合。

当用于特定帧的第一子体积的几何比特流的一部分(G-SV1)1725被放置在第一MPU内部的媒体数据框中时,用于下一帧的第一子体积的几何比特流的一部分(G-SV1)被放置为连续的。

当用于特定帧的第一子体积的属性比特流的一部分(A-SV1)1726被放置在第二MPU内部的媒体数据框中时,用于下一帧的第一子体积的属性比特流的一部分(A-SV1)被放置为连续的。

当用于特定帧的第一子体积的占用比特流的一部分(O-SV1)1727被放置在第三MPU内部的媒体数据框中时,用于下一帧的第一子体积的占用比特流的一部分(O-SV1)被放置为连续的。

当用于特定帧的第一子体积的补片序列比特流的一部分(未示出)被放置在第四MPU内部的媒体数据框中时,用于下一帧的第一子体积的补片序列比特流的一部分(未示出)被放置为连续的。

图18示出了根据本公开的实施例的用于发送3D内容的装置的框图。

参考图18,根据本公开的实施例,用于发送3D内容的装置1800可以包括处理器1810、通信器1820、和存储器1830。

根据本公开的实施例,用于发送3D内容的装置1800可以被实施为编码器的一部分,并且在图18中仅示出了与该实施例相关的组件。因此,本领域普通技术人员将理解,装置1800还可以包括其他通用组件以及图18所示的组件。

处理器1810可以控制上面参考图1至17描述的发送3D内容的一系列过程。

处理器1810还控制控制用于发送3D内容的装置1800的整体功能。例如,处理器1810通过执行存储在用于发送3D内容的装置1800内部的存储器1330中的程序来控制用于发送3D内容的装置1800的整体操作。处理器1810可以被实施为中央处理单元(centralprocessing unit,CPU)、图形处理单元(graphics processing unit,GPU)、应用处理器(application processor,AP)等,其被包括在用于发送3D内容的装置1800中,但不限于此。

通信器1820可以通过使用诸如有线或无线局域网(local area network,LAN)的通信模块将用于发送3D内容的装置1800连接到另一个装置或模块,并且可以发送和接收数据。

存储器1830是存储在用于发送3D内容的装置1800中处理的各种数据的硬件。例如,存储器1830可以存储由通信器1820接收的数据、由处理器处理的数据、以及将由处理器处理的数据。

存储器1830可以包括随机存取存储器(random access memory,RAM)(诸如动态随机存取存储器(dynamic random access memory,DRAM)或静态随机存取存储器(staticrandom access memory,SRAM))、只读存储器(read-only memory,ROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、光盘只读存储器(compact disc-read-only memory,CD-ROM)、蓝光或其他光盘存储、硬盘驱动器(hard disk drive,HDD)、固态驱动器(solid state drive,SSD)、或闪存。

图19示出了根据本公开的实施例的用于接收3D内容的装置的框图。

参考图19,根据本公开的实施例,用于接收3D内容的装置1900可以包括处理器1910、通信器1920和存储器1930。

根据本公开的实施例,用于接收3D内容的装置1900可以被实施为解码器的一部分,并且在图19中仅示出了与该实施例相关的组件。因此,本领域普通技术人员将理解,装置1900还可以包括其他通用组件以及图19所示的组件。

处理器1910可以控制上面参考图1至17描述的接收3D内容的一系列过程。

处理器1910还控制控制用于接收3D内容的装置1900的整体功能。例如,处理器1910通过执行存储在用于接收3D内容的装置1900内部的存储器1930中的程序来控制用于接收3D内容的装置1900的整体操作。处理器1910可以被实施为CPU、GPU、AP等,其被包括在用于接收3D内容的装置1900中,但不限于此。

通信器1920可以通过使用诸如有线或无线LAN的通信模块将用于接收3D内容的装置1900连接到另一个装置或模块,并且可以发送和接收数据。

存储器1930是存储在用于接收3D内容的装置1900中处理的各种数据的硬件。例如,存储器1930可以存储由通信器1920接收的数据、由处理器处理的数据、以及将由处理器处理的数据。

存储器1830可以包括RAM(诸如DRAM或SRAM)、ROM、EEPROM、CD-ROM、蓝光或其他光盘存储、HDD、SSD、或闪存。

根据本公开的权利要求和/或说明书中描述的实施例的方法可以实施为硬件、软件、或硬件和软件的组合。

当实施为软件时,可以提供存储至少一个程序(软件模块)的计算机可读存储介质或计算机程序产品。存储在计算机可读存储介质或计算机程序产品中的至少一个程序被配置成可由电子设备中的一个或多个处理器执行。该至少一个程序包括使电子设备执行根据本公开的权利要求或说明书中描述的实施例的方法的指令。

该至少一个程序(软件模块或软件)可以存储在非易失性存储器(包括RAM和闪存、ROM、EEPROM、磁盘存储设备、CD-ROM、数字多功能光盘(digital versatile disc,DVD)、其他光存储设备、磁带等)中。或者,至少一个程序可以存储在由它们的全部或部分的组合组成的存储器中。此外,可以以多个数量提供配置存储器中的每一个。

该至少一个程序可以存储在可附接的存储设备中,该存储设备可以经由包括互联网、内联网、LAN、广域网(wide LAN,WLAN)、或存储区域网络(storage area network,SAN)、或其组合的通信网络来访问。存储设备可以经由外部端口连接到用于执行本公开的实施例的装置。此外,通信网络上的分离存储设备可以连接到用于执行本公开的实施例的装置。

在本公开中,术语“计算机程序产品”或“计算机可读记录介质”通常用于指代诸如存储器、安装在硬盘驱动器中的硬盘、和信号的介质。“计算机程序产品”或“计算机可读记录介质”可以被提供给软件计算机系统,该软件计算机系统包括用于基于与根据本公开的确定的事件相对应的网络度量来设置用于接收丢失的数据包的定时器的长度的指令。

设备可读存储介质可以以非暂时性存储介质的形式提供。“非暂时性存储介质”是指有形设备,并意味着它不包括信号(例如电磁波)。该术语不区分数据半永久存储在存储介质中的情况和数据临时存储在存储介质中的情况。例如,“非暂时性存储介质”可以包括临时存储数据的缓冲器。

根据实施例,根据本公开中描述的各种实施例的方法可以以被包括在计算机程序产品中的状态被提供。计算机程序产品可以作为产品在卖方和买方之间进行交易。计算机程序产品可以以设备可读存储介质(例如,CD-ROM)的形式分发,或者可以通过应用商店(例如,Play StoreTM)分发或通过两个用户设备(例如,智能电话)直接分发或在线(例如,下载或上传)分发。在在线分发的情况下,计算机程序产品(例如,可下载的应用)的至少一部分可以至少被临时存储在设备可读存储介质(诸如制造商的服务器、应用商店的服务器、或中继服务器的存储器)中,或者可以被临时生成。

在本公开的特定实施例中,根据本公开的建议的特定实施例,包括在本公开中的组件已经以单数或复数形式表达。然而,为了便于解释,根据建议的情况适当选择单数或复数形式的表达,并且不旨在将本公开限制为单个或多个组件。即使某个组件以复数形式表达,它也可以被提供为单个组件,并且即使某个组件以单数形式表达,它也可以被提供为多个组件。

尽管在本公开的详细描述中已经描述了本公开的特定实施例,但是可以对其进行各种修改,而不脱离本公开的范围。因此,本公开的范围不应限于本公开的所描述的实施例,而是不仅应由所附权利要求书来确定,还应由权利要求书的等同物来确定。

46页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于减少自动立体显示器上的串扰的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类