分享
基于FPGA的数字图像处理原理及应用.pdf
下载文档

ID:2357678

大小:23.84MB

页数:451页

格式:PDF

时间:2023-05-08

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 FPGA 数字图像 处理 原理 应用
本书获福州外语外贸学院学术著作出版基金资助 基于 FPGA 的数字图像处理原理及应用 牟新刚 周 晓 郑晓亮 著 内 容 简 介 本书首先介绍 FPGA 程序设计和图像与视频处理的关键基础理论,然后通过实例代码详细讲解了如何利用 FPGA 实现直方图操作中的直方图统计/均衡化/线性拉伸/规定化、线性滤波器操作中的均值滤波器、Sobel 算子(滤波、求模、求角度)、非线性滤波器操作中的排序类算法/形态学滤波、图像分割算法中的局部自适应分割/Canny 算子等。本书在仿真测试部分设计了一种完善的通用测试系统,并利用此测试系统在每一章的仿真测试环节对所设计算法进行严格的测试和验证。本书在最后一章介绍了在视频处理领域常见的输入/输出接口。本书偏向于工程应用,在书中有大量关于如何利用 FPGA 实现图像处理算法的实例及代码,并对这些算法的原理及其实现过程、算法测试等做了详细的介绍,全部的算法都进行了仿真测试验证。本书提供实例的全部源代码,可登录以下网址免费获取:http:/(华信资源教育网)。本书适用于需要利用 FPGA 进行图像处理和视频分析的学者和工程开发人员。读者需要具备一定的嵌入式设计及 FPGA 设计的基础知识,特别是 Verilog 语言的语法基础。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容 版权所有,侵权必究 图书在版编目(CIP)数据 基于 FPGA 的数字图像处理原理及应用/牟新刚,周晓,郑晓亮著北京:电子工业出版社,2017.1 ISBN 978-7-121-29335-1 I.基 II.牟周郑 .数字图象处理 .TN911.73 中国版本图书馆 CIP 数据核字(2016)第 156215 号 责任编辑:郭穗娟 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871 092 1/16 印张:28.25 字数:720 千字 版 次:2017 年 1 月第 1 版 印 次:2017 年 1 月第 1 次印刷 定 价:66.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询方式:(010)88254502, 前 言 最近几年图像处理与机器视觉的发展非常迅速,图像处理领域也被认为是未来几十年最有前途的领域之一。随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,图像处理系统的硬件体积越来越小,实时性也越来越好。特别是最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P 分辨率的视频已经非常流行,2K 甚至 4K分辨率的图像也在火热发展中。目前,比较火热的 VR 技术更是需要双通道的高分辨率、高扫描频率的视频数据及处理能力。这些新的要求给之前的图像处理平台带来了严重的挑战,传统的图像处理技术主要基于软件平台,一般运行在 Windows 平台的 PC 上。虽然现代 PC 的主频较高,但是用软件的串行化处理方法进行图像处理的效率还是非常低的。例如,用 PC 处理一个比较复杂的高分辨率图像处理算法花费半个小时或更多时间也是常见的事情。然而,对于实时图像处理,例如实时跟踪和视频显示,这个处理速度是远远不够的。正是由于这个原因,嵌入式图像处理技术得到了广泛的应用,一些带有图像视频处理组件的嵌入式处理器开始在图像处理领域大显身手,例如,TI 公司生产的达芬奇系列的 DSP。这些组件实际上是图像处理硬核,但是大部分是标准化接口的硬核,针对数字视频、图像采样处理、视觉分析等应用进行了剪裁和优化。对于一个特定的图像处理任务,需要利用其内部的处理器来进行串行化软件处理。多核处理器的发展使得多个图像处理任务可以同时执行,也大大提高了图像处理的实时性。尽管这些嵌入式处理器的发展加快了图像处理和视频分析的实际应用,但其本质上仍为软件处理的串行方式,难以满足通用图像处理中大数据量计算的需求。随着成像传感器技术和信号处理技术的迅猛发展,图像的分辨率、帧频和像元有效位数越来越高,图像处理算法越来越复杂,图像处理结果的实时性要求越来越高,基于 PC 和 DSP 软件平台的图像处理系统已难以满足要求。由于图像处理算法天然的并行性,FPGA 的加入给图像处理带来了新的活力,特别是针对图像处理底层一些并行特性的图像处理算法。例如二维卷积,FPGA 可以保证在极低主频下得到比 DSP 平台快得多的处理速度,利用其流水线技术可以在每个时钟输出一个处理后像素。然而,FPGA 并不适合进行串行化处理算法和部分其他的上层算法。因此,目前 DSP+FPGA平台是图像处理平台的主流。此外,FPGA 在一些低成本的机器视觉领域也得到了广泛的应用。例如,著者所在实验室研究的利用线列 CCD 和激光实现高精度位移测量项基于 FPGA 的数字图像处理原理及应用 IV 目,该项目利用 FPGA 实现 CCD 时序驱动、A/D 转换和测量算法实现,并实现高速接口与上位机。在 FPGA 上实现一个图像处理算法包括确定具体算法和对其进行并行性改造、将算法中计算和存储需求与 FPGA 内部可用资源相映射、将算法映射到硬件结构上等步骤。然而,目前只有很少的公开资料可供初学者学习该领域的知识,可以让初学者深入了解设计思路、过程、代码的文献资料更难找到。为改变这一现状,本书从 FPGA 图像处理理论和分析入手,重点讲解图像处理算法移植到 FPGA 中的基本思路和方法,突出工程应用。每一章均附有 C/C+实现代码,同时用循序渐进、自顶向下的方式设计 FPGA 算法模块,针对每一个模块设计了详细的实现框图,确保读者能理解算法设计的原理。此外,每个算法都配有 Verilog 实现方法,并给出仿真结果。本书还提出了一个通用的利用 Modelsim 和 VS 实现图像处理的仿真测试平台。本书内容概述如下:(1)第 15 章是基础章节,重点介绍数字图像处理和 FPGA 程序设计的基础知识。第 1 章简单介绍了图像处理的基础知识,包括图像处理的发展现状,还地介绍了图像从获取到显示存储的基本流程。第 2 章首先介绍了 FPGA 的发展现状,生产厂家及其开发流程。接着介绍了基于FPGA 的图像处理的基本开发流程。第3章主要介绍了在FPGA中应用的编程语言。本章并没有详细介绍Verilog语法,而是从工程应用的角度介绍常用的设计方法和实例。第 4 章主要介绍了把软件算法映射到 FPGA 常用的技巧。首先介绍了应用较广泛的流水线设计方法,接着介绍了 FPGA 硬件计算技术,包括一些常用的计算转换、查找表、浮点计算、Cordic 计算等方法。最后介绍了在图像处理中用途非常多的存储器映射,并提出了一些其他设计技巧。第 5 章首先简要介绍了仿真测试软件 Modelsim 的使用,接着重点介绍了一个通用的视频图像处理仿真测试系统。这个测试系统包括完整的视频模拟、视频捕获,以及 testbench 设计,并结合基于 MFC 的 VC 上位机来实现测试系统的搭建。(2)第 610 章主要介绍算法实现。第 6 章介绍直方图操作,主要介绍几种常用直方图操作的 FPGA 实现:直方图统计、直方图均衡、直方图规定及直方图线性拉伸。第 7 章介绍基于图像处理的线性滤波。首先,介绍了均值滤波算法、高斯滤波算法、Sobel 算子及 FFT 等常见的几种线性滤波原理。其次,介绍了均值滤波算法和Sobel 算子的 FPGA 实现。第 8 章主要介绍基于图像处理的非线性滤波算法,包括排序滤波的基本原理及其前 言 V FPGA 实现方法。第 9 章主要介绍基于图像处理的形态学滤波算法,包括形态学滤波的基本概念,包括形态学膨胀、形态学腐蚀、开运算及闭运算等。重点介绍了基于 FPGA 的 Tophat滤波的原理及实现方法。第 10 章主要介绍基于图像处理的常见的分割算法,包括全局阈值分割、局部自适应阈值分割及 Canny 算子。重点介绍基于 FPGA 的局部自适应阈值分割和 Canny 算子的设计与实现。第 11 章主要介绍与视频和图像处理相关的输入/输出接口,包括 CameraLink、火线接口、USB 接口、千兆以太网等视频输入接口和 CVT 标准,以及 VGA,PAL,DVI,HDMI 等视频输出接口。其中,给出了 VGA 和 PAL 接口的 Verilog 代码实现。为了确保读者能够快速地掌握 FPGA 图像处理设计方法,本书提供了算法章节的全部源代码。本书由武汉理工大学机电工程学院牟新刚、周晓和郑晓亮合著,全书由牟新刚统稿。本书参考了相关著作及资料的部分内容和图表,部分技术资料取材于互联网,在此对这些文献的作者一并表示谢意。尽管我们为编写本书付出了心血和努力,但仍然存在一些疏漏及欠妥之处,敬请读者批评指正。著者 2016.5 目 录 第 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.2 FPGA 技术优势.33 2.3 FPGA 的发展历程.34 2.4 FPGA 生产厂家及其产品.35 2.4.1 Altera.35 2.4.2 Xilinx.37 2.4.3 Lattice.37 2.4.4 Atmel.38 2.4.5 Actel.38 2.5 FPGA 开发流程.38 2.5.1 FPGA 设计方法.38 2.5.2 典型的 FPGA 开发流程.39 2.6 FPGA 常用开发工具.44 2.6.1 代码输入工具.45 2.6.2 综合工具.46 2.6.3 仿真工具.47 2.6.4 实现与优化工具.47 2.6.5 EDA 工具.48 2.7 FPGA 图像处理的开发流程.49 2.7.1 需求分析及问题描述.49 2.7.2 软件算法设计及验证.50 2.7.3 硬件平台设计.51 2.7.4 FPGA 映射.52 2.7.5 仿真及验证.54 第 3 章 FPGA 编程语言.55 3.1 HDL 语言简介.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 基于 FPGA 的数字图像处理原理及应用 VIII 4.2.3 增量更新.85 4.2.4 查找表.85 4.2.5 浮点计算.89 4.2.6 Cordic 技术.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.1 Modelsim 使用基础.121 5.1.1 Modelsim 简介.121 5.1.2 Modelsim 图形界面及 仿真示例.122 5.1.3 使用脚本命令来加速 仿真.1

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开