基于DSP的实时图像采集与旋转处理系统硬件设计
摘要:在某些特定场合,为满足特定任务需求,必须实现对视频信号的实时采集与旋转处理等任务,本文制订了基于DSP[1]的实时图像采集与旋转处理系统硬件设计方案,对系统软件流程作了分析,给出了系统实验结论。
关键词:DSP 信息处理 图像采集 图像旋转
1 前言
在军事和许多精密控制领域,实时视频信号采集和处理应用非常普遍。如果仅仅对标准视频信号进行实时采集,在工程实现上已经非常简单,但是在更多应用场合,实时视频采集只属于系统任务的一小部分,更重要的是对采集到的视频图像进行实时处理和分析,视频制导武器中的实时视频图像采集和消旋、太空探测过程中的图像实时采集与处理就属于这种情况。为了满足对高速视频图像的实时采集和处理,在许多场合,由于图像处理的运算量非常大,仅仅依靠软件优化很难满足系统实时性要求。近年来,随着DSP技术的飞速发展和广泛应用,许多曾经被认为难以满足的任务需求也变得日益简单方便。本文以某一实际系统开发过程中图像实时采集和消旋需求为对象,对系统开发从硬件和软件两个层面进行了详细分析,并通过实验获取了大量数据,对不同设计方案的性能进行比较,得出了可靠结论。
2 需求分析
实时图像采集和旋转处理在军事和许多高科技领域有着广泛应用。例如在某种特定的视频控制系统中,前端CCD在工作过程中一直处于定轴旋转状态,要实现对图像的实时监视和处理,首先必须对采集到的每帧图像进行实时消旋(从根本上说,消旋就是反向旋转),然后才能进行显示和其它处理工作,按照标准视频25帧/秒的速度要求,每帧图像从获取、采集、处理到存贮和显示的时间必须限制在40ms之内。按照常规系统设计要求,系统工作流程为:利用通用图像采集卡获取CCD拍摄的图像,然后通过软件对每帧图像进行消旋,根据这一方案,进行了大量测试,具体实验条件、方案和结论如下:
硬件环境: P4 2.6G的CPU,1GDDR433内存;操作系统为平台:WindowsXP;
采集卡:大恒CG410通用视频采集卡(PCI总线时钟为33MHz);
图像大小:768*576;图像精度:24bit彩色图像;
图像旋转算法:最邻近差值算法;
算法优化:图像变换过程中对正弦和余弦采用查表方式,在涉及浮点运算的环节采用近似移位算法代替;
其它:图像显示过程中以768*576的画板为基础,对于旋转过程中超出该区域的目标点统一在初始化过程中赋值;
结论:旋转时间约为48ms;采集和旋转时间约为66ms(如果不采用查表和近似移位方法进行优化,完成每帧图像采集和旋转时间超过150ms)。
结果表明:即使采用最邻近差值算法,对浮点运算采用查表近似处理,在Windows操作系统环境中,图像显示画板不作任何变换这种最简单的图像旋转而言,仅仅依靠软件不可能满足系统实时性要求。
究其原因,主要有以下几点:
1)图像数据流经PCI总线占用的时间过长
由于常用的图像采集卡采用的都是33M时钟PCI总线结构设计,在32位机器环境中,该总线支持的理论最高通讯速率为132Mbytes/s;在使用过程,由于桥路设计及其它PCI设备占用,实际数据通过速率最多只能达到80 Mbytes/s左右,如果采集768*576的24位彩色图像,每帧图像数据流经总线的时间就高达15ms。
2)图像旋转运算量过大,占用时间过长
每帧图像旋转必须分坐标和色彩空间变换两步完成,数据运算量相当大,如果色彩空间变换采用较为复杂的差值或卷积算法,运算量会更大,仅仅依靠软件优化,难以满足系统实时性要求。
3)操作系统实时性欠佳
对普通用户而言,Windows系列操作系统的主要优势在于强大视窗功能,从操作系统底层开发而言,特别在某些对系统实时性要求较高的场合,Windows操作系统的进程管理和任务调度机制显得力不从心。一般来说,Windows操作系统的中断响应和任务切换时间处于毫秒级水平,在系统繁忙的情况下,往往会达到几十甚至上百毫秒,这种响应速度对实时图像采集和旋转处理系统来说远远不够。
4)系统设计不够紧凑,存在过多中间环节
这一方案中,图像采集与旋转(即消旋)是两个并行同步执行的进程,通过回调函数机制实现两者间同步,图像数据必须先采集经PCI总线到系统内存,然后再进行旋转处理,这种设计方式增加了图像数据的流通环节,制约了系统实时性能,同时也不符合设备模块化设计要求,影响系统可扩展性。
3 系统设计
3.1 硬件方案设计
3.2.1 图像采集处理板设计
图 地面信息处理硬件模块原理框图
为实现系统设计模块化,将图像采集和消旋处理综合在一块硬件板卡上实现,两者间通过两个静态存贮器SRAM1和SRAM2并辅以相应控制逻辑实现接口,具体工作流程为:图像信号经采集直接通过卡内总线交替存贮到SRAM1和SRAM2中,当某一帧图像采集完成,通过控制逻辑一方面通知DSP从相应存贮器中读取数据并进行处理,同时控制将下一帧图像采集保存到另一块静态存贮中,从而实现交替存贮;DSP对采集的图像信号进行实时消旋,处理后的数据直接存放到静态存贮器SRAM3中,当某一帧图像处理结束,DSP通过PCI总线向CPU发送一个中断请求,接收到中断请求,CPU立即将存贮器中的图像数据取出保存并显示。
这一方案解决了原有系统存在的两个问题:首先,通过采用DSP处理技术,将系统工作中最复杂、最耗时的图像消旋进行最优化,提高了系统处理速度,大大缩短了每帧图像处理时间;其次,将图像采集和消旋处理集中在同一块硬件上,这种方式增加了系统集成度,减少了数据在系统总线上的流通环节,节省了操作系统和内存开销,增强了系统可扩展性。
3.2.2 系统工作平台选择
由于不同操作系统存在内存和任务管理等方式差异,给系统稳定性、实时性造成重要影响,所以在稳定性和实时性要求较高的场合,操作系统选择无疑是系统设计中关键环节之一。由于实时图像采集和旋转处理对操作系统实时性、可靠性和人机交互性能三方面有特殊要求,在系统设计中,必须以此为依据,选择一个稳定、可靠、高效的操作系统平台。
目前市场和工业应用领域比较常见、应用较多的操作系统有以下几种类型:1)嵌入式实时操作系统,这种系统通常对处理器有特殊要求,应用在特殊场合,系统实时性和稳定性好,但人机交互界面支持不够理想;2)以Windows为代表的分时多任务视窗操作系统,这种系统人机交互界面友好,在PC机上应用广泛,但实时性欠佳;3)以Unix和Linux为代表的准实时操作系统,这类系统拥有良好的实时性和稳定性,可以通过GTK+软件包开发出较为漂亮的用户界面,并且Linux属于自由开放式操作系统,各种支持软件丰富,具有广泛的应用领域。综合这些因素,实时图像采集和旋转系统选择了Linux作为操作系统平台。
3.2 软件设计方案
3.3.1 软件方案
按功能划分,系统软件模块如图所示:
图 系统软件模块框图 严格意义上说,基于硬件的图像采集和消旋处理并不是真正意义上的软件模块,它们属于操作系统、硬件以及部分硬件描述语言的结合体,是系统核心处理模块;系统外围控制模块负责设备初始化和结束、资源申请与释放、设备工作过程控制等,是控制系统正常工作流程的功能模块;视频显示和存贮模块用于满足前台人员实时掌握现场信息,后期处理等需要。
3.3.2 软件流程
系统软件工作流程如图所示:
图4 系统软件流程
系统软件流程是一个以硬件框架为基础、以数据流向为依据的多重模块结构,其中部分重要工作由图像采集处理板独立完成,应用软件部分主要负责信息存贮、视频显示以及系统初始化和结束。图像采集处理板每采集和处理完一帧图像,立即向CPU发送一个中断请求,CPU做出响应并通过中断处理程序将消旋处理后的图像进行准实时显示并保存,保存在后台的视频信息供相关人员进行后期分析和处理。
4 实验结果与结论
为了验证系统性能,在同一硬件环境中,分别针对三种不同方案进行了测试:
硬件环境:CPU:P4 2.6G,内存:1G;
图像大小:768*576,图像分辨率:24bit;
方案一:以WindowsXP操作系统作为平台,图像采集采用大恒CG410通用视频采集卡,图像消旋通过软件实现;
方案二:以Linux(2.4.20-8)[4]操作系统作为平台,图像采集采用大恒CG410通用视频采集卡,图像消旋通过软件实现;
方案三:以Linux(2.4.20-8)操作系统作为平台,图像采集及消旋处理采用上述新设计方案实现(采集处理板PCI总线时钟为33MHz)。
在上述三种方案条件下,分别测得按帧连续图像采集、消旋及存贮显示的部分数据如表1所示:
显而易见,通过引入DSP处理技术,采用图像采集与消旋处理板,系统处理速度得到极大提高,满足了系统设计要求,由于方案三采用了硬件一体化模块设计,大大增强了系统可扩展性和通用性,在许多军事和重要工作控制领域,可以通过对这种方案进行扩充或局部修改就能满足各种特定需求,具有很高的借鉴和应用价值。
创新点:通过引入DSP技术,实现特定场合的实时图像采集和旋转一体化设计,极大地提高了系统实时性,增强了系统可扩展性。
|