【技术实现步骤摘要】
本专利技术属于遥感图像处理领域,具体涉及一种基于MIC计算平台的NLM并行图像增强方法。
技术介绍
遥感图像去噪是遥感图像处理领域的关键技术,其在图像识别、图像分割以及复原等方面发挥着重要的作用。遥感图像去噪发展至今,涌现出很多优秀的去噪方法。从早期的基于邻域的平均去噪方法到后来的基于小波、多小波、轮廓波等的去噪算法,再到能够局部自适应的去噪方法。这些方法都是基于局部的去噪方法,所谓基于局部就是使用特定的核与带噪图像作卷积运算,主要利用的是像素点间的空间关系。图像去噪的过程就是将周围像素点灰度值通过某种加权方式进行求和,以估计目标像素点的灰度值。此估计值只受到目标像素周围其他像素灰度值的影响。图像去噪属于图像增强的一个重要方面,是遥感图像相关应用领域中重要的预处理步骤。目前,已有众多学者投入到对图像去噪的研究当中,并提出了很多去噪方法。但其中的大多数效果并不十分理想,去噪过程中很多图像的纹理细节被丢失掉。NLM(NonlocalMeans)算法由Buades等人于2005年提出,是一种全新的图像去噪方法,基于完全不同的去噪策略。这一方法基于图像的自相似性原理,充分利用了图像中广泛存在的冗余信息,利用图像片来计算图像中不同像素点间的相似度,更好地保护了图像的纹理结构信息,取得了显著的去噪效果。虽然NLM去噪性能效果良好,但具有较高的计算复杂度,在CPU中计算耗时较长。为了提升算法运行速度,近些年来对NLM图像增强算法进行加速主要从以下几个方面展开:有些是通过改进算法本身对NLM进行加速,有些是利用目前流行的高性能计算设备对算法进行加速。通常来说,后者往往能 ...
【技术保护点】
一种基于MIC计算平台的NLM并行图像增强方法,具体如下:首先,程序主体先在CPU执行,当运行至NLM核心代码段时,在其前面使用offload语句,表示接下来的代码段要在MIC卡执行;当程序执行到offload语句时,数据传入MIC端,MIC端开始执行并行任务并同时将控制权交回给CPU线程,CPU在得到控制权后继续执行下面的代码;CPU端的并行任务结束后,等待MIC端任务结束的信号,如果信号没有到达,则继续等待,如果到达则将数据从MIC端传出并继续执行下面的语句;然后,使用数据传输关键字,将运算时需要用的变量、指针传入MIC卡,并使用alloc_if、free_if关键字控制MIC端空间的开辟和释放;被MIC端调用的函数和变量在定义时需要标记为__attribute__((target(mic))),才能在被offload到卡上后正确执行;将现有NLM串行程序使用offload模式移植成为MIC程序的过程中,需要首先根据欲并行的部分,将串行程序改写为OpenMP并行程序,然后确定输入输出变量,书写相应的offload语句,将并行代码移植到MIC上。
【技术特征摘要】
1.一种基于MIC计算平台的NLM并行图像增强方法,具体如下:首先,程序主体先在CPU执行,当运行至NLM核心代码段时,在其前面使用offload语句,表示接下来的代码段要在MIC卡执行;当程序执行到offload语句时,数据传入MIC端,MIC端开始执行并行任务并同时将控制权交回给CPU线程,CPU在得到控制权后继续执行下面的代码;CPU端的并行任务结束后,等待MIC端任务结束的信号,如果信号没有到达,则继续等待,如果到达则将数据从MIC端传出并继续执行下面的语句;然后,使用数据传输关键字,将运算时需要用的变量、指针传入MIC卡,并使用alloc_if、free_if关键字控制MIC端空间的开辟和释放;被MIC端调用的函数和变量在定义时需要标记为__attribute__((target(mic))),才能在被offload到卡上后正确执行;将现有NLM串行程序使用offload模式移植成为MIC程序的过程中,需要首先根据欲并行的部分,将串行程序改写为OpenMP并行程序,然后确定输入输出变量,书写相应的offload语句,将并行代码移植到MIC上。2.如权利要求1所述基于MIC计算平台的NLM并行图像增强方法,其特征在于:所述数据传输关键字为in、out和inout。3.如权利要求1所述基于MIC计算平台的NLM并行图像增强方法,其特征在于:在CPU端调用offload语句时,在其结尾处使用signal关键字发出信号,MIC端将启动并开始执行其并行代码段,与此同时CPU端并不会因此而处于等待状态,而是继续执行自身代码,直到遇到offload_wait语句;此时CPU开始等待接收来自MIC的信号,当MIC函数执行完毕返回时,发送信号给CPU端,CPU端在接收到该信号后便可继续执行后面的程序;过程中用到nocopy、offload_transfer、signal和wait关键字;基于动态任务分配的MIC/CPU协同并行算法分别用两个线程进行管理CPU、MIC端的计算过程:在计算开始执行前,将输入图像以行为单位切分为多个数据块,计算开始时,CPU和MIC设备按分块顺序分别获取一个不同的数据块进行处理,待各自处理完成之后,无需等待,继续获取下一个未处理的数据块,直至所有数据块处理完成;两个线程的建立使用OpenMP的#pragmaompparallelfornum_threads(dev...
【专利技术属性】
技术研发人员:黄方,金都,李丽,兰波,朱强,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。