掌桥专利:专业的专利平台
掌桥专利
首页

流式传输体积视频和非体积视频

文献发布时间:2023-06-19 12:10:19


流式传输体积视频和非体积视频

技术领域

本发明涉及一种用于生成用于由客户端设备例如在增强现实或虚拟现实环境中显示的复合视频流的方法和处理器系统。本发明进一步涉及一种计算机可读介质,该计算机可读介质包括用于生成复合视频流的信号传递数据。本发明进一步涉及一种表示用于渲染复合视频流的客户端设备的方法和处理器系统。本发明进一步涉及一种用于执行该方法的计算机程序。

背景技术

可能期望将体积视频和非体积视频传输到客户端设备以供客户端设备同时显示。

这种场景例如可能发生在虚拟现实(VR)和增强现实(AR)领域。这里,VR涉及使用计算机技术来模拟用户在虚拟环境中的物理存在,而AR是指使用计算机技术、通过将虚拟环境叠加在用户对物理现实世界环境的视图上或以另一方式将虚拟环境与用户对物理现实世界环境的视图相结合来增强用户对物理现实世界环境的视图。通常,VR和/或AR渲染设备利用头戴式显示器(HMD)向用户渲染虚拟环境,但特别是在VR中,还可以使用其他类型的显示器和渲染技术,包括但不限于全息术和洞穴状自动虚拟环境(递归首字母缩写CAVE)。

VR/AR可以用于渲染由三维(3D)图形表示(例如,被定义为一组顶点、边、面等)的场景。

然而,在许多情况下,可能期望在VR中建立场景的基于视频的表示。例如,视频可以是现实生活场景的视频记录,或者是通过虚拟场景的计算机生成的图像(CGI)获得的视频等。在一些情况下,视频可以表示全景或全向视频,该全景或全向视频可以提供场景的大视场,例如,允许用户在场景内“环顾四周”。对场景的这种基于视频的表示的渲染可以涉及将视频的图像数据显示在虚拟主体(比如球体)内部,并然后从该虚拟主体内的或面向该虚拟主体的视点进行渲染。例如,在VR中的多用户通信会话(也被称为“社交VR”)中,热带岛屿的全向视频可以用作该多用户通信会话的“虚拟背景”,方法是将该视频投影到球体内部并将表示该多用户通信会话的用户的头像放置在该球体内部,从而为每个用户提供热带岛屿上其他参与者的视图。参见例如[1],其描述了这种“社交VR”用例,尽管是基于图像而不是基于视频的背景。

视频通常是被记录并且旨在从特定视点观看的2D视频或立体3D视频。然而,为了AR和VR两者中的更沉浸式的体验,观看者可能期望六自由度(6DoF)。也就是说,例如,当佩戴头戴式AR或VR显示器时,观看者在向各个方向移动他/她的头部时(例如,当与通过旋转的定向变化组合地向前/向后(涌动)、向上/向下(起伏)和向左/向右(摇摆)改变头部位置时)可以体验到环境的变化。

众所周知,体积3D视频可以为观看者提供6DoF体验。体积3D视频格式的示例(在下文中也被简称为体积视频格式)例如在[2]中进行了描述,并且可以包括伽柏全息图(Gaborholograms)、光场、点云和其他视频格式。

然而,无论是在VR/AR领域还是在其他领域,体积视频尚未广泛分布,部分原因是合适的源材料的可用性有限(例如,相机记录和/或深度配准,例如通过深度传感器或激光),但也由于技术考虑,例如因为体积视频可能表示大量数据,并且因此可能需要大量存储、带宽以及编码和解码能力。

出于这种和类似的原因,可能期望使用2D视频或立体3D视频(以下统称为“非体积”视频)与体积视频的一个或多个所选实例的组合。体积视频的这种实例可以表示感兴趣的3D对象。例如,在多用户通信会话的上述用例中,参与者的头像可以替代地由每个参与者的体积捕获来表示,例如,可以使用比如Microsoft Kinect等3D传感器相机获得。

体积视频的具体示例可以是3D点云视频。通常,点云可以定义为坐标系中的一组数据点,并且通常用于测量和表示物理世界表面。通常,3D点云在例如具有X、Y和Z坐标的笛卡尔坐标系中定义。这种3D点云的时间系列也可以简称为3D点云

压缩技术可以应用于体积视频以减少要存储、传输等的数据量。例如,对于3D点云,可以使用所谓的点云压缩(PCC)[3]。然而,PCC和类似技术当前还没有针对例如从服务器到客户端设备的流式传输进行优化。另外地,客户端设备现在可能要接收多个经压缩和经编码的数据流,即表示非体积视频的比特流和单独地表示体积视频的比特流。对于客户端设备而言,同时接收和解码多个比特流可能具有挑战性。例如,体积视频流的解码在计算上可能更复杂,例如,因为其可能必须在软件中执行而不是依赖于硬件支持,例如专用图形处理单元(GPU)支持。这种硬件支持通常可用于解码非体积视频。相关的问题可能是传输这两种比特流需要相对较大的带宽。

参考文献

[1] M. J. Prins、S. Gunkel和O. Niamut,“

[2] Philip A. Chou,“

[3] MPEG点云压缩(PCC组):https://mpeg.chiariglione.org/standards/mpeg-i/point-cloud-compression。

发明内容

例如,与单独的非体积视频流和单独的体积视频流的流式传输相比,能够以减小的带宽将非体积视频和体积视频流式传输到客户端设备将是有利的。另外地或可替代地,例如,与对单独的非体积视频流和单独的体积视频流的解码相比,使客户端设备能够以降低的计算复杂度解码非体积视频和体积视频将是有利的。

以下措施可以基于这样的考虑:非体积视频的编码、流式传输和解码技术可以被视为是成熟和优化的,而用于体积视频的这种技术可能仍是新兴的。另外,应考虑到的是体积视频通常可以在非体积视频的前面显示,比如在前述“社交VR”示例中,其中用户的体积视频记录可以在表示场景的“虚拟背景”的非体积视频的前面显示。

根据本发明的第一方面,提供了一种可以被配置用于生成用于传输到客户端设备的复合视频流的处理器系统。该处理器系统可以包括:

- 到网络的网络接口;

- 输入接口,该输入接口用于获得:

- 非体积视频;以及

- 体积视频,该体积视频的至少一部分要由该客户端设备在该非体积视频的前面显示;

- 处理器,该处理器可以被配置成进行以下操作:

- 确定该非体积视频的空间子区域,当该体积视频由该客户端设备在该非体积视频的前面显示时,该空间子区域被部分或完全遮挡;并且

- 针对该非体积视频和该体积视频的相应输入帧,通过以下操作为该客户端设备生成复合视频:

- 获得该体积视频的非体积表示,该非体积表示是使用转换技术生成的,该转换技术允许从该非体积表示重构该体积视频;

- 用该体积视频的非体积表示的数据替换该非体积视频的空间子区域的数据,从而获得该复合视频的输出帧;

并且经由该网络接口:

- 将该复合视频作为复合视频流或将该复合视频流的所选空间片段流式传输到该客户端设备;并且

- 将信号传递数据提供到该客户端设备,该信号传递数据指示该复合视频流包含该体积视频的非体积表示。

根据本发明的另外的方面,提供了一种可以生成用于传输到客户端设备的复合视频流的计算机实施的方法。该方法可以包括:

- 获得:

- 非体积视频;以及

- 体积视频,该体积视频的至少一部分要由该客户端设备在该非体积视频的前面显示;

- 确定该非体积视频的空间子区域,当该体积视频由该客户端设备在该非体积视频的前面显示时,该空间子区域被部分或完全遮挡;

- 针对该非体积视频和该体积视频的相应输入帧,通过以下操作为该客户端设备生成复合视频:

- 获得该体积视频的非体积表示,该非体积表示是使用转换技术生成的,该转换技术允许从该非体积表示重构该体积视频;

- 用该体积视频的非体积表示的数据替换该非体积视频的空间子区域的数据,从而获得该复合视频的输出帧;

- 将该复合视频作为复合视频流或将该复合视频流的所选空间片段流式传输到该客户端设备;以及

