新書推薦:
《
海外中国研究·江南:中国文雅的源流
》
售價:NT$
347.0
《
迟缓的巨人:“大而不能倒”的反思与人性化转向
》
售價:NT$
352.0
《
我们去往何方:身体、身份和个人价值
》
售價:NT$
305.0
《
大学问·批判的武器:罗莎·卢森堡与同时代思想者的论争
》
售價:NT$
449.0
《
低薪困境:剖析日本经济低迷的根本原因
》
售價:NT$
301.0
《
穷人的银行家(诺贝尔和平奖获得者穆罕默德·尤努斯自传)
》
售價:NT$
347.0
《
绵延:文明分野与文化演进
》
售價:NT$
301.0
《
三神之战:罗马,波斯与阿拉伯帝国的崛起
》
售價:NT$
367.0
|
編輯推薦: |
提供大量关于如何利用FPGA实现图像处理算法的实例及代码
|
內容簡介: |
本书首先介绍FPGA程序设计和图像与视频处理的关键基础理论,然后通过实例代码详细讲解了如何利用FPGA实现直方图操作中的直方图统计均衡化线性拉伸规定化、线性滤波器操作中的均值滤波器、Sobel算子滤波、求模、求角度、非线性滤波器操作中的排序类算法形态学滤波、图像分割算法中的局部自适应分割Canny算子等。本书在仿真测试部分设计了一种完善的通用测试系统,并利用此测试系统在每一章的仿真测试环节对所设计算法进行严格的测试和验证。本书在*后一章介绍了在视频处理领域常见的输入输出接口。本书偏向于工程应用,在书中有大量关于如何利用FPGA实现图像处理算法的实例及代码,并对这些算法的原理及其实现过程、算法测试等做了详细的介绍,全部的算法都进行了仿真测试验证。本书提供实例的全部源代码,可登录以下网址免费获取:http:www.hxedu.com.cn(华信资源教育网)。本书适用于需要利用FPGA进行图像处理和视频分析的学者和工程开发人员。读者需要具备一定的嵌入式设计及FPGA设计的基础知识,特别是Verilog语言的语法基础。
|
關於作者: |
牟新刚,武汉理工大学专职教师,主要从事图像处理、高速信号处理、并行计算、嵌入式系统设计等方面的研究工作
|
目錄:
|
目录
第1章图像处理基础1
1.1数字图像处理简介1
1.1.1图像采样1
1.1.2图像量化2
1.1.3数字图像处理3
1.2数字图像处理系统4
1.2.1图像处理系统构成4
1.2.2原始图像获取6
1.2.3图像传感器接口16
1.2.4图像处理流水线17
1.2.5图像与视频压缩19
1.2.6视频显示处理26
第2章FPGA与图像处理32
2.1使用FPGA的原因32
2.2FPGA技术优势33
2.3FPGA的发展历程34
2.4FPGA生产厂家及其产品35
2.4.1Altera35
2.4.2Xilinx37
2.4.3Lattice37
2.4.4Atmel38
2.4.5Actel38
2.5FPGA开发流程38
2.5.1FPGA设计方法38
2.5.2典型的FPGA开发流程39
2.6FPGA常用开发工具44
2.6.1代码输入工具45
2.6.2综合工具46
2.6.3仿真工具47
2.6.4实现与优化工具47
2.6.5EDA工具48
2.7FPGA图像处理的开发流程49
2.7.1需求分析及问题描述49
2.7.2软件算法设计及验证50
2.7.3硬件平台设计51
2.7.4FPGA映射52
2.7.5仿真及验证54
第3章FPGA编程语言55
3.1HDL语言简介55
3.2模块化设计56
3.3可移植性57
3.4不可移植性61
3.5测试逻辑62
3.6冗余逻辑63
3.7常用语法63
3.7.1参数化63
3.7.2条件编译68
3.7.3位宽匹配69
3.7.4二维数组69
3.8应用实例70
3.8.1信号边沿检测70
3.8.2多拍处理72
3.8.3图像行列计数73
第4章映射技术77
4.1系统结构77
4.1.1流水线设计77
4.1.2并行阵列81
4.2计算技术82
4.2.1算法转换82
4.2.2近似计算83
4.2.3增量更新85
4.2.4查找表85
4.2.5浮点计算89
4.2.6Cordic技术96
4.3存储器映射103
4.3.1帧缓存104
4.3.2行缓存105
4.3.3异步缓存113
4.3.4增加存储器带宽114
4.3.5存储器建模与仿真115
4.4其他设计技巧116
4.4.1合理处理参数116
4.4.2资源及模块复用117
4.4.3防止亚稳态118
第5章系统仿真121
5.1Modelsim使用基础121
5.1.1Modelsim简介121
5.1.2Modelsim图形界面及
仿真示例122
5.1.3使用脚本命令来加速
仿真133
5.1.4其他加速仿真的方法136
5.2视频图像处理仿真测试系统136
5.2.1仿真测试系统框架136
5.2.2视频时序模拟137
5.2.3视频捕获模拟145
5.2.4MFC程序设计157
5.2.5通用testbench161
第6章直方图操作167
6.1灰度直方图167
6.2直方图均衡化169
6.3直方图规定化172
6.4直方图拉伸175
6.5基于FPGA的直方图操作179
6.5.1FPGA直方图统计179
6.5.2FPGA直方图均衡化192
6.5.3FPGA直方图线性拉伸203
第7章线性滤波器214
7.1线性滤波214
7.1.1均值滤波214
7.1.2高斯滤波216
7.1.3Sobel算子219
7.1.4离散傅里叶变换222
7.2基于FPGA的均值滤波227
7.2.1整体设计与模块划分227
7.2.2子模块设计228
7.2.3Verilog代码设计232
7.2.4仿真与调试结果243
7.3基于FPGA的Sobel算子247
7.3.1整体设计与模块划分247
7.3.2Sobel模板计算电路249
7.3.3基于Cordic的坐标系转换
电路251
7.3.4Verilog代码设计257
7.3.5仿真与调试结果274
第8章非线性滤波器280
8.1统计排序滤波280
8.2基于FPGA的统计排序滤波器282
8.2.1并行全比较排序法原理282
8.2.2整体设计与模块划分285
8.2.3子模块设计286
8.2.4Verilog代码设计288
8.2.5仿真与调试结果298
第9章形态学滤波303
9.1形态学滤波简介303
9.2形态学滤波的基本应用304
9.3基于FPGA的Tophat滤波设计311
9.3.1顶层框架设计311
9.3.2子模块设计312
9.3.3Verilog代码设计317
9.3.4仿真及调试结果337
第10章图像分割341
10.1图像分割简介341
10.2基于阈值的分割341
10.2.1全局阈值分割341
10.2.2局部自适应阈值分割344
10.3基于边缘的分割347
10.3.1Canny算子347
10.3.2Canny算子的计算步骤347
10.4基于FPGA的局部自适应分割356
10.4.1算法转换357
10.4.2FPGA结构设计358
10.4.3子模块设计359
10.4.4Verilog代码设计363
10.4.5仿真与调试371
10.5基于FPGA的Canny算子设计378
10.5.1非最大值抑制电路设计378
10.5.2滞后阈值分割电路设计381
10.5.3Verilog代码设计382
10.5.4仿真调试结果390
第11章视频接口391
11.1视频输入接口391
11.1.1模拟视频输入391
11.1.2CameraLink接口394
11.1.3 USB接口399
11.1.4 FireWire接口401
11.1.5GigE Vision?接口407
11.1.6直接接口410
11.2视频输出接口411
11.2.1CVT标准411
11.2.2VGA416
11.2.3PAL425
11.2.4DVIHDMI433
参考文献441
|
內容試閱:
|
前 言
最近几年图像处理与机器视觉的发展非常迅速,图像处理领域也被认为是未来几十年最有前途的领域之一。
随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,图像处理系统的硬件体积越来越小,实时性也越来越好。特别是最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中。目前比较火热的VR技术更是需要双通道的高分辨率、高扫描频率的视频数据及处理能力。
这些新的要求给之前的图像处理平台带来了严重的挑战,传统的图像处理技术主要基于软件平台,一般运行在Windows平台的PC上。虽然现代PC的主频较高,但是用软件的串行化处理方法进行图像处理的效率还是非常低的。例如,用PC处理一个比较复杂的高分辨率图像处理算法花费半个小时或更多时间也是常见的事情。然而,对于实时图像处理,例如实时跟踪和视频显示,这个处理速度是远远不够的。
正是由于这个原因,嵌入式图像处理技术得到了广泛的应用,一些带有图像视频处理组件的嵌入式处理器开始在图像处理领域大显身手,例如,TI公司生产的达芬奇系列的DSP。这些组件实际上是图像处理硬核,但是大部分是标准化接口的硬核,针对数字视频、图像采样处理、视觉分析等应用进行了剪裁和优化。对于一个特定的图像处理任务,需要利用其内部的处理器来进行串行化软件处理。多核处理器的发展使得多个图像处理任务可以同时执行,也大大提高了图像处理的实时性。尽管这些嵌入式处理器的发展加快了图像处理和视频分析的实际应用,但其本质上仍为软件处理的串行方式,难以满足通用图像处理中大数据量计算的需求。
随着成像传感器技术和信号处理技术的迅猛发展,图像的分辨率、帧频和像元有效位数越来越高,图像处理算法越来越复杂,图像处理结果的实时性要求越来越高,基于PC和DSP软件平台的图像处理系统已难以满足要求。由于图像处理算法天然的并行性,FPGA的加入给图像处理带来了新的活力,特别是针对图像处理底层一些并行特性的图像处理算法。例如二维卷积,FPGA可以保证在极低主频下得到比DSP平台快得多的处理速度,利用其流水线技术可以在每个时钟输出一个处理后像素。然而,FPGA并不适合进行串行化处理算法和部分其他的上层算法。因此,目前DSP FPGA平台是图像处理平台的主流。此外,FPGA在一些低成本的机器视觉领域也得到了广泛的应用。例如,著者所在实验室研究的利用线列CCD和激光实现高精度位移测量项目,该项目利用FPGA实现CCD时序驱动、AD转换和测量算法实现,并实现高速接口与上位机。
在FPGA上实现一个图像处理算法包括确定具体算法和对其进行并行性改造、将算法中计算和存储需求与FPGA内部可用资源相映射、将算法映射到硬件结构上等步骤。然而,目前只有很少的公开资料可供初学者学习该领域的知识,可以让初学者深入了解设计思路、过程、代码的文献资料更难找到。
为改变这一现状,本书从FPGA图像处理理论和分析入手,重点讲解图像处理算法移植到FPGA中的基本思路和方法,突出工程应用。每一章均附有CC实现代码,同时用循序渐进、自顶向下的方式设计FPGA算法模块,针对每一个模块设计了详细的实现框图,确保读者能理解算法设计的原理。此外,每个算法都配有Verilog实现方法,并给出仿真结果。本书还提出了一个通用的利用Modelsim和VS实现图像处理的仿真测试平台。
本书内容概述如下:
(1)第1~5章是基础章节,重点介绍数字图像处理和FPGA程序设计的基础知识。
第1章简单介绍了图像处理的基础知识,包括图像处理的发展现状,还地介绍了图像从获取到显示存储的基本流程。
第2章首先介绍了FPGA的发展现状,生产厂家及其开发流程。接着介绍了基于FPGA的图像处理的基本开发流程。
第3章主要介绍了在FPGA中应用的编程语言。本章并没有详细介绍Verilog语法,而是从工程应用的角度介绍常用的设计方法和实例。
第4章主要介绍了把软件算法映射到FPGA常用的技巧。首先介绍了应用较广泛的流水线设计方法,接着介绍了FPGA硬件计算技术,包括一些常用的计算转换、查找表、浮点计算、Cordic计算等方法。最后介绍了在图像处理中用途非常多的存储器映射,并提出了一些其他设计技巧。
第5章首先简要介绍了仿真测试软件Modelsim的使用,接着重点介绍了一个通用的视频图像处理仿真测试系统。这个测试系统包括完整的视频模拟、视频捕获,以及testbench设计,并结合基于MFC的VC上位机来实现测试系统的搭建。
(2)第6~10章主要介绍算法实现。
第6章介绍直方图操作,主要介绍几种常用直方图操作的FPGA实现:直方图统计、直方图均衡、直方图规定及直方图线性拉伸。
第7章介绍基于图像处理的线性滤波。首先,介绍了均值滤波算法、高斯滤波算法、Sobel算子及FFT等常见的几种线性滤波原理。其次,介绍了均值滤波算法和Sobel算子的FPGA实现。
第8章主要介绍基于图像处理的非线性滤波算法,包括排序滤波的基本原理及其FPGA实现方法。
第9章主要介绍基于图像处理的形态学滤波算法,包括形态学滤波的基本概念,包括形态学膨胀、形态学腐蚀、开运算及闭运算等。重点介绍了基于FPGA的Tophat滤波的原理及实现方法。
第10章主要介绍基于图像处理的常见的分割算法,包括全局阈值分割、局部自适应阈值分割及Canny算子。重点介绍基于FPGA的局部自适应阈值分割和Canny算子的设计与实现。
第11章主要介绍与视频和图像处理相关的输入输出接口,包括CameraLink、火线接口、USB接口、千兆以太网等视频输入接口和CVT标准,以及VGA,PAL,DVI,HDMI等视频输出接口。其中,给出了VGA和PAL接口的Verilog代码实现。
为了确保读者能够快速地掌握FPGA图像处理设计方法,本书提供了算法章节的全部源代码。
本书由武汉理工大学机电工程学院牟新刚、周晓和郑晓亮合著,全书由牟新刚统稿。
本书参考了相关著作及资料的部分内容和图表,部分技术资料取材于互联网,在此对这些文献的作者一并表示谢意。尽管我们为编写本书付出了心血和努力,但仍然存在一些疏漏及欠妥之处,敬请读者批评指正。
著者
2016.5
|
|