掌桥专利:专业的专利平台
掌桥专利
首页

一种基于边缘计算的全景视频优化传输方法和系统

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及下一代互联网技术领域,尤其涉及的是一种基于边缘计算的全景视频优化传输方法和系统。

背景技术

全景视频是一种允许用户在三维空间的虚拟环境中进行沉浸式体验的新型媒体交互手段,相比于传统视频仅支持三个观看自由度,全景视频还允许用户自行改变偏航角、翻滚角、俯仰角三类观看角度,共计提供了六个自由度。用户在观看全景视频时,只需佩戴头戴式显示设备并转动头部,调整观测视口的定位和观看视频的角度,就可以达到自由审视全景视频中每一处细节的目的,具有极佳的沉浸式体验感。随着虚拟现实领域的逐步发展和网络计算技术的不断进步,近年来制作和使用全景视频的用户数量都得到了迅猛的增长,YouTube、Facebook和IQIYI等视频提供商也纷纷组建专业团队针对全景视频的研发和推广倾注心力。全景视频逼真的观感和沉浸式的体验使得包括教育、体育、全息娱乐和沉浸式训练等在内的诸多应用领域开始尝试这种新兴的信息交互方式。

然而,由于全景视频的全向传输性,其极其宽广的观测角度使得全景视频的分辨率高居不下,每一帧画面所需传输的数据量是传统视频的4-5倍。根据华为iLab的VR大数据报告,当前主流视频播放平台支持的全景视频的分辨率都在720P以上,部分平台甚至只提供2K和4K分辨率的全景视频,这导致全景视频的平均码率高于2Mbps,如果用户要获取更具沉浸感的体验,就需要提供更高的宽带。此外,全景视频的良好体验还需要极低的时延,行业中的主流观点认为当沉浸式视频的播放时延高于20ms时,用户会产生极强的眩晕感。简而言之,为了保证全景视频使用者在观看视频时的高码率和低延时,就不可避免地要对用户的带宽容量和传输稳定性提出极为苛刻的要求,这也是当下全景视频行业亟需解决的最主要矛盾。

因此,现有技术还有待改进和发展。

发明内容

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于边缘计算的全景视频优化传输方法和系统,旨在解决现有技术中全景视频传输方法缓存效率低、数据传输压力大以及带宽利用率低导致用户端的沉浸式观看体验差的问题。

本发明解决问题所采用的技术方案如下:

第一方面,本发明实施例提供一种基于边缘计算的全景视频优化传输方法,其中,所述方法包括:

获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;

获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;

当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;其中,所述缓存服务器执行Tile切片文件存储与替换、命中查询和URL转发的边缘计算,Tile切片文件存储与替换采用预设的缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件,并将缓存服务器中缓存优先级最低的Tile切片文件删除;

通过所述用户端中的视频下载模块下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频。

在一种实现方式中,所述历史网络信息包括用户端的缓冲区长度、预先设定的最短缓冲区长度、预先设定的最长缓冲区长度、实时吞吐量、历史吞吐量数据集合、预先设定的历史吞吐量数据集合长度阈值、码率版本集合;所述基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本包括:

若用户端的缓冲区长度大于预先设定的最长缓冲区长度,则执行空操作;

若用户端的缓冲区长度小于预先设定的最短缓冲区长度,则将所述码率版本集合中第1个码率版本作为Tile的码率版本;

若用户端的缓冲区长度大于或者等于预先设定的最短缓冲区长度且用户端的缓冲区长度小于或等于预先设定的最长缓冲区长度,则执行第一操作;

返回Tile的码率版本。

在一种实现方式中,所述若用户端的缓冲区长度大于或者等于预先设定的最短缓冲区长度且用户端的缓冲区长度小于或等于预先设定的最长缓冲区长度,则执行第一操作包括:

若所述历史吞吐量数据集合的长度小于所述历史吞吐量数据集合长度阈值,则将所述实时吞吐量添加到所述历史吞吐量数据集合中;

若所述历史吞吐量数据集合的长度大于或者等于所述历史吞吐量数据集合长度阈值,则将所述实时吞吐量添加到所述历史吞吐量数据集合,并将所述历史吞吐量数据集合中第一个元素删除。

在一种实现方式中,所述若用户端的缓冲区长度大于或者等于预先设定的最短缓冲区长度且用户端的缓冲区长度小于或等于预先设定的最长缓冲区长度,则执行第一操作还包括:

