当前位置: 首页 > 专利查询>厦门大学专利>正文

面向医学图像的多线程并行计算方法技术

技术编号:9765579 阅读:120 留言:1更新日期:2014-03-15 09:22
面向医学图像的多线程并行计算方法,涉及医学图像处理方法。是一种把多线程思想及编程方法应用于医学图像的图像处理优化方法。在支持超线程或者多核技术的处理器上,利用处理器上的硬件资源用软件进行多线程编程。首先将需要处理的医学图像划分为可独立处理的图像块并对图像块分组,然后利用多线程技术同一时刻在不同处理器的不同内核中同时运行多个线程,之后让每个线程分别执行由原图像分出来的相对平均工作量的图像块分组,对原图像处理任务集进行并行处理,直到所有线程处理完成之后,最后将处理结果进行汇总后输出。整个多线程并行计算可以提高图像处理的执行效率,达到加速计算的目的。

【技术实现步骤摘要】

本专利技术涉及医学图像处理方法,尤其是涉及一种。
技术介绍
医学图像(包括磁共振图像、计算机断层扫描图像和超声图像等)处理在医学影像科学和临床实践中有着重要作用。随着图像处理技术的发展和人们对医疗健康的日益关注,希望医学图像处理的运行时间降低。超线程和多核技术的出现,为加速医学图像处理提供了可能。1971年,英特尔推出的全球第一颗通用型微处理器4004,由2300个晶体管构成。当时戈登摩尔就提出后来被业界奉为信条的“摩尔定律”——每过18个月,芯片上可以集成的晶体管数目将增加一倍。因为在一块芯片上集成的晶体管数目越多,意味着运算速度即主频就更快。然而,2005年,当主频接近4吉赫时,英特尔和美国先进微电子器件公司发现,速度也会遇到自己的极限:那就是单纯的主频提升,已经无法明显提升系统整体性能。后来便相继出现了超线程技术和多核处理器技术。2002年2月,英特尔公司在其推出的代号为Prestonia的130nm新款至强处理器中首次采用了超线程技术。超线程技术利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器核都能使用线程级并行计算,进而减少中央处理器的闲置时间,提高中央处理器的运行效率,同时也兼容多线程操作系统和软件。与此同时,国际商业机器公司于2001年10月发布了世界上首款多核处理器一名为Power4的双核精简指令集处理器,它将两个64位的Power个人电脑处理器集成在一颗芯片上。对于一个处理器拥有多微处理器核的多核处理器,可以将两个或更多的独立处理器核封装在一个集成电路芯片中或者在一块主板上集成多个芯片。超线程和多核处理器技术发展至今,已经广泛使用于普通个人电脑机上。因此,充分利用我们可用的计算机,设计多线程并发执行程序,提高计算机程序效率和资源利用率显得尤其重要。
技术实现思路
本专利技术的目的在于提供基于超线程和多核处理器技术的。本专利技术包括以下步骤:I)将源图像分解,分成可以独立处理的至少2个小图像块,达到把原图像的处理划分成一个大小为Q的子任务集合;2)使用C语言或者开放式多处理(Open Mult1-Processing, OpenMP)语言中的多线程编程技术创建N个线程,然后把由步骤I)分解得到的Q个子任务集合均分给N个线程去执行,每个线程执行Q除以N个子任务个,当Q不能整除N时,最后一个线程可能例外,执行Q对N取余个子任务,其中Q为总任务数,N为程序创建的线程数;3)执行过程中若存在对所有图像块的汇总操作,可使用如下两个方法进行多线程同步:(I)使用临界区等多线程加锁技术,实现各个线程的资源同步进行汇总;(2)保存线程处理结果数据于父进程中,待所有进程结束之后再进行汇总。在步骤I)中,所述将源图像分解,分成可以独立处理的至少2个小图像块的具体方法可为:首先将源图像进行边界扩展,对扩展后的源图像以每个像素为起点,将源图像分成小图像块,达到把原图像的处理划分成一个大小为Q的子任务集合。为了减少线程创建、管理及同步过程中所消耗的中央处理器资源,设计和编写多线程处理方法时应尽量避免资源同步及线程多批创建情况的发生。本专利技术在医学图像(包括磁共振图像、计算机断层扫描图像和超声图像等)处理中充分利用中央处理器的超线程和多内核,实现医学图像处理中线程级的并行计算,将具有独立性的子任务分配到多个线程中并发执行,减少医学图像处理程序的执行时间,提高程序运行效率,达到优化医学图像处理程序的目标。【附图说明】图1为串行任务集的处理流程示意图。图2为并行任务集的处理流程示意图。图3为多线程并行计算的线程个数与程序执行时间曲线图。在图3中,曲线的第一个点为串行程序处理所需的时间,实验条件为Wind0ws7操作系统、4核处理器、8个超线程、主频3.4吉赫兹、执行基于非局部图像算子的磁共振图像处理,其参数情况如表3。【具体实施方式】本专利技术实施例包括以下步骤:I)将源图像分解,分成可以独立处理的多个小图像块(例如表I所示,首先将64x64图像进行边界扩展,对扩展后的图像以每个像素为起点,将源图像分成4096个8x8的小图像块),达到把原图像的处理划分成了一个大小为Q的子任务集合;表I本文档来自技高网
...

【技术保护点】
面向医学图像的多线程并行计算方法,其特征在于包括以下步骤:1)将源图像分解,分成可以独立处理的至少2个小图像块,达到把原图像的处理划分成一个大小为Q的子任务集合;2)使用C语言或者开放式多处理(Open?Multi?Processing,OpenMP)语言中的多线程编程技术创建N个线程,然后把由步骤1)分解得到的Q个子任务集合均分给N个线程去执行,每个线程执行Q除以N个子任务个,当Q不能整除N时,最后一个线程可能例外,执行Q对N取余个子任务,其中Q为总任务数,N为程序创建的线程数;3)执行过程中若存在对所有图像块的汇总操作,使用如下两个方法进行多线程同步:(1)使用临界区等多线程加锁技术,实现各个线程的资源同步进行汇总;(2)保存线程处理结果数据于父进程中,待所有进程结束之后再进行汇总。

【技术特征摘要】
1.面向医学图像的多线程并行计算方法,其特征在于包括以下步骤: 1)将源图像分解,分成可以独立处理的至少2个小图像块,达到把原图像的处理划分成一个大小为Q的子任务集合; 2)使用C语言或者开放式多处理(OpenMult1-Processing, OpenMP)语言中的多线程编程技术创建N个线程,然后把由步骤I)分解得到的Q个子任务集合均分给N个线程去执行,每个线程执行Q除以N个子任务个,当Q不能整除N时,最后一个线程可能例外,执行Q对N取余个子任务,其中Q为总任务数,N为程序创建的线程数...

【专利技术属性】
技术研发人员:屈小波沈前进李淇越郭迪陈忠
申请(专利权)人:厦门大学
类型:发明
国别省市:

网友询问留言 已有1条评论
  • 来自[美国加利福尼亚州圣克拉拉县山景市谷歌公司] 2015年01月13日 19:33
    并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。所谓并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
    0
1