基于D3D接口播放立方体全景视频的方法及系统与流程

文档序号:12068730阅读:256来源:国知局
基于D3D接口播放立方体全景视频的方法及系统与流程

本发明涉及视频播放的技术领域,更具体地,涉及一种基于D3D接口播放立方体全景视频的方法及系统。



背景技术:

全景视频,即720度或者360度全景视频,它是在720度或者360度全景的技术之上发展延伸而来,将静态的全景图片转化为动态的图像帧,全景视频可以在拍摄角度上下左右360度范围内任意观看动态视频,让用户有一种身临其境的感觉。在制作全景视频时使用一组摄像机在拍摄点周围同时拍摄360度(或720度)的画面,并经过后期的图像拼接后使之能够在任意时刻无失真地展现拍摄点周围画面的视频。

Direct3D,简称D3D,是微软为提高3D显示性能而开发的一套显示程序接口,它提供了丰富的3D功能库,是游戏和视频播放器在Windows操作系统上广泛采用的标准。

D3D作为操作系统和各种应用软件(比如视频播放器)调用显卡的媒介,对下可以通过显卡驱动程序操作显卡,对上可以为操作系统和各种应用程序提供各种显示用的接口函数和显示功能。操作系统和应用软件(比如视频播放器)只需要调用D3D提供的接口函数和功能就能实现图像显示功能,通过这种分工合作,极大的降低了软件开发周期和成本。在视频播放领域,普通的平面视频及全景视频都可以利用D3D作为调用显卡的媒介进行播放。

现有的普通的播放器只能播放平面的图像帧,普通播放器的播放流程是:加载视频—获取视频信息—进行视频分离—解码视频帧—显示解码后的图像帧,按照普通图像帧的形式播放全景视频只能得到不准确的平面图像帧的画面,根本不能达到全景视频播放的效果。而现有的全景播放器只能播放全景视频文件,若使用全景播放器播放平面视频得到的只能是失真的画面。因为全景播放器播放的是经过拼接处理的以拍摄点为中心的360度投影面上的画面,目前对这种投影的全景画面不方便存储,而是常常将投影的全景画面变换存储为矩形图像存储,在播放该全景视频时将存储的矩形图像重新映射贴合投影成全景视频画面,再选取用户视野可见的部分视频部分进行播放,要是通过这种方式将平面视频贴合到全景投影模型上进行播放就肯定会造成失真现象。在现有技术中还没有一种既可以播放平面视频又可以播放全景视频的方案。

因此,提供一种在播放器中既可以播放平面视频又可以播放全景视频的方法是本领域亟待解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种基于D3D接口播放立方体全景视频的方法及系统,解决了现有技术中不能在播放器中既可以播放平面视频又可以播放全景视频的技术问题。

为了解决上述技术问题,本发明提出一种基于D3D接口播放立方体全景视频的方法,包括:

在基于D3D接口的播放器中设置用于触发全景视频播放的触发指令,根据所述触发指令创建立方体模型,并将全景视频贴合到所述立方体模型的全景映射面上;

接收全景视频播放请求,根据所述全景视频播放请求加载所请求播放的全景视频,并对所述全景视频进行分离、解码后获得图像帧;

激活所述触发指令,根据预先设置的尺寸创建立方体模型,根据预设的映射关系将所述图像帧对应贴合到所述立方体模型的全景映射面上;

检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像,在所述显示视窗中进行显示;

接收所述全景视频的景深伸/缩请求,根据所述景深伸/缩请求及预先设定的景深伸/缩与视角范围的对应比例,得到景深伸/缩后的视角范围,获取贴合在所述立方体模型的全景映射面上,且位于所述景深伸/缩后的视角范围内的图像,并在所述显示视窗中进行展示。

进一步地,其中,根据所述映射关系将所述图像帧对应贴合到所述立方体模型的全景映射面上,进一步为:

获得全景视频后,基于D3D接口建立立方体模型,并根据预先设定的映射关系,确定立方体顶点与图像帧的纹理坐标的对应关系,然后根据所述对应关系进行纹理贴图。

进一步地,其中,所述映射关系,为预先设置在所述全景视频的图像帧与所述立方体模型的全景映射面上位置的一一对应关系。

进一步地,其中,检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像,在所述显示视窗中进行显示,进一步为:

检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像后,在所述显示视窗中进行显示;

根据输入控制所述显示视窗在三维空间的位置移动,根据所述三维空间的位置确定位于所述显示视窗范围内,且贴合在所述立方体模型的全景映射面上的图像,并将所述显示视窗移动后在所述立方体模型的全景映射面上的图像显示在所述显示视窗中;其中,

所述输入包括:用户的观看方向、视角大小、景深及视窗大小。

进一步地,其中,该方法进一步包括:

检测到平面视频播放指令时,根据所述关闭指令禁用所述触发指令;

获取所述图像帧,并将所述显示视窗对应位置的图像帧内容发送至播放器进行平面视频渲染后,显示在所述显示视窗内。

另一方面,本发明还提供一种基于D3D接口播放立方体全景视频的系统,包括:设置模块、全景视频获取模块、立方体模型创建模块及全景视频播放模块;其中,

所述设置模块,用于在基于D3D接口的播放器中设置用于触发全景视频播放的触发指令,根据所述触发指令创建立方体模型,并将全景视频贴合到所述立方体模型的全景映射面上;

所述全景视频获取模块,用于接收全景视频播放请求,根据所述全景视频播放请求加载所请求播放的全景视频,并对所述全景视频进行分离、解码后获得图像帧;

所述立方体模型创建模块,用于激活所述触发指令,根据预先设置的尺寸创建立方体模型,根据预设的映射关系将所述图像帧对应贴合到所述立方体模型的全景映射面上;

所述全景视频播放模块,用于检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像,在所述显示视窗中进行显示;

接收所述全景视频的景深伸/缩请求,根据所述景深伸/缩请求及预先设定的景深伸/缩与视角范围的对应比例得到景深伸/缩后的视角范围,获取贴合在所述立方体模型的全景映射面上,且位于所述景深伸/缩后的视角范围内的图像,并在所述显示视窗中进行展示。

进一步地,其中,所述立方体模型创建模块,进一步用于:

获得全景视频后,基于D3D接口建立立方体模型,并根据预先设定的映射关系,确定立方体顶点与图像帧的纹理坐标的对应关系,然后根据所述对应关系进行纹理贴图。

进一步地,其中,所述映射关系,为预先设置在所述全景视频的图像帧与所述立方体模型的全景映射面上位置的一一对应关系。

进一步地,其中,所述全景视频播放模块,进一步用于:

检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像后,在所述显示视窗中进行显示;

根据输入控制所述显示视窗在三维空间的位置移动,根据所述三维空间的位置确定位于所述显示视窗范围内,且贴合在所述立方体模型的全景映射面上的图像,并将所述显示视窗移动后在所述立方体模型的全景映射面上的图像显示在所述显示视窗中;其中,

所述输入包括:用户的观看方向、视角大小、景深及视窗大小。

进一步地,其中,该系统进一步包括:平面视频播放模块,用于:

检测到平面视频播放指令时,根据所述关闭指令禁用所述触发指令;

获取所述图像帧,并将所述显示视窗对应的图像帧内容发送至播放器进行平面视频渲染后,显示在所述显示视窗内。

与现有技术相比,本发明的基于D3D接口播放立方体全景视频的方法及系统,实现了如下的有益效果:

(1)本发明所述的基于D3D接口播放立方体全景视频的方法及系统,在视频播放器中设置全景视频与平面视频播放的切换控制指令,根据对应的控制指令调用立方体全景视频播放或平面视频播放,解决了现有技术中不能在播放器中既可以播放平面视频又可以播放全景视频的技术问题。

