全景视频渲染方法、装置及电子设备与流程

文档序号:14943056发布日期:2018-07-13 21:34

本申请涉及全景视频技术,具体涉及一种全景视频渲染方法。本申请同时涉及一种全景视频渲染装置,以及一种电子设备。



背景技术:

近年来随着个人计算设备、移动智能终端的发展,特别是云计算技术的发展,全景视频技术在娱乐、游戏、交互等领域的应用得以快速推进。采用全景视频技术,用户可以在上下左右360度范围内任意观看视频,例如:用户戴上显示头盔,然后通过头部的转动就可以看到全景视频在不同方向的图像,从而给用户带来一种真正意义上的身临其境的感觉。

全景视频技术的整体方案通常包含全景视频的制作和播放这两大阶段。在制作阶段,可以通过全景拍摄设备配合图像合成软件来制作全景视频,在播放阶段,通常需要使用专门的全景视频播放器进行播放。全景视频播放器从全景视频中读取全景视频图像,然后通过将读取的全景视频图像贴附到球面模型表面的方式进行渲染展示,例如,通常可以将观看位置设置于球体模型的中心,用户可以通过转动用于观看全景视频的显示头盔、或者移动用于观看全景视频的终端设备来控制视线方向,全景视频播放器则根据视线方向控制向用户展示的全景视频图像的内容,从而为用户提供沉浸式的观看体验。

在播放全景视频时,由于球体模型本身有曲度,将二维的图像贴附到球体模型表面上、并采用中心投影等投影技术将处于显示范围内的图像渲染到显示平面上,会导致不同显示区域景物的显示比例不一致,即:在水平方向和垂直方向都会产生比例失调,靠近边界区域的景物往往被拉伸变形,参看图1,同样长度的球面区域映射到显示平面后,显示的长度越靠近边界越长。特别是随着视场角(field of view—fov)的变大,上述现象会更为严重,影响用户的观看体验。



技术实现要素:

本申请提供一种全景视频渲染方法,以解决现有的全景视频渲染技术由于显示比例不一致、导致全景视频图像变形的问题。本申请实施例还提供一种全景视频渲染装置,以及一种电子设备。

本申请提供一种全景视频渲染方法,包括:

获取用于展示全景视频的球体模型数据以及球体模型顶点对应的纹理坐标;

获取待展示的全景视频图像和当前视点数据;

采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,其中,所述显示范围是根据所述当前视点数据以及球体模型数据确定的;

针对处于显示范围内的每个球体模型顶点,根据该顶点对应于所述全景视频图像中的相应像素值对该顶点对应于显示平面中的位置进行渲染,其中,所述相应像素值是根据该顶点对应的纹理坐标获取的。

可选的,所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,包括:

采用在第一方向和第二方向分别均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置。

可选的,所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,包括:

针对处于显示范围内的每个球体模型顶点,利用所述球体模型数据执行如下位置调整操作:

确定该球体模型顶点到球心的连线与当前视线之间的第一夹角;

根据所述第一夹角,基于中心投影方式确定该球体模型顶点在所述显示平面的中心投影点的第一位置;

确定该球体模型顶点到球心的连线与当前视线在所述第一方向的第二夹角;

根据所述第二夹角、以及对应于第一方向的视场角,采用在第一方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置。

可选的,所述至少在第一方向均匀分布的方式包括:在第一方向和第二方向分别均匀分布的方式;

在针对处于显示范围内的每个球体模型顶点执行的位置调整操作中,在将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置之后,包括:

确定该球体模型顶点到球心的连线与当前视线在所述第二方向的第三夹角;

根据所述第三夹角、以及对应于第二方向的视场角,采用在第二方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从所述第二位置调整至第三位置。

可选的,当所述第一方向为水平方向时,所述根据所述第二夹角、以及对应于第一方向的视场角,采用在第一方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置,包括:

确定所述中心投影点所在水平面与球体模型垂直轴线的交点;

确定所述交点在所述显示平面上的第一正交投影点;

根据所述中心投影点与所述第一正交投影点之间的距离、以及所述第二夹角和水平视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第一正交投影点之间的水平距离;

根据所述水平距离,将该球体模型顶点对应于所述显示平面中的位置从第一位置沿远离显示平面中心的方向水平调整至第二位置。

可选的,当所述第一方向为垂直方向时,所述根据所述第二夹角、以及对应于第一方向的视场角,采用在第一方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置,包括:

确定所述中心投影点在球体模型赤道所在平面的第二正交投影点;

根据所述中心投影点与所述第二正交投影点之间的距离,以及所述第二夹角和垂直视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第二正交投影点之间的垂直距离;

根据所述垂直距离,将该球体模型顶点对应于所述显示平面中的位置从第一位置沿远离显示平面中心的方向垂直调整至第二位置。

可选的,当所述第一方向为水平方向、第二方向为垂直方向时,所述根据所述第三夹角、以及对应于第二方向的视场角,采用在第二方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从所述第二位置调整至第三位置,包括:

确定所述中心投影点在球体模型赤道所在平面的第二正交投影点;

根据所述中心投影点与所述第二正交投影点之间的距离,以及所述第三夹角和垂直视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第二正交投影点之间的垂直距离;

