渲染三维内容的方法和装置与流程

文档序号:20921814发布日期:2020-05-29 14:14阅读:241来源:国知局
渲染三维内容的方法和装置与流程

本公开总体上涉及用于渲染三维(3d)内容的方法和装置。更具体地,本公开涉及用于编码,解码或渲染沉浸式(immersive)3d媒体的方法和装置。



背景技术:

由于功能强大的手持设备(诸如智能手机)的即时可用性,三百六十度(360°)视频正成为体验沉浸式视频的新方式。360°视频通过捕捉世界的360°全景,为消费者提供沉浸式“真实生活”、“身临其境”的体验。用户可以交互地改变其视点,并且根据他们的需要动态查看所捕获的场景或对象的任何部分。显示和导航传感器实时跟踪头部运动,以确定用户要观看的360°视频的区域。360°视频可提供三个自由度(3dof)沉浸式体验。(6dof)是沉浸式体验的下一个阶段,其中用户可以在虚拟/增强环境中转头并四处走动。为了提供6dof体验,需要本质上是3维的多媒体数据,诸如点云。

点云和网格是三维(3d)点的集合,表示对象或场景的表面的模型。点云在各种应用中都很常见,诸如游戏、3d地图、可视化、医疗应用、增强现实(ar)、虚拟现实(vr)、自动驾驶、多视图重播、6dof沉浸式媒体等。如果不压缩,点云通常需要大量传输带宽。因此,比特率要求较高,因此在传输点云之前需要进行压缩。点云的压缩硬件和处理不同于传统的二维(2d)多媒体的压缩硬件和处理。



技术实现要素:

技术问题

本公开提供了用于编码、解码和渲染3d媒体内容的方法和装置。

技术方案

在一个实施例中,用于渲染三维(3d)媒体内容的装置包括:通信接口,被配置为接收多媒体流;以及一个或多个处理器,可操作地耦合到通信接口,一个或多个处理器被配置为:将多媒体流解析为包括几何帧和纹理帧的2d视频比特流、用于从2d帧渲染3d点的2d到3d转换元数据、以及描述6dof场景中对象之间的6个自由度(6dof)关系的场景描述元数据;解码包括几何数据和纹理数据的2d视频流,以生成2d像素数据;使用2d到3d转换元数据将2d像素数据转换为3d体素数据;以及使用场景描述元数据从3d体素数据生成6dof场景。

在另一实施例中,一种渲染三维(3d)媒体内容的方法,包括:接收多媒体流;将多媒体流解析为包括几何帧和纹理帧的2d视频比特流、用于从2d帧渲染3d点的2d到3d转换元数据、以及描述6dof场景中对象之间的6个自由度(6dof)关系的场景描述元数据;解码包括几何帧和纹理帧的2d视频流,以生成2d像素数据;使用2d到3d转换元数据将2d像素数据转换为3d体素数据;以及使用场景描述元数据从3d体素数据生成6dof场景。

在另一实施例中,用于对三维(3d)媒体内容进行编码的装置包括:一个或多个处理器,被配置为:获得6个自由度(dof)场景;通过简化6dof场景来生成一个或多个比特流。所述一个或多个比特流包括2d视频比特流,所述2d视频比特流包括6dof场景每个点的几何和纹理,用于从2d像素渲染3d体素的2d到3d转换元数据、以及描述6dof场景中对象之间的6dof关系的场景描述元数据;以及通信接口,可操作地耦合到一个或多个处理器,其中,所述通信接口被配置为将一个或多个比特流发送到客户端设备。

在另一实施例中,用于对三维(3d)媒体内容进行编码的装置包括:通信接口,被配置为接收包括6dof场景的多媒体流;预渲染器,被配置为将6dof场景转换为较低级别的dof场景;编码器,被配置为将较低级别的dof场景编码为视频数据,并且通信接口还被配置为发送包括编码的视频数据的比特流。

根据以下附图、描述和权利要求,其他技术特征对于本领域技术人员而言将是显而易见的。

有益效果

本公开提供了用于编码、解码和渲染3d媒体内容的方法和装置。

附图说明

为了更完整地理解本公开及其优点,现在结合附图参照以下描述,其中相同的附图标记表示相同的部分:

图1示出根据本公开的实施例的示例通信系统;

图2示出根据本公开的实施例的示例电子设备;

图3示出根据本公开的实施例的示例电子设备;

图4示出根据本公开的一个实施例的用于三维(3d)流传输(streaming)服务的系统400的示例性概述;

图5示出根据本公开的一个实施例的用于渲染沉浸式媒体内容的系统设备的示例图;

图6示出根据本公开的一个实施例的用于渲染沉浸式媒体内容的系统的另一示例图;

图7示出根据本公开的一个实施例的用于渲染三维(3d)内容的系统的另一示例图;

图8示出根据本公开的一个实施例的用于渲染沉浸式媒体内容的客户端设备的另一示例图;以及

图9示出用于渲染沉浸式媒体内容的方法900的示例性流程图。

具体实施方式

在进行下面的详细描述之前,阐明整个专利文件中使用的某些单词和短语的定义可能是有利的。术语“耦合”及其派生词是指两个或多个元件之间的任何直接或间接通信,无论这些元件是否彼此物理接触。术语“发送”、“接收”和“通信”及其派生词涵盖直接和间接通信。术语“包括”和“包含”及其派生词意指包括但不限于。术语“或”是包含性的,意指和/或。短语“与...关联”及其派生词意指包括、包含在其中、与...互连、包含、包含在其、连接到或与...连接、耦合到与...耦合、与...通信、与...合作、交织、并置、接近、绑定到或与...绑定、具有、具有...属性、或与...具有关系。术语“控制器”意指控制至少一个操作的任何设备、系统或其一部分。这样的控制器可以以硬件或硬件和软件和/或固件的组合来实现。与任何特定控制器相关联的功能可以是本地或远程的集中式或分布。短语“至少一个”当与项目列表一起使用时,意指可以使用一个或多个所列项目的不同组合,并且可能只需要列表中的一个项目。例如,“a、b和c中的至少一个”包括以下组合中的任何一个:a、b、c、a和b、a和c、b和c以及a和b和c。

