用于对三自由度和体积兼容视频流进行编码和解码的方法、设备与流程

文档序号:21049167发布日期:2020-06-09 21:05阅读:253来源:国知局
用于对三自由度和体积兼容视频流进行编码和解码的方法、设备与流程

1.技术领域

本公开涉及体积视频内容的领域。本公开也在表示体积内容的数据的格式化的上下文中被理解,例如用于在诸如移动设备或头戴式显示器(head-mounteddisplay,hdm)的终端用户设备上的沉浸式呈现。

2.

背景技术:

本部分旨在向读者介绍本领域的各个方面,这些方面可能与下面描述和/或要求保护的本公开的各个方面相关。该讨论被认为有助于向读者提供背景信息,以便于更好地理解本发明的各个方面。因此,应该理解的是,这些陈述应该从这个角度来阅读,而不是作为对现有技术的承认来阅读。

沉浸式视频,也称为360°平面视频,允许用户通过围绕静止的视点的头部的旋转来观看自己周围的一切。旋转只允许3自由度(3degreesoffreedom,3dof)体验。即使3dof视频对于第一次全向视频体验来说是足够的,例如使用头戴式显示设备,3dof视频对于期望更多自由的观看者来说可能很快变得令人沮丧,例如通过体验视差。此外,3dof还可能导致眩晕,因为用户永远不会仅旋转他的头部,而且还会在三个方向上平移他的头部,这种平移在3dof视频体验中是不会再现的。

体积视频(也称为6自由度视频)是3dof视频的替代。当观看6dof视频时,除了旋转,用户还可以在观看的内容内平移他的头部,甚至他的身体,并且体验视差甚至体积。这样的视频极大地增加了沉浸感和对场景深度的感知,并且还通过在头部平移期间提供一致的视觉反馈来防止眩晕。内容通过允许同时记录感兴趣的场景的颜色和深度的专用传感器创建。与摄影测量技术组合的颜色照相机的装备的使用是执行这种记录的常用方法。

虽然3dof视频包括由从纹理图像的解映射产生的图像序列(例如,根据纬度/经度投影映射或等矩形投影映射编码的球面图像),但6dof视频帧嵌入来自几个视点的信息。6dof视频帧,也称为多视图+深度(multiview+depth,mvd)帧,包括从不同视点和/或视图方向捕获的多个图像。它们也可以被视为从三维捕获产生的一系列时间点云。取决于观看条件,可以考虑两种体积视频。第一种(即完整的6dof)允许在视频内容中的完整自由导航,而第二种(即3dof+)将用户观看空间限制在有限的体积内,允许有限的头部的平移和视差体验。这第二上下文是自由导航和坐着的观众的被动观看条件之间的有价值的权衡。此外,3dof+视频比6dof视频需要更少的照相机和更简单的装备。

3dof视频可以在流中被编码为根据所选投影映射(例如,立方体投影映射、金字塔投影映射或等矩形投影映射)生成的矩形颜色图像序列。这种编码具有使用标准图像和视频处理标准的优点。3dof+视频(颜色图像+深度图像)的视图可以通过传统的标准编码方法进行编码。然而,对n个视图视频进行编码等同于对2n个视频进行编码,并且需要大量的数据,使得得到的流不适合广播或流式传输。3dof+和6dof视频需要额外的数据以对点云的有色点的深度进行编码。当在流中对场景进行编码时,体积场景的呈现的类型(即三维呈现或体积呈现)不是先验(priori)已知的。迄今为止,流是为一种或另一种呈现而编码的。缺乏可以承载表示体积场景的数据的流格式以及相关联的方法和设备,该流格式可以被一次编码并被解码为3dof视频或体积视频(3dof+或6dof),并且该数据需要比mvd标准编码更少的数据量。

3.

技术实现要素:

说明书中对“一个实施例”、“实施例”、“示例实施例”、“特定的实施例”的引用指示描述的实施例可以包括特定的特征、结构或特性,但是每个实施例不一定包括特定的特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,无论是否明确地描述,结合其他实施例影响这样的特征、结构或特性都在本领域技术人员的知识范围内。

根据一个或多个实施例,提供了用于将通过不同装置获得的3d场景编码为流的设备和方法。该流由语法元素构成。该方法包括:

—根据第一投影映射,通过将从视点可视的3d场景的点投影到第一颜色图(colormap)上来生成第一颜色数据。第一颜色数据是适用于能够围绕视点的3自由度的旋转的呈现的颜色图像。

—根据第二投影映射,通过将从视点可视的3d场景的点投影到第一深度图上来生成第一深度数据。第一深度数据被编码为打包在与面片数据项列表相关联的深度面片图集中的面片图片。面片数据项包括将深度面片图片与颜色图像中的像素区域进行映射的信息;

—生成表示从所述视点不可视的3d场景的点的第二颜色数据和第二深度数据;以及

—在流中,以第一语法元素对第一颜色数据进行编码,并且至少以第二语法元素对第一深度数据、第二颜色数据和第二深度数据进行编码。

本公开还涉及设备和方法,用于从根据上述方法和/或由设备生成的流中对3d场景进行解码。

4.附图说明