(2)本发明所述的基于D3D接口播放立方体全景视频的方法及系统,能够根据用户的请求进行相对应视频形式的播放,避免了因为视频播放模式不对应带来的视频失真现象,且很容易建立全景图像帧与立方体的每个映射面的位置对应关系,避免了在贴合全景图像帧时的复杂计算过程。

(3)本发明所述的基于D3D接口播放立方体全景视频的方法及系统,根据预先处理好的立方体全景视频画面,创建立方体模型贴合全景视频后进行显示播放,可以适合处理其它全景视频不能处理的三角架问题。

当然,实施本发明的任一产品必不特定需要同时达到以上所述的所有技术效果。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1A为本发明实施例1中所述基于D3D接口播放立方体全景视频的方法的流程示意图;

图1B为本发明实施例1中所述全景视频画面贴合到立方体模型上的示意图;

图2为本发明实施例2中所述基于D3D接口播放立方体全景视频的方法的流程示意图;

图3为本发明实施例3中所述基于D3D接口播放立方体全景视频的系统的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

实施例1

如图1所示,为本实施例所述基于D3D接口播放立方体全景视频的方法的流程示意图,本实施例所述方法解决了现有技术中不能在播放器中既可以播放平面视频又可以播放全景视频的技术问题。本实施例所述基于D3D接口播放立方体全景视频的方法包括以下步骤:

步骤101、在基于D3D接口的播放器中设置用于触发全景视频播放的触发指令,根据所述触发指令创建立方体模型,并将全景视频贴合到所述立方体模型的全景映射面上。

步骤102、用户在播放器中请求播放全景视频,并发送全景视频播放请求,在所述全景视频播放请求中带有该全景视频的标识。

步骤103、接收全景视频播放请求,根据所述全景视频播放请求加载所请求播放的全景视频,并对所述全景视频进行分离、解码后获得图像帧。

根据所述全景视频的标识,在视频数据库中搜索并获取对应的全景视频。优选地,在视频数据库中,存储着经过预先处理过的全景视频,将拍摄的全景视频处理成符合立方体六个面的图像形式,并预先设置好每个面上与其对应全景图像帧的位置对应关系,避免因全景图像帧贴图时位置不对造成播放出的全景视频不符合实际情况的现象。

更优选地,在处理图像时,在图像对应的立方体中设置空间坐标系,获取并存储全景图像帧的在空间坐标系上的坐标以及该空间坐标系的建立方式,在播放器中播放全景视频时,根据该空间坐标系的建立方式创建立方体模型,结合全景图像帧的在空间坐标系上的坐标,将全景图像帧贴合到立方体模型上。

步骤104、激活所述触发指令,根据预先设置的尺寸创建立方体模型,根据所述映射关系将所述图像帧对应贴合到所述立方体模型的全景映射面上。

如图1B所示,为本实施例1所述全景视频画面贴合到立方体模型上的示意图,全景视频的后侧面图像401与底面图像402分别对应贴合到立方体模型的后侧面及底面;其它各个侧面图像也对应贴合至立方体模型中形成全景图像帧的映射立方体。

步骤105、检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像,在所述显示视窗中进行显示。

用户通过播放器不能看到整个全景视频画面,而只能看到在视觉范围内的视频画面,因此,在播放全景视频时,只需将用户视觉范围内的图像帧在视窗中进行展现即可。

步骤106、接收所述全景视频的景深伸/缩请求,根据所述景深伸/缩请求及预先设定的景深伸/缩与视角范围的对应比例得到景深伸/缩后的视角范围,获取贴合在所述立方体模型的全景映射面上,且位于所述景深伸/缩后的视角范围内的图像,并将贴合在所述立方体模型的全景映射面上且位于所述景深伸/缩后的视角范围内的图像在所述显示视窗中进行展示。

