OpenMAX - The Standard for Media Library Portability
OpenMAX™ is a royalty-free, cross-platform API that provides comprehensive streaming media codec and application portability by enabling accelerated multimedia components to be developed, integrated and programmed across multiple operating systems and silicon platforms. The OpenMAX API will be shipped with processors to enable library and codec implementers to rapidly and effectively make use of the full acceleration potential of new silicon - regardless of the underlying hardware architecture.
OpenMAX AL 1.1 at a glance
- The OpenMAX AL 1.1 specification and header files are available in the Khronos Registry
- The OpenMAX AL 1.1 Quick Reference card.
OpenMAX AL 1.0.1 at a glance
OpenMAX AL is a royalty-free, cross platform open standard for accelerating the capture, and presentation of audio, video, and images in multimedia applications on embedded and mobile devices. OpenMAX AL includes the ability to create and control player and recorder objects and to connect them to configurable inputs and output objects including content readers/writers, audio inputs and outputs, display windows, cameras, analog radios, LEDs, and vibra devices.
- The OpenMAX AL 1.0.1 specification and header files are available in the Khronos Registry
OpenMAX IL 1.1 at a glance
The OpenMAX IL (Integration Layer) API defines a standardized media component interface to enable developers and platform providers to integrate and communicate with multimedia codecs implemented in hardware or software.
- The OpenMAX IL 1.1.2 specification and header files are available in the Khronos Registry
- OpenMax IL component sample (65 KB)
This source code is provided as a sample implementation of a base-profile OpenMax IL component. Although it passed OpenMax conformance tests at the time of publication, this code does not mandate how OpenMax should be implemented; it is simply one example of how OpenMax may be implemented. Because this sample is not being actively maintained and the conformance tests may evolve over time in subsequent revisions, it is possible that this sample will not pass all base profile conformance tests in the future.
- OpenMAX DL 1.0.2 Specification (.pdf, 1.5 MB)
- OpenMAX DL Changelog 1.0.1 -> 1.0.2 (.txt)
- OpenMAX DL 1.0.2 redline changes to 1.0.1 -- AVAILABLE SOON -- (.pdf)
- All OpenMAX DL 1.0.2.h header file (.zip, 76 KB)
- A sample OpenMAX DL 1.0.2 implementation written in C is available for download from ARM.
- Optimised OpenMAX DL libraries are available for ARM11 and Cortex-A8 processors from ARM.
- Version 1.0.1 headers All OpenMAX DL 1.0.1.h header file (.zip, 70 KB)
OpenMAX IL 1.0
OpenMAX DL 1.0 at a glance
OpenMAX DL (Development Layer) APIs contains a comprehensive set of audio, video and imaging functions that can be implemented and optimized on new CPUs , hardware engines, and DSPs and then used for a wide range of accelerated codec functionality such as MPEG-4, H.264, MP3, AAC and JPEG.
This version includes clarifications and corrections to the previous version (1.0.1). All implementations should aim to match this version for interoperability.
Development of multimedia hardware platforms is gathering pace as consumer demand grows for improved functionality from applications such as video, audio, voice, and 3D on platforms such as diverse as smartphones, audio and video media players and games consoles. In general, this class of product requires high-performance processing and high data throughput capabilities. Consequently, a variety of solutions has evolved, each designed to accelerate multimedia applications. Examples include:
- General purpose processors with specific multimedia extensions
- Low level hardware accelerators,
- Multiple processor architectures including DSPs
- Dedicated hardware video decoders
One of the key challenges with all of these architectural variants is to develop efficient code. Even though compilers are generally provided, it is rare to be able to exploit the full potential of the entire architecture from a high-level programming language. The outcome is that large portions of the application are often written in assembly language to specifically target the hardware platform. The proliferation of different multimedia hardware solutions means that software must be re-written and optimized for each new platform that it is ported to.
The effect of this inefficiency in implementation is to delay the introduction of new products, increase development costs and reduce product quality, which ultimately slows down innovation in the multimedia domain at a time when market demand is growing.
An Open Standard
To address this issue, the OpenMAX Working Group has been formed by the Khronos Group, to define a set of standard, open Application Programming Interfaces (APIs) for multimedia applications. The goal of this open standard is to reduce the cost and complexity of porting multimedia software to new processors and architectures.
By agreeing a common specification for middleware applications such as multimedia codecs, graphics libraries and other functions for video, image, audio, voice and speech, it will be possible for the developer community to focus on differentiating their products rather than the repeated implementation of common functionality. This will ensure that new products can be brought to market sooner, and will support a broader range of hardware platforms.
- OpenMAX AL (Application Layer)
OpenMAX AL provides a standardized interface between an application and multimedia middleware, where multimedia middleware provides the services needed to perform expected API functionality. OpenMAX AL provides application portability with regards to the multimedia interface.
- OpenMAX IL (Integration Layer)
OpenMAX IL serves as a low-level interface for audio, video, and imaging codecs used in embedded and/or mobile devices. It gives applications and media frameworks the ability to interface with multimedia codecs and supporting components (i.e., sources and sinks) in a unified manner. The codecs themselves may be any combination of hardware or software and are completely transparent to the user. Without a standardized interface of this nature, codec vendors must write to proprietary or closed interfaces to integrate into mobile devices. The principal goal of the IL is to give codecs a degree of system abstraction using a specialized arsenal of features, honed to combat the problem of portability among many vastly different media systems.
- OpenMAX DL (Development Layer)
OpenMAX DL defines an API which contains a comprehensive set of audio, video and imaging functions that can be implemented and optimized on new processors by silicon vendors and then used by codec vendors to code a wide range of codec functionality. It includes audio signal processing functions such as FFTs and filters, imaging processing primitives such as color space conversion and video processing primitives to enable the optimized implementation of codecs such as MPEG-4, H.264, MP3, AAC and JPEG. OpenMAX supports acceleration concurrency via both iDL, which uses OpenMAX IL constructs, and aDL which adds asynchronous interfaces to the OpenMAX DL API.
OpenMAX is a non-proprietary, royalty-free standard, primarily targeted at middleware developers producing multimedia codecs, games engines and graphics libraries. OpenMAX is widely applicable to all applications where multimedia performance is a critical issue, including smartphones, games consoles, digital televisions and set-top boxes. Through collaboration and support from a growing number of leading stakeholders, the standard will be developed and promoted, with wide industry support and adoption encouraged.
The working group welcomes the input and experience of existing Khronos members, and encourages new members with multimedia knowledge to join and help ensure that the specifications deliver benefits that are relevant to the entire industry. This includes semiconductor manufacturers, independent software vendors, intellectual property vendors, operating system companies and the OEM or product development companies that supply end users.