编码和解码体积视频的方法、设备和流与流程

文档序号:20454357发布日期:2020-04-17 23:17阅读:198来源:国知局
编码和解码体积视频的方法、设备和流与流程

本公开涉及体积(volumetric)视频内容的领域。本公开还可以在表示体积视频内容的数据的格式的上下文中理解,例如用于在诸如移动设备或头戴式显示器的终端用户设备上进行沉浸式渲染。



背景技术:

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

沉浸式视频,也称为360°平面视频,允许用户可以通过围绕静止视点的头部旋转来环顾四周。旋转仅允许3自由度(3dof)体验。即使3dof视频足以提供第一全向视频体验,例如使用头戴式显示器设备(hmd),对于希望例如通过体验视差获得更大自由度的观看者,3dof视频也可能很快变得令人沮丧。另外,由于用户不仅只旋转其头部,而且还沿在3dof视频体验中无法再现的三个方向平移上平移头部,因此3dof也可能引起眩晕。

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

虽然3dof视频包含从纹理图像的解映射(un-mapping)中得出的图像序列(例如根据纬度/经度投影或等角投影进行编码的球形图像),但6dof视频帧嵌入了来自多个视点的信息。可以将它们视为三维采集得到的点云的时间序列。取决于观看条件,可以考虑两种体积视频。第一个(即完整的6dof)允许在视频内容内部的完全自由导航,而第二个(也称为3dof+)将用户的观看空间限制为有限的体积,允许受限的头部平移和视差体验。第二种情形是就座观众成员的自由导航和被动观看条件之间的自然折衷。

利用压缩和传输标准,以符合标准视频管道(例如mpeg)的方式,在帧序列(即视频内容)中对点云进行编码,并允许以视频帧速率(即至少每秒24个图像/点云)是一个挑战。本原理提出解决这些编码和解码技术问题的方法、设备和流。



技术实现要素:

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

本公开涉及一种将点云编码为流的方法。该方法包括:

-为点云确定块数据项的第一列表,块数据项包括:

·标识投影中心的信息;

·空间范围的描述,根据投影中心、角度范围和深度范围定义该范围;以及,

·标识图片内区域的信息;

-生成包括图像块集合的图片,每个图像块通过根据投影中心将第一列表的块数据项的空间范围中包括的点云的点投影到图片上获得;以及

-将图片和块数据项的第一列表编码在流中。

对于点云,确定数据项的列表的操作包括:

a.对在投影中心组中的至少两个不同的投影中心:

·根据投影中心将点云的一部分投影在投影图上,该部分包括从投影中心可见的点云的点;

·通过根据深度信息对投影图的相邻像素进行聚类来确定块数据项的第二列表,并根据对应的聚类为每个块数据项确定空间范围;

b.根据对应的块数据项的第二列表选择一个投影中心,并将对应的块数据项的第二列表添加到块数据项的第一列表中;以及

c.删除从所选择的投影中心可见的点云的部分;

d.重复a,b和c,直到点云为空或块数据项列表已满。

根据特定特性,点云包括点云序列中的点云组的点。为图片组确定唯一的块数据项列表,该图片组中的每个图片都是针对点云组中的点云生成。图片组与唯一的块数据项列表相关联地编码在流中。

根据特定特性,图像块的像素存储深度值。根据与图像块相关联的块数据项的深度范围来确定该深度值。

本公开还涉及一种用于将点云编码为流的设备。该设备包括与至少一个处理器相关联的存储器,该至少一个处理器配置为:

-为点云确定块数据项的第一列表,块数据项包括:

·标识投影中心的信息;

·空间范围的描述,根据投影中心、角度范围和深度范围定义该范围;以及,

·标识图片内区域的信息;

-生成包括图像块集合的图片,每个图像块通过根据投影中心将第一列表的块数据项的空间范围中包括的点云的点投影到图片上获得;以及

-将图片和块数据项的第一列表编码在流中。

本公开还涉及一种从流中解码点云的方法。该方法包括:

-从流中解码图片和块数据项的列表,该块数据项包括:

·标识投影中心的信息;

·空间范围的描述,根据投影中心、角度范围和深度范围定义该范围;以及,

·标识图片内区域的信息;