根据所述垂直距离,将该球体模型顶点对应于所述显示平面中的位置从第二位置沿远离显示平面中心的方向垂直调整至第三位置。

可选的,当所述第一方向为垂直方向、第二方向为水平方向时,所述根据所述第三夹角、以及对应于第二方向的视场角,采用在第二方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从所述第二位置调整至第三位置,包括:

确定所述中心投影点所在水平面与球体模型垂直轴线的交点;

确定所述交点在所述显示平面上的第一正交投影点;

根据所述中心投影点与所述第一正交投影点之间的距离、以及所述第三夹角和水平视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第一正交投影点之间的水平距离;

根据所述水平距离,将该球体模型顶点对应于所述显示平面中的位置从第二位置沿远离显示平面中心的方向水平调整至第三位置。

可选的,在所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置之前,还包括:采用如下方式确定第一方向:若水平视场角不小于垂直视场角,则所述第一方向为水平方向,否则所述第一方向为垂直方向。

可选的,所述球体模型数据包括:各球体模型顶点的坐标。

可选的,所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,以及针对处于显示范围内的每个球体模型顶点,根据该顶点对应于所述全景视频图像中的相应像素值对该顶点对应于显示平面中的位置进行渲染的步骤,由GPU执行。

可选的,所述方法在全景视频播放设备中实施,所述全景视频播放设备包括:个人电脑、平板电脑、智能手机、或显示头盔。

相应的,本申请还提供一种全景视频渲染装置,包括:

模型数据及纹理坐标获取单元,用于获取用于展示全景视频的球体模型数据以及球体模型顶点对应的纹理坐标;

图像及视点数据获取单元,用于获取待展示的全景视频图像和当前视点数据;

位置确定单元,用于采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,其中,所述显示范围是根据所述当前视点数据以及球体模型数据确定的;

渲染单元,用于针对处于显示范围内的每个球体模型顶点,根据该顶点对应于所述全景视频图像中的相应像素值对该顶点对应于显示平面中的位置进行渲染,其中,所述相应像素值是根据该顶点对应的纹理坐标获取的。

可选的,所述位置确定单元,具体用于采用在第一方向和第二方向分别均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置。

可选的,所述位置确定单元包括:

循环控制子单元,用于针对处于显示范围内的每个球体模型顶点,触发以下子单元工作:

第一夹角确定子单元,用于确定该球体模型顶点到球心的连线与当前视线之间的第一夹角;

第一位置确定子单元,用于根据所述第一夹角,基于中心投影方式确定该球体模型顶点在所述显示平面的中心投影点的第一位置;

第二夹角确定子单元,用于确定该球体模型顶点到球心的连线与当前视线在所述第一方向的第二夹角;

第一位置调整子单元,用于根据所述第二夹角、以及对应于第一方向的视场角,采用在第一方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置。

可选的,所述至少在第一方向均匀分布的方式包括:在第一方向和第二方向分别均匀分布的方式;

所述位置确定单元还包括:

第三夹角确定子单元,用于在所述第一位置调整子单元工作后,确定该球体模型顶点到球心的连线与当前视线在所述第二方向的第三夹角;

第二位置调整子单元,用于根据所述第三夹角、以及对应于第二方向的视场角,采用在第二方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从所述第二位置调整至第三位置。

可选的,所述装置还包括:

第一方向确定单元,用于在所述位置确定单元工作前,采用如下方式确定第一方向:若水平视场角不小于垂直视场角,则所述第一方向为水平方向,否则所述第一方向为垂直方向。

此外,本申请还提供一种电子设备,包括:

显示器;

处理器;

存储器,用于存储指令;

其中,所述处理器耦合于所述存储器,用于读取所述存储器存储的指令,并执行如下操作:获取用于展示全景视频的球体模型数据以及球体模型顶点对应的纹理坐标;获取待展示的全景视频图像和当前视点数据;采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,其中,所述显示范围是根据所述当前视点数据以及球体模型数据确定的;针对处于显示范围内的每个球体模型顶点,根据该顶点对应于所述全景视频图像中的相应像素值对该顶点对应于显示平面中的位置进行渲染,其中,所述相应像素值是根据该顶点对应的纹理坐标获取的。

可选的,所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,包括:

采用在第一方向和第二方向分别均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置。

可选的,所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,包括:

针对处于显示范围内的每个球体模型顶点,利用所述球体模型数据执行如下位置调整操作:

确定该球体模型顶点到球心的连线与当前视线之间的第一夹角;

根据所述第一夹角,基于中心投影方式确定该球体模型顶点在所述显示平面的中心投影点的第一位置;

确定该球体模型顶点到球心的连线与当前视线在所述第一方向的第二夹角;

根据所述第二夹角、以及对应于第一方向的视场角,采用在第一方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置。

可选的,所述至少在第一方向均匀分布的方式包括:在第一方向和第二方向分别均匀分布的方式;

在针对处于显示范围内的每个球体模型顶点执行的位置调整操作中,在将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置之后,包括:

确定该球体模型顶点到球心的连线与当前视线在所述第二方向的第三夹角;

根据所述第三夹角、以及对应于第二方向的视场角,采用在第二方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从所述第二位置调整至第三位置。

