一种测试用的无缝循环传输流生成方法及装置制造方法

文档序号:7779373阅读:113来源:国知局
一种测试用的无缝循环传输流生成方法及装置制造方法
【专利摘要】本发明涉及一种测试用的无缝循环传输流生成方法和装置。所述方法是在测试用的传输流中截取一段包括整视频序列的传输流,并在该段传输流中,将除去空包和视频包的所有PID的最后一包中打上不连续标记,并修改顺序码。对于视频包则在含PCR的最后一包中打上不连续标记,并修改顺序码和PCR值,再修改后续的不含PCR的视频包中的顺序码。本发明解决了测试用的传输流在循环播放过程中出现的画面抖动、残损、声音中断及生成的测试流不可移植等问题,并节省了大量的存储空间。
【专利说明】一种测试用的无缝循环传输流生成方法及装置
【技术领域】
[0001]本发明涉及传输流【技术领域】,特别是涉及一种测试用的无缝循环传输流生成方法及装置。
【背景技术】
[0002]在数字电视研究设计,检测,维修过程中,通常需要使用符合测试标准的传输流(TS流)。现有的测试用的传输流的处理方法是使用播放机循环播放存储的测试用传输流。但由于预先存储的传输流长度和数量有限,播放长度为I分钟的TS流需要的存储空间为38M,如果播放I个小时的测试用传输流,则需要约2G的内存空间。这种处理方法占用了大量的存储空间,成本过高。另外在循环播放过程中,测试用传输流的首位接缝处出现画面残损,抖动,声音中断等问题。专利CN200910081867.3中介绍了一种测试用传输流处理方法和装置,是一种实时处理方法,属于边播放边处理,TS流具有不可移植性,即生成的TS流不可以独立于该测试用传输流处理装置使用。因此,针对上述问题,本发明提出了一种测试用的无缝循环传输流生成方法及装置。

【发明内容】

