0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何构建Zynq图像增强系统

454398 来源:网络整理 作者:网络整理 2019-11-20 09:22 次阅读

第1步:材料

完成此项目您将需要:

硬件

-任何具有HDMI以太网的ZYNQ板都可以正常工作/我正在使用Digilent Zybo

-USB A到micro B USB电缆

-HDMI电缆

-以太网电缆

-带有HDMI输入的显示器

软件

-Xilinx Vivado

-Xilinx SDK

步骤2:输出-VGA控制器第1部分

我们将使用开发板上的HDMI端口输出视觉数据。 HDMI端口连接到ZYNQ的PL(可编程逻辑= FPGA)端,我们将需要为其设计VHDL控制器。如果您曾经设计过VGA控制器,您会发现它非常相似。 HDMI和VGA的时序实际上是相同的,实际上您可以在现有的VGA控制器上构建以获得HDMI控制器。

为更好地了解实际情况,我们将首先设计一个VGA控制器

我们要以1920x1080的分辨率显示。

VGA控制器负责将像素数据(RGB格式)依次逐像素传输到显示器。在1920x1080的实际显示区域之外,还有一些“边界”区域,即:前沿,后沿和回扫。这些区域的像素大小是标准的,并针对每种分辨率。这些区域实际上并没有出现在屏幕上,但是它们是必需的,并且该区域中像素的颜色必须为黑色。一个有效的问题是,为什么需要这些额外的区域。这个问题违背了这个可指导性的目的,但是如果您好奇的话,我鼓励您在线进行进一步研究。

这是一个很好的视频,解释了VGA接口https://goo.gl/vfSw6o

在我们的情况下,我们希望以1920 * 1080的分辨率进行显示,这些时间是:

水平显示区域= 1920像素

水平Fron门廊= 88像素

水平后沿= 148像素

水平回扫= 44像素

垂直显示区域= 1080像素

垂直前沿= 4像素

垂直后沿= 36像素

垂直回扫= 5像素

(您可以在此处找到其他分辨率的时间http://goo。 gl/hFNRVb)

因此,我们的实际分辨率为2200 x1125。我们希望60 fps(每秒帧数),因此我们的像素时钟将为60 * 2200 * 1125 = 148.5 MHz。在Zybo板上,提供了125 Mhz的时钟。我们将使用MMCM IP生成所需的148.5 MHz像素时钟。

步骤3:输出-VGA控制器第2部分

《在上一步的理论背景下,您应该可以设计自己的VGA控制器。我将为您提供一个Vivado项目,但我建议您至少尝试自己尝试一下。

大多数VGA端口不会为每个像素的每个颜色通道提供8位(参见上图),因此您需要使设计适应开发板提供的每种颜色的引脚数(尽管这对于HDMI来说不是问题)。

设计会将整个屏幕涂成蓝色,除了左上方的像素将变为红色。应当指出,该项目使用了ZYBO董事会的约束条件。因此,如果要在另一个开发板上运行该项目,则应更新约束文件并调整每种颜色的引脚数。

请看图nr。 2.请记住,尽管我们的VGA控制器在每种颜色下输出5/6位,但是在通过电缆之前,这些位会针对每种颜色通道(红色,绿色和蓝色)转换为一个模拟信号

第4步:输出-HDMI控制器第1部分

现在,我们知道了VGA控制器的工作原理,并且我们有一个可行的设计,我们可以继续使用HDMI控制器。 HDMI控制器实际上将使用我们在VGA控制器中开发的所有代码。 HDMI和VGA使用相同的时序和相同的信号。差异出现在输出引脚上。

虽然VGA每种颜色使用一根线并传输一条模拟信号,但HDMI每次每种颜色以1位数字方式传输数据并使用差分信号。差分信号意味着HDMI的每一位都有2个引脚,而另一个则相反。因此,如果我们要传输信号“ 1”,我们将在一根线上传输“ 1”,而在另一根线上传输“ 1”。这样可以确保信号的完整性,您可以在https://goo.gl/6CPCzB上了解更多信息。对于每种颜色(红色,绿色和蓝色),我们都有一个通道,对于时钟,我们有一个通道。由于差分信号的特殊性,我们通过HDMI发送的信号必须经过DC平衡处理,这意味着1和0的数量必须在特定的时间范围内大致相等。为了实现这一点,我们将使用8b/10b编码。您可以从DVI规范(http://goo.gl/hhh8Ge,DVI和HDMI使用相同的视频信号)上了解很多有关差分信号和8b/10b编码的工作原理。

第5步:输出-HDMI控制器第2部分

足够的理论,让我们进入我们的项目。在VGA控制器中,我们获得了148.5 MHz的时钟,但是在这里,我们将不得不提供10倍的频率,因为我们要为每种颜色传输8位,并使用8b/10b编码转换为每个像素10位和10 * 148.5MHz = 1485MHz。这是Zybo板上无法获得的巨大频率。幸运的是,我们掌握了一些技巧。我们可以管理5 * 148.5MHz = 742.5MHz,我们将使用OSERDES(串行器)IP在742.5Mhz时钟的上升沿和下降沿都传输数据,因此实际上我们将以1485MHz传输数据。 Vivado会给我们一些时间警告,您可以始终使用较小的时钟来获得较低的分辨率,但是由于它可以正常工作,因此我们暂时不介意(警告与时钟缓冲区未正式存在有关

因此,我们需要做的是将来自VGA控制器输出的数据编码为8b/10b格式,然后如上所述进行序列化。我们还需要在项目中添加另一个MMCM,以生成用于序列化的742.5MHz时钟。

我在编码器和序列化器的vhdl文件下面附加了该文件。您必须首先对RGB通道进行编码,然后对其进行序列化。

红色通道示例:

TMDS_encoder_RED:TMDS_encoder

端口图(clk148,red_channel_8bits,c_red,video_on ,encode_red_10bits);

Serialiser_RED:Serialiser10_1

端口映射(clk148,clk742,encoded_red_10bits,重置,red_serial_1bit);

TMDS_encoder的“ c”输入是红色和绿色的“ 00”,蓝色是“ vsync&hsync”(这是DVI规范http://goo.gl/hhh8Ge)。

步骤6:从RAM显示图像

HDMI控制器的目的是显示处理后的图像。现在,在实现控制器并准备就绪后,我们应该考虑为该控制器提供数据。鉴于很多图像增强过程将在PS中进行(处理系统= ARM处理器),并且生成的图像将驻留在DDR RAM中。因此,我们需要一种从RAM到HDMI控制器获取数据的方法。

要实现此目的,您需要3个IP:

1)VDMA(视频直接内存访问) )

2)VTC(视频定时控制器)

