一种基于多核DSP的人体颈动脉超声成像算法的实现

2016-04-12 00:00:00冯超赵映重乐美卿刘相刘家树
现代电子技术 2016年2期

摘 要: 超声成像在医学影像诊断中有着广泛的应用,传统的医学超声成像设备体积大、功耗高,便携性及网络传输性都有一定的限制。对常用的超声成像原理及算法进行分析及仿真,在超声成像前端、中端、后端3个处理阶段中,重点介绍中端处理方法,并将常用的人体组织及血流信息超声成像算法移植到在TMS320C6472多核DSP上,实现了人体颈动脉样本数据的成像。

关键词: 多核DSP; B⁃Mode; 多普勒效应; 超声成像算法

中图分类号: TN919.8⁃34 文献标识码: A 文章编号: 1004⁃373X(2016)02⁃0082⁃03

Implementation of carotid artery ultrasound imaging algorithm based on multicore DSP

FENG Chao, ZHAO Yingzhong, LE Meiqing, LIU Xiang, LIU Jiashu

(School of Information Science and Technology, Xiamen University, Xiamen 361005, China)

Abstract: Ultrasound imaging is widely used in the medical imaging diagnosis. The portability and network transport properties of the traditional medical ultrasound imaging equipment has limited due to its large size and high power consumption. The common ultrasound imaging principles and algorithms were analyzed and simulated. There are three stages: front⁃end, middle⁃end and back⁃end in ultrasound imaging processing. This paper highlights the processing method at middle⁃end. The popular ultrasound imaging algorithm for human tissue and blood flow information was transplanted to the TMS320C6472 multicore DSP, by which the human carotid ultrasound imaging was realized.

Keywords: multicore DSP; B⁃Mode; Doppler effect; ultrasound imaging algorithm

当前,超声成像技术在临床诊断中得到了广泛的应用。 随着医学成像技术的发展,要求成像分辨率提升的同时,相对较低的能耗也成了关注的焦点,如何在高性能与低能耗中间寻求恰当的平衡点成为研究热点。DSP处理器由单核发展到如今的多核、众核,运算性能有了大幅的提升,其特有的乘加运算单元,使其很适合于医学成像等信号处理运算量大的应用场合。TI公司推出的TMS320C647x系列多核DSP,最多包含6个C64x+ DSP核,每个核主频最高可达1.25 GHz,峰值计算能力可达到每秒4G次16⁃bit乘加运算,并具有多种高速互联接口。本文基于TMS320C6472多核DSP,对临床诊断上常用的超声成像算法进行了仿真与实现。通过B⁃Mode和Doppler处理算法实现人体血管组织及血流信息的超声成像。

1 超声成像系统的组成

一个完整的超声成像系统的基本组成主要包括超声波探头(传感器)、前端(ADC,DAC)、中端(波束形成与检波)、后端(图像处理与重建)、系统控制器及电源等[1],如图1所示。系统通常采用多通道超声换能器阵列作为超声波发射/接收源,采用合成孔径聚焦技术(Synthetic Aperture Focusing),利用模拟开关控制各个通道阵元依次单个发射及接收,并通过模拟前端将各个通道阵元的接收信号调理之后进行采样。利用DSP对不同阵元的采样结果进行延时叠加以重建二维成像空间每一点的回波幅度图像,即B⁃Mode超声成像。TMS320C6472 DSP作为核心处理器,主要根据回波信号进行图像重建工作[2]。采用合成孔径超声成像中的延时叠加(DAS)算法。首先通过空间中每一个像素点的坐标计算该点反射的回波到各个接收阵元的距离,然后根据回波到达各个阵元的时间(即“延时”),取这些阵元回波信号时间序列上相应的幅值进行叠加,由此得到每一个像素点的总回波幅值信号。将这些回波幅值信号归一化并以256阶(8 b)灰度进行量化,就得到了一帧图像。

图1 超声成像系统组成模块

