DM642开发与应用

2024-10-31

DM642开发与应用(共6篇)

DM642开发与应用 篇1

0引言

视频实时处理,由于视频处理中数据量大,要求速度快因此采用TM320DM642。视频处理机应用于视频采集、视频处理、视频输出的视频实时处理。视频处理机的解决方案有多种选择,但是市场主流产品一般选择两种方案:1) 采用CPU+ASIC。2) 采用双CPU结构,即一个嵌入式CPU和一个专用信号处理芯片DSP。受专用DSP芯片处理能力的限制,现有的嵌入式中使视频处理机的视频处理算法基本是H.263以下的标准。

1硬件设计

本文介绍一种基于TMS320DM642 DSP的视频采集设计方案。其操作系统、通信协议、网络协议、音视频处理软件均在一颗TMS320DM642上实现,降低了开发的难度。

TMS320DM642芯片简介:

TI公司的TMS320DM642 (以下简称DM642)是一款专门面向多媒体应用的专用DSP。该DSP时钟高达600MHz,8个并行运算单元,处理能力达4800MIPS;采用二级缓存结构;具有64位外接存储器接口;兼容IEEE-1149.1(JTAG)边界扫描;为了面向多媒体应用,还集成了3个可配置的视频端口、面向音频应用的McASP(Multi Channel Audio Serial Port)、10/100Mb/s的以太网MAC等外设。鉴于DM642的上述优点,本网系视频处理机统以DM642为核心,完成音视频信号的实时采集、压缩及传输功能。

系统电路组成如图1所示。从视频处理机的视频信号和从麦克风输入的音频信号经采集、A/D转换为数字信号后送入DSP。DSP在信源处对音视频信号进行压缩编码和合流,然后通过局域网或因特网将数据传输给视频监控中心。监控中心可同时监视多个现场,接收或发送报警信号,并根据需要通过异步串行总线RS-485实时控制,调整摄像头的方向和位置。

1.1视频采集电路

本系统采用的视频解码芯片是Philips公司的SAA7115。从模拟视频输入口输入的全电视信号在SAA7115内部经过钳位、抗混叠滤波、A/D转换、YUV分离电路之后,在YUV到YCrCb的转换电路中转换成BT.656视频数据流,输入到压缩核心单元DM642中。DM642的3个视频口VP0、VP1、VP2与视频编解码芯片相接。

在本系统中,只有一路视频输入,故VP1、VP2端口,VP0通道配置为8位BT.656视频输入口。视频数据的行/场同步信号包含在BT.656数字视频数据流的EAV(end of active video)和SAV(start of active video)时基信号中,视频口只需视频采样时钟和采样使能信号即可。SAA7115内部寄存器参数的配置和状态的读出通过I2C总线进行。视频接口的原理如图2所示。

1.2视频编码电路

本系统采用的视频编码芯片是Philips公司的SAA7105H。DM642的视频口2用来驱动视频编码器,视频信号经过FPGA芯片,连到视频编码芯片PhilipsSAA7105H。FPGA用于扩展屏幕显示功能。视频输出信号支持RGB,高清晰度视频,PAL/NTSC复合视频和S端子视频信号。通过DM642的I2C总线对的内部寄存器编程实现不同输出。

1.3音频输入/输出电路

本系统采用TI的高性能立体声编解码器TLV320AIC23(以下简称AIC23)实现音频信号的采集和播放。AIC23与DM642的I/O电压兼容,可以实现与DM642的McASP接口无缝连接。在本系统中,AIC23工作于主模式,左右声道的采样字宽均为16bit。数据接口为DSP mode模式。通过I2C总线设置内部寄存器的工作参数和反馈状态信息。

因为网络传输的固有特点,音频数据和视频数据从网络摄像机端到达监控中心不可能是均匀的,如果网络摄像机端不做任何纠正处理,则很难保证音视频的同步输出。为了实现音频和视频的采样同步,本文利用锁相环PLL1708,从SAA7115的LLC引脚输出27MHz时钟,经PLL1708产生AIC23的主时钟MCLK。由于音视频采样信号采用同一个时钟源,就不会出现音视频不同步的问题。PLL1708的SCKO3引脚输出默认时钟频率18.433MHz,作为AIC23的输入主时钟MCLK。AIC23内部采用的时钟可通过设置寄存器由主时钟MCLK分频得到如图3。

1.4以太网接口电路

本系统用LXT971作为快速以太网物理层自适应收发器。由于LXT971支持IEEE 802.3标准,提供MII(media independent interface)接口,可以支持MAC,而DM642内部正好集成有以太网媒体存取控制器,所以LXT971可以和DM642实现无缝连接。连接电路如图3所示,其中BH1102为1∶1的隔离变压器。从DM642传输过来的数据通过LXT971转换为以太网物理层能接收的数据后,通过RJ-45头传输到因特网。

1.5存储器扩展电路

DM642内部有16KB的一级程序缓存,16KB的一级数据缓存和256KB的程序数据共享二级缓存。但这对于直接处理图像数据是不够的,因此扩展了两片32MB的SDRAM来存放原始图像数据,4MB的FLASH来存放应用程序。二者都映射到DM642的外部数据空间。如图4。

1.6 FPGA电路

SPARTAN-3是XILINX公司生产的一种低工耗易开发应用。Spartan-3 FPGA具有两种类型的内存,可以满足不同的设计需求,即最大1.8Mb的真实双端口块RAM和最大520KB的分布式RAM,其封装形式为16位深×1位宽,可用作移位寄存器和FIFO。先进的时钟管理为高性能电路的设计者提供了更大的灵活性和更强的控制能力,最多四个数字时钟管理器(DCM),并带有9个外部输出;8个预设的全球时钟网络,即8根全局时钟线路和丰富的寻址。最多104个18×18乘法器,该乘法器模块允许两个18位二进制作为输入并计算输出36位结果,而专用的进位逻辑和高效级联,可实现更多功能。每秒最多3300亿次乘法和累加运算(MAC/s)、优秀的高速DSP功能的并行实现能力、灵活的串联架构,可实现成本/功能需求的最佳组合。

FPGA在视频处理机中完成屏幕显示功能,在默认模式下,DM642视频口2的数据可直接输出到视频编码芯片,在需要屏幕显示功能时,FPGA把内部FIFO中的数据和视频口输出得数据混和,对FPGA内部FIFO的访问可以通过对DM642的EMIF的CE3的地址空间的同步模式的访问实现。FPGA的同步存储器位于DM642的CE3地址空间,主要用于实现屏幕显示功能和粘和逻辑。

1.7 RS-485接口电路

