无线视频共享系统中基于相似播放模式抽取的共享方法与流程

文档序号:17628362发布日期:2019-05-10 23:54阅读:216来源:国知局
无线视频共享系统中基于相似播放模式抽取的共享方法与流程

本发明涉及视频资源共享技术领域,具体的说是一种无线视频共享系统中基于相似播放模式抽取的共享方法。



背景技术:

在无线网络中为持有智能手持设备的用户提供视频服务,使其能够随时随地的观看视频内容具有重要意义。根据思科公司预测,到2020年,视频数据流量将占据全球移动流量的三分之二。这是因为视频服务能够为用户提供丰富的可视内容,从而吸引了大量的视频用户,产生了极大规模的视频流量。截止2017年12月,中国的网络视频用户已经达到了5.79亿人,而且使用频率达到了75%。大规模视频系统的部署必将面临服务质量和可扩展性的问题。当视频系统中所含用户数量规模较大且急剧增加时,视频系统需要为用户提供充足的带宽资源,并最小化用户的启动延时,提升用户的体验质量。然而,视频服务器有限的带宽资源难以满足海量用户产生的带宽需求,从而导致较长的用户启动延时,降低系统服务质量和可扩展性。基于内容分布式网络的视频系统需要增加部署的服务器数量来增加视频系统的带宽供给,但相对于巨大的用户规模,增加的带宽供给也无法满足巨大规模的带宽需求,而且服务器数量的增加也带来较高的部署费用。

p2p技术利用客户端剩余的计算、存储和带宽资源实现客户端间资源的共享,极大地提升了视频系统整体资源的供给能力,从而提升视频系统的服务能力和可扩展性。近年来,众多学者提出了许多基于p2p的视频点播服务的部署方法。例如,bbtu将网络中的节点组织成为一个二叉树结构,利用二叉树结构在资源搜索性能上的优势,设计了基于二叉树的视频资源缓存和搜索方法和基于泛洪的视频搜索方法,从而提升视频资源的搜索性能和资源查询成功率。vmesh利用一个分布式哈希表将网络中的节点组织到一个dht结构中,利用dht结构在资源搜索性能上的优势,提升视频搜索的效率。vmesh进一步提出了一个基于链表的扩展结构,即dht结构中的每个节点均缓存着当前视频块的前驱和后继视频块的节点链表,从而提升执行视频点播服务的快进快退操作时的资源搜索性能。此外,vmesh定义了一个周期维护dht结构的方法,利用邻近节点间周期交换当前节点状态消息的方式来维护整个dht结构。surfnet将视频划分为超级块和普通块两种类型,超级块是若干个普通视频块的集合。surfnet默认网络中在线时间长的时间拥有稳定的播放行为,因此缓存超级块,在线时间相对较短的节点缓存普通块。存储超级块的节点组织成为一个avl树,利用avl树结构实现高效的视频搜索。其次,surfnet将存储普通块且普通块属于同一超级块的节点构成一个链表,附属在存储超级块的avl树中节点上,从而形成一个基于链表的avl树结构,以此进一步提升视频搜索性能。以上方法均是将网络中的节点组织到一个树形或dht结构中,虽然能够获得较高的搜索性能,但随着网络中节点数量的快速增加,且节点状态不断变化,从而导致维护树形或dht结构的代价不断增大、消耗大量的网络节点带宽,严重影响系统的可扩展性。基于非结构化的视频共享方法要求网络中的节点维护若干个邻居节点,并与邻居节点进行视频共享,若邻居节点无法满足彼此的视频需求,则需要利用泛洪方法搜索视频。泛洪搜索方法通过广播请求消息,从而消耗大量的网络带宽,并且严重影响视频请求节点的启动延时。



技术实现要素:

为了解决现有技术中的不足,本发明提供一种无线视频共享系统中基于相似播放模式抽取的共享方法,能够有效提高节点之间共享视频资源的效率,提升用户体验。

为了实现上述目的,本发明采用的具体方案为:无线视频共享系统中基于相似播放模式抽取的共享方法,所述无线视频共享系统包括视频服务器和若干个与视频服务器通信连接的节点,视频服务器存储着无线视频共享系统中的所有视频资源,所述共享方法包括如下步骤:

s1、视频服务器根据节点改变视频播放点的行为感知节点对视频内容的兴趣程度;

