一种提高TS流排序能力的方法和装置制造方法及图纸

技术编号:9869247 阅读:86 留言:0更新日期:2014-04-03 13:51
本发明专利技术提供一种提高TS流排序能力的方法及装置,其中该方法应用于TS流发送端设备,该方法包括:在封装TS流数据包时,使用TOS字段中的两个比特位填充TOS序号,使用CC字段中的四个比特位填充CC序号,该TOS序号和CC序号组成该TS流数据包的序号;其中,该TOS字段为该TS流数据包的IP头中的TOS字段,该两个比特位为该TOS字段中的保留比特位;该CC字段为TS头中的CC字段。本发明专利技术的方案在不增加报文封装头的基础上增强了TS流排序丢包处理能力。

【技术实现步骤摘要】
一种提高TS流排序能力的方法和装置
本专利技术涉及视频监控
,尤其涉及一种提高TS流排序能力的方法和装置。
技术介绍
视频监控数据可以采用TS流的封装方式;通常为了降低报文的封装开销,将TS包直接封装在UDP之上,再封装IP头后在IP视频监控网络中传输,请参图1示例的报文格式。TS包的报文头TS头中,Continuitycount(以下简称CC)字段是一个4bit的字段,用来表示报文的顺序。一个TS包(包括TS头和TS载荷)为188字节,而一个IP包长度通常不超过1500字节,所以一个IP包约能封装7个TS包,每个TS包中的CC字段可以按照顺序依次填充。如果第1个IP包包含7个TS包,这7个TS包的CC字段分别为:0000、0001、0010、0011、0100、0101、0110;第2个IP包同样包含7个TS包,这7个TS包的CC字段分别为:0111、1000、1001、1010、1011、1100、1101;第3个IP包同样地具有7个TS包,其CC字段分别为:1110、1111、0000、0001、0010、0011、0100;第4个IP包包含两个TS包,其CC字段为:0101、0110;第5个IP包包含6个TS包,其CC字段分别为:0111、1000、1001、1010、1011、1100。当第2~4个IP包丢失时,由于第5个IP包中的第1个TS包的CC字段为0111,其与第1个IP包中的最后一个TS包的CC字段0110是连续的,所以解码端会认为IP报文并未发生丢失,继续进行解码,这样就会出现花屏卡顿的现象。另外,如果报文出现了乱序,解码端也并不知道应该是第2个IP包在第1个IP包之后还是第5个IP包在第1个IP包之后。请参考图2,对于上述问题的解决,可以采用UDP+RTP+TS的封装方式,通过RTP中的16位序列号来解决乱序丢包的问题。由于RTP中的序列号有16bit,所以基本上不会出现把丢包当作未丢包,出现乱序也无法正确的进行排序的问题。视频监控流量一般比较多,多增加一层封装(RTP封装)会增加设备的负担,降低网络的利用率。
技术实现思路
有鉴于此,本专利技术提供一种提高TS流排序能力的方法和装置。该方法和装置的实现如下:一种提高TS流排序能力的方法,该方法应用于TS流发送端设备,该方法包括:在封装TS流数据包时,使用TOS字段中的两个预留比特位填充TOS序号,使用CC字段中的四个比特位填充CC序号,该TOS序号和CC序号组成该TS流数据包的序号;其中,该TOS字段为该TS流数据包的IP头中的TOS字段,该两个比特位为该TOS字段中的保留比特位;该CC字段为TS头中的CC字段。优选地,上述使用TOS字段中的两个预留比特位填充TOS序号具体为:按照每三个TS流数据包填充相同TOS序号的方式依次循环的填充这两个比特位。基于同样的构思,本专利技术还提供一种提高TS流排序能力的装置,该装置应用于TS流发送端设备,该装置包括:TOS序号填充单元,用于在封装TS流数据包时,使用TOS字段中的两个比特位填充TOS序号;其中,该TOS字段为该TS流数据包的IP头中的TOS字段,该两个比特位为该TOS字段中的保留比特位;CC序号填充单元,用于使用CC字段中的四个比特位填充CC序号;其中,该CC字段为TS头中的CC字段;所述TOS序号和CC序号组成该TS流数据包的序号。优选地,该TOS序号填充单元用TOS字段中的两个比特位填充TOS序号具体为:按照每三个TS流数据包填充相同TOS序号的方式依次循环的填充这两个比特位。相较于现有技术,本专利技术方案在不增加媒体流数据包封装头的情况下,提高了媒体流数据包的排序能力,从而使得解码端在显示视频画面的时候清晰流畅。附图说明图1是一种TS包封装格式图。图2是另一种TS包封装格式图。图3是IP报文头格式图。图4是本专利技术实施例媒体流接收端丢包判断和排序流程图。图5是本专利技术实施例TS流数据包发送端装置逻辑结构图。具体实施方式针对
技术介绍
中提到的问题,本专利技术提出一种不增加报文封装头而增强解码设备乱序丢包处理能力的方案。以下通过具体实施方式详细描述本专利技术方案。TS流发送端在封装TS流数据包时,使用TOS字段中的两个比特位和CC字段中的四个比特位来填充TS流数据包序号;该TOS字段为该TS流数据包IP头中的TOS字段,该两个比特位为该TOS字段中的保留比特位;该CC字段为TS头中的CC字段。请参图3所示的IPv4报文头,该IP报文头中具有1个字节的TOS字段。该TOS字段中有两个保留比特位可以使用。本专利技术方案将使用这两个保留比特位来扩大TS流数据包序号的范围,以此来较好的解决TS流数据包乱序后的排序问题。使用TOS字段中的两个比特位和CC字段中的四个比特位来填充TS流数据包序号具体可以按照如下方法来操作:TS流发送端在TOS字段的两个比特位中,按照每三个TS流数据包填充相同序号的方式依次循环的填充这两个比特位(这两个比特位的内容构成TOS序号)。比如说第1~3个TS流数据包,TOS保留的两个比特位中填充00;第4~6个TS流数据包,TOS保留的两个比特位中填充01;第7~9个TS流数据包,TOS保留的两个比特位中填充10;第10~12个TS流数据包,TOS保留的两个比特位中填充11。如此完成一轮填充,接下来的TS流数据包按照上述方式继续循环填写,比如说第13~15个TS流数据包,TOS保留的两个比特位中填充00,依次类推。TS流发送端在TS头的CC字段的四个比特位中,还是按照现有的方式进行数据包序号的填充(CC字段四个比特位的内容构成CC序号)。从上文描述可以看出,一个TS流数据包的序号包含两部分:一部分为TOS序号,另一部分为CC序号。在解码端进行TS流数据包排序时需要同时关注TOS序号和CC序号。请参表1,该表给出了一个在TOS保留比特位和CC比特位中填充TS流数据包序号的具体例子。第1个TS流数据包的TOS保留比特位填充00,第1个TS流数据包包含7个TS包,这7个TS包的CC字段分别填充0000、0001、0010、0011、0100、0101、0110;第2个TS流数据包的TOS保留比特位填充00,第2个TS流数据包也包含7个TS包,其中的第1个TS包的序号承接第1个TS流数据包中最后1个TS包序号(0110)递增填充为0111,第2个TS流数据包的其他6个TS包的序号为:1000、1001、1010、1011、1100、1101;第3个TS流数据包的TOS保留比特位填充00,第3个TS流数据包也包含7个TS包,承接第2个TS流数据包的最后1个TS包序号,继续填充这些TS包的序号分别为:1110、1111、0000、0001、0010、0011、0100。第4个TS流数据包的TOS保留比特位填充01;第4个TS流数据包包含2个TS包(在本实施例中,对每一帧所封装的第一个TS包将由一个新的TS流数据包来承载,所以第4个TS流数据包仅包含2个TS包是由于本帧已经结束的缘故),其TS包序号为:0101、0110。第5个TS流数据包的TOS序号为01,该TS流数据包包含7个TS包,其序号分别为:0111、1000、1001、1010、1011、1100、1101。以下TS流数据包中T本文档来自技高网
...
一种提高TS流排序能力的方法和装置