可选的,在所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置之前,还包括:采用如下方式确定第一方向:若水平视场角不小于垂直视场角,则所述第一方向为水平方向,否则所述第一方向为垂直方向。

与现有技术相比,本申请具有以下优点:

本申请提供的全景视频渲染方法,首先获取用于展示全景视频的球体模型数据和各顶点对应的纹理坐标、以及待展示的全景视频图像和当前视点数据;然后根据上述获取的信息,采用至少在第一方向均匀分布的方式,确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置、并对所述位置进行渲染。

采用上述方法渲染全景视频图像,由于处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置至少在第一方向是均匀分布的,即:至少在第一方向上不同显示区域的景物的显示比例都是一致的,从而可以有效地改善或者解决全景视频图像由于显示比例不一致导致的景物变形的问题,使得全景视频的显示效果更符合人眼的习惯,给用户带来更为真实的观看体验。

附图说明

图1是现有全景视频渲染技术导致显示比例不一致的示意图;

图2是水平视场角和垂直视场角的示意图;

图3是本申请的一种全景视频渲染方法的实施例的流程图;

图4是本申请实施例提供的确定球体模型顶点对应于显示平面中的位置的处理流程图;

图5是本申请实施例提供的球体模型及显示平面的示意图;

图6是本申请实施例提供的将球体模型赤道圆周上的点均匀分布到显示平面上的示意图;

图7是本申请实施例提供的利用GPU进行全景视频显示的架构示意图;

图8是本申请实施例提供的用wulff net图观察到的顶点分布的对比示意图;

图9是本申请实施例提供的全景视频图像显示效果的对比示意图;

图10是本申请的一种全景视频渲染装置的实施例的示意图;

图11是本申请的一种电子设备的实施例的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。

在本申请中,分别提供了一种全景视频渲染方法、一种全景视频渲染装置、以及一种电子设备。在下面的实施例中逐一进行详细说明。为了便于理解,先对本申请提供的技术方案作简要说明。

现有的全景视频渲染技术,往往会造成不同显示区域景物在水平和垂直两个方向的显示比例都不一致,为了改善这一问题,本申请提供了不同于现有技术的全景视频渲染方法,所述方法可以应用于全景视频播放设备中,所述全景视频播放设备包括:个人电脑、平板电脑、智能手机、或者显示头盔等。

本申请提供的技术方案在渲染全景视频图像时,采用至少在第一方向均匀分布的方式,确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,从而保证了处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置至少在第一方向是均匀分布的,即:至少在第一方向上保证了显示比例的一致性,可以有效地改善全景视频图像显示比例不一致的问题,给用户带来更为真实的观看体验。其中,所述第一方向包括:水平方向,或者垂直方向。

在进行全景视频展示时,通常显示给用户的并不是整个全景视频图像,而是处于球体模型显示范围内的全景视频图像,所述显示范围通常可以由观看者的视线方向、预设的视场角fov、以及球体模型半径(可以根据球体模型数据获知,关于球体模型数据请参见后面步骤301中的说明)确定。所述预设的视场角,包括对应于水平方向的视场角(简称水平视场角)和对应于垂直方向的视场角(简称垂直视场角),请参见图2,其中的∠AOB是水平视场角,∠BOC是垂直视场角。

优选地,考虑到随着fov角度的增大,靠近相应边界处的显示比例的差异会更为明显、导致图像变形更为严重,因此所述第一方向可以采用如下方式确定:将水平视场角和垂直视场角中较大者所对应的方向,作为第一方向,即:若水平视场角不小于垂直视场角,则所述第一方向为水平方向,否则所述第一方向为垂直方向。采用这种方式,通过对变形严重的方向进行比例修复,往往会对显示效果产生比较显著的改善。以图2为例,可以选择水平方向作为第一方向。

优选地,为了提供更好的显示效果,在渲染全景视频图像时,可以采用在第一方向和第二方向分别均匀分布的优选实施方式,确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,然后再进行渲染。其中,所述第一方向和第二方向可以分别为水平方向和垂直方向。采用这种方式,可以同时修复两个方向上的显示比例不一致的问题,使不同区域的景物在两个方向的显示比例都一致,从而解决因为显示比例的差异导致图像变形的问题。

由此可见,本技术方案可以仅在一个方向上对显示比例进行修复,也可以在两个方向都进行修复。对于后者,在具体实施时,可以针对处于显示范围内的每个球体模型顶点在预设显示平面中的位置,先进行水平方向的调整,然后进行垂直方向的调整,也可以采用相反的顺序,即:先进行垂直方向的调整、然后进行水平方向的调整。

在下面的实施例中,重点以依次对水平方向和垂直方向进行调整为例(即:第一方向为水平方向,第二方向为垂直方向),对本申请提供的技术方案的实施方式进行说明。请参考图3,其为本申请的一种全景视频渲染方法的实施例的流程图。所述方法包括如下步骤:

步骤301、获取用于展示全景视频的球体模型数据以及球体模型顶点对应的纹理坐标。

为了提供可以从上下左右任意角度全方位观看的观景效果,全景视频的渲染过程,通常需要以将全景视频图像贴附在球体模型表面的方式、对处于显示范围的全景视频图像进行渲染。因此针对待展示的全景视频,通常可以预先设定相应的球体模型,确定球体模型数据及球体模型顶点对应的纹理坐标,本步骤则获取关于球体模型的上述信息。