在灰度B⁃Mode成像的基础上引入多普勒处理技术便可以对血流信息进行成像,既具有二维超声结构图像的优点,又同时提供了血流动力学的丰富信息。由于人体内的颈动脉分化程度高,边界轮廓清晰,便于数据的采集。其次,动脉壁厚和直径等参数可以反映一些重要疾病,对临床诊断有重要意义。所以选择颈动脉作为超声成像的实现对象。本文着重成像部分中端的研究与实现,将人体颈动脉采样数据保存成二进制文件以代替前端数据采集,该文件包括69帧前端采集数据,每一帧512×256个样本。在TMS320C6472多核DSP上对该样本数据进行B⁃Mode处理和Doppler处理以分别对血管壁组织和血流信息进行成像。

2 中端处理过程

超声成像系统的中端部分,主要完成:B⁃Mode处理算法(BPU)和多普勒处理算法(DPU)。B⁃Mode用于检查组织结构和器官的灰度图像;多普勒处理用于在灰度图像上叠加血流平均速度的空间分配的颜色编码显示。

2.1 B⁃Mode模型

B⁃Mode模型主要实现包络检测和对数动态压缩。对空间某点S,系统在发射超声信号状态下,假设阵列发射的是单一频率的平面波信号,如果设波的传播速度为c,中心频率为f0,对应的角频率为ω0,波数为k0,发射的信号s(t)可表示为[s(t)=ejωt]。设第n个阵元发射延迟时间为τn。在接收回波信号状态下,第m个阵元接收延迟时间为τm,合成聚焦表示为:

[S(r,θ)=n=0N-1m=0N-1sm,nt-2rc-τm,n =n=0N-1m=0N-1sm,nt-2rc-τm-τn]

第m个阵元发射时的延迟时间τm可由下式计算(式中[r≫xm]):

[τm=rm-rc=x2m+r2+2xmrsinθ-rc ≈xmrsinθc=m-N-12dsinθc]

而第n个阵元接收时的延迟时间τn可由下式计算:

[τn≈-xnsinθc=-n-N-12dsinθc]

以上计算的延迟时间是相对于阵元中心的相对延迟时间,绝对延迟时间应该加上一个常数[2rc]。实际成像过程中,对于每一点,将各个阵元接收回波时间序列的对应绝对延迟时间位置的幅值叠加并归一化,就得到了该点像素的灰度值。

为了使成像质量高,边缘清晰,采用SRAD(Speckle Reducing Anisotropic Diffusion)算法,即各向异性扩散去噪算法。其最大优点是保持均值,降低噪声方差,边缘定位,对人体组织有一个最佳的成像显示[3]。

假设x代表空间的横坐标,y为空间的纵坐标,V(x,y)为轴向的反射波的带通信号,物体的散射函数为T(x,y),发射超声波的脉冲响应为h(x,y);则

[V(x,y)=h(x,y)⊗T(x,y)]

所以[h(x,y)=h1(x)⊗h2(y)],其中[h1(x)]表示高斯权重正弦函数,可以写为:

[h1(x)=sin(k0x)e-x22σx2]

式中:[k0=2πf0c];[c]为声速;[f0]为超声发射频率;[σx]为超声发射波的脉宽[4];

[h2(y)]表示接收传感器对发射波的空间响应,其表达式如下:

[h2(y)=e-y22σy2]

式中:[σy]为波阵列的强度。

[T(x,y)=t(x,y)×G(x,y)]

式中:[t(x,y)]为回声发射分布;[G(x,y)]为均值为1,方差任意的高斯白噪声。由于[V(x,y)]为带通的,所以总可写成如下形式:

[Va(x,y)=V(x,y)+i*VH(x,y)]

式中:[VH(x,y)]为[Va(x,y)]的希尔伯特变换。

[A(x,y)=Va(x,y)]完成包络检测,得到回声信号的幅值,再将幅值进行对数压缩[log (A(x,y))],则完成了B⁃Mode成像算法部分。

2.2 Doppler效应模型

如果超声探头发射频率为[f0],接收频率为[fr],则:

[fr=f0(1+vccosθ1)1-vccosθ2]

式中:c为声速;v为血流速度。通常情况下[v≪c],所以有[fr=f01+vccosθ1+vccosθ2],多普勒频移为:

[fd=fr-f0=vccosθ1+vccosθ2]

如果[θ1≈θ2≈θ],则:

[fd=2vccosθ]

[v=cfd2cosθ]

由此式可以计算出成像物体的运动速度。