此外,以下描述的各种功能可以由一个或多个计算机程序实现或支持,每个计算机程序由计算机可读程序代码形成并体现在计算机可读介质中。术语“应用”和“程序”是指适于在合适的计算机可读程序代码中实现的一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据或其一部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(rom)、随机访问存储器(ram)、硬盘驱动器、光盘(cd)、数字视频光盘(dvd)或任何其他类型的存储器。“非暂时性”计算机可读介质不包括传输暂时性电或其他信号的有线、无线、光学或其他通信链路。非暂时性计算机可读介质包括可永久存储数据的介质和可存储数据并随后覆盖的介质,诸如可重写光盘或可擦除存储设备。

贯穿本专利文件提供了其他某些单词和短语的定义。本领域普通技术人员应该理解,在许多(如果不是大多数)情况下,这样的定义适用于这样定义的词和短语的先前以及将来的使用。

以下讨论的图1至图9以及用于描述本专利文件中的本公开的原理的各种实施例仅是示例性的,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以在任何适当布置的系统或设备中实现。

虚拟现实(vr)是视觉和音频场景的渲染版本。渲染被设计为在观察者或用户在应用定义的范围内移动时对观察者或用户尽可能自然地模拟现实世界中的视觉和听觉感官刺激。例如,vr将用户置于与他们的头部运动交互的沉浸式世界中。在视频级别,vr是通过提供视频体验来实现的,该视频体验覆盖了尽可能多的视场(fieldofview,fov)以及渲染视频的视角与头部运动的同步。尽管许多不同类型的设备能够提供这种体验,但是头戴式显示器是最受欢迎的。通常,头戴式显示器依赖于集成到设备中并与外部计算机一起运行的专用屏幕(受限制(tethered))或依赖于插入hmd的智能手机(不受限制)。第一种方法利用轻巧的屏幕,并受益于高计算能力。相反,基于智能手机的系统具有更高的移动性,并且生产成本可能更低。在这两种情况下,视频体验都是相同的。

点云是类似于vr的对象的3d表示。类似地,点网格是类似于vr的对象的3d表示。通常,点云是由坐标系定义的数据点的集合。例如,在3d笛卡尔坐标系中,点云的每个点都由三个坐标x、y和z来标识。当每个点由这三个坐标标识时,则相对于x,y和z轴相交的原点,3d空间中的精确位置被标识。点云的点通常表示对象的外表面。点云的每个点由三个坐标和一些属性定义,诸如颜色、纹理坐标、强度、法线、反射率等。

类似地,3d网格是类似于点云以及vr的对象的3d表示。3d网格示出由多边形构建的对象的外部结构。例如,3d网格是定义对象形状的顶点、边缘和面的集合。再例如,可以在球坐标系上渲染网格(或点云),并在整个球体上显示每个点。在某些实施例中,每个点可以位于球体内的x、y、z坐标中,并且纹理坐标u和v指示图像的纹理的位置。当渲染点云时,将网格的顶点、对应的纹理坐标和纹理图像输入图形处理单元,其将网格映射到3d几何图形。用户可以被置于虚拟球体的中心并且看到360°场景中与视口(viewport)相对应的部分。在某些实施例中,可以使用其他形状代替球体,诸如立方体、二十面体、八面体等。

点云和网格通常用于各种应用,包括游戏、3d映射、可视化、医学、增强现实、vr、自主驾驶、多视图重播(multiviewreplay)、6个自由度沉浸式媒体等,仅举几例。

虽然2d单视场(monoscope)或立体(stereoscopic)视频在3个自由度(dof)或3dof+媒体中起作用,但是在6dof媒体中,将大量使用新型3d体积(volumetric)媒体,例如,点云或光场,并且将需要附加的渲染相关信息。因此,用于6dof媒体的架构将不同于3dof或3dof+媒体的架构。

本公开的范围不限于mpeg-1内容或点云内容,而是还包括mpeg-1内容或点云内容的组合。

特别地,本公开提供了将mpeg-1数据、点云数据或mpeg-1数据和点云数据的组合用于6dof媒体体验的架构,其将实现6dof媒体的快速且节能(powerefficient)的渲染。可以通过使用2d平面视频解码器来实现将mpeg-1数据、点云数据或mpeg-1数据和点云数据的组合用于6dof媒体体验的架构。因此,本公开允许利用具有2d视频解码器和gpu的常规多媒体处理器进行6dof媒体消费。

图1示出根据本公开的示例计算系统100。图1所示的系统100的实施例仅用于说明。在不脱离本公开的范围的情况下可以使用系统100的其他实施例。

系统100包括促进系统100中的各个组件之间的通信的网络102。例如,网络102可以在网络地址之间通信互联网协议(ip)封包、帧中继帧、异步传输模式(atm)单元或其他信息。网络102包括一个或多个局域网(lan)、城域网(man)、广域网(wan)、诸如互联网的全球网络的全部或一部分、或位于一个或多个位置的任何一个或多个其他通信系统。

网络102促进服务器104与各种客户端设备106-116之间的通信。客户端设备106-116可以是例如智能电话、平板计算机、膝上型计算机、个人计算机、可穿戴设备或头戴式显示器(hmd)。服务器104可以表示一个或多个服务器。每个服务器104包括可以为一个或多个客户端设备提供计算服务的任何合适的计算或处理设备。每个服务器104可以例如包括一个或多个处理设备、一个或多个存储指令和数据的存储器以及促进通过网络102通信的一个或多个网络接口。如下面更详细地描述的,服务器104向一个或多个用户发送点云。

每个客户端设备106-116表示通过网络102与至少一个服务器或其他计算设备交互的任何合适的计算或处理设备。在该示例中,客户端设备106-116包括台式计算机106、移动电话或移动设备108(诸如智能手机)、个人数字助理(pda)110、膝上型计算机112、平板计算机114和hmd116。然而,系统100中可以使用任何其他或附加客户端设备。