获取预设的倒数平均数并初始化为0;

获取预设的第一下标i,并将所述第一下标i初始化为0;

当所述第一下标i小于所述历史吞吐量数据集合长度阈值时,将所述历史吞吐量数据集合中第i个元素的历史吞吐量数据取倒数,得到第一倒数值,接着将所述第一倒数值加上所述倒数平均数,得到更新的倒数平均数,并将所述第一下标i自累加1;

当所述第一下标i等于所述历史吞吐量数据集合长度阈值时,将更新的倒数平均数除以所述历史吞吐量数据集合长度阈值,得到商值;

将所述商值取倒数,得到第二倒数值,将所述第二倒数值作为目标倒数平均数;

获取预设的第二下标h,并将所述第二下标h初始化为0;

计算所述码率版本集合的长度;

当所述第二下标h小于所述码率版本集合的长度时,执行第二操作,并将所述第二下标h自累加1。

在一种实现方式中,所述当所述第二下标h小于所述码率版本集合的长度时,执行第二操作包括:

若所述目标倒数平均数小于所述码率版本集合中第h个元素的值,则执行第三操作。

在一种实现方式中,所述若所述目标倒数平均数小于所述码率版本集合中第h个元素的值,则执行第三操作包括:

将所述第二下标h减去1,得到中间第二下标g;

若所述中间第二下标g小于0,则将所述码率版本集合中第0个元素的码率版本作为Tile的码率版本;

若所述中间第二下标g大于或者等于0,则将所述码率版本集合中第g个元素的码率版本作为Tile的码率版本。

在一种实现方式中,所述当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器包括:

当所述缓存服务器接收携带所述URL地址的请求且所述缓存服务器中具有所述URL地址对应的待传输全景视频时,将所述缓存服务器作为目标服务器;

当所述缓存服务器接收携带所述URL地址的请求且所述缓存服务器中不具有所述URL地址对应的待传输全景视频时,将源服务器作为目标服务器。

在一种实现方式中,所述缓存替换算法的过程包括:

通过所述用户端中的性能计算模块对下载数据进行分析,得到全景视频的服务质量评价属性信息;

根据所述服务质量评价属性信息获取缓存替换指数;

获取码率版本集合的长度、Tile的码率版本号k、待传输的全景视频名称、Tile切片名称、各个码率版本的Tile切片文件、源服务器的IP地址和源服务器的IP端口号;

获取并初始化第三下标m为码率版本集合的长度;

将所述Tile的码率版本号加1,得到中间码率版本号;

通过所述缓存服务器接收到携带所述URL地址的请求后,当所述第三下标m小于所述中间码率版本号时,执行第四操作,并将所述第三下标m进行自累加;

若码率版本号为k的Tile切片文件属于预设的数据库,则将码率版本号为k的Tile切片文件作为目标Tile文件;

调用预设的重定位函数,下载码率版本号为k的Tile切片文件;

将码率版本号为k的Tile切片文件添加到预设的数据库;

通过预设的缓存淘汰检查函数确定缓存服务器当前的缓存容量状态;

当所述缓存容量状态大于或者等于预设的缓存容量阈值时,将最小的缓存替换指数对应的Tile切片文件删除;

将码率版本号为k的Tile切片文件作为目标Tile文件;

返回目标Tile文件。

在一种实现方式中,所述服务质量评价属性信息包括Tile切片文件的请求次数、缓存替换指数衰减因子和Tile切片文件的服务质量。

在一种实现方式中,所述当所述第三下标m小于所述中间码率版本号时,执行第四操作包括:

若码率版本号为m的Tile切片文件属于预设的数据库,则将码率版本号为m的Tile切片文件作为目标Tile文件。

第二方面,本发明实施例还提供一种基于边缘计算的全景视频优化传输系统,其中,所述系统包括:Tile请求序号处理模块,用于获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;

URL地址确定模块,用于获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;

Tile切片文件确定模块,用于当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;其中,所述缓存服务器执行Tile切片文件存储与替换、命中查询和URL转发的边缘计算,Tile切片文件存储与替换采用预设的缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件,并将缓存服务器中缓存优先级最低的Tile切片文件删除;

全景视频处理模块,用于通过所述用户端中的视频下载模块下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频。

第三方面,本发明实施例还提供一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的基于边缘计算的全景视频优化传输方法。

第四方面,本发明实施例还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述中任意一项所述的基于边缘计算的全景视频优化传输方法。