3)流到视频输出(从现在开始我们将其称为S2VO)

S2VO实际上将提供输出的RGB 24BIT信号以及所需的HSYNC和VSYNC信号。因此,我们可以省去HDMI控制器的那一部分。

您应该将这些IP添加到设计中,进行配置并进行正确的连接。

最后,您应该得到类似于

步骤7:输出-SDK END

所有硬件均已设置好并准备就绪,我们现在必须在PS中构建软件。我们将导出硬件和比特流并启动SDK。

1)文件-》导出-》导出硬件-》选中包括比特流,然后按确定

2)文件-》启动SDK

在SDK中创建一个新的应用程序项目。

3)文件-》新建-》应用程序项目

4)为您的项目选择一个名称,然后按下一步

5)选择“ Hello World”模板然后按Finish

SDK中的应用程序将需要对VDMA进行编程。为了完成此操作,使用了一些标准功能(我会在有空的时候进行详细介绍)。

为了测试我们的设计,我们将使用SDK Restore(Xilinx工具-》转储/还原) )功能可将图像放入DDR RAM内存并使用我们的HDMI控制器显示。您可以将图像加载到所需的任何位置(内存开头的一些较小的受限区域除外)。在我们的示例中,我们选择了地址16777216,文件大小为8294400 = 1920 * 1080 * 4(4个通道= RGB + alpha)。

责任编辑:wv

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

    关注

    32

    文章

    1676

    浏览量

    151680
  • usb
    usb
    +关注

    关注

    60

    文章

    7903

    浏览量

    264042