通过阅读以下描述,将会更好地理解本公开,并且其他特定特征和优点将会显现,该描述参考了附图,其中:

—图15示出了根据本原理的非限制性实施例的包括两个视图的多视图加深度(multi-viewplusdepthmvd)帧;

—图1示出了根据本原理的非限制性实施例的对象的三维(three-dimension,3d)模型和对应于该3d模型的点云的点;

—图2示出了根据本原理的非限制性实施例的表示包括几个对象的表面表示的三维场景的图像;

—图3示出了根据本原理的非限制性实施例的图2的场景上的视点的示例布置和来自该布置的不同视点的该场景的可视点;

—图4根据本原理的非限制性实施例,通过示出根据图3的视点的图2的场景的不同视图来示出视差体验;

—图5示出了根据本原理的非限制性实施例,根据等矩形投影映射,对从图3的视点可视的图2的场景点进行编码的颜色图像;

—图6示出了根据本原理的非限制性实施例,根据立方体投影映射编码的图5的场景的相同点的图像;

—图7示出了根据本原理的非限制性实施例,来自图3的视点的图2的3d场景的深度图(也称为深度图像);

—图8示出了根据本原理的非限制性实施例,投影到图5的颜色图上的场景的点的深度面片图集的部分;

—图9示出了根据本原理的非限制性实施例,在图5或图6的图像的编码之后,作为面片的剩余点的编码;

—图16示出了根据本原理的非限制性实施例,从图15的mvd帧开始,来自视点的沉浸式图像的生成,以及帧的视图中未使用的像素的移除;

—图10示出了根据本原理的非限制性实施例,同时以3dof呈现兼容和体积呈现兼容的格式的3d场景序列的编码、传输和解码的示例;

—图11示出了根据本原理的非限制性实施例,当通过基于分组的传输协议传输数据时,流的语法的实施例的示例;

—图12示出了根据本原理的非限制性实施例的可以被配置为实现结合图13和/或14描述的方法的设备的示例架构;

—图13示出了根据本原理的非限制性实施例,在被配置为图10的设备101的设备(参考图12描述)中,对流中的3d场景进行编码的方法;

—图14示出了根据本原理的非限制性实施例,在被配置为图10的设备103的设备120(参考图12描述)中,从流对三维场景进行解码的方法。

5.具体实施方式

现在参考附图描述主题,其中相同的附图标记始终用于指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对主题的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践主题实施例。

本说明书说明了本公开的原理。因此,应当理解,本领域技术人员将能够设计各种布置,尽管本文没有明确地描述或示出,但是这些布置体现了本公开的原理。

将参考以下的特定的实施例来描述本原理:用于在3d场景的3dof和/或体积呈现的流中对表示三维(3d)场景的数据进行编码的方法、承载这种数据的流的格式、以及在解码器被配置为向3dof呈现器和/或体积(即,3dof+或6dof)场景提供解码的数据的情况下从这种流对这种数据进行解码的方法。体积视频是可以由多个照相机捕获为mvd帧序列的体积场景序列。mvd帧包括颜色和深度图像。流承载3dof呈现器可以在传递时使用的数据。3dof呈现器不需要任何修改的更新来呈现从固定的视点捕获的体积场景。流的第一语法元素包括与3dof呈现器期望从固定的视点呈现3d场景的场景的部分相对应的数据。为了使3d场景由其中视点不固定的体积呈现器呈现,流包括至少第二语法元素。在第一实施例中,第二语法元素包括从其中移除与在第一语法元素中编码的点相对应的像素的mvd帧。在第二实施例中,第二语法元素包括关于从第一视点不可视的3d场景的部分的额外信息。

根据本原理,从3d场景开始,使用编码器中实现的编码方法来生成承载表示3d场景的数据的数据流。编码方法准备承载用于来自视点的3d场景的3dof呈现的数据的颜色图像。该第一颜色图像嵌入到生成的流的第一语法元素中,以便可以独立于其他数据从流中提取。在准备体积呈现时,方法对第一颜色图像中投影的点的深度进行编码。这些点(从确定的视点可视的点)的深度可以被编码为深度图像。在变型中,为了优化用于对深度进行编码的值范围的动态性,深度可以根据现有方法被编码为面片图集。在第一实施例中,方法移除与已经用于生成第一颜色图像中的场景的点相对应的mvd帧的颜色和深度图像的像素(即,用默认颜色和深度,例如黑色,来替换它们)。场景的剩余点是在3dof呈现的情况下从被确定为固定的视点的视点不可视的点。对应于剩余点的像素留在mvd帧中。在第二实施例中,方法还对尚未在第一颜色图像中编码的场景的点的颜色和深度进行编码。场景的剩余点是在3dof呈现的情况下从被确定为固定的视点的视点不可视的点。剩余点可以被编码在一个或多个颜色图像和深度图像中。在变型中,根据现有方法,剩余点被编码在面片图集图像中。针对体积呈现准备的数据嵌入到流的第二语法元素中。

