全景视频播放方法、全景视频播放装置及播放器与流程

文档序号:11591041阅读:210来源:国知局
全景视频播放方法、全景视频播放装置及播放器与流程

本发明涉及全景视频播放的技术领域,更具体地,涉及一种全景视频播放方法、全景视频播放装置及播放器。



背景技术:

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

现有技术中,还没有保存全景视频的特有格式,现有的全景视频还是采用与传统视频相同的保存格式。现有的全景播放器播放的是经过拼接处理的以拍摄点为中心的投影面上的画面,目前对于这种投影画面,常常是将投影的画面变换存储为矩形图像来存储,当在全景播放器播放该全景视频时将存储的矩形图像重新映射贴合到全景视频播放模型上播放。

现有技术中无法自动识别出待播放的视频是平面视频还是全景视频,而全景视频与平面视频的播放方式是完全不同的,如果以全景视频的播放形式来播放平面视频或者以平面视频的播放形式来播放全景视频都会造成视频画面的扭曲。

因此,提供一种支持全景视频图像帧贴合播放的全景视频播放方法、全景视频播放装置及播放器,是本领域亟待解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种支持全景视频图像帧贴合播放的全景视频播放方法、全景视频播放装置及播放器。

一种全景视频播放方法,包括:

预定义球模型的多条经线和纬线,其中,每条经线与每条纬线均具有一个交点;

将形成交点的经线的经度和形成交点的纬线的纬度分别依次作为交点的经度和纬度;

将交点的经度和纬度映射为三维空间坐标;

将交点的经度和纬度映射为二维纹理坐标;

确定交点的索引,其中,每个交点的索引、三维空间坐标和二维纹理坐标构成球模型的参数;

存储球模型的参数;

获取待播放的全景视频图像;

将全景视频图像根据球模型的参数贴合至球模型上;以及

按照播放终端确定的视角范围对贴合至球模型上的全景视频图像进行播放。

进一步的,预定义球模型的多条经线和纬线的步骤具体为:

在-90到90度的经度范围内,每隔预定度数确定一条经线;

在0至360度的纬度范围内,每隔预定度数确定一条纬线。

进一步的,预定度数为3度至7度。

进一步的,获取待播放的全景视频图像的步骤具体为:

以每秒25帧的频率获取待播放的全景视频图像。

进一步的,将全景视频图像根据球模型的参数贴合至球模型上的步骤具体为:

调用ios操作系统函数gldrawelements(glenummode,glsizeicount,glenumtype,constglvoid*indices)将所述全景视频图像根据所述球模型的参数贴合至所述球模型上,其中,mode用于指定将要渲染哪种类型的图元,count用于指定将要被渲染的元素数量,type用于指定indices中的值的类型,indices用于指定一个指向索引存储位置的指针。

进一步的,将全景视频图像根据球模型的参数贴合至球模型上的步骤具体为:

调用android操作系统函数publicstaticnativevoidgldrawelements(intvar0,intvar1,intvar2,buffervar3)将所述全景视频图像根据所述球模型的参数贴合至所述球模型上,其中,var0用于指定将要渲染哪种类型的图元,var1用于指定将要被渲染的元素数量,var2用于指定var3中的值的类型,var3用于指定一个指向索引存储位置的指针。

进一步的,本发明还提供一种全景视频播放装置,包括:

预定义模块,用于预定义球模型的多条经线和纬线,其中,每条经线与每条纬线均具有一个交点;

交点经纬度确定模块,用于将形成交点的经线的经度和形成交点的纬线的纬度分别依次作为交点的经度和纬度;

第一映射模块,用于将交点的经度和纬度映射为三维空间坐标;

第二映射模块,用于将交点的经度和纬度映射为二维纹理坐标;

交点索引确定模块,用于确定交点的索引,其中,每个交点的索引、三维空间坐标和二维纹理坐标构成球模型的参数;

存储模块,用于存储球模型的参数;

获取模块,用于获取待播放的全景视频图像;

贴合模块,用于将全景视频图像根据所述球模型的参数贴合至球模型上;以及

播放模块,用于按照播放终端确定的视角范围对贴合至球模型上的全景视频图像进行播放。