该接口连接到摄像机的云台,用来控制云台的转动,调整摄像头的方向和位置。RS-485总线抗干扰能力强,能实现多站点远距离通信。本压缩卡拟采用UART芯片SC16C550和MAXIM公司的MAX487E来实现RS-485信号的传输。SC16C550主要功能是把DSP传送过来的并行信号转换为串行信号。SC16C550内部的接收器和发送器各有16B的FIFO,能处理的串行信号的速率高达3Mbps。MAX487E是RS-485总线接口芯片,可以工作在全双工、半双工模式。传输速率可达2.5Mbps。

1.8电源电路

整个压缩卡用一个5V的直流变压器供电。由这个5V的电压器产生1.4V和3.3V电压分别给DSP内核和 I/O端口供电,产生另外一个3.3V给视频编解码及其他芯片供电。注意这两个3.3V电源要分开设计,以免电源噪声相互干扰。

由于DSP需要两种电压,所以要考虑供电系统的配合问题。加电过程中,应当保证内核电源先上电,最晚也应当与I/O电源一起加。关闭电源时,先关闭内核电源,再关闭I/O电源。讲究供电次序的原因在于:如果仅CPU内核获得供电,周边I/O没有供电,对芯片不会产生损害,只是没有输入/输出能力而已。如果反过来,周边I/O得到供电而CPU内核没有加电,那么芯片缓冲/驱动部分的晶体管将在一个未知状态下工作,这是非常危险的。

为了解决这个问题,本文采用了开关电源芯片TPS54310PWP,采用TPS54310PWP管脚SS/ENA接电容来使内核供电与I/O端口供电,这样,只有当1.4V电压有效之后,3.3V电压才开始上电,这就保证了DM642的内核电压先于I/O电压上电。

2软件设计

在本系统中,图像压缩采用H.264标准。H.264具有很高的编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。音频编解码采用G.729算法。网络传输采用RTP/RTCP协议以及组播方式,这样可以保证传送的质量。在操作系统方面,采用基于DSP/BIOS 的TI参考架构5(RF5)。基于RF5操作系统的应用程序模块主要包括:音视频采集模块、压缩编码模块、UART控制模块和网络传输模块。

3结束语

本方案能在一颗DM642芯片上实现视频处理机的几乎全部功能,能对音视频进行实时的编解码和实时的网络传输。图像质量高、开发难度低、易于升级,是一种比较理想的视频处机解决方案,可广泛应用于视频监控系统中。

摘要:视频处理机是基于TI的DSP TM320DM642芯片设计,高速信息处理性能,计算能力达4Gips使视频处理达到理想效果,可以做实时的视频采集,实现复杂的音视频压缩算法,带有以太网口,可以通过网络传输数据。主要应用于网络视频监控和其它复杂图象处理的高速DSP应用。

关键词:TM320DM642,视频实时处理,FPGA,HPI,SDRAM,VIDEO ENCODER,VIDEODECODER

参考文献

[1]季昱,林俊超,余本喜.DSP嵌入式应用系统开发典型实例[M].北京:中国电力出版社,2005.

[2]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用[M].第2版.北京:电子工业出版,2003.

DM642开发与应用 篇2

1 图像采集整体硬件结构

本视频图像采集系统其硬件整体结构示意图如图1, 通过A/D转换器SAA7115将视频图像信号转化为Y、Cr、Cb格式的数字信号, 采集的数据存储到FIFO视频端口内部, 在没有CPU的干预下, EDMA将采集到的数据从FIFO搬运到片外SDRAM中, 以供应用程序的使用。

2 图像采集方案选择

图像采集方案共有两种, 第一种是采用非驱动程序结构, 采集驱动程序与应用程序在同一个框架下编程, 应用程序与采集驱动程序直接交互, 这种采集程序编写的方式特点是:应用程序直接管理数据缓存区, 当底层采集硬件结构改变时, 应用程序必须做大的改动。第二种方案是采用驱动程序结构。其特点:采集驱动程序与应用程序分割开来, 编写驱动程序时只需知道底层驱动程序与应用程序的标准接口函数和对应的参数设置, 无需知道具体硬件, 当硬件改变时, 只对硬件相关的驱动程序做一些改动而应用程序基本不需要变动。从程序后期的维护和移植性方面考虑, 本课题选择第二种方案。

3 图像采集驱动的实现

由于DSP硬件结构复杂, 导致配置芯片功能的工作量很大, 为降低驱动程序开发难度, DSP/BIOS提供了一种双层驱动模型, 它将整个驱动结构分为硬件相关层和硬件无关层, 这种分层的驱动结构为“类/微驱动模型”。

3.1 类驱动的实现

类驱动主要提供对外设的I/O请求的串行化和同步的同步机制, 同时控制与管理操作设备。本驱动采用GIO类驱动, 通过扩展FVID模块以支持新应用领域。编写扩展的GIO API函数:#defi ne FVID_control、FVID_control、FVID_alloc、FVID_exchange、FVID_free。本类驱动帧缓冲器分为A、B、C, 应用程序通过调用FVID_alloc () 函数从类驱动中获得帧缓冲器A, 在获得帧缓冲器A中的图像数据后对其进行处理。当应用程序处理完缓冲帧A中的数据后, 再通过调用FVID_exchange () 将视频帧A的地址返还给帧缓冲器A, 同时获的最新帧缓冲器B中的数据, 处理完视频帧B以后, 如果EDMA未装满视频帧A, 表明视频帧A未就绪, 则应用程序选择最新采集到的视频帧C中的数据进行交互。

3.2 微驱动的实现

微型驱动主要配置相关的硬件设备功能和管理存储器, 并且将配置后的设备以特定的接口形式与类驱动交互。本课题微型驱动采用IOM_Packet类型的结构数据与类驱动交换数据。应用程序提交一个数据缓冲区后, 类驱动填写完结构数据域IOM_Packet的各个参数后, 交给微驱动。微驱动在处理完这一帧数据后, 通过回调函数将IOM_Packet返还类驱动, 实现微驱动和类驱动缓冲区首地址和缓冲区大小的互换。视频图像采集过程:SAA7115视频解码芯片将摄像头采集的图像信息进行解码, 转化为YCr Cb数字信息, 然后DM642芯片上的视频采集口将转化后的数字信息存放到相应的各个分量FIFO中, 通过EDMA将图像数据从FIFO里搬移到外部存储器SDRAM中, 整个搬移过程不需要CPU干预。

3.2 I2C总线配置

DM642内部集成I2C模块, SAA7115和SAA7105芯片的配置由I2C总线来完成。具体配置如下:IIC_Confi g={0, 0, 15, 1, 0x21, 0x4620, 74}。具体配置流程:

(1) I2C总线是否繁忙, 是, 继续等待, 否, 进行下一步。

(2) 设置发送模式、子地址、计数器N。

