欢迎来到天天文库
浏览记录
ID:13701192
大小:140.89 KB
页数:6页
时间:2018-07-24
《基于fpga的图像实时处理系统设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于FPGA的图像实时处理系统设计作者: 李杏华 刘宁 张晶 天津大学半导体光电 上网日期: 2015年06月12日 评论[ 0 ] 分享到: 新浪微博 qq空间 字号:·1·2·3分步阅读关键字:FPGA 图像缓存 实时处理 边缘检测 由于现场实时测量的需要,机器视觉技术越来越多地借助硬件来完成,如DSP芯片、专用图像信号处理卡等。但是,DSP做图像处理也面临着由于数据存储与处理量大,导致处理速度较慢,系统实时性较差的问题。本文将FPGA的IP核内置缓存模块和乒乓读写结构相结合,实现了图像数据的缓存与提取,节省了存储芯片所占用
2、的片上空间,并且利用图像预处理重复率高,但算法相对简单的特点和FPGA数据并行处理,结合流水线的结构,大大缩短了图像预处理的时间,解决了图像处理实时性差的问题。1系统架构和流程简介本系统采用了FPGA与DSP相结合的架构,综合了各自的优点,使系统满足实时性要求的同时,又可以在后续任务中完成复杂算法的处理。系统的整体架构如图1所示。系统上电后,CCD相机向AD转换芯片TVP5150输入PAL制式模拟图像信号,TVP5150将模拟信号转换成数字信号后,以ITU-RBT656格式传输到FPGA,FPGA对采集到的ITU-RBT656格式的图像数据去
3、消隐化后进行预处理,处理完之后传输到DM642的VP0口,VP0以8位RAW格式接收图像数据,并通过EDMA通道存储到连接在EMIFA接口上的SDRAM中。经过DSP的图像处理后,将SDRAM中的图像数据以ITU-RBT656的格式经DM642的VP2口传输到DA芯片SAA7121,然后SAA7121进行DA转换后,将PAL制式的模拟信号输出到LCD显示器上显示。需要说明的是,TVP5150和SAA7121通过DM642的I2C总线接口配置。图1系统结构框图2FPGA图像缓存与处理由于该系统利用FPGA并行性和高速性来缩减图像预处理的时间,因
4、此,FPGA的图像缓存和预处理环节直接影响到系统的实时性,是整个系统的核心部分,也是本文所要介绍的重点。根据图像预处理的需求和FPGA内部各模块功能的不同,将其分为4个部分:去消隐化、滤波、阈值分割和边缘提取。2.1去消隐化FPGA接收TVP5150传输的数字信号为ITURBT656格式,该格式除了传输4∶2∶2的YCbCr视频数据流外,还包含行、列消隐信号。因此,需要将行列消隐信号剔除掉,以便后期进行图像预处理。根据BT656的固有结构,编写了Verilog硬件语言程序,用于提取BT656中的720×576个像素点的有效视频数据,由于图像处
5、理过程只需要检测亮度信号(Y分量),因此同时舍去各像素点的色度信号(Cb、Cr分量),仅保留亮度信号作为图像有效数据。在去消隐化过程中,每行起始状态里,检测输入8位数据,如果连续3个输入信号满足FF、00、00结构,则跳入下一个状态,判断下一个8位输入XY信号,是否为有效图像标志信号(80标志该行为偶场图像数据,C7标志该行为奇场图像数据),若判断是,则计数器计数,并采集计数器为偶数时的数据(即亮度信号),为图像有效数据,当采集满720个图像有效数据时,状态机转入初始状态继续等待FF、00、00结构,并依此循环。2.2滤波摄像机采集的图像存在
6、各类噪声,从而对目标信息的进一步处理产生不利影响,因此,获取图像后需要对图像进行滤波。考虑到中值滤波在平滑脉冲噪声方面非常有效,并且可以保护图像尖锐的边缘的优点,我们选用3×3中值滤波作为系统的图像滤波算法。中值滤波模块包括3个子模块:乒乓结构读写模块、3×3阵列生成模块和中值滤波算子模块,其流程如图2所示。图2中值滤波模块流程图2.2.1乒乓结构读写模块为了节约芯片成本和电路板的片上空间,图像数据的存储利用FPGA上固有的IP核生成双口RAM来缓存。由于图像数据量较大,而中值滤波只需要持续地提取3×3模块来进行数据处理,因此,仅需生成4片双
7、口RAM,每个用于存储一行的图像数据,通过乒乓读写结构,便可实现数据的缓存。乒乓读写结构是指将输入数据流通过输入数据选择单元等时地将输入数据分配到两个数据缓存区,并且再写入某一个缓存区的过程中,从另外一个缓存区读出上个缓存周期写入的数据,依此循环,不断往复。在本系统中,选用4片1024×8bit的双口RAM作为缓存区,在每个缓存周期,向其中1片双口RAM中写入图像数据,同时,读控制模块从另外3片双口RAM中读出前三个缓存周期已写入的数据,用于生成3×3阵列。当一行数据缓存完成后,写使能信号跳转到下一个双口RAM,继续进行下一行数据写入,读控制
8、模块继续读取剩余三行所存储数据。2.2.23×3阵列生成模块3×3阵列生成模块利用了3个并行的24位移位寄存器,如果读使能信号有效,则在每个时钟的上升沿,将3个移位
此文档下载收益归作者所有