全景视频及图片的播放方法与流程

文档序号:15595218发布日期:2018-10-02 19:25阅读:858来源:国知局

本发明涉及一种视频及图片的播放方法,尤其涉及一种全景视频及图片的播放方法。



背景技术:

虚拟现实(virtualreality,简称vr)技术是当前最为热门的技术领域,特别是沉浸式虚拟现实(immersivevirtualreality),使用者通过佩戴头盔显示器来进行人机交互,头盔会实时把使用者的头部位置信息反馈至主机,主机随后发送使用者视角方向的视频至显示器,使用者可以随意改变头部位置而获得不同视角的场景,宛如身临其境,达到高度的沉浸感。

对于视频或图像浏览而言,传统的浏览方式是平面二维的,人们通过平面的、有限长宽的显示器观看视频或图像;而在虚拟现实系统中,视频或图像浏览是全景的,人们是站在球心的位置,来欣赏贴在整个球面上的视频或图像,这样人们就可以随意改变视角方向来自由观察全景场景。因而,全景视频及图片的播放方法对于虚拟现实系统而言是至关重要的核心技术。

当前的全景视频及图片的播放方法主要来源于全景图片的播放方法,它主要采用柱面投影方式将球面投影到柱面。在全景播放时,首先建立三维的球面模型,利用柱面投影方式在球面建立网格;其次将长宽比为2:1的平面视频或图片作为一个整体纹理渲染到球面上,最终实现全景图片播放。这种播放方式的缺点如下:

1、像素分布不均匀,柱面投影方式,在纹理渲染过程中,在球体赤道附近像素分布稀疏,而在南北极附近,像素分布很密,在虚拟现实系统中,如果采用圆柱面投影,那么用户在平视的角度下,看到的图像单位面积像素偏少,而在仰视和俯视的情况下,看到的图像单位面积像素偏多。因此造成像素在球面上分布不均匀,大大影响了视觉效果。

2、目前全景视频或图片的播放方法都是整体贴图,即视频或图片是作为一个整体纹理填充到球表面。因而,当前的全景播放器缺乏实现灵活性,并缺乏技术手段解决像素均匀性问题。

目前对于上述图像像素不均匀分布的情况往往是通过后续处理来消除全景图像的图像像素分布不均匀。例如在全景图像通过圆柱面投影方式投影形成的球面图像后,对球面图像处理来调整球面图像中像素分布。但是这种处理方式需要增加了大量图像数据处理。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中全景图像的播放仅是对整个图像的像素投影所导致的像素分布不均匀,进而影响全景图像的图像质量的缺陷,提供了一种全景视频及图片的播放方法,通过对全景图像分割和多面体投影的方式,使得像素分布均匀,抑制全景图像投影所带来的图像质量的下降的问题。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供了一种全景视频及图片的播放方法,其特点是,所述全景视频及图片的播放方法包括以下步骤:

建立多面体图像,并通过多面体向球面投影,将球面划分为多个表面;

通过映射变换,分别建立球面各个表面与多面体图像的各个面之间的映射关系;

分别将多面体图像的各个面中的像素投影到存在映射关系的球面的表面。

本发明的投影方法用于实现全景视频或图片的转化。并且本发明还将划分后的多面体的像素投影至球面的各个表面来实现像素的均匀分布。其中本发明中像素投影使用现有的像素投影方式就可以实现像素的均匀分布。

较佳地,在通过多面体向球面投影,将球面划分为多个表面的过程中包括以下步骤:

将多面体图像设置于球面所在球体内,并以球心作为中心点;

将多面体图像的各个顶点和棱边映射至球面;

映射至球面的各个顶点和棱边将球面划分为多个表面。

较佳地,在建立多面体图像中还包括以下步骤:

将二维视频或图像划分出多个画面;

建立多面体,并建立多面体的各个面与画面之间的一一映射关系;

其中所述多面体的面数量与二维视频或图像划分的画面数量相同。

本发明中利用二维视频或图像转化为多面体图像的映射关系,进而在多面体上形成能够构成完整全景图像的多面体图像。

较佳地,在将多面体图像各个面中的像素投影到存在映射关系的球面的表面的过程中包括以下步骤:

对每一对存在映射关系的多面体图像的面和球面的表面执行如下步骤:

将多面体图像的面均匀分割成多个图像块;

通过映射变换,分别在球面的表面上建立与多面体图像的面中各个图像块之间存在映射关系的块;

在所有存在映射关系的多面体图像的面和球面的表面均构建完成图像块和块的映射关系后,对所有存在映射关系的多面体图像的面和球面的表面执行如下步骤:

将多面体图像的面中各个图像块的像素投影到存在映射关系的球面的表面中的块。

本发明在将球面分割为多个区域,并将多面体的各个面映射至各个区域的过程中,进一步对各个区域进一步分割并映射,将映射至球面的图像进一步细化,更好的实现像素的均匀分布。

优选地,在球面的表面上建立与多面体图像的各个图像块之间存在映射关系的块的过程中包括以下步骤:

将多面体图像的面上各个图像块的各个顶点映射至球面的表面;

通过映射变换,映射至球面的表面的各个顶点将球面的表面划分为多个块。

优选地,在球面的表面上建立与多面体图像的面的各个图像块之间存在映射关系的块的过程后迭代执行以下步骤:

将图像块分割成多个图像区域;

通过映射变换,分别在球面的块上建立与多面体图像的图像块的各个图像区域之间存在映射关系的区域;

在所有存在映射关系的多面体图像的面和球面的表面均构建完成图像区域和区域的映射关系后,对所有存在映射关系的球面的表面和多面体图像的面执行如下步骤:

将多面体图像的图像块中各个图像区域的像素投影到存在映射关系的球面的块中的区域。

本发明进一步通过对图像进行分割,更好的实现像素的均匀分布,特别是通过迭代重复地分割图像,即不断地对分割后的图像区域进行进一步地分割,从而使得最终用于投影的图像区域最小化,例如将图像分割至单个像素。

需要注意的是,迭代的次数可以根据图像质量的需要自由设定,并且在迭代完成后,将全景图像切割后的所有图像区域的像素投影到存在映射关系的区域中,从而实现全景图像到的播放。

优选地,在球面的块上建立与多面体图像的图像块的各个图像区域之间存在映射关系的区域的过程中包括以下步骤:

将多面体图像的图像块的各个图像区域的各个顶点映射至球面的表面中的块;

通过映射变换,映射至球面的表面中的块的各个顶点将球面的块划分为多个区域。

优选地,在将多面体图像的面中各个图像块或图像区域的像素投影到存在映射关系的球面的表面中的块或区域的过程中包括以下步骤:

按照多面体图像的面中图像块或图像区域的顶点与球面的表面中块或区域的顶点的映射关系,通过像素差值算法将图像块或图像区域中图像像素投影至块或区域;或者

计算多面体图像的面中图像块或图像区域的各个图像像素与球面的表面中块或区域相对位置的映射关系,将图像块或图像区域中图像像素投影至块或区域。

本发明中利用现有图像算法中的像素差值算法以及其他像素投影方法实多面体图像到球面转化。

优选地,在将多面体图像的面或图像块分割成多个图像块或图像区域的过程中,将多面体图像的面或图像块均匀分割成多个图像块或图像区域。

优选地,在球面的表面上建立与多面体图像的面的各个图像块或各个图像区域之间存在映射关系的块或区域的过程中,各个图像块或图像区域的面积相等。

本发明中均匀分割图像区域或图像块除了是基于面积的均匀分割之外,还可以是基于四边形网格的非均匀分割,任意网格形状的均匀和非均匀分割。

优选地,各个图像块或图像区域为四边形。

优选地,各个图像块或图像区域为正方形。正方形是较为简单方便的投影模型,有利于提高投影计算速度,并且正方形图像适合于现有的编码技术,而且正方形可以在vr视觉效果中保持横向和竖向上的一致性。

较佳地,所述映射变换为snyder变换、rd变换、cube变换、unicube变换、isocube变换、透视投影变换或lambert等积投影变换等。

较佳地,所述多面体为正多面体。

优选地,所述多面体为正四面体、立方体或正十二面体。立方体方便展开,适合于现有的编码技术,并且立方体模型是较为简单的投影模型,有利于提高投影计算速度,而且立方体模型提供更为均匀的像素分布。

较佳地,所述多面体的各个面包含多个图像像素。

