基于FPGA的图像加速器的设计

合集下载

基于MATLAB与FPGA的图像处理教程

基于MATLAB与FPGA的图像处理教程
在当今高度信息化的时代,图像处理已经成为了众多领域中不可或缺的一部分, 从医学、安全到机器人技术,其应用越来越广泛。而《基于MATLAB与FPGA的 图像处理教程》这本书,为读者提供了一个全新的视角,以理解和掌握图像处 理的核心概念与技术。
这本书的作者韩彬、林海全和姜宇奇都是电子工业社的专家,他们深入浅出地 讲解了基于MATLAB和FPGA的图像处理原理和应用。其中,MATLAB作为一种强 大的数学计算和算法开发工具,被广泛用于算法设计和验证。而FPGA(现场可 编程门阵列)则是一种灵活的硬件加速引擎,可以用于实现高性能的并行处理 和计算。
当谈到MATLAB在图像处理中的应用时,作者强调:“MATLAB是一个强大的科 学计算工具,它提供了丰富的图像处理工具箱,使得用户可以轻松地实现各种 复杂的图像处理算法。”
对于如何结合MATLAB和FPGA进行图像处理,作者解释道:“通过将MATLAB算 法部署到FPGA上,我们可以实现高速、实时的图像处理。这是因为FPGA具有 高并行性和高效率的特点,可以大大提高算法的执行速度。”
在理解了图像处理算法的理论基础之后,本书通过MATLAB软件将这些算法进 行实现和验证。这部分内容详细介绍了如何使用MATLAB进行图像处理的各种 操作,包括图像的读取、处理和显示等。通过这部分内容,读者可以深入理解 图像处理算法在软件层面的实现方法。
这一部分是本书的核心内容,它详细介绍了如何将前面所学的图像处理算法通 过FPGA进行并行硬件加速。这部分内容涉及到了FPGA的基本知识、硬件设计 流程以及具体的实现案例。通过这部分内容,读者可以了解到FPGA在图像处理 领域的应用以及如何将算法移植到FPGA上进行硬件加速。
内容摘要
这些实例涵盖了多种图像处理算法,包括图像滤波、边缘检测、形态学操作等。通过这些实例, 读者可以深入了解FPGA图像处理的实现细节。 《基于MATLAB与FPGA的图像处理教程》是一本理论与实践相结合的教程,适合对图像处理和嵌 入式系统开发感兴趣的读者阅读。通过本书的学习,读者可以掌握使用MATLAB和FPGA进行图像 处理的核心技能,为实际项目的开发提供有力的支持。

CameraLink协议和FPGA的数字图像信号源设计

CameraLink协议和FPGA的数字图像信号源设计

CameraLink协议和FPGA的数字图像信号源设计关键字: FPGA Camera Link 标准 CMOS1 引言目前,各种图像设备已广泛应用到航空航天、军事、医疗等领域。

图像信号源作为地面图像采集装置测试系统中的一部分,其传输方式及信号精度都是影响系统性能的重要因素。

由于图像信号的传输速率高,数据量大,在传输过程中,其精度和传输距离易受影响。

为了提高信号传输距离和精度设计了由FPGA内部发出图像数据,并通过FPGA进行整体时序控制;输出接口信号转换成符合Camera Link标准的低电压差分信号(LVDS)进行传输。

该图像信号源已成功应用于某弹载记录器的地面测试台系统中。

2 Camera Link接口及图像数据接口信号Camera Link标准是由国家半导体实验室(National Semiconductor)提出的一种Channel Link技术标准发展而来的,该接口具有开放式的接口协议,使得不同厂家既能保持产品的差异性,又能互相兼容。

它在传统LVDS传输数据的基础上又加载了并转串发送器和串转并接收器,可在并行组合的单向链路、串行链路和点对点链路上,利用SER,DES(串行化,解串行化)技术以高达4.8 Gb,s的速度发送数据。

