视频流的视角切换方法、装置、设备和计算机存储介质与流程

文档序号:16632793发布日期:2019-01-16 06:44阅读:252来源:国知局
视频流的视角切换方法、装置、设备和计算机存储介质与流程

本发明涉及计算机应用技术领域,特别涉及一种视频流的视角切换方法、装置、设备和计算机存储介质。



背景技术:

全景视频的压缩技术已经成为虚拟现实(vr,virtualreality)技术领域的研究重点,全景视频通常在视频转码时,需要全景视频映射展开为平面图像,映射展开过程中可能采用不同的模型,例如equirectangular(等距长方圆柱投影)模型、cubemap(立方图投影)模型、pyramid(金字塔投影)模型、pyramid变种模型等等。其中一些模型是码率无差别分配的模型,例如equirectangular模型和cubemap模型,这些模型在全景视频的展开平面上均匀分配码率。而另一些模型是基于视角的码率分配模型,例如pyramid模型和pyramid变种模型,这些模型会将全景视频分成多路视频,使得每一路映射的视频在特定视角上具有高清晰度,而在远离这个视角的地方降低分辨率,即码率在特定视角上集中分配,从而降低每一路映射的编码图像面积,也就能够使得编码的码率大幅度的下降。

而pyramid模型及其变种模型,由于采用了多路映射的方式来降低每一路视角观看时的编码分辨率,在视频接收端当用户观看全景视频的视角发生变化时,必然会在下载视频流的时候在各个不同视角的编码流之间进行切换。通常各个视角的编码流会以gop(groupofpictures,图像组)为单位进行切换和对齐,gop是以一个i帧开始的一组编码视频帧。由于i帧的编码是不参考和依赖其他任何帧的,因此各个视角的视频流之间的切换就可以以gop为单位。如图1所示,三个不同视角的编码码流分别切分为以gop为单位的分片,每个切换的长度是一致的,例如1秒。而且需要保证不同视角的gop是严格对齐的,在视角1的gop1发生视角切换时,若切换到视角3,则视频接收端可以从视角3的视频流的gop2开始下载,从而实现视频流的无缝播放。

举个例子,如图2所示,若从视角1的gop1的t1时间点开始用户发生视角切换,则从t1时间点开始下载视角3的gop2。等到视角1的gop1播放完毕,在t2时间点开始视频接收端切换至播放视角3的视频流,即从视角3的gop2开始播放。由于播放视频流的切换只能在gop边界,因此即便网络下载速度非常快,用户最早也只能够在t2的时间点切换到视角3的视频流上观看。而从t1至t2这个时间段内,虽然用户视角已经发生的变化,但仍在观看视角1的视频流,图像清晰度较差,用户体验不佳。



技术实现要素:

有鉴于此,本发明提供了一种视频流的视角切换方法、装置、设备和计算机存储介质,以便于缩短视频流视角切换的时间,使用户尽快体验到图像清晰的视频流。

具体技术方案如下:

本发明提供了一种视频流的视角切换方法,该方法包括:

获取触发视频流从第一视角切换至第二视角的事件;

从第二视角的n路视频流中,确定分片起始时间在所述事件的发生时间之后、且与所述发生时间的差值满足设定条件的分片;

从确定出的分片开始下载所述分片所在的目标视频流;

在第一视角的视频流播放至所述确定出的分片的起始时间后,播放下载的所述目标视频流;

其中所述第二视角的n路视频流的同一分片之间依次存在预设时间差,该时间差小于分片长度,n为大于1的整数。

根据本发明一优选实施方式,所述获取触发视频流从第一视角切换至第二视角的事件包括:

接收到触发视频流从第一视角切换至第二视角的指令;或者,

捕捉到触发视频流从第一视角切换至第二视角的手势;或者,

检测到用户视角从第一视角变换为第二视角。

根据本发明一优选实施方式,所述n路视频采用相同的码率,且各视频流的视频内容在时间上对齐。

根据本发明一优选实施方式,所述n路视频流采用相同的分片长度。

根据本发明一优选实施方式,所述设定条件包括:距离所述发生时间最近。

根据本发明一优选实施方式,所述分片包括一个图像组gop。

根据本发明一优选实施方式,所述视频流为全景视频的视频流。

本发明还提供了一种视频流的产生方法,该方法包括:

针对各视角分别产生n路视频流,各路视频流的同一分片之间依次存在预设时间差,该时间差小于分片长度,n为大于1的整数。

根据本发明一优选实施方式,所述n路视频采用相同的码率,且各视频流的视频内容在时间上对齐。