本发明的有益效果:本发明实施例首先获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;然后获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;接着当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;其中,所述缓存服务器执行Tile切片文件存储与替换、命中查询和URL转发的边缘计算,Tile切片文件存储与替换采用预设的缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件,并将缓存服务器中缓存优先级最低的Tile切片文件删除;最后通过所述用户端下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频;可见,本发明实施例选用Tile切片作为缓存粒度,提高了缓存效用的灵活性,降低了冗余信息的存储比例,在有限的缓存资源中实现了更高的缓存收益;通过基于吞吐量和缓冲区的码率自适应算法进行决策处理得到Tile的码率版本,有效降低数据传输压力,也能保证用户的观看体验质量;结合历史信息对未来的网络吞吐量、视频请求调度和视频码率版本进行较为精确的预测,从而利用闲暇时段的带宽资源,达到削峰填谷的带宽利用效能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于边缘计算的全景视频优化传输方法流程示意图。

图2为本发明实施例提供的基于边缘计算的全景视频优化传输架构图。

图3为本发明实施例提供的用户端的全景视频播放器框架图。

图4为本发明实施例提供的全景视频播放器运行流程图。

图5为本发明实施例提供的基于吞吐量和缓冲区的码率自适应算法示意图。

图6为本发明实施例提供的客户端中流媒体的生命周期和相关网络事件示意图。

图7为本发明实施例提供的Nginx+Django+Redis+uWSGI体系架构图。

图8为本发明实施例提供的ECAS缓存替换算法示意图。

图9为本发明实施例提供的基于边缘计算的全景视频优化传输系统的原理框图。

图10为本发明实施例提供的智能终端的内部结构原理框图。

具体实施方式

本发明公开了基于边缘计算的全景视频优化传输方法和系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

由于现有技术中,全景视频使用者在观看视频时的高码率和低延时,就不可避免地要对用户的带宽容量和传输稳定性提出极为苛刻的要求,但是现有的全景视频传输方法存在缓存效率低、数据传输压力高和带宽利用率低的问题,随着视频点播行业的快速发展和用户硬件设备的更新换代,人们对视频服务行业的要求也在迅速提高,如何为用户提供更加优质的体验是拓展行业市场的关键问题。在视频点播行业,确定用户视频点播主观体验的指标有很多,如视频码率、启动时延、缓冲时间、传输稳定性、视频平滑度等,但是用户端可提供的带宽资源是极其有限的。如何合理确定用户的观看体验指标,分配好有限的资源总量,提高缓存端的命中率以降低对回程链路的负载,从而完成全景视频传输框架的革新与优化,最大可能地提高用户端的沉浸式观看体验是函待解决的。

为了解决现有技术的问题,本实施例提供了一种基于边缘计算的全景视频优化传输方法,上述方法选用Tile切片作为缓存粒度,提高了缓存效用的灵活性,降低了冗余信息的存储比例,在有限的缓存资源中实现了更高的缓存收益;通过基于吞吐量和缓冲区的码率自适应算法进行决策处理得到Tile的码率版本,有效降低数据传输压力,也能保证用户的观看体验质量;结合历史信息对未来的网络吞吐量、视频请求调度和视频码率版本进行较为精确的预测,从而利用闲暇时段的带宽资源,达到削峰填谷的带宽利用效能。具体实施时,首先获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;然后获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;接着当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;其中,所述缓存服务器执行Tile切片文件存储与替换、命中查询和URL转发的边缘计算,Tile切片文件存储与替换采用预设的缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件,并将缓存服务器中缓存优先级最低的Tile切片文件删除;最后通过所述用户端下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频。

示例性方法

本实施例提供一种基于边缘计算的全景视频优化传输方法,该方法可以应用于下一代互联网的智能终端。具体如图1所示,所述方法包括:

步骤S100、获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;