- 将信号传递数据提供到该客户端设备,该信号传递数据指示该复合视频流包含该体积视频的非体积表示。

根据本发明的另外的方面,提供了一种可以表示被配置成在非体积视频的前面渲染体积视频的客户端设备的处理器系统。该处理器系统可以包括:

- 到网络的网络接口;

- 处理器,该处理器可以被配置成经由该网络接口进行以下操作:

- 接收包含该非体积视频的复合视频流或该复合视频流的所选空间片段;

- 接收信号传递数据,该信号传递数据指示该复合视频流在该非体积视频的空间子区域中包含该体积视频的非体积表示;

- 其中,该处理器可以被配置成针对该复合视频流的相应输入帧,通过以下操作来渲染该复合视频流:

- 解码该复合视频流或该复合视频流的所选空间片段;

- 基于该信号传递数据,标识该输入帧中该体积视频的非体积表示;

- 使用重构技术从该体积视频的非体积表示重构该体积视频;以及

- 在该非体积视频的前面渲染该体积视频,使得该非体积视频的空间子区域被该体积视频部分或完全遮挡。

根据本发明的另外的方面,提供了一种可以在非体积视频的前面渲染体积视频的计算机实施的方法。该方法可以包括:

- 接收包含该非体积视频的复合视频流或该复合视频流的所选空间片段;

- 接收信号传递数据,该信号传递数据指示该复合视频流在该非体积视频的空间子区域中包含该体积视频的非体积表示;

- 针对该复合视频流的相应输入帧,通过以下操作来渲染该复合视频流:

- 解码该复合视频流或该复合视频流的所选空间片段;

- 基于该信号传递数据,标识该输入帧中该体积视频的非体积表示;

- 使用重构技术从该体积视频的非体积表示重构该体积视频;以及

- 在该非体积视频的前面渲染该体积视频,使得该非体积视频的空间子区域被该体积视频部分或完全遮挡。

根据本发明的另外的方面,提供了一种包括计算机程序的暂态或非暂态计算机可读介质。该计算机程序可以包括用于使处理器系统执行计算机实施的方法之一或两者的指令。

上述措施可以涉及为客户端设备生成复合视频流。该复合视频流可以将体积视频和非体积视频组合成一个流。该体积视频可以至少部分地由该客户端设备在该非体积视频的前面显示。这里,术语“前面”可以指体积视频和非体积视频的相对显示,当体积视频和非体积视频两者均由客户端设备显示时,该相对显示导致非体积视频的一部分被部分或完全遮挡。例如,用户的体积视频记录可以在表示场景“虚拟背景”的非体积视频的前面显示,并且从而完全或在一定程度上遮挡了非体积视频的一部分。这里,术语“在一定程度上”可以指例如由于体积视频的透明性而局部降低底层非体积数据的可见性的遮挡。

上述措施可以进一步涉及确定该非体积视频的空间子区域,当该体积视频由该客户端设备在该非体积视频的前面显示时,该空间子区域被部分或完全遮挡。例如,空间子区域可以基于从客户端设备接收到的信号传递数据来确定,或者生成复合视频流的处理器系统可以固有地知道这种信息,例如,通过处理器系统本身规定非体积视频和体积视频到客户端设备的相对显示位置,例如,由于处理器系统充当协调器。

上述措施可以进一步涉及使用允许从非体积表示重构体积视频的转换技术来生成体积视频的非体积表示。这种转换技术本身是已知的。例如,可以使用被称为基于补丁的点云压缩的转换技术将3D点云视频转换为非体积(2D)视频。这种类型的转换通常可以允许从其非体积表示完美地(例如,无损重构)或不完美地(例如,有损重构)重构体积视频,例如通过应用概念上与转换技术相反的技术(其也被称为“重构技术”)。在一些实施例中,体积视频的非体积表示可以已经由另一个实体(例如,捕获设备)生成,并且体积视频的非体积表示然后可以由处理器系统访问。体积视频的非体积表示的这种生成或访问可以统称为“获得”所述非体积表示。

然后可以将体积视频的非体积表示插入到非体积视频中,即通过用体积视频的所述非体积表示的数据替换非体积视频的先前标识的空间子区域中的数据。有效地,非体积表示的数据可以替换非体积视频的一部分的数据,该部分不能以任何方式对用户可见,因为其在显示期间将被体积视频完全或部分遮挡。此空间子区域中的现有图像数据因此可以被非体积表示的一些或全部数据替换而不会显著损害非体积视频的后续显示。在一些实施例中,这种替换可以包括在非体积视频的空间子区域中插入体积视频的非体积表示的数据。这种插入可以涉及例如在逐像素、逐块或逐片段基础上用所述非体积表示的数据替换空间子区域中的非体积视频的现有图像数据。在逐片段基础上的替换的示例是在逐图块基础上的替换。在其他实施例中,可以去除空间子区域中的非体积的数据,并且可以将体积视频的非体积表示的数据添加到非体积视频的其他地方。

如果体积视频的非体积表示被插入到非体积视频的空间子区域中,例如,作为“插入的数据”,则在非体积视频的后续显示期间,这种插入的数据本身可能不可见,因为非体积视频的空间子区域可能被从插入的数据重构的体积视频完全或部分遮挡。

通常,体积视频的非体积表示的数据可能不可被用户识别为表示体积视频,但可以被插入,就好像其是图像数据一样。

可替代地,如果非体积视频的视频格式或所得的复合视频或复合视频流的视频格式支持层或概念上类似的技术,则可以将非体积表示的数据作为覆盖原始图像数据的层插入空间子区域中。

通过例如在逐帧基础上执行插入,可以获得复合视频,该复合视频可以被视为非体积复合视频,因为其包含非体积视频和体积视频的非体积表示,并且其可以以复合视频流的形式流式传输到客户端设备。出于此目的,可以对复合视频进行编码以获得复合视频流。可替代地,非体积视频以及体积视频的非体积表示可以被单独地编码,并且复合视频流可以通过例如在所谓的空间分段编码的情况下在逐片段基础上来组合两种编码而生成。

然后,复合视频流可以全部或作为所选空间片段(例如,在给定客户端设备的用户在例如VR环境中的当前视场(‘视口’)的情况下,仅对该用户可见的那些空间片段)而流式传输到客户端设备。作为所选空间片段而流式传输的概念在VR中也称为“视口流式传输”(VAS)。VAS的具体示例是“图块化流式传输”。通常,在提及空间片段时,术语“所选”可以指空间片段中的“一个或多个”。

另外地,可以将信号传递数据提供到该客户端设备,该信号传递数据可以指示复合视频流包含该体积视频的非体积表示。例如,信号传递数据可以标识复合视频流包含体积视频的非体积表示的数据的事实,并且如果该数据被特别地插入到空间子区域中,则标识空间子区域本身和/或所使用的转换技术。

与必须接收至少两个单独的视频流(例如,非体积视频流和体积视频流)的客户端设备相比,上述措施可以为客户端设备提供一个或多个优点。例如,客户端设备可能仅需要解码复合视频流,并且从而解码较少的视频流。这可以提供与仅具有一个硬件解码器的客户端设备的兼容性。此外,通过将体积视频转换为其非体积表示,可以对体积视频进行编码、传输和解码,就好像其是“常规”非体积视频,例如2D视频一样。因此可以不必修改编码、传输和解码或通常所使用的视频工作流或视频管线来支持体积视频。相反,编码侧能够在编码之前将体积视频转换为非体积表示并且客户端设备能够在解码之后从非体积表示重构体积视频可能就足够了。此外,复合视频流可以省略非体积视频中被体积视频流遮挡的部分,并且因此其大小可以小于非体积视频流和附加的体积视频流(因为非体积视频流包含当例如在VR环境中显示时被或将被体积视频流遮挡的图像数据)。这可以降低解码的计算复杂度以及用于接收和缓冲的带宽要求和存储要求。此外,如果存在由比如前述处理器系统等实体集中插入的几个体积视频流,则客户端设备将仅需要接收和解码复合视频流,而不必单独地接收和解码可能来自不同实体的体积视频流。

