Publisher: SynflowStatus: 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:
- Visual and interactive verification
- Integer arithmetic
- Efficient sliding-window line buffers
- Single work-item kernel
The general architecture of the core consists of three main modules:
- buffer: this module stores an image and provides the lines
- (x3) shift registers: these modules provide the pixels from the lines
- kernel: this module executes the Sobel operator
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.