柴艷峰,熊運(yùn)余,吳志紅
(1.四川大學(xué) 視覺合成圖形圖像技術(shù)重點(diǎn)學(xué)科實(shí)驗(yàn)室,四川 成都610064;2.四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都610064)
隨著 “公交優(yōu)先”發(fā)展戰(zhàn)略的提出,公共交通建設(shè)已經(jīng)成為一個(gè)城市發(fā)展水平的衡量標(biāo)志。居民在出行乘坐公交車時(shí),希望能夠獲取相關(guān)車輛線路位置等信息,以便更好地安排出行計(jì)劃。目前,現(xiàn)有電子站牌系統(tǒng)多采用單獨(dú)LED報(bào)站或者附加LCD廣告機(jī)實(shí)現(xiàn)多媒體宣傳功能[1,2]。這種結(jié)構(gòu)的系統(tǒng),雖然在功能上可以滿足多媒體播報(bào)的要求,但由于LED自身所能顯示的樣式和信息量有限而造成較低的關(guān)注度,往往淪為廣告播放功能的附屬品,同時(shí)這種架構(gòu)在復(fù)雜環(huán)境的穩(wěn)定性較差,容易造成不好的用戶體驗(yàn),違背了電子站牌建設(shè)的初衷。我們根據(jù)公交電子站牌系統(tǒng)的特點(diǎn)和用戶需求,設(shè)計(jì)并實(shí)現(xiàn)了一種新型電子站牌系統(tǒng),在滿足一定實(shí)際應(yīng)用的同時(shí),也為相關(guān)嵌入式應(yīng)用開發(fā)起到參考作用。
系統(tǒng)采用Freescale基于Cortex-A8內(nèi)核的i.MX536處理器[3]作為開發(fā)平臺,i.MX53系列處理器在多媒體處理方面性能優(yōu)異,基于ARM內(nèi)核的架構(gòu)包含了2D、3DGPU圖形加速單元,使平臺支持的應(yīng)用顯示達(dá)到1080p高清標(biāo)準(zhǔn)。i.MX536處理器主頻達(dá)到800MHz,具備32KB一級數(shù)據(jù)緩存和256KB二級緩存。VPU視頻處理單元涵蓋了多種數(shù)字安全級的編解碼器,還包括有視頻旋轉(zhuǎn)、縮放等重要視頻處理功能。在編解碼方面,提供了包括 MPEG-2、MPEG-4、H.264、VC1、RV10等主流編碼格式的支持,為圖形化報(bào)站及多媒體播報(bào)提供了很好的硬件支持。
根據(jù)平臺特性,系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
在硬件層 (hardware layer)包含有片上系統(tǒng) (SoC)及外部設(shè)備,其中VPU、GPU等處理單元負(fù)責(zé)對視頻編解碼及后期縮放、旋轉(zhuǎn)等相關(guān)工作。系統(tǒng)驅(qū)動層 (OS &drivers layer)采用經(jīng)過裁剪的Linux 2.6作為平臺運(yùn)行的操作系統(tǒng)。在系統(tǒng)支持層 (supporting layer),提供了用于GUI構(gòu)建運(yùn)行所必需的Qt庫文件,和實(shí)現(xiàn)高清多媒體播放所需要的GStreamer庫文件以及其它系統(tǒng)運(yùn)行必需的庫文件,這一層次增強(qiáng)了上層應(yīng)用程序的可移植性,減少了跨平臺應(yīng)用的代碼修改量。系統(tǒng)應(yīng)用層 (application layer)包含了媒體播放模塊和用戶界面 (UI)模塊。各個(gè)層次協(xié)助分工,共同構(gòu)成了系統(tǒng)平臺的完整架構(gòu)。
在以往電子站牌項(xiàng)目運(yùn)行期間,我們發(fā)現(xiàn)僅僅依靠主板自身所提供的看門狗是不夠的[4],外圍設(shè)備例如負(fù)責(zé)無線通訊的3G模塊,在撥號出現(xiàn)問題時(shí),會通知主板通過看門狗復(fù)位,但此時(shí)主板向外圍設(shè)備的供電是不間斷的,3G模塊無法通過復(fù)位操作進(jìn)行恢復(fù),從而導(dǎo)致站牌離線無法工作,這樣的問題會帶來惡劣的社會影響。為了解決這個(gè)問題,采用基于單穩(wěn)態(tài)觸發(fā)的接口控制器,實(shí)現(xiàn)系統(tǒng)的雙重保護(hù)機(jī)制:
If系統(tǒng)出現(xiàn)異常Then
軟件看門狗終止喂狗;
等待復(fù)位;
Else If看門狗失效Then
發(fā)送斷電復(fù)位指令;
接口控制器對主板斷電重啟;
End If
如圖2所示,主板復(fù)位脈沖通過GPIO口線啟動定時(shí)單元1,從而使電源開關(guān)將主板電源輸出切斷,經(jīng)過約5秒鐘之后,定時(shí)單元接通電源開關(guān),主板重新上電啟動。此外,溫度、震動等傳感器輸入信號經(jīng)過GPIO口傳入主板,觸發(fā)定時(shí)單元2,實(shí)現(xiàn)風(fēng)扇及報(bào)警控制,同時(shí)傳感信號可直接驅(qū)動相應(yīng)單元進(jìn)行控制,實(shí)現(xiàn)雙路保護(hù)。
圖2 接口控制器邏輯框架
為了解決傳統(tǒng)LED電子站牌系統(tǒng)信息顯示服務(wù)能力有限的問題,采用高清LCD屏幕作為公交信息的發(fā)布平臺,將傳統(tǒng)基于文字內(nèi)容的信息服務(wù)變?yōu)閳D形動畫與文字相結(jié)合的方式呈現(xiàn)給用戶,報(bào)站界面如圖3所示。
圖3 圖形化報(bào)站界面
主機(jī)報(bào)站程序與中心報(bào)站服務(wù)器通過3G無線網(wǎng)絡(luò)進(jìn)行通訊,網(wǎng)絡(luò)數(shù)據(jù)包的封裝采用較為普遍的TLV形式,其中T(type)數(shù)據(jù)類型定義為短整型,L(length)以長整型表示數(shù)據(jù)包長度,V(value)代表數(shù)據(jù)內(nèi)容。報(bào)站信息與控制信息均采用XML格式的報(bào)文進(jìn)行數(shù)據(jù)通訊,增強(qiáng)了系統(tǒng)的跨平臺性和擴(kuò)展性。
由于站牌分布比較分散處于無人值守的狀態(tài),服務(wù)器需要實(shí)時(shí)獲取站牌的運(yùn)行狀態(tài),因此需要主機(jī)與站牌服務(wù)器之間實(shí)現(xiàn)心跳通訊機(jī)制。在以往測試運(yùn)行中我們發(fā)現(xiàn),采用固定間隔來發(fā)送心跳時(shí),有部分站牌處于頻繁登錄、離線的狀態(tài)。經(jīng)過系統(tǒng)排查發(fā)現(xiàn)由于每個(gè)站牌的網(wǎng)絡(luò)環(huán)境不同,會因?yàn)榫W(wǎng)絡(luò)延遲超過服務(wù)器所設(shè)定的閾值,導(dǎo)致服務(wù)器將該站牌做出離線處理。為了解決這個(gè)問題,提出了基于時(shí)間戳的心跳算法
假設(shè)服務(wù)器設(shè)定的超時(shí)閾值為S,ts是服務(wù)器發(fā)送心跳報(bào)文的時(shí)間,tr是站牌主機(jī)接收到心跳報(bào)文的時(shí)間,Tn是第n次心跳報(bào)文的傳輸時(shí)間,ω1和ω2為權(quán)重系數(shù),Hn為新的心跳間隔。初始時(shí),心跳間隔設(shè)為最大值S,當(dāng)出現(xiàn)頻繁登離線時(shí),服務(wù)器發(fā)送調(diào)整心跳命令,站牌主機(jī)根據(jù)報(bào)文中的時(shí)間戳來動態(tài)調(diào)整,并不斷利用式 (1)、式 (2)進(jìn)行調(diào)整,直到達(dá)到穩(wěn)定狀態(tài),從而可以根據(jù)網(wǎng)絡(luò)的實(shí)際情況動態(tài)調(diào)整心跳間隔時(shí)間。
基于3G的網(wǎng)絡(luò)通信是不穩(wěn)定的,可能會出現(xiàn)誤報(bào)、漏報(bào)等情況,必須考慮其社會影響,因此為了解決這個(gè)問題,以 “寧可不報(bào),不可錯(cuò)報(bào)”的思想為指導(dǎo),采用一套相應(yīng)的機(jī)制進(jìn)行錯(cuò)誤避免。
如圖4所示,當(dāng)網(wǎng)絡(luò)連接出現(xiàn)異常時(shí),報(bào)站信息無法獲取,圖形報(bào)站界面缺失信息顯示,此時(shí)進(jìn)行斷網(wǎng)處理,顯示異常處理界面。當(dāng)站牌收到報(bào)站報(bào)文時(shí),會將收到報(bào)文中的發(fā)送時(shí)間與報(bào)站列表中報(bào)文的發(fā)送時(shí)間進(jìn)行對比,如果發(fā)現(xiàn)收到報(bào)文為陳舊消息,則丟棄。當(dāng)出現(xiàn)報(bào)文丟失或者長時(shí)間沒有收到新報(bào)文時(shí),圖形報(bào)站界面會根據(jù)記錄最近報(bào)文的發(fā)送間隔進(jìn)行超時(shí)清理,避免陳舊信息對乘客的誤導(dǎo)。
圖4 實(shí)時(shí)報(bào)站流程
將圖形化報(bào)站與媒體播報(bào)結(jié)合起來,使電子站牌具有更高的集成度,更好的用戶體驗(yàn),降低成本的同時(shí)也保證了系統(tǒng)具有較高的穩(wěn)定性。因此,我們以 “分層疊加顯示”的思想為指導(dǎo),針對開發(fā)平臺的特點(diǎn),將媒體播報(bào)系統(tǒng)的外觀UI從功能模塊中拆分。其中,視頻媒體播報(bào)模塊利用GStreamer框架結(jié)合framebuffer顯示實(shí)現(xiàn)視頻的UI界面嵌入,圖片媒體播報(bào)模塊利用Qt中強(qiáng)大的動畫機(jī)制讓媒體動起來,媒體系統(tǒng)更新模塊利用本地U盤更新與3G遠(yuǎn)程更新相結(jié)合的辦法實(shí)現(xiàn)媒體播報(bào)系統(tǒng)的更新功能。在以下的小節(jié)中,將進(jìn)一步介紹各個(gè)模塊的組成與實(shí)現(xiàn)。
GStreamer開發(fā)框架[5]最顯著的應(yīng)用就是播放器的快速開發(fā),GStreamer插件化的組件能夠快速的接入到任意管道當(dāng)中,在各式各樣的插件中提拱了許多多媒體數(shù)字信號編譯碼器,同時(shí)也提供了一些其它功能。GStreamer的管道能夠被圖形UI編輯器編輯,能夠以XML文檔來保存。這種設(shè)計(jì)使得管道鏈接庫的消耗盡可能的減小[6]。如圖5所示,GStreamer提供了幾種用于應(yīng)用程序和管道 (pipeline)之間的通信和數(shù)據(jù)交換機(jī)制。緩沖 (buffers)用于在管道當(dāng)中的元件之間的數(shù)據(jù)流交換,通常方向都是從源襯墊到目標(biāo)襯墊。事件 (events)通常在元件與元件或者應(yīng)用程序與元件通信時(shí)被發(fā)送,事件的流動是雙向的,下游事件可以與數(shù)據(jù)流流向同步。消息 (messages)通常是被元件投遞到管道的消息總線 (message bus)上,這些消息可以被上層的應(yīng)用程序收集進(jìn)行處理。而查詢 (queries)是應(yīng)用程序向管道發(fā)送的用于獲取當(dāng)前的播放進(jìn)度、持續(xù)時(shí)間等信息。
針對多媒體播報(bào)的特點(diǎn),要求視頻、圖片等多種媒體與用戶界面UI能夠有機(jī)的融合起來,這就需要視頻能夠縮放定位到指定位置,并且能夠旋轉(zhuǎn)以適應(yīng)戶外豎屏顯示,以符合整體UI界面的設(shè)計(jì)布局。因此,在GStreamer框架中提出了gstxoverlay技術(shù),支持視頻襯墊原件 (video sink element)輸出到指定窗口。但是從適用范圍來看,gstxoverlay技術(shù)是基于X Window顯示系統(tǒng)的,從其函數(shù)聲明參數(shù)中可以發(fā)現(xiàn)實(shí)現(xiàn)這一功能需要向其傳入窗口的ID號。而在現(xiàn)有平臺是并未移植有X Window顯示系統(tǒng)的,并且為了整個(gè)應(yīng)用系統(tǒng)的開銷和穩(wěn)定性,顯示是直接通過framebuffer來實(shí)現(xiàn)的。因此,針對這一問題,需要解決基于framebuffer的視頻播放與界面UI相融合的問題[7]。
前面所提出的界面顯示融合問題,我們根據(jù)所用開發(fā)平臺特點(diǎn),我們可以看到在其/dev目錄下有fb0、fb1、fb2這3個(gè)用于顯示輸出的幀緩存 (framebuffer)設(shè)備。其中fb2是默認(rèn)不可見的,所以分析GStreamer插件源代碼,可以找到mfw_gst_set_gbl_alpha()函數(shù),通過這個(gè)函數(shù)可以改變fb0的透明度 (alpha value),從而使fb0與fb2同時(shí)融合顯示[5]。另一方面,由于需要LCD豎屏顯示,所以需要播放器能夠旋轉(zhuǎn)、縮放來適應(yīng)界面布局。i.MX 536的視頻處理單元 (VPU)從硬件層面支持視頻的旋轉(zhuǎn)與縮放,F(xiàn)reescale將其封裝成GStreamer插件,其中包含了頂點(diǎn)位 置 (axis-left,axis-right)、 視 頻 尺 寸 (disp-h(huán)eight,disp-width)和視頻旋轉(zhuǎn) (rotate)等屬性,通過g_object_set()函數(shù)[8]設(shè)置,不僅可以達(dá)到旋轉(zhuǎn)、縮放的目的,同時(shí)也可以對視頻進(jìn)行動態(tài)調(diào)整。
由于系統(tǒng)實(shí)際運(yùn)行在戶外無人值守的環(huán)境中,需要能夠?qū)崿F(xiàn)視頻的循環(huán)播放和遠(yuǎn)程控制,其中遠(yuǎn)程控制利用3G網(wǎng)絡(luò)發(fā)送遠(yuǎn)程命令,而循環(huán)播放利用了GStreamer的消息機(jī)制,通過對管道添加消息監(jiān)視,獲取管道的當(dāng)前狀態(tài)進(jìn)行控制[9,10]:
播放器初始化后,首先獲取指定文件夾中的視頻信息,生成節(jié)目播放列表。并根據(jù)基于文件名的播放策略進(jìn)行有效期的過濾,對不在播放有效時(shí)間內(nèi)的視頻進(jìn)行刪除。由于播報(bào)系統(tǒng)用于戶外,需要進(jìn)行夜間模式的判斷,避免給公眾帶來不必要的影響。隨后動態(tài)創(chuàng)建用于視頻播放的數(shù)據(jù)流管道 (pipeline),同時(shí)設(shè)置管道各個(gè)元件所需的參數(shù),改變管道狀態(tài)從NULL到PLAYING開始視頻播放。當(dāng)消息監(jiān)視收到結(jié)束 (EOS)消息時(shí),向主控模塊發(fā)送信號,進(jìn)行節(jié)目切換,播放器運(yùn)行的流程如圖6所示。
Qt 4.6引入了兩個(gè)主要的框架:動畫框架 (animation framework)和狀態(tài)機(jī)框架 (state machine framework)[11],其基本理論是基于David Harel的有限狀態(tài)圖 (finite Statechart)理論,狀態(tài)機(jī)的執(zhí)行語義則使用SCXML(State Chart XML,狀態(tài)圖XML),該框架是建立在QObject和Qt屬性系統(tǒng)基礎(chǔ)上,最簡單實(shí)現(xiàn)動畫的方式是為對象的每個(gè)屬性都創(chuàng)建一個(gè)QProperty Animation,并給定相應(yīng)對的動畫的持續(xù)時(shí)間、初始值和最終值等參數(shù)。Qt狀態(tài)機(jī)框架同樣依賴于QObject和Qt的屬性系統(tǒng)。通過創(chuàng)建QState-Machine來搭建一個(gè)狀態(tài)機(jī),然后再創(chuàng)建所需的一些狀態(tài)(QState或QFinalState),并創(chuàng)建所有給定的三元狀態(tài)組(QObject,屬性,值)中的每一個(gè)狀態(tài),以便讓狀態(tài)機(jī)知道給定狀態(tài)下的對象屬性值。各個(gè)狀態(tài)一旦創(chuàng)建完畢,我們就會創(chuàng)建一些切換 (transition),用以說明從一個(gè)到另一個(gè)狀態(tài)的切換。
圖片播放的設(shè)計(jì)也遵循了 “目錄獲取、策略播放”的原則。首先,對指定目錄下的圖片文件利用getPicFiles()進(jìn)行類型過濾,防止系統(tǒng)不支持類型文件被載入,然后對圖片進(jìn)行縮放處理,在尺寸上保證適應(yīng)布局。對文字素材的處理采用生成圖片的方式,避免嵌入式Qt頻繁讀取ttf字庫所帶來的額外系統(tǒng)資源消耗。播放采用窗口滾動播出,可以對顯示速度、動畫方式進(jìn)行設(shè)置調(diào)整。如圖7所示,該電子站牌系統(tǒng)已經(jīng)在成都市實(shí)施運(yùn)行,實(shí)現(xiàn)了圖形化報(bào)站與多媒體播報(bào)的較好融合。
圖7 本文電子站牌在成都市的實(shí)際運(yùn)行
針對電子站牌媒體播報(bào)系統(tǒng)應(yīng)用的特點(diǎn),其區(qū)域設(shè)置的范圍是比較分散的,完全靠人工維護(hù)成本巨大,這與系統(tǒng)開發(fā)的目標(biāo)是不符的,所以設(shè)計(jì)系統(tǒng)更新模塊用以遠(yuǎn)程系統(tǒng)維護(hù)。更新進(jìn)程啟動后開始對USB本地端口和網(wǎng)絡(luò)端口進(jìn)行監(jiān)聽[12],對收到的數(shù)據(jù)進(jìn)行判斷,如果為斷點(diǎn)續(xù)傳數(shù)據(jù),則繼續(xù)完成斷點(diǎn)續(xù)傳。如果為新的數(shù)據(jù)文件,則創(chuàng)建新文件開始下載。當(dāng)數(shù)據(jù)接收完畢后,對緩沖數(shù)據(jù)進(jìn)行MD5驗(yàn)證,經(jīng)過驗(yàn)證的文件根據(jù)文件類型分別拷貝到相應(yīng)的媒體文件夾中,并將其記錄到服務(wù)器日志當(dāng)中,完成更新過程。另一方面,更新模塊作為獨(dú)立進(jìn)程,可以對電子站牌系統(tǒng)本身進(jìn)行升級操作,實(shí)現(xiàn)系統(tǒng)無人值守,遠(yuǎn)程維護(hù)的目標(biāo)。
我們根據(jù)以上的設(shè)計(jì)方案實(shí)現(xiàn)了嵌入式電子站牌系統(tǒng),利用ICU接口控制器解決了系統(tǒng)穩(wěn)定性問題以及設(shè)計(jì)初期所遇到界面融合的問題。經(jīng)過測試,電子站牌能夠24小時(shí)穩(wěn)定運(yùn)行,當(dāng)3G通訊出現(xiàn)問題時(shí),報(bào)站界面會實(shí)現(xiàn)異常處理以及能夠通過硬復(fù)位恢復(fù)系統(tǒng)運(yùn)行。當(dāng)長時(shí)間沒有報(bào)站信息時(shí),界面會進(jìn)行清空。
當(dāng)進(jìn)行多媒體播報(bào)時(shí),采用碼率分別為1.7Mbps和16.7Mbps的H264+AVC編碼的MP4格式文件進(jìn)行測試,結(jié)合圖片播報(bào),CPU占用率分別為33%和45%,能夠達(dá)到流暢播放,符合實(shí)際應(yīng)用的需求。
從表1可以看出,本文所提出的基于i.MX53的嵌入式LCD電子站牌相比其它兩種傳統(tǒng)電子站牌而言,圖形化報(bào)站的形式提供給乘客優(yōu)質(zhì)的報(bào)站服務(wù)和良好的用戶體驗(yàn),更好地突出其公益特性。雖然分離式站牌也提供了多媒體播報(bào)服務(wù),但較簡單的報(bào)站服務(wù)容易成為廣告機(jī)的附屬品,本末倒置。
表1 幾種電子站牌的比較
雖然采用軟件結(jié)合硬件看門狗能夠很大程度上保證系統(tǒng)的可靠性,但在特殊情況下如主板外圍設(shè)備的復(fù)位,仍需要對主板實(shí)現(xiàn)斷電處理,因而采用了ICU接口控制器的站牌主機(jī),在系統(tǒng)的穩(wěn)定性及安全性方面更具優(yōu)勢。
本文提出的基于i.MX53嵌入式電子站牌,為城市公交系統(tǒng)的服務(wù)建設(shè)提供了一個(gè)新的設(shè)計(jì)方案。在成都市的公交站牌建設(shè)中,已經(jīng)建成了1000余塊電子站牌,在運(yùn)行期間得到了社會的廣泛認(rèn)可。圖形化報(bào)站與多媒體播報(bào)的有機(jī)結(jié)合,兼顧了社會效益與經(jīng)濟(jì)效益,成為一種新型的宣傳媒介??梢钥吹?,未來對嵌入式系統(tǒng)的要求不僅僅局限在性能穩(wěn)定上,在人機(jī)交互、界面友好等方面會有更高需求。正是基于這樣的發(fā)展趨勢,針對電子站牌系統(tǒng)的應(yīng)用現(xiàn)狀,我們基于嵌入式平臺設(shè)計(jì)并實(shí)現(xiàn)了一種新型的電子站牌,希望能夠?qū)σ院笙嚓P(guān)系統(tǒng)的開發(fā)作為借鑒。
[1]XU Jianfeng.On the outdoor media in Hangzhou e-bus stops[J].Press Circles,2008 (5):167-169 (in Chinese).[許建鋒.戶外新媒體杭州公交電子站牌研究[J].新聞界,2008(5):167-169.]
[2]WEN Xiongjun,LIU Shukun,LIAO Shuguang.Research and design of electronic stop boards in the intelligent public transportation system[J].Journal of Natural Science of Hunan Normal University,2012,35 (5):42-46 (in Chinese).[文雄軍,劉樹錕,廖曙光.智能公交系統(tǒng)電子站牌的研究與設(shè)計(jì)[J].湖南師范大學(xué)自然科學(xué)學(xué)報(bào),2012,35 (5):42-46.]
[3]i.MX53xA automotive and infotainment applications processors:Silicon version 2.1[EB/OL] .[2013-03-06.]http://www.freescale.com/support/.
[4]WANG Shuqing,ZHANG Zipeng,HE Tao.Research on failure mechanism and countermeasure of WatchDog[J].Microcomputer Information,2006,22 (4-2):152-154 (in Chinese).[王淑青,張子蓬,何濤.WatchDog失效機(jī)理與對策研究[J].微計(jì)算機(jī)信息,2006,22 (4-2):152-154.]
[5]GStreamer application development manual (0.10.35)[EB/OL].[2013-03-05].http://gstreamer.freedesktop.org/.
[6]ZHU Ningxi,WANG Jinglin.Multiformat media-play design based on intel CE2110and gstreamer[J].Video Engineering,2010,34 (4):48-51 (in Chinese).[朱寧西,王京林.Intel CE2110下的GStreamer多格式媒體播放器設(shè)計(jì)[J].電視技術(shù),2010,34 (4):48-51.]
[7]ZHOU Hui,LIU Feng.Design of video player based on Da-Vinci and GStreamer technology[J].Video Engineering,2011,35 (4):64-66 (in Chinese).[周輝,劉峰.基于 Da-Vinci和GStreamer技術(shù)的視頻播放系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2011,35 (4):64-66.]
[8]GObject reference manual[EB/OL].[2013-03-06].http://developer.gnome.org/gobject/stable/.
[9]ZHANG Haibin,LI Hui.Design and implementation of embedded high definition player[J].Computer Engineering and Design,2010,31 (13):3048-3087 (in Chinese).[張海濱,李揮.嵌入式高清播放器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31 (13):3084-3087.]
[10]HONG Chengyu.Design and implementation of the embedded multimedia system based on GStreamer[D].Chengdu:Chengdu University of Technology,2009:33-38 (in Chinese).[洪承煜.基于GStreamer嵌入式多媒體系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:成都理工大學(xué),2009:33-38.]
[11]Summerfield Mark.Advanced Qt programming:Creating great software with C++and Qt 4[M].北京:電子工業(yè)出版社,2011.
[12]Richard Stevens W.UNIX network programming volume 2:Interprocess communications[M].北京:清華大學(xué)出版社,2002:1-395.