PID等數(shù)據(jù)信息。依次類推,通過CPU和GDMA的配合,從第一 TS流中提取出所有正確的PMTl表項和相關的ESl的PID。
[0076]此外,當CRC校驗器判定PMTl表項傳送包中的每一 PMTl分段數(shù)據(jù)的預設校驗碼與其計算所得校驗碼一致時,CPU還從該PMTl表項傳送中讀取正確的全部PMTl分段數(shù)據(jù)的多種參數(shù),并根據(jù)該多種參數(shù)中的索引參數(shù)設置提取正確的PMTl分段數(shù)據(jù)的指令,以建立PMTl表項提取指令列表,將該列表和其中指令存儲在指令存儲緩存區(qū)中。GDMA依次根據(jù)PMTl表項提取指令列表中的全部指令,從第一緩存區(qū)的PMTl表項傳送包中提取與指令對應的PMTl分段數(shù)據(jù),并存儲在表項緩存區(qū)中。由此,GDMA根據(jù)CPU指令,將TS包緩存區(qū)中離散的正確的PMTl分段數(shù)據(jù)搬移至連續(xù)的表項緩存區(qū)中,以供上層應用。
[0077]已知CPU獲取的第一 TS流的ESl的PID,則CPU將獲取的ESl的PID設置為PID過濾器當前所需特定標識,那么將第一 TSI接收的經(jīng)過標準化處理后的統(tǒng)一形式的傳送流傳輸至相應的TS流包頭解析器進行解析,PID過濾器從所有解析出的TS包中獲取包含ESl的至少一個特定傳送包,解密器對獲取的ESl的TS包進行解密或放行。第一 TS流包頭解析器再將解密器處理之后的包含ESl的傳送包提取出來送入相應的DMA中,通過DMA將傳送包存儲在TS包緩存區(qū)的第一緩存區(qū)中,則設置第一緩存區(qū)中包含ESl的特定傳送包為第一 ESl傳送包,設置第一 ESl傳送包中包含的ESl為第一 ESI。
[0078]CPU對第一緩存區(qū)的第一 ESl傳送包進行解析,并從中讀取第一 ESl分組數(shù)據(jù)的多種參數(shù),該多種參數(shù)中至少包括第一 ESl分組數(shù)據(jù)的索引參數(shù),根據(jù)該索引參數(shù),CPU依次設置提取第一 ESl傳送包中第一 ESl各分組數(shù)據(jù)的指令,CPU將全部指令依次建立為第一ESl提取指令列表,以存儲在指令存儲緩存區(qū)中。
[0079]當前指令為存儲指令時,GDMA依次根據(jù)第一ESl提取指令列表中的指令,從第一緩存區(qū)的第一 ESl傳送包中提取出所有與指令對應的第一 ESl的分組數(shù)據(jù),并將該ESl分組數(shù)據(jù)存儲在基本碼流緩存區(qū)中,由此,GDMA將第一緩存區(qū)中的第一 TS流離散的ESl分組數(shù)據(jù)轉(zhuǎn)換為基本碼流緩存區(qū)的第一 TS流連續(xù)的ESI。
[0080]已知該裝置的兩個TSI分別獲取兩路TS流,提取第二 TS流的連續(xù)基本碼流(ES2)的過程與提取第一 TS流的連續(xù)ESl的過程類似,在此不做贅述。
[0081]對于第二傳送流解復用裝置接收的至少兩路TS流,其中一路TS流中包含了當前需要播放的碼流,另一路TS流中包含了當前碼流,通俗理解為兩路TS流中包含了同一時段不同節(jié)目的基本碼流,為了實現(xiàn)實時錄制、點播回放,可將當前的至少一路TS流存儲在外部存儲器中。第一 TS流和第二 TS流的外部存儲過程類似,在此,以第一 TS流的外部存儲為例描述。
[0082]具體地,第一 ESl傳送包存儲在第一緩存區(qū),第一 ESl傳送包為未加密的TS包,為了防止外部存儲器被非法用戶盜用或攻擊,因此需要將第一緩存區(qū)中的第一 ESl傳送包進行加密。在此CPU讀取第一 ESl分組數(shù)據(jù)所在的第一 ESl分組數(shù)據(jù)傳送包的地址參數(shù),根據(jù)該地址參數(shù)CPU設置提取并加密該第一 ESl分組數(shù)據(jù)所在傳送包的指令,并建立第一ESl提取指令列表,該提取指令列表中的指令為提取傳送包并加密的指令,因此該第一 ESl提取指令列表也稱為第一 ESl提取加密指令列表,存儲在指令存儲緩存區(qū)中。
[0083]當前指令為加密指令時,GDMA根據(jù)第一 ESl提取加密指令列表中的指令,依次從第一緩存區(qū)中提取出與指令對應的第一 ESl分組數(shù)據(jù)的第一 ESl傳送包。三重數(shù)據(jù)加密算法(TDES,Triple Data Encrypt1n Standard)加解密器對該包含第一 ESl分組數(shù)據(jù)的第一 ESl傳送包進行TDES加密,GDMA將加密之后的第一 ESl傳送包存儲在外部存儲器中。依次類推,GDMA根據(jù)CPU設置的加密指令,通過TDES加解密器對第一 ESl傳送包進行TDES加密后,存儲在外部存儲器中。
[0084]當用戶需要點播外部存儲器中的基本碼流時,CPU讀取外部存儲器中的加密傳送包的地址參數(shù),CPU根據(jù)該地址參數(shù)設置提取外部存儲器中加密傳送包的指令并建立加密傳送包指令列表,以存儲在指令存儲緩存區(qū)中。
[0085]GDMA根據(jù)加密傳送包指令列表中的指令,從外部存儲器中查找并提取出與指令對應的加密傳送包,并通過TDES加解密器對該提取出的加密傳送包進行解密操作,以達到對外部存儲器中的TS包解密的目的。GDMA還將解密之后的解密傳送包存儲在解密TS包緩存區(qū)中,在此,已知解密傳送包中包含的是第一 TS流的基本碼流,因此設置存儲在解密傳送包緩存區(qū)的解密傳送包中的基本碼流為第二 ESI。
[0086]CPU對解密TS包緩存區(qū)中的解密TS包進行解析,經(jīng)過對解密TS包中的PAT、PMT的解析過程之后,CPU從中讀取解密TS包中所需的第二 ES I的參數(shù),其中,該參數(shù)中至少包括第二 ESl的索引參數(shù),根據(jù)解密傳送包中所需的第二 ESl的索引參數(shù),CPU依次設置提取解密TS包中第二 ESl分組數(shù)據(jù)的指令,并建立第二 ESl提取指令列表,存儲在指令存儲緩存區(qū)中。
[0087]GDMA依次根據(jù)CPU設置的第二 ESl提取指令列表中的指令,從解密TS包緩存區(qū)的解密TS包中依次提取所有與指令對應的第二 ESl分組數(shù)據(jù),并將依次提取的第二 ESl分組數(shù)據(jù)存儲在連續(xù)空間基本碼流緩存區(qū)中,以實現(xiàn)對外部存儲器中的加密傳送包中的信息進行點播回放。
[0088]在此,設置第二 TS流中的基本碼流數(shù)據(jù)為ES2,則將第二緩存區(qū)中的ES2傳送包存儲在外部存儲器,并從外部存儲器中點播、回放該傳送包的過程與第一緩存區(qū)的第一 ESl傳送包的加解密、存儲、提取過程類似,在此不做贅述。
[0089]本發(fā)明實施例二提供的一種傳送流解復用的方法,通過至少兩個硬件TSI同時接收至少兩路TS流,對于任意一路TS流,經(jīng)過相應的硬件TS流包頭解析器、解密器、PID過濾器,CPU解析特定標識的TS包時,CPU設置提取數(shù)據(jù)信息的指令,以GDMA為基礎的加速器平臺做輔助,完成對表項或基本碼流的解析、校驗、提取等處理,并將離散的表項分段數(shù)據(jù)、基本碼流分組數(shù)據(jù)存儲在連續(xù)的緩存區(qū)中,此外外部存儲器實現(xiàn)對包含碼流的TS包的外部存儲,TDES加解密器實現(xiàn)對外部存儲器中TS包的加解密。本發(fā)明以GDMA為基礎,多種功能集于一身,構建了加速器平臺,既協(xié)助CPU解決CRC校驗問題,還協(xié)助CPU完成音視頻的TDES加解密、外部存儲工作,減輕了 CPU工作量,提高裝置效率和可靠性。
[0090]實施例三
[0091]本發(fā)明的技術方案適用于處理回放存儲碼流的解析流程的情況。該傳送流解復用方法可以由第三傳送流解復用裝置來執(zhí)行,該裝置可以采用軟件和硬件協(xié)同工作的方式實現(xiàn),配置在機頂盒中執(zhí)行。如圖5所示,為本發(fā)明實施例三中提供的第三傳送流解復用裝置的示意圖。
[0092]本發(fā)明提供的一種傳送流解復用的方法,具體包括以下步驟:
[0093]步驟310、將標準化處理后的統(tǒng)一形式的傳送流進行解析以獲得所有傳送包,從所有傳送包中獲取包含所需數(shù)據(jù)信息的至少一個特定傳送包,并存儲在傳送包緩存區(qū)中;
[0094]步驟320、解析該傳送包緩存區(qū)中的特定傳送包,從該特定傳送包中讀取數(shù)據(jù)信息的參數(shù),其中,該參數(shù)中至少包含數(shù)據(jù)信息的索引參數(shù),根據(jù)該索引參數(shù)設置處理特定傳送包的指令;
[0095]步驟330、根據(jù)指令,對特定傳送包進行指令所需的處理。
[0096]在本實施例中,第三傳輸解復用裝置包括至少兩個TSI,TSI接收TS流,并發(fā)送至TS流路由器,CPU從TS包緩存區(qū)中獲取包含所需數(shù)據(jù)信息的TS包的過程與實施例二類似,在此不做贅述。此外,CPU對TSI接收的任意一路TS流的PAT、PMT、ES等表項或基本碼流的解析過程也與實施例二類似,在此不做贅述。
[0097]實施例三的第三傳送流解復用方法和裝置,與實施例二所述的第二傳送流解復用方法和裝置的區(qū)別僅在于,對解密TS包緩存區(qū)中存儲的解密TS包的解復用過程不同,在此,以對解密TS包緩存區(qū)中存儲的第一 TS流中的第二 ESl傳送包的解析過程為例描述。
[0098]在第三傳送流解復用裝置中增加了 TS流發(fā)生器,該TS流發(fā)生器的輸入端通過GDMA連接在系統(tǒng)總線上,可以讀取DRAM的空間,該TS流發(fā)生器的輸出端連接在標準化處理模塊的一端。
[0099]CPU讀取解密傳送包緩存區(qū)中第二 ESl傳送包的地址參數(shù),根據(jù)第二 ESl分組數(shù)據(jù)傳送包的地址參數(shù),設置提取解密傳送包緩存區(qū)中的第二 ESl分組數(shù)據(jù)傳送包的指令,并建立第二 ESl分組數(shù)據(jù)傳送包提取指令列表,將該指令列表和指令均存儲在指令存儲緩存區(qū)中。
[0100]GDMA依次根據(jù)CPU建立的第二 ESl分組數(shù)據(jù)傳送包提取指令列表中的指令,從解密TS包緩存區(qū)中提取出所有與指令對應的第二 ESl分組數(shù)據(jù)傳送包,TS流發(fā)生器將提取出的所有第二 ESl分組數(shù)據(jù)傳送包還原成MPEG2傳送流信號,并傳送至標準化模塊,以對該還原傳送流進行標準化處理,由此形成了一個TS流重構回路。
[0101]由此,TS流發(fā)生器將全部的第二 ESl分組數(shù)據(jù)傳送包還原成傳送流,并對該傳送流進行標準化處理,形成統(tǒng)一形式的傳送流進行解析處理,并依據(jù)對第一碼流的傳送流的解析方式,處理第二碼流還原成的傳送流。TS流路由器會接收至少二路TS流和TS流發(fā)生器形成的一路TS流,相應的,第三傳送流解復用裝置具有兩個獨立的解密器分別對兩個TSI接收的TS流進行解密,以及三個相應的TS流包頭解析器分別對三路TS流進行包頭解析,從三路TS流分別提取出特定標識TS包之后,通過相應的DMA將三路特定標識TS包分別存儲在TS包緩存區(qū)中,分別為第一緩存區(qū)、第二緩存區(qū)、第三緩存區(qū)。CPU和GDMA對TS包緩存區(qū)中的TS包的表項、基本碼流的解析過程與實施例二類似,在此不做贅述。CPU和GDMA對TS包的解析過