CameraLink标准使用每条链路需两根导线的LVDS传输技术。

驱动器接收28个单端数据信号和1个时钟信号,这些信号以7:1的比例被串行发送,也就是5对LVDS信号通道上分别传输4组LVDS数据流和1组LVDS时钟信号,即完成28位数据的同步传输只需5对线,而且在多通道66 MHz像素时钟频率下传输距离可达6 m。

Camera Link是在Channel Link的基础上增加了一些相机控制信号和串行通信信号,定义出标准的接头也就是标准化信号线,让Camera及影像卡的信号传输更简单化,同时提供基本架构(Base Configuration)、中阶架构(Medium Configuration)及完整架构(Full Configuration)三种:基本架构属单一Camera Link元件,为单一接头;中阶架构属双组Camera Link元件,为双组接头;完整架构属三组Camera Link元件,为三组接头。

基于FPGA的VGA图像显示

基于FPGA的VGA图像显示

基于FPGA的VGA图像显示1、VGA显示原理VGA标准是一种计算机显示标准,最初是由IBM公司在1987 年提出的,分辨率是640*480。

VGA 接口也叫做D_Sub 接口,是显卡上输出模拟信号的接口。

目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的D/A 转换器转变为R、G、B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。

常见的彩色显示器一般由阴极射线管(CRT) 构成,彩色由GRB(Green Red Blue) 基色组成。

显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB 基色,合成一个彩色像素。

扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。

要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。

VGA的标准参考显示时序如图1所示。

行时序和帧时序都需要产生同步脉冲(Sync a)、显示后沿(Back porch b)、显示时序段(Display interval c)和显示前沿(Front porch d)四个部分。

2、方案设计由VGA的显示原理可知,该任务的关键是VGA时序控制部分和汉字图形显示部分:(1)VGA时序控制部分,采用FPGA本地50MHz时钟,根据所需时序要求,经Verilog语言编写的计数模块分频而得到,该部分十分重要,如果产生的时序有偏差,那么就会使汉字图形无法显示或显示结果混乱;(2)汉字图形显示部分,有2种方法可以实现:第1 种是在对像素进行行计数、场计数的时候,就把字库信息直接赋值给颜色信号R、G、B,这种方法虽然简单,但是控制很不灵活,需要对汉字的显示像素一一判定对应的位置,容易出现错误,不易修改,所以本次采用的是第2 种方法,第2 种方法是使用FPGA内部的一种资源来存储汉字的字库信息,然后由程序将其提取出来作为显示信号发送到VGA 接口,以实现汉字图形的显示,这样就克服了第一种方法易出错又不易修改的缺点。

《基于FPGA的边缘检测系统设计》范文

《基于FPGA的边缘检测系统设计》范文

《基于FPGA的边缘检测系统设计》篇一一、引言随着计算机视觉技术的飞速发展,边缘检测已成为图像处理领域中一个重要的研究方向。

边缘检测是图像处理的基本任务之一,能够有效地提取图像中的轮廓和特征信息。

传统的边缘检测算法在计算上往往存在耗时、复杂度高的问题,而基于FPGA (现场可编程门阵列)的边缘检测系统设计,能够显著提高算法的运算速度和效率。

本文将介绍一种基于FPGA的边缘检测系统设计,以实现高效、快速的边缘检测。

二、系统设计概述本系统设计以FPGA为核心,通过硬件加速的方式实现边缘检测算法。

系统主要包括图像输入模块、预处理模块、边缘检测模块、后处理模块以及图像输出模块。

各模块之间通过FPGA内部的逻辑控制单元进行协调工作,实现图像的实时处理和输出。

三、模块设计1. 图像输入模块:负责接收原始图像数据,并将其传输至预处理模块。

该模块可采用高速图像传输接口,如PCIe或HDMI 等,以保证图像数据的实时传输。