带宽优点还可以适用于通过其将复合视频流传输到客户端设备的(接入)网络。

在这方面,注意,通常,不是所有的体积视频流都可以被“插入”到非体积视频中,而是仅该体积视频的一部分(可能是实质部分)可以被“插入”到非体积视频中。对体积视频的“转换”、“插入”、“渲染”等的任何提及应理解为包括仅应用于体积视频的一部分(实质部分)的所述动作。例如,如果体积视频包含多用户通信会话的用户以及他/她附近环境的体积记录,则仅表示用户的数据可以被插入到非体积视频中,而省略了他/她周围环境的数据的插入。

通常,体积视频可以被视为“前景视频”,并且非体积视频可以被视为“背景视频”,因为体积视频可以由客户端设备在非体积视频的前面显示。然而,术语“前景”和“背景”在技术上并不对相应视频的(语义)内容进行限制,而是指显示顺序,因为前景视频流要在背景视频的“前面”显示。例如,背景视频通常可以包含场景的背景,但是背景视频还可以包括一个或多个前景对象。作为具体示例,在VR多用户通信布景中,背景视频流可以提供会议室的背景以及前景中的桌子,而前景视频可以是参与VR多用户通信会话的用户的实时体积视频。同样,体积“前景”视频本身可以被另一个前景对象(比如另一个体积视频、3D图形对象等)部分或完全遮挡。例如,用户的实时体积视频可以被例如由3D图形对象表示的桌子部分遮挡,以传达用户坐在桌子后面的印象。

在上文和下文中,术语“渲染”可以指可以处理输入数据以获得可显示数据的操作。在一些实施例中,输入数据可以不表示可显示数据。在其他实施例中,输入数据本身可以表示可显示数据,但是渲染可以提供另一种类型的可显示数据。这种渲染可以包括但不限于基于中央处理单元(CPU)的渲染和基于图形处理单元(GPU)的渲染。

通常,前景视频可能比背景视频更具动态性。因此,可以实时获得前景视频,而可以预先记录背景视频。然而,这不是限制,因为也可以实时获得(例如,实况记录)背景视频,和/或可以可替代地预先记录前景视频。两个或任一个视频可以已经作为视频流获得,例如,以可流式传输和编码的形式。

以下实施例是参考用于生成复合视频流的计算机实施的方法和处理器系统来描述的,但是可以表示用于渲染复合视频流的计算机实施的方法和处理器系统的对应实施例。

在实施例中,该非体积视频可以作为包括可独立解码的片段的空间分段编码获得或转换成该空间分段编码,并且该处理器可以被配置成进行以下操作:

- 将该空间子区域确定为该非体积视频的一组片段,当该体积视频由该客户端设备在该非体积视频的前面显示时,该组片段被遮挡;

- 将该体积视频的非体积表示编码为一个或多个可独立解码的片段;并且

- 从该非体积视频的空间分段编码中去除该组片段,并且将该一个或多个片段添加到该非体积视频的空间分段编码中,以获得该复合视频流的输出帧的空间分段编码。

空间分段编码技术本身是已知的。例如,作为空间片段,可以使用所谓的“图块”,这些图块可以将视频帧细分为逻辑上分离的矩形部分,当对给定帧进行解码时,可以独立地对这些矩形部分进行解码。然后可以由客户端设备基于所谓的清单单独地请求和流式传输这些图块。“图块化流式传输”技术的示例在[4]和[5](参见“另外的参考文献”)中进行描述,并且可以涉及以空间关系描述(SRD)或类似数据的形式描述图块之间的关系,以及将所述数据包括在清单中,比如MPD(媒体呈现描述)。然后客户端设备可以基于清单单独地请求图块,例如当前视场中的图块。

如果非体积视频作为空间分段编码获得或转换成该空间分段编码,则体积视频的非体积表示的数据的后续插入在计算上可能不太复杂。即,可以标识可以被体积视频部分或完全遮挡的非体积视频的具体空间片段。然后可以从非体积视频的空间分段编码中去除被完全遮挡的空间片段,并且可以替代地添加表示体积视频的非体积表示的空间片段。

应注意的是,在一些实施例中,这可以表示非体积视频的空间分段编码中的分段的替换。然而,在其他实施例中,可以添加到非体积视频的空间分段编码的片段的数量可以超过可以从所述空间分段编码中去除的片段的数量。

对于仅被部分遮挡的空间片段,可以对(多个)空间片段进行解码,可以插入体积视频的非体积表示的数据,并且可以对(多个)空间片段进行重新编码。如此,在一些实施例中,可以仅去除被完全遮挡的那些片段。在其他实施例中,可以仅去除至少被遮挡超过一定程度(例如片段面积的50%)的那些片段。

从生成复合视频流的处理器系统的角度来看,空间分段编码的使用可以降低插入的计算复杂度,特别是在非体积视频已经以这种形式提供的情况下。即,在这种情况下,可能不需要进行以下操作:对整个非体积视频进行解码,将体积视频的非体积表示插入到非体积视频中,并且对所得的复合视频进行编码。相反,将体积视频的非体积表示编码为一个或多个空间片段并且将这些片段包括在非体积视频的空间分段编码中同时省略被遮挡的片段可能就足够了。

由于非体积视频可能相对较大(例如,提供场景的180度或360度高分辨率视图),因此通常可能仅必须处理片段的一小部分。这不仅可以降低处理的计算复杂度,而且可以减少由处理引起的等待时间。该等待时间在体积视频用于通信目的(例如,在表示用户的实时体积记录时)的情况下可能特别相关,因为等待时间可能会干扰用户之间的通信。

在实施例中,该处理器可以被配置成生成该信号传递数据以将该组片段标识为包含该体积视频的非体积表示。例如,信号传递数据可以包含所述片段中的每一个的标识符。另一个示例是,对于每个片段,信号传递数据可以包含表示相应片段的媒体类型(例如,非体积视频或体积视频的非体积表示)的标识符。信号传递数据可以因此将每个片段标识为包含非体积视频的一部分或体积视频的非体积表示的一部分。客户端设备因此可以基于信号传递数据来标识哪些片段要被用作用于重构体积视频的输入。

在实施例中,该处理器可以被配置成将该信号传递数据包括在该复合视频流中,例如作为补充增强信息(SEI)消息。通过将信号传递数据包括在复合视频流中,可能不需要到客户端设备的单独信号传递通道。

在实施例中,处理器可以被配置成通过生成或修改与复合视频流相关联的清单以标识复合视频流的包含体积视频的非体积表示的一组片段来生成信号传递数据。

MPEG-DASH上下文内的清单的非限制性示例是MPD(媒体呈现描述)。其他类型的清单也是已知的,并且可以在空间分段流式传输的上下文中标识可用于流式传输的空间片段和其可以取得这些空间片段的位置(例如,URL、文件名、端口编号等)。这种清单可以包含附加元数据,并且因此可以被生成或修改以标识包含体积视频的非体积表示的一组片段。有效地,清单可以包括或表示如其他地方所描述的信号传递数据。

在实施例中,该客户端设备可以被配置成在虚拟现实(VR)或增强现实(AR)环境中渲染该复合视频流,并且从用户的观看位置渲染该VR/AR环境,并且该处理器可以被配置成进行以下操作:

- 例如通过从该客户端设备接收指示该用户的观看位置的数据来确定该观看位置;并且

- 通过确定当该体积视频在该VR/AR环境中的非体积视频的前面显示并且由该客户端设备从该观看位置渲染时该体积视频的哪个空间子区域被该体积视频部分或完全遮挡来确定该空间子区域。

可以考虑客户端设备的用户在VR/AR环境中的观看位置来生成复合视频流,针对该用户生成该复合视频流。在这里和其他地方,可以理解的是,“

观看位置可以以各种方式来表征,例如,表征为VR/AR环境中的2D位置或3D位置。如果体积视频不是要“粘合”到非体积视频上,而是要在VR环境中表示为要放置在表示非体积视频的对象(例如,周围的球体)的前面的单独对象,则观看位置可以确定体积视频遮挡了非体积视频的哪些部分,并且从而确定可以将体积视频的非体积表示的数据插入到其中的空间子区域。通过考虑观看位置,因此可以避免的是将体积视频的非体积表示插入到非体积视频的一部分中,该部分将以其他方式从他/她的观看位置对用户可见,例如,不被体积视频遮挡。