s2、视频服务器根据所有节点对同一视频内容的兴趣程度抽取出若干个播放模式,并根据播放模式对所有节点进行聚类,得到若干个节点子集合;

s3、视频服务器在每个节点子集合中指定一个头节点,头节点负责维护所属节点子集合内其它节点的状态更改行为和资源缓存信息,所有头节点共同维护所有节点之间的视频共享行为;

s4、视频服务器维护新节点加入系统或者节点退出系统;

s5、视频服务器感知新节点主动改变所属节点子集合的行为。

s1的具体方法包括:

s1.1、视频服务器将一个视频均匀分割成若干个连续的视频块,并对所有视频块依次编号;

s1.2、视频服务器将节点改变视频播放点的行为描述为视频块跳转过程;

s1.3、视频服务器将节点播放视频时产生的视频块跳转过程整合为一个播放记录,播放记录与节点和视频一一对应;

s1.4、视频服务器根据所有节点播放同一视频的播放记录计算该视频中视频块之间的关联程度;

s1.5、视频服务器根据视频中视频块之间的关联程度计算节点对视频的兴趣程度。

s1.4的具体方法包括:

s1.41、视频服务器获取所有节点播放同一视频时在两个目标视频块之间进行跳转的目标频度;

s1.42、视频服务器获取所有节点播放同一视频时在任意两个视频块之间进行跳转的频度总和;

s1.43、视频服务器计算目标频度与频度总和的比值,记录为两个目标视频块之间的关联程度;

s1.44、重复s1.41至s1.43直到计算出任意两个视频块之间的关联程度。

s1.5的具体方法包括:

s1.51、视频服务器从节点播放一个视频的播放记录中提取所有的视频块跳转过程;

s1.52、视频服务器计算所有视频块跳转过程的兴趣值;

s1.53、视频服务器对所有视频块跳转过程的兴趣值求和,得到节点对视频的兴趣程度。

s2的具体方法包括:

s2.1、视频服务器将所有节点对同一视频的兴趣程度构建成一个兴趣度集合;

s2.2、视频服务器从兴趣度集合中将最高兴趣程度移出,并且将最高兴趣程度对应的节点的播放记录定义为一个播放模式;

s2.3、视频服务器计算兴趣度集合中余下的兴趣程度与最高兴趣程度之间的兴趣相似度,以及参与兴趣相似度计算的两个兴趣程度所对应的节点之间的播放记录相似度;

s2.4、视频服务器根据兴趣相似度和播放记录相似度判断两个节点的播放行为是否相似;

s2.5、视频服务器将与最高兴趣程度对应的节点具有相似播放行为的所有节点均映射到s2.2的播放模式中;

s2.6、视频服务器重复执行s2.2至s2.5,直到兴趣度集合中所含元素数量为0,最终将所有节点聚类到若干个播放模式中,每个播放模式对应一个或者多个节点。

s2.3的具体方法包括:

s2.31、视频服务器计算兴趣度集合中余下的兴趣程度与最高兴趣程度的比值,记为兴趣相似度;

s2.32、视频服务器将节点的播放记录转换成二进制字符串,二进制字符串的长度与视频中视频块的数量相等,播放记录中存在的视频块对应的二进制字符为1,播放记录中不存在视频块对应的二进制字符为0;

s2.33、视频服务器计算两个二进制字符串之间的汉明距离,然后将二进制字符串的长度与汉明距离的差作为分子,将二进制字符串的长度作为分母,所得到的比值记为播放记录相似度。

s2.4的具体方法包括:

s2.41、视频服务器计算兴趣度集合中所有兴趣程度的均值;

s2.42、在兴趣度集合中余下的所有兴趣程度中,当兴趣程度大于均值,并且该兴趣程度对应节点与最高兴趣程度对应节点之间的播放记录相似度大于兴趣相似度时,判定该播放记录对应节点与最高兴趣程度对应节点的播放行为相似。

s3中,视频服务器在每个节点子集合中指定头节点的同时,还指定一个或者多个候选头节点,当头节点退出节点子集合时,候选头节点成为新的头节点;

头节点维护所属节点子集合内其它节点的状态更改行为的方法包括:

s3.11、头节点接收来自于所属节点子集合中其它节点的节点子集合变更请求,节点子集合变更请求包括新节点子集合信息和变更请求节点信息;