根据本原理,公开了在解码器中实现的解码方法。解码器从源(例如存储器或网络接口)获得根据本编码方法编码的流。流至少包括两个语法元素,第一语法元素承载用于3dof呈现的表示3d场景的数据呈现。在实施例中,第一语法元素包括根据来自确定的视点的3d场景的点到颜色图像的投影映射编码的颜色图像。流的至少一个第二语法元素承载体积呈现器在3dof+或6dof模式下呈现3d场景所需的数据。解码器从流的第一语法元素对第一颜色图像进行解码。在解码器被配置为对用于3dof呈现的流进行解码的情况下,解码器提供另一电路,例如向呈现器或格式转换器提供来自流的第一语法元素的解码的数据。在解码器被配置为以体积模式(即,3dof+或6dof)对流进行解码的情况下,解码器对嵌入在至少一个第二语法元素中的数据进行解码,并且为另一模块,例如呈现器或格式转换器,提供每个解码的数据。

图15示出了包括两个视图的多视图加深度(mvd)帧。mvd帧的每个视图包括颜色图像(也称为纹理)和深度图像。在图15的示例中,mvd帧包括两个视图,第一视图包括颜色图像150t和深度图像150d,第二视图包括颜色图像151t和深度图像151d。在变型中,视图仅包括像素的颜色和深度一起被编码的一个图像。第一视图和第二视图对应于由朝向不同方向并位于不同位置的两个照相机(在图15的示例中为广角照相机)捕获的场景的部分。一些对象出现在两个图像上(例如,人物、门、天花板的部分等…)。使用传统的标准压缩方法对这两个视图进行编码会导致对相同的信息进行多次编码,从而生成一个非常大的流。

mvd帧的每个视图都与照相机的外部和内部参数相关联,照相机以元数据的形式捕获到这些参数。通过使用照相机的外部参数(例如,照相机在3d场景中的方位和位置)和深度图像,将颜色图像的像素去投影(de-project)到3d空间中以获得颜色点云是可能的。

图1示出了对象10的三维(3d)模型和对应于3d模型10的点云11的点。模型10可以是3d网格表示,并且点云11的点可以是网格的顶点。点11也可以是散布在网格的表面上的点。模型10也可以表示为点云11的平铺版本(splattedversion);模型10的表面是通过平铺点云11的点来创建的。模型10可以由许多不同的表示(诸如体素或样条)来表示。图1示出了总是可以从3d对象的表面表示中定义点云,并且总是可以反过来从点云创建3d对象的表面表示的事实。如本文使用的,将3d对象的点(通过3d场景的扩展点)投影到图像等同于将该3d对象的任何表示投影到对象。

图2示出了表示包括几个对象的表面表示的三维场景的图像20。该场景可能是使用任何合适的技术捕获的。例如,它可能是使用计算机图形界面(computergraphicsinterface,cgi)工具创建的。它可能已被颜色图像和深度图像采集设备捕获为mvd帧。在这种情况下,从采集设备(例如,照相机)不可视的对象的部分不会如关于图3和图8描述的那样在场景中表示是可能的。图2示出的示例场景包括房屋、两个人物和水井。图2中的立方体33示出了用户可能从其观察3d场景的视图空间。

图3示出了场景上的视点的示例布置,以及来自该布置的不同视点的该场景的可视点。为了由沉浸式呈现设备(例如洞穴或头戴式显示设备(hmd))来呈现和显示,从视点(例如视点30)考虑3d场景。对应于第一个人物的右肘的场景的点31从视点30是可视的,因为在视点30和场景点31之间没有不透明的对象。相反,对应于第二个人物的左肘的场景点32从视点30是不可视的,因为其被第一个人物的点占据。对于3dof呈现,仅考虑视点,例如视点30。用户可以围绕视点以三自由度旋转他的头部,但是不能移动视点。从该视点来看,要在流中编码的场景的点是可视的点。不需要对从这个视点不可视的场景的点进行编码,因为用户不能通过移动视点来访问它们。在6dof呈现中,用户可以在场景中的任何地方移动视点。在这种情况下,对内容流中场景的每个点进行编码是有价值的,因为每个点都有可能被可以替换他的视点的用户访问。在编码阶段,无法事先知道用户将从什么视点观察场景。在3dof+呈现中,用户可以在视点周围的有限空间内移动视点。例如,用户可以在以视点30为中心的立方体33内移动他的视点,以体验如图4所示的视差。表示从视图空间的任何点可视的场景的部分(例如立方体33)的数据,将被编码到流中。视图空间的大小和形状可以在编码步骤中决定和确定,并在流中编码。解码器从流中获得信息,并且呈现器将视图空间限制在由获得的信息确定的空间内。在另一实施例中,呈现器根据硬件约束来确定视图空间,例如与检测用户的移动的传感器的能力相关。在这种情况下,如果在编码阶段,从呈现器的视图空间内的点可视的点还没有在数据流中被编码,则该点将不会被呈现。在实施例中,编码方法对流中场景的每个点进行编码,而不考虑视图呈现空间。在另一实施例中,为了优化流的大小,例如,呈现仅对根据视图呈现空间确定的场景的点的子集进行编码。