注意,可以以各种方式例如通过从客户端设备接收指示观看位置的数据来确定用户的观看位置。这种数据可以被接收仅一次(例如,在开始生成复合视频流之前),或者被定期地接收(例如,反映用户的当前观看位置)。然而,观看位置也可以是估计的或预先确定的(例如,对应于有限数量的观看位置之一),或仅仅是固定的。

在许多情况下,客户端设备只能在特定视场(也被称为“视口”)中渲染VR/AR环境,该特定视场可能小于VR/AR环境提供的整个视场,该整个视场通常为360度视场。由于VR/AR环境的各部分可能在给定的时刻对用户不可见,因此在将体积视频的非体积表示的数据插入到非体积视频中时,可以考虑到这一点。在实施例中,基于视场将体积视频的非体积表示的数据插入到非体积视频的空间子区域中可以包括在所述空间子区域处于用户的视场中,或者在视场附近时,仅将体积视频的非体积表示插入到非体积视频的空间子区域中。

应注意的是,客户端设备可以使用“图块化流式传输”或类似视口自适应流式传输技术来仅选择性地流式传输用户的视场内(和/或围绕该视场的窄“边带”内)的一个或多个空间片段。因此,所请求的片段可以指示客户端设备的当前视场。

在实施例中,生成复合视频流的处理器系统可以是电信网络的网络节点,比如例如5G或下一代电信网络中的边缘节点。5G或下一代电信网络的这种边缘节点可能对客户端设备具有(非常)低的延迟,并且可以非常适合将体积视频的非体积表示插入到动态变化的空间子区域中,例如取决于客户端设备的用户的当前观看位置的空间子区域。

以下实施例是参考用于渲染复合视频流的计算机实施的方法和处理器系统来描述的,但是可以表示用于生成复合视频流的计算机实施的方法和处理器系统的对应实施例。

在实施例中,复合视频流可以作为包括可独立解码的片段的空间分段编码而被接收,并且该处理器可以被配置成基于标识空间分段编码的一组片段的信号传递数据来标识复合视频流中该体积视频的非体积表示。还如前文所描述的,客户端设备因此可以基于信号传递数据标识哪些片段要被用作用于重构体积视频的输入。

在实施例中,信号传递数据可以作为与复合视频流相关联的清单的一部分而被接收。该清单可以标识包含该体积视频的非体积表示的一组片段。

在实施例中,该处理器可以被配置成在虚拟现实(VR)或增强现实(AR)环境中渲染该复合视频流,并且从用户的观看位置渲染该VR/AR环境。例如,非体积视频可以用作或显示在VR/AR环境中的背景对象上,而可以基于包含在复合视频流中的数据重构的体积视频可以显示为背景前面的VR/AR环境中的前景对象。

以下实施例是参考用于渲染复合视频流的计算机实施的方法和处理器系统以及参考用于生成复合视频流的计算机实施的方法和处理器系统来描述的。

在实施例中,该体积视频可以是3D点云,并且生成该体积视频的非体积表示的转换技术可以是点云压缩技术,例如基于补丁的点云压缩技术。点云压缩技术(比如基于补丁的点云压缩技术)非常适合于将3D点云转换成非体积形式,例如,转换成2D图像数据。在实施例中,体积视频可以是光场,并且光场的非体积表示可以是可以从中重构光场的2D视频网格。

在实施例中,该非体积视频是全景或全向视频。例如,非体积视频可以结合地图投影,比如等距柱状投影或立方体地图投影。

本发明的以下方面和实施例涉及信号传递数据,但可以表示生成和/或使用该信号传递数据的(多种)计算机实施的方法和(多个)处理器系统的对应实施例。

在本发明的另外的方面,一种暂态或非暂态计算机可读介质可以包括信号传递数据,该信号传递数据可以与包含非体积视频的复合视频流相关联,并且该信号传递数据可以指示复合视频流,该复合视频流在该非体积视频的空间子区域中包含体积视频的非体积表示。

在实施例中,该复合流可以是包括可独立解码的片段的空间分段编码,并且该信号传递数据可以标识该空间分段编码的一组片段。还如前文所描述的,客户端设备因此可以基于信号传递数据标识哪些片段要被用作用于重构体积视频的输入。

在实施例中,该暂态或非暂态计算机可读介质可以包括与复合视频流相关联的清单,并且该清单可以标识空间分段编码的包含该体积视频的非体积表示的一组片段。有效地,清单可以包括或表示如其他地方所描述的信号传递数据。

根据本发明的摘要,可以提供一种用于生成可以包括非体积视频和体积视频的复合视频流的处理器系统和计算机实施的方法,该体积视频的至少一部分要在该非体积视频的前面显示。该体积视频可以以该体积视频的非体积表示的形式包括在该复合视频流中,例如插入到该非体积视频的空间子区域中,该空间子区域在显示期间可以被该体积视频遮挡。因此可以不必修改编码、传输和解码来支持体积视频。可以提供信号传递数据,该信号传递数据可以指示该复合视频流包含该体积视频的非体积表示。可以提供一种用于使用信号传递数据来渲染复合视频流的处理器系统和计算机实施的方法。

本领域技术人员应当理解,可以以任何认为有用的方式组合上文提及的本发明的实施例、实施方式和/或方面中的两个或更多个。

本领域技术人员能够基于本说明书执行方法、(多个)处理器系统、元数据和/或计算机程序的修改和变化,这些修改和变化与针对所述实体中的另一个实体描述的修改和变化相对应。

其他参考文献

[4] Ochi, Daisuke等人“

[5] K. Misra、A. Segall、M. Horowitz、S. Xu和A. Fuldseth,“

[6] Y. Sanchez、R. Globisch、T. Schierl和T. Wiegand,“

[7] M. S. A. H. Peter Amon,“

[8] S. Schwarz等人,“

[9] C. Perra和D. Giusto,“

附图说明

参考下文所描述的实施例,本发明的这些方面和其他方面是显而易见的并且将被阐明。在附图中:

图1A提供了场景的非体积视频的图示;

图1B提供了对象的体积视频的图示;

图1C示出了图1A和图1B的视频的合成,该合成可以例如由接收非体积视频和体积视频的客户端设备生成,其中对象的体积视频在非体积视频的前面显示,从而遮挡非体积视频的一部分;

图2A展示了生成复合视频的第一部分,该复合视频在非体积视频的空间子区域中包含体积视频的非体积表示,即作为包括可独立解码的片段的空间分段编码获得的非体积视频;

图2B示出了非体积视频的空间片段,这些空间片段在体积视频显示在非体积视频的前面时被至少部分地遮挡,并且这些空间片段可以用包含体积视频的非体积表示的另外的片段替换或在添加这些另外的片段时被去除;

图3示出了对包括非体积视频和体积视频的非体积表示的复合视频流进行编码的步骤,其中,该非体积表示可以插入到非体积视频的空间子区域中,并且其中,可以提供信号传递数据,该信号传递数据可以指示复合视频流包含非体积表示;

图4示出了使用信号传递数据对可以例如通过图3的步骤生成的复合流进行解码和渲染的步骤;

图5展示了在VR环境中被配置用于生成复合视频流的处理器系统与被配置用于对复合视频流进行解码和渲染的处理器系统之间的数据通信;

图6示出了可以被配置用于生成用于传输到客户端设备的复合视频流的处理器系统;

图7示出了可以表示客户端设备并且可以被配置成对复合视频流进行解码和渲染的处理器系统;

图8示出了生成复合视频流的方法;

图9示出了渲染复合流的方法;

图10示出了包括非暂态数据的计算机可读介质;

图11示出了示例性数据处理系统。

应该注意,在不同的附图中具有相同附图标记的项具有相同的结构特征和相同的功能,或是相同的信号。在已经解释了这种项的功能和/或结构的情况下,在详细描述中不再重复解释。