具体地,全景视频的传输方法是基于全景视频传输架构而进行的。基于边缘计算的全景视频优化传输架构,其结构框架如图2所示。首先将经预处理后的全景视频文件存储于源服务器中,每当用户端需要发出视频请求时,会先通过无线接入网络与缓存服务器取得联系,再根据请求命中情况选择性地联系源服务器,实现“服务器端—边缘缓存端—客户端”三端通信架构。对于用户端而言,无论是缓存服务器成功命中而直接从缓存服务器中完成数据拉取,还是缓存服务器未命中而导致HTTP请求被重定位至远端的视频源服务器,其内部全景视频播放器的架构都是一致的。如图3所示,图中列出了基于边缘计算的全景视频优化传输架构的用户端中发挥功能的主要模块,包括带宽估计模块、缓冲监控模块、MPD解析模块、码率自适应请求模块、视频下载模块、性能计算模块、HMD传感数据集解析模块和Tile请求控制器,全景视频播放器通过请求MPD文件得到视频文件路径,请求Tile切片文件完成视频的播放。在基于DASH协议的多Tile全景视频传输系统中,如图3中模块分工协作,共同完成数据传输,且支持在同一视口内同时播放不同码率版本的Tile切片,如图4展示了全景视频播放器的运行流程。总体而言,用户端的所有模块可以按照协作情况划分为三部分,第一部分是由HMD传感数据集解析模块和Tile请求控制器构成的,它们负责提出请求;第二部分是由带宽估计模块、缓冲监控模块、MPD解析模块、码率自适应模块和HTTP请求发送模块构成的,它们负责细化请求;第三部分是由视频下载模块、性能计算模块、视频处理模块和视频播放模块构成的,它们负责处理响应。用户端的全景视频播放器,不仅要实现实时监控网络带宽并合理分配资源、自适应地请求不同码率版本的视频文件的功能,还需要根据视频的下载播放情况,实时计算用户体验质量和缓存命中率,为后续的性能评估做好准备。

在本实施例中,Segment代指视频片段,目前的视频传输技术会将一整个视频从时间维度上划分出很多段,这样细粒度的文件有利于传输和码率的调控。例如一个视频60s,可以被分为30个2s的segment。Segment请求为发送视频片段的请求指令;系统在执行时会有多个Segment请求依次循环执行,对于每个Segment请求,其执行的步骤是相同的,因此,得到若干Segment请求,针对每个Segment请求,如图4所示,通过用户端的HMD传感数据集解析模块对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器,这个过程为现有技术,在此不再赘述。HMD(head mountdisplay)为头戴式显示器。在本实施例中,Tile为切片;Tile请求数据集为Tile请求指令中包含的数据集合。

Tile请求控制器得到Tile请求序号后,就可以执行如图1所示的如下步骤:S200、获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;

具体地,获取Tile请求控制器中的所述Tile请求序号,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本,相应的,所述基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本包括如下步骤:若用户端的缓冲区长度大于预先设定的最长缓冲区长度,则执行空操作;若用户端的缓冲区长度小于预先设定的最短缓冲区长度,则将所述码率版本集合中第1个码率版本作为Tile的码率版本;若用户端的缓冲区长度大于或者等于预先设定的最短缓冲区长度且用户端的缓冲区长度小于或等于预先设定的最长缓冲区长度,则执行第一操作;返回Tile的码率版本。

具体地,传统的码率自适应技术主要分为基于吞吐量的自适应技术和基于缓冲区的自适应技术,然而,这两种方案都有其自身的局限性。例如,在瞬时吞吐量波动较大的网络环境中,会出现吞吐量长期处于低值后突然增大的情况,这时如果采用基于吞吐量的自适应技术,则会根据较大的瞬时吞吐量选取高码率的视频质量版本,但是由于之前客户端长期处于带宽资源匮乏的情况,用户的缓冲区已经降至很短甚至归零,这样的决策显然是不合理的;吞吐量长期处于高值后突然降低的情况也如出一辙,用户的缓冲区已经很长但基于吞吐量的自适应技术会做出请求低码率视频质量版本的决策。除此之外,仅采用基于缓冲区的自适应技术也只会考虑缓冲区长度这个单一因素,在吞吐量波动时无法充分使用网络资源,导致部分带宽被浪费。本发明将结合两种方案各自的优势,使用基于吞吐量和缓冲区的码率自适应算法。在本实施例中,所述历史网络信息(也即基于吞吐量和缓冲区的码率自适应算法的输入参数)包括用户端的缓冲区长度B、预先设定的最短缓冲区长度B

最后,在可供选取的码率版本集合bitrateSet中选取低于调和平均数harmonicMean的最高的码率版本bitrateSet[i-1]作为下一Segment下载时选取的Tile的码率版本selectBitrate,以确保Segment下载的时间小于该Segment成功下载后能够提供的缓冲区的时长,进而支持视频的连续播放。基于吞吐量和缓冲区的码率自适应算法的优势在于它在对码率版本进行自适应决策时同时考虑了吞吐量和缓冲区长度,考虑到的情况更加丰富,增强了在复杂波动网络环境中的鲁棒性。得到Tile的码率版本后,由MPD解析模块解析出Tile的码率版本对应的URL地址,最后通过HTTP请求模块向缓存服务器发送携带所述URL地址的请求;其中,URL地址为统一资源定位符地址,其目的是锁定后续的Tile文件。