-根据标识列表的块数据项的图片内的区域的信息,从图片中对图像块进行解包;以及

-根据相关联的块数据项通过对每个解包的图像块的像素进行逆投影(un-projecting),对点云的点进行解码。

本公开还涉及一种用于从流中解码点云的设备。该设备包括与至少一个处理器相关联的存储器,该至少一个处理器配置为:

-从流中解码图片和块数据项,该块数据项包括:

·标识投影中心的信息;

·空间范围的描述,根据投影中心、角度范围和深度范围定义该范围;以及,

·标识图片内区域的信息;

-根据标识列表的块数据的图片内区域的信息,从图片中对图像块进行解包;以及

-根据相关联的块数据项通过对每个解包的图像块的像素进行逆投影,对点云的点进行解码。

附图说明

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

图1示出了根据本原理的非限制性实施例的点云10和在该点云上构建的表面11;

图2示出了根据本原理的非限制性实施例的表示三维场景的图像20,该三维场景包括被采集为如图1所示的点云的几个对象的表面表示;

图3图示了根据本原理的非限制性实施例的点云序列(例如,图2的点云)的编码、发送和解码的示例;

图4图示了根据本原理的非限制性实施例的根据投影中心的编码方法的第一迭代;

图5示出了根据本原理的非限制性实施例的图4的投影图41的图解示例;

图6图示了根据本原理的非限制性实施例的根据图5的投影中心的编码方法的第二迭代;

图7示意性地示出了根据本原理的非限制性实施例的由图6的剩余点云的可见点的投影产生的投影图;

图14示出了根据本原理的非限制性实施例的根据左侧的球面投影以及根据右侧的立方投影的如图5和图7的块数据项中所描述的空间范围;

图15图示了根据本原理的非限制性实施例的位于穿过投影中心的线(或平面)上的要编码的点云;

图16图示了根据本原理的非限制性实施例的根据另一投影中心处理的图15的点云;

图8示出了根据本原理的非限制性实施例的包括对图2的场景的点云的深度信息进行编码的图像块的图片;

图9示出了根据本原理的非限制性实施例的包括为图2所示的场景的点云所确定的块数据项列表的颜色图像块的图片;

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

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

图12图示了根据本原理的非限制性实施例的在被配置为图3的设备31的图10的设备10中,用于对流中的点云进行编码的方法;

图13图示了根据本原理的非限制性实施例的在被配置为图3的设备33的图10的设备中,用于从流解码点云的方法。

具体实施方式

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

本说明书示出了本公开的原理。因此,将理解,尽管未在本文中明确描述或示出,但本领域技术人员将能够设计出体现本公开原理的各种布置。

将参考对流中的点云序列进行编码的方法以及从流中解码点云序列的方法的特定实施例来描述本原理。

编码方法获得点云序列作为入口。在第一操作中,将序列的点云的点迭代地投影在至少两个投影图上以确定块(patch)。深度(即,点与用于投影图的投影中心之间的距离)存储在投影图的像素中。块对应于投影点的一部分,这些投影点定义了投影图中相邻像素的区域并且深度一致。如结合图14所描述的,在聚类中投影的点被包括在由角度范围和深度范围定义的空间的范围中。对于迭代,仅将从投影中心可见的点投影在投影图上。根据投影中心的坐标,对于两个投影图,投影的点云部分不同。根据块的连通性和深度将块聚类在投影图中,并将其添加到与对应的投影中心关联的块数据项的列表中。根据相关联的块数据项的列表选择投影中心中的一个。例如,选择聚类的平均尺寸较高的投影中心,比如,根据用于确定该聚类的点云的部分所占据的体积来确定聚类的尺寸。在变型中,选择与最小数目的聚类相关联的投影中心。将从所选择的投影中心可见的部分点云从点云中删除,并使用修改后的点云执行新的迭代,直到点云为空或块数据项列表已满。

