仪 第2 5卷第 4期增刊 器 仪 表 学 报 2 004年 8月 Ma t l a b辅助 DSP进行图像处理应用开发‘ 徐欣锋‘ 董贵华“ ‘ ( 中国科学院长春光学精密机械与物理研究所空间部 长春 130031) “ ( 中国环境监测总站生态室 北京 100029) 摘要 为了发挥 Ma t l a b强大的数据处理能力, 弥补 DSP集成开发环境( ( I DE) 的图形显示能力的不足, 提出了一种在二者之 间传递数据的辅助开发方法 , 既能发挥 Ma t l a b的优势来评估图像 , 又能保证 DSP中的代码效率 , 克服了二者之间转换程序 的不足, 为应用系统的总体设计提供帮助 , 缩短了 DSP软子 发周期 关键词 图像处理 、 a t a 集成开发环境 Mat l ab Ai d DSP i n Expl oi t i ng I mage- Pr oc e s s i ng Appl i c at i on Xu Xi n f e ngl Do ng Gu i hua 2 ( Chan gc hun I ns t i t u t e o f Opt i c s, Fi n e Me c han i c s a nd Ph ys i c s, Cha n gc hu n 130 0 31, Chi n a) ' ( Chi n a En vi r o n me n t al Mo n i t o r i ng Ce nt e r, Be i j i n g 10 0 0 29, Chi n a) Ab s t r a c t To a pp l y t he a d v a n t a g e o f Ma t l a b i n pr o c e s s i ng da t a a nd ma ke up t he s h o r t a g e o f s ho wi n g i ma ge i n I DE o f DSP, a wa y o f t r a ns f e r r i ng i ma g e d a t a be t we e n Ma t l a b a nd DSP ha s be e n i n t r o d uc t e d. Thi s me t ho d c a n u s e t he s up e r i o r i t y o f Ma t l a b t o e v a l ua t e pr o c e s s e d i ma ge ' s q ua l i t y, a nd c a n e n s ur e DSP' s c o d e e f f i c i e n c y. Th us, i t o v e r c o me s t he d e f i c i e n c y i n t he o t h e r me t h o ds o f t r a ns f o r mi n g p r o gr a m i n Ma t l a b t o t ho s e i n DSP, a nd a s s i s t s us e r t o debug DSP' s i ma ge - pr oc e s s i ng s of t wa r e i n s hor t t i me. The pr a c t i c al i t y of t hi s me t hod ha ve be e n va l i da t e d by pr ac t i c e. Ke y wo r d s I ma g e p r o c e s s i ng Ma t l a b DSP I DE 结合起来, 充分利用 Ma t l a b的特长, 有力地促进各种 1 引 言[ I 〕 图像处理算法在DS P中的实现。目前, Ma t l a b +DS P 工具包 已经在一些 I DE中出现, 如 Ma t hWor ks公司 随着半导体制造工艺的发展和计算机体系结构等 方面的改进, DSP芯片的功能越来越强大, 速度更快、 体积更小并更省电, 在图像处理领域具有不可替代的 和TI公司联合开发的MATLAB Li n k f o r CCS De v e l - o pme nt To o l s。其辅助 DSP开发的方法是 : Ma t l a b程 序先被转换为 C程序, 再针对特定的 DSP型号、 DSP 优势和非常巨大的应用潜力。各 DSP生产厂家为便于 用户进行 DSP应用开发一般都提供 了集成开发环境 目标板, 编译成 DSP的汇编指令, 最后生成 DSP的可 执行代码。这种方法有其能够发挥 Ma t l a b特长的优 ODE), 如 TI公司的CCS( Co de Co mp o s e r St u di o)。但 点, 但因为在 Ma t l a b中编程实现 DSP中运算而存在 I DE按图形化方式显示图像数据的能力还较弱, 无法 致命性不足。首先, 这种方法得到的DSP代码效率( 主 快捷地对处理前后的图像整体质量进行 比较, 不能满 要指代码长度和运行速度) 很低, 只适用于单纯的算法 足DSP在图像处理领域中的开发要求。 Ma t l a b是一个 强大的分析、 计算和可视化工具, 特别适用于数字信号 处理算法的分析和显示。可以将 Ma t l a b与 DSP紧密 研究。因为无须了解具体的DSP硬件结构、 功能、 指令 和存储器配置, 很难对代码进行汇编级优化, 在产品开 发 中实用性很差, 更不适合实时性应用开发。其次, 本文系长春光机所青年创新基金资助项 目( Q0 3 A0 3 Z). 第 4期增刊 Ma t l a b辅助 DSP进行图像处理应用开发 Ma t l a b中的数据在内部是按 d oub l e类型进行计算, 而 DSP处理的图像多为 8 bi t ( 2 5 6色) 像素, 用 Ma t l a b编 制 DSP程序不可避免存在计算误差, 对定点 DSP类 否关系着工程项 目的最终成败。 型更为不利。 文件( . 。 )中输人 笔者介绍另一种 Ma t l a b辅助 DSP开发图像处理 软件的途径 :由 Ma t l ab向 DSP传递图像数据而非算 法程序 , 由DSP向 Mat l a b反馈处理后的数据。即可以 在 DSP中直接调整代码效率, 又可以在 Ma t l a b中快 速评估图像质量, 发挥了二者的特长, 避免了 Ma t l a b 程序转换成 DSP程序的不足。 2 Mat l ab辅助 DSP进行开发的过程 启动 CCS, 打开正在开发的工程文件( . p j t ), 若项 目中还没有为图像数据准备好载入空间, 可在主程序 #pr a gma DATA_SECTI ON ( my d a t a, " s e c t_my " ); u n s i g n e d c ha r f a r my d a t a[ Nu m' s v a l u e ]; 其中的数组 my d a t a的长度是前面 Ma t l a b计算出的 Nu m 的值。需 要说 明的是,若作 为本数 据段名 的 " s e c t_ my” 并不存在,则有两种方式对其进行分 配。 ( 1 ) 若连接命令文件( .c md) 是人工写成的, 只需 在其 SECTI ONS部分加入一行 : SECTI ONS { 2. 1 图像数据准备 因为 CCS无法读取通用图像文件中的数据 , 所以 先 由 Ma t l ab读取图像文件 , 再将数据转化成 CCS能 够识别的格式。 首先 , 由 Mat l ab将一幅图像读人 生成的, 则需要新建一个文件 , 输人 : I =i mr ea d( ` moon. t i f '); 一 1 xxxxc f g. c md %适用的文件类型可通过 h e l p i mr e a d命令查看。 SECTI ONS 然后, 利用 Mat l a b强大的数据处理能力 , 将 图像 数据 I转换成 CCS的数据文件格式C ) Z [ s l, s 2]=s i z e( I ); %获得图像数据的体积。 Num=s1*s2/4 %显示将要转成的数据长度( 3 2 b i t = 4X 8 ui nt ), 数据 载入和导出DSP时要用到此值。 f i d=f ope n( ' d: \ TI \ My Da t a I n. da t ' , ' w' ); %打开要写人文件。 f pr i nt f ( f i d, ‘ 1 6 51 18 0 0 0 0 0 00 Oo o X \n' , s l*s 2 / s e c t my > SDRAM } ( 2 ) 若连接命令文件( xxx xc f g. c md) 是 DSP/ BI OS { s e c t_my>SDRAM } 保存成. c md类型, 然后将 xxxx c f g. c md从工程中移 出, 将新建的连接命令文件加入。 进行编译即可完成数据存储空间准备。 2. 3 DS P调入图像数据并对其进行运算处理 经过前两步的准备, CCS将图像数据载人 DSP的 条件 已经成熟 。 通过 CCS的 Fi l e - > Da t a - > Lo a d菜单命令打开 4); My Da t a I n . d a t文件, 并告知其将要载人的存储空间起 %写人文件头, 各部分含义见〔 2 ] , 而数据长度要表达成 始地址( my d a t a) 和数据长度( Num)。可以利用CCS提 供的查看存储器工具来判断载人是否成功。有了图像 数据就可运行包含某种算法的 DSP程序, 对 my d a t a 数组进行处理, 并监测算法的运算性能指标, 为以后制 定总体方案和改进程序或算法提供依据。 2 . 4 DS P输出处理后的图像数据 CCS虽然可以检测 DSP的代码效率, 但无法对图 像质量进行评估 , 所以有必要将处理后的数据输出给 Ma t l a b, 利用后者的优势完成评判工作。 通过CCs的Fi l e - > Da t a - >S a v e菜单命令很方便 地将图像数据保存为. d a t文件, 不妨将文名设为 My - Da t a Out . d a t, 并选择 I n t e g e r(二. da t ) 保存类型( 经比 较发现 I n t e g e r较 He x类 型更适合后续 Ma t l a b处 1 6进制 。 f or i = 1: 4: ( sl二s2一 3) f pr i nt f ( f i d, ’ O x%0 2 Xo o 0 2 Xo o 0 2 Xo o 0 2 X\n' , d o ubl e ( I G+3: 一 l: i ))); %写成 CCS数据格式, 注意像素顺序。 end f cl os e( f i d); %关 闭文件 将以上命令行保存为 I ma g c To Da t . m文件, 以后只需 调用此文件名即可一次性完成以上操作。 2 . 2 DS P中存储空间的准备 DSP的存储空间是非常宝贵的, 对其合理分配与 仪 器 仪 理)。若上一步DSP运算仍将处理数据放回原处, 那么 存储空间起始地址和长度仍为my d a t a和 Numo 2. 5 Ma t l a b导入处理后数据并分析结果 因为CCS保存的数据不是通用图像文件类型, 所 以此次 Ma t l a b采用了不同于第一步的读取方式, 但同 表 学 第 25卷 报 某 航 天遥 感 器 星上压缩预研项 目 正处 于总 体方 案设 计。硬件部分计划采 用 TI公司的顶级产 样方便快捷 。 通过 Ma t l a b的 Fi l e - >I mp o r t Da t a菜单命令 , 选 品 C6 416 DSP芯 片 ; 择 My Da t a Ou t . d a t文件, 即可将数据导人成一维数 同的压缩 算 法进 行 组, 其名称和文件名一样。接下来将 3 2 b i t数据拆成 4 比较 , 从 中选择较符 个 ui nt 8并将每个像素放回原图对应位置即可 : 合 实 际技 术 要求 的 1 2 = myda t a out ( 2, e nd, 1); %去除第一行文件头数据和无用的列。 算法。采用这里所述 Ma t l a b辅 助 DSP开 1 2( f i nd( I 2< 0))=I 2( f i nd( I 2< 0))+2一32; 发 图像 处 理 产 品 的 %将有符号数转化成无符号数。 方 t mp(:, 4)=f i x( I 2./( 2一24)); TM S320C6416 DSK t mp2=mod( I 2, 2一24); 目标 板较 便捷 真实 t mp(: , 3)二f i x( t mp2. /( 2^ 16)); t mp2=mod( t mp2, 2一1 6); 地 预测 了不 同压缩 算 法 所 能 达到 的实 t mp(: , 2) = f i x ( t mp2./( 2一8)); 时性、 失真率和压缩 t mp2=mod ( t mp2, 2一8); 比( 算法之间的性能 比较将另文刊出), 为方案抉择提供了帮助。 t mp(:, 1)二t mp2; 软件部 分需 要 对 不 法, 结 合 图 1 图像数据流程 %将 32 bi t数据拆成 4个 uni t 8数据。 I r=r e s ha p e ( t mp' , s q r t( 4‘l e ngt h ( I 2) ), s q r t(4* l e ngt h( I 2))); 0 0 将像素放回原图像的相应位置。 i mshow Or); %显示处理后的图像。 将图像显示出来只是最简单的评估手段 , 还可以 运用 Ma t l a b强大的数据分析能力 ,比较处理前后的数 据 I和 I r, 针对各种图像质量标准进行统计, 为改进 DS P程序或算法提供依据。将以上步骤保存为 Da t - To I ma g e . m文件供再次评估 DSP算法程序时一次性 调用 。 4 小 结 DSP芯片因其 自身的高性能而在图 日益发展的 像处理领域具有广阔的应用前景。CCs的图形显示能 力还较差, 无法满足产品开发周期越来越短的要求, 利 用数据处理能力非常强大的 Ma t l a b来帮助开发势在 必行。这里所述的在 Ma t l a b和 DSP之间传递图像数 据的方法较文献 1转换程序的方法有着更大的通用 性, 能够发挥 Mat l a b的特长 , 保证 DSP的代码效率 , 克服了后一种方法的不足。经实际应用证实笔者所述 方法能够快速为制定总体方案提供多种性能指标, 明 显缩短产品的软件开发周期 。 3 应 用 前文介绍的各个步骤对不同的图像种类( 如医学 图像、 遥感图像等) 和不同的图像处理算法( 如压缩类、 除噪类、 增强类等) 都是通用的、 可移植的, 只要第一次 使用时完成了, 以后调试按顺序调用即可, 其流程如 图 1。 参 考文献 李真芳 , 苏涛, 黄小宇. DSP程序开发.西安 : 西安电子科 技大学出版社, 2 0 0 3 . 4-7 . 李方慧, 王飞, 何佩现. TMS3 2 0 C6 00 0系列 DSPs原理与 应用 : 2 "e d. 北京 : 电子工业出版社, 2 00 3 .1 26 - 1 2 7 . 张志涌. 精通 MATLAB6 . 5版.北京 : 北京航空航天大学 出版社, 20 0 3.
© Copyright 2026 Paperzz