图4示出了由体积呈现允许的视差体验。图4b示出了用户从图3的视点30可以看到的场景的部分。从这个视点来看,两个人物处于给定的空间配置中,例如,(穿着白色衬衫的)第二个人物的左肘被第一个人物的身体隐藏,而他的头部是可视的。当用户围绕视点30以三自由度旋转他的头部时,这种配置不会改变。如果视点是固定的,则第二个人物的左肘不可视。图4a示出了从图3的视图空间33的左侧的视点看到的相同场景。从这样的视点来看,由于视差效应,图3的点32是可视的。因此,对于体积呈现,点32必须被编码在数据流中,否则将不被呈现。图4c示出了从图3的视图空间33的右侧的视点观察到的相同场景。从这个视角的位置来看,第二个人物几乎完全地被第一个人物所隐藏。通过在3d场景中移动视点,用户体验到视差效果。可以区分两种视差效果:对象间视差(如人物之间的视差)和对象内视差(如发现正面人物的面部的部分)。

图5示出了根据等矩形投影映射对从图3的视点30可视的图2的场景的点进行编码的颜色图像。等矩形投影映射是球面投影映射的示例。图6示出了根据立方体投影映射编码的场景的相同点的图像。存在不同的立方体投影映射。例如,可以在图6的图像中不同地布置立方体的面和/或面可以朝向不同的方向。例如,根据压缩标准,或者例如根据标准选项,选择对从确定的视点可视的场景的点进行编码的投影映射。本领域技术人员已知,总是可以将根据投影映射由点云的投影获得的图像转换为根据不同投影映射的相同点云的等同图像。然而,这种转换可能意味着投影分辨率的某种损失。

在本申请中,图5和图6是黑白的。但是应该理解,它们是颜色图像的示例,例如以rgb或以yuv对场景的点的颜色进行编码。图5和图6包括3d场景的3dof呈现所需的数据。接收数据流的解码器使用与用于对图像进行编码的方法相关的方法对图像进行解码,该数据流在第一语法元素中包括作为图5和图6的示例图像的图像。该流可以根据标准图像和视频压缩方法以及用于图像和视频传送的标准格式来编码,例如mpeg2、h264或h265。例如,解码器可以将解码的图像(或图像序列)传输到3dof呈现器或用于重新格式化的模块。3dof呈现器将图像投影到与编码时使用的投影映射相对应的表面上(例如,图5的图像是球体,图6的图像是立方体)。在变型中,呈现器在投影图像之前根据不同的投影映射来转换图像。

当图像根据投影映射对3d场景的点进行编码时,图像与3dof呈现兼容。场景可以包括360°的点。例如,通常用于对与3dof呈现兼容的图像进行编码的投影映射是球面映射:等矩形投影或经度/纬度投影,或不同布局的立方体投影映射或者金字塔投影映射。

图7示出了来自图3的视点30的图2的3d场景的深度图(也称为深度图像)。体积呈现需要深度信息。在图7的图像的示例编码中,像素越暗,从视点看投影到该像素的点越近。例如,深度可以被编码在12个比特上,即深度由0和212-1=4095之间的整数表示。例如,如果最近的点位于距离确定的视点1米处,并且最远的点位于距离确定的视点25米处,则深度的线性编码将以0,586厘米的步长进行(=(2500–100)/4096)。深度还可以根据对数标度进行编码,因为远离视点的点的深度值不精确性不如靠近视点的点的深度值不精确性重要。在图7的示例性实施例中,根据与用于对图5的颜色图进行编码的投影映射相同的投影映射,在深度图中对从视点可视的场景的点的深度进行编码。在另一实施例中,深度可以根据不同的投影映射进行编码。呈现器转换深度图和/或颜色图像,以便对在这些数据中编码的场景的点进行去投影。该实施例可能增加深度不精确性。

在另一实施例中,从确定的视点(例如图3的视点30)可视的点的深度可以被编码为面片图集。图8示出了投影到图5的颜色图80上的场景的点的深度面片图集83的部分。面片是通过聚类投影的点获得的图片。面片对应于定义了投影图中并且深度一致的相邻像素的区域的投影的点的部分。该部分由从视点来看相应的投影的点在空间中所占的角度范围来定义。在投影图中,面片根据其连通性和深度进行聚类。区域p覆盖其中投影发生且深度一致的投影图的一组相邻像素。深度一致性检查归结为考虑视点和由p覆盖的每个投影的点之间的距离z,并且确保这些像素的距离范围不深于阈值t。该阈值可以取决于zmax(视点和由p覆盖的投影的像素之间的最大距离)、通过进一步生成操作存储在生成的图像中的深度的动态d、以及感知属性。例如,典型的人类视敏度大约为3分弧度。根据这些标准确定阈值t有几个优点。一方面,在进一步生成操作中生成的图像中的图像面片将覆盖与生成的图像的像素的深度分辨率一致的深度范围(例如,10比特或12比特),因此,对压缩伪影(compressionartifact)是鲁棒的。另一方面,深度范围是由3dof+上下文感知驱动的。事实上,人类视觉不能同等地感知近点和远点的距离。作为示例,阈值可以根据等式[等式.1]定义。

其中va是视敏度的值。

