PYNQ image processing on Zedboard using DMA

Hi.

I’m trying to do some image processing using PYNQ on Zedboard. Here’s what I achieved so far.

Following this project (PYNQ-HLS/0-How-To-HLS.ipynb at master · drichmond/PYNQ-HLS · GitHub), I was able to create a bitstream. The only difference is that I created an IP core using Vivado HLS to do canny edge detection (based on this: GitHub - medalotte/HLS-canny-edge-detection: FPGA implementation of Canny edge detection by using Vivado HLS). So far, so good. I can use my overlay, the result is correct but the fps not.

I have compared my results with the opencv Canny function and the fps is almost the same with a 225x400 image. So my question is, can I accelerate the DMA data transfer? Because using the fist tutorial, the transfer always took at least 10 ms.

Thanks.

I am guessing the edge detection core is the only IP core you have in your block design. What you also need is the HDMI pipeline, which does the video DMA and a lot of other good things. You can start with the base overlay of Pynq-Z1/Z2, delete all unnecessary components, leaving only the HDMI pipeline. Then hook up your edge detection core. You may want to have a look at PYNQ-ComputerVision/filter2d.ipynb at master · Xilinx/PYNQ-ComputerVision · GitHub