进一步的,预定义模块在预定义球模型的多条经线和纬线时,执行的步骤具体为:

在-90到90的经度范围内,每隔预定度数确定一条经线;

在0至360度的纬度范围内,每隔预定度数确定一条纬线。

进一步的,所述预定度数为3度至7度。

进一步的,本发明还提供一种播放器,包括上述全景视频播放装置。

与现有技术相比,本发明的全景视频播放方法、全景视频播放装置及播放器,实现了如下的有益效果:

(1)首先建立球模型,将球模型的参数存储,在获取到全景视频图像后,图像根据球模型的参数贴合至球模型上,最终进行全景视频图像的播放,通过在构建球模型中经线和纬线构建三角形贴合全景视频进行播放的方案,球模型参数处理速度和视频画面播放速度相配合,实现全景视频画面清晰、流畅的播放。

(2)设置预定度数为3度至7度,相当于在球模型中设置了预定数量的三角形,同时设置以每秒25帧的频率获取待播放的全景视频图像,保证了球模型贴合画面的准确性和流畅度,同时球模型参数处理速度和视频画面播放速度相配合,保证了全景视频播放画面清晰度和流畅度。

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

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

附图说明

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

图1为本发明实施例1所述的全景视频播放方法的步骤流程图;

图2为本发明实施例构建的球模型示意图;

图3为本发明实施例2所述的全景视频播放方法的步骤流程图;

图4为本发明实施例3所述的全景视频播放方法的步骤流程图;

图5为本发明实施例4所述的全景视频播放装置框图。

具体实施方式

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

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

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

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

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

实施例1

本发明实施例1提供了一种全景视频播放方法,该方法适用于计算机、手机、平板电脑等终端,用于实时播放全景视频,具体地,如图1所示,该全景视频播放方法包括如下的步骤s101至步骤s109。

步骤s101:预定义球模型的多条经线和纬线,

其中,每条经线与每条纬线均具有一个交点;

在全景视频中,构建的球模型,如图2所示,经线a和纬线b的交点为p。球模型的经纬线的定义方式与地球仪中经纬线的定义方式相同。纬线定义为地球表面某点随地球自转所形成的轨迹,所有的纬线都相互平行,并与经线垂直,经线定义为在地球仪表面连接南北两极并垂直于纬线的半圆。

步骤s102:将形成交点的经线的经度和形成交点的纬线的纬度分别依次作为交点的经度和纬度;

步骤s103:将交点的经度和纬度映射为三维空间坐标;

步骤s104:将交点的经度和纬度映射为二维纹理坐标;

步骤s105:确定交点的索引,

其中,每个交点的索引、三维空间坐标和二维纹理坐标构成球模型的参数;

步骤s106:存储球模型的参数;

步骤s107:获取待播放的全景视频图像;

步骤s108:将全景视频图像根据球模型的参数贴合至球模型上;

步骤s109:按照播放终端确定的视角范围对贴合至球模型上的全景视频图像进行播放。

具体的,参照图2,本实施例提供的全景视频播放方法中,建立了球模型,定义了经纬线(单位经度:u_longitude,单位纬度:u_latitude),通过任意两个经纬线的交点与球模型球心o连线,可以构建出n个三角形。根据自定义的经纬度,计算出每一个交点p的经度和纬度;然后根据每一个交点p的经纬度,求得每一个交点在球模型中的坐标p(x,y,z),同时构建出每一个交点p的索引p_index;根据每一个交点p的经纬度,将球模型中的每一个交点p映射到uv纹理坐标p(u,v);最后通过已知交点坐标p(x,y,z)eg:(0,400,0)、交点索引p_index、交点p纹理坐标p(u,v)eg:(0,0.25),通过opengl可编程管线将图像通过屏幕渲染出来。

采用该实施例提供的全景视频播放方法,首先建立球模型,将球模型的参数存储,在获取到全景视频图像后,图像根据球模型的参数贴合至球模型上,最终进行全景视频图像的播放,通过在构建球模型中经线和纬线构建三角形贴合全景视频进行播放的方案,球模型参数处理速度和视频画面播放速度相配合,实现全景视频画面清晰、流畅的播放。

实施例2