例如,针对第一个人物的左臂获得面片81。对场景的投影的点的部分的深度进行编码是有价值的,因为动态范围的2d值被用于对几分米的短距离进行编码,从而允许深度编码的更高的精确性和压缩伪影的更高的鲁棒性。为一对房屋获得面片82。要编码的深度范围更大,但是,由于房屋距离视点很远,编码的不精确性导致更少的可视视觉伪影。但是,与图7的深度图相比,场景的该部分的深度编码精确性有所提高。

根据面片的点的投影在面片图集中将占据的大小,面片以给定的角度分辨率(例如,每像素3秒或每像素5秒)布置在称为面片图集83的图片83中。这种布置包括在面片图集中保留区域,用于投影(深度和颜色)与面片相关联的点。保留的区域的大小取决于图片的角度分辨率和面片的角度范围。优化帧中区域的位置,以覆盖图片的帧而不会重叠。面片数据项包括将深度面片图集中打包的深度面片与颜色图像中相应的颜色像素区域进行映射的数据。例如,面片数据项包括面片图集中面片的左上角的坐标、面片图集中面片的宽度和高度、颜色图像中相应的颜色像素的左上角、相应的颜色像素的颜色图像的区域的宽度和高度。在变型中,面片数据项的信息由角度范围数据表示,以便于例如根据球面投影映射编码的颜色图像的定位。

从确定的视点可视的点是3d场景的点的部分。为了完全地对3d场景进行编码,在流中编码剩余点(即,在3dof兼容颜色图像和相应的深度数据中未被编码的点)。图9示出了作为面片的剩余点的编码。

图16示出了从图15的mvd帧开始,来自视点的沉浸式图像的生成,以及帧的视图中使用的像素的移除。如图1、3、5和7所示,mvd帧的数据用于实例化3d场景,例如作为点云。点云的任何3d点都与生成点云的视图的像素相关联。3d点与至少一个像素相关联,并且也可以与几个像素相关联,每个像素属于不同的视图。获得视点,并且从该视点可视的3d场景的点被投影到第一视图162t和162d(即,颜色图像和深度图像)上。根据本原理的第一实施例,当3d点被投影到第一视图上时,从3d点的视图中移除与该3d点相关联的像素。对于颜色图像,例如通过用默认颜色值(例如黑色、白色或灰色)替换颜色值来执行移除像素。对于深度图像,存储在像素中的深度值被指示该像素(以及颜色图像中的相应的像素)不对3d点进行编码的默认值替换。为了防止关键图的使用,这种技术在3d场景编码领域中是众所周知的。本实施例的优点是在mvd帧的视图中创建具有相同值的相邻像素的宽区域,因此它们的压缩率被广泛增强。图15的颜色图像150t和151t被变换为颜色图像160t和161t。图15的深度图像150d和151d被变换为深度图像160d和161d。这种技术的优点是,视图之间的大部分冗余信息被从mvd帧的视图中移除,并且仅在沉浸式视图中存储一次。包括照相机的外部和内部参数的元数据保持与mvd帧的每个视图相关联。在本公开的第一实施例中,图像162t和162d以流的第一语法元素编码,图像160t、160d、161t和161d以及相关联的元数据以流的至少第二语法元素编码。

图10示出了同时以3dof呈现兼容和以体积呈现兼容的格式的3d场景序列的编码、传输和解码的示例。根据本编码方法的原理,三维场景100(或3d场景序列)由编码器101编码在流102中。流102包括承载表示3d场景的数据、用于3dof呈现的第一语法元素。在第一实施例中,3d场景是从mvd帧序列获得的。至少第二元素包括从中点被投影到第一语法元素的视图上的mvd帧序列。在第二实施例中,第二语法元素承载表示3d场景的剩余点的颜色和深度数据的数据。解码器103从源获得流102。例如,源属于集合,该集合包括:

—本地存储器,例如视频存储器或ram(或随机存取存储器)、闪存、rom(或只读存储器)、硬盘;

—存储接口,例如具有大容量存储、ram、闪存、rom、光盘或磁支持的接口;

—通信接口,例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee802.11接口或接口);以及

—用户界面,诸如使用户能够输入数据的图形用户界面。

解码器103对流102的第一语法元素进行解码。在解码器被配置为提供具有3dof场景的另一模块(例如3dof呈现器或格式转换器)的情况下,解码器传输从该第一语法元素解码的数据。这些数据表示包括用于3dof呈现的场景点的3d场景。在解码器被配置为提供另一模块(例如3dof呈现器或格式转换器)的情况下,解码器从流的至少一个第二语法元素对数据进行解码。

图11示出了当数据通过基于分组的传输协议传输时,流的语法的实施例的示例。图11示出了体积视频流的示例结构1100。该结构包括在以独立的语法元素来组织流的容器中。该结构可以包括是流的每个语法元素共有的数据集合的报头部分1101。例如,报头部分包含关于语法元素的元数据,描述了它们的性质和角色。报头部分还可以包括用于对3dof呈现的第一颜色图像进行编码的视点的坐标以及关于图片的大小和分辨率的信息。该结构包括有效载荷,该有效载荷包括第一语法元素1102和至少一个第二语法元素1103。第一语法元素1102包括表示为3dof呈现准备的第一颜色和深度图像的数据。图像可能已经根据视频压缩方法进行了压缩。