[0003]本发明所要解决的技术问题是提供一种测试用的无缝循环传输流生成方法及装置,用于解决现有测试用传输流的处理方法占用存储空间大、成本高,且循环播放过程中首尾接缝处易出现画面残损、抖动、声音中断及生成的测试流不可移植等问题。
[0004]本发明解决上述技术问题的技术方案如下:一种测试用的无缝循环传输流生成方法,包括:
[0005]步骤1,选取测试用的传输流,并找出其中唯一视频流的包标志符PID,再找出该PID对应的视频序列的序列头及第一个图像组GOP头;
[0006]步骤2,截取并保存包含该视频序列的一段传输流,且要求该段传输流的起始GOP循环和结束GOP循环的第一帧均为步骤I中对应的序列头和GOP头;
[0007]步骤3,对截取的传输流,找出其除去空包和视频包以外所有的PID对应的第一个TS包的顺序码和最后一个TS包的包数,并修改最后一个TS包的顺序码为对应的第一个TS包的顺序码减1,同时在修改后的顺序码后插入不连续标记;
[0008]步骤4,对截取的传输流,找出其视频包的第一包的顺序码Video_first_counter及最后一个含节目时钟基准PCR的视频包Video_Last_packet,并计算Video_Last_packet到截取的传输流结尾时所含的视频包的包总数PCR_cnt ;
[0009]步骤5,将 Video_Last_packet 的顺序码修改为 Video_f irst_counter 减去 PCR_cnt的值,并以此为基准将Video_Last_packet包到传输流结尾的视频包的顺序码依次递增;
[0010]步骤6,获取截取的传输流中含PCR的第一个TS包的PCR信息,再根据两个PCR之间的固定差值APCR获得Video_Last_packet的PCR信息,并将Video_Last_packet的不连续标记改为I。
[0011]在上述技术方案的基础上,本发明还可以做如下改进。
[0012]进一步,所述步骤I中找出视频流的PID具体包括:选取测试用的传输流,在测试用的传输流中查找节目关联表PAT,从PAT表中,找出TS流中各视频流分别对应的节目映射表PMT的PID,并记录,再根据节目映射表PMT的PID找出对应视频流的PID,并记录。
[0013]进一步,所述步骤I中找出各PID分别对应的视频序列的序列头及第一个图像组GOP头具体包括:找出传输流中各视频流的PID对应的视频序列中的序列头,搜索该视频序列中的第一个GOP头,确定含该GOP头的帧所在TS包在传输流中的位置。
[0014]进一步,所述步骤2具体包括:根据步骤I确定的序列头和GOP头,确定要截取的传输流的起始GOP循环序号和结束GOP循环序号,再确保起始GOP循环和结束GOP循环的第一帧均为步骤I中对应的序列头和GOP头,截取这段传输流,并以文件的方式进行保存。
[0015]进一步,所述步骤6中根据两个PCR之间的固定差值
packet的PCR信息具体包括:根据MPEG-2传输流标准确定两个PCR之间的固定差值APCR,再根据截取的传输流中含PCR的第一个TS包的PCR信息,按MPEG-2传输流标准的规定计算Video_Last_packet包中的基本值PCR_ba和扩展值PCR_ext,将PCR_ba和PCR_ext分别赋值给PCR信息所在的高33位和低9位,得到Video_Last_packet的PCR信息。
[0016]本发明的技术方案还包括一种测试用的无缝循环传输流生成装置,其与上述无缝循环传输流生成方法的技术方案 对应,包括:
[0017]预处理模块,其用于选取测试用的传输流,并找出其中唯一视频流的包标志符PID对应的视频序列的序列头及第一个图像组GOP头;
[0018]传输流截取模块,其用于截取并保存包含视频序列的一段传输流,且要求该段传输流的起始GOP循环和结束GOP循环的第一帧均为通过预处理模块得到的序列头和GOP头;
[0019]第一顺序码修改模块,其用于对截取的传输流,找出其除去空包和视频包以外所有的PID对应的第一个TS包的顺序码和最后一个TS包的包数,并修改最后一个TS包的顺序码为对应的第一个TS包的顺序码减1,同时在修改后的顺序码后插入不连续标记;
[0020]视频包处理模块,其用于对截取的传输流,找出其视频包的第一包的顺序码Video_f irst_counter及最后一个含节目时钟基准PCR的视频包Video_Last_packet,并计算Video_Last_packet到截取的传输流结尾时所含的视频包的包总数PCR_cnt ;
[0021]第二顺序码修改模块,其用于将Video_Last_packet的顺序码修改为Video_first_counter减去PCR_cnt的值,并以此为基准将Video_Last_packet包到传输流结尾的视频包的顺序码依次递增;
[0022]PCR计算模块,其用于获取截取的传输流中含PCR的第一个TS包的PCR信息,再根据两个PCR之间的固定差值A PCR获得Video_Last_packet的PCR信息,并将Video_Last_packet的不连续标记改为I。
[0023]进一步,所述预处理模块用于找出视频流的PID具体包括:选取测试用的传输流,在测试用的传输流中查找节目关联表PAT,从PAT表中,找出TS流中各视频流对应的节目映射表PMT的PID,并记录,再根据节目映射表PMT的PID找出各视频流的PID,并记录。
[0024]进一步,所述预处理模块用于找出PID对应的视频序列的序列头及第一个图像组GOP头具体包括:找出传输流中视频流的PID对应的视频序列中的序列头,搜索该视频序列中的第一个GOP头,确定含该GOP头的帧所在TS包在传输流中的位置。
[0025]进一步,所述传输流截取模块具体用于:根据所述预处理模块确定的序列头和GOP头,确定要截取的传输流的起始GOP循环序号和结束GOP循环序号,再确保起始GOP循环和结束GOP循环的第一帧均为所述预处理模块中对应的序列头和GOP头,截取这段传输流,并以文件的方式进行保存。
[0026]进一步,所述PCR计算模块用于根据两个PCR之间的固定差值APCR获得Video_Last_packet的PCR信息具体包括:根据MPEG-2传输流标准确定两个PCR之间的固定差值A PCR,再根据截取的传输流中含PCR的第一个TS包的PCR信息,按MPEG-2传输流标准的规定计算Video_Last_packet包中的基本值PCR_ba和扩展值PCR_ext,将PCR_ba和PCR_ext分别赋值给PCR信息所在的高33位和低9位,得到Video_Last_packet的PCR信息。
[0027]本发明的有益效果是:本发明对测试用传输流进行整视频序列的截取,并在其结尾处添加不连续标记并修改PCR值。这在很大程度上节省了存储空间,并解决了测试过程中出现画面残损、抖动、声音中断等现象,且生成的测试流可在任意装置上使用,具有可移植性,实现了 TS流的无缝循环。
【专利附图】

