1 引言
作為數字電視產業鏈的一個重要組成部分,增值業務占有重要地位。為實現增值業務,需要有完善的中間件業務支撐平臺,使第三方增值軟件開發商開發的交互應用能從前端快速輪播到后端并且高效地運行。
在廣播環境下,數據業務的傳送是通過輪播方式進行的。輪播分兩種,數據輪播和對象輪播[1]。目前國際上基于輪播傳送數據業務主要采用兩種技術,一種是以美國ATSC標準為代表所采用的數據輪播方案[2],另外一種是以歐洲DVB標準為代表所采用的對象輪播方案[3]。數據業務的實現很大程度上是通過交互應用實現的,而交互應用的開發和數據組織普遍使用文件系統,ATSC采用的數據輪播方案保持了數據輪播的簡潔性和高效性,但不支持文件系統的傳輸。DVB采用的對象輪播技術支持文件系統傳送,適應性和擴展性很好,但實現較復雜,打包引入的冗余信息較大,且較難在中間件中實現。
本文提出了符合中國數字電視中間件標準(草案)的增值業務平臺整體解決方案。為了提高平臺的整體性能,提出了一種改進的數據輪播方案作為平臺交互應用廣播傳輸的技術基礎,并進一步闡述中間件中實現該方案的數據廣播文件系統的設計和優化策略。
2 數字電視中間件增值業務平臺架構
2.1前端數據播發系統架構
如圖1所示,前端數據播發系統主要包括應用管理器,節目信息子系統,數據廣播服務器,系統軟件升級服務器和應用數據服務器等5個部分。
應用管理器是播發和控制交互應用及其數據,按照前述改進的數據輪播方案將應用打包和傳輸,且通過應用信令控制廣播應用的運行;節目信息子系統,用于整個廣播網絡的服務信息編輯,存儲,查詢和修改;數據廣播服務器接收來自各個功能模塊的數據,按照MPEG一2標準打包和復用,最終數據通過ASI端口發送到指定的復用器和音視頻流復用成傳輸流播發出去;系統軟件升級服務器為終端接收系統提供一種廣播環境下的在線軟件升級功能;應用數據服務器用于生成應用顯示處理的數據并將其封裝到MPEG一2私有段結構中。封裝內容的格式由各應用自身決定,這樣可以實現廣播環境下大量實時性應用數據的傳送,比如新聞消息和股票行情數據的傳送。 2.2后端中間件架構
圖2所示為符合國家標準草案的中間件架構,在具體實現上采用了層次化和模塊化的設計方案。整個系統可以劃分為系統層、核心層和移植層。
系統層為上層具體應用的執行提供基于Java的運行環境。這層主要包括3部分:Java虛擬機、應用管理器和符合中間件標準的應用編程接口(API)集。Java虛擬機負責解釋和執行。lavaTM語言。應用管理器負責管理應用的生命周期。API集除了包括與MHP兼容的部分包,比如基本的Java包,DAVIC包外[4],還對國家中間件標準作了部分的擴展。
核心層主要采用C語言實現了Java層的功能,兩層之間通過Java本機方法接口連接。這層主要的功能模塊包括MPEG一2段過濾器,數據廣播協議棧,SI引擎,事件管理器,圖形系統,虛擬文件系統和條件接人模塊等。在具體實現時,對執行效率要求較低的管理控制工作一般在系統層實現,而對執行效率要求高的工作在本層實現。這是因為在嵌入式系統中,C語言執行效率要明顯優于解釋性的lava語言。
移植層定義了一套統一的移植接口,屏蔽了核心層具體的硬件驅動。核心層通過這些接口訪問硬件資源。這樣,整個中間件系統只需要修改移植接口就可以在不同平臺上運轉,從而大大減輕了工作量。
3 中間件平臺特點及優化策略
為了支持交互電視的發展,國際上許多組織制訂了相關的中間件標準,比如歐洲DVB提出的MHP[4],美國針對有線電視系統由Cablelabs提出的OCAP,美國ATSC提出的DASE等,其中MHP標準應用最為廣泛。圖2提出的中間件架構符合國家數字電視中間件標準(草案),以JavaTM語言為基礎,在MHP基礎上去除了MHP包中的冗余部分。
在中間件平臺中,輪播方案是交互業務傳送的基礎,綜合考慮ATSC和DVB采用的數據輪播方案中的優缺點,在簡單的數據輪播基礎上加以改進以滿足交互數字電視業務的發展需求。同時,作為接收端中間件交互應用下載的核心部件,基于輪播方案的數據廣播文件系統存在一定延時,具體設計實現時必須優化以提高系統性能。
3.1改進型數據輪播方案
在DSM-CC標準中,數據輪播主要使用DSl,DⅡ和DDB 3種消息封裝控制和數據信息。DVB標準對上述3種消息的語法、語義和部分描述子作了規范。為了利用DVB數據輪播協議傳送文件系統,作如下加強規范[5]:
1)對DSI消息GrouplnfoBuytes域的加強規范。該域包含對超級組內每個組的描述符。令一個組表示文件系統的一個目錄。該域中含有組的名稱描述子Name-De-scriptor,描述該組對應目錄的路徑名。 因此,DSI消息是文件系統的入口,包含了所有的目錄信息,可被看作是文件系統完整的目錄索引表。
2)對DⅡ消息ModulelnfoBytes域的加強規范。該域包含組內每個模塊的描述符。令一個模塊表示該組對應目錄下的一個文件,若DII的NumberOfModules值為0,說明該組對應目錄下面沒有文件。該域中含有模塊的名稱描述子Name_Descriptor,來描述文件名。若文件較大,可分成幾個子模塊傳送,子模塊間用Module-Link-De-scriptor連接,文件的具體內容由DDB攜帶傳送。
3)對DSI,DⅡ中名稱描述符Name-Descriptor的加強規范。該描述子用于描述目錄路徑名時,絕對路徑名格式如"/目錄1/目錄2/",相對路徑名格式如"目錄2/"。描述文件路徑名時,由于能夠通過模塊位置直接定位其所在組,進而定位所在目錄節點,因此文件路徑名直接為文件名,格式如"文件1"。
4)對私有描述子的加強規范。DVB數據輪播協議定義了私有描述子Private_Descriptor以方便用戶進行擴展,其tag范圍為Ox80-Oxff。現分配Ox80用于指示相對路徑目錄的父目錄。一個目錄的名稱描述子有一個配對的私有描述子,用來指示父目錄。
上述語法中,凈荷為4 byte,其值是父目錄對應組的Groupld值,記做ParentGroupId。如果發現ParentGroupId值和DSI的Transactionld值相等,說明其父目錄就是根目錄。通過尋找匹配的Groupld,可定位父節點,直到根目錄,從而構建整個文件系統的目錄樹。
通過上面4點加強規范,可使用DVB數據輪播傳送文件系統。該方案是國家數字電視中間件標準輪播傳輸備選方案之一,也可作為MHP平臺的一種改進方案[5]。
3.2改進型數據輪播方案
中間件的數據廣播文件系統主要負責裝載廣播應用,是數據輪播協議在終端實現的核心模塊。圖3給出了基于改進型數據輪播方案的數據廣播文件系統的架構圖。相關Java功能在org.dvb.DSMCC包實現,對應中間件架構的系統層部分。具體的功能實現位于核心層。 數據廣播文件系統的一個突出特點就是存在較大延時,這對用戶快速切入啟動交互應用非常不利。為提高系統的執行效率需要采取一些優化措施。
首先,應用是通過輪播方式周期性地傳送,而輪播協議和應用數據封裝在一系列DSI,DⅡ,DDB段結構里,理想情況下接收所有輪播數據需要一個輪播周期。機頂盒接收端一般由硬件段過濾器過濾出段數據,然后以軟件方式按照協議解析這些數據,但時間較長。如果接收一個段數據后馬上解析,很可能造成下一個段數據的丟失。為獲取丟失的段數據,只能等到下一輪播周期,延時很大。為降低這種延時,將段數據處理分成過濾和解析兩步,分別由兩個獨立線程同時進行,并通過事件管理器通信協調運行狀態,如圖3所示。
另一方面,考慮到用戶很可能在不同的廣播應用之間來回頻繁切換。如果一個廣播應用退出時馬上釋放其相關資源,那么下次重啟時必須先從碼流中重新載入應用代碼并實例化,這在廣播環境下很費時間。因此,圖3中在DSM-CC文件系統中引入了應用緩存策略,如果緩存超出了預期分配上限值,則釋放部分緩存給新下載的應用。這種通過犧牲一定存儲空間換取時間效率的方法,可在廣播環境下有效提高系統的性能。
4 改進型數據輪播性能測試和分析
表l比較了改進型數據輪播和DVB對象輪播方案打包前后的數據。由表1可知,改進型數據輪播引入的帶寬冗余信息要小于對象輪播,可為平臺節省更多的帶寬資源。
同時,考慮到接收端中間件運行的機頂盒環境資源相當有限,相對對象輪播協議來說,簡單的數據輪播協議實現更加容易,且耗費的系統資源更少,能有效提高系統平臺效率。
5 小結
筆者提出的數字電視中間件增值業務支撐平臺方案已經在上海藍信軟件公司的媒體烽火臺(MBT)上設計實現。該平臺的前端數據廣播系統和后端中間件系統都已經實現,并且在實際電視臺測試中表現出良好的性能。作為交互應用傳輸的技術基礎,改進型數據輪播方案非常簡潔,便于在系統資源有限的接收端實現。另外,其引入的帶寬冗余較小,能有效節約平臺的帶寬資源,是國家中間件標準備選方案之一。