所述球体模型数据包括:处于球体模型表面上的各个点的坐标,其中,球体模型表面上的每个点,通常称为球体模型顶点,在下文的描述中可以简称顶点。例如:在以球心为原点的空间直角坐标系中,每个球体模型顶点的坐标可以用(x,y,z)的形式表示。

所述球体模型顶点对应的纹理坐标,则是指球体模型顶点对应于全景视频图像中的坐标,通常可以用(x,y)的形式表示。全景视频图像通常是二维图像,其中每个像素点在图像中的位置信息可以用其坐标表示。由于全景视频图像以贴附于球体模型表面的方式进行渲染显示,因此每个球体模型顶点都可以与全景视频图像中的像素点相对应,而像素点的坐标通常就称为相应球体模型顶点对应的纹理坐标。

本步骤可以获取上述球体模型数据以及每个球体模型顶点对应的纹理坐标。

步骤302、获取待展示的全景视频图像和当前视点数据。

全景视频通常是由一系列的全景视频图像组成,全景视频的展示过程,就是依次将处于显示范围内的全景视频图像渲染到预设的显示平面、并在显示设备上显示的过程。因此,本步骤获取当前待展示的一帧全景视频图像。

此外,本步骤还要获取当前视点数据,即:获取表明用户当前视线方向的数据。例如:球体模型采用空间直角坐标系,而观看位置通常设置在球心处,因此,视线方向可以用与空间直角坐标系中的任意两个轴的夹角来表示。

步骤303、采用在第一方向和第二方向分别均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置。

本步骤采用在第一方向和第二方向分别均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置。其中,第一方向和第二方向分别为水平方向和垂直方向。

具体的,本步骤可以根据当前视点数据、球体模型的半径(可以根据球体模型数据确定)、并结合预设的水平视场角和垂直视场角等信息确定球体模型表面的显示范围,即:用户视线能够观看到的范围,然后针对处于显示范围内的每个球体模型顶点,按照在水平方向和垂直方向分别均匀分布的方式,确定其对应于预设显示平面中的位置,从而为按照相同比例渲染显示全景视频图像做好准备。

其中,确定处于显示范围内的某一球体模型顶点对应于显示平面中的位置的处理过程可以包括以下步骤303-1至303-6,下面结合图4进行描述。在描述的过程中,为了便于理解,请参见图5给出的球体模型及显示平面的示意图,其中,O为球体模型的球心,处于球体模型表面的A点为:当前待确定位置的球体模型顶点(以下简称该球体模型顶点),V点是对应于当前视点数据的当前视线方向与球体模型表面的交点,显示平面与球体模型相切,并且OV垂直于显示平面。

步骤303-1、确定该球体模型顶点到球心的连线与当前视线之间的第一夹角。

请参见图5,本步骤确定球体模型顶点A(以下简称顶点A或A点)到球心O的连线与OV之间第一夹角的大小,即∠AOV的大小。为了便于描述,将所述第一夹角记为angle。根据以下数学定律:一条弧所对圆周角等于它所对圆心角的一半、以及直径所对的圆周角是直角,可以通过以下推导过程确定所述第一夹角angle。

其中,distance(A,V)表示根据A点和V点的坐标计算得到的两点之间的距离,R为球体模型的半径,该信息可以根据球体模型数据获取。

步骤303-2、根据所述第一夹角,基于中心投影方式确定该球体模型顶点在所述显示平面的中心投影点的第一位置。

本步骤采用中心投影方式,确定顶点A在显示平面的中心投影点的位置,作为第一位置。请参见图5,即:确定OA的延长线与显示平面的交点A'的位置。具体的,可以通过以下推导过程计算出球心O与A'点之间的距离OA'。

在步骤303-1中已经计算得到angle的大小,因此本步骤可以先利用上述公式2计算得到OA'的长度,在此基础上,结合顶点A的坐标和球体模型的半径,计算得到A'在显示平面中的位置。

通常在具体实施时,可以在显示平面中设置以V为坐标原点、以垂直方向为y轴、以垂直于y轴的水平方向为x轴的平面直角坐标系,那么可以根据顶点A的坐标与球体模型半径、以及已计算得到的OA',计算出A'与球体模型赤道所在平面的垂直距离,即:A'在显示平面中的纵坐标,然后根据OA'以及OV可以计算得到A'V,根据所述垂直距离和A'V可以计算得到A'在显示平面中的横坐标,从而确定了顶点A在显示平面的中心投影点A'的位置,即本实施例所述的第一位置。

现有技术在中心投影模式下,将第一位置作为顶点A对应于显示平面中的位置,并进行渲染;本实施例提供的技术方案,在确定第一位置后,还要进一步执行下述步骤303-3至303-6对该位置进行调整,从而解决显示比例不一致的问题。

步骤303-3、确定该球体模型顶点到球心的连线与当前视线在水平方向的第二夹角。

请参见图5,本步骤可以先确定顶点A在球体模型赤道圆周上的投影点B,然后根据所述投影点B在球体模型中的坐标、V点的坐标、以及球体模型的半径,计算出∠AOV在水平方向的第二夹角,记作angle_H。

