OpenMAX是Khronos制定的API,这个Khronos也是OpenGL的制定者,同时在着手制定的标准/规范还有OpenGL es,OpenVG,OpenEL等等,其中大多都是针对手持设备/嵌入式设备的。
OpenMAX 是无授权费的 , 跨平台的应用程序接口 API ,通过使媒体加速组件能够在开发、集成和编程环节中实现跨多操作 系统和处理器硬件平台,提供全面的流媒体编解码器和应用程序便携化。 OpenMAX API 将会与处理器一同提供,以使库和编解码器开发者能够高速有效地利用新器件的完整加速潜能,无需担心其底层的硬件结构。
该标准针对嵌入式设备或/和移动设备的多媒体软件架构 。在架构底层上为多媒体的 codec 和数据处理定义了一套统一的编程接口(OpenMAX IL API),对多媒体数据的处理功能进行系统级抽象,为用户屏蔽了底层的细节。因此, 多媒体应用程序和多媒体框架通过 OpenMAX IL 可以以一种统一的方式来使用 codec 和其他多媒体数据处理功能,具有了跨越软硬件平台的移植性。
OpenMAX的分层结构示意图:
OpenMAX分为3层:
1、OpenMAX IL(Integration Layer)
OpenMAX IL 作为音频,视频和图像编解码器 能与多媒体编解码器交互,并以统一的行为支持组件(例如资源和皮肤)。这些编解码器或许是软硬件的混合体,对用户是 的底层接口应用于嵌入式或 / 和移动设备。它提供了应用程序和媒体框架, 透明的。本质上不存在这种标准化的接口,编解码器供 应商必须写私有的或者封闭的接口,集成进移动设备。 IL 的主要目的 是使用特征集合为编解码器提供一个系统抽象,为解决多个不同媒体系统之间轻便性的问题。
2、 OpenMAX DL(Development Layer)
OpenMAX DL 定义了一个 API ,它是音频,视频和图像功能的集合。硅供应商能够在一个新的处理器上实现并优化其, 然后编解码供应商使用其来编写更广泛的编解码器功能。它包括音频信号的处理功能,如 FFT 和 filter ,图像原始处理,如颜 色空间转换,和视频原始处理,以实现例如 MPEG-4 , H.264 , MP3 , AAC 和 JPEG 等编解码器的优化。 OpenMAX 通过 iDL 和 aDL 来支持加速, iDL 使用 OpenMAX IL 结构, aDL 向 OpenMAX DL API 增加了异步接口。
3、 OpenMAX AL (Appliction Layer)
OpenMAX AL API 在应用程序和多媒体中间件之间提供了一个标准化接口,多媒体中间件提供服务以实现被期待的 API 功能。 AL 想多媒体接口提供应用册便携性。
下面贴两个图便于理解OpenMAX在整个系统中所处的位置,以及其作为中间件所起的作用。