调整流媒体码流发送速率的方法和装置的制造方法_3

文档序号:9238671阅读:来源:国知局
考时间长度和数据包发送所用的执行时间确定该待发送数据包的实际发送时长。
[0074]如果达到预警条件,执行步骤S205及其后续步骤,进行加速处理。
[0075]步骤S205,确定加速数据包长度阈值。
[0076]在一个实施例中,可以根据如下公式确定加速数据包长度阈值:
[0077]LenAdd= (Frate/rate) XT,
[0078]其中,LenAdd表示加速数据包长度阈值,Frate表示空闲码流,rate表示通信双方可接受的码流,T表示基准数据发送量。
[0079]步骤S206,比较待发送数据包的长度和加速数据包长度阈值;
[0080]步骤S206A,如果待发送数据包的长度小于加速数据包长度阈值,将数据包发送所用的执行时间作为该待发送数据包的实际发送时长,然后执行步骤S105。
[0081]这种方法,在待发送数据包的长度小于加速数据包长度阈值按照时,按照数据包发送所用的执行时间直接发送数据包,不会引起发送端忽然占用过大的带宽,可以避免延迟过大,同时起到平滑流媒体的作用。
[0082]步骤S206B,如果待发送数据包的长度大于或等于加速数据包长度阈值,根据参考时间长度、数据包发送所用的执行时间、基准数据发送量以及待发送数据包的长度确定该待发送数据包的实际发送时长,然后执行步骤S105。
[0083]在一个实施例中,可以根据如下公式确定该待发送数据包的实际发送时长:
[0084]Tuse=TS-(T/Len)X Tcpu,
[0085]其中,Tuse表示待发送数据包的实际发送时长,TS表示发送待发送数据包所用的参考时间长度,Len表示待发送数据包的长度,Tcpu表示数据包发送所用的执行时间。
[0086]需要说明的是,为了保证(TS-(T/Len) XTcpu)>Tcpu,需要设定TS>2 (T/Len) XTcpu,但实际情况中,TS通常远大于2 (T/Len) XTcpu,因此我们不严格限制TS的范围。因此,如果待发送数据包的长度大于或等于加速数据包长度阈值,一种方法,为了简化处理,结合实际情况可以不判断TS的范围,直接根据Tuse=TS-(T/Len) XTcpu确定该待发送数据包的实际发送时长;另一种方法,为了更严谨,从理论上,如果待发送数据包的长度大于或等于加速数据包长度阈值,也可以进一步判断TS的范围,在TS>2 (T/Len) X Tcpu时,再根据Tuse=TS-(T/Len) XTcpu确定该待发送数据包的实际发送时长(为了使本发明主体思想更加清楚,判断TS范围的情况未在图中示出)。
[0087]步骤S105,将该待发送数据包均匀分布在该实际发送时长的时间之内发送出去,从而获得平滑稳定的媒体流。
[0088]在数据包发送出去之后,就可以释放队列缓存。在预警解除时,可以仍然按照步骤S104的方法确定数据包的实际发送时长,并发送数据包。
[0089]上述实施例,在达到预警条件时,还可以在可控范围内对数据包进行加速处理,当待发送数据包长度大于一定的阈值后,使其发送时间介于数据包发送所用的执行时间以及参考发送时间之间,起到平滑作用,避免引起带宽的剧烈波动。
[0090]图3为本发明与现有技术(通过拥塞控制信息调节流媒体码流的发送速率)关于流媒体码流发送速率的对比示意图。如图3所示,现有技术的流媒体码流发送速率呈现锯齿状,存在短时间之内发送速率过大的问题,而本发明的流媒体码流发送速率则比较平滑稳定。
[0091]图4为本发明调整流媒体码流发送速率的装置一个实施例的结构示意图。如图4所示,本实施例的装置包括:
[0092]基准数据确定单元401,用于根据通信双方可接受的码流和设置的空闲码流确定有效码流;根据有效码流和通信双方可接受的帧率确定基准数据发送量和基准发送速率单位,基准数据发送量表示单位时间能够发送的数据量,基准发送速率单位表示编码每帧所占用的平均时间;根据基准数据发送量和基准发送速率单位以及待发送数据包的长度,确定发送该待发送数据包所用的参考时间长度;
[0093]基准速率处理单元402,用于根据参考时间长度和数据包发送所用的执行时间确定该待发送数据包的实际发送时长;以及,
[0094]发送单元403,用于将该待发送数据包均匀分布在该实际发送时长的时间之内发送出去。
[0095]在一个实施例中,基准数据确定单元401在确定基准数据发送量和基准发送速率单位时,具体用于:根据通信双方可接受的帧率的倒数确定基准发送速率单位;根据通信双方可接受的帧率的倒数以及有效码流的乘积确定基准数据发送量。
[0096]在一个实施例中,基准数据确定单元401在确定发送该待发送数据包所用的参考时间长度时,具体用于:根据如下公式计算发送该待发送数据包所用的参考时间长度:TS=IX (Len/T),其中,TS表示发送待发送数据包所用的参考时间长度,I表示基准发送速率单位,Len表示待发送数据包的长度,T表示基准数据发送量。
[0097]在一个实施例中,基准速率处理单元402,具体用于:比较参考时间长度和数据包发送所用的执行时间;如果参考时间长度大于数据包发送所用的执行时间,则将参考时间长度减去数据包发送所用的执行时间得到的差值作为该待发送数据包的实际发送时长;如果参考时间长度小于或等于数据包发送所用的执行时间,则将数据包发送所用的执行时间作为该待发送数据包的实际发送时长。
[0098]图5为本发明调整流媒体码流发送速率的装置再一个实施例的结构示意图。
[0099]在一个实施例中,如图5所示,该装置还包括:预警单元504,用于判断是否达到加速处理的预警条件;其中,预警条件为发送缓存队列剩余空间小于等于第一预设值或者数据包缓存时延大于等于第二预设值。此时,基准速率处理单元,具体用于如果预警单元504判断结果为没有达到预警条件,根据参考时间长度和数据包发送所用的执行时间确定该待发送数据包的实际发送时长。
[0100]在一个实施例中,如图5所示,该装置还包括:加速处理单元505,用于如果预警单元504判断结果为达到预警条件,确定加速数据包长度阈值;比较待发送数据包的长度和加速数据包长度阈值;如果待发送数据包的长度小于加速数据包长度阈值,将数据包发送所用的执行时间作为该待发送数据包的实际发送时长;如果待发送数据包的长度大于或等于加速数据包长度阈值,根据参考时间长度、数据包发送所用的执行时间、基准数据发送量以及待发送数据包的长度确定该待发送数据包的实际发送时长。
[0101]在一个实施例中,加速处理单元505可以根据如下公式确定加速数据包长度阈值:
[0102]LenAdd= (Frate/rate) XT,
[0103]其中,LenAdd表示加速数据包长度阈值,Frate表示空闲码流,rate表示通信双方可接受的码流,T表示基准数据发送量。
[0104]在一个实施例中,加速处理单元505在确定该待发送数据包的实际发送时长时,具体用于:根据如下公式确定该待发送数据包的实际发送时长=Tuse=TS-(T/Len) XTcpu,其中,Tuse表示待发送数据包的实际发送时长,TS表示发送待发送数据包所用的参考时间长度,Len表示待发送数据包的长度,Tcpu表示数据包发送所用的执行时间。
[0105]上述实施例至少具有以下优点:
[0106]一方面,根据码流、帧率等信息确定待发送数据包的参考发送时间,并结合数据包发送所用的执行时间确定数据包的实际发送时长,然后将待发送数据包均匀分布在实际发送时长的时间之内发送出去,在保障发送速率整体均匀的情况下,可以平滑流媒体的发送速率,降低网络拥塞,减少网络丢包。
[0107]再一方面,在达到预警条件时,还可以在可控范围内对数据包进行加速处理,当待发送数据包长度大于一定的阈值后,使其发送时间介于数据包发送所用的执行时间以及参考发送时间之间,起到平滑作用,避免引起
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1