




已阅读5页,还剩76页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章图像边缘检测器的设计与分析 12 1系统设计要求12 2系统设计方案12 3主要LPM原理图和VHDL源程序12 4系统仿真 硬件验证12 5设计技巧分析12 6系统扩展思路 12 1系统设计要求 在嵌入式图形系统处理领域 图像处理的速度问题一直是一个很难突破的设计瓶颈 一般情况下 控制领域及数据处理领域几乎是单片机和数字信号处理器的天下 但是在数据处理量大 实时性要求更为苛刻的场合 传统的MCU根本无法适应实时大批量数据处理场合 而DSP虽然具备指令流水线和很高的处理速度 但是由于其本质仍然是依靠串行执行指令来完成相应的图像处理算法的 所以其处理速度依然很受限制 图12 1是一个DSP FPGA CPLD的图像处理系统的总体框图 其中图像传感器CCD的主要功能是获取外界图像的各个像素点灰度值 图像主处理器采用数字信号处理器DSP 主要负责对图像传感器传送的灰度信息进行存储 并负责调用协处理器进行边界像素判别 找出我们感兴趣的目标对象 从而得到该对象的运动信息 以便控制执行装置进行位置跟踪 边缘检测协处理器为FPGA CPLD 主要完成主处理器传送过来的像素的边界判别 并把处理结果返回到主处理器中 图12 1DSP FPGA CPLD图像处理系统的组成框图 在本系统中 系统的设计指标为 数据吞吐量 10Mb s 动态响应时间 100ms frame 主处理器初步选用德州公司的DSP芯片TMS320C5402 协处理器拟采用ALTERA公司的FLEX10K20 图像处理系统的接口关系如图12 2所示 其中FLEX10K20的接口说明如下 DATA 8位数据输入端口 WR 写有效信号输入端口 CLK 同步时钟输入端口 T D 阈值 像素值选择端口 T D 1时 表示输入的数据为像素阈值 为0时表示输入的数据为像素值 CS 片选信号 低电平有效 READY 状态查询位 为协处理器 准备好 信号输出端 低电平有效 当该协处理器处理完一帧图像后 该信号恢复有效电平 主处理器启动下一帧图像的边界处理 MAGOUT 像素边界判别信号输出 MAGOUT为1时 表示当前像素为边界像素 为0表示为非边界像素 图12 2图像处理系统接口关系图 12 2系统设计方案 12 2 1算法选择图像处理经常用于在连续图像中跟踪移动物体 它从传感器接收图像的连续流 根据输入图像的数据选择跟踪物体 初始图像不断被加强 然后进行分割 以定位物体或找出感兴趣的区域 定位物体或区域后 检查出可以最终划分物体的特征 Sobel算法包括带4个3 3掩码的输入图像数据 即Sobel算子 它设置权重来检测水平 垂直 左对角 右对角各个不同方向上密度幅度的不同 这个过程通常被称为过滤 下面我们来看一个3 3的像素窗口 如图12 3所示 图12 3像素窗 水平 垂直 左对角 右对角各图像方向上密度幅度的变化可以用如下算子进行计算 H Q0 2Q3 Q6 Q2 2Q5 Q8 V Q0 2Q1 Q2 Q6 2Q7 Q8 DR Q1 2Q0 Q3 Q5 2Q8 Q7 DL Q1 2Q2 Q5 Q3 2Q6 Q7 H V DL DR这四个参数用于计算梯度大小和方向 对梯度大小的一个普遍估计值为 Magnitude Max H V DR DL 12 2 2算法实现由前面所述可知 Sobel的滤波函数为H Q0 2Q3 Q6 Q2 2Q5 Q8 V Q0 2Q1 Q2 Q6 2Q7 Q8 DR Q1 2Q0 Q3 Q5 2Q8 Q7 DL Q1 2Q2 Q5 Q3 2Q6 Q7 Magnitude Max H V DR DL 为了减少设计的复杂度 上面式子中的乘法运算可以改写成加法运算 H Q0 Q3 Q3 Q6 Q2 Q5 Q5 Q8 V Q0 Q1 Q1 Q2 Q6 Q7 Q7 Q8 DR Q1 Q0 Q0 Q3 Q5 Q8 Q8 Q7 DL Q1 Q2 Q2 Q5 Q3 Q6 Q6 Q7 12 2 3总体设计方案根据图像处理的知识及分析 我们可得到此边缘检测处理器的工作流程如图12 4所示 首先 DSP将从图像传感器中获取的灰度图 800 600 按照每三列划分为一帧的原则进行帧窗口划分 帧窗口的图形数据又按照每三行划分为一个像素处理窗口的原则逐一进行处理 图12 4图像处理流程示意图 根据以上设计思路 我们可把整个系统的实现划分为四个大的模块 其总体结构如图12 5所示 其中 帧窗口接收模块 FIFO 负责接收DSP传送过来的一个帧窗口的数据 其本质为一个双端口先入先出栈FIFO 其数据宽度为8 深度等于一个帧窗口内的像素点个数 600 3 1800 串入并出模块 SIPO 负责把FIFO内的数据转换成为像素处理窗口的列像素向量 便于像素处理窗口的数据刷新处理 像素窗口刷新模块 REFRESH 实现对需要处理的像素数据的刷新 数据处理模块 PROCESSOR 是本图形边缘处理器的核心部分 主要是实现Sobel算法 其性能的好坏对整个设计的成败有着关键的作用 图12 5图像边缘检测器总体结构图 12 2 4主要功能模块的设计1 帧窗口接收模块FIFO由于高速设备与慢速设备之间处理速度的差别 它们之间的数据传输一般采用查询方式或中断方式 而数据同步传输则选择了帧同步方式 存储器的类型拟选用FIFO 堆栈空时向主机发出准备好信号 主机检测到它的数据传输请求时 传送一帧数据 由于FIFO的大小与一帧图像的大小是一致的 所以接收完毕后 堆栈满 Sobel处理器启动边缘检测进程 处理完一帧数据后 堆栈重新变为空 为下一帧数据处理作准备 其内部结构如图12 6所示 图12 6帧窗口接收模块FIFO的内部结构图 2 串入并出模块SIPO串入并出模块的主要功能是负责一列像素的刷新 也就是把主处理器传送过来的像素值转换成3 3像素窗口的一列 该模块的实现主要是通过六个D触发器和一个三进制的计数器组成 当计数器产生进位溢出时 串行输入的三个像素点并行输出 其内部结构如图12 7所示 图12 7串入并出模块SIPO的内部结构图 3 像素窗口刷新模块REFRESH像素刷新窗口的主要功能是接收串入并出模块的3个并行像素 把窗口中原有的第二列像素推入第三列 第一列推入第二列 新到的并行像素填入第一列 其本质为一个移位寄存器 其内部结构如图12 8所示 图12 8像素刷新模块REFRESH的内部结构图 4 滤波模块FILTER对于Sobel算法的各个滤波器 H V DR DL经变换后可得到 H Q0 Q3 Q3 Q6 Q2 Q5 Q5 Q8 V Q0 Q1 Q1 Q2 Q6 Q7 Q7 Q8 DR Q1 Q0 Q0 Q3 Q5 Q8 Q8 Q7 DL Q1 Q2 Q2 Q5 Q3 Q6 Q6 Q7 因此我们对于滤波模块FILTER的设计可采用两级并行流水方案 其内部结构如图12 9所示 图12 9滤波模块FILTER的内部结构图 对于上述滤波数据的处理 在不采用流水线的情况下 像素从进入处理器到结果输出 需要经过两级加法和一级减法的时延 但是使用流水线技术后 其本质为对中间结果进行寄存 结果输出仅仅滞后三个时钟频率 但是增加了数据吞吐量 同时也提高了时钟频率 为提高加法运算的速度 本设计中的加法器采用超前进位加法器 下面对其作一个简单的回顾 SUM I A I XORB I XORC I 1 C I A I ANDB I OR A I XORB I ANDC I 1 令P I A I XORB I G I A I ANDB I 其中P I G I 均与进位信号无关 则SUM I 与C I 可表达为SUM I P I XORC I 1 C I G I OR P I ANDC I 1 5 数据处理模块PROCESSOR数据处理模块PROCESSOR的主要功能是求出四个方向的图像梯度数据绝对值的最大值 同时判别最大值出现的方向 其内部结构如图12 10所示 它包括滤波器FILTER 比较器COMPARE 边界判断器RESULT和寄存器等 图12 10数据处理模块PROCESSOR的内部结构图 12 3主要LPM原理图和VHDL源程序 12 3 1LPM兆功能块定制方法简介LPM模块的使用方式有两种 原理图调用方式和VHDL文本调用方式 下面以一个先进先出的存储缓冲器MYFIFO的设计为例介绍一下LPM兆功能块的定制方法 1 原理图调用方式先进入原理图编辑窗 再调入需使用的兆功能块 LPM FIFO 如图12 11所示 鼠标双击调出的兆功能块右上角的参数显示文字 然后在弹出的端口 参数编辑窗中 设定 Used 本设计要用的端口 去掉 Unused 本设计不用的端口 并对于一些需设定参数的端口 选择合适的参数 如图12 12所示 这时基于兆功能块MYFIFO就已经定制好 如图12 13所示 在后面的设计中即可作为一个元件进行调用 图12 11调用兆功能块示意图 图12 12兆功能块端口 参数设定示意图 图12 13定制好的兆功能块示意图 2 VHDL文本调用方式首先进入MAX plus 兆功能块定制管理器 如图12 14所示 并选择生成或修改一个定制的兆功能块 如图12 15所示 其次选择定制的功能块名称LPM FIFO 输出文件的格式VHDL 输出文件的路径及文件名等 如图12 16所示 接着进行数据参数选择 如图12 17所示 端口设置选择 如图12 18所示 数据输出控制选择 如图12 19所示 优化方式选择 如图12 20所示 等 最后单击 Finish 即完成了MYFIFO VHD的定制 如图12 21所示 图12 14进入兆功能块定制管理器 图12 15生成或修改一个定制的兆功能块 图12 16定制的功能块的路径及输出文件选择 图12 17数据参数选择 图12 18端口设置选择 图12 19数据输出控制选择 图12 20优化方式选择 图12 21单击 Finish 后完成MYFIFO VHD的定制 MYFIFO VHD的源程序如下 MYFIFO VHD 本程序已去掉程序前后的说明注释 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYMYFIFOISPORT DATA INSTD LOGIC VECTOR 7DOWNTO0 WRREQ INSTD LOGIC RDREQ INSTD LOGIC CLOCK INSTD LOGIC Q OUTSTD LOGIC VECTOR 7DOWNTO0 FULL OUTSTD LOGIC EMPTY OUTSTD LOGIC ENDMYFIFO ARCHITECTURESYNOFMYFIFOISSIGNALSUB WIRE0 STD LOGIC SIGNALSUB WIRE1 STD LOGIC VECTOR 7DOWNTO0 SIGNALSUB WIRE2 STD LOGIC COMPONENTLPM FIFOGENERIC LPM WIDTH NATURAL LPM NUMWORD NATURAL LPM WIDTHU NATURAL LPM SHOWAHEAD STRING LPM HINT STRING PORT RDREQ INSTD LOGIC EMPTY OUTSTD LOGIC CLOCK INSTD LOGIC Q OUTSTD LOGIC VECTOR 7DOWNTO0 WRREQ INSTD LOGIC DATA INSTD LOGIC VECTOR 7DOWNTO0 FULL OUTSTD LOGIC ENDCOMPONENT BEGINEMPTY SUB WIRE0 Q SUB WIRE1 7DOWNTO0 FULL SUB WIRE2 LPM FIFO COMPONENT LPM FIFO GENERICMAP LPM WIDTH 8 LPM NUMWORDS 4 LPM WIDTHU 2 LPM SHOWAHEAD OFF LPM HINT USE EAB ON MAXIMIZE SPEED 5 PORTMAP RDREQ RDREQ CLOCK CLOCK WRREQ WRREQ DATA DATA EMPTY SUB WIRE0 Q SUB WIRE1 FULL SUB WIRE2 ENDARCHITECTURESYN 12 3 2一些模块的LPM原理图FIFO模块由定制的LPM模块CSFIFO LPM FF 标准元件AND2 NOT以及用VHDL编程编译后生成的二进制计数器COUNTER2构成 如图12 22所示 SIPO的LPM原理图如图12 23所示 REFRESH的LPM原理图如图12 24所示 FILTER的LPM原理图如图12 25 略 所示 PROCESSOR的LPM原理图如图12 26 略 所示 图12 22FIFO的原理图 图12 23SIPO的原理图 图12 24REFRESH的原理图 12 3 3RESULT的VHDL源程序边界判断器RESULT模块是数据处理模块PROCESSOR内部的一个子模块 其功能就是根据区分度阈值 四个滤波器的输出及其最大值进行边界的判断 其输入 输出端口如图12 27所示 图12 27RESULT模块的输入 输出端口图 VHDL源程序如下 RESULT VHDLIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYRESULTISGENERIC SIZE INTEGER 11 PORT CLK INSTD LOGIC H V DR DL INSTD LOGIC VECTOR SIZEDOWNTO1 THRESHOLD INSTD LOGIC VECTOR 8DOWNTO1 MAX INSTD LOGIC VECTOR SIZEDOWNTO1 MAGOUT OUTSTD LOGIC DIR OUTSTD LOGIC VECTOR 3DOWNTO1 ENDENTITYRESULT ARCHITECTUREARTOFRESULTISBEGINPROCESS CLK THRESHOLD BEGINIF CLK EVENTANDCLK 1 THENIF MAX SIZE 1DOWNTO1 00 ELSIF MAX HANDH SIZE 1 THENDIR 100 ELSIF MAX VANDV SIZE 0 THENDIR 010 ELSIF MAX VANDV SIZE 1 THENDIR 110 ELSIF MAX DRANDDR SIZE 0 THENDIR 001 ELSIF MAX DRANDDR SIZE 1 THENDIR 101 ELSIF MAX DLANDDL SIZE 0 THENDIR 011 ELSIF MAX DLANDDL SIZE 1 THENDIR 111 ENDIF ELSEMAGOUT 0 DIR 000 ENDIF ENDIF ENDPROCESS ENDARCHITECTUREART 12 3 4COMPARE的VHDL源程序比较器COMPARE模块是数据处理模块PROCESSOR内部的一个子模块 其功能就是根据两个输入参数求出其最大值 其输入 输出端口如图12 28所示 图12 28COMPARE的输入 输出端口如图 VHDL源程序如下 COMPARE VHDLIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYCOMPAREISGENERIC SIZE INTEGER 11 PORT DAT1 DAT2 INSTD LOGIC VECTOR SIZEDOWNTO1 MAX OUTSTD LOGIC VECTOR SIZEDOWNTO1 ENDENTITYCOMPARE ARCHITECTUREARTOFCOMPAREIS BEGINPROCESS DAT1 DAT2 BEGINIF DAT1 SIZE 1DOWNTO1 DAT2 SIZE 1DOWNTO1 THENMAX DAT1 ELSEMAX DAT2 ENDIF ENDPROCESS ENDARCHITECTUREART 12 3 5系统的总体组装设计请读者根据图12 5的总体结构图自行完成 12 4系统仿真 硬件验证 12 4 1系统的有关仿真1 FIFO的仿真 1 仿真激励源 同步时钟CLK 写使能WE 八位数据输入端口DATA 2 仿真期望结果 当主处理器向FIFO写完一帧像素点数据后 READY信号输出值为零 同时 FIFO封锁输入通道 外部数据不能再写入FIFO 3 仿真结果及分析 FIFO的仿真结果如图12 29所示 从图中可以看出 主处理器写完四个像素点数据后 Q 8 1 按照先入先出的顺序 逐个输出获取的像素数据12 13 14 图12 29FIFO的仿真结果 2 SIPO的仿真 1 激励源 同步时钟及外部输入像素的灰度信息 2 期望结果 把串行数据转换为并行数据 而且输出的并行数据必须保持到第三个串行数据输入的时刻以前 3 仿真结果及分析 SIPO的仿真结果如图12 30所示 由图中可以看出 如我们将串行数据每三个划分为一段 QA QB QC恰好是这一段的并行输出 符合设计期望 图12 30SIPO的仿真结果 3 REFRESH的仿真REFRESH模块在系统中的主要作用是实现像素处理窗口的更新 在每一时钟上升沿 并行提供三个输入像素 1 激励源 外部时钟CLK及并行像素DATA0 DATA1 DATA2 2 期望结果 在每个时钟上升沿到来时 像素窗口最左端的一列像素 Q0 Q1 Q2 移出 第二列 Q3 Q4 Q5 移入第一列 Q0 Q1 Q2 第三列 Q6 Q7 Q8 移入第二列 Q3 Q4 Q5 输入像素直接移入第三列 Q6 Q7 Q8 同时 该窗口必须能并行输出8个像素给Sobel滤波模块 3 仿真结果 REFRESH模块的仿真结果如图12 31所示 如波形图中箭头所示 该模块同时实现了并行输入 同步移位寄存 并行数据输出功能 符合设计期望 图12 31REFRESH的仿真结果 4 FILTER的仿真滤波器的本质是实现并行流水加法操作 在调试过程中 为了观察到实际的延时 输出信号直接来自流水加法器的输出 而非流水寄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人保护性约束课件
- 老年人保健知识培训总结课件
- 山东省日照市东港区某中学2024-2025学年九年级下学期三模考试数学试卷(附答案)
- 人教版八年级英语下册专练:阅读理解20篇(含答案)
- 老年专科护士课件
- CN120199976A 阻燃抗收缩涂层自交联锂电池隔膜及其成型工艺
- CN120197083A 一种面向数据空间信息演化过程的数据分级方法
- 热点09 海-气相互作用与全球气候变化-2024年高考地理专练(新高考专用)
- 2020年7月国开电大法学本科《国际法》期末纸质考试试题及答案
- 老师上课课件改成AV
- (2025秋新版)教科版三年级上册科学全册教案
- 2025年新西师大版数学三年级上册全册课件
- 食品安全总监、食品安全员考核考试测试题及答案
- 2025年彩票市场监察笔试备考手册
- 培训学校租房合同协议书
- 江淮十校2026届高三第一次联考物理试卷(含答案解析)
- 2025年云南文山交通运输集团公司招聘考试笔试试卷【附答案】
- 1《氓》公开课一等奖创新教学设计统编版高中语文选择性必修上册
- 少先队辅导员技能大赛考试题库300题(含答案)
- 部编人教版七年级语文上册《朝花夕拾》
- 菌种购入、使用、销毁记录表单
评论
0/150
提交评论