2 years ago
#85514
Florence
How to store image in the FPGA for real time video processing?
I am implementing a video processing project in real time which comes from an HDMI input. The video input is going to have a green background, which will be replaced by an image stored in the FPGA in order to generate a new video with a different background. I am using PYNQ-Z2 board.
So far, I have tried the following:
Storing the whole image in
BRAMis not possible because there is not enough spaceUsing a second stream for the image and then try to mix the 2 streams (video + image). Cannot synchronize the 2 streams.
Store the image in
RAMand use a double buffering scheme to load part of the image inBRAM. The first buffer is used for the processing 1 row of the image. The second one is used for loading the next row fromDDRmemory via theDMA(DMAis controlled by theCPU). When a row is done, then an interrupt is sent from theFPGAto theCPUso that the next line can be sent fromDDRmemory. Also, I switch the buffers so that new data starts loading. This solution has too much latency in theDMAtransfer and the image in the video output is broken.
fpga
xilinx
vivado
zynq
vivado-hls
0 Answers
Your Answer