DSPRelated.com
Forums

New Book: Embedded Image Proc. on the TMS320C6000 DSP

Started by shehrzad_q2000 March 11, 2005


Hello,

I am the author of the forthcoming book that many participants in
this group may be interested in: Embedded Image Processing on the
TMS320C6000 DSP (Examples in Code Composer Studio and MATLAB), to be
published by Springer, April 2005. A link to the publisher's site
for the book is:

http://www.springeronline.com/sgw/cda/frontpage/0,11855,4-40109-22-
44330381-0,00.html.

More information can be found at my personal site @
http://www.squreshi.com.

In this book I present the background behind numerous image
processing algorithms, and then proceed to implement these algorithms
on the fixed-point C6416 and/or floating-point C6701 DSPs. There are
chapters on spatial processing techniques, digital filtering of
images, segmentation/edge detection, and wavelets.

While the majority of the Code Composer Studio projects in the book
target the C6416 DSK, many also target the C6701 EVM as well.

All source code, along with test data, is included on the
accompanying CD-ROM. Examples utilizing important TI technologies
such as RTDX, HPI, DSPLIB, IMGILB, and DSP/BIOS in concert with
efficient implementations of a variety of image processing algorithms
make this book unique. Finally, in addition to the Code Composer
Studio projects, prototypes and front-end applications built with
Visual Studio .NET 2003 or MATLAB are also presented and fully
explained. A variety of MATLAB toolboxes, including Link for
Code Composer Studio, Image Processing Toolbox, and Wavelet Toolbox,
are used. Many common PC libraries and frameworks, including MFC,
GDI+, COM, and Intel Integrated Performance Primitives Library, are
utilized and explained to build the Visual Studio applications
presented in the book.

A detailed table of contents may be found at either of the
aforementioned sites, but I have also copied it to the end of this
message.

Cheers,