2. 预处理模块:对输入的原始图像进行预处理,包括去噪、灰度化等操作,以提高边缘检测的准确性和效率。

预处理模块可采用FPGA内部的硬件加速器进行加速处理。

3. 边缘检测模块:本系统的核心模块,负责实现边缘检测算法。

该模块采用硬件加速的方式,通过FPGA内部的逻辑控制单元和专用硬件加速器实现边缘检测算法的快速运算。

常见的边缘检测算法包括Sobel算子、Canny算子等,可根据实际需求选择合适的算法。

4. 后处理模块:对边缘检测结果进行后处理,包括阈值处理、形态学处理等,以进一步提高边缘检测的准确性和效果。

后处理模块同样可采用FPGA内部的硬件加速器进行加速处理。

5. 图像输出模块:将处理后的图像数据输出至显示设备或存储设备。

该模块可采用高速图像传输接口,如HDMI、DVI或USB等,以满足不同场景下的需求。

四、硬件平台设计本系统设计的硬件平台主要包括FPGA芯片、内存模块、电源模块等。

其中,FPGA芯片是系统的核心,负责实现边缘检测算法的硬件加速。

基于fpga 的toe 系统设计与实现-概述说明以及解释

基于fpga 的toe 系统设计与实现-概述说明以及解释

基于fpga 的toe 系统设计与实现-概述说明以及解释1.引言1.1 概述概述FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,它可以根据用户的需求进行灵活的逻辑电路重构。

TOE(TCP/IP Offload Engine)系统是一种通过硬件加速的方式来提高网络性能的解决方案。

本文将介绍基于FPGA的TOE系统的设计与实现。

随着互联网的普及和发展,网络通信已经成为人们生活中不可或缺的一部分。

然而,传统的软件实现方式在高速网络环境下往往无法满足大规模数据通信的需求。

为了克服这样的问题,TOE系统应运而生。

TOE系统通过将TCP/IP协议的处理功能从通用计算机系统中分离出来,并放置在专用硬件中,以提高网络数据包的处理能力。

而FPGA作为一种灵活、可重构的芯片,能够满足TOE系统中对于高性能、低延迟的硬件加速需求。

本文将分析FPGA技术的基本原理和特点,探讨TOE系统的设计原理以及FPGA在TOE系统中的应用。

通过对TOE系统的设计与实现进行总结与展望,将提供对于基于FPGA的TOE系统设计的理论和实践指导。

通过本文的研究,我们可以深入了解基于FPGA的TOE系统在优化网络性能方面的巨大潜力,以及其在适应未来高速网络发展的前景。

我们相信,基于FPGA的TOE系统将在未来网络通信领域发挥重要作用,并为网络性能的提升做出积极的贡献。

1.2文章结构文章结构部分的内容可以按照以下方式编写:1.2 文章结构本文分为引言、正文和结论三个部分。

引言部分概述了文章的背景和目的,提供了对整篇文章的整体理解。

首先,概述了基于FPGA的TOE系统设计与实现的主题,并简要介绍了TOE系统和FPGA技术的背景和重要性。

接着,给出了整篇文章的结构和章节划分,以便读者能够清晰地了解每个部分的内容。

最后,说明了本文的目的,即通过对FPGA在TOE系统设计与实现中的应用进行探讨,促进TOE系统的发展和未来的研究。

基于FPGA的二值图像连通域快速标记

基于FPGA的二值图像连通域快速标记