【技术保护点】
一种提高TS流排序能力的方法,该方法应用于TS流发送端设备,其特征在于,该方法包括:在封装TS流数据包时,使用TOS字段中的两个预留比特位填充TOS序号,使用CC字段中的四个比特位填充CC序号,该TOS序号和CC序号组成该TS流数据包的序号;其中,该TOS字段为该TS流数据包的IP头中的TOS字段,该两个比特位为该TOS字段中的保留比特位;该CC字段为TS头中的CC字段。

【技术特征摘要】
1.一种提高TS流排序能力的方法,该方法应用于TS流发送端设备,其特征在于,该方法包括:在封装TS流数据包时,使用TOS字段中的两个预留比特位填充TOS序号,使用CC字段中的四个比特位填充CC序号,该TOS序号和CC序号组成该TS流数据包的序号;其中,该TOS字段为该TS流数据包的IP头中的TOS字段,该两个比特位为该TOS字段中的保留比特位;该CC字段为TS头中的CC字段。2.如权利要求1所述的方法,其特征在于,所述使用TOS字段中的两个预留比特位填充TOS序号具体为:按照每三个TS流数据包填充相同TOS序号的方式依次循环的填充这两个比特位。3.一种对应用权利要求1或2方法的TS流进行排序的方法,该方法应用于解码端设备,其特征在于,该方法包括:在缓存中查找TOS序号和CC序号正确的TS流数据包,所述TOS序号是由该TS流数据包的IP头中的TOS字段的两个预留比特位填充的,所述CC序号是由TS头中的CC字段的四个比特位填充的。4.如权利要求3所述的方法,其特征在于,所述TOS序号为所述TOS字段中的两个预留比特位按照每三个TS流数据包填充相同TOS序号的方式依次循环的填充的,在缓存中查找TOS序号和CC序号正确的TS流数据包包括如下步骤:步骤A、判断当前TOS序号TOS_TAIL对应的计数变量TOS_count是否等于3,如果是,转步骤B,否则,转步骤C;步骤B、判断缓存中是否存在TOS序号为((TOS_TAIL+1)mod3)的TS流数据包,如果是,转步骤D;否则,转步骤E;步骤C、判断缓存中是否存在TOS序号为TOS_TAIL的TS流数据包,如果是,转步骤F;否则,转步骤G;步骤D、在TOS序号为((TOS_TAIL+1)mod3)的TS流数据包中进一步判断是否存在CC序号为((CC_INFO+1)mod16)的TS流数据包,其中CC_INFO为当前的CC序号,如果是,则转步骤H;否则,转步骤I;步骤E、确认当前丢包;转步骤L;步骤F、在当前TOS序号的TS流数据包中进一步判断是否存在CC序号为((CC_INFO+1)mod16)的TS流数据包,其中CC_INFO为当前的CC序号,如果是,则转步骤J,否则,转步骤K;步骤G、确认当前丢包;转步骤M;步骤H、确认当前未丢包;该TOS序号为((TOS_TAIL+1)mod3),CC序号为((CC_INFO+1)mod16)的TS流数据包为当前待查找的TS流数据包;进一步地,将当前的TOS序号TOS_TAIL设置为该查找到的TS流数据包的TOS序号,将当前的CC序号CC_INFO设置为该查找到的TS流数据包中最后一个TS包的CC序号,将当前的计数变量TOS_count设置为1;返回步骤A;步骤I、确认当前丢包;转步骤M;步骤J、确认当前未丢包;当前TOS序号为TOS_TAIL且CC序号为((CC_INFO+1)mod16)的TS流数据包为当前待...

【专利技术属性】
技术研发人员:周迪杜超华
申请(专利权)人:浙江宇视科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1