Embedded Image Processing on the TMS320C6000 DSP

Wavelet Demising (Image Processing) Part 2

Wavelet Denoising on the C6x In order to provide a practical wavelet denoising system running on the C62x/C67x/C64x DSP platform, we require efficient implementations of the three operations enumerated in Algorithm 6-2: the forward wavelet transform, threshold operator, and inverse wavelet transform. In 6.1.4, the use of the IMGLIB forward wavelet transform functions was discussed, […]

Wavelet Demising (Image Processing) Part 3

A C6416 Wavelet Denoising Implementation Once IDWT functions are available, implementing wavelet denoising is not particularly difficult. In fact, most of the complications in this particular implementation arise from the fixed-point standard deviation computation. In the Chap6\denoise directory, a C6416 DSK project that implements Algorithm 6-3 can be found. This project is mostly the same […]

Creation and Debugging of Mex-Files in Visual Studio .NET 2003 (A Streaming Video Application) (Image Processing) Part 1

Throughout this topic, a variety of image processing algorithms and host/target data transfer techniques have been discussed and used to prototype "test-bench" applications.In some respects, video processing can be thought of as adding another dimension – time – to image processing. If we think of a video stream as a time sequence of image frames, […]

Creation and Debugging of Mex-Files in Visual Studio .NET 2003 (A Streaming Video Application) (Image Processing) Part 2

A MEX-file for HPI communication between MATLAB and the C6x EVM The project for the MEX-file that enables the high-speed transfer of images between MATLAB and the C6701 EVM, a la the communication protocol explained in 6.2.3.2.The DLL hpi_img_xfer.dll hosts the MEX-file and has dependencies on the three EVM host library DLLs (evm6xmsg.dll, evm6xdm.dll, and […]

The C6701 EVM Program (A Streaming Video Application) (Image Processing)

If you have read previous sections of this topic, in particular 4.5.2 and 6.2.3.2, then the code shown here should be fairly self-explanatory.Upon receiving an image, it then uses an IMGLIB function to process the frame with a 3×3 median filter (see 4.5.2). The code presented in 6.2.3.2.1 was an example of how a C6701 […]

MATLAB GUI (A Streaming Video Application) (Image Processing)

As described in 5.1.1, creation of a MATLAB GUI using the GUIDE designer results in two MATLAB files being created, a figure file with the .fig extension and an M-file with the actual code for each GUI dialog in the application. In this case, the M-file for the GUI is median_filter_video.m, and the interesting callbacks […]

Ideas For Further Improvement (A Streaming Video Application) (Image Processing)

On a 2.8 GHz Pentium with 1 GB RAM and 533 MHz front side bus communicating with a C6701 EVM back-end, the total performance of this video demo is about four frames per second. While a portion of the performance lag is attributable to problems with the host HPI library (see the discussion in 6.2.3.2.2), […]

Intrinsic and Packed Data Processing (Code Optimization ) (Image Processing) Part 1

Full blown code optimization of complicated algorithms is some of the most difficult work to do on a DSP; in fact it is some of the most difficult programming to do on any architecture. As soon as you find yourself in the situation where you are "cycle-counting", you may possibly be at the point where […]

Intrinsic and Packed Data Processing (Code Optimization ) (Image Processing) Part 2

Optimization of the Center of Mass Calculation on the C64x Using Intrinsics In 5.2.5.1, a C6416 implementation of the isodata algorithm for automatic threshold computation was discussed. The isodata algorithm calls for computing the center-of-mass of two portions of the smoothed image histogram, where the image histogram is split by the current threshold. The isodata […]

Intrinsics and The Undecimated Wavelet Transform (Code Optimization ) (Image Processing)

The increased memory bandwidth of the C64x and C67x DSPs allow us to apply certain packed data optimizations that processors without 64-bit support are excluded from. Section 6.2.3 features an implementation of a fixed-point multiscale edge detector using a simplified version of the "algorithme a trous", where at one point we need to compute the […]