s3.12、头节点将变更请求节点从所属节点子集合中删除;

s3.13、头节点将节点子集合变更请求转发到新节点子集合的头节点;

s3.14、新节点子集合的头节点接收节点子集合变更请求,并将变更请求节点添加到所属节点子集合中;

所有头节点共同维护节点间的视频共享行为的方法包括:

s3.21、头节点接收来自于所属节点子集合内其它节点的视频请求消息或者从其它头节点转发来的视频请求消息,视频请求消息包括请求视频块信息;

s3.22、头节点根据请求视频块信息从所属节点子集合内所有节点缓存的视频块中进行查询,如果查询成功则将缓存有请求视频块的视频提供节点的信息返回给请求节点,请求节点与响应节点建立连接进行视频共享,如果查询失败则向请求节点返回失败消息。

s4的具体方法包括:

s4.a、新节点加入视频共享系统,具体方法包括s4.a1至s4.a5;

s4.a1、视频服务器接收新节点的加入请求消息,加入请求信息包括新节点信息、请求视频信息和新节点的缓存视频列表,然后视频服务器将新节点加入到节点列表中,并且将播放模式列表和所有头节点的信息发送给新节点;

s4.a2、新节点向所有头节点广播加入请求消息,并接收来自于头节点的查询成功消息或者查询失败消息,查询成功信息包含视频提供者id;

s4.a3、新节点在接收到第一个查询成功消息之后终止接收,丢弃后续的所有查询成功消息或者查询失败消息;

s4.a4、新节点根据第一个查询成功消息中的视频提供者id与视频提供者建立连接,接收从视频提供者发来的请求视频;

s4.a5、视频服务器将视频提供者的播放模式设置为新节点的默认播放模式,并且将新节点加入到视频提供者所在的节点子集合中;

s4.b、节点退出视频共享系统,具体方法为视频服务器接收节点的退出请求消息,退出请求消息包括该节点所有播放记录。

s5的具体方法包括:

s5.1、新节点计算在所属节点子集合内的自身搜索失败率;

s5.2、新节点从头节点获得所属节点子集合内所有节点的平均搜索失败率;

s5.3、新节点将自身搜索失败率与平均搜索失败率进行比较,如果自身搜索失败率大于平均搜索失败率,则进行s5.4,如果自身搜索失败率小于平均搜索失败率,则停止;

s5.4、新节点计算自身播放记录与所有播放模式的匹配度,并且从所有播放模式中选取与自身播放记录匹配度最高的一个播放模式作为新播放模式;

s5.5、新节点转移到新播放模式所对应的节点子集合中。

有益效果:

1、本发明通过考察用户在视频块间的跳转操作频率评估用户每次操作反应出两个视频块的内容间的关联程度,利用视频块的内容间的关联程度分析每个用户的播放记录,从而评价用户对于视频内容的兴趣程度,在获得用户对视频的兴趣程度的基础上,本发明基于兴趣程度来完成视频资源的共享,从而有效提高视频资源共享的效率;

2、本发明将拥有对视频内容兴趣程度最大值的节点的播放行为视为播放模式,并进一步通过比较两个节点对于视频内容的差异和播放行为的相似程度,判断两个节点在视频内容兴趣和播放行为上是否相似,从而实现对于播放模式的抽取和节点的聚类,具有相同播放模式的节点之间进行视频资源共享时能够显著减少资源搜索的时间,从而降低播放视频的延迟,提升用户体验;

3、本发明在节点聚类结果和播放模式抽取的基础上允许请求加入系统的节点向所有节点子集合的头节点广播视频请求消息,从而加速节点获取视频数据过程、提升视频搜索的成功率,降低节点的启动延时、提升视频系统的服务质量;

4、最后,本发明允许节点子集合中元素与播放模式之间进行重匹配、节点在节点子集合间跳转以及节点子集合头节点的替换,不仅能够有效提升视频系统的资源搜索性能、降低用户启动延时,而且也降低了节点子集合的维护负载、提升了系统的可扩展性。

附图说明

图1是本发明的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1是本发明的流程图。

无线视频共享系统中基于相似播放模式抽取的共享方法,无线视频共享系统包括视频服务器和若干个与视频服务器通信连接的节点,视频服务器存储着视频系统中所有的视频资源,为节点提供视频数据,共享方法包括s1至s5。

