一种视频在线缓存管理方法和系统与流程

文档序号:17180821发布日期:2019-03-22 20:52阅读:309来源:国知局
一种视频在线缓存管理方法和系统与流程

本发明涉及视频存储管理领域,具体涉及一种视频在线缓存管理方法和系统。



背景技术:

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

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

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



技术实现要素:

本发明实施例提供了一种视频在线缓存管理方法和系统,以提高视频缓存的效率。

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

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

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

s2:所述视频缓存装置根据用户观看视频的历史数据信息,预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,根据各个视频块的下次请求时间确定所述某个视频块的缓存方式。

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

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

视频缓存装置存储和管理用户观看视频的历史数据信息,所述历史数据信息包括:用户行为文件和/或视频块访问日志文件,所述用户行为文件用于记录每个在线用户最近一次观看的视频块和观看时刻,所述视频块访问日志文件用于记录每个视频块在最近一段时间内被访问的各个时刻。

进一步地,所述用户行为文件是一个以在线用户id为key,以该用户对应的五元组为value的数据结构,每个在线用户在用户行为文件中对应一个五元组,该五元组元素包括该用户的id、视频id、该用户正在观看的视频块id、该用户观看首块视频的起始时刻,和该用户最近正在观看的视频块的起始时刻。

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

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

如果不存在所述某个视频块,则视频缓存装置到远程视频服务器获取所述某个视频块,并将所述某个视频块返回给所述用户,然后更新所述某个视频块的历史数据信息,并执行步骤s2。

进一步地,所述的视频缓存装置根据用户观看视频的历史数据信息,预测其视频块集合中的每个视频块和所述某个视频块的下次请求时间,根据各个视频块的下次请求时间确定所述某个视频块的缓存方式,包括:

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

当空闲的缓存空间小于所述某个视频块本身的内存时,所述视频缓存装置根据其存储的各个视频块的历史数据信息预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,将各个视频块的下次请求时间进行排序,当下次请求时间值最大的视频块不是所述某个视频块时,则在缓存空间中删除所述下次请求时间值最大的视频块,并在对应缓存空间上存储所述某个视频块;当下次请求时间值最大的视频块是所述某个视频块时,则不在本地缓存空间中存储所述某个视频块。

进一步地,所述的视频缓存装置根据其存储的各个视频块的历史数据信息预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,包括:

方法x:根据用户行为文件计算指定视频块的下次请求时间,当需要预测出指定视频块的下次请求时间时,当有在线用户的视频块观看位置处于所述指定视频块之前时,假设所述在线用户按照视频的自然顺序请求视频块,根据用户行为文件中记载的所述在线用户的当前观看位置,计算出所述指定视频块的下次请求时间;

或者,

方法y:根据视频块访问日志文件计算指定视频块的下次请求时间,当没有在线用户的视频块观看位置处于所述指定视频块之前时,根据视频块访问日志文件记载的所述指定视频块或所述指定视频块对应的视频所对应的最近一段时间内的观看历史记录,计算出有新用户进入系统开始观看所述指定视频块的时间,将该时间作为所述指定视频块的下次请求时间。

进一步地,所述的根据用户行为文件计算指定视频块的下次请求时间,包括:

当用户行为文件记载有在线用户的视频块观看位置处于所述指定视频块之前时,根据所述在线用户的观看位置,按照从前往后的自然观看顺序,计算出所述在线用户中每个在线用户分别请求所述指定视频块的将来时刻,这些将来时刻的值构成一个将来时刻集合;从所述将来时刻集合中去除小于当前时刻的值,剩余的将来时刻值构成剩余集合,如果所述剩余集合不为空,则其中元素的最小值作为所述指定视频块的下次请求时间;如果剩余集合为空集,则采用所述方法y来计算所述指定视频块的下次请求时间。

进一步地,所述的根据视频块访问日志文件计算指定视频块的下次请求时间,包括:

方法a:直接推测所述指定视频块的下次请求时间,根据视频块访问日志文件中所述指定视频块最近一段时间内被观看的历史记录,计算出当前时刻与所述最近一段时间内记录到的最早观看时刻之间的时间间隔,将该时间间隔除以所述最近一段时间内记录到的所述指定视频块的总观看次数,得到所述指定视频块被观看的平均间隔时间,则将所述指定视频块的下次请求时间计算为当前时刻与所述平均间隔时间之和;

或者,