B点是顶点A在球体模型赤道圆周上的投影点,具体的,可以将球心O点与顶点A在球体模型赤道平面的正交投影点的连线、从球心向球体模型外部延伸,与赤道圆周的交点即为顶点A在球体模型赤道圆周上的投影点,即B点。根据顶点A在球体模型中的坐标、球体模型的半径,可以计算得到B点在球体模型中的坐标。

在得到投影点B在球体模型中的坐标后,根据以下数学定律:一条弧所对圆周角等于它所对圆心角的一半、以及直径所对的圆周角是直角,可以通过以下推导过程确定所述第二夹角angel_H。

其中,distance(B,V)表示根据B点和V点的坐标计算得到的两点之间的距离,R为球体模型的半径,该信息可以根据球体模型数据获取。

步骤303-4、根据所述第二夹角、以及水平视场角,采用在水平方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置。

为了让贴附在球体模型表面的、处于显示范围内的全景视频图像,能够在水平方向均匀分布在显示平面上,可以针对处于显示范围内的每个顶点,遵循圆心角与圆弧映射长度成正比的规则,对顶点对应于显示平面中的位置在水平方向上进行调整。

为了便于理解,下面以球体模型赤道圆周上的顶点为例,对位置调整过程进行说明。请参见图6,其为将球体模型赤道圆周上的顶点均匀分布到显示平面上的示意图。赤道圆周与显示平面的交点为V点,赤道圆周上的顶点C,采用中心投影方式对应于显示平面上的投影点为C'点,水平视场角为fov。

在满足均匀分布的条件下,C点对应于显示平面中的位置为C1,C点与V点对应的圆心角记为w,将C1点与V点之间的距离记为y,将C'点与V点之间的距离记为x,将水平视场角fov对应的总显示长度记为width,那么根据圆心角与圆弧映射长度(即:圆心角对应的圆弧对应于显示平面上的长度)成正比的规则,可以得到以下推导过程:

具体到本实施例,本步骤可以在上述公式4的基础上,以在水平方向均匀分布为目标,将顶点A对应于所述显示平面中的位置从第一位置调整至第二位置,具体可以包括以下处理过程,下面结合图5进行说明:

1)确定中心投影点A'所在水平面与球体模型垂直轴线的交点O2。

2)确定交点O2在显示平面上的第一正交投影点A0。

3)根据中心投影点A'与第一正交投影点A0之间的距离、以及第二夹角和水平视场角fov_H,遵循圆心角与圆弧映射长度成正比的规则,确定顶点A对应于显示平面中的待确定位置与第一正交投影点A0之间的水平距离。

具体的,可以将A'A0作为x,将fov_H作为fov,用顶点A到球心O的连线与当前视线在水平方向的第二夹角angle_H作为w,代入到上述公式4中计算,得到的y值即为顶点A对应于显示平面中的待确定位置与第一正交投影点A0之间的水平距离。

4)根据所述水平距离,将顶点A对应于显示平面中的位置从第一位置沿远离显示平面中心的方向水平调整至第二位置。

具体的,可以将顶点A对应于显示平面中的位置从A'点沿远离显示平面中心的方向水平移动到A1点,其中A1点与A0点之间的距离为在上述3)中计算得到的水平距离,即:A1点与显示平面y轴的距离,根据该信息可以确定A1点在显示平面的横坐标,A1点的纵坐标与中心投影点A'相同。

通过上述处理过程,顶点A对应于显示平面中的位置从A'点调整到了A1点,从而满足了水平方向均匀分布的要求。

步骤303-5、确定该球体模型顶点到球心的连线与当前视线在垂直方向的第三夹角。

请参见图5,本步骤可以通过以下推导过程确定顶点A到球心O的连线与当前视线在垂直方向的所述第三夹角angle_V。

其中,l为顶点A在球体模型赤道所在平面的正交投影点与球心O之间的距离,m为从顶点A向OV引垂线的交点与球心O之间的距离。由于在步骤303-1中已经确定了顶点A到球心O的连线与当前视线之间的第一夹角angle,步骤303-3已经确定了顶点A到球心O的连线与当前视线在水平方向的第二夹角angle_H,因此本步骤可以根据上述公式5计算出所述第三夹角angle_V。

步骤303-6、根据所述第三夹角、以及垂直视场角,采用在垂直方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第二位置调整至第三位置。

本步骤可以根据步骤303-4中描述的将球体模型赤道圆周上的顶点均匀分布到显示平面上的原理,将顶点A对应于显示平面中的位置从步骤303-4确定的第二位置调整至第三位置,从而达到在垂直方向均匀分布的目的。具体可以包括以下处理过程,下面结合图5进行说明:

1)确定中心投影点A'在球体模型赤道所在平面的第二正交投影点V'。

2)根据中心投影点A'与第二正交投影点V'之间的距离,以及第三夹角和垂直视场角fov_V,遵循圆心角与圆弧映射长度成正比的规则,确定顶点A对应于显示平面中的待确定位置与所述第二正交投影点V'之间的垂直距离。

具体的,可以将A'V'作为x,将fov_V作为fov,用顶点A到球心O的连线与当前视线在垂直方向的第三夹角angle_V作为w,代入到上述公式4中计算,得到的y值即为顶点A对应于显示平面中的待确定位置与第二正交投影点V'之间的垂直距离。

