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