機頂盒解復(fù)用系統(tǒng)中的psi數(shù)據(jù)過濾器及過濾方法
【專利摘要】本發(fā)明涉及一種機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器及過濾方法,其中包括狀態(tài)機主控制器、TS碼流輸入緩存器、比較邏輯處理器和TS碼流輸出緩存器,狀態(tài)機主控制器用以控制所述的程序特殊信息數(shù)據(jù)過濾器的狀態(tài)機的轉(zhuǎn)換,比較邏輯處理器用以對TS分組數(shù)據(jù)包內(nèi)的程序特殊信息數(shù)據(jù)進行比較過濾處理并將處理結(jié)果反饋給狀態(tài)機主控制器,本發(fā)明還涉及一種基于所述的過濾器在機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法。采用該種結(jié)構(gòu)的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器及過濾方法,可以實現(xiàn)大幅度提高數(shù)據(jù)讀取與計算的效率,精確地完成對程序特殊信息過濾處理,大幅度地減輕中央處理器的后續(xù)處理負擔,具有更廣泛的應(yīng)用范圍。
【專利說明】機頂盒解復(fù)用系統(tǒng)中的PSI數(shù)據(jù)過濾器及過濾方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及音視頻編解碼領(lǐng)域,尤其涉及音視頻解復(fù)用系統(tǒng)中數(shù)據(jù)過濾領(lǐng)域,具體是指一種機頂盒解復(fù)用系統(tǒng)中的PSI數(shù)據(jù)過濾器及過濾方法。
【背景技術(shù)】
[0002]目前,國際上普遍采用MPEG-TS分組碼流作為廣播音視頻數(shù)據(jù)和其他數(shù)據(jù)合成的傳輸載體,適用于傳輸和存儲。2006年,我國制定了自主知識產(chǎn)權(quán)的先進音視頻編解碼標準(AVS)。在實際應(yīng)用中,為了兼容已有的廣播傳輸系統(tǒng),以上述標準得到的廣播音視頻數(shù)據(jù),仍然封裝于MPEG-TS分組碼流之中。硬件解復(fù)用系統(tǒng)中,需要對程序特殊信息(PSI,Program special program)數(shù)據(jù)進行過濾處理,用于獲取TS分組碼流里的廣播控制信息。
[0003]程序特殊信息,有以下四種PSI表:
[0004]程序相關(guān)表,關(guān)聯(lián)程序號與程序映射表PID ;
[0005]程序映射表,說明一個或多個程序組成部分PID的值;
[0006]網(wǎng)絡(luò)信息表,物理網(wǎng)絡(luò)參數(shù):FDM頻率、發(fā)送器號碼等;
[0007]條件訪問表,建立一個或者多個(私用)EMM流與獨立的PID值的聯(lián)系。
[0008]這些表中包含進行多路解調(diào)和顯示程序的必要的和足夠的信息。因此,程序特殊信息需要被程序特殊信息數(shù)據(jù)過濾器(PSI Data Filter)過濾出來,用于后續(xù)針對TS分組碼流的處理(如:不同頻道之間的切換,加擾的TS分組碼流的解擾,運營商的增值服務(wù)等等)。上述四種程序特殊信息表都有相應(yīng)的識別其本身的表頭信息,所以,可以預(yù)先在系統(tǒng)中存入需要捕獲的程序特殊信息表的表頭樣本,用于和TS分組碼流中的程序特殊信息數(shù)據(jù)進行比較過濾處理。
[0009]現(xiàn)有的程序特殊信息數(shù)據(jù)過濾處理方法,一部分是基于解復(fù)用器將所有包含程序特殊信息數(shù)據(jù)的TS分組數(shù)據(jù)包發(fā)送給中央處理器(CPU),用純軟件的方式進行程序特殊信息數(shù)據(jù)過濾處理。這樣的處理方式存在很大的弊端,會頻繁地打斷中央處理器對于其他任務(wù)的處理,大量占用中央處理器處理資源并降低整個系統(tǒng)的效率與性能。另一部分是基于解復(fù)用器中加入簡單的程序特殊信息數(shù)據(jù)過濾處理硬件邏輯和一個微控制器(MCU),通過微控制器分擔中央處理器對于程序特殊信息數(shù)據(jù)的過濾處理,這樣的處理方式同樣存在不利的方面,會增加解復(fù)用器的硬件結(jié)構(gòu)的復(fù)雜度,其次對于解復(fù)用器的維護變得困難,需要同時維護硬件設(shè)計和運行在微控制器上的軟件程序。
[0010]由此可見,需要一種新的硬件設(shè)計來滿足處理能力和維護成本之間平衡的關(guān)系。本硬件設(shè)計完成了處理程序特殊信息數(shù)據(jù)的硬件復(fù)雜運算,將包含解復(fù)用系統(tǒng)需要的程序特殊信息數(shù)據(jù)的少量TS分組包發(fā)送給中央處理器,能大幅度地降低中央處理器處理負擔,同時在解復(fù)用器中無需微控制器處理,降低維護成本,即,只需要維護一套運行在中央處理器軟件程序。同時,為了保證精確、高效的程序特殊信息數(shù)據(jù)過濾處理,硬件中進行大量的并行化設(shè)計,以及提出一種專門的程序特殊信息樣本數(shù)據(jù)的片內(nèi)存儲器地址映射方法。
[0011 ] 現(xiàn)有程序特殊信息樣本數(shù)據(jù)的地址映射方法如圖5所示。每一個程序特殊信息樣本數(shù)據(jù)按行存入,樣本數(shù)據(jù)的位寬確定了存儲器行存儲單元的位寬。當需要用到多個樣本數(shù)據(jù)時,所有樣本數(shù)據(jù)都以存儲器的行地址(Row)為序號順序存入,讀取時也是順序輸出。因此,這種地址映射方法導(dǎo)致后續(xù)的處理模塊不能直接、高效地執(zhí)行TS分組碼流中程序特殊信息與存儲的多個樣本數(shù)據(jù)的并行操作,即使在后續(xù)的處理模塊中開辟中間緩存用以達到并行操作的目的,但是,也不可避免順序讀取樣本數(shù)據(jù)的時間耗費以及開辟中間緩存的硬件開銷。基于此,特提出了新的發(fā)明設(shè)計。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點,提供了一種能夠?qū)崿F(xiàn)在固定計算時間范圍內(nèi)利用硬件完成TS分組碼流中程序特殊信息數(shù)據(jù)的精確而高效的過濾處理、滿足處理能力和維護成本之間平衡、結(jié)構(gòu)簡單、具有更廣泛應(yīng)用范圍的機頂盒解復(fù)用系統(tǒng)中的PSI數(shù)據(jù)過濾器及過濾方法。
[0013]為了實現(xiàn)上述目的,本發(fā)明的機頂盒解復(fù)用系統(tǒng)中的PSI數(shù)據(jù)過濾器及過濾方法具有如下構(gòu)成:
[0014]該機頂盒解復(fù)用系統(tǒng)中的PSI數(shù)據(jù)過濾器,其主要特點是,所述的過濾器包括:狀態(tài)機主控制器,用以控制所述的程序特殊信息數(shù)據(jù)過濾器的工作狀態(tài)機的轉(zhuǎn)換;
[0015]TS碼流輸入緩存器,用以緩存當前輸入TS分組數(shù)據(jù)包的部分數(shù)據(jù)來為所述的狀態(tài)機主控制器讀取程序特殊信息數(shù)據(jù)的控制信息提供緩沖時間;
[0016]比較邏輯處理器,用以對TS分組數(shù)據(jù)包內(nèi)的程序特殊信息數(shù)據(jù)進行比較過濾處理并將處理結(jié)果反饋給所述的狀態(tài)機主控制器;
[0017]TS碼流輸出緩存器,用以緩存當前輸出TS分組數(shù)據(jù)包并根據(jù)所述的狀態(tài)機主控制器的控制命令輸出相應(yīng)的TS分組數(shù)據(jù)包。
[0018]較佳地,所述的狀態(tài)機主控制器包括:
[0019]頂層狀態(tài)機控制模塊,用以控制所述的程序特殊信息數(shù)據(jù)過濾器的工作狀態(tài)機的轉(zhuǎn)換;
[0020]關(guān)鍵數(shù)據(jù)存儲模塊,用以暫存所述的程序特殊信息中的關(guān)鍵數(shù)據(jù)的先入先出隊列;
[0021]關(guān)鍵數(shù)據(jù)存儲控制模塊,用以控制所述的程序特殊信息中的關(guān)鍵數(shù)據(jù)的存儲。
[0022]較佳地,所述的TS碼流輸入緩存器包括:
[0023]路徑控制模塊,用以控制不同的程序特殊信息數(shù)據(jù)的處理流程路徑;
[0024]輸入數(shù)據(jù)存儲模塊,用以暫存輸入TS分組碼流的先入先出隊列。
[0025]較佳地,所述的比較邏輯處理器包括:
[0026]比較數(shù)據(jù)存儲模塊,用以暫存輸入到所述的比較邏輯處理器的數(shù)據(jù)的先入先出隊列;
[0027]轉(zhuǎn)換邏輯存儲模塊,用以對所述的程序特殊信息的樣本數(shù)據(jù)進行邏輯轉(zhuǎn)換;
[0028]核心比較邏輯模塊,用以將所述的TS分組碼流中的程序特殊信息數(shù)據(jù)和樣本數(shù)據(jù)進行比較。
[0029]較佳地,所述的TS碼流輸出緩存器包括:
[0030]輸出數(shù)據(jù)存儲模塊,用以暫存完成過濾后輸出的TS分組碼流的先入先出隊列;[0031]數(shù)據(jù)位寬轉(zhuǎn)換模塊,用以將已輸出的窄位寬程序特殊信息的TS分組碼流數(shù)據(jù)存儲于寬位寬的外部存儲器中。
[0032]本發(fā)明還涉及一種基于所述的過濾器在機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法,其主要特點是,所述的方法包括以下步驟:
[0033](I)所述的解復(fù)用系統(tǒng)將所述的程序特殊信息的樣本數(shù)據(jù)配置到所述的解復(fù)用系統(tǒng)的片內(nèi)存儲器中;
[0034](2)所述的狀態(tài)機主控制器獲取當前輸入的TS分組數(shù)據(jù)包中程序特殊信息的表頭數(shù)據(jù);
[0035](3)所述的比較邏輯處理器將程序特殊信息的樣本數(shù)據(jù)與所述的表頭數(shù)據(jù)進行比較并捕獲滿足要求的TS分組數(shù)據(jù)包。
[0036]較佳地,所述的解復(fù)用系統(tǒng)將所述的程序特殊信息的樣本數(shù)據(jù)配置到所述的解復(fù)用系統(tǒng)的片內(nèi)存儲器中,包括以下步驟:
[0037](11)所述的程序特殊信息的一個樣本數(shù)據(jù)通過數(shù)據(jù)總線寫入程序特殊信息寄存器中;
[0038](12)剛寫入的樣本數(shù)據(jù)所對應(yīng)的行地址和樣本序號通過數(shù)據(jù)總線寫入行和序號寄存器中;
[0039](13)所述的片內(nèi)控制器的寫入邏輯控制器根據(jù)所述的行地址和樣本序號,將所述的樣本數(shù)據(jù)寫入所述的片內(nèi)存儲器相應(yīng)的存儲單元中;
[0040]( 14)所述的解復(fù)用系統(tǒng)判斷所述的樣本數(shù)據(jù)是否全部配置完成,如果是,則繼續(xù)步驟(2 ),如果否,則繼續(xù)步驟(11)。
[0041]更佳地,所述的樣本數(shù)據(jù)包括位寬均為8位的對比數(shù)據(jù)、掩碼和選擇控制數(shù)據(jù),所述的程序特殊信息的一個樣本數(shù)據(jù)通過數(shù)據(jù)總線寫入程序特殊信息寄存器中,具體為:
[0042]所述的程序特殊信息的一個樣本數(shù)據(jù)的各組成部分以字節(jié)對齊的方式合并成位寬為32位的數(shù)據(jù)通過高級高性能總線寫入程序特殊信息寄存器中。
[0043]更佳地,所述的剛寫入的樣本數(shù)據(jù)所對應(yīng)的行地址和樣本序號通過數(shù)據(jù)總線寫入行和序號寄存器中,具體為:
[0044]剛寫入的樣本數(shù)據(jù)所對應(yīng)的行地址和樣本序號合并成位寬為32位的數(shù)據(jù)通過高級高性能總線寫入行和序號寄存器中。
[0045]較佳地,所述的狀態(tài)機主控制器獲取當前輸入的TS分組數(shù)據(jù)包中程序特殊信息的表頭數(shù)據(jù),包括以下步驟:
[0046](21)所述的狀態(tài)機主控制器由空閑狀態(tài)進入等待TS分組數(shù)據(jù)包狀態(tài);
[0047](22)所述的狀態(tài)機主控制器接收到TS分組數(shù)據(jù)包并檢測所述的TS分組數(shù)據(jù)包的端口 ID值和調(diào)整字段中的控制信息;
[0048](22)所述的狀態(tài)機主控制器忽略所述的調(diào)整字段數(shù)據(jù)和所述的TS分組數(shù)據(jù)包中程序特殊信息的非表頭數(shù)據(jù);
[0049](23)所述的狀態(tài)機主控制器讀取所述的TS分組數(shù)據(jù)包中程序特殊信息的表頭數(shù)據(jù)。
[0050]較佳地,所述的樣本數(shù)據(jù)包括對比數(shù)據(jù)、掩碼和選擇控制數(shù)據(jù),所述的比較邏輯處理器將程序特殊信息的樣本數(shù)據(jù)與所述的表頭數(shù)據(jù)進行比較并捕獲滿足要求的TS分組數(shù)據(jù)包,包括以下步驟:
[0051](31)所述的比較邏輯控制器根據(jù)所述的選擇控制數(shù)據(jù)判斷比較邏輯的類型,如果是匹配比較邏輯,則繼續(xù)步驟(32),如果是不匹配比較邏輯,則繼續(xù)步驟(33),如果是同時啟動匹配比較和不匹配比較邏輯,則繼續(xù)步驟(32);
[0052](32)所述的比較邏輯控制器判斷所述的程序特殊信息數(shù)據(jù)的表頭數(shù)據(jù)與所述的樣本數(shù)據(jù)中的對比數(shù)據(jù)是否匹配,如果是,則繼續(xù)步驟(34),如果否,則繼續(xù)步驟(35);
[0053](33)所述的比較邏輯控制器判斷所述的程序特殊信息數(shù)據(jù)的表頭數(shù)據(jù)與所述的樣本數(shù)據(jù)中的對比數(shù)據(jù)是否匹配,如果是,則繼續(xù)步驟(35),如果否,則繼續(xù)步驟(34);
[0054](34)所述的狀態(tài)機主控制器捕獲包含所述的程序特殊信息表頭數(shù)據(jù)的TS分組數(shù)據(jù)包,然后結(jié)束退出;
[0055](35)所述的狀態(tài)機主控制器丟棄包含所述的程序特殊信息表頭數(shù)據(jù)的TS分組數(shù)據(jù)包,然后結(jié)束退出。
[0056]采用了該發(fā)明中的機頂盒解復(fù)用系統(tǒng)中的PSI數(shù)據(jù)過濾器及過濾方法,具有如下有益效果:
[0057](I)利用本發(fā)明方法對程序特殊信息樣本數(shù)據(jù)進行特殊存儲,在讀取已配置好的程序特殊信息樣本數(shù)據(jù)時,以正常的行地址(Row)訪問數(shù)據(jù)的方式進行,就可以在每次讀取片內(nèi)存儲器一行數(shù)據(jù)時,同時得到已經(jīng)存入程序特殊信息樣本數(shù)據(jù)的所有樣本的某一字節(jié)數(shù)據(jù),每次就可以并行為上述比較過濾邏輯電路同時讀取相應(yīng)的多個程序特殊信息樣本數(shù)據(jù),則每次就可以并行為上述比較過濾邏輯電路同時讀取相應(yīng)的多個程序特殊信息樣本數(shù)據(jù),則相應(yīng)的比較過濾電路就可以并行運算,當讀完所有已經(jīng)存入程序特殊信息樣本數(shù)據(jù),就可以得到最終的比較結(jié)果。
[0058](2)同時,根據(jù)程序特殊信息數(shù)據(jù)過濾方法中的匹配比較和不匹配比較,8字節(jié)(byte)和16字節(jié)模式組合應(yīng)用,大大提高比較過濾處理的精確度,所以,當已經(jīng)存入程序特殊信息樣本數(shù)據(jù)的數(shù)量可變(在I個到N個之間),并行比較的計算時間不變,這樣非常有利于應(yīng)對TS分組碼流速率的大范圍變化,同時解決了需要處理大量程序特殊信息樣本數(shù)據(jù)時,硬件處理性能不夠的矛盾,這樣就可以大幅度提高數(shù)據(jù)讀取與計算的效率,精確地完成對程序特殊信息過濾處理,大幅度地減輕中央處理器的后續(xù)處理負擔。
【專利附圖】
【附圖說明】
[0059]圖I為本發(fā)明的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器的結(jié)構(gòu)示意圖。
[0060]圖2為本發(fā)明的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器的電路連接示意圖。
[0061]圖3為本發(fā)明的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器的狀態(tài)機主控制器的狀態(tài)轉(zhuǎn)換示意圖。
[0062]圖4為現(xiàn)有技術(shù)中的地址映射方法示意圖。
[0063]圖5為本發(fā)明的片內(nèi)存儲器的基本結(jié)構(gòu)示意圖。
[0064]圖6為本發(fā)明的程序特殊信息樣本數(shù)據(jù)到片內(nèi)存儲器的地址映射方法示意圖。
[0065]圖7為本發(fā)明的程序特殊信息數(shù)據(jù)過濾前程序特殊信息樣本數(shù)據(jù)地址映射過程示意圖。【具體實施方式】
[0066]為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例來進行進一步的描述。
[0067]本發(fā)明的程序特殊信息過濾器(PSI Data Filter),用從TS (Transport stream,傳輸流)分組碼流中過濾各類規(guī)格化數(shù)據(jù)和私用數(shù)據(jù)(其中主要包含:程序關(guān)聯(lián)表,程序映射表,網(wǎng)絡(luò)信息表和條件訪問表)。該硬件設(shè)計的結(jié)構(gòu)框架如圖I?2所示。其結(jié)構(gòu)主要有四個部分:狀態(tài)機主控制器,包含子模塊PSI_T0P_FSM,MEM_FSM, MEM_FIF0 ;TS碼流輸入緩存器,包括子模塊PSI_DATA_PATH,IN_FIF0 ;比較邏輯處理器,包含子模塊CMP_FIF0,PMS_TRANFER/FIFO, CMPARER_AND_FSM ;TS 碼流輸出緩存器,包括子模塊 0UT_FIF0,CAB_ST0RE。
[0068]本發(fā)明中的狀態(tài)機主控制器,用于控制整個程序特殊信息過濾器的工作,如何從上一級取得TS分組數(shù)據(jù)包,從TS分組數(shù)據(jù)包中的讀取程序特殊信息的控制信息,控制程序特殊信息表頭的識別與比較以及對比較結(jié)果的處理。
[0069]本發(fā)明中的TS碼流輸入緩存器,用于緩存當前輸入TS分組數(shù)據(jù)包的部分數(shù)據(jù),為主控制狀態(tài)機部分讀取程序特殊信息的控制信息提供緩沖時間。
[0070]本發(fā)明中的比較邏輯處理器,在主控制狀態(tài)機控制下對TS分組數(shù)據(jù)包內(nèi)的程序特殊信息數(shù)據(jù)進行比較過濾處理,并將處理結(jié)果反饋給主控制狀態(tài)機。
[0071]本發(fā)明中的TS碼流輸出緩存器,用于緩存當前輸出TS分組數(shù)據(jù)包,此數(shù)據(jù)包正處于程序特殊信息數(shù)據(jù)過濾處理過程當中,過濾處理完成后根據(jù)主控狀態(tài)機的控制命令決定是否輸出此TS分組數(shù)據(jù)包。
[0072]子模塊PSI_T0P_FSM頂層狀態(tài)機控制模塊:程序特殊信息過濾器的頂層控制狀態(tài)機;
[0073]子模塊MEM_FSM關(guān)鍵數(shù)據(jù)存儲控制模塊:在頂層控制狀態(tài)機PSI_T0P_FSM控制下,用于暫存程序特殊信息中關(guān)鍵數(shù)據(jù)的存儲器控制狀態(tài)機;
[0074]子模塊MEM_FIF0關(guān)鍵數(shù)據(jù)存儲模塊:用于暫存程序特殊信息中關(guān)鍵數(shù)據(jù)的先入先出隊列存儲器;
[0075]子模塊PSI_DATA_PATH路徑控制模塊:用于控制不同的程序特殊信息數(shù)據(jù)的處理流程路徑;
[0076]子模塊IN_FIF0輸入數(shù)據(jù)存儲模塊:輸入TS分組碼流的暫存先入先出隊列存儲器;
[0077]子模塊CMP_FIF0比較數(shù)據(jù)存儲模塊:輸入到比較邏輯部分的數(shù)據(jù)暫存先入先出隊列存儲器;
[0078]子模塊PMS_TRANFER/FIFO轉(zhuǎn)換邏輯存儲模塊:程序特殊信息樣本數(shù)據(jù)的轉(zhuǎn)換邏輯與先入先出隊列存儲器;
[0079]子模塊CMPARER_AND_FSM核心比較邏輯模塊:核心比較邏輯及其控制狀態(tài)機;
[0080]子模塊0UT_FIF0輸出數(shù)據(jù)存儲模塊:完成過濾后輸出的TS分組碼流的先入先出隊列存儲器;
[0081]子模塊CAB_ST0RE數(shù)據(jù)位寬轉(zhuǎn)換模塊:數(shù)據(jù)存儲位寬的轉(zhuǎn)換控制邏輯以及中間緩存,用于將已輸出的窄位寬程序特殊信息的TS分組碼流數(shù)據(jù)存儲于寬位寬的外部存儲器當中。
[0082]本發(fā)明的機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法中,首先需要程序特殊信息樣本數(shù)據(jù)的片內(nèi)存儲器的地址映射方法,用于將程序特殊信息樣本數(shù)據(jù)映射到片內(nèi)存儲器的相應(yīng)地址。根據(jù)程序特殊信息樣本數(shù)據(jù)的組成,分成:對比數(shù)據(jù)(Pattern),掩碼(Mask)和選擇控制(Select),所述片內(nèi)存儲器包括3個存儲陣列,同時依據(jù)程序特殊信息表的表頭數(shù)據(jù)最大字節(jié)數(shù)為16字節(jié),以及本發(fā)明應(yīng)用時,并行處理的程序特殊信息樣本數(shù)據(jù)的個數(shù)(N),則單個片內(nèi)存儲空間的大小為N x8bit xl6。
[0083]本發(fā)明的程序特殊信息數(shù)據(jù)過濾方法中,8字節(jié)和16字節(jié)模式,是根據(jù)程序特殊信息表的表頭數(shù)據(jù)長度分布范圍確定,當特殊信息表的表頭數(shù)據(jù)長度在I個到8個字節(jié)時,使用8字節(jié)模式;當特殊信息表的表頭數(shù)據(jù)長度在9個到16個字節(jié)時,使用16字節(jié)模式。這樣就可以達到優(yōu)化樣本數(shù)據(jù)的存儲和比較過濾處理的時間目的,并提高處理效率。
[0084]在本發(fā)明的實施例中,程序特殊信息的表頭數(shù)據(jù)長度分屬兩個不同的長度范圍:8字節(jié)(byte)和16字節(jié)(byte)。為了適應(yīng)多個程序特殊信息樣本數(shù)據(jù)應(yīng)用的需求,在存儲設(shè)計上,取表頭最大長度16字節(jié)(byte),程序特殊信息樣本數(shù)據(jù)的數(shù)量為32,根據(jù)程序特殊信息樣本數(shù)據(jù)由:對比數(shù)據(jù)(Pattern),掩碼(Mask)和選擇控制(Select)三部分組成,因此,把片內(nèi)儲存器設(shè)計成3x256比特(bit)xl6。如圖4所示,解復(fù)用器片內(nèi)存儲器的地址總線AO到A3,為4位,3塊存儲器分別對應(yīng)存儲程序特殊信息樣本數(shù)據(jù)的對比數(shù)據(jù)(Pattern),掩碼(Mask)和選擇控制(Select)數(shù)據(jù),其數(shù)據(jù)總線分別是PatternO到Pattern255,為 256 位,MaskO 到 Mask255,為 256 位,SelectO 到 Select255,為 256 位;PSI0到PSI23,為24位,Row_N0到Row_N8,為9位,是寄存器PSI和Row_N轉(zhuǎn)存數(shù)據(jù)總線。
[0085]片內(nèi)存儲器的一行(Row)有256比特(bit)存儲空間,從邏輯上劃分為I字節(jié)(byte) x32 (N),總共有 16 行(Row)組成。
[0086]程序特殊信息樣本數(shù)據(jù)的三部分中某一部分(其余部分與此部分一致)不是以一個完整的數(shù)據(jù)形式存儲在一個行地`址(Row)片內(nèi)存儲空間當中,而是將此數(shù)據(jù)以字節(jié)為單元,從高比特位到低比特位的構(gòu)成字節(jié)串,以行地址(Row)順序增加的方式存儲在與程序特殊信息樣本數(shù)據(jù)的樣本序號(N)對齊的行字節(jié)單元存儲空間中。這種存儲空間的配置方式的好處在于,程序特殊信息表頭字節(jié)數(shù)不增加的前提下,而需要增加程序特殊信息樣本數(shù)據(jù)的個數(shù),就不影響程序特殊信息表頭比較計算所耗費的時間(比較計算耗費的時間是由程序特殊信息表頭的字節(jié)數(shù)決定),只需要增加計算邏輯電路從而提高計算效率。
[0087]在啟動程序特殊信息數(shù)據(jù)的過濾處理之前,需要先行配置一個或者多個程序特殊信息樣本數(shù)據(jù)。配置過程如下:
[0088](11)先配置程序特殊信息樣本數(shù)據(jù)。CPU將程序特殊信息樣本數(shù)據(jù)的三個部分:對比數(shù)據(jù)(Pattern),掩碼(Mask)和選擇控制(Select),以字節(jié)對齊方式合并成一個32 比特總線數(shù)據(jù){8’hO, select_byte, mask_byte, pattern_byte},如圖 4 所不,通過 AHB(Advanced High-performance Bus,高級高性能)總線或者其他類似片內(nèi)數(shù)據(jù)總線配置于片內(nèi)寄存器中。
[0089](12)再配置與上述程序特殊信息樣本數(shù)據(jù)相對應(yīng)的行地址(Row)和樣本序號(N),CPU將行地址(Row)和樣本序號(N)數(shù)據(jù)同樣構(gòu)成一個32比特總線數(shù)據(jù)32’ h80000000+ (Row?n) +N,通過AHB總線或者其他類似片內(nèi)數(shù)據(jù)總線配置于片內(nèi)寄存器中。
[0090] (13)如圖6~7所示,通過片內(nèi)存儲器寫入控制邏輯將程序特殊信息樣本數(shù)據(jù)寫入片內(nèi)存儲器中,在本實施例中,片內(nèi)存儲器寫入控制邏輯根據(jù)行地址(Row)和樣本序號(N),將 select_byte, mask_byte, pattern_byte 分別寫入片內(nèi)存儲器 SRAM_select, SRAM_mask, SRAM_pattern的行地址(Row)和樣本序號(N)行列交叉的字節(jié)存儲單元中。
[0091 ] (14)循環(huán)步驟(11)到(13 )直到全部數(shù)據(jù)配置完成,在本實施例中,上述三步重復(fù)15次即可以把一個完整的程序特殊信息樣品數(shù)據(jù)配置完成。
[0092](15)如果配置多個程序特殊信息樣本數(shù)據(jù),就將上述四步反復(fù)多次即可(本設(shè)計案例最多有32個樣本)。
[0093]根據(jù)本發(fā)明的方法,其中,所述步驟(11)中,程序特殊信息樣本數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)分成為,對比數(shù)據(jù)(Pattern),掩碼(Mask)和選擇控制(Select),并且三者數(shù)據(jù)長度一致,每次通過總線配置時,數(shù)據(jù)的組織方式(以32比特(bit)位寬總線為例),以字節(jié)對齊合并成一個 32 比特總線數(shù)據(jù){8,h0, select_byte, mask_byte, pattern_byte}。
[0094]根據(jù)本發(fā)明的地址映射方法,其中,所述步驟(12)中,行地址(Row)和樣本序號(N),行地址(Row)取值的最大就是程序特殊信息中的表的表頭數(shù)據(jù)最大字節(jié)數(shù),16字節(jié)(byte)即16行,則行地址(Row)的數(shù)據(jù)位寬為4 ;樣本序號(N),則樣本序號(N)的數(shù)據(jù)位寬n,滿足公式2n-l〈=N〈=2n。數(shù)據(jù)的組織方式(以32比特(bit)位寬總線為例),32’ h80000000+(Row?n) +N,第 32bit 是地址使能信號。
[0095]經(jīng)過上述過程就可以完整地配置好所需要的程序特殊信息樣本數(shù)據(jù),等待啟動比較過濾的處理過程。
[0096]當一段包含程序特殊信息的TS分組碼流進入如圖I~2所示,程序特殊信息數(shù)據(jù)的過濾處理的硬件設(shè)計模塊時,啟動主控制狀態(tài)機(PSI_T0P_FSM),如圖3所示,主控狀態(tài)機的主要狀態(tài)轉(zhuǎn)換由藍色線條指示。主控制狀態(tài)機(PSI_T0P_FSM)狀態(tài)說明:
[0097]IDLE :狀態(tài)機處于空閑;
[0098]SYNC :狀態(tài)機等待TS分組數(shù)據(jù)包;
[0099]SEC_PAUSE :狀態(tài)機處于暫停模式;
[0100]SEC_BYPASS :狀態(tài)機處于旁路模式;
[0101]DISCARD_TSP :狀態(tài)機處于停止輸出(丟棄數(shù)據(jù))模式;
[0102]PID :狀態(tài)機處于檢測TS分組數(shù)據(jù)包的PID值;
[0103]AF_CTRL :狀態(tài)機處于檢測TS分組數(shù)據(jù)包的adaptation field的控制信息;
[0104]PASS_AF :狀態(tài)機處于旁路(忽略)adaptation field字段數(shù)據(jù);
[0105]LD_INF0 :新的表頭比較前,狀態(tài)機載入已記錄的之前TS分組數(shù)據(jù)包中的最后一個未完全輸出表的TS分組數(shù)據(jù)包的PID值、continue_counter值用于和當前TS分組數(shù)據(jù)包的PID值、continue_counter值比較,確定新的TS分組數(shù)據(jù)包中的表是否是其的延續(xù);
[0106]PF_BYTE :狀態(tài)機讀取 pointer_field 值;
[0107]PASS_DATA :狀態(tài)機忽略程序特殊信息表的非表頭數(shù)據(jù);
[0108]PASS_SEC_HD :狀態(tài)機讀取程序特殊信息表頭數(shù)據(jù);
[0109]SH0RT_SEC :狀態(tài)機讀取程序特殊信息短表頭數(shù)據(jù);
[0110]WAIT_CMP_D0NE :狀態(tài)機等待程序特殊信息表的表頭比較完成;[0111]TS_END_UPDATE :TS分組數(shù)據(jù)包結(jié)束,狀態(tài)機暫存表頭信息;
[0112]本實施例中不考慮狀態(tài)機處于暫停模式、旁路模式、停止輸出(丟棄數(shù)據(jù))模式等非一般模式情況,狀態(tài)機的狀態(tài)將會沿著圖3所示所示加粗線表示的主路徑轉(zhuǎn)換,由此,狀態(tài)機發(fā)出各種控制信號控制本發(fā)明的各個部分協(xié)調(diào)工作。
[0113]即所述的狀態(tài)機主控制器獲取所述的程序特殊信息數(shù)據(jù)的表頭信息,包括以下步驟:
[0114](21)所述的狀態(tài)機主控制器由空閑狀態(tài)進入等待TS分組數(shù)據(jù)包狀態(tài);
[0115](22)所述的狀態(tài)機主控制器接收到TS分組數(shù)據(jù)包并檢測所述的TS分組數(shù)據(jù)包的端口 ID值和調(diào)整字段中的控制信息;
[0116](22)所述的狀態(tài)機主控制器忽略所述的調(diào)整字段數(shù)據(jù)和非表頭數(shù)據(jù);
[0117](23)所述的狀態(tài)機主控制器讀取所述的程序特殊信息的表頭數(shù)據(jù)。
[0118]本發(fā)明所提供的PSI數(shù)據(jù)過濾方法主要分成兩大類,程序特殊信息表的表頭匹配比較和不匹配比較。根據(jù)程序特殊信息表的表頭的數(shù)據(jù)長度又分成8字節(jié)(byte)和16字節(jié)(byte)模式。
[0119]本發(fā)明提供的程序特殊信息數(shù)據(jù)過濾方法分成兩類,程序特殊信息表的表頭匹配比較過濾和不匹配比較過濾:
[0120](I)當啟動匹配比較過濾時,程序特殊信息表的表頭和樣本完全匹配,捕獲包含此程序特殊信息表的TS分組數(shù)據(jù)包,否則丟棄此TS分組數(shù)據(jù)包。
[0121](2)當啟動不匹配比較過濾時,程序特殊信息表的表頭和樣本不匹配,捕獲包含此程序特殊信息表的TS分組數(shù)據(jù)包,否則丟棄此TS分組數(shù)據(jù)包。
[0122](3)當同時啟動匹配比較過濾和不匹配比較過濾時,匹配比較結(jié)果的優(yōu)先級高于不匹配比較結(jié)果的優(yōu)先級,則優(yōu)先根據(jù)上述匹配比較原則處理TS分組數(shù)據(jù)包。即使,此TS分組數(shù)據(jù)包中含有根據(jù)上述不匹配比較原則認為需要丟棄的程序特殊信息表,也可以由軟件程序二次丟棄。
[0123]程序特殊信息樣本數(shù)據(jù)的三個組成部分的具體含義如下:
[0124]Pattern :對比數(shù)據(jù),用于與程序特殊信息表的表頭比較;
[0125]Mask :控制比較的開關(guān)信號,I :開啟比較過濾邏輯,O :關(guān)閉比較過濾邏輯;
[0126]Select :比較方式的選擇信號,I :對應(yīng)選擇不匹配比較邏輯,O :對應(yīng)選擇匹配比較邏輯;
[0127]以上三部分都對應(yīng)到表頭的每一個比特數(shù)據(jù)的比較,比較的邏輯關(guān)系如表I所示。表中參數(shù)說明如下:
[0128]bit_match, I :代表匹配,0 :代表不匹配;
[0129]bit_no-match, I :代表不匹配,O :代表匹配;
[0130]filter_bit_match,0 :代表匹配過濾器工作,I :代表匹配過濾器不工作;(D,代表表頭的I比特(bit)數(shù)據(jù))
[0131]filter_bit_no-match, I :代表不匹配過濾器工作,O :代表不匹配過濾器不工作;(D,代表表頭的I比特(bit)數(shù)據(jù))
[0132]表I比較邏輯真值表
[0133]
【權(quán)利要求】
1.一種機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器,其特征在于,所述的過濾器包括: 狀態(tài)機主控制器,用以控制所述的程序特殊信息數(shù)據(jù)過濾器的工作狀態(tài)機的轉(zhuǎn)換; TS碼流輸入緩存器,用以緩存當前輸入TS分組數(shù)據(jù)包的部分數(shù)據(jù)來為所述的狀態(tài)機主控制器讀取程序特殊信息數(shù)據(jù)的控制信息提供緩沖時間; 比較邏輯處理器,用以對TS分組數(shù)據(jù)包內(nèi)的程序特殊信息數(shù)據(jù)進行比較過濾處理并將處理結(jié)果反饋給所述的狀態(tài)機主控制器; TS碼流輸出緩存器,用以緩存當前輸出TS分組數(shù)據(jù)包并根據(jù)所述的狀態(tài)機主控制器的控制命令輸出相應(yīng)的TS分組數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器,其特征在于,所述的狀態(tài)機主控制器包括: 頂層狀態(tài)機控制模塊,用以控制所述的程序特殊信息數(shù)據(jù)過濾器的工作狀態(tài)機的轉(zhuǎn)換; 關(guān)鍵數(shù)據(jù)存儲模塊,用以暫存所述的程序特殊信息中的關(guān)鍵數(shù)據(jù)的先入先出隊列; 關(guān)鍵數(shù)據(jù)存儲控制模塊,用以控制所述的程序特殊信息中的關(guān)鍵數(shù)據(jù)的存儲。
3.根據(jù)權(quán)利要求1所述的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器,其特征在于,所述的TS碼流輸入緩存器包括: 路徑控制模塊,用以控制不同的程序特殊信息數(shù)據(jù)的處理流程路徑; 輸入數(shù)據(jù)存儲模塊,用以暫存輸入TS分組碼流的先入先出隊列。
4.根據(jù)權(quán)利要求1所述的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器,其特征在于,所述的比較邏輯處理器包括: 比較數(shù)據(jù)存儲模塊,用以暫存輸入到所述的比較邏輯處理器的數(shù)據(jù)的先入先出隊列; 轉(zhuǎn)換邏輯存儲模塊,用以對所述的程序特殊信息的樣本數(shù)據(jù)進行邏輯轉(zhuǎn)換; 核心比較邏輯模塊,用以將所述的TS分組碼流中的程序特殊信息數(shù)據(jù)和樣本數(shù)據(jù)進行比較。
5.根據(jù)權(quán)利要求1所述的機頂盒解復(fù)用系統(tǒng)中的程序特殊信息數(shù)據(jù)過濾器,其特征在于,所述的TS碼流輸出緩存器包括: 輸出數(shù)據(jù)存儲模塊,用以暫存完成過濾后輸出的TS分組碼流的先入先出隊列; 數(shù)據(jù)位寬轉(zhuǎn)換模塊,用以將已輸出的窄位寬程序特殊信息的TS分組碼流數(shù)據(jù)存儲于寬位寬的外部存儲器中。
6.一種基于權(quán)利要求1所述的過濾器在機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法,其特征在于,所述的方法包括以下步驟: (1)所述的解復(fù)用系統(tǒng)將所述的程序特殊信息的樣本數(shù)據(jù)配置到所述的解復(fù)用系統(tǒng)的片內(nèi)存儲器中; (2)所述的狀態(tài)機主控制器獲取當前輸入的TS分組數(shù)據(jù)包中程序特殊信息的表頭數(shù)據(jù); (3)所述的比較邏輯處理器將程序特殊信息的樣本數(shù)據(jù)與所述的表頭數(shù)據(jù)進行比較并捕獲滿足要求的TS分組數(shù)據(jù)包。
7.根據(jù)權(quán)利要求6所述的機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法,其特征在于,所述的解復(fù)用系統(tǒng)將所述的程序特殊信息的樣本數(shù)據(jù)配置到所述的解復(fù)用系統(tǒng)的片內(nèi)存儲器中,包括以下步驟: (11)所述的程序特殊信息的一個樣本數(shù)據(jù)通過數(shù)據(jù)總線寫入程序特殊信息寄存器中; (12)剛寫入的樣本數(shù)據(jù)所對應(yīng)的行地址和樣本序號通過數(shù)據(jù)總線寫入行和序號寄存器中; (13)所述的片內(nèi)控制器的寫入邏輯控制器根據(jù)所述的行地址和樣本序號,將所述的樣本數(shù)據(jù)寫入所述的片內(nèi)存儲器相應(yīng)的存儲單元中;(14)所述的解復(fù)用系統(tǒng)判斷所述的樣本數(shù)據(jù)是否全部配置完成,如果是,則繼續(xù)步驟(2),如果否,則繼續(xù)步驟(11)。
8.根據(jù)權(quán)利要求7所述的機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法,其特征在于,所述的樣本數(shù)據(jù)包括位寬均為8位的對比數(shù)據(jù)、掩碼和選擇控制數(shù)據(jù),所述的程序特殊信息的一個樣本數(shù)據(jù)通過數(shù)據(jù)總線寫入程序特殊信息寄存器中,具體為: 所述的程序特殊信息的一個樣本數(shù)據(jù)的各組成部分以字節(jié)對齊的方式合并成位寬為32位的數(shù)據(jù)通過高級高性能總線寫入程序特殊信息寄存器中。
9.根據(jù)權(quán)利要求7所述的機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法,其特征在于,所述的剛寫入的樣本數(shù)據(jù)所對應(yīng)的行地址和樣本序號通過數(shù)據(jù)總線寫入行和序號寄存器中,具體為: 剛寫入的樣本數(shù)據(jù)所對應(yīng)的行地址和樣本序號合并成位寬為32位的數(shù)據(jù)通過高級高性能總線寫入行和序號寄存器中。
10.根據(jù)權(quán)利要求6所述的機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法,其特征在于,所述的狀態(tài)機主控制器獲取當前輸入的TS分組數(shù)據(jù)包中程序特殊信息的表頭數(shù)據(jù),包括以下步驟: (21)所述的狀態(tài)機主控制器由空閑狀態(tài)進入等待TS分組數(shù)據(jù)包狀態(tài); (22)所述的狀態(tài)機主控制器接收到TS分組數(shù)據(jù)包并檢測所述的TS分組數(shù)據(jù)包的端口ID值和調(diào)整字段中的控制信息; (22)所述的狀態(tài)機主控制器忽略所述的調(diào)整字段數(shù)據(jù)和所述的TS分組數(shù)據(jù)包中程序特殊信息的非表頭數(shù)據(jù); (23)所述的狀態(tài)機主控制器讀取所述的TS分組數(shù)據(jù)包中程序特殊信息的表頭數(shù)據(jù)。
11.根據(jù)權(quán)利要求6所述的機頂盒解復(fù)用系統(tǒng)中實現(xiàn)程序特殊信息數(shù)據(jù)過濾的方法,其特征在于,所述的樣本數(shù)據(jù)包括對比數(shù)據(jù)、掩碼和選擇控制數(shù)據(jù),所述的比較邏輯處理器將程序特殊信息的樣本數(shù)據(jù)與所述的表頭數(shù)據(jù)進行比較并捕獲滿足要求的TS分組數(shù)據(jù)包,包括以下步驟: (31)所述的比較邏輯控制器根據(jù)所述的選擇控制數(shù)據(jù)判斷比較邏輯的類型,如果是匹配比較邏輯,則繼續(xù)步驟(32),如果是不匹配比較邏輯,則繼續(xù)步驟(33),如果是同時啟動匹配比較和不匹配比較邏輯,則繼續(xù)步驟(32); (32)所述的比較邏輯控制器判斷所述的程序特殊信息數(shù)據(jù)的表頭數(shù)據(jù)與所述的樣本數(shù)據(jù)中的對比數(shù)據(jù)是否匹配,如果是,則繼續(xù)步驟(34),如果否,則繼續(xù)步驟(35); (33)所述的比較邏輯控制器判斷所述的程序特殊信息數(shù)據(jù)的表頭數(shù)據(jù)與所述的樣本數(shù)據(jù)中的對比數(shù)據(jù)是否匹配,如果是,則繼續(xù)步驟(35),如果否,則繼續(xù)步驟(34); (34)所述的狀態(tài)機主控制器捕獲包含所述的程序特殊信息表頭數(shù)據(jù)的TS分組數(shù)據(jù)包,然后結(jié)束退出; (35)所述的狀態(tài)機主控制器丟棄包含所述的程序特殊信息表頭數(shù)據(jù)的TS分組數(shù)據(jù)包,然后結(jié)束退出。`
【文檔編號】H04N21/435GK103491417SQ201310487597
【公開日】2014年1月1日 申請日期:2013年10月17日 優(yōu)先權(quán)日:2013年10月17日
【發(fā)明者】羅佳明 申請人:上海龍晶科技有限公司