Parallelization and Performance Evaluation of an Edge Detection Algorithm on a Streaming Multi-Core Engine

Parallelization and Performance Evaluation of an Edge Detection Algorithm on a Streaming Multi-Core Engine

Hashir Karim Kidwai (UAE University, UAE), Fadi N. Sibai (UAE University, UAE) and Tamer Rabie (UAE University, UAE)
Copyright: © 2009 |Pages: 11
DOI: 10.4018/jitr.2009062906

Abstract

In the world of multi-core processors, the STI Cell Broadband Engine (BE) stands out as a heterogeneous 9-core processor with a PowerPC host processor (PPE) and 8 synergic processor engines (SPEs). The Cell BE architecture is designed to improve upon conventional processors in graphics and related areas by integrating 8 computation engines each with multiple execution units and large register sets to achieve a high performance per area return. In this paper, we discuss the parallelization, implementation and performance evaluation of an edge detection image processing application based on the Roberts edge detector on the Cell BE. The authors report the edge detection performance measured on a computer with one Cell processor and with varying numbers of synergic processor engines enabled. These results are compared to the results obtained on the Cell’s single PPE with all 8 SPEs disabled. The results indicate that edge detection performs 10 times faster on the Cell BE than on modern RISC processors.
Article Preview

Edge Detection

Detecting edges is a fundamental application in image processing and early computer vision. The edges of objects appearing in an image hold much of the information in the image. The image edges give the locations of where items are, their size, shape, and something about their texture. An edge is where the gray level of the image moves from an area of low values to high values or vice versa (Canny, 1986; Deriche, 1987; Lindeberg, 1998; Lindeberg 1994; Zhang & Bergholm. 1997; Ziou & Tabbone, 1998). The edge itself is at the center of this transition. An edge detector should return an image with gray levels like those shown in the lower part of Figure 1. An edge is defined by a discontinuity in gray-level values.

Figure 1.

Graphs of gray scale values at an edge. (Top) A single row from an image representing an edge. (Bottom) Result of an edge detection operator applied to edge of (Top)

To illustrate why edge detection is a non-trivial task, let us consider the problem of detecting edges in the one-dimensional signal of Figure 2. Here, we may intuitively say that there should be an edge between the 4th and 5th pixels due to the large difference in values between the gray level intensity of pixel 4 (4) and pixel 5 (152). If the intensity difference was smaller between the 4th and 5th pixels, it would not be as easy to say that there should be an edge in this corresponding region (Wikipedia).

Figure 2.

Gray level values of a one-dimensional edge. (Courtesy wikipedia.org)

The detected edge is a bright spot at the edge and dark areas everywhere else. Edge detection is often referred to as image differentiation.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 12: 4 Issues (2019): Forthcoming, Available for Pre-Order
Volume 11: 4 Issues (2018): 3 Released, 1 Forthcoming
Volume 10: 4 Issues (2017)
Volume 9: 4 Issues (2016)
Volume 8: 4 Issues (2015)
Volume 7: 4 Issues (2014)
Volume 6: 4 Issues (2013)
Volume 5: 4 Issues (2012)
Volume 4: 4 Issues (2011)
Volume 3: 4 Issues (2010)
Volume 2: 4 Issues (2009)
Volume 1: 4 Issues (2008)
View Complete Journal Contents Listing