1 year 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
BRAM
is 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
RAM
and 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 fromDDR
memory via theDMA
(DMA
is controlled by theCPU
). When a row is done, then an interrupt is sent from theFPGA
to theCPU
so that the next line can be sent fromDDR
memory. Also, I switch the buffers so that new data starts loading. This solution has too much latency in theDMA
transfer and the image in the video output is broken.
fpga
xilinx
vivado
zynq
vivado-hls
0 Answers
Your Answer