Android多媒體開發[9]– OpenMax IL簡介

1.openmax 簡介
 OpenMax是一個多媒體應用程序的框架標準,由NVIDIA公司和Khronos在2006年推出。
OpenMAX分為3層:
第一層:OpenMax DL(Development Layer,開發層)
第二層:OpenMax IL(Integration Layer,集成層)
第三層:OpenMax AL(Appliction Layer,應用層)


2.OpenMax IL簡介
OpenMax IL 處在中間層的位置,OpenMAX IL 作為音頻,視頻和圖像編解碼器 能與多媒體編解碼器交互,並以統一的行為支持組件(例如資源和皮膚)。這些編解碼器或許是軟硬件的混合體,對用戶是 的底層接口應用於嵌入式或 / 和移動設備。它提供瞭應用程序和媒體框架, 透明的。本質上不存在這種標準化的接口,編解碼器供 應商必須寫私有的或者封閉的接口,集成進移動設備。 IL 的主要目的 是使用特征集合為編解碼器提供一個系統抽象,為解決多個不同媒體系統之間輕便性的問題。
OpenMax IL 的目的就是為硬件平臺的圖形及音視頻提供一個抽象層,可以為上層的應用提供一個可跨平臺的支撐。這一點對於跨平臺的媒體應用來說十分重要。本人也接觸過幾傢高清解碼芯片,這些芯片底層的音視頻接口雖然功能上大致相同,但是接口設計及用法上各有不同,而且相差很多。你要想讓自己開發的媒體應用完美的運行在不同的硬件廠商平臺上,就得適應不同芯片的底層解碼接口。這個對於應用開發來說十分繁瑣。所以就需要類似於OpenMax IL 這種接口規范。應用假如涉及到音視頻相關功能時,隻需調用這些標準的接口,而不需要關心接口下方硬件相關的實現。假如換瞭硬件平臺時,隻需要把接口層與硬件適配好瞭就行瞭。上層應用不需要頻繁改動。
你可以把OpenMax IL 看作是中間件中的porting層接口,但是現在中間件大部分都是自傢定義自己的。
OpenMax 想做的就是定義一個這樣的行業標準,這樣媒體應用、硬件廠商都遵循這種標準。硬件廠商將OpenMax 與處理器一並提供,上層的多媒體框架想要用到硬件音視頻加速功能時,隻需遵循openmax的接口就可以擴平臺運行。
可喜的,現在越來越多的多媒體框架及多媒體應用正在遵循openmax標準,包括各種知名的媒體開源軟件。越來越多的芯片廠商也在遵循openmax的標準。對於現在的音視頻編解碼來說,分辨率越來越高,需要芯片提供硬件加速功能是個大的趨勢。我相信 接口的標準化是一定要走的。

3.OpenMax IL結構
OpenMax IL主要內容如下所示。

 客戶端(Client):OpenMax IL的調用者

 組件(Component):OpenMax IL的單元,每一個組件實現一種功能

 端口(Port):組件的輸入輸出接口

 隧道化(Tunneled):讓兩個組件直接連接的方式

組件、端口、隧道化思想和GStreamer 中的 pipeline 十分類似。
Component實現單一功能、或是Source、Host、Accelerator和Sink。
Port 是 Component對外的輸入輸出口。
通過Tunneled 將單一Component串聯起來形成一個完整功能。
OpenMax Core是輔助各個組件運行的部分

       
4.Component內部結構

Component 的基本模型如上圖,可以把它想象成一個加工車間:
輸入端口輸入材料
輸出端口輸出加工完成品
通過handle 來給車間發送指令或者或者狀態
將事件及時發送給車間外部管理者

 

You May Also Like