英语原文共 8 页
FPGA实时边缘检测算法的实现
一.导言
读取时的图像是作为一种信号读取的。图像作为像素的对比度读取时被进一步视为信号并被处理。当处理任何图像时,输入的就是一幅图像,如照片或视频帧,输出也应该是一幅图像或者一系列与图像相关的数据或者参数。1个边沿检测像素需要9次加法,9次乘法和1次比较。 如果图像大小为640 X480,则这些操作总计为2764800次乘法,2764800次加法和307200次比较。
如果我们考虑在一秒钟内处理25帧的视频,那么平均需要在0.04秒内执行5836800次操作。本文没有考虑存储或检索像素数据的任何开销。处理每秒25帧的边缘检测请求和720times;580(PAL帧)的每个像素的单个操作总计达到每秒101400次操作。因此,时间限制是实现此类应用的主要挑战.FPGA是一种可重构的平台,近年来越来越受欢迎。图像处理算法可以通过两种平行度的方式实时实现:空间平行度和时间平行度。空间平行度通过处理将图像分离成子区域,然后将每个子部分或子图像同时给予不同的流水线以便并行执行。这也被称为时间并行性。实际上,这种并行化受制于系统的处理模式和硬件约束。正是由于FPGA的这种特性,或者子图像被同时提供给不同的流水线并行执行。空间并行性,这使它们成为实现实时图像处理算法的最合适的候选者之一。编程FPGA既麻烦又耗时,因为没有高级工具。
但是现在随着技术的发展有了这些用于配置FPGA的高级工具,越来越多的人有动力使用FPGA进行实现。此外,设计时间减少了这项工作集中在实时实现图像处理算法(即视频)所需的广泛计算能力上。这项工作也被在MATLAB(软件)和FPGA(硬件)等各种平台上完成。同时缩短设计时间,实现是在功能强大的设计工具Altium Designer上实现的。
二.理论
边缘处就是图像中的某些地方,这些地方具有强烈的对比度。图像中的对象是分开的。因此这些边缘包含很多信息。边缘检测有很多应用包括分割,恢复。通过检测图像的边缘,我们现在可以表示仅具有边缘信息的图像。 因此,表示图像所需的数据显着减少。在图像中,边缘也称为高频分量。在图像中,为了检索边缘,我们可以在频率或傅立叶中应用高通滤波器。如果我们将图像与空间域中的特定内核卷积,则将获得相同的结果。为了使边缘检测在计算上更便宜,在实践中使用空间域运算。由于边缘对应于强照明梯度,因此通过对图像进行微分而获得的导数用于计算边缘。在计算相同的情况下,如果像素的导数值不大于梯度方向上的两个相邻像素的强度,则将边缘像素的值设置为零。 滞后用于执行阈值处理。滞后用于执行阈值处理。这里,使用两个边缘阈值,一个下限阈值和任何边缘像素低于其他较高阈值。阈值被称为非边缘。高于上限并且是定义的边缘。以及所有像素之间可以连接到更高的上方的任何像素阈值。
各种内核掩模使我们产生边缘。 Sobel,Prewitt和拉普拉斯算子在这里讨论和实现。
A.索贝尔滤波器
使用Sobel模板的边缘检测使用两个模板检测。一个是检测水平方向,一个检测的是垂直方向。水平方向系数用于检测垂直图像衍生物。两个模板都是相同的,除了旋转90度.Sobel模板内核有时是只有3X3近似于高斯的一阶导数掩码。当与输入卷积时,两个内核掩码图像,在X方向和Y方向上产生边缘。模板是:
- X方向掩模GX
- Y方向面罩GY
通过简单地组合来找到最终结果X和Y方向的大小。
B. Prewitt模板
Prewitt边缘检测掩模给予相同的权重如掩码中所见系数在矩阵内核中都是。关键的想法是中心这个面具与图像卷积时,它执行二维空间梯度。这些掩模是某种程度上对噪音敏感,可以减少噪音平均的帮助。噪声的平均是通过平均运算来完成的,y时的平均值计算df / dx,以及x时的平均值计算df / dy。这些内核一起给我们了梯度向量的组成部分。
- X方向掩模GX
- Y方向模板GY
与索贝尔一样,这里也是最终的量级只需添加X和Y方向的大小。
C.拉普拉斯模板
拉普拉斯算子是旋转不变的滤波器。它是找到的二阶导数和存在拉普拉斯算子的零交叉用于边缘检测.Laplacian有一个基本的角落,曲线和地方出现故障的缺点灰阶强度函数变种.3X3拉普拉斯模板是
- 拉普拉斯模板
实现Altium Nano的设置第2板和Altium Designer 10中的设计。所有算法在Altium Nano Board 2中实现。Altium NB2提供音频/视频外设板PB01连接到Spartan3的子板.DVD Player是用于通过音频/视频向Altium NB2提供输入外围板PB01。转换此模拟视频输入通过一个8位数字YCbCr 4:2:2分量视频使用德克萨斯州的TVP5150AM1视频解码器设备仪器。解码器提供9位ADC,带采样按照ITUR BT.601进行建议。该建议定义了该方案用于编码625和625的隔行扫描模拟视频信号数字形式的525线系统。转换后的数字视频流以8位ITUR BT.656接口的格式输出然后将其作为输入馈送到嵌入式同步。内部使用的BT656控制器和FPGA设计.AltiumDesigner的BT656视频采集控制器就是这样的标准视频流格式,对其进行解码,并将其重新格式化为存储在外部视频存储器中的简单存储器图像位文件针对FPGA(子板Spartan 3)读取并处理存储器的内容然后给予用于VGA监视器输出的VGA控制器连接。边缘检测实现基本上由RGB到灰度转换然后卷积掩模将像素值存储在三个不同的缓存中存储当前使用的三列图像。我们以两种方式处理传入的视频,如图所示图1。
五.结果
这里我们比较Nano板2的计算能力使用MATLAB。我们还比较了获得的结果通过软件和硬件(ASP)进行边缘检测图2显示了原始图像,图3,图4,图5显示FPGA的硬件边沿检测输出。通过硬件实现边缘检测时Altium,获得的输出是实时的,它不会跳过任帧在输出中观察到每秒近24帧。但在软件边缘的情况下,结果并不令人满意检测。一般32位的计算能力与ASP设计相比,处理器TSK 3000非常低使用CHC。以每秒近2帧的速度获得输出使用TSK 3000.在MATLAB中使用相同的算法实现与VGA相同分辨率的图像视频。结果总结在下表I中。
表II给出了拟议设计的资源利用总结。
Sobel,Laplacian和Prewitt等各种边缘检测算法在FPGA上实现,帧速率为每秒25帧,分辨率为640times;480.彩色图像的结果表明,只有特定应用的处理器才能处理全部每秒25帧。 此外,算法非常复杂,这使得特定于应用的硬件设计变得困难。 简单硬件描述中的硬件描述像Verilog的VHDL这样的语言非常困难。 它需要大量的技能并且还需要花费很多时间来设计,这在快速增长的时代是非常不受欢迎的,其中上市时间非常短。 因此CHC(C to Hardware Compiler)似乎是这种情况下的最佳解决方案。 CHC编译器将简单的C代码转换为VHDL / Verilog代码,即仅硬件。
图1
图2
图3
图4
图5
基于FPGA的嵌入式系统系统多功能显示器的设计与实现
一.导言
我们的设计的主要目标是建立一个VGA控制器使用复杂可编程逻辑装置,最好是XC9572XL。 除此之外,一个存储设备,SRAM将用于存储数据和图像,这些数据和图像正是应该在监视器上显示。这里提出的报告将有益于实践工程师,研究人员,设计人员和开发者,这些人对基于CPLD的系统更感兴趣,可编程逻辑设备和电子传感器都应该被熟练地在ISE Design Suite上工作。
二.文献评论
在本节中,已经讨论了各种文献,帮助我们了解VGA控制器及实现其功能的众多设计,方法和CPLD器件。注意到以下几点:
在特定的论文中,已经有VGA显示系统使用CPLD和双内存实现。另外它还需要一个USB转换芯片CH341来转换串口数据格式为并行数据格式。在另一篇论文中,VGA使用CPLD和SRAM再次实现显示系统记忆。其VGA控制器由同步信号组成生成,VGA信号生成和像素生成电路。VGA控制器的实现也已经实现在FPGA上完成。VGA控制器设计该论文基于Graphic Object VGA控件。我们的动机是使用CPLD设计VGA控制器。一个正在使用CPLD,因为它具有成本效益且可以做到与FPGA相同的功能。
三.预备工作
A.阴极射线管监视器的工作
阴极具有电子枪产生一束集中的电子。这个光束传播穿过真空管,最后到达特定的屏幕上。光束辐射到那一刻,电子发光材料在屏幕上发现。电子束强度和亮度由人控制外部视频输入的电压水平,称为单声道。 一个垂直的偏转线圈和水平偏转线圈产生磁场控制电子束和它的位置击中屏幕。今天的显示器有放大器和内部振荡器产生锯齿波形1以控制水平和垂直偏转线圈。这是外部同步信号,h_sync和v_sync,实际控制形成锯齿的波浪的产生。 h_sync和v_sync信号都是数字信号。使用这些数字信号在显示器上投射红色,绿色和蓝色磷光体。通过这三个点的组合形成像素。在这个项目上的工作会让我们更好了解CPLD和VGA控制,这项工作最重要的帮助是,在这期间相关学习和项目经验。
B.缩略语和缩略语
本文使用的各种首字母缩略词如下:
?CPLD - 复杂可编程逻辑器件
?VGA - 视频图形阵列
?CRT - 阴极射线管
?SRAM - 静态随机存取存储器
?FPGA - 现场可编程门阵列
?PAL - 可编程阵列逻辑
?ISE - 集成综合环境
四.要求
在本节中,功能和非功能有关该项目的要求和规范有人解释说。
A.功能要求:
该项目应该做什么?
我们的事业的实际需要是按照以下:
?项目应该接收读数和信号从计算机和处理它。
?该项目不应该麻烦但容易部署。
?承诺必须处理精确和一致连续的信息和数据。
?承诺应存储信息并且是多才多艺。
?冒险应该吞噬最少的力量紧凑。
?承诺应该基于现成的小工具,零件和原理。
B.非功能要求:
项目应如何运作?
我们项目中考虑的显示系统是VGA监控系统。 VideoGraphicsArray或VGA是标准的最初在此期间开发的可视化20世纪80年代。是由IBM公司提出的一种标准,CPLD将作为处理单位将取代实际的CPU。文本数据或图像应存储在SRAM中。SRAM作为内存存储设备,我们的目的是将有256Kx16的容量的数据来存储在这个设备中。最后,数据和图像将由CPLD处理通过VGA显示在屏幕上。用于连接VGA使用我们的处理器进行监控,我们需要一个DB15端口。在15个中,VGA中有五个重要的有效信号连接器。这五个信号分别是两个同步信号,两个同步信号即是行同步信号和列同步信号,和三个视频信号。三个视频信号也就是三原色基色的信号,分别是红基色、绿基色和蓝基色。h_sync和v_sync信号用于水平同步扫描信号和垂直同步同步信号,色彩视频信号是红色,绿色和蓝色光束。
五.规格
A.复杂可编程逻辑器件
CPLD的复杂程度介于PAL和FPGA和它作为FPGA的前身。 因此,它是便宜,易于使用并提供良好的学习体验让学生了解半导体器件的基础知识。在我们的设计中使用的CPLD将是XC9572XL - 100引脚TQFP,带72个用户I / O引脚。 与之相比时其他研究[1],它具有优势支持并行和快速并发编程。 就这样吧
不需要额外的数据转换芯片。 其他使用CPLD的好处是:
?在系统可编程和可重新编程。
?许多I / O用户引脚。 因此,多个接口
设备是可能的。
?兼容复杂的设计和接口。
?设计灵活性。
?与FPGA相比具有成本效益。
with与FPGA相比功耗低。
?为学生和学生提供令人信服的FPGA替代品
初学者。
B. VGA控制器
CPLD将使用VGA控制器进行编程。VGA控制器将生成信号同步并且还将数据像素设为以串行方式输出。我们设计的VGA控制器主要由两个组件组成 - vga_sync(它可以是陈述为同步电路)和像素生成电路。
vga_sync的电路负责生成同步和定时信号。 h_sync和v_sync信号控制水平扫描和垂直扫描分别是CRT显示器。 信号 - pixel_x和pixel_y给出表单中给定像素的相对位置坐标。
用于像素生成的电路将产生三个视频信号的红色,绿色和蓝色光束和它们统称为rgb信号。 像素生成电路可以是三类 - 位映射功能,平铺映射功能或对象映射功能。
我们项目中考虑的屏幕分辨率是640times;480,像素速率为25MHz。从而时钟周期为40ns。
这是我们的VGA控制器的设计。现在什么时候与其他研究的视频控制器设计进行了比较和研究[2],它是一个不同的设计,并且更简单了解。 下面给出的数字将描述VGA我们项目中使用的控制器。
D.先决条件知识
?XilinxISE设计套件。 初学者需要时间了解。 应事先做好准备。
?Verilog或VHDL。 学生
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。