一种生成ts流的打包顺序控制方法

文档序号:10580260阅读:272来源:国知局
一种生成ts流的打包顺序控制方法
【专利摘要】本发明公开了一种生成TS流的打包顺序控制方法,按照PSI、PCR、音频、视频和空包的先后顺序,判断先满足打包条件数据类型,再生成该类型的TS包,最终生成符合标准的TS流;且生成每个TS包后,通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;生成每个音频TS包时,模拟一个音频解码器缓存,确保音频解码器缓存大于该TS包节目时间的音频数据量;生成每个视频TS时,模拟一个视频频解码器缓存,确保视频解码器缓存大于该TS包节目时间的视频数据量,进而使得生成的TS流在解码时不会发生缓存的溢出。
【专利说明】
一种生成TS流的打包顺序控制方法
技术领域
[0001 ]本发明涉及一种生成TS流的打包顺序控制方法,
【背景技术】
[0002]TS流是MPEG-2格式种类中的一种,其英文全称是(MPEG-2Transport Stream),它是数字电视领域中普遍应用的系统层编码标准;TS流中是固定长度为188字节的连续TS包,通过这些TS包,它包含了丰富的流信息,要解析一个特定的流,首先要解析它由哪些PID(Packet ID)的包构成,再根据PID解析出对应的音视频流;MPEG-2定义了一些用来描述传输流所携带内容的信息表,称为节目特定信息(PSI)表,包括4个与之相关的表,其中,节目关联表PAT和节目映射表PMT是确定当前传输流中各节目内容的最关键的两个表,需在流中周期性重复出现。
[0003]由于TS是经过压缩的信号,数据间的相关性很小,而且TS流有着严格的数据格式,因而很小的误差都将导致图像质量的急剧下降甚至无法解码;我国的数字电视技术正在快速发展,为了保证数字电视网络的正常运转和传输质量,必须对TS流进行码流分析,以确保TS流中的信息格式都符合标准规范。
[0004]码流分析的信息包括:基本信息、节目信息、PCR信息、音视频缓冲区信息等部分;其中基本信息主要包含TS包同步字节、流码率、流ID等;节目信息包含流中各个节目的节目号、节目名、节目中各信息流PID(Packet ID)的分配等信息;PCR信息显示流中各个PCR的精度和间隔;音视频缓冲区信息是虚拟解码器(STD)在解码当前流时对应缓冲区中原始数据的状态;此外还包括ETR290分析测试,根据测试参数的重要性以及其不同的性质,为3个优先级,其中:第I级包含TS流基本的参数,这些参数保证ts流能够被解码;第2级包含一些附加参数,是保证TS流达到同步后可连续工作必须的参数和周期性监测的参数;第3级是一些特定应用的参数。码流分析工具可对TS流进行完整的分析,对不符合标准的TS流,发出错误警告,即该TS流不能通过监测,不能在数字电视应用中被正常播放。
[0005]目前,大部分开源工具生成的TS流,并不能通过码流分析工具的监测,生成的TS流不符合数字电视对流的上线要求。

【发明内容】