在第二操作中,当选择的块数据项列表完成时,根据形成图像块的块数据项的点的投影将在图片中占据的尺寸,以给定的角分辨率(例如,每像素3秒或每像素5秒)将图像块布置在图片中。这种布置包括在图片中保留区域,用于投影(深度和颜色)与块数据项关联的点。所保留的区域的尺寸取决于图片的角分辨率和块数据项的角度范围。对区域在帧中的位置进行了优化,以不重叠地覆盖图片的帧。将所获得的图片与表示所选择的块数据项列表的数据相关联地编码在流中。块数据项包括所选择的投影中心的标识、对由相关联的角度范围和深度范围(即块的最小和最大深度)定义的空间范围的描述以及图片内相关联的图像块的位置。因此,图片包括对点深度信息进行编码的图像块。在变型中,图片或第二图片也对点颜色信息进行编码。在另一实施例中,被聚集为唯一点云的、序列的点云组被用作编码方法的入口点云。通过迭代操作获得的块数据项列表具有时间上一致的优点。表示该聚集点云的块数据项列表的唯一数据集在流中进行编码,并与图片组(groupofpictures,gop)相关联,为该组的每个点云生成图片。所生成的流具有与标准视频压缩和传输管道一致的优点。

解码方法获得该流作为入口。从流中解码出图片和表示块数据项列表相关联的数据。图片与块数据项的列表相关联。块数据项列表可以与图片组(gop)相关联。从图片序列中提取点云序列,该序列的点云是根据相关联的块数据项通过对图片中包括的图像块的像素进行逆投影而获得的。根据存储在像素中的深度信息、图像块中像素的坐标和块数据项来确定点的位置。根据存储在存储器中的投影中心组中所使用的投影中心的标识信息,从块数据项获得投影点的坐标。在变型中,从流中获得投影中心的坐标。确定相对于投影中心的角度以及点与投影中心之间的距离,并将该点放置在点云中。在变型中,图片或第二图片包括属于逆投影点的颜色信息。解码方法具有简单明了的优点,并且能够由处理器至少以视频帧速率执行。

图1示出了点云10和构建在该点云上的表面11。点云10对应于表示对象或对象组的外表面或外部形状的大量点集合。点云可以看作是基于矢量的结构,其中每个点都有其坐标。比如,矢量可以由以原点为中心的参照系中的三维坐标xyz定义。在另一示例中,矢量由径向坐标(θ,φ,d)定义,其中(θ,φ)表示相对于视点的三维方向,并且d表示视点与点之间的距离(也称为“深度”)。点还可以具有可以在任何颜色空间(例如rgb(红色、绿色和蓝色)或yuv(y是亮度分量,而uv是两个色度分量))中表示的颜色分量。可以从点云定义表面11。可以根据几种方法获得表面。比如,可以“喷溅(splat)”点。将这些喷溅点表示为圆盘,其分量(例如颜色)以正态(例如高斯)方式沿直径变化。平面圆盘形成平滑的表面。在变型中,可以基于由三角剖分,对点和由平滑网格定义的表面执行三角剖分。可以通过图形处理器来计算表面11。它用于从视点确定点的可见性。在图1的示例中,例如,在点云表示10上可见的下巴后面的颈部的某些点在表面表示11上不可见,因为表面填充了点之间的空间间隙。通过表面表示,可以确定点云的点是否从视点可见。

图2示出了表示三维场景的图像20,该三维场景包括被采集为点云的几个对象的表面表示。从与获取视点不同的视点生成图像20。例如,图像20右侧的角色不完整,他的左臂和后背的点不可用(例如,尚未采集)以完成表面表示。图像20上表示的场景可以分为两部分。包括可以在3dof视频中进行编码而不会降低观看体验的对象的第一部分可以在“背景”3dof视频流中进行编码。在图2中,背景部分包括场景的地板和墙壁。前景部分包括需要3dof+观看体验的对象。在图2的示例中,前景部分对应于角色和雕像。

图3图示了对点云序列进行编码、发送和解码的示例。根据本编码方法的原理,由编码器31将至少一个点云30的序列编码在流32中。解码器33从源获得流32。例如,源属于包含以下内容的集合:

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

-存储接口,例如与大容量存储、ram、闪存、rom、光盘或磁性载体的接口;

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

-用户接口,诸如图形用户接口,使用户能够输入数据。

解码器33根据解码方法对来自流32的点云34的序列进行解码。根据本原理,点云34的序列尽可能类似于点云30的序列。点云34的序列可以由渲染器35从源获得。渲染器35计算要显示的图像以用于3dof+视频观看体验。

图4图示了根据投影中心40的编码方法的第一迭代。在图4的示例中,点云包括三个对象42、43和44。对象42的点根据投影中心40形成具有正面和背面的表面。对象42的背面点从投影中心40不可见。对象43和44的点根据投影中心40形成仅具有正面的表面。对象43的点从投影中心40可见,而由于对象43的表面遮挡,对象44的仅一部分点从投影中心可见。在图1的示例中,根据唯一的投影中心执行第一迭代。结合图16描述了根据至少两个投影中心的编码方法的迭代。在编码方法的第一迭代中,并且对于投影中心,根据投影方法,将从投影中心可见的点云的点投影在投影图41上。在图4的示例中,投影方法是球面投影,例如纬度/经度投影或等角投影(也称为erp),因此投影图在图4中表示为球形。在变型中,投影方法是立方投影方法、金字塔投影方法或根据投影中心确定的任何投影方法。将对象42的前面的点投影在投影图的区域45中。对象42的背面点未被投影,因为它们从投影中心40不可见。对象43的每个点都从投影中心40可见。根据投影方法将它们投影在投影图41的区域46上。对象44的点的仅一部分点从投影中心40可见。将对象44的可见点投影在投影图41的区域47上。

图5示出了图4的投影图41的图解示例。区域45的像素存储相对于对象42的可见点的深度信息;区域46的像素存储相对于对象43的可见点深度信息;以及区域47的像素存储相对于对象44的可见点的深度信息。执行像素聚类操作以根据深度信息对投影图41的相邻像素聚类。像素45构成可以由矩形55界定的相邻聚类。像素46和47构成投影图41的相邻区域。然而,区域46和区域47的像素在它们存储的深度值上不同。像素46的深度值明显小于像素47的深度值。根据编码方法的本原理,根据聚类的连接和深度值来确定聚类。由于像素46的深度和像素47的深度之间存在间隙,因此将它们分组在不同的聚类中。这两个聚类可以被表示为矩形56和57。聚类操作可以吸收这两个区域之间的高频区域,并且矩形56和57可以稍微重叠。由聚类操作定义的矩形区域作为块数据项存储在存储器中。例如,针对矩形57的块数据包括根据投影中心40的对象44的可见点的角度范围([θmin,θmax],[φmin,φmax]);θmin是根据投影中心的块的点的径向坐标的最左侧的值,θmax是最右侧的值,φmin是最下方的值,φmax是最上方的值。像素区域的深度范围[ρmin,ρmax]也被记录在块数据中,其中ρmin是最靠近投影中心40的点的深度,并且ρmax是距投影点40最远的点的深度。块数据项的这一分量有助于编码,以增加为深度编码保留的字节范围的动态。在变型中,聚类操作提供椭圆区域,并且块数据项包括表示椭圆区域的数据。将块数据项添加到与投影中心关联的块数据项列表。在此步骤中,从投影中心可见的点云的点已被投影到投影图上,并从点云中被删除,以免在编码方法的进一步迭代中被投影。

图6图示了根据投影中心40的编码方法的第二迭代。在此步骤,已经从点云中删除了已被投影的点。从对象的点,剩余了形成对象42的背面的点62。对象43的每个点由于已经被投影都已从点云中删除,而对象44的点64仍待投影。迭代结合图4描述的可见点的投影。

图7示意性地示出了由图6的剩余点云的可见点的投影产生的投影图。矩形72界定了与点62的投影对应的聚类。矩形74界定了与点64的集合的可见点的投影对应的聚类。在图7的示例中,确定两个的新的块数据项,每个块数据项包括投影中心(图4至7的示例中的中心40)的标识、在块数据项的聚类中投影的点所占据的空间范围的描述,该范围是根据投影中心、角度范围([θmin,θmax],[φmin,φmax])和深度范围[ρmin,ρmax]确定的。将已投影的点从点云中删除。在该迭代之后,点云仅包括点64的一部分。参考如图4至7所描述的,执行剥离(peeling)操作的第三迭代。

剥离操作旨在根据一个投影中心确定针对点云的块数据项列表。该操作可以分为三个步骤。在每次迭代中,对于投影中心:

i.将点云中尚未处理的、称为“活动集”的部分投影在低分辨率投影图上,其原点设置在投影中心。在图4至7的示例中,所选择的投影方法是等矩形投影。在变型中,投影方法可以是另一种球面投影方法,例如纬度/经度投影或立方投影或金字塔投影,或者是根据投影中心确定的任何投影方法。投影图的分辨率低(例如,每度1个像素或每度2个像素),以防止聚类操作生成太少的聚类,从而产生过多的块数据项。

ii.然后,在投影图中执行聚类操作以标识同质(homogeneous)区域。在图4至图9的示例中,标识的区域是矩形。在变型中,标识的区域可以具有椭圆形形状。区域p覆盖发生投影并且深度一致的投影图的相邻像素的集合。深度一致性检查归结为考虑投影中心与由p覆盖的每个投影点之间的距离z,并确保这些像素的距离范围不深于阈值t。此阈值可以取决于zmax(视点与由p覆盖的投影像素之间的最大距离)、取决于存储在通过进一步的生成操作生成的图片中的深度的动态d,以及取决于感知属性。例如,典型的人类视敏度大约为三分钟的弧度。根据这些标准确定阈值t具有几个优点。一方面,在进一步的生成操作中生成的图片中的图像块将覆盖与所生成的图片的像素的深度分辨率一致的深度范围(例如10比特或12比特),并且因此对于压缩伪影是鲁棒的。另一方面,深度范围由3dof+上下文感知地驱动。确实,人类的视觉并不能平等地感知近点或远点的距离。作为示例,阈值可以根据公式[公式1]定义。

其中va是视敏度的值。

iii.包括活动点集的点的空间范围存储在新创建的块数据项中;该范围是根据投影中心、区域p覆盖的投影点的角度范围和深度范围确定的。将这些点从活动点集中丢弃。如果活动点集为空,则剥离过程完成。

一旦已经确定了块数据项列表,就将点云的每个点与一个块数据项配对,该块数据项属于与块数据项相关联的范围。

图14示出了根据左边的球面投影和右边的立方投影的块数据项中所描述的空间范围。在图14的左侧,根据球面投影方法,每个块数据项包括与空间范围140对应的数据,该空间范围140由以投影中心141为中心的同心球的两个部分界定。该范围的特征在于,第一,角范围142,由属于[-π;π]弧度的[θmin,θmax]和属于[-π/2;π/2]弧度的[φmin,φmax]定义,以及第二,深度范围143[ρmin,ρmax]。对于图14右侧的立方投影方法,使用相同的描述。空间140的范围由指向投影中心141的四边形截顶金字塔界定,并以角度范围142和深度范围143为特征。这样的投影方法(例如等角投影)仅取决于角度。远离投影中心的大对象在投影图中可能会与小的近距离对象占据相同的区域。因此,根据本原理,可以根据从投影中心开始的对象的重要性而不是根据投影对象的固有尺寸来调整块的尺寸。这样的属性符合3dof+上下文。

图15图示了位于通过投影中心的线(或平面)上的要编码的点云。图15图示了结合图4至图7描述的迭代剥离过程可能非常长的配置。在第一迭代中,从投影中心150仅可见点151。对此唯一点151确定块数据项。将点151从点云中删除,并且现在点152是从投影中心可见的点云的唯一点。再次,针对非常小的点集(图15的示例中的唯一点)确定块数据项。对于点153、154和155重复该问题,在要编码的图片中生成大量的块数据项和大量的图像块。点云的点相对于投影中心的这种配置并不罕见。

图16图示了根据另一投影中心处理的图15的点云。点云的每个点从投影中心160都可见。将它们投影在投影图的区域161上,并且对于点云的五个点仅确定一个块数据项。