在该示例中,一些客户端设备108-116与网络102间接通信。例如,客户端设备108和110(分别为移动设备108和pda110)经由一个或多个基站118(例如,蜂窝基站或enodeb(enb))进行通信。移动设备108包括智能手机。此外,客户端设备112、114和116(分别是膝上型计算机、平板计算机和hmd)经由一个或多个无线接入点120(诸如ieee802.11无线接入点)进行通信。如下面更详细描述的,hmd116可以显示点云的360°视图。注意,这些仅用于说明,并且每个客户端设备106-116可以与网络102直接通信,或者经由任何合适的中间设备或网络与网络102间接通信。在某些实施例中,服务器104或任何客户端设备106-114可用于压缩点云并将数据发送到另一客户端设备,诸如任何客户端设备106-116。

在某些实施例中,移动设备108(或任何其他客户端设备106-116)可以安全且有效地向另一设备(例如,服务器104)发送信息。移动设备108(或任何其他客户端设备106-116)在通过支架附接到头戴式耳机时可以充当vr显示器,并且功能类似于hmd116。移动设备108(或任何其他客户端设备106-116)可以触发自身与服务器104之间的信息传输。

尽管图1示出了系统100的一个示例,但是可以对图1进行各种改变。例如,系统100可以以任何合适的布置包括任意数量的每个组件。通常,计算和通信系统具有各种各样的配置,图1不将本公开的范围限制为任何特定配置。尽管图1示出可以使用在该专利文件中公开的各种特征的一种操作环境,但是这些特征可以在任何其他合适的系统中使用。

在本公开中提供的处理和系统允许客户端设备106-116或服务器104压缩,发送,接收,渲染点云或其组合。例如,服务器104然后可以压缩点云数据并将点云数据发送到客户端设备106-116。对于另一个示例,任何客户端设备106-116可以压缩点云数据并将点云数据发送到任何客户端设备106-116。

图2和图3示出根据本公开的实施例的计算系统中的示例设备。特别地,图2示出示例服务器200,图3示出示例电子设备300。服务器200可以表示图1的服务器104,电子设备300可以表示图1的一个或多个客户端设备106-116。

服务器200可以表示一个或多个本地服务器、一个或多个压缩服务器或一个或多个编码服务器。如图2所示,服务器200包括总线系统205,其支持至少一个处理器210、至少一个存储设备215、至少一个通信接口220和至少一个输入/输出(i/o)单元225之间的通信。

处理器210执行可以存储在存储器230中的指令。存储在存储器230中的指令可以包括用于分解点云,压缩点云的指令。存储在存储器230中的指令还可以包括用于对点云进行编码以生成比特流的指令。存储在存储器230中的指令还可以包括用于在通过vr头戴设备(headset)(诸如图1的hmd116)观看时在全向360°场景上渲染点云的指令。处理器210可以以任何合适的布置包括任何合适数量和类型的处理器或其他设备。处理器210的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。

存储器230和永久性存储(persistentstorage)235是存储设备215的示例,其表示能够存储信息(诸如临时或永久的数据、程序代码或其他合适信息)和促进该信息的检索的任何结构。存储器230可以表示随机访问存储器或任何其他合适的易失性或非易失性存储设备。永久性存储235可以包含一个或多个支持长期数据存储的组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。

通信接口220支持与其他系统或设备的通信。例如,通信接口220可以包括网络接口卡或无线收发器,以促进在图1的网络102上的通信。通信接口220可以支持通过任何适当的物理或无线通信链路的通信。

i/o单元225允许数据的输入和输出。例如,i/o单元225可以为通过键盘、鼠标、小键盘、触摸屏、运动传感器或任何其他合适的输入设备的用户输入提供连接。i/o单元225还可以将输出发送到显示器、打印机或任何其他合适的输出设备。

在某些实施例中,服务器200实现点云的压缩,这将在下面更详细地讨论。在某些实施例中,服务器200生成对应于点云的三个维度的多个2d帧。在某些实施例中,服务器200将点云的三个维度映射到2d。在某些实施例中,服务器200通过对表示点云的压缩二维帧进行编码来生成压缩比特流。

注意,虽然将图2描述为表示图1的服务器104,相同或相似的结构可以在各种客户端设备106-116中的一个或多个中使用。例如,台式计算机106或膝上型计算机112可以具有与图2所示相同或相似的结构。

图3示出根据本公开的实施例的电子设备300。图3所示的电子设备300的实施例仅用于说明,并且在不脱离本公开的范围的情况下可以使用其他实施例。电子设备300可以具有各种各样的配置,并且图3不将本公开的范围限制到电子设备的任何特定实现。在某些实施例中,图1的客户端设备106-116中的一个或多个可以包括与电子设备300相同或相似的配置。在某些实施例中,电子设备300可以是编码器和解码器。

在某些实施例中,电子设备300可以与数据传输、图像或视频压缩、图像或视频解压缩、编码、解码和媒体渲染应用一起使用。电子设备300可以是移动通信设备,例如无线终端、台式计算机(类似于图1的台式计算机106)、移动设备(类似于图1的移动设备108)、pda(类似于图1的pda110)、膝上型计算机(类似于图1的膝上型计算机112)、平板计算机(类似于图1的平板计算机114)、头戴式显示器(类似于图1的hmd116)等。

如图3所示,电子设备300包括天线305、射频(rf)收发器310、发送(tx)处理电路315、麦克风320和接收(rx)处理电路325。电子设备300还包括扬声器330、一个或多个处理器340、输入/输出(i/o)接口(if)345、输入350、显示器355和存储器360。存储器360包括操作系统(os)361和一个或多个应用362。

rf收发器310从天线305接收由系统上的另一组件发送的输入rf信号。例如,rf收发器310从网络102(诸如wi-蜂窝、5g、lte-或任何其他类型的无线网络)的接入点(诸如基站、wi-fi路由器、蓝牙设备)接收由bluetooth或wi-fi信号发送的rf信号。rf收发器310可以将输入rf信号下变频以生成中频或基带信号。将中频或基带信号发送到rx处理电路325,该rx处理电路325通过对基带或中频信号或其组合进行滤波,解码或数字化来生成处理基带信号。rx处理电路325将处理基带信号发送到扬声器330(诸如用于语音数据)或处理器340以进行进一步处理(诸如用于网页浏览数据)。