通过HTTP请求模块向缓存服务器发送携带所述URL地址的请求后,就可以执行如图1所示的如下步骤:S300、当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;其中,所述缓存服务器执行Tile切片文件存储与替换、命中查询和URL转发的边缘计算,Tile切片文件存储与替换采用预设的缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件,并将缓存服务器中缓存优先级最低的Tile切片文件删除;

在本实施例中,缓存服务器的架构如图6所示,缓存服务器需要完成Tile存储、Tile替换、命中查询和URL转发等边缘计算,其中Tile切片的存储替换是最核心的功能,本发明使用Nginx+Django+Redis+uWSGI的体系架构来实现缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件后,通过checkEviction()函数检查缓存服务器当前的缓存容量是否超过事先规定的缓存上限,如果当前的缓存容量超过事先规定的缓存上限,将缓存服务器中缓存优先级最低的Tile切片文件删除,具体算法见后续详细步骤。其中,Django是一个由Python编写的开源web应用框架,具有强大的服务器设计功能,同时可以结合Redis数据库实现复杂的数据调用。Redis是一个可用于存储键值对的高性能数据库,能够记录用户的历史请求信息,且支持哈希(Hash)类型的键值操作,即同一个关键字(Key)可以映射多个不同的字段(Field)和值(Value),便于在数据库中同时存储Tile切片的缓存路径和QoE、使用频率、空闲时间等信息。

然而,由于Nginx没有解析动态语言的能力,Django-redis框架无法直接部署在Nginx上。如果用户的请求是动态的,Nginx就需要通过配置文件,首先将动态请求转发给uWSGI(uWSGI是一种基于Python语言的web服务器);uWSGI对接收到的命令进行处理并转发给wsgi(wsgi是一种支持Python语言进行请求解析的协议),从而实现web服务器与程序之间的交互;然后,wsgi使用Python对请求进行解析,调用Django-redis框架下的相应函数对请求进行处理,再将函数返回值传给wsgi;最后,wsgi将返回值传输给uWSGI服务器,再逐级返回给Nginx和用户。

在一种实现方式中,所述当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器包括如下步骤:当所述缓存服务器接收携带所述URL地址的请求且所述缓存服务器中具有所述URL地址对应的待传输全景视频时,将所述缓存服务器作为目标服务器;当所述缓存服务器接收携带所述URL地址的请求且所述缓存服务器中不具有所述URL地址对应的待传输全景视频时,将源服务器作为目标服务器。然后将携带所述URL地址的请求发送至所述目标服务器,接着在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,最后通过视频传输模块将所述Tile切片文件发送至所述用户端。

在本实施例中,当所述缓存服务器接收携带所述URL地址的请求的过程中,若缓存服务器尚未存储该文件,则会将请求转发至源服务器(也即视频源服务器),待取得合适码率版本的文件后将其交付给用户端,同时将该文件缓存以待下次请求;若缓存服务器尚已存储该文件,则直接将相应文件反馈给用户,并不会向视频源服务器发出请求。然而,问题的关键在于视频源服务器作为内容提供商,其存储的视频总量是非常庞大的,倘若在架设缓存服务器时都以这么大的缓存容量为标准,成本会非常高昂。因此,所述缓存服务器基于预设的缓存替换算法进行全景视频的缓存替换,也即缓存服务器端需要结合全景视频数据传输的特征设置有缓存替换算法,定期进行缓存清理与替换,使用有限的缓存容量尽可能地缓存收益高的Tile切片,从而提高命中率并降低架设成本。

