Why Should I Use It?
Codec Engine Overview 1-3
1.2 Why Should I Use It?
The Codec Engine is designed to solve some common problems
associated with developing system-on-a-chip (SoC) applications. The
most significant problems include:
❏ Debugging in a heterogeneous processor environment can be
painful. There are multiple debuggers and complex bootstrapping.
❏ Different implementations of the same algorithm, such as MP3, have
different APIs. Changing to a more efficient algorithm involves
significant recoding.
❏ Portability issues are compounded with two processors. You may
want to port to a different board with a newer DSP or a newer GPP.
❏ Some algorithms may run on either the GPP or the DSP. To balance
system load, “low complexity” algorithms can run on a GPP, but the
definition of “low” changes over time. If changing the location where
the algorithm runs were easy, you wouldn’t have to weigh
performance issues against the difficulty of changing the application.
❏ For market success, most applications need to support multiple
codecs to handle the same type of media. For example, an
application might need to support three or four audio formats.
❏ Programmers with a GPP (general-purpose processor) view don’t
want to have to learn to be DSP programmers. They don’t want to
have to worry about a DSP’s complex memory management and
DSP real-time issues.
The Codec Engine addresses these problems by providing a standard
software architecture and interfaces for algorithm execution. The Codec
Engine is:
❏ Easy-to-use. Application developers specify what algorithm needs
to be run, not how or where.
❏ Extensible and configurable. New algorithms can be added by
anyone, using standard tools and techniques.
❏ Portable. The APIs are target, platform, and even codec
independent.
G
P
P
+
D
S
P