一种利用时间轮控制发送速度的方法及装置制造方法及图纸

技术编号:29959869 阅读:26 留言:0更新日期:2021-09-08 09:17
本发明专利技术公开了一种利用时间轮控制发送速度的方法及装置,涉及OTT视频传输技术领域。该方法包括:按照码率的不同将媒体分片文件划分为不同码率的数据并创建相应个数的时间轮;所述时间轮为级联关系,且下级时间轮内设有跳转标志位和轮转圈数,根据跳转标志位和轮转圈数判断是否需要跳至上级时间轮;将媒体分片的不同码率的数据放置于对应时间轮的槽位内;发送数据时,各个时间轮按照级联的形式驱动,下级时间轮驱动上级时间轮,随着每个时间轮的转动,相应码率的数据被发出;当后续有新码率时,则动态新增时间轮。本发明专利技术不但可避免大量的无效检测过程,保证系统资源的有效利用,而且能适应各种码率的情况,适用范围广,满足实际应用需求。用需求。用需求。

【技术实现步骤摘要】
一种利用时间轮控制发送速度的方法及装置


[0001]本专利技术涉及OTT视频传输
,具体来讲是一种利用时间轮控制发送速度的方法及装置。

技术介绍

[0002]随着互联网技术的发展,越来越多的用户使用多种终端在线观看视频直播类的节目。承载在互联网上的越顶(英文全称为Over The Top,简称为OTT)视频业务迅速发展,这种视频业务又被称为OTT视频,是指基于互联网的视频服务。但是,视频直播的业务场景中通常利用单播的方式传输数据,于是网络带宽的占用与在线用户数的数量线性相关。一旦在线用户数上升至一定的数量,将会给网络带宽带来极大的压力和影响。
[0003]目前,为了降低骨干网的带宽压力,OTT系统将直播源的HLS(HTTP Live Streaming,苹果公司实现的基于HTTP的流媒体网络传输协议)分片转换成组播输出,用户的家庭网关加入组播组收取组播数据后再还原为视频分片,最后以HLS协议的形式为用户提供服务。而直播源提供的分片有时是CBR(Constant Bit Rate,固定比特率)有时是VBR(Variable Bit Rate,可变比特率)的。现有技术在处理VBR类型的TS分片转为RTP包后,为了保证TS分片中高码率的部分快速发送出去,需要不断检测待发送的RTP包是否已经达到了发送条件,于是产生了大量的无效检测过程,极大地浪费了系统的资源。
[0004]具体来说,现有的VBR分片的发送采取定时检查策略,通常包括以下步骤:
[0005](1)定时扫描待发送的数据,用当前时间减去待发送数据的初始发送时间得到从初始发送时刻到目前的时长;
[0006](2)用待发送数据的码率乘以步骤(1)中计算出来的时长得到预期发送字节数;
[0007](3)判断预期发送字节数是否大于已经发送字节数,如果大于则发送数据,并将本次发送出去的字节数累加至已经发送字节数。
[0008]上述的计算过程是理想的状态,实际应用中还存在着大量的计算过程。特别是在发送低码率的部分时,以上三个步骤大部分时间是无效操作(因为大部分时间的检查结果都是不满足发送条件,属于无效工作),白白浪费了CPU的计算能力,也增加了系统的损耗。

技术实现思路

