專利名稱::多路分解設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種多路分解設(shè)備。它特別應(yīng)用于數(shù)字電視領(lǐng)域。數(shù)字信號(hào)發(fā)送裝置需要分析它們內(nèi)容的接收電路,以確定是否所發(fā)送的數(shù)據(jù)對一種給定的應(yīng)用是有意義的。例如,這是以MPEG2形式壓縮的數(shù)字電視系統(tǒng)的情況,。在這類系統(tǒng)中,大量的信道可以被多路復(fù)用。各信道中的數(shù)據(jù)包括也必須被分析的若干層。最理想的是使用靈活的多路分解設(shè)備。本發(fā)明的目的是提供一種多路分解設(shè)備,其特征是它包括用于存儲(chǔ)多路復(fù)用數(shù)據(jù)流的數(shù)據(jù)的裝置,用于存儲(chǔ)數(shù)據(jù)篩選程序的可編程裝置,多路復(fù)用數(shù)據(jù)流的數(shù)據(jù)與數(shù)據(jù)篩選程序之間的比較裝置,和轉(zhuǎn)移多路復(fù)用數(shù)據(jù)流的數(shù)據(jù)到與所作比較有關(guān)的存儲(chǔ)裝置的裝置。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,根據(jù)本發(fā)明的設(shè)備至少進(jìn)一步包括根據(jù)多路復(fù)用數(shù)據(jù)流中分層數(shù)據(jù)中的一層構(gòu)成的一個(gè)狀態(tài)機(jī)。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,存儲(chǔ)數(shù)據(jù)篩選程序的可編程裝置包括一個(gè)含有對于響應(yīng)于該狀態(tài)機(jī)的層的各狀態(tài)機(jī)篩選程序值的存儲(chǔ)器。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,所述的層是MPEG2傳輸層,篩選程序值至少含有下述類型之一PID,連續(xù)計(jì)數(shù)器,同步比特。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,連續(xù)計(jì)數(shù)器的篩選程序值相應(yīng)于在多路復(fù)用數(shù)據(jù)流中期望的下一個(gè)值。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,所述的層是MPEG2分組層,篩選程序值至少含有下述類型之一表標(biāo)識(shí),分組指針的開始,分組長度。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,所述的層是MPEG2基本流數(shù)據(jù)包層,該篩選程序值包含數(shù)據(jù)流標(biāo)識(shí)。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,所述的設(shè)備進(jìn)一步包括一個(gè)多路復(fù)用器,其輸入端之一被連接到用于存儲(chǔ)多路復(fù)用數(shù)據(jù)流數(shù)據(jù)的裝置的輸出端,其第二個(gè)輸入端被連接到解密器的輸出端,解密器的輸入端也被連接到用于存儲(chǔ)多路復(fù)用數(shù)據(jù)流數(shù)據(jù)的裝置的輸出端,該多路復(fù)用器由一個(gè)或多個(gè)狀態(tài)機(jī)控制。本發(fā)明的目的還是提供一種數(shù)字電視解碼器,其特征在于,它包括上述多路分解設(shè)備。本發(fā)明的其它優(yōu)點(diǎn)和特征將通過由的特定的、非限定示范實(shí)施例的描述而被揭示。圖1表示在數(shù)字電視接收系統(tǒng)中按照本發(fā)明的多路分解器的方框圖,圖2是圖1中多路分解器傳輸處理器TP的狀態(tài)圖,圖3是圖1中多路分解器基本數(shù)據(jù)流信息包處理器PES的狀態(tài)圖,圖4是圖1中多路分解器分組處理器SEC的狀態(tài)圖,和圖5是圖1中多路分解器傳輸處理器XFER的狀態(tài)圖。在下面,當(dāng)認(rèn)為必須解釋清楚的時(shí)候,粗體或在括號(hào)和引號(hào)之間的術(shù)語根據(jù)MPEG2規(guī)范給出名稱。涉及“基本數(shù)據(jù)流”的數(shù)據(jù)在PES(“包化的基本數(shù)據(jù)流”)信息包中被傳送。各PES包括數(shù)據(jù)流標(biāo)識(shí)(“data_stream_id”)。各基本數(shù)據(jù)流(音頻,視頻或其它)相應(yīng)于節(jié)目部分。相同節(jié)目的基本數(shù)據(jù)流為發(fā)送而被多路復(fù)用。附加層,即傳送層,被用于該發(fā)送。傳送信息包包括一個(gè)信息包標(biāo)識(shí)(PID表示)。各PID與基本數(shù)據(jù)流之間的關(guān)系用真值表的方式被建立。這些真值表形成了節(jié)目說明信息(“PSI”)部分,它也以分組的形式在傳送信息包中被傳送。一個(gè)分組或PES的大小可以大于傳送信息包的有效負(fù)載。參考MPEG2ISO/IEC13818標(biāo)準(zhǔn),更具體地說,第一部分“系統(tǒng)”,一一提供了數(shù)據(jù)結(jié)構(gòu)和格式的全部詳細(xì)內(nèi)容。圖1是按照本實(shí)施例的多路分解器的方框圖。該多路分解器包括兩部分?jǐn)?shù)據(jù)處理部分1和連接到應(yīng)用和外設(shè)的轉(zhuǎn)換部分2。數(shù)據(jù)處理部分接收來自連接到一個(gè)調(diào)諧器(未示出)的解調(diào)與糾錯(cuò)電路3的多路復(fù)用數(shù)據(jù)流。按照本發(fā)明的實(shí)施例,提取相應(yīng)于九個(gè)目標(biāo)PID的九個(gè)傳送信息包。數(shù)據(jù)處理部分使用傳送信息包和PES的首部及標(biāo)志去存取有用的數(shù)據(jù)。某些字段經(jīng)轉(zhuǎn)換部分2被送給解碼器用作緩沖器的靜態(tài)RAM5。如果有用的數(shù)據(jù)被加密,那么在處理之前,它們首先被全部送到解密電路6。在處理部分和加密部分之間的FIFO存儲(chǔ)器允許這兩部分以不同速度去操作。多路復(fù)用數(shù)據(jù)流被存儲(chǔ)在一個(gè)異步數(shù)據(jù)捕獲RAM4中,并且在需要時(shí)被讀出。一般使用兩步去分析RAM4中存儲(chǔ)的數(shù)據(jù)第一步,讀這個(gè)RAM中的一個(gè)八比特字節(jié),然后是比較器7的比較步驟,與存儲(chǔ)在目標(biāo)存儲(chǔ)器8中一個(gè)字節(jié)比較。不是存儲(chǔ)在RAM4中的所有字節(jié)都被比較,該比較僅對于該操作所必須的字節(jié)進(jìn)行。該處理部分決定哪些字節(jié)要比較,并且根據(jù)比較的結(jié)果決定一個(gè)拒絕傳送信息包或轉(zhuǎn)移有用的數(shù)據(jù)給轉(zhuǎn)換部分。比較僅對于需要時(shí)已被解密的字節(jié)進(jìn)行。多路復(fù)用器19選擇數(shù)據(jù)捕獲RAM4和解密器6的輸出。多路復(fù)用器19的輸出被連接到比較器7的兩個(gè)輸入端之一。該比較器的另一輸入端被連接到目標(biāo)存儲(chǔ)器8的輸出端。在進(jìn)行比較時(shí)比較器也計(jì)及來自該目標(biāo)存儲(chǔ)器的四個(gè)屏蔽位。數(shù)據(jù)捕獲RAM4的讀由處理器(TP,PES和SEC,9,10和11)之一開始。這種RAM構(gòu)成為一個(gè)FIFO增加堆棧。微控制器μC(13)控制目標(biāo)RAM8并且裝載在傳送信息包中找到的預(yù)定目標(biāo)字節(jié)。經(jīng)該RAM控制器處理器9至12控制在目標(biāo)RAM中字節(jié)的讀出。為了各個(gè)比較,來自RAM8的一個(gè)字節(jié)與來自數(shù)據(jù)捕獲RAM4的一個(gè)字節(jié)被發(fā)送到比較器7。比較的結(jié)果被發(fā)送給在比較為正時(shí)已經(jīng)以“1”比特形式啟動(dòng)的處理器。在本實(shí)施例中使用了四個(gè)處理器(a)處理器TP(9)管理與傳送層有關(guān)的字節(jié),(b)處理器PES(10)管理與基本數(shù)據(jù)流信息包層有關(guān)的字節(jié),(c)處理器SEC(11)管理與分組層有關(guān)的字節(jié),(d)處理器XFER(12)管理到轉(zhuǎn)換部分的有用數(shù)據(jù)的轉(zhuǎn)移。各處理器9至12包括一個(gè)狀態(tài)機(jī),以及“與”/“或”計(jì)數(shù)器寄存器。在一個(gè)給定的時(shí)刻只有一個(gè)處理器起作用。在其作用階段,處理器通常進(jìn)行上述的讀和比較步驟,然后在其停用之前啟動(dòng)另一處理器。這些層和在傳送信息包中收到的數(shù)據(jù)字節(jié)決定這些處理器的啟用和操作順序。當(dāng)一個(gè)處理器被啟用時(shí),開始處理在數(shù)據(jù)捕獲RAM4中的下一個(gè)可用的數(shù)字字節(jié)。與讀入由各處理器特別保留的指針值指示的目標(biāo)RAM的字節(jié)的下一比較將進(jìn)行。簡單地說,當(dāng)一個(gè)處理器必須轉(zhuǎn)移數(shù)據(jù)到交換部分的時(shí)候,在其停用之前它啟動(dòng)處理器XFER12。多路復(fù)用器19由處理器TP或處理器PES控制。這取決于加密被執(zhí)行的電平(傳送信息包或基本數(shù)據(jù)流信息包)。解碼器20管理從微控制器或處理器之一來的用于目標(biāo)存儲(chǔ)器的地址解碼。在微控制器需要訪問他們時(shí),它還管理處理器寄存器地址的解碼。該解碼器還包括對于各基本數(shù)據(jù)流存儲(chǔ)例如data_stream_id(數(shù)據(jù)流標(biāo)識(shí))和data_stream_type(數(shù)據(jù)流類型)參數(shù)的多個(gè)寄存器。涉及在一給定時(shí)刻處理的數(shù)據(jù)流的所有信息可以由該解碼器供該電路的其它部分用(這個(gè)數(shù)據(jù)流就是通常所說的data_stream_id參數(shù),它還將在后邊涉及的傳送處理器TP中遇到)。下面將更詳細(xì)地說明不同的處理器。多路分解器的轉(zhuǎn)換部分從處理分組接收多路復(fù)用的數(shù)據(jù),以及一個(gè)數(shù)據(jù)流標(biāo)識(shí)(data_stream_id)。按照實(shí)現(xiàn)本發(fā)明的一種特有方式,引入緩沖模式,轉(zhuǎn)換部分控制在靜態(tài)RAM5中的幾個(gè)緩沖區(qū),這些緩沖區(qū)已由微控制器13分配。該轉(zhuǎn)換部分在相應(yīng)于該數(shù)據(jù)流標(biāo)識(shí)的適當(dāng)?shù)木彌_區(qū)中存儲(chǔ)收到的數(shù)據(jù)。幾個(gè)接口17,18處理在靜態(tài)RAM5,微控制器和外部應(yīng)用15(音頻解壓器,視頻解壓器,電傳等)和16(用于存取控制和服務(wù)付費(fèi)的靈巧卡)。各應(yīng)用在為其保留的緩沖區(qū)中讀涉及它的數(shù)據(jù)。序列控制器22和數(shù)據(jù)緩沖器23分別控制對于靜態(tài)存儲(chǔ)器5訪問的順序及在該存儲(chǔ)器中緩沖區(qū)的尋址。更具體地說,微控制器接口17在存儲(chǔ)器5,靈巧卡接口,微控制器和各應(yīng)用之間轉(zhuǎn)換地址總線和數(shù)據(jù)總線。下面具體描述的部分涉及目標(biāo)存儲(chǔ)器。根據(jù)本發(fā)明的例子,該目標(biāo)存儲(chǔ)器是一個(gè)128×12比特的隨機(jī)存取存儲(chǔ)器。它被用于存儲(chǔ)篩選字節(jié)。每個(gè)字節(jié)具有允許在比較期間屏蔽該字節(jié)的一定比特的屏蔽的4個(gè)比特。8比特用于比較及4比特用于屏蔽的12比特被存儲(chǔ)在存儲(chǔ)器8的各地址并且由比較器7并行使用。得到的16可選擇比特被預(yù)先規(guī)定并存儲(chǔ)于比較器7中。處理器TP,PES和SEC使用用于篩選的目標(biāo)存儲(chǔ)器。各處理器使用目標(biāo)存儲(chǔ)器的一個(gè)可編程部分。目標(biāo)存儲(chǔ)器(地址0)的第一字節(jié)相應(yīng)于PES信息包及相應(yīng)于處理器PES。該字節(jié)識(shí)別數(shù)據(jù)流(“stream_id”)的類型。相應(yīng)于處理器TP的部分的地址數(shù)取決于要被篩選的多個(gè)標(biāo)識(shí)PID的數(shù)目。對于具有13比特長的PID,需要兩個(gè)字節(jié),每個(gè)PID相應(yīng)于兩個(gè)地址。因此,每個(gè)PID存儲(chǔ)來自連續(xù)計(jì)數(shù)器(ECC)的期望值。在后一種情況下,需要給它加上同步字節(jié),這對于所有傳送信息包是相同的,并且從歸因于處理器TP的存儲(chǔ)器部分開始,被順序地僅存儲(chǔ)一次。因此該第二部分的地址號(hào)是(要被篩選的PID數(shù)據(jù)×3)+1該第二部分的構(gòu)成是同步字節(jié)PIDH數(shù)據(jù)流#0[PIDH數(shù)據(jù)流#1][PIDH數(shù)據(jù)流#2][PIDH數(shù)據(jù)流#n]PIDL數(shù)據(jù)流#0[PIDL數(shù)據(jù)流#n]ECC數(shù)據(jù)流#0[ECC數(shù)據(jù)流#0]按照本實(shí)施例,n總是小于9。關(guān)于為分組處理器SEC保留的目標(biāo)存儲(chǔ)器部分,保留的地址數(shù)也是PID數(shù)的函數(shù)。該存儲(chǔ)器包括象存在的目標(biāo)數(shù)據(jù)流那么多的“分組/數(shù)據(jù)流”字段。各字段具有它自己的開始地址(section_TR_start_address)。各字段的第一字節(jié)是零它提供分組指針開始(“pointer_field”)是零的驗(yàn)證。接著的字節(jié)相應(yīng)于表的標(biāo)識(shí)(“table_id”)。一定量的表可以由用戶定義;標(biāo)識(shí)的號(hào)是可改變的,并且等于各字段的filter_nb(篩選程序_nb)。然后來一個(gè)將與分組長度的高半字節(jié)比較的零半字節(jié),以便證實(shí)是否該分組溢出傳送信息包。各字段的后部分包括一定數(shù)量(filter_nb)的長度filter_length的字節(jié)組,它們要與同樣數(shù)量的信息包字節(jié)比較。對于各信息包字節(jié)要被比較的數(shù)是felter_nb。分組指針的開始table_id(表標(biāo)識(shí))#0[table_id#1][table_id#(n-1)]分組長度的高半字節(jié)地址#0,0[地址#0,1][地址#0,(n-1)][地址#1,0][地址#1,1][地址#(filter_length-1),(filter_nb-1)]各字段中字節(jié)的總數(shù)是filter_nb。(filter_length+1)+2表1示出了對于九個(gè)PID的目標(biāo)存儲(chǔ)器結(jié)構(gòu)的一個(gè)例子,以及對于兩個(gè)不同table_id和兩組16比特字節(jié)的分組篩選例子(亦即filter_nb=2和filter_length=2)。表1</tables>例如,如果一個(gè)分組的適當(dāng)?shù)淖止?jié)等于表2欄中之一的內(nèi)容,則比較為正,表2為表2</tables>這些數(shù)據(jù)通常由微控制器13寫入目標(biāo)存儲(chǔ)器8。該文中一種值得注意的特殊情況是連續(xù)計(jì)數(shù)器,它由微處理器TP(9)寫入。為了寫入目標(biāo)存儲(chǔ)器,微控制器使用稱為trp的一個(gè)指針。這些處理器能夠通過對指針trp偏程存取感性趣的數(shù)據(jù)。相應(yīng)于對于給定的基本數(shù)據(jù)流從多路復(fù)用數(shù)據(jù)流中提取的最后傳送信息包,來自連續(xù)計(jì)數(shù)器ECC的等候值被存儲(chǔ)在目標(biāo)存儲(chǔ)器的適當(dāng)?shù)刂分?。該值相?yīng)于從最后篩選傳送信息包中提取的,逐一增加的連續(xù)計(jì)數(shù)值,ECC使用在與具有同一PID的下一個(gè)傳送信息包的連續(xù)計(jì)數(shù)器比較期間。假定未定義ECC的第一值,在由微控制器寫入目標(biāo)存儲(chǔ)器期間,開始通過選擇適當(dāng)?shù)谋忍仄帘谓Y(jié)構(gòu)它被全部屏蔽。當(dāng)ECC的第一有效值被寫入時(shí),這些屏蔽比特也被改寫。目標(biāo)存儲(chǔ)器的控制器14在對于該存儲(chǔ)器訪問的請求之間進(jìn)行多路復(fù)用。這些請求可以來自微控制器和處理器。下面的描述部分涉及傳送層處理器。處理器TP是對于所有傳送信息包有效的第一處理器。按照本實(shí)施例,由該處理器讀和處理的字節(jié)如下(a)sync_byte(同步字節(jié))8比特(b)transport_error_indicator(傳送誤差指示符)1比特payload_unit_start_indicator(有效負(fù)載單元起始指示符)1比特transport_priority(傳送優(yōu)先級(jí))1比特PID_H5比特(c)PID_L8比特(d)transport_scrambling_control(傳送加密控制)2比特adaptation_field_control(自適應(yīng)字段控制)2比特continuity_counter(連續(xù)計(jì)數(shù)器)4比特所有這些目標(biāo)位置相應(yīng)于MPEG2術(shù)語。這些數(shù)據(jù)被逐字節(jié)地讀出。某些像傳送優(yōu)先級(jí)這樣的變量沒被考慮,但是像屬于包括要被處理的變量的字節(jié)一樣被讀出。根據(jù)本實(shí)施例,多達(dá)九個(gè)數(shù)據(jù)流能被提取。例如,這些數(shù)據(jù)流為-程序關(guān)聯(lián)表流(具有PID#1的信息包)-條件訪問表流(具有PID#2的信息包)-程序分配分組流-視頻流-音頻流-圖文電視流-訪問管理消息流的權(quán)利(EMM)-訪問檢查消息流的權(quán)利(ECM)-程序引導(dǎo)流這九個(gè)PID值未由多路分解器特別分配。該微控制器通過把PID裝載到目標(biāo)存儲(chǔ)器選擇這些數(shù)據(jù)流。只有由這九個(gè)PID之一識(shí)別的傳送信息包被進(jìn)行處理。微控制器分配給各數(shù)據(jù)流可以采用音頻,視頻,分組等值之一的一種流(流類型)。圖2是處理器TP狀態(tài)機(jī)的狀態(tài)圖。粗體指示的狀態(tài)(w_first_TP)對于其余描述被認(rèn)為是該狀態(tài)機(jī)的初始狀態(tài)。當(dāng)期待一個(gè)新的信息包時(shí),處理器TP等待來自數(shù)據(jù)捕獲存儲(chǔ)器的信號(hào),指示后者準(zhǔn)備好被讀(w_TP,狀態(tài),ar_rdyl信號(hào))。此時(shí)跟著三個(gè)涉及物理執(zhí)行和數(shù)據(jù)捕獲存儲(chǔ)器讀及寫定時(shí)器比率的等待狀態(tài)。如果同步字節(jié)sync_byte是錯(cuò)誤的(即,不同于0×47),則該信息包被拒絕(sync_m狀態(tài)),并且返回初始狀態(tài)。如果transport_error_indicator標(biāo)志為“1”,表示傳送信息包數(shù)據(jù)至少包括一個(gè)不可撤消錯(cuò)誤,那么處理器TP同樣拒絕該信息包(likewisesync_mstate,TP_errorcondition)。處理器TP把九個(gè)PID的高(H)和低(L)比特與存于目標(biāo)存儲(chǔ)器8中的九個(gè)目標(biāo)PID比較。首先與九個(gè)高字節(jié)進(jìn)行比較,然后與九個(gè)低字節(jié)比較。該處理器TP的九比特寄存器DSid_reg存入該結(jié)果,稱作數(shù)據(jù)流標(biāo)識(shí)(datd_stream_id)?!?”比特表示在所處理信息包的PID與目標(biāo)PID中的一個(gè)之間有相符合的。該比特的位置表示所涉及的一個(gè)特定PID。如果寄存器的比特不為“1”,則拒絕傳送信息包。這種測試在cc_trp狀態(tài)被進(jìn)行,它是表示已篩選PID的所期望連續(xù)計(jì)數(shù)器ECC地址的目標(biāo)存儲(chǔ)器指針的計(jì)算狀態(tài)。如果這個(gè)地址無效,該錯(cuò)誤被識(shí)別(no_ds)。該處理器TP證實(shí)對于對應(yīng)于給定PID的信息包來說,連續(xù)計(jì)數(shù)器continuity_counter確實(shí)等于所期望的值ECC。為此,它等待由比較器7(wait_cc_matchstate)進(jìn)行比較的結(jié)果。然后它寫新的所期望的ECC值。接著是證實(shí)級(jí)check_1(檢查_1)。預(yù)計(jì)有多種情況(a)如果在該信息包中存在有效負(fù)載(相應(yīng)于PES或分組的有效負(fù)載)及連續(xù)計(jì)數(shù)器有正確的值,則處理器PES或處理器SEC被啟動(dòng)(call_next_fsmstate)。它是payload_unit_start_indicator標(biāo)志,該標(biāo)志表示在傳送信息包的有效負(fù)載中存在PES或一分組的開始。這個(gè)標(biāo)志被存儲(chǔ)在寄存器start_indic_reg中。(b)如果該信息組包括視頻類基本流,但在信息組的連續(xù)中有錯(cuò)誤(連續(xù)計(jì)數(shù)器與所期望值不同),則一定數(shù)目的錯(cuò)誤字節(jié)被插入該有效負(fù)載,并被轉(zhuǎn)移到轉(zhuǎn)換部分(error_state,e_x和call_xfer狀態(tài))。轉(zhuǎn)換部分在靜態(tài)RAM的適當(dāng)緩沖區(qū)中存儲(chǔ)這些字節(jié)。準(zhǔn)備用作有效負(fù)載的視頻解碼器識(shí)別該字節(jié)結(jié)構(gòu)并處理該數(shù)據(jù)。(c)如果adaptation_field_control對指示在傳送信息包中出現(xiàn)自適應(yīng)字段,則處理器TP啟動(dòng)處理器XFER從這一字段向轉(zhuǎn)換部分轉(zhuǎn)移這些字節(jié)。(d)如果連續(xù)計(jì)數(shù)器沒有正確的值,并且該流為分組類型,則信息包被拒絕。在處理器XFER啟動(dòng)階段期間,處理器TP處于休眠狀態(tài),等著由處理器XFER激活。如果傳送信息包除了自適應(yīng)字段外還包括一個(gè)有效負(fù)載,而且連續(xù)計(jì)數(shù)器具有正確的值,處理器TP激活處理器SEC或PES之一(check_2,然后call_next_fsmstate)。相反,處理器TP僅對于接著的傳送信息包(check_2狀態(tài))被激活。當(dāng)處理器SEC或PES之一已被啟動(dòng)時(shí),處理器TP進(jìn)入休眠狀態(tài),并等待被這些處理器激活。transport_scrambling_control對表示是否和以什么方式來加密傳送信息包的有效負(fù)載。處理器TP使用這些比特去構(gòu)成解密器6和控制多路復(fù)用器19。為了拒絕傳送信息包,處理器TP簡單地通過等待與新信息包的到達(dá)一致的再初始化信號(hào)使其自己不活動(dòng)。處理器TP有三個(gè)寄存器。第一寄存器(DS_count_reg)包括要被提取的不同信息包的最大數(shù),并由微控制器控制;第二個(gè)(TP_count_reg)由處理器TP使用作為循環(huán)索引(讀入數(shù)據(jù)捕獲存儲(chǔ)器的每個(gè)字節(jié)要作的比較數(shù)目)。第三寄存器已經(jīng)被提及了。下面的描述部分涉及基本流信息包處理器PES。根據(jù)本發(fā)明的實(shí)施例,該處理器包括一個(gè)狀態(tài)機(jī)(圖3中所示),以及九個(gè)各兩比特的寄存器。它由兩個(gè)處理器TP或XFER之一激活。下面的字節(jié)由處理器PES讀出。只有注有星號(hào)的數(shù)據(jù)實(shí)際上被該處理器測試。在比較期間,其它數(shù)據(jù)被屏蔽,此外,這也是利用其它處理器的情況。然而,PES的整個(gè)首部被存儲(chǔ),以便被轉(zhuǎn)移到轉(zhuǎn)換部分。(a,b,c)packet_start_code_prefix24比特(d)stream_id*8比特(e)PES_packet_length_high8比特(f)PES_packet_length_low8比特(g)“10”2比特PES_scrambling_control*2比特PES_priority1比特data_alignment_indicator1比特copyright1比特original_or_copy1比特(h)PTS_DTS_flags2比特ESCR_flags1比特ES_rate_flags1比特DSM_trick_mode_flag1比特additional_copy_info_flag1比特PES_CRC_flag1比特PES_extension_flag1比特首先,處理器PES處于休眠狀態(tài)。它由一個(gè)來自處理器TP或XFER之一的喚醒_總線(PES)信號(hào)激活。然后該處理器等待數(shù)據(jù)捕獲存儲(chǔ)器準(zhǔn)備好讀出當(dāng)前傳送信息包(W_PES狀態(tài)和ar_rdy信號(hào))的下一字節(jié)。對于處理器TP,一定數(shù)量的等待狀態(tài)需要同步數(shù)據(jù)捕獲存儲(chǔ)器和處理器PES。后者讀出相應(yīng)于packet_start_code_prefix(scx_m狀態(tài))的三個(gè)字節(jié)a,b和c,然后是流標(biāo)識(shí)字節(jié)stream_id(sid_ml狀態(tài))。如果該流是一個(gè)專用流(參見MPEG2系統(tǒng)文件的表2-10),則處理器XFER被激活(call_xfer狀態(tài))以便轉(zhuǎn)移PES信息包的有效負(fù)載到轉(zhuǎn)換部分。在本實(shí)施例中,假設(shè)這些專用流完全由相應(yīng)的應(yīng)用設(shè)備維護(hù),并且他們不需要由解密器6來解密。在相反的情況下,e和f字節(jié)被讀出,然后是字節(jié)g(加密狀態(tài)),從它們導(dǎo)出PES_scrambling_control對,表示PES信息包有效負(fù)載的加密。如前所述,這些比特被用于控制解密器6和多路復(fù)用器19。給出PES信息包的加密有效負(fù)載能夠被分布在幾個(gè)傳送信息包中,但是只有第一個(gè)傳送信息包包括PES_scrambling_control對,這些比特被存儲(chǔ)在一個(gè)兩比特寄存器中。處理器PES包括每流一個(gè)的寄存器,也就是說在這個(gè)實(shí)施例中是九個(gè)。這些寄存器由隨后的PES信息包的首部來更新。在讀和處理了g字節(jié)之后,該處理器讀h字節(jié)。這個(gè)字節(jié)包括一定數(shù)量的標(biāo)志。根據(jù)結(jié)合多路分解器的解碼器的容量,這些標(biāo)志可以在此時(shí)被設(shè)置為與這些裝置兼容的值。兩個(gè)接著的狀態(tài)的用途是轉(zhuǎn)移PES信息包的首部到轉(zhuǎn)換部分。在此期間,處理器PES被置為休眠狀態(tài)。當(dāng)轉(zhuǎn)移被完成時(shí),該處理器PES由處理器XFER重新激活。然后處理器PES象前面所述的那樣開始PES信息包有效負(fù)載的轉(zhuǎn)移(call_xferstate)。一旦這一轉(zhuǎn)移開始,處理器PES就進(jìn)入休眠模式。下面的說明部分涉及分組處理器SEC。指定處理分組層數(shù)據(jù)的處理器SEC包括一個(gè)狀態(tài)機(jī)(示于圖4)和四個(gè)寄存器,它由處理器TP或XFER之一去激活。由該處理器讀的字節(jié)如下(a)table_id(表標(biāo)識(shí))8比特(b)section_syntax_indicator(分組句法指示符)1比特private_indicator(專用指示符)1比特reserved(保留的)2比特section_length(分組長度)(高半字節(jié))4比特(c)section_length(分組長度)(低字節(jié))8比特(d)與預(yù)定組比較的第一字節(jié)8比特(e)與預(yù)定組比較的第二字節(jié)8比特......(......)與預(yù)定組比較的最后字節(jié)8比特(......)有效負(fù)載N×8比特開始狀態(tài)是休眠狀態(tài)。當(dāng)處理器SEC被激活時(shí),能引起兩種情況-當(dāng)前傳送信息包的有效負(fù)載包括在其開始時(shí)分組的起始,-傳送信息包的有效負(fù)載包括分組的一些字節(jié),該分組的起始已在前一傳送信息包中被發(fā)送。在第一種情況中,該狀態(tài)改變到等待狀態(tài)w_sec,只要表示數(shù)據(jù)捕獲存儲(chǔ)器準(zhǔn)備好和至少包括6個(gè)字節(jié)的信號(hào)ar_rdy還沒有到達(dá)處理器SEC就一直保持該狀態(tài)。在第一種情況中,處理器SEC指向目標(biāo)存儲(chǔ)器的分組/流字段。這個(gè)指針由各授權(quán)PID的微控制器確定,并存儲(chǔ)在由該處理器讀的寄存器中。具有與傳送信息包分組字節(jié)比較、篩選幾個(gè)參數(shù)(EMMECM,程序分配,等)的幾個(gè)預(yù)定字節(jié)組的各分組/流字段能夠?qū)τ诟髁鲗?shí)現(xiàn)。在分組開始從數(shù)據(jù)捕獲存儲(chǔ)器讀出的第一字節(jié)是表標(biāo)識(shí)字節(jié)table_id。它與相應(yīng)于目標(biāo)存儲(chǔ)器的filter_nb字節(jié)比較。它由圍繞F1_loop狀態(tài)的環(huán)表示。要讀的第二和第三字節(jié)是分組長度字節(jié)。在本發(fā)明實(shí)施例中,只進(jìn)行與分組長度低字節(jié)的高半字節(jié)的比較,以檢查是否該分組超出了當(dāng)前傳送信息包的范圍。然后這些分組字節(jié)與存儲(chǔ)于目標(biāo)存儲(chǔ)器中的預(yù)定字節(jié)比較(F2_loop和相應(yīng)環(huán)的狀態(tài))。在與這些組之一的字節(jié)比較期間,寄存器(filter_reg)的一比特由該處理器對于各肯定比較置于1。如果該分組占用了多于一個(gè)信息包,這個(gè)信息從傳送信息包到傳送信息包保持不變,以便將整個(gè)分組轉(zhuǎn)移到轉(zhuǎn)換部分。當(dāng)預(yù)定字節(jié)組之一在一個(gè)分組中被檢測時(shí),一旦篩選結(jié)束,該分組就被轉(zhuǎn)移到轉(zhuǎn)換部分(call_next_fsm狀態(tài))。如果一個(gè)分組的結(jié)尾已經(jīng)被轉(zhuǎn)移,那么產(chǎn)生一個(gè)中斷信號(hào)向該微控制器指示整個(gè)分組已被存儲(chǔ)在SRAM中及它在那里是有效的。如果與一組字節(jié)的比較未提供肯定的結(jié)果,那么該分組被拒絕,并且控制器返回到處理器TP。在第二種情況中,當(dāng)一個(gè)分組已經(jīng)開始時(shí),處理器SEC被激活。然后該處理器分析寄存器suspend_reg,以確定在傳送信息包有效負(fù)載開始出現(xiàn)的分組結(jié)尾是否相應(yīng)于其比較已為肯定的分組。在這種情況下,轉(zhuǎn)移處理器被調(diào)用(call_next_fsm狀態(tài))。在肯定的情況下,處理器SEC計(jì)算相應(yīng)于在同一傳送信息包中的下一分組的開始的指針(w_ptr)。然后該系統(tǒng)返回篩選/比較循環(huán)(w_SEC狀態(tài))。處理器SEC有四個(gè)寄存器。第一寄存器(SECcount_reg)用作在關(guān)于狀態(tài)機(jī)描述的兩個(gè)環(huán)路中的索引。第二寄存器(filter_reg)用于存儲(chǔ)比較的結(jié)果。這個(gè)寄存器包括filter_nb比特,各比特表示對于幾組預(yù)定字節(jié)之一比較的結(jié)果。第三寄存器(suspend_reg)存儲(chǔ)對于各流的篩選結(jié)果,占用幾個(gè)信息包的一個(gè)分組的內(nèi)容對此可以被轉(zhuǎn)移到轉(zhuǎn)換部分。分組中斷的結(jié)尾也由這個(gè)寄存器產(chǎn)生。最后一個(gè)寄存器(SEC_length_reg)被用于計(jì)算分組的長度。在本實(shí)施例中,要被比較的相同分組的全部字節(jié)被假設(shè)在同一傳送信息包中發(fā)送。分組中的其它字節(jié)可以分布在其它傳送信息包中。下面的說明部分特別涉及轉(zhuǎn)移處理器XFER。轉(zhuǎn)移處理器XFER由有數(shù)據(jù)要被轉(zhuǎn)移到轉(zhuǎn)換部分的每個(gè)其它處理器激活。它包括一個(gè)狀態(tài)機(jī)(圖5),一個(gè)寄存器(packet_length_reg)和兩個(gè)計(jì)數(shù)器sfer_count_reg和ar_count。該處理器XFER不訪問目標(biāo)存儲(chǔ)器。寄存器packet_length_reg包括信息包的長度,即在MPEG2傳送信息包情況下的188個(gè)字節(jié)。內(nèi)部計(jì)數(shù)器(packet_count_reg)由微計(jì)算機(jī)裝載傳送信息包的這個(gè)起始的值,并每當(dāng)一個(gè)字節(jié)被讀入數(shù)據(jù)捕獲存儲(chǔ)器時(shí)遞減。xfer_count計(jì)數(shù)器由處理器XFER使用去存儲(chǔ)要被轉(zhuǎn)移的字節(jié)數(shù)。計(jì)數(shù)器ar_count被用于產(chǎn)生類型ar_rdytype信號(hào)(數(shù)據(jù)捕獲存儲(chǔ)器備用)。它同步來自解調(diào)器/糾錯(cuò)器的數(shù)據(jù),并比較該數(shù)據(jù)捕獲存儲(chǔ)器的讀和寫指針。該起始狀態(tài)也是休眠狀態(tài)。如果信號(hào)till_TP_end已由調(diào)用處理器激活,那么處理器XFER轉(zhuǎn)移傳送信息包的所有其余字節(jié)到轉(zhuǎn)換部分。反之,該處理器讀在數(shù)據(jù)捕獲存儲(chǔ)器中的第一字節(jié),并認(rèn)為它是要被轉(zhuǎn)移的字節(jié)數(shù)。如果信號(hào)drop_length_bus是有效的。則該第一字節(jié)不被傳送到轉(zhuǎn)換部分。這種功能也取決于已激活處理器XFER的處理器,和在數(shù)據(jù)捕獲存儲(chǔ)器中出現(xiàn)的字節(jié)數(shù)。對于各轉(zhuǎn)移期間,處理器XFER期望6個(gè)字節(jié)在數(shù)據(jù)捕獲存儲(chǔ)器或在解密器中是有用的。然后它通過發(fā)送一個(gè)信號(hào)DPP_req(w_ard狀態(tài))到轉(zhuǎn)換部分去打開一個(gè)轉(zhuǎn)移期間,并等待這部分(w_sram狀態(tài))的返回。當(dāng)DSP準(zhǔn)備接收數(shù)據(jù)時(shí),它響應(yīng)于一個(gè)信號(hào)DSP_ack。然后處理器XFER在數(shù)據(jù)捕獲存儲(chǔ)器中讀這些字節(jié)(rd_byte狀態(tài)),并把他們轉(zhuǎn)移到轉(zhuǎn)換部分。在一個(gè)字節(jié)被轉(zhuǎn)移之后,處理器環(huán)回去轉(zhuǎn)移下一個(gè)字節(jié),直到轉(zhuǎn)移狀態(tài)結(jié)束信息包結(jié)束,分組結(jié)束或轉(zhuǎn)移結(jié)束(w_0,w_1和w_2狀態(tài))。如果未完成結(jié)束狀態(tài),則該處理器等待(w_ar3狀態(tài))數(shù)據(jù)捕獲存儲(chǔ)器(ar_rdy=1)中有用的另外六個(gè)字節(jié),以便提出一個(gè)新的轉(zhuǎn)移期間請求。在結(jié)束狀態(tài)的情況下,處理器XFER重新激活已激活它并進(jìn)入休眠模式(call_next_fsm和sleep狀態(tài))的處理器。權(quán)利要求1.一種多路分解設(shè)備,其特征在于它包括用于存儲(chǔ)多路復(fù)用數(shù)據(jù)流(4)數(shù)據(jù)的裝置,用于存儲(chǔ)數(shù)據(jù)篩選程序(8)的可編程裝置,多路復(fù)用數(shù)據(jù)流的數(shù)據(jù)與數(shù)據(jù)篩選程序之間的比較裝置(19),以及用于相對于比較模式把多路復(fù)用數(shù)據(jù)流的數(shù)據(jù)轉(zhuǎn)移到存儲(chǔ)裝置(5)的裝置(12)。2.根據(jù)權(quán)利要求1的設(shè)備,其特征在于它進(jìn)一步包括按照從多路復(fù)用數(shù)據(jù)流中數(shù)據(jù)的分層中的一層構(gòu)成的至少一個(gè)狀態(tài)機(jī)(9,10,11,12)。3.根據(jù)權(quán)利要求2的設(shè)備,其特征在于用于存儲(chǔ)數(shù)據(jù)篩選程序(8)的可編程裝置包括一個(gè)含有各狀態(tài)機(jī)(9,10,11,12)的相應(yīng)于該狀態(tài)機(jī)的層的篩選程序值的存儲(chǔ)器。4.根據(jù)權(quán)利要求3的設(shè)備,其特征在于所述的層是MPEG2傳送層,篩選程序值至少包括下列類型之一PID,連續(xù)計(jì)數(shù),同步比特。5.根據(jù)權(quán)利要求4的設(shè)備,其特征在于連續(xù)計(jì)數(shù)器的濾波值相應(yīng)于在多路復(fù)用數(shù)據(jù)流中期望的下一個(gè)值。6.根據(jù)權(quán)利要求3的設(shè)備,其特征在于所述的層是MPEG2分組層,篩選程序值至少包括下列類型表標(biāo)識(shí),分組指針的開始,分組長度。7.根據(jù)權(quán)利要求3的設(shè)備,其特征在于所述的層是MPEG2基本流信息包層,該篩選程序值包括該流的標(biāo)識(shí)。8.根據(jù)權(quán)利要求4、5或6之一的設(shè)備,其特征在于所述的設(shè)備進(jìn)一步包括一個(gè)多路復(fù)用器19,它的一個(gè)輸入端被連接到用于存儲(chǔ)多路復(fù)用數(shù)據(jù)流數(shù)據(jù)裝置的輸出,并且它的第二個(gè)輸入端被連接到解密器(6)的輸出端,該解密器的輸入端還被連接到用于存儲(chǔ)多路復(fù)用數(shù)據(jù)流數(shù)據(jù)的裝置的輸出端,該多路復(fù)用器由該狀態(tài)機(jī)或多個(gè)狀態(tài)機(jī)(9,10)控制。9.一種數(shù)字電視解碼器,其特征在于,它包括按照前述權(quán)利要求之一的多路分解器。全文摘要本發(fā)明目的是提供一種多路分解設(shè)備。該設(shè)備的特征在于,它包括用于存儲(chǔ)多路復(fù)用數(shù)據(jù)流(4)的數(shù)據(jù)的裝置,用于存儲(chǔ)數(shù)據(jù)篩選程序(8)的可編程裝置,多路復(fù)用數(shù)據(jù)流的數(shù)據(jù)與數(shù)據(jù)篩選程序之間的比較裝置(19),和用于相對于比較模式把多路復(fù)用數(shù)據(jù)流的數(shù)據(jù)轉(zhuǎn)移到存儲(chǔ)裝置(5)中的裝置(12)。本發(fā)明特別應(yīng)用于數(shù)字電視接收領(lǐng)域。文檔編號(hào)H04N5/00GK1162890SQ9612394公開日1997年10月22日申請日期1996年12月29日優(yōu)先權(quán)日1995年12月29日發(fā)明者查拉夫·漢納,埃蒂恩·科喬恩,艾伯特·多納申請人:湯姆森多媒體公司