根据本原理,确定包括至少两个投影中心的投影中心组。将该组的投影中心的坐标设置在例如在对体积场景进行编码的视点附近。在剥离操作的每次迭代中,对于该组的每个投影中心,将从投影中心可见的点云的点投影到与投影中心关联的投影图上。执行聚类操作,并选择投影中心中的一个。可以根据由块数据项描述的块的数量和/或尺寸来执行在该组的投影中心中选择一个投影中心。例如,可以考虑选择具有较大的空间范围和最少数量的块数据项的投影中心。例如,选择具有列表的块数据项中描述的空间范围的平均体积最高的投影中心。在变型中,所选择的投影中心是聚类在投影图上覆盖的区域最高的投影中心。定义了在组中选择投影中心的标准,以便通过加速剥离过程来优化编码过程,并通过最小化由要编码的图片中的图像块边界引起的高频来降低总体比特率。

在实施例中,投影中心组包括四个不共面的投影中心。四个不共面的投影中心的确定允许防止剥离操作的低收敛性的任何影响,因为点云的三维配置不能与四个不共面的点对齐。例如,可以确定组的四个投影中心的坐标以在对体积场景进行编码的视点周围形成四面体。四面体可以被包括在观看空间中(即,在3dof+观看条件下用户可以在其中移动其头部的视点周围的体积)。

将当前迭代中为所选择的投影中心确定的块数据项添加到点云的块数据项列表中,并将从所选择的投影中心可见的点从点云中删除,以准备剥离操作的下一次迭代。每个块数据项存储根据其已经被确定的投影中心的标识,因为相应的图像块将被打包在图片中,而无需考虑投影中心。

图8示出了包括对图2的场景的点云的深度信息进行编码的图像块的图片。在该示例中,已经对图2的场景的点云进行了剥离操作。已经根据四个不共面的投影中心组确定了块数据项的列表。图像块具有称为“图集(atlas)分辨率”的分辨率,该分辨率定义了点云编码的质量。例如,每度从18至25像素的图集分辨率允许在包含大量图像块(例如500或600个块)的2048×2048像素图片中对复杂的场景(例如图2中的场景)进行编码。该分辨率越低,最终质量越差。为了确保图像块在图片的网格上的良好对齐,可以将投影图分辨率选择为图集分辨率的积分除法器(integraldivider)。

执行图像块的打包操作。存在许多启发式算法来解决将矩形单元打包成矩形箱(即要生成的图片)的np完全问题,比如的“打包箱的千种方法”中描述的算法,或以较低的计算成本提供了较好的填充率的“maxrects”算法(即“单箱一最佳短边优先”配置)。在打包操作结束时,将图像块在图片中的位置(x,y)(例如,左下角位置),以及根据打包算法,指示图像块是否已旋转的布尔值被分配给块数据项列表的每个块。可以通过在视频编码器的编码单元上对块进行对齐来优化打包,以改善解码阶段。图8示出了在其中是针对图2所示的场景的点云确定的块数据项的列表的打包的图像块的图片。图8的图片的像素包括深度信息(即,点云的点与投影中心之间的距离)。

图9示出了根据本原理的非限制性实施例的图片,该图片包括针对图2所示的场景的点云确定的块数据项的列表的颜色图像块。在实施例中,将深度和颜色信息编码在唯一图片的像素中。在另一实施例中,将深度和颜色信息编码在两个图片中。

根据本原理,将点云序列中的点云编码为包括与表示块数据项列表的数据相关联的打包图像块的图片。将点云编码为与数据关联的图片具有与标准压缩和传输视频管道一致的优势。通常出于压缩的原因,在图片组(gop)中收集一系列图片。根据本编码方法的实施例,将要编码的点云序列中的连续点云被收集在一起作为唯一点云。该分组的点云经历剥离操作和打包操作。为该组中的每个点云确定块数据项的唯一列表。对整个gop计算图片的打包结构。在一个图片组中保留这种结构,因为它会显着降低视频编码的比特率,尤其是在将编码器设置为禁用开放的图片组(open-gop)优化时。颜色和深度图片包括图像块上每个点的喷溅投影的结果。在流中对图片组的图片和表示块数据项列表的数据进行编码。

图10示出了可以被配置为实现结合图12和/或13描述的方法的设备10的示例架构。设备10可以被配置为图3的编码器31,解码器33和/或渲染器35。

设备10包括以下由数据和地址总线101链接在一起的元件:

-微处理器102(或cpu),例如,dsp(或数字信号处理器);

-rom(或只读存储器)103;