s1、视频服务器根据节点改变视频播放点的行为感知节点对视频内容的兴趣程度。

现有的视频点播服务大都允许节点在播放视频时通过改变播放点的位置,这里播放点指视频中正在播放的时间点,改变播放点位置的方式主要有快进、快退、暂停或者重新播放等,通过改变播放点,节点能够灵活地获取相应的时间点的视频内容。节点改变播放点的目的主要是获取感兴趣的内容和跳过不感兴趣的内容,因此节点每一次改变播放点位置的操作都反应了用户对视频内容的兴趣程度。当用户对视频内容感兴趣时,不执行或执行少量的播放点跳转操作,并且播放点跳转的距离较短,从而获取连续完整的视频内容;当用户对视频内容不感兴趣时,执行大量的播放点跳转操作,并且播放点跳转的距离较长,从而跳过大量的视频内容。每一个节点对同一视频内容的兴趣程度是不同的,可通过分析节点改变播放点的行为来抽取所有节点在播放同一视频时的共同行为。

s1的具体方法包括s1.1至s1.5。

s1.1、视频服务器将一个视频均匀分割成若干个连续的视频块,并对所有视频块依次编号。

例如任一视频vj可被均匀的划分为m个视频块,即vj=(c1,c2,…,cm),每个视频块具有一个序号,相邻两个视频块之间的序号差值为1。每个视频块对应一段连续视频,这段视频的时长可以根据实际情况灵活设定,例如视频vj的时长为5分钟,将其均匀划分为50个视频块,则每个视频块对应的一段连续视频的时长为6秒。

对视频进行分块的目的是在获取视频资源时需要按照一定长度来获取,如果视频块长度短,则视频块数量多,那么用户在视频播放过程中的视频块间跳转的次数就多,负载高;如果视频块数量少,则会带来视频块过长,预先加载到本地的视频数据就会由于播放点跳转而失效,导致网络带宽的浪费。因此,在实际应用中,需要根据网络内视频资源的具体情况对分块数量进行灵活调整。

s1.2、视频服务器将节点改变视频播放点的行为描述为视频块跳转过程。

s1.3、视频服务器将节点播放视频时产生的视频块跳转过程整合为一个播放记录,播放记录与节点和视频一一对应。

每个节点在播放视频vj后,均产生一个播放记录l(vj),播放记录中包含了节点播放过的所有视频块。若l(vj)中相邻视频块的序号差值均为1,则表明该节点在播放过程中未改主动改变播放点;若l(vj)中存在两个相邻视频块的序号差值大于1,则表明该节点在播放过程中产生了跳转操作。

s1.4、视频服务器根据所有节点播放同一视频的播放记录计算该视频中视频块之间的关联程度。

具体的说,当用户ni在播放视频sj时,播放点从视频块ch跳转到ck,则表明ch与ck产生了关联。若大多数用户均执行了从ch到ck的跳转,则表明ch与ck的视频内容联系紧密程度较高。在一个视频中,如果节点按照顺序正常播放,则总会从一个视频块跳转到下一个视频块,因此相邻的视频块在视频内容的联系程度上是最强的,同时很少会在两个序号差值较大的视频块之间进行跳转,所以若两个相邻视频块之间的序号差值越大,则两个视频块之间的联系程度越低。

另一方面,仅通过节点改变播放点的行为来判断视频块之间的关联程度是不够准确的。例如在实际播放视频的过程中,节点在两个序号差值很大的视频块之间进行跳转的目的通常是为了忽略大部分的视频内容,而不是因为两个视频块之间具有较高的关联程度。

因此,在计算视频块之间关联程度的时候,应当综合考虑所有节点的播放记录,如果有大量节点都在同样的两个视频块之间进行了跳转,则说明这两个视频块之间的关联程度是较高的。例如,当节点ni在播放视频sj时,播放点从视频块ch跳转到ck,则表明ch与ck产生了关联;若大多数节点均执行了从ch到ck的跳转,则表明ch与ck的视频内容联系紧密程度较高。

s1.4的具体方法包括s1.41至s1.44。

s1.41、视频服务器获取所有节点播放同一视频时在两个目标视频块之间进行跳转的目标频度。

