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函数进行的一个包装,旨在为多媒体应用程序提供灵活的多线程扩展能力