-ram(或随机存取存储器)104;

-存储接口105;

-i/o接口106,用于从应用程序接收要发送的数据;以及

-电源,例如电池。

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

ram104包括寄存器中由cpu102运行并在设备10开启之后上载的程序、寄存器中的输入数据、寄存器中处于该方法的不同状态的中间数据以及寄存器中用于运行该方法的其他变量。

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

根据图3的编码或编码器31的示例,从源获得至少一个点云30的序列。例如,源属于包括以下内容的集合:

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

-存储接口(105),例如与大容量存储、ram、闪存、rom、光盘或磁性载体的接口;

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

-用户接口,诸如使用户能够输入数据的图形用户接口。

根据图3的解码或解码器的示例,将流发送到目的地。具体地,目的地属于包括以下内容的集合:

-本地存储器(103或104),例如视频存储器或ram、闪存、硬盘;

-存储接口(105),例如与大容量存储、ram、闪存、rom、光盘或磁性载体的接口;以及

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

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

根据图3的解码或解码器或渲染器35的示例,从源获得比特流。示例性地,从本地存储器例如视频存储器(104)、ram(104)、rom(103)、闪存(103)或硬盘(103)读取比特流。在变型中,从存储接口(105)(例如具有大容量存储、ram、rom、闪存、光盘或磁性载体的接口)接收比特流,和/或从通信接口(105)(例如至点对点链路、总线、点对多点链路或广播网络的接口)接收比特流。

根据示例,设备10被配置为实现结合图12描述的方法,并且属于包括以下各项的集合:

-移动设备;

-通信设备;

-游戏设备;

-平板(或平板电脑);

-笔记本电脑;

-静态图片相机;

-摄像机;

-编码芯片;

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

根据示例,设备10被配置为实现结合图13描述的渲染方法,并且属于包括以下内容的集合:

-移动设备;

-通信设备;

-游戏设备;

-机顶盒;

-电视机;

-平板(或平板电脑);

-笔记本电脑;和

-显示器(诸如例如hmd)。

图11示出了当通过基于分组的传输协议来传输数据时的流的语法的实施例的示例。图11示出了体积视频流的示例结构1100。该结构包含一个容器,该容器以独立的语法元素组织流。该结构可以包括头部部分1101,该头部部分是对于该流的每个语法元素公共的数据集。例如,头部部分包括关于语法元素的元数据,描述了每个语法元素的性质和作用。头部部分还可以包括用于编码的投影中心的坐标以及关于图片的尺寸和分辨率的信息。该结构包括载荷,该载荷包括语法元素1102和1103。第一语法元素1102包括表示包括图像块的图片的数据。图片可以已经根据视频压缩方法而被压缩。图片与第二语法元素1103的块数据项的列表相关联。在实施例中,第一语法元素包括图片对序列、一个图片编码深度信息、成对的图片编码颜色信息。第二语法元素包括表示与第一语法元素1102的图片相关联的块数据项的列表的数据。块数据项的列表可以与图片组相关联。块数据项包括投影中心的标识、根据投影中心确定的空间范围的描述、角度范围和深度范围以及至少一张图片中对应的图像块的形状和位置的描述。

出于说明目的,在isobmff文件格式标准的上下文中,通常会在moov类型的框中的isobmff轨道中引用颜色图、深度图和元数据,而颜色图和深度图数据本身嵌入在mdat类型的媒体数据框中。

图12图示了根据本原理的非限制性实施例的在被配置为图3的设备31的设备10(参照图10描述)中用于对流中的点云进行编码的方法。

在步骤1200中,对设备10的不同参数进行更新。具体地,从源获取点云,在点云的空间中确定投影中心组,对该组中每个投影中心初始化投影方法,确定投影图和图片的尺寸和分辨率并创建块数据项的空列表。