在第一实施例中,第二语法元素包括从源接收的mvd帧生成的数据。从mvd帧中移除用于生成如图16所示的第一视图的这些源mvd帧的像素。

在本原理的第二实施例中,第二语法元素包括3d场景的剩余点的颜色和深度信息。场景的剩余点被投影到第二颜色图像和第二深度图像。场景的剩余点是未在第一颜色图像中编码的场景的点。如果剩余点的部分从确定的视点不可视,则可以重复步骤1303,直到每个剩余点都已经被投影到颜色图和深度图。在变型中,例如,在步骤1303的每次迭代中为3dof+呈现确定的视图空间内视点可以移位。在另一实施例中,迭代的第二颜色图像和第二深度图像可以根据本申请中描述的原理聚类成面片。在该实施例中,颜色面片被打包在颜色面片图集中。深度面片被打包在第二深度面片图集中。在变型中,深度面片被打包在已经包括与第一颜色图像相关联的深度面片的第一深度面片图集中。面片数据项包括指示什么颜色图像或什么面片图集与深度面片相关联的信息。

为了说明目的,在isobamff文件格式标准的上下文中,颜色图、深度图和元数据通常在类型moov的盒(box)中的isobamff轨道中引用,颜色图和深度图数据本身嵌入在类型mdat的媒体数据盒中。

图12示出了可以被配置为实现结合图13和/或14描述的方法的设备120的示例架构。设备120可以被配置为图10的编码器101或解码器103。

设备120包括通过数据和地址总线121链接在一起的以下元件:

—微处理器122(或cpu),例如,其是dsp(或数字信号处理器,digitalsignalprocessor);

—rom(或只读存储器,readonlymemory)123;

—ram(或随机存取存储器,randomaccessmemory)124;

—存储接口125;

—i/o接口126,用于从应用接收要发送的数据;以及

—电源,例如电池。

根据示例,电源在设备外部。在提到的每一个存储器中,说明书中使用的词“寄存器”可以对应于小容量的区域(一些比特)或非常大的区域(例如,整个程序或大量接收的或解码的数据)。rom123至少包括程序和参数。rom123可以存储算法和指令以执行根据本原理的技术。当接通时,cpu122将程序上传到ram并执行相应的指令。

在寄存器中,ram124包括由cpu122执行并在设备120接通后上传的程序、寄存器中的输入数据、寄存器中不同方法状态的中间数据以及寄存器中用于该方法的执行的其他变量。

例如,本文描述的实现方式可以以方法或过程、装置、计算机程序产品、数据流或信号来实现。即使仅在单一的实现方式的形式的上下文中讨论(例如,仅作为方法或设备讨论),所讨论的特征的实现方式也可以以其他形式实现(例如,程序)。例如,装置可以用适当的硬件、软件和固件来实现。例如,这些方法可以在装置中实现,诸如,例如处理器,其一般指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如,例如计算机、蜂窝电话、便携式/个人数字助理(“pda(personaldigitalassistant)”),以及促进终端用户之间的信息的通信的其他设备。

根据图10的编码或编码器101的示例,从源获得三维场景100,例如,以mvd帧序列的形式。例如,源属于集合,该集合包括:

—本地存储器(123或124),例如视频存储器或ram(或随机存取存储器)、闪存、rom(或只读存储器)、硬盘;

—存储接口(125),例如具有大容量存储、ram、闪存、rom、光盘或磁支持的接口;

—通信接口(126),例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee802.11接口或接口);以及

—用户界面,诸如使用户能够输入数据的图形用户界面。

根据图10的解码或(多个)解码器103的示例,流被发送到目的地;具体地,目的地属于集合,该集合包括:

—本地存储器(123或124),例如视频存储器或ram、闪存、硬盘;

—存储接口(125),例如具有大容量存储、ram、闪存、rom、光盘或磁支持的接口;以及

—通信接口(126),例如有线接口(例如总线接口(例如usb(或通用串行总线,universalserialbus))、广域网接口、局域网接口、hdmi(高清晰度多媒体接口,highdefinitionmultimediainterface)接口)或无线接口(诸如ieee802.11接口、接口)。

根据编码或编码器的示例,包括表示体积场景的数据的比特流被发送到目的地。例如,比特流存储在本地或远程存储器中,例如视频存储器(104)或ram(104)、硬盘(103)。在变型中,比特流被发送到存储接口(105),例如具有大容量存储、闪存、rom、光盘或磁支持的接口,和/或通过通信接口(106)传输,例如点对点链路、通信总线、点对多点链路或广播网络的接口。

根据图10的解码或解码器或者呈现器103的示例,从源获得比特流。示例性地,从本地存储器读取比特流,例如视频存储器(124)、ram(124)、rom(123)、闪存(123)或硬盘(123)。在变型中,从存储接口(125)接收和/或从通信接口(125)接收比特流,存储接口例如是具有大容量存储、ram、rom、闪存、光盘或磁支持的接口,通信接口例如是点对点链路、总线、点对多点链路或广播网络的接口。