s1.42、视频服务器获取所有节点播放同一视频时在任意两个视频块之间进行跳转的频度总和。

s1.43、视频服务器计算目标频度与频度总和的比值,记录为两个目标视频块之间的关联程度。

s1.44、重复s1.41至s1.43直到计算出任意两个视频块之间的关联程度。

例如对于视频vj,vj中两个视频块ch与ck之间的关联程度具体的计算方法为:

其中,fhk为所有用户执行从ch到ck的跳转频度;为所有用户在任意两个视频块间执行播放点跳转操作的频度总和;表示ch与ck之间的跳转关联程度。

s1.5、视频服务器根据视频中视频块之间的关联程度计算节点对视频的兴趣程度。

s1.5的具体方法包括s1.51至s1.53。

s1.51、视频服务器从节点播放一个视频的播放记录中提取所有的视频块跳转过程。

s1.52、视频服务器计算所有视频块跳转过程的兴趣值。

s1.53、视频服务器对所有视频块跳转过程的兴趣值求和,得到节点对视频的兴趣程度。

例如计算节点对视频vj的兴趣程度的方法为:

其中,ae表示一个从ch到ck的视频块跳转,任何一个视频块的跳转均属于当前用户ni的播放记录li(vj);s为播放记录li(vj)中所含跳转的数量。若ni顺序播放整个视频,则跳转数量为m-1,即s≤m-1;表示一个跳转ae的兴趣程度值。则pi(vj)表示ni对于视频vj的兴趣程度。

s2、视频服务器根据所有节点对同一视频内容的兴趣程度抽取出若干个播放模式,并根据播放模式对所有节点进行聚类,得到若干个节点子集合。

s2的具体方法包括s2.1至s2.6。

s2.1、视频服务器将所有节点对同一视频的兴趣程度构建成一个兴趣度集合。

例如对于视频vj,所有节点的兴趣程度构成一个兴趣度集合psj=(p1,p2,…,pn)。

s2.2、视频服务器从兴趣度集合中将最高兴趣程度移出,并且将最高兴趣程度对应的节点的播放记录定义为一个播放模式。

例如对于视频vj,首先将psj中的最大值pi从psj中移出,并且将pi对应的播放记录li(vj)作为一个播放模式,并将li(vj)加入到播放模式列表lsample中,余下的兴趣度集合记为

s2.3、视频服务器计算兴趣度集合中余下的兴趣程度与最高兴趣程度之间的兴趣相似度,以及参与兴趣相似度计算的两个兴趣程度所对应的节点之间的播放记录相似度。

s2.3的具体方法包括s2.31至s2.33。

s2.31、视频服务器计算兴趣度集合中余下的兴趣程度与最高兴趣程度的比值,记为兴趣相似度。

具体的计算方法为:

其中,pj和pi分别为节点nj和ni对于视频vj的兴趣程度值。由于pi为集合psj中的最大值,因此,pi≥pj,isij∈[0,1]。isij值越大,则表明nj和ni对于视频vj的兴趣相似度越高;反之,则表明nj和ni对于视频vj的兴趣相似度越低。

s2.32、视频服务器将节点的播放记录转换成二进制字符串,二进制字符串的长度与视频中视频块的数量相等,播放记录中存在的视频块对应的二进制字符为1,播放记录中不存在视频块对应的二进制字符为0。

例如,若节点nj观看了视频块c1,则sj的首位二进制字符值为1(即c1被包含在lj(vj)中);否则,若nj没有观看视频块c1(即c1没有被包含在lj(vj)中),则sj的首位二进制字符值为0。

s2.33、视频服务器计算两个二进制字符串之间的汉明距离,然后将二进制字符串的长度与汉明距离的差作为分子,将二进制字符串的长度作为分母,所得到的比值记为播放记录相似度。

具体的计算方法为:

其中,m为vj的视频块数量;d(si,sj)为两个二进制字符串的汉明距离。若lsij值越大,则表明nj和ni对于视频vj的播放行为越相似;反之,则表明nj和ni对于视频vj的播放行为越不相似。

s2.4、视频服务器根据兴趣相似度和播放记录相似度判断两个节点的播放行为是否相似。

s2.4的具体方法包括s2.41至s2.42。

s2.41、视频服务器计算兴趣度集合中所有兴趣程度的均值。

