一种流媒体网关的码率控制方法

文档序号:9202598阅读:305来源:国知局
一种流媒体网关的码率控制方法
【技术领域】
[0001]本发明涉及网络通信领域,特别涉及一种流媒体网关的码率控制方法。
【背景技术】
[0002]流媒体业务的分发和传输过程广泛使用了 HTTP协议。在NGB架构或NGOD架构的广播电视网络中,流媒体服务器通过基于TCP的HTTP协议从内容分发网络获取流式数据,经过处理后,以UDP方式推送给IPQAM等设备,进而发送给终端用户。流媒体服务器接收数据和推送数据的平均速率是一致的,均为节目流的预定码率。然而在实际网络传输过程中,数据包到达流媒体服务器的速率会发送抖动。
[0003]流媒体服务器下游的IPQAM对于数据发送速率的平滑性要求很高,而其上游内容分发网络传来的数据由于经过IP网络的传输,抖动可能非常大。因此,流媒体服务器必须对接收到的数据进行流量整形。可行的做法是使用一定长度的缓冲区队列暂存数据,接收到的包追加到队尾,同时周期性地按照一定速率从队头取出一些包,发送到下游,这种方法能够有效地平滑数据速率的抖动。
[0004]然而,缓冲区的空间毕竟有限,难以应对非常大的上游抖动。由于数据离开队头的速率是平滑的,当上游速率长期偏高时,队列会越来越长,直到发生上溢。而如果上游速率长期过低,队列长度会越来越短,直到发生下溢。上溢会导致数据内容的丢失,而下溢则导致队列无数据可发,发送速率不能保持平稳。

【发明内容】