根据本发明一优选实施方式,所述n路视频流采用相同的分片长度。

根据本发明一优选实施方式,该方法还包括:

将各视角的n路视频流存储于预设的存储空间,并将各视角的各路视频流的下载地址提供给视频接收端。

根据本发明一优选实施方式,所述分片包括一个图像组gop。

根据本发明一优选实施方式,所述视频流为全景视频的视频流。

本发明还提供了一种视频流的视角切换装置,该装置包括:

事件获取单元,用于获取触发视频流从第一视角切换至第二视角的事件;

目标确定单元,用于从第二视角的n路视频流中,确定分片起始时间在所述事件的发生时间之后、且与所述发生时间的差值满足设定条件的分片;

视频下载单元,用于从所述目标确定单元确定出的分片开始下载所述分片所在的目标视频流;

视频播放单元,用于在第一视角的视频流播放至所述确定出的分片的起始时间后,播放下载的所述目标视频流;

其中所述第二视角的n路视频流的同一分片之间依次存在预设时间差,该时间差小于分片长度,n为大于1的整数。

根据本发明一优选实施方式,所述事件获取单元在获取触发视频流从第一视角切换至第二视角的事件时,具体执行:

接收到触发视频流从第一视角切换至第二视角的指令;或者,

捕捉到触发视频流从第一视角切换至第二视角的手势;或者,

检测到用户视角从第一视角变换为第二视角。

根据本发明一优选实施方式,所述n路视频采用相同的码率,且各视频流的视频内容在时间上对齐。

根据本发明一优选实施方式,所述n路视频流采用相同的分片长度。

根据本发明一优选实施方式,所述设定条件包括:距离所述发生时间最近。

根据本发明一优选实施方式,所述分片包括一个图像组gop。

根据本发明一优选实施方式,所述视频流为全景视频的视频流。

本发明还提供了一种视频流的产生装置,该装置包括:

视频流产生单元,用于针对各视角分别产生n路视频流,各路视频流的同一分片之间依次存在预设时间差,该时间差小于分片长度,n为大于1的整数。

根据本发明一优选实施方式,所述n路视频采用相同的码率,且各视频流的视频内容在时间上对齐。

根据本发明一优选实施方式,所述n路视频流采用相同的分片长度。

根据本发明一优选实施方式,该装置还包括:

存储处理单元,用于将各视角的n路视频流存储于预设的存储空间,并将各视角的各路视频流的下载地址提供给视频接收端。

根据本发明一优选实施方式,所述分片包括一个图像组gop。

根据本发明一优选实施方式,所述视频流为全景视频的视频流。

本发明还提供了一种设备,包括

存储器,包括一个或者多个程序;

一个或者多个处理器,耦合到所述存储器,执行所述一个或者多个程序,以实现上述方法中执行的操作。

本发明还提供了一种设备,包括

存储器,包括一个或者多个程序;

一个或者多个处理器,耦合到所述存储器,执行所述一个或者多个程序,以执行上述方法中执行的操作。

本发明还提供了一种计算机存储介质,所述计算机存储介质被编码有计算机程序,所述程序在被一个或多个计算机执行时,使得所述一个或多个计算机执行上述方法中执行的操作。

本发明还提供了一种计算机存储介质,所述计算机存储介质被编码有计算机程序,所述程序在被一个或多个计算机执行时,使得所述一个或多个计算机执行上述方法中执行的操作。

由以上技术方案可以看出,本发明中各视角分别存在n路相互交错的视频流,即n路视频流的同一分片之间依次存在预设的小于分片长度的时间差。获取到视频流从第一视角切换至第二视角的事件后,能够确定第二视角的n路视频流中,分片起始时间在所述事件的发生时间之后、且与所述发生时间的差值满足设定条件的分片,使得从确定出的分片的分片起始时间就可以切换至该分片所在的目标视频流进行播放,而不必须等到当前分片结束才能进行播放切换,能够缩短视频流在不同视角之间切换时的等待时间,使用户尽快体验到图像清晰的视频流。

【附图说明】

图1为现有技术中各视角视频流的示意图;

图2为现有技术中视频流在不同视角间切换的示意图;

图3为本发明实施例所基于的系统组成示意图;

图4a为本发明实施例提供的各视角视频流的一示意图;

图4b为本发明实施例提供的各视角视频流的另一示意图;

图5为本发明实施例提供的视角切换方法流程图;

图6a和图6b分别为本发明实施例提供的各视角存在两路视频流时发生视角切换的实例图;

图7a和图7b分别为本发明实施例提供的各视角存在四路视频流时发生视角切换的实例图;