根据示例,设备120被配置为实现结合图13或14描述的方法,并且属于集合,该集合包括:

—移动设备;

—通信设备;

—游戏设备;

—平板(或平板电脑);

—笔记本电脑;

—静止图像照相机;

—摄像机;

—编码芯片;

—服务器(例如,广播服务器、视频点播服务器或网络服务器)。

图13示出了根据本原理的非限制性实施例,在被配置为图10的设备101的设备120(参考图12描述)中对流中的3d场景进行编码的方法。

在步骤1300中,设备120的不同参数被更新。特别地,从源获得3d场景。例如,获得mvd帧,并且根据包括在mvd帧中的信息来确定3d场景。在3d场景的空间中确定视点,初始化投影映射,并确定投影图和图像的大小和分辨率。

在步骤1301中,根据投影映射,从视点可视的3d场景的点被编码在第一颜色图像中。第一颜色图像与3dof呈现兼容。

在步骤1302中,关于从所确定的视点可视的场景的点的深度信息被编码在第一深度图像中。在另一实施例中,该深度信息被编码在深度面片图集中,并建立面片数据项列表。面片数据项包括将深度面片图集的深度面片与第一颜色图像中的像素区域进行映射的信息。第一面片图集的面片数据项包括指示这些深度面片与第一颜色图像中的像素区域进行映射的信息。

在步骤1303中,在第一实施例中,在步骤1303中,从mvd帧的颜色和深度图像中移除与投影到第一颜色图上的3d场景的3d点相关联的像素,如关于图16所示。在第二实施例中,场景的剩余点被投影到第二颜色图像和第二深度图像。场景的剩余点是未在第一颜色图像中编码的场景的点。如果剩余点的部分从确定的视点不可视,则可以重复步骤1303,直到每个剩余点都已经被投影到颜色图和深度图。在变型中,例如,在步骤1303的每次迭代中为3dof+呈现确定的视图空间内视点可以移位。在另一实施例中,迭代的第二颜色图像和第二深度图像可以根据本申请中描述的原理聚类成面片。在该实施例中,颜色面片被打包在颜色面片图集中。深度面片被打包在第二深度面片图集中。在变型中,深度面片被打包在已经包括与第一颜色图像相关联的深度面片的第一深度面片图集中。面片数据项包括指示什么颜色图像或什么面片图集与深度面片相关联的信息。

在步骤1304中,根据关于图11描述的结构生成承载表示3d场景的数据的流。该流包括第一语法元素中的第一颜色图像的数据。第一颜色图像被编码在流的专用的语法元素中,以便独立于流的其他数据是可解码的。由于第一颜色图像是执行3dof呈现所需的唯一数据,所以生成其中第一颜色图像可以被解码,而不必对执行体积呈现所需的补充数据进行解码的流是本原理的优点。在步骤1302和1304准备的数据被编码在流的至少一个第二语法元素中。因此,只有在解码器被配置为对用于体积呈现的数据进行解码的情况下,才可以在必要时对它们进行解码。在实施例中,步骤1304可以与步骤1301、1302和1303并行执行,或者该方法的步骤可以顺序执行。

图14示出了根据本原理的非限制性实施例,在被配置为图10的设备103的设备120(参考图12描述)中,从流对三维场景进行解码的方法。

在步骤1400中,设备120的不同参数被更新。具体地,从源获得流,在3d场景的空间中确定视点。在变型中,从流中对视点的位置进行解码。该流包括承载表示第一颜色图像的数据的第一语法元素。第一颜色图像与3dof呈现兼容,并且已经根据第一投影映射被编码。该流还包括承载表示第一颜色图像的点的深度以及从视点不可视的场景的点的颜色和深度的数据的至少一个第二语法元素,例如以mvd帧的形式。

在步骤1401中,从流的第一语法元素对第一颜色图像进行解码。如果第一颜色图像已经被压缩,例如根据标准图像或视频压缩方法,则第一颜色图像被解压缩。

在步骤1402中,解码器检查其是否被配置为对3d场景进行解码以用于3dof呈现或用于体积呈现。该检查步骤可以是隐式的(即不执行的),并且解码方法在步骤1402之后立即执行步骤1405。在变型中,解码器从源获得检查信息。检查信息可以从流中解码出或在存储器中读取,或者经由设备120的通信接口从远程设备接收。在解码器被配置为对3d场景进行解码用于3dof呈现的情况下,该方法执行步骤1405。在解码器被配置为对3d场景进行解码用于体积呈现的情况下,该方法执行步骤1403。

在步骤1403中,从流的第二语法元素对表示编码在第一颜色图像中的场景的点的深度的数据进行解码。这些数据可以被编码在第一深度图像中。在另一实施例中,这些数据可以被编码在与面片数据项列表相关联的第一深度面片图集中。该列表的面片数据包括将第一深度面片图集的深度面片与第一颜色图像中的像素区域进行映射的信息。在第一深度面片图集被用于对3d场景的剩余点的深度面片进行解码的情况下,该第一列表的面片数据项包括指示相关联的面片涉及第一颜色图像的信息。

