Texas Instruments Codec Engine Server manual Editing the Build Script

Page 31

Creating a Codec Server

2.2.4.1DSP/BIOS Threads and Module Use

Each “remote” algorithm instance that runs on the DSP executes in a DSP/BIOS thread whose priority is specified by a static configuration parameter (see ti.sdo.ce.Server). The stack size of the thread that runs a “remote” algorithm is specified by the algorithm’s implementation of the ICodec interface (see ti.sdo.ce.ICodec).

The initial release of the Codec Engine runtime starts a separate thread for each “remote” algorithm instance; thus, two instances of the same algorithm run in two separate threads (even though these threads have the same stack size and priority). Future releases may run these instances in a single thread. However, algorithm instances that require different priorities will always be run in separate threads.

Creation and deletion of algorithm instance threads is handled by a Resource Manager Server (RMS) thread. This thread is part of the Codec Engine Runtime and, by default, runs at the lowest possible priority so as to avoid affecting real-time processing performed by “remote” algorithm instances. The RMS thread also provides “resource monitoring” services to the Codec Engine Runtime. For example, it reports overall DSP CPU load to the GPP, transfers execution trace data from the DSP to the GPP, and controls the acquisition of DSP trace information based on GPP commands.

Although the Codec Engine uses the DSP/BIOS CLK services, the initial release does not require timer interrupts and configures the DSP/BIOS CLK interrupt to run once every 5 seconds. In the future, the Codec Engine may require interrupts rates as high as 1/second to support watchdog timers and recovery from IPC failures.

In order to support CPU load monitoring, the Codec Engine adds an idle function to DSP/BIOS’s idle loop. The current implementation allows other application-specified idle functions to also run. However, to support low power modes of the DSP, future implementations may idle the CPU, which prevents other idle functions from running.

Note that the changes mentioned in this section are not certain. We are simply pointing out areas of the implementation that may be subject to change in future releases.

2.2.5Editing the Build Script

Edit the package.bld file with a text editor. This build script is run by the makefile. In addition to compiling code, the build script runs the DSP/BIOS and XDC configuration scripts and links the executables together.

Configuring a Codec Server

2-15

Image 31
Contents Codec Engine Server Integrator Users Guide Important Notice Preface Notational Conventions Contents Page This chapter introduces the Codec Engine Topic Codec Engine OverviewWhat is the Codec Engine? Why Should I Use It? Role 3 Core Engine APIs Where Does the Codec Engine Fit into My Architecture?Visa APIs Video Encode Core Engine APIs Visa APIs RuntimeAlgorithm Creator What Are the User Roles?Server Integrator Application Author Engine IntegratorExample Build and Run Instructions Where Can I Get More Information?Configuration Reference Codec Engine API ReferencePage Configuring a Codec Server Overview What is the Execution Flow? What is a Codec Server?Overview What About Single-Processor Systems? What Algorithms Can a Codec Server Integrate? What is the Config Kit?What Examples Exist? Creating a Package Creating a Codec ServerEditing the Package Definition Editing the Codec Server Configuration ScriptVar LogServer = xdc.useModuleti.sdo.ce.bioslog.LogServer Creating a Codec Server Controlling I/O Buffer Caching for xDM 0.9 Codecs Specifying Scratch Group and DMA Resources for a Codec Server.algs.groupId More About the groupId FieldEngine.algs.groupId Editing the DSP/BIOS Configuration ScriptEditing the Build Script 4.1 DSP/BIOS Threads and Module UseEditing the makefile Editing the Linker Command FileDelivering a Codec Server Editing the main.c FileDelivering Server Packages for Servers Built with XDC Delivering a Codec Server Index Index

Codec Engine Server specifications

Texas Instruments Codec Engine Server (CES) is a powerful software framework designed to handle audio and video processing on embedded systems. It serves as a bridge between high-level application programming and low-level codec implementations, simplifying the development of multimedia applications. The Codec Engine's primary focus is on optimizing media codecs for applications such as telecommunications, video conferencing, multimedia playback, and streaming services.

One of the standout features of the CES is its ability to support multiple codecs simultaneously, allowing developers to efficiently decode and encode various media formats in real time. This flexibility is crucial for applications that demand high-quality audio and video processing without compromising performance. Furthermore, the CES architecture promotes modular design, enabling developers to swap in and out different codec implementations based on specific project requirements.

The CES leverages advanced technologies including simultaneous multithreading, which maximizes the processing power of multi-core processors. With this capability, developers can allocate threads efficiently across multiple cores, tackling demanding tasks without latency. Additionally, the framework supports dynamic codec allocation, meaning that resources can be managed and adjusted on-the-fly as needed, ensuring optimal performance in varying conditions.

Another significant characteristic of the CES is its compatibility with various Texas Instruments DSP (Digital Signal Processor) platforms. This ensures that developers can take advantage of the specialized capabilities of TI's hardware, including their power management features and high-performance processing capabilities. The integration of hardware and software within the CES architecture allows for optimized resource utilization, leading to energy-efficient applications.

The development process is further streamlined through the use of a comprehensive API (Application Programming Interface) that provides access to codec functionalities while abstracting the complexities of underlying hardware. This allows developers to focus on building high-level features without getting bogged down in low-level programming details.

In conclusion, Texas Instruments Codec Engine Server stands out as a robust solution for developers aiming to create high-performance media applications. Its support for multiple codecs, efficient resource management, and compatibility with TI DSP platforms make it an indispensable tool in the multimedia processing space. By facilitating seamless interaction between hardware and software, CES empowers developers to deliver richer multimedia experiences in their applications.