基于FPGA的二值图像连通域快速标记汪滴珠;安涛;何培龙【摘要】针对连通域标记算法运算量大、速度慢、硬件实现困难的缺点,提出一种适于现场可编程逻辑门阵列(FPGA)实现的二值图像连通域快速标记的算法,并用VHDL硬件开发语言在XILINX公司的FPGA上实现.实验结果表明了该算法能对二值图像复杂的连通关系正确标记,易于硬件实现,大大节约了硬件资源,电路结构简单,满足实时性要求.%In order to solve the prablems of low speed large computation and difficult hardware implementation of connected component labeling, a connected component fast labcling algorithm of binary image lageling applicable for field programmable gate array (FPGA) is proposed, which is implemented by VHDI. hardware description language based on FPGA platform of XILINX corporation. Experimental results show that the proposed algorithm can label binary image with complex connections correctly, implement hardware easily,save more hardware resource and meet real-time demands.【期刊名称】《现代电子技术》【年(卷),期】2011(034)008【总页数】3页(P115-117)【关键词】FPGA;二值图像;连通域;快速标记【作者】汪滴珠;安涛;何培龙【作者单位】中国科学院,光电技术研究所,四川,成都,610209;中国科学院研究生院,北京,100039;中国科学院,光电技术研究所,四川,成都,610209;中国科学院,光电技术研究所,四川,成都,610209【正文语种】中文【中图分类】TN919-34;TP391连通域标记算法是图像处理、计算机视觉和模式识别等领域的基本算法,它可以对图像中不同目标标上不同的标记,进而提取、分离目标,确定目标的特征和参数,从而对目标进行识别和跟踪。

基于FPGA的车牌识别系统设计与实现

基于FPGA的车牌识别系统设计与实现车牌识别系统是一种应用广泛的智能交通技术,它能够通过图像处理和模式识别技术,自动提取图片中的车牌信息。

近年来,随着FPGA (现场可编程门阵列)技术的快速发展,基于FPGA的车牌识别系统成为一种高效、快速和准确的解决方案。

本文将详细介绍基于FPGA的车牌识别系统的设计与实现。

一、引言车牌识别系统在交通管理、车辆管理、停车场管理等领域有着广泛的应用。

传统的车牌识别系统主要依靠计算机进行图像处理和模式识别,但这种方式存在计算速度慢、实时性差等问题。

而基于FPGA的车牌识别系统通过并行计算和硬件加速,能够在保证识别准确率的同时提高处理速度,是一种高效的解决方案。

二、系统设计基于FPGA的车牌识别系统主要由图像采集模块、图像预处理模块、特征提取模块、模式识别模块和结果输出模块等组成。

1. 图像采集模块图像采集模块是整个车牌识别系统的输入模块,它负责从摄像头或图像存储设备中获取图像数据。

在FPGA中,可以通过外部接口模块与摄像头或图像存储设备进行通信,获取车辆图像信息。

2. 图像预处理模块图像预处理模块主要负责对获取的图像进行预处理,以便后续的特征提取和模式识别。

常用的图像预处理方法包括图像去噪、灰度化、二值化、边缘检测等。

在基于FPGA的车牌识别系统中,可以使用图像处理算法对图像进行预处理。

3. 特征提取模块特征提取模块是车牌识别系统中的核心模块,它主要负责提取车牌图像中的特征信息,以便后续的模式识别。

特征提取算法可以使用形状特征、颜色特征等方法对车牌图像进行特征提取,从而获得车牌的独特特征。

4. 模式识别模块模式识别模块是基于特征提取结果对车牌进行模式识别的模块,它可以采用机器学习算法或模式匹配算法进行识别。

常用的模式识别算法包括支持向量机(SVM)、卷积神经网络(CNN)等。

在FPGA中,可以通过设计硬件加速器来实现快速的模式识别。

5. 结果输出模块结果输出模块负责将识别结果显示或存储,以便后续的业务处理。

基于FPGA的卷积神经网络加速器