(3) 开始发送STT=1。

(4) 是否准备好发送xrdy=1, 是, 下一步, 否返回上一步。

(5) 发送一个字节, 延时。

(6) 计数器N减一, 且是否为零, 是, 结束配置, 否, 返回到第三步。

3.3 EDMA配置

EDMA配置采用Ping-Pong结构。当一次数据传输完后, 下一个参数表自动装载, 轮流使用两个参数表, 不需要CPU的参与。本课题阈值设为90, 每次EDMA传输一行数据, 在同一帧, 不同行传输数据时, 只需在原来参数表目的地址上加720个字节地址, 即Pointer=Pointer+720, 其它参数不变。Ping和Pong参数表在一次传输完成后, 中断发生, 改变本参数表的目的地址在中断程序里。

4 结束语

本文主要介绍了基于DM642图像采集驱动系统的开发, 本系统已经过调试, 整个系统在采集数据、处理、收发数据稳定。

摘要:本论文基于DM642数字信号处理器的基础上开发视频图像采集驱动程序。本驱动采用类驱动与微驱动相结合的结构框架, 通过编写FVID函数模块, 完成图像数据与应用程序的交互, 完成类驱动程序开发;通过微驱动配置和管理各相关底层硬件, 完成视频图像的采集;从而实现驱动程序的开发。

关键词:DM642,类驱动与微驱动,视频图像

参考文献

[1]周霖DSP信号处理技术应用[M].北京:国防工业出版社, 2004.

DM642开发与应用 篇3

数字视频系统在智能交通、图像识别以及安防监控等领域,都得到了广泛的应用,运动目标检测作为数字视频系统的一个重要环节,是后续目标识别、目标跟踪等应用的基础。本文提出了一个基于DM642的实时运动目标检测系统方案,依靠DM642芯片强大的运算能力,使目标检测的数据吞吐量及实时性得到保证。本方案设计合理、可扩展性强,具有实际应用价值。

1 运动目标检测算法

实现运动目标检测的算法很多,一般有光流法、背景差分法、相邻帧间差分法[1]等。光流法通过求解光流方程来实现运动检测,其算法复杂、计算量大,且较难满足实时要求;而相邻帧间差分法虽然算法简单、运算量小,但抗干扰能力很差,检测效果不太理想;而背景差分法算法简单、运算量小、且抗干扰能力强,因此本文采用该方法实现运动目标检测。具体步骤如下:首先获取数字图像进行预处理,之后采用背景差分法实现运动检测,再对所得的图像用大津法[2]进行自适应阀值分割,最后通过滤波得到检测出的运动目标。图1是本文运动目标检测的流程图。

1.1 图像获取及预处理

在CCS中配置系统的视频输入以及视频输出FVID驱动,从TMS320DM642的VPORT口获取到摄像头采集的视频流所对应的数字YUV视频流,将其存放到缓存IMG_CURRENT、IMG_PREVIOUS、IMG_BACKGROUND里面,其中IMG_CURRENT存放的是当前的图像,I M G_P R E V I O U S存放的是上一次存放的图像,IMG_BACKGROUND存放的图像作为背景图像。图像的分辨率为720×576,每个分量为8比特。由于获取的视频图像不可避免地含有噪声,必须对这些噪声加以抑制,本文采用高斯滤波对所得到的YUV视频信息进行高斯滤波处理。滤波后的图像保存到IMG_CURRENT缓存中。

1.2 背景差分法处理

视频图像经过预处理后,采用背景差分法检测出运动图像,步骤如下:

(1)获取一帧图像作为初始的背景Bg(x,y,tk);

(2)间隔4帧再次获取下一幅图像,作为当前图像Curr(x,y,tk)

(3)按照背景差分法得到差分图像

(4)统计所有和值,与设定的阀值FF相比较,如果小于阀值FF,按下式进行背景更新Bg(x,y,tk)=

(5)重复前面(2)到(3)的步骤。

上述背景差分法中,可随机获取开机时刻的一帧图像为初始背景图像。为了让图像之间的差异更加明显,按每间隔4帧来获取下一幅图像作为当前图像,进行背景差分得到差分图像,将差分图像灰度的和与设定阀值FF相比较,判定是否需要更新当前背景[5],阀值FF为经验值,本文取20000。背景更新公式中的系数a反映了背景更新快慢,其取值范围在[0,1]之间,a越大,背景更新速度越快,a越小,背景更新速度越慢。

1.3 差分图像的二值化

对差分图像按照下式二值化:

式中的阀值TR采用大津法获取[2]。在实际测试时发现,直接采用大津法获取的阀值TR对差分图像二值化进行处理时,如果没有物体运动,那么二值化得到的图像为噪声的二值化图像,这样直接处理得到的二值化噪声图像在后续的形态学滤波中很难完全消除,通过分析差分图像的直方图,发现当没有物体运动时,差分图像的直方图主要分布在0~10间,此时大津法获取的阀值为1~6之间;当有物体运动时,差分图像的直方图分布在0~255之间,此时大津法获取的阀值为20以上。

基于以上的分析,本文采用改进的方法,如果大津法获取的阀值小于10,则说明没有物体运动,否则说明有物体运动,当阀值小于10时,按照下式进行二值化处理

即当没有物体运动时,获取的二值化图像应为全黑,这样后续的形态学处理只需对有物体运动时的二值化图像进行处理即可。图2分别为无物体运动时直接二值化和采用改进方法二值化后的结果。其中a)为直接采用大津法获取的阀值分割没有物体运动时的差分图像的结果,可以看出图中布满噪声;b)为对大津法获取的阀值进行判断后,没有物体运动时的差分图像分割的结果,可以看出此时图像为全黑,也即没有运动物体,这与实际情况相符,简化了后续的形态学处理。

2 算法的TMS320DM642实现

2.1 硬件平台

硬件平台[3]采用TMS320DM642作为CPU,该芯片主频600MHz。视频编解码芯片采用SAA7115H和SAA7105H。另外采用了两片SDRAM(共4M×64bit)芯片作为存储介质,用于图像的暂时存储,同时还采用一片FLASH用于实现自启动,硬件平台框图见图3。

此硬件平台从摄像机获取模拟图像,经过SAA7115解码得到标准的BT.656格式的YUV4:2:2数字图像码流,然后通过DM642的EDMA功能将码流暂存到SDRAM,再用算法进行处理后,然后通过DM642的EDMA功能送入到SAA7105进行解码,经过CVBS引脚输出,这样系统的处理结果就可以在显示器上实时地显示。

2.2 算法的DM642实现

系统的软件在TI提供的集成开发环境CCS完成,编程用C语言和汇编语言实现,软件采用TI推荐的RF-5架构,采用了三个线程tsk_input、tsk_process、tsk_output。