在步骤1403之后或与其并行执行的步骤1404中,在第一实施例中,对mvd帧进行解码,并且将包括在视图的深度图像中的信息和与视图相关联的元数据关联地使用,以对3d场景中的视图的颜色图像中的像素进行去投影。在第二实施例中,从流的至少一个第二语法元素中对表示3d场景的点(称为剩余点)的颜色和深度数据进行解码。剩余点对应于场景中从确定的视点不可视但从视图空间的不同的视点可视的点。这些数据被编码在至少第二颜色图像和第二深度图像中。在另一实施例中,这些数据被编码在至少一个颜色面片图集和第二深度面片图集中。在变型中,第二深度面片图集是第一深度面片图集的部分。面片数据项列表与这些数据相关联。面片数据项至少包括将深度面片与颜色图像或颜色面片相关联的信息。在步骤1402、1403和1404从流中解码的数据表示体积呈现所需的三维场景。

在步骤1405中,解码的场景被传输到另一模块,例如3dof呈现器或体积呈现器或者另一类型的模块(例如格式转换器)。根据映射深度和颜色数据的面片数据项,从第一和第二颜色图像的像素以及它们在深度面片图集中的相应的值来确定场景的重建,以便允许根据用于编码的投影映射来对3d场景的点进行去投影。

自然,本公开不限于先前描述的实施例。

具体地,本公开不限于用于对承载表示三维场景(或三维场景序列)的数据的流进行编码/解码的方法和设备,而是还扩展到以3自由度方式或以体积方式(即,3dof+或6dof)呈现三维场景的方法,以实现这些方法的任何设备,特别是包括至少一个cpu和/或至少一个gpu的任何设备。

本公开还涉及一种用于显示从包括表示三维场景的信息的数据流呈现的图像的方法(以及配置的设备)。

本公开还涉及用于传输和/或接收根据本原理编码的流的方法(以及配置的设备)。

例如,本文描述的实现方式可以以方法或过程、装置、计算机程序产品、数据流或信号来实现。即使仅在单一的实现方式的形式的上下文中讨论(例如,仅作为方法或设备讨论),所讨论的特征的实现方式也可以以其他形式(例如,程序)实现。例如,装置可以用适当的硬件、软件和固件来实现。例如,这些方法可以在设备中实现,例如,诸如处理器,其一般指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如,例如智能手机、平板、计算机、移动电话、便携式/个人数字助理(“pda”)以及促进终端用户之间的信息的通信的其他设备。

本文描述的各种过程和特征的实现方式可以体现在各种不同的仪器或应用中,特别是,例如,与数据编码、数据解码、视图生成、纹理处理以及与图像和相关纹理信息和/或深度信息的其他处理相关联的仪器或应用。这种仪器的示例包括编码器、解码器、从解码器输出的后处理器处理、向编码器提供输入的前处理器、视频编码器、视频解码器、视频编解码器、网络服务器、机顶盒、膝上型计算机、个人计算机、蜂窝电话、pda和其他通信设备。应该清楚的是,该仪器可以是移动,甚至可以安装在移动车辆中。

此外,所述方法可以通过由处理器执行的指令来实现,并且这样的指令(和/或由实现方式产生的数据值)可以存储在处理器可读介质上,诸如,例如集成电路、软件载体或其他存储设备,诸如,例如硬盘、光盘(“cd(compactdiskette)”)、光盘(诸如,例如,通常被称为数字多功能盘(digitalversatiledisc)或数字视频盘(digitalvideodisc)的dvd)、随机存取存储器(“ram”)或只读存储器(“rom”)。这些指令可以形成有形地体现在处理器可读介质上的应用程序。例如,指令可以是硬件、固件、软件或其组合。例如,指令可以在操作系统、单独的应用程序或两者的组合中找到。因此,例如,处理器可以被表征为被配置为执行过程的设备和包括具有用于执行过程的指令的处理器可读介质(诸如存储设备)的设备。此外,除了指令之外或代替指令,处理器可读介质可以存储由实现方式产生的数据值。

对于本领域技术人员来说显而易见的是,实现方式可以产生各种格式化的信号,以承载例如可以被存储或传输的信息。例如,信息可以包括用于执行方法的指令,或者由描述的实现方式之一产生的数据。例如,信号可以被格式化以承载用于写入或读取描述的实施例的语法的规则作为数据,或者承载由描述的实施例写入的实际语法值作为数据。例如,这种信号可以被格式化为电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括,例如,对数据流进行编码和用编码的数据流调制载波。例如,信号承载的信息可以是模拟或数字信息。众所周知,信号可以通过各种不同的有线或无线链路传输。信号可以存储在处理器可读介质上。

已经描述了许多实现方式。然而,应当理解,可以做出各种修改。例如,不同实现方式的元素可以被组合、补充、修改或移除以产生其他实现方式。此外,本领域普通技术人员将理解,可以用其他结构和过程来替代公开的那些结构和过程,并且得到的实现方式将以至少基本上相同的(多种)方式执行至少基本上相同的(多个)功能,以实现与公开的实现方式至少基本上相同的(多种)结果。因此,本申请考虑了这些和其他实现方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1