在一种实现方式中,所述缓存替换算法为ECAS缓存替换算法,所述缓存替换算法的过程包括如下步骤:通过所述用户端中的性能计算模块对下载数据进行分析,得到全景视频的服务质量评价属性信息;根据所述服务质量评价属性信息获取缓存替换指数;获取码率版本集合的长度、Tile的码率版本号k、待传输的全景视频名称、Tile切片名称、各个码率版本的Tile切片文件、源服务器的IP地址和源服务器的IP端口号;获取并初始化第三下标m为码率版本集合的长度;将所述Tile的码率版本号加1,得到中间码率版本号;所述缓存服务器接收到携带所述URL地址的请求后,当所述第三下标m小于所述中间码率版本号时,若码率版本号为m的Tile切片文件属于预设的数据库,则将码率版本号为m的Tile切片文件作为目标Tile文件,并将所述第三下标m进行自累加;若码率版本号为k的Tile切片文件属于预设的数据库,则将码率版本号为k的Tile切片文件作为目标Tile文件;调用预设的重定位函数,下载码率版本号为k的Tile切片文件;将码率版本号为k的Tile切片文件添加到预设的数据库;通过预设的缓存淘汰检查函数确定缓存服务器当前的缓存容量状态;当所述缓存容量状态大于或者等于预设的缓存容量阈值时,将最小的缓存替换指数对应的Tile切片文件删除;将码率版本号为k的Tile切片文件作为目标Tile文件;返回目标Tile文件。

具体地,先定义相关参数,在本发明中,共计F个360°全景视频的集合

在本发明的全景视频播放器中,QoE的计算主要考虑以下几个视频质量指标(也即服务质量评价属性信息):(1)视口内总质量:由于在全景视频中,只有在用户观测视口中的Tile切片才会出现在用户的视野里,因此视口内部所有Tile切片的总体质量直接决定了视频观感。对于Tile切片

在用户u的视口中,固定位置Tile切片的质量版本是确定的,但质量不一定,例如两个tile都是level-5的版本,但画面的光亮、运动适量等参数会影响具体的质量,因此质量会有波动(在一定范围内波动),即在码率版本集合κ中只会选取一个引入计算,使用下式来表明这一约束。

(2)启动延时和重缓冲延时:如图7所示,全景视频播放器在整个生命周期中会经历连接、启动、播放、暂停、缓冲、停止等多个状态,这些状态会受到用户指令和网络事件的影响而相互切换,图四显示了客户端中流媒体的生命周期和相关网络事件。

在用户请求视频后,客户端会与服务器建立流媒体传输的连接,此时的缓冲区长度B=0,当缓冲不断积累达到B

(3)视频质量的平滑度:由于在网络传输的过程中使用了基于吞吐量和缓冲区的码率自适应算法,因此在网络带宽大幅度波动的情况下,选取的码率版本也会随之连续波动,最终导致用户观看视口内视频质量频繁切换。这不仅会破坏用户的沉浸式观影体验,忽高忽低连续变换的视频清晰度还会引发头晕、恶心等不适反应,因此视频质量的平滑度在QoE评估中也是至关重要的一项因素。用户u的视频质量的平滑度

(4)视口质量的平滑度:除了视频质量的平滑度之外,用户体验质量还需考虑视口质量的平滑度。由于使用了基于Tile划分的数据流传输方案,视口中每一个Tile的传输都是独立的,因此在同一个视口中存在不同码率版本的Tile。倘若他们的质量差别很大,用户的沉浸式观影体验也同样会被破坏。用户u的视口质量的平滑度

其中,StdDev函数代表求取视口内所有Tile切片质量的方差(用户衡量视口内的平滑度),综合上述对视口内总质量、启动延时和重缓冲延时、视频质量的平滑度和视口质量的平滑度的分析,可以通过下式计算得到用户u当前视口的QoE,其中η

在本发明实施例中通过所述用户端中的性能计算模块对下载数据进行分析,得到全景视频的服务质量评价属性信息(在本实施例中为前述视频质量指标),所述服务质量评价属性信息包括Tile切片文件的请求次数、缓存替换指数衰减因子和Tile切片文件的服务质量;然后根据所述服务质量评价属性信息获取缓存替换指数。缓存替换指数确定过程如下:

为了实现Tile的缓存和独立传输,QoE驱动的边缘缓存替换策略ECAS需要将粒度从视口细化到Tile切片,因此还需要通过下式计算

其中,T

在缓存服务器中,计算得到的

从定性的角度考虑,无论是

综合上述的三个因素,

φ(s-t)=e

其中,S代表段落,t代表请求时刻,这里表示的含义是考虑多个历史时段的请求次数,离当前时刻越远的请求次数衰减越多,从而降低长久不被请求的tile切片的权重,最终计算得到的

然后获取码率版本集合的长度bitrateLength、Tile的码率版本号qualityLevelk、待传输的全景视频名称videoName、Tile切片名称m4sName、各个码率版本的Tile切片文件