tx处理电路315从麦克风320接收模拟或数字语音数据,或者从处理器340接收其他输出基带数据。输出基带数据可以包括网络数据、电子邮件或交互式视频游戏数据。tx处理电路315对输出基带数据进行编码,复用,数字化或其组合,以生成处理基带或中频信号。rf收发器310从tx处理电路315接收输出处理带或中频信号,并将基带或中频信号上转换为经由天线305发送的rf信号。

处理器340可以包括一个或多个处理器或其他处理设备,并执行存储在存储器360中的os361,以控制电子设备300的整体操作。例如,处理器340可以按照已知原理控制通过射频收发器310、rx处理电路325和tx处理电路315进行前向信道信号的接收和反向信道信号的传输。处理器340还能够执行驻留在存储器360中的其他应用362,诸如解压缩并生成接收的点云。

处理器340可以执行存储在存储器360中的指令。处理器340可以以任何合适的布置包括任何合适数量和类型的处理器或其他设备。例如,在一些实施例中,处理器340包括至少一个微处理器或微控制器。处理器340的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。

处理器340还能够执行驻留在存储器360中的其他处理和程序,诸如通过提供图像捕获和处理接收,存储和及时指示的操作。处理器340可以根据执行处理的需要将数据移入或移出存储器360。在一些实施例中,处理器340被配置为基于os361或响应于从enb或运营商接收的信号来执行多个应用362。处理器340还耦合到i/o接口345,向电子设备300提供连接到诸如客户端设备106-116的其他设备的能力。i/o接口345是这些附件与处理器340之间的通信路径。

处理器340也耦合到输入350。电子设备300的操作员可以使用输入350将数据键入或输入到电子设备300中。输入350可以是键盘、触摸屏、鼠标、轨迹球、语音输入或任何其他能够充当用户界面以允许用户与电子设备300交互的设备。例如,输入350可以包括语音识别处理,从而允许用户通过麦克风320输入语音命令。在另一示例中,输入350可以包括触摸面板、(数字)笔传感器、键或超声输入设备。触摸面板可以例如以电容性方案、压敏方案、红外方案或超声方案中的至少一种方案来识别触摸输入。例如,在电容方案中,输入350可以识别触摸或接近。输入端350还可以包括控制电路。通过向处理器340提供附加输入,输入350可以与一个或多个传感器365和/或相机相关联。如以下更详细地讨论的,传感器365包括惯性传感器(诸如加速度计、陀螺仪和磁力计)、光学传感器、运动传感器、相机、压力传感器、心率传感器、高度计等。例如,输入350可以利用由与传感器365相关联的运动传感器检测的运动作为输入。

处理器340也耦合到显示器355。显示器355可以是液晶显示器(lcd)、发光二极管(led)显示器、有机led(oled)、有源矩阵oled(amoled)或能够渲染文本和/或图形(诸如来自网站、视频、游戏、图像等)的其他显示器。显示器355的尺寸可以设置成适合hmd。显示器355可以是单个显示屏或能够创建立体显示器的多个显示屏。在某些实施例中,显示器355是平视显示器(heads-updisplay,hud)。

存储器360耦合到处理器340。存储器360的一部分可以包括随机访问存储器(ram)、并且存储器360的另一部分可以包括闪存或其他只读存储器(rom)。

存储器360可以包括持久性存储器(未示出),表示能够存储和促进信息(诸如临时或永久的数据、程序代码和/或其他合适信息)的检索的任何结构。存储器360可以包含一个或多个支持长期存储数据的组件或设备,诸如仅就绪存储器、硬盘驱动器、闪存或光盘。

电子设备300还可以包括一个或多个传感器365,对物理量进行计量或检测电子设备300的激活状态,并将计量或检测的信息转换为电信号。例如,传感器365可以包括一个或多个用于触摸输入的按钮(位于头戴设备或电子设备300上)、一个或多个相机、手势传感器、眼睛跟踪传感器、陀螺仪或陀螺仪传感器、气压传感器、磁传感器或磁力计、加速度传感器或加速度计、抓握传感器、接近传感器、颜色传感器(诸如红绿蓝(rgb)传感器)、生物物理传感器、温度/湿度传感器、照明传感器、紫外线(uv)传感器、肌电图(emg)传感器、脑电图(eeg)传感器、心电图(ecg)传感器、ir传感器、超声传感器、虹膜传感器、指纹传感器等。传感器365还可以包括用于控制包括在其中的传感器中的至少一个的控制电路。如将在下面更详细地讨论的,这些传感器365中的一个或多个可以用于控制用户界面(ui),检测ui输入,确定三维内容显示标识等的用户方向和朝向。这些传感器365中的任何一个可以位于电子设备300内、可操作地连接到电子设备300的辅助设备内、被配置为保持电子设备300的头戴设备内或电子设备300包括头戴设备的单个设备中。

如以下将更详细讨论的,在该说明性实施例中,电子设备300接收编码和压缩的比特流。电子设备300将压缩比特流解码成多个2d帧。在某些实施例中,解码比特流还包括占位图(occupancymap)。电子设备300解压缩多个2d帧。多个2d帧可以包括指示点云的每个点的坐标的帧。该帧可以包括点云的每个几何点的位置。例如,帧可以包括以2d表示的点云的每个几何点的图形描绘。另一帧可以包括每个点的属性,诸如颜色。电子设备300然后可以以三维生成点云。

如以下将更详细讨论的,在该说明性实施例中,电子设备300可以类似于服务器200并且对点云进行编码。电子设备300可以生成表示点云的几何以及纹理或颜色或它们二者的多个2d帧。点云可以映射到2d帧。例如,一帧可以包括几何点。在另一个示例中,另一帧可以包括点云的纹理或颜色或它们两者。电子设备300可以压缩2d帧。电子设备300可以生成占位图以指示每个帧内的有效像素的位置。电子设备300可以对帧进行编码以生成压缩比特流。