附图标记和缩写词清单

以下附图标记和缩写词清单被提供用于简化附图解释,并且不应该被解释为对权利要求的限制。

100 非体积背景视频

110 非体积视频的空间分段编码

120 被体积视频遮挡的空间片段

200 体积前景视频

300 3D体积视频

305 3D到2D映射

310 3D体积视频的2D表示

315 图块化和编码

320 3D体积视频的图块化2D表示

330 2D全景视频

335 图块化和编码

340 图块化2D全景视频

345 用户视口

350 遮挡检测

355 图块替换

360 生成信号传递

365 具有信号传递的复合视频

400 具有信号传递的复合视频

410 信号传递提取

420 图块解码器

430 3D体积视频的2D表示

440 2D到3D映射

450 3D体积视频

460 2D全景视频

470 渲染2D全景视频和3D体积视频

500 用于生成复合视频流的处理器系统

510 复合视频流

520 信号传递数据

530 网络

540 用于渲染复合视频流的处理器系统

550 显示数据

560 头戴式显示器

600 用于生成复合视频流的处理器系统

610 网络接口

612 网络数据通信

620 输入接口

625 数据存储装置

630 处理器

700 用于渲染复合视频流的处理器系统

710 网络接口

712 网络数据通信

720 处理器

730 输出接口

732 显示数据

735 显示器

800 生成复合视频流的方法

810 获得非体积视频和体积视频

820 确定非体积视频中的空间子区域

830 生成复合视频流

832 生成体积视频的非体积表示

834 用体积视频的非体积表示的数据替换非体积视频的空间子区域的数据

840 流式传输复合视频流

845 提供信号传递数据

850 渲染复合视频流的方法

860 接收复合视频流

865 接收信号传递数据

870 渲染复合视频流

872 解码复合视频流

874 标识体积视频的非体积表示

876 重构体积视频

878 在非体积视频的前面渲染体积视频

900 计算机可读介质

910 非暂态数据

1000 示例性数据处理系统

1002 处理器

1004 存储器元件

1006 系统总线

1008 本地存储器

1010 大容量存储设备

1012 输入设备

1014 输出设备

1016 网络适配器

1018 应用程序。

具体实施方式

以下实施例涉及复合视频流的生成和渲染。在空间分段流式传输的上下文内描述了一些实施例,例如,“图块化流式传输”[4]、[5],其可以用于传输全景视频或全向视频,比如360度视频。然而,本说明书中描述的技术也可以应用于任何其他类型的流式传输,包括非空间分段(非图块化)流式传输。

在VR(比如“社交VR”虚拟环境)中渲染复合视频流的上下文中描述了一些实施例,在该环境中,多个用户可以使用头戴式显示器(HMD)和相机参与电话会议。然而,本说明书中描述的技术也可以应用于所有其他应用,在这些其他应用中,体积视频要在非体积视频的前面显示,并且在这些其他应用中,体积视频流然后覆盖(“遮挡”)非体积视频的一部分。非限制性示例是将动画频道标志的体积视频插入到非体积电视节目中。

描述了其中非体积视频是2D视频,而体积视频是3D视频的一些实施例。然而,应当理解的是,本说明书中描述的技术也可以应用于非体积3D视频,即立体3D视频。同样,体积视频可以采用不同的形式,包括更高维的视频,比如4D或5D时变光场。

进一步注意,在下文中,对“视频流”的任何提及可以是指适合于例如使用已知流式传输技术来流式传输的视频的数据表示。此外,对“视频”的提及可以包括视频流,但还可以包括不适合于(尚未适合于)流式传输或者至少常规上不旨在用于流式传输的视频的数据表示。在这些图中,视频(流)可以由单个视频帧示意性地表示。

图1A至图1C展示了体积视频和非体积视频的组合显示。这里,图1A示出了可以表示场景的非体积视频100,而图1B示出了可以表示要在场景中示出的对象的体积视频200。体积视频200可以是3D视频,为了说明的目的,该体积视频以立方体图像体积200的形式示出,同时示意性地指示其语义内容,例如滑雪者。如图1C所示,然后可以通过在作为背景的非体积视频100之上将体积视频200渲染为前景对象来联合显示两个视频。

应当理解的是,尽管图1C示出了在非体积视频100之上渲染的体积视频200的整个图像体积,但是渲染也可以使得仅渲染图像体积200的一部分,例如仅渲染立方体图像体积内的滑雪者而不是滑雪者的附近环境。例如,如果体积视频200是包括体素的体积视频,则渲染可以基于先前已经被分配了100%的透明度或0%的不透明度的围绕滑雪者的体素来省略渲染滑雪者的周围环境。在体积视频200是3D点云的另一个示例中,可以仅渲染点云的点,而背景中的非体积视频100可以在经渲染的点之间的一些空间中保持可见。

继续参考图1A至图1C,可以生成复合视频,其将非体积视频100和体积视频200组合成单个视频,并且在编码为流时,组合成单个视频流。这通常可以涉及将体积视频转换成体积视频的非体积表示,例如,在体积视频是3D点云的情况下使用比如[8]等技术,并且通过当体积视频在非体积视频的前面显示时,标识非体积视频中的被体积视频遮挡的空间子区域。空间子区域中的非体积视频的数据然后可以被体积视频的非体积表示的数据替换。这可以涉及将体积视频的非体积表示插入到非体积视频的空间子区域中。在非体积视频可用作空间分段编码的具体情况下,可以如参考图2A和图2B所描述的那样执行这种替换。

图2A和图2B展示了生成非体积视频的复合视频,该复合视频是作为非体积视频的空间分段编码110而获得的,或者被转换成该空间分段编码。空间分段编码110可以包括所谓的可独立解码的空间片段。例如,作为空间片段,可以使用所谓的“图块”[4]、[5],其可以将视频帧细分为逻辑上分离的矩形部分,当对给定帧进行解码时,可以独立地对这些逻辑上分离的矩形部分进行解码。HEVC[5]标准将整个帧的图块配置定义为均匀的规则网格,还如图2A和图2B所描绘的。以下可以将空间片段称为“图块”,除非另有说明,否则提及“图块”通常表示空间片段,而不仅仅是由HEVC标准定义的图块。

如先前在图1C中所指示的,当体积视频在非体积视频的前面显示时,体积视频200可以遮挡非体积视频的空间子区域。在非体积视频可用作空间分段编码110的情况下,空间子区域可以表示为在显示期间被体积视频200遮挡的一组空间片段120。空间片段120然后可以被体积视频的非体积表示的数据替换,例如通过从非体积视频的空间分段编码110中去除一组空间片段120,并且通过将体积视频的非体积表示编码为一个或多个空间片段。然后可以生成复合视频流以包括空间分段编码110的“剩余”片段,体积视频的非体积表示的一个或多个空间片段可以添加到这些“剩余”片段。在替代性实施例中,代替从空间分段编码110中去除一组空间片段120,空间分段编码110可以在没有一组空间片段120的情况下直接生成。

应当理解的是,在一些实施例中,空间片段的仅一部分可能被体积视频200遮挡。在这种情况下,可能不期望省略整个空间片段,而是相反,空间片段可以保留在复合视频流中。因此,可以仅去除被体积视频完全或至少部分遮挡的空间片段。这里,“部分地”可以仅指被遮挡的空间片段中的图像数据的空间部分,和/或指例如由于体积视频的透明度而在一定程度上降低底层非体积数据的可见性的遮挡。可替代地,可以从复合视频流中省略被至少部分遮挡的所有空间片段。通常,非体积视频的低分辨率表示可以取代非体积视频的省略部分。这种低分辨率表示也被称为“回退层”。

应注意的是,生成复合视频可以涉及例如以[6]和[7]中描述的方式重写非体积视频的空间分段编码110的比特流。比特流的这种重写可以例如包括改变比特流中的参数,例如高级语法参数,比如图片参数集(PPS)中的图块位置和尺寸。