3)根据所述垂直距离,将顶点A对应于显示平面中的位置从第二位置沿远离显示平面中心的方向垂直调整至第三位置。

具体的,可以将顶点A对应于显示平面中的位置从A1点,沿远离显示平面中心的方向垂直移动到A2点,其中,A2点与V'点的垂直距离为在上述2)中计算得到的垂直距离,即:A2点与显示平面x轴的距离,根据该信息可以确定A2点在显示平面的纵坐标,而A2点的横坐标与A1点相同。

至此,通过步骤303-1至303-6确定了处于显示范围内的球体模型顶点A对应于显示平面中的位置A2。在具体实施时,可以针对处于显示范围内的每个球体模型顶点,都按照步骤303-1至步骤303-6描述的方式确定其对应于显示平面中的位置。

步骤304、针对处于显示范围内的每个球体模型顶点,根据该顶点对应于所述全景视频图像中的相应像素值对该顶点对应于显示平面中的位置进行渲染。

具体的,本步骤可以针对每个球体模型顶点,执行以下操作:根据该顶点对应的纹理坐标获取待展示的全景视频图像中的相应像素点的像素值,例如RGB像素值,然后根据该像素值对该顶点对应于显示平面中的位置进行渲染,以步骤303中的顶点A为例,可以根据基于纹理坐标从全景视频图象中获取的相应像素值对预设显示平面中处于A2位置的像素点进行渲染。

在具体实施时,对于处于显示范围内的每个球体模型顶点都采用上述方式对显示平面中相应位置的像素点进行渲染后,对于显示平面中尚未渲染的像素点,可以根据其周围已渲染的像素点通过插值计算的方式进行渲染,或者根据与周围已渲染像素点的相对位置关系从待展示的全景视频图像中获取相应像素点的像素值进行渲染。由于处于显示范围内的每个球体模型顶点对应于显示平面中的位置,在水平方向和垂直方向都是均匀分布的,因此基于上述渲染过程显示出来的图像在水平方向和垂直方向也都是均匀分布的,不会出现因为比例不一致导致的景物变形。

在具体实施时,本实施例所述的显示平面可以是显示设备的显示缓存,通过对显示平面的渲染,可以实现全景视频图像的显示;本实施例所述的显示平面也可以是与显示缓存对应的内存区域,对显示平面渲染之后,可以通过等比例缩放过程将显示平面中渲染好的内容写入显示缓存中,从而实现全景视频图像的显示。

至此,通过上述步骤301-304对本实施例提供的全景视频渲染方法的实施方式进行了详细的说明。在具体实施时,步骤303和步骤304可以由GPU执行,例如步骤301和步骤302获取的球体模型数据和纹理坐标、以及待展示的全景视频图像和当前视点数据,可以作为输入提供给GPU,GPU根据输入的信息,针对球体模型的每个顶点执行下述操作:顶点处理单元若判断出当前处理顶点处于显示范围内,则采用在水平方向和垂直方向分别均匀分布的方式、确定所述顶点对应于预设显示平面中的位置,并将该顶点信息和相应的位置信息提供给像素处理单元,像素处理单元根据每次接收到的顶点信息和相应位置信息进行渲染。GPU完成渲染操作后,渲染好的内容被输出到显示设备显示。

请参见图7,其为本实施例提供的利用GPU进行全景视频显示的架构示意图。如图所示,针对每帧待展示的全景视频图像,都利用GPU进行渲染,不仅可以实现第一方向和第二方向的均匀分布,而且因为GPU的高速图像处理能力,可以获得流畅的全景视频展示效果。

需要说明的是,本实施例给出的上述实施方式中,对于处于显示范围内的每个顶点,先确定其对应于显示平面中的中心投影点的位置,然后依次对水平方向和垂直方向进行位置调整。在其他实施方式中,也可以先对垂直方向进行调整,然后对水平方向进行调整,即:第一方向为垂直方向,第二方向为水平方向,具体的调整过程包括如下所述的1)和2)两部分操作(需要说明的是,对于仅对垂直方向进行调整的实施方式,可以不执行2)中的操作)。

1)确定中心投影点的位置,并对垂直方向进行调整。具体包括以下操作:确定当前处理的球体模型顶点到球心的连线与当前视线之间的第一夹角;根据所述第一夹角,基于中心投影方式确定该球体模型顶点在所述显示平面的中心投影点的第一位置;确定该球体模型顶点到球心的连线与当前视线在垂直方向的第二夹角;确定所述中心投影点在所述球体模型赤道所在平面的第二正交投影点;根据所述中心投影点与所述第二正交投影点之间的距离,以及所述第二夹角和垂直视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第二正交投影点之间的垂直距离;根据所述垂直距离,将该球体模型顶点对应于所述显示平面中的位置从第一位置沿远离显示平面中心的方向垂直调整至第二位置。

2)对水平方向进行调整。具体包括以下操作:确定该球体模型顶点到球心的连线与当前视线在水平方向的第三夹角;确定所述中心投影点所在水平面与球体模型垂直轴线的交点;确定所述交点在所述显示平面上的第一正交投影点;根据所述中心投影点与所述第一正交投影点之间的距离、以及所述第三夹角和水平视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第一正交投影点之间的水平距离;根据所述水平距离,将该球体模型顶点对应于所述显示平面中的位置从第二位置沿远离显示平面中心的方向水平调整至第三位置。

