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

Textbooks



Table of Contents

Image Gallery

Errata (Updated 2/5/2006)



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:
  1. 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.
  2. 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.
  3. 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+.
  4. 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.
  5. 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)


















Problems with this site? Please contact the Webmaster at webmaster@squreshi.com
This site is © Copyright Shehrzad Qureshi 2004-2009, All Rights Reserved.
Free web templates