图8为本发明实施例提供的一装置结构图;

图9为本发明实施例提供的另一装置结构图;

图10为本发明实施例提供的设备结构图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

本发明实施例所基于的系统可以如图3中所示,该系统主要包括视频发送端和视频接收端。其中视频发送端一方面用于产生视频流,即对视频数据进行转码(解码、映射和编码等处理)后得到视频流。另一方面用于提供视频流供视频接收端下载。对于诸如全景视频的pyramid映射方式或pyramid变种映射方式,视频发送端会对同一视频数据进行不同视角的映射处理,分别得到针对各视角的视频流。视频接收端负责下载并播放视频发送端提供的视频流。若视频发送端采用诸如全景视频的pyramid映射方式或pyramid变种映射方式,则视频接收端依据当前用户的视角,下载并播放相应视角的视频流。当用户的视角发生切换时,相应下载并播放的视频流也需要发生视角的切换。

在本发明实施例中,在视频发送端针对各视角分别产生n路视频流,n为大于1的整数。也就是说,现有技术中视频发送端针对各视角分别只产生一路视频流,而在本发明实施例中,则针对各视角分别产生多路视频流。其中各路视频流的同一分片之间依次存在预设时间差,该时间差小于分片长度。另外,各路视频流在视频内容上仍然保持对齐,只是切片的起始点不同。

作为全景视频的一种典型实现,一个分片包含一个gop,即以gop为单位进行分片。但本发明并不限于这种情况,对于一个分片包含多个gop的情况同样适用。为了方面描述,后续实施例均以一个分片包含一个gop为例进行描述。

举个例子,如图4a所示,针对各视角分别产生2路视频流,若每个gop长度为l,那么每个视频流的同一gop相差这样同一视角产生2路交错的视频流。但各视频流在视频内容上仍然是对齐的,即在同一时间点上各路视频流的视频图像帧是相同的,仅仅是切片的起始时间不再对齐。

再举个例子,如图4b所示,针对各视角分别产生4路视频流,若每个gop长度为l,那么每个视频流的同一gop相差这样同一视角产生4路交错的视频流。

视频发送端将产生的各视角的各路视频流存储于预设的存储空间,然后将各视角的各路视频流的下载地址提供给视频接收端,以便视频接收端能够依据下载地址下载相应的视频流。

对于视频接收端而言,其执行的视频流的视角切换方法可以如图5所示,主要包括以下步骤:

在501中,获取触发视频流从第一视角切换至第二视角的事件。

当用户观看全景视频的视角发生变化,例如用户头戴vr设备时,转动头部使得vr设备(即全景视频的接收端)发生视角变化,此时全景视频的接收端检测到用户视角从第一视角变化为第二视角,则获取到触发视频流从第一视角切换至第二视角的事件。

除了上述事件类型之外,还可以是诸如接收到触发视频流从第一视角切换至第二视角的指令,或者捕捉到触发视频流从第一视角切换至第二视角的手势,等等。

在502中,从第二视角的n路视频流中,确定gop起始时间在t1之后且与t1的差值满足设定条件的gop所在的视频流,作为要切换到的目标视频流。

作为一种优选的实施方式,上述设定条件可以包括距离t1最近。当然除了该条件之外,也可以采用其他条件。

在503中,从确定出的gop开始,下载目标视频流。

在504中,待第一视角的视频流播放至确定出的gop的起始时间t2后,播放下载的目标视频流。

举个例子,假设各视角存在两路交错的视频流,用户需要从视角1切换到视角3,如图6a中所示,若用户正在观看视角1的视频流1。若在t1时间点(t1在视角1的视频流1的gop1前半段)发生切换,则确定视角3的2路视频流中,gop起始时间在t1时间点之后且距离t1最近的gop所在的视频流,可以确定出视角3的视频流2中gop1的起始时间在t1之后且距离t1最近,因此可以将视角3的视频流2作为目标视频流。

在t1时间点开始,下载视角3的视频流2的gop1,然后依次下载gop2、gop3、…。等到视角1的视频流1播放至视角3的视频流2的gop1的起始时间t2时,进行播放切换,即开始播放下载的目标视频流,即开始播放视角3的视频流2的gop1、gop2、gop3、…。

再举个例子,假设各视角存在两路交错的视频流,用户需要从视角1切换到视角3,如图6b中所示,若用户正在观看视角1的视频流1。若在t1时间点(t1在视角1的视频流1的gop1后半段)发生切换,则确定视角3的2路视频流中,gop起始时间在t1时间点之后且距离t1最近的gop所在的视频流,可以确定出视角3的视频流1中gop2的起始时间在t1之后且距离t1最近,因此可以将视角3的视频流1作为目标视频流。