方法b:间接推测所述指定视频块的下次请求时间,将所述指定视频块的下次请求时间计算为所述指定视频块对应的视频的首个视频块的下次请求时间加上从所述首个视频块到所述指定视频块的视频播放时间,根据视频块访问日志文件中记录的所述指定视频块的对应视频的首个视频块的最近一段时间内被观看的历史记录,计算出当前时刻与所述历史记录中记载的所述首个视频块的最早观看时刻之间的时间间隔,将该时间间隔除以所述历史记录中记载到的所述首个视频块的总观看次数,得到所述首个视频块被观看的平均间隔时间,将所述指定视频块的下次请求时间计算为当前时刻、所述首个视频块被观看的平均间隔时间、从所述首个视频块到所述指定视频块的视频播放时间三者之和。

根据本发明的另一个方面,提供了一种视频在线缓存管理系统,包括:视频缓存装置和远程视频服务器;

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

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

根据用户观看视频的历史数据信息,预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,根据各个视频块的下次请求时间确定所述某个视频块的缓存方式。

进一步地,所述视频缓存装置包括:

视频缓存模块,用于将视频按照时间顺序分成多个字节数相同且连续的视频块,通过视频块集合以视频块的方式对各个视频进行存储和管理;

用户观看视频历史数据信息管理模块,用于存储和管理用户观看视频的历史数据信息,所述历史数据信息包括:用户行为文件和/或视频块访问日志文件,所述用户行为文件用于记录每个在线用户最近一次观看的视频块和观看时刻,所述视频块访问日志文件用于记录每个视频块在最近一段时间内被访问的各个时刻。

进一步地,所述视频缓存装置还包括:

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

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

当空闲的缓存空间小于所述某个视频块本身的内存时,所述视频缓存装置根据其存储的各个视频块的历史数据信息预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,将各个视频块的下次请求时间进行排序,当下次请求时间值最大的视频块不是所述某个视频块时,则删除所述下次请求时间值最大的视频块,并在对应缓存空间中存储所述某个视频块,然后更新所述某个视频块的历史数据信息;当下次请求时间值最大的视频块是所述某个视频块时,则不在本地缓存空间中存储所述某个视频块,同时更新所述某个视频块的历史数据信息。

进一步地,所述的视频块缓存处理模块,具体用于当需要预测出指定视频块的下次请求时间时,当有在线用户的视频块观看位置处于所述指定视频块的视频块之前时,假设所述在线用户按照视频的自然顺序请求视频块,根据用户行为文件中记载的所述在线用户的当前观看位置,计算出所述指定视频块的下次请求时间;

当没有在线用户的视频块观看位置处于所述指定视频块之前时,根据视频块访问日志文件记载的观看所述指定视频块或所述指定视频块对应的视频所对应的最近一段时间内的观看历史记录,计算出有新用户进入系统开始观看所述指定视频块的时间,将该时间作为所述指定视频块的下次请求时间。

由上述本发明的实施例提供的技术方案可以看出,本发明实施例的基于视频块下次请求时间预测机制在线缓存替换方法和装置,将视频文件分割成多个连续的视频块,预测视频块的下次请求时间,将视频块按照下次请求时间的大小排序,当存储空间不足时,删除下次请求时间最大的视频块,并优先缓存下次请求时间值小的视频块。该发明的依据是新用户以及当前用户访问视频块的当前位置,基于本发明计算出的下次请求时间能更可靠地反映视频块的瞬时重要性,能够有效地提高缓存视频的命中率,逼近理论上最优离线缓存算法的最好缓存效率,大幅度提升用户的服务质量。

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

附图说明

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

图1为本发明实施例提供的一种视频在线缓存管理方法的处理流程图;

图2为本发明实施例提供的一种视频块切分示意图;

图3为本发明实施例提供的一种基于下次请求时间预测机制的视频在线缓存替换方法的工作流程图;

图4为本发明实施例提供的一种视频在线缓存管理系统的结构示意图。

具体实施方式

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

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

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

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

本发明实施例提供了一种在线缓存替换方法和装置,旨在通过将视频文件分割成连续的视频块,预测视频块的下次请求时间,根据视频块的下次请求时间进行缓存策略判断,来逼近最优视频缓存效率,大幅度提升视频缓存的命中率。

实施例一

该实施例提供的一种视频在线缓存管理方法的处理流程如图1所示,包括如下的处理步骤:

步骤s110:将视频按照时间顺序切分成多个字节数相同且连续的视频块.

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