软件的执行流程如下:

(1)TMS320DM642的初始化。包括初始化BIOS、CSL、设置CACHE;

(2)初始化RF-5模块。用CHAN_init,ICC_init,SCOM_init分别初始化CHAN模块、ICC模块、SCOM模块;

(3)DSP/BIOS根据操作系统的调度规则环调度执行tsk_input、tsk_process、tsk_output三个线程。其中tsk_input通过按照顺序调用FVID_create、FVID_control、FVID_alloc函数实现对FVID驱动的调用,打开输入通道,实现得到SAA7115获取的BT.656格式的YUV422数字视频码流。tsk_process负责对tsk_input线程获取的数字图像进行运动图像检测算法的处理,其中要调用到上一节所述的算法函数,经过处理,运动目标被分割出来。tsk_output负责调用FVID_create、FVID_control、FVID_alloc函数,打开输出通道实现对已经分割处理的数字视频流通过SAA7105输出,在显示器上予以显示。这三个线程在DSP/BIOS的调度下循环并行运行,三个线程之间的数据交换通过SCOM模块实现。

上述程序中,核心程序为tsk_process线程,其主要代码如下:

2.3 软件优化

应用TMS320DM642开发运动目标检测系统时,为保证检测结果的高效、实时,软件代码的优化显得尤为重要。基于TMS320DM642编程时,我们参照该芯片的特点在编写算法时进行了如下的优化:

(1)使用流水线技术。采用编译选项-o2、-o3,充分利用软件流水线方式提高运行效率。

(2)对寄存器进行优化,通过CCS自带的性能分析工具Profiler对调用频率高的C语言代码采用汇编语言改写,并采用汇编优化器进行优化,使代码的执行效率得到最大限度提升。

2.4 实验结果

基于DM642的运动目标检测系统实验结果如图3所示。

3 结论

本文采用TI的专用图像处理芯片TMS320DM642构建硬件平台,采用背景差分法来检测运动物体,采用大津法获取自适应阀值,并按阀值取值来判断是否有物体运动,这样简化了后续的形态学处理,然后再对差分图像进行二值化处理,最后用形态学处理消除孤立的点,经过试验,本文的运动检测系统有很强的适应能力,能避免背景死锁情况,并能最大程度抑制拖影和空洞现象的产生。

摘要:设计了一个实现运动目标检测的实时算法,包括预处理、背景获取、背景更新、二值化及目标提取等,并在DM642硬件平台上实现了该算法,取得了较为满意的检测效果。

关键词:运动检测,背景差分,视频监控系统,DM642

参考文献

[1]朱明旱,罗大庸,曹倩霞.帧间差分与背景差分相融合的运动目标检测算法[J].计算机测量与控制,2005,13(3):215-217.

[2]孙志海,朱善安.基于差异积累的视频运动对象自动分割[J].光电工程,2007,34(12):97-103.

[3]朱晓鼎,张东,刘发志.基于TMS320DM642芯片视频系统的设计与应用[J].计算机工程与设计,2008,29(9):2233-2238.

[4]秦涛,周泽魁.一种检测序列图像中运动目标的新方法[J].计算机应用与软件,2004,21(9):105-107.

DM642开发与应用 篇4

随着现代飞行技术的发展, 以及飞机性能的日益提高, 飞行员需要实时获取的信息越来越多, 飞行员不仅要不断接收和处理各种仪表信息及地面或空中的通报和指挥信息, 还需要对各种危险警告和异常信号做出迅速的反应。特别是当飞机进行进场着陆或者起飞及做战术动作时, 飞行员的操作负荷较大。因此如何有效地将各传感器信息综合地显示出来, 不仅可以降低飞行员的劳动负荷, 还能增强其态势的感知能力。传统的飞行员座舱系统包含大量的机械式仪表, 飞行员的操作负荷大, 态势感知能力弱, 而根据对航空事故的调查统计显示, 85%的航空事故是因为飞行员失去态势感知能力造成的。因此通过对飞行员座舱系统的良好设计, 提高信息的综合显示水平能有效地提高飞行员的态势感知能力, 从而减少飞行事故。

在飞行员座舱系统中采用增强视景和合成视景技术, 不仅可以减少飞行员座舱系统中仪表的数量, 还能提高信息的综合显示水平, 降低飞行的劳动负荷, 增强飞行员的态势感知能力。所谓视景增强系统, 就是把机载红外传感器和毫米波雷达输出的图像叠加在平显上, 在为机组提供机外真实视景的同时, 显示一些下显给出的重要数据指示[1]。

在此, 研究和开发了基于实时采集图像传感器的图像数据, 并在图像数据上叠加相应的飞行姿态信息增强视景系统。系统采用TI公司的视频处理专用芯片DM642, 实现了对4路D1 (720×576) 格式视频数据的实时采集和显示。

基于DM642的增强视景系统实现的功能有:

(1) 拥有16×8, 8×8, 5×7的完全ASCII码点阵字符集, 可以自由显示任意的字符和数字信息;

(2) 支持自定义汉字点阵字符集的显示;

(3) 支持基本图元的绘制, 如直线、圆、矩形、圆弧、多边形、矩形填充等基本GUI功能的实现;

(4) 支持静态图片的加载, 如logo、静态仪表盘等图形信息的透明和不透明叠加显示;

(5) 实现罗盘仪表的绘制操作, 可自由绘制各种数字仪表;

(6) 实现导航和预警仪表盘的绘制与显示;

(7) 支持4路视频的实时采集, 可实现多种模式的显示操作界面, 各种模式可以相互自由切换。

1 系统的硬件设计

基于DM642的增强视景系统主要由TMS320 DM642数字信号处理器、视频编解码模块、存储模块、电源和可编程控制器模块组成。整个系统结构见图1。

1.1 系统主控制器及存储空间拓展

系统采用TMS320DM642作为核心处理器, 它基于C64X内核, 采用VLIW (超长指令字) 结构, 最高时钟可达720 MHz, 采用二级缓存结构, 拥有丰富的外设接口:拥有3个可配置视频口, 可实现与视频输入/输出的无缝连接;拥有64路可配置EDMA, 可灵活实现数据搬移操作;具有64位外部存储器接口 (EMIFA) , 可以连接同步或者异步的存储器和外设;拥有I2C总线接口, 可实现对外部编解码芯片的配置[2]。

