網絡電視(IPTV)也叫交互式網絡電視,是利用互聯網的基礎設施,以電視機作為主要終端設備,集互聯網、多媒體、通信等多種技術于一體,通過互聯網絡協議(IP)向家庭用戶提供包括數字電視在內的多種交互式數字媒體服務的嶄新技術?,F在市場上基于各種嵌入式操作系統的網絡電視軟件解決方案有很多,本文重點描述在嵌入式Linux平臺上,基于MiniGUI/mDolphin/mPeer技術構造出的網絡電視方案。
無論是何種嵌入式設備,只要涉及到用戶交互,那么GUI就是該設備軟件部分的基礎,網絡電視也不例外。在嵌入式Linux平臺上可供選擇的GUI系統也有很多,如X Window、Qt/Embedded和MiniGUI等,而MiniGUI的性能及資源占用明顯優于其他圖形系統。
網絡電視的一個核心是網頁瀏覽器,有了它用戶才能夠進行站點瀏覽、下載等操作。本方案中采用的mDolphin瀏覽器,使用的是WebKit開源瀏覽器解析和渲染引擎(也是Apple Safari瀏覽器、Google Chrome瀏覽器采用的核心引擎),確保瀏覽器產品具有和PC機上的瀏覽器相同的網頁解析和渲染能力,從而保證產品的高起點。
網絡電視的另一個核心應當是大量的應用軟件,如游戲、音視頻播放等。本方案還引入了嵌入式J2SE解決方案——mPeer,將Java語言引入到網絡電視應用程序的開發中,使得開發者既可以進行基于MiniGUI的Linux程序開發(C/C++),也可以使用Java。
基于MiniGUI來開發應用軟件的難度相對較高,開發者不但需要Linux程序開發,更要精通MiniGUI API才能夠進行開發,但是這種開發方式的優點也是很明顯的,那就是開發出來的應用軟件性能較好。因此,對一些關鍵的應用軟件,如瀏覽器、電子郵件、媒體播放器等應用軟件,應當直接在Linux和MiniGUI之上開發。而mPeer解決方案則為Java程序提供了一個通用的平臺,可運行各種符合規范的J2SE應用程序。利用Java開發應用程序可帶來巨大的便利性,從人才、社區資源、開發工具等方面,都可獲得巨大的現有技術及資源的支持。這兩種開發方式的結合使得開發靈活性增加的同時,大大降低了難度,節省了資源。
此外,一直被廣大用戶所詬病的嵌入式Java的效率問題,在MiniGUI與mPeer的協同工作下也得到了解決。本方案基于小巧靈活的 MiniGUI,在其上實現的Java應用軟件的性能,是完全可以和基于X Window、Qt/Embedded的C/C++本地應用軟件相媲美的。本方案的整體架構見圖1。
本方案基于嵌入式Linux操作系統,在其上運行各種可能的應用軟件。它采用MiniGUI 3.0提供的多進程支持,實現多進程的圖形程序運行環境,從而提高系統的整體穩定性,即使有單個應用進程的失效,也不會影響整體系統的運行。本方案可以在線下載應用軟件并運行,且便于應用軟件和系統的在線升級。依托MiniGUI 3.0在界面特效方面的強大功能,還可以實現類似Apple iPhone/iTV的用戶界面特效。
在瀏覽器方面,本方案包含一個全功能的Web瀏覽器產品mDolphin 2.0。mDolphin是基于 WebKit瀏覽器核心開發的運行于Linux和MiniGUI之上的全功能瀏覽器,支持流行的W3C標準(HTML 4.01、XHTML 1.0、XML、CSS 2.1/3.0、XSLT、XPath、DOM及 AJAX),支持Netscape 準JavaScript 1.5,遵循標準的 Netscape插件接口,支持 HTTP 1.1、HTTPS、Cookie和代理服務器
在J2SE實現方案方面,mPeer可采用Dalvik/Kaffe/JamVM/Cacoo等開源的Java虛擬機,并提供符合Sun定義的Java CDC Personal Profile類庫。開發者既可以將mPeer作為mDolphin的插件來運行嵌入到網頁中的Java Applet程序,也可以獨立運行Java應用程序。
基于Broadcom 7405 SoC,采用本系統架構,能夠實現網絡電視方案。該系統的參數如下:TV 顯示輸出分辨率為720P,利用了芯片的硬件加速;芯片主頻為400MHz;存儲空間為128M NAND Flash;內存為256M RAM。