视频缓存装置存储和管理用户观看视频的历史数据信息,该历史数据信息包括两类:一种被称为用户行为文件,用于记录每个在线用户最近一次观看的视频块编号和对应时刻;另一种被称为视频块访问日志文件,日志中记载每个视频块每次被访问的时间,对于每个视频块,视频块访问日志文件只保留最近一段时间的访问记录。

所述用户行为文件包括一个五元组(u,v,j,t0,tj),其中,u为用户id,v为视频id,j为用户正在观看的视频块序号,t0为用户进入系统时刻,t(v,j)为用户u开始观看视频块(v,j)时的系统时刻,用户id作为key,对应的五元组作为value。

视频块访问日志文件是用有一定长度的fifo(firstinputfirstoutput,先入先出数据结构)来记录的,每条记录包括其中,v为视频id,j为视频块序号,j从1开始计数,视频块可以用(v,j)来表示。为该日志文件中视频块(v,j)的第k条记录中的被访问时刻。其中,k为视频块访问日志文件中记载的关于该视频块的记录的条数。

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

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

步骤s130:所述视频缓存装置将其空闲的缓存空间与需要缓存的某个视频块本身的内存大小进行比较,根据比较结果确定所述某个视频块的缓存方式。

视频缓存装置将其空闲的缓存空间与需要缓存的某个视频块本身的内存大小进行比较,当空闲的缓存空间大于或者等于所述某个视频块本身的内存时,则所述视频缓存装置将所述某个视频块存入空闲的缓存空间,同时更新所述某个视频块的历史数据信息,然后返回步骤s120继续等待下一个用户的视频块请求。

当空闲的缓存空间小于所述某个视频块本身的内存时,所述视频缓存装置根据其存储的各个视频块的历史数据信息预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,将各个视频块的下次请求时间进行排序,当下次请求时间值最大的视频块不是所述某个视频块时,则删除所述下次请求时间值最大的视频块,并在对应的缓存空间中存储所述某个视频块,同时更新所述某个视频块的历史数据信息,然后返回步骤s120继续等待下一个用户的视频块请求;当下次请求时间值最大的视频块是所述某个视频块时,则不在本地缓存空间中存储所述某个视频块,同时更新所述某个视频块的历史数据信息,然后返回步骤s120继续等待下一个用户的视频块请求。

所述的视频缓存装置根据其存储的各个视频块的历史数据信息预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,包括:

方法x:根据用户行为文件计算指定视频块的下次请求时间,当需要预测出指定视频块的下次请求时间时,当有在线用户的视频块观看位置处于所述指定视频块之前时,假设用户按照视频的自然顺序请求视频块,根据用户行为文件中记载的所述在线用户的当前观看位置,计算出所述指定视频块的下次请求时间。

具体处理过程包括:根据所述在线用户的观看位置,按照从前往后的自然观看顺序,计算出所述在线用户中每个在线用户分别请求所述指定视频块的将来时刻,这些将来时刻的值构成一个将来时刻集合;从所述将来时刻集合中去除小于当前时刻的值,剩余的将来时刻值构成剩余集合。如果所述剩余集合不为空,则将剩余集合中元素的最小值作为所述指定视频块的下次请求时间;如果剩余集合为空集,则按照下述方法y来计算所述指定视频块的下次请求时间。

或者,

方法y:根据视频块访问日志文件计算指定视频块的下次请求时间,当没有在线用户的视频块观看位置处于所述指定视频块之前时,根据视频块访问日志文件记载的所述指定视频块或所述指定视频块对应的视频所对应的最近一段时间内的观看历史记录,计算出有新用户进入系统开始观看所述指定视频块的时间,将该时间作为所述指定视频块的下次请求时间。

具体处理过程包括:

方法a:直接推测所述指定视频块的下次请求时间,根据视频块访问日志文件中所述指定视频块最近一段时间内被观看的历史记录,计算出当前时刻与所述最近一段时间内记录到的最早观看时刻之间的时间间隔,将所述时间间隔除以所述最近一段时间内记录到的所述指定视频块的总观看次数,得到所述指定视频块被观看的平均间隔时间,则将所述指定视频块的下次请求时间计算为当前时刻与所述平均间隔时间之和。该方法适用于推测热门视频块的下次请求时间,此时视频块访问日志文件需记录每个视频的每个视频块各个访问时刻;

或者,