因为在播放器中,创建的处理立方体模型尺寸是固定的,但是每个全景视频的拍摄画面的尺寸是不相同的,将每个全景视频都以相同的尺寸贴合至立方体模型上,势必会造成一些全景视频画面过大或过小的问题,通过本步骤设置的拉远/拉近操作,可以方便用户找到比较合适的观看大小,提升了用户使用体验。

优选地,在本实施例中,还可以设置在立方体上贴合图像帧的标准尺寸范围,在前期进行全景图像帧处理时,测量出全景图像帧的尺寸并存储;在播放器接收用户的全景视频播放请求时,获取全景图像帧的尺寸与标准尺寸范围比较,结合预先设定的尺寸范围与景深的调节关系先调节好全景视频的景深,再获取用户视觉范围内的全景图像帧进行展示播放。

本实施例所述的基于立方体模型播放全景视频的方法,根据预先处理好的立方体全景视频画面,创建立方体模型贴合全景视频后进行显示播放,可以适合处理其它全景视频不能处理的三角架等问题,还实现了根据用户操作拉远/拉近全景视频画面的功能,提升了用户使用体验。

实施例2

如图2所示,为本实施例所述基于D3D接口播放立方体全景视频的方法的流程示意图,本实施例在实施例1的基础上,描述了立方体全景视频贴图及显示播放的具体内容。本实施例所述基于立方体模型播放全景视频的方法包括以下步骤:

步骤201、在基于D3D接口的播放器中设置用于触发全景视频播放的触发指令,根据所述触发指令创建立方体模型,并将全景视频贴合到所述立方体模型的全景映射面上。

步骤202、用户在播放器中请求播放全景视频,并发送全景视频播放请求,在所述全景视频播放请求中带有该全景视频的标识。

步骤203、接收全景视频播放请求,根据所述全景视频播放请求加载所请求播放的全景视频,并对所述全景视频进行分离、解码后获得图像帧。

步骤204、获得全景视频后,激活所述触发指令,基于D3D接口建立立方体模型,并根据预先设定的映射关系,确定立方体顶点与图像帧的纹理坐标的对应关系,然后根据所述对应关系进行纹理贴图。其中,所述映射关系,为预先设置在所述全景视频的图像帧与所述立方体模型的全景映射面上位置的一一对应关系。

步骤205、检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像后,在所述显示视窗中进行显示。

步骤206、根据输入控制所述显示视窗在三维空间的位置移动,根据所述三维空间的位置确定位于所述显示视窗范围内,且贴合在所述立方体模型的全景映射面上的图像,并将所述显示视窗移动后在所述立方体模型的全景映射面上的图像显示在所述显示视窗中;其中,所述输入包括:用户观看的方向、视角大小、景深及视窗大小。

步骤207、接收所述全景视频的景深伸/缩请求,根据所述景深伸/缩请求及预先设定的景深伸/缩与视角范围的对应比例得到景深伸/缩后的视角范围,获取贴合在所述立方体模型的全景映射面上,且位于所述景深伸/缩后的视角范围内的图像,并在所述显示视窗中进行展示。

步骤208、检测到平面视频播放指令时,根据所述关闭指令禁用所述触发指令;获取所述图像帧,并将所述显示视窗对应位置的图像帧内容发送至播放器进行平面视频渲染后,显示在所述显示视窗内。

本实施例所述的基于立方体模型播放全景视频的方法,在视频播放器中设置全景视频与平面视频播放的切换控制指令,根据对应的控制指令调用立方体全景视频播放或平面视频播放,解决了现有技术中不能在播放器中既可以播放平面视频又可以播放全景视频的技术问题。

实施例3

如图3所示,为本实施例所述基于D3D接口播放立方体全景视频的系统的结构示意图,本实施例所述的系统用于实施上述实施例中所述基于立方体模型播放全景视频的方法。本实施例所述优化的视频解码播放的系统包括:设置模块301、全景视频获取模块302、立方体模型创建模块303及全景视频播放模块304。

