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

文档序号:11880869阅读:520来源:国知局
基于D3D播放全景视频的方法及系统与流程

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



背景技术:

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

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

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

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

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



技术实现要素:

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

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

在播放器中设置用于触发全景视频播放的触发指令;

在所述播放器中加载视频,并对所述视频进行分离、解码后获得视频图像;

所述播放器检测到全景视频播放请求时,激活所述触发指令;

根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,根据所述D3D全景纹理矩形图片在所述播放器中生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上;

检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示。

进一步地,其中,检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示,进一步为:

检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示;

根据光标的移动控制所述显示视窗在所述全景映射球面上的位置移动,并将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

进一步地,其中,根据光标的移动控制所述显示视窗在所述全景映射球面上的位置移动,并将所述显示视窗移动后对应的视频内容显示在所述显示视窗中,进一步为:

根据光标的移动控制所述显示视窗在所述全景映射球面上的欧拉角的变化,根据所述显示视窗在全景映射球面上欧拉角的变化移动所述显示视窗在所述全景映射球面上的位置;

将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

进一步地,其中,根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,根据所述D3D全景纹理矩形图片在所述播放器中生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上,进一步为:

根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,将所述D3D全景纹理矩形图片的侧边作为球面半圆弧生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上。

进一步地,其中,所述播放器检测到全景视频播放请求时,根据所述全景视频播放请求激活所述触发指令,进一步为:

所述播放器检测到全景视频的关闭请求时,根据所述关闭请求禁用所述触发指令;

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

另一方面,本发明还提供一种基于D3D播放全景视频的系统,包括:全景视频触发设置模块、视频图像获取模块、全景视频播放激活模块、全景视频贴图模块及全景视频显示模块;其中,

所述全景视频触发设置模块,用于在播放器中设置用于触发全景视频播放的触发指令;

所述视频图像获取模块,用于在所述播放器中加载视频,并对所述视频进行分离、解码后获得视频图像;

所述全景视频播放激活模块,用于所述播放器检测到全景视频播放请求时,激活所述触发指令;

所述全景视频贴图模块,用于根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,根据所述D3D全景纹理矩形图片在所述播放器中生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上;

所述全景视频显示模块,用于检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示。

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

检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示;

根据光标的移动控制所述显示视窗在所述全景映射球面上的位置移动,并将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

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

根据光标的移动控制所述显示视窗在所述全景映射球面上的欧拉角的变化,根据所述显示视窗在全景映射球面上欧拉角的变化移动所述显示视窗在所述全景映射球面上的位置;

将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

进一步地,其中,全景视频贴图模块,进一步用于:

根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,将所述D3D全景纹理矩形图片的侧边作为球面半圆弧生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上。

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

所述播放器检测到全景视频的关闭请求时,根据所述关闭请求禁用所述触发指令;

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

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

(1)本发明所述的基于D3D播放全景视频的方法及系统,利用D3D设置在播放器中触发或者关闭全景视频的控制指令,实现了根据用户请求在播放器中进行全景视频与平面视频的切换播放。

(2)本发明所述的基于D3D播放全景视频的方法及系统,通过设置全景视频播放的控制指令,在播放器中实现既支持全景视频播放,又支持平面视频播放,提升了用户使用播放器的观看体验。

(3)本发明所述的基于D3D播放全景视频的方法及系统,能够根据用户的请求进行相对应视频形式的播放,避免了因为视频播放模式不对应带来的视频失真现象。

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

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

附图说明

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

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

图2为本发明实施例1中所述的存储为矩形图片的全景视频图像重新映射到一个球体的球面的示意图;

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

如图3B为本发明实施例2中所述根据光标移动控制显示视窗在全景映射球面上欧拉角变化的示意图;

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

具体实施方式

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

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

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

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

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

实施例1

如图1所示,为本实施例所述的基于D3D播放全景视频的方法的流程示意图。本实施例基于D3D设置全景视频与平面视频的切换控制指令,使得播放器既支持全景视频的播放,又支持对普通平面视频的播放,提升了用户体验。本实施例中所述的基于D3D播放全景视频的方法包括以下步骤:

步骤101、在播放器中设置用于触发全景视频播放的触发指令。在播放器能够正常播放平面视频,设置所述触发指令后,在接收到用户的全景视频播放请求后,通过激活所述触发指令触发全景视频播放系统进行全景视频播放。能够在普通播放器上实现既支持普通的平面视频播放,又支持全景视频播放。

步骤102、在所述播放器中加载视频,并对所述视频进行分离、解码后获得视频图像。

步骤103、所述播放器检测到全景视频播放请求时,激活所述触发指令。

基于D3D设置有用户信息的输入接口,用于接收用户的请求或指令信息反馈给播放器进行处理。

步骤104、根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,根据所述D3D全景纹理矩形图片在所述播放器中生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上。

D3D全景纹理,是一种用于在3D物体表面进行纹理贴图的数据结构,通过为存储的视频图像每个顶点指定一组纹理坐标,表明这些顶点在贴图面中的坐标位置,以建立起存储的视频图像与所述贴图面的映射关系。

目前还没有全景视频的特定存储格式,而全景视频图像在球面上的投影也不方便存储,一般都是将拍摄到的拍摄点周围360度(或720度)的画面经过后期图像拼接成平面矩形图片存储。而在全景视频播放器上播放全景视频的第一步就是将变换后的矩形图片重新映射到一个球面上。如图2所示,为存储为矩形图片的全景视频图像201重新映射到一个球体202的球面上的示意图。全景视频图像201中的上边上的点N1、N2、N3、N4、N5点都映射到球体202的上顶点N点,全景视频图像201中的下边上的点S1、S2、S3、S4、S5点都映射到球体202的下顶点S点,全景视频图像201的左右侧边中点A、A1及左右侧边中点连线上的点B、C、D分别映射到所示球体202的0经度的经线上,且A和A1对应球体202上的同一点。

步骤105、检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示。

在播放器中的显示视窗是固定的,每次只能显示全景视频上特定视角范围内的视频内容。因此,通过检测所述显示视窗在所述全景映射球面上的位置,以获取所述显示视窗在全景映射球面上对应范围内的视频内容进行显示。

本实施例所述的基于D3D播放全景视频的方法,利用D3D设置在播放器中触发或者关闭全景视频的控制指令,实现了根据用户请求在播放器中进行全景视频与平面视频的切换播放的效果。

实施例2

如图3A所示,为本实施例所述的基于D3D播放全景视频的方法的流程示意图。本实施例在实施例1的基础上说明了全景视频与普通平面视频切换播放的具体内容。本实施例所述的基于D3D播放全景视频的方法的步骤如下:

步骤301、在播放器中设置用于触发全景视频播放的触发指令。

步骤302、在所述播放器中加载视频,并对所述视频进行分离、解码后获得视频图像。

步骤303、所述播放器检测到全景视频播放请求时,激活所述触发指令。

步骤304、根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,将所述D3D全景纹理矩形图片的侧边作为球面半圆弧生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上。

步骤305、检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示;

根据光标的移动控制所述显示视窗在所述全景映射球面上的位置移动,并将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

步骤306、根据光标的移动控制所述显示视窗在所述全景映射球面上的欧拉角的变化,根据所述显示视窗在全景映射球面上欧拉角的变化移动所述显示视窗在所述全景映射球面上的位置。

欧拉角是用来确定定点转动刚体位置的一组(3个)独立角参量,由章动角、旋进角(即进动角)和自转角组成,以刚体外的原点设定o-xyz坐标轴时,章动角、旋进角(即进动角)和自转角分别为所述刚体与原点的连线与数值坐标轴0z的夹角,与数值坐标轴0x的夹角,及与数值坐标轴0y的夹角。

