Bare-metal Sobel
Project attribution: Project done with Eric Abraham.
Source: The project’s source code is available here.
Short description: Bare-metal C program that parallelizes the Sobel algorithm.
Technologies: C
What I did: I designed and implemented parts of the custom FIFO, the data-parallel version, and parts of the hybrid version.
The code was written for a CompSoC platform developed at TU Eindhoven. The CompSoC platform is highly configurable, and can be set to have multiple RISC-V processor tiles, each managing a number of partitions. For this project we had 3 processor tiles, each with 3 partitions that could perform computations in parallel.
The Sobel algorithm is a classical computer vision algorithm that is used to detect edges of objects in images. It consists of 4 phases:
- Greyscale - transform the image to black & white
- Convolution - apply smoothing kernels to reduce noise in the image
- Sobel - apply the Sobel kernel to detect edges
- Overlay - apply the detected edges over the original image