收藏 人收藏

    评论

    相关推荐

    【每天学点AI】实战图像增强技术在人工智能图像处理中的应用

    图像增强(ImageEnhancement)是人工智能和计算机视觉中一项重要的技术,也是人工智能数据集预处理的一个重要步骤。它旨在提高图像的质量,使其在视觉上更加清晰、细节更丰富。这项技术在自动驾驶
    的头像 发表于 11-22 17:14 401次阅读
    【每天学点AI】实战<b class='flag-5'>图像</b><b class='flag-5'>增强</b>技术在人工智能<b class='flag-5'>图像</b>处理中的应用

    基于差分卷积神经网络的低照度车牌图像增强网络

    车牌识别作为现代化智能交通系统中重要的环节,对提升路网效率以及缓解城市交通压力等问题具有重要的社会意义,然而弱光照车牌图像识别仍然具有重大的挑战。构建了一个基于差分卷积神经网络的弱光照车牌图像
    的头像 发表于 11-11 10:29 124次阅读
    基于差分卷积神经网络的低照度车牌<b class='flag-5'>图像</b><b class='flag-5'>增强</b>网络

    如何构建物联网系统

    构建物联网系统是一个复杂而细致的过程,涉及多个关键步骤和组件。以下是一个详细的构建物联网系统的指南: 一、明确需求与目标 在开始构建之前,首
    的头像 发表于 10-29 10:40 379次阅读

    图像采集卡:增强视觉数据采集

    。什么是图像采集卡?图像采集卡,是一种专门用于捕获和处理来自不同来源的视频信号或图像的硬件组件。它们充当成像设备(例如相机或视频源)与计算机系统之间的接口。
    的头像 发表于 09-24 11:06 268次阅读
    <b class='flag-5'>图像</b>采集卡:<b class='flag-5'>增强</b>视觉数据采集

    基于VDMA的远程图像采集系统参考设计

    本文参考设计基于 AMD ZYNQ 7000 Device, 使用 VDMA 做原始图像采集系统,在 Petalinux 下做服务器,通过 Socket 发送图像至 Windows 或
    的头像 发表于 09-18 10:11 369次阅读
    基于VDMA的远程<b class='flag-5'>图像</b>采集<b class='flag-5'>系统</b>参考设计

    [XILINX] 正点原子ZYNQ7035/7045/7100开发板发布、ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2!

    丰富的开发文档和软件资源,涉及FPGA开发、Vitis裸机开发、Linux系统开发和PCIe开发等教学领域,助力开发者轻松上手! 一、重磅新品!正点原子FPGA新品ZYNQ7035/7045/7100
    发表于 09-02 17:18

    Cricket XL全新亮相:革新图像增强技术的解决方案

    由法国知名光电科技公司PHOTONIS生产的像增强器是一种先进的光电设备,主要用于提高图像的亮度和清晰度。像增强器凭借其高性能和多功能性,在科学研究、工业检测和生物医学成像等多个领域发挥
    的头像 发表于 07-25 06:32 276次阅读
    Cricket XL全新亮相:革新<b class='flag-5'>图像</b><b class='flag-5'>增强</b>技术的解决方案

    基于 ZYNQ AlphaGo 的棋类人机博弈 AR 系统

    的技术为混合增强现实技术与动感捕捉技术,是增强现实技术的进一步发展。通过计算机产生图像,提供给用户一个可触控平面并与之互动。通过交互式投影,用户在操控虚拟影像的同时也能接触真实环境,从而增强
    发表于 07-17 19:27

    图像边缘检测系统的设计流程

    图像边缘检测系统的设计流程是一个涉及多个步骤的复杂过程,它旨在从图像中提取出重要的结构信息,如边界、轮廓等。这些边缘信息对于图像分析、机器视觉、图像
    的头像 发表于 07-17 16:39 306次阅读

    鸿蒙OpenHarmony开发:【编译构建指导】

    OpenHarmony编译子系统是以GN和Ninja构建为基座,对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统
    的头像 发表于 05-13 09:31 1645次阅读
    鸿蒙OpenHarmony开发:【编译<b class='flag-5'>构建</b>指导】

    Xilinx ZYNQ 动手实操演练

    系列。可编程逻辑可由用户配置,并通过“互连”模块连接在一起,这样可以提供用户自定义的任意逻辑功能,从而扩展处理系统的性能及功能。不过,与采用嵌入式处理器的FPGA不同,Zynq-7000产品
    发表于 05-03 19:28

    基于ZYNQ FPGA构建嵌入式的模拟计算板卡

    板卡基于高速400M 采样AD 和ZYNQ FPGA构建嵌入式的模拟计算板卡, 可用于工业雷达,行业雷达的场合。板卡使用工业级芯片。
    的头像 发表于 01-09 11:30 1199次阅读
    基于<b class='flag-5'>ZYNQ</b> FPGA<b class='flag-5'>构建</b>嵌入式的模拟计算板卡

    机器视觉中采集的图像太暗时要如何增强图像亮度?

    Q图像太暗时要如何增强图像亮度?A:通俗来讲,普遍认为图像亮度就是图像的明暗度。我们知道一幅8bit的黑白
    的头像 发表于 12-15 08:36 783次阅读
    机器视觉中采集的<b class='flag-5'>图像</b>太暗时要如何<b class='flag-5'>增强</b><b class='flag-5'>图像</b>亮度?

    机器视觉中采集的图像太暗时要如何增强图像亮度?

    Q 图像太暗时要如何增强图像亮度?   A:  通俗来讲,普遍认为图像亮度就是图像的明暗度。我们知道一幅8bit的黑白
    的头像 发表于 12-08 13:01 667次阅读
    机器视觉中采集的<b class='flag-5'>图像</b>太暗时要如何<b class='flag-5'>增强</b><b class='flag-5'>图像</b>亮度?

    FPGA图像处理方法

    图像在采集和传输的过程中,通常会产生噪声,使图像质量降低,影响后续处理。因此须对图像进行一些图像滤波、图像
    的头像 发表于 12-02 13:15 1079次阅读