在t1时间点开始,下载视角3的视频流1的gop2,然后依次下载gop3、gop4、…。等到视角1的视频流1播放至视角3的视频流1的gop2的起始时间t2时,进行播放切换,即开始播放下载的目标视频流,即开始播放视角3的视频流1的gop2、gop3、gop4、…。

显然这种方式相比较现有技术中的切换方式而言,就不必一定等到当前播放的gop播放完毕才可以切换到视角3,而是将切换等待时间控制在gop时长的

再举个例子,假设各视角存在四路交错的视频流,用户需要从视角1切换到视角3,如图7a中所示,若用户正在观看视角1的视频流1。若在t1时间点发生切换,则确定视角3的4路视频流中,gop起始时间在t1时间点之后且距离t1最近的gop所在的视频流,可以确定出视角3的视频流3中gop1的起始时间在t1之后且距离t1最近,因此可以将视角3的视频流3作为目标视频流。

在t1时间点开始,下载视角3的视频流3的gop1,然后依次下载gop2、gop3、…。等到视角1的视频流1播放至视角3的视频流3的gop1的起始时间t2时,进行播放切换,即开始播放下载的目标视频流,即开始播放视角3的视频流2的gop1、gop2、gop3、…。

再举个例子,假设各视角存在四路交错的视频流,用户需要从视角1切换到视角3,如图7b中所示,若用户正在观看视角1的视频流1。若在t1时间点发生切换,则确定视角3的4路视频流中,gop起始时间在t1时间点之后且距离t1最近的gop所在的视频流,可以确定出视角3的视频流1中gop2的起始时间在t1之后且距离t1最近,因此可以将视角3的视频流1作为目标视频流。

在t1时间点开始,下载视角3的视频流1的gop2,然后依次下载gop3、gop4、…。等到视角1的视频流1播放至视角3的视频流1的gop2的起始时间t2时,进行播放切换,即开始播放下载的目标视频流,即开始播放视角3的视频流1的gop2、gop3、gop4、…。

显然这种方式相比较现有技术中的切换方式而言,就不必一定等到当前播放的gop播放完毕才可以切换到视角3,而是将切换等待时间控制在gop时长的

上述仅仅为实施例所列举的例子,在实际过程中视角切换的事件并非切换一定发生在gop1,视角切换可以发生在任意的gop上。

视频接收端在下载视频流时,依据各视频流的下载地址进行下载。上面已经提到,视频发送端在产生各视角的n路视频流时,会将各视角的各路视频流的下载地址提供给视频接收端。其中各视角的各路视频流的下载地址以文件的形式存储于视频接收端,视频接收端依据该存储的文件来下载相应的视频流。该部分可以采用现有技术,在此不再详述。

以上是对本发明所提供方法进行的描述,下面结合实施例对本发明所提供的装置进行详细描述。

图8为本发明实施例提供的一装置结构图,该装置设置于视频发送端,用于实现上述方法实施例中视频发送端的功能。如图8所示,该装置可以包括:视频流产生单元01和存储处理单元02。其中各组成单元的主要功能如下:

视频流产生单元01负责针对各视角分别产生n路视频流,n路视频流采用相同的分片长度,各路视频流的同一分片之间依次存在预设时间差,该时间差小于分片长度,n为大于1的整数。

优选地,n路视频采用相同的码率,且各视频流的视频内容在时间上对齐。

作为全景视频的一种典型实现,一个分片包含一个gop,即以gop为单位进行分片。但本发明并不限于这种情况,对于一个分片包含多个gop的情况同样适用。

存储处理单元02负责将各视角的n路视频流存储于预设的存储空间,并将各视角的各路视频流的下载地址提供给视频接收端。具体地,各路视频流的下载地址可以以文件的形式提供给视频接收端,以便视频接收端存储于本地,并依据该文件中各视角的各路视频流的下载地址下载对应视频流。

图9为本发明实施例提供的另一装置结构图,该装置设置于视频接收端,用于实现上述方法实施例中视频接收端的功能。如图9所示,该装置可以包括:事件获取单元11、目标确定单元12、视频下载单元13和视频播放单元14。各组成单元的主要功能如下:

事件获取单元11负责获取触发视频流从第一视角切换至第二视角的事件。

若事件获取单元11接收到触发视频流从第一视角切换至第二视角的指令;或者,捕捉到触发视频流从第一视角切换至第二视角的手势;或者,检测到用户视角从第一视角变换为第二视角,则认为获取到触发视频流从第一视角切换至第二视角的事件。