s2.42、在兴趣度集合中余下的所有兴趣程度中,当兴趣程度大于均值,并且该兴趣程度对应节点与最高兴趣程度对应节点之间的播放记录相似度大于兴趣相似度时,判定该播放记录对应节点与最高兴趣程度对应节点的播放行为相似。

例如,设为集合psj中所有元素的均值。若中任一元素且lsij≥isij,则认为nj和ni对于视频vj的播放行为是相似的;反之,则认为nj和ni对于视频vj的播放行为是不相似的。

s2.5、视频服务器将与最高兴趣程度对应的节点具有相似播放行为的所有节点均映射到s2.2的播放模式中。

例如,nj和ni具有播放行为相似,则将nj和ni构建一个新的节点子集合nsj,并将pj从中移除。

s2.6、视频服务器重复执行s2.2至s2.5,直到兴趣度集合中所含元素数量为0,最终将所有节点聚类到若干个播放模式中,每个播放模式对应一个或者多个节点。

经过上述的迭代处理过程,产生关于视频vj的播放模式列表lsample和节点子集合列表nlj=(nsa,nsb,…,nsk)。其中,nlj中任一元素与lsample中元素对应,也就是说,lsample中所含任一播放模式均与nlj中一个节点子集合对应。nlj中任一节点子集合中所含兴趣程度最大的元素为节点子集合的头元素,节点子集合的头元素负责接收视频请求消息、查找视频资源提供者和维护节点子集合中其他节点的状态(即当新的节点加入到子集合或子集合中节点退出当前子集合)。

s3、视频服务器在每个节点子集合中指定一个头节点,头节点负责维护所属节点子集合内其它节点的状态更改行为和资源缓存信息,所有头节点共同维护所有节点之间的视频共享行为。同时,还指定一个或者多个候选头节点,当头节点退出节点子集合时,候选头节点成为新的头节点。

由于节点子集合的头元素负责维护集合内节点的状态(加入和退出集合)、管理集合内存储的资源(收集集合内节点缓存的视频块信息)和处理视频块请求消息(集合内和集合外节点的请求消息),因此,头节点的负载往往较大。如何降低头节点的负载成为提升系统可扩展性的关键问题。

可以采用的第一种方式是,为头节点设置一个消息处理队列,队列的长度根据头节点的计算、存储、带宽和续航能力设定。若消息队列已满且有新的消息到达时,头节点将新到达的节点转发至候选头节点处并丢弃该消息;若消息队列未满,头节点继续处理新到达的消息。

可以采用的第二种方式是,如果视频系统规模较大即系统中所含系统成员节点数量较大时,头节点和候选头节点也无法承担海量请求消息处理负载,则可根据当前节点子集合内节点规模设定候选头节点的数量,即候选头节点子集合,从而均衡消息处理负载。

另一方面,因为头节点拥有当前节点子集合中兴趣程度的最大值,所以一旦头节点完成对于视频内容的播放退出该集合后,则集合内拥有当前兴趣程度最大值的节点应当成为新的头节点。因此,头节点会选择集合内拥有当前兴趣程度最大值的节点(除头节点外)为候选头节点,当头节点退出节点子集合时,头节点将本地维护的节点列表发送至候选头节点,向服务器发送一个包含新头节点信息及当前集合的节点列表至视频服务器,视频服务器更新本地维护的节点列表。此外,头节点向集合内所有节点广播新头节点的id,从而完成退出。

具体的方法如下。

其中,|nsi|为节点子集合nsi内所含节点数量;|li|为节点子集合对应播放模式内所含视频块数量;为头节点与候选头节点消息处理队列平均长度。|nsi|*|li|表示节点子集合内所有节点完成播放需要产生最大消息数量。为当前节点子集合所需的候选头节点子集合所含元素的数量。头节点将按照兴趣程度对集合内所有节点进行排序,并选择个节点作为候选头节点。候选头节点子集合中拥有最大兴趣程度值的节点负责记录其他候选头节点的消息处理负载,并根据负载分配请求消息。也就是说,头节点将请求消息转发至拥有最大兴趣程度值的候选头节点,后者根据其他候选头节点的负载均衡分配转发的消息,从而实现负载均衡,以提升系统的可扩展性。

头节点维护所属节点子集合内其它节点的状态更改行为的方法包括s3.11至s3.14。

