On July 6, the Khronos Group announced OpenMAX, an application programming interface (API) covering a set of basic functions used in graphics, still image, audi o, and video software. For example, OpenMAX will include API calls for video decompression sub-functions like the inverse discrete cosine transform. OpenMAX is intended to be a cross-platform API, enabling programmers to use the same function calls across a wide range of architectures.
According to Khronos, OpenMAX is a response to increasing diversity of embedded processors targeting multimedia applications. For example, mobile phones use a wide range of processors for video decoding. Some phones rely on general-purpose processors, some use digital signal processors, and some use specialized video accelerators.
The easiest way to achieve software portability across such a diverse group of architectures is to use high-level languages and to write software that is not processor-specific. Unfortunately, such practices usually produce inefficient multimedia software. To improve software efficiency, programmers typically use low-level optimization techniques, such as assembly-level programming. But it is very difficult to port this optimized software between processors. Instead, programmers typically create all-new optimizations for each processor. As a result, deploying multimedia software to a new processor is often a slow, expensive process.
Khronos hopes that OpenMAX will enable faster, less expensive deployment of multimedia software. When a processor vendor implements the OpenMAX library, programmers will be able to use API calls to optimize critical sections of code.
Khronos is not the first organization to see the need for a multi-platform set of multimedia functions. For example, Intel already offers the Integrated Performance Primitives (IPP) library of signal processing functions, which is available in x86-optimized and XScale-optimized versions. (For more information on IPP, see the May 2002 edition of BDTI’s DSP Insider.)
The OpenMAX specification is currently under development. It is expected to be finalized in the fourth quarter of 2004 and published in the first quarter of 2005. Upon its publication, the OpenMAX specification will be available for download from www.khronos.org. The first OpenMAX implementations will be released when the specification is published.