mediaLib
開發者 | Sun Microsystems |
---|---|
當前版本 | 2.5(2007年11月16號) |
編程語言 | C |
類型 | 多媒體 |
許可協議 | CDDL |
網站 | sun.com/processors/vis/mlib.html |
mediaLib(指 "多媒體函數庫")是一個用於加速多媒體應用程序的可移植的底層函數庫。它具備C語言接口,其最新版本為2.5。 它最初由Sun開發,之後作為OpenSolaris項目的一部分在CDDL許可證下開源。
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多媒體擴展指令集進行優化
- 整數版本:針對無浮點運算能力或浮點性能較弱的芯片進行優化,這樣的芯片如UltraSPARC T1和一些定點嵌入式處理器
- 多線程版本:是在mediaLib之上以OpenMP對mediaLib函數進行的一個包裝,旨在為多媒體應用程序提供靈活的多線程擴展能力