



|
Embedded Image Processing on the TMS320C6000™ DSP: Examples in Code Composer Studio™ and MATLAB

This book’s original subtitle was Examples in Code Composer Studio™, MATLAB, and Visual Studio .NET 2003.
As you might imagine, this unwieldy subtitle was shortened due to its length. Nevertheless, it sums up the book in a
nutshell. Developing efficient implementations of computationally intensive algorithms in an embedded environment
is difficult, more difficult than developing such algorithms to run on desktop environments, where the developer
has access to practically unlimited amounts of memory, and very often does not need concern themselves with
low-level hardware and processor specific issues. Moreover, even though embedded integrated development
environments (IDEs), such as TI’s Code Composer Studio, have progressed by leaps and bounds in recent years,
they still at times lag when compared to their desktop counterparts. Hence it stands to reason that getting an
efficient embedded DSP implementation of complicated image processing algorithms should follow a multi-step
process. In this book, a tried-and-true procedure is followed for all image processing algorithms covered in the
book:
- A solid presentation of the underlying theory behind the algorithm is first given. While the book is primarily
application-oriented and is not meant as a substitute for canonical texts like Gonzales and Woods Digital Image
Processing, without a firm theoretical background it is difficult to understand how to optimize a given algorithm
to take advantage of the DSP architecture.
- MATLAB has become the lingua franca of technical computing,
and for each image processing algorithm MATLAB prototypes are given, with the source code of course provided
on the accompanying CD-ROM. Some of these prototypes utilize various toolboxes, most notably the Image
Processing Toolbox. However, in almost every case, care has been taken to present an alternative MATLAB
implementation that doesn’t rely on the toolbox.
- While MATLAB prototypes are wonderful for gaining a deeper understanding of how an imaging algorithm
goes about doing its job, by their very nature they are quite distinct from what the eventual embedded DSP
implementation will look like. To that end, in many cases MATLAB code is then ported over to C/C++, with all
the source code built, tested, and debugged using Microsoft Visual Studio .NET 2003. In many instances,
floating-point MATLAB routines are converted to fixed-point at this stage, with an eye towards an eventual
efficient implementation targeting the C6416 DSP. All example applications are of the “testbench” variety,
featuring some form of graphical user interface, implemented using a combination of MFC and GDI+.
- Of course, a book on embedded image processing would not be complete without actual source code built,
debugged, and tested on the DSP. By this point, much of the algorithm’s higher-level operation should be understood,
and here it is incumbent upon the programmer to now deal with all the idiosyncrasies that embedded development
brings to bear. Important topics like memory management (via DMA and proper construction of the linker command
file or DSP/BIOS configuration), low-level code optimization that takes advantage of the C6000’s unique architecture
(packed data optimizations and compiler intrinsics), and data transfer (RTDX or HPI) now factor into play and are
thoroughly explained in the context of their usage.
- Numerous algorithms in the book are turned into fully functional applications, with a desktop application
visualizing the results of interacting with an embedded DSP target that goes about performing the image processing
grunt work. Some of the applications are built using Visual Studio and communicate either via RTDX or HPI, while
others are MATLAB GUIs that again use standard TI data-transfer tools to shuttle data to and from the DSP.
More information about the book can be found on the publisher’s
site.
Some of the tools and technologies employed in this book follow. Note that all source code is provided on the CD-ROM,
and has all been thoroughly debugged. In particular, the embedded imaging algorithms have been tested on either the
fixed-point C6416 DSP Starter Kit (DSK) or floating-point C6701 EVM, and sometimes multiple versions are given.
Texas Instruments Tools and Technologies
- Code Composer Studio IDE
- DSP/BIOS (real-time operating system)
- DSPLIB and IMGLIB (one-dimensional signal processing and image processing libraries).
- CSL (Chip Support Library) and EVM support library.
- RTDX (Real-Time Data Exchange)
- HPI (Host Port Interface)
MATLAB Tools and Technologies
Visual Studio and C/C++ Tools, Frameworks, and Libraries
- Microsoft Foundation Classes (MFC, for building GUIs)
- GDI+ (for rendering of the 2D bitmapped images)
- Intel Integrated Performance Primitives
(a library used to aid in development of ultra-fast signal and image processing algorithms on the Pentium platform).
- COM (Component Object Model, for interfacing C++ code with TI’s RTDX COM objects to achieve data transfer)
|
|