1 引言
隨著通信技術(shù)的不斷發(fā)展, 高清應(yīng)用的日益普及,, 傳統(tǒng)的多媒體信息發(fā)布終端已不能滿足高清媒體的播放需求,。針對現(xiàn)有技術(shù)存在的系統(tǒng)復(fù)雜, 成本較高,, 播放質(zhì)量差等不足,, 本文介紹一種高清媒體信息發(fā)布終端設(shè)計方案, 該方案采用嵌入式平臺架構(gòu)及硬件解碼技術(shù),, 支持多種音視頻及圖片格式,, 能夠?qū)崿F(xiàn)視頻、音頻,、圖片和滾動字幕等多媒體信息的組合播放,, 播放質(zhì)量可達(dá)到卓越的高清電視品質(zhì)。做為高清媒體發(fā)布系統(tǒng)的終端節(jié)點(diǎn),, 該系統(tǒng)在遠(yuǎn)程中央控制系統(tǒng)管理和控制下,, 可實(shí)現(xiàn)定時或即時的播放廣告、新聞,、天氣預(yù)報,、物業(yè)通知等信息, 在第一時間將最新鮮的資訊傳遞給受眾人群; 這種分眾化的傳播模式能夠細(xì)分受眾群體,、區(qū)分受眾需求,, 優(yōu)化傳播過程, 提高受眾群體覆蓋的準(zhǔn)確性,, 從而達(dá)到傳播效果的最優(yōu)化,, 在樓宇電視、銀行,、社區(qū),、車站、機(jī)場等廣告播放和信息發(fā)布市場擁有廣闊的應(yīng)用前景,。
2 硬件系統(tǒng)結(jié)構(gòu)
本系統(tǒng)的主處理器選用S igma Designs公司的專業(yè)級的高清視頻解碼芯片EM8623L,。該芯片同時集成了V ideo Decoder ( R ISC ) ,, ARM, DSP 三顆芯片,, 支持包括MPEG - 1 /2 /4 SD /HD,、WMV9 SD /HD、D ivx,、H 264,、VC - 1等在內(nèi)的多種視頻格式解碼, 音頻: MPEG - 1,、Layer1 /2 /3(MP3)、AC - 3,、AAC,、PCM、WMA9等,。內(nèi)嵌的200MH z的ARM負(fù)責(zé)核心主控,, 內(nèi)存帶寬32位, 并最大支持256MB的DDR,, 支持64MB的閃存擴(kuò)展,。32位DSP專門負(fù)責(zé)音頻處理, 16位R ISC 處理器負(fù)責(zé)視頻解碼,。EM8623L 還具有2D 圖形引擎及IDE,、DV I、PC I,、U SB 等豐富接口支持,。這款基于嵌入式架構(gòu)和硬解碼的芯片解決方案在成本、功耗和效率上都能很好的滿足高清媒體播放終端設(shè)備需求,。
本文所述的高清媒體信息發(fā)布終端硬件系統(tǒng)結(jié)構(gòu)主要包括: 高清解碼芯片EM 8623L; 128MB SDRAM 和8MB 閃存; 網(wǎng)絡(luò)接口控制器; 前面板控制電路; 內(nèi)置2 5英寸筆記本SATA 硬盤接口; 提供高清數(shù)字多媒體接口(HDM I),、高清晰視頻色差分量接口( YPbPr)、復(fù)合視頻信號接口(V IDEO)等視頻接口,, 光纖數(shù)字音頻接口( S /PD IF),、同軸數(shù)字音頻接口( COAX IAL)、雙聲道立體聲音頻接口( R- AUD IO - L)等音頻接口,。此外還提供了USB2 0接口,, 可與外接移動存儲設(shè)備連接, 播放其中的影音資源,, 并提供固件升級功能,。
3 軟件設(shè)計
3.1 軟件架構(gòu)設(shè)計
軟件系統(tǒng)根據(jù)嵌入式系統(tǒng)原理和多媒體信息發(fā)布應(yīng)用需求進(jìn)行設(shè)計, 系統(tǒng)架構(gòu)如圖1,, 主要由硬件驅(qū)動層,, 實(shí)時操作系統(tǒng)層,, 中間層和應(yīng)用程序?qū)咏M成。硬件驅(qū)動層是與硬件聯(lián)系最緊密的軟件層,, 包括音視頻輸出接口,、N IC、SATA控制器,, USB2 0控制器,、F lash、RS232和前面板/遙控器等的驅(qū)動,, 以及和訪問硬件地址寄存器的API,, 是系統(tǒng)穩(wěn)定高效運(yùn)行的重要基礎(chǔ)。設(shè)備驅(qū)動的加載可以隨著操作系統(tǒng)啟動時在內(nèi)核中加載,,也可以在操作系統(tǒng)起來之后,, 單獨(dú)進(jìn)行模塊加載, 具體可在內(nèi)核編譯時進(jìn)行驅(qū)動加載的設(shè)定,, 使得內(nèi)核大小的設(shè)定較為靈活,, 方便根據(jù)F lash空間做出適當(dāng)?shù)恼{(diào)整。
圖1 系統(tǒng)軟件結(jié)構(gòu)圖
實(shí)時操作系統(tǒng)是嵌入式設(shè)備軟件的核心部分,。uC linux是針對嵌入式處理器特點(diǎn)設(shè)計的一種實(shí)時操作系統(tǒng),, 它繼承了標(biāo)準(zhǔn)L inux 強(qiáng)大的網(wǎng)絡(luò)功能和多任務(wù)管理功能, 支持多種文件系統(tǒng),, 提供標(biāo)準(zhǔn)豐富的API,, 具有執(zhí)行效率高、占用空間小,、可擴(kuò)展性強(qiáng)和良好的可移植性等優(yōu)點(diǎn),。除此, 他還專為無MMU 的處理器設(shè)計,, 并對L inux 內(nèi)存管理和進(jìn)程管理進(jìn)行了改寫,, 滿足無MMU 處理器的開發(fā)要求。由于EM8623L是一款沒有MMU 的處理器,, 因此本系統(tǒng)采用uC linux 作為操作系統(tǒng)內(nèi)核,。
中間層包括私有協(xié)議棧模塊, PPPOE ( Po int- to- po intpro tocol over E thernet)模塊,, 音視頻解碼模塊和2D圖形加速器模塊,。這些模塊處在實(shí)時操作系統(tǒng)層和應(yīng)用程序?qū)又g,向上提供API接口供應(yīng)用程序調(diào)用,, 向下通過實(shí)時操作系統(tǒng)實(shí)現(xiàn)API接口函數(shù)到硬件驅(qū)動層的映射,。私用協(xié)議棧模塊是一種基于UDP的私有可靠的數(shù)據(jù)報協(xié)議, 為支持遠(yuǎn)程大數(shù)據(jù)量下載而自主設(shè)計的,。該協(xié)議??筛鶕?jù)不同的網(wǎng)絡(luò)丟包率采取自適應(yīng)重發(fā),、補(bǔ)發(fā)等容錯機(jī)制, 克服了UDP協(xié)議數(shù)據(jù)傳輸?shù)牟豢煽啃?。在網(wǎng)絡(luò)丟包率較高的網(wǎng)絡(luò)環(huán)境中能表現(xiàn)出較為強(qiáng)勁的數(shù)據(jù)接收能力,, 較好的滿足了大數(shù)據(jù)量高清媒體的高速可靠下載任務(wù), 有效數(shù)據(jù)下載率可達(dá)現(xiàn)有帶寬的80%以上,。PPPOE模塊支持系統(tǒng)ADSL網(wǎng)絡(luò)接入功能,, 通過將開源的標(biāo)準(zhǔn)L inux上的PPPOE代碼移植到嵌入式uC linux 內(nèi)核實(shí)現(xiàn)。音視頻解碼模塊是Sigma Designs開發(fā)的一個完整的文件播放器,, 用于播放EM86231硬解碼支持的多標(biāo)準(zhǔn)音視頻文件和先進(jìn)的顯示處理功能(支持HDM I/YPbPr/AV 等視頻輸出和S /PDIF,, 雙聲道等音頻輸出)。2D圖形加速器支持高速OSD和GU I,,為高清晰度顯示器提供高質(zhì)量的圖像,。
應(yīng)用程序?qū)犹幱谲浖到y(tǒng)的最頂層, 實(shí)現(xiàn)系統(tǒng)應(yīng)用軟件的主體功能,, 主要包括遙控器接收處理,, 圖形用戶界面顯示,, 高清媒體文件本地下載,, 網(wǎng)絡(luò)在線升級, 系統(tǒng)登陸遠(yuǎn)程服務(wù)器的注冊認(rèn)證,, 視頻/音頻/圖片/飛字等的分時控制播放和組合播放等,。
3.2 系統(tǒng)任務(wù)設(shè)計
針對高清媒體信息發(fā)布所要求的準(zhǔn)確性, 實(shí)時性和和即時性,, 本系統(tǒng)主要設(shè)計了四個系統(tǒng)任務(wù),, 分別是: 主控任務(wù)、計時線程,、網(wǎng)絡(luò)任務(wù)線程和飛字播放線程,。主控任務(wù)主要負(fù)責(zé)各任務(wù)調(diào)度, 監(jiān)控服務(wù)器對主窗口和飛字窗口發(fā)出的控制命令(如暫停,, 快進(jìn),, 快退, 停止,, 繼續(xù)等操作) ,, 以及根據(jù)下載到本地硬盤的各種節(jié)目制作單播放相應(yīng)的媒體節(jié)目, 可以實(shí)現(xiàn)順序播放,, 插播控制,,按時間播控和手動播放等。網(wǎng)絡(luò)任務(wù)線程包括控制信息收發(fā)線程和數(shù)據(jù)下載線程,??刂菩畔⑹瞻l(fā)線程和數(shù)據(jù)線程完成高清媒體文件的遠(yuǎn)程下載和本地存儲,, 控制信息收發(fā)線程主要負(fù)責(zé)協(xié)議的握手, 即協(xié)議信息發(fā)起端在200ms內(nèi)未等到約定協(xié)議信息的到達(dá),, 便判定信息超時并進(jìn)行重發(fā); 數(shù)據(jù)線程主要負(fù)責(zé)網(wǎng)絡(luò)推送的媒體文件的本地下載和存儲,。
計時線程主要負(fù)責(zé)獲得當(dāng)前的系統(tǒng)時間, 然后把系統(tǒng)時間與本地時間控制列表中每條記錄的播放時間,、插播控制列表的每條記錄的播放時間進(jìn)行比較,, 如果有記錄的播放時間到, 則進(jìn)行相應(yīng)的播放處理,, 播放處理分為主窗口和飛字窗口,。飛字播放線程實(shí)現(xiàn)根據(jù)飛字循環(huán)播放列表, 飛字插播列表,, 飛字時間控制列表中的節(jié)目順序進(jìn)行相應(yīng)的飛字播放操作,。系統(tǒng)整體工作流程具體步驟如下:
( 1)啟動bootloader, 進(jìn)行必要的硬件初始化;
( 2)從flash中啟動rom fs;
( 3)判斷是否啟動成功,, 如果成功的話,, 接下來解壓app bin g z, 進(jìn)行內(nèi)核的初始化,, 加載相應(yīng)的設(shè)備驅(qū)動,, 啟動上層的應(yīng)用程序。
( 4) 如果不成功則從硬盤中讀取rom fs b in,, 并寫入ROM 中,, 并重復(fù)進(jìn)行( 3) 操作;
( 5)讀取flash中默認(rèn)的配置參數(shù)并設(shè)置相應(yīng)的參數(shù);
( 6)啟動DHCP, 獲取I P地址,、網(wǎng)關(guān),、DNS 服務(wù)器IP、子網(wǎng)掩碼等;
( 7)啟動網(wǎng)絡(luò)線程任務(wù),, 進(jìn)行終端與服務(wù)器的對接,, 注冊認(rèn)證; 媒體數(shù)據(jù)下載等; 如果與服務(wù)器連接成功, 則同步終端系統(tǒng)時間;
( 8)啟動主控任務(wù),, 按照播放優(yōu)先級播放指定播出列表節(jié)目,。主控任務(wù)流程圖如圖2所示。
圖2 主控任務(wù)流程
4 結(jié)束語
本文設(shè)計了一個基于EM8623L的高清媒體發(fā)布終端,, 具有低功耗,, 結(jié)構(gòu)緊湊, 高穩(wěn)定性等特點(diǎn),。支持高效可靠的高清媒體節(jié)目本地下載; 支持順序播放,、即時播放和定時播放功能; 支持幾乎所有高清視頻媒體的流暢播放; 能夠?qū)崿F(xiàn)視頻、音頻、圖片和滾動字幕等多媒體信息的組合播放; 并接受前端控制系統(tǒng)的實(shí)時監(jiān)控; 具有多種音視頻輸出接口,, 支持1080P純高清顯示,。目前結(jié)合前端控制系統(tǒng)在銀行, 機(jī)場等場所已經(jīng)得到廣泛推廣和應(yīng)用,。