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, Fadi N. Sibai, Tamer Rabie
Copyright: © 2009 |Pages: 11
DOI: 10.4018/jitr.2009062906
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

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
Top

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)

jitr.2009062906.f01

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)

jitr.2009062906.f02

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
Volume 16: 1 Issue (2024): Forthcoming, Available for Pre-Order
Volume 15: 6 Issues (2022): 1 Released, 5 Forthcoming
Volume 14: 4 Issues (2021)
Volume 13: 4 Issues (2020)
Volume 12: 4 Issues (2019)
Volume 11: 4 Issues (2018)
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