由此可见,本实施例通过上述文字提供的全景视频渲染方法的实施方式,由于采用了在第一方向和第二方向分别均匀分布的方式、确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,并根据确定好的位置进行渲染,因此,每个顶点在显示平面上的分布,在第一方向和第二方向上都是均匀的。

请参见图8,其为本实施例提供的用wulff net(乌尔夫网)图观察到的顶点分布的对比示意图,图中的交点代表球体模型顶点在显示平面中的位置分布状况,其中,图(a)为采用现有技术得到的顶点分布示意图,图(b)为采用本实施例提供的渲染方法得到的顶点分布示意图。不难看出,图(b)中的顶点分布在水平方向和垂直方向分别都是均匀分布的,而现有技术则明显是不均匀的。

采用本实施例提供的上述实施方式进行全景视频的渲染,由于顶点分布在第一方向和第二方向都是均匀的,即:在第一方向和第二方向上不同显示区域的景物的显示比例都是一致的,从而可以有效地改善现有技术由于显示比例不一致导致的景物变形的问题,使得全景视频的显示效果更符合人眼的习惯,给用户带来更为真实的观看体验。

请参见图9,其为本实施例提供的全景视频图像显示效果的对比示意图,图(a)和图(b)显示的是同一帧全景视频图像,其中,图(a)为现有技术的显示效果图,图(b)为采用本实施例提供的渲染方法得到的显示效果图。不难看出,图(a)中处于图像边缘处的景物发生了比较严重的拉伸变形,产生了比较明显的失真,而图(b)则展示出了比例一致的显示效果,可以给用户带来更为真实的观看体验。

本实施例提供的上述实施方式,对球体模型顶点对应于显示平面中的位置,从水平方向和垂直方向都进行了调整,在其他实施方式中,也可以仅针对水平方向进行调整,或者仅对垂直方向进行调整。以仅对水平方向进行调整为例:在确定顶点A对应于显示平面中的位置时,可以不执行本实施例提供的步骤303-5和步骤303-6,将步骤303-4确定的A1作为顶点A对应于显示平面中的位置。由于对一个方向上的显示比例进行了修复,实现了显示比例的一致性,与现有技术相比,依然具有明显的有益效果,有助于改善用户的观看体验。

综上所述,本实施例提供的全景视频渲染方法,由于处于显示范围内的每个球体模型顶点对应于显示平面中的位置至少在第一方向是均匀分布的,即:至少在第一方向上不同显示区域的景物的显示比例都是一致的,从而可以有效地改善或者解决全景视频图像由于显示比例不一致导致的景物变形的问题,使得全景视频的显示效果更符合人眼的习惯,给用户带来更为真实的观看体验。

在上述的实施例中,提供了一种全景视频渲染方法,与之相对应的,本申请还提供一种全景视频渲染装置。请参看图10,其为本申请的一种全景视频渲染装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种全景视频渲染装置,包括:模型数据及纹理坐标获取单元1001,用于获取用于展示全景视频的球体模型数据以及球体模型顶点对应的纹理坐标;图像及视点数据获取单元1002,用于获取待展示的全景视频图像和当前视点数据;位置确定单元1003,用于采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,其中,所述显示范围是根据所述当前视点数据以及球体模型数据确定的;渲染单元1004,用于针对处于显示范围内的每个球体模型顶点,根据该顶点对应于所述全景视频图像中的相应像素值对该顶点对应于显示平面中的位置进行渲染,其中,所述相应像素值是根据该顶点对应的纹理坐标获取的。

可选的,所述位置确定单元,具体用于采用在第一方向和第二方向分别均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置。

可选的,所述位置确定单元包括:

循环控制子单元,用于针对处于显示范围内的每个球体模型顶点,触发以下子单元工作:

第一夹角确定子单元,用于确定该球体模型顶点到球心的连线与当前视线之间的第一夹角;

第一位置确定子单元,用于根据所述第一夹角,基于中心投影方式确定该球体模型顶点在所述显示平面的中心投影点的第一位置;

第二夹角确定子单元,用于确定该球体模型顶点到球心的连线与当前视线在所述第一方向的第二夹角;

第一位置调整子单元,用于根据所述第二夹角、以及对应于第一方向的视场角,采用在第一方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置。

可选的,所述至少在第一方向均匀分布的方式包括:在第一方向和第二方向分别均匀分布的方式;

所述位置确定单元还包括:

第三夹角确定子单元,用于在所述第一位置调整子单元工作后,确定该球体模型顶点到球心的连线与当前视线在所述第二方向的第三夹角;

第二位置调整子单元,用于根据所述第三夹角、以及对应于第二方向的视场角,采用在第二方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从所述第二位置调整至第三位置。

可选的,当所述第一方向为水平方向时,所述第一位置调整子单元包括:

交点确定子单元,用于确定所述中心投影点所在水平面与球体模型垂直轴线的交点;

第一正交投影点确定子单元,用于确定所述交点在所述显示平面上的第一正交投影点;

