本发明涉及视频处理技术,更具体地,涉及一种vr视频下载方法及装置。
背景技术:
虚拟现实(vr)技术是一种创建和体验虚拟世界的计算机仿系统,例如,可以根据观察者头、眼和手的跟踪技术呈现相对应的三维实时图像。在基于网络的虚拟现实技术中,预先将全视角的视频数据存储在服务器上,然后将全视角的视频数据传送至诸如眼镜之类的显示装置上,根据观察者的观看位置将相应视角的视频数据显示在显示装置上。
然而,高分辨率的视频数据需要占据大量的传输带宽,并且需要显示装置具备强大的数据处理能力。由于数据传输带宽和显示装置处理能力的需求高,因此,现有的视频处理技术对网络和终端设置的要求高,并且难以实现高分辨率的实时图像显示。
在数据传输总量不变的情况下,如何通过网络预测实现最佳的传输效果,是业界一直致力解决的问题。
技术实现要素:
有鉴于此,本申请提供vr视频下载方法及装置,基于平均下载速度和设定码率进行下载选择,以达到传输优化的效果。
根据本发明的第一方面,提供一种vr视频下载方法,包括:
接收第一视频的播放请求;
计算平均下载速度;
根据所述平均下载速度从所述第一视频对应多个具有不同分辨率和码率的视频片段中选中多个第一视频片段;以及
根据所述多个第一视频片段确定所述下载链接;以及
根据下载链接下载所述多个视频片段。
优选地,还包括:在视频转码过程中生成分辨率与码率的映射表;以及通过检索所述映射表确定多个第一视频片段。
优选地,所述在视频转码过程中生成所述分辨率与码率的映射表包括:
定义多个分辨率等级,根据给定的目标分辨率计算所述多个分辨率等级下的多个分辨率;以及
针对所述给定的目标分辨率的目标码率,计算所述多个分辨率等级下的所述多个分辨率对应的码率。
优选地,所述定义多个分辨率等级,根据给定的目标分辨率计算所述多个分辨率等级下的多个分辨率包括:
根据下述方程式计算多个分辨率等级下的多个分辨率,
其中,n表示分辨率等级,r0为最大分辨率,
所述针对所述给定的目标分辨率的目标码率,计算所述多个分辨率等级下的所述多个分辨率对应的码率包括:
根据下述方程式计算所述多个分辨率等级下的所述多个分辨率对应的码率,
对于bitraten,
满足不等式:
其中,bitrate0为最大码率,bitraten,
优选地,所述播放请求中包括用户的视场角度,所述多个第一视频片段具有多个分辨率,所述用户的视场角度决定了所述多个第一视频片段的分辨率分布。
优选地,位于所述视场角度内的第一视频片段的分辨率大于位于所述视场角度之外的所述第一视频片段的分辨率。
优选地,所述平均下载速度和所述多个第一视频片段的分辨率分布正相关。
根据本发明的第二方面,提供一种vr视频下载装置,包括:
请求接收模块,用于接收第一视频的播放请求;
速度计算模块,用于计算平均下载速度;
片段获取模块,用于根据所述平均下载速度从所述第一视频对应多个具有不同分辨率和码率的视频片段中选中多个第一视频片段;以及
链接生成模块,用于根据所述多个第一视频片段确定所述下载链接;以及
下载执行模块,用于根据下载链接下载所述多个视频片段。
优选地,还包括:映射表生成模块,用于在视频转码过程中生成分辨率与码率的映射表,则所述片段获取模块通过检索所述映射表确定多个第一视频片段。
优选地,所述映射表生成模块包括:
第一计算单元,用于定义多个分辨率等级,并根据给定的目标分辨率计算所述多个分辨率等级下的多个分辨率;以及
第二计算单元,用于根据所述给定的目标分辨率的目标码率,计算所述多个分辨率等级下的所述多个分辨率对应的码率。
本发明提供平均下载速度选择适当的分辨率和码率的视频片段用于下载。由于平均下载速度反映了当前的网络状况,分辨率反映了图像的精密度,码率反映了单位时间内传送的数据位数,将分辨率、码率和平均下载速度综合,能够以最优策略选择合适的视频片段,从而达到优化传输的效果。进一步地,根据用户当前的视场角度选择高分辨率和低分辨率的视频片段,在降低数据传输量的同时,不会影响到用户的观影需求。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是vr播放系统的网络示意图;
图2是适用于图1的vr播放系统的方法的流程图;
图3示出了本发明实施例的vr视频下载方法的流程图;
图4示出了本发明实施例的生成分辨率和码率的映射表的的具体流程图;
图5示出了本发明实施例的vr视频下载装置的结构图。
具体实施方式
以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
图1是vr播放系统的网络示意图。设备网络10包括通过网络110耦接的服务器100和显示设备120以及vr设备。服务器100可以例如独立的计算机服务器或者服务器集群,服务器100用于存储各种视频数据以及存储处理这些视频数据的各种应用程序。服务器100上例如实时运行着各种守护进程,一方面,用于处理服务器100上的各种视频数据,另一方面,用于响应vr设备和显示设备120的各种请求。网络110可以是任意(一个或多个)网络,例如因特网、局域网和物联网等。显示设备120例如是一个具有独立显示屏的和一定处理能力的计算机设备,可以是:个人计算机、膝上型计算机、计算机工作站、服务器、大型主机计算机、掌上电脑、个人数字助理、智能手机、智能电器、游戏控制台、ipad/iphone、视频播放器、dvd刻录机/播放器、电视机、家庭娱乐系统或任意其它合适的计算设备。显示设备120可以存储vr播放器软件,当vr播放器启动后,播放器向服务器100请求和接收各种视频数据,并且将下载到显示设备端的视频数据在播放器内进行渲染播放。在本例中,vr设备130是一个外接式头显设备,可以和显示设备120以及服务器100进行各种交互,通过信号传递向显示设备120和/或服务器100传递用户的一些相关信息,例如,用户当前的视场角度,用户头盔位置的改变、眼睛视线的变化等等,显示设备120可以根据这些信息能够灵活处理当前播放的视频数据。在一些实施例里,当用户头盔位置发生改变时,显示设备120判断用户的核心观影区域发生改变,并在核心观影区域播放高分辨率的视频数据。
在上述实施例,vr设备130是一个外接式头显设备,但是本领域的技术人员可以理解到,vr设备130不仅限于此,vr设备130还可以一体式头显设备。一体式头显设备本身具有显示屏的功能,因此可以不需要外部的显示设备,例如本例中,如果采用一体式头显设备,即可以省略显示120。此时,一体式头显设备承担了从服务器100上获取视频数据以及播放的工作,同时,一体式头显设备检测到用户当前的一些观影角度变化信息并基于这些观影角度变化信息调整播放工作。
图2是适用于图1的vr播放系统的方法的流程图。该方法包括以下步骤。
在步骤s10中,服务器端进行源视频数据处理。
在步骤s20中,显示设备端基于和vr设备的交互获得用户的一些相关信息。
在步骤s30中,显示设备端根据这些相关信息向服务器端请求视频数据以及接收视频数据。
在步骤s40中,显示设备端基于接收到的视频数据进行渲染处理。
其中,步骤s30完成视频数据的下载步骤。进一步地,本发明提供一种vr视频下载方法,通过计算平均下载速度预测网络状况,根据码率生成下载链接,以优化vr视频流的传输。
图3示出了本发明实施例的vr视频下载方法的流程图。具体包括以下步骤。
在步骤s100中,接收第一视频的播放请求。
本步骤中的第一视频指一个具体视频。
在步骤s200中,计算平均下载速度。
通过统计下载数据量和下载时间,计算平均下载速度。一般地,实时计算一次平均下载速度,例如,在第一视频的数据开始下载之前,计算一次平均下载速度,或者,在第一视频的每个视频片段的开始下载之前,计算一次平均下载速度。
在步骤s300中,根据平均下载速度从第一视频对应多个具有不同分辨率和码率的视频片段中选中多个第一视频片段。
在服务端的源视频数据处理步骤中,可以将一个完整的源vr视频处理成多个视频片段,例如,对于源视频进行时间和/或空间上的切割获得多个视频片段。这些视频片段具有不同的分辨率和码率。当请求该视频时,可以在不同的分辨率和码率的视频片段中选择出多个第一视频片段。由此,在本步骤中,根据平均下载速度选择合适的分辨率和码率的视频片段作为第一视频片段。例如,在平均下载速度较高时,选择分辨率和码率较大的视频片段作为第一视频片段,在平均下载速度较低时,选择分辨率和码率较小的视频片段作为第一视频片段。
在步骤s400中,根据多个第一视频片段确定下载链接。
在本步骤中,根据预定的下载策略,确定第一视频的下载链接,该下载链接中指明待下载的第一视频片段以及下载顺序。例如,将需要下载的第一视频片段按照码率从小到大的顺序排序进行下载。但本发明不仅限于此。本领域的技术人员可以根据码率和平均下载速度确定下载策略,以达到优化视频传输的目的。
在步骤s500中,根据下载链接下载多个第一视频片段。
在本步骤中,执行所述多个第一视频片段的下载操作。
在本实施例中,针对平均速度选择待下载的视频片段并完成下载,以达到优化视频传输的目的。
在一个可选的实施例中,vr视频下载方法还包括:生成分辨率和码率的映射表,并通过检索映射表确定多个第一视频片段。该映射表定义了多个分辨率和码率的对应关系,检索该映射表,可获得视频片段的设定码率,根据平均下载速度和设定码率确定所述多个第一视频片
段。进一步地,该映射表在视频转码阶段生成。在视频转码过程中,将原始视频数据处理成多个视频片段,例如处理成需要叠加播放的基础视频和增强视频。在此过程中,将每个视频片段的码率记录下来,汇总成分辨率和码率的映射表。
在一个优选的实施例中,播放请求中包括用户的视场角度,多个第一视频片段具有多个分辨率,用户的视场角度决定了多个第一视频片段的分辨率分布。例如,假设全景360度的画面,用户的视场角度为135度,和视场角度相对的画面上播放高分辨率的视频片段,以及位于视场角度之外的画面上播放低分辨率的视频片段。通过减少高分辨率的视频片段的下载,以降低数据下载量,达到优化传输的效果。用户的视场角度可以通过头显设备上的陀螺仪参数获得。
图4示出了本发明实施例的在视频转码阶段,生成分辨率和码率的映射表的的具体流程图。
在步骤s1001中,定义多个分辨率等级,根据给定的目标分辨率计算多个分辨率等级下的多个分辨率。
在步骤s1002中,针对给定的目标分辨率的目标码率,计算多个分辨率等级下的多个分辨率对应的码率。
在步骤s1003中,根据对应的分辨率和码率进行转码,以生成视频数据的多个分辨率和码率的视频片段。
对于本实施例,通过下述例子加以理解。
假设分辨率等级定义为n,给定的目标分辨率为r0,给定的目标分辨率的目标码率为bitrate0。对于分辨率等级为1,2,……,n-1级的分辨率,可以通过rn和rn+1之间的比例关系计算获得,最终能够得到所有分辨率等级下的分辨率:r1,……,rn-1。对于码率,可以通过bitraten和bitraten+1之间的比例关系得到所有码率,从而获得目标分辨率和码率的映射表。最终在视频数据的转码阶段,使用对应的目标分辨率和码率进行转码,获得视频数据的视频片段。
本领域的技术人员可以理解,获得分辨率和码率的映射表的方式不限于此,其他方式,例如可以根据经验设定分辨率和码率之间的映射表。
在下面的示例中,给出了分辨率和码率的数学方程式以及数学方程式的推导过程。在本示例中,假设视频数据被处理成多个分辨率等级下的对应分辨率的视频数据,且对应分辨率的视频数据包括基础视频和增强视频,播放时,叠加基础视频和增强视频。表格1给出了数学方程式中的变量定义。
表格1
不失一般性我们定义最大分辨率为r0,由用户给定bitrate0,
对应码率满足以下公式关系:
对于bitraten,
有不等式
代入上式,
所以当用户输入bitrate0,
图5示出了本发明实施例的vr视频下载装置的结构图。该vr视频下载装置500包括请求接收模块501、速度计算模块502、片段获取模块503、链接生成模块504和下载执行模块505。
请求接收模块501用于接收第一视频的播放请求。播放请求来自显示设备或vr设备。播放请求中可以包含当前播放的视频名称以及用户当前的视场角度。这里第一视频用于泛指一个具体视频。
速度计算模块502用于计算平均下载速度。通过累计下载量和下载时间计算平均下载速度。
片段获取模块503用于根据平均下载速度从第一视频对应多个具有不同分辨率和码率的视频片段中选中多个第一视频片段。视频转码阶段生成第一视频的多个具有不同分辨率和码率的视频片段,片段获取模块503根据当前的平均下载速度选中其中的视频片段用于下载。一般地,下载策略设定为在平均下载速度较低的时候选择低码率和分辨率的视频片段用于下载,在平均下载速度较高时,选择高码率和分辨率的视频片段用于下载。
链接生成模块504用于根据多个第一视频片段确定下载链接。具体包括根据预定的下载策略确定视频片段的下载方式以及下载顺序,例如,先下载分辨率高的视频片段后下载分辨率低的视频片段。
下载执行模块505用于根据下载链接下载多个视频片段。即按照链接生成模块505输出的下载链接执行下载操作。
优选地,上述vr视频下载装置还包括:映射表生成模块,用于在根据视频数据生成多个视频片段的过程中,生成分辨率与码率的映射表。所述映射表生成模块包括:第一计算单元,用于定义多个分辨率等级,并根据给定的目标分辨率计算多个分辨率等级下的多个分辨率;第二计算单元,用于针对给定的目标分辨率的目标码率,计算多个分辨率等级下的多个分辨率对应的码率。
在一个优选的实施例中,播放请求中包括用户的视场角度,多个第一视频片段具有多个分辨率,用户的视场角度决定了多个第一视频片段的分辨率分布。
在上述实施例中,通过平均下载速度确定待下载的视频片段,能够达到减少数据下载量,优化传输的目的。应该指出的是,在vr视频播放过程中需要不断地下载视频数据,由此,可以不断地根据当前的平均下载速度选择合适的分辨率和码率的视频片段用于下载,通过动态选择实现视频传输优化。
本发明实施例虽然以较佳实施例公开如上,但其并不是用来限定权利要求,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。