s3.11、头节点接收来自于所属节点子集合中其它节点的节点子集合变更请求,节点子集合变更请求包括新节点子集合信息和变更请求节点信息。

s3.12、头节点将变更请求节点从所属节点子集合中删除。

s3.13、头节点将节点子集合变更请求转发到新节点子集合的头节点。

s3.14、新节点子集合的头节点接收节点子集合变更请求,并将变更请求节点添加到所属节点子集合中。

所有头节点共同维护节点间的视频共享行为的方法包括s3.21至s3.22。

s3.21、头节点接收来自于所属节点子集合内其它节点的视频请求消息或者从其它头节点转发来的视频请求消息,视频请求消息包括请求视频块信息。

s3.22、头节点根据请求视频块信息从所属节点子集合内所有节点缓存的视频块中进行查询,如果查询成功则将缓存有请求视频块的视频提供节点的信息返回给请求节点,请求节点与响应节点建立连接进行视频共享,如果查询失败则向请求节点返回失败消息。

例如,nk向头节点ni发送退出请求消息,ni将nk的消息从本地节点列表中删除,并转发nk的消息至新播放模式对应的节点子集合的头节点,从而完成nk在播放模式和节点子集合间的切换。否则,若lsample中元素与nk的播放记录匹配结果最大值小于等于nk与所在节点子集合对应播放模式的匹配结果,则nk停留在当前节点子集合中,且nk的集合内搜索失败次数重置为0。设置计算节点当前播放记录与播放模式列表lsample中所含元素间匹配程度的启动条件是为了避免频繁实施节点的播放模式和所属节点子集合间的切换,以降低节点子集合头节点的负载。

s4、视频服务器维护新节点加入系统或者节点退出系统。

s4的具体方法包括s4.a和s4.b。

s4.a、新节点加入视频共享系统,具体方法包括s4.a1至s4.a5。

s4.a1、视频服务器接收新节点的加入请求消息,加入请求信息包括新节点信息、请求视频信息和新节点的缓存视频列表,然后视频服务器将新节点加入到节点列表中,并且将播放模式列表和所有头节点的信息发送给新节点。

例如,当视频服务器收到来自于任一移动节点nk加入视频系统的请求消息后,视频服务器将nk的信息加入到节点列表lnode中,并将播放模式列表lsample和节点子集合的头节点列表nbsj发送至nk处。

s4.a2、新节点向所有头节点广播加入请求消息,并接收来自于头节点的查询成功消息或者查询失败消息,查询成功信息包含视频提供者id。

nk向nbsj中所有元素广播请求消息,nbsj中收到nk的请求消息后,为nk查询请求的视频资源,查询成功则向nk返回含有视频提供者id的确认消息。若nbsj中所有节点均无法查询到请求的视频资源,依然向nk返回查询失败消息,则nk向服务器请求视频数据。

s4.a3、新节点在接收到第一个查询成功消息之后终止接收,丢弃后续的所有查询成功消息或者查询失败消息。

为了避免多个查询成功消息之间产生冲突,nk会接受首个返回的查询成功消息并丢弃其余返回的确认消息,因为查询成功消息的返回速度能够在一定程度上反映出传输视频的速度更快。

s4.a4、新节点根据第一个查询成功消息中的视频提供者id与视频提供者建立连接,接收从视频提供者发来的请求视频。

s4.a5、视频服务器将视频提供者的播放模式设置为新节点的默认播放模式,并且将新节点加入到视频提供者所在的节点子集合中。

例如当任一移动节点nk加入视频系统后,nk连接视频提供者nh以获取视频数据。此时,由于nk处于视频播放的初始阶段,无法评估nk所属的播放模式,因此,nk加入nh所属的节点子集合nsi,且将nh对应的播放模式作为nk的默认播放模式,从而快速地将nk加入到视频系统中,以确保视频系统能够为nk提供服务,从而提升视频系统中新用户的使用体验。随后,nh向集合nsi的头节点ni发送nk的节点信息(包含nk的节点id和本地缓冲区中存储的视频块信息)。ni将nk的节点信息存储至本地的节点子集合nsi中。

s4.b、节点退出视频共享系统,具体方法为视频服务器接收节点的退出请求消息,退出请求消息包括该节点所有播放记录。

s5、视频服务器感知新节点主动改变所属节点子集合的行为。