其中,所述设置模块301与所述全景视频获取模块302相藕接,用于在基于D3D接口的播放器中设置用于触发全景视频播放的触发指令,根据所述触发指令创建立方体模型,并将全景视频贴合到所述立方体模型的全景映射面上。

所述全景视频获取模块302与所述设置模块301及立方体模型创建模块303相藕接,用于接收全景视频播放请求,根据所述全景视频播放请求加载所请求播放的全景视频,并对所述全景视频进行分离、解码后获得图像帧及所述图像帧在立方体模型上的映射关系;

所述立方体模型创建模块303与所述全景视频获取模块302及全景视频播放模块304相藕接,用于获得全景视频后,激活所述触发指令,基于D3D接口建立立方体模型,并根据预先设定的映射关系,确定立方体顶点与图像帧的纹理坐标的对应关系,然后根据所述对应关系进行纹理贴图。

所述全景视频播放模块304与所述立方体模型创建模块303相藕接,用于检测所述播放器中预先设置的显示视窗在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在纹理贴图后立方体模型的全景映射面上对应的图像,在所述显示视窗中进行显示;

接收所述全景视频的景深伸/缩请求,根据所述景深伸/缩请求及预先设定的景深伸/缩与视角范围的对应比例得到景深伸/缩后的视角范围,获取贴合在所述立方体模型的全景映射面上,且位于所述景深伸/缩后的视角范围内的图像,并在所述显示视窗中进行展示。

所述立方体模型创建模块303,进一步用于:

基于D3D获取所述全景视频的图像帧及所述映射关系,检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像;

根据所述映射关系获取所述显示视窗在所述立方体模型的全景映射面上的视觉图像,将所述视觉图像对应地贴合到所述立方体模型的全景映射面上。

所述映射关系,为预先设置在所述全景视频的图像帧与所述立方体模型的全景映射面上位置的一一对应关系。

所述全景视频播放模块304,进一步用于:

检测所述播放器中预先设置的显示视窗,在所述立方体模型的全景映射面上的位置,并获取所述显示视窗在所述立方体模型的全景映射面上对应的图像后,在所述显示视窗中进行显示;

根据输入控制所述显示视窗在三维空间的位置移动,根据所述三维空间的位置确定位于所述显示视窗范围内,且贴合在所述立方体模型的全景映射面上的图像,并将所述显示视窗移动后在所述立方体模型的全景映射面上的图像显示在所述显示视窗中;其中,

所述输入包括:用户的观看方向、视角大小、景深及视窗大小。

上述系统进一步包括:平面视频播放模块305与所述全景视频播放模块304相藕接,用于:

检测到平面视频播放指令时,根据所述关闭指令禁用所述触发指令;

获取所述图像帧,并将所述显示视窗对应位置的图像帧内容发送至播放器进行平面视频渲染后,显示在所述显示视窗内。

通过以上各个实施例可知,本发明的基于D3D接口播放立方体全景视频的方法及系统,存在的有益效果是:

(1)本发明所述的基于立方体模型播放全景视频的方法及系统,在视频播放器中设置全景视频与平面视频播放的切换控制指令,根据对应的控制指令调用立方体全景视频播放或平面视频播放,解决了现有技术中不能在播放器中既可以播放平面视频又可以播放全景视频的技术问题。

(2)本发明所述的基于立方体模型播放全景视频的方法及系统,能够根据用户的请求进行相对应视频形式的播放,避免了因为视频播放模式不对应带来的视频失真现象,且很容易建立全景图像帧与立方体的每个映射面的位置对应关系,避免了在贴合全景图像帧时的复杂计算过程。

(3)本发明所述的基于立方体模型播放全景视频的方法及系统,根据预先处理好的立方体全景视频画面,创建立方体模型贴合全景视频后进行显示播放,可以适合处理其它全景视频不能处理的三角架问题。

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

虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

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