Multimedia Framework Products (MFP)
A major advantage of programmable DSPs over fixed-function devices is their ability to accelerate multiple multimedia functions in a single device. TI multimedia framework products are designed to enable users to easily share a DSP between algorithms by handling issues like data buffer cache coherency, DMA resource contention, and efficient use of scratch memory. Developers can then leverage their application-specific expertise to create differentiated products.
TI provides both a codec execution framework, known as Codec Engine, as well as lower-level components for developers who wish to create an eXpressDSP-compliant framework from scratch. If you previously used TI References Frameworks (such as RF5), please contact TI for information on these.
Multimedia Framework Products (MFP) - Codec Engine and xDAIS Framework Components
Codec Engine - Codec Engine is a codec execution framework that automates the invocation and instantiation of eXpressDSP-compliant codecs and algorithms. Codec Engine can execute in ARM-only, ARM-DSP, or DSP-only environments and supports concurrent execution of multiple channels and codecs. It does not provide A/V synchronization or manage application I/O, but rather accepts and delivers elementary audio and video streams. Codec Engine is designed to be used in conjunction with higher layer frameworks or middleware that provide a/v synchronization, video port and disk I/O, or network streaming while calling Codec Engine's eXpressDSP-compliant APIs for actual encoding, decoding, and processing. This approach enables system providers to easily differentiate their applications while still leveraging Codec Engine.
In the ARM environment, Codec Engine is currently ported to the Linux operating system. Contact your TI sales representative to inquire about availability of Codec Engine for other ARM operating systems. In DSP environments, Codec Engine uses the DSP/BIOS operating system. Codec Engine performs the following functions:
xDAIS Framework Components
- Automated dynamic instantiation of eXpressDSP-compliant codecs, including creation of a DSP/BIOS task to execute the codec and providing DMA and scratch memory resources as requested by the codec through the IALG and IDMA interfaces. Codec Engine simplifies the task of efficiently executing multiple codecs on a single DSP.
- Transparent execution of codecs regardless of where the application resides with the respect to the codecs. In some ARM-DSP applications, it may be desirable to execute audio codecs, for example, on the ARM and video codecs on the DSP. In addition, developers may have multiple versions of an application code base, some using ARM-DSP based devices and others using DSP-only devices. Codec Engine provides the same application interface for invoking a codec regardless of whether the codec resides on the same core or whether it needs to be invoked remotely on a DSP from an ARM. Codec Engine automatically handles the remote invocation and execution and any required cache management for the data buffers.
- Codec Engine provides APIs for acquiring system resource data, such as DSP CPU and memory usage by codecs. Developers can view this system resource data using the Eclipse-based Data Visualization Toolkit.
- Codec Engine provides standardized configuration tooling for creating the codec combinations needed for a specific application.
- For developers who prefer complete control over application development, TI also provides low-level components that enable a framework to easily interact with eXpressDSP-compliant algorithms. xDAIS Framework Components query algorithms for their memory and DMA resource requirements and then enable sharing of resources if desirable.
xDAIS Framework Components include the following three modules:
- DSKT: DSKT uses the xDAIS IALG interface to determine what system memory resources they require and then allocates the memory while instantiating the codec.
- DMAN3: DMAN uses the xDAIS IDMA3 interface to determine which DMA resources are required by a codec. DMAN3 includes several enhancements to take full advantage of the DMA (including QDMA and EDMA 3.0) capabilities offered by the 64+ core.
- ACPY3: ACPY3 is commonly used by video codecs that frequently perform memory-to-memory copies. ACPY3 performs fast DMA-based memory-to-memory copies using DMA resources acquired through DMAN3. ACPY3 is highly optimized to deliver maximum performance for 64+ devices.
Multimedia Framework Products (MFP)
Multimedia Framework Products (MFP) - Downloads
- includes the following: