The github repository for hls projects - Sobel Filter
Directory structure
-
README.md - introduce the project, algorithm, usage, reference and contact information
-
code/
- original - The original code from Xilinx application note open source
- final - The optimized kernel code is in this directory, also including Python host code
-
testdata/ - include input test data, and output result data
-
impl/ - result of the implementation, e.g. HLS csynth report
-
Open Vivado HLS
- We use Xilinx ZedBoard Evaluation and Development Kit to evaulate this project
- Add sobel.cpp, sobel.h, ap_bmp.cpp, ap_bmp.h, ap_video.h into Source file
- Add sobel_test.cpp, test_1080p.bmp, result_1080p_golden.bmp into Test Bench
-
Run C Simulation, Run Synthesis, Run Cosimulation, Export IP
-
Open Vivado 2019.2
-
Import IP and create Block design
-
Generate Bitstream 6.Using PYNQ to control Zedboard
Sobel edge detection is a classical algorithm in the field of image and video processing for the
extraction of object edges.
Edge detection using Sobel operators works on the premise of computing an estimate of the first derivative of an image to extract edge information.
By computing the x and y direction derivatives of a specific pixel against a neighborhood of
surrounding pixels, it is possible to extract the boundary between two distinct elements in an
image.
Due to the computational load of calculating derivatives using squaring and square root
operators, fixed coefficient masks have been adopted as a suitable approximation in computing
the derivative at a specific point.