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在整個系統中所處的位置,以及其作爲中間件所起的作用。