对等网络点播系统中的定点数据预取方法

文档序号:6459903阅读:166来源:国知局

专利名称::对等网络点播系统中的定点数据预取方法
技术领域
:本发明属于分布式处理技术和流媒体技术的交叉领域,具体涉及一种对等网络点播系统中的数据预取方法,旨在减小用户拖动过程中的等待延迟和改善用户体验。该策略适用于在广域网范围内提供低延迟的大规模流媒体点播服务。
背景技术
:流媒体技术的应用一直是互联网上多媒体信息传播的主要方式,随着宽带网的日益普及,作为互联网杀手级应用之一的视频点播服务受到来自学术界和企业界的普遍关注。传统流媒体点播系统由于其可扩展性的限制,已经不能满足用户不断增长的性能需求。目前基于对等网络的大规模内容分发系统由于可以利用外围闲散的客户端资源,因而在扩展性、性价比、容错性方面具备相当大的潜力,在实际系统的应用方面也获得巨大成功。在此背景下,人们提出利用对等网络代替传统的集中式服务器模式来提供大规模的流媒体点播服务。基于对等网络的点播系统虽然在可扩展性方面具有明显的优势,但终端节点资源的不稳定性和动态性使得用户的体验难以得到有效保障。在这种情况下,对用户可能需要的数据进行部分预取可以有效改善视频流的流畅性,提高用户的观看体验。基于广域网的点播服务其最大特点是用户可以随时随地播放所提供的任何视频文件的任何地方(即支持用户的任意拖动)。该特征一方面给用户提供了充分的自由度,但另一方面也给对等网络点播系统的设计带来了巨大挑战,主要体现在如下几个方面1)用户观看过程中的拖动次数相对频繁。不像直播视频流,用户只能观看当前正在播放的内容,同一个视频节目中的用户观看位置相当集中并且容易从其它客户端找到即将需要的数据。对于点播流而言,客户端的观看位置分散在视频文件的各个时间点上,要找到和己播放位置相邻的客户端来给自己提供数据相对困难。2)拖动后往往需要一个不确定的延迟才能重新开始播放起来,期间用户无法观看任何内容,只能等待。根据调査,大部分的用户可能耐的等待延迟是510秒,超出这个时间范围,用户的体验会大幅下降。3)用户下一次拖动位置的不确定性也给数据预取策略设计带来困难。优先预取哪一部分数据是预取策略的关键问题。如果预取不当,预取的数据不仅不会改善用户体验,相反还会消耗更多的带宽资源。通过对用户的行为进行分析发现,多数情况下用户对一个视频文件只会观看一次,而且在拖动过程中往往并不要求拖动到某个具体的位置,而是无目的。
发明内容本发明的目的在于提供一种对等网络点播系统中的数据预取方法,该方法克服了由于用户行为预测不准导致的预取失效、带宽浪费等问题,有效地降低了用户拖动过程中遇到的等待延迟,并降低了媒体服务器的网络带宽开销和处理负载,提高了节点获得预取数据的速度和效率。本发明提供的对等网络点播系统中的定点数据预取方法,包括下述步骤(1)系统管理员上传新的媒体文件到源服务器;当第一个用户点击该媒体文件时,源服务器对该媒体文件进行定点设置,产生其对应的元数据索引文件,该索引文件用于标识该媒体文件中所存在的预取点的具体位置;(2)本地客户端节点获取所点播的媒体文件的索引文件信息,根据媒体的索引文件信息确定当前所观看媒体文件的预取点位置,然后获取当前播放位置后H个时间槽数据,H为系统预设值,同时利用剩余带宽从其他客户端节点或者源服务器,以"最小冗余度优先"的原则获取预取点位置上的时间槽数据;(3)当用户执行视频播放拖动操作时,本地客户端节点收到该拖动请求,根据当前数据窗口中时间槽状态,决定是否需要将播放位置调整到就近的预取点;如果需要,设置播放位置为就近预取点的第一个时间槽处,否则,设置播放位置为用户拖动请求的原目标位置。针对现有技术存在的问题,结合对用户行为的上述分析,本发明通过降低用户拖动延迟来改善用户的观看体验。与其他策略不同的是,该策略并不直接预测用户下一个拖动位置,而是以固定的时间间隔给每个视频文件预先设定预取点,并且利用客户端之间的协作和共享加快预取点的分发。当用户拖动时,客户端根据当前数据的预取情况来决定是否需要调整拖动点。如果拖动点的数据已经到达,则无须调整;如果拖动点的数据未到达,则将拖动点调整到最近的一个预取点,并从该点开始播放。由于多数情况下预取点附近的数据已经提前取回,所以拖动后可以立即开始播放,从而降低用户拖动后等待延迟,改善用户体验。具体而言,本发明具有以下特点(1)有效降低拖动延迟,改善用户的观看体验拖动延迟是点播系统性能优劣的一个重要指标,也是影响点播系统用户体验的重要因素。以前的研究数据表明,当用户拖动后的等待时间超过10秒时,用户持续观看下去的耐心和对系统的满意度将明显下降。本发明利用部分空闲带宽,在不影响当前播放流畅度的前提下预取部分将来可能需要的数据内容,不仅可以降低拖动延迟,而且可以有效地改善用户体验。(2)提高预取的准确性,降低无效的数据预取开销。用户拖动行为的随机性使下一个拖动点的位置变得难以预测,因此想要在用户拖动行为发生前准确预测其下一个拖动点的位置几乎是不现实的,也是不可能的。但这种随机性也表明,多数情况下用户的观看行为其实没有明显的目的性,对其拖动位置的细微变更不会影响用户的观看体验。基于这种情况,本发明提出的定点预取方法会自动将拖动位置调整到最近的数据预取点上。一方面可以降低拖动后的等待时间,另一方面也可以避免预取的数据没有被播放而导致的带宽浪费。(3)利用客户端之间的协作和共享加快预取点数据的分发速度在本发明所提出的定点预取方法中,观看同一部电影的所有客户端具有相同的数据预取点分布,因此客户端之间可以根据稀有度优先的原则相互协作,在尽量短的时间内将所有的数据预取回来。图1为本发明方法的应用系统结构示意图;图2为本发明的总体流程图;图3为步骤1中媒体文件的定点设置流程图;图4为步骤1定点分布示意图;图5为步骤2中定点数据预取流程图;图6为步骤3中用户拖动操作处理流程图;图7为步骤3中拖动位置调整示意图。具体实施方式本发明的基本思路是让客户端节点在满足当前播放需要的同时,主动向源服务器或者其他客户端节点预取部分后期可能需要的固定点位置的数据内容。这些固定点在当前的视频文件中依据媒体数据帧的逻辑时间成等间距分布。当用户拖动时,系统将拖动点调整到就近的一个已经预取的固定点上,实现拖动后的快速响应和迅速播放,减小在线视频点播的拖动等待时延,改善用户体验。下面结合附图对本发明作进一步详细说明。如图1所示,系统总体结构包括如下几部分A.源服务器l:保存了系统中所有的媒体文件内容和每个媒体文件对应产生的元数据索引文件;负责服务来自客户端节点的请求,包括媒体数据内容请求和元数据索引内容的请求。B.索引服务器2:索引当前系统中所有在线的客户端节点的信息,包括连接信息(IP地址,监听端口和全局唯一的标识号GUID)、当前播放的视频文件ID号、当前的播放位置;负责响应各个客户端节点的査询请求。C.客户端节点3.1、3.2、…、3.n:负责获取当前播放所需要的媒体数据内容。如果不能从其他客户端节点获取,就从源服务器获取。另外,定期向索引服务器询问当前有哪些客户端节点和自身在观看同一个媒体文件,并向这些客户端节点发起连接请求,建立数据共享的传输通道。D.管理员4:负责媒体文件的管理,包括添加、更新和删除。如图2所示,本发明所阐述的定点预取方法包括以下步骤(l)定点设置。首先系统管理员上传新的媒体文件F到源服务器;当第一个用户播放媒体文件F所对应的节目频道时,触发源服务器执行该媒体文件F的定点设置流程,产生其对应的元数据索引文件F.meta;该索引文件主要标识了这个媒体文件中所存在的预取点的具体位置。其具体实施过程如图3所示,主要由如下几个步骤来完成(1.1)根据媒体文件F的扩展名,加载对应文件类型的解析器。不同文件类型有不同的文件格式,其对应的文件解析器根据具体的文件格式,分析媒体文件中的逻辑数据单元,如音频数据帧和视频数据帧等。(1.2)文件解析器分析文件头部信息,提取媒体文件F的元数据信息,包括数据内容的时间长度T、数据流的数目、音频流和视频流的码率大小等。(1.3)遍历媒体文件的数据部分,读取每一帧的头部,获取其播放的逻辑时间戳t和关键帧标志位b。遍历过程中,帧的逻辑时间戳t从O到T以升序增长,其时间序列为UUt2,,tn,并且<formula>formulaseeoriginaldocumentpage9</formula>。通过遍历,文件解析器确定每个时间槽所对应的起始数据帧的位置pos和包括的帧数目k。每个时间槽包括一秒的数据内容,由几十个连续的数据帧组成。时间槽j包含的k个数据帧满足的条件是时间戳t取整后等于j,时间槽j的数据位置pos为k个数据帧中时间戳最小的那一帧的起始位置。(1.4)根据时间间隔M设置预取点。时间间隔M代表用户拖动后拖动点的调整精度。M越大,预取点越少,需要预取的数据量也越少,但对用户体验的影响会越大,主要是因为真实的拖动位置和调整后的位置之间的偏差变大。反之,M越小,预取点越多,需要预取的数据量也越多,对用户体验的影响也会越小。如图4所示,时间长度为T秒的媒体文件共包含T个时间槽。从文件开头,每隔M秒设置一个预取点,共T/M个预取点。每个预取点包括L个连续的时间槽。(1.5)创建对应的索引文件(如F.meta),并保存解析得到的元数据信息,数据槽位置信息和预取点的位置信息到该索引文件。(2)执行定点预取。定点预取的基本任务是根据媒体的索引文件信息,确定当前所观看媒体文件的预取点位置,然后在获取当前播放位置之后的H个时间槽数据的同时,利用剩余带宽从其他客户端节点或者源服务器,以"最小冗余度优先"的原则获取预取点位置上的时间槽数据。H为系统预设值,表示对等网络点播系统在播放的时候进行顺序预取的数据窗口大小,由程序开发人员定义,如取值为1,2,…,或10分钟。预取当前播放位置后的H个时间槽数据可以平滑数据传输过程中所遇到的抖动。H值过小,会容易导致播放过程经常出现播放停顿现象。H值过大,会容易导致过多数据被预取回来,但由于用户退出播放而没有被利用,从而降低带宽利用率。执行定点预取的具体实施过程和步骤如图5所示。(2.1)当用户点击节目F时,本地客户端节点向索引服务器获取初始的备选邻近客户端节点列表。(2.2)本地客户端节点得到备选节点列表后,尝试与所有备选节点建立连接通道。如果连接通道建立成功,则该备选节点成为本地客户端的一个伙伴节点,可以利用连接通道相互交换数据。(2.3)本地客户端节点判断是否有伙伴节点成功建立。如果有,转向步骤(2.4),否则转向步骤(2.5)。(2.4)本地客户端节点向某个伙伴节点请求媒体文件索引信息。媒体文件索引信息包含在一个元数据包中,标识了媒体文件的时间长度和预取点的个数和位置等信息。这个元数据包最初由源服务器解析媒体文件F对应的索引文件F.meta得到并分发到客户端节点。因此第一个客户端节点从源服务器请求索引信息,随后的客户端节点可以从其他伙伴节点获取索引信息,如果取不到,则继续从源服务器获取,完成后转到步骤(2.6)。(2.5)在没有任何伙伴节点的情况下,本地客户端节点直接向源服务器请求媒体文件索引信息。源服务器解析媒体文件F对应的索引文件F.meta,将索引信息打成元数据包分发给正在请求的客户端节点。(2.6)本地客户端节点根据取得的索引信息,确定媒体文件F中所有的预取点位置以及处于预取点上的所有时间槽。在每个数据调度周期中,本地客户端节点首先尽力从伙伴节点依次调度当前播放位置之后连续H秒的时间槽,然后本地客户端节点利用剩余的下载带宽以"最小冗余度优先"的原则调度目前仍未获取到的预取点数据。方法是根据当前伙伴节点的数据窗口快照(BM),计算预取点处仍未获取的各个时间槽的冗余度r。每个客户端节点的所有时间槽数据用一个数据窗口表示,窗口长度等于媒体文件的时间长度,即多少秒。伙伴节点的数据窗口快照BM标识了该伙伴节点当前数据窗口的状态,即表示每个时间槽的数据是否已获取。设当前K个伙伴节点(D"D2,,DK)的数据窗口快照依次为BM!,BM2,……,BMk,当前未获取到处于预取点位置的N个时间槽按时间升序排列依次为d,C2,……,CN,时间槽Ci的冗余度n等于K个BMj(Ci)之和。BMi(Ci)表示第j个伙伴节点的数据窗口中Ci位置上的时间槽是否存在,如果存在,则BMi(Ci)=1,否则BMi(Ci)=0。最后将N个时间槽按冗余度进行升序排列,排在最前面的时间槽优先调度出去,直至当前周期内的剩余下载带宽用完。冗余度为0的时间槽意味着当前没有任何伙伴节点获取该时间槽,所以必须向源服务器调度该时间^(2.7)本地客户端节点査看当前数据窗口的状态,检查预取点处的时伺槽数据是否都已经被取回,如果是,转到步骤(2.8),否则在回到步骤(2.6)。(2.8)本地客户端节点得到所有预取点处的时间槽,停止定点预取。(3)处理用户拖动操作。当用户执行视频播放拖动操作(如向前拖动和向后拖动),本地客户端节点收到该拖动请求时根据当前数据窗口中时间槽获取的状态,决定是否需要调整其拖动位置到就近的预取点。具体实施过程和步骤如图6所示。(3.1)用户拖动到新的目标位置P。(3.2)本地客户端节点收到该请求后,查看当前数据窗口中P,P+(L-l)位置上的时间槽数据是否已经全部获取或者部分获取。L为拖动后开始播放需要缓冲的时间槽数目,也等于一个预取点所包涵的连续的时间槽的数目。L和用户拖动可容忍的等待时间相关,也和媒体播放器的缓冲区长度相关,一般设置在520的范围内。如果是,转到步骤(3.3),否则转到步骤(3.4)。(3.3)保持目标位置P不变,新位置P'=P,转到步骤(3.5)。如图7中所示的向前拖动实例就属于这种情况。(3.4)将拖动点P调整到就近的一个预取点的开头位置。方法是从位置P分别向前和向后搜索,分别得到当前位置P紧邻的前一个预取点的头部位置P1和后一个预取点的头部位置P2。比较P和P1,P2之间的距离。如果lP-Pl|>|P-P2l,且对于向后拖动操作P2〉当前播放位置,对于向前拖动操作P2〈当前播放位置,则设置P,=P2;如果IP-Pl|<=|P-P2|,且对于向后拖动操作Pl〉当前播放位置,对于向前拖动操作Pl〈当前播放位置,则设置P'=P1;否则,设置P'=当前播放位置。如图7中所示的向后拖动的实例就属于这种情况。(3.5)根据当前数据窗口中P',P'+(L-1)位置上的时间槽数据的有无进行调度。(3.6)检査当前数据窗口中P,,P,+(L-1)位置上的时间槽数据是否已经全部到达。如果是,则转到步骤(3.7),否则转到步骤(3.5)。(3.7)开始向播放器发送数据,触发播放器开始播放。实例本方法已经应用于实际的对等网络点播系统当中,具体系统的概况和参数设置如表1和表2所示。表l给出了整个系统的服务器和规模。整个系统提供有1500多个文件,利用共享的100Mbps带宽最高为约400个并发客户端提供了码率为500600Kbps流媒体点播服务。表2给出了系统所运用的定点预取方法的参数设置。预取点之间的时间间隔(M)设置为300秒,即5分钟。每个预取点所包含的连续时间槽数目(L)设置为10个,即10秒。播放时顺序预取的数据窗口大小(H)设置为300秒。开始播放或每次拖动后需要缓冲的时间槽数目a)也设置为io个,即io秒钟的数据。表i:系统部件配置说明系统部件酉己置源服务器2台,操作系统RedhatLinux企业版4;处理器奔腾3GHz;内存2GB;硬盘500GB;网络共享100Mbps带宽索引服务器l台,操作系统Windows2003;处理器AMD2GHz;内存2GB;硬盘40GB;网络共享100Mbps带宽客户端节点大约400个,普通PC配置,桌面带宽为100Mbps22%的内网用户频道共约1500个视频文件,平均时间长度在45分钟,平均码率为500600Kbps表二实例系统中预取算法的参数设置<table>tableseeoriginaldocumentpage13</column></row><table>通过在系统中实施本说明阐述的定点预取策略,用户的观看体验取得明显改善。75%的向后拖动(向已观看的方向拖动)没有任何等待延迟,相比采用定点预取策略以前的60%提高了15%;60%的向前拖动(向未来没有看过的方向拖动)没有任何等待延迟,相比采用定点预取策略以前的25%提高了35%。平均的拖动延迟也减小了23秒,预取的时间槽利用率为87%。权利要求1、一种对等网络点播系统中的定点数据预取方法,其步骤包括(1)系统管理员上传新的媒体文件到源服务器;当第一个用户点击该媒体文件时,源服务器对该媒体文件进行定点设置,产生其对应的元数据索引文件,该索引文件用于标识该媒体文件中所存在的预取点的具体位置;(2)本地客户端节点获取所点播的媒体文件的索引文件信息,根据媒体的索引文件信息确定当前所观看媒体文件的预取点位置,然后获取当前播放位置后H个时间槽数据,H为系统预设值,同时利用剩余带宽从其他客户端节点或者源服务器,以“最小冗余度优先”的原则获取预取点位置上的时间槽数据;(3)当用户执行视频播放拖动操作时,本地客户端节点收到该拖动请求,根据当前数据窗口中时间槽状态,决定是否需要将播放位置调整到就近的预取点;如果需要,设置播放位置为就近预取点的第一个时间槽处,否则,设置播放位置为用户拖动请求的原目标位置。2、根据权利要求1所述的方法,其特征在于步骤(1)中定点设置的处理过程为(1.1)根据扩展名加载对应的媒体文件解析器;(1.2)通过解析器获取媒体文件的元数据信息;(1.3)遍历媒体文件的数据部分,使用以秒为单位的时间槽对整个媒体文件进行逻辑划分,确定每个时间槽的起始数据帧的位置和所包含的帧的数目;(1.4)根据对用户行为的观测和预期的使用体验,设置预取点的时间间隔,它代表用户拖动后拖动点的调整精度;(1.5)创建索引文件,并保存元数据信息、时间槽的位置信息和预取点的位置信息。3、根据权利要求1或2所述的方法,其特征在于步骤(2)的处理过程为(2.1)客户端节点从索引服务器获取初始的备选邻居客户端节点,并与所有备选节点建立网络连接;(2.2)通过连接建立的状态,判断客户端节点是否有邻居伙伴节点;如果有,转步骤(2.3),否则,转到步骤(2.4);(2.3)向某个伙伴节点获取媒体文件索引信息,成功完成转步骤(2.5),否则转到步骤(2.4);(2.4)向源服务器请求媒体文件索引信息;(2.5)由获取的媒体文件索引信息,确定所有预取点的位置及其所包含的时间槽;并在保障正常播放的前提下,利用剩余带宽,以"最小冗余度优先"的原则对客户端尚未获取的预取点时间槽进行调度;(2.6)根据本地数据缓存窗口判断是否所有预取点数据已经获得,如果是,转到步骤(2.7),否则,转步骤(2.5);(2.7)停止定点预取。4、根据权利要求3所述的方法,其特征在于步骤(3)的处理过程为(3.1)用户拖动到新的目标位置P;(3.2)本地客户端节点收到该请求后,查看当前数据窗口中P,P+(L-l)位置上的时间槽数据是否已经全部获取或者部分获取,如果是,转到步骤(3.3),否则转到步骤(3.4);其中,L为该预取点所包含的连续时间槽的个数;(3.3)保持目标位置P不变,新位置P,=P,转到步骤(3.5);(3.4)按照下述方法将拖动点P调整到就近的一个预取点的开头位置:(Al)从位置P分别向前和向后搜索,分别得到当前位置P紧邻的前一个预取点的头部位置Pl和后一个预取点的头部位置P2;(A2)比较P和Pl,P2之间的距离,设置新的播放位置P';如果IP-Pli〉|P-P2|,且对于向后拖动操作P2〉当前播放位置,对于向前拖动操作P2〈当前播放位置时,则设置P'=P2;如果lP-Pll《|P-P2|,且对于向后拖动操作P1〉当前播放位置,对于向前拖动操作PK当前播放位置,则设置P'=P1;否则,设置P'二当前播放位置;(3.5)根据当前数据窗口中P',P'+(L-1)位置上的时间槽数据的有无进行调度;(3.6)检査当前数据窗口中P,,P,+(L-1)位置上的时间槽数据是否己经全部到达;如果是,则转到步骤(3.7),否则转到步骤(3.5);(3.7)开始向播放器发送数据,触发播放器开始播放。全文摘要本发明公开了对等网络点播系统中的定点数据预取方法,流程如下①结合用户行为和体验改善的分析,确定定点设置的时间间隔;并通过文件分析器解析媒体头文件和数据文件,记录元数据信息,并创建相应的索引文件;②根据媒体索引文件的信息,在确保当前播放数据获取的条件下,利用剩余带宽,以“最小冗余度优先”的原则从伙伴节点或源服务器获得预取点数据;③客户端根据用户的拖动位置,结合当前频道缓存窗口中媒体数据获取的状况,自动调整播放位置到用户指定的时间点,或者最邻近的预取点。本发明基于对用户行为的观测,并充分利用对等网络的特点,实现定点数据的有效共享,降低了流媒体服务器的带宽消耗,改善用户的观看体验,适合于大规模的应用。文档编号G06F17/30GK101242430SQ20081004692公开日2008年8月13日申请日期2008年2月22日优先权日2008年2月22日发明者洋余,周思炜,廖小飞,帆张,斌程,蒋文斌,海金,翀黄申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1