3 成像过程的DSP实现方法

TMS320C6472为同构多核DSP,其内部集成了6个相同的C64x+DSP核Core0~Core5,不同的DSP可以并行执行各自的算法部分,对于整个成像部分[5],做如下任务分配:Core0为主控核,主要进行数据I/O的操作及各个任务的统一调度;Core1实现BPU处理;Core2实现DPU处理,如图2所示。

图2 多核DSP的任务分配

Core0作为主控核,主要完成数据I/O操作,包括接收系统前端传递的数据,创建各个任务线程,将处理数据传递给Core1和Core2的线程进行数据处理,并将处理好的数据进行合并输出到系统后端做处理[6]。整个软件流程如图3所示。图3中给出了DSP处理模块的算法框图,展示了各个模块初之间的关系初始化顺序。中端初始化主要包括处理引擎开启OpenEngine()、创建消息队列CreatQueues()、建立数据分发任务SetupScatterTask()、建立数据聚集任务SetupGatherTask()、BPU及DPU数据簇处理CreateBpucluster()、CreateDpucluster()等任务。模块初始化之后,MidEnd_scatter Task()函数获取循环输入数据,然后利用MessageQ模块将数据传输到BPU模块和DPU模块,各自对数据进行处理之后,MidEnd_Gather Task()函数将数据进行整合,整合之后的数据再传输到后端做显示处理[7]。

图3 DSP算法实现框图

BPUcluster_Process()函数是BPU处理算法模块。BPU处理算法模块获取输入数据并初始化DMA信道,然后进行包络检测(EnvelopDetection()函数)和动态压缩(DynRangeCompression()函数),最后复原DMA信道,由于包络检测函数循环接收处理数据,对其进行包络检测处理之后,将其中间结果存放到外部缓存中,然后动态压缩函数(同样是循环获取处理)从外部缓存获取数据,在数据处理结束后,数据会存放到输出缓存中等待MidEnd_Gather_Task()获取[8]。DPUcluster_Process()函数是DPU处理算法模块。主要计算人体血管的血流信息,包括DPU_dpuIQtoAccorrPows()函数函数计算功率信息,DPU_dpu CalcVelVar()函数计算平均速度,而DPU_dpuWallfiltercolor()则实现了对血管组织壁的滤波,去除血管壁组织的干扰[9]。

4 结 语

前端数据经过BPU的B⁃Mode成像和DPU的Doppler成像,分别得到了血管壁组织和血流信息,再将其整合从而得到动脉血管的成像,如图4所示。图4(a)为超声前端原始数据以BMP图像格式呈现,图4(b)为超声成像仿真图像,从中可见颈动脉血管。通过以多核DSP为超声成像的核心,未来结合嵌入式技术,从而有望将传统的超声成像设备便携化、低功耗化,大大提高超声临床诊断的灵活性,扩展其应用范围。

图4 成像结果

参考文献

[1] 骆国丽,张学健,肖亮.基于多核DSP的超声成像的高速数据传输[J].计算机工程与设计,2014,35(9):3024⁃3028.

[2] 肖亮,张学健.基于多核DSP的超声成像处理算法的并行实现[J].电子技术应用,2013,39(6):27⁃30.

[3] 王明华,汪晓光.基于双DSP的彩色血流显示实验系统[J].北京生物医学工程,2004,23(1):67⁃69.

[4] 韩志会,郑驰超,彭虎.三维超声成像综述[J].中国医疗器械信息,2011,17(7):9⁃14.

[5] 闫鹏.基于嵌入式的便携式B超软件系统的设计与实现[D].成都:西南交通大学,2010.

[6] YU Yongjian, ACTON S T. Speckle reducing anisotropic diffusion [J]. IEEE Transactions on Image Processing, 2002, 11(11): 1260⁃1270.

[7] 石顺中.基于OMAP的超声三维成像系统设计与实现[D].哈尔滨:哈尔滨工业大学,2013.

[8] 彭虎.超声成像算法导论[M].合肥:中国科学技术大学出版社,2008.

[9] BAMBRE J C, DICKINSON R J. Ultrasonic B⁃scanning: A computer simulation [J]. Phys Med Biol, 1980, 25(3): 463⁃79.