水平距离计算子单元,用于根据所述中心投影点与所述第一正交投影点之间的距离、以及所述第二夹角和水平视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第一正交投影点之间的水平距离;

第一位置水平调整执行子单元,用于根据所述水平距离,将该球体模型顶点对应于所述显示平面中的位置从第一位置沿远离显示平面中心的方向水平调整至第二位置。

可选的,当所述第一方向为垂直方向时,所述第一位置调整子单元包括:

第二正交投影点确定子单元,用于确定所述中心投影点在球体模型赤道所在平面的第二正交投影点;

垂直距离确定子单元,用于根据所述中心投影点与所述第二正交投影点之间的距离,以及所述第二夹角和垂直视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第二正交投影点之间的垂直距离;

第一位置垂直调整执行子单元,用于根据所述垂直距离,将该球体模型顶点对应于所述显示平面中的位置从第一位置沿远离显示平面中心的方向垂直调整至第二位置。

可选的,当所述第一方向为水平方向、第二方向为垂直方向时,所述第二位置调整子单元,包括:

第二正交投影点确定子单元,用于确定所述中心投影点在球体模型赤道所在平面的第二正交投影点;

垂直距离确定子单元,用于根据所述中心投影点与所述第二正交投影点之间的距离,以及所述第三夹角和垂直视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第二正交投影点之间的垂直距离;

第二位置垂直调整执行子单元,用于根据所述垂直距离,将该球体模型顶点对应于所述显示平面中的位置从第二位置沿远离显示平面中心的方向垂直调整至第三位置。

可选的,当所述第一方向为垂直方向、第二方向为水平方向时,所述第二位置调整子单元,包括:

交点确定子单元,用于确定所述中心投影点所在水平面与球体模型垂直轴线的交点;

第一正交投影点确定子单元,用于确定所述交点在所述显示平面上的第一正交投影点;

水平距离计算子单元,用于根据所述中心投影点与所述第一正交投影点之间的距离、以及所述第三夹角和水平视场角,遵循圆心角与圆弧映射长度成正比的规则,确定该球体模型顶点对应于所述显示平面中的待确定位置与所述第一正交投影点之间的水平距离;

第二位置水平调整执行子单元,用于根据所述水平距离,将该球体模型顶点对应于所述显示平面中的位置从第二位置沿远离显示平面中心的方向水平调整至第三位置。

可选的,所述装置还包括:

第一方向确定单元,用于在所述位置确定单元工作前,采用如下方式确定第一方向:若水平视场角不小于垂直视场角,则所述第一方向为水平方向,否则所述第一方向为垂直方向。

可选的,所述球体模型数据包括:各球体模型顶点的坐标。

可选的,所述位置确定单元以及所述渲染单元的功能由GPU完成。

可选的,所述装置部署于全景视频播放设备,所述全景视频播放设备包括:个人电脑、平板电脑、智能手机、或显示头盔。

此外,本申请还提供了一种电子设备;所述电子设备实施例如下:

请参考图11,其示出了本申请的一种电子设备的实施例的示意图。

所述电子设备,包括:显示器1101;处理器1102;存储器1103,用于存储指令;其中,所述处理器耦合于所述存储器,用于读取所述存储器存储的指令,并执行如下操作:

获取用于展示全景视频的球体模型数据以及球体模型顶点对应的纹理坐标;获取待展示的全景视频图像和当前视点数据;采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,其中,所述显示范围是根据所述当前视点数据以及球体模型数据确定的;针对处于显示范围内的每个球体模型顶点,根据该顶点对应于所述全景视频图像中的相应像素值对该顶点对应于显示平面中的位置进行渲染,其中,所述相应像素值是根据该顶点对应的纹理坐标获取的。

可选的,所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,包括:

采用在第一方向和第二方向分别均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置。

可选的,所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置,包括:

针对处于显示范围内的每个球体模型顶点,利用所述球体模型数据执行如下位置调整操作:

确定该球体模型顶点到球心的连线与当前视线之间的第一夹角;

根据所述第一夹角,基于中心投影方式确定该球体模型顶点在所述显示平面的中心投影点的第一位置;

确定该球体模型顶点到球心的连线与当前视线在所述第一方向的第二夹角;

根据所述第二夹角、以及对应于第一方向的视场角,采用在第一方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置。

可选的,所述至少在第一方向均匀分布的方式包括:在第一方向和第二方向分别均匀分布的方式;

在针对处于显示范围内的每个球体模型顶点执行的位置调整操作中,在将该球体模型顶点对应于所述显示平面中的位置从第一位置调整至第二位置之后,包括:

确定该球体模型顶点到球心的连线与当前视线在所述第二方向的第三夹角;

根据所述第三夹角、以及对应于第二方向的视场角,采用在第二方向均匀分布的方式,将该球体模型顶点对应于所述显示平面中的位置从所述第二位置调整至第三位置。

可选的,在所述采用至少在第一方向均匀分布的方式,根据所述球体模型数据确定处于显示范围内的每个球体模型顶点对应于预设显示平面中的位置之前,还包括:采用如下方式确定第一方向:若水平视场角不小于垂直视场角,则所述第一方向为水平方向,否则所述第一方向为垂直方向。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

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