基于FPGA的卷积神经网络加速器余子健;马德;严晓浪;沈君成【摘要】现有软件实现方案难以满足卷积神经网络对运算性能与功耗的要求.为此,设计一种基于现场可编程门阵列(FPGA)的卷积神经网络加速器.在粗粒度并行层面对卷积运算单元进行并行化加速,并使用流水线实现完整单层运算过程,使单个时钟周期能够完成20次乘累加,从而提升运算效率.针对MNIST手写数字字符识别的实验结果表明,在75 MHz的工作频率下,该加速器可使FPGA峰值运算速度达到0.676 GMAC/s,相较通用CPU平台实现4倍加速,而功耗仅为其2.68%.%Aiming at the problem that existing software implementation schemes of Convolutional Neutral Network (CNN) cannot meet the requirements of computing performance and power consumption,this paper proposes a Field Programmable Gate Array (FPGA)-based accelerator for CNN.The convolution computation unit is paralled accelerated in the coarse-grained paralleled level and the whole process is fully pipelined.This optimization allows 20 multiplyaccumulations to finish in a single cycle,which greatly improves calculation efficiency.Experimental results for MNIST handwritten digits character recoghition show that the proposed FPGA-based accelerator can achieve peak performance of 0.676 GMAC/s under 75 MHz,and be 4 times faster than general CPU platform,while the power consumption is only 2.68percent of it.【期刊名称】《计算机工程》【年(卷),期】2017(043)001【总页数】7页(P109-114,119)【关键词】卷积神经网络;现场可编程门阵列;加速器;流水线;并行化【作者】余子健;马德;严晓浪;沈君成【作者单位】浙江大学电气工程学院,杭州310027;杭州电子科技大学电子信息学院,杭州310018;浙江大学电气工程学院,杭州310027;浙江大学电气工程学院,杭州310027【正文语种】中文【中图分类】TP393卷积神经网络(Convolutional Neutral Network,CNN)是一种源自人工神经网络的深度机器学习算法,它对图像的平移、比例缩放、倾斜等形式的变形具有高度的适应性,是提取图形特征灵敏的传感器,其权值共享网络结构使之更类似于生物神经网络结构,降低了网络模型的复杂度,减少了权值的数量。

fpga现代数字系统设计教程——基于xilinx可编程逻辑

fpga现代数字系统设计教程——基于xilinx可编程逻辑1. 引言1.1 概述:在当今数字系统设计领域,快速、高效的设计流程和可靠的硬件实现是至关重要的。

而可编程逻辑器件(FPGA)作为一种灵活且可重构的芯片,正逐渐成为数字系统设计中的主流选择。

本教程将介绍如何利用Xilinx可编程逻辑来进行现代化数字系统设计。

1.2 文章结构:本文将按照以下方式组织内容:第二部分将对FPGA进行概述,包括可编程逻辑器件简介以及Xilinx FPGA的介绍。

此外,我们还将探讨FPGA在数字系统设计中的各种应用。

第三部分将回顾一些基本原理,并提供如何搭建开发环境的指南。

其中包括对数字电路基础知识的回顾、VHDL语言简介和基础语法,以及Xilinx Vivado工具的安装与配置方法。

第四部分将详细介绍FPGA设计流程与实践技巧。

我们会讲解项目创建与工程管理方法,并探讨如何实现模块化设计和代码重用性提高的技巧。

另外,还会介绍仿真与验证技术在FPGA设计过程中的应用。

第五部分则涵盖了一些高级主题与应用案例分析。

我们将重点讨论并行计算与加速器设计、数据通信与嵌入式系统设计以及高精度数据处理系统设计等领域的案例分析,并提供相应的实践指导。

1.3 目的:本教程通过详细讲解FPGA现代数字系统设计的流程和技巧,旨在帮助读者全面了解FPGA在数字系统设计中的应用,并提供实用的指导和建议。

通过学习本教程,读者能够掌握从开发环境搭建到高级应用案例分析所需的知识和技能,为他们日后在数字系统设计领域取得成功打下坚实基础。

无论是初学者还是有经验的工程师,都能从本教程中获益,并将其应用于自己的项目中。

2. FPGA概述:2.1 可编程逻辑器件简介:可编程逻辑器件(FPGA)是一种基于可重新配置数字电路的集成电路芯片,它可以实现用户定义的数字逻辑功能。

