mediaLib (指 "多媒體函式館") 是一個用於加速多媒體應用程式的可移植的底層函式館。它具備C語言接口,其最新版本為2.5。 它最初由Sun開發,之後作為OpenSolaris項目的一部分在CDDL許可證下開源。
基本介紹
- 中文名:多媒體函式館
- 外文名:mediaLib
- 用於:加速多媒體應用程式
- 具備:C語言接口
定義,特徵,
定義
mediaLib 用C及編譯器原語寫成,可以利用多種處理器上帶有的SIMD多媒體指令集來獲得顯著的性能提升。雖然最初它只能利用SPARC處理器上的VIS指令集,但是後來又加入了對Intel/AMD處理器上的MMX/SSE/SSE2等指令集的支持。
特徵
mediaLib 用C及編譯器原語寫就,理論上一個系統只要有支持C和編譯器原語的編譯器,就可以編譯並且使用它。如果缺乏編譯器原語的支持,也可以編譯使用mediaLib的純C語言版本,但是這樣的話將無法獲得SIMD多媒體指令集所能帶來的性能提升。
mediaLib目前包含在Solaris作業系統中。
mediaLib 2.5 包含近4000個檔案和240萬行C原始碼,有針對不同領域套用的函式3000餘個:
* 線性代數
* 矩陣運算
* 圖像處理
* 圖形處理
* 信號處理
* 視頻
* 音頻
* 語音
* 三維渲染
調用了mediaLib的開放原始碼應用程式有Java, JDS for Solaris, mplayer, ffmpeg, and ogle。
mediaLib 有針對多個平台的不同版本,但是這些版本都共享同一套API,所以使用者可在多個平台間自由遷移,而無需修改原始碼中對mediaLib的調用:
* C語言版本: 以純粹的ANSI C寫就, 並帶有常見代碼最佳化
* VIS/VIS2/VIS3版本: 以SPARC晶片的VIS/VIS2/VIS3多媒體擴展指令集進行最佳化
* MMX/SSE/SSE2版本: 以Intel/AMD晶片的MMX/SSE/SSE2多媒體擴展指令集進行最佳化
* 多執行緒版本: 是在mediaLib之上以OpenMP對mediaLib函式進行的一個包裝,旨在為多媒體應用程式提供靈活的多執行緒擴展能力