赛灵思 Xilinx 视频系列 34:Video Frame Buffer IP 入门指南(含 Vitis 中的应用示例)

Video Frame Buffer IP 简介

Video Frame Buffer Read/Write IP 支持您将视频数据从存储器域(AXI4 存储器映射接口)迁移到 AXI4-Stream 接口,或反之亦然。

从更高层次来看,它的作用与我们在先前视频系列(视频系列 24视频系列 25视频系列 26 等)中所使用过的 AXI VDMA IP 并无差异。

那么为什么要使用 Video Frame Buffer IP 核而不是 AXI VDMA IP 呢?

答案就记录在(赛灵思答复记录 72543中。究其本质,AXI VDMA IP AXI4-Stream 接口提取字节,并直接将其移植到存储器中,无关乎视频数据格式。

Video Frame Buffer 必须关注传入传出存储器的数据格式。根据所选格式,它能以不同方式将数据存储在存储器中。这对于 Linux 应用非常实用。

比如,V4L2 格式 YUYV UYVY 都表示 YUV4:2:2 8 位,唯一差别就在于两者在存储器中的存储方式。

因此,建议针对新设计采用 Video Frame Buffer IP

如需了解有关 Video Frame Buffer Read/Write IP 的详情,请参阅 (PG278)

Video Frame Buffer IP 生成设计示例

注意:下文是基于 2019.2 版本中提供的设计示例编写的。

硬件 (Vivado 2019.2) 设计示例

要生成应用设计示例的硬件部分 (Vivado Design),请遵循 (PG278) 的第 5 章中的步骤进行操作。此处设计示例可用于 KC705ZCU102ZCU104 ZCU106 评估板。即使您没有上述任意评估板,我也建议从设计示例开始实践。这始终都是最佳的起点。

注意:要利用 Vivado WebPack 许可证生成设计示例,请使用 ZCU104 评估板作为起点开始操作。

设计示例分为两种。一种用于 Video Frame Buffer Read IP,另一种用于 Video Frame Buffer Write IP

我建议使用面向 Video Frame Buffer Write IP 的设计示例,因为 Video Frame Buffer Write IP Video Frame Buffer Read IP 都囊括在其中。

Video Frame Buffer Write IP 设计示例的硬件设计属于非常基础性的设计。

它使用 Video Frame Buffer Read IP 将数据从存储器读取到 AXI4-Stream 接口。

随后,将其转换为本地视频,然后再使用 AXI4-Stream to Video Out IP Video in to AXI4-Stream IP 重新转换为 AXI4-Stream

最后使用 Video Frame Buffer Write IP AXI4-Stream 数据重新写入存储器。

 

我认为对于此设计,有两个值得注意的要点:

  1. 上述两个 Video Frame Buffer IPRead Write)各自的中断输出都连接到处理器。这是前提条件。Video Frame Buffer 是基于中断的 IP

 

  1. 而这两个 Video Frame Buffer IP 的复位输入则连接至 AXI GPIO IP。这一点至关重要,因为它支持您从处理器执行 IP 软复位。就像所有 HLS IP 一样,只要分辨率改变,就需要将 Video Frame Buffer 复位。

 

应用示例 (Vitis 2019.2)

要生成应用示例,在 Vivado 中,首先将硬件导出至赛灵思 Vitis(依次单击 File > Export > Export Hardware )。

确保在导出的硬件中包含比特流。这将创建一个 XSA 文件。

 

启动赛灵思 Vitis 并选择要用作为工作空间的目录。

Vitis 中,单击 New > Platform project

 

 

输入您所选的平台名称(例如,v_frmbuf_zcu104_pfm),然后单击 Next

确保选中 Create from hardware specification (XSA),然后单击 Next

选择从 Vivado 导出的 XSA 文件,确保已选中 A53 处理器,然后单击 Finish

创建平台后,单击 psu_cortexa53_0 > standalone on psu_cortexa53_0 下的 Board Support Package,然后展开 Peripheral Drivers 部分。

 

Peripheral Drivers 下,查找对应于 Video Frame Buffer Write (v_frmbuf_wr) 的行,然后单击 Import Examples

 

选择示例 (xv_frmbufwr_example),然后单击 OK

运行应用示例

注意:以下步骤假定评估板已上电并且已通过 UART 连接,BOOT 模式开关已设置为 JTAG 模式和 JTAG,并且已打开 UART 终端(如 Tera Term)供正确的 COM 端口使用。

单击应用并单击锤子图标以构建应用:

要在硬件上启动应用示例,请右键单击设计应用示例,并单击 Run As > Run Configurations

Create, manage, and run configurations 窗口中,右键单击 Single Application Debug,然后单击 New Configuration

 

 

在配置窗口的 Target Setup 选项卡中,确保已启用 psu_init(如果在 ZCU102ZCU104 ZCU106 评估板上运行)和 Program FPGA,然后单击 Run

 

UART 终端中,可以看到此应用正在尝试不同的视频分辨率和色彩空间组合。

 

在应用运行结束时,可能会显示部分测试失败的原因(主要原因是硬件配置不支持)。

 

色彩空间和视频分辨率在应用中以 ColorFormats TestModes 结构来定义。

 

 

如果要减少测试的色彩格式数量,或者如果要改变测试的视频分辨率,可以更改这些结构。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值