随着新节点播放视频量的增加,新节点的播放模式可能会发生变化,例如新节点感兴趣的内容发生了改变,此时新节点可能会不适合其当前所属的节点子集合,需要转移到其它的节点子集合中。例如对于新节点nk,随着nk播放内容的增加,当nk的播放行为与nk所属节点子集合对应的播放模式差异逐渐扩大,此时nk会频繁地向其他节点子集合广播请求消息,也就是说,nk所属节点子集合存储的视频资源无法满足nk的需求,从而导致大量的节点子集合内资源搜索失败的情况。广播请求消息的搜索方式不仅增加nbsj中元素的负载,而且也增加了nk的启动延时。因此,nk需要计算当前播放记录与播放模式列表lsample中所含元素间的匹配程度,以重新调整所属的播放模式和节点子集合。

s5中,节点主动改变所属节点子集合的方法包括s5.1至s5.5。

s5.1、新节点根据在所属节点子集合内的自身搜索失败率,用rk表示。

s5.2、新节点从头节点获得所属节点子集合内所有节点的平均搜索失败率,用ri表示。

s5.3、新节点将自身搜索失败率与平均搜索失败率进行比较,如果自身搜索失败率大于平均搜索失败率,则进行s5.4,如果自身搜索失败率小于平均搜索失败率,则停止。

例如nk计算当前播放记录与播放模式列表lsample中所含元素间匹配程度的启动条件定义为:其中,和fk分别为nk的失败搜索次数和搜索总次数;和tfi分别为节点子集合nsi内搜索失败总次数和搜索总次数。

s5.4、新节点计算自身播放记录与所有播放模式的匹配度,并且从所有播放模式中选取与自身播放记录匹配度最高的一个播放模式作为新播放模式。

s5.5、新节点转移到新播放模式所对应的节点子集合中。

当nk完成与播放模式列表lsample中所含元素间匹配程度的计算时,若存在lsample中元素与nk的播放记录匹配结果最大值大于nk与所在节点子集合对应播放模式的匹配结果,则视nk的播放行为属于新的播放模式,nk退出当前节点子集合并加入新播放模式对应的节点子集合。

进一步的,因为节点的退出会导致视频系统内成员的播放记录发生变化,如果这种变化是频繁的,那么就会对抽取播放模式的过程造成不利影响,比如若每个节点退出之后视频服务器都重新抽取一遍播放模式则会对视频服务器产生巨大的计算压力,因此视频服务器收集所有系统成员的播放记录之前要先确定播放记录的更新周期,若更新周期时间超过规定阈值t时,则视频服务器根据收集的播放记录完成对于所有视频的播放模式抽取和对应节点子集合的聚类处理。

本发明提出了一种无线视频共享系统中基于相似播放模式抽取的共享方法,以下简称sppe。

首先,sppe提出了一个视频播放模式抽取算法,通过考察用户在视频块间的跳转操作频率评估用户每次操作反应出两个视频块的内容间的关联程度,利用视频块的内容间的关联程度分析每个用户的播放记录,从而评价用户对于视频内容的兴趣程度。在获得用户对视频的兴趣程度的基础上,本发明基于兴趣程度来完成视频资源的共享,从而有效提高视频资源共享的效率。

然后,sppe将拥有对视频内容兴趣程度最大值的节点的播放行为视为播放模式,并进一步通过比较两个节点对于视频内容的差异和播放行为的相似程度,判断两个节点在视频内容兴趣和播放行为上是否相似,从而实现对于播放模式的抽取和节点的聚类。具有相同播放模式的节点之间进行视频资源共享时能够显著减少资源搜索的时间,从而降低播放视频的延迟,提升用户体验。

之后,在节点聚类结果和播放模式抽取的基础上,sppe提出了节点加入系统的方法,允许请求加入系统的节点向所有节点子集合的头节点广播视频请求消息,从而加速节点获取视频数据过程、提升视频搜索的成功率,降低节点的启动延时、提升视频系统的服务质量。

最后,sppe进一步提出了节点子集合中元素与播放模式的重匹配和在节点子集合间跳转的方法、以及节点子集合头节点的替换方法,不仅能够有效提升视频系统的资源搜索性能、降低用户启动延时,而且也降低了节点子集合的维护负载、提升了系统的可扩展性。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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