实时图像显示系统(精选10篇)
实时图像显示系统 篇1
0 引言
接触式图像传感器(CIS)是上世纪90年代初研究和开发的一种新型光电耦合器件。它具有体积小、重量轻、功耗低、结构紧凑、便于安装等优点,广泛应用于传真机、扫描仪及新型点验钞机等领域。SOPC (System on Programming Chip),即可编程片上系统,它集成了硬核或软核 CPU、锁相环、存储器、可配置I/O接口及可编程逻辑单元,由单个芯片完成整个系统的主要逻辑功能,具有灵活的设计方式,可裁减、扩充、升级,并具备软硬件在系统可编程的功能。本文设计的实时图像采集系统,采用三通道高速 CIS传感器,结合SOPC技术,使系统集成度更高,开发周期更短,具有较好的实时性。
1 系统概述
根据基于CIS图像采集系统的要求,及PCB制作的考虑,选用Xilinx公司Spartan-3E系列的FPGA完成整个图像采集过程。在FPGA输出的CIS驱动和控制信号、A/D驱动信号共同作用下,CIS输出的三通道模拟信号经三通道A/D转换为数字信号后,进人FPGA控制器,通过多端口总线控制器(MPMC)存入对应地址的DRAM中。在FPGA控制器上主要完成图像的存储、CIS驱动和控制、A/D驱动和配置及对外部信号的响应。Frame_Trig和Line_Trig为外部输入的同步触发信号。系统框图如图1所示。
2 图像采集系统
图像采集是整套系统的基础,它的稳定性直接影响着系统的整体性能。接触式图像传感器(CIS)是一种自带光源的线性传感器,扫描一次仅能得到一行图像信息,因此,图像采集时必须配合横向(垂直于CIS方向)的运动,才能得到一幅完整的二维图像。为保证图像横向分辨率的稳定性,系统采用电机配合光电编码器的方案,精确控制平台的运动速度与CIS行触发信号之间的关系。通常情况下,为保证图像不失真,图像的横向分辨率与纵向分辨率需保持相同。
2.1 运动平台
运动平台由电机、光电编码器和传送机构、分离机构和接收机构等组成。其中光电编码器由光电开关传感器和光栅盘组成,光栅盘与电机同轴运动。电机启动后,传送带以一定速度运行,被检测对象通过分离机构,均匀的分布在传送带上,此时,编码器产生的脉冲信号送给FPGA,作为CIS的行同步信号,触发CIS采集一帧图像。CIS安装位置的前端装有两个红外对管。当被检测对象经过红外对管时,两个红外对管将产生的脉冲的边沿信号将送给FPGA,作为整幅图像的启动、停止控制信号。图像采集系统机械结构示意如图2所示。
2.2 接触式图像传感器
系统所用的三通道CIS图像传感器,其最高工作频率为8Mhz,有效扫描宽度为183mm,有效像素为1440个,物理分辨率最高可达200 DPI,并可单独控制自带光源的曝光时间。CIS信号时序如图3所示。
SI信号为行扫描的启动信号,三通道输出模拟信号SIG1、SIG2、SIG3在SI为高电平后的64时钟周期内输出无效信号,65~495时钟周期内输出信号为有效信号。Tgrn为LED的曝光时间,Tmax为最大曝光时间。
2.3 A/D转换器
A/D芯片选用专用于CIS的三通道高速A/D转换器,16位分辨率,最高采样率可达30MSPS,完全满足系统要求。该芯片工作在三通道SHA模式下,工作时序如图4所示。Analog_Input为三通道CIS的输出模拟信号,CDSCLK2为相关双采样时钟脉冲信号,由FPGA给出。在三通道模式下,ADCCLK为采样时钟输入信号。Output_Data为输出数字信号,连入FPGA数据接口。
2.4 图像存储
MPMC(Multi-Port Memory Controller)全称为多端口内存控制器,是Xilinx公司提供的一种全定制内存控制器,它本身支持SDRAM、DDR 和 DDR2 等多种内存的读写时序,本系统采用的是 SDRAM内存。在系统中,Xilinx公司提供的软核Micro-Blaze是通过 PLB(Processor Local Bus)总线与多端口内存控制器MPMC连接的,有利于在软核上以地址空间的形式直接存取SDRAM 的数据。为保证数据能够实时地传输,对于图像数据的存储和读取,系统采用两个相互独立的可配置NPI 端口分别来存储和读取数据。存储数据用的NPI端口配置成只写模式,而读取数据用的NPI端口配置成只读模式。
2.5 FPGA时序设计
FPGA的时序设计,包括产生CIS驱动信号以及与它相匹配的A/D控制信号。CIS的驱动信号包括SI行扫描启动信号、LEDrgb光源控制信号、CLK工作时钟信号以及CNT分辨率选择信号。相匹配的A/D转换器驱动信号包括CDS参考时钟、CDSCLK1、CDSCLK2和A/D数据采样时钟信号ADCCLK。由于有限状态机的结构模式简单、可靠性强以及容易构成性能良好的同步时序逻辑模块等特点,因此采用有限状态机来实现驱动逻辑设计。
作为整幅图像采集的有限状态机Field_State总共分为Fiedl_Idle、Fiedl_Delay、Fiedl_Valid三种状态。
Field_Idle:Field_State的初始等待状态。当电机未启动或电机启动未有被检测对象通过红外对管传感器时,Field_State处于Field_Idle;此时CIS未启动;当Frame_Trig=1,即被检测对象通过红外对管传感器时,此时Field_State将跳转入Field_Delay。
Field_Delay:Field_State的延时等待状态。此时启动CIS驱动和控制,并以外部码盘信号作为行同步信号触发采图,对行同步脉冲进行计数,当脉冲计数值达到某一固定值,此时Run_Flag=1,Field_State跳转入Fiedl_Valid。
Fiedl_Valid:即Field_State有效采图状态,此状态同时开启CIS驱动和图像储存。当再次检测到红外对管边沿信号时,即Stop_Flag=1时,跳转入Field_ldle,等待下一次红外对管传感器的触发信号。如图5主状态转移图所示。
Line_State为另一有限状态机,用于CIS一帧图像的采集。Line_State总共分为Line_Idle、Line_Delay、Line_Valid三种状态。
当Line_State处于Line_Idle,CIS工作在空闲状态,没有启动采图信号(SI)。当光电编码器的下降沿信号到来时,即Line_Trig=1,Line_State跳转入Line_Delay。Line_Delay为Line_State和Line_Valid状态时,进入Line_Delay状态,该状态是固定时钟脉冲延时,目的是去掉CIS前端的无效像素点;当固定时钟脉冲计数器溢出后,状态跳转入有效行采图状态,即Line_Valid,完成三通道图像数据的采集;当一帧图像的有效像素点完成采集后,状态跳转入Line_Idle,等待下一次行同步信号的触发。如图5中从状态转移图所示。
为了CIS稳定工作及图像信息的准确采集,所编写的各驱动信号必须存在严格的时序关系。在Xilinx开发平台ISE10.1开发环境中,采用Verilog HDL语言进行各种驱动时序及控制信号的设计及编写,仿真结果如图6所示。
3 结束语
本文采用SOPC技术,在单片FPGA芯片上完成了针对接触式图像传感器CIS的实时图像采集任务。系统中图像的采集、判断及存储都通过硬件逻辑实现,充分发挥了FPGA并行处理的能力,很好地完成了系统的强实时性要求。同时,在整个采集过程不需要处理器参与,节省了宝贵的系统运算资源,有利于后续的图像处理。由于仅用了一块FPGA即实现了处理器和各种逻辑的功能,系统集成度较高,进而降低了系统的复杂度,在高速视觉检测领域有着较好的应用价值和前景。
参考文献
[1]夏振春,丁万山.基于CIS与ARM9的条码图像采集系统[J].电子科技,2010,23(3):23-29.
[2]蒋伟林,胡跃明,陈安.基于FPGA的实时图像采集系统[J].计算机测量与控制,2011,19(5):1215-1216.
[3]程开富.接触式图像传感器的发展与应用[J].国外电子元器件,2002,6:62-65.
[4]胡社教,昂鑫,江萍.基于CPLD的CIS驱动电路设计[J].仪器仪表学报,2010,31(8):181-183.
[5]朱均超,刘铁根,王双.一种接触式图像传感器非均匀性实时校正方法[J].光电子,2007,18(9):1036-1038.
[6]冯晓昱,吴云峰,叶玉堂.基于FPGA与接触式图像传感器的宽幅扫描仪[J].中国科技信息,2009,2:110-111.
实时图像显示系统 篇2
基于FPGA的实时图像处理技术研究
随着多媒体应用已经普及,相应的数字图像处理也得到了广泛的应用.虽然图像处理的`技术有很多种,但是实时图像处理通常需要巨大的数据吞吐量和运算量.因此专用的硬件或者多重处理技术的并行处理很必要.FPGA特有的逻辑结构单元对实现实时图像处理来说有着先天的优势.本文首先给出了FPGA在图像处理中的简单应用,然后详细介绍了国内外目前的研究现状及其中的关键问题.
作 者:唐奋飞 作者单位:湘谭职业技术学院,湖南,湘潭,411102 刊 名:咸宁学院学报 英文刊名:JOURNAL OF XIANNING COLLEGE 年,卷(期): 29(3) 分类号:P393 关键词:多媒体 FPGA技术 图像处理 数字图像
图像实时传输技术在我院中的应用 篇3
关键词:图像的实时传输;图像传输的标准和协议;MPEG-4高清晰视讯
Abstract: Have introduced that the operation image transfers application in working in hospital medical treatment and their principle mainly.
Keywords: Operation image transmission,standard and agreement that the image transfers,MPEG-4 height is limpid look at a message
马鞍山市中心医院是三级医院,其骨科在国内外享有盛名,相关教学和学术交流活动十分频繁,手术观摩和指导是交流的重要内容,手术室的特殊性决定了不可能在现场开展这些活动。采用图像传输系统,将手术图像传到观摩会议室来可以有效解决这一难题。骨科手术属于高精密、高难度手术,对于传输的图像清晰度要求非常高,传统的会议电视系统提供的图像质量远远不能满足需要,经过多次演示和实际检验,发现采用DVISION的基于IP网络的MPEG-4高清晰会议电视终端和多点控制单元(MCU),可提供高质量手术图像的远程传输。
1 图像传输的概述
医院图像传输是现代电信技术在医疗系统的应用,综合了异步传输模式(ATM)、电视、快速以太网和计算机技术的优点,实现图像、声音、数据的高速宽带传输,具有双向的功能。既有可视电话的双向性,又有现场直播的时效性,且容量大、清晰度高。
医院手术图像传输系统有以下功能:手术室的教授通过该设备进行双向交流;一般的学生或医生,可以在资料室通过设备终端进行手术观摩;可进行手术图像的传输和过程监视;主要设备可作为多点控制用;存储服务器可以对视音频码流进行数字存储,存储功能使保存、回放、剪辑和VCD/DVD制作轻易实现。
2 图像传输系统的结构
手术直播特指专家于特定会议室实时观看手术过程,给予手术医生实时指导,同医生就手术情况进行实时交流、讨论和研究的双向交互式视频会议系统。本方案中我院采用了三套终端(其中一套是只接收终端),一台MCU,一台存储服务器。设备汇接在网络交换机上,通过医院的快速以太网的千兆光纤实现互通。
手术室终端视频源包括:PELCO球型摄像头和显微镜,并汇接在1台视频切换矩阵上。PELCO球型摄像头可以水平方向360度旋转,垂直方向90度旋转,放置在手术室的顶角处,摄入角度可以覆盖整个手术室,观察宏观景物活动,也可以进行远端遥控。摄像机是通过无影灯的专用孔中观察,不但可以看到手术部位的手术图像。还可以远程遥控手术室摄像机的切换、摇移、拉伸、聚焦等,可以看到各种仪器的数据、主刀医生的画面、手术全景等画面,并掌握全面情况。而无线麦克风则可放置在医生身上,以便于和远端进行交流。传统远程医疗设备不能提供高清晰的手术画面,只能进行远程的会诊和交流,高清晰会议电视系统应用于远程医疗,不但可以进行一般的会诊和交流,同时可以提供高清晰的手术画面和显微画面。通过采用MPEG-4的4M码流,其高品质的图像,使显微镜下的组织结构也清晰无比。MPEG-4编码器可实现每秒约48000个宏块的吞吐率,提供了对两个逐行SDTV(720×480,60fps)视频流或14个CIF分辨率视频流进行解码的足够吞吐率。音频编码采用MPEG-4 (AAC) ,AAC是一种由MPEG-4标准定义的有损音频压缩格式。
数字化高清晰远程医疗系统不但可以提供高清晰的手术画面、高保真的语音和双向实时交流,而且可以将手术过程同步存储在计算机中,便于教学和点播,并可以作为资料文献记录在光盘上。
3 手术图像传输功能介绍
3.1高清晰图像在网络中的传输
因为采用MPEG-4编解码,在网络中进行广播级质量的视频交流成为现实。手术室传来的手术动态图像可达352x576像素(1CIF),X光片通过图文展示台可达704 x 576像素(4CIF),电脑图像可达1024x768像素(XGA)。两台显示设备分辨率自动动态调整,如CIF+4CIF(手术图像和X光片),CIF+XGA(手术图像+PC图像)等。同样,会议室专家亦可将会议室图像和专家提供的参考资料同时显示在手术室的显示设备上。传统的视讯系统绝大多数采用的视频编码方式的图像分辨率(352x288)就不高,从图像本身来讲比传统产品要高。由于MPEG-4算法本身的优势,可以保证高品质的视频回放质量,即使在对视频质量要求极为苛刻的广电行业,MPEG-4也依然可以提供符合要求的广播级图像,这就是为什么MPEG-4会成为事实上的广电数字化标准的原因。医院由于要传输高质量的手术图像,所以对图像清晰度的要求非常高,尤其是显微镜下的组织图像,MPEG-4产品能够提供从标准质量图像到专业广播级的图像质量,满足了医院对图像质量的高要求。由于采用了4Mbit/s码率,使显微镜下的组织图像清晰,富有层次感。
3.2 实时存储
通过在线存储系统实时将手术全过程图像画面和声音以流媒体格式存储在服务器中,方便术后重新播放,可通过访问存储服务器进行网上的点播或广播,并可制作成资料光盘存档和交流。
3.3 双向、实时的教学功能
医院手术室的主刀大夫可以通过图像和声音同监视点或会议室的人员进行讨论和交流,监视点或会议室的人员可以指导手术和随时提问。
3.4 强大的视频会议控制中心MCU功能
医院使用的视频会议控制中心(MCU),是能够同时支持H.261、H.263、H.264、MPEG-2、MPEG-4编解码方式的多点控制单元,可以同时支持窄带和宽带终端(384Kbit/s-6Mbit/s),具有广泛的适用性和极强的兼容性。
3.5操作简便
该图像传输系统采用WEB方式的操作界面,功能一目了然,设置方便。成功地应用MPEG-4高清晰远程医疗系统进行手术图像的传输,标志着我院在远程图像传输系统已经进入数字化、高清晰、可视化、实用化阶段。MPEG-4高清晰视讯系统也成为现代远程图像传输系统的标志性产品。
4 手术图像传输在医院的应用及发展
手术图像传输系统是远程视频会议系统的有效扩展应用。应用于医疗的实时画面的远距离传输,所传输的效果、质量、画面乃至色差都直接与病人的生命及健康密切相关,系统需对其承担的任务负完全医疗和法律责任。因此,为了保证手术直播和远程医疗的效果,系统必须建立在高端视频传输设备之上。
手术图像传输系统是计算机、网络和多媒体通信技术在医学上的一项具体应用,主要应用在手术室、胃镜室、血管造影(DSA)室等科室的教学和会议中,是国内开展得比较多的一项医学工作。它主要是应用视音频编解码技术,通过一定的通讯手段,使身处异地的医生之间可以相互看到对方的图像及听到对方的声音,可以实现对医学图像的实时讨论,达到模拟面对面交谈的效果,并扩展到远程医疗会诊、远程诊断、远程医疗培训、疫情汇报和学术交流等其他形式的应用。其在医院医疗工作中的应用将越来越多,越来越广,发展前景不可限量。
参考文献
基于面向对象的图像实时显示设计 篇4
本设计的应用程序是采用面向对象技术,在Microsoft Visual C++6.0下开发完成的。Visual C++就是一个典型的面向对象的编程语言。而在Windows的界面设计和软件开发环境中,也可以说处处贯穿着面向对象的思想。
在Windows中,程序的基本单位不是过程和函数,而是窗口。一个窗口是一组数据的集合和处理这些数据的方法和窗口函数。从面向对象的角度来看,窗口本身就是一个对象。Windows程序的执行过程本身就是窗口和其他对象的创建、处理和消亡过程。Windows中的消息的发送可以理解为一个窗口对象向别的窗口对象请求对象的服务过程。因此,用面向对象方法来进行Windows程序的设计与开发是极其方便的和自然的。
1 多个线程的设计
在系统中,对数据的实时处理有着很高的要求,由于WINDOWS操作系统支持多任务调度和处理,基于该功能所提供的多任务空间,程序员可以完全控制应用程序中每一个片段的运行,从而编写高效率的应用程序。
多任务操作系统将处理器的运行时间分成小的时间段,并分配给多个线程,每个线程在操作系统规定的时间段内运行。当线程使用完分配的时间段后,线程暂停执行;操作系统再将下一个时间段分配给其它线程执行;操作系统不断地将一个线程执行切换到另一个线程,经过一定时间的运行后,多个线程就同时完成了任务。由于各线程运行的时间段非常短,大约是20 ms,所以多线程能很好地满足系统中实时多任务处理的要求。
当系统需要同时执行多个进程或多个线程时,有时会需要指定线程的优先级。线程的优先级一般是指这个线程的基优先级,即线程相对于本进程的相对优先级和包含此线程的进程的优先级的结合。操作系统以优先级为基础安排所有的活动线程,系统的每一个线程都被分配了一个优先级,优先级的范围从0到31。运行时,系统简单地给第一个优先级为31的线程分配CPU时间,在该线程的时间片结束后,系统给下一个优先级为31的线程分配CPU时间。当没有优先级为31的线程时,系统将开始给优先级为30的线程分配CPU时间,以此类推。除了程序员在程序中改变线程的优先级外,有时程序在执行过程中系统也会自动地动态改变线程的优先级,这是为了保证系统对终端用户的高度响应性。比如用户按了键盘上的某个键时,系统就会临时将处理WM_KEYDOWN消息的线程的优先级提高2到3。CPU按一个完整的时间片执行线程,当时间片执行完毕后,系统将该线程的优先级减1。
MFC类库提供了多线程编程支持,对于用户编程实现来说更加方便。非常重要的一点就是,在多窗口线程情况下,MFC直接提供了用户接口线程的设计。
MFC区分两种类型的线程:辅助线程(WorkerThread)和用户界面线程(UserInterfaceThread)。辅助线程没有消息机制,通常用来执行后台计算和维护任务。MFC为用户界面线程提供消息机制,用来处理用户的输入,响应用户产生的事件和消息。但对于Win32的API来说,这两种线程并没有区别,它只需要线程的启动地址以便启动线程执行任务。用户界面线程的一个典型应用就是类CWinApp,它是CWinThread类的派生类,应用程序的主线程是由它提供,并由它负责处理用户产生的事件和消息。类CwinThread是用户接口线程的基本类。CWinThread的对象用以维护特定线程的局部数据。因为处理线程局部数据依赖于类CWinThread,所以所有使用MFC的线程都必须由MFC来创建。
对于数据采集程序,可以用一个单独的线程进行数据采集。这样,能最大限度地保证采集的实时性;而另外的线程同时又能及时地响应用户的操作、进行数据和图像显示及数据的存储等功能。否则,程序在采集数据时就不能响应用户的操作;在响应用户操作时就不能进行数据采集。尤其当采集的数据量很大,数据处理任务很重时,如果不采用多线程,采集时漫长地等待是很难让人接受的。
所以在软件的设计过程中需要添加一个额外的线程来专门处理数据采集的问题,创建线程是通过下面的步骤实现的,分别时实现控制函数和启动线程,它 并不必须从CWinThread 派生一个类。
(1)实现控制函数。
控制函数定义该线程。当进入该函数,线程启动;退出时,线程终止。该控制函数声明如下:
UINT BulkReadThreadProc(LPVOID pParam)
(2)启动线程。
由函数AfxBeginThread创建并初始化一个CWinThread类的对象,启动并返回该线程的地址。则线程进入运行状态。
m_pBulkReadWorkerThread=AfxBeginThread(BulkReadThreadProc,
&m_bulkreadThreadInfo,
THREAD_PRIORITY_NORMAL);
但是,多线程要比普通程序设计复杂得多。由于任意时刻都可能有多个线程同时执行,所以,许多的变量、数据都可能会被其他线程所修改。所以编程时有一个非常重要的问题就是线程同步。所谓线程同步是指线程之间在相互通信时避免破坏各自数据的能力。同步问题是由前面说到的Win32系统的CPU时间片分配方式引起的。虽然在某一时刻,只有一个线程占用CPU(单CPU时)时间,但是没有办法知道在什么时候,在什么地方线程被打断,这样如何保证线程之间不破坏彼此的数据就显得格外重要。在MFC中,可以使用4个同步对象来保证多线程同时运行。它们分别是临界区对象(CCriticalSection)、互斥量对象(CMutex)、信号量对象(CSemaphore)和事件对象(CEvent)。在这些对象中,临界区对象使用起来最简单,它的缺点是只能同步同一个进程中的线程。另外,还有一种基本的方法,本文称为线性化方法,即在编程过程中对一定数据的写操作都在一个线程中完成。这样,由于同一线程中的代码总是按顺序执行的,就不可能出现同时改写数据的情况。
在程序设计的过程中,线程要向界面窗口报告状态,为了实现这个功能,采用的方法时是通过消息实现的,由于消息本身携带的消息量有时不够用,消息参数只是一个指向某消息对象的指针,而消息对象需要在堆内存中new生成(因为线程不能等待消息处理完毕就继续执行),界面接受到消息对象后delete之;但是这时界面退出后,如果线程仍然生成新的消息对象,则消息对象得不到释放,所以在这种情况下,界面接受到WM_CLOSE消息将要释放之前,要等待线程完全退出之后再真正释放。
2 图像的显示程序
图像的实时显示是利用DirectDraw实现的。DirectDraw是DirectX技术的核心,它可以直接操作显示内存,进行硬件位转换操作,硬件覆盖操作和页面切换操作。作为一种软件接口,DirectDraw在维护Windows GDI设备兼容性的基础上提供了对显示设备的直接访问。因此,DirectDraw并不是高级图形API,而是一种实现游戏和Windows子系统软件(如3D图形软件包)的设备无关方法。
DirectDraw所支持的硬件范围广泛,从简单的SVGA到高级硬件实现(裁剪、拉伸、非RGB颜色支持等)都完全支持。那些硬件没有实现的特征将由DirectX使用软件仿真。简略地说,DirectDraw使用了设备无关方法实现了对显示内存的设备相关访问。
DirectDraw应用程序往往能够获得超过标准Windows GDI应用程序,甚至MS-DOS应用程序的功能。DirectDraw通过COM接口提供服务。这些COM接口包括IDirectDraw,IDirectDraw2, IDirectDrawSurface, IDirectDrawPalette, IdirectDrawClipper等。DirectDraw的设备无关性是通过硬件抽象层(hardware abstraction layer, HAL )实现的。对于那些硬件没有实现的功能,则使用硬件仿真层(hardware emulation layer , HEL)实现。当应用程序调用DirectDraw时,它将根据硬件的能力决定是调用HAL功能还是HEL功能。HEL有时会调用GDI的一些功能,有时则会直接访问硬件以完成一些简单的并与具体硬件无关的任务,比如内存访问等。HAL和HEL联合使用可以提供一组可靠的与设备无关的特征,但是这种设备无关性还有一定的缺陷,而且在DirectDraw中表现得最明显。因此,与GDI不一样,DirectDraw不是完全与设备无关的,而只能算几乎与设备无关。如果通过分析宿主系统能力并作出相应的调整,可以使应用程序获得最佳的性能。
图像实时显示的实现流程如图1所示。
图像的实时显示的实现总共分为以下几步:
(1) 创建DirectDraw对象
要使用DirectDraw必须使用DirectDrawCreate来创建一个带有IDirectDraw接口的DirectDraw对象,以便用户可以通过它来访问其它DirectDraw功能。
(2) 设置协作级别
在调用DirectDraw其它方法之前必须先设置屏幕协作级别,否则它们中的某些方法会失败。协作级别用于控制应用程序和系统及其它应用程序之间的交互程度。
(3) 设置显示模式
DirectDraw的显示模式内容包括宽度、高度、格式和刷新频率。
DirectDraw提供了一套完整的用于管理显示模式的方法具体操作可以通过EnumDirplayModes方法列举当前可能的显示模式并可以用SetDisplayMode来改变模式。
(4) 创建DirectDraw主图面
主图面就是用户能够看到的当前界面,每个DirectDraw对象只有一个主图面。在DirectDraw启动之前,主图面就已经存在了,那就是GDI用于绘制Windows用户界面的图面。在创建指向它的DirectDraw图面对象之前,没有办法访问主图面。
(5) 创建off_screen图面
创建了主图面以后接着要创建off_screen 图面,off_screen 图面是不能直接被看见的。它主要是作为存储可视部件的存储缓冲区,这些缓冲区可用于组成主图面或切换图面。创建off_screen 图面的过程和创建主图面的过程基本上一致,唯一的区别在于off_screen 图面要提供更多一点的细节。
(6) 设置剪裁器
剪裁器可以将DirectDraw所能输出的范围限制在屏幕上的某个区域范围,范围之外的其它部分将被剪裁掉。DirectDraw提供了DirectDrawClipper类来实现剪裁功能。
(7) 视频显示
视频显示的工作主要将从采集处理板读进来的、连续不断的图像数据装入主画面。其方法是先将图像写入off_screen 图面,然后用位转换Blt 操作将off_screen 图面整体拷贝到主图面中。
3 实验调试结果
当系统的数据采用模拟码源的数据时,所获取的数据图像如图2和图3所示,模拟码源的数据都是已知的,而且是根据需要进行设定的
图2中用到的模拟码源是由0xFF到0x00的递减数据,即是从255到0的灰度图像,完成由黑到白的渐变。
在图3中,数据来源于三个通道,分别是0xFF—0x00,0xFF—0x00,0x00—0xFF,体现在图像的RGB值上是(255,255,0)到(0,0,255)的渐变图像,颜色用红色逐渐过渡到青色,由于黑白打印机的限制,打印后的图像可能看不到这种颜色的渐变,表现为灰度的形式。
摘要:选用VisualC++开发用户界面程序,采用面向对象的程序设计,提供了友好的操作界面;采用DirectDraw技术实时显示图像,减少了系统响应用户命令的时间,更好地满足了实时显示图像数据的要求。
实时图像显示系统 篇5
摘要:主要论述利用USB2.0单片机接口技术实现高分辨率(640×480点阵以上)、快速(24帧/s以上)全数字图像的实时采集、传输的原理、方法和系统实现,以及相应的固件程序设计。
关键词:USB2.0接口技术数字图像单片机
引言
传统的方法是用视频采集卡(如1394)对视频信号进行采集,利用相应的软件传给PC机,既不方便,也不经济。本文介绍一种利用Cypress公司发布的世界上第一块带有USB2.0接口的芯片CY7C68013与PC机(主板为支持USB2.0的华硕主板PB533)实现了高分辨率(640×480点阵以上)、快速(24帧/s以上)、全数字图像的实时采集系统。
1数字图像的实时采集原理
数字图像的实时采集原理如图1所示。在图1中,以Omnivisiontechnologies公司的OV7620/7120芯片作为图像采集芯片,其主要特点是该芯片可提供0.5――30帧/s,640×480像素点阵CMOS的彩色或黑白数字图像,工作频率为27MHz,像素时钟为27MHz;以Cypress公司的CY7C68013作为CPU控制和USB2.0接口芯片,该芯片的主要特点是在一块芯片上集成了USB2.0内核和引擎、一个增强型51系列的微处理器,及可编程外围接口的芯片,提供了高效率的时序解决方案,在这种有独创性的结构下,仍然使用低价位的51系列的微处理器,其数据传输速度可以达到56MB/s,可以提供USB2.0的最大带宽。因此在图1中,CPU控制和USB2.0接口芯片选择了上述芯片。图像芯片(OV7620/7120)所采集的图像数据按设定的频率(0.5――30帧/s),在CY7C68013内部51CPU的控制下,直接将其送到CY7C68013的FIFO缓冲区,再由其内部的USB2.0接口通过USB电缆将其图像数据传输到计算机。
2数字图像的实时传输
为了实现数字图像的实时传输,必须解决影响实时传输的几大因素:一是图像芯片采集速度;二是图像芯片与CY7C68013的FIFO缓冲区之间的传输速度;三是CY7C68013内部的USB2.0与带有USB2.0接口计算机之间的传输速度;四是计算机中应用软件的接收图像、处理图像速度。以下将分别加以具体说明。
(1)图像芯片采集速度
图像芯片采集速度是选择图像芯片的关键指标,在该指标满足的前提下,选取图像分辨率相对较高的图像芯片。如可以选取Photobit公司的PB-0300或Omnivision公司的.OV7620以及Philips公司的SAA7111等高分辨率图像采集及处理芯片。
(2)图像芯片与CY7C68013的传输速度
一般的,对于大多数CMOS数字图像采集和处理芯片,其数据传输速度为其像素时钟,与其工作频率基本一致,其周期小于40ns;而当CY7C68013工作在主频48MHz时,其内部的通用编程接口可以将外部5――48MHz的数据传输到内部FIFO缓冲区。可见,应选取像素数据传输速度合适的图像采集及处理芯片。
(3)CY7C68013与计算机之间的传输速度
在USB1.0和USB1.1接口中,只支持低速和全速两种传输方式。在低速方式下其最大传输速度为1.5Mbps;在全速方式下其最大传输速度为12Mbps.显然,在这两种方式下要完成高分辨率(640×480像素点阵以上)的数字图像实时传输(24帧/s以上)是不可能的。而USB2.0接口,除支持低速和全速两种传输方式外,还支持高速传输方式。在高速传输方式下,其最大传输速度为480Mbps.因此选取带有USB2.0内核的CY7C68013芯片作为USB2.0接口芯片及带有USB2.0接口的计算机,满足数字图像的实时传输速度要求。
(4)计算机中应用软件的处理速度
计算机中,应用软件的接收图像、处理图像速度,也是完成高分辨率数字图像实时传输所面临的一个很大挑战。特别是在Windows多任务作业下的延迟,更是如此。
此外,USB总线的带宽、操作系统等也会影响数字图像的实时传输。
3系统实现及固件程序设计
(1)系统实现
本系统的具体和详细设计如图2所示的数据采集逻辑原理图。在图2中,图像采集处理芯片用OV7620/7120,时钟频率为27MHz,像素时钟为27MHz;CPU控制和USB2.0接口芯片用CY7C68013,时钟频率为24MHz,通过对CY7C68013内部的CPUCS寄存器进行修改,使其工作在48MHz方式下。根据芯片OV7620/7120及CY7C68013内部的FIFO、通用编程接口等特点,其具体接法是:将OV7620/7120的像素时钟PCLK接到CY7C68013的IFCLK上;
OV7620/7120的HREF、VSYNC分别接到CY7C68013的RDY0、RDY1上;同时将OV7620/7120的VSYNC、CHSYNC分别接到CY7C68013的INT0、INT1上。将CY7C68013的PE0、PE1接在OV7620/7120的I2CBUS上。
图2
(2)固件程序设计
按照图2数据采集逻辑原理图,其固件程序设计主要由以下几部分组成。
①USB2.0接口的初始化程序设计。本段程序主要通过对CY7C68013的CPUCS寄存器进行设定,使CY7C68013重枚举后工作在频率48MHz下;通过对CY7C68013的USBCS寄存器设定,使其USB内核工作在USB2.0方式下,由固件程序应答USB的传输,而不是由USB内核应答;同时通过对CY7C68013的IFCONFIG寄存器设定,使其CY7C68013工作在通用编程接口方式下。
②图像芯片的初始化程序设计。本段程序主要通过CY7C68013的PE0、PE1模拟I2CBUS的时序,完成对图像芯片的初始化、显示窗口大小、数据格式、显示帧数等工作。
③通用编程接口(GPIF)程序设计。本接口程序设计主要完成对CY7C68013通用编程接口的初始化以及控制信号RDYx和CTLx(本设计中未用)、数据宽度(8位)、FIFO缓冲区、计数器等的编程设计,并对OV7620/7120的输入信号HREF、VSYNC等进行逻辑控制,即当HREF为高电平、VSYNC为底时,数据开始传输。
④USB2.0等时传输程序设计。本段程序主要完成USB2.0的等时传输功能。要实时采样数据,必须使用USB2.0的等时传输技术及中断技术。
⑤主程序设计。在主程序中,除要完成①――④中断论述的功能外,还要给出USB控制传输的固件应答程序及相应的中断初始化和中断服务程序,其完整程序见本刊网站。
4结论
实时图像处理系统的设计与实现 篇6
VLSI技术的发展为实时图像处理系统提供了保证。实时图像处理系统往往具有庞大的处理器阵列、存储器模块和通讯网络,若采用一般常规软件,则其体积、功耗、传输延迟以及造价等都是难以接受的。而专用图像处理芯片则生产量少,价格昂贵,如采用功能强大的数字信号处理器DSP,其开发系统和工具要求复杂,价格高,成本投入多。对于常规图像处理(如图像增强)其运算简单(如直方图统计只有累加)但运算量大。例如:一幅512×512的数字图像大约有25×104个像素,进行直方图统计时就要累加大约25×104次,用DSP来控制完成显然浪费巨大且耗时巨大。既要节约资金、降低成本,又要减少体积、降低功耗、提高性能、增加集成度,前述器件均不合适,而大规模集成电路正好可以解决这些问题。
1 FPGA/ASIC介绍
日益紧凑的系统要求设计人员将尽可能多的功能集成在一片硅片上SOC(System On a Chip,单芯片系统)。SOC是电子技术和集成电路技术不断发展的产物,随着单芯片的集成度越来越高,功能越来越强,现有技术已能将一个复杂的系统集成在一个硅片上。现在,SOC技术已成为当今微电子工业界的热门话题,它代表了ASIC设计的发展趋势,将极大地改变电子产品和系统的设计思想、开发手段和实现方法,同时也将极大地影响电子产业的格局。随着亚微米技术的发展,FPGA芯片密度已达到百万门级,它的设计越来越接ASIC的设计。目前,DSP、MCU、PCI总线控制等复杂的功能可由一片FPGA芯片完成。由于FPGA芯片密度的不断增加和第四代EDA开发工具的使用,利用FPGA器件实现SOC已成为可能,人们将这项技术称为SOPC(System On a Programmable Chip,可编程单芯片系统)SOPC技术既具有基于模板级设计的特征,又具有ASIC的系统级芯片设计的特征,它要求一种着重于快速投放视场,具有可重构性、高效自动化的设计方法。为了实现SOPC,国际上著名的现场可编程控制器厂商如Altera、Xilinx等都在为此努力,开发出适于系统集成的心器件和开发工具,这又进一步促进了SOPC的发展。
要SOPC设计成功,就要更多地采用IP(Intellectual Property,知识产权)模块,因为只有这样才能快速的完成复杂设计,得到价格低廉的SOPC硬件,所SOPC的核心技术是IP。
Altera公司发布了嵌入式处理战略SOPC方案包括三个嵌入式处理器系列:Nios、ARM和MIPS。其中,Nios可编程软件内核是业界第一个面向可编程逻辑的基于RISC的嵌入式处理器。为了实现SOPC的设计,Altera公司不仅研制开发出新器件,而且还研制出新的开发工具对这些新器件提供支持,并且提供与新芯片及软件相配合的包含知识产权的系统级设计模块(IP)解决方案,它们的参数可由用户自己定义。Altera的开发工具MAX+PLUSII被普遍认为是最优秀的PLD开发平台之一。本系统就是选用Altera公司的ACEXIK系列,用MAX+PLUSII进行开发的。Altera的可编程逻辑器件具有良好的性能、极高的密度和非常大的灵活性,除了具有一般可编程逻辑器件的特点外,还具有改进的结构、先进的处理技术、现代化的开发工具以及多种宏功能模块可选用等优点。
2 系统设计方案和工作过程
鉴于上述FPGA的功能特点,本系统的图像处理和时序控制均用高性价比的EPIK100芯片完成。它有12个EAB块,总RAM位数为49152×1Bit。
本系统处理的图像是黑白图像,它是经过红外相机采集的16位差分信号的黑白图象,经过FPGA的转换和运算,再经过10位的D/A转换形成图像显示。所以,在FPGA运算过程中可以使用8位数据,其灰度级为0到255之间;也可以使用10位数据,其灰度级为0到1023之间。图像视场大小为:320×240,即每行有320个像素,共有240行,视场内共有76800个像素数据。
本系统的总体功能框图如图1所示。
系统工作过程如下:红外相机对外界景物摄像,输出14位差分信号,为了便于处理,必须把差分信号转换成TTL信号。图像数据经过锁存之后进入FIFO(先进先出存储器)进行存储,等FPGA进行处理。FPGA处理完成后,进入10位D/A转换器,转换成模拟量,经视频运算放大器放大后,送显示器进行显示。
本系统使用了两种下载方式:1、PS串行下载方式2、JTAG边界扫描方式,现场调试时用PS串行下载方式,脱机使用时把程序存储到EPC2(外部程序存储器)中,上电后EPC2下载到FPGA中。本系统使用16Mhz外部时钟,输出为标准PAL制式,在工业监视器上显示。
3 FPGA处理模型
本系统的核心器件是FPGA,所有的处理算法都是在里面完成的。根据理论分析,本系统中,主要完成了直方图均衡化、自动线性增益、基于知识的背景滤除,高通滤波、FIR滤波等算法。FPGA中,还必须控制时序、产生同步信号以及图像显示控制。其系统功能如图2所示。
3.1 同步信号发生器
红外摄像头经过光电转换将图像(光信号)转变为电信号,其最终输出信号就是黑白电视信号,它主要由图像信号(视频信号),复合消隐脉冲和同步脉冲组成。电视信号其极性分为正极性和负极性图像信号。若图像最亮时,对应其信号电压的幅度最大。
对于PAL制式的同步信号时序要求如下图所示:本系统采用8Mhz外部时钟,每个时钟周期为125ns,每行512个像素,则行周期为:512×125ns=64μs;每场有312.5行,则每场图像的时间为:64μs×312.5=20ms。本系统采用的视场为320×240,即每场有240行,每行有320个像素,对比来看,视场变小了,这种变化可以通过消隐信号(BLANK)选择一段连续的视场来完成视场变换,同时要调整视场的位置。如果是逐行扫描,对于复合同步,有一段积分时间,它要求为52个行周期,每个行周期为64μs,则积分时间为:64μs×52=3.3ms。如果是隔行扫描,其要求如图3所示。由于是在FPGA中编程实现,容易修改,因此在系统设计时,我们可以考虑使用隔行扫描,也可以考虑使用逐行扫描。这时就显出了FPGA的优越性。
3.2 图像显示控制器
在本系统中,图像的显示是通过D/A转换器来实现的,而视频的D/A转换器一般都要求复合同步(SYNC)、工作时钟(PDACLK)、场/行消隐(BLANK)信号,这些信号如果能够由FPGA产生,那么就会大大简化硬件设计。
显示时由于有上面所述的三个时序要求,在数据流上就必须配合这个时序,因FPGA在读写外部数据时就必须有时序要求。它包括对外部FIFO的读控制、写控制、复位控制等。
上面所要求的信号就构成了图像显示控制器。它是系统能否正常工作的关键。
3.3 算法实现
系统设计时是用单片机和键盘配合。当键盘按下时,从P1口输出不同的编码。在FPGA中判断这些编码来选择不同的功能实现。
这里在FPGA中实现的算法有:自动增益线性变换、直方图统计和均衡化、基于知识复杂背景抑制。在滤波器的选择上,根据理论分析最后选择了FIR滤波器、中值滤波器、高通滤波器。
本系统采用线性FIR滤波法进行低通滤波。由于Altera的MegaCore软件集成FIR滤波器等多种IP产品,可以直接应用,只需确定系数,顾在此不再深入研究其具体实现方法。传统的中值滤波有很多方法,如:快速排序法、冒泡法、二叉树等,这里采用了3×3或5×5窗口进行二维中值滤波改进算法。
对于图像预处理,一般是采用图像增强方法。图像增强又很多种方法,如:锐化处理、直方图统计和均衡化、线性变换等。而对于灰度值偏小、图像偏暗的图像使用直方图均衡化会有很好的效果。本文提出的自动增益线性变换算法能够使每场图像都达到饱和。
针对红外成像特性分析,我们知道:红外图像是热辐射图像,对温度极为敏感,具有以下特征:1、当视角偏小时,同一行的温度差很小,其灰度变化在同一行中很小,并且相邻行间有很强的相关性;2、地物与地面具有连通性,地面温度较高,地面和地物在红外图像中处于最下部分;在实际红外图象中,云团灰度梯度较小。根据红外图像这些复杂背景特征,故采用了一种基于知识的智能背景抑制方法。
这几种算法各有特点,因此把它们集成在本系统中,根据不同的场合选用不同的算法。在开始的系统调试中,使用了自动增益线性变换算法,并取得了较好的效果。自动增益线性变换算法流程如图4所示。
参考文献
[1]侯伯亨.数字系统设计基础[M].西安:西安电子科技大学出版社,2000.
[2]王念旭.DSP基础与应用系统设计[M].北京:北京航空航天大学出版社,2001.
[3]ChrisDick.FPGA Implementation of High Order FIR Filters by Re-quantizing the Input Data Stream.SPIEV01.2607:10-21.
实时图像显示系统 篇7
1 硬件系统设计
基于SOPC技术的系统设计, 首先要完成系统的硬件设计[5]。所设计的硬件系统框图如图1所示。图1中FPGA部分建立在FPGA芯片内, 由SOPC Builder软件完成该部分的设计, 其核心是Nios II处理器。
设计选用的FPGA芯片为Altera公司生产的EP2C35F672C6N芯片, 该芯片具有性能强功耗低的特性。设计采用的FPGA配置芯片为EPCS16, 用于存储FPGA硬件配置数据, 在系统上电时对FPGA进行硬件配置。FLASH存储器用于存放应用程序, SRAM作为显示缓冲区保存图像边缘检测的结果, SDRAM则用于暂存CMOS采集到的图像数据。图1中的三态总线桥、SRAM Controller和SDRAM Controller分别为上述三者与Avalon总线相连提供相应的Avalon总线接口。CMOS Controller为自定义的CMOS图像传感器控制器IP核, 它在Nios II软核的控制下将CMOS图像传感器采集到的图像数据通过Avalon总线经SDRAM Controller暂存于外部SDRAM存储器中, VGA显示控制器IP核VGA Controller则按照分辨率为640×480×60 Hz的VGA显示时序输出图像分割结果, 图像数据经数模转换后通过VGA接口在具有VGA接口的LCD显示器上显示输出。
1.1 CMOS Controller的设计
CMOS Controller为用户自定义的Avalon总线外设, 其内部结构如图2所示。图2中, 左侧的信号线与CMOS图像传感器相连;右侧信号线与Avalon总线相连。CMOS图像传感器配置模块通过时钟信号线I2C_SCLK和数据信号线I2C_SDA以I2C总线的通信方式配置CMOS图像传感器的工作方式。图像采集模块在像素时钟信号PCLK的上升沿捕获帧有效信号FVAL和行有效信号LVAL, 并在FVAL和LVAL同时为高电平时采集图像数据DA-TA[11:0], 图像数据经双时钟先入先出缓冲器DC-FIFO后, 由Avalon总线接口模块读出并通过Avalon总线写入SDRAM存储器中。Nios II可以通过Avalon总线接口模块访问CMOS Controller的内部控制寄存器, 通过控制寄存器控制图像采集模块开始或停止采集图像。
1.2 VGA Controller的设计
在显示图像边缘检测结果时, 图像数据量大、实时性要求高, 如果每个像素点的传输都由Nios II去实现, 需要占用大量的CPU资源。为了将Nios II从繁重的数据传输任务中解脱出来, 设计使用DMA控制器 (DMA Controller) 完成图像数据的传输。同时, 为了实现图像数据的高速传输, VGA Controller的设计采用了流模式传输方式, 其内部结构如图3所示。
在图3中, 左侧的信号线与Avalon总线相连, 右侧信号为VGA显示所需的数据信号和控制信号。Avalon总线接口模块以流模式传输方式与Avalon总线相连。由于系统时钟与VGA显示的像素时钟不同, 所以采用双时钟先入先出缓冲器DCFIFO来缓冲图像数据。当DCFIFO中存储的数据达到设定的容量阈值时, readyfordata端口输出高电平以通知主端口停止对VGA Controller的写操作。反之, 当DCFIFO中存储的数据小于设定的容量阈值时, readyfordata端口输出低电平以通知主端口VGA Controller已经做好了接收数据的准备。vga_timing功能模块从DCFIFO中读取图像数据并按照VGA显示时序, 输出图像数据和相应的控制信号。
2 SOPC软件系统设计
完成SOPC硬件系统设计后, 还需要进行SOPC软件系统设计, 通过软件来协调各个模块统一工作实现设计要求。此系统的软件设计是在Nios II IDE平台下, 使用C语言编写而成。图4给出了单帧CMOS采集图像经过图像处理并显示图像处理结果的程序流程图。
在图像采集、处理和显示边缘检测结果时, Nios II首先完成对CMOS Controller的初始化, 由CMOS Controller将CMOS采集到的图像数据暂存于SDRAM存储器中。一帧图像采集完毕后, Nios II通过复位CMOS Controller停止采集图像, 并对SDRAM中的图像进行处理同时将处理结果写入SRAM中。图像处理结束后, Nios II启动DMA Controller, 由DMA Controller将SRAM中的处理后的图像以流模式的传输方式送给VGA Controller完成图像处理结果的显示。
3 系统应用
为检验所设计的图像处理系统的性能, 以Sobel边缘检测算法为例, 应用该系统对图像进行实时的边缘检测和显示。
基于Sobel算法进行边缘检测, 首先用Sobel算子计算出水平梯度和垂直梯度, 然后把2个方向的梯度结合起来, 最后应用门限处理方法判断图像边缘。其算法流程如图5。
Sobel算子对图像的每个像素以检测像素点为中心, 使用如图6所示的卷积模板来计算水平方向和垂直方向的梯度值。在门限处理时, 采用全局门限。当某像素点 (x, y) 的梯度值大于或等于设定的门限时, 该点的值设为255, 反之为0。
基于Sobel算子的边缘检测算法的软件实现可分为以下4个步骤:
(1) 采用Sobel算子卷积模板分别与预处理后的图像g (x, y) 进行卷积, 卷积结果做归一化处理, 取二者中最大的结果作为边缘响应。
(2) 对边缘响应图像h (x, y) 做直方图统计, 结果存入直方图数组Count (256) 中。
(3) 对直方图数组Count (256) 中的所有非0像素进行平均, 得到均值TH0。由于图像h (x, y) 中大部分非0像素为非边缘响应, 所以低于均值TH0的像素都可视为非边缘像素。
(4) 对边缘响应图像做阈值分割, 高于阈值T的点赋值255 (视为真正边缘点) , 低于阈值T的点赋值0。
图像边缘检测算法流程图如图7所示。
4 实验结果
在Altera公司的DE2开发板上搭配TRDB-D5M运行该系统对图像进行图像边缘检测, TRDB-D5M是一个500万像素的CMOS, 显示输出时通过VGA接口外接1 280×1 024的LCD显示器, 分割阈值T=24。本系统为实时处理系统, 图8是其中一帧图像处理前、后的结果。
图8a为CMOS采集到的原始图像, 图8b为经过该实时图像处理系统进行边缘检测后得到的结果, 给出的边缘检测结果表明了该系统很好地完成了图像边缘检测任务, 且系统的实时性很好。
由于该系统自定义了CMOS的IP核和VGA显示的IP核, 同时因为SOPC技术的可重构性, 在对图像处理算法的适当变换能获得与之相对应的图像处理结果, 使用该系统的设计思路可以大大简化图像处理系统的开发工作, 为其他各种图像处理系统开发提供借鉴。
5 结束语
基于SOPC技术, 给出了一种在单片FPGA上实现软硬件协同完成图像采集、处理和显示的实时系统设计方法。实验结果表明, 该系统具有很好的实时性和图像边缘检测效果。由于SOPC技术具有可重构的特点, 可以根据图像处理算法的要求, 对系统进行灵活的裁减、扩充、重新开发, 大大简化图像处理系统的软硬件设计工作。
参考文献
[1]詹毕旺.基于FPGA的SOPC的图像采集模块设计[J].微计算机信息, 2010, 26 (6-2) :134-136.
[2]陶宝泉, 付永庆, 梁盼.基于SOPC的视频采集及传输系统的设计[J].应用科技, 2010, 37 (4) :31-34.
[3]沈永格, 李范鸣, 李争.基于SOPC的红外图像采集系统[J].红外技术, 2010, 32 (6) :311-314.
[4]邱宏, 赵馨瑶, 刘纪洲.基于片上系统的红外直方图实时处理架构[J].激光与红外, 2009, 39 (10) :1123-1125.
实时图像显示系统 篇8
1 系统设计
实时处理系统设计的重点是如何在有限的时间内完成大量图像数据的处理。处理系统输入的图像数据速率为25帧/s,这就要求系统必须在40 ms内完成对一帧图像的处理,才能保证系统的实时性。为了达到处理的速度,设计的双路图像融合实时处理系统采用多DSP+FPGA架构,系统主要由以FPGA为核心的图像采集模块和以DSP为核心的图像处理模块构成。实时处理系统框图如图1所示。
系统工作时,首先DSP和FPGA进行程序加载完成初始化工作。探测器以25帧/s的速率向FPGA输送图像数据,FPGA实时采集来自探测器1和探测器2的数据,进行图像预处理,之后将预处理的图像数据写入对应的双口RAM内进行缓存。然后,DSP1和DSP2分别读取双口RAM1和双口RAM3中的数据进行图像分割、特征提取等预处理,并将处理后的图像数据写入下一级双口RAM存储。最后,由DSP3读取在双口RAM2和双口RAM4中的图像数据按照特定的算法进行融合处理,实现探测需求。
2 硬件设计实现
2.1 采集模块设计
由于FPGA具有灵活的在线编程功能,在不改变硬件的情况下,可以对软件进行升级,且开发成本越来越低。正是由于FPGA的灵活性和较高的性价比,使其得到广泛应用[6,7]。该处理系统中采用了Xilinx的FPGA作为采集模块的核心,模块的接口电路如图2所示。FPGA在该系统主要完成时钟管理、地址产生、读写控制、滤波等任务。
FPGA作为采集模块的主芯片,其选型必须满足对数字图像的采集需求。系统采用的探测器图像分辨率为256×256×14 bit,图像的帧频为25 Hz,则探测器图像数据的带宽为
所选FPGA的工作频率为40 MHz,数据位宽为14 bit,则FPGA读取图像数据的带宽为
Bfpga-sensor>Bsensor,故FPGA能够满足图像数据的读取带宽需求。
采用的双口RAM可高速存取数据,最快存取时间为10 ns,数据位宽为14 bit,则RAM存储图像数据的带宽为
Bram>Bfpga-sensor,故双口RAM能够满足图像数据的存储带宽需求。
FPGA接口电路模块主要是完成对双路图像数据的读写,产生对两块双口RAM的地址信号、片选信号(CE)、读写信号(WE)和输出使能信号(OE)。由于探测器的图像数据为低压差分信号(LVDS),在FPGA处理前需将信号转换为LVTTL信号,方便FP-GA的读取,保证系统工作的可靠性。
系统工作后,探测器将图像数据以LVDS的方式传输给处理系统,由高速差分芯片SN65LVDS386将探测器的LVDS信号转换为LVTTL信号,FPGA在时钟的驱动下,将由SN65LVDS386芯片转换后的图像数据读入,送入缓冲器锁存,FPGA内部的运算单元将锁存的数据进行滤波等预处理,同时将处理后的图像数据写入对应的双口RAM中进行缓存,为后续的DSP读取以及处理图像数据做好准备。
2.2 处理模块设计
DSP由于其快速的运算能力及高效的数字处理性能,在图像处理方面表现出显著优越性而被广泛应用[8,9]。该系统硬件平台选用美国TI公司的6 000系列DSP芯片作为核心器件,为系统提供强大的处理能力。DSP主要完成对图像的预处理以及融合等功能。DSP与双口RAM通过EMIF接口进行连接,通过EMIFA接口从前一级的双口RAM读入经过FPGA预处理的 图像数据 ,经过DSP处理后经EMIFB接口将图像数据写入后一级的双口RAM中存储,以便DSP3对双路图像数据做最终的融合处理。
DSP的EMIF接口进行读数据或者写数据操作,需要根据软件设计要求,依次完成信号的建立、选通和保持三个阶段,而这三个阶段的时间为7个时钟,EMIF接口工作频率为100 MHz,则EMIF接口的数据带宽如下
Bemif>Bsensor,故DSP能够满足系统带宽的需求。
处理模块的接口电路如图3所示。DSP处理的图像数据由EMIF接口进行交换。EMIF接口为DSP提供访问外部存储器的标准接口,6 000系列DSP的EMIF具有很强的接口能力,EMIFA的数据总线宽度为64 bit,EMIFB的数据总线宽度为16 bit,分为4个空间CE0~CE3,每个CE空间彼此独立,可以进行不同的访问控制。同时也提供对8/16 bit存储器的读写支持;既提供了同步存储器的高吞吐率接口,也支持异步RAM的存储接口,可以与目前几乎所有类型的存储器直接接口使用[10]。
EMIF的读操作和写操作分为建立、选通和保持时间三部分。CE片选信号和OE信号拉低选中进行操作双口RAM,WE信号为低表示写操作,为高表示读操作,同时地址线EA给出读操作和写操作地址,数据线ED给出需要读出或写入双口RAM的数据,完成相应的读写操作。
系统工作后,DSP将存储于Flash芯片的程序读入内部完成程序的加载,DSP1通过EMIFA将存储于双口RAM1的图像数据读入内部进行预处理,并将经过处理的图像数据经EMIFB写入双口RAM2。DSP2通过EMIFA将存储于双口RAM3的图像数据读入内部进行预处理,并将经过处理的图像数据经EMIFB写入双口RAM4。DSP3通过EMIFA将存储于双口RAM2和双口RAM4的图像数据读入进行图像融合处理。
3 软件设计
该系统的软件根据硬件架构可以分为两部分,即FPGA部分的预处理软件和DSP部分的综合处理软件。FPGA部分的软件主要完成图像的预处理和将数据写入到指定的双口RAM进行存储。DSP部分的软件中,DSP1和DSP2的软件一致,将前一级的双口RAM中的图像数据读取到DSP内部,作相关的处理,并写入下一级相应的双口RAM中存储,等待DSP3读取;DSP3的软件将存储于两个双口RAM中的双路图像数据读入内部,进行图像融合处理。
3.1 预处理软件设计
FPGA使用Verilog HDL语言编程,软件环境为Xilinx ISE 10.1。FPGA软件组成框图如图4所示。主要包括顶层模块、采集探测器数据模块、预处理模块、写双口RAM模块以及图像数据状态的监控模块等。FPGA功能主要是实时采集来自探测器的图像数据,将图像数据预处理后,由写双口RAM模块将图像数据写入到指定的双口RAM空间进行存储,以便DSP读取图像数据进行后续处理。
FPGA写双口RAM1模块的软件程序如下:
3.2 综合处理软件设计
DSP采用TI公司的集 成电路 ,用C语言和TMS320C6000系列汇编语言编写程序,编程环境为CCS3.3。DSP的软件主要由主函数、多个功能模块函数以及驱动函数等组成,图5为DSP软件的流程图。DSP1和DSP2通过EMIFA接口以EDMA(en-hanced direct memory access)的方式将经FPGA处理后存储于双口RAM中的图像数据读入DSP内部进行预处理,并将处理后的数据经EMIFB接口写入到下一级的双口RAM。
DSP读双口RAM和写双口RAM的软件程序如下:
DSP采用EDMA方式读写数据,EDMA是DSP为满足图像处理需求而设计的,可以在没有CPU参与的情况下,实现数据在DSP的片内存储器和外部存储器之间的搬移,满足实时图像数据高速传输的需求[11,12]。
DSP3的EMIFA接口对两个双口RAM采用复用的方式进行读取数据的操作。DSP3同样采用ED-MA的方式,通过EMIFA接口将存储于两个双口RAM中的图像数据读入内部,进行图像融合处理。图像融合处理需根据系统需求,采用特定的算法对图像进行融合以便得到需要探测的信息。
4 测试结果
利用上述处理系统,对输入双路图像数据进行了融合处理,使用TI公司的集成开发环境CCS中DSP的定时器技术对DSP1的预处理算法(DSP2预处理算法同DSP1)运行时间和DSP3的融合算法运行时间进行了测试。预处理算法的运行时间为21.2 ms,融合算法的运行时间为26.7 ms,小于40 ms,因此处理系统可以满足实时性要求。
5 结 论
实时图像显示系统 篇9
图像边缘是图像的基本特征,这些信息可以用于图像分析、目标识别以及图像滤波[1]。图像算法的处理可以用软件或者硬件来实现,而对于实时图像处理来说,需要很高的速度要求,因此通常采用硬件进行图像处理[2]。目前,图像处理的硬件设计有两种技术方案,一是全定制的专用集成电路(ASIC),二是半定制的数字信号处理器(DSP)以及现场可编程门阵列(FPGA),二者在设计中的运用都可以大大加快对信息的处理速度[3]。
目前边缘检测算法已有一系列基于微分的边缘检测算子,如Roberts算子、Sobel算子、Prewitt算子、Canny算子等[4]。Sobel算子是边缘检测中常用的一种模板,其有3种算子,分别用于检测水平边缘、垂直边缘以及对角边缘。Sobel算子在运算上不涉及复杂的数据运算,适用于实时性要求高的环境。并且与Prewitt算子相比,Sobel算子对于像素的位置影响做了加权,降低了边缘的模糊程度,效果更好[5]。由于Sobel算子检测得到的是整幅图像的梯度值,最后还需要用图像分割算法对图像的梯度采取阈值处理。
由于阈值处理直观、实现简单且计算速度快,因此图像阈值处理在图像分割应用中处于核心低位。文献[6,7]中采用基于Otsu的改进型方法进行阈值处理以及基于小波变换的阈值处理等。但是,这些方法的计算量大,算法复杂度高,而实时边缘检测系统对速度的要求相当高,因此并不适合。因此,本文改进了运算相对简单的全局单阈值处理,提出了一种基于图像分块的阈值处理算法,以此作为实时边缘检测系统的阈值处理算法。
由于已经用Sobel算子检测得到了图像的梯度值,在均匀光照环境下,边缘部分和非边缘部分的灰度直方图间存在一个相当清晰的波谷,因此可以采用适合于整个图像的全局单阈值处理。但是当图像中存在非均匀光源部分,会使得阈值偏大,导致图像中部分梯度值较小的边缘容易被漏检。如图1a为均匀光源环境,图像中各部分的光照程度近似。而图1b为非均匀光源环境,由于图像的左上角存在白炽灯,会造成此部分的梯度值偏大,很大程度上会影响图像的边缘检测效果。
文献[8]中提到了一种简单根据图像的灰度值将其分成高灰度值部分和低灰度值的部分,然后对这两部分分别进行边缘检测。这种方法,在一定程度上能够补偿光源不均匀性。但是由于其简单针对图像的灰度进行分组,效果有限。
本文改进了这种根据图像灰度值进行分组的思想。对采集到的图像进行Sobel边缘检测处理后,根据图像的梯度值进行分组。并在全局单阈值处理算法基础上,将其分别运用分组后的子图像中。
2 基于图像分块的边缘检测系统及其FPGA实现
图2为基于图像分块的边缘检测系统的软件设计框图。系统改进了全局单阈值处理算法,根据图像的梯度值进行分组,提出了一种IEDIP(Improved Edge Detection based on Image Partition)算法。该算法先通过Sobel边缘检测算子对采集到的图像进行梯度计算,并根据图像的梯度值将其分为若干个子图像。然后对各个子图像分别采用全局单阈值处理,最后将所有子图像的阈值通过简单的计算得出一个新的阈值,并以此作为当前整幅图像阈值。
2.1 Sobel边缘检测算子及其FPGA实现
系统采用3×3的Sobel算子分别计算3个方向的梯度值,分别为x方向、y方向和对角线方向,通过比较3个方向的梯度值,取其中的最大值作为该点的梯度值,Sobel算子在3个方向的检测模板如图3所示[9]。
Sobel算子以检测的像素点为中心,其梯度计算公式分别为
Sobel边缘检测算法在FPGA上实现需要用到3×3的方形窗,为了使窗中的3行3列共9个像素能够在一个时刻同时输出,便于之后的核心算法模块进行数据处理,在3×3方形窗的硬件设计中,本文采用3个FiFo存储器。利用Quartus II的MegaWizard Plug-In Manager工具可以很方便地设计出符合设计需求的FiFo存储器,设计数据位宽度8 bit,数据长度1 024,这里需要1个“almost_full”信号,在数据长度为640(VGA分辨力为640×480)的时候,表示1行像素数据存储完成,“almost_full”信号置“1”,同时FiFo开始输出信号并将像素数据发送到下一个FiFo中,具体实现方法如图4所示。
在梯度计算的过程中需要对方形窗所产生的像素数据进行缓存,缓存数目由窗口的大小决定。每次方形窗送出像素数据后,首先要将像素数据缓存,然后再进行梯度计算,输出梯度值。通过比较器,计算3个方向的梯度,具体FPGA实现过程如图5所示。
2.2 全局单阈值处理算法及其FPGA实现
当物体和背景像素的灰度分布十分明显时,可以用适合于整个图像的全局阈值。由于已经用Sobel算子检测得到了图像的梯度,边缘部分和非边缘部分的灰度分布十分明显,即使全局阈值是一种合适的方法,对每一幅图像有能力自动估计阈值的算法也是需要的[9]。下面的迭代算法可用于这一目的。
1) 为全局阈值T选择一个初始值。
2) 用T分割该图像。这将产生两组像素:G1由灰度值大于T的所有像素组成;G2由所有小于等于T的像素组成。
3) 对G1和G2的像素分别计算平均灰度值(均值)m1和m2。
4) 计算一个新的阈值,由公式为
5) 重复步骤2)到步骤4),直到连续迭代中T值间的差小于一个预定的参数ΔT为止。
通常,ΔT越大,则算法执行的迭代次数越少。用FPGA实现时,采用VGA的场同步信号控制阈值计算,即每产生一次场同步信号,重新计算一次阈值。本设计以ΔT设定为0为例。具体FPGA实现过程如图6所示,像素经过Sobel边缘检测算子模块输出的梯度值,除了需要根据当前阈值判断该像素点为边缘点或非边缘点并输出二值图像,还要将对该像素进行上述的全局单阈值处理算法以更新下一帧图像的阈值。
值得注意的是,由于上述全局单阈值处理算法仅当物体和背景的直方图模式间存在一个相当清晰的波谷时,这个算法才工作得很好。但是,当存在非均匀光源部分时,由于非均匀光源部分的梯度值极大,上述算法中的G1值将显著增大,从而导致阈值T的值增大,这会导致一些重要的边缘像素被滤除,针对这一问题提出了下述的基于图像分块的阈值处理算法(EDIP算法)。
2.3 基于图像分块的阈值处理算法及其FPGA实现
IEDIP算法是将每一帧图像分成若干个子图像,然后针对每个子图像分别进行上述的全局单阈值处理,最后将所得到的各个子图像的阈值进行比较计算得出一个新的阈值作为下一帧图像的阈值。由于计算得到的阈值相比非均匀光源部分子图像的阈值明显要小,因此能够有效地用于补偿光照的不均匀性,使一些重要的边缘得以保留。
由于存在非均匀光源的子图像经过全局单阈值处理算法后,其阈值与其他子图像的阈值相比较会明显增大,从而导致图像显示的分块。因此,最后需要对所有子图像的阈值进行计算,得出当前图像的阈值,使显示的图像不存在分块的现象。即最后显示的边缘检测图像需要满足两个要求,一是显示的图像不存在分块现象,二是能够有效地补偿光照现象,使一些重要的边缘不被滤除。
系统的FPGA实现框图如图7所示,首先像素需要经过Sobel边缘检测算子模块输出得到梯度值,并且根据该像素所在的坐标位置(Loc_x,Loc_y)将其划分到不同的子图像中。然后需要根据当前这帧图像的整体阈值判断该像素点为边缘点或非边缘点并输出二值图像,并且根据该像素所在的子图像,仅对该子图像全局阈值处理算法以更新该图像的阈值。最后对所有子图像的阈值进行计算,得出当前图像的阈值。由于在FPGA里面的除法很难确定需要多少个时钟周期,视频图像的处理对于速度的要求相当高。这里作了简单地加法和移位运算处理,即采用4块阈值的均值代替存在非均匀光源部分的阈值,公式为
hold[temp]=(hold[0]+hold[1]+hold[2]+hold[3])>>2 (5)
3 实验结果与分析
3.1 基于图像分块的边缘检测系统的实验结果
系统的实验结果如图8所示,从图8b可以看出,左上脚的白炽灯处的灰度值相当大,这对于采用全局单阈值处理后的图像相当不利,其阈值将会向灯光的灰度靠近,即阈值变大,造成分割后的图像边缘信息严重丢失。针对此问题,采用EDIP算法将图像进行分块,将白炽灯独立在一个单独的子图像中,使其灰度值不影响其他3块图像阈值的计算,其效果如图8c所示。但是,图8c中可以看到明显的分块痕迹,这是边缘检测所不希望的结果,因此需要采用改进后的IEDIP算法对4个子图像的阈值进行修正计算,将得出的新阈值作为此图像的阈值,其结果如图8d所示。
3.2 基于图像分块的边缘检测系统与基于全局单阈值处理的边缘检测系统的结果比较
结果比较如图9所示,比较图9b和图9c可知,在均匀光源环境下采用全局单阈值处理和基于图像分块的阈值处理算法得出的结果基本相同,都能够将图像的主要边缘检测处理。由图9e可以看出在非均匀光源的环境下采用全局单阈值处理的边缘检测系统仅将光源白炽灯的边缘检测出来,而且其他边缘信息全部被滤除,这是由于左上脚的白炽灯光源处的梯度值相当大,这样对于采用全局单阈值处理后的图像相当不利,其阈值将会向灯光的灰度靠近,造成图像的阈值偏大。由图9f所示,在非均匀光源环境下采用基于图像分块的阈值处理的边缘检测系统能够将图像的主要边缘检测出来,和均匀光源环境下的检测效果一样好。相比之下,本算法对于非均匀光源环境的边缘检测效果明显较好。
4 结束语
本文以Sobel边缘检测算子为基础,将全局单阈值处理算法进行改进,提出了一种基于图像分块的阈值处理算法,先用Sobel算子计算出图像的梯度值,然后通过将图像分块成若干个子图像,针对各个子图像分别采用全局单阈值处理,然后将所有子图像的阈值通过简单的计算得出一个新的阈值,并以此作为当前图像阈值。本算法通过FGPA得出实验结果,实验证明了该算法在非均匀光源的环境下用于实时图像的边缘检测效果理想。
参考文献
[1]GUO Z,XU W,CHAI Z.Image edge detecton based on FPGA[C]//Proc.9th International Symposium on Distributed Computing and Appli-cations to Business Engineerng and Science(DCABES).[S.l.]:IEEEPress,2010:169-171.
[2]HOUARI K E,CHEERAD B,ZOHIR I.A software-hardware mixed de-sign for the FPGA implementaton of the real-time edge detection[C]//Proc.IEEE Inernational Conference on Systems Man Cybernetics(SMC).[S.l.]:IEEE Press,2010:4091-4095.
[3]甘振华,应骏.基于FPGA的嵌入式图像边缘检测系统设计[J].电视技术,2010,34(8):43-45.
[4]QIAN X,CHAKRABARTI C,KARAM L J.A distributed Canny edge de-tector and its implementation on FPGA[C]//Proc.Digital Signal Pro-cessing Workshop and IEEE Signal Processing Education Workshop(DSP/SPE).[S.l.]:IEEE Press,2011:500-505.
[5]YASRI I,HAMID N H,YAP V V.Performance analysis of FPGA basedSobel edge detecton operator[C]//Proc.ICED 2008.[S.l.]:IEEEPress,2008:1-4.
[6]ZHANG J,CHEN Y,HUANG X.Edge detection of images based on im-proved Sobel operator and genetic algorithms[C]//Proc.IASP 2009.[S.l.]:IEEE Press,2009:31-35.
[7]GAO W,ZHANG X,YANG L,et al.An improved Sobel edge detection[C]//Proc.ICCSIT 2010.[S.l.]:IEEE Press,2010:67-71.
[8]ROUTRAY A,MOHANTY K B.A fast edge detection algorithm for roadboundary extraction under non-uniform light condition[C]//Proc.ICIT2007.[S.l.]:IEEE Press,2007:38-40.
实时图像显示系统 篇10
电荷耦合器件 (charge coupled device, CCD) 分为3个等级:商业级、工程级和科学级。3个级别的要求一级比一级高。科学级CCD以其高光子转换效率、宽频谱响应、良好的线性度和宽动态范围等优点被广泛用于天文观测[1]。短短十几年来, 各大天文台的主要望远镜均将CCD系统作为主探测器, CCD通常已成为天文观测必不可少的后端设备。而针对于空间目标监视的天文探测系统中, 由于目标运动角速度快, 要求尽可能快的检测到复杂背景中的弱小运动目标, 这对高分辨天文图像的实时获取与实时处理提出了更高的要求。随着接口技术的发展, 目前科学级CCD相机接口有Camlink、Ethernet、USB、1394等数据接口。而USB[2]接口是近几年来发展较快的接口技术之一。
由于利用通用计算机进行USB数据传输占用计算机的CPU资源, 所以随着CCD像素数及相机帧频的增加, 使用通用计算机进行数据获取并利用其进行数据处理已经无法满足探测系统的实时性能要求。本文结合实际光电探测系统的实时性要求及其所采用的USB接口高分辨CCD相机, 在深入剖析USB 2.0协议的基础上, 依据复杂背景下弱小目标的检测流程, 设计并实现了基于USB 2.0的高分辨天文图像实时获取与处理系统。下面分别介绍该实时获取与处理系统的总体结构、硬件设计、DSP算法实现及系统性能测试。
1 系统总体结构与功能
系统由大视场光学系统、科学级CCD相机、实时信息处理分系统、主控计算机、望远镜电机控制分系统、时统几大部分组成。其中, 实时信息处理分系统通过USB 2.0接口与CCD相机连接, 通过该接口实现相机的控制, 如初始化、制冷、曝光等操作, 同时通过该接口实现相机图像数据的获取, 获取的图像数据在实时信息处理分系统中进行处理, 把图像处理结果 (弱小目标的检测结果) 通过CPCI接口发送至主控计算机进行后续的处理。系统总体框图如图1所示。
系统整个工作流程规划为3个阶段:
(1) 系统准备阶段:
各个分系统加电, 初始化, 故障自检。
(2) 目标检测阶段:
本文所基于的观测系统没有伺服系统, 根据地球的自转来对空域进行扫描。由于光学视场大, 一般来说目标从进入视场到出视场需要10~20 s, 实时信息采集与处理系统连续获取图像并进行实时处理, 检测到复杂背景中的弱小运动目标及恒星目标, 把检测结果传入主控计算机。
(3) 目标后续处理阶段:
在系统检测到目标后, 根据获取的时间信息、光学望远镜指向信息、测站地理位置、目标检测结果及星表数据来计算目标的天球坐标, 进而进行定轨和编目等处理。
系统选用CPCI工业控制计算机为主机, 实时信息处理分系统与主机之间通过高速CPCI总线进行通信, 而实时信息处理分系统通过高速USB 2.0接口实现与CCD相机之间的通信与数据传输。
2 实时信息处理分系统硬件设计
实时信息处理机硬件平台是本系统的关键部分, 它实现对高分辨天文图像数据的获取, 并对图像中的目标进行实时检测, 并将目标质心检测结果信息等传递给主机以进行后续的目标天文定位。由于实时信息采集与处理分系统的设计是针对该系统的, 在设计之初必须研究系统所采用算法的流程及结构, 分析其需要的运算量, 在此基础上才能设计出高效、稳定且具有针对性的实时处理硬件平台。首先介绍该系统所采用的算法流程。
2.1 弱小目标检测算法流程
包含空间目标的CCD图像序列f (i, j, k) 可以
描述为:
式中:f (i, j, k) 为像素点 (i, j) 的总灰度值;fT (i, j, k) 为空间目标;fS (i, j, k) 为恒星目标;fB (i, j, k) 为背景图像;n (i, j, k) 为噪声图像;k为图像序列中的帧序号。
空间目标fT (i, j, k) 与恒星目标fS (i, j, k) 成像相似, 在空域上均体现为单帧图像上灰度的局部奇异性, 为一孤立的亮斑, 两者的区别在于时域上恒星目标表现为相对静止, 而空间目标表现为明显的运动特性。背景fB (i, j, k) 具有时空域双重平稳性和时空域双重强相关性[3], 占据了场景图像频率中的低频部分。噪声n (i, j, k) 是CCD传感器及读出电路等产生的各类噪声的总和, 噪声与背景像素和目标像素都不相关, 它在空间分布是随机的, 各帧之间的空间分布没有相关性。
基于上述分析, 该系统采用一种基于时空域联合滤波的天文光电图像序列弱小目标实时检测算法, 流程如图2所示。图像序列首先在空域背景抑制、噪声平滑、拖尾去除、目标增强;然后在时域上, 根据恒星目标多帧之间相对静止的性质通过两帧相关对其进行检测, 而对于空间目标, 根据多帧之间目标的运动特性通过改进的三帧差分方法检测目标。最后再根据目标的统计信息, 如位置、大小、亮度、信噪比等信息剔除虚假目标, 空间目标还可以通过运动航迹的连续性和规则性, 建立目标运动航迹, 根据航迹预测来检测目标。
2.2 实时信息处理分系统结构设计
CCD天文图像大小为2 048×2 048, 帧频为1~5 f/s, 其数据量大且图像处理算法运算量大, 而系统对实时性的要求高, 以上这些特点对硬件平台的设计提出了很高的要求。
国内外一些同行在实时图像处理机的设计中采用了DSP阵列结构[4,5], 用多块DSP协同工作来提高处理机的实时处理能力。鉴于本文所涉及的目标实时信息获取与处理系统的目标检测要求, 在对各方面因素进行综合考虑的基础上, 结合处理算法的动态可变和可重构特点, 根据上文目标检测算法的流程设计了基于2片DSP+FPGA的实时信息处理机硬件平台, 发挥DSP和FPGA各自的优势, 合理划分处理任务, 使得效率和灵活性得到充分提高。
其结构框图如图3所示。
2.3 嵌入式USB 2.0主机控制器设计
在本系统中, USB 2.0接口是实时信息处理分系统与CCD相机的通信及数据接口, 数据获取的速度取决于USB传输的速度, 由于实时信息采集与处理分系统直接与CCD相机连接, 不能使用相机厂商提供的相机驱动程序进行相机控制及数据获取, 必须在实时信息处理机上实现嵌入式USB 2.0主机控制器的设计, 同时根据相机控制协议完成对相机的控制及数据传输。
Philips公司ISP1760/1是目前业界惟一一款支持增强型主机控制器接口 (enhanced host controller interface, EHCI) 标准的主控芯片, 主要由CPU接口、中断控制、USB SIE 、SRAM、从DMA控制器和根集线器等模块组成, 具体各项性能可参加该主控芯片资料, 这里不再详述。
本系统选择ISP1760直接与FPGA连接, 通过FPGA内部PowPC[6]完成对USB 2.0主控制器内部寄存器和内部传输描述符PTD的配置, 设置每次传输的传输类型、令牌包类型、传输方向、数据包大小、数据切换位、内存缓冲区位置、完成状态和传输描述符访问的设备端点及地址。
ISP1760硬件通过内部的EHCI操作寄存器和性能寄存器将要处理的传输链接到周期性数据帧列表和异步数据帧列表上, 根据列表执行相应的传输, 传输完成后根据中断控制寄存器的设置向FPGA递交中断, FPGA通过中断来处理已经完成的传输结果并设置新的传输。
2.4 CCD图像数据获取
本系统对CCD大批量数据读取是采用从DMA传输模式, ISP1760内置从DMA控制器使得FPGA可以直接搬移ISP1760内部60 KB的数据区的大容量数据。FPGA可通过设置ISP1760内部DMA控制寄存器读写类型、数据突发长度、传输数据长度和内存数据缓冲地址控制从DMA控制器传输数据, 将ISP1760内存数据区域划分为2个24 KB的空间, 分别用于异步PTD1和异步PTD2数据传输的存放, 从DMA控制器乒乓式切换传输地址将相应数据缓存区的数据通过DMA传输到FPGA进行实时处理, 如图4所示。
图像数据获取时传输速度高达42 MB/s, 满足系统对CCD相机数据获取的要求。
2.5 DSP算法实现
DSP主要完成对图像的预处理以及后续的目标检测工作, 由于图像背景复杂, 而弱小目标一般信噪比很低, 为此必须对图像进行有效的空域、时域背景抑制, 并融合时空域背景抑制的结果来提高目标信噪比, 从而提高目标的检测概率。在本系统中空域背景滤波[7]根据目标不同可选用数学形态学滤波、基于M估计[8]的自适应背景抑制等滤波方法。基于光学系统指向固定的特点, 时域背景滤波[9]采用经典的帧间差方法来有效的检测弱小运动目标。其流程图如上文中的图2所示。DSP的软件结合C语言和汇编语言进行编写, 使程序的效率和优化结果达到最佳, 在开发过程中根据算法和硬件资源的关系以及数据的相关性最大限度提高操作并行度。
3 测试结果
实际探测系统采用的相机分辨率为2K×2K, 帧频为1 Hz, 所以系统的实时性要求为:信息采集与处理系统必须在1 s时间内完成8 MB图像数据的采集、自适应背景抑制及弱小目标检测。根据上述指标、结合上文实时处理系统设计方案, 本文实现了基于CPCI的实时信息处理机, 其实物图如图5所示。
该处理机上采用嵌入式USB主控接口实现了对相机的有效控制和数据获取, 数据速率可达42 MB/s, 满足了系统对于数据获取的实时性要求。一个工业控制计算机中可内置4~6个该处理机, 同时完成对4~6个相机的控制和数据获取。
为测试该实时信息处理机的性能, 本文采用实测的分辨率为2k×2k的天文图像数据对系统进行了测试, 同时利用相同的算法在配置为2 GB内存, intel (R) Core (TM) 2Quad CPU, 2.50 GHz的计算机上进行测试, 测试结果如表1所示。经过优化后的代码在实时处理机上所耗费的时间远小于PC机, 且满足了实际探测系统对数据获取与处理实时性的要求。
4 结 语
本文针对高分辨天文CCD图像的实时获取与处理需求, 设计并实现了基于USB 2.0的高速相机接口及基于双DSP+FPGA的实时处理机, 该设计充分利用FPGA灵活、可编程特性和DSP在实现复杂运算方面的高速、程序动态可加载特性, 使得该结构具有高速、灵活和可重构等优点, 测试结果表明, 该处理机的数据获取速度及处理速度满足天文观测系统要求, 并优于同时期的高性能计算机, 满足了实际探测系统对数据获取与处理的实时性要求。
摘要:针对某空间目标监视系统的实时目标检测需求, 结合所采用CCD相机的接口形式, 本文设计并实现了一套基于USB 2.0的高分辨天文图像获取及实时处理系统。首先在深入分析USB 2.0协议的基础上实现了相机数据获取接口, 其次结合弱小目标检测算法流程, 提出并实现了一种基于DSP+FPGA的可重构实时信息处理机的硬件实现方案。测试结果表明该设计能实现对复杂环境下低信杂比、低对比度的弱小目标的有效检测, 并满足探测系统实时性的要求。
关键词:USB2.0,高分辨,天文图像,数据获取,实时处理
参考文献
[1]FDBERG Stephen J.Research amateur astronomy[C]//As-tronomical Society of the Pacific Conference Series.ScmFrancisco, California:Astronomical Society of the Pacific, 1991, 33:108-117.
[2]Compaq, Hewlett-Packard, Intel, et al.Universal serialbus specification revision 2.0[EB/OL].[2007-04-27].http://www.usb.org.
[3]胡谋法.复杂背景下大视场弱小目标检测技术研究[D].长沙:国防科学技术大学, 2008.
[4]MAO Hai-cen, ZHANG Tian-xu.A Flexible DSP-basednetwork for real-time image-precessing[J].Wuhan Univer-sity Journal of Natural Sciences, 2004, 9 (6) :921-926.
[5]杜金榜.多DSP并行处理系统的设计与开发[J].计算机测量与控制, 2006, 14 (5) :658-660.
[6]Philips Semiconductors.ISP1760 Hi-speed universal serialbus host controller for embedded applications[EB/OL].[2004-11-08].http://www.semiconductors.philips.com.
[7]彭嘉雄, 周文琳.红外背景抑制与小目标分割检测[J].电子学报, 1999, 27 (12) :47-51.
[8]胡谋法, 沈燕, 陈曾平.自适应序贯M估计算法及其性能分析[J].电子学报, 2007, 35 (9) :1651-1655.
[9]王卫华, 何艳, 陈曾平.光电图像序列运动弱目标实时检测算法[J].光电工程, 2006, 33 (4) :14-18.
[10]侯新梅, 李自田, 胡炳樑.基于FPGA的面阵CCD驱动电路的设计[J].现代电子技术, 2010, 33 (7) :195-197.