技术领域
[0001] 本
发明涉及计算机流媒体领域,更具体的说,涉及一种流媒体数据的控制系统及其方法。
背景技术
[0002] 流媒体是一种新的媒体传送方式及其延时性小、缓存容量要求低。流媒体吧各种多媒体
数据处理成数据包后发送给同处于网络中的用户端,由该用户端对该数据包进行接包,并播放。而随着互联网络
基础设施与接入技术的发展,使得网络对超大规模数据交换的支持发生质的飞跃,相关的网络视频直播/点播、大规模数据共享系统获得了足够底层技术
支撑,成为目前互联网络上占用流量大、用户量高、影响范围广的互联网应用。其中应用
对等网络(Peer-to-Peer Network,以下简称P2P网络)能够最大限度地减轻媒体发布者的数据传输压
力,将数据的提供责任转给网络上的普通流媒体用户。这种打散数据流的方式能够适应多变的互联网络环境,提高网络负载的均衡性,因此受到极大欢迎。
[0003] 然而为保证一定的媒体回放
质量,流媒体数据分片的下载顺序要有一定规则,其下载终端也需要在数据缓冲空间和回放时延中找到令回放效果最佳的平衡点。目前还没有能够稳定地保证流媒体连贯回放的技术方案。
发明内容
[0004] 为了解决上述的技术问题,提供了一种流媒体数据的处理系统及其,其目的在于,保证
节点流媒体数据连贯回放;提高数据缓存对网络带宽变化的自适应能力,从而提高终端用户的满意度。
[0005] 为实现上述目的,本发明提供了一种流媒体数据的控制系统,该系统包括:
[0006] 预处理模
块,接收客户端发送的数据分片
请求信息,用户节点建立滑动窗口;
[0007] 分配模块,根据所述数据分片请求信息分配属于滑动窗口内的流媒体数据分片下载任务;
[0008] 控制处理模块,确定该数据分片请求信息对应的流媒体数据,用户节点提交所述流媒体数据给流媒体数据解码与回放模块以进行播放,直至流媒体数据下载完毕或用户节点终止流媒体的数据控制过程。
[0009] 所述控制系统还包括:
[0010] 分割标识模块,用户节点将流媒体数据分成多个数据块,并赋予不同标识进行缓存;
[0011] 任务处理模块,根据各邻居节点的数据分片资源信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点;
[0012] 控制播放模块,当初始化缓冲区被填满后,用户节点提交缓冲区中的数据给流媒体数据解码与回放模块以进行播放。
[0013] 滑动窗口包含多个基本窗口,所述基本窗口包含多个数据片空间。
[0014] 预处理模块中,用户节点还根据网络可用带宽周期性地调整滑动窗口的大小。用户节点还周期性将本地存储的数据分片信息广播给邻居节点,以方便邻居节点调度数据分片下载任务。
[0015] 为实现上述目的,本发明还提供一种流媒体数据的控制方法,该方法包括:
[0016] 步骤1,接收客户端发送的数据分片请求信息,用户节点建立滑动窗口;
[0017] 步骤2,根据所述数据分片请求信息分配属于滑动窗口内的流媒体数据分片下载任务;
[0018] 步骤3,确定该数据分片请求信息对应的流媒体数据,用户节点提交所述流媒体数据给流媒体数据解码与回放模块以进行播放,直至流媒体数据下载完毕或用户节点终止流媒体的数据控制过程。
[0019] 在步骤1之前还包括:
[0020] 步骤5,用户节点将流媒体数据分成多个数据块,并赋予不同标识进行缓存;
[0021] 步骤6,根据各邻居节点的数据分片资源信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点;
[0022] 步骤7,当初始化缓冲区被填满后,用户节点提交缓冲区中的数据给流媒体数据解码与回放模块以进行播放。
[0023] 滑动窗口包含多个基本窗口,所述基本窗口包含多个数据片空间。
[0024] 步骤1中,用户节点还根据网络可用带宽周期性地调整滑动窗口的大小。用户节点还周期性将本地存储的数据分片信息广播给邻居节点,以方便邻居节点调度数据分片下载任务。
[0025] 本发明为P2P环境下的流媒体数据交换提供了一种数据交换调度机制,能够同时考虑到流媒体回放的
稳定性、流媒体数据的回放时延、网络带宽资源的变化,为流媒体数据交换提供高效的数据分片下载调度方法,提高流媒体终端的回放质量,提高终端用户的满意度。
附图说明
[0026] 图1为本发明的流媒体数据的控制系统示意图;
[0027] 图2为本发明的流媒体数据的控制方法
流程图。
具体实施方式
[0028] 下面结合附图和具体实施方式对本发明进行说明。
[0029] 图1为本发明的流媒体数据的控制系统示意图。如图1所示,该系统包括:
[0030] 预处理模块100,接收客户端发送的数据分片请求信息,用户节点建立滑动窗口;
[0031] 分配模块200,根据所述数据分片请求信息分配属于滑动窗口内的流媒体数据分片下载任务;
[0032] 控制处理模块300,确定该数据分片请求信息对应的流媒体数据,用户节点提交所述流媒体数据给流媒体数据解码与回放模块以进行播放,直至流媒体数据下载完毕或用户节点终止流媒体的数据控制过程。
[0033] 所述控制系统还包括:
[0034] 分割标识模块400,用户节点将流媒体数据分成多个数据块,并赋予不同标识进行缓存;
[0035] 任务处理模块500,根据各邻居节点的数据分片资源信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点;
[0036] 控制播放模块600,当初始化缓冲区被填满后,用户节点提交缓冲区中的数据给流媒体数据解码与回放模块以进行播放。
[0037] 滑动窗口包含多个基本窗口,所述基本窗口包含多个数据片空间。
[0038] 预处理模块100中,用户节点还根据网络可用带宽周期性地调整滑动窗口的大小。用户节点还周期性将本地存储的数据分片信息广播给邻居节点,以方便邻居节点调度数据分片下载任务。
[0039] 本发明中的用户节点,指发出流媒体数据下载指令、开启流媒体传输和回放过程的用户所使用的流媒体终端节点;邻居节点,指在用户节点邻居节点列表上,能够与该用户节点直接进行数据交换的流媒体终端节点。
[0040] 数据分片为为了应对网络层传输协议对数据包大小的限制,
对流媒体数据按照一定规则分解成为适合互联网络传输的较小数据块。在本发明中,数据分片概念为流媒体数据分割的最小尺度。基本窗口的大小(size)不小于数据分片的大小。例如,对
视频流媒体来说,我们假设一个
视频帧的大小为2-4k bytes,以太网的MTU通常限制在1500bytes一个包,因此在实际传输时需要将该视频帧切分为最少2-3个数据分片;而基本窗口的大小可以为1个或几个视频帧的大小。基本窗口是数据缓存向流媒体数据解码与回放模块提交数据的最小尺度,其描述的是媒体数据编/解码与回放机制对连续播放流媒体数据的要求。一个基本窗口中可以包含一个或多个数据分片。滑动窗口描述的是所述用户节点当前可用的流媒体传输带宽,通常包含一个或多个基本窗口,如本例中SW就同时包含了BW1、BW2和BW3三个基本窗口。另外,还有初始化缓冲空间InitBuff的概念,其作用是在多媒体数据下载任务建立初期,对数据做一定数据量的缓冲,以防止网络的不稳定对用户节点的影响,较大程度上保证流媒体数据的回放质量。
[0041] 当用户节点发起一个多媒体数据流下载请求时,该用户节点首先在缓存空间中分配一个初始化缓冲空间,然后根据邻居节点广播的数据分片拥有信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点。
[0042] 当所述初始化缓冲空间中的数据下载完成时,数据缓存模块将初始化缓冲空间中的数据提交给专
门的流媒体数据解码与回放模块,解码后开始数据的回放。同时,紧邻初始化缓冲空间的终止边界顺序建立基本窗口BWi,i为自然数,基本窗口的大小可以根据该流媒体所使用的编解码标准确定。若流媒体数据的编码格式在某一时刻改变成其他编码方式,对连续播放流媒体数据的需求有了变化,则用户节点可以立即相应更改基本窗口的大小,而不会影响到节点上流媒体数据缓存的效率。
[0043] 最后,所述用户节点紧邻初始化缓冲空间的终止边界建立滑动窗口,启动滑动窗口机制对流媒体数据的下载过程进行调度。首先,所述用户节点根据滑动窗口尺寸参数确定滑动窗口的终止边界滑动窗口的大小为3个基本窗口的大小;第二,所述用户节点使用相同的方法,根据各个邻居节点所拥有数据分片的信息,分配属于所述滑动窗口的流媒体数据分片下载任务给一个或多个邻居节点;当紧邻所述滑动窗口起始边界的基本窗口被填满时,提交该基本窗口中数据给流媒体数据解码与回放模块;此时,滑动窗口的起始边界和终止边界同时向后移动,
覆盖已提交数据所代表流媒体时刻之后的基本窗口,这也是滑动窗口名称的来源;所述用户节点重复上述步骤中的数据下载与提交过程,直到该流媒体数据全部下载完毕,或者因其他原因导致流媒体数据交换
进程的终止。
[0044] 本发明中的基于滑动窗口辅助的流媒体数据交换方法应用范围广泛。由于使用数据分片、基本窗口、滑动窗口的概念分别表述网络层的数据传输能力、应用层的数据传输要求、以及网络可用带宽的数量,该数据交换方法可以满足多种流媒体数据传输应用系统的需求,如客户端/
服务器模式的视频直播、点播服务,对等网络模式的视频直播、点播服务,以及多媒体网络电话等。
[0045] 滑动窗口反应的是用户节点可用网络带宽的数量,而由于互联网络连接的不稳定性,该可用带宽数量是一个不断变化的数值。因此用户节点需要周期性探测当前可用带宽的数量,并修正滑动窗口的大小值。当前滑动窗口的大小为3个基本窗口的大小。若用户节点探测到网络可用带宽增加,就可以按照该贷款的增加量重设滑动窗口的大小为4个基本窗口甚至更多。另外,由于流媒体的数据传输有一定的实时性要求,若网络的可用带宽无法支持一个基本窗口的数据下载,则其回放质量就不可能达到要求。
[0046] 由于滑动窗口中的数据并不是完全按照时间顺序到达,因此当紧邻滑动窗口的初始边界的基本窗口数据被填满时,若相邻时间的其他一个或多个流媒体数据基本窗口已经填满,则可以一次提交多个基本窗口。例如,滑动窗口SW包含基本窗口BW1、BW2和BW3.当BW1中的数据全部到达后,用户节点判断紧邻BW1的基本窗口BW2中的数据也已经全部到达,但BW3的数据还未完全到达。则用户节点将基本窗口BW1和BW2所包含的流媒体数据提交给流媒体数据解码与回放模块,同时将滑动窗口SW向后滑动两个基本窗口,亦即,令滑动窗口覆盖基本窗口BW3、BW4和BW5。
[0047] 若本发明中的基于滑动窗口辅助的流媒体数据交换方法被应用在对等网络中的应用场景时,所述用户节点还需要周期性向其邻居节点广播本地缓存空间中已下载的流媒体数据分片信息,并在邻居节点提出数据请求时提供相关流媒体数据。
[0048] 流媒体数据解码与回放模块在解码时通常支持一定程度的容错性,也就是说,如果接收到的数据有一定程度的失真或损失,
解码器具备修复或部分修复数据的能力。因此,当一个基本窗口的最迟提交时刻到来时,如果仍然有部分该窗口所属的数据分片未能到达,则数据缓存仍然可以提交该不完整基本窗口中的数据给流媒体解码器。这样可以最大限度的利用已有的数据资源,尽量提高流媒体的回放质量。
[0049] 本发明还提供一种流媒体数据的控制方法,该方法包括:
[0050] 步骤101,接收客户端发送的数据分片请求信息,用户节点建立滑动窗口;
[0051] 步骤102,根据所述数据分片请求信息分配属于滑动窗口内的流媒体数据分片下载任务;
[0052] 步骤103,确定该数据分片请求信息对应的流媒体数据,用户节点提交所述流媒体数据给流媒体数据解码与回放模块以进行播放,直至流媒体数据下载完毕或用户节点终止流媒体的数据控制过程。
[0053] 在步骤101之前还包括:
[0054] 步骤104,用户节点将流媒体数据分成多个数据块,并赋予不同标识进行缓存;
[0055] 步骤105,根据各邻居节点的数据分片资源信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点;
[0056] 步骤106,当初始化缓冲区被填满后,用户节点提交缓冲区中的数据给流媒体数据解码与回放模块以进行播放。
[0057] 滑动窗口包含多个基本窗口,所述基本窗口包含多个数据片空间。
[0058] 步骤101中,用户节点还根据网络可用带宽周期性地调整滑动窗口的大小。用户节点还周期性将本地存储的数据分片信息广播给邻居节点,以方便邻居节点调度数据分片下载任务。
[0059] 本发明中的用户节点,指发出流媒体数据下载指令、开启流媒体传输和回放过程的用户所使用的流媒体终端节点;邻居节点,指在用户节点邻居节点列表上,能够与该用户节点直接进行数据交换的流媒体终端节点。
[0060] 数据分片为为了应对网络层传输协议对数据包大小的限制,对流媒体数据按照一定规则分解成为适合互联网络传输的较小数据块。在本发明中,数据分片概念为流媒体数据分割的最小尺度。基本窗口的大小(size)不小于数据分片的大小。例如,对视频流媒体来说,我们假设一个视频帧的大小为2-4k bytes,以太网的MTU通常限制在1500bytes一个包,因此在实际传输时需要将该视频帧切分为最少2-3个数据分片;而基本窗口的大小可以为1个或几个视频帧的大小。基本窗口是数据缓存向流媒体数据解码与回放模块提交数据的最小尺度,其描述的是媒体数据编/解码与回放机制对连续播放流媒体数据的要求。一个基本窗口中可以包含一个或多个数据分片。滑动窗口描述的是所述用户节点当前可用的流媒体传输带宽,通常包含一个或多个基本窗口,如本例中SW就同时包含了BW1、BW2和BW3三个基本窗口。另外,还有初始化缓冲空间InitBuff的概念,其作用是在多媒体数据下载任务建立初期,对数据做一定数据量的缓冲,以防止网络的不稳定对用户节点的影响,较大程度上保证流媒体数据的回放质量。
[0061] 当用户节点发起一个多媒体数据流下载请求时,该用户节点首先在缓存空间中分配一个初始化缓冲空间,然后根据邻居节点广播的数据分片拥有信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点。
[0062] 当所述初始化缓冲空间中的数据下载完成时,数据缓存模块将初始化缓冲空间中的数据提交给专门的流媒体数据解码与回放模块,解码后开始数据的回放。同时,紧邻初始化缓冲空间的终止边界顺序建立基本窗口BWi,i为自然数,基本窗口的大小可以根据该流媒体所使用的编解码标准确定。若流媒体数据的编码格式在某一时刻改变成其他编码方式,对连续播放流媒体数据的需求有了变化,则用户节点可以立即相应更改基本窗口的大小,而不会影响到节点上流媒体数据缓存的效率。
[0063] 最后,所述用户节点紧邻初始化缓冲空间的终止边界建立滑动窗口,启动滑动窗口机制对流媒体数据的下载过程进行调度。首先,所述用户节点根据滑动窗口尺寸参数确定滑动窗口的终止边界滑动窗口的大小为3个基本窗口的大小;第二,所述用户节点使用相同的方法,根据各个邻居节点所拥有数据分片的信息,分配属于所述滑动窗口的流媒体数据分片下载任务给一个或多个邻居节点;当紧邻所述滑动窗口起始边界的基本窗口被填满时,提交该基本窗口中数据给流媒体数据解码与回放模块;此时,滑动窗口的起始边界和终止边界同时向后移动,覆盖已提交数据所代表流媒体时刻之后的基本窗口,这也是滑动窗口名称的来源;所述用户节点重复上述步骤中的数据下载与提交过程,直到该流媒体数据全部下载完毕,或者因其他原因导致流媒体数据交换进程的终止。
[0064] 本发明中的基于滑动窗口辅助的流媒体数据交换方法应用范围广泛。由于使用数据分片、基本窗口、滑动窗口的概念分别表述网络层的数据传输能力、应用层的数据传输要求、以及网络可用带宽的数量,该数据交换方法可以满足多种流媒体数据传输应用系统的需求,如客户端/服务器模式的视频直播、点播服务,对等网络模式的视频直播、点播服务,以及多媒体网络电话等。
[0065] 滑动窗口反应的是用户节点可用网络带宽的数量,而由于互联网络连接的不稳定性,该可用带宽数量是一个不断变化的数值。因此用户节点需要周期性探测当前可用带宽的数量,并修正滑动窗口的大小值。当前滑动窗口的大小为3个基本窗口的大小。若用户节点探测到网络可用带宽增加,就可以按照该贷款的增加量重设滑动窗口的大小为4个基本窗口甚至更多。另外,由于流媒体的数据传输有一定的实时性要求,若网络的可用带宽无法支持一个基本窗口的数据下载,则其回放质量就不可能达到要求。
[0066] 由于滑动窗口中的数据并不是完全按照时间顺序到达,因此当紧邻滑动窗口的初始边界的基本窗口数据被填满时,若相邻时间的其他一个或多个流媒体数据基本窗口已经填满,则可以一次提交多个基本窗口。例如滑动窗口SW包含基本窗口BW1、BW2和BW3.当BW1中的数据全部到达后,用户节点判断紧邻BW1的基本窗口BW2中的数据也已经全部到达,但BW3的数据还未完全到达。则用户节点将基本窗口BW1和BW2所包含的流媒体数据提交给流媒体数据解码与回放模块,同时将滑动窗口SW向后滑动两个基本窗口,亦即,令滑动窗口覆盖基本窗口BW3、BW4和BW5。
[0067] 若本发明中的基于滑动窗口辅助的流媒体数据交换方法被应用在对等网络中的应用场景时,所述用户节点还需要周期性向其邻居节点广播本地缓存空间中已下载的流媒体数据分片信息,并在邻居节点提出数据请求时提供相关流媒体数据。
[0068] 流媒体数据解码与回放模块在解码时通常支持一定程度的容错性,也就是说,如果接收到的数据有一定程度的失真或损失,解码器具备修复或部分修复数据的能力。因此,当一个基本窗口的最迟提交时刻到来时,如果仍然有部分该窗口所属的数据分片未能到达,则数据缓存仍然可以提交该不完整基本窗口中的数据给流媒体解码器。这样可以最大限度的利用已有的数据资源,尽量提高流媒体的回放质量。
[0069] 本领域的技术人员在不脱离
权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的
修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。