图8展示了ECAS缓存替换算法中部分关键流程的伪代码,该算法需要输入可供选取的码率集合的长度bitrateLength,用户请求的Tile切片的码率版本qualityLevel k,全景视频的名称videoName,Tile切片的名称m4sName,源服务器的IP地址sourceIP和端口号sourcePort,最终输出服务器响应的Tile文件tileFile。

每当该算法接收到用户请求时,就会提取出请求中的URL地址并与相应的Redis数据库建立连接,以等待后续对缓存空间的函数指令。Redis数据库连通后,ECAS算法首先将在数据库中按照码率版本从高至低的顺序进行查询,确认缓存服务器中是否已经存储了同一视频、同一分段、同一位置的Tile切片的高码率版本,如果结果为真,则直接将查询到的最高码率版本的Tile切片反馈给用户作为响应。如果不存在已缓存的高码率版本,则查询该Tile切片的同码率版本是否已缓存,如果结果为真同样将缓存文件反馈给用户。

如果确认缓存服务器中不包含高于或等于当前Tile切片请求码率版本的文件,说明缓存未命中,需要调用URLRedirect(qualityLevel,videoName,m4sName,sourceIP,sourcePort)函数对URL进行重定位,去源服务器取回文件。

在源服务器成功响应后,Tile切片文件

ECAS算法调用了Redis数据库中的哈希(Hash)类型的键值操作,以每个Tile切片的m4s文件名为关键字Key,每个Key对应着“缓存存储路径”和“用户体验质量”两个Field字段及对应的值Value。每当接收到Tile请求时,根据Redis数据库中是否存在Key为Tile文件名的键值对即可判断请求是否成功命中,只需查询“缓存存储路径”字段对应的Value即可返回缓存文件;“用户体验质量”字段的作用是当缓存容量已满时,通过查询其对应着ECAS缓存替换指数的大小进行缓存替换,增大缓存收益。

得到Tile切片文件后,就可以执行如图1所示的如下步骤:S400、通过所述用户端下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频。

具体地,解码可以采用现有技术中解码技术,拼接是将多个下载图像融合在一起,将拼接缝隙缩小至最小以至于完全重合;渲染是将图像的三维光能传递处理转换为一个二维图像的过程。系统通过所述用户端中的视频下载模块下载数据后,完成对下载数据解码、拼接和渲染后就得到全景视频,该全景视频就可以通过用户端中的视频播放模块播放。

本发明的主要亮点包括:

1.本发明针对全景视频的传输框架进行设置,使用DASH传输协议和基于Tile划分的数据流传输方案,从时间和空间两个维度对全景视频的传输粒度进行优化,并提出了基于吞吐量和缓冲区相结合的码率自适应算法,帮助客户端实时监控网络参数,自适应地对视频码率版本做出最优决策。

2.本发明在全景视频传输框架中引入了边缘缓存服务器,对基于Tile传输的全景视频业务建立了QoE评价模型,并提出了QoE驱动的智能缓存替换策略ECAS。在ECAS方案中,我们利用QoE和用户历史请求频率计算缓存替换指数,通过将缓存收益高的全景视频内容存储在离用户较近的缓存端,不仅减少了发送到远端源服务器的请求数量,减轻了网络传输负载,还提高了用户视口内的整体画面质量。

3.本发明不仅减小了传输全景视频时回程链路的网络负载,降低网络延时,提高用户的观看体验,还可通过改Tile切片的大小进一步减少冗余数据的传输,并最大效用地利用有限的带宽资源和缓存空间。

4.与传统的缓存替换算法相比,本发明在各缓存容量梯度和齐夫分布指数下均能取得更高的缓存命中率、视频整体质量PSNR和用户体验质量QoE,展现了该系统对于提升全景视频传输框架性能的价值。

示例性设备

如图9中所示,本发明实施例提供一种基于边缘计算的全景视频优化传输系统,其中,所述系统包括Tile请求序号处理模块501、URL地址确定模块502、Tile切片文件确定模块503和全景视频处理模块504,其中:Tile请求序号处理模块501,用于获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;

URL地址确定模块502,用于获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;

Tile切片文件确定模块503,用于当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;其中,所述缓存服务器执行Tile切片文件存储与替换、命中查询和URL转发的边缘计算,Tile切片文件存储与替换采用预设的缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件,并将缓存服务器中缓存优先级最低的Tile切片文件删除;

全景视频处理模块504,用于通过所述用户端中的视频下载模块下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频。