优选地,所述各个图像块包括至少一个图像像素或者各个图像区域包括至少一个图像像素。

也就是说本发明分割图像的极限是分割的每个区域内部仅有单个像素。需要注意的是本发明采用分割图像的方式来播放全景图像,所以即使分割到每个区域只有一个像素,其核心仍旧是分割图像并投影,与现有技术中之间对整个图像的所有像素整体投影播放的方式截然不同。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:

本发明通过图像切割和多面体映射的方式,尤其是在二维视频或图片上进行子画面划分,并在三维模型上进行子表面划分,从而建立子画面与子表面之间可变的映射关系的方式,替代了传统方法中画面与表面的不可分性以及映射关系固定不变性,基于本发明的方法可以灵活实现将二维视频或图片以切片划分方式渲染到三维模型各子表面上。

本发明还实现了在球表面上进行均匀的四边形网格分割,这种分割方式可以实现像素在球表面上的均匀分布,同时结合子画面与子表面的划分和映射关系,最终可以实现图片与视频像素在球表面上的均匀分布,达到更好的视觉效果。

附图说明

图1为本发明的实施例1的图像分割以及映射关系示意图。

图2为本发明的实施例2的图像分割以及映射关系示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

本发明提出的全景视频及图片的播放方法可以实现如下的目的:1、采用子画面和子表面的分割方法,并建立子画面和子表面灵活的映射关系,可以让全景播放器在纹理渲染上变得极为灵活,通过子画面和子表面的合理划分,让像素在整体三维模型(如球模型)上均匀分布在技术上变得可行2、采用六面体投影和snyder(施耐德)变换方法的投影算法,可以在球体表面划分出面积均等的方格,这些方格可以用作为子画面和子表面分割,最终实现像素在球体表面的均匀分布。3、子画面和子表面的映射关系作为播放器重要输入参数并可灵活更改加载,这可以实现非常灵活与效果多变的全景播放模式。

下面通过下述实施例来对本发明进行进一步地详细地说明。

实施例1

本实施例将播放全景图像或视频图像的方法的流程如下:

步骤s101、选取待播放的二维视频或图像,并将二维视频或图像划分出6个画面。

步骤s102、建立立方体,并将立方体的6个面与6个画面之间建立一一对应的映射关系。本实施例中多面体采用立方体,此外任意的多边体等都可以用于本实施例。

二维视频或图像的分割方式如图1中附图标记203所示,其实质相当于将附图标记202所示立方体各面组合到长宽比为3:2的矩形平面上,附图标记203所示的序号代表附图标记202所示的立方体各个面序号。所以附图标记203所示的网格可以作为全景视频及图片二维平面的划分网格,根据附图标记203所示的网格划分出6个子画面,并给予预先设定的映射关系,将分割出的各个子画面映射到立方体的各个面。

本实施例采用的是立方体作为映射的对象,因此二维视频和图像的长宽比是3:2,如果采用六面体投影,则附图标记203所示的长宽比根据实际情况来,而不局限于3:2。

同样附图标记203所示的网格排列并不是唯一的,在另一个变形实施例中也可以采用附图标记204所示的映射关系。这也就是说,可以采用更多的映射关系的排列组合方式来将长宽比为3:2的矩形平面映射到立方体各个表面上。

步骤s103、通过立方体向球面投影,将球面划分为6个表面。

该步骤的具体步骤如下:

s1031、将六面体图像设置于球面所在球体内,并以球心作为中心点。

s1032、将多面体图像的各个顶点和棱边映射至球面。

s1033、映射至球面的各个顶点和棱边将球面划分为多个表面。

具体的分割方式参见图1,如附图标记201所示,将立方体置于球正中心,以球心为中心点,将立方体的各个顶点和棱边映射到球面上;在球面上映射出来的顶点和棱边组成的球子表面即为立方体对应面的球面投影。

步骤s104、通过snyder变换,分别建立球面各个表面与立方体图像的6个面之间的映射关系。

如上所述,具体的映射关系如附图标记202所示是立方体上各个面,上述各面分别投影到球面上,形成与球面上各子表面的一一对应关系。本实施例中,多面体采用了立方体,因此立方体各个面都是正方形,在具体实施例中,可以采用各种比例的六面体或者多面体,因此在采用六面体时,各个面不一定是正方形,可以是矩形。

