专利名称::Ts包修整的制作方法TS包修整相关申请的交叉引用根据35USC119(e),本申请要求于2007年8月8日提交的题为“TSPacketGrooming(TS包修整)”的第60/954,640号美国临时申请的权益,该临时申请的全部内容通过引用并入本文。基于联邦资助的研究和开发的发明权利声明不适用参照压缩盘上的“序列表”、表或计算机程序列表附录不适用
背景技术:
:本发明涉及在数字广播系统中接收数据包的方法和装置,更具体地涉及在数字视频广播(DVB)系统中用于修整传输流包的方法和装置。MPEG(运动图像专家组)标准专注于视频和音频数据的编码和传输。通常,MPEG标准使用压缩算法来减少将被传输和/或存储的字节的数量,而不显著影响原始视频和音频内容的质量。国际标准化组织(在下文称为IS0/IEC)已经开发了MPEG-2标准,用于对运动的图像和相关联的音频进行编码。MPEG-2标准在四个文档中阐述。文档IS0/IEC13818-1(系统)规定了规范的系统编码。它定义了用于结合视频和音频数据的多路复用结构,并且包括视频和相关联的音频的同步播放序列所需的定时信息。文档IS0/IEC13818-2(视频)规定了视频数据的编码表示和重构图像所需的解码方法。文档IS0/IEC13818-3(音频)规定了音频数据的编码表示和重构声音所需的解码方法。文档IS0/IEC13818-4(—致性)规定了确定编码流特性的程序和测试是否符合文档IS0/IEC13818-1、13818-2和13818-3中的要求。MPEG-2标准提供了基于包的编码和多媒体数据的传输,将视频、音频、其它数据多路复用为比特流。然后将比特流分段为打包基本流(PES),接着将对应的包多路复用为两个不同流中之一传输流(TS)或节目流(PS)。传输流由固定长度(188字节)的包构成,而节目流包括可变长度的PES包的多路复用。传输流在数字视频广播(DVB)系统中使用,而节目流在无误差环境中使用,例如,数字多功能光盘(DVD)上的录制节目。PES是用于携带基本流数据的数据结构。基本流(ES)是编码的视频、编码的音频、或在只具有一个包识别符(PID)的PES包序列中所携带的其它编码数据流中的任一种。传输流(TS)包在视频广播中使用,其中传输信道具有噪音并且面对多种减损,例如多径衰落、群时延变化、由于接收机相对于广播站移动的多普勒效应、由本地振荡器漂移引起的载波频率偏移、载波相位噪声、载波振幅不均衡、由无意的过滤引起的信道带宽畸变等。与基于MPEG-2标准采用的DVB传输流(TS)的其它DVB传输系统形成对比,DVB-H是用于手持接收机的广播服务的规范,并且在2004年11月被正式地采用作为ETSI(欧洲电信标准协会)标准。更具体地,DVB-H是地面数字TV标准,其要求节约能源并且允许接收机在接收服务时自由地移动。DVB-H基于网际协议(IP)。因此,DVB-H标准接口是IP接口形式。这种接口允许DVB-H系统与其它基于IP的网络结合。这种结合是IP组播系统的一个特征。MPEG-2TS仍然由链路数据层使用。将编码的多媒体数据映射成可变长度的IP包,该IP包被称为IP数据报。通过多协议封装(MPE)和在DVB数据广播规范ETSIEN301192中定义的适配协议,将IP数据报封装到传输流中。在MPE级别,增加了前向纠错(FEC)这一额外级。这种被称为MPE-FEC的技术是DVB-H主要创新之一。MPE-FEC补充了底层DVB-T标准的物理层FEC。其降低了手持设备接收的信噪比(SNR)要求。在IP输入流通过MPE被封装之前,在IP输入流级别的链路层上进行MPE-FEC处理。图IA是包括DVB-H编码译码器的DVB-H发射机的框图,DVB-H编码译码器包含MPE-FEC、MPE和时间分片技术。时间分片技术是DVB-H系统的功率节约特征,其将发射的节目流分配到时间片内,从而允许接收机仅在想要接收突发数据的时候是活动的而在其它的功率节约时间内断电。根据时间片方法,对由不同源提供且作为基本流的IP输入流进行多路复用。单个MPEG音频或视频编码器的输出称为基本流(ES)。分别对每个单独的基本流进行MPE-FEC误差保护计算。将IP图封装到MPE段中。MPE段又通过前向纠错(FEC)码进行保护。里德所罗门码RS(255,191,64)码用于数据可靠性增强并且形成FEC段。根据时间分片方法,对由不同源提供且作为单个基本流(ES)的IP输入流进行多路复用。将视频节目流编码为MPEG-2格式,接着通过MPE-FEC段对编码的数据进行包装和多路复用以形成传输流(TS)包。DVB-T编码器101包括4K调制器和发射器参数信令(TPS)信息,该信息表示DVB-H传输的DVB-T编码器(TPS)信息与物理层的DVB-T标准兼容。图IB示出了DVB-H接收机的现有技术框图。接收机120包括恢复MPEG-2传输流(TS)包的DVB-H解调器122。然后,将TS包124应用于包括时间分片模块134的DVB-HIP解封装器130。时间分片模块134控制接收机解码想要的服务,并且在其它服务中关闭。其目的是减少接收机的功率消耗。MPEG-FEC模块136提供补充的FEC功能,其允许接收机120处理尤其困难的接收情况。传输流包可携带许多不同的节目流,每个传输流包使用不同的压缩系数和比特率,该比特率可在整体比特率保持恒定的情况下动态地改变(统计多路复用)。为移动和手持接收机设备的数字视频广播规定了DVB-H标准,该设备有时候可能由于小尺寸的天线和它们相对于广播站的移动速度而不能良好地接收,本发明的目的是提供用于改进解调的数据包质量的方法和装置。
发明内容本发明提供用于修整传输流包的方法和装置,该传输流包能够支持多种数据服务。根据本发明的一个实施方式,应用多种交叉校验技术,以重构部分正确的接收到的TS包并且改进MPE-FEC处理的性能,从而产生无误差IP数据报。在本发明的一个实施方式中,DVB接收机部分地包括解调器和接口模块,接口模块被配置为根据被应用于MPEG-2传输流的所选择的包段的一组预定条件,接收多个解调的传输流包。接收机进一步包括具有解析器和布尔逻辑单元的包处理器,布尔逻辑单元被配置为对一组模式执行逻辑操作,这一组模式可以是连续聚集在一起或物理上分布在一个接收到的包内和/或多个包之间的单个比特和/或多个比特。包处理器可耦合至包含算法的存储器模块,存储器模块被配置为与包处理器一起执行多个交叉校验和调整功能。对接收到的包的检测可从定位同步模式和获得预定数量的连续正确同步模式起始。一旦连续接收到预定数量的(例如5个)同步模式,则可识别包的正确边界。然后处理器可解析(定义为检查和识别感兴趣的预定字段)传输流包的头字段。所述头字段包括对本发明的交叉校验和调整技术至关重要的多组比特模式。将具有相同包识别符(PID)字段的包存储在存储器模块的相应位置,将校验它们单独的连续计数(CC)字段与网页计数值。影子计数器可以是从0到OxF计数和循环的4比特二进制计数器,即,影子计数器可以是模16计数器。包处理器可执行如下的交叉校验步骤。如果PID字段匹配预选的PID值以及CC字段不匹配影子计数器的值,那么处理器会调整CC字段。如果CC字段匹配影子计数器值以及PID值不匹配预选的PID值,那么处理器会调整PID字段。包处理器可将接收到的包临时存储在缓冲器中用于进一步处理,即,根据本发明的一个实施方式、基于相应的PID和CC恢复规则修改感兴趣的字段(例如,PID和CC字段)。如果接收到的TS包的PID字段匹配预选择的PID值并且其CC字段匹配网页计数值,那么包处理器可将接收到的TS包转发至下面的IP解封装器。包处理器可进一步校验“适配字段控制”状态以确定适配字段是否具有不规则的长度。如果适配字段控制是二进制模式'10'或'11'之一,那么处理器可将适配字段长度调整至规则长度。处理器可进一步校验“有效载荷单元起始指示符”(PUSI)字段的状态。PUSI字段为0表示传输流(TS)包没有携带新的有效载荷的起始。如果PID字段匹配预选择的值以及PUSI字段不匹配所期望的PUSI值(例如'0'),那么处理器可重置PUSI字段。包处理器可进一步校验指针字段与所期望的指针值;以及如果PID与匹配,那么将指针字段设置为最小长度值。最小长度值可被定义为剩余段长度值和常量(例如,十进制183)减去适配字段长度的结果之中的最小值。包处理器可进一步校验段长度字段与IP长度值以及验证IP校验和的有效性;如果段长度字段不匹配IP长度值以及IP校验和有效,那么将段长度字段调整为IP长度值;以及如果段长度字段匹配以及IP校验和有效,那么保留段长度字段。包处理器可进一步校验地址字段与所期望的地址值;如果地址字段不匹配,那么基于整齐的段地址,校正地址字段。包处理器可进一步校验表边界标记和帧边界标记;根据在规范的相应部分描述的规则,修改表边界和帧边界。图IA是现有技术中已知的DVB-H发射机的框图;图IB是现有技术中已知的DVB-H接收机的现有技术框图;图IC是根据本发明的一个实施方式的DVB-H接收机的示例性框图;图2是现有技术中已知的,通过MPE将IP数据报封装到TS包中;图3示出了在ETSIEN301192和IS0/IEC13818-6中定义的根据DVB-H传输流的MPE段语法;图4示出了根据MPEG标准的MPEG-2TS包;图5示出了现有技术中已知的、通过使用多协议封装(MPE)将IP数据报封装到多个TS包中;图6A-6D示出了根据本发明的一个实施方式,通过使用交叉校验技术修整TS包的流程图;图7示出了根据本发明的一个实施方式用于修整TS包的示例性的包处理器;图8示出了根据本发明的一个实施方式改进的性能与通常的DVB-H接收机之间的仿真结果。下面的详细描述和附图将能更好地理解本发明的特征和优点。具体实施例方式图IC是根据本发明的一个实施方式的示例性DVB-H接收机140框图。接收机实施方式140部分地包括包处理器148,包处理器148介于DVB-H解调器模块142与时间分片模块154之间。包处理器148截取和处理大量的TS包144,并且输出经修整的TS'包145,接着将TS'包145应用于IP解封装模块150。本文中所用的术语“修整(groom)”描述了根据本发明的实施方式的经修改的TS包,以改进载噪(C/N)比。包处理器148被耦合至存储算法的存储器模块146,该算法用于交叉校验TS包中的多组比特模式以校正接收到的TS包中的至关重要的字段,从而提高MPE-FEC处理和IP数据报解封装的性能。本发明的交叉校验技术将在下面详细描述。DVB标准规定通过多协议封装(MPE)在MPEG-2TS中携带IP数据报。图2示出了将每个IP数据报201封装到MPE210中。接着又将MPE210封装到MPE段232中。然后将MPE段的流放入基本流(ES)中,即,具有具体节目识别符(PID)的MPEG-2TS包的流。每个MPE段具有12字节的头部231、有效载荷长度232和4字节的循环冗余校验(CRC-32)尾部233。总的有效载荷长度等于IP数据报的长度。MPE210包括多个行212和多个列214。列数对应于191字节,行数对应于256、512,768或1024。每行的191字节还由里德所罗门(RS)码保护,RS码产生用于MPE-FEC221的附加64个RS奇偶字节(RS码字)。因此,MPE-FEC编码器产生合并了IP数据报201且被称为FEC帧的特定帧结构。FEC帧由最大1024行和常数的255列构成,最大为261,120字节。将MPE数据封装到多个MPE段232中,将RS数据封装到多个MPE-FEC段242中。在相同的ES内,发送完最后一个MPE段之后立即发送MPE-FEC段242,但是MPE-FEC段242与MPE段具有不同的表id。使用两个不同的表id使得接收机能够区别两种类型的段。MPE-FEC帧的行数在服务信息中发送并且可取256、512、768或1024中的任一值。用于应用数据表(ADT)的列数是191,用于RS数据表221的列数是64。将具体突发的IP数据报从左上角起始、垂直地逐列引入ADT中。如果IP数据报不能精确地在列的底部结束,则剩下的字节继续从下一列的顶部起始。如果IP数据报不能精确地填满ADT,则剩下的字节位置用零填补(零填补217)。在每行上,通过使用里德所罗门码1(255,191,64),根据同一行的191个IP数据报字节(和填补字节,如果应用的话)计算RS数据表221的64个奇偶字节。MPE段232的头部231和MPE-FEC段242的头部241包含4字节的实时参数字段,该实时参数字段包括12比特的起始地址,该起始地址表示相应IP数据报或RS列的起始位置的字节号(从ADT表的起始位置计数);18比特的delta_t参数;以及1比特的表边界标记和帧边界标记,以发出表结束和帧结束的信号。图3是根据ETSIEN301192和IS0/IEC13818-6中定义的DVB-H传输流的MPE段语法。图4是根据MPEG-2标准的MPEG-2传输流包格式语法。图5是示出了188字节的多个传输流包500,每个包包括头部501和有效载荷502。每个头部501包括八(8)比特同步字节字段510、一(1)比特传输误差指示符字段511、一(1)比特有效载荷单元起始指示符字段512、一(1)比特传输优先级字段513、十三(13)比特包识别符字段514、两⑵比特传输加扰控制字段515、两⑵比特适配字段控制字段516、四(4)比特连续计数器字段517和可选的适配字段518。在MPEG-2标准中描述了这些字段中的每一个。下面只描述与本发明实施方式相关的字段。同步字节510具有二进制形式〃01000111〃(0x47),并且识别传输流(TS)包的起始。有效载荷单元起始指示符(PUSI)字段512指出TS包携带新的有效载荷的起始(PUSI="1")或者TS包没有携带新的有效载荷的起始(PUSI="0")。包指示符(PID)字段514指示有效载荷502中携带的数据的类型。保留特定的PID值。连续计数器(CC)字段517对具有相同PID字段514值的连续TS包进行计数。四比特连续计数字段517用于帮助检测广播误差。计数器通常从0到OxF计数,然后再从0起始。流中具有相同PID的下一个包将具有递增1的连续计数器字段。这样,连续计数器在具有相同PID的所有包内以连续的序列运行。然而,具有不同PID的包的连续序列是不同的。图6A示出了根据本发明的一个实施方式的修整TS包的方法。该方法包括在识别了TS包的起始之后(例如,在成功地接收到连续数量的同步模式之后)解析接收到的TS包500的头501;以及执行包识别符(PID)字段514和连续计数器字段517的过滤。该方法还包括比较PID字段514与预选的PID值,以及校验CC字段517与影子计数器(shadowcounter)中的值。预选的PID值可以是由用户提供的希望的服务值。在步骤610处,包处理器执行CC字段和PID字段的验证。在步骤612处,包处理器通过执行布尔操作,比较PID字段514与“希望的"PID服务值,以及比较CC字段517与影子计数器中的值。包含在存储器模块146中的软件(机器可读码)可执行下列指令如果PID字段514与希望的PID服务值匹配,并且CC字段517不匹配影子计数器值,那么在步骤614处包处理器会(能够)用影子计数器值调整(修改)CC字段517。CC值的恢复将在下面进行详细描述。CC恢复这是指连续计数器值的恢复。连续计数器的行为由下列规则(除了IS0/IEC13181-1)管理连续计数器是4比特字段,与具有相同PID的每个传输流包一起递增。连续计数器值在到达其最大值之后返回到0。当包的适配字段控制等于'00'或'10'时,连续计数器不增加。·在传输流中,重复包可作为2个并且仅2个具有相同PID的连续传输流包发送。重复包将与原始包具有相同的连续计数器值,并且适配字段控制字段等于'01'或'11'。在重复包中,原始包的每个字节重复,除了在程序时钟参考字段(如果存在)中之外,对有效值进行编码。·当具体传输包中的连续计数器与具有相同PID的上一传输流包中的连续计数器值相差一个增量时,或者当满足非递增条件(适配字段控制被设置为'00'或'10',或者上述的重复包)时,具体传输包中的连续计数器是连续的。当非连续指示符被设置为'1'(参考2.4.3.4)时,连续计数器可以是不连续的。在空包的情况下,连续计数器的值是未定义的。在步骤616中,PID字段和CC字段可具有下列两个条件之一(i)如果PID字段514匹配以及CC字段517匹配,那么在步骤690处可将TS包转发至DVB-H解封装器;(ii)如果PID字段514不匹配所希望的PID服务值,以及CC字段517匹配影子计数器值,那么在步骤618处将(能够)用希望的PID服务值调整PID字段514。PID字段恢复将在下一部分描述。PID恢复当具有正确连续计数器值的包中的PID字段遭到破坏时,这个方案可能恢复PID值。根据本发明的一个实施方式,将接收到的包的连续计数器与携带IP/MPE流的所有PID的期望的连续计数器进行比较。如果CC值与一个且仅一个PID的期望CC值匹配,那么PID恢复方案将接收到的TS包的PID字段校正至具有与之匹配的CC字段的PID。在步骤620处,图6A中所示的方法还包括解析适配字段控制516。在步骤622处,如果包处理器校验出PID字段514匹配以及适配字段518具有不规则长度,那么在步骤624处调整适配字段。在MPE流中,适配字段通常用于下列目的1)当未使用段包装时,用非协议数据填补TS包。2)当MPE段的剩余长度是183时,可使用1字节的适配字段(在这个TS包中没有空间来起始新的段)。3)通过多路复用器发送某些附加信息。根据本发明的一个实施方式,包处理器148对封装算法执行初始训练以确定MPE封装方案。如果使用没有适配字段的段包装,那么除了在满足条件2)时以外,TS修整程序使用该信息、通过否认来校正适配字段控制。0058]在步骤630处,该方法还包括解析PUSI字段512。这是因为被破坏的包可能具有被设置为错误值的PUSI字段。例如,当接收到的TS包携带新的有效负载的起始时,PUSI值等于单位值。在步骤632处,验证这个条件。如果PID字段匹配以及PUSI不匹配,那么执行步骤634。否则在步骤636处保留PUSI字段值。在本发明的一个实施方式中,将PUSI设置为1的接收到的TS包需要满足的条件是a)适配字段控制为Oxl或0x3;以及b)TS包有效载荷的长度(184-适配字段)大于当前接收的段的剩余长度。如果这些条件中的任一个不满足,那么将PUSI校正为0。反之,具有段起始的包可能具有被破坏为0的PUSI。在本发明的一个实施方式中,当剩余长度小于有效载荷长度时检测到这个条件,表id字段紧随其后。表id是MPE或MPE-FEC段的第一字节。对于MPE段,表id设置为0x3E,对于MPE-FEC段,表id设置为0x78。在步骤640处,图6B所示的方法进一步包括解析指针字段(未示出)。指针字段是PUSI为单位值(="1")的TS包的第一字节有效载荷字节。指针字段包含TS包中紧跟在指针字段后面的字节数。指针字段的破坏能够使软件丢失段头的踪迹。因此,为了正确地定位段头,在步骤642处使指针字段有效。如果PID字段匹配,PUSI为1以及指针字段不等于剩余的段长度,那么将发现对指针字段的潜在破坏。在步骤644处,指针值能够用183(十进制)与适配字段长度的差值、以及剩余段长度中的最小差值取代。在本发明的一个实施方式中,如果表id(在MPE段情况下为0x3e,或MPE-FEC段情况下为0x78)有效,那么将指针值校正至剩余段长度值。在步骤650处,图6B所示的方法进一步包括解析有效载荷(未示出)中的表ID字段,以及比较其与有效表ID的预定设置(例如,对于PAT为0x00、对于CAT为0x01、对于PMT为0x02、对于NIT为0x40等)。在步骤652处,包处理器确定如果PUSI为1以及指针指示的字节不是有效的表ID,那么在步骤654处包处理器会调整表ID字段。在步骤660处,该方法进一步包括解析段长度,以及比较段长度与IP长度。段长度表示相关联的IP图所需的TS包的数目。MPE段的最大大小为4096字节,从而可封装多达4080字节的IP图(4096-(12字节段头-(4字节CRC))。在步骤662处,包处理器确定如果段长度不等于IP长度,以及IP头校验和有效,那么在步骤664处将段长度调整至IP长度。否则在步骤666处保留段长度。下面描述段长度的调整。段长度根据本发明的一个实施方式,如下检测到段长度的破坏1)如果是MPE段,那么可比较IP图长度与段长度。下面的关系表示破坏IPLength!=MPELength-13。在破坏的情况下,可按下列方式验证IPHeaderLength值a.IP头校验和如果IP头校验和通过,那么假设MPELength等于IPLength+13;或者b.UDP长度如果IPLength=UDPLength+IPHeaderSize,那么可将MPELength修改为IPLength+13。2)如果是MPE-FEC段,那么表大小(行数)用于验证段长度字段是否完整。在步骤670处,图6C所示的方法进一步包括解析地址字段,以及比较地址字段与已经写入MPE表中的多个字节。在步骤672处,包处理器确定如果地址字段与已经写入MPE表内的多个字节不匹配,那么假设地址字段被破坏并且可基于MPE段的当前位置校正地址字段。对于MPE-FEC段,将校正系数应用于计算与应用数据表的偏移。在步骤680处,该方法进一步包括解析表边界标记和帧边界标记。表边界标记通过发射机在帧的最后一个MPE段和最后一个MPE-FEC段中设置为1。帧边界设置于帧的最后一个MPE-FEC段中。错误的表边界标记和帧边界标记需要被清除。如果具有PUSI标记的TS包被破坏,以及有效载荷不对应于应用数据表(ADT)的最后部分或RS数据列,那么认为标记是错误的。在步骤681处,如果设置表边界标记而没有设置帧边界标记,那么如果包处理器进一步校验出这个部分的表ID不是MPE段,或者如果下一段的表ID不是MPE-FEC段,那么在步骤683处将表边界标记清零(“0")。如果在步骤681处条件不满足,那么在步骤685处包处理器将校验是否设置了帧边界标记。如果未设置帧边界标记(即="0"),那么在步骤686处将包转发至下面的定时接口单元730中,接口单元730被配置为与时间分片模块730(图7)交互。如果在步骤685处条件满足,那么包处理器进一步校验这个段的表ID是否不是MPE-FEC段。如果条件满足,那么在步骤688处包处理器将表边界和帧边界标记清零。如果这个段的表ID是MPE-FEC段,那么包处理器进一步校验下一段的表ID是否是MPE-FEC段,以及段地址是否小于MPE-FEC表行数的64倍乘积。如果条件满足,那么在步骤690处包处理器将帧边界标记清零,并且将包转发至下面的时间分片接口用于进一步的处理。否则,在步骤691处处理器仅转发包。下面描述用于修正表边界标记和帧边界标记的示例性伪代码。表和帧边界标记在步骤680处用于修正坏的表边界标记和帧边界标记的伪代码如下If(TBL_BDRYissetANDFRM_BDRYisnotset)If(TBLIDofcurrentsectioninnot0x3EORTBL_IDofnextsectionisnot0x78)ClearTBL_BDRYEndlfElseIf(FRM_BDRYisset)If(TBL_IDofcurrentsectionisnot0x78)ClearFRMBDRYElseIf(TBL_IDofnextsectionis0x78ANDNextSectionAddress<=64*NumberofMPE-FECtablerows)ClearTBL_BDRYandFRM_BDRYEndIfEndIf(如果设置了TBL_BDRY并且未设置FRM_BDRY如果当前段的TBLID不是0x3E或者下一段的TBL_ID不是0x78将TBL_BDRY清零结束否则如果设置了FRM_BDRY如果当前段的TBL_ID不是0x78将FRM_BDRY清零否则如果下一段的TBL_ID是0x78且下一段地址<=64*MPE-FEC表的行数将TBL_BDRY和FRM_BDRY清零结束结束)图7是包处理器148的示例性实施方式。包处理器148部分地包括解析模块710,解析模块710被配置为解析接收到的TS包的头以过滤PID字段514。解析器710还识别其它感兴趣的预定字段,例如CC字段517、PUSI字段512、适配字段控制516、适配字段(图5)的指针字段、地址字段(图3)、表和帧边界标记(图3)等。布尔操作器750在接收到的TS包中对感兴趣的字段执行验证。在本发明的一个实施方式中,可通过修改模块720、基于布尔操作的结果校正重要的参数,修改模块720根据上面描述的规则调整(修改)感兴趣的字段。包处理器148可进一步包括缓冲器740,缓冲器740被配置为临时存储修整的TS'包145。可将包含指令且用于执行包处理器148的操作(例如,根据所描述的规则解析和修改感兴趣的字段)的软件(计算机程序)存储在存储器模块146中。存储器模块146可与包处理器集成或位于处理器外部。包处理器可进一步部分地包括时间分片接口模块730、被配置为临时存储修整的TS'包的缓冲模块740、和被配置为提供用户接口的多个状态和控制寄存器。在本发明的一个实施方式中,包处理器可以是集成电路(IC)或通过ASIC(专用IC)实现的IC的一部分、以及FPGA(现场可编程门阵列)、结构化门阵列、和/或可以用现有技术已知的任何方式编程的其它处理器。图8示出了根据本发明的一个实施方式,改进的性能与通常DVN-H接收机之间的仿真结果。仿真使用具有随机字节误差的参考TS流。通过如下两个参数确定误差1)包误码率(PER)包具有误差的比率。假设包误差是独立且不相关的。2)条件字节误码率(CBER)坏包里被破坏的字节的比例。也假设字节误码率是不相关的。仿真参数是8K模式、QPSK、编码率1/2、保护区间1/4、和多普勒频率15Hz、65Hz和95Hz。可理解字节误码和包误码的假设不是严格有效的,因为突发噪声和/或干扰时非常可能产生相关误差。图8指出了根据本发明的一个实施方式,可在8.6dBC/N、65Hz多普勒频率下以及在9.4dBC/N、95Hz多普勒频率下实现小于5%的MFER(MPE_FEC帧误码率)。这些(即1.3dB至3.IdB)与通常接收机的性能要好(即,只满足MBRAI规范的实现)。尽管参照示例性实施方式描述了本发明,但是本领域技术人员将认识到各种修改也是可能的。例如,本文描述的方法可通过硬件、软件和/或其任意组合实现。由此,说明书和附图是示例性的而不是限制性的。然而,显然地,可在不背离权利要求所述的宽泛的精神和范围的前提下对其进行各种修改和改变,本发明旨在覆盖权利要求范围内的所有修改和等同。权利要求一种在数字视频广播(DVB)系统的接收机中修整传输流(TS)的方法,所述方法包括解析接收到的TS包的头字段;比较所述接收到的TS的包识别符(PID)字段与所选择的包识别符(PID)值;比较所述接收到的TS包的连续计数器(CC)字段与所期望的CC值;如果所述PID字段匹配而所述CC字段不匹配,那么修改所述接收到的TS包的所述CC字段;如果所述PID字段不匹配而所述CC字段匹配,那么调整所述PID字段;以及如果所述PID字段匹配且所述CC字段匹配,那么将所述接收到的TS包转发至处理模块。2.如权利要求1所述的方法,其中,所述处理模块是MPE-FEC解码器,所述MPE-FEC解码器被配置为根据MPEG-2标准处理里德所罗门前向纠错(FEC)解码功能。3.如权利要求1所述的方法,进一步包括比较所述接收到的TS包的适配字段控制与预定的适配字段控制模式;以及如果所述PID字段匹配且所述适配字段控制与所述预定的适配字段控制模式匹配,那么修改适配字段长度。4.如权利要求3所述的方法,进一步包括校验所述接收到的TS包的有效载荷单元起始指示符(PUSI)字段;如果所述PID字段匹配且所述PUSI字段等于单位值,那么重置所述PUSI字段;以及如果所述PID字段匹配且所述PUSI字段等于零,那么保留所述PUSI字段。5.如权利要求4所述的方法,进一步包括比较所述接收到的TS包的指针字段与所期望的指针值;如果所述PID字段匹配,所述PUSI等于单位值且所述指针字段不匹配,那么将所述指针字段设置为最小长度值;以及如果所述PUSI字段等于单位值并且由所述指针字段指示的字节不是有效的表ID,那么修改表ID字段。6.如权利要求5所述的方法,其中,所述最小长度值是剩余的段长度值和十进制183减去适配字段长度的结果中的最小值。7.如权利要求5所述的方法,进一步包括比较所述接收到的TS包的段长度值与IP长度值;校验IP校验和的有效性;如果所述段长度值与所述IP长度值不匹配且所述IP头校验和有效,那么将所述段长度值修改至所述IP长度值;以及如果所述段长度值与所述IP长度值匹配且所述IP校验和有效,那么保留所述段长度值。8.如权利要求7所述的方法,进一步包括比较所述接收到的TS包的地址字段与预定的地址值;如果地址字段不匹配所述预定的地址值,那么基于段的当前位置修改所述地址字段;以及修改表边界标记和/或帧边界标记。9.一种用于修整多个接收到的传输流包的装置,所述装置包括接口模块,被配置为根据所选择的服务,接收多个传输流(TS)包;包处理器,具有解析器和布尔逻辑单元,所述解析器被配置为解析所述多个接收到的传输流包中的每一个的包头,所述布尔逻辑单元被配置为逻辑比较所述接收到的传输流包中的一组模式与多个预定值;以及存储器模块,被配置为存储软件,所述软件包含用于所述包处理器的程序代码。10.如权利要求9所述的方法,其中,所述多个预定值是二进制值。11.如权利要求9所述的装置,其中,所述一组模式是在接收到的传输流包中的相邻的或者物理上分离的单个比特和比特组。12.如权利要求9所述的装置,其中,所述包处理器对封装在所述包头中的包识别符(PID)字段和连续计数器(CC)字段进行解析。13.如权利要求9所述的装置,其中,所述程序代码包括算法,所述算法适于与所述包处理器一起操作以基于从所述PID字段和所述CC字段的布尔操作获得的结果进行CC恢复和PID恢复。14.如权利要求9所述的装置,其中,所述包处理器进一步包括被配置为跟踪CC值的影子计数器。15.如权利要求14所述的装置,其中,所述影子计数器是4位模16计数器。16.如权利要求14所述的装置,其中,所述包处理器进一步解析适配字段控制比特;如果所述PID值匹配且所述适配字段控制比特等于单位值,那么调整适配字段长度。17.如权利要求16所述的装置,其中,所述包处理器进一步解析有效载荷起始指示符(PUSI)值;比较所述PUSI值与所期望的PUSI值;如果所述PID值匹配以及所述PUSI值与所期望的PUSI值不匹配,那么将所述PUSI值重置为0;以及如果所述PID值匹配以及所述PUSI值与所期望的PUSI值匹配,那么保留所述PUSI值。18.如权利要求17所述的装置,其中,所述包处理器解析指针字段值;比较所述指针阈值与预定的指针值;将所述指针字段值设置为剩余段长度值和十进制183减去所述适配字段长度的结果中的最小值。19.如权利要求18所述的装置,其中,如果所述PUSI值等于单位值且所述指针字段值不是有效的表ID,那么所述包处理器进一步调整表ID字段。20.如权利要求19所述的装置,其中,所述包处理器进一步执行解析段长度值;通过比较所述段长度值与预定的长度值,使所述段长度值有效;如果所述段长度值不匹配所述预定的长度值,那么将所述段长度值调整至所述和;以及如果所述段长度值匹配所述预定的长度值,那么保留所述段长度值。21.如权利要求20所述的装置,其中,所述预定的长度值是IP长度和常量之和。22.如权利要求21所述的装置,其中,所述常量是十进制13。23.如权利要求20所述的装置,其中,所述包处理器进一步执行解析地址字段;比较所述地址字段与预定的地址值;以及如果所述地址字段不匹配所述预定的地址值,那么基于段的当前位置调整所述地址字段。24.如权利要求20所述的装置,其中,所述包处理器进一步执行解析表边界标记和帧边界标记;校验所述表边界标记和所述帧边界标记的有效性;如果所述PUSI等于单位值且有效载荷不对应于应用数据表的最后部分,那么校正所述表边界标记和所述帧边界标记;以及调整表边界和帧边界。全文摘要修整接收到的数据包以改进数字视频广播系统的MPEG-2传输流包的性能。应用多种交叉校验技术以确保按需校正至关重要的信息块,例如,包识别符(PID)字段、连续计数器(CC)字段、表ID、段长度、IP头校验和、表和帧边界、应用数据表大小。文档编号H04N5/445GK101904168SQ200880102373公开日2010年12月1日申请日期2008年8月8日优先权日2007年8月8日发明者姜锡凤,斯瑞德哈·拉梅什,李秉泽申请人:迈凌有限公司