本发明基于边缘计算的全景视频优化传输系统包括如下四个部分:

(1)视频源服务器和边缘缓存服务器之间的搭建,需要实现“用户端-边缘缓存服务器端-源服务器端”三级传输架构,要求实现在边缘缓存服务器请求命中时,边缘缓存服务器能够直接响应用户的请求;而在边缘缓存服务器请求未命中时,其能将用户的请求传递到视频源服务器,在收到视频响应结果后再将之转发给用户。

(2)在源服务器端,需要在空间和时间两个维度对全景视频文件进行处理。在空间维度上,利用FFmpeg编码器对全景视频进行空间维度的编码,需要将三维全景视频映射到二维平面,再对其进行切片(Tile)划分,从而实现全景视频在Tile粒度下的缓存、请求和响应。在时间维度上,还需要对划分后Tile粒度的全景视频文件进行自适应流媒体(DASH)协议流化处理,从而得到对应着不同码率版本的m4s和mpd文件,以实现DASH传输协议中的动态自适应流传输功能。

(3)在缓存服务器端,需要实现动态缓存替换算法,该算法能够根据视频文件的PSNR和SSIM、视频质量平滑度、视口质量平滑度、视频重缓冲时长以及用户请求次数与时间衰减程度等多种因素综合计算优化指标,并以其为标准实现缓存替换和切片预取,从而提高边缘缓存服务器的命中率和用户观测体验质量。

(4)在用户端,用户节点需要记录上一请求时段中缓存的命中信息、数据下载量、视频块的请求频次、视频片段的时间跨度、重缓存耗时、视频质量、平滑度等网络信息,用以计算当前视口(目前用户正在观看的部分)的用户体验质量(QoE),进而配合缓存端实现内容预取和缓存替换算法。同时,用户端还需要根据视频数据的下载量和下载时长预测下一时段的网络吞吐量,并完成自适应比特率选择(ABR)算法的实现,要求用户端能够自主选取下一阶段应当请求的视频比特率版本。

基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图10所示。该智能终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于边缘计算的全景视频优化传输方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该智能终端的温度传感器是预先在智能终端内部设置,用于检测内部设备的运行温度。

本领域技术人员可以理解,图10中的原理图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;

获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;

当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;其中,所述缓存服务器执行Tile切片文件存储与替换、命中查询和URL转发的边缘计算,Tile切片文件存储与替换采用预设的缓存替换算法,所述缓存替换算法存储从源服务器下载的Tile切片文件,并将缓存服务器中缓存优先级最低的Tile切片文件删除;

通过所述用户端下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

综上所述,本发明公开了一种基于边缘计算的全景视频优化传输方法和系统,方法包括:获取若干Segment请求,针对每个Segment请求,对待传输全景视频的Tile请求数据集进行分析,得到Tile请求序号,并将所述Tile请求序号传递给Tile请求控制器;获取Tile请求控制器中的所述Tile请求序号后,基于预设的吞吐量和缓冲区的码率自适应算法,根据预设的历史网络信息,对Tile的码率版本进行决策处理,得到目标码率版本;解析出所述目标码率版本对应的URL地址,向缓存服务器发送携带所述URL地址的请求;当所述缓存服务器接收携带所述URL地址的请求时,根据所述缓存服务器的命中状态确定目标服务器,并将携带所述URL地址的请求发送至所述目标服务器,在所述目标服务器预设的数据库中查找URL地址对应的Tile切片文件,将所述Tile切片文件发送至所述用户端;通过所述用户端下载数据,并对所述下载数据进行解码、拼接和渲染,得到全景视频,通过所述用户端播放所述全景视频。本发明实施例选用Tile切片作为缓存粒度,提高了缓存效用的灵活性,降低了冗余信息的存储比例,在有限的缓存资源中实现了更高的缓存收益;通过基于吞吐量和缓冲区的码率自适应算法进行决策处理得到Tile的码率版本,有效降低数据传输压力,也能保证用户的观看体验质量;结合历史信息对未来的网络吞吐量、视频请求调度和视频码率版本进行较为精确的预测,从而利用闲暇时段的带宽资源,达到削峰填谷的带宽利用效能。

基于上述实施例,本发明公开了一种基于边缘计算的全景视频优化传输方法,应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

相关技术
  • 一种基于边缘计算的全景视频优化传输方法和系统
  • 基于边缘计算和主动缓存的360度虚拟现实视频传输系统及参数优化方法
技术分类

06120114693117