步骤s105、分别将立方体图像的6个面中的像素投影到存在映射关系的球面的表面。如附图标记206所示,球面已经分割成了6个子表面,并按照球面与立方体图像的映射关系,将图像中的像素投影至球面。

此后通过纹理渲染进行全景播放,即将立方体图像的各个面作为纹理贴图到所映射的球面的各个子表面上,并且该子表面可以是球面的内表面或外表面,以实现不同的视频播放效果。

实施例2

本实施例的播放方法在实施例1的播放方法的基础上,对立方体投影到球面的面进一步分割映射,进而进一步提高了像素的分布均匀性。具体方法流程如下:

步骤s201、选取待播放的二维视频或图像,并将二维视频或图像划分出6个画面。

步骤s202、建立立方体,并将立方体的6个面与6个画面之间建立一一对应的映射关系。具体分割方式与实施例1的步骤s102相同,这里不再赘述。

步骤s203、通过立方体向球面投影,将球面划分为6个表面。

该步骤的具体步骤如下:

s2031、将六面体图像设置于球面所在球体内,并以球心作为中心点。

s2032、将多面体图像的各个顶点和棱边映射至球面。

s2033、映射至球面的各个顶点和棱边将球面划分为多个表面。

步骤s204、通过snyder变换,分别建立球面各个表面与立方体图像的6个面之间的映射关系。

步骤s205、对每一对存在映射关系的立方体图像的面和球面的表面执行如下步骤:

s2051、将立方体图像的面均匀分割成多个图像块.

s2052、通过snyder变换,分别在球面的表面上建立与立方体图像的面中各个图像块之间存在映射关系的块。

具体的映射关系的建立包括如下步骤:

将立方体图像的面上各个图像块的各个顶点映射至球面的表面;

通过snyder变换,映射至球面的表面的各个顶点将球面的表面划分为多个块。

具体的分割方式参见图2,其中附图标记301代表视频或图片的二维平面。

附图标记302、306代表通过分割将二维平面均等划分为6个正方形子画面,其分别映射对应于立方体的一个面。

附图标记303代表对子画面的进一步分割用的网格,本实施例中通过在子画面中建立均匀的网格来分割子画面,其中每个网格面积均等,在本实施例中建立了4×4大小的正方形网格,此外在其他的变形实施例中,可以建立m×n大小的网格,并且网格不局限于正方形,也不局限于均等面积。

附图标记304代表网格分割后图像块中所包含的像素,像素可以是一个或多个。

附图标记305代表对子画面的进一步分割出的图像块,其中[a,b,c,d]是图像块s的四个顶点。

附图标记307代表球体。附图标记308代表将立方体投影到球表面用于均分球面为6个子表面的棱线和顶点。

附图标记312代表球面分割出的子表面,其映射对应于二维视频或图像的一个子画面。

附图标记309代表子表面进一步分割出的块的网格,在球子表面中建立均匀的网格,每个网格面积均等,在本实施例中对应于前述的立方体的面,也建立了4×4大小网格,同样在在其他的变形实施例中,可以建立m×n大小的网格,并且网格不局限于正方形,也不局限于面积和形状。

附图标记310代表球面分割出块中所包含的像素,像素可以是一个或多个。

附图标记311代表球面分割出块,其中[a',b',c',d']是块s'的四个顶点。

具体分割过程中,在立方体每个面上进行等面积网格划分,每个网格的面积均等。即将二维视频或图像画面(301)中各个子画面(306)通过网格(303)均等划分成图像块(305)。

通过snyder变换,将上述网格的各个顶点映射到球面上。即将图像块(305)上的各个顶点(a,b,c,d)通过snyder变换,映射到球面上(a',b',c',d');

连接球面上各顶点即形成相对应的球面网格,该球面网格也保持面积均等。即将球面上的(a',b',c',d')连接形成球面网格和块(311),其中s(305)与s'(311)形成投影映射关系。

步骤s206、在所有存在映射关系的立方体图像的面和球面的表面均构建完成图像块和块的映射关系后,针对所有存在映射关系的立方体图像的面和球面的表面,将立方体图像的面中各个图像块的像素投影到存在映射关系的球面的表面中的块。

