目录
1,MHP的定义及意义
多媒体家用平台(MHP,Multimedia Home Platform) 项目定义了交互数字应用程序和运行这些应用程序的终端之间的通用接口。它是由DVB组织于1997年提出的。它的目标是在家用平台建立标准的交互多媒体应用程序,实现从纯数字电视广播向交互电视应用的平稳过渡,彻底取代模拟电视广播。整个项目不仅包括应用程序编程接口(API),还涉及用户数字接入网等各个方面。2000年2月,DVB组织通过了MHP标准(MHP1.0),2000年7月,欧洲电信标准化研究所(ETSI,European Telecommunications Standards Institute)正式接受了这一标准,编号TS 101 182,为正式部署标准铺平了道路,更新的MHP1.1标准正在讨论中。MHP项目的实施将有利于广播、电信和计算机技术的进一步融合,并为运营商提供更全面、更强大、更灵活的技术解决方案。DVB组织是由全世界30多个国家超过260个成员组成的合作组织,核心机构是DVB指导委员会(the DVB Steering Board),对所有DVB标准和技术规范进行最后认证。MHP项目遵循DVB的惯例,将项目分解成两个模块即技术模块和商业模块。分别制定技术解决方案和商业解决方案。MHP项目组针对两个模块建立了两个工作组:① 面向市场的工作组,主要定义基于本地网进行增强和交互电视广播的用户和市场需求(包括互联网访问等)。② 面向技术的工作组—DVB-TAM(TechnicalIssues Associated with MHP),解决DVB编程接口(API,Application Programming Interface)的规范等问题。数字电视软件平台—中间件由于各个厂家提出互不兼容的解决方案,尚无统一的定义和标准。一般认为:中间件指居于数字电视机顶盒内部实时操作系统与应用程序中间的软件部分,它以应用程序接口API的形式存在,整个API集合被存储在机顶盒的闪存FLASH中。MHP项目组就是致力于出台统一的中间件标准。表1列出一些典型数字电视系统和中间件提供商,其中的数据统计至2001年初。表1 部分公司中间件情况比较 公 司 OpenTV Canal+ NDS 天柏宽网 定位 中间件提供商 集成商 集成商 集成商 网络数 43个 20个 不详 不详 提供的应用软件 视音频、游戏、股票、网页广播、中文电子节目指南等 视音频、开机界面、游戏、电子节目指南股票信息、网页广播等 不详 视音频、电子节目指南、股票信息、网页广播等 CA Nagra Vision的CAS MediaGuard Open VideoGuard Nagra Vision的CAS 中间件及相关部分 中间件 EN2 MediaHighway 与其他中间件提供商集成 无 开发语言 标准C语言 专用脚本语言 标准C语言 有无虚拟机 有 有 无 提供的开发工具 OpenAuthor Pro and SDK Studio+ I-Frame Editor 发展方向 MHPJava MHEG-5Java Java MHP项目组考虑以下几个参考API候选方案:· MHEG-5· Mediahighway+· OpenTV· HTML/Java· JavaTV多媒体和超媒体专家系统(MHEG-5)是进行增强广播服务的一种格式,能在拥有有限资源的终端上运行基本类型应用程序,它采用开放态度描绘编程对象,以便这些对象既能应用于标准化编程又能满足特定的编程需求。Mediahighway+和OpenTV系统在本文应用实例部分中将有详细介绍,这里不再重复。HTML是互联网上通用的标准语言。它是一种纯解释性语言,需要在本机上运行解释器。ava是由SUN公司开发的新一代编程语言,本来是想应用于智能型家电产品,但目前却成为互联网编程语言的主流。它是面向对象的程序语言,类似于C++,但摒弃了C++语言中少用且不好用的部分,它的特征有跨平台、多线程、分布式等,使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件 “一次编译,到处运行”。它彻底改变应用程序的开发模式,带来了自PC机以来又一次技术革命。Java应用程序必须通过与操作系统密切相关的Java虚拟机,才能实现其功能。针对实时操作系统(例如HOPEN 、VXWORKS、PSOS)开发的嵌入式Java虚拟机可以为Java程序提供支持环境。实时操作系统支持面向消费类电子产品的Personal Java应用环境。这意味着不论在家庭、办公室,还是在旅行途中,普通消费者能通过Java虚拟机技术,在实时操作系统和Java API上体会交互式电视机、电冰箱、烤面包箱、防盗设备等方面丰富多彩的生活模式,通过TCP/IP进行信息的交流,实现家庭信息化、智能化。Java TV API是由SUN公司和各大数字电视公司通过开放式研究在Java平台的基础上开放的产品,是计算机界的巨头之一。SUN公司进军数字电视广播领域的拳头产品。它借助Java这一跨平台语言,针对增强电视和交互电视进行加强和优化,主要电子消费型产品生产厂家已公开声明他们的产品将支持 Java TV API并将其作为全球数字电视软件平台标准。Java TV API 是针对数字电视接收机独有的功能而设计的,这些功能有:·音频/视频媒体控制· 广播数据访问· 服务信息数据访问· 调谐器和译码器控制· 屏幕图形处理DVB组织在考虑API候选方案时采用开放的态度,能适应不同层次运营商(称为水平市场)的要求,API的选择是与条件接收系统无关的,但同时能支持多密应用。
2,MHP的主要系统模块功能
(1)应用程序(Application)由参考模型提供的环境能很方便地对应用程序进行测试和认证,完全依照参考模型设计的应用程序一般能顺利运行。而对应用程序提供商来说,他们的权益也受到保护。因为他们能设计出灵活的应用程序,可以广泛应用于不同的平台,而不受机顶盒底层的限制。DVB-TAM对应用程序的定义是:能用软件模块实现交互式服务的功能性应用。一个应用程序也可以看作是一系列能激活MHP软硬件资源的函数。一个交互式的应用程序由以下两大基本部分组成:· 应用程序脚本(解释型的或过程型的);· 内容/场景(用户图形接口和媒体流)。用户图形接口(GUI)是用户与机顶盒交互的接口,包括场景设计、选择按钮、静止图像、文本等。整个用户图形接口可以说由许多幕场景组成,每幕场景又是由一系列小部件、编程对象和属性构成。而各场景之间、各个编程对象的联系则由特别的机制完成。过程型的应用程序,是基于低端函数和类库的程序,通常用于需要对主机资源进行优化时(如对传输网络资源进行最大化利用等)。它一般是平台相关性的,因此当移植到不同的主机平台时需要进行相应的变化。解释型应用程序由高端函数和类库组成。这就允许我们能用平台无关性的参考模型来检验应用程序是否具有平台兼容性。实际上,应用程序不一定全是解释型的或全是过程型的。例如,我们可以在解释型应用程序中嵌入过程型的代码,这样可以极大地减少代码长度和程序执行效率。而平台无关性的问题则由主机内嵌的实时引擎、虚拟机来解决。当然如果在平台设计时没有考虑兼容性的问题,那么要想实现不同平台的良好移植性是很困难的。应用程序是可标识的,它可以自动运行或在受请求后运行。应用程序的显示模式是大小可调的,或在后台运行。对应用程序的管理包括:中断、错误处理、优先级模式、动态资源管理。在退出应用程序时,应该释放系统资源。(2)应用程序发送机制(Application delivery mechanisms)程序脚本和相关内容打包成应用程序对象后,转换成DSM-CC对象。DSM-CC标准是由MPEG组织制定的,与网络通信协议类似,数据广播的前端和数据广播接收装置之间必须有一套通信协议来保证数据的传输和解码,MPEG-2标准的第6部分DSMCC就是这样的一种开放协议。与其他协议相比较,DSMCC主要考虑的是在接收端设备资源有限的情况下如何实现快速的数据传输。DSM-CC UU是一种接口,允许我们从广播流中或从远端服务器中获取DSM-CC格式的对象。DSM-CC对象允许一个数据环模块携带一个或多个程序对象。对象是模块化的,这样可以优化内存使用性能。DSM-CC也提供压缩工具来格式化程序对象和数据环对象,发送机制还确保数据环对象下载的安全性。(3)编程接口定义(API)DVB-TAM对API的定义是:它是一系列高端函数、数据结构和协议,用来表示有关平台独立性软件的标准接口。它应用面向对象的语言,并能灵活地再复用已有的函数。一个应用程序根据高端API的定义描述一系列的对象。它定义了应用程序与本机硬件资源、软件资源之间的接口。对API定义了以下的要求。· 继承性:它是可复用的。对于面向对象的语言来说,可继承性是一个很重要的特性,父类(super class)中的数据或方法其子类(subclass)可继承使用,子类的子类也可继承使用,从而实现数据重复使用(reuse),极大的提高了编程效率。· 开放性:它能被其他接口实例引用。· 抽象性:利用抽象数据类型将低端的特性封装起来,不能被直接运用。只有通过授权的行为才能与外部交互,从而保证源代码的完整性和安全性。· 灵活性:它是硬件独立的,在将来由于硬件升级和换用不同的硬件系统时,API也能升级。如可以通过下载增加新的类库等。根据应用程序的不同格式,低端API用来处理进程型函数,同时高端API用来处理解释型函数。· 低端API对应于进程型程序。此类API不仅需要阐明应用函数,还要关心资源的情况。· 高端API对应于解释型程序。用于抽象解释层的级别越高,系统的独立性就越强。API只需要阐明应用函数,不需要关心资源是否被激活。开放API定义的制定将保证DVB机顶盒实现硬件无关性功能。DVB-MHP对API的功能表述如下。· 支持本机存储的或实时下载的应用程序。· 支持所见即所得。· 支持对数据库的访问(如DVB-SI表单)。· 兼容性。作为MHP项目的核心部分,一个开放的、有发展前途的API标准应该是模块化的、可移植的、灵活的、可扩展的。它允许内容和服务提供商应用不同的但相互兼容的平台提供服务。(4)导航系统(Navigation/Selection)当机顶盒启动后,内嵌的导航函数通过调用相应的API运行第一层的导航程序。API也能用来对TS流进行控制,如浏览频道和节目。导航也能直接由可执行代码运行,而不需要运用API和相关解释器。在DVB-TAM推荐的模型中,导航系统模块与API位于在同一层次,以便能方便的从数据管道和TS流取得数据。基本的导航系统包括以下两个功能。· 列出全部可用的节目清单。· 提供快捷键方便用户访问节目内容。增强型的导航系统由电子节目指南(EPG)实现,增强功能包括用户文件夹和书签等。(5)应用程序启动和控制(Application Launch and Control)一个应用程序的运行包括启动、应用和表现几个部分。程序代码可驻留在机顶盒中或从远端服务器中下载。如果是从远端服务器中下载的,应用程序能自动升级。应用程序管理器的功能是。· 获取和释放系统资源。· 错误管理和例外处理。· 初始和中断会话(Session)。· 检验代码和数据的完整性。· 同步指令和信息。· 调整显示图形格式以适应不同平台的要求。· 允许对内容和变量的共享。· 拥有有序和整洁的表现式样。(6)加密功能(Security Functions)虽然加密模块的定义尚未完成,DVB还是定义了涉及加密的API的要求。· 应该使用通用的加密模块,以保证不同广播运营商和内容提供商在交换节目时的兼容性。· 涉及加密的API应该是与条件接收系统无关的。如果有必要的话,MHP 的API应该对CA相关函数开放。重要的安全方面的考虑还涉及:· 对系统资源的保护以防滥用,如对内存的过量访问。· 对专用数据的保护以防未授权的访问。(7)中间件(Middleware)节目服务商将各种服务项目以应用程序的形式通过传输信道(例如,宽带多媒体数据网,有线电视网络)发布(如,EPG),用户打开电视机通过机顶盒浏览。用户的需求信息(例如,视频点播VOD)通过上传信道(例如,电话线Modem或有线电视电缆)传输到视频服务器,并根据请求选择相应的服务项目以应用程序的形式通过传输信道下载到用户终端-机顶盒的闪存Flash中。应用程序调用机顶盒Flash内的中间件所包含的API,执行应用程序,完成用户请求的功能。中间件的目的是使机顶盒基本的和通用的功能以API的形式提供给机顶盒生产厂家,以实现数字电视交互式功能的标准化,同时使服务项目(以应用程序的形式通过传输信道)下载到用户终端-机顶盒的数据量减小到最低限度。中间件产品一般由非节目提供商和非机顶盒厂家的第三方提供,对于使节目提供商制作节目和厂家生产机顶盒的进一步简化和标准化都是非常有利的。这正是知识经济时代市场更加细分的具体表现。中间件的实现直接取决于应用程序的格式(是解释型的还是进程型的)以及应用高端还是低端的API。每个成功的中间件实现都是根据本机平台的特点量体裁衣。实现交互和实时引擎有不同的方法,但通常需要有以下几大模块。· 库函数;· 脚本和内容解释器;· 事件管理器(处理遥控器和其他设备、用户响应、标识、定时、错误处理);· 自举(Loader)。依靠使用API,实时引擎提供与系统硬件和软件低层接口。实时引擎能唤醒驻留在本机内的程序,而驻留本机程序则可以是与平台相关的,从而在解释性应用程序层面提高系统性能和减少操作性的限制(如压缩下载应用程序对象的大小) 。实时引擎是可执行代码,参照参考模型并根据各个平台特点优化。虚拟机通常用来运行过程型函数(例如复杂的计算、信息和文本处理、数据压缩)或驻留程序,以加强解释性应用程序的性能。由于实时引擎和虚拟机的应用,使得API能实现与平台无关性的应用程序。(8)软硬件资源(Hardware and Software Resources)MHP应该是有友好的用户界面的。对于周边设备来说,显示设备、输入设备如(遥控器)是必须的,另外可以选择使用键盘,本地的内置或外置的存储设备。而这些周边设备的连接应该是“即插即用”的。对于一台基于MHP的机顶盒来说,内部硬件资源包括:前端、解复用、解码、滤波、通用接口、通讯接口、CA系统、内存和相关的驱动等。要实现目前DVB的标准功能,需要机顶盒有至少1MB闪存和1MB内存,同时需要CPU的速度达到20MIPS。如果有16MB闪存和32MB内存及100MIPS的CPU的话,就能做到游刃有余。硬件资源可特别分配,如指定70%的CPU处理时间用于运行应用程序,而余下的30%的时间用于系统管理。在内存中存储了如下内容:· API的解释器;· 库函数;· 实时引擎和虚拟器;· 自举(Loader);· 系统工具;· 文件系统;· 固件(firmware);· 操作系统(包括启动、内存管理、任务管理、资源管理、时针等);· 驱动;· 导航系统。在闪存中允许下载多个版本的应用程序。同时对内存的管理也是相当灵活的,采用分块管理,用于不同程序的内存段有不同的标识,可以只对某一内存段的程序进行刷新。由DSM-CC循环发送下来的应用程序存储在RAM中,同时RAM可用于存储视音频解码的数据缓冲,用于动态平台管理(如堆栈、过程排队等),用于存储应用程序中用到的变量。最基本的系统设置和出厂设置通常存储在EEPROM中(一般不超过10KB)。