TMS320DM642的EMIF[3]在内存中的地址映射分为4个可独立寻址的空间CE[0:3], 自地址0x80000000起各占256 MB空间。根据设计中所选芯片的数据宽度等特点, 可以对这4个寻址空间进行配置。其中, CE0空间配置成64位宽, 只用于SDRAM内存的映射;CE1空间配置成8位宽度, 用于FLASH的映射;CE2CE3在该设计中未使用, 留作将来拓展使用。系统中利用DM642的EMIFA外部存储器接口进行存储空间拓展, 外扩有2片4M×32 b SDRAM, 共64 MB, 其占用外部存储空间的范围为0x8000000~0x81FFFFFF, 用于存储视频帧数据和程序代码;系统同时外接了4M×8位FLASH芯片, FLASH在CE1子空间占据的内存映射空间为0x90000000~0x9007FFFF, 共512 KB空间, 用于固化程序和初始化数据。由于TMS320DM642的外部总线只有EA[22:3], 所以CE1子空间的最大寻址范围为1M×8 b。系统中CE1子空间除了分配给FLASH空间外, 还分配给状态/控制寄存器等资源使用, FLASH只占据CE1子空间的一半寻址空间, 最大可寻址范围为512K×8 b, 而FLASH的设计容量为4M×8 b。所以为了访问整个FLASH空间, 需将FLASH进行分页, 每页为512 KB, 共分8页, 具体的分页逻辑将在CPLD控制逻辑部分进行详细介绍。

1.2 视频解码模块

视频解码模块也称为视频采集模块, 它由数字视频解码芯片SAA7113和视频源 (模拟CVBS信号) 组成。对于输入的图像, 经过视频解码模块A/D转换后才能送给视频处理模块。该解码模块采用Philips公司的SAA7113H芯片来进行采集。图像传感器输出的模拟CVBS信号经SAA7113视频芯片转化为数字信号, 输出的数字信号经过视频口的内部FIFO缓冲后, 由DM642的EDMA通道将数据传送到片外SDRAM中, 以便视频处理程序使用。DM642通过I2C控制器对SAA7113进行配置, 使其输出BT.656格式4∶2∶2的YUV视频数据流。

1.3 视频编码模块

视频编码模块也称为视频显示模块, 本模块由两部分组成, 即输出两种模式的视频信号, 可以外接CVBS和VGA的显示终端。

(1) CVBS编码模块

该模块由Philips的编码芯片SAA7121H和显示终端组成。它将DM642处理后的BT.656格式视频信号转化成模拟CVBS视频信号, 并通过显示器显示处理结果。

(2) VGA编码模块

该模块由VX1128, ADV7125等芯片完成。将BT.656格式的视频数据转换成模拟RGB信号, 通过VGA接口与显示终端连接。其中, VX1128接收DSP视频口输出的BT.656格式数据流和行场同步信号, 输出24位RGB数据流送给视频编码芯片ADV7125;视频编码芯片ADV7125将数字格式的RGB信号转换成模拟的RGB信号, 并通过VGA接口送到显示终端。

1.4 CPLD逻辑部分

CPLD逻辑在系统中的主要功能是完成系统的辅助控制功能, 如拓展外部键盘、FLASH分页操作及I/O拓展等, CPLD顶层逻辑如图2所示。这里主要介绍利用CPLD逻辑来拓展外部键盘及FLASH分页的操作。

为了实现增强视景中模式的切换功能, 需要外扩一个3×3的键盘阵列。在系统实现中, 利用CPLD逻辑完成键盘信号KEY1:KEY9的相与操作, 将相与之后的信号接DM642的外部中断5。当有键按下时, DSP_INT5将产生一个下降沿, 从而触发DSP产生中断, 在中断服务程序中, 进行键值扫描, 判断是哪个按键按下, 然后设置相应的标志位, 作为模式选择信号。

CPLD除了完成按键拓展外, 还有一个很重要的功能就是完成FLASH的分页操作[4]。系统中, 将CE1子空间配置成8位异步静态存储器接口连接FLASH, 由于DM642的只有20根 (EA3:EA20) 外部总线, 所以CE1的最大可寻址空间为1 M×8 b, CE1只将前一半的寻址空间分配给FLASH, 后一半空间作为控制逻辑寄存器使用, 所以FLASH映射空间为0x90000000~0x90007FFFF, 共512K×8 b。

为了完成对外部4M×8 b FLASH空间的访问, 需要利用CPLD逻辑完成对FLASH的分页管理, 共将FLASH分成8页。

系统中, 利用CPLD逻辑分配了一个页地址控制寄存器, 地址为0x90080060, 通过改变页地址寄存器的值来改变页选通信号PA19∶PA21的值, 从而完成FLASH的分页操作。

2 系统软件设计

基M642的视景增强系统软件的实现是在TI公司提供的CCS2.2编译环境下进行的。采用了DSP/BIOS[5]嵌入式操作系统, 利用硬件中断和任务调度实现视频数据的采集、任务的显示及各种显示模式的相互切换。在程序设计中利用了RF5及同步通信等相关技术。DSP/BIOS程序模型如图3所示。

2.1 软件实现总流程

DSP/BIOS是一种抢先型、可裁剪的实时操作系统, 由3部分组成:DSP/BIOS实时内核与API、DSP/BIOS分析工具、DSP/BIOS配置工具。DSP/BIOS操作系统支持多线程管理和调度, 共有4种线程:硬件中断、软件中断、任务、空闲循环;支持任务间同步通信, 提供邮箱、信号灯、队列等方式。在DSP/BIOS操作系统下, 可方便地实现对片上外设及外部存储芯片的配置和管理, 利用它开发的程序具有更好的移植性能。

系统软件的实现基于DSP/BIOS微操作系统, 利用图3所示基于任务的应用程序实现模型进行编写。系统的总流程如图4所示。

2.2 系统设备驱动的设计与实现

在系统中, 综合运用了DSP/BIOS, DDK, RF5等技术编写设备驱动程序, 使用标准的类/微驱动程序模型来开发视频驱动程序, 使硬件驱动程序与上层应用程序开发剥离开, 提高程序的可移植和复用性能。当开发好硬件驱动程序后, 上层的应用程序开发人员只需知道设备驱动程序提供的接口, 而不需要了解底层硬件的工作原理及如何配置。

在系统中, 当配置好硬件的底层驱动后, 在图像采集时, 底层驱动提供给上层应用程序的接口就是存放图像传感器数据的帧缓冲地址;而在图像显示时, 应用程序只提供要显示图像的帧缓冲地址。这些功能的实现都是通过帧视频驱动程序 (FVID) 来实现的, 它不仅完成对视频采集与显示设备的配置, 还完成视频帧缓冲区的管理工作。

FVID函数是对GIO类函数的简单封装, 是为GIO类设备提供的一组宏。FVID/GIO类驱动程序不仅可以完成对片上视频口外设的配置, 还能与外部设备接口 (EDC) 配合实现对外部编解码芯片的配置。在程序中, 除了完成对3个视频口的配置外, 还需对外部编解码芯片的配置, 现以视频口0配置成采集通道为例来说明具体的操作过程[6]:

(1) 先在DSP/BIOS操作系统下的静态配置工具中创建一个设备驱动, 取名为“VPOCAPTURE”, 在属性页面完成设置操作。

(2) 在采集任务开始前, 利用FVID_create () 函数完成分配, 并初始化FVID通道对象。FVID_create () 函数可以配置视频口是采集模式, 还是显示模式。在采集和显示时, 使用视频口哪个通道来配置这个通道的参数。

(3) 利用FVID_control () 函数发送命令给下层的微驱动 (Mini-driver) , 以实现对外部编解码芯片的配置。

(4) 在采集和显示任务中, 调用FVID帧缓冲管理函数, 以完成视频帧缓冲的管理。

2.3 飞行仪表画面的绘制与叠加

增强视景系统中除了实时采集的图像外, 还有一个很重要的功能就是要能够显示当前飞机的飞行姿态、飞机发动机及航电系统的状态、敌我信息的显示等。而这些信息的显示都是用仪表的形式显示出来的, 这些仪表可以透明或者不透明地叠加在实时采集的传感器图像上, 从而增强飞行员态势感知的能力。在系统中主要设计了以下几种飞行仪表:

PFD (Primary Flight Display) [1]仪表画面是飞机飞行中最重要的飞行仪表, 在PFD仪表中应该包含的信息包括航向角、飞行姿态、空速以及高度等。PFD画面以综合的显示方式包含了上面的信息, 主飞行画面如图5所示。

除了PFD画面以外, 还设计了发动机参数界面, 用来显示发动机参数信息。同时设计了NVD (Navigation Display) 导航信息界面, 用电子罗盘指示当前飞机所飞行的磁航向角等, 其界面如图6所示。

3 结 语

该系统基本实现了增强视景系统的功能, 能够在不低于25 f/s的图像采集速率下, 同时采集4路图像传感器数据, 实时动态叠加飞行仪表信息, 以便明显提高飞行员态势感知能力。

参考文献

[1]HE Gang, FEYSREISEN Thea, WILSON Blake.Syntheticvision primary flight displays for helicopters[C]//2008Proc.of SPIE Enhanced and Synthetic Vision.Orlando, USA:SPIE, 2008, 6957:117-125.

[2]Texas Instruments.The TMS320DM642 video port mini-driver[R].USA:Texas Instruments, 2003.

[3]Texas Instruments.TMS320DM642 DSP external memoryinterface (EMIF) reference guide[Z].USA:Texas Instru-ments, 2004.

[4]张志涛, 梁光明.基于DM642的FLASH分页二级引导程序设计[J].现代电子技术, 2009, 32 (22) :210-212.

[5]Texas Instruments.TMS320 DSP/BIOS user′s guide[M].USA:Texas Instruments, 2002.

[6]鹿宝生, 陈启美.基于TMS320DM642的视频采集驱动程序的实现[J].电子技术应用, 2005 (11) :66-68.

[7]胡涛, 刘颖娟.用类/微驱动模型开发DSP视频驱动程序[J].单片机与嵌入式系统应用, 2007 (5) :15-17.

[8]王强, 倪国强, 李江涛, 等.使用DSP/BIOS开发DM642图像融合系统驱动程序[J].激光与红外, 2006 (11) :1070-1075.

[9]Texas Instruments.TMS320DM642 video/imaging fixed-point digital signal processor[R].USA:Texas Instru-ments, 2004.

[10]KRAMER Lynda J, WILLIAMS Steven P, BAILEY Ran-dall E.Synthetic vision systems:operational considerationssimulation experiment[C]//Proc.of SPIE Enhanced andSynthetic Vision.Orlando, USA:SPIE, 2007, 6559:3-6.

DM642开发与应用 篇5

1 系统设计的总体框架

红外监控系统的设计,是基于DSP实现红外视频数据从前端光源红外探测器到上位机PC端的实时显示,主要由前端视频源、DSP服务器及PC客户端构成,如图1所示。系统前端红外图像采集设备采用FLIR公司的红外热成像仪,能够提供320×240像素的红外图像,数据经过DSP端采集模块、存储模块、压缩模块及网络模块的处理后,H.264数据流在以太网的另一端PC上位机端经过解码后,红外图像数据保存或显示于客户端。

2 系统模块设计与实现

2.1 视频采集模块

DM642无法处理红外热像仪输出的PAL模拟信号,所以本系统首先采用视频解码芯片TVP5150解码红外视频数据。TVP5150是TI公司生产的超低功耗(115 mW)、可编程高性能视频解码器[3]。本设计中TVP5150接收热像仪输出的红外图像PAL信号,输出8位4∶2∶2格式的的ITU-R BT.656视频解码信号,芯片与DM642的硬件连接如图2所示。

视频采集模块的驱动设计遵循TI公司针对DSP驱动开发专门定义的基于DSP/BIOS双层外设驱动模型[4],该模型从功能上分为与硬件无关的类驱动和硬件相关的微驱动,类驱动(Class Driver)负责互连顶层应用程序和微驱动[5]。而微驱动(Mini Driver)与具体应用到的外设相关,针对TVP5150芯片只需要简单修改EDC(External Device Control)函数即可控制视频解码芯片的打开、关闭以及控制。如调用mdBindDev函数对数据通道进行绑定;调用mdCreateChan函数完成通信对象的创建[6];调用mdDeleteChan函数删除通信对象并释放相关资源;调用mdControlChan函数向TVP5150发送控制命令等。

2.2 存储模块

系统采用两片共4M×64 b的动态随机存储器SDRAM存放视频数据[7],一片4M×8 b的FLASH存储程序。红外图像的压缩等处理均是在SDRAM内部完成的,FLASH芯片接收并存储通过仿真器JTAG接口下载到开发板的DSP程序,在系统启动时加载程序并运行。

(1)FLASH。本系统采用4M×8 b的Am29LV033C,DM642通过分别控制FLASH的片选信号、读使能和写使能,其与DM642的连接如图3所示。

(2)SDRAM。由于在整个图象处理过程中需要缓存大量的图像数据,而DM642芯片内部只集成了256 KB的SRAM,显然不能满足需求,TMS320DM642外挂两片SDRAM来扩展存储空间,保证了系统实时运行时,图像的缓存功能。SDRAM采用2M 64 b存储空间的HY57V643220,并与EMIF的CE0接口相接,如图4所示。

2.3 压缩模块

系统的视频压缩模块采用H.264技术对红外图像进行编码,加入了多模式宏块划分、高精度运动估计、整数变换与量化等诸多技术亮点[8]。设计采用调用H.264视频编码库h264enc.lib对红外图像进行处理,视频压缩流程如图5所示。