与传统的定制集成电路(ASIC)相比,FPGA 具有灵活性强、开发周期短和可重构性等优势。

基于FPGA的红外图像实时采集系统设计与实现

基于FPGA的红外图像实时采集系统设计与实现摘要:随着红外图像在军事、航天、安防等领域的广泛应用,对红外图像的实时采集和处理需求越来越高。

本文基于FPGA设计并实现了一个红外图像实时采集系统,通过系统硬件框架、图像采集流程设计以及软硬件协同优化等方面的探究,实现了高效、稳定的红外图像实时采集和传输,为相关领域的探究和应用提供了重要支持。

一、引言红外图像技术是一种利用物体发射的红外辐射进行成像分析的技术,具有透过阴郁、烟雾等不利环境的能力。

它在军事、航天、安防等领域具有重要应用价值。

红外图像的实时采集和处理对于这些领域的探究和应用至关重要,然而传统的红外图像采集系统存在采集速度慢、波动大、传输距离限制等问题。

因此,设计并实现一种基于FPGA的红外图像实时采集系统具有重要意义。

二、系统框架设计基于FPGA的红外图像实时采集系统主要由硬件和软件两个部分组成。

硬件部分包括红外探测器、FPGA开发板、存储器、图像传输模块等;软件部分主要包括图像采集控制程序和数据处理程序。

硬件框架设计接受分层结构,分为红外图像采集层、控制层、存储层和传输层四个部分。

红外图像采集层包括红外探测器和模拟-数字转换电路,负责将红外辐射信号转换为数字信号。

控制层包括FPGA芯片和时钟控制电路,负责采集信号的控制和同步。

存储层包括高速存储器和图像缓存,负责暂存采集到的红外图像数据。

传输层包括数据传输电路和网络接口,负责将采集到的图像数据传输到外部设备。

三、图像采集流程设计图像采集流程是指将红外图像转换为数字信号并存储的过程。

在红外图像采集层,红外探测器将红外辐射信号转换为模拟信号,经过模拟-数字转换电路转换成数字信号。

在控制层,FPGA芯片控制采集信号的采样频率和位宽,通过时钟控制电路实现同步。

在存储层,高速存储器负责将采集到的图像数据暂存起来,图像缓存则将暂存的图像数据进行处理和压缩。

在传输层,数据传输电路将处理和压缩后的图像数据传输到外部设备。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的图像加速器的设计 摘 要 介绍了一种基于FPGA的图像加速器的设计。本文硬件加速器的实质是通过流水线设计来减少多余的操作达到加速的目的的,内存是由DMA控制器访问,之后DMA输出地址和控制信号,在实际应用中由于多个主设备可能同时访问内存而引起冲突,因此需引入仲裁器,控制内存的总线控制权由哪个主设备来控制,之后经由边缘检测加速器来处理图像,实验结果表明它可以实时、高效地完成图像处理,这样可以在图像视频处理上发挥很好的作用。 关键字 FPGA;硬件加速;图像边缘检测

1、 引言 在实际应用中,为了完成信息的处理通常选取DSP或者ARM作为处理器.但随着图像越来越清晰所以对处理能力的要求很严格,单个处理器不能解决个别实时系统对图像的处理,因此需要改变处理的方式,DSP+FPGA就是很好的解决策略,将压缩算法中比较难处理的部分交给FPGA来处理,通过这种方式来达到硬件加速的目的。 不仅仅是视频压缩,在许多其他嵌入式系统,对硬件配置的要求很高,有时为了达到算法运算速度的要求,安装专用的嵌入式软件,使用性能高的处理器芯片有时也无法达到性能要求,能达到,但是经费太高,均不得不设计专用硬件。

2、总体架构设计