如图3B所示,为本实施例所述根据光标移动控制显示视窗在全景映射球面上欧拉角变化的示意图。在全景映射球面中的球体半径r固定,因此,只需要确定上述欧拉角中的两个就能确定所述显示视窗310在球面上的位置。在播放器中只需预先设置光标上下左右移动方向及距离调节全景映射球面上显示视窗上对应欧拉角中章动角θ及进动角φ变化的幅度,当用户操作移动光标时调整所述显示视窗的欧拉角进而引起在全景映射球面上位置发生变化。

步骤307、将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

步骤308、所述播放器检测到全景视频的关闭请求时,根据所述关闭请求禁用所述触发指令;基于D3D获取所述视频图像,并将所述显示视窗在所述视频图像上对应位置的视频图像内容进行平面视频渲染后,显示在所述显示视窗内。

当用户发现播放的视频不是全景视频,而是普通平面视频时,如果还是按照全景视频播放的机制进行播放,得到的会是失真的视频图像。通过设置根据用户关闭全景视频播放请求禁用所述触发全景视频播放的触发指令,进而采用普通平面视频播放机制进行播放,实现了在同一播放器内既支持普通平面视频播放又支持全景视频播放的效果,提升了用户使用播放器的观看体验。

实施例3

如图4所示,为本实施例所述的基于D3D播放全景视频的系统,该系统可用于实现上述实施例中所述的基于D3D播放全景视频的方法。所述系统包括:全景视频触发设置模块401、视频图像获取模块402、全景视频播放激活模块403、全景视频贴图模块404及全景视频显示模块405。

其中,所述全景视频触发设置模块401与所述视频图像获取模块402相藕接,用于在播放器中设置用于触发全景视频播放的触发指令;

所述视频图像获取模块402与所述全景视频触发设置模块401及所述全景视频播放激活模块403相藕接,用于在所述播放器中加载视频,并对所述视频进行分离、解码后获得视频图像;

所述全景视频播放激活模块403与所述视频图像获取模块402及所述全景视频贴图模块404相藕接,用于所述播放器检测到全景视频播放请求时,激活所述触发指令;

所述全景视频贴图模块404与所述全景视频播放激活模块403及所述全景视频显示模块405相藕接,用于根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,根据所述D3D全景纹理矩形图片在所述播放器中生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上;

所述全景视频显示模块405与所述全景视频贴图模块404相藕接,用于检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示。

进一步地,其中,所述全景视频显示模块405进一步用于:

检测所述播放器中预先设置的显示视窗在所述全景映射球面上的位置,并获取所述显示视窗在所述全景映射球面上对应的内容在所述显示视窗中进行显示;

根据光标的移动控制所述显示视窗在所述全景映射球面上的位置移动,并将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

所述全景视频显示模块405还用于:

根据光标的移动控制所述显示视窗在所述全景映射球面上的欧拉角的变化,根据所述显示视窗在全景映射球面上欧拉角的变化移动所述显示视窗在所述全景映射球面上的位置;

将所述显示视窗位置移动后在所述全景映射球面上对应的视频内容显示在所述显示视窗中。

全景视频贴图模块404进一步用于:

根据所述触发指令基于D3D获取所述视频图像并制作成D3D全景纹理矩形图片,将所述D3D全景纹理矩形图片的侧边作为球面半圆弧生成对应的全景映射球面,并将所述D3D全景纹理矩形图片贴图到所述全景映射球面上。

所述全景视频播放激活模块403进一步用于:

所述播放器检测到全景视频的关闭请求时,根据所述关闭请求禁用所述触发指令;

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

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

(1)本发明所述的基于D3D播放全景视频的方法及系统,利用D3D设置在播放器中触发或者关闭全景视频的控制指令,实现了根据用户请求在播放器中进行全景视频与平面视频的切换播放。

(2)本发明所述的基于D3D播放全景视频的方法及系统,通过设置全景视频播放的控制指令,在播放器中实现既支持全景视频播放,又支持平面视频播放,提升了用户使用播放器的观看体验。

(3)本发明所述的基于D3D播放全景视频的方法及系统,能够根据用户的请求进行相对应视频形式的播放,避免了因为视频播放模式不对应带来的视频失真现象。

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

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

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