应当理解的是,可以以比非体积视频的片段被编码时的比特率更高的比特率或者通常以更高的质量等级来对表示体积视频的非体积表示的片段进行编码。例如,可以选择合适的量化参数(QP)值来提高质量。例如,在HEVC中,QP值的范围可以在0至51之间,其中最高质量为0。这种质量提高可以例如特定于表示包含用户的图像数据的体积视频的片段,因为这种图像数据可以受到更多关注。

图3和图4示出了复合视频流的编码以及随后的解码和渲染,该复合视频流在此特定示例中被生成为也如参考图2A和图2B所描述的图块化复合视频流。在此示例中,非体积视频是2D全景视频,并且体积视频是3D体积视频,或简称为“3D视频”。尽管以特定顺序描述了由图3和图4所展示的步骤,但是这些步骤可以以任何合适的顺序来执行,例如,连续地、同时地或其组合,在适用的情况下取决于例如输入/输出关系需要的特定顺序。

图3展示了复合视频流的编码。这里,可以获得3D体积视频300,其可以使用在图3中指示为“3D到2D映射”305的转换技术被转换成3D视频的非体积(2D)表示,从而获得3D视频的2D表示310。2D表示310可以被图块化和编码315,从而获得3D视频的图块化和编码的2D表示320。此外,可以获得2D全景视频330,其可以被图块化和编码335,从而获得图块化2D视频340。可以执行遮挡检测350,该遮挡检测可以考虑用户的视口345,也如本说明书中其他地方所描述的。可以用3D视频的图块化2D表示320的图块替换355图块化2D视频340的被遮挡的图块,从而获得复合视频流。可以生成360信号传递数据以指示复合视频流包括图块化2D表示320的图块。信号传递数据可以包含在复合视频流中,从而产生具有信号传递数据365的复合视频流。例如,补充增强信息(SEI)消息可以被包括在比特流中以指示图块类型,例如非体积视频或体积视频的非体积表示。

图4示出了图3的复合视频流的解码和渲染,该复合视频流在图4中通过附图标记400指示。可以从复合视频流中提取410信号传递数据。使用信号传递数据,可以对复合视频流的图块进行解码420以获得3D视频的2D表示430的数据和2D视频460的数据。该2D表示可以用作重构技术的输入,其在图4中指示为“2D到3D映射”440,从而获得3D体积视频450的重构。2D视频460和重构的3D体积视频450两者然后可以例如在基于VR的虚拟环境中被渲染,该2D视频和该重构的3D体积视频可以使用HMD显示给用户。

图5展示了被配置用于生成复合视频流的处理器系统500与被配置用于渲染(在此示例中为虚拟现实(VR)环境中的渲染)复合视频流的处理器系统540之间的数据通信。通常,处理器系统500可以表示生成复合视频流510的实体,如也在其他地方所描述的,例如,参考图1A至图4和图6。处理器系统500也可以被称为“编码器系统”并且可以由例如服务器或服务器的分布式系统来具体化。处理器系统540可以表示对复合视频流510进行解码和渲染的实体,如也在其他地方所描述的,例如,参考图1A至图4和图7。处理器系统540也可以被称为“接收器系统”并且可以由客户端设备(例如计算机、控制台、智能电话或平板设备)具体化。

处理器系统500(例如可以是基于云的服务器)可以例如经由比如因特网和/或接入网和/或电信网络的核心网等网络530来生成复合视频流510并将其流式传输到处理器系统540。在接收到复合视频流510之后,处理器系统540可以建立对在其中显示非体积视频和重构的体积视频的VR环境的视觉渲染。处理器系统540然后可以将渲染后的图像数据作为显示数据550输出到用户佩戴的HMD 560。在复合视频流510的流式传输之前或期间,处理器系统500可以将信号传递数据520提供到处理器系统540,该信号传递数据可以指示复合视频流510包含体积视频的非体积表示。这可以有效地向处理器系统540发信号通知体积视频可以由处理器系统540从包含在复合视频流510中的数据重构。

转换和重构

为了获得从体积视频到体积视频的非体积表示的转换,以及体积视频从其非体积表示的重构,可以使用各种技术。例如,对于3D点云,可以使用[8]中描述的技术,这些技术可以涉及基于给定特征(例如平面特征)对3D点云进行分段。然后可以将3D点云的颜色信息“展开”以获得2D图像数据,并且可以将深度信息提取为深度图,该深度图也可以表示为2D图像数据。两个2D图像数据部分都可以包括在复合视频中。在接收器处,例如在客户端设备处,然后可以使用包括的深度图和颜色信息来重构3D点云。

可以包括在复合视频中的体积视频的另一个示例是光场,其可以被视为体积视频的描述在给定采样点处来自所有方向的入射光的形式。光场可以由2D图像的2D矩形网格表示。类似地,时变光场可以由2D视频的2D矩形网格表示[9]。这种2D视频的2D网格因此可以被视为光场的基于2D视频的表示。将光场格式化为2D视频的2D矩形网格可以被视为是光场到其非体积表示的转换。基于2D视频的2D矩形网格的光场渲染可以被视为光场从其非体积表示的重构。

存在各种其他类型的体积视频,以及用于获得其非体积表示的转换技术和用于从其非体积表示重构体积视频的重构技术。

标识空间子区域

可以以各种方式检测在显示期间非体积视频的被体积视频遮挡的空间子区域。例如,如果两个视频都是在基于3D图形的环境中渲染的,则可以使用已知的3D图形剔除技术来检测遮挡。例如,用于执行3D图形剔除的常用方法使用混合GPU/CPU方法来实施分层Z缓冲区(HZB)遮挡剔除算法,例如,如Ned Greene等人1993年在出版物“Hierarchical Z-Buffer Visibility [分层Z缓冲区可见性]”中所描述的。HZB遮挡剔除算法的输出可以被视为输出缓冲区(例如,屏幕或窗口)的基于网格的表示,其中对于每个像素指示其是否被遮挡。为了确定在基于3D图形的环境中视频的部分是否(如果是的话,是哪些部分)被遮挡,可以在HZB遮挡剔除算法中考虑与视频的边界区域(例如,边界框或球体)相对应的像素,同时忽略此边界区域外的所有像素。接下来,可以重构由HZB剔除算法(例如,使用从计算几何领域已知的Chan算法)指示的遮挡区域的多边形。此多边形可以用作用于标识要替换非体积数据的数据的空间子区域的基础。在一些实施例中,多边形也可以被包括在信号传递数据中以标识空间子区域。

另一个选择是可以使用光线追踪技术,其中检测物体的哪些部分没有被视线照射到并且因此被确定为被遮挡。通常,可以使用表征非体积背景视频与体积前景视频之间的关系的各种类型的数据来确定非体积背景视频的哪个部分被遮挡。应注意的是,这种数据可以存在于表示客户端设备的处理器系统处,但在一些实施例中还可以存在于另一个实体处,如生成复合视频流的处理器系统处。例如,后一处理器系统可以知道非体积视频与体积视频之间的关系,因为该处理器系统可以至少部分地确定此关系,例如在客户端-服务器上下文中,其中服务器知道客户端设备渲染的场景的几何形状。另一个示例是生成复合视频流的处理器系统可以从客户端设备获得此数据作为信号传递数据。

在一些实施例中,体积视频相对于非体积视频的显示位置可以是预定的。这种预定显示位置可以直接或间接地指示在显示期间被体积视频遮挡的空间子区域。例如,在包括前述社交VR用例的多用户通信中,体积前景视频可以被插入在相对于非体积背景视频的特定位置处。这些位置也可以被称为“放置位置”,并且可以指示非体积背景视频的哪个空间子区域被遮挡。体积视频的这种放置位置可以由元数据定义,该元数据也被称为放置元数据。放置元数据可以与非体积视频相关联。例如,放置元数据可以是与非体积视频相同的数据容器(例如,相同的文件或媒体流)的一部分,但是也可以作为可以与非体积视频相关联的单独元数据来提供。例如,元数据可以包含非体积视频的数据容器的标识符,比如URL,从而允许元数据被检索并与背景视频相关联。又另一个示例是,元数据可以被包括在与非体积视频相关联的清单文件中,或者其可以被包括在服务公告中。

