如何在FPGA中存储图像以进行实时视频处理?

问题描述 投票:0回答:1

我正在实时实施一个来自

HDMI
输入的视频处理项目。输入的视频将具有绿色背景,该背景将被存储在
FPGA
中的图像替换,以生成具有不同背景的新视频。我正在使用
PYNQ-Z2
板。

到目前为止,我已经尝试过以下方法:

  1. 无法将整个图像存储在

    BRAM
    中,因为空间不足

  2. 对图像使用第二个流,然后尝试混合这两个流(视频+图像)。无法同步 2 个流。

  3. 将图像存储在

    RAM
    中,并使用双缓冲方案加载
    BRAM
    中的部分图像。第一个缓冲区用于处理图像的1行。第二个用于通过
    DDR
    DMA
    内存加载下一行(
    DMA
    CPU
    控制)。当一行完成后,就会从
    FPGA
    CPU
    发送中断,以便可以从
    DDR
    内存发送下一行。另外,我切换缓冲区以便新数据开始加载。此解决方案在
    DMA
    传输中的延迟太大,并且视频输出中的图像损坏。

fpga xilinx vivado zynq vivado-hls
1个回答
0
投票

您也可以为 PL 连接 DDR4 内存,它可以在 PL 块设计中用作 FIFO 或像 BRAM 这样的大存储,并且它有几个 GB 的可用空间。不幸的是PYNQ-Z2板无法提供它,如果你开始使用更好的ZCU104开发板至少会更好,它有一个用于PL内存扩展的SODIM DDR4插槽。

© www.soinside.com 2019 - 2024. All rights reserved.