如何创建一个支持HDMI输入到输出的图像处理平台

描述

本文将介绍如何创建一个支持HDMI输入到输出的图像处理平台。这可以用作基于HLS的图像处理演示的基础。

概述

该项目将演示如何基于XilinxZynq创建一个简单的图像处理平台。然后,该项目将用作后续开发的基础,这些开发侧重于基于高级综合的开发,允许使用行业标准OpenCV库。

为了创建这个示例,我使用ZyboZ7,因为它提供HDMI输入和输出,以及用于MIPI相机的CSI-2接口,我们也可以将其用于未来的开发。

除了Zybo-Z7,我们还将使用:

HDMI摄像头,例如Apeman1080P运动摄像头

HDMI输入和输出端口的相关电缆

HDMI显示

为了创建应用程序,我们将使用以下开发工具和库:

维瓦多2017.4

赛灵思SDK2017.4

DigilentVivado库

要创建此示例,我们需要执行以下准备步骤:

将DigilentVivado库下载并解压到您的计算机

安装DigilentBoard定义,如果您不确定如何执行此操作,请单击此处

创建一个针对Zybo-Z7的新Vivado项目

在Vivado中创建新的框图

构成

在Vivado框图中,我们需要添加以下IP:

Zynq处理系统-这将提供图像处理系统的配置和控制,同时它的DDR也用作帧缓冲区以确保以下配置

PL时钟0=200MHz

PL时钟1=100MHz

HP0Slaveenabled-这将用于将图像传输到PSDDR或从PSDDR传输图像

GP0Masterenabled-用于配置图像处理链

DVI2RGB-这将HDMI视频流转换为具有适当垂直和水平同步的24位RGB总线。

图像处理

AXIGPIO-用于断言HDMI源上的热插拔检测的单个输出,未能断言这可能意味着没有接收到视频。

视频定时控制器-配置为检测,这将检测从HDMI源接收的视频的模式。

图像处理

视频输入到AXIS-这会将并行视频和同步转换为AXI流。与TDATA上的图像数据一起,帧的开始由TUser信号标识,而行尾由TLast信号标识。

将此配置为具有独立时钟,以便像素时钟和AXI流时钟不同。

图像处理

AXIS子集转换器-此组件将24位视频输出的格式重新映射为正确的RGB格式。其中两个在VDMA之前和之后使用。

图像处理

视频直接内存-写入通道将AXI流视频移动到AXI内存映射形式,以便存储在PSDDR内存中。而读取通道访问PSDDR并将AXI内存映射格式转换为AXI流以供输出。确保启用两个方向。

图像处理

图像处理

视频时序控制器-配置为时序源,配置所需的时序取决于输入视频时序。这被AXIS用于视频输出以生成输出并行视频和同步

图像处理

RGB2DVI-这将输出并行视频和垂直和水平同步转换为HDMI

图像处理

为了支持动态配置输出时钟,使用了DigilentVivado库中的动态时钟发生器。这允许使用AXIlite根据接收到的视频格式来改变像素时钟频率。

Vivado项目

将所有这些放在一起可以创建一个Vivado项目,如下所示。

图像处理

然后可以构建Vivado项目并将其导出到XilinxSDK以使我们能够创建应用软件。

在XilinxSDK中,我们需要编写我们的软件应用程序来执行以下操作:

断言连接到HDMIIN热插拔检测的GPIO-断言此信号后,处理器等待5秒以确保HDMI源生成视频。

配置视频定时控制器(检测器)以报告传入视频模式。

配置视频时序控制器(生成器)以根据检测视频模式生成时序。

配置动态时钟

将VDMA配置为从PSDDR读取和写入数据

运行应用程序SW应该可以让您看到所选HDMI源上的图像。

实物

图像处理

总而言之,这个项目为我们提供了一个想法平台,我们可以在未来使用它来展示我们基于HLS图像处理的应用程序。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分