首页> 中国专利> 一种构建多节目TS流时使各路节目码流均匀分布的方法

一种构建多节目TS流时使各路节目码流均匀分布的方法

摘要

本发明涉及一种构建多节目TS流时使各路节目码流均匀分布的方法,通过在进行一次TS包的发送时,为需要发送的N路音视频数据包分配N个内存块,且每个内存块中存放表信息包和整数个TS包。并在发送时刻统计N个内存块中TS包总数,计算各个内存块中TS包数量占TS包总数的百分比,并以此为每一个内存块分配相互连续的序号范围;产生一个取值范围小于TS包总数的均匀分布随机数;读取产生的随机数所落在内存块序号范围内的相应内存块中的TS包并发送。重复产生均匀分布随机数,直至发送完所有TS包。从而避免某路节目产生突发的大量数据发送,提高播出的稳定性,减轻有线电视接收端的音视频数据缓存压力。

著录项

  • 公开/公告号CN104185035A

    专利类型发明专利

  • 公开/公告日2014-12-03

    原文格式PDF

  • 申请/专利权人 西安交通大学;

    申请/专利号CN201410421672.X

  • 申请日2014-08-25

  • 分类号H04N21/238;

  • 代理机构西安通大专利代理有限责任公司;

  • 代理人陆万寿

  • 地址 710049 陕西省西安市碑林区咸宁西路28号

  • 入库时间 2023-12-17 03:36:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-06

    授权

    授权

  • 2014-12-31

    实质审查的生效 IPC(主分类):H04N21/238 申请日:20140825

    实质审查的生效

  • 2014-12-03

    公开

    公开

说明书

技术领域

本发明属于有线电视TS流播出技术领域,具体涉及一种构建多节目TS流 时使各路节目码流均匀分布的方法。

背景技术

通常有线电视TS流中都会承载多路节目,然而各路节目的码流速率是不一 样的,作为有线电视播出端,应该使各路节目的数据较为均匀的分布在播出的 TS流中,而避免某路节目突发的发送大量数据,这样可以提高播出的稳定性, 减轻有线电视接收端的音视频数据缓存压力。但是目前还未有能够使各路节目 的数据较为均匀的分布在播出的TS流中的方法。

发明内容

本发明的目的在于克服上述现有技术中存在的缺点,提供一种构建多节目 TS流时使各路节目码流均匀分布的方法,具有稳定性高,有线电视接收端的音 视频数据缓存压力小的优点。

为实现上述目的,本发明采用以下技术方案:包括以下步骤:

1)为需要发送的N路音视频数据包分配N个内存块,且每个内存块中存 放表信息包和整数个TS包;

2)发送TS包,并在发送时刻统计N个内存块中TS包总数,计算各个内 存块中TS包数量占TS包总数的百分比,并依次为每一个内存块分配相互连续 的序号范围;

3)为每个内存块分配一个取值范围小于TS包总数的均匀分布随机数;

4)读取步骤3)中产生的随机数所落在内存块序号范围内的相应内存块中 的TS包;

5)发送步骤4)读取到的TS包,之后反复执行步骤3)和步骤4),直到发 送完所有TS包;

6)回到步骤2),进行下一次N个内存块中TS包的发送,如此反复,直至 读取完所有TS包。

所述步骤1)中为N路音视频数据包分配N块内存块的方式为:将前端构建 节目的TS包先存入其所属内存空间,当后端需要取出该路节目的TS包时也是 从该内存空间读出,其写入读出的原则符合先入先出的原则,且内存空间的大 小能够保证任何一路音视频数据包的TS包在写入内存空间时均不会溢出。

所述步骤2)中N个内存块中TS包总数为1000,总数不够1000,则将空 包内存块中TS包数设为缺失的包数,并在空包内存块中补足该数目的空包,使 得TS包总数为1000。

所述步骤2)中为各个音视频数据包内存块分配一个连续序号范围的具体方 法为:生成的连续序号的取值范围与随机数的取值范围相同,从而保证任何一 个生成的随机数都能够与一路节目的序号相同;且为任意一路节目分配的序号 数量占序号总数量的百分比等于该路节目当前内存空间中已有TS包数量占当前 待发送的总TS包数量的百分比。

所述步骤3)中在要发送TS包的时刻产生一个均匀分布随机数的方法为: 在一个数组中按递增顺序存放从1到N的自然数1,2,3,…,N,N为TS包总数, 利用Microsoft Visual Studio中的随机数生成函数rand生成一个范围从1到N的 随机数x1,取出这个数组中第x1个数作为所要产生的均匀分布随机数;从数组 中删除这个数,剩下N-1个自然数,第2次产生均匀分布随机数时则用rand生 成一个范围从1到N-1的随机数x2,取出这个数组中第x2个数作为所要产生的 均匀分布随机数;以此类推直到取出数组中全部N个自然数。

所述步骤4)中读取步骤3)中产生的随机数所落在内存块序号范围内的相 应内存块中的TS包的具体方法为:从所有内存块中选取具有与当前生成的随机 数相等序号的内存块,读取随机数相等序号的内存块中的一个TS包,作为待发 送的TS包。