方法b:间接推测所述指定视频块的下次请求时间,将所述指定视频块的下次请求时间计算为所述指定视频块对应的视频的首个视频块的下次请求时间加上从所述首个视频块到所述指定视频块的视频播放时间。根据视频块访问日志文件中记录的所述指定视频块的对应视频的首个视频块的最近一段时间内被观看的历史记录,计算出当前时刻与所述历史记录中记载的所述首个视频块的最早观看时刻之间的时间间隔,将该时间间隔除以所述历史记录中记载到的所述首个视频块的总观看次数,得到所述首个视频块被观看的平均间隔时间,将所述指定视频块的下次请求时间计算为当前时刻、所述首个视频块被观看的平均间隔时间、从所述首个视频块到所述指定视频块的视频播放时间三者之和。该方法适用于推测所有视频块的下次请求时间,且此时视频块访问日志文件只需记录每个视频的首个视频块的各个访问时刻。

实施例二

本发明实施例提供一种视频在线缓存替换方法,用于管理存放于远程服务器中的视频文件,所述视频按照时间顺序被分成多个字节数相同且连续的视频块,对所述视频以视频块的方式进行管理,在流媒体系统中,由于用户观看时间的差异,在同一时刻,不同用户会播放视频的不同片段。因此,用户对视频不同片段需求的急迫程度不同。本发明将视频按照时间顺序切分成多个(记为n个)字节数相同且连续的视频块,图2为本发明实施例提供的视频块切分示意图,如图2所示,视频v的第1个视频块开始时间为t(v,1)(t(v,1)=0),第2个视频块开始时间为t(v,2),以此类推。这样可以将用户对整个视频文件的请求细化成对某个视频块的请求。

图3为本发明实施例提供的一种基于下次请求时间预测机制的视频在线缓存管理方法的工作流程图,包括如下处理步骤:

视频缓存装置负责接收用户u发来的对视频块(v,j)的请求以及存储和管理历史数据信息。

其中视频块的历史数据信息,包括:

用户行为文件:一个五元组(u,v,j,t0,tj),其中,u为用户id,v为视频id,j为用户正在观看的视频块序号,t0为用户进入系统时刻,t(v,j)为用户u开始观看视频块(v,j)时的系统时刻,用户id作为key,对应的五元组作为value。

视频块访问日志文件:是用一个固定长度的fifo(firstinputfirstoutput,先入先出数据结构)来记录的,其中v为视频id,j为视频块序号,为该日志文件中视频块(v,j)的第k条记录中的被访问时刻,其中k为视频块访问日志文件中记载的关于该视频块的记录的条数。

视频缓存装置响应用户u的请求并更新视频块历史数据信息。视频缓存装置根据缓存中是否有视频块(v,j),分别执行以下操作。

查找并比对视频缓存装置存储的视频块集合q中是否存在用户请求的视频块(v,j),当(v,j)∈q,则将视频块(v,j)返回给用户,同时更新视频块(v,j)的历史数据信息,流程结束,继续等待下一个用户的视频块请求;当则视频缓存装置到远程视频服务器下载视频块(v,j),同时将该视频块j返回给用户,并触发后续处理过程。

判断是否需要执行缓存替换策略。