应注意的是,被遮挡的空间子区域可以被预测,因为遮挡可能还没有发生,但可以预测在(不久的)将来发生。

信号传递数据

存在用于生成信号传递数据的各种选择,该信号传递数据指示复合视频流包含体积视频的非体积表示。生成的信号传递数据可以因此直接或间接指示复合视频流包含体积视频的非体积表示。例如,补充增强信息(SEI)消息可以用于在逐图块基础上用信号通知特定图块包含哪种类型的数据,例如非体积视频的数据或体积视频的非体积表示的数据。代替进一步指图块,以下示例是指“空间区域”。应当理解的是,这种空间区域可以是或包括一个或多个空间片段,或者具体地一个或多个图块。

SEI消息可以与HEVC解码器兼容,并且因此可以与基于区域的方法组合以生成复合视频比特流。在具体示例中,对于包含体积视频数据的具体区域,“体积区域内容类型描述”可以包括在SEI消息中。例如,SEI消息可以被定义为包含内容类型标识符,该内容类型标识符将区域的内容标识为1) 2D视频、2) 点云、3) 光场或4) 其他。内容类型2至4的区域可以用例如包含深度、纹理或颜色或占用图的元数据进一步描述。

SEI消息语法的示例可以如下:

其中:

- region_type:描述区域内容类型(例如,2D视频、点云、光场等)。

- top_left_corner:亮度样本数据坐标中相对于视频序列的宽度和高度的左上位置

- bottom_right_corner:亮度样本数据坐标中相对于视频序列的宽度和高度的右下位置

- pcc_content_type:描述点云数据类型的元数据。

应当理解的是,此表中描述的描述符字段大小是作为示例提及的并且可以根据应用而不同。

另一个示例是使用网络抽象层(NAL)信息,例如使用如用WO 2018/011042 A1的表11所描述的报头信息(就与nal_unit_header的语法有关的范围内,通过引用并入本文),但使用具有给定

在NAL的情况下,SEI消息语法的示例可以如下:

其中:

- Tile_id:与SEI消息描述的图块(如在WO 2018/011042 A1上下文中定义的图块)的“nuh_tile_id”相对应的值

又另一个选择是将信号传递信息包括在图块化复合视频流的清单(比如MPEGDASH SRD清单)中。作为示例,生成复合视频流的处理器系统可以接收或访问非体积视频的清单和体积视频的非体积表示的清单,例如,作为相应的清单文件。后一个清单可能在生成体积视频的非体积表示时已经由处理器系统生成,或者可能已经由另一个实体生成并且可以由处理器系统访问。这种清单的示例包括但不限于MPEG DASH SRD清单文件。根据这些清单,可以创建修改的清单,其可以包括对包含非体积视频的非遮挡部分的空间片段的引用和对包含体积视频的非体积表示的空间片段的引用。在这种清单中,在渲染期间被体积视频遮挡的来自非体积视频的空间片段可能不会被列出。

通用

通常,例如在多用户通信中,可以通过2D相机和深度相机或3D相机获得体积视频。

在多用户通信中,生成复合视频流的处理器系统的功能可以由客户端设备之一来实施。实际上,这种客户端设备还可以“充当”服务器。

在一些实施例中,非体积视频和体积视频的非体积表示可以例如在未压缩域中被单独图块化,可以执行遮挡检测,非体积视频中被遮挡的图块可以被检测并且用体积视频的非体积表示的图块替换,并且可以对所得的图块化视频帧进行联合编码。在一些实施例中,可以扩展图块化非体积视频的空间维度以使得体积视频的非体积表示的所有图块能够被包括在所得的视频流中。

图6示出了用于生成复合视频流的处理器系统600。为此,处理器系统600被示出为包括处理器630,该处理器可以例如通过硬件设计或软件被配置成执行参考1A至图5以及与复合视频流的生成和信号传递数据的生成有关的其他地方所描述的操作。例如,处理器630不但可以由单个中央处理单元(CPU)来具体化,而且还可以由这种CPU和/或其他类型的处理单元的组合或系统来具体化。处理器系统600进一步被示出为包括比如内部存储器、硬盘、固态驱动器、或其阵列等数据存储装置625,该数据存储装置可以用于存储或缓冲数据,比如体积视频和非体积视频,和/或用于缓冲表示所述视频的任何接收的视频流。处理器系统600被进一步示出为包括到数据存储装置625的输入接口620,该输入接口可以是任何合适类型的接口,例如内部存储接口,比如存储器接口或固态驱动器接口。在一些实施例中,数据存储装置625可以是外部数据存储装置625,并且输入接口620可以是到外部存储装置的接口,比如USB接口或网络接口。在一些实施例中,输入接口620可以是与下面所描述的网络接口610相同的网络接口。

图6进一步示出了处理器系统600,该处理器系统包括网络接口610,该网络接口可以是任何合适类型的网络接口,经由该网络接口可以传输复合视频流和信号传递数据,这两种类型的数据都由附图标记612指示。例如,网络接口610可以是例如基于Wi-Fi、蓝牙、ZigBee、4G或5G移动通信的无线网络接口,或例如基于以太网或光纤的有线网络接口。例如,网络接口610可以是局域网(LAN)网络接口,或到广域网(WAN)(比如互联网)的接口。

处理器系统600可以由(单个)设备或装置来具体化。例如,处理器系统600可以由服务器、工作站、个人计算机等具体化。在一些实施例中,处理器系统600可以是终端用户设备,例如(集成到)与参考图7所描述的相同类型的设备,该终端用户设备被配置用于渲染复合视频流。这种设备的示例包括但不限于智能电话、个人计算机、膝上型计算机、平板设备、游戏控制台、机顶盒、电视、监视器、投影仪、智能手表、智能眼镜、媒体播放器、媒体记录器、头戴式显示设备等。处理器系统600还可以由这种设备或装置的分布式系统来具体化。该分布式系统的示例可以是处理器系统600的功能至少部分地分布在网络中的网络元件上。在另一个示例中,处理器系统600可以由5G或下一代电信网络的边缘节点来具体化,或者通常由电信网络的网络处理节点来具体化。

图7示出了被配置用于渲染复合视频流的处理器系统700。处理器系统700可以实施如参考图1至图5以及其他地方所描述的“解码”、“渲染”和/或“显示”功能的一部分或全部。处理器系统700被示出为包括网络接口710,该网络接口可以被配置成接收复合视频流和信号传递数据,这两种类型的数据都由附图标记712指示。网络接口710可以是用于接收和/或传输所述数据的任何合适类型的接口,包括但不限于如参考图6所描述的类型的网络接口。处理器系统700可以进一步包括处理器720,该处理器可以例如通过硬件设计或软件被配置成执行参考图1A至图5以及与对复合视频流的解码和渲染有关的其他地方所描述的操作。在一些实施例中,处理器720可以直接生成表示所渲染的图像数据的显示数据732并将该显示数据输出到显示器735(比如HMD)。在其他实施例中,处理器720可以输出所渲染的图像数据,该所渲染的图像数据可以由输出接口730输出到显示器735。

处理器720不但可以由单个中央处理单元(CPU)来具体化,而且还可以由这种CPU和/或其他类型的处理单元(比如图形处理单元(GPU))的组合或系统来具体化。尽管在图7中未示出,但是处理器系统700还可以包括比如内部存储器、硬盘、固态驱动器或其阵列等数据存储装置,该数据存储装置可以用于缓冲数据,例如接收到的复合视频流和/或信号传递数据。处理器系统700可以由(单个)设备或装置来具体化。例如,处理器系统700可以具体化为智能电话、个人计算机、膝上型计算机、平板设备、游戏控制台、机顶盒、电视、监视器、投影仪、智能手表、智能眼镜、媒体播放器、媒体记录器、头戴式显示设备等。处理器系统700还可以由这种设备或装置的分布式系统来具体化。

