CN100425036C - 数据流过滤模块及方法、解复用模块、数字电视接收装置 - Google Patents
数据流过滤模块及方法、解复用模块、数字电视接收装置 Download PDFInfo
- Publication number
- CN100425036C CN100425036C CNB200510023176XA CN200510023176A CN100425036C CN 100425036 C CN100425036 C CN 100425036C CN B200510023176X A CNB200510023176X A CN B200510023176XA CN 200510023176 A CN200510023176 A CN 200510023176A CN 100425036 C CN100425036 C CN 100425036C
- Authority
- CN
- China
- Prior art keywords
- packet
- identity
- filtering
- packets
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
提供一种数据流过滤模块和方法,根据输出记录、状态存储模块的过滤记录以及当前数据包是否通过过滤来判断是否将当前数据包输出,同时判断当前数据包是否为最后的数据包,如果是则在尾部添加表示这些数据包是否通过过滤的标志性字段。还提供了一种使用该数据流过滤模块的解复用模块,以及使用所述解复用模块的数字电视接收装置。
Description
技术领域
本发明涉及一种数据流过滤模块及方法、包含该数据流过滤模块的解复用模块、以及使用该解复用模块的数字电视接收装置。
背景技术
数字电视广播DVB(Digital Video Broadcasting)系统以传送流TS(Transport Stream)进行数据传输,其中传送流是由多路节目合成的单个数据流。数字电视接收装置的任务就是把由多路节目合成的传送流进行解复用和解码,最终输出选定的一路节目的音频和视频等节目内容。传送流是以数据包的形式进行传送的,这些数据包称为传送流数据包(TS包)。传送流数据包由头部(header)和有效负载(payload)组成。头部携带了表明传送流数据包身份的数据包身份PID(Packet Identity),而有效负载中携带着元素流数据包PES(Packetized Elementary Stream)或节目特殊信息流数据包PSI(ProgramSpecific Information)等。元素流数据包(PES)由头部和有效负载组成,其有效负载中携带着视频、音频以及字幕等节目的具体内容。节目特殊信息流数据包(PSI)也是由头部和有效负载组成,其有效负载中携带着节目的详细信息,如节目表、网络信息等。解复用模块(DEMUX)的工作,就是从传送流里找出当前节目所需要的元素流数据包、节目特殊信息流数据包等的有效内容,并且分配到对应的缓存中去。这需要对这些数据包进行过滤,即从多路节目中找出选定节目的有效包。
图4示出了DEMUX 40的功能和内部处理过程,该DEMUX可用于各种现有通信系统中。如图4所示,DEMUX 40需要完成TS流的过滤、解扰,节目特殊信息流数据包组成部分(section)的解码、过滤,PES的解码、过滤、解扰,数据派发等功能。具体来说,DEMUX需要六大处理模块:同步器SYNC(Synchronizer)41、PID过滤器PF(PID Filter)42、适配字段解码器AFD(Adaptation Field Decoder)43、解扰器DES(DEScrambler)44、数据流过滤模块DF(Data Filter)45、以及分配器DIS(DISpatcher)46。所述六个处理过程必须按顺序完成。
如图4所示,TS流由TS输入接口(TS input)48输入到DEMUX 40,首先进入同步器模块SYNC 41。同步器模块SYNC 41提供了对多种TS流接口的支持,并且可以完成信号的频率转换。所有的输入TS流,都将被送入PID过滤器模块PF 42进行PID过滤。PID过滤器模块PF 42解析TS流中的TS包(如上所述,TS流是由TS包组成的)的头部字段,根据PID值,过滤掉不需要的TS包。顺利通过PID过滤器模块PF 42的TS包,需要经过适配字段解码器模块AFD 43解析适配字段(adaptation field),从中找出有用信息,用于系统时钟校正和流拼接等处理。然后解扰器模块DES 44对加扰的信息(可能是整个TS包的有效负载,也可能是PES的有效负载)进行解扰。数据流过滤模块DF 45解析PES及其组成部分的头部信息,做相应的过滤。对音频视频字幕PES,分离头部和有效负载。对组成部分做CRC校验。最后分配器模块DIS 46通过数据输出接口49(Data output)将各种数据(包括TS有效负载,组成部分,PES头部,PES有效负载)通过总线写到外部不同的缓存器(buffer)中。DEMUX 40中PID表(PID Table)47是保存子系统工作参数的表,总共有32项,每一项和对应的PID相关,因此DEMUX 40子系统最多可以同时处理32种不同的流。
在现有技术的数据流过滤模块45中,对数据流的过滤如下所述。元素流数据包由于结构简单,且被过滤的部分不会跨越传送流数据包的范围(由DVB标准规定),所以对元素流数据包的过滤也相应比较简单。例如,对元素流数据包头部的4个字节进行过滤,判断是否是所需的元素流数据包。但节目特殊信息数据流的过滤就复杂得多了,如本领域中所已知的那样,一个完整的节目特殊信息流数据包PSI实际上相当于一张完整的表,它被分割成多个组成部分(section)(如上所述),系统需要对每个组成部分的头部的14个字节进行过滤,以确定哪些是需要的组成部分。因为DVB标准并没有规定节目特殊信息流数据包的组成部分的头部的14个字节在传送流数据包中出现的位置,它们很有可能被分成多份在不同的传送流数据包中进行传送。也就是说,节目特殊信息流数据包可跨越多个传送流数据包进行传送,这使得对节目特殊信息流数据包的过滤工作在某些情况下只有在收全节目特殊信息流数据包的组成部分的头部的14个字节后才能得出结果。而且由于连续的组成部分可能被分在不连续的传送流数据包中,此时就必须保存未过滤完的组成部分的头部。对节目特殊信息流数据包的过滤而言,通常的处理方法是将尚未过滤完的组成部分的头部暂存起来,等收全了该组成部分的头部的全部14个字节之后再得出结果。一路选定的节目需要处理大于16项小于等于32项数据包身份(PID)的传送流数据包,携带同一组成部分的不同部分的传送流数据包具有相同的数据包身份,元素流数据包所占用的数据包身份极少,考虑到所有可能发生的情况,就需要在数据流过滤模块DF 45中增设容量为32×14字节的存储器,以存放未过滤完的节目特殊信息流数据包的组成部分的头部,但这样就增加了芯片的面积。
在现有通信系统中,除了PSI之外,某些其它数据流需要过滤的部分也可能跨越多个数据包进行传送。因此,在解复用模块中,通常的设计方法是将PID过滤器模块PF 42过滤剩下的TS包送入TS包缓存器(未示出),以方便后面的几个组件进行处理。例如数据流过滤器模块DF 45可以对整个TS包先扫描一遍,再决定这个包是否需要,将它送出或丢弃。这就需要在数据流过滤模块45中大容量的存储装置,因此,芯片的面积增加,使得整个通信装置的面积增加,且芯片面积的增加也同时导致了成本的增加。另外,芯片中缓存数量的增加,也导致了功耗的增加。
发明内容
本发明对节目特殊信息流数据包的过滤进行改进。本发明不仅仅针对节目特殊信息流数据包,本发明可适用于具有相同身份的多个数据包的过滤。
根据本发明的一个方面,提供一种数据流过滤模块,所述数据流以数据包的形式传送,这些数据包分为N个身份,具有相同身份的多个数据包为一个整体,所述数据流过滤模块包括数据包过滤器,所述数据包过滤器对数据包进行过滤,其特征在于,所述数据流过滤模块还包括:记录数据包过滤信息的状态存储模块,所述状态存储模块包含一张由N个表项组成的表,每一个表项对应于一种身份的数据包,记录该身份的数据包的过滤信息;所述数据包过滤器把数据包的过滤结果送至状态存储模块,状态存储模块判断是否更新数据包的过滤信息;所述数据包过滤器判断当前数据包是否为对应身份的多个数据包中的最后一个数据包,如果是则根据所述的过滤信息在当前数据包的尾部添加标识符,指示出具有该身份的多个数据包整体上是否通过过滤。
其中,所述标识符是数据包头部信息的过滤结果或者CRC校验结果或者长度校验结果。
所述状态存储模块中各表项利用一差错位记录各身份的数据包的过滤信息,只有接收到错误的过滤结果才予以更新该差错位;所述的数据流过滤模块还包括一个数据包身份表,所述的数据包身份表中记录了各身份的数据包的输出情况;若一身份的第一个数据包未通过过滤,该身份的所有数据包均不予输出,其他情况下数据包都将被输出;所述的数据流过滤模块根据状态存储模块中差错位的值以及数据包身份表中的输出记录决定是否输出当前数据包。
根据本发明的另一方面,提供一种包含如上所述的数据流过滤模块的解复用模块。
根据本发明的又一方面,提供一种包含如上所述的解复用模块的数字电视接收装置。
根据本发明的再一方面,提供一种数据流过滤方法,所述数据流以数据包的形式传送,所述数据包分为N个身份,具有相同身份的多个数据包为一个整体,所述数据流过滤方法包括以下步骤:设置状态表,所述状态表记录各身份的数据包的过滤信息,所述状态表具有N个表项,每一个表项对应于一种身份的数据包,记录该身份的数据包的过滤信息;对当前数据包进行过滤并把过滤结果送至状态表;判断当前数据包是否为对应身份的多个数据包中的最后一个,如果是则在当前数据包的尾部添加标识符,指示出具有该身份的多个数据包整体上是否通过过滤。
其中,所述标识符是数据包头部信息过滤结果或者CRC校验结果或者长度校验结果。
所述状态表中每一表项包含一差错位,以记录对应身份的数据包的过滤信息,且只有当数据包过滤结果为错误时才更新该差错位。
在设置状态表后再设置一个数据包身份表,以记录各身份的数据包的输出情况。
过滤完当前数据包后,根据差错位和数据包身份表的输出情况判断是否输出当前数据包,若一身份的第一个数据包未通过过滤,该身份的所有数据包均不予输出,其他情况下数据包都将被输出。
本发明的数据流过滤模块和方法可作为现有技术中解复用模块中的数据流过滤模块的替代,减少了所需的内部缓存量,因此,可以实现大幅度地节省数据流过滤模块芯片或DEMUX芯片的面积,从而可以降低成本。
本发明的数据流过滤模块和解复用模块可应用于数字电视接收装置中。
附图说明
图1是说明根据本发明的一个实施例的数据流过流模块的结构框图;
图2是说明根据本发明的实施例的节目特殊信息流数据包组成部分的输出格式的示意图;
图3是说明根据本发明的一个实施例的数据流过流方法的流程图;
图4是说明DEMUX的功能框图。
图5所说明本发明的另一个实施例的数据流过滤模块的结构框图。
具体实施方式
首先,需要说明的是,根据《MPEG2系统层规范:ISO_IEC_13818-1》,连续的组成部分可能被分在不连续的传送流数据包中,因为《MPEG2系统层规范:ISO_IEC_13818-1》中没有对连续的组成部分在传输流中的位置作出限制,所以会出现较多需要处理的边界情况。在某些特殊应用中编码器端有可能限制连续的组成部分在传输流中的位置,这样生成的传输流就可以用比较简单的流程来处理,甚至不出现本发明需要处理的情况。但是,这样的流不能作为普遍的适合《MPEG2系统层规范:ISO_IEC_13818-1》的标准流。本发明的处理对象可以是完全符合《MPEG2系统层规范:ISO_IEC_13818-1》且没有附加限制性协议的数字电视广播(DVB)标准流或其它数据流。
下面,以对数字电视广播系统中的节目特殊信息流数据包的过滤为例来说明本发明。应理解,本发明不仅仅针对节目特殊信息流数据包,本发明可适用于对具有相同身份(如PID)的多个数据包的过滤。
参考图1,本发明的数据流过滤模块45包括元素流数据包PES过滤模块11、数据包处理信息模块PT 10、节目特殊信息流数据包PSI过滤模块12、状态存储模块(Config Table)13以及先进先出模块(FIFO)14。其中,数据包处理信息模块10读取数据包身份表(PID Table)47中对应项的相关信息,数据包身份表中存储了需要处理的32项PID的相关信息,并将之送入元素流数据包PES过滤模块11或节目特殊信息流数据包PSI过滤模块12中。数据流过滤模块45处理完相应的数据包后又把相关信息写入数据包身份表中的对应项(有关数据包身份表及其相应的操作对于本领域技术人员来说已知的,因此不再详述)。元素流数据包过滤模块11对元素流数据包头部的4个字节进行过滤,判断是否是所需的元素流数据包,如果是就通过先进先出模块14输出该PES包,否则丢弃该PES包。状态存储模块13用以存储节目特殊信息流数据包的过滤状态,实际上它是一张N×(n+2)比特的表,由N个表项组成,每个表项为n+2比特,其中N为需要对应的PID数目,每个表项的n+2比特中的n比特是由软件填写的数据包身份索引(PID_Index),标志着过滤的携带节目特殊信息流数据包的传送流数据包的数据包身份PID在数据包身份表(PIDTable)中的位置;另外2个比特中,一个比特是该表项的使能位(Enable),软件可通过置“1”来打开这个表项(有效),置“0”来关闭这个表项(无效),从而可以实现软件控制过滤(但是,作为替代,也可使得Enable位在置0时有效,在置1时无效)。Enable位的使用对于本领域的技术人员来说是不难理解的,因此不再详述。本发明的发明点在于设置了另一个比特是该表项的差错位(Error)(对应于过滤信息位),标志着已收到的组成部分的头部是否通过了过滤,若未通过,则置“1”,通过了则保持为“0”(但是,作为替代,也可使得Error位在置1时表示通过,在置0时表示未通过)。当收全头部14个字节时,Error位为“0”,同时Enable有效(即置1),当前数据包的身份索引和数据包身份表中的身份索引相等时,就认为该组成部分已经通过了节目特殊信息流数据包过滤模块的过滤。节目特殊信息流数据包过滤模块12对节目特殊信息流数据包各组成部分的头部14个字节进行过滤,判断是否为所需的组成部分。对一个组成部分的过滤而言,只要其头部14个字节中的1个字节错误,该组成部分就应该被丢弃。只有当组成部分头部的14个字节全部通过过滤,该组成部分才是需要的。因此,前述状态存储模块13中的Error位只能用“1”覆盖“0”,不能用“0”覆盖“1”,并且在每个组成部分头部第一字节过滤前重置对应的表项,以保证前一个组成部分的过滤结果不会影响当前组成部分的过滤结果。一个节目特殊信息流数据包的一个组成部分的头部可能分布在多个传送流数据包中(如MPEG2系统层规范:ISO_IEC_13818-1中所定义的那样),要完成一个组成部分的过滤有时要过滤完该组成部分头部的14个字节。本发明利用状态存储模块13记录头部的字节的过滤信息,从而无需存储整个头部的14个字节,这将在后面详细描述。例如,当N=32,n=5比特(2的5次幂等于32,对应数据包身份表中32个项),本发明的状态存储模块仅仅需要32×(5+2)比特容量的存储装置,而在相同情况下现有技术的数据流过滤模块则需要32×14(字节)×8(每字节8比特)容量的存储装置。显而易见的是本发明实现节目特殊信息流数据包过滤只需要现有技术十六分之一的容量的存储装置,这可大幅节省芯片面积。
在节目特殊信息流数据包的过滤中可能出现以下几种情况:
(1)一个节目特殊信息流数据包的组成部分的头部分布在一个传送流数据包中,并且该头部通过过滤。节目特殊信息流数据包过滤模块12将此信息送给状态存储模块13,状态存储模块13将对应该数据包身份的项的Error位保持“0”。这个节目特殊信息流数据包组成部分将通过先进先出模块FIF0 14输出,同时这个输出信息被自动记录在数据包身份表的对应项中,若该组成部分的有效负载部分分布在其它传送流数据包中,系统会根据数据包身份表中的信息以及状态存储模块13的信息得出其为需要的节目特殊信息流数据包从而将其输出(一个分布在多个传送流数据包中的组成部分,若分布在前面的传送流数据包中的组成部分被输出,则分布在后面传送流数据包中的组成部分也将被输出;分布在前面的传送流数据包中的组成部分被丢弃,则分布在后面传送流数据包中的组成部分也将被丢弃),该组成部分被完全输出时,节目特殊信息流数据包过滤模块在其尾部添加标志性字段,说明该组成部分完全通过了过滤。
(2)一个节目特殊信息流数据包的组成部分头部分布在一个传送流数据包中,但未通过过滤。节目特殊信息流数据包过滤模块12把这个信息送到状态存储模块13,状态存储模块13把对应身份索引的项的Error位置“1”,这个节目特殊信息流数据包的组成部分被丢弃。然后这个被丢弃的信息被自动记录在数据包身份表对应该传送流数据包的数据包身份的项中,若该组成部分的有效负载部分分布在其它传送流数据包中,系统会根据数据包身份表中的信息以及状态存储模块13的信息将其丢弃。
(3)一个节目特殊信息流数据包的组成部分的头部分布在多个传送流数据包中,分布在前面的传送流数据包的头部字节通过过滤。节目特殊信息流数据包过滤模块12把这个信息送到状态存储模块13。状态存储模块13对应的Error位保持“0”。该部分头部通过先进先出模块14被输出,输出信息被自动记录在数据包身份表中对应的项。因为分布在前面的传送流数据包的组成部分的部分已经被输出,数据流过滤模块将根据数据包身份表中记载的输出信息把分布在后面的传送流数据包的该组成部分的其他部分输出。如果这些组成部分的头部字节也通过过滤,节目特殊信息流数据包过滤模块12把这个信息送到状态存储模块13,状态存储模块13的对应Error位仍然保持“0”。节目特殊信息流数据包过滤模块在该组成部分尾部添加说明其完全通过过滤的标志性字段,该组成部分通过先进先出模块14被输出。
(4)一个节目特殊信息流数据包的组成部分的头部分布在多个的传送流数据包中,分布在前面的传送流数据包的头部字节通过过滤。节目特殊信息流数据包过滤模块12把这个信息送给状态存储模块13,状态存储模块13把对应的Error位保持“0”。该部分通过先进先出模块14被输出,同时该输出信息被记录在数据包身份表中对应的项。若分布在后面的传送流数据包的头部字节未通过过滤,节目特殊信息流数据包过滤模块12把这个信息送给状态存储模块,状态存储模块13把对应Error位置“1”。因为前面的部分字节已经被输出,系统根据数据包身份表中的输出信息把该组成部分后面的内容也输出。该组成部分最后的部分被输出时,节目特殊信息流数据包过滤模块12根据状态存储模块13的Error位的信息在其末尾添加标志性字段,说明其为未通过过滤的组成部分。软件在处理该组成部分时会将其丢弃。
(5)一个节目特殊信息流数据包的组成部分的头部分布在多个传送流数据包中,分布在前面的传送流数据包的头部字节未通过过滤。节目特殊信息流数据包过滤模块12把这个信息送给状态存储模块,状态存储模块把对应项的Error位置“1”,这个部分被直接丢弃,该丢弃信息被记录在数据包身份表中。该组成部分后面的内容根据状态存储模块以及数据包身份表提供的信息将被丢弃。
以下用一个具体的例子来说明本发明数据流过滤模块的工作过程。例如,存在这样的按顺序过滤的4个带有节目特殊信息流数据包的组成部分的传送流数据包:TS1和TS3具有相同的PID_Index,TS2和TS4具有另一个PID_Index。TS1和TS3带有一个节目特殊信息流数据包的某一个组成部分的不同部分,分别是需要过滤的是第1-3字节和第4-6字节;TS2和TS4带有另一个组成部分的不同部分,分别需要过滤的是第1-3字节和第4-6字节。如下表所示:
在作过滤处理时,假设TS1、TS4中的组成部分通过过滤了,TS2、TS3中的没有通过过滤。则TS1过滤前,状态存储模块(Config Table)13的对应表项状态如下:
TS1过滤后,Config Table对应表项状态如下:
TS2过滤后,Config Table对应表项状态如下:
TS3过滤后,Config Table对应表项状态如下:
TS4过滤后,Config Table对应表项状态如下:
TS1中携带的组成部分将被送出。TS2中的PSI组成部分没通过过滤,将被丢弃掉。TS3虽然没通过过滤,但是TS1已经被送出了,所以TS3也将被送出,只是会在组成部分结尾的状态字节中指明错误信息。TS4虽然通过过滤,但是TS2已经出错并且被丢弃掉,所以TS4也将被丢弃掉。
如上所述,根据本发明,一个节目特殊信息流数据包的某一组成部分的头部可分布在一个传送流数据包中,也可分布在多个传送流数据包中。在某一组成部分的头部分布在一个传送流数据包的情况下,根据本发明,如果该组成部分的头部通过过滤,则状态存储模块13将Error位保持“0”。如果未通过过滤,则Error位置1。根据Error位的信息,可以判断是否要丢弃该组成部分。在一个组成部分的头部分布在多个传送流数据包中的情况下,具有该组成部分的不同部分的多个TS包的数据包身份索引PID_Index相同。如果分布在前面的传送流数据包中的该组成部分的头部的一部分通过过滤,则Error位保持为“0”,根据分布在后面的传送流数据包中的该组成部分的头部是否通过过滤,Error位相应地保持为“0”或置“1”,但是在这两种情况下,该组成部分所有部分都被输出,只是在该组成部分的结尾处根据Error位的信息来添加标志性字段(如图2所示),以指示后续的处理是处理该组成部分还是丢弃该组成部分。如果分布在前面的传送流数据包中的该组成部分的头部的一部分没有通过过滤,则Error位置“1”,不管分布在后面的传送流数据包中的该组成部分的头部部分是否通过过滤,Error位始终为“1”,从而分布在前面的传送流数据包中的该组成部分被丢弃,而分布在后面的传送流数据包中的该组成部分也被相应地丢弃,从而整个组成部分被丢弃。
因此,一旦某一组成部分的头部的14个字节被数据流过滤器通过,则整个组成部分都将被视为通过了过滤,但是CRC结果将在组成部分的最后一个字节收到后才能计算出来,而此时该组成部分前部的数据已经被送到分配器模块46了,甚至已经被送到了DEMUX 40外部的缓存器(图4中未示出)中。如果CRC校验错误,必须将这部分已经送出的数据清除或者标记为无效。因此,在本发明中,CRC校验结果作为标志字节,紧挨着组成部分的最后一个字节送出,并被放到了外部缓存器中。下一级的处理模块只需要先判断这个字节,就可以知道这个组成部分是否通过了CRC校验。如果没有通过,则自动跳过对这个组成部分的处理。
此外,除了CRC校验错误外,如果发生了PES长度错误或组成部分长度错误,在接收完整个PES(或组成部分)之前,也可能无法判断应该将它丢弃还是送出,因此这些错误情况也可以在标志字节中标明(这对于本领域的技术人员来说是显而易见的)。DEMUX的后级处理模块(通常是软件模块),在处理PES(或组成部分)时,必须先判断这个标志字节,如果有错误,则自动跳过对这个PES(或组成部分)的处理。但是,这种处理方式可能会因为输出了一些本不该输出的数据,导致多占用了外部的缓存器。但是由于实际工作中,因CRC或者长度出错的数据非常少,因此通常不必为此增加外部缓存器的大小。
图3为本发明数据流过滤方法的流程图300。在步骤301中,本发明的数据流过滤模块45(如图1所示)读入一个携带节目特殊信息流数据包某一组成部分的传送流数据包。在步骤302,数据流过滤模块判断该组成部分有无被输出的记录(该信息从数据包身份表47中读入)。如果没有,则继续到步骤303。在步骤303,判断状态存储模块13中对应项的Error位是否为“0”。如果不是,则进行到步骤311,直接丢弃该组成部分。如果在步骤303判断为是的话,则说明该传送流数据包是携带该组成部分的第一个传送流数据包,下一步就对其进行过滤。在步骤304判断是否通过过滤。若在步骤304判断出未通过过滤,则进行到步骤311,丢弃该部分。若在步骤304判断出通过过滤,则继续进行到步骤309,判断该部分是否为当前组成部分的结尾。如果在步骤309判断出该部分是当前组成部分的结尾,则进行到步骤310,在步骤310,在该组成部分的结尾处添加说明该组成部分通过过滤的标志性字段并在步骤313输出该组成部分。若在步骤309判断出该部分不是当前组成部分的结尾,就在步骤313直接输出该部分。另一方面,如果在步骤302判断出有输出记录,则进行到步骤305。在步骤305,判断状态存储模块13中的对应项的Error位是否为“0”。若Error位为“1”,则说明该部分是所需要的,但因为存在输出记录,即这个组成部分的前面的部分已经被输出,所以当前的部分也要输出。但是输出之前应先判断是否结尾。也就是说,如果步骤305判断出Error位是1,则进行到步骤307。在步骤307判断当前部分是否是该组成部分的结尾。如果是,则进行到步骤308,添加说明该组成部分没有通过过滤的标志性字段并在步骤312输出。如果不是,则直接在步骤312输出。如果在步骤305判断出Error位是“0”,则进行过滤。在步骤306判断是否通过过滤,若通过过滤,则进行到步骤309,否则进行到步骤307。
以上,以对数字电视广播系统中的节目特殊信息流数据包的过滤为例说明了本发明。但是,本发明可应用于其它的数据流过滤中。图5示出了本发明的另一实施例的数据流过滤模块。数据流以数据包的形式传送,多个数据包可具有相同的身份(例如N个身份),具有相同身份的多个数据包为一个整体。如图5所示,本发明的数据流过滤模块45包括数据包过滤器52,所述数据包过滤器52对数据包进行过滤,所述数据流过滤模块45还包括记录数据包过滤信息的状态存储模块13,如上所述,该状态存储模块可包含一张由N个表项组成的表,每一个表项对应于一种身份的数据包,记录该身份的数据包的过滤信息。所述数据包过滤器52把数据包的过滤结果送至状态存储模块13,状态存储模块13判断是否更新数据包的过滤信息;所述数据包过滤器52判断当前数据包是否为对应身份的多个数据包中的最后一个数据包,如果是则根据所述的过滤信息在当前数据包的尾部添加标识符,指示出具有该身份的多个数据包整体上是否通过过滤。
如上文所述,标识符可以是数据包头部信息的过滤结果、或者CRC校验结果、或者长度校验结果。
在本发明的该实施例中,与第一实施例相类似,状态存储模块中各表项可利用一差错位来记录各身份的数据包的过滤信息,只有接收到错误的过滤结果才予以更新该差错位“Error”(如前所述,Error位可表示已收到的数据包是否通过了过滤,若未通过,则置“1”,通过了则保持为“0”(但是,作为替代,也可使得Error位在置1时表示通过,在置0时表示未通过))。所述的数据流过滤模块45还可包括一个数据包身份表47,所述的数据包身份表中记录了各身份的数据包的输出情况。若某一身份的第一个数据包未通过过滤,则该身份的所有数据包均不予输出,其他情况下数据包都将被输出(如上文所述)。所述的数据流过滤模块45根据状态存储模块中差错位的值以及数据包身份表中的输出记录决定是否输出当前数据包。
如上所述,本发明的数据流过滤模块和方法根据输出记录、状态存储模块的过滤信息位(例如Error位)以及当前部分是否通过过滤来判断是否将当前部分输出,根据判断当前部分是否组成部分的结尾以及Error位来判断是否需要添加标志性字段以及添加何种标志性字段。
本发明的数据流过滤模块可作为现有技术中解复用模块DEMUX中的数据流过滤模块45的替代,减少了所需的内部缓存量,因此,可以实现大幅度地节省数据流过滤模块芯片或DEMUX芯片的面积,从而可以降低成本。
虽然,如图5所示的数据流过滤模块中,数据包过滤器对数据包进行过滤,并且数据包过滤器可以把数据包的过滤结果送至状态存储模块,判断当前数据包是否为对应身份的多个数据包中的最后一个数据包,如果是则根据所述的过滤信息在当前数据包的尾部添加标识符,指示出具有该身份的多个数据包整体上是否通过过滤。但是,如本领域的技术人员所已知的那样,可以将数据包过滤器划分成多个模块(未示出),各模块实现不同的功能。例如传送模块,用于将数据包的过滤结果传送至状态存储模块;判断模块,用于对当前数据包是否为对应身份的多个数据包中的最后一个数据包进行判断;以及标识符添加模块,在判断模块判断的基础上,根据所述的过滤信息在当前数据包的尾部添加标识符,指示出具有该身份的多个数据包整体上是否通过过滤。当然,也可以采用其它的组成方式或者数据包过滤器中包含其它模块,只要能够实现如本申请所述的数据包过滤器的功能就行,这些都包含在本发明的范围之内。
本发明的数据流过滤模块和解复用模块可应用于数字电视接收装置中。解复用模块以及数字电视接收装置的其它组件都是本领域的技术人员所已知的,因此这里不再详述。可以理解,本领域的技术人员能够容易地将本发明应用于任何用于数据流过滤的数据流过滤模块、解复用模块和数字电视接收装置中。
Claims (6)
1. 一种数据流过滤装置,所述数据流以数据包的形式传送,这些数据包分为N个身份,具有相同身份的多个数据包为一个整体,所述数据流过滤装置包括数据包过滤器,所述数据包过滤器对数据包进行过滤,其特征在于,
所述数据流过滤装置还包括:
记录数据包过滤信息的状态存储装置,所述状态存储装置包含一张由N个表项组成的表,每一个表项对应于一种身份的数据包,记录该身份的数据包的过滤信息,状态存储装置中各表项利用一差错位记录各身份的数据包的过滤信息,只有接收到错误的过滤结果才更新该差错位;
所述数据包过滤器把数据包的过滤结果送至状态存储装置,所述数据包过滤器判断当前数据包是否为对应身份的多个数据包中的最后一个数据包,如果是则根据所述的过滤信息在当前数据包的尾部添加标识符,指示出具有该身份的多个数据包整体上是否通过过滤;
提供数据包身份表的装置,所述的数据包身份表中记录了各身份的数据包的输出情况;若一身份的第一个数据包未通过过滤,该身份的所有数据包均不予输出,其他情况下数据包都将被输出;所述的数据流过滤装置根据状态存储装置中差错位的值以及数据包身份表中的输出记录决定是否输出当前数据包。
2. 如权利要求1所述的数据流过滤装置,其特征在于,所述标识符是数据包头部信息的过滤结果或者CRC校验结果或者长度校验结果。
3. 一种包含权利要求1所述的数据流过滤装置的解复用装置。
4. 一种包含如权利要求3所述的解复用装置的数字电视接收装置。
5. 一种数据流过滤方法,所述数据流以数据包的形式传送,所述数据包分为N个身份,具有相同身份的多个数据包为一个整体,所述数据流过滤方法包括以下步骤:
设置状态表,所述状态表记录各身份的数据包的过滤信息,所述状态表具有N个表项,每一个表项对应于一种身份的数据包,记录该身份的数据包的过滤信息;
对当前数据包进行过滤并把过滤结果送至状态表;
判断当前数据包是否为对应身份的多个数据包中的最后一个,如果是则在当前数据包的尾部添加标识符,指示出具有该身份的多个数据包整体上是否通过过滤,
所述状态表中每一表项包含一差错位,以记录对应身份的数据包的过滤信息,且只有当数据包过滤结果为错误时才更新该差错位;设置状态表后再设置一个数据包身份表,以记录各身份的数据包的输出情况,过滤完当前数据包后,根据差错位和数据包身份表的输出情况判断是否输出当前数据包,若一身份的第一个数据包未通过过滤,该身份的所有数据包均不予输出,其他情况下数据包都将被输出。
6. 如权利要求5所述的数据流过滤方法,其特征在于,所述标识符是数据包头部信息过滤结果或者CRC校验结果或者长度校验结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510023176XA CN100425036C (zh) | 2005-01-10 | 2005-01-10 | 数据流过滤模块及方法、解复用模块、数字电视接收装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510023176XA CN100425036C (zh) | 2005-01-10 | 2005-01-10 | 数据流过滤模块及方法、解复用模块、数字电视接收装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1805407A CN1805407A (zh) | 2006-07-19 |
CN100425036C true CN100425036C (zh) | 2008-10-08 |
Family
ID=36867249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510023176XA Expired - Fee Related CN100425036C (zh) | 2005-01-10 | 2005-01-10 | 数据流过滤模块及方法、解复用模块、数字电视接收装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100425036C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102655571A (zh) * | 2011-03-01 | 2012-09-05 | 上海清鹤数码科技有限公司 | 基于嵌入式平台的数字电视流媒体中间件多字幕显示组件 |
CN106254896B (zh) * | 2016-08-05 | 2019-11-26 | 中国传媒大学 | 一种针对实时视频的分布式加密方法 |
CN106231346B (zh) * | 2016-08-05 | 2020-01-17 | 中国传媒大学 | 一种针对离线视频的分布式加密方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225544A (zh) * | 1998-12-15 | 1999-08-11 | 国家科学技术委员会高技术研究发展中心 | 数字信源解码器 |
CN1226356A (zh) * | 1996-05-31 | 1999-08-18 | 汤姆森消费电子有限公司 | 用于数字数据处理的节目特定信息的形成 |
US20010002907A1 (en) * | 1999-12-02 | 2001-06-07 | Lg Electronics Inc. | PID/ section filter in digital television system |
US6557031B1 (en) * | 1997-09-05 | 2003-04-29 | Hitachi, Ltd. | Transport protocol conversion method and protocol conversion equipment |
-
2005
- 2005-01-10 CN CNB200510023176XA patent/CN100425036C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1226356A (zh) * | 1996-05-31 | 1999-08-18 | 汤姆森消费电子有限公司 | 用于数字数据处理的节目特定信息的形成 |
US6557031B1 (en) * | 1997-09-05 | 2003-04-29 | Hitachi, Ltd. | Transport protocol conversion method and protocol conversion equipment |
CN1225544A (zh) * | 1998-12-15 | 1999-08-11 | 国家科学技术委员会高技术研究发展中心 | 数字信源解码器 |
US20010002907A1 (en) * | 1999-12-02 | 2001-06-07 | Lg Electronics Inc. | PID/ section filter in digital television system |
Also Published As
Publication number | Publication date |
---|---|
CN1805407A (zh) | 2006-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1085008C (zh) | 多路压缩图象声音数据的解码装置、应用程序实施装置和编码化图像声音数据接收装置 | |
US7287113B2 (en) | Method of and apparatus for controlling bidirectional streams of isochronous data flowing between an application and a bus structure | |
US6859850B1 (en) | Controller for controlling direct memory access | |
US6493043B1 (en) | Method of increasing the storage capacity of service information in a digital TV transmissions receiver | |
US10891245B2 (en) | Video device and method for embedded data capture on a virtual channel | |
US20070253509A1 (en) | Data transfer device | |
US20010002907A1 (en) | PID/ section filter in digital television system | |
CA2394915A1 (en) | Mpeg re-multiplexer having multiple inputs and multiple outputs | |
WO1997035393A1 (fr) | Dispositif de separation de donnees | |
US6831931B2 (en) | System and method for remultiplexing of a filtered transport stream | |
US6577813B1 (en) | Transmitting system and transmitting apparatus | |
US6944154B2 (en) | System and method for remultiplexing of a filtered transport stream with new content in real-time | |
CN100425036C (zh) | 数据流过滤模块及方法、解复用模块、数字电视接收装置 | |
EP1374482B1 (en) | Packet data processing apparatus | |
CN101821973A (zh) | 用于多通道、多流、复用的传输流处理的多格式流再复用器 | |
JP4033915B2 (ja) | データストリーム制御方法及び装置 | |
EP1713252A1 (en) | Integrated circuit for the processing and subsequent routing of motion picture expert group (mpeg) data between interfaces | |
US8913609B2 (en) | System and method for demultiplexing different stream types in a programmable transport demultiplexer | |
JP3809278B2 (ja) | 多重パケット分離装置 | |
KR100991122B1 (ko) | 데이터 패킷 전송 방법 및 디바이스 | |
CN100461747C (zh) | 一种多媒体码流的码率调整方法 | |
US20030189957A1 (en) | Transport stream demultiplexer and method of deleting memory traffic | |
EP1222824B1 (en) | Method and device for writing data to a recording medium in a digital video system | |
US20050157757A1 (en) | Process for storing transmission units and a network communications device | |
TWI269578B (en) | Data stream filtering module and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081008 Termination date: 20120110 |