发明名称 一种传输流再复用方法
摘要 本发明涉及一种传输流再复用方法,它是将多路输入单节目传输流再复用成一个多节目传输流输出,首先根据统计输入传输流的节目特殊信息PSI和业务信息SI重构输出传输流的节目特殊信息PSI和业务信息SI。其次,根据输出传输流速率动态的将各个传输流的有效数据及空包均匀交织输出。并按一定间隔将空包替换为节目特殊信息PSI和业务信息SI。不重写PCR值,只对原PCR值进行微调。
申请公布号 CN101426142B 申请公布日期 2011.12.21
申请号 CN200810203957.0 申请日期 2008.12.04
申请人 上海大学 发明人 郑启盛;朱民耀;郭健;王亚萍
分类号 H04N7/54(2006.01)I;H04N7/26(2006.01)I 主分类号 H04N7/54(2006.01)I
代理机构 上海上大专利事务所(普通合伙) 31205 代理人 何文欣
主权项 一种传输流再复用方法,将多个单节目传输流再复用成一个多节目传输流;其特征在于该复用方法的步骤为:步骤1:初始化,统计输入传输流信息:统计获取各个输入单节目传输流的特殊节目信息PSI、业务信息SI、最大传输码率,若输出传输流速率小于各个输入单节目传输流的最大码率之和,则警告退出;步骤2:生成输出传输流信息:根据步骤1获得的各个输入单节目传输流的特殊节目信息PSI和业务信息SI,重构输出多节目传输流的特殊节目信息PSI和业务信息SI,重新分配传输包标识符PID,若表段长度大于单个传输包的最大有效负载时,则分段置于连续的传输包中;步骤3、传输流均匀交织再复用,操作步骤如下:步骤3.1、读取一路输入单节目传输流,判断包同步字节,以单个包长为单位顺序读取一个传输包,根据其传输包标识符PID判断包类型进行相应处理;步骤3.2、循环步骤3.1直至遇到非第一个包含PCR字段的传输包;步骤3.3、剩余所有输入单节目传输流均按步骤3.1、3.2处理,将所有单节目传输流的第一个包含PCR字段的传输包写入输出多节目传输流中,统计各路输入单节目传输流两个PCR间已填充的传输包数,并统计已写入输出多节目传输流中的传输包数;步骤3.4、统计各路输入单节目传输流及填充空包在输出多节目传输流中的交织情况;步骤3.5、选取所有输入单节目传输流及填充空包中输出频率值最小的一路传输流,在输出多节目传输流中输出该路传输流一个的传输包,并将该输入单节目传输流或空包的输出频率值加上一个该传输包的输出频率值;若当其中一路输入单节目传输流两个PCR间的有效传输包均已插入完毕时,则赋其输出频率值一个相当大的值以停止输出该传输流的传输包;步骤3.6、循环步骤3.5直至已向输出多节目传输流输出的传输包数等于最小差值,输出最小差值的单节目传输流的包含PCR字段的传输包,按步骤3.1、3.2读取该单节目传输流直至遇到包含PCR字段的传输包为止;步骤3.7、循环步骤3.4、3.5、3.6直至所有输入单节目传输流再复用完毕,同时,在以上处理过程中依输出多节目传输流速率计算节目关联表PAT和业务信息SI的插入间隔,该间隔为节目关联表PAT和业务信息SI插入时间间隔与输出多节目传输流速率的乘积与单个传输包大小的比值,若输出多节目传输流传输包数间隔大于该值时,则将输出多节目传输流中的空包替换为节目关联表PAT或业务信息SI;所述的步骤3.1中:若该传输包为视音频数据传输包,则修改包标识符PID并写入缓存中;若该传输包为包含节目映射表PMT的传输包,则根据步骤2生成的特殊节目信息PSI修改节目映射表PMT;若该传输包为填充空包,或非包含节目映射表PMT信息的传输包,则抛弃;若该传输包为包含PCR字段的传输包,且当其为该输入单节目传输流第一个包含PCR字段的传输包时,则将该输入单节目传输流缓存区中传输包写入输出多节目传输流中,并统计写入传输包个数,同时记录该PCR值,将修改过包标识符的传输包保存;若该传输包为包含PCR字段的传输包,而又不是该输入单节目传输流第一个包含PCR字段的传输包时,则将当前PCR值与上一个PCR值的差值乘于多节目传输流输出速率以计算两个PCR间需填充的比特数,该比特数与一个传输包的比特数的比值就是两个PCR间需填充的传输包数,同时,与其他输入单节目传输流两个PCR间需填充的传输包数和已填充传输包数的差值进行比较,若有相等,则当前填充传输包数加1,直至确保不同输入单节目传输流的包含PCR字段的传输包不会插在同一个位置上,根据该填充传输包数重新计算当前PCR的值,将该值写入传输包中,并记录该PCR值,将修改过传输包标识符PID的传输包保存;若输入传输流读取完毕,设置该传输流再复用完毕标志,不再进行处理;所述的步骤3.4具有以下步骤:步骤3.4.1:计算各个输入单节目传输流两个PCR间需填充的传输包数和已填充的传输包数的差值,并按从小到大排序;步骤3.4.2:计算各个输入单节目传输流在最小差值内需填充的传输流包数,其中,差值最小的单节目传输流两个PCR间的未被输出的传输包优先全部输出,其余按差值从小到大为优先级计算:各个单节目传输流在最小差值内输出的传输包数为该单节目传输流两个PCR间未被输出的有效传输包乘于最小差值与该单节目传输流两个PCR间还需填充的传输包数的比值,计算各个单节目传输流在最小差值内输出的传输包数时,若该值大于当前单节目传输流两个PCR间尚未输出的有效传输包数,则该值取当前单节目传输流两个PCR间尚未输出的有效传输包数;若该值大于最小差值内可写入的传输包数,则该值取最小差值内可写入的传输包数,当所有单节目传输流在最小差值内已填充的传输包数之和仍小于最小差值时,则差额为填充传输空包的个数;步骤3.4.3:根据所有单节目传输流及填充空包在最小差值内需输出的传输包数计算其每个传输包的输出频率值,该频率值为最小差值与各个单节目传输流在最小差值内输出传输包数的比值;所有单节目传输流及填充空包的输出频率值初始化为一个传输包的输出频率值。
地址 200444 上海市宝山区上大路99号