In both the contrast stretching and window/level algorithms, monotonic and linear (and in the case of window/level, piece-wise linear) gray-level transform functions are applied to an image whose processed histogram yields an image of enhanced quality. In this section we consider a non-linear transform that takes into account the morphology of the input histogram. Consider […]

# Embedded Image Processing on the TMS320C6000 DSP

## Histogram Equalization (Image Processing) Part 2

Histogram Specification Histogram equalization is used as an intermediate step in a closely related and more useful spatial processing technique, histogram specification. As we have just seen, in histogram equalization a single output is generated – a transformed image with a flat, or uniform, probability distribution. In histogram specification, we generalize this algorithm so that […]

## Histogram Equalization (Image Processing) Part 3

Histogram Specification on the TI C6x EVM A histogram equalization implementation targeting the C6701 EVM, located in Chap3\histogram_equalization, is instructive in a number of ways. The obvious is that it is a C port of Algorithm 3-4, again making use of the IMGLIB function IMG_histogram. In addition, this program is illustrative of the fact that […]

## Image Enhancement Via Spatial Filtering (Image Processing) Part 1

In this topic we move on to a different but related set of algorithms, broadly classified as image filtering. The topic of filtering digital waveforms in one dimension or images in two dimensions has a long and storied history. The basic idea in digital image filtering is to post-process an image using standard techniques culled […]

## Image Enhancement Via Spatial Filtering (Image Processing) Part 2

Fast Convolution in the Frequency Domain Two-dimensional convolution is an expensive operation, and some image processing techniques call for repeatedly passing an image through a filter, such as the unsharp masking example of Figure 4-6. Even with efficient code running on architectures explicitly designed for fast digital filtering, such as DSPs, as the image and […]

## Linear Filtering of Images in MATLAB (Image Processing)

The Image Processing Toolbox includes a function imfilter that can be used to filter images. The first argument to this function is the image matrix, and the second argument is a matrix containing the filter coefficients. The command passes the image I through a 3×3 averaging filter. The ones function returns a constant matrix of […]

## Linear Filtering of Images on The TI C62XX/C67XX (Image Processing) Part 1

C6701 EVM image filtering programs may be found on the CD-ROM under the directory Chap4\LinearFilter\C62xxC67xx.As a consequence, neither the input image buffer nor the output image buffer fits in internal on-chip RAM, a situation that if not dealt with appropriately has deleterious effects on the efficiency of the code. Thus the implementations presented in this […]

## Linear Filtering of Images on The TI C62XX/C67XX (Image Processing) Part 2

Low-Pass Filtering Using DSPLIB (blur_dsplib) Through judicious use of the DSPLIB function DSP_fir_gen, which performs one-dimensional filtering of signals7, one can implement a two-dimensional filtering algorithm. This particular implementation is not as general as f ilter_imglib, as the variable H in this case is a ID array of length NH, and as a consequence the […]

## Linear Filtering of Images on The TI C62XX/C67XX (Image Processing) Part 3

Low-Pass Filtering with DSPLIB and Paging via DMA (blur_dsplib_paging_dma) The DMA controller on the C62xx/C67xx allows for the transferring of data between internal memory and external memory and peripherals without intervention by the processor8’31. The DMA controller can be used to perform burst transfers of data, where only the initial access incurs the 15-17 cycle […]

## Linear Filtering of Images on The TI C64X (Image Processing) Part 1

As described in 2.1, the C6416 fixed-point DSP is a newer member of the C6000 DSP family that offers higher performance than the C62xx series (it is not truly fair to compare the C64x to the C67x, as the C67x is a floatingpoint architecture). With regards to the CCStudio projects and C source code accompanying […]