[0009]本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种利用时间轮控制发送速度的方法及装置,不但可以避免大量的无效检测过程,保证系统资源的有效利用,而且能适应不同媒体文件的不同码率、同一媒体文件的多种码率等各种情况,适用性广泛,满足实际应用需求。
[0010]为达到以上目的,本专利技术提供一种利用时间轮控制发送速度的方法,该方法包括:
[0011]A、按照码率的不同将当前媒体分片文件划分为不同码率的数据,并根据划分的不同码率的数量,创建相应个数的时间轮;所述时间轮为级联关系,且下级时间轮内设有跳转标志位和轮转圈数,下级时间轮根据所述跳转标志位和轮转圈数判断是否需要跳至上级时
间轮;
[0012]B、将当前媒体分片的不同码率的数据分别放置于对应的时间轮的槽位内;
[0013]C、发送数据时,各个时间轮按照级联的形式驱动,下级的时间轮驱动上级的时间轮,随着每个时间轮的转动,相应时间轮的槽位内数据被发出;
[0014]D、当后续媒体分片文件划分有新的码率时,则动态新增时间轮。
[0015]在上述技术方案的基础上,所述步骤A中,当上级时间轮的槽位间隔时间小于下级时间轮转动一圈总时间时,所述轮转圈数设置为0,且所述跳转标志位的设置满足以下要求:
[0016]上级时间轮的槽位间隔时间=从下级时间轮的当前槽位转动至跳转标志位所在槽位的转动次数
×
下级时间轮的槽位间隔时间。
[0017]在上述技术方案的基础上,所述步骤A中,当上级时间轮的槽位间隔时间大于或等于下级时间轮转动一圈的总时间时,所述轮转圈数设置为非0,且所述轮转圈数及所述跳转标志位的设置需满足以下要求:
[0018]轮转圈数=上级时间轮的槽位间隔时间与下级时间轮转动一圈总时间相除的整数;
[0019]上级时间轮的槽位间隔时间=轮转圈数
×
下级时间轮转动一圈总时间+从下级时间轮的当前槽位转动至跳转标志位所在槽位的转动次数
×
下级时间轮的槽位间隔时间。
[0020]在上述技术方案的基础上,所述步骤B具体包括以下操作:
[0021]B1、查找出当前码率的数据所对应的时间轮;
[0022]B2、根据当前码率数据的时长及时间轮槽位间隔时间,将当前码率的数据划分为若干数据单元。
[0023]B3、将B2中已划分的数据单元根据时间轮的槽位总数及时间轮的当前槽位号依次计算出应放置的槽位序号,并按照顺序依次放入对应的槽位,且每个数据单元放入对应的槽位时按照从尾部加入的方式加入槽位内的队列。
[0024]在上述技术方案的基础上,所述步骤B2中,根据时间轮的槽位数量及时间轮的当前槽位号计算出各数据单元应放置的槽位序号,具体包括以下操作:将时间轮的当前槽位号加上该数据单元的序号后,与时间轮的槽位总数取模,得到该数据单元应放置的槽位序号。
[0025]在上述技术方案的基础上,所述步骤C具体包括以下操作:
[0026]C1、发送数据时,从最下级时间轮开始运行,先判断当前槽位内队列是否为空,若为空,则等待一个槽位间隔时间,转入步骤C3;若当前槽位内的队列不为空,转入步骤C2;
[0027]C2、从当前槽位的队列首元素开始,发送一个数据单元,并在发送完成后将该数据单元从队列中删除,转入步骤C3;
[0028]C3、根据跳转标志位和轮转圈数判断是否需要从当前槽位跳至上级时间轮,若是,则标记当前槽位,并根据当前槽位重新计算新的跳转标志位同时重置轮转圈数,转入步骤C4;若否,转入该时间轮的下一个槽位,重复步骤C1~C3;
[0029]C4、上一级时间轮按照与下级时间轮相同的方式进行操作;级级递推,使得所有的时间轮满足下级时间轮转动若干个槽位,上级时间轮转动一个槽位的条件进行数据发送,从而实现下级时间轮驱动上级时间轮。
[0030]在上述技术方案的基础上,步骤D中,动态新增时间轮,具体包括以下操作:
[0031]当需要在原先最上级时间轮基础上新增更上一级时间轮时,则根据新增的更上一级时间轮的槽位间隔时间,在原先最上级时间轮内添加设置跳转标志位和轮转圈数;
[0032]当需要在原先最下级时间轮基础上新增更下一级时间轮时,则根据原先最下级时间轮的槽位间隔时间,在新增的更下一级时间轮内添加设置跳转标志位和轮转圈数;
[0033]当需要在原有的上下级时间轮之间增加一个新的时间轮时,则根据原有的上级时间轮的槽位间隔时间,在增加的新时间轮内添加设置跳转标志位和轮转圈数;同时,根据增加的新时间轮的槽位间隔时间,在原有的下级时间轮内重新计算新的跳转标志位和轮转圈数。
[0034]在上述技术方案的基础上,该方法还包括时间轮动态删减本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用时间轮控制发送速度的方法,其特征在于,该方法包括以下步骤:A、按照码率的不同将当前媒体分片文件划分为不同码率的数据,并根据划分的不同码率的数量,创建相应个数的时间轮;所述时间轮为级联关系,且下级时间轮内设有跳转标志位和轮转圈数,下级时间轮根据所述跳转标志位和轮转圈数判断是否需要跳至上级时间轮;B、将当前媒体分片的不同码率的数据分别放置于对应的时间轮的槽位内;C、发送数据时,各个时间轮按照级联的形式驱动,下级的时间轮驱动上级的时间轮,随着每个时间轮的转动,相应时间轮的槽位内数据被发出;D、当后续媒体分片文件划分有新的码率时,则动态新增时间轮。2.如权利要求1所述的利用时间轮控制发送速度的方法,其特征在于,所述步骤A中,当上级时间轮的槽位间隔时间小于下级时间轮转动一圈总时间时,所述轮转圈数设置为0,且所述跳转标志位的设置满足以下要求:上级时间轮的槽位间隔时间=从下级时间轮的当前槽位转动至跳转标志位所在槽位的转动次数
×
下级时间轮的槽位间隔时间。3.如权利要求1所述的利用时间轮控制发送速度的方法,其特征在于,所述步骤A中,当上级时间轮的槽位间隔时间大于或等于下级时间轮转动一圈的总时间时,所述轮转圈数设置为非0,且所述轮转圈数及所述跳转标志位的设置满足以下要求:轮转圈数=上级时间轮的槽位间隔时间与下级时间轮转动一圈总时间相除的整数;上级时间轮的槽位间隔时间=轮转圈数
×
下级时间轮转动一圈总时间+从下级时间轮的当前槽位转动至跳转标志位所在槽位的转动次数
×
下级时间轮的槽位间隔时间。4.如权利要求1所述的利用时间轮控制发送速度的方法,其特征在于,所述步骤B具体包括以下操作:B1、查找出当前码率的数据所对应的时间轮;B2、根据当前码率数据的时长及时间轮槽位间隔时间,将当前码率的数据划分为若干数据单元。B3、将B2中已划分的数据单元根据时间轮的槽位总数及时间轮的当前槽位号依次计算出应放置的槽位序号,并按照顺序依次放入对应的槽位,且每个数据单元放入对应的槽位时按照从尾部加入的方式加入槽位内的队列。5.如权利要求4所述的利用时间轮控制发送速度的方法,其特征在于,所述步骤B2中,根据时间轮的槽位数量及时间轮的当前槽位号计算出各数据单元应放置的槽位序号,具体包括以下操作:将时间轮的当前槽位号加上该数据单元的序号后,与时间轮的槽位总数取模,得到该数据单元应放置的槽位序号。6.如权利要求4所述的利用时间轮控制发送速度的方法,其特征在于,所述步骤C具体包括以下操作:C1、发送数据时,从最下级时间轮开始运行,先判断当前槽位内队列是否为空,若为空,则等待一个槽位间隔时间,转入步骤C3;若当前槽位内的队列不为空,转入步骤C2;C2、从当前槽位的队列首元素开始,发送一个数据单元,并在发送完成后将该数据单元从队列中删除,转入...

【专利技术属性】
技术研发人员:桑懿
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1