摘 要: 研究了基于PSI分析的衛(wèi)星DVB數(shù)據(jù)分類方法中存在的問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)了一種基于ARM和FPGA的DVB-S2數(shù)據(jù)分類系統(tǒng),解決了對(duì)接收到的DVB-S2承載的數(shù)據(jù)進(jìn)行自動(dòng)識(shí)別分類的問(wèn)題。
關(guān)鍵詞: DVB-S2;數(shù)據(jù)分類;PSI分析;ARM;FPGA
廣播電視數(shù)字化帶來(lái)了節(jié)目與數(shù)據(jù)業(yè)務(wù)在傳輸流程上的統(tǒng)一,新的數(shù)字衛(wèi)星廣播標(biāo)準(zhǔn)不再局限于廣播電視領(lǐng)域,而是面向更廣闊的業(yè)務(wù)領(lǐng)域。準(zhǔn)確地說(shuō),DVB-S2是服務(wù)于寬帶衛(wèi)星應(yīng)用的新一代DVB系統(tǒng),服務(wù)范圍包括廣播業(yè)務(wù)(BS)、數(shù)字新聞采集(DSNG)、數(shù)據(jù)分配/中繼以及Internet接入等交互式業(yè)務(wù)[1]。盡管目前市場(chǎng)上已有部分DVB-S2信號(hào)接收設(shè)備投入使用,但針對(duì)DVB-S2承載的各種數(shù)據(jù)進(jìn)行識(shí)別分類的相關(guān)技術(shù)的研究還處于初級(jí)階段。本文研究了使用基于節(jié)目專用信息(PSI)分析法進(jìn)行數(shù)據(jù)分類時(shí)出現(xiàn)的一些問(wèn)題,并提出了改進(jìn)措施;在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了一種基于ARM和FPGA的DVB-S2數(shù)據(jù)分類系統(tǒng),解決了對(duì)接收到的DVB-S2承載的各種數(shù)據(jù)自動(dòng)識(shí)別分類的問(wèn)題,為后續(xù)數(shù)據(jù)的進(jìn)一步處理打下基礎(chǔ)。
1 DVB-S2傳輸系統(tǒng)復(fù)用概述
研究DVB-S2傳輸系統(tǒng)復(fù)用方式及技術(shù)特點(diǎn),有助于對(duì)接收到的各種數(shù)據(jù)進(jìn)行識(shí)別、分類,為后續(xù)的相應(yīng)數(shù)據(jù)處理工作奠定基礎(chǔ)。
通過(guò)傳輸流包多路復(fù)用,DVB-S2可以兼容采用MPEG-2和MPEG-4編碼業(yè)務(wù)。由于大量的DVB-S收發(fā)設(shè)備尚在使用中,在很長(zhǎng)一段時(shí)期內(nèi)需要采用后向兼容模式[2],新的DVB-S2接收機(jī)需要兼容接收DVB-S和DVB-S2兩種信號(hào)。考慮到設(shè)備更新?lián)Q代的成本和復(fù)雜性,DVB-S2傳輸系統(tǒng)采用在MPEG-2傳輸流中攜帶MPEG-2 碼流或MPEG-4碼流的方式來(lái)傳輸數(shù)據(jù),在傳統(tǒng)的接收設(shè)備中,解復(fù)用器將丟棄這些數(shù)據(jù),這使得攜帶MPEG-4數(shù)據(jù)的比特流向后完全兼容。在接收機(jī)中,從解復(fù)用器輸出的MPEG-2或MPEG-4碼流分別送到相應(yīng)的解碼器中,按MPEG-2/ MPEG-4語(yǔ)法恢復(fù)出視頻和音頻信息[3]。可見(jiàn),DVB-S2傳輸系統(tǒng)在傳輸層協(xié)議上遵從MPEG-2標(biāo)準(zhǔn),只是在應(yīng)用層上采用了MPEG-2與MPEG-4兩種不同的編碼方式而已。
MPEG-2系統(tǒng)是將視頻、音頻及其他數(shù)據(jù)基本流組合成一個(gè)或多個(gè)適宜于存儲(chǔ)或傳輸?shù)臄?shù)據(jù)流的規(guī)范,系統(tǒng)框圖如圖1所示。MPEG-2系統(tǒng)中PES(Packetized Elementary Stream)不允許直接傳輸,只允許傳輸PS(Program Stream)包和TS(Transport Stream)。PES只是PS轉(zhuǎn)換為T(mén)S或TS轉(zhuǎn)換為PS的中間步驟或橋梁,是MPEG數(shù)據(jù)流互換的邏輯結(jié)構(gòu),本身不能參與交換和互操作[4]。
PS包長(zhǎng)度比較長(zhǎng)且可變,用于無(wú)誤碼環(huán)境,適合于節(jié)目信息的軟件處理及交互多媒體應(yīng)用。TS是面向數(shù)字化分配媒介(如有線、衛(wèi)星、地面網(wǎng))的傳輸層接口。衛(wèi)星信道是較容易發(fā)生錯(cuò)誤的環(huán)境,需著重研究TS數(shù)據(jù)結(jié)構(gòu)。MPEG-2通過(guò)使用節(jié)目專用信息(PSI)描述并傳遞多路視頻、音頻和其他數(shù)據(jù)與相應(yīng)節(jié)目的從屬關(guān)系。
2 基于PSI的DVB數(shù)據(jù)分類方法
根據(jù)MPEG-2多路復(fù)用的原理,TS包具有分層復(fù)用的特點(diǎn)。目前,對(duì)衛(wèi)星上傳送的DVB的各種業(yè)務(wù)數(shù)據(jù)進(jìn)行識(shí)別、分類都是從對(duì)傳輸流的PSI分析入手。根據(jù)這種分層復(fù)用的特點(diǎn),可以得到一種基于PSI的數(shù)據(jù)分類。
2.1 傳輸流數(shù)據(jù)檢驗(yàn)
由于在實(shí)際使用中常常出現(xiàn)傳輸流數(shù)據(jù)錯(cuò)誤的現(xiàn)象,因此,在進(jìn)行傳輸流數(shù)據(jù)處理時(shí)首先要確認(rèn)傳輸流是否符合MPEG-2標(biāo)準(zhǔn)。
傳輸流數(shù)據(jù)包具有固定結(jié)構(gòu),其長(zhǎng)度固定為188 B,可以分為包頭和有效負(fù)載。傳輸流包頭長(zhǎng)度4 B,具有特定的結(jié)構(gòu),限于篇幅,本文不作詳細(xì)介紹。具體來(lái)說(shuō),包頭對(duì)TS包具有同步、識(shí)別、檢錯(cuò)及加密指示功能。針對(duì)包頭數(shù)據(jù),可通過(guò)同步丟失錯(cuò)誤、同步字節(jié)錯(cuò)誤、連續(xù)計(jì)數(shù)錯(cuò)誤、數(shù)據(jù)傳輸錯(cuò)誤的檢查判斷傳輸流是否符合MPEG-2標(biāo)準(zhǔn)[5]。
2.2 PAT、PMT的提取和解析
MPEG-2通過(guò)使用節(jié)目專用信息(PSI)描述并傳遞多路視頻、音頻和其他數(shù)據(jù)與相應(yīng)節(jié)目的從屬關(guān)系。接收端通過(guò)PSI提取、解析,獲取解復(fù)用必需的信息。PSI 包括4個(gè)表單:節(jié)目關(guān)聯(lián)表(PAT)、節(jié)目映射表(PMT)、條件接收表(CAT)、網(wǎng)絡(luò)信息表(NIT)[6]。其中,PAT列出了傳輸流中存在的節(jié)目流,指定了所有節(jié)目映射表(PMT)數(shù)據(jù)包的PID,而其本身具有特定的PID(0x0000);PMT用于說(shuō)明每個(gè)節(jié)目,即將每個(gè)節(jié)目的各個(gè)基本流ES(Elementary Stream)及其對(duì)應(yīng)的PID信息、數(shù)據(jù)的性質(zhì)、數(shù)據(jù)流之間關(guān)系列在一個(gè)表里[7]。實(shí)際上,有了PAT及PMT兩種表,接收端就可以根據(jù)PID將TS上從不同的ES來(lái)的TS包分辨出來(lái),并明確ES的業(yè)務(wù)類型。
2.3 實(shí)際操作中存在的問(wèn)題
根據(jù)PAT、PMT的解析獲取業(yè)務(wù)數(shù)據(jù)相關(guān)信息,方法簡(jiǎn)單易行。對(duì)大部分?jǐn)?shù)據(jù)而言,使用該方法可以得到較好的處理結(jié)果。然而,在實(shí)際操作中會(huì)發(fā)現(xiàn)很多特殊現(xiàn)象,本文通過(guò)對(duì)采集到的332個(gè)衛(wèi)星DVB數(shù)據(jù)樣本進(jìn)行分析處理,將其中出現(xiàn)的特殊現(xiàn)象總結(jié)歸納為7個(gè)問(wèn)題:PSI插入周期偏長(zhǎng)、PSI表單偏長(zhǎng)、適應(yīng)字段影響、多個(gè)PMT使用同一PID、PAT、PMT數(shù)據(jù)錯(cuò)誤、PSI內(nèi)容與傳輸流數(shù)據(jù)不一致、無(wú)PSI。
2.4 解決方案
針對(duì)上述問(wèn)題,提出以下改進(jìn)措施:對(duì)于第一個(gè)問(wèn)題,在進(jìn)行數(shù)據(jù)實(shí)時(shí)分析時(shí),需要適當(dāng)放寬PAT、PMT檢索時(shí)間。對(duì)于第二個(gè)問(wèn)題,可通過(guò)分段信息描述表中的長(zhǎng)度來(lái)判斷該分段信息能否由一個(gè)傳輸流數(shù)據(jù)包封裝,若可以則直接正常處理,否則將數(shù)據(jù)緩存,繼續(xù)檢索,直至把所有后續(xù)數(shù)據(jù)都提取完畢,然后進(jìn)行解析。對(duì)于第三個(gè)問(wèn)題,則只需在解析時(shí)加入適應(yīng)字段的處理即可。對(duì)于第四個(gè)問(wèn)題,則需要在處理PMT數(shù)據(jù)時(shí),處理完P(guān)MT中長(zhǎng)度字段所描述的長(zhǎng)度后,繼續(xù)檢查后面的數(shù)據(jù)是否為另一個(gè)PMT分段,直至檢查到填充字段0xFF 0xFF 0xFF 0xFF。對(duì)于第五個(gè)問(wèn)題,考慮到PAT、PMT數(shù)據(jù)為周期發(fā)送的,可以通過(guò)多組數(shù)據(jù)的對(duì)比發(fā)現(xiàn)并避免偶發(fā)干擾造成的錯(cuò)誤。所以,以上5個(gè)問(wèn)題都可通過(guò)對(duì)PSI解析法的改進(jìn)實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的有效分類。然而,對(duì)于第6、第7個(gè)問(wèn)題,僅僅通過(guò)原有方法上的改進(jìn)是無(wú)法對(duì)數(shù)據(jù)實(shí)施有效分類,可考慮使用其他方法進(jìn)行處理。
3 DVB-S2數(shù)據(jù)分類系統(tǒng)
以上針對(duì)傳統(tǒng)PSI分析法中存在的問(wèn)題提出了改進(jìn)后的PSI分析法。在此基礎(chǔ)上,提出使用由ARM、FPGA、一體化調(diào)諧解調(diào)器以及PC機(jī)構(gòu)建的DVB-S2接收處理系統(tǒng)來(lái)實(shí)現(xiàn)DVB-S2數(shù)據(jù)的分類,其系統(tǒng)構(gòu)成框圖如圖2所示。
3.1 系統(tǒng)各部分的工作機(jī)制
系統(tǒng)主要由接收模塊、過(guò)濾模塊、控制與處理模塊三部分構(gòu)成。下面介紹系統(tǒng)各部分的工作機(jī)制。
3.1.1 接收模塊
接收模塊主要由一體化調(diào)諧解調(diào)器構(gòu)成,用以完成對(duì)DVB-S2信號(hào)的接收,并輸出TS流。本系統(tǒng)選用LG公司生產(chǎn)的型號(hào)為T(mén)DQR-C005F的一體化調(diào)諧解調(diào)器。該型號(hào)一體化調(diào)諧解調(diào)器可對(duì)DVB-S2信號(hào)進(jìn)行解調(diào)解碼,具體調(diào)諧解調(diào)器情況請(qǐng)參見(jiàn)相關(guān)資料[8]。
3.1.2 過(guò)濾模塊
過(guò)濾模塊主要由FPGA構(gòu)成,其主要功能是對(duì)接收模塊輸出的TS流進(jìn)行過(guò)濾。通過(guò)對(duì)PSI分析法的詳細(xì)描述,可以得知PSI分析法實(shí)際上是對(duì)節(jié)目關(guān)聯(lián)表(PAT)與節(jié)目映射表(PMT)的解析,通過(guò)對(duì)這兩種表的解析獲取承載的各種DVB-S2數(shù)據(jù)的類型信息。PAT數(shù)據(jù)包與PMT數(shù)據(jù)包在整個(gè)TS流中占的比重比較小,若是全碼流通過(guò)則會(huì)占用大量系統(tǒng)資源,這對(duì)于PSI分析工作毫無(wú)必要,而FPGA的任務(wù)正是提取出碼流中PAT、PMT及用戶感興趣的數(shù)據(jù)包。
接收模塊傳遞給過(guò)濾模塊字節(jié)型數(shù)據(jù)流,以及與數(shù)據(jù)滿足一定時(shí)序關(guān)系的時(shí)鐘信號(hào)CLK、同步信號(hào)START、有效數(shù)據(jù)信號(hào)VALID等。并行數(shù)據(jù)與時(shí)鐘信號(hào)、START信號(hào)和VALID信號(hào)之間存在圖3所示時(shí)序關(guān)系。
數(shù)據(jù)變化為時(shí)鐘下降沿有效,時(shí)鐘在校驗(yàn)字段一直輸出,即整個(gè)TS包204個(gè)字節(jié)都有時(shí)鐘輸出。
START信號(hào)在每個(gè)TS包的同步字節(jié)的位置對(duì)應(yīng)輸出一個(gè)高脈沖,指示一個(gè)TS包的開(kāi)始。
VALID信號(hào)在有效數(shù)據(jù)輸出的188個(gè)時(shí)鐘周期內(nèi)保持高電平,16個(gè)校驗(yàn)數(shù)據(jù)字節(jié)輸出時(shí)保持低電平。
在時(shí)鐘上升沿時(shí)刻數(shù)據(jù)輸出最穩(wěn)定,START指示一個(gè)傳送包的起始位置,VALID信號(hào)在有效數(shù)據(jù)輸出期間保持高電平。因此,實(shí)際過(guò)濾過(guò)程并不需要控制TS數(shù)據(jù)通過(guò)與否,而只需控制指示數(shù)據(jù)包有效載荷的VALID信號(hào)。數(shù)據(jù)、時(shí)鐘和包頭指示信號(hào)仍是按照原來(lái)的方式通過(guò),但是VALID信號(hào)并不是全部通過(guò)。對(duì)于不需要的PID包,則在該包傳遞期間將VALID信號(hào)保持在0電平。在FPGA內(nèi)設(shè)置的存儲(chǔ)單元中,用數(shù)據(jù)的VALID信號(hào)來(lái)控制FIFO的寫(xiě)信號(hào)。若VALID為高電平,則將整個(gè)TS包188 B寫(xiě)入緩存區(qū);反之則不將該包的數(shù)據(jù)寫(xiě)入緩存??刂颇K最終從FIFO讀取TS數(shù)據(jù)??梢?jiàn),通過(guò)對(duì)VALID信號(hào)的控制,符合條件的PID包數(shù)據(jù)被保留,用戶不關(guān)心的數(shù)據(jù)被濾除掉。
3.1.3 控制與處理模塊
ARM作為控制與處理模塊核心,主要任務(wù)有:通過(guò)串口與主機(jī)通信以獲取用戶設(shè)置的各種參數(shù)信息,將分析結(jié)果通過(guò)串口傳遞給主機(jī);通過(guò)I2C總線控制一體化調(diào)諧解調(diào)器對(duì)指定DVB信號(hào)進(jìn)行鎖定;設(shè)置需要過(guò)濾的TS包的PID值;通過(guò)對(duì)濾出的PAT、PMT包進(jìn)行解析來(lái)獲取整個(gè)PSI信息。
3.2 基于ARM和FPGA的PSI分析法的實(shí)現(xiàn)
以上對(duì)改進(jìn)的PSI分析法及系統(tǒng)各部分的工作機(jī)制進(jìn)行了說(shuō)明。根據(jù)以上說(shuō)明,通過(guò)4步進(jìn)行數(shù)據(jù)分類:(1)設(shè)定載波參數(shù);(2)濾出PAT包并對(duì)其分析;(3)濾出PMT包并對(duì)其分析;(4)將分析結(jié)果通過(guò)串口傳給主機(jī)。具體流程見(jiàn)圖4。
ARM通過(guò)串口獲取用戶設(shè)定的載波參數(shù)信息并控制一體化調(diào)諧解調(diào)器對(duì)載波進(jìn)行鎖定。若不能鎖定需要重新設(shè)定參數(shù),反之則將PAT的PID(0x0000)設(shè)置到過(guò)濾模塊。ETR 290建議PAT、PMT插入周期小于0.5 s,便于接收端快速提取和解析。但實(shí)際上,常常存在PAT、PMT插入周期較長(zhǎng)的問(wèn)題。因此在實(shí)際操作中應(yīng)根據(jù)信號(hào)的符碼率值設(shè)定不同的搜索時(shí)間。若在搜索時(shí)間內(nèi)可以搜索到PAT包,則對(duì)其進(jìn)行解析并統(tǒng)計(jì)出PMT總數(shù)及各個(gè)PMT的PID;若沒(méi)有搜索到PAT包,則應(yīng)通過(guò)串口給出提示。在得到所有PMT的PID后,選定一個(gè)PMT的PID并設(shè)置到過(guò)濾模塊,濾出PMT包后對(duì)其進(jìn)行解析,解析完畢后將解析結(jié)果(數(shù)據(jù)的類型及其PID)通過(guò)串口傳給主機(jī)。依照此過(guò)程,分多次循環(huán)完成對(duì)所有PMT的解析,在解析完所有PMT后應(yīng)通過(guò)串口給出提示。
以上就是PSI分析法的實(shí)現(xiàn)方法,在實(shí)際操作中應(yīng)注意以下3個(gè)問(wèn)題:首先,在得到PAT或PMT包后應(yīng)先進(jìn)行數(shù)據(jù)預(yù)處理,數(shù)據(jù)預(yù)處理包括:通過(guò)檢查濾出的TS包的傳輸誤碼指示位是否為“1”,判斷有無(wú)傳輸錯(cuò)誤;通過(guò)檢查濾出的TS包的傳輸加密指示器,判斷數(shù)據(jù)是否加密,當(dāng)加密數(shù)據(jù)無(wú)法進(jìn)一步分類,可給出提示;檢查濾出的TS包的適應(yīng)字段指示,無(wú)則繼續(xù),有則從TS包載荷中剔出適應(yīng)字段并繼續(xù);其次,在對(duì)PMT進(jìn)行解析時(shí),需考慮2.3節(jié)中問(wèn)題4;再次,在FPGA中所設(shè)置的FIFO大小應(yīng)合適,若FIFO設(shè)置太大將會(huì)影響分析速度。
4 系統(tǒng)性能測(cè)試
為了便于人機(jī)交互,編寫(xiě)了PSI信息分析界面,如圖5所示。
該界面具有以下功能:允許用戶設(shè)置載波的相關(guān)參數(shù);在載波鎖定后,顯示ARM通過(guò)串口發(fā)至主機(jī)的PSI分析結(jié)果;顯示TS流中PID統(tǒng)計(jì)結(jié)果;允許用戶設(shè)置需要過(guò)濾的TS包的PID值,最多可同時(shí)過(guò)濾8種PID的TS包。
在實(shí)現(xiàn)系統(tǒng)所有功能后,對(duì)系統(tǒng)整體性能進(jìn)行測(cè)試。針對(duì)5顆衛(wèi)星上12個(gè)不同的載波承載的DVB-S2數(shù)據(jù),作者使用本系統(tǒng)進(jìn)行分類處理:從其中11個(gè)載波中識(shí)別出25個(gè)PID分別承載視、音頻數(shù)據(jù)及多協(xié)議封裝IP數(shù)據(jù),其余載波承載的傳輸流(TS)數(shù)據(jù)中因?yàn)闆](méi)有傳送PSI而無(wú)法對(duì)其進(jìn)行識(shí)別分類。檢測(cè)結(jié)果匯總參見(jiàn)表1。
通過(guò)數(shù)據(jù)分類的結(jié)果可以看出:視、音頻業(yè)務(wù)目前在DVB-S2業(yè)務(wù)中所占份額最多(超過(guò)86%),且設(shè)備的實(shí)現(xiàn)和使用相當(dāng)符合規(guī)范(PSI符合標(biāo)準(zhǔn)的占絕大多數(shù));數(shù)據(jù)傳輸業(yè)務(wù)中又以多協(xié)議封裝IP形式為主(占總數(shù)的10%,其他形式不超過(guò)2%),這一現(xiàn)象說(shuō)明DVB-S2信道承載數(shù)據(jù)業(yè)務(wù)的方法相當(dāng)靈活,表現(xiàn)形式多樣化。
實(shí)驗(yàn)結(jié)果表明,使用基于PSI分析法的數(shù)據(jù)分類系統(tǒng)能有效地對(duì)DVB-S2數(shù)據(jù)進(jìn)行分類。
本文討論了目前使用PSI分析法進(jìn)行衛(wèi)星DVB數(shù)據(jù)分類工作中存在的一些問(wèn)題,并針對(duì)這些問(wèn)題提出了相應(yīng)的改進(jìn)措施,在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了一種基于ARM和FPGA的DVB-S2數(shù)據(jù)分類系統(tǒng)。通過(guò)對(duì)不同DVB承載的DVB-S2信號(hào)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)并對(duì)實(shí)驗(yàn)結(jié)果分析,證明使用該系統(tǒng)能對(duì)DVB-S2數(shù)據(jù)有效地分類。
參考文獻(xiàn)
[1] Draft ETSI EN 302 307,Second generation framing struc ture,channel coding and modulation systems for broadcasting,interactive services,news gathering and other broadband satellite applications[S].2004.
[2] 劉修文.衛(wèi)星數(shù)字電視直播接收技術(shù)[M].北京:機(jī)械工業(yè) 出版社,2006.
[3] 余兆明,李曉飛,陳來(lái)春.MPEG標(biāo)準(zhǔn)及其應(yīng)用[M].北京:北京郵電大學(xué)出版社,2002.
[4] 鐘玉琢.運(yùn)動(dòng)圖像及其伴音通用編碼國(guó)際標(biāo)準(zhǔn)-MPEG-2標(biāo)準(zhǔn)[M].北京:清華大學(xué)出版社,1997.
[5] ISO/IEC 13818-1-1996.Generic coding of moving pictures and associated audio,MPEG-2 International Standard[S].
[6] EN 300 421 V.1.1.2-1993.Digital Video Broadcasting(DVB) Framing structure,channel coding and modulation for 11/ 12 GHz satellite services[S].
[7] TR 101 290 V 1.2.1-2001,Digital Video Broadcasting (DVB);Measurement guidelines for DVB systems[S].
[8] CONEXANT CX24116 databook Advanced Modulation DVB-S2 Demodulator and FEC Decoder.CONEXANT 2006.