[0006]本发明的目的在于克服现有技术的不足,提供一种生成TS流的打包顺序控制方法,按照PS1、PCR、音频、视频和空包的先后顺序,判断先满足打包条件数据类型,再生成该类型的TS包,最终生成符合标准的TS流;且生成每个TS包后,通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据。
[0007]本发明的目的是通过以下技术方案来实现的:一种生成TS流的打包顺序控制方法,包括以下步骤:
[0008]S1.开始生成TS流;
[0009]S2.判断音视频是否打包完成:
[0010](I)音视频打包完成,打包结束;
[0011 ] (2)音视频打包没有完成,进入步骤S3;
[0012]S3.判断PSI是否满足打包条件:
[0013](I )PSI满足打包条件,连续生成所有节目信息的TS包,并跳转至步骤S8;
[0014](2 )PSI不满足打包条件,进入步骤S4;
[0015]S4.判断PCR是否满足打包条件:
[0016](I )PCR满足打包条件,生成一个PCR标记的TS包,并跳转至步骤S8 ;
[0017](2)PCR不满足打包条件,进入步骤S5;
[0018]S5.判断音频是否满足打包条件:
[0019](I)音频满足打包条件,生成一个音频TS包,并跳转至步骤S8;
[0020](2)音频不满足打包条件,进入步骤S6;
[0021 ] S6.判断视频是否满足打包条件:
[0022](I)视频满足打包条件,生成一个视频TS包,并跳转至步骤S8 ;
[0023](2)视频不满足打包条件,进入步骤S7;
[0024]S7.生成一个空包并进入步骤S8;
[0025]S8.通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;完成当前TS包的生成,并返回步骤SI进行下一个TS包的生成。
[0026]步骤SI中如果所有音视频数据均被打包,且TS包的节目时间大于音视频数据的最大播放时间戳,则认为音视频打包完成。
[0027]步骤S2中PSI的打包条件为:TS包与上一次打包PSI的节目时间间隔大于PSI阈值,PSI阈值在开始生成TS流之前预先设定。
[0028]步骤S3中PCR的打包条件为:TS包与上一次打包PCR的节目时间间隔大于PCR阈值,PCR阈值在开始生成TS流之前预先设定。
[0029]步骤S5中对音频是否满足条件的判断包括以下子步骤:
[0030]S51.判断音频数据的播放时间与视频数据的播放时间(视频流中准备打包的数据播放时间)大小关系:
[0031 ] (I)如果音频数据的播放时间小于视频数据的播放时间;进入步骤S52;
[0032](2)如果音频数据的播放时间不小于视频数据的播放时间,则不满足音频打包条件;
[0033]S52.模拟一个音频解码器缓存,判断判断音频数据的播放时间在大于TS包对应节目时间的固定范围内时,音频模拟解码缓存是否有溢出:
[0034](I)如果音频模拟解码缓存无溢出,则认为满足音频打包条件;
[0035](2)如果音频模拟解码缓存有溢出,则认为不满足音频打包条件。
[0036]步骤S6中对视频是否满足条件的判断包括:模拟一个视频解码器缓存,判断视频数据的播放时间在大于TS包对应节目时间的固定范围内、视频模拟解码缓存是否有溢出:
[0037](I)如果视频模拟解码缓存无溢出,则认为满足视频打包条件;
[0038](2)如果视频模拟解码缓存有溢出,则认为不满足视频打包条件。
[0039]本发明的有益效果是:按照PS1、PCR、音频、视频和空包的先后顺序,判断先满足打包条件数据类型,再生成该类型的TS包,最终生成符合标准的TS流;且生成每个TS包后,通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;生成每个音频TS包时,模拟一个音频解码器缓存,确保音频解码器缓存大于该TS包节目时间的音频数据量;生成每个视频TS时,模拟一个视频频解码器缓存,确保视频解码器缓存大于该TS包节目时间的视频数据量,进而使得生成的TS流在解码时不会发生缓存的溢出。
【附图说明】
[0040]图1为本发明的流程图。
【具体实施方式】
[0041]下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
[0042]如图1所示,一种生成TS流的打包顺序控制方法,包括以下步骤:
[0043]S1.开始生成TS流;
[0044]S2.判断音视频是否打包完成:
[0045](I)音视频打包完成,打包结束;
[0046](2)音视频打包没有完成,进入步骤S3;
[0047]音视频打包完成,即所有音视频数据已打包完毕;首先所有音视频数据均被打包,其次TS包的节目时间大于音视频数据的最大播放时间戳,满足两个条件后就结束打包任务,确保流中的所有音视频数据均可解码播放;设音频未打包数据长度为Ia,视频未打包数据长度为IV,已音视频数据的最大播放时间戳Pt Smax,TS包的节目时间pcrts,如果Ia = O,Iv =O,且pcrts >ptSmax,则结束打包,否贝lJ,进入步骤S3。
[0048]S3.判断PSI是否满足打包条件:
[0049](I )PSI满足打包条件,连续生成所有节目信息的TS包,并跳转至步骤S8;
[0050](2)PSI不满足打包条件,进入步骤S4;
[0051]TS包与上一次打包PSI信息的节目时间间隔超过阈值则视为满足条件,进行打包;如设置阈值0.5s,则确保PSI信息在0.5s内打包一次。
[0052]设PSI阈值为Tpsi,上一次打包PSI的节目时间为Pcrpsi,如果当前TS包的节目时间pcrts>pcrPsi+TPsi,则打包所有节目信息,并更新pcrpsi,更新后的pcrpsi与当前的pcrts相等。
[0053]S4.判断PCR是否满足打包条件:
[0054](I )PCR满足打包条件,生成一个PCR标记的TS包,并跳转至步骤S8 ;
[0055](2)PCR不满足打包条件,进入步骤S5;
[0056]TS包与上一次打包PCR信息的节目时间间隔超过阈值,则认为满足条件,进行打包,如设置阈值小于40ms,确保PCR信息在40ms内打包一次。
[0057]设PCR阈值为Tpcr,上一次打包PCR的节目时间为Pcrpcr,如果当前TS包的节目时间pcrts >pcrpcr+TPCT,则生成一个PCR标记的TS包,并对pcrpcr进行更新,更新后的pcrpcr等于当前pcrts ο
[0058]S5.判断音频是否满足打包条件:
[0059](I)音频满足打包条件,生成一个音频TS包,并跳转至步骤S8;
[0060](2)音频不满足打包条件,进入步骤S6;
[0061]及时打包音频数据,可防止流中音频出现数据下溢,但音频数据连续打包太多会导致流中音频出现数据上溢,设音频模拟解码缓存大小Sma,音频缓存中数据长度为Ima,系统时间超时阈值为Tpcra(步骤S52中所述的固定时间,所有音频流的超时阈值均为0.95秒),如果ptsa<pts/ 4七8£1<口01'1;3+1'1)。1^,且1]1£1>11113,则满足音频打包条件4七8£1表示当前音频数据的播放时间,PtS/表示当前视频数据播放时间(视频流中准备打包的数据播放时间)。
[0062]S6.判断视频是否满足打包条件:
[0063](I)视频满足打包条件,生成一个视频TS包,并跳转至步骤S8 ;
[0064](2)视频不满足打包条件,进入步骤S7;
[0065]及时打包视数据,可防止流中视频出现数据下溢,但视频数据打包太多会导致流中视频出现数据上溢,设视频模拟解码缓存大小为mv,视频缓存中数据长度为Imv,系统时间超时阈值Tpcra(步骤S6中的固定时间,超时阈值,H264: 8秒、MPEG2: 0.95秒),如果ptsv<口(31^+1'1)。:^,且1]^>11^,则打包一个视频数据的15包抓8扇示当前视频数据播放时间。
[0066]S7.生成一个空包并进入步骤S8;
[0067]S8.通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;完成当前TS包的生成,并返回步骤SI进行下一个TS包的生成。
【主权项】
1.一种生成TS流的打包顺序控制方法,其特征在于:包括以下步骤: 51.开始生成TS流; 52.判断音视频是否打包完成: (1)音视频打包完成,打包结束; (2)音视频打包没有完成,进入步骤S3; 53.判断PSI是否满足打包条件: (I )PSI满足打包条件,连续生成所有节目信息的TS包,并跳转至步骤S8; (2)PSI不满足打包条件,进入步骤S4; 54.判断PCR是否满足打包条件: (I )PCR满足打包条件,生成一个PCR标记的TS包,并跳转至步骤S8 ; (2)PCR不满足打包条件,进入步骤S5; 55.判断音频是否满足打包条件: (I)音频满足打包条件,生成一个音频TS包,并跳转至步骤S8; (2 )音频不满足打包条件,进入步骤S6; 56.判断视频是否满足打包条件: (I)视频满足打包条件,生成一个视频TS包,并跳转至步骤S8 ; (2 )视频不满足打包条件,进入步骤S7; 57.生成一个空包并进入步骤S8; 58.通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据,完成当前TS包的生成,并返回步骤SI进行下一个TS包的生成。2.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤SI中如果所有音视频数据均被打包,且TS包的节目时间大于音视频数据的最大播放时间戳,则认为首视频打包完成。3.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S2中PSI的打包条件为:TS包与上一次打包PSI的节目时间间隔大于PSI阈值,PSI阈值在开始生成TS流之前预先设定。4.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S3中PCR的打包条件为:TS包与上一次打包PCR的节目时间间隔大于PCR阈值,PCR阈值在开始生成TS流之前预先设定。5.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S5中对音频是否满足条件的判断包括以下子步骤: 551.判断音频数据的播放时间与视频数据的播放时间大小关系: (1)如果音频数据的播放时间小于视频数据的播放时间;进入步骤S52; (2)如果音频数据的播放时间不小于视频数据的播放时间,则不满足音频打包条件; 552.模拟一个音频解码器缓存,判断判断音频数据的播放时间在大于TS包对应节目时间的固定范围内时,音频模拟解码缓存是否有溢出: (1)如果音频模拟解码缓存无溢出,则认为满足音频打包条件; (2)如果音频模拟解码缓存有溢出,则认为不满足音频打包条件。6.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S6中对视频是否满足条件的判断包括:模拟一个视频解码器缓存,判断视频数据的播放时间在大于TS包对应节目时间的固定范围内、视频模拟解码缓存是否有溢出: (1)如果视频模拟解码缓存无溢出,则认为满足视频打包条件; (2)如果视频模拟解码缓存有溢出,则认为不满足视频打包条件。
【文档编号】H04N21/8547GK105959730SQ201610367473
【公开日】2016年9月21日
【申请日】2016年5月27日
【发明人】龚涛, 郑雪梅, 刘盾, 韩志宏
【申请人】成都索贝数码科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1