尽管图2和图3示出了计算系统中的设备的示例,但是可以对图2和图3进行各种改变。例如,图2和图3中的各个组件可以组合,进一步细分或省略,并且可以根据特定需要添加附加组件。作为特定示例,处理器340可以被划分为多个处理器,诸如一个或多个中央处理单元(cpu)和一个或多个图形处理单元(gpu)。另外,与计算和通信网络一样,电子设备和服务器可以具有多种配置。图2和图3的实施例不将本公开限制于任何特定电子设备或服务器。

图4示出根据本公开的一个实施例的用于三维(3d)流传输服务的系统400的示例概述。图4中所示的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。

系统400包括存储3d点云数据并向各种客户端设备(例如,膝上型计算机、平板计算机、智能电话、头戴式显示器(hmd)、基于眼镜的显示器等)提供有效的点云流传输的服务器。

客户端设备420可以配备有一个或多个传感器,以检测用户的身体(例如,头部或眼睛)的运动、位置或方位(orientation)。传感器可以包括例如惯性、多轴陀螺仪或加速度传感器。客户端设备跟踪用户的头部运动,以确定对应于视场的用户正在看的地方。视场可以指通过客户端设备在三维环境中可见的场。可以基于视口和视点确定视场。

在完成客户端设备420和服务器410之间的流传输会话初始化之后,客户端设备420发送反馈,包括关于视口、视场和/或可用流传输会话比特率(或带宽)中的至少一个的信息。在一个实施例中,反馈还包括信道状态信息(csi),并且服务器可以基于信道状态信息来确定可用比特率或带宽。

然后,服务器410开始通过称为流量控制(flowcontrol)和依赖于视场的选择器412的程序来发送点云数据。该程序被设计为基于视场和带宽/csi反馈来选择点云数据(八叉树(octree)中的节点)。它还提供了流的流量控制以维持适当的带宽。接下来,客户端设备420接收依赖于视场的自适应内容,渲染该内容并将其显示在客户端设备的屏幕上。最后,该程序不断重复以向用户提供良好的流传输服务。

沉浸式媒体是用于表示一种类型的媒体消费体验(其中用户沉浸在用户消费的内容中)的术语。这可以通过多种方式来实现,诸如虚拟现实、增强现实、混合现实、6个自由度(6dof)等。沉浸式体验源自用户能够导航场景,从不同角度查看内容的结果。以其最简单的形式,用户能够在所有方向上环视(即,360度视频),沿着偏航、俯仰和横滚轴提供3个自由度。

在6dof体验中,用户能够在场景中走动,并从不同角度查看每个对象,从而给用户留下沉浸在该场景中的印象。除此之外,ar和mr还可以通过捕获用户的本地环境并将其与媒体内容合并/增强来使内容与真实世界融合。然而,传统的沉浸式媒体系统遭受以下问题。与传统方法相比,渲染通常基于opengl并且是集中式的,并且2d内容用作纹理或背景,但仍通过同一引擎进行渲染。媒体的消费需要场景图,并且时间轴问题从架构上看并不清晰。在此架构中不支持ar。例如,ar对象可以由用户选择并放置在场景中。所有处理都发生在接收器侧,这导致对客户端设备的巨大处理要求。

本公开提供了使得能够在终端设备上消费沉浸式内容的系统和装置。在不支持场景图或描述的情况下,沉浸式媒体系统提供了到简化或默认渲染的回退。此外,系统通过将6个自由度下转换为简化的6个自由度、3个自由度、360度视频或2维(2d)视频,使6个自由度适应客户端带宽和处理能力。本公开允许在vr和360度视频上适当地渲染定时文本信息,诸如webvtt。本公开允许解决深度不匹配以及相对于视频的相对定位的问题的正确渲染。

与传统2d架构的区别特征之一是视觉渲染由图形引擎控制,该引擎将不同的媒体资源进行合成以创建呈现(presentation)。音频在渲染中可能会经历类似程序。特别是,图形引擎将使用传统2d内容作为由某些几何形状控制的对象的纹理。基于物理的渲染将这种方法发挥到了极致,在这种情况下,可以逼真地模拟真实的光传播、反射/折射图案。

最广泛使用的图形和游戏引擎依赖opengl核心。它们充当opengl的包装,并以更抽象和更简单的使用方式为开发人员提供更高级的功能。

当渲染vr/ar或6dof内容时,渲染引擎通常会首先设置场景。场景可以从场景图/场景描述文档中读取,或者可以从内容中推断出(例如,360度视频的具有单个球体几何形状的场景)。可以给予客户端在完整6dof场景渲染、可以选择简化的渲染、或可以将部分场景渲染委托给网络之间进行选择的选项。在后一种情况下,网络将6dof场景转换为简化6dof场景、3dof+或3dof场景,甚至转换为2d视频。

内容的媒体资源可以具有各种格式和类型。它们可以是2d或3d、天然的或合成的、压缩的或未压缩的,由内容提供商提供的或本地捕获的(例如,在ar的情况下)。mpeg应当鼓励使用mpeg格式(例如,点云压缩格式),但也还应当允许流行和广泛使用的场景图和媒体资源。

mpeg-i剩余的问题之一是呈现时间轴管理。不同资源可以具有用于它们的呈现的内部时间轴,诸如alembic格式的样本。场景图可以具有导致内部媒体时间轴的动画和其他脚本。此外,场景图还应该在6dof呈现中可更新,其中更新是定时的或由事件驱动的。最后,容器格式还可以指定用于嵌入式媒体的呈现的媒体时间轴。

为了处理时间轴控制问题,需要仔细组织不同的媒体时间轴。分层安排将适用于所有格式,其中容器时间轴将代表顶层,然后是场景图和媒体资源的内部媒体时间轴。对于具有内部媒体时间轴的媒体资源,可以部分地从容器格式访问嵌入式媒体资源的每个样本并为其定时。作为示例,可以将alembic样本映射到容器样本并且与用于呈现的时间戳相关联。