该架构既支持cpu读写memory,也支持cpu读写acc,acc读写memory,其中CPU为8位,地址总线16位,虚拟CPU(内部不写指令,仅做一次长整加速器的运算)唯一的加速器设备:长整加速器,在获得CPU授权(访问它的内部寄存器)后,通过对Memory资源的直接访问,完成64位无符号长整的加减乘除算术运算加速器运算结束后,系统中的处理器和DMA设备访问内存时共用访问通道,当发生多个主设备一起访问内存时,就会不可避免的发生冲突。由仲裁器实施仲裁策略就必须被引入,通过中断信号通知CPU仲裁器,将访问权限交给唯一的访问者,因此有别的主设备向处理器发出访问内存的信号时,由该处理器决定哪个设备可以访问内存,进行长整型运算时,将源(Source)

与目标(Target)读入加速器,执行64位的运算,之后将64位的运算结果通过8位的数据总线写回目标(Target)存储器,该总体架构设计如图1所示。

图1 总体架构设计 3、算法分析

3.1算法对比 假设该算法核心在整个执行周期所占用的时间比例为k。那么非核心算法的时间比例为(1- k ),所以可以得到以下公式: t)k-1(ktt (1)

假如该算法核心通过所设计的加速器把处理速度较原来的速度相比提高s倍,那么算法核心的处理时间就减少到原来的1/s,在整个执行周期中非算法核心的处理时间不变。可以得到该算法总的运行时间为:

)t k -1 ( + kt/s = t' (2) 算法核心没有通过加速处理的时间除以加速后的处理时间可以得到该整体性能所提高的比例:

(3) )) k-(1+k/s ( / 1 = ) t k)-(1+/(kt/s t) k)-(1+(kt =S'

最后得到的公式叫Amdahl法则, Amdahl是以Gene Amdahl的名字命名的,Amdahl是并行计算的先驱之一。该式表明算法核心在整个算法执行时间中所占的比例很大程度影响核心算法通过加速处理所带来的整体性能的提高。假设把该算法在嵌入式处理器上运行的时间分成两个不同的部分,并且执行两部分所花费的时间可以估算出来,也就是分成两个核心(kernel)算法,一个占总时间的80%,而另一个只占总时间的20%。若用一个硬件加速器来加速算法核心,我们将第一个算法核心的运行速度提高到原来的10倍,对第一个算法核心进行加速处理所带来的总体性能提升为:

3.57= 0.8))-(1+)1/((0.8/10 (4)

对第二个算法核心进行加速处理带来的总体性能提升为:

1.25=0.2))-(1+)1/((0.2/10 (5)

3.2 结果分析 从结果对比可以看到,虽然第二个算法核心提高的运算速度是第一个的10倍,但是由于它在原来总运行时间里所占的比例较低,对其进行加速处理也只能带来较小的性能改善。而对第一个算法核心进行加速处理会对总体性能产生更显著的效果。所以我们在开始正式设计硬件时必须找到主要矛盾,即占总运行时间比例较高的部分,针对这部分算法程序进行硬件加速器的设计 ,以期望取得显著效果,该算法设计模块如图2所示。

图2 算法模块设计 4、图像边缘检测模块的设计 图像边缘检测法的原理是中心像素点和它周围的八个像素点都同时乘以一个系数(通常是一个 卷积表(convolution mask))后相加的一个卷积过程,通过该过程来把每个像素点在每个方向上的导数值估计出来。该Sobel卷积表的Gx和 Gy可以分别用于计算x和y方向的导数值。Dx和 Dy是中心像素点和它周围的八个像素点都同时乘以一个系数(通常是一个卷积表(convolution mask))后相加,这样就把x和y方向的偏导数值分别求了出来。最后,利用(6)式将中心像素点的导数求出来。计算公式如下式所示:

|D| (6) 为了得到导数幅值的最大值和最小值,对上式作如下简化:

|D|||+|| (7) 图3展示了每个操作步骤中的具体数据,通过并行操作将原始图像从上层像素开始到底部像素的导数计算出来。对于系数值是0的部分积我们已经省略,因为该操作没有任何意义。 图3 sobel数据操作 该架构是独立的图像边缘检测硬件,原始图像(亮度),储存在memory中,忽略摄像头与memory的写显存操作,用偏导数的绝对值计算,仍然采用水平偏导Dx和垂直偏导Dy绝对值之和,全速流水作业,加速作业时,无任何空闲周期. 5、系统仿真及结果测试

使用Verilog语言编写,利用 Altera公司quartusⅡ开发软件进行设计调试,首先通过Photoshop CS3对图片的灰度进行处理得到图4,为方便处理将格式修改为bmp格式,在bmp格式选项中将位深度改为8位, 之后通过Matlab软件将图4读取并转换成Verilog的存储器初始化txt格式,在quartus的Sobel_Filter模块输出亮度倒数图像txt文件,再通过Matlab转换用阈值切换得到的边缘图像。 在quartus中RTL View中可以清晰的看到各模块的层次结构,如图4。

图4 RTL级视图 最后开始分析波形仿真图,如图5所示。

图5 波形仿真图 将mem_data波形的十六进制数据与亮度导数图像txt文件进行对比数据没有发生错误。 6、结论

每计算一个像素的导数需要周围8个像素的数值,计算全部像素必须与视频播放同步, 即计算一帧像素的时间必须小于等于视频播放时一帧的时间(帧周期), 即计算一个像素的平均时间必须小于等于视频播放时一个像素的传输时间,“带宽”的概念即是在一个像素的平均传输时间内(100ns)完成导数计算所需要的时间比例。或者说,是在一帧视频播放周期内,完成导数计算诸操作所需要的时间比例如果每次单独读取全部9个像素,需要9×20ns=180ns视频播放时每像素的平均传输时间只有100ns这样,导数的计算就跟不上视频的播放了,此时,仅读像素的操作就占据180/100=180%现在的做法是: 首先分别读入相邻三行的一个字(32bit=4byte)这用去了三个读周期,即3×20ns=60ns,然后将行寄存器中的最左列的三个像素放入计算阵列中,然后流水线计算出导数将行寄存器中左移动一次将行寄存器最左端移入计算阵列,计算阵列同样左移一次,使用流水线计算出该导数将行寄存器中的第3列移入计算阵列,使用流水线计算出该导数将行寄存器中的第4列移入计算阵列,使用流水线计算出该导数,到目前为止,完成4个像素的导数计算,使用了三个字的读周期即60ns随后继续读入三个字,重复上述过程,计算4个像素这样平均400ns周期内,读内存+读视频+写导数=100ns,占100/400=25%剩余的75%可以用于其他操作。 参考文献 [1] 崔屹.数字图像处理技术与应用[M].北京:电子工业出版社,1997 [2] 刘真芳,王运琼,朱敏.数字图像处理与分析[M].北京:清华大学出版社, 2006 [3] 刘建清.从零开始学CPLD和Verilog HDL编程技术[M].北京:国防工业出版社, 2006 [4] 任晓东,文博.CPLD/FPGA高级应用开发指南[M].北京:电子工业出版社, 2003 [5] 刘韬,楼兴华.FPGA数字电子系统设计与开发实例导航[M].北京:人名邮电出版社, 2005 [6] 王伟.Verilog程序设计与应用[M].北京:人名邮电出版社, 2005 [7] 高成,赖志国,陈继云.MATLAB图像处理与应用[M].北京:国防工业出版社, 2007 [8] 夏宇闻. Verilog数字系统设计教程-第三版[M].北京:北京航空航天大学出版社, 2013 [9] 姚敏.数字图像处理[M].武汉:武汉大学出版社, 2003 [10] 吴继华,崔诚.Altera FPGA/CPLD设计(基础篇)[M].北京:人名邮电出版社, 2005

相关文档
最新文档