專利名稱:數(shù)據(jù)流過濾模塊及方法、解復(fù)用模塊、數(shù)字電視接收裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)流過濾模塊及方法、包含該數(shù)據(jù)流過濾模塊的解復(fù)用模塊、以及使用該解復(fù)用模塊的數(shù)字電視接收裝置。
背景技術(shù):
數(shù)字電視廣播DVB(Digital Video Broadcasting)系統(tǒng)以傳送流TS(Transport Stream)進(jìn)行數(shù)據(jù)傳輸,其中傳送流是由多路節(jié)目合成的單個(gè)數(shù)據(jù)流。數(shù)字電視接收裝置的任務(wù)就是把由多路節(jié)目合成的傳送流進(jìn)行解復(fù)用和解碼,最終輸出選定的一路節(jié)目的音頻和視頻等節(jié)目?jī)?nèi)容。傳送流是以數(shù)據(jù)包的形式進(jìn)行傳送的,這些數(shù)據(jù)包稱為傳送流數(shù)據(jù)包(TS包)。傳送流數(shù)據(jù)包由頭部(header)和有效負(fù)載(payload)組成。頭部攜帶了表明傳送流數(shù)據(jù)包身份的數(shù)據(jù)包身份PID(Packet Identity),而有效負(fù)載中攜帶著元素流數(shù)據(jù)包PES(Packetized Elementary Stream)或節(jié)目特殊信息流數(shù)據(jù)包PSI(ProgramSpecific Information)等。元素流數(shù)據(jù)包(PES)由頭部和有效負(fù)載組成,其有效負(fù)載中攜帶著視頻、音頻以及字幕等節(jié)目的具體內(nèi)容。節(jié)目特殊信息流數(shù)據(jù)包(PSI)也是由頭部和有效負(fù)載組成,其有效負(fù)載中攜帶著節(jié)目的詳細(xì)信息,如節(jié)目表、網(wǎng)絡(luò)信息等。解復(fù)用模塊(DEMUX)的工作,就是從傳送流里找出當(dāng)前節(jié)目所需要的元素流數(shù)據(jù)包、節(jié)目特殊信息流數(shù)據(jù)包等的有效內(nèi)容,并且分配到對(duì)應(yīng)的緩存中去。這需要對(duì)這些數(shù)據(jù)包進(jìn)行過濾,即從多路節(jié)目中找出選定節(jié)目的有效包。
圖4示出了DEMUX 40的功能和內(nèi)部處理過程,該DEMUX可用于各種現(xiàn)有通信系統(tǒng)中。如圖4所示,DEMUX 40需要完成TS流的過濾、解擾,節(jié)目特殊信息流數(shù)據(jù)包組成部分(section)的解碼、過濾,PES的解碼、過濾、解擾,數(shù)據(jù)派發(fā)等功能。具體來說,DEMUX需要六大處理模塊同步器SYNC(Synchronizer)41、PID過濾器PF(PID Filter)42、適配字段解碼器AFD(Adaptation Field Decoder)43、解擾器DES(DEScrambler)44、數(shù)據(jù)流過濾模塊DF(Data Filter)45、以及分配器DIS(DISpatcher)46。所述六個(gè)處理過程必須按順序完成。
如圖4所示,TS流由TS輸入接口(TS input)48輸入到DEMUX 40,首先進(jìn)入同步器模塊SYNC 41。同步器模塊SYNC 41提供了對(duì)多種TS流接口的支持,并且可以完成信號(hào)的頻率轉(zhuǎn)換。所有的輸入TS流,都將被送入PID過濾器模塊PF 42進(jìn)行PID過濾。PID過濾器模塊PF 42解析TS流中的TS包(如上所述,TS流是由TS包組成的)的頭部字段,根據(jù)PID值,過濾掉不需要的TS包。順利通過PID過濾器模塊PF 42的TS包,需要經(jīng)過適配字段解碼器模塊AFD 43解析適配字段(adaptation field),從中找出有用信息,用于系統(tǒng)時(shí)鐘校正和流拼接等處理。然后解擾器模塊DES 44對(duì)加擾的信息(可能是整個(gè)TS包的有效負(fù)載,也可能是PES的有效負(fù)載)進(jìn)行解擾。數(shù)據(jù)流過濾模塊DF 45解析PES及其組成部分的頭部信息,做相應(yīng)的過濾。對(duì)音頻視頻字幕PES,分離頭部和有效負(fù)載。對(duì)組成部分做CRC校驗(yàn)。最后分配器模塊DIS 46通過數(shù)據(jù)輸出接口49(Data output)將各種數(shù)據(jù)(包括TS有效負(fù)載,組成部分,PES頭部,PES有效負(fù)載)通過總線寫到外部不同的緩存器(buffer)中。DEMUX 40中PID表(PID Table)47是保存子系統(tǒng)工作參數(shù)的表,總共有32項(xiàng),每一項(xiàng)和對(duì)應(yīng)的PID相關(guān),因此DEMUX 40子系統(tǒng)最多可以同時(shí)處理32種不同的流。
在現(xiàn)有技術(shù)的數(shù)據(jù)流過濾模塊45中,對(duì)數(shù)據(jù)流的過濾如下所述。元素流數(shù)據(jù)包由于結(jié)構(gòu)簡(jiǎn)單,且被過濾的部分不會(huì)跨越傳送流數(shù)據(jù)包的范圍(由DVB標(biāo)準(zhǔn)規(guī)定),所以對(duì)元素流數(shù)據(jù)包的過濾也相應(yīng)比較簡(jiǎn)單。例如,對(duì)元素流數(shù)據(jù)包頭部的4個(gè)字節(jié)進(jìn)行過濾,判斷是否是所需的元素流數(shù)據(jù)包。但節(jié)目特殊信息數(shù)據(jù)流的過濾就復(fù)雜得多了,如本領(lǐng)域中所已知的那樣,一個(gè)完整的節(jié)目特殊信息流數(shù)據(jù)包PSI實(shí)際上相當(dāng)于一張完整的表,它被分割成多個(gè)組成部分(section)(如上所述),系統(tǒng)需要對(duì)每個(gè)組成部分的頭部的14個(gè)字節(jié)進(jìn)行過濾,以確定哪些是需要的組成部分。因?yàn)镈VB標(biāo)準(zhǔn)并沒有規(guī)定節(jié)目特殊信息流數(shù)據(jù)包的組成部分的頭部的14個(gè)字節(jié)在傳送流數(shù)據(jù)包中出現(xiàn)的位置,它們很有可能被分成多份在不同的傳送流數(shù)據(jù)包中進(jìn)行傳送。也就是說,節(jié)目特殊信息流數(shù)據(jù)包可跨越多個(gè)傳送流數(shù)據(jù)包進(jìn)行傳送,這使得對(duì)節(jié)目特殊信息流數(shù)據(jù)包的過濾工作在某些情況下只有在收全節(jié)目特殊信息流數(shù)據(jù)包的組成部分的頭部的14個(gè)字節(jié)后才能得出結(jié)果。而且由于連續(xù)的組成部分可能被分在不連續(xù)的傳送流數(shù)據(jù)包中,此時(shí)就必須保存未過濾完的組成部分的頭部。對(duì)節(jié)目特殊信息流數(shù)據(jù)包的過濾而言,通常的處理方法是將尚未過濾完的組成部分的頭部暫存起來,等收全了該組成部分的頭部的全部14個(gè)字節(jié)之后再得出結(jié)果。一路選定的節(jié)目需要處理大于16項(xiàng)小于等于32項(xiàng)數(shù)據(jù)包身份(PID)的傳送流數(shù)據(jù)包,攜帶同一組成部分的不同部分的傳送流數(shù)據(jù)包具有相同的數(shù)據(jù)包身份,元素流數(shù)據(jù)包所占用的數(shù)據(jù)包身份極少,考慮到所有可能發(fā)生的情況,就需要在數(shù)據(jù)流過濾模塊DF 45中增設(shè)容量為32×14字節(jié)的存儲(chǔ)器,以存放未過濾完的節(jié)目特殊信息流數(shù)據(jù)包的組成部分的頭部,但這樣就增加了芯片的面積。
在現(xiàn)有通信系統(tǒng)中,除了PSI之外,某些其它數(shù)據(jù)流需要過濾的部分也可能跨越多個(gè)數(shù)據(jù)包進(jìn)行傳送。因此,在解復(fù)用模塊中,通常的設(shè)計(jì)方法是將PID過濾器模塊PF 42過濾剩下的TS包送入TS包緩存器(未示出),以方便后面的幾個(gè)組件進(jìn)行處理。例如數(shù)據(jù)流過濾器模塊DF 45可以對(duì)整個(gè)TS包先掃描一遍,再?zèng)Q定這個(gè)包是否需要,將它送出或丟棄。這就需要在數(shù)據(jù)流過濾模塊45中大容量的存儲(chǔ)裝置,因此,芯片的面積增加,使得整個(gè)通信裝置的面積增加,且芯片面積的增加也同時(shí)導(dǎo)致了成本的增加。另外,芯片中緩存數(shù)量的增加,也導(dǎo)致了功耗的增加。
發(fā)明內(nèi)容
本發(fā)明對(duì)節(jié)目特殊信息流數(shù)據(jù)包的過濾進(jìn)行改進(jìn)。本發(fā)明不僅僅針對(duì)節(jié)目特殊信息流數(shù)據(jù)包,本發(fā)明可適用于具有相同身份的多個(gè)數(shù)據(jù)包的過濾。
根據(jù)本發(fā)明的一個(gè)方面,提供一種數(shù)據(jù)流過濾模塊,所述數(shù)據(jù)流以數(shù)據(jù)包的形式傳送,這些數(shù)據(jù)包分為N個(gè)身份,具有相同身份的多個(gè)數(shù)據(jù)包為一個(gè)整體,所述數(shù)據(jù)流過濾模塊包括數(shù)據(jù)包過濾器,所述數(shù)據(jù)包過濾器對(duì)數(shù)據(jù)包進(jìn)行過濾,其特征在于,所述數(shù)據(jù)流過濾模塊還包括記錄數(shù)據(jù)包過濾信息的狀態(tài)存儲(chǔ)模塊,所述狀態(tài)存儲(chǔ)模塊包含一張由N個(gè)表項(xiàng)組成的表,每一個(gè)表項(xiàng)對(duì)應(yīng)于一種身份的數(shù)據(jù)包,記錄該身份的數(shù)據(jù)包的過濾信息;所述數(shù)據(jù)包過濾器把數(shù)據(jù)包的過濾結(jié)果送至狀態(tài)存儲(chǔ)模塊,狀態(tài)存儲(chǔ)模塊判斷是否更新數(shù)據(jù)包的過濾信息;所述數(shù)據(jù)包過濾器判斷當(dāng)前數(shù)據(jù)包是否為對(duì)應(yīng)身份的多個(gè)數(shù)據(jù)包中的最后一個(gè)數(shù)據(jù)包,如果是則根據(jù)所述的過濾信息在當(dāng)前數(shù)據(jù)包的尾部添加標(biāo)識(shí)符,指示出具有該身份的多個(gè)數(shù)據(jù)包整體上是否通過過濾。
其中,所述標(biāo)識(shí)符是數(shù)據(jù)包頭部信息的過濾結(jié)果或者CRC校驗(yàn)結(jié)果或者長(zhǎng)度校驗(yàn)結(jié)果。
所述狀態(tài)存儲(chǔ)模塊中各表項(xiàng)利用一差錯(cuò)位記錄各身份的數(shù)據(jù)包的過濾信息,只有接收到錯(cuò)誤的過濾結(jié)果才予以更新該差錯(cuò)位;所述的數(shù)據(jù)流過濾模塊還包括一個(gè)數(shù)據(jù)包身份表,所述的數(shù)據(jù)包身份表中記錄了各身份的數(shù)據(jù)包的輸出情況;若一身份的第一個(gè)數(shù)據(jù)包未通過過濾,該身份的所有數(shù)據(jù)包均不予輸出,其他情況下數(shù)據(jù)包都將被輸出;所述的數(shù)據(jù)流過濾模塊根據(jù)狀態(tài)存儲(chǔ)模塊中差錯(cuò)位的值以及數(shù)據(jù)包身份表中的輸出記錄決定是否輸出當(dāng)前數(shù)據(jù)包。
根據(jù)本發(fā)明的另一方面,提供一種包含如上所述的數(shù)據(jù)流過濾模塊的解復(fù)用模塊。
根據(jù)本發(fā)明的又一方面,提供一種包含如上所述的解復(fù)用模塊的數(shù)字電視接收裝置。
根據(jù)本發(fā)明的再一方面,提供一種數(shù)據(jù)流過濾方法,所述數(shù)據(jù)流以數(shù)據(jù)包的形式傳送,所述數(shù)據(jù)包分為N個(gè)身份,具有相同身份的多個(gè)數(shù)據(jù)包為一個(gè)整體,所述數(shù)據(jù)流過濾方法包括以下步驟設(shè)置狀態(tài)表,所述狀態(tài)表記錄各身份的數(shù)據(jù)包的過濾信息,所述狀態(tài)表具有N個(gè)表項(xiàng),每一個(gè)表項(xiàng)對(duì)應(yīng)于一種身份的數(shù)據(jù)包,記錄該身份的數(shù)據(jù)包的過濾信息;對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行過濾并把過濾結(jié)果送至狀態(tài)表;判斷當(dāng)前數(shù)據(jù)包是否為對(duì)應(yīng)身份的多個(gè)數(shù)據(jù)包中的最后一個(gè),如果是則在當(dāng)前數(shù)據(jù)包的尾部添加標(biāo)識(shí)符,指示出具有該身份的多個(gè)數(shù)據(jù)包整體上是否通過過濾。
其中,所述標(biāo)識(shí)符是數(shù)據(jù)包頭部信息過濾結(jié)果或者CRC校驗(yàn)結(jié)果或者長(zhǎng)度校驗(yàn)結(jié)果。
所述狀態(tài)表中每一表項(xiàng)包含一差錯(cuò)位,以記錄對(duì)應(yīng)身份的數(shù)據(jù)包的過濾信息,且只有當(dāng)數(shù)據(jù)包過濾結(jié)果為錯(cuò)誤時(shí)才更新該差錯(cuò)位。
在設(shè)置狀態(tài)表后再設(shè)置一個(gè)數(shù)據(jù)包身份表,以記錄各身份的數(shù)據(jù)包的輸出情況。
過濾完當(dāng)前數(shù)據(jù)包后,根據(jù)差錯(cuò)位和數(shù)據(jù)包身份表的輸出情況判斷是否輸出當(dāng)前數(shù)據(jù)包,若一身份的第一個(gè)數(shù)據(jù)包未通過過濾,該身份的所有數(shù)據(jù)包均不予輸出,其他情況下數(shù)據(jù)包都將被輸出。
本發(fā)明的數(shù)據(jù)流過濾模塊和方法可作為現(xiàn)有技術(shù)中解復(fù)用模塊中的數(shù)據(jù)流過濾模塊的替代,減少了所需的內(nèi)部緩存量,因此,可以實(shí)現(xiàn)大幅度地節(jié)省數(shù)據(jù)流過濾模塊芯片或DEMUX芯片的面積,從而可以降低成本。
本發(fā)明的數(shù)據(jù)流過濾模塊和解復(fù)用模塊可應(yīng)用于數(shù)字電視接收裝置中。
圖1是說明根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)流過流模塊的結(jié)構(gòu)框圖;圖2是說明根據(jù)本發(fā)明的實(shí)施例的節(jié)目特殊信息流數(shù)據(jù)包組成部分的輸出格式的示意圖;圖3是說明根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)流過流方法的流程圖;圖4是說明DEMUX的功能框圖。
圖5所說明本發(fā)明的另一個(gè)實(shí)施例的數(shù)據(jù)流過濾模塊的結(jié)構(gòu)框圖。
具體實(shí)施例方式
首先,需要說明的是,根據(jù)《MPEG2系統(tǒng)層規(guī)范ISO_IEC_13818-1》,連續(xù)的組成部分可能被分在不連續(xù)的傳送流數(shù)據(jù)包中,因?yàn)椤禡PEG2系統(tǒng)層規(guī)范IS0_IEC_13818-1》中沒有對(duì)連續(xù)的組成部分在傳輸流中的位置作出限制,所以會(huì)出現(xiàn)較多需要處理的邊界情況。在某些特殊應(yīng)用中編碼器端有可能限制連續(xù)的組成部分在傳輸流中的位置,這樣生成的傳輸流就可以用比較簡(jiǎn)單的流程來處理,甚至不出現(xiàn)本發(fā)明需要處理的情況。但是,這樣的流不能作為普遍的適合《MPEG2系統(tǒng)層規(guī)范ISO_IEC_13818-1》的標(biāo)準(zhǔn)流。本發(fā)明的處理對(duì)象可以是完全符合《MPEG2系統(tǒng)層規(guī)范ISO_IEC_13818-1》且沒有附加限制性協(xié)議的數(shù)字電視廣播(DVB)標(biāo)準(zhǔn)流或其它數(shù)據(jù)流。
下面,以對(duì)數(shù)字電視廣播系統(tǒng)中的節(jié)目特殊信息流數(shù)據(jù)包的過濾為例來說明本發(fā)明。應(yīng)理解,本發(fā)明不僅僅針對(duì)節(jié)目特殊信息流數(shù)據(jù)包,本發(fā)明可適用于對(duì)具有相同身份(如PID)的多個(gè)數(shù)據(jù)包的過濾。
參考圖1,本發(fā)明的數(shù)據(jù)流過濾模塊45包括元素流數(shù)據(jù)包PES過濾模塊11、數(shù)據(jù)包處理信息模塊PT 10、節(jié)目特殊信息流數(shù)據(jù)包PSI過濾模塊12、狀態(tài)存儲(chǔ)模塊(Config Table)13以及先進(jìn)先出模塊(FIFO)14。其中,數(shù)據(jù)包處理信息模塊10讀取數(shù)據(jù)包身份表(PID Table)47中對(duì)應(yīng)項(xiàng)的相關(guān)信息,數(shù)據(jù)包身份表中存儲(chǔ)了需要處理的32項(xiàng)PID的相關(guān)信息,并將之送入元素流數(shù)據(jù)包PES過濾模塊11或節(jié)目特殊信息流數(shù)據(jù)包PSI過濾模塊12中。數(shù)據(jù)流過濾模塊45處理完相應(yīng)的數(shù)據(jù)包后又把相關(guān)信息寫入數(shù)據(jù)包身份表中的對(duì)應(yīng)項(xiàng)(有關(guān)數(shù)據(jù)包身份表及其相應(yīng)的操作對(duì)于本領(lǐng)域技術(shù)人員來說已知的,因此不再詳述)。元素流數(shù)據(jù)包過濾模塊11對(duì)元素流數(shù)據(jù)包頭部的4個(gè)字節(jié)進(jìn)行過濾,判斷是否是所需的元素流數(shù)據(jù)包,如果是就通過先進(jìn)先出模塊14輸出該P(yáng)ES包,否則丟棄該P(yáng)ES包。狀態(tài)存儲(chǔ)模塊13用以存儲(chǔ)節(jié)目特殊信息流數(shù)據(jù)包的過濾狀態(tài),實(shí)際上它是一張N×(n+2)比特的表,由N個(gè)表項(xiàng)組成,每個(gè)表項(xiàng)為n+2比特,其中N為需要對(duì)應(yīng)的PID數(shù)目,每個(gè)表項(xiàng)的n+2比特中的n比特是由軟件填寫的數(shù)據(jù)包身份索引(PID_Index),標(biāo)志著過濾的攜帶節(jié)目特殊信息流數(shù)據(jù)包的傳送流數(shù)據(jù)包的數(shù)據(jù)包身份PID在數(shù)據(jù)包身份表(PIDTable)中的位置;另外2個(gè)比特中,一個(gè)比特是該表項(xiàng)的使能位(Enable),軟件可通過置“1”來打開這個(gè)表項(xiàng)(有效),置“0”來關(guān)閉這個(gè)表項(xiàng)(無效),從而可以實(shí)現(xiàn)軟件控制過濾(但是,作為替代,也可使得Enable位在置0時(shí)有效,在置1時(shí)無效)。Enable位的使用對(duì)于本領(lǐng)域的技術(shù)人員來說是不難理解的,因此不再詳述。本發(fā)明的發(fā)明點(diǎn)在于設(shè)置了另一個(gè)比特是該表項(xiàng)的差錯(cuò)位(Error)(對(duì)應(yīng)于過濾信息位),標(biāo)志著已收到的組成部分的頭部是否通過了過濾,若未通過,則置“1”,通過了則保持為“0”(但是,作為替代,也可使得Error位在置1時(shí)表示通過,在置0時(shí)表示未通過)。當(dāng)收全頭部14個(gè)字節(jié)時(shí),Error位為“0”,同時(shí)Enable有效(即置1),當(dāng)前數(shù)據(jù)包的身份索引和數(shù)據(jù)包身份表中的身份索引相等時(shí),就認(rèn)為該組成部分已經(jīng)通過了節(jié)目特殊信息流數(shù)據(jù)包過濾模塊的過濾。節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12對(duì)節(jié)目特殊信息流數(shù)據(jù)包各組成部分的頭部14個(gè)字節(jié)進(jìn)行過濾,判斷是否為所需的組成部分。對(duì)一個(gè)組成部分的過濾而言,只要其頭部14個(gè)字節(jié)中的1個(gè)字節(jié)錯(cuò)誤,該組成部分就應(yīng)該被丟棄。只有當(dāng)組成部分頭部的14個(gè)字節(jié)全部通過過濾,該組成部分才是需要的。因此,前述狀態(tài)存儲(chǔ)模塊13中的Error位只能用“1”覆蓋“0”,不能用“0”覆蓋“1”,并且在每個(gè)組成部分頭部第一字節(jié)過濾前重置對(duì)應(yīng)的表項(xiàng),以保證前一個(gè)組成部分的過濾結(jié)果不會(huì)影響當(dāng)前組成部分的過濾結(jié)果。一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的一個(gè)組成部分的頭部可能分布在多個(gè)傳送流數(shù)據(jù)包中(如MPEG2系統(tǒng)層規(guī)范ISO_IEC_13818-1中所定義的那樣),要完成一個(gè)組成部分的過濾有時(shí)要過濾完該組成部分頭部的14個(gè)字節(jié)。本發(fā)明利用狀態(tài)存儲(chǔ)模塊13記錄頭部的字節(jié)的過濾信息,從而無需存儲(chǔ)整個(gè)頭部的14個(gè)字節(jié),這將在后面詳細(xì)描述。例如,當(dāng)N=32,n=5比特(2的5次冪等于32,對(duì)應(yīng)數(shù)據(jù)包身份表中32個(gè)項(xiàng)),本發(fā)明的狀態(tài)存儲(chǔ)模塊僅僅需要32×(5+2)比特容量的存儲(chǔ)裝置,而在相同情況下現(xiàn)有技術(shù)的數(shù)據(jù)流過濾模塊則需要32×14(字節(jié))×8(每字節(jié)8比特)容量的存儲(chǔ)裝置。顯而易見的是本發(fā)明實(shí)現(xiàn)節(jié)目特殊信息流數(shù)據(jù)包過濾只需要現(xiàn)有技術(shù)十六分之一的容量的存儲(chǔ)裝置,這可大幅節(jié)省芯片面積。
在節(jié)目特殊信息流數(shù)據(jù)包的過濾中可能出現(xiàn)以下幾種情況(1)一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的組成部分的頭部分布在一個(gè)傳送流數(shù)據(jù)包中,并且該頭部通過過濾。節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12將此信息送給狀態(tài)存儲(chǔ)模塊13,狀態(tài)存儲(chǔ)模塊13將對(duì)應(yīng)該數(shù)據(jù)包身份的項(xiàng)的Error位保持“0”。這個(gè)節(jié)目特殊信息流數(shù)據(jù)包組成部分將通過先進(jìn)先出模塊FIFO 14輸出,同時(shí)這個(gè)輸出信息被自動(dòng)記錄在數(shù)據(jù)包身份表的對(duì)應(yīng)項(xiàng)中,若該組成部分的有效負(fù)載部分分布在其它傳送流數(shù)據(jù)包中,系統(tǒng)會(huì)根據(jù)數(shù)據(jù)包身份表中的信息以及狀態(tài)存儲(chǔ)模塊13的信息得出其為需要的節(jié)目特殊信息流數(shù)據(jù)包從而將其輸出(一個(gè)分布在多個(gè)傳送流數(shù)據(jù)包中的組成部分,若分布在前面的傳送流數(shù)據(jù)包中的組成部分被輸出,則分布在后面?zhèn)魉土鲾?shù)據(jù)包中的組成部分也將被輸出;分布在前面的傳送流數(shù)據(jù)包中的組成部分被丟棄,則分布在后面?zhèn)魉土鲾?shù)據(jù)包中的組成部分也將被丟棄),該組成部分被完全輸出時(shí),節(jié)目特殊信息流數(shù)據(jù)包過濾模塊在其尾部添加標(biāo)志性字段,說明該組成部分完全通過了過濾。
(2)一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的組成部分頭部分布在一個(gè)傳送流數(shù)據(jù)包中,但未通過過濾。節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12把這個(gè)信息送到狀態(tài)存儲(chǔ)模塊13,狀態(tài)存儲(chǔ)模塊13把對(duì)應(yīng)身份索引的項(xiàng)的Error位置“1”,這個(gè)節(jié)目特殊信息流數(shù)據(jù)包的組成部分被丟棄。然后這個(gè)被丟棄的信息被自動(dòng)記錄在數(shù)據(jù)包身份表對(duì)應(yīng)該傳送流數(shù)據(jù)包的數(shù)據(jù)包身份的項(xiàng)中,若該組成部分的有效負(fù)載部分分布在其它傳送流數(shù)據(jù)包中,系統(tǒng)會(huì)根據(jù)數(shù)據(jù)包身份表中的信息以及狀態(tài)存儲(chǔ)模塊13的信息將其丟棄。
(3)一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的組成部分的頭部分布在多個(gè)傳送流數(shù)據(jù)包中,分布在前面的傳送流數(shù)據(jù)包的頭部字節(jié)通過過濾。節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12把這個(gè)信息送到狀態(tài)存儲(chǔ)模塊13。狀態(tài)存儲(chǔ)模塊13對(duì)應(yīng)的Error位保持“0”。該部分頭部通過先進(jìn)先出模塊14被輸出,輸出信息被自動(dòng)記錄在數(shù)據(jù)包身份表中對(duì)應(yīng)的項(xiàng)。因?yàn)榉植荚谇懊娴膫魉土鲾?shù)據(jù)包的組成部分的部分已經(jīng)被輸出,數(shù)據(jù)流過濾模塊將根據(jù)數(shù)據(jù)包身份表中記載的輸出信息把分布在后面的傳送流數(shù)據(jù)包的該組成部分的其他部分輸出。如果這些組成部分的頭部字節(jié)也通過過濾,節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12把這個(gè)信息送到狀態(tài)存儲(chǔ)模塊13,狀態(tài)存儲(chǔ)模塊13的對(duì)應(yīng)Error位仍然保持“0”。節(jié)目特殊信息流數(shù)據(jù)包過濾模塊在該組成部分尾部添加說明其完全通過過濾的標(biāo)志性字段,該組成部分通過先進(jìn)先出模塊14被輸出。
(4)一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的組成部分的頭部分布在多個(gè)的傳送流數(shù)據(jù)包中,分布在前面的傳送流數(shù)據(jù)包的頭部字節(jié)通過過濾。節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12把這個(gè)信息送給狀態(tài)存儲(chǔ)模塊13,狀態(tài)存儲(chǔ)模塊13把對(duì)應(yīng)的Error位保持“0”。該部分通過先進(jìn)先出模塊14被輸出,同時(shí)該輸出信息被記錄在數(shù)據(jù)包身份表中對(duì)應(yīng)的項(xiàng)。若分布在后面的傳送流數(shù)據(jù)包的頭部字節(jié)未通過過濾,節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12把這個(gè)信息送給狀態(tài)存儲(chǔ)模塊,狀態(tài)存儲(chǔ)模塊13把對(duì)應(yīng)Error位置“1”。因?yàn)榍懊娴牟糠肿止?jié)已經(jīng)被輸出,系統(tǒng)根據(jù)數(shù)據(jù)包身份表中的輸出信息把該組成部分后面的內(nèi)容也輸出。該組成部分最后的部分被輸出時(shí),節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12根據(jù)狀態(tài)存儲(chǔ)模塊13的Error位的信息在其末尾添加標(biāo)志性字段,說明其為未通過過濾的組成部分。軟件在處理該組成部分時(shí)會(huì)將其丟棄。
(5)一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的組成部分的頭部分布在多個(gè)傳送流數(shù)據(jù)包中,分布在前面的傳送流數(shù)據(jù)包的頭部字節(jié)未通過過濾。節(jié)目特殊信息流數(shù)據(jù)包過濾模塊12把這個(gè)信息送給狀態(tài)存儲(chǔ)模塊,狀態(tài)存儲(chǔ)模塊把對(duì)應(yīng)項(xiàng)的Error位置“1”,這個(gè)部分被直接丟棄,該丟棄信息被記錄在數(shù)據(jù)包身份表中。該組成部分后面的內(nèi)容根據(jù)狀態(tài)存儲(chǔ)模塊以及數(shù)據(jù)包身份表提供的信息將被丟棄。
以下用一個(gè)具體的例子來說明本發(fā)明數(shù)據(jù)流過濾模塊的工作過程。例如,存在這樣的按順序過濾的4個(gè)帶有節(jié)目特殊信息流數(shù)據(jù)包的組成部分的傳送流數(shù)據(jù)包TS1和TS3具有相同的PID_Index,TS2和TS4具有另一個(gè)PID_Index。TS1和TS3帶有一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的某一個(gè)組成部分的不同部分,分別是需要過濾的是第1-3字節(jié)和第4-6字節(jié);TS2和TS4帶有另一個(gè)組成部分的不同部分,分別需要過濾的是第1-3字節(jié)和第4-6字節(jié)。如下表所示
帶有PSI的TS1(PID_Index=1)帶有PSI的TS2(PID_Index=2)帶有PSI的TS3(PID_Index=1)帶有PSI的TS4(PID_Index=2)在作過濾處理時(shí),假設(shè)TS1、TS4中的組成部分通過過濾了,TS2、TS3中的沒有通過過濾。則TS1過濾前,狀態(tài)存儲(chǔ)模塊(Config Table)13的對(duì)應(yīng)表項(xiàng)狀態(tài)如下Enable ErrorPID_Index
狀態(tài)存儲(chǔ)模塊表項(xiàng)0狀態(tài)存儲(chǔ)模塊表項(xiàng)1
TS1過濾后,Config Table對(duì)應(yīng)表項(xiàng)狀態(tài)如下Enable Error PID_Index
狀態(tài)存儲(chǔ)模塊表項(xiàng)0狀態(tài)存儲(chǔ)模塊表項(xiàng)1TS2過濾后,Config Table對(duì)應(yīng)表項(xiàng)狀態(tài)如下EnableErrorPID_Index
狀態(tài)存儲(chǔ)模塊表項(xiàng)0狀態(tài)存儲(chǔ)模塊表項(xiàng)1TS3過濾后,Config Table對(duì)應(yīng)表項(xiàng)狀態(tài)如下Enable ErrorPID_Index
狀態(tài)存儲(chǔ)模塊表項(xiàng)0狀態(tài)存儲(chǔ)模塊表項(xiàng)1TS4過濾后,Config Table對(duì)應(yīng)表項(xiàng)狀態(tài)如下Enable ErrorPID_Index
狀態(tài)存儲(chǔ)模塊表項(xiàng)0狀態(tài)存儲(chǔ)模塊表項(xiàng)1TS1中攜帶的組成部分將被送出。TS2中的PSI組成部分沒通過過濾,將被丟棄掉。TS3雖然沒通過過濾,但是TS1已經(jīng)被送出了,所以TS3也將被送出,只是會(huì)在組成部分結(jié)尾的狀態(tài)字節(jié)中指明錯(cuò)誤信息。TS4雖然通過過濾,但是TS2已經(jīng)出錯(cuò)并且被丟棄掉,所以TS4也將被丟棄掉。
如上所述,根據(jù)本發(fā)明,一個(gè)節(jié)目特殊信息流數(shù)據(jù)包的某一組成部分的頭部可分布在一個(gè)傳送流數(shù)據(jù)包中,也可分布在多個(gè)傳送流數(shù)據(jù)包中。在某一組成部分的頭部分布在一個(gè)傳送流數(shù)據(jù)包的情況下,根據(jù)本發(fā)明,如果該組成部分的頭部通過過濾,則狀態(tài)存儲(chǔ)模塊13將Error位保持“0”。如果未通過過濾,則Error位置1。根據(jù)Error位的信息,可以判斷是否要丟棄該組成部分。在一個(gè)組成部分的頭部分布在多個(gè)傳送流數(shù)據(jù)包中的情況下,具有該組成部分的不同部分的多個(gè)TS包的數(shù)據(jù)包身份索引PID_Index相同。如果分布在前面的傳送流數(shù)據(jù)包中的該組成部分的頭部的一部分通過過濾,則Error位保持為“0”,根據(jù)分布在后面的傳送流數(shù)據(jù)包中的該組成部分的頭部是否通過過濾,Error位相應(yīng)地保持為“0”或置“1”,但是在這兩種情況下,該組成部分所有部分都被輸出,只是在該組成部分的結(jié)尾處根據(jù)Error位的信息來添加標(biāo)志性字段(如圖2所示),以指示后續(xù)的處理是處理該組成部分還是丟棄該組成部分。如果分布在前面的傳送流數(shù)據(jù)包中的該組成部分的頭部的一部分沒有通過過濾,則Error位置“1”,不管分布在后面的傳送流數(shù)據(jù)包中的該組成部分的頭部部分是否通過過濾,Error位始終為“1”,從而分布在前面的傳送流數(shù)據(jù)包中的該組成部分被丟棄,而分布在后面的傳送流數(shù)據(jù)包中的該組成部分也被相應(yīng)地丟棄,從而整個(gè)組成部分被丟棄。
因此,一旦某一組成部分的頭部的14個(gè)字節(jié)被數(shù)據(jù)流過濾器通過,則整個(gè)組成部分都將被視為通過了過濾,但是CRC結(jié)果將在組成部分的最后一個(gè)字節(jié)收到后才能計(jì)算出來,而此時(shí)該組成部分前部的數(shù)據(jù)已經(jīng)被送到分配器模塊46了,甚至已經(jīng)被送到了DEMUX 40外部的緩存器(圖4中未示出)中。如果CRC校驗(yàn)錯(cuò)誤,必須將這部分已經(jīng)送出的數(shù)據(jù)清除或者標(biāo)記為無效。因此,在本發(fā)明中,CRC校驗(yàn)結(jié)果作為標(biāo)志字節(jié),緊挨著組成部分的最后一個(gè)字節(jié)送出,并被放到了外部緩存器中。下一級(jí)的處理模塊只需要先判斷這個(gè)字節(jié),就可以知道這個(gè)組成部分是否通過了CRC校驗(yàn)。如果沒有通過,則自動(dòng)跳過對(duì)這個(gè)組成部分的處理。
此外,除了CRC校驗(yàn)錯(cuò)誤外,如果發(fā)生了PES長(zhǎng)度錯(cuò)誤或組成部分長(zhǎng)度錯(cuò)誤,在接收完整個(gè)PES(或組成部分)之前,也可能無法判斷應(yīng)該將它丟棄還是送出,因此這些錯(cuò)誤情況也可以在標(biāo)志字節(jié)中標(biāo)明(這對(duì)于本領(lǐng)域的技術(shù)人員來說是顯而易見的)。DEMUX的后級(jí)處理模塊(通常是軟件模塊),在處理PES(或組成部分)時(shí),必須先判斷這個(gè)標(biāo)志字節(jié),如果有錯(cuò)誤,則自動(dòng)跳過對(duì)這個(gè)PES(或組成部分)的處理。但是,這種處理方式可能會(huì)因?yàn)檩敵隽艘恍┍静辉撦敵龅臄?shù)據(jù),導(dǎo)致多占用了外部的緩存器。但是由于實(shí)際工作中,因CRC或者長(zhǎng)度出錯(cuò)的數(shù)據(jù)非常少,因此通常不必為此增加外部緩存器的大小。
圖3為本發(fā)明數(shù)據(jù)流過濾方法的流程圖300。在步驟301中,本發(fā)明的數(shù)據(jù)流過濾模塊45(如圖1所示)讀入一個(gè)攜帶節(jié)目特殊信息流數(shù)據(jù)包某一組成部分的傳送流數(shù)據(jù)包。在步驟302,數(shù)據(jù)流過濾模塊判斷該組成部分有無被輸出的記錄(該信息從數(shù)據(jù)包身份表37中讀入)。如果沒有,則繼續(xù)到步驟303。在步驟303,判斷狀態(tài)存儲(chǔ)模塊13中對(duì)應(yīng)項(xiàng)的Error位是否為“0”。如果不是,則進(jìn)行到步驟311,直接丟棄該組成部分。如果在步驟303判斷為是的話,則說明該傳送流數(shù)據(jù)包是攜帶該組成部分的第一個(gè)傳送流數(shù)據(jù)包,下一步就對(duì)其進(jìn)行過濾。在步驟304判斷是否通過過濾。若在步驟304判斷出未通過過濾,則進(jìn)行到步驟311,丟棄該部分。若在步驟304判斷出通過過濾,則繼續(xù)進(jìn)行到步驟309,判斷該部分是否為當(dāng)前組成部分的結(jié)尾。如果在步驟309判斷出該部分是當(dāng)前組成部分的結(jié)尾,則進(jìn)行到步驟310,在步驟310,在該組成部分的結(jié)尾處添加說明該組成部分通過過濾的標(biāo)志性字段并在步驟313輸出該組成部分。若在步驟309判斷出該部分不是當(dāng)前組成部分的結(jié)尾,就在步驟313直接輸出該部分。另一方面,如果在步驟302判斷出有輸出記錄,則進(jìn)行到步驟305。在步驟305,判斷狀態(tài)存儲(chǔ)模塊13中的對(duì)應(yīng)項(xiàng)的Error位是否為“0”。若Error位為“1”,則說明該部分是所需要的,但因?yàn)榇嬖谳敵鲇涗?,即這個(gè)組成部分的前面的部分已經(jīng)被輸出,所以當(dāng)前的部分也要輸出。但是輸出之前應(yīng)先判斷是否結(jié)尾。也就是說,如果步驟305判斷出Error位是1,則進(jìn)行到步驟307。在步驟307判斷當(dāng)前部分是否是該組成部分的結(jié)尾。如果是,則進(jìn)行到步驟308,添加說明該組成部分沒有通過過濾的標(biāo)志性字段并在步驟312輸出。如果不是,則直接在步驟312輸出。如果在步驟305判斷出Error位是“0”,則進(jìn)行過濾。在步驟306判斷是否通過過濾,若通過過濾,則進(jìn)行到步驟309,否則進(jìn)行到步驟307。
以上,以對(duì)數(shù)字電視廣播系統(tǒng)中的節(jié)目特殊信息流數(shù)據(jù)包的過濾為例說明了本發(fā)明。但是,本發(fā)明可應(yīng)用于其它的數(shù)據(jù)流過濾中。圖5示出了本發(fā)明的另一實(shí)施例的數(shù)據(jù)流過濾模塊。數(shù)據(jù)流以數(shù)據(jù)包的形式傳送,多個(gè)數(shù)據(jù)包可具有相同的身份(例如N個(gè)身份),具有相同身份的多個(gè)數(shù)據(jù)包為一個(gè)整體。如圖5所示,本發(fā)明的數(shù)據(jù)流過濾模塊45包括數(shù)據(jù)包過濾器52,所述數(shù)據(jù)包過濾器52對(duì)數(shù)據(jù)包進(jìn)行過濾,所述數(shù)據(jù)流過濾模塊45還包括記錄數(shù)據(jù)包過濾信息的狀態(tài)存儲(chǔ)模塊13,如上所述,該狀態(tài)存儲(chǔ)模塊可包含一張由N個(gè)表項(xiàng)組成的表,每一個(gè)表項(xiàng)對(duì)應(yīng)于一種身份的數(shù)據(jù)包,記錄該身份的數(shù)據(jù)包的過濾信息。所述數(shù)據(jù)包過濾器52把數(shù)據(jù)包的過濾結(jié)果送至狀態(tài)存儲(chǔ)模塊13,狀態(tài)存儲(chǔ)模塊13判斷是否更新數(shù)據(jù)包的過濾信息;所述數(shù)據(jù)包過濾器52判斷當(dāng)前數(shù)據(jù)包是否為對(duì)應(yīng)身份的多個(gè)數(shù)據(jù)包中的最后一個(gè)數(shù)據(jù)包,如果是則根據(jù)所述的過濾信息在當(dāng)前數(shù)據(jù)包的尾部添加標(biāo)識(shí)符,指示出具有該身份的多個(gè)數(shù)據(jù)包整體上是否通過過濾。
如上文所述,標(biāo)識(shí)符可以是數(shù)據(jù)包頭部信息的過濾結(jié)果、或者CRC校驗(yàn)結(jié)果、或者長(zhǎng)度校驗(yàn)結(jié)果。
在本發(fā)明的該實(shí)施例中,與第一實(shí)施例相類似,狀態(tài)存儲(chǔ)模塊中各表項(xiàng)可利用一差錯(cuò)位來記錄各身份的數(shù)據(jù)包的過濾信息,只有接收到錯(cuò)誤的過濾結(jié)果才予以更新該差錯(cuò)位“Error”(如前所述,Error位可表示已收到的數(shù)據(jù)包是否通過了過濾,若未通過,則置“1”,通過了則保持為“0”(但是,作為替代,也可使得Error位在置1時(shí)表示通過,在置0時(shí)表示未通過))。所述的數(shù)據(jù)流過濾模塊45還可包括一個(gè)數(shù)據(jù)包身份表47,所述的數(shù)據(jù)包身份表中記錄了各身份的數(shù)據(jù)包的輸出情況。若某一身份的第一個(gè)數(shù)據(jù)包未通過過濾,則該身份的所有數(shù)據(jù)包均不予輸出,其他情況下數(shù)據(jù)包都將被輸出(如上文所述)。所述的數(shù)據(jù)流過濾模塊45根據(jù)狀態(tài)存儲(chǔ)模塊中差錯(cuò)位的值以及數(shù)據(jù)包身份表中的輸出記錄決定是否輸出當(dāng)前數(shù)據(jù)包。
如上所述,本發(fā)明的數(shù)據(jù)流過濾模塊和方法根據(jù)輸出記錄、狀態(tài)存儲(chǔ)模塊的過濾信息位(例如Error位)以及當(dāng)前部分是否通過過濾來判斷是否將當(dāng)前部分輸出,根據(jù)判斷當(dāng)前部分是否組成部分的結(jié)尾以及Error位來判斷是否需要添加標(biāo)志性字段以及添加何種標(biāo)志性字段。
本發(fā)明的數(shù)據(jù)流過濾模塊可作為現(xiàn)有技術(shù)中解復(fù)用模塊DEMUX中的數(shù)據(jù)流過濾模塊45的替代,減少了所需的內(nèi)部緩存量,因此,可以實(shí)現(xiàn)大幅度地節(jié)省數(shù)據(jù)流過濾模塊芯片或DEMUX芯片的面積,從而可以降低成本。
雖然,如圖5所示的數(shù)據(jù)流過濾模塊中,數(shù)據(jù)包過濾器對(duì)數(shù)據(jù)包進(jìn)行過濾,并且數(shù)據(jù)包過濾器可以把數(shù)據(jù)包的過濾結(jié)果送至狀態(tài)存儲(chǔ)模塊,判斷當(dāng)前數(shù)據(jù)包是否為對(duì)應(yīng)身份的多個(gè)數(shù)據(jù)包中的最后一個(gè)數(shù)據(jù)包,如果是則根據(jù)所述的過濾信息在當(dāng)前數(shù)據(jù)包的尾部添加標(biāo)識(shí)符,指示出具有該身份的多個(gè)數(shù)據(jù)包整體上是否通過過濾。但是,如本領(lǐng)域的技術(shù)人員所已知的那樣,可以將數(shù)據(jù)包過濾器劃分成多個(gè)模塊(未示出),各模塊實(shí)現(xiàn)不同的功能。例如傳送模塊,用于將數(shù)據(jù)包的過濾結(jié)果傳送至狀態(tài)存儲(chǔ)模塊;判斷模塊,用于對(duì)當(dāng)前數(shù)據(jù)包是否為對(duì)應(yīng)身份的多個(gè)數(shù)據(jù)包中的最后一個(gè)數(shù)據(jù)包進(jìn)行判斷;以及標(biāo)識(shí)符添加模塊,在判斷模塊判斷的基礎(chǔ)上,根據(jù)所述的過濾信息在當(dāng)前數(shù)據(jù)包的尾部添加標(biāo)識(shí)符,指示出具有該身份的多個(gè)數(shù)據(jù)包整體上是否通過過濾。當(dāng)然,也可以采用其它的組成方式或者數(shù)據(jù)包過濾器中包含其它模塊,只要能夠?qū)崿F(xiàn)如本申請(qǐng)所述的數(shù)據(jù)包過濾器的功能就行,這些都包含在本發(fā)明的范圍之內(nèi)。
本發(fā)明的數(shù)據(jù)流過濾模塊和解復(fù)用模塊可應(yīng)用于數(shù)字電視接收裝置中。解復(fù)用模塊以及數(shù)字電視接收裝置的其它組件都是本領(lǐng)域的技術(shù)人員所已知的,因此這里不再詳述??梢岳斫猓绢I(lǐng)域的技術(shù)人員能夠容易地將本發(fā)明應(yīng)用于任何用于數(shù)據(jù)流過濾的數(shù)據(jù)流過濾模塊、解復(fù)用模塊和數(shù)字電視接收裝置中。
權(quán)利要求
1.一種數(shù)據(jù)流過濾模塊,所述數(shù)據(jù)流以數(shù)據(jù)包的形式傳送,這些數(shù)據(jù)包分為N個(gè)身份,具有相同身份的多個(gè)數(shù)據(jù)包為一個(gè)整體,所述數(shù)據(jù)流過濾模塊包括數(shù)據(jù)包過濾器,所述數(shù)據(jù)包過濾器對(duì)數(shù)據(jù)包進(jìn)行過濾,其特征在于,所述數(shù)據(jù)流過濾模塊還包括記錄數(shù)據(jù)包過濾信息的狀態(tài)存儲(chǔ)模塊,所述狀態(tài)存儲(chǔ)模塊包含一張由N個(gè)表項(xiàng)組成的表,每一個(gè)表項(xiàng)對(duì)應(yīng)于一種身份的數(shù)據(jù)包,記錄該身份的數(shù)據(jù)包的過濾信息;所述數(shù)據(jù)包過濾器把數(shù)據(jù)包的過濾結(jié)果送至狀態(tài)存儲(chǔ)模塊;所述數(shù)據(jù)包過濾器判斷當(dāng)前數(shù)據(jù)包是否為對(duì)應(yīng)身份的多個(gè)數(shù)據(jù)包中的最后一個(gè)數(shù)據(jù)包,如果是則根據(jù)所述的過濾信息在當(dāng)前數(shù)據(jù)包的尾部添加標(biāo)識(shí)符,指示出具有該身份的多個(gè)數(shù)據(jù)包整體上是否通過過濾。
2.如權(quán)利要求1所述的數(shù)據(jù)流過濾模塊,其特征在于,所述標(biāo)識(shí)符是數(shù)據(jù)包頭部信息的過濾結(jié)果或者CRC校驗(yàn)結(jié)果或者長(zhǎng)度校驗(yàn)結(jié)果。
3.如權(quán)利要求1所述的數(shù)據(jù)流過濾模塊,其特征在于,狀態(tài)存儲(chǔ)模塊中各表項(xiàng)利用一差錯(cuò)位記錄各身份數(shù)據(jù)包的過濾信息,只有接收到錯(cuò)誤的過濾結(jié)果才更新該差錯(cuò)位;所述的數(shù)據(jù)流過濾模塊還包括一個(gè)數(shù)據(jù)包身份表,所述的數(shù)據(jù)包身份表中記錄了各身份的數(shù)據(jù)包的輸出情況;若一身份的第一個(gè)數(shù)據(jù)包未通過過濾,該身份的所有數(shù)據(jù)包均不予輸出,其他情況下數(shù)據(jù)包都將被輸出;所述的數(shù)據(jù)流過濾模塊根據(jù)狀態(tài)存儲(chǔ)模塊中差錯(cuò)位的值以及數(shù)據(jù)包身份表中的輸出記錄決定是否輸出當(dāng)前數(shù)據(jù)包。
4.一種包含權(quán)利要求1或3所述的數(shù)據(jù)流過濾模塊的解復(fù)用模塊。
5.一種包含如權(quán)利要求4所述的解復(fù)用模塊的數(shù)字電視接收裝置。
6.一種數(shù)據(jù)流過濾方法,所述數(shù)據(jù)流以數(shù)據(jù)包的形式傳送,所述數(shù)據(jù)包分為N個(gè)身份,具有相同身份的多個(gè)數(shù)據(jù)包為一個(gè)整體,所述數(shù)據(jù)流過濾方法包括以下步驟設(shè)置狀態(tài)表,所述狀態(tài)表記錄各身份的數(shù)據(jù)包的過濾信息,所述狀態(tài)表具有N個(gè)表項(xiàng),每一個(gè)表項(xiàng)對(duì)應(yīng)于一種身份的數(shù)據(jù)包,記錄該身份的數(shù)據(jù)包的過濾信息;對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行過濾并把過濾結(jié)果送至狀態(tài)表;判斷當(dāng)前數(shù)據(jù)包是否為對(duì)應(yīng)身份的多個(gè)數(shù)據(jù)包中的最后一個(gè),如果是則在當(dāng)前數(shù)據(jù)包的尾部添加標(biāo)識(shí)符,指示出具有該身份的多個(gè)數(shù)據(jù)包整體上是否通過過濾。
7.如權(quán)利要求6所述的數(shù)據(jù)流過濾方法,其特征在于,所述標(biāo)識(shí)符是數(shù)據(jù)包頭部信息過濾結(jié)果或者CRC校驗(yàn)結(jié)果或者長(zhǎng)度校驗(yàn)結(jié)果。
8.如權(quán)利要求6所述的數(shù)據(jù)流過濾方法,其特征在于,所述狀態(tài)表中每一表項(xiàng)包含一差錯(cuò)位,以記錄對(duì)應(yīng)身份的數(shù)據(jù)包的過濾信息,且只有當(dāng)數(shù)據(jù)包過濾結(jié)果為錯(cuò)誤時(shí)才更新該差錯(cuò)位;設(shè)置狀態(tài)表后再設(shè)置一個(gè)數(shù)據(jù)包身份表,以記錄各身份的數(shù)據(jù)包的輸出情況,過濾完當(dāng)前數(shù)據(jù)包后,根據(jù)差錯(cuò)位和數(shù)據(jù)包身份表的輸出情況判斷是否輸出當(dāng)前數(shù)據(jù)包,若一身份的第一個(gè)數(shù)據(jù)包未通過過濾,該身份的所有數(shù)據(jù)包均不予輸出,其他情況下數(shù)據(jù)包都將被輸出。
全文摘要
提供一種數(shù)據(jù)流過濾模塊和方法,根據(jù)輸出記錄、狀態(tài)存儲(chǔ)模塊的過濾記錄以及當(dāng)前數(shù)據(jù)包是否通過過濾來判斷是否將當(dāng)前數(shù)據(jù)包輸出,同時(shí)判斷當(dāng)前數(shù)據(jù)包是否為最后的數(shù)據(jù)包,如果是則在尾部添加表示這些數(shù)據(jù)包是否通過過濾的標(biāo)志性字段。還提供了一種使用該數(shù)據(jù)流過濾模塊的解復(fù)用模塊,以及使用所述解復(fù)用模塊的數(shù)字電視接收裝置。
文檔編號(hào)H04L12/56GK1805407SQ20051002317
公開日2006年7月19日 申請(qǐng)日期2005年1月10日 優(yōu)先權(quán)日2005年1月10日
發(fā)明者周振亞, 鄧淼, 朱鋒 申請(qǐng)人:上海奇碼數(shù)字信息有限公司