mediaLib (from "multimedia library") is a
portable
Portable may refer to:
General
* Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work
* Portable classroom, a temporary building installed on the grounds of a school to provide ...
low level library for accelerating
multimedia
Multimedia is a form of communication that uses a combination of different content forms such as text, audio, images, animations, or video into a single interactive presentation, in contrast to tradit ...
applications, with interfaces in
C. It was developed by
Sun Microsystems and
open-sourced under the
CDDL
The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under o ...
license as part of the
OpenSolaris project.
It is implemented in
ANSI C
ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and th ...
, but can take advantage of
SIMD
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it shoul ...
multimedia instructions on various processors to gain a significant performance boost. It was originally designed to leverage
VIS on
SPARC
SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system develope ...
processors and later added support for
MMX/
SSE/
SSE2 on
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
/
AMD
Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company based in Santa Clara, California, that develops computer processors and related technologies for business and consumer markets. While it initially manufactur ...
processors.
Since mediaLib is written in C and
SIMD
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it shoul ...
multimedia compiler intrinsics, it should be usable on any system that has an ANSI C compiler that supports SIMD multimedia intrinsics. Systems without SIMD intrinsics support can also use it as pure ANSI C, forgoing any extra acceleration provided by SIMD multimedia instructions. It is also included as part of
Solaris 10.
mediaLib 2.5 contains about 4000 files and 2.4 million lines of code, and contains more than 3000 functions for different areas:
*
algebra
Algebra () is one of the broad areas of mathematics. Roughly speaking, algebra is the study of mathematical symbols and the rules for manipulating these symbols in formulas; it is a unifying thread of almost all of mathematics.
Elementary ...
*
matrix
Matrix most commonly refers to:
* ''The Matrix'' (franchise), an American media franchise
** ''The Matrix'', a 1999 science-fiction action film
** "The Matrix", a fictional setting, a virtual reality environment, within ''The Matrix'' (franchis ...
*
image
*
graphics
*
signal processing
Signal processing is an electrical engineering subfield that focuses on analyzing, modifying and synthesizing ''signals'', such as sound, images, and scientific measurements. Signal processing techniques are used to optimize transmissions, ...
*
video
Video is an electronic medium for the recording, copying, playback, broadcasting, and display of moving visual media. Video was first developed for mechanical television systems, which were quickly replaced by cathode-ray tube (CRT) syst ...
*
audio
Audio most commonly refers to sound, as it is transmitted in signal form. It may also refer to:
Sound
* Audio signal, an electrical representation of sound
*Audio frequency, a frequency in the audio spectrum
* Digital audio, representation of sou ...
*
speech
*
volume rendering
In scientific visualization and computer graphics, volume rendering is a set of techniques used to display a 2D projection of a 3D discretely sampled data set, typically a 3D scalar field.
A typical 3D data set is a group of 2D slice imag ...
Open source applications that use mediaLib include
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
,
JDS for Solaris,
mplayer
MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for DOS using ...
, and
ogle
Ogle may refer to:
Places
* Ogle County, Illinois, United States
* Original name of Ashton, Illinois, a village
* Ogle, Kentucky, United States, an unincorporated community
* Ogle Township, Somerset County, Pennsylvania, United States
* Ogle, N ...
.
There are several mediaLib versions targeting different platforms, but all share the same
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
, so users can switch from one platform to another without changing source code:
*Standard C: written in pure ANSI C, with some general code optimization for performance
*VIS/VIS2/VIS3: optimized for SPARC chips with VIS/VIS2/VIS3 multimedia instruction sets
*MMX/SSE/SSE2: optimized for Intel/AMD chips with MMX/SSE/SSE2 multimedia instruction sets
*Integer: optimized for chips that have no or limited
floating point
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can b ...
capabilities, such as
UltraSPARC T1
Sun Microsystems' UltraSPARC T1 microprocessor, known until its 14 November 2005 announcement by its development codename "Niagara", is a multithreading, multicore CPU. Designed to lower the energy consumption of server computers, the CPU typ ...
and some embedded chips
*Multi-threaded version: A thin wrapper layer built with
OpenMP
OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating syst ...
on top of mediaLib, providing flexible multithreading multimedia acceleration for applications
External links
mediaLib source code
C (programming language) libraries
Free software programmed in C
Multimedia frameworks
Multimedia software
Sun Microsystems software