基于联合请求速率的在线视频缓存管理方法和系统与流程

文档序号:17695128发布日期:2019-05-17 21:25阅读:137来源:国知局
基于联合请求速率的在线视频缓存管理方法和系统与流程

本发明涉及视频存储管理技术领域,尤其涉及一种基于视频块联合请求速率的在线视频缓存管理方法和系统。



背景技术:

随着在线观看视频的用户数量越来越多,以及可供下载的视频数量和尺寸的增大,视频服务器面临着巨大的文件存储压力和带宽开销。通过文件视频缓存装置来进行文件缓存是解决这一存储压力的常用方法。

在视频缓存领域,现有的缓存替换方法包括最早最近访问(leastrecentlyused,lru)策略和最少访问频率(leastfrequentlyused,lfu)策略。它们共同的做法都是假定用户将来的行为与过去的行为相似,进而根据用户对文件的历史访问记录,预测文件的访问模式;当缓存空间饱和时,这些缓存策略从缓存中优先剔除最不可能被访问的文件。其中,lru策略基于历史访问记录,从缓存空间中优先剔除最近访问时间最久的文件;其本质是基于文件的短期流行度预测该文件的访问模式,即,如果文件最近被访问过,那么其未来被访问的机率更高。lfu策略是根据历史访问记录,统计文件被请求的频率,优先从缓存空间中剔除访问频率最少的文件;其本质是基于长期文件的长期流行度预测的该文件的访问模式,即:如果文件在过去被访问了很多次,那么未来被访问的频率更高。

上述现有技术中的视频的缓存替换方法的缺点为:lru策略和lfu策略都是以文件的历史被访问信息代替文件未来被访问的模式,往往会出现判断错误,准确度有限。



技术实现要素:

本发明提供了基于视频块联合请求速率的在线视频缓存管理方法和系统,以提高缓存效率。

为了实现上述目的,本发明采取了如下技术方案。

本发明的一方面提供了一种基于联合请求速率的在线视频缓存管理方法,将视频按照时间顺序切分成多个字节数相同且连续的视频块,所述的方法包括:

s1:视频缓存装置接收到用户发来的某个视频块的请求后,从远程视频服务器中获取所述某个视频块,将所述某个视频块发送给所述用户,同时记录用户观看视频的历史数据信息;

s2:所述视频缓存装置根据用户观看视频的历史数据信息,计算出所述某个视频块以及所述视频缓存装置中的每个视频块的联合请求速率jrr,根据所述的jrr确定所述某个视频块的缓存方式。

进一步地,将视频按照时间顺序切分成多个字节数相同且连续的视频块,具体包括:

视频缓存装置将视频按照时间顺序分成多个字节数相同且连续的视频块,并在其内部的缓存空间中以视频块的方式对各个视频进行存储和管理,远程视频服务器以视频块的方式存储和管理所有视频,远程视频服务器通过通信网络与各个视频缓存装置进行数据通信;

视频缓存装置存储和管理用户观看视频的历史数据信息,所述的历史数据信息包括:用户观看进度文件和视频块访问计数文件,所述的用户观看进度文件用于记录每个在线用户最近一次观看的视频块和观看时刻,所述的视频块访问计数文件用于记录每个视频块截至每次被访问时累计的访问次数。

进一步地,视频缓存装置接收到用户发来的某个视频块的请求后,从远程视频服务器中获取所述某个视频块,将所述某个视频块发送给所述用户,包括:

视频缓存装置接收到用户发来的某个视频块的请求后,查找并比对视频缓存装置存储的视频块集合中是否存在所述的某个视频块,如果存在所述的某个视频块,则将所述的某个视频块返回给用户,同时更新所述某个视频块的历史数据信息;

如果缓存中不存在所述某个视频块,则视频缓存装置到远程视频服务器获取所述某个视频块,并将所述某个视频块返回给所述用户,然后顺序执行步骤s2。

进一步地,视频缓存装置根据用户观看视频的历史数据信息,计算出所述某个视频块以及所述视频缓存装置中的每个视频块的联合请求速率值jrr,根据所述的jrr确定所述某个视频块的缓存方式,包括:

所述视频缓存装置将其空闲的缓存空间与需要缓存的某个视频块本身的内存大小进行比较,当空闲的缓存空间大于或者等于所述某个视频块本身的内存时,则所述视频缓存装置将所述某个视频块存入空闲的缓存空间;