通常,图6的处理器系统600和图7的处理器系统700可以各自具体化为设备或装置,或在设备或装置中具体化。该设备或装置可以包括执行适当软件的一个或多个(微)处理器。任一系统的处理器可以由这些(微)处理器中的一个或多个来具体化。实施任一系统的功能的软件可能已经被下载和/或存储在对应的一个或多个存储器中,例如,比如RAM等易失性存储器或比如闪存等非易失性存储器。可替代地,任一系统的处理器可以以可编程逻辑的形式在设备或装置中实施,例如,作为现场可编程门阵列(FPGA)。任何输入和/或输出接口可以由设备或装置的相应接口(比如网络接口)实施。通常,任一系统的每个单元可以以电路的形式实施。注意,任一系统还可以以分布式方式实施,例如,涉及不同的设备。

图8示出了用于生成复合视频流的计算机实施的方法800。方法800可以包括:在标题为“获得非体积视频和体积视频”的步骤中,获得810非体积视频以及体积视频,该体积视频的至少一部分要由客户端设备在非体积视频的前面显示。方法800可以进一步包括:在标题为“确定非体积视频中的空间子区域”的步骤中,确定820非体积视频的空间子区域,当体积视频由客户端设备在非体积视频的前面显示时,该空间子区域被部分或完全遮挡。方法800可以进一步包括:在标题为“生成复合视频流”的步骤中,通过针对非体积视频和体积视频的相应输入帧为客户端设备生成830复合视频;以及在标题为“生成体积视频的非体积表示”的步骤中,使用允许从非体积表示重构体积视频的转换技术来生成832体积视频的非体积表示;以及在标题为“用体积视频的非体积表示的数据替换非体积视频的空间子区域的数据”的步骤中,用体积视频的非体积表示的数据替换834非体积视频的空间子区域的数据,从而获得复合视频的输出帧。方法800可以进一步包括:在标题为“流式传输复合视频流”的步骤中,将复合视频作为复合视频流流式传输840到客户端设备,或者将复合视频流的所选空间片段流式传输到客户端设备。方法800可以进一步包括:在标题为“提供信号传递数据”的步骤中,将信号传递数据提供845到该客户端设备,该信号传递数据指示复合视频流包含体积视频的非体积表示。

图9示出了用于在非体积视频的前面渲染体积视频的计算机实施的方法850。方法850可以包括:在标题为“接收复合视频流”的步骤中,接收860包含非体积视频的复合视频流或复合视频流的所选空间片段。方法850可以进一步包括:在标题为“接收信号传递数据”的步骤中,接收865指示该复合视频流的信号传递数据,该复合视频流在该非体积视频的空间子区域中包含该体积视频的非体积表示。方法850可以进一步包括:在标题为“渲染复合视频流”的步骤中,通过针对复合视频流的相应输入帧来渲染870复合视频流;以及在标题为“解码复合视频流”的步骤中,解码872复合视频流或复合视频流的所选空间片段。渲染870可以进一步包括:在标题为“标识体积视频的非体积表示”的步骤中,基于信号传递数据,标识874输入帧中该体积视频的非体积表示;以及在标题为“重构体积视频”的步骤中,使用重构技术从体积视频的非体积表示重构876体积视频。渲染870可以进一步包括:在标题为“在非体积视频的前面渲染体积视频”的步骤中,在非体积视频的前面渲染878体积视频,使得非体积视频的空间子区域被体积视频部分或完全遮挡。

应当理解,通常,图8的方法800和/或图9的方法850的操作可以以任何合适的顺序来执行,例如,连续地、同时地或其组合,在适用的情况下取决于例如输入/输出关系需要的特定顺序。

注意,在本说明书中描述的任何方法,例如,在任何权利要求中描述的任何方法,可以在计算机上实施为计算机实施的方法、专用硬件、或两者的组合。用于计算机的指令(例如,可执行代码)可以例如以一系列机器可读物理标记910的形式和/或作为一系列具有不同电(例如,磁或光)性质或值的元件的形式存储在如例如图10所示的计算机可读介质900上。可执行代码可以以暂态或非暂态的方式存储。计算机可读介质的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。图10通过示例的方式示出了光学存储设备900。

在图10的计算机可读介质900的替代性实施例中,计算机可读介质900可以包括表示如本说明书中描述的信号传递数据或放置元数据的暂态或非暂态数据910。

图11是展示可以在本说明书中描述的实施例中使用的示例性数据处理系统1000的框图。这种数据处理系统包括本说明书中描述的数据处理实体,包括但不限于如参考图1至图7以及其他地方所描述的处理器系统、服务器和客户端设备等。

数据处理系统1000可以包括通过系统总线1006耦合至存储器元件1004的至少一个处理器1002。这样,数据处理系统可以在存储器元件1004内存储程序代码。此外,处理器1002可以执行经由系统总线1006从存储器元件1004访问的程序代码。在一方面,数据处理系统可以被实施为适合于存储和/或执行程序代码的计算机。然而,应该理解,数据处理系统1000可以以包括处理器和存储器、能够执行本说明书中描述的功能的任何系统的形式实施。

存储器元件1004可以包括一个或多个物理存储器设备,比如例如本地存储器1008和一个或多个大容量存储设备1010。本地存储器可以指在程序代码的实际执行期间通常使用的随机存取存储器或其他(多个)非持久性存储器设备。大容量存储设备可以被实施为硬盘驱动器、固态硬盘或其他持久性数据存储设备。数据处理系统1000还可以包括一个或多个高速缓存存储器(未示出),这些高速缓存存储器提供至少一些程序代码的临时存储,以便减少在执行期间以其他方式从大容量存储设备1010检索程序代码的次数。

被描绘为输入设备1012和输出设备1014的输入/输出(I/O)设备可以可选地耦合至数据处理系统。输入设备的示例可以包括但不限于,例如,麦克风、键盘、比如鼠标等定点设备、游戏控制器、蓝牙控制器、VR控制器和基于手势的输入设备等。输出设备的示例可以包括但不限于,例如,监视器或显示器、扬声器等。输入设备和/或输出设备可以直接或通过中间I/O控制器耦合至数据处理系统。网络适配器1016还可以耦合至数据处理系统,以使其能够通过中间私有或公共网络耦合至其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括用于接收由所述系统、设备和/或网络向所述数据传输的数据的数据接收器和用于向所述系统、设备和/或网络传输数据的数据发射器。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统1000一起使用的不同类型的网络适配器的示例。

如图11所示,存储器元件1004可以存储应用程序1018。应该理解,数据处理系统1000可以进一步执行能够促进应用程序的执行的操作系统(未示出)。以可执行程序代码的形式实施的应用程序可以由数据处理系统1000(例如,由处理器1002)执行。响应于执行应用程序,数据处理系统可以被配置成执行将在本文进一步详细描述的一个或多个操作。

例如,数据处理系统1000可以表示被配置用于生成复合视频流的处理器系统或实体,例如,如参考图1至图6所描述的。在这种情况下,应用程序1018可以表示当被执行时配置数据处理系统1000来执行参考所述处理器系统或实体所描述的功能的应用程序。

在另一个示例中,数据处理系统1000可以表示被配置用于渲染复合视频流的处理器系统或实体,例如,如参考图1至图7所描述的。在这种情况下,应用程序1018可以表示当被执行时配置数据处理系统1000来执行参考所述处理器系统和/或实体所描述的功能的应用程序。

在权利要求中,置于括号间的任何附图标记不应被解释为限制权利要求。动词“包括(comprise)”及其词形变化的使用不排除权利要求中所述的元件或步骤之外的元件或步骤的存在。在元件列表或元件组之前的比如“至少一个”等表达表示从列表或组中选择所有元件或任何元件子集。例如,表达“A、B和C中的至少一个”应理解为仅包括A、仅包括B、仅包括C、包括A和B两者、包括A和C两者、包括B和C两者或包括全部A、B和C。元件前面的冠词“一个(a)”或“一种(an)”不排除存在多个这种元件。本发明可以通过包括若干不同元件的硬件以及通过适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干装置可以由同一个硬件项具体化。在相互不同的从属权利要求中陈述某些措施这一事实,并不表示不能有利地使用这些措施的组合。

相关技术
  • 流式传输体积视频和非体积视频
  • 用于经译码视频数据的网络流式传输的方法和设备以及非暂时性计算机可读媒介
技术分类

06120113191466