基于MiniGUI/mDolphin/mPeer技术的网络电视方案
扫描二维码
随时随地手机看文章
网络电视(IPTV)也叫交互式网络电视,是利用互联网的基础设施,以电视机作为主要终端设备,集互联网、多媒体、通信等多种技术于一体,通过互联网络协议(IP)向家庭用户提供包括数字电视在内的多种交互式数字媒体服务的崭新技术。现在市场上基于各种嵌入式操作系统的网络电视软件解决方案有很多,本文重点描述在嵌入式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。