当空闲的缓存空间小于所述某个视频块本身的内存时,所述视频缓存装置根据其存储的各个视频块的历史数据信息,计算出其视频块集合中的每个视频块和所述某个视频块的jrr:

当jrr值最小的视频块不是所述某个视频块时,则从所述视频缓存装置的缓存空间中删除jrr值最小的视频块,并并在对应缓存空间上存储所述某个视频块;当jrr值最小的视频块是所述某个视频块时,则不在本地缓存中存储所述某个视频块。

进一步地,计算出所述某个视频块以及所述视频缓存装置中的每个视频块的联合请求速率值jrr,包括:

设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对γ中的每个视频块,给定一个固定长度w的观测窗口:

当视频块的开始播放时间大于或等于给定的观测窗口长度w,该视频块的观测窗口为在线用户观测窗口,所述的联合请求速率为在线用户联合请求速率:

给定当前时刻t,对任意一个视频块(v’,i’)∈γ且i’×tv'≥w,其中v’,i’分别是视频块对应的视频编号和视频块编号,tv'是每个视频块的播放时间长度,定义(v’,i’)的观测窗口为[i'×tv'-w,i’×tv');假定在该观测窗口范围内有在线用户正在观看某些视频块,这些具体观看位置形成一个集合ω={σk|i'×tv'-w≤σk<i'×tv',k=0,1,…,|ω|-1},其中tv'是每个视频块的播放时间长度,σk为一个视频观看位置,指的是有用户从视频开始位置0秒观看到一个当前观看位置σk秒,且σ0≤σ1≤…≤σ|ω|-1;

不失一般性,每个处于观看位置σk的用户,其当前观看的视频块如下式(1)所示:

其后续会以一定观看概率观看视频块(v',i'),该观看概率记为计算公式如下式(4)所示:

其中,式中的分子和分母是根据视频块访问计数文件分别得出的视频块(v',i')被连续观看总次数和视频块(v',jk)被连续观看总次数;该用户会在一定时间δk后请求(v',i'),δk按下式(5)计算:

δk=i'×tv'-σk(6)

δk为该用户对视频块(v',i')的请求时间;

视频块的联合请求概率jrr为观测窗口内,所有在线用户请求视频块(v',i')的概率与请求时间的比值的和,即,在线用户联合请求速率jrr(v′,i′)如下式(4)所示:

进一步地,计算出所述某个视频块以及所述视频缓存装置中的每个视频块的联合请求速率值jrr,还包括:

设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对γ中的每个视频块,给定一个固定长度w的观测窗口:

当视频块的开始播放时间小于给定的观测窗口长度w,该视频块的观测窗口为离线用户观测窗口和在线用户观测窗口,所述的联合请求速率为离线用户的请求速率和在线用户的请求速率之和:

给定当前时刻t,对任意一个视频块(v’,i’)∈γ且i’×tv'<w,其中v’,i’分别是视频块对应的视频编号和视频块编号,定义(v’,i’)的观测窗口为[i'×tv'-w,i’×tv']:

处于离线用户观测窗口[i'×tv'-w,0)的离线用户,这些离线用户正在以统计得出的到达速率λ进入系统并请求视频块(v’,0),记离线用户对视频块(v’,i’)的请求速率为根据下式(5)所示:

其中p((v′,i′)|(v′,0))为观看视频块(v',0)的用户继续观看视频块(v',i')的概率,λ是根据视频块访问计数文件中的数据统计得出的,计算式如下式(6)所示:

式中,表示历史数据信息中记录的截止到当前时刻视频块(v’,0)被用户请求的总次数,表示历史数据信息中记录的视频块(v’,0)被用户最早一次请求时的总次数,t表示系统当前时刻,t0表示视频块计数文件中记录的视频块(v’,0)被用户最早一次请求时的系统时刻;

处于在线用户观测窗口[0,i’×tv')区间的在线用户,这些在线用户对视频块的请求速率记为计算方法如所述公式(1)-(4)所示;

因此,对视频块的开始播放时间小于设定的观测窗口长度的每个视频块,所述的联合请求速率为jrr(v′,i′),如下式(7)所示:

即,

本发明的另一方面提供了一种基于视频块的联合请求速率在线视频缓存管理系统,包括:远程视频服务器和视频缓存装置;

远程视频服务器,用于将视频按照时间顺序切分成多个字节数相同且连续的视频块,以视频块的方式存储和管理所有视频,通过通信网络与各个视频缓存装置进行数据通信;

视频缓存装置,用于将视频按照时间顺序切分成多个字节数相同且连续的视频块,接收到用户发来的某个视频块的请求后,从远程视频服务器中获取所述某个视频块,将所述某个视频块发送给所述用户;

根据各个视频块的历史数据信息,计算出缓存空间内中的每个视频块和所述某个视频块的联合请求速率,根据各个视频块的联合请求速率确定所述某个视频块的缓存方式。

进一步地,视频缓存装置包括视频缓存模块、数据信息管理模块、视频块传输模块、视频块速率计算模块和视频块缓存处理模块;

视频缓存模块,用于将视频按照时间顺序切分成多个字节数相同且连续的视频块,通过缓存空间存储和管理各个视频的视频块;

数据信息管理模块,用于存储和管理用户观看视频的历史数据信息,并且在每次流程结束时进行视频块历史数据信息的更新;所述历史数据信息包括:用于记录每个在线用户最近一次观看的视频块和观看时刻的用户观看进度文件;以及用于记录每个视频块截至每次被访问时累计的访问次数放入视频块访问计数文件;

视频块传输模块,用于接收到用户发来的某个视频块的请求后,查找并比对视频缓存装置存储的视频块集合中是否存在所述某个视频块,如果存在所述某个视频块,则将所述某个视频块返回给用户,同时更新所述某个视频块的历史数据信息,本次流程结束;如果不存在所述某个视频块,则视频缓存装置到远程视频服务器获取所述某个视频块,并将所述某个视频块返回给所述用户;

视频块速率计算模块,用于根据用户观看视频的历史数据信息,计算出视频块集合中的每个视频块和所述某个视频块的联合请求速率jrr,设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对γ中的每个视频块,给定一个固定长度w的观测窗口:

当视频块的开始播放时间大于或等于给定的观测窗口长度w,该视频块的观测窗口为在线用户观测窗口,计算出的联合请求速率为在线用户联合请求速率;当视频块的开始播放时间小于给定的观测窗口长度w,该视频块的观测窗口为离线用户观测窗口和在线用户观测窗口,计算出的联合请求速率为离线用户的请求速率和在线用户的请求速率之和;

视频块缓存处理模块,用于将空闲的缓存空间与需要缓存的某个视频块本身的内存大小进行比较,当空闲的缓存空间大于或者等于所述某个视频块本身的内存时,则将所述某个视频块存入空闲的缓存空间;当空闲的缓存空间小于所述某个视频块本身的内存时,获取所述视频块速率计算模块计算出的视频块集合中的每个视频块和所述某个视频块的jrr值,当jrr值最小的视频块不是所述某个视频块时,则在缓存空间中删除所述jrr值最小的视频块,并返回重新进行空闲的缓存空间与所述某个视频块本身的内存大小的比较和存储;当jrr值最小的视频块是所述某个视频块时,则不在本地缓存中存储所述某个视频块。

由上述本发明提供的技术方案可以看出,本发明基于视频块联合请求速率的在线视频缓存管理方法和系统,利用视频点播服务系统的用户观看行为特性,通过计算联合请求速率jrr,使得视频块的重要度值和视频观看的预测准确度高,从而提升视频缓存的效率,改善了用户的服务质量。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

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

图1为实施例1提供的一种基于视频块的联合请求速率值的在线视频缓存管理方法的处理流程图;

图2为实施例1的视频块的开始播放时间大于或等于设定的观测窗口长度的示意图;

图3为视频块的开始播放时间小于设定的观测窗口长度的示意图;

图4为实施例2提供的一种基于视频块的联合请求速率在线视频缓存管理系统的结构示意图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

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

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

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

本发明的基于联合请求速率的在线视频缓存管理方法和系统,旨在通过计算联合请求速率的方法,预测视频块的重要性,并根据视频块的重要性进行视频块的缓存决策。

实施例1

在实际的线流媒体系统中,用户通常不会从头到尾观看整个视频,使得同一视频的不同片段有不同的流行度。本发明实施例将每个视频按照视频的自然顺序平均分割成n个连续视频块,对于视频v,切分后的每个视频块的播放时间长度为tv,顺序分别编号为0,1,2,...,n-1,对应视频块在视频中的开始时间分别为0,tv,2×tv…,(n-1)×tv。因此,可以将整个视频文件的流行度细化到视频文件中每个视频块的流行度。

本发明中,缓存系统被设计为优先存储最流行的视频块,而不是最流行视频的整个视频文件,以提高缓存空间的利用率,进而提升缓存系统的总体性能。

一方面,本发明实施例用视频块的联合请求速率(jointrequestrate,jrr)来衡量视频块的重要性。由于用户进入系统后通常会按照视频的自然顺序观看并可能(依一定概率)中途离开,因此,根据其当前观看位置能够预测后续各个视频块的观看概率及开始观看的时刻。考虑到某一给定当前时刻,可能有多个用户正在同时观看同一视频的不同位置。因此,对于任一给定的视频块,可能多个用户经过一定的时间后(请求时间)会进行观看。给定一个观测时间窗口,处在不同观看进度的用户会以不同的概率在不同时刻观看该视频块;这些观看概率与请求时间比值就是观测窗口内不同用户在统计意义上对该视频块的请求速率;进一步,将窗口内的不同用户对视频块的请求速率求和,得出该视频块在该观测窗口上的联合请求速率jrr。本发明中,视频块的jrr值越大表示在观测时间段内有越多的用户要观看这一视频块,或/和用户越急迫的需要观看到该视频块,因此该视频块的重要性越高。因此,本发明利用每个视频块的jrr值来评估对应视频块对于用户的重要性。

另一方面,当视频块在视频中的位置足够靠前,以至于该视频块的开始播放时间小于设定的观测窗口长度时,仅仅考虑在线用户可能会造成计算得出的视频块联合请求速率值过小,因此还需要考虑离线用户对该视频块的联合请求速率。在统计意义上,离线用户会以一定的到达速率经过一定的时间后进入系统,并开始请求该视频的起始视频块。

在本发明中,给定一个视频,其离线用户平均到达速率值等于在过去的一段时间内,该视频首个视频块已被观看的总次数除以这段时间的时长,即为该视频的离线用户的平均到达速率值。

本发明实施例根据视频块在视频中所处的位置与观测窗口长度的关系的不同,提供不同的方法,计算视频块的联合请求速率值。

本发明实施例1提供了一种基于视频块的联合请求速率值的在线视频缓存管理方法的处理流程图,如图1所示,包括如下步骤:

步骤s110,视频缓存装置收到用户发送的视频v的视频块i的请求。

步骤s120,视频缓存装置响应用户请求。

视频缓存装置判断其内部的缓存空间是否有视频v的视频块i,简称为(v,i))。若存有(v,i),则直接将(v,i)返回给用户,同时触发更新用户观看视频的历史数据信息,然后返回步骤s110,以继续等待用户们的下一次请求;否则,视频缓存装置将从远程视频服务器下载(v,i),并将(v,i)返回给用户,然后继续执行步骤s130。

其中,用户观看视频的历史数据信息包括用户观看进度文件和视频块访问计数文件,所述的用户观看进度文件用于记录每个在线用户最近一次观看的视频块和观看时刻,所述的视频块访问计数文件用于记录每个视频块截至每次被访问时累计的访问次数。

上述过程中涉及的用户观看视频的历史数据信息更新过程包括:

用户观看进度文件的更新过程为:在用户观看进度文件更新记录(u,v,i,t),其中u是请求视频块的用户id,v和i分别是用户请求的视频和视频块编号,t是系统的当前时刻。

视频块访问计数文件的更新过程为:在(v,i)对应的先入先出(firstinfirstout,简称fifo)数据结构中增加一条记录,记录该视频块的返回时刻、截止到此时该视频块被访问的总次数,以及截止到当前时刻该视频块被连续观看该视频的用户访问的总次数。

步骤s130,视频缓存装置将其空闲的缓存空间v与需要缓存的视频块(v,i)本身的内存大小j进行比较:当v≥j时,则视频缓存装置将视频块(v,i)存入缓存空间中的空闲部位,同时触发更新用户观看视频的历史访问信息(更新方法同s120),流程结束。然后返回步骤s110,以继续等待用户们的下一次请求;当v<j时,触发步骤s140。

步骤s140,根据视频块在视频中的位置不同,采用方法1或2计算每一个视频块(包括待缓存的视频块(v,i)和缓存空间内所有已存视频块,用视频块集合γ表示)的jrr值。然后将触发步骤s150。

图2为视频块的开始播放时间大于或等于设定的观测窗口长度的示意图,

图3为视频块的开始播放时间小于设定的观测窗口长度的示意图,参照图2和图3,分别采用以下方法1和方法2进行视频块的jrr的计算。

方法1:设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对γ中的每个视频块,给定一个固定长度w的观测窗口。

当视频块的开始播放时间大于或等于给定的观测窗口长度w,该视频块的观测窗口为在线用户观测窗口,所述的联合请求速率为在线用户联合请求速率,其基本方法如下:

给定当前时刻t,对任意一个视频块(v’,i’)∈γ且i’×tv'≥w,其中v’,i’分别是视频块对应的视频编号和视频块编号,tv'是每个视频块的播放时间长度,定义(v’,i’)的观测窗口为[i'×tv'-w,i’×tv');假定在该观测窗口范围内有在线用户正在观看某些视频块,这些具体观看位置形成一个集合ω={σk|i'×tv'-w≤σk<i'×tv',k=0,1,…,|ω|-1},其中tv'是每个视频块的播放时间长度,σk为一个视频观看位置,指的是有用户从视频开始位置0秒观看到一个当前观看位置σk秒,且σ0≤σ1≤…≤σ|ω|-1;

不失一般性,每个处于观看位置σk的用户,其当前观看的视频块如下式(1)所示:

其后续会以一定观看概率观看视频块(v',i'),该观看概率记为计算公式如下式(7)所示:

其中,式中的分子和分母是根据视频块访问计数文件分别得出的视频块(v',i')被连续观看总次数和视频块(v',jk)被连续观看总次数;该用户会在一定时间δk后请求(v',i'),δk按下式(9)计算:

δk=i'×tv'-σk(10)

δk为该用户对视频块(v',i')的请求时间;

视频块的联合请求概率jrr为观测窗口内,所有在线用户请求视频块(v',i')的概率与请求时间的比值的和,即,在线用户联合请求速率jrr(v′,i′)如下式(4)所示:

方法2:设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对γ中的每个视频块,给定一个固定长度w的观测窗口。

当视频块的开始播放时间小于给定的观测窗口长度w,该视频块的观测窗口为离线用户观测窗口和在线用户观测窗口,所述的联合请求速率为离线用户的请求速率和在线用户的请求速率之和,其基本方法如下:

给定当前时刻t,对任意一个视频块(v’,i’)∈γ且i’×tv'<w,其中v’,i’分别是视频块对应的视频编号和视频块编号,定义(v’,i’)的观测窗口为[i'×tv'-w,

i’×tv'],处于离线用户观测窗口[i'×tv'-w,0)的离线用户,这些离线用户正在以统计得出的到达速率λ进入系统并请求视频块(v’,0),记离线用户对视频块(v’,i’)的请求速率为根据下式(5)所示:

其中p((v′,i′)|(v′,0))为观看视频块(v',0)的用户继续观看视频块(v',i')的概率,可以根据上式(2)计算得出,λ是根据视频块访问计数文件中的数据统计得出的,计算式如下式(6)所示:

公式中表示历史数据信息中记录的截止到当前时刻视频块(v’,0)被用户请求的总次数,表示历史数据信息中记录的视频块(v’,0)被用户最早一次请求时的总次数,t表示系统当前时刻,t0表示视频块计数文件中记录的视频块(v’,0)被用户最早一次请求时的系统时刻;

处于在线用户观测窗口[0,i’×tv')区间的在线用户,这些在线用户对视频块的请求速率记为计算方法如上述公式(1)-(4)所示;

因此,对视频块的开始播放时间小于设定的观测窗口长度的每个视频块,所述的联合请求速率为jrr(v′,i′),如下式(7)所示:

即,

由此,得到每一个视频块的jrr值,然后触发步骤s150。

步骤s150,根据步骤s140中计算的视频块的联合请求速率jrr,进行缓存替换。

根据上述步骤可以得出的联合请求速率作为视频块(v,i)∈γ(包括新视频块和缓存内所有已存视频块)的重要度值,从中选取重要度值最小(重要性最小)的视频块并将其淘汰,其中重要性最小的视频块(v',r')由下式给出,

(v′,i′)=argmin(v,i)∈γjrr(v,i)(8)

如果(v',r')就是待存贮视频块(v,r),则触发更新用户观看视频的历史访问信息(更新方法同s120)然后返回步骤s110;否则,删除重要度值最小的视频块,并在对应缓存空间上存储待存贮视频块(v,r),同时触发更新用户观看视频的历史访问信息(更新方法同s120)。

上述本发明实施例的方法适用于互联网、有线电视、视频和音频等在线流媒体播放系统。

本领域技术人员应能理解,上述所举的根据视频块的联合请求速率的调用策略仅为更好地说明本发明实施例的技术方案,而非对本发明实施例作出的限定。任何根据联合请求速率调用策略的方法,均包含在本发明实施例的范围内。

实施例2

该实施例2提供的一种基于视频块的联合请求速率在线视频缓存管理系统的结构示意图如图4所示,包括:视频缓存装置31和远程视频服务器32;

视频缓存装置31,用于将视频按照时间顺序切分成多个字节数相同且连续的视频块,接收到用户发来的某个视频块的请求后,从远程视频服务器中获取所述某个视频块,将所述某个视频块发送给所述用户;

根据各个视频块的历史数据信息,计算出缓存空间内中的每个视频块和所述某个视频块的联合请求速率,根据各个视频块的联合请求速率确定所述某个视频块的缓存方式。

远程视频服务器32,用于将视频按照时间顺序切分成多个字节数相同且连续的视频块,以视频块的方式存储和管理所有视频,通过通信网络与各个视频缓存装置进行数据通信;

优选地,视频缓存装置31包括视频缓存模块311、数据信息管理模块312、视频块传输模块313、视频块速率计算模块314和视频块缓存处理模块315;

视频缓存模块311,用于将视频按照时间顺序切分成多个字节数相同且连续的视频块,通过缓存空间存储和管理各个视频的视频块;

数据信息管理模块312,用于存储和管理用户观看视频的历史数据信息,并且在每次流程结束时进行视频块历史数据信息的更新;所述历史数据信息包括:用于记录每个在线用户最近一次观看的视频块和观看时刻的用户观看进度文件;以及用于记录每个视频块截至每次被访问时累计的访问次数放入视频块访问计数文件;

视频块传输模块313,用于接收到用户发来的某个视频块的请求后,查找并比对视频缓存装置存储的视频块集合中是否存在所述某个视频块,如果存在所述某个视频块,则将所述某个视频块返回给用户,同时更新所述某个视频块的历史数据信息,本次流程结束;如果不存在所述某个视频块,则视频缓存装置到远程视频服务器获取所述某个视频块,并将所述某个视频块返回给所述用户;

视频块速率计算模块314,用于根据用户观看视频的历史数据信息,计算出视频块集合中的每个视频块和所述某个视频块的联合请求速率jrr,设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对γ中的每个视频块,给定一个固定长度w的观测窗口:

当视频块的开始播放时间大于或等于给定的观测窗口长度w,该视频块的观测窗口为在线用户观测窗口,计算出的联合请求速率为在线用户联合请求速率;当视频块的开始播放时间小于给定的观测窗口长度w,该视频块的观测窗口为离线用户观测窗口和在线用户观测窗口,计算出的联合请求速率为离线用户的请求速率和在线用户的请求速率之和;

所述的视频块缓存处理模块315,用于将空闲的缓存空间与需要缓存的某个视频块本身的内存大小进行比较,当空闲的缓存空间大于或者等于所述某个视频块本身的内存时,则将所述某个视频块存入空闲的缓存空间;当空闲的缓存空间小于所述某个视频块本身的内存时,获取所述视频块速率计算模块计算出的视频块集合中的每个视频块和所述某个视频块的jrr值,当jrr值最小的视频块不是所述某个视频块时,则在缓存空间中删除所述jrr值最小的视频块,并返回重新进行空闲的缓存空间与所述某个视频块本身的内存大小的比较和存储;当jrr值最小的视频块是所述某个视频块时,则不在本地缓存中存储所述某个视频块。

优选地,视频块速率计算模块314,具体用于根据以下两种方法计算出视频块集合中的每个视频块和所述某个视频块的联合请求速率jrr:

方法1:设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对所述的每个视频块,给定一个固定长度w的观测窗口。

当视频块的开始播放时间大于或等于给定的观测窗口长度w,该视频块的观测窗口为在线用户观测窗口,所述的联合请求速率为在线用户联合请求速率,其基本方法如下:

给定当前时刻t,对任意一个视频块(v’,i’)∈γ且i’×tv'≥w,其中v’,i’分别是视频块对应的视频编号和视频块编号,tv'是每个视频块的播放时间长度,定义(v’,i’)的观测窗口为[i'×tv'-w,i’×tv');假定在该观测窗口范围内有在线用户正在观看某些视频块,这些具体观看位置形成一个集合ω={σk|i'×tv'-w≤σk<i'×tv',k=0,1,…,|ω|-1},其中tv'是每个视频块的播放时间长度,σk为一个视频观看位置,指的是有用户从视频开始位置0秒观看到一个当前观看位置σk秒,且σ0≤σ1≤…≤σ|ω|-1;

不失一般性,每个处于观看位置σk的用户,其当前观看的视频块如下式(1)所示:

其后续会以一定观看概率观看视频块(v',i'),该观看概率记为计算公式如下式(11)所示:

其中,分子和分母是根据视频块访问计数文件分别得出的视频块(v',i')被连续观看总次数和视频块(v',jk)被连续观看总次数;该用户会在一定时间δk后请求(v',i'),δk按下式(13)计算:

δk=i'×tv'-σk(14)

δk为该用户对视频块(v',i')的请求时间;

视频块的联合请求概率jrr为观测窗口内,所有在线用户请求视频块(v',i')的概率与请求时间的比值的和,即,在线用户联合请求速率jrr(v′,i′)如下式(4)所示:

方法2:设视频缓存装置已缓存的视频块和所述的某个视频块的集合为γ,对所述的每个视频块,给定一个固定长度w的观测窗口。

当视频块的开始播放时间小于给定的观测窗口长度w,该视频块的观测窗口为离线用户观测窗口和在线用户观测窗口,所述的联合请求速率为离线用户的请求速率和在线用户的请求速率之和,其基本方法如下:

给定当前时刻t,对任意一个视频块(v’,i’)∈γ且i’×tv'<w,其中v’,i’分别是视频块对应的视频编号和视频块编号,定义(v’,i’)的观测窗口为[i'×tv'-w,i’×tv'],处于离线用户观测窗口[i'×tv'-w,0)的离线用户,这些离线用户正在以统计得出的到达速率λ进入系统并请求视频块(v’,0),记离线用户对视频块(v’,i’)的请求速率为根据下式(5)所示:

其中p((v′,i′)|(v′,0))为观看视频块(v',0)的用户继续观看视频块(v',i')的概率,可以根据上式(2)计算得出,λ是根据视频块访问计数文件中的数据统计得出的,计算式如下式(6)所示:

公式中表示历史数据信息中记录的截止到当前时刻视频块(v’,0)被用户请求的总次数,表示历史数据信息中记录的视频块(v’,0)被用户最早一次请求时的总次数,t表示系统当前时刻,t0表示视频块计数文件中记录的视频块(v’,0)被用户最早一次请求时的系统时刻;

处于在线用户观测窗口[0,i’×tv')区间的在线用户,这些在线用户对视频块的请求速率记为计算方法如上述公式(1)-(4)所示;

因此,对视频块的开始播放时间小于设定的观测窗口长度的每个视频块,所述的联合请求速率为jrr(v′,i′),如下式(7)所示:

即,

用本发明实施例的方法进行基于视频块的联合请求速率在线视频缓存管理的具体过程与前述方法实施例类似,此处不再赘述。

综上所述,本发明实施例的联合请求速率在线视频缓存管理方法和系统,利用了视频点播服务系统的用户观看行为特性,将视频分块,用每个视频块在未来一段时间内可能被请求的联合请求速率作为视频块重要度值,并依据来自于在线用户未来观看行为,计算联合请求速率,将联合请求速率值作为视频块的重要性指标进行缓存策略的执行,使得视频块的重要度值和视频观看的预测准确度高,从而能够提升视频缓存的效率,改善用户服务质量。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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