Overview

2.1.1What is a Codec Server?

 

 

 

 

 

P

 

 

 

 

S

 

 

 

D

 

 

 

+

 

 

 

P

 

 

 

P

 

 

 

 

G

 

 

 

 

 

A Codec Server is a binary that integrates codecs, framework components, and system code. When the Codec Server is on a DSP, it uses DSP/BIOS as the DSP kernel.

In the context of the DaVinci DM644x platforms (and other GPP+DSP platforms), a Codec Server is a DSP binary. It includes a DSP/BIOS task thread that responds to requests from a client to create codecs, provide performance information (MIPS and MEM usage).

A Codec Server performs similarly to a web server. Just as the term "web server" can refer to the actual hardware, the configured software, or the executing daemon, the term "Codec Server" can refer to the DSP, the configured image loaded on the DSP, or the executing task.

The GPP application uses the VISA APIs to invoke remote codecs on the DSP. From the perspective of the GPP application, codec execution is completely transparent, and behaves the same whether the codecs are local (on the GPP) or remote (on the DSP). When remote, Codec Engine automatically manages the necessary creation, communication, invocation, and eventual deletion of codecs from the DSP.

2.1.2What is the Execution Flow?

As an example of the execution flow, on a dual-CPU system, such as the DM644x device, the following steps summarize the execution flow when a GPP application uses a remote codec to perform audio encode on the DSP. After opening the engine, the application makes calls to the VISA APIs, which manage the three phases of remote codec execution as follows:

1)The application calls the VISA creation API (for example, AUDENC_create() ) to create an algorithm instance on the DSP:

First, a generic instance object is created on the GPP to hold the necessary state, handles, function pointers, etc.

A local "node" object is created to receive communication from the "remote" node.

A "create" message is formed to signal the function dispatcher on the DSP to create the remote node instance.

The creation message is sent to the dispatcher on the DSP.

On the DSP, the dispatcher receives the "create" message. Some error checks are performed, and the DSP-side state objects are created and initialized.

Configuring a Codec Server

2-3

Page 19
Image 19
Texas Instruments Codec Engine Server manual What is a Codec Server?, What is the Execution Flow?

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.