Implementing Image Processing Algorithms in FPGA Hardware

Shrinath Palwankar
Image processing using FPGA
3 min readFeb 28, 2021

--

This article is all about the FPGA-based hardware design for image processing also the enhancement and filtering algorithms. FPGAs are used for real-time image processing applications. This technique used is a windowing operator technique to traverse the pixels and apply the filters to them.

FPGA

Let us take look at what is FPGA?

FPGA stands for field-programmable gate array. so, let us start with a basic definition. FPGA is a hardware circuit that can be programmed, and logical operations can be performed on it.

FPGA consists of a matrix of programmable logic cells, with a grid of interconnecting lines and switches between them. The board used for the algorithm implementation is the Xilinx Spartan-6 FPGA on a Nexys3™ board. The Spartan 6 family of FPGAs provides integration capabilities with the lowest total cost.

Windowing Operations

Let us quickly see windowing operations.

Windowing is the process of selecting some segment of the total pixel value range and then displaying the pixel values within that segment over the full brightness range from white to black.

In image processing, techniques are sometimes grouped together into a category called Windowing operators. Such techniques use a window, or a group of neighboring pixels, and consider the values of some, or all, of the pixels in the window.

Now let’s see the Implementation Methods.

1) Median Filter

This is especially useful in the case of “salt and pepper” noise, which is the noise that represents itself as randomly occurring black and white pixels on an image. The median filter is a nonlinear digital filtering technique.

2) Sorting Module Expanded

For the implementation, a combinational sort that is composed of smaller two-input sorting modules is used. Each small module takes only two inputs and gives the maximum and minimum value among them.

3)Smoothing Filter.

smoothing filter scans image pixel by pixel, and converts or replaces each pixel with a new value.

4) Sobel Edge Detection

The Sobel operator is used for edge detection algorithms in image processing. It is used to approximation the gradient of image intensity at every point of the image. If the edge is harder value becomes harder. It means hard edges appear brighter in the resulting map. Figure is shown below

5) Motion Blur

Motion blurring is achieved by blurring in only one direction, instead of all around the origin.

6) Emboss Filter

An emboss filter gives a us 3D effect of image. So the output we get is either positive or negative pixels. To use the negative pixels as shadow and positive ones as light, for a bump-map, a bias of 128 is added to the image.

References: Implementing Image Processing Algorithms in FPGA Hardware

By Mohammad I. AlAli, Khaldoon M. Mhaidat, and Inad A. Aljarrah

--

--