PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

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 (https://github.com/drichmond/PYNQ-HLS/blob/master/tutorial/notebooks/stream/0-How-To-HLS.ipynb), 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: https://github.com/kyk0910/HLS-canny-edge-detection). 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 https://github.com/Xilinx/PYNQ-ComputerVision/blob/master/boards/Pynq-Z1/notebooks/filter2d.ipynb