Shehrzad Qureshi 1. Introduction
1.1 Structure and Organization of the Book.
1.2 Prerequisites.
1.3 Conventions and Nomenclature.
1.4 CD-ROM.
1.5 The Representation of Digital Images.
1.6 DSP Chips and Image Processing.
1.7 Useful Internet Resources.
2 Tools.
2.1 The TMS320C6000 Line of DSPs.
2.1.1 VLIW and VelociTI.
2.1.2 Fixed-Point versus Floating-Point.
2.1.3 TI DSP Development Tools (C6701 EVM and C6416 DSK).
2.2 TI Software Development Tools.
2.2.1 EVM Support Libraries.
2.2.2 Chip Support Library.
2.2.3 DSP/BIOS.
2.2.4 FastRTS.
2.2.5 DSPLIB and IMGLIB.
2.3 MATLAB.
2.4. Visual Studio .NET 2003.
2.4.1 Microsoft Foundation Classes (MFC).
2.4.2 GDI+.
2.4.3 Intel Integrated Performance Primitives (IPP).
3 Spatial Processing Techniques.
3.1 Spatial Transform Functions and the Image Histogram.
3.2 Contrast Stretching.
3.2.1 MATLAB Implementation.
3.2.2 TI C67xx Implementation and MATLAB Support Files.
3.3 Window/Level.
3.3.1 MATLAB Implementation.
3.3.2 A Window/Level Demo Application Built
Using Visual Studio .NET 2003.
3.3.3 Window/Level on the TI C6x EVM 83.
3.4 Histogram Equalization.
3.4.1 Histogram Specification.
3.4.2 MATLAB Implementation.
3.4.3 Histogram Specification on the TI C6x EVM.
4 Image Filtering.
4.1 Image Enhancement via Spatial Filtering.
4.1.1 Image Noise.
4.1.2 2D Convolution, Low-Pass and High-Pass Filters.
4.1.3 Fast Convolution in the Frequency Domain.
4.1.4 Implementation Issues.
4.2 Linear Filtering of Images in MATLAB.
4.3 Linear Filtering of Images on the TI C62xx/C67xx.
4.3.1 2D Filtering Using the IMGLIB Library.
4.3.2 Low-Pass Filtering Using DSPLIB.
4.3.3 Low-Pass Filtering with DSPLIB and Paging.
4.3.4 Low-Pass Filtering with DSPLIB and Paging via DMA.
4.3.5 Full 2D Filtering with DSPLIB and DMA.
4.4 Linear Filtering of Images on the TI C64x.
4.4.1 Low-Pass Filtering with a 3x3 Kernel Using IMGLIB.
4.4.2 A Memory-Optimized 2D Low-Pass Filter.
4.5 Non-linear Filtering of Images.
4.5.1 Image Fidelity Criteria and Various Metrics.
4.5.2 The Median Filter.
4.5.3 Non-Linear Filtering of Images in MATLAB.
4.5.4 Visual Studio .NET 2003 Median Filtering Application.
4.5.4.1 Generating Noise with the Standard C Library.
4.5.4.2 Profiling Code in Visual Studio .NET 2003.
4.5.4.3 Various Median Filter C/C++ Implementations.
4.5.5 Median Filtering on the TI C6416 DSK.
4.6 Adaptive Filtering.
4.6.1 The Minimal Mean Square Error Filter.
4.6.2 Other Adaptive Filters.
4.6.3 Adaptive Image Filtering in MATLAB.
4.6.4 An MMSE Adaptive Filter Using the Intel IPP Library.
4.6.5 MMSE Filtering on the C6416.
5 Edge Detection and Segmentation.
5.1 Edge Detection.
5.1.1 Edge Detection in MATLAB.
5.1.2 An Interactive Edge Detection Application with MATLAB,
Link for Code Composer Studio, and RTDX.
5.1.2.1 DSP/BIOS.
5.1.2.2 C6416 DSK Target.
5.1.2.3 C6701 EVM Target.
5.1.2.4 Host MATLAB Application.
5.1.2.5 Ideas for Further Improvement.
5.2 Segmentation.
5.2.1 Thresholding.
5.2.2 Autonomous Threshold Detection Algorithms.
5.2.3 Adaptive Thresholding.
5.2.4 MATLAB Implementation.
5.2.5 RTDX Interactive Segmentation Application
with Visual Studio and the TI C6416.
5.2.5.1 C6416 DSK Implementation.
5.2.5.2 Visual Studio .NET 2003 Host Application.
6 Wavelets.
6.1 Mathematical Preliminaries.
6.1.1 Quadrature Mirror Filters and Implementing the 2D DWT in
MATLAB.
6.1.2 The Wavelet Toolbox.
6.1.3 Other Wavelet Software Libraries.
6.1.4 Implementing the 2D DWT on the C6416 DSK with IMGLIB.
6.1.4.1 Single-Level 2D DWT.
6.1.4.2 Multi-Level 2D DWT.
6.1.4.3 Multi-Level 2D DWT with DMA.
6.2 Wavelet-Based Edge Detection.
6.2.1 The Undecimated Wavelet Transform.
6.2.2 Edge Detection with the Undecimated Wavelet Transform.
6.2.3 Multiscale Edge Detection on the C6701 EVM and C6416 DSK.
6.2.3.1 Standalone Multiscale Edge Detector (C6701 EVM).
6.2.3.2 HPI Interactive Multiscale Edge Detector Application
with Visual Studio and the TI C6701 EVM.
6.2.3.2.1 C6701 EVM Target.
6.2.3.2.2 Visual Studio .NET 2003 Host Application.
6.2.3.3 Standalone Multiscale Edge Detector (C6416 DSK).
6.3 Wavelet Denoising.
6.3.1 Wavelet Denoising in MATLAB.
6.3.2 Wavelet Denoising on the C6x.
6.3.2.1 D4 DWT and IDWT functions on the C6416.
6.3.2.2 A C6416 Wavelet Denoising Implementation.
Appendix A Putting it together: a streaming video application.
A.1 Creation and Debugging of MEX-files in Visual Studio .NET 2003.
A.1.1 The import_grayscale_image MEX-file.
A.1.2 A MEX-file for HPI communication between MATLAB and the C6x
EVM.
A.2 The C6701 EVM Program.
A.3 MATLAB GUI.
A.4. Ideas for Further Improvement.
Appendix B Code Optimization.
B.1 Intrinsics and Packed Data Processing.
B.1.1 Packed Data Processing.
B.1.2 Optimization of the Center of Mass Calculation
on the C64x Using Intrinsics.
B.2 Intrinsics and the Undecimated Wavelet Transform.
B.3 Convolution and the DWT.