本发明具有以下的有益效果:相比较现有技术,本发明通过在进行一次TS 包的发送时,为需要发送的N路音视频数据包分配N个内存块,且每个内存块 中存放表信息包和整数个TS包。并在发送时刻统计N个内存块中TS包总数, 计算各个内存块中TS包数量占TS包总数的百分比,并以此为每一个内存块分 配相互连续的序号范围;产生一个取值范围小于TS包总数的均匀分布随机数; 读取产生的随机数所落在内存块序号范围内的相应内存块中的TS包并发送。重 复产生均匀分布随机数,直至发送完所有TS包。再重复进行下一次TS包的发 送。能够使各路音视频数据包的数据较为均匀的分布在播出的TS流中,从而避 免某路节目产生突发的大量数据发送,这样能够提高播出的稳定性,减轻有线 电视接收端的音视频数据缓存压力。传统的轮询各路音视频数据包进行发送的 方法,操作较为简单,但是容易导致码流高的音视频数据包长时间占有发送权, 使得码流低的音视频数据包发送TS包时呈现突发性,即在码流高的音视频数据 包发送TS包期间没有TS包发送,在码流高的音视频数据包发送完TS包后又 进行一段时间的连续发送,这样会加大接收端的音视频数据缓存压力。本发明 所述方法使各路音视频数据包在每一小段时间间隔内都有发送TS包的机会,这 一小段时间内各路音视频数据包所能发送的TS包数目取决于其TS包数目占TS 包总数的百分比,码流需求高的音视频数据包会分配到更多的发送机会,但码 流需求低的音视频数据包也会得到发送的机会。各路音视频数据包所发送的TS 包之间的间隔不会有很大的波动。本发明使得各路音视频数据包的发送码流是 均匀的,从而具有能够使有线电视接收端的音视频数据缓存压力小。

附图说明

图1是本发明方法的示意图。

具体实施方式

下面结合附图,对本发明作进一步详细说明。

参见图1,本发明包括以下步骤:

1)为需要发送的N路音视频数据包分配N个内存块,且每个内存块中存 放表信息包和整数个TS包;为N路音视频数据包分配N块内存块的方式为:将 前端构建节目的TS包先存入其所属内存空间,当后端需要取出该路节目的TS 包时也是从该内存空间读出,其写入读出的原则符合先入先出的原则,且内存 空间的大小能够保证任何一路音视频数据包的TS包在写入内存空间时均不会溢 出;

2)发送TS包,并在发送时刻统计N个内存块中TS包总数,计算各个内 存块中TS包数量占TS包总数的百分比,并依次为每一个内存块分配相互连续 的序号范围;N个内存块中TS包总数为1000,总数不够1000,则将空包内存 块中TS包数设为缺失的包数,并在空包内存块中补足该数目的空包,使得TS 包总数为1000;

3)为每个内存块分配一个取值范围小于TS包总数的均匀分布随机数;在 要发送TS包的时刻产生一个均匀分布随机数的方法为:在一个数组中按递增顺 序存放从1到N的自然数1,2,3,…,N,N为TS包总数,利用Microsoft Visual  Studio中的随机数生成函数rand生成一个范围从1到N的随机数x1,取出这个 数组中第x1个数作为所要产生的均匀分布随机数;从数组中删除这个数,剩下 N-1个自然数,第2次产生均匀分布随机数时则用rand生成一个范围从1到N-1 的随机数x2,取出这个数组中第x2个数作为所要产生的均匀分布随机数;以此 类推直到取出数组中全部N个自然数;

4)读取步骤3)中产生的随机数所落在内存块序号范围内的相应内存块中 的TS包;产生的随机数所落在内存块序号范围内的相应内存块中的TS包的具 体方法为:从所有内存块中选取具有与当前生成的随机数相等序号的内存块, 读取随机数相等序号的内存块中的一个TS包,作为待发送的TS包;

5)发送步骤4)读取到的TS包,之后反复执行步骤3)和步骤4),直到发 送完所有TS包;

6)回到步骤2),进行下一次N个内存块中TS包的发送,如此反复,直至 读取完所有TS包。

TS:(Transport Stream,传输流)。

步骤4)中的随机数是有限整数,且是均匀分布随机数,也就是该随机数会 遍历其取值范围中的所有数值。根据节目的数量和用户所需要的码流均匀分布 的控制精度来设定这个随机数的取值范围,1~1000的取值范围大概对应TS流 中40ms的时间长度。

为音视频数据包内存块分配一串连续的序号包括:

生成的连续的序号的的取值范围应该与随机数的取值范围完全一致,以保 证任何一个生成的随机数都会与某路音视频数据包内存块的序号相同。为某路 音视频数据包分配的序号数量占序号总数量的百分比应该等于该路音视频数据 包内存块中TS包数量占当前待发送的总TS包数量的百分比。比如随机数取值 范围为1到1000时,第1路音视频数据包内存块中TS包数量占待发送TS包总 数量1000的50%,则为之分配1~500,第2路节目当前待发送TS包数量占待 发送TS包总数量1000的20%,则为之分配501~700。若TS包总数不够1000, 则将空包内存块中TS包数设为缺失的包数,并在空包内存块中补足该数目的空 包,使得TS包总数为1000。

本发明的工作过程为:

1)为欲发送的N路音视频数据包分配N个内存块,每个内存块可存放整 数个TS包,欲发送的各路节目的音视频TS包及表信息包写入各自音视频数据 包内存块;

2)发送时刻,统计N个内存块中TS包总数(若总数不够1000,则将空包 内存块中TS包数设为缺失的包数,并在空包内存块中补足该数目的空包,使得 TS包总数为1000),计算各个内存块中TS包数量占TS包总数1000的百分比, 并以此为之分配一个连续序号范围,比如第1个内存块TS包数量为50%,则为 之分配序号空间1~500,第2个内存块TS包数量为20%,则为之分配序号空间 501~700;

3)产生一个取值范围为1~1000的均匀分布随机数;

4)随机数落在哪个内存块序号范围内,则在该内存块中读取一个TS包;

5)发送读取到的TS包,反复执行3、4步,直到发送完1000个TS包;

6)回到第2步,进行下一次1000个TS包的发送,如此反复,直至传输完 成。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号