另一方面,可以基于事件而不是预定时间来回放样本。这意味着可以将容器的时间轴分为多个子路径,这些子路径的播放是分离的,并且可以由事件或其他源触发。

3dof和3dof+渲染可以通过利用一些附加元数据(诸如投影、视点和深度/视差)渲染2d平面媒体内容来实现。6dof媒体渲染将需要一些附加特征来渲染新型3d体积(volumetric)媒体。以下是6dof媒体渲染的重要特征的列表。

2d平面视频和3d体积视频的同步渲染。由于用于6dof媒体的显示设备类型是2d平面显示器,因此6dof媒体将是2d平面视频和3d体积视频的组合。在一个实施例中,需要通过单个渲染引擎在时间和3d空间上将3d体积视频与2d平面视频同步渲染。此外,对于交互式消费,还需要根据6度视口进行渲染。

天然和合成对象的混合渲染。在使用6dof媒体的增强现实(ar)或vr中,需要将天然3d体积对象正确放置在3d合成场景中,反之亦然。因此,天然和合成3d体积对象需要通过场景图信息考虑到照明和反射效果而被正确合成,并且应该由单个渲染引擎针对单个场景一起渲染。

在不久的将来,当部署mpeg-i标准时,智能手机和hmd将用作消费6dof媒体的设备,直到市场上部署了诸如全息显示器的纯6dof设备为止。为了满足功耗要求,复杂2d视频解码器和图形处理单元(gpu)可以被实现为专用硬件,诸如单芯片。考虑到一般应用场景,这种单芯片在模块之间包括专用数据总线。由于诸如功耗、大小等硬件限制,在不久的将来添加另一个计算上昂贵的模块来处理3d天然体积视频将不可行。因此,用于处理6dof媒体的客户端设备可以包括单2d平面视频解码器和gpu。然而,客户端可以包括多个2d平面视频解码器和gpu,以实现更高的渲染能力。

远程动态/部分渲染:由于复杂性,由客户端设备渲染完整3d体积场景将不可行,并且由于用户只会看到其某些部分而没有必要。另外,由于大多数显示设备配备有2d平面单视场/立体显示器,因此客户端可能只需要整个场景的一部分。因此,使用位于远程且通过高速低延迟网络连接的渲染器很有用。客户端设备将从远程渲染器请求并接收部分渲染的场景,并将它们与本地渲染的场景组合在一起以生成最终场景。

考虑到如上所述的6dof媒体消费和硬件实现所支持的特征以及6dof媒体的组件,下面参考附图提供用于6dof媒体服务的架构。

图5示出根据本公开的一个实施例的用于渲染沉浸式媒体内容的客户端设备的示例图。图5所示的实施例仅用于说明。在不脱离本公开的范围的情况下使用其他实施例。

系统500的架构通过不同的方式容纳输入以解决诸如3dof/6dof甚至ar/混合现实(mr)的应用。系统500包括客户端设备501和预渲染器502。预渲染器设备502可以是客户端设备501中的本地组件,或者可以作为单独的实体位于网络中。

对于处理能力或网络资源受限的某些客户端设备,可能需要进行预渲染/简化。例如,通过减少限制观看窗口的场景中的数据量和/或限制场景中的移动,将6dof场景转换为简化6dof场景。被遮挡、距离观看者太远或者不在观看者的可见范围内的对象和数据,可以完全移除,或者减小大小和复杂度。在一个实施例中,在6dof点的xyz坐标中,存储点的x和z坐标,使得可以从存储2d帧内的x和z坐标的像素的行数确定y坐标。客户端设备支持以不同形式消费内容。例如,可以在简单的客户端设备中呈现简化2d版本,客户端设备也可以消费受限的3dof、3dof+或6dof版本。

可以在预渲染器502和2d视频编码器503中执行预渲染/简化操作。预渲染器502和2d视频编码器503可以是客户端设备中的本地组件,或者可以作为单独的实体位于网络中。

预渲染器502从网络或3d内容存储接收6dof场景数据,并将6dof场景转换为较低级别的dof场景,诸如服务器上的360视频或2d视频。在一个实施例中,预渲染器521将虚拟360或2d相机放置在6dof场景中的观看者的位置,并捕获360视频或2d视频。在另一实施例中,预渲染器包括一个或多个处理器,被配置为获得6个自由度(dof)场景并通过简化6dof场景来生成一个或多个比特流。一个或多个比特流包括包含6dof场景的每个点的几何和纹理的2d视频比特流、用于从2d像素渲染3d体素的2d到3d转换元数据、以及用于描述6dof场景中的对象之间的6dof关系的场景描述元数据。

2d视频编码器503通过编解码器对较低级别的dof场景(诸如360视频或2d视频)进行编码,并输出一个或多个比特流。编解码器可以包括高效视频编码(hevc)、hevc可扩展性扩展(shvc)、高级视频编码(avc)、可扩展视频编码(svc)、视频压缩(vp)9、vp8联合视频专家团队(jvet)、oint摄影专家组(jpeg)等中的至少一个。一个或多个比特流包括诸如非mpeg音频或mpeg兼容音频的音频轨道,包括mpeg兼容360°视频轨道的2d视频轨道。此外,一个或多个比特流可以包括静态3d资源(pc、网格、几何、纹理、属性)和定时3d资源(pc、网格、几何、纹理、属性)。另外,一个或多个比特流可以包括定时场景数据/场景脚本/脚本信息。

客户端设备501包括容器解析器521、多个视频解码器522、523、524,脚本解析器525、多个音频解码器526、527、渲染器531以及各种输入544、545、546、547。

客户端设备501从网络或文件接口505接收一个或多个比特流,其可以包括静态3d资源(pc、网格、几何、纹理、属性)和定时3d资源(pc、网格、几何、纹理、属性)。一个或多个比特流还可以包括定时场景数据、场景脚本和/或脚本信息。此信息可用于描述呈现的场景。