【附图说明】
[0028]图1为本发明所述测试用的无缝循环传输流生成方法的流程示意图;
[0029]图2为本发明中视频序列与GOP之间的关系示意图,图中1、B、P均表示Video_Packet_PID 的中贞;
[0030]图3为本发明实施例中相关TS包的处理示意图。图中回表示视频包,國和圖
均表示除视频包和空包外的其他PID对应的TS包;
[0031]图4为所述测试用的无缝循环传输流生成装置的结构示意图。
【具体实施方式】
[0032]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0033]如图1所示,本实施例公开了一种测试用的无缝循环传输流生成方法,具体包括如下步骤。
[0034]步骤1,选取测试用的传输流,并找出其中唯一视频流的包标志符PID,再找出该PID对应的视频序列的序列头及第一个图像组GOP头。
[0035]可知,本实施例中选取的测试用的传输流为单测试流,其对应有唯一视频流,将该唯一视频流的PID记为Video_Packet_PID。
[0036]确定Vide0_PaCket_PID后,找出PID对应的视频序列的序列头及第一个图像组GOP头的具体方法包括:找出视频流的PID对应的视频序列中的序列头,搜索该序列中的第一个GOP头,并确定含该GOP头的帧所在TS包在传输流中的位置。
[0037]步骤2,截取并保存包含该视频序列的一段传输流,且要求该段传输流的起始GOP循环和结束GOP循环的第一帧均为步骤I中对应的序列头和GOP头。
[0038]如图2所示,一个GOP循环从GOP头开始,延续若干个帧,因此在截取TS流过程中,应根据图中所示GOP头和序列头判断视频序列起始与终止,进而实现整视频序列的截取,保证TS流在内容上的连续。具体地,要截取整视频序列的传输流,需根据步骤I确定的序列头和GOP头,确定要截取的传输流的起始GOP循环序号和结束GOP循环序号,要确保起始GOP循环和结束GOP循环的第一帧均为步骤I中对应的序列头和GOP头,再截取这段传输流,并以文件的方式进行保存。本实施例中将其保存在名为TSMidfile的文件中,以供图3所示的后续步骤使用。
[0039]步骤3,对截取的传输流,找出其除去空包和视频包以外所有的PID对应的第一个TS包的顺序码和最后一个TS包的包数,并修改最后一个TS包的顺序码为对应的第一个TS包的顺序码减1,同时在修改后的顺序码后插入不连续标记。
[0040]具体地,先从步骤2确定的TSMidfile文件中枚举出所有除空包(即OxlFFF的TS包)和视频包(即步骤I中记为Video_Packet_PID对应的视频包)以外的所有PID,记为PID[i],找出上述PID[i]的第一包的顺序码,记为PID_counter[i],以及上述PID[i]的最后一包的包数,记为PID_last_packet [i],修改PID_last_packet [i]包的顺序码为PID_counter [i]-l,并在顺序码后插入不连续标记:01、80。
[0041]步骤4,对截取的传输流,找出其视频包的第一包的顺序码Video_first_counter及最后一个含节目时钟基准PCR的视频包Video_Last_packet,并计算Video_Last_packet到截取的传输流结尾时所含的视频包的包总数PCR_cnt。
[0042]步骤5,将 Video_Last_packet 的顺序码修改为 Video_f irst_counter 减去 PCR_cnt的值,并以此为基准将Video_Last_packet包到传输流结尾的视频包的顺序码依次递+?
>曰o
[0043]步骤6,获取截取的传输流中含PCR的第一个TS包的PCR信息,再根据两个PCR之间的固定差值APCR获得Video_Last_packet的PCR信息,并将Video_Last_packet的不连续标记改为I。
[0044]根据两个PCR之间的固定差值A PCR获得Vide0_LaSt_paCket的PCR信息的方法具体包括:根据MPEG-2传输流标准确定两个PCR之间的固定差值A PCR,再根据截取的传输流中含PCR的第一个TS包的PCR信息,按MPEG-2传输流标准的规定计算Vide0_Last_packet包中的基本值PCR_ba和扩展值PCR_ext,将PCR_ba和PCR_ext分别赋值给PCR信息所在的高33位和低9位,得到Video_Last_packet的PCR信息。
[0045]由以下计算公式(I)和(2)可得到PCR的差值A PCR:
【权利要求】
1.一种测试用的无缝循环传输流生成方法,其特征在于,包括: 步骤1,选取测试用的传输流,并找出其中唯一视频流的包标志符PID,再找出PID对应的视频序列的序列头及第一个图像组GOP头; 步骤2,截取并保存包含该视频序列的一段传输流,且要求该段传输流的起始GOP循环和结束GOP循环的第一帧均为步骤I中对应的序列头和GOP头; 步骤3,对截取的传输流,找出其除去空包和视频包以外所有的PID对应的第一个TS包的顺序码和最后一个TS包的包数,并修改最后一个TS包的顺序码为对应的第一个TS包的顺序码减1,同时在修改后的顺序码后插入不连续标记; 步骤4,对截取的传输流,找出其视频包的第一包的顺序码Video_first_counter及最后一个含节目时钟基准PCR的视频包Video_Last_packet,并计算Video_Last_packet到截取的传输流结尾时所含的视频包的包总数PCR_cnt ; 步骤 5,将 Video_Last_packet 的顺序码修改为 Video_f irst_counter 减去 PCR_cnt 的值,并以此为基准将Video_Last_packet包到传输流结尾的视频包的顺序码依次递增; 步骤6,获取截取的传输流中含PCR的第一个TS包的PCR信息,再根据两个PCR之间的固定差值APCR获得Video_Last_packet的PCR信息,并将Video_Last_packet的不连续标记改为I。
2.根据权利要求1所述的无缝循环传输流生成方法,其特征在于,所述步骤I中找出视频流的PID具体包括:选取测试用的传输流,在测试用的传输流中查找节目关联表PAT,从PAT表中,找出TS流中唯一视频流分别对应的节目映射表PMT的PID,并记录,再根据节目映射表PMT的PID找出对应视频流的PID,并记录。
3.根据权利要求1或2所述的无缝循`环传输流生成方法,其特征在于,所述步骤I中找出PID对应的视频序列的序列头及第一个图像组GOP头具体包括:找出传输流中视频流的PID对应的视频序列中的序列头,搜索该视频序列中的第一个GOP头,确定含该GOP头的帧所在TS包在传输流中的位置。
4.根据权利要求1所述的无缝循环传输流生成方法,其特征在于,所述步骤2具体包括:根据步骤I确定的序列头和GOP头,确定要截取的传输流的起始GOP循环序号和结束GOP循环序号,再确保起始GOP循环和结束GOP循环的第一帧均为步骤I中对应的序列头和GOP头,截取这段传输流,并以文件的方式进行保存。
5.根据权利要求1所述的无缝循环传输流生成方法,其特征在于,所述步骤6中根据两个PCR之间的固定差值A PCR获得Video_Last_packet的PCR信息具体包括:根据MPEG-2传输流标准确定两个PCR之间的固定差值APCR,再根据截取的传输流中含PCR的第一个TS包的PCR信息,按MPEG-2传输流标准的规定计算Video_Last_packet包中的基本值PCR_ba和扩展值PCR_ext,将PCR_ba和PCR_ext分别赋值给PCR信息所在的高33位和低9位,得到 Video_Last_packet 的 PCR 信息。
6.一种测试用的无缝循环传输流生成装置,其特征在于,包括: 预处理模块,其用于选取测试用的传输流,并找出其中唯一视频流的包标志符PID对应的视频序列的序列头及第一个图像组GOP头; 传输流截取模块,其用于截取并保存包含视频序列的一段传输流,且要求该段传输流的起始GOP循环和结束GOP循环的第一帧均为通过预处理模块得到的序列头和GOP头;第一顺序码修改模块,其用于对截取的传输流,找出其除去空包和视频包以外所有的PID对应的第一个TS包的顺序码和最后一个TS包的包数,并修改最后一个TS包的顺序码为对应的第一个TS包的顺序码减1,同时在修改后的顺序码后插入不连续标记; 视频包处理模块,其用于对截取的传输流,找出其视频包的第一包的顺序码Video_first_counter及最后一个含节目时钟基准PCR的视频包Video_Last_packet,并计算Video_Last_packet到截取的传输流结尾时所含的视频包的包总数PCR_cnt ; 第二顺序码修改模块,其用于将Video_Last_packet的顺序码修改为Video_first_counter减去PCR_cnt的值,并以此为基准将Video_Last_packet包到传输流结尾的视频包的顺序码依次递增; PCR计算模块,其用于获取截取的传输流中含PCR的第一个TS包的PCR信息,再根据两个PCR之间的固定差值APCR获得Video_Last_packet的PCR信息,并将Video_Last_packet的不连续标记改为I。
7.根据权利要求6所述的无缝循环传输流生成装置,其特征在于,所述预处理模块用于找出视频流的PID具体包括:选取测试用的传输流,在测试用的传输流中查找节目关联表PAT,从PAT表中,找出TS流中各视频流对应的节目映射表PMT的PID,并记录,再根据节目映射表PMT的PID找出各视频流的PID,并记录。
8.根据权利要求6所述的无缝循环传输流生成装置,其特征在于,所述预处理模块用于找出PID对应的视频序列的序列头及第一个图像组GOP头具体包括:找出传输流中视频流的PID对应的视频序列中的序列头,搜索该视频序列中的第一个GOP头,确定含该GOP头的帧所在TS包在传输流中的位置。
9.根据权利要求6所述的无缝循环传输流生成装置,其特征在于,所述传输流截取模块具体用于:根据所述预处理模块确定的序列头和GOP头,确定要截取的传输流的起始GOP循环序号和结束GOP循环序号,再确保起始GOP循环和结束GOP循环的第一帧均为所述预处理模块中对应的序列头和GOP头,截取这段传输流,并以文件的方式进行保存。
10.根据权利要求6所述的无缝循环传输流生成装置,其特征在于,所述PCR计算模块用于根据两个PCR之间的固定差值A PCR获得Video_Last_packet的PCR信息具体包括:根据MPEG-2传输流标准确定两个PCR之间的固定差值A PCR,再根据截取的传输流中含PCR的第一个TS包的PCR信息,按MPEG-2传输流标准的规定计算Video_Last_packet包中的基本值PCR_ba和扩展值PCR_ext,将PCR_ba和PCR_ext分别赋值给PCR信息所在的高33位和低9位,得到Video_Last_packet的PCR信息。
【文档编号】H04N21/235GK103618896SQ201310654952
【公开日】2014年3月5日 申请日期:2013年12月6日 优先权日:2013年12月6日
【发明者】王利芳, 赵德智, 徐晖 申请人:北京牡丹视源电子有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1