2.4 网络传输模块

TMS320DM642的网络通信接口由EMAC(Ethernet Media Access Controller)控制模块、EMAC模块与MDIO(Management Data Input/Output)模块3部分组成的[9]。本系统设计时采用Broadcom公司的BCM5221作为10/100Base-TX以太网收发器,与DM642连接如图6所示。

3 客户端解码器的设计

在上位机PC端的红外视频图像解码器是基于Windows环境下VC 6.0的基础类库MFC(Microsoft Foundation Classes)设计的[10],主要负责接收DSP网络模块发送来的红外图像数据码流,对码流进行解码并正确显示。解码器的界面如图7所示。

客户端解码器可在网络设置区域配置服务器端IP地址、子网掩码及默认网关等信息以便进行通信,并配置相应码率;客户端还集成了图像处理与录像的功能,图像增强采用直方图均衡方式对红外图像进行处理,录像时保存文件为*.264格式数据,方便对关键视频信息保存及回放。

4 系统测试及评价

红外监控系统的成像效果主要取决于红外热成像仪、压缩传输的嵌入式平台以及图像的接收与显示终端三部分,其中压缩与传输的嵌入式DSP平台H.264压缩比率以及网络传输速率成为本系统的主要评价指标。系统正常工作情况下测试了30 s,60 s和90 s三组时间下服务器与客户端的之间红外视频数据的平均传输速率,如表1所示。

MB

红外监控系统服务器与客户端的以太网平均传输速率为0.087 MB/s,又由热像仪输出红外图像分辨率为320×240,每秒钟原始图像数据量约为0.608 MB/s,估算系统压缩率约为7∶1。系统正常工作时客户端成像效果如图8所示。

5 结语

作为红外技术领域的重要应用,红外监控系统克服了传统视频监控系统的缺点。本文设计了以TMS320DM642为核心的嵌入式红外视频采集压缩传输平台,并且开发了配套解码与显示客户端软件,使得无论在视频处理芯片TMS320DM642还是在H.264视频编解码算法都体现了远程红外视频监控系统的技术亮点,系统工作稳定、图像还原质量较高、占用带宽低,以太网的平均传输率为0.087 MB/s,图像压缩率约为7∶1,达到了设计要求。

参考文献

[1]袁华,王召巴.红外探测技术的原理及发展前景[J].科技信息,2008,29(5):15-17.

[2]何伟,焦斌斌,薛惠琼,等.非制冷红外焦平面阵列进展[J].电子工业专用设备,2008,160(5):18-23.

[3]Texas Instruments.TVP5150PBS datasheet[M].USA:Texas In struments,2006.

[4]Texas Instruments.DSP/BIOS user's guide[M].USA:Texas In struments,2003.

[5]徐志伟,马登极,林峰,等.基于DM642的视频解码设备TVP5150驱动程序的设计[J].电子器件,2006,29(3):945-950.

[6]臧博,吴裕斌,曹丹华.基于GIO/FVID的DSP视频处理驱动程序[J].单片机与嵌入式系统应用,2006(6):27-30.

[7]刘洲峰,徐庆伟,朱亚伟.TMS320DM642为核心的视频图像处理器外围电路设计[J].现代电子技术,2008,31(14):167-169.

[8]王蒿,薛全,张颖,等.H.264视频编码新标准及性能分析[J].电视技术,2003,25(6):25-27.

[9]刘钊江,郑红,吴兴华,等.基于TI C6000系列DSP的网络开发研究[J].仪器仪表用户,2010,17(3):60-62.

DM642开发与应用 篇6

随着传像光纤束成像技术的快速发展及其相应的硬件成像平台性能的不断提高, 在嵌入式系统中实现基于传像光纤束的全实时超分辨率成像已经成为现实。采用高性能的数字信号处理平台, 不仅可实现基本的图像采集和图像输出, 更可以通过软件算法提高输出图像的质量。DM 64x是TI公司开发的高性能DSP, 其强大的数据处理能力和通道传送能力非常适合处理数据量大、传输速度高的传像光纤束成像算法处理[1]。本文针对DM 642的硬件结构特点及其指令执行流程并结合光纤图像处理中的具体问题, 提出了算法的优化设计方案。

1 像算法的实现

整个光纤束成像算法的主体思想是:先采集经过异形传像光纤束耦合传感器实现线阵至面阵转换而得的面阵形式的光纤束图像数据, 然后在DSP中将采集的面阵图像转换成线阵, 之后通过连续的水平扫描, 将各幅线阵图像拼接成一幅完整的扫描图像[2]。

由于现实中一根光纤只代表实际图像中的一个像素, 而在转换而来的面阵图像中一根光纤是由一个大约为9×9大小的图像块来表示的 (图像的总分辨率为2 592×1 944) , 因此需要将光纤所包含的实际图像信息抽取出来, 即提取出每根光纤图像块中真正包含图像信息的点, 这个过程成为光纤中心位置的定标。DM 642主要完成的任务就是该定标过程[3]。整个定标算法的流程如下:

首先, 采用双模板极值滤波器对光纤中心进行粗略定位。所谓双模板滤波器就是指该滤波器由两级模板构成, 大模板中的元素不是单个像素, 是由多个像素构成的小模板。依照光纤的物理特性, 本系统中滤波器的大模板和小模板皆为[3×3][4]其各自结构图如图1及图2所示。

通过先对小模板内的各个像素进行求和, 求得各个小模板的亮度和, 然后通过大模板对各个小模板的亮度和进行比较, 如果当前小模板的亮度和为9个小模板中最大者, 且9个小模板各自的亮度和的最小值大于某一阈值, 则认定该小模板位于光纤中心。经过滤波运算后可将每根光纤的中心确定于大约为5×5的图像块范围中。光纤出端部分结构局部放大图及其经过双模板极值滤波器处理后的图像如图3及图4图所示。

接着对上一步中得到的图像进行腐蚀和裁边技术处理。

之后, 对亮块进行Z字型搜索法, 即采用斜45°顺序搜索第一个根光纤的坐标。其算法示意图如图5所示。搜索到第一个光纤亮块后, 用该亮块的几何中心位置代表光纤的中心位置, 由此得到第一根光纤的坐标, 之后利用光纤的先验知识, 即光纤之间的距离为某一个阈值 (9个像素左右) 进行步进搜索, 由此可以得到整个面阵光纤图像中所有光线的位置坐标表。

最后, 按照位置坐标表对每一幅扫描的面阵光纤图像进行图像信息抽取, 将光纤束出端的一帧图像还原成原始目标图像中的一列并进行拼接, 实现空间变换。