[0005]本发明的目的在于克服现有技术中的流量整形方法会造成数据内容丢失或发送速率无法保持平稳的缺陷,从而提供一种流媒体网关的码率控制方法。
[0006]为了实现上述目的,本发明提供了一种流媒体网关的码率控制方法,所述流媒体网关至少包括数据接收模块、数据发送模块以及缓冲区,所述数据接收模块能够控制上游数据源的平均发送速率;该方法包括:
[0007]步骤I)、开启所述数据接收模块,由所述数据接收模块向上游数据源请求数据,数据接收模块接收到数据后,将所述数据追加到缓冲区队列;
[0008]步骤2)、监测缓冲区队列的长度,当达到第一阈值时,激活数据发送模块,所述数据发送模块从缓冲区队列取数据,按照数据流预定码率开始向下游发送数据;
[0009]步骤3)、在数据发送模块向下游发送数据的过程中,持续监测缓冲区队列的长度,如果所述缓冲区队列长度超过了上警戒长度,且数据接收模块处于激活状态,则关闭数据接收模块;如果所述缓冲区队列长度低于一适中长度,且数据接收模块处于关闭状态,则开启数据接收模块;如果所述缓冲区队列长度低于下警戒长度,且数据接收模块处于激活状态,则数据接收模块要求上游数据源以较当前平均发送速率更大的速率发送数据。
[0010]上述技术方案中,在步骤I)中,所述数据接收模块向上游数据源请求数据时,要求上游数据源发送数据的平均速率高于数据流预定码率。
[0011]上述技术方案中,所述第一阈值的大小为缓冲区队列上限长度的一个中间值。
[0012]上述技术方案中,所述上警戒长度为能被认定缓冲区队列即将发生上溢的长度,所述上警戒长度的大小在上限长度0.5倍-1倍之间。
[0013]上述技术方案中,所述下警戒长度是指能被认定缓冲区队列即将发生下溢的长度,所述下警戒长度的大小在上限长度0-0.5倍之间。
[0014]上述技术方案中,所述适中长度是介于下警戒长度和上警戒长度之间的一个长度值。
[0015]上述技术方案中,在所述的步骤3)中,当数据接收模块被关闭时,记录关闭前最后接收的数据在数据流中所处的位置,在下次被激活时从该位置重新开始向上游数据源请求数据。
[0016]本发明的优点在于:
[0017]本发明能够有效保障发送模块以平稳的速率向下游发送数据。
【附图说明】
[0018]图1是本发明的码率控制方法所涉及的模块之间的数据流向图;
[0019]图2是本发明的码率控制方法的流程图。
【具体实施方式】
[0020]现结合附图对本发明作进一步的描述。
[0021]参考图1,本发明的码率控制方法所适用的流媒体网关至少包括数据接收模块、缓冲区以及数据发送模块;其中的数据接收模块通过抖动性网络(如IP网络)从上游数据源请求并接收数据,所接收到的数据经缓冲区缓存后,通过数据发送模块向下游发送。所述数据接收模块与上游数据源通信时所采用的通信协议必须允许接收模块能够控制上游数据源的平均发送速率。
[0022]参考图2,本发明的方法包括:
[0023]步骤I)、开启数据接收模块,由所述数据接收模块向上游数据源请求数据,数据接收模块接收到数据后,将所述数据追加到缓冲区队列的队尾;
[0024]步骤2)、监测缓冲区队列的长度,当达到第一阈值时,激活数据发送模块,所述数据发送模块从缓冲区队列的队头取走部分数据,按照数据流预定码率开始向下游平稳地发送数据;
[0025]步骤3)、在数据发送模块向下游发送数据的过程中,持续监测缓冲区队列的长度,如果所述缓冲区队列长度超过了上警戒长度,且数据接收模块处于激活状态,则关闭数据接收模块,暂时停止数据接收;如果所述缓冲区队列长度低于一适中长度,且数据接收模块处于关闭状态,则开启数据接收模块;如果队列长度低于下警戒长度,且数据接收模块处于激活状态,则数据接收模块要求上游数据源以较当前平均发送速率更大的速率发送数据。
[0026]下面对本发明方法中的相关步骤做进一步描述。
[0027]在步骤I)中,所述数据接收模块向上游数据源请求数据时,要求上游数据源发送数据的平均速率高于数据流预定码率,在本实施例中,上游数据源发送数据的平均速率为数据流预定码率的1.2倍,在其他实施例中,上游数据源发送数据的平均速率也可以是高于数据流预定码率的其他倍数。
[0028]在步骤2)中,所述第一阈值的大小为缓冲区队列上限长度的一个中间值,在本实施例中,所述第一阈值的大小为缓冲区队列上限长度的0.5倍,在其他实施例中,也可根据需要进行调整,如所述第一阈值的大小为缓冲区队列上限长度的0.45倍或0.6倍等。
[0029]在步骤3)中,所述上警戒长度为可认定缓冲区队列即将发生上溢的长度,在本实施例中,其大小为上限长度0.9倍,在其他实施例中,上警戒长度的大小在上限长度0.5倍_1倍之间。
[0030]在步骤3)中,所述下警戒长度是指可认定缓冲区队列即将发生下溢的长度,在本实施例中,其大小为上限长度0.1倍,在其他实施例中,下警戒长度的大小在上限长度0-0.5倍之间。
[0031]在步骤3)中,所述适中长度是介于下警戒长度和上警戒长度之间的一个长度值,在本实施例中,其大小为上限长度0.5倍。
[0032]在所述的步骤3)中,当数据接收模块被关闭时,记录关闭前最后接收的数据在数据流中所处的位置,在下次被激活时从该位置重新开始向上游数据源请求数据。
[0033]在所述的步骤3)中,所述的较当前平均发送速率更大的速率为当前平均发送速率的1.2倍。
[0034]最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
【主权项】
1.一种流媒体网关的码率控制方法,其特征在于,所述流媒体网关至少包括数据接收模块、数据发送模块以及缓冲区,所述数据接收模块能够控制上游数据源的平均发送速率;该方法包括: 步骤I)、开启所述数据接收模块,由所述数据接收模块向上游数据源请求数据,数据接收模块接收到数据后,将所述数据追加到缓冲区队列; 步骤2)、监测缓冲区队列的长度,当达到第一阈值时,激活数据发送模块,所述数据发送模块从缓冲区队列取数据,按照数据流预定码率开始向下游发送数据; 步骤3)、在数据发送模块向下游发送数据的过程中,持续监测缓冲区队列的长度,如果所述缓冲区队列长度超过了上警戒长度,且数据接收模块处于激活状态,则关闭数据接收模块;如果所述缓冲区队列长度低于一适中长度,且数据接收模块处于关闭状态,则开启数据接收模块;如果所述缓冲区队列长度低于下警戒长度,且数据接收模块处于激活状态,则数据接收模块要求上游数据源以较当前平均发送速率更大的速率发送数据。2.根据权利要求1所述的流媒体网关的码率控制方法,其特征在于,在步骤I)中,所述数据接收模块向上游数据源请求数据时,要求上游数据源发送数据的平均速率高于数据流预定码率。3.根据权利要求1所述的流媒体网关的码率控制方法,其特征在于,所述第一阈值的大小为缓冲区队列上限长度的一个中间值。4.根据权利要求1所述的流媒体网关的码率控制方法,其特征在于,所述上警戒长度为能被认定缓冲区队列即将发生上溢的长度,所述上警戒长度的大小在上限长度0.5倍-1倍之间。5.根据权利要求1所述的流媒体网关的码率控制方法,其特征在于,所述下警戒长度是指能被认定缓冲区队列即将发生下溢的长度,所述下警戒长度的大小在上限长度0-0.5倍之间。6.根据权利要求1所述的流媒体网关的码率控制方法,其特征在于,所述适中长度是介于下警戒长度和上警戒长度之间的一个长度值。7.根据权利要求1所述的流媒体网关的码率控制方法,其特征在于,在所述的步骤3)中,当数据接收模块被关闭时,记录关闭前最后接收的数据在数据流中所处的位置,在下次被激活时从该位置重新开始向上游数据源请求数据。
【专利摘要】本发明涉及一种流媒体网关的码率控制方法,流媒体网关包括数据接收模块、数据发送模块以及缓冲区,数据接收模块能够控制上游数据源的平均发送速率;该方法包括:开启数据接收模块,向上游数据源请求数据,将数据追加到缓冲区队列;监测缓冲区队列的长度,当达到第一阈值时,激活数据发送模块,从缓冲区队列取数据,按照数据流预定码率开始向下游发送数据;持续监测缓冲区队列的长度,如果超过上警戒长度,且数据接收模块处于激活状态,关闭数据接收模块;如果低于一适中长度,且数据接收模块处于关闭状态,则开启数据接收模块;如果低于下警戒长度,且数据接收模块处于激活状态,则上游数据源以较当前平均发送速率更大的速率发送数据。
【IPC分类】H04L29/06, H04L12/801
【公开号】CN104917688
【申请号】CN201410090459
【发明人】陈君, 李明哲, 吴京洪, 樊皓, 叶晓舟
【申请人】中国科学院声学研究所, 北京海力汇通数字系统技术有限公司
【公开日】2015年9月16日
【申请日】2014年3月12日
【公告号】WO2015135349A1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1