mediaLib

維基百科,自由的百科全書

mediaLib
開發者Sun Microsystems
程式語言C
類型多媒體
許可協議CDDL
網站sun.com/processors/vis/mlib.html

mediaLib(指 "多媒體函數庫")是一個用於加速多媒體應用程式的可移植的底層函數庫。它具備C語言接口,其最新版本為2.5。 它最初由Sun開發,之後作為OpenSolaris項目的一部分在CDDL許可證下開源。

mediaLib 用C及編譯器原語寫成,可以利用多種處理器上帶有的SIMD多媒體指令集來獲得顯著的性能提升。雖然最初它只能利用SPARC處理器上的VIS指令集,但是後來又加入了對IntelAMD處理器上的MMXSSESSE2等指令集的支持。

mediaLib 用C及編譯器原語寫就,理論上一個系統只要有支持C和編譯器原語的編譯器,就可以編譯並且使用它。如果缺乏編譯器原語的支持,也可以編譯使用mediaLib的純C語言版本,但是這樣的話將無法獲得SIMD多媒體指令集所能帶來的性能提升。

mediaLib目前包含在Solaris作業系統中。

mediaLib 2.5 包含近4000個文件和240萬行C原始碼,有針對不同領域應用的函數3000餘個:

調用了mediaLib的開放原始碼應用程式有JavaJDS for Solaris, mplayerffmpeg,and ogle

mediaLib 有針對多個平台的不同版本,但是這些版本都共享同一套API,所以使用者可在多個平台間自由遷移,而無需修改原始碼中對mediaLib的調用:

  • C語言版本:以純粹的ANSI C寫就,並帶有常見代碼優化
  • VIS/VIS2/VIS3版本:以SPARC晶片的VIS/VIS2/VIS3多媒體擴展指令集進行優化
  • MMX/SSE/SSE2版本:以Intel/AMD晶片的MMX/SSE/SSE2多媒體擴展指令集進行優化
  • 整數版本:針對無浮點運算能力或浮點性能較弱的晶片進行優化,這樣的晶片如UltraSPARC T1和一些定點嵌入式處理器
  • 多執行緒版本:是在mediaLib之上以OpenMP對mediaLib函數進行的一個包裝,旨在為多媒體應用程式提供靈活的多執行緒擴展能力


外部連結[編輯]