本发明实施例2是在上述实施例1基础上提供的一种优选实施例,相关步骤可以参考实施例1,该实施例的方法应用于ios操作系统的终端,例如苹果手机、ipad等,如图3所示,该实施例2包括如下的步骤s201至步骤s209。

步骤s201:在-90至90度的经度范围内,每隔预定度数确定一条经线;在0至360度的纬度范围内,每隔预定度数确定一条纬线,每条经线与每条纬线均具有一个交点,

其中,预定度数为3度至7度。

本发明构建的球模型中,由于构建的三角形数量过多会增加处理压力,三角形数量过小会导致球模型贴合图像播放的画面流畅性不佳,设置预定度数为3度至7度,相当于在球模型中设置了预定数量的三角形,因此保证了球模型贴合画面的准确性和流畅度,同时球模型参数处理速度和视频画面播放速度相配合,保证了全景视频播放画面清晰度和流畅度。

步骤s202:将形成交点的经线的经度和形成交点的纬线的纬度分别依次作为交点的经度和纬度;

步骤s203:将交点的经度和纬度映射为三维空间坐标;

步骤s204:将交点的经度和纬度映射为二维纹理坐标;

步骤s205:确定交点的索引,

其中,每个交点的索引、三维空间坐标和二维纹理坐标构成球模型的参数;

步骤s206:存储球模型的参数;

步骤s207:以每秒25帧的频率获取待播放的全景视频图像。

设置以每秒25帧的频率获取待播放的全景视频图像与球模型贴合画面速度相配合,保证了全景视频播放画面的清晰度和流畅度。

步骤s208:调用ios操作系统函数gldrawelements(glenummode,glsizeicount,glenumtype,constglvoid*indices)将全景视频图像根据所述球模型的参数贴合至球模型上,

其中,mode用于指定将要渲染哪种类型的图元,count用于指定将要被渲染的元素数量,type用于指定indices中的值的类型,indices用于指定一个指向索引存储位置的指针。

步骤s209:按照播放终端确定的视角范围对贴合至球模型上的全景视频图像进行播放。

实施例3

本发明实施例3是在上述实施例1基础上提供的一种优选实施例,相关步骤可以参考实施例1,该实施例的方法应用于android操作系统的终端,例如搭载android系统的手机、平板电脑等,如图4所示,该实施例2包括如下的步骤s301至步骤s308。

步骤s301:在-90至90度的经度范围内,每隔预定度数确定一条经线;在0至360度的纬度范围内,每隔预定度数确定一条纬线,每条经线与每条纬线均具有一个交点,

其中,预定度数为3度至7度。

本发明构建的球模型中,由于构建的三角形数量过多会增加处理压力,三角形数量过小会导致球模型贴合图像播放的画面流畅性不佳,设置预定度数为3度至7度,相当于在球模型中设置了预定数量的三角形,因此保证了球模型贴合画面的准确性和流畅度,同时球模型参数处理速度和视频画面播放速度相配合,保证了全景视频播放画面清晰度和流畅度。

步骤s302:将形成交点的经线的经度和形成交点的纬线的纬度分别依次作为交点的经度和纬度;

步骤s303:将交点的经度和纬度映射为三维空间坐标;

步骤s304:将交点的经度和纬度映射为二维纹理坐标;

步骤s305:确定交点的索引,

其中,每个交点的索引、三维空间坐标和二维纹理坐标构成球模型的参数;

步骤s306:存储球模型的参数;

步骤s307:以每秒25帧的频率获取待播放的全景视频图像。

设置以每秒25帧的频率获取待播放的全景视频图像与球模型贴合画面速度相配合,保证了全景视频播放画面的清晰度和流畅度。

步骤s308:调用android操作系统函数publicstaticnativevoidgldrawelements(intvar0,intvar1,intvar2,buffervar3)将所述全景视频图像根据所述球模型的参数贴合至所述球模型上,

其中,var0用于指定将要渲染哪种类型的图元,var1用于指定将要被渲染的元素数量,var2用于指定var3中的值的类型,var3用于指定一个指向索引存储位置的指针。

步骤s309:按照播放终端确定的视角范围对贴合至球模型上的全景视频图像进行播放。

以上为本发明提供的全景视频播放方法的实施例,本发明还提供了全景视频播放装置的实施例,本发明提供的全景视频播放方法与全景视频播放装置属于相对应的同一发明构思,本领域技术人员在理解本发明时,可将全景视频播放方法与全景视频播放装置相互结合。

实施例4

本发明实施例4提供一种全景视频播放装置,该装置可以为能实现全景视频播放功能的计算机、手机、平板电脑等终端。具体的,如图5所示,该全景视频播放装置包括预定义模块501、交点经纬度确定模块502、第一映射模块503、第二映射模块504、交点索引确定模块505、存储模块506、获取模块507、贴合模块508、播放模块509。

其中,预定义模块501用于预定义球模型的多条经线和纬线,其中,每条经线与每条纬线均具有一个交点,交点经纬度确定模块502用于将形成交点的经线的经度和形成交点的纬线的纬度分别依次作为交点的经度和纬度,第一映射模块503用于将交点的经度和纬度映射为三维空间坐标,第二映射模块504用于将交点的经度和纬度映射为二维纹理坐标,交点索引确定模块505用于确定交点的索引,其中,每个交点的索引、三维空间坐标和二维纹理坐标构成球模型的参数,存储模块506用于存储球模型的参数,获取模块507用于获取待播放的全景视频图像,贴合模块508用于将全景视频图像根据球模型的参数贴合至球模型上,播放模块509用于按照播放终端确定的视角范围对贴合至球模型上的全景视频图像进行播放。

进一步优选的,预定义模块501中,预定义模块在预定义球模型的多条经线和纬线时,执行的步骤具体为:在-90至90度的经度范围内,每隔预定度数确定一条经线;在0至360度的纬度范围内,每隔所述预定度数确定一条纬线,每条经线与每条纬线均具有一个交点,

进一步优选的,预定度数为3度至7度。

进一步优选地,获取模块在获取待播放的全景视频图像时,以每秒25帧的频率获取待播放的全景视频图像。

进一步优选地,贴合模块在将全景视频图像根据球模型的参数贴合至球模型上时,具体可调用ios操作系统函数gldrawelements(glenummode,glsizeicount,glenumtype,constglvoid*indices)将所述全景视频图像根据所述球模型的参数贴合至所述球模型上,其中,mode用于指定将要渲染哪种类型的图元,count用于指定将要被渲染的元素数量,type用于指定indices中的值的类型,indices用于指定一个指向索引存储位置的指针。

进一步优选地,贴合模块在将全景视频图像根据球模型的参数贴合至球模型上时,具体可调用android操作系统函数publicstaticnativevoidgldrawelements(intvar0,intvar1,intvar2,buffervar3)将所述全景视频图像根据所述球模型的参数贴合至所述球模型上,其中,var0用于指定将要渲染哪种类型的图元,var1用于指定将要被渲染的元素数量,var2用于指定var3中的值的类型,var3用于指定一个指向索引存储位置的指针。

上述实施例4为本发明提供的全景视频播放装置的实施例,本发明还提供了一种播放器的实施例,本发明提供的播放器和全景视频播放装置属于同一发明构思,本领域技术人员在理解本发明时,可将播放器和全景视频播放装置相互结合。

实施例5

本发明实施例5提供一种播放器,该播放器可用作全景视频播放,本发明实施例提供的播放器包括上述实施例4所述的全景视频播放装置。

通过上述实施例可知,本发明的全景视频播放方法、全景视频播放装置及播放器,达到了如下的有益效果:

(1)首先建立球模型,将球模型的参数存储,在获取到全景视频图像后,图像根据球模型的参数贴合至球模型上,最终进行全景视频图像的播放,通过在构建球模型中经线和纬线构建三角形贴合全景视频进行播放的方案,球模型参数处理速度和视频画面播放速度相配合,实现全景视频画面清晰、流畅的播放。

(2)设置预定度数为3度至7度,相当于在球模型中设置了预定数量的三角形,同时设置以每秒25帧的频率获取待播放的全景视频图像,保证了球模型贴合画面的准确性和流畅度,同时球模型参数处理速度和视频画面播放速度相配合,保证了全景视频播放画面清晰度和流畅度。

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

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

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