解析器521从一个或多个比特流中提取关于资源和媒体时间轴以及任何嵌入的或参考的媒体资源的信息,并使它们在呈现引擎505处可用。容器解析器将2d视频数据511分发到mpeg视频解码器512,将静态3d资源512分发到媒体特定解析器/解码器513,将定时3d资源513分发到媒体特定解析器/解码器514,将音频非mpeg音频数据514分发到音频解码器516,将mpeg兼容数据515分发到mpeg音频解码器517。脚本解析器525解析定时场景信息、场景图信息和着色器信息,并将解析的信息馈送到渲染器531。在一个实施例中,可以以容器格式描述基本渲染操作以支持简单客户端,该简单客户端不支持任何所包括的场景图格式。其他场景描述文件(诸如脚本或着色器)也可以包括在容器/解析器中。

解码的媒体资源在渲染器531中被合成在一起以产生呈现。渲染器531包括图形渲染引擎532和音频渲染引擎533。图形渲染引擎505对来自解码的2d像素以及静态和定时媒体资源的视觉内容执行渲染。图形渲染引擎505可以从2d内容中组成3d内容。一个示例是使用mpeg编码的点云压缩编码的点云。图形渲染引擎503可以基于诸如opengl或webgl的一些图形库或者甚至诸如统一性(unity)的一些更高级别的引擎来构建。2d/3d音频渲染引擎507对来自解码的非mpeg或mpeg兼容的音频数据的音频内容执行渲染。

客户端设备501可以从传感器544、本地相机545、本地用户输入546,本地麦克风547等接收各种输入,以用于增强现实(ar)/混合现实(mr)应用。

图6示出根据本公开的一个实施例的用于渲染沉浸式媒体内容的系统600的另一示例图。图6中所示的实施例仅用于说明。在不脱离本公开的范围的情况下使用其他实施例。

客户端设备601包括解析器603、2d视频解码器605、2d到3d转换器607、渲染器609、显示器611。在一些实施例中,客户端设备601可以与远程渲染器612通信以进行部分渲染处理。

客户端601从服务器(未示出)接收媒体内容文件。媒体内容文件可以6dofmpeg-i格式进行流传输。媒体内容文件可以包含压缩的多媒体数据,诸如一个或多个2d平面视频比特流、2d平面视频到3d体积视频转换元数据以及3d场景表示和渲染描述。在媒体内容文件中,可以将2d平面视频到3d体积视频转换元数据作为补充增强信息(sei)消息放置在文件级别或2d视频比特流内部。

解析器603从媒体内容文件解析并提取2d视频比特流,2d平面视频到3d体积视频转换元数据以及场景表示和渲染描述。下面详细描述每个提取数据。

2d平面视频比特流是用于2d平面解码器的比特流,该比特流被解码为2d像素数据,其中此类2d像素数据用作6dof媒体的2d平面视频分量、3d几何图形的视频纹理、或3d体积视频对象的2d平面表示。2d视频比特流可以包括几何帧和/或属性帧。几何帧和属性帧可以在一个流或分别在不同流中进行流传输。几何帧包含关于点的每个像素的几何位置的信息。几何帧指示2d帧中的几何位置。例如,几何帧可以以能够确定丢失坐标的方式指示三个xyz坐标中的两个。例如,y坐标不存储在几何帧上,而是存储了x和z坐标,使得可以从存储2d几何帧内的x和z坐标的像素的行号中确定y坐标。纹理帧包括每个点的属性或纹理。纹理帧可以包括rgb颜色、材料属性、强度、质量、标志等中的一个或多个。

2d平面视频到3d体积视频转换元数据将用于从其2d平面表示重构3d体积视频对象,诸如点云或光场。

3d场景表示元数据包括通过描述场景中天然对象和合成对象之间的6度时空关系来描述渲染器模块的3d场景的树结构逻辑模型。场景描述可以是场景描述片段的列表,每个场景描述片段对应于树(依赖)结构的特定节点。

渲染描述元数据包括关于根据用户的6度视口信息进行渲染处理的配置和操作的静态和动态描述。

在解析处理之后,解析器603将2d视频比特流分配给2d视频解码器605,将2d平面视频到3d立体视频转换元数据分配给2d到3d转换器607,并将3d场景表示元数据和渲染描述元数据分配给渲染器609。在一个实施例中,解析器603还可以将一些需要更高计算能力或专用渲染引擎的数据传递给远程渲染器612以进行部分渲染处理。

2d视频解码器605对包括几何帧和纹理帧的2d平面视频比特流进行解码,并生成2d像素数据。在一个实施例中,2d视频解码器605在2d维度上映射几何和纹理以生成2d像素。

2d到3d转换器607通过使用从解析器模块605接收的2d到3d转换元数据重构3d体积视频对象,将2d像素数据转换为3d体素数据。

渲染器609接收3d体素数据,并且通过使用3d场景表示将3d对象布置在3d空间中来渲染6dof媒体内容。在一个实施例中,渲染器609可以从传感器接收关于用户交互信息的信息,并确定要渲染6dof媒体的哪部分。随后,渲染器609使用3d场景表示来生成所确定的6dof媒体的部分。

在一个实施例中,具有较高计算能力的远程渲染器612或专用渲染引擎可用于产生部分渲染的6dof媒体数据。在这种情况下,用户的6dof视口信息也将传递到远程渲染器模块612。然后,渲染器612将本地渲染的6dof视频与远程渲染的6dof视频组合在一起,以生成最终的完整6dof视频。

图7示出根据本公开的一个实施例的用于渲染沉浸式媒体内容的系统700的另一示例图。图7中所示的实施例仅用于说明。在不脱离本公开的范围的情况下使用其他实施例。

客户端设备701用于渲染3dof和6dof媒体二者,而客户端设备700专注于渲染6dof媒体。客户端设备700的渲染机制与参照图5描述的客户端设备500的渲染机制相似。

客户端设备701包括解析器703、视频解码器705、视图合成器707、渲染器709、显示器711。在一些实施例中,客户端设备501可以与远程渲染器713通信以进行部分渲染处理。