2 硬件结构级优化

DM 642的片内采用两级Cache结构, 第一级由L1P和L1D组成, 数据访问只需一个时钟周期, 其中L1P大小为16kB, L1D大小16kB, 第二级L2是一个统一的程序/数据空间, 容量较大有256kB, 可以按一定比例配置为L2Cache和SRAM。访问速度较慢, 根据L2配置为Cache或SRAM的不同需8个或6个时钟周期[5,6]。

由于Cache在获取数据的时候会按照空间局部性原则将该数据周围的一部分数据一并读取到Cache中, 因此在所处理的数据的空间相关性比较大的情况下, 增大Cache可以很大程度上提高CPU的命中率, 性能可得到明显地提升, 但同时也会减小片内实际的可用空间[7]。

系统中由于算法运行时, 处理一行图像时需要相邻9行即9×2 592bytes大小的数据参与运算, 而且由于算法的需要还需在L2SRAM中开辟一个约为3×2 592bytes的缓冲区用于存放已处理完并将要回写至外部存储器的数据。除此之外为了提高L1P的命中率, 减少CPU等待时间还将常用的核心代码常驻于L2SRAM中。但综合另一方面考虑到算法中数据相关性比较大, 最终决定将L2分为128kBSRAM和128kBL2Cache。

由于上述Cache分配策略决定每次读取一帧图像的9行, 因此算法处理中会产生大量的数据块的搬移操作。

EDMA与QDMA都是C 6000中搬移数据效率最高的手段之一。QDMA申请一般经过5个周期后就可以被真正地发出。与此相比EDMA的申请需要在36个周期后才能被发出。但EDMA比QDMA多一个外部事件触发, 因此QDMA更适合完成CPU提出单独的突发性传输控制命令, 以便快速移动数据, 而EDMA则适合执行外部设备的周期性或重复性数据传输, 如Vport口的数据传输。

结合Cache的分配策略和EDMA与QDMA的传输特性, 本系统中采用一种基于QDMA的PingPong缓冲处理方式。

其主要流程为:在算法处理之前先提交一个将处理的数据块拷贝至Ping输入缓冲区的QDMA请求, 等到数据拷贝完成之后再提交一个将下一部分需处理的数据块拷贝至Pong输入缓冲区的QDMA请求, 同时DSP核开始对Ping输入缓冲区的图像数据进行处理, 由于QDMA传输数据的速度较CPU处理数据的速度快得多, 因此等到DSP核处理完Ping输入缓冲区的图像数据并将处理完的图像输出于Ping输出缓冲区时, Pong输入缓冲区的图像数据就已经准备完毕, DSP核就可以接着处理Pong输入缓冲区的数据, 同时再提交先将处理完的Ping输出缓冲拷贝至外部SDRAM再将下一次所需图像数据拷贝至Ping输入缓冲区的QDMA请求, 如此循环完成Ping Pong缓冲图像处理模式。其结构图如图7所示:

通过这种方式, CPU每次调用所需图像数据时, 图像数据都已经存放在片内RAM的指定缓冲区中, 可以有效提高Cache的命中率, 减少CPU堵塞时间并节省了从片外SDRAM读取图像数据的时间开销。

3 代码级优化

在整个算法过程中, 由于双模板极值滤波器算法每计算一个像素点就需要对该像素相邻的9×9的像素矩阵进行计算加上图像分辨率较大, 从而导致其运算量极为庞大, 占整个算法的60%以上, 因而将其作为主要的优化对象。

虽然DM 64X特有的LDNDW指令支持双字节读取, 但由于该算法运行一次需要9×9个像素参与, 且DM 64X只支持单字节运算, 因此每对一个像素进行算法处理就需要进行2×9次以上双字节读操作, 这将严重的降低算法的运行效率较低, 因此考虑将两个相邻9×9矩阵的运算合并在一起进行以提高读操作的利用率[8]。具体流程如下:

首先, 对相邻的九行数据分别使用两次LDNDW指令分别读取每一行中di×j到di× (j+7) 和di× (j+2) 到di× (j+9) (i为行, j为列) 两个双字大小的图像数据, 以下分别简称DWi1, DWi2。该操作结构如下所示:

这样的话就可以通过对DWi1, DWi2的各个单字进行操作得到这两9×9模板中任意一个小模板的和。例如左边的9×9矩阵中的M0和M1模板可表示如下:

以上这两个矩阵操作都可以通过对DWi1, DWi2的低位字使用DOTPSU 4点积指令来完成。

接着, 由于一个3×3单像素为8bit大小的图像矩阵的像素和可由一个16bit数来表示, 因此可以将两个9×9图像矩阵的相同位置的模板的像素和通过DM 642的打包指令PACK 2组合成一个32位数, 并由一个32位寄存器来存放。

最后, 通过对该32位寄存器进行算数指令操作就可以同时对两个模板进行算数处理。

3 试验结果

由于实际图像分辨率较大, 处理十分缓慢, 不利于优化效果的测试。因此在测试优化效果时, 每次测试运行9×2 592行, 即每次处理一行数据, 并通过多次测量并取测量结果的平均值。优化性能结果如表1中所示 (已对源程序进行文件级优化-O 3) 。

试验证明, 由于线性汇编代码剔除了C语言代码中函数调用所消耗的Cycles, 并针对算法作出了优化, 因而在性能上取得了较大的改进。由此可见以上优化方法是可行的。

4 结论

本文通过对在DM 642上实现的异形传像光纤束成像算法进行硬件结构级和代码级的优化, 使之能更好地适合成像算法的实现, 提高了系统的运行效率, 解决了算法处理中存储器与CPU之间数据传送的速度问题和指令效率较低等问题, 实现了实时成像。

参考文献

[1]李方慧, 王飞, 何佩琨.TMS320C6000系列DSPs原理与应用.北京:电子工业出版社, 2003

[2]朱翔, 方中华, 孙胜利.光纤传像系统中的耦合技术研究.红外技术, 2006;28 (5) :257—260

[3]安博文.超高分辨率异型传像光纤束中的空间变换.光电工程, 2006;33 (11) :83—87

[4]安博文.基于双模板极值滤波器的传像光纤束中的盲元消除.中国图象图形学报, 2007;12 (9) :1555—1557

[5]Texas Instruments.TMS320C6000DSP Cache User’s Guide.http://www.ti.com, 2003

[6]Texas Instruments.TMS320C64x DSP Two-Level Internal Memory Reference Guide.http://www.ti.com, 2004

[7]张永光, 张晓蕾, 徐健健.DM642图像数据传输的实现和优化.科学技术与工程, 2007;7 (17) :1671—1819

上一篇:课堂教学体系建构下一篇:小学体育与兴趣