Introduction
1-2
1.1
Overview of XDAIS, XDM, and IRES
TI’s multimedia codec implementations are based on the eXpressDSP Digital Media (XDM)
standard. XDM is an extension of the eXpressDSP Algorithm Interface Standard (XDAIS). IRES is
the interface for management and utilization of special resource types such as hardware
accelerators, certain types of memory, and DMA. This interface allows the client application to
query and provide the algorithm its requested resources.
1.1.1
XDAIS Overview
An eXpressDSP-compliant algorithm is a module that implements the abstract interface IALG. The
IALG API takes the memory management function away from the algorithm and places it in the
hosting framework. Thus, an interaction occurs between the algorithm and the framework. This
interaction allows the client application to allocate memory for the algorithm and also share memory
between algorithms. It also allows the memory to be moved around while an algorithm is operating
in the system. In order to facilitate these functionalities, the IALG interface defines the following
APIs:
algAlloc()
algInit()
algActivate()
algDeactivate()
algFree()
The
algAlloc()
API allows the algorithm to communicate its memory requirements to the client
application. The
algInit()
API allows the algorithm to initialize the memory allocated by the client
application. The
algFree()
API allows the algorithm to communicate the memory to be freed when
an instance is no longer required.
Once an algorithm instance object is created, it can be used to process data in real-time. The
algActivate()
API provides a notification to the algorithm instance that one or more algorithm
processing methods is about to be run zero or more times in succession. After the processing
methods have been run, the client application calls the
algDeactivate()
API prior to reusing any
of
the instance’s scratch memory.
The IALG interface also defines three more optional APIs
algControl()
,
algNumAlloc()
, and
algMoved()
. For more details on these APIs, see
TMS320 DSP Algorithm Standard API
Reference
(literature number SPRU360).
1.1.2
XDM Overview
In the multimedia application space, you have the choice of integrating any codec into your
multimedia system. For example, if you are building a video decoder system, you can use any of
the available video decoders (such as MPEG4, H.263, or H.264) in your system. To enable easy
integration with the client application, it is important that all codecs with similar functionality use
similar APIs. XDM was primarily defined as an extension to XDAIS to ensure uniformity across
different classes of codecs (for example audio, video, image, and speech). The XDM standard
defines the following two APIs:
control()