5 ALGORITHM EXAMPLE
Consider an algorithm, where an FIR digital filter is
used for filtering according to a frequency domain
specification given while the processing is running.
For example, a user controlled audio equalization
algorithm could be implemented so that the user
controls are first converted to a frequency domain
target response. Then, a time domain impulse
response can be calculated using the inverse discrete
Fourier transform (IDFT). This time domain
response will then be used for actually filtering the
audio signal going through the equalizer.
This algorithm is characterized by the significant
amount of processing needed for transforming the
user controls to the response that can be used in
filtering. The target response typically needs
smoothing before the IDFT is calculated. After
moving to time domain, the response needs
windowing and truncation before it is ready to be
used as an FIR filter. On the other hand, FIR
filtering is an operation that is very efficiently
implemented on modern processors, especially on
dedicated signal processors. All this combined
means that the filter design phase easily takes
roughly the same number of processor cycles as
processing a short block of audio samples.
When this algorithm is implemented according to
the current architecture, the audio signal delay
through the system can be kept very low. There is no
need to queue up more audio buffers, even if it takes
a considerable amount of time to process the
parameter changes. Instead, the efficiency of the
standard FIR filtering can be leveraged fully, when
the parameter processing happens in an execution
thread separate from and parallel to the signal
processing thread. On the other hand, the interaction
latency is still determined by the time it takes to
transform the user controls to the FIR coefficients;
this time cannot be considerably shortened.
6 CONCLUSION
A component based audio software architecture for
an efficient realtime audio system was described in
this paper. The key feature that differentiates this
architecture from previous work is the systematic
division of the component functionality into two
groups of functions or methods. The benefit that this
division brings is that the processing load of the
realtime part can be kept substantially constant
regardless of the amount of interaction.
Constant processing load is a significant
improvement for DSP resource management,
because earlier systems have had to prepare for the
worst-case estimates (or take the risk for drop-outs).
The worst cases happen relatively seldom, thus
leading to the situation in which the best potential is
wasted.
In addition to the basic architecture, this paper
shortly described two different concrete
implementations. A digital filtering component with
a sophisticated on-line filter design algorithm was
also used to highlight the benefits of the architecture.
REFERENCES
Datta, J., Karley, B., Chen, T., Longley, L., Baudendistel,
K., and Dulanski, T., 1999. “Architecting a Versatile
Multi-Channel Multi-Decoder System on a DSP,”
Presented at the AES 106th Convention, Munich,
Germany, May 8-11, 1999.
Furse, R., 2006. “Linux Audio Developer's Simple Plugin
API (LADSPA),” available at <http://www.ladspa.
org/>, referenced June-12, 2006.
GStreamer, 2006. “GStreamer: open source multimedia
framework,” available at <http://www.gstreamer.org/>
referenced June-12, 2006.
ISO, 1999. Coding of multimedia objects (MPEG-4).
International Standard ISO/IEC 14496:1999, Geneva,
ISO.
Khronos Group, 2005. “OpenMAX Integration Layer
Application Programming Interface Specification,”
Version 1.0. available at <http://www.khronos.org/
openmax/>.
Lohan, F. and Defée, I., 2001. “Modularity in Open Media
Terminal System Architecture,” In Proc. 2001 IEEE
Int. Conf. on Multimedia and Expo, Tokyo, Japan,
August 22–25, 2001. pp. 708-711.
Microsoft, 2006. “DirectShow,” available at <http://msdn.
microsoft.com/library/default.asp?url=/library/en-us/
directshow/htm/directshow.asp>, referenced June-12,
2006.
Phillips, D., 2001. “Linux Audio Plug-Ins: A Look Into
LADSPA,” available at <http://www.linuxdevcenter.
com/pub/a/linux/2001/02/02/ladspa.html>, referenced
June-12, 2006.
Steinberg Media Technologies GmbH, 2006. “Our
technologies,” available at <http://www.steinberg.de/
325_1.html>, referenced June-12, 2006.
Texas Instruments, 2002. “TMS320 DSP Algorithm
Standard API Reference,” TI Literature Number
SPRU360C, 2002, available at <http://focus.ti.com/lit/
ug/spru360c/spru360c.pdf>, referenced June-12, 2006.
SIGMAP 2006 - INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING AND MULTIMEDIA
APPLICATIONS
294