目标确定单元12负责从第二视角的n路视频流中,确定分片起始时间在事件的发生时间t1之后且与t1的差值满足设定条件的分片。

视频下载单元13负责从目标确定单元12确定出的分片开始下载该分片所在的目标视频流。具体地,视频下载单元13可以依据视频发送端预先提供的各视角的视频流的下载地址,下载相应的视频流。视频发送端提供的各视角的视频流的下载地址可以以文件的形式预先存储于视频接收端。

视频播放单元14负责待第一视角的视频流播放至确定出的分片的分片起始时间t2后,播放下载的目标视频流。

其中第二视角的n路视频流采用相同的分片长度,且n路视频流的同一分片之间依次存在预设时间差,该时间差小于分片长度,n为大于1的整数。优选地,n路视频采用相同的码率,且各视频流的视频内容在时间上对齐。

上述分片包含一个gop,即以gop为单位进行分片。但本发明并不限于这种情况,对于一个分片包含多个gop的情况同样适用。另外,本发明对gop的长度并不加以限制,可以是1s,可以是2s,也可以是0.5s,通常采用1s。

图10示例性地示出了根据各种实施例的示例设备1000。设备1000可包括一个或多个处理器1002,系统控制逻辑1001耦合于至少一个处理器1002,非易失性存储器(non-volatilememory,nmv)/存储器1004耦合于系统控制逻辑1001,网络接口1006耦合于系统控制逻辑1001。

处理器1002可包括一个或多个单核处理器或多核处理器。处理器1002可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。

一个实施例中的系统控制逻辑1001,可包括任何适当的接口控制器,以提供到处理器1002中的至少一个的任何合适的接口,和/或提供到与系统控制逻辑1001通信的任何合适的设备或组件的任何合适的接口。

一个实施例中的系统控制逻辑1001,可包括一个或多个内存控制器,以提供到系统内存1003的接口。系统内存1003用来加载以及存储数据和/或指令。例如,对应设备1000,在一个实施例中,系统内存1003可包括任何合适的易失性存储器。

nvm/存储器1004可包括一个或多个有形的非暂时的计算机可读介质,用于存储数据和/或指令。例如,nvm/存储器1004可包括任何合适的非易失性存储装置,如一个或多个硬盘(harddiskdevice,hdd),一个或多个光盘(compactdisk,cd),和/或一个或多个数字通用盘(digitalversatiledisk,dvd)。

nvm/存储器1004可包括存储资源,该存储资源物理上是该系统所安装的或者可以被访问的设备的一部分,但不一定是设备的一部分。例如,nvm/存储器1004可经由网络接口1006被网络访问。

系统内存1003以及nvm/存储器1004可分别包括临时的或持久的指令1010的副本。指令1010可包括当由处理器1002中的至少一个执行时导致设备1000实现图5描述的方法的指令。各实施例中,指令1010或硬件、固件,和/或软件组件可另外地/可替换地被置于系统控制逻辑1001,网络接口1006和/或处理器1002。

网络接口1006可包括一个接收器来为设备1000提供无线接口来与一个或多个网络和/或任何合适的设备进行通信。网络接口1006可包括任何合适的硬件和/或固件。网络接口1006可包括多个天线来提供多输入多输出无线接口。在一个实施例中,网络接口1006可包括一个网络适配器、一个无线网络适配器、一个电话调制解调器,和/或无线调制解调器。

在一个实施例中,处理器1002中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装以形成系统级封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上以形成系统芯片。

设备1000可进一步包括输入/输出装置1005。输入/输出装置1005可包括用户接口旨在使用户与设备1000进行交互,可包括外围组件接口,其被设计为使得外围组件能够与系统交互,和/或,可包括传感器,旨在确定环境条件和/或有关设备1000的位置信息。

列举一个应用场景:

在vr直播或点播系统中,用户使用的诸如vr眼镜、vr头盔等设备在观看全景视频的过程中头部方向发生偏转,需要从第一视角切换至第二视角。则可以采用本发明实施例中所述的方式,从第二视角的n路视频流中,确定gop起始时间在所述事件的发生时间t1之后且距离该t1最近的gop所在的视频流,作为要切换到的目标视频流;从确定出的gop开始下载所述目标视频流;待第一视角的视频流播放至上述确定出的gop的起始时间t2后,播放下载的目标视频流。这种方式使得视角发生切换后,不必一定等到当前gop播放完毕才能够切换到第二视频上播放,从而尽可能减小视频流从第一视角切换至第二视角时的等待时间。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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