客户端设备701从服务器(未示出)接收3dof和6dof媒体内容文件。媒体内容文件可以包含压缩的3dof和6dof多媒体数据,诸如一个或多个2d平面视频比特流、2d平面视频到3d体积视频转换元数据、以及3d场景表示和渲染描述。

解析器703从3dof和6dof媒体内容文件解析并提取2d视频比特流、2d平面视频到3d体积视频转换元数据、以及场景表示和渲染描述。

在解析处理之后,解析器703将2d视频比特流分配给视频解码器705,将2d平面视频到3d体积视频转换元数据分配给视图合成器707,并将3d场景表示元数据和渲染描述元数据分配给渲染器709。在一个实施例中,解析器703还可以将部分数据的一部分传递给具有更高计算能力的远程渲染器513或用于部分渲染的专用渲染引擎。

2d视频解码器705对包括几何帧和纹理帧的2d平面视频比特流进行解码,并通过在2d维度上映射几何和纹理来生成2d像素数据。

视图合成器707通过基于从解析器模块505接收的2d到3d转换元数据来重构3d体积视频对象,将2d像素数据转换为3d体素数据。然后,视图合成器707将同一场景中的3dof对象和6dof对象的3d体素数据组合。

渲染器709接收3d体素数据,并通过使用3d场景表示将3d对象布置在3d空间中来渲染6dof媒体内容。在一个实施例中,渲染器709可以从传感器接收关于各种用户交互信息的信息,并确定要渲染3dof和6dof媒体的哪部分。随后,渲染器709使用3d场景表示来生成所确定的3dof和6dof媒体的部分。

在一个实施例中,远程渲染器713可用于产生部分渲染的3dof和6dof媒体视频。在这种情况下,用户信息也被传递到远程渲染模块512。然后,渲染器709将本地渲染的3dof和6dof视频与远程渲染的6dof媒体进行组合以生成最终的完整3dof和6dof视频。

渲染器模块709通过使用3d体素数据或3d场景表示和2d像素数据的组合来生成3dof+/6dof媒体。如果存在来自远程渲染器模块713的部分渲染的3dof+/6dof媒体数据,则渲染器模块709还将此类数据与本地渲染的6dof媒体组合以生成最终的6dof视频。

诸如用户的位置、姿势、方向或视点的用户交互信息可以被传递到在3dof+/6dof媒体的处理中涉及的解析器703、视频解码器705、视图合成器707和渲染器709,以根据该用户信息动态地改变数据的渲染部分以进行自适应渲染处理。

图8示出根据本公开的一个实施例的用于渲染沉浸式媒体内容的客户端设备的另一示例图。图8中所示的实施例仅用于说明。在不脱离本公开的范围的情况下使用其他实施例。

客户端设备801是用于点云媒体的渲染模型,作为参照图6描述的3dof和6dof渲染模型的特定实例。客户端设备801的渲染机制类似于客户端设备601和701的渲染机制。

客户端设备801接收点云媒体内容文件,该点云媒体内容文件由两个2d平面视频比特流和2d平面视频到3d体积视频转换元数据组成。在该内容中,2d平面视频到3d体积视频转换元数据可以轨道位于文件级别作为定时元数据,也可以位于2d视频比特流内作为sei消息。

客户端设备801的解析器803读取内容,并将两个2d视频比特流传递给2d视频解码器805,并将2d平面视频传递给3d体积视频转换元数据传递给视频到点云转换器807。

2d视频解码器805解码2d平面视频比特流以生成2d像素数据。然后,如果需要使用从解析器模块接收的元数据,则视频到点云转换器807将来自2d视频解码器805的2d像素数据转换为3d点云数据。视频到点云转换器807使用2d到3d转换元数据将3d体积对象重构为点云。

渲染器809通过在3d空间中布置3d对象的点云来渲染点云媒体。如果存在来自远程渲染器模块的部分渲染的点云媒体数据,则渲染器809还将此类远程渲染的数据与本地渲染的点云媒体进行组合以生成最终的点云视频。

用户交互信息(诸如用户在3d空间中的位置或用户的方向和视点)可以传递到点云媒体处理中所涉及的模块,以根据用户交互信息动态地改变数据的部分用于内容的自适应渲染。

图9示出根据本公开的一个实施例的可以由客户端设备执行的用于呈现沉浸式媒体内容的方法900的示例性流程图。图9所示的方法900的实施例仅用于说明。图9中示出组件的一个或多个包括可以在被配置为执行所指出的功能的专用处理电路中实现,或者组件的一个或多个可以通过执行指令以执行所指出的功能的一个或多个处理器实现。在不脱离本公开的范围的情况下使用其他实施例。

如图9所示,方法900在步骤910开始。在步骤910,客户端设备从网络接收多媒体流。

在步骤920中,客户端设备从3dof和6dof媒体内容文件解析并提取2d视频比特流、2d平面视频到3d体积视频转换元数据、以及场景表示和渲染描述。在解析处理之后,客户端设备将2d视频比特流分发给视频解码器,将2d平面视频到3d体积视频转换元数据分发给视图合成器,并将3d场景表示元数据和渲染描述元数据分发给渲染器。

在步骤930,客户端设备解码包括几何帧和纹理帧的2d视频流以生成2d像素数据。

在步骤940中,客户端设备通过使用2d至3d转换元数据来重构3d体积视频对象,从而将2d像素数据转换为3d体素数据。

随后,客户端设备使用场景描述元数据从3d体素数据生成6dof场景。

尽管附图示出了用户设备的不同示例,但是可以对附图进行各种改变。例如,用户设备可以包括以任何合适的布置的任意数量的每个组件。通常,附图不将本公开的范围限制为任何特定配置。此外,尽管附图示出了可以使用本专利文件中公开的各种用户设备特征的操作环境,但是这些特征可以用于任何其他合适的系统中。

本申请中的任何描述均不应理解为暗示任何特定的元素、步骤或功能是必须包含在权利要求范围内的必要元素。专利主题的范围仅由权利要求限定。

尽管已利用示例实施例描述了本公开,但是可向本领域技术人员提出各种改变和修改。本公开旨在涵盖落入所附权利要求范围内的这种改变和修改。

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