Page 1 2, 25 iſ 4 iH) AS E. S. A: i: 2004 fie 8 R Matlab if Bh DSP it TS

仪
第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.