视频缓存装置将自己空闲的缓存空间v与需要缓存的视频块(v,j)本身的内存大小j进行比较:当有空闲缓存空间时,即v>=j时,把新到达的视频块j直接存储在空闲的缓存空间,同时更新视频块(v,j)的历史数据信息,流程结束;当缓存空间已满,即v<j时,且有新视频块到达时,系统对视频块的存储或淘汰进行决策。这个决策过程将计算每个视频块(包括已缓存的视频块和新到达的视频块(v,j)的下次请求时间(nrt,nextrequesttime),即,每个视频块最近一次将被请求下载的时间,然后根据他们的nrt进行缓存决策。具体步骤如下:

给定当前时刻,初始化所有这些视频块的下次请求时间为无穷大(∞),然后按照以下过程逐个计算每个视频块的下次请求时间。

首先,若系统中存在观看位置处于该视频块之前的在线用户,则优先选择基于在线用户观看进程计算该视频块的下次请求时间。由于用户按照视频的自然顺序请求视频块,因此,在未来某一时刻,后续的视频块将被在线用户请求播放;这一时刻即为该视频块的下次请求时间。

当有多个在线用户的视频块观看位置处于所述视频块j之前时,根据所述多个在线用户的观看位置和观看顺序,计算出所述多个在线用户中的每个在线用户分别请求所述视频块j的将来时刻,然后从计算出的所有将来时刻中滤除掉小于当前时刻的值,剩下的所有将来时刻组成剩余集合,如果剩余集合不为空,则选取剩余集合中所有将来时刻的最小值作为所述视频块j的下次请求时间;如果剩余集合为空集,则还需进一步基于视频块访问日志文件的记录信息来计算所述指定视频块的下次请求时间。

具体来说,给定系统当前时刻t,视频块(v,j)(参见图2,其开始时间为tj)的下次请求时间按如下过程计算;假定此时系统中有k个用户的观看视频v的位置小于j,设他们正在分别观看视频块(v,i1),(v,i2)...(v,ik),且有i1≤i2≤…≤ik<j,记他们开始观看视频块(v,i1),(v,i2)...(v,ik)的时间分别为则根据这些在线用户的观看位置和观看顺序,可知,在将来时刻这k名用户将分别请求该视频块(v,j)。

对于以上得到的将来时刻滤除其中所有小于当前时刻t的值(这些对应的用户可能处于暂停等状态),得到剩余集合。

如果剩余集合不为空,则选取剩余集合中所有元素的最小值,作为视频块(v,j)的下次请求时间,记为,

否则,如果剩余集合为空集,则继续根据视频块访问日志文件中的数据预测视频块的下次请求时间。此时,对于其中任意一个视频块,记为(v',j'),其下次请求时间的有两种方法:方法x,根据用户行为文件计算指定视频块的下次请求时间;方法y:根据视频块访问日志文件计算指定视频块的下次请求时间,这两种方法可同时联合使用或使用其中的一种来预测视频块的下次请求时间。

方法x,根据用户行为文件计算指定视频块的下次请求时间:根据视频块访问日志文件中所述指定视频块最近一段时间内被观看的历史记录,计算当前时刻与该时段时间内记录到的最早观看时刻之间的时间间隔,将该时间间隔除以该时段时间内记录到的所述指定视频块的总观看次数,得到所述指定视频块被观看的平均间隔时间;进而,将所述指定视频块的下次请求时间计算为当前时刻与所述平均间隔时间之和,即:

其中t为系统的当前时刻,表示视频块访问日志文件中记录的该视频块(v′,j′)的最早访问时刻,k为视频块访问日志文件中记载的关于该视频块的记录的条数。该方法适用于推测热门视频块的下次请求时间,此时视频块访问日志文件需记录每个视频的每个视频块各个访问时刻。

方法y:根据视频块访问日志文件计算指定视频块的下次请求时间:将所述指定视频块的下次请求时间计算为所述指定视频块对应的视频的首个视频块的下次请求时间加上从所述首个视频块到所述指定视频块的视频播放时间。根据视频块访问日志文件中记录的所述指定视频块的对应视频的首个视频块的最近一段时间内被观看的历史记录,计算当前时刻与所述历史记录中记载的首个视频块的最早观看时刻的时间间隔,将该时间间隔除以所述历史记录中记载到的首个视频块的总观看次数,得到所述首个视频块被观看的平均间隔时间。将所述指定视频块的下次请求时间计算为当前时刻、所述首个视频块被观看的平均间隔时间、从所述首个视频块到所述指定视频块的视频播放时间三者之和。

其中t为系统当前时刻,表示视频块访问日志文件中记录的视频块(v′,j′)的最早访问时刻,k为视频块访问日志文件中记载的关于视频块(v′,j′)的记录的条数,t(v′,j′)为视频块(v′,j′)相对于视频开始时的播放时间。该方法适用于推测所有视频块的下次请求时间,且此时视频块访问日志文件只需记录每个视频的首个视频块的各个访问时刻。

如果待计算视频块在过去一段时间内从未被用户访问,该视频块的访问日志文件为空,则无法利用直接计算法和/或间接计算法计算视频块的下次请求时间。此时说明该视频块在过去一段时间内从未被用户访问,该视频块重要性较低,该视频块的下次请求时间确定为无穷大。

对于已缓存的所有视频块和新到达的视频块,根据上述视频块下次请求时间计算方法,计算各个视频块的下次请求时间,即视频块的重要性,下次请求时间越小的视频块重要性越高。根据重要性对这些视频块进行排序。找出下次请求时间值最大的视频块r,即:

r=argmaxxnrtx,

其中x是已缓存的视频块和新到达视频块(v,j)的集合。

优先地,本实施例从缓存中优先淘汰下次请求时间最大,即重要性最小的视频块,并缓存其余视频块;如果有多个下次请求时间最大的视频块,则随机淘汰其中任意一个视频块。

具体来说,若需要淘汰的视频块就是新到达的视频块j,即r=(v,j),然后更新视频块(v,j)的历史数据信息,流程结束;

若需要淘汰的视频块不是新到达的视频块(v,j),即r≠(v,j),则将视频块r从缓存空间中删除,并在缓存空间中存入视频块(v,j),同时更新视频块(v,j)的历史数据信息,流程结束。

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

实施例三

图4为本发明实施例提供的一种视频在线缓存管理系统的结构示意图,包括:视频缓存装置41和远程视频服务器42;

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

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

根据用户观看视频的历史数据信息,预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,根据各个视频块的下次请求时间确定所述某个视频块的缓存方式。

进一步地,所述视频缓存装置41包括:

视频缓存模块411,用于将视频按照时间顺序分成多个字节数相同且连续的视频块,通过视频块集合以视频块的方式对各个视频进行存储和管理;

用户观看视频历史数据信息管理模块412,用于存储和管理用户观看视频的历史数据信息,所述历史数据信息包括:用户行为文件和/或视频块访问日志文件,所述用户行为文件用于记录每个在线用户最近一次观看的视频块和观看时刻,所述视频块访问日志文件用于记录每个视频块在最近一段时间内被访问的各个时刻。上述用户行为文件为一个五元组(u,v,j,t0,tj),其中,u为用户id,v为视频id,j为用户正在观看的视频块序号,t0为用户进入系统时刻,t(v,j)为用户u开始观看视频块(v,j)时的系统时刻,用户id作为key,对应的五元组作为value。另外一种是视频块访问日志文件:是用一个固定长度的fifo(firstinputfirstoutput,先入先出数据结构)来记录的,每条记录包括其中,v为视频id,j为视频块序号,视频块可以用(v,j)来表示。为该日志文件中视频块(v,j)的第k条记录中的被访问时刻。其中,k为视频块访问日志文件中记载的关于该视频块的记录的条数。

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

视频块缓存处理模块414,用于将其空闲的缓存空间与需要缓存的某个视频块本身的内存大小进行比较,当空闲的缓存空间大于或者等于所述某个视频块本身的内存时,则所述视频缓存装置将所述某个视频块存入空闲的缓存空间,同时更新所述某个视频块的历史数据信息;

当空闲的缓存空间小于所述某个视频块本身的内存时,所述视频缓存装置根据其存储的各个视频块的历史数据信息预测出其视频块集合中的每个视频块和所述某个视频块的下次请求时间,将各个视频块的下次请求时间进行排序,当下次请求时间值最大的视频块不是所述某个视频块时,则删除所述下次请求时间值最大的视频块,并在缓存空间中存储所述某个视频块,同时更新所述某个视频块的历史数据信息;当下次请求时间值最大的视频块是所述某个视频块时,则不在本地缓存中存储所述某个视频块,同时更新所述某个视频块的历史数据信息。

具体用于当需要预测出指定视频块的下次请求时间时,当有在线用户的视频块观看位置处于所述指定视频块的视频块之前时,假设所述在线用户按照视频的自然顺序请求视频块,根据用户行为文件中记载的所述在线用户的当前观看位置,计算出所述指定视频块的下次请求时间;

当没有在线用户的视频块观看位置处于所述指定视频块之前时,根据视频块访问日志文件记载的观看所述指定视频块或所述指定视频块对应的视频所对应的最近一段时间内的观看历史记录,计算出有新用户进入系统开始观看所述指定视频块的时间,将该时间作为所述指定视频块的下次请求时间。

本发明实施例的系统进行视频在线缓存管理的具体过程与前述方法实施例类似,此处不再赘述。

综上所述,本发明针对在线流媒体服务给出了一种基于下次请求时间预测机制的高速在线缓存替换方法,通过将视频文件分割成连续的视频块,预测视频块的下次请求时间,优先存储在最短时间内将被再次访问的那些视频块,而不是存储最流行的视频文件的所有视频块,依据用户尤其是在线用户访问视频块的当前位置,基于此计算的下次请求时间能更可靠地反映了视频块的瞬时重要性,从而最大效率利用有限的缓存空间,使得本发明提出的视频缓存方法能够逼近最优视频缓存效率,大幅度提升缓存视频的命中率和用户服务质量。

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

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

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

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

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