贺静海,华云松
(上海理工大学 光电信息与计算机工程学院,上海 200093)
目前常采用基于OpenMAX标准接口与多媒体协处理器的多媒体解决方案,来开发手机多媒体功能,上层应用通过OpenMAX组件在协处理器中运行相关Codec,处理数据。这种常用的解决方案的优点是:移植性高,设计周期短,成本低;缺点是:受协处理器内存限制,无法同时运行所有Codec,若多个组件同时申请资源时,就会产生资源冲突,影响系统运行,甚至发生死机。
针对上述目前常用方案的缺点,文中提出的解决方法基于OpenMAX流程规范,根据Codec类型将协处理器内存资源划分为音频解码、音频编码、视频解码、视频编码4种不同运行空间(数据和指令空间),并对其进行管理及维护,为OpenMAX组件进行资源获取、释放、抢占等操作行为提供接口。在多组件同时访问协处理器资源时,根据组件优先级对资源实施实时仲裁,实现资源被单一组件互斥使用,完成系统并发需求。
OpenMAX[1]是由Khronos制定的多媒体应用程序标准接口,主要针对嵌入式设备或移动设备,在架构底层上为多媒体Codec和数据处理定义了一套统一的编程接口(OpenMAX IL API),对多媒体数据的处理功能进行系统级抽象,为用户屏蔽了底层的细节。图1是OpenMAX IL API软件全貌,OpenMAX IL API有个高层实体,称为IL客户端(IL client),该客户端通常是一个filter graph多媒体框架或者应用程序的一个功能片,IL client通过OpenMAX组件调用OpenMAX IL API可以以一种统一的方式来使用Codec和其他多媒体数据处理功能,无需担心其底层的硬件结构。
OpenMAX组件代表一个具体的功能模块,可以是文件解析组件,也可以是编解码组件等。……