具体实现中是按照立方体图像的面中图像块的顶点与球面的表面中块或区域的顶点的映射关系,通过像素差值算法将图像块中图像像素投影至块或区域。

通过本实施例的两次分割可以产生球面分割网格,图像视频的二维平面分割网格,以及球面分割网格与平面分割网格的位置映射关系三个关键参数。其中,球面分割网格与平面分割网格的位置映射可以是遵从投影关系来设定,也可以是人为设置特定的位置映射关系,以实现不同的全景播放效果。上述三个关键参数可以作为视频播放器的输入,实现本发明提出的全景播放。

实施例3

本实施例在实施例2的播放方法的基础上,对立方体投影到球面的面再次分割并映射投影,进而提高了像素的分布均匀性。具体方法流程如下:

步骤s301、选取待播放的二维视频或图像,并将二维视频或图像划分出6个画面。

步骤s302、建立立方体,并将立方体的6个面与6个画面之间建立一一对应的映射关系。具体分割方式与实施例2的步骤s202相同,这里不再赘述。

步骤s303、通过立方体向球面投影,将球面划分为6个表面。

该步骤的具体步骤如下:

s3031、将六面体图像设置于球面所在球体内,并以球心作为中心点。

s3032、将多面体图像的各个顶点和棱边映射至球面。

s3033、映射至球面的各个顶点和棱边将球面划分为多个表面。

步骤s304、通过snyder变换,分别建立球面各个表面与立方体图像的6个面之间的映射关系。

步骤s305、对每一对存在映射关系的立方体图像的面和球面的表面执行如下步骤:

s3051、将立方体图像的面均匀分割成多个图像块.

s3052、通过snyder变换,分别在球面的表面上建立与立方体图像的面中各个图像块之间存在映射关系的块。

具体的映射关系的建立包括如下步骤:

将立方体图像的面上各个图像块的各个顶点映射至球面的表面;

通过snyder变换,映射至球面的表面的各个顶点将球面的表面划分为多个块。

步骤s306、再对各个图像块进行分割映射,具体包括如下步骤:

s3061、将图像块分割成多个图像区域;

s3062、通过snyder变换,分别在球面的块上建立与多面体图像的图像块的各个图像区域之间存在映射关系的区域;

具体地说,就是将立方体图像的图像块的各个图像区域的各个顶点映射至球面的块。

然后利用snyder变换,映射至球面的块的各个顶点将球面的块划分为多个区域。

其中需要注意的本实施例中所述步骤s306可以迭代的执行,也就是说,在进入极限分割,即每个图像区域只有一个像素之前,通过图像块划分出的图像区域的不断进一步地分割映射,来实现映射区域的最小化。

例如在本实施例s306执行完毕后,再次将通过s306得到的图像区域作为图像块进一步分割出更加细化的图像区域,并将球面的区域作为块,再次对应细化的图像区域,划分区域。对于s306的执行的次数,可以依据实际计算能力和图像质量要求进行调整,本发明并不限定s306的迭代次数。

步骤s306、在所有存在映射关系的立方体图像的面和球面的表面均构建完成图像块和块的映射关系后,针对所有存在映射关系的球面的表面和多面体图像的面,将多面体图像的图像块中各个图像区域的像素投影到存在映射关系的球面的块中的区域。

本实施例中通过计算多面体图像的面中图像区域的各个图像像素与球面的表面中区域相对位置的映射关系,将图像区域中图像像素投影至区域。也就是说,本实施例中采用snyder变换求出各个网格区域内部每一个像素的投影。而且在极端分割的情况下每个图像区域的内部只有一个像素时,通过snyder变换直接求出区域内部唯一的像素的投影。

实施例4

本实施例在实施例1、2、3的播放方法的基础上,将其中使用到的snyder变换替换为unicube变换。此外在另一实施例中还可以再次将unicube变换替换为rd变换、cube变换、isocube变换、透视投影变换或lambert等积投影变换等等的变换方式,上述对变换算法的替换均能够实现本发明的播放方法。

通过以上的全景视频及图片的播放方法的具体实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请的全景视频及图片的播放可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,所述计算机软件产品可以存储在存储介质中,如rom/ram(只读存储器/随机存取存储器)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例或者实施例的某些部分所述的方法。

本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc(个人电脑)、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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