Sobel Filter

Publisher: Synflow

Status: FPGA Proven


The Sobel filter is used in image processing and computer vision for edge detection. It runs a discrete differentiation operator, computing an approximation of the gradient of the image intensity function. At each point in the image, the result of the Sobel operator is either the corresponding gradient vector or the norm of this vector. The Sobel operator is based on convolving the image with a small, separable, and integer valued filter in horizontal and vertical direction and is therefore relatively inexpensive in terms of computations.


The core provides the following features:


The general architecture of the core consists of three main modules:


Buffer is a optimize implementation of a buffer (a line buffer). It store an image within RAMs and send three lines one after another so that the Sobel operator can compute the edges (3 x 3 pixels).

Shift registers (x3) receive the lines from the Buffer and send one pixel after another to the Sobel operator. Using a shift register improve the performance and reduce the logic required.

kernel executes the Sobel operator on the pixels it receives. It processes the 3 x 3 pixels during a single clock cycle for maximum performance.


The core is connected directly to the application. The application must be ready to receive data any time and can send data when the core is ready.


This is an FPGA proven project.