执行确定操作1201的块数据项列表。该操作是包括步骤1202、1203和1204的迭代过程。在步骤1202中,对于投影中心组的每个投影中心,根据投影方法将从投影中心可见的点云的点投影在对应的投影图上。投影图的分辨率低(例如,每度1个像素或每度2个像素),以防止聚类步骤1203生成太少的聚类,从而产生过多的块数据项。在步骤1203中,根据深度信息对投影图的相邻像素进行聚类。根据由聚类确定的块数据项列表选择投影中心中的一个。定义了在组中的其他投影中心中选择投影中心的标准,以便通过加速剥离过程来优化编码过程,并通过最小化由要编码的图片中的图像块边界引起的高频来降低总体比特率。将与所选择的投影中心关联的块数据项添加到正在构建的块数据项列表中。执行迭代直到点云为空。在变型中,迭代操作1201直到块数据项的列表变满为止。当对列表中的块数据项的图像块进行编码所需的区域大于箱(即,在操作1205中将在其中布置图像块的图片)的区域时,认为块数据项的列表是满的。

一旦确定了块数据项列表,就执行打包操作1205,从而导致图片的生成。将点云的点投影在图像块中,图像块具有与图片相同的分辨率。将图像块以优化的方式布置在图片中。

在步骤1206中,根据结合图11描述的语法在流中对图片和相关联的块数据项列表进行编码。可以对点云序列中的其他点云重复编码方法。在本原理的实施例中,将被收集为唯一点云的、序列的点云组用作编码方法的入口点云。确定对于所生成的图片组的图片公共的块数据项列表,并将其与整个图片组相关联地、一次编码到流中。

图13图示了根据本原理的非限制性实施例的在被配置为图3的设备33的设备10(参照图10描述)中用于从流中解码点云的方法。

在步骤1300中,更新设备10的不同参数。具体地,从源获得流,在点云的空间中确定投影中心组,并初始化逆投影方法。例如,从存储器获得组的投影中心的坐标。在变型中,从流中解码组的投影中心的坐标。

在步骤1301中,从流中解码图片和块数据项列表。块数据项的列表可以与图片组相关联。块数据项包括该组的投影中心中的一个的标识、由投影中心定义的空间范围的描述、角度范围和深度范围以及标识相关联的图片内的区域的信息。图片包括打包在图片的像素网格中的图像块集合。在步骤1302中,根据块数据项从图像中对图像块进行解包。标识包括在每个块数据项中的图片内的区域的信息描述了图片的像素网格中的图像块的位置和形状。将此信息、块数据项的角度范围和图片分辨率用于对图像块进行解包。块数据项还包括在步骤1303处使用的深度范围。每个解包的图像块与对应的块数据项相关联。在步骤1303中,根据相关联的块数据项对解包的图像的像素进行逆投影。根据深度范围对存储在像素中的深度信息进行解码,该深度范围允许最佳地使用像素的动态,该深度例如被编码为10比特或12比特。然后根据图像块内像素的坐标、所标识的投影中心的坐标、角度范围和解码的深度来计算解码的点在空间中的位置。例如根据图像块的参照系内的像素坐标和包含在相关联的块数据项中的角度范围([θmin,θmax],[φmin,φmax]),对根据投影中心的点的方向进行线性插值。从与投影中心的距离对应所确定的深度处,沿确定的方向对该点进行投影。如果图片的像素存储颜色值,或者如果将颜色值存储在与深度图片配对的图片中,则将该颜色值分配给所投影的点。

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

特别地,本公开不限于用于对承载表示体积场景(即,三维点云的序列)的数据的流进行编码/解码的方法和设备,而是还扩展到对二维点云的序列进行编码/解码的方法,以及实现这些方法的任何设备,并且尤其是包括至少一个cpu和/或至少一个gpu的任何设备。

本公开还涉及一种用于显示从包括表示体积场景的信息的数据流渲染的图像的方法(和配置的设备),并且涉及一种用于用平面(flat)视频渲染和显示对象的方法(和配置的设备)。

本公开还涉及用于发送和/或接收流的方法(和配置的设备)。

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

本文描述的各种过程和特征的实施方式可以体现在各种不同的设备或应用中,尤其是例如与数据编码、数据解码、视图生成、纹理处理以及图像和相关的纹理信息和/或深度信息的其他处理的设备或应用。此类设备的示例包括编码器、解码器、处理解码器的输出的后处理器、为编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、笔记本电脑、个人计算机、手机、pda和其他通信设备。应当清楚,设备可以是移动的,甚至可以安装在移动车辆中。

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

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

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

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