摘 要: 基于通用GPU并行計(jì)算技術(shù),,結(jié)合遙感圖像數(shù)據(jù)融合處理特點(diǎn),利用NVIDIA公司的CUDA編程框架,,在其 GPU平臺上對BROVEY變換和YIQ變換融合算法進(jìn)行了并行研究與實(shí)現(xiàn),。實(shí)驗(yàn)結(jié)果表明,隨著遙感圖像融合算法的計(jì)算復(fù)雜度,、融合處理的問題規(guī)模逐漸增加,,GPU并行處理的加速性能優(yōu)勢也逐漸增大,GPU通用計(jì)算技術(shù)在遙感信息處理領(lǐng)域具有廣闊的應(yīng)用前景,。
關(guān)鍵詞: 遙感圖像融合,; GPU; 并行,; CUDA,; 優(yōu)化
隨著遙感傳感器技術(shù)的發(fā)展,獲取遙感數(shù)據(jù)的方式已經(jīng)由單一可見光模式發(fā)展成多種傳感器模式,。每一種傳感方式獲取的數(shù)據(jù)信息相對單一,,融合不同傳感方式獲取的數(shù)據(jù)信息可以有效提高數(shù)據(jù)信息量,提供更為精確的遙感圖像信息,。
POHL C和GENDEREN J L[1]對圖像融合給出了如下定義:通過特定算法將兩幅或多幅圖像合成一幅新的圖像,。圖像融合可以分為像素級、特征級和決策級3個層次,,其中像素級融合需要處理的數(shù)據(jù)量最大,計(jì)算過程也最復(fù)雜,。隨著遙感圖像的時間、空間和光譜分辨率逐步提高,,融合算法處理結(jié)果的精度要求同時在逐步提高,,導(dǎo)致圖像融合的處理速度需求逐步增大,計(jì)算量大,、計(jì)算過程復(fù)雜的遙感圖像融合在處理速度上面臨著新的問題與挑戰(zhàn),。近幾年來,,基于GPU的異構(gòu)平臺在通用計(jì)算領(lǐng)域得到快速發(fā)展,已經(jīng)在許多方面得到了有效應(yīng)用[2-4],,為遙感圖像融合快速處理技術(shù)研究提供了新的思路,。
結(jié)合CPU-GPU異構(gòu)平臺面向通用計(jì)算領(lǐng)域的性能優(yōu)勢,針對遙感圖像融合面臨的處理速度問題,,通過分析圖像融合處理過程的特點(diǎn),,將像素級融合的BROVEY變換和YIQ變換融合算法在基于GPU平臺上進(jìn)行了并行研究與實(shí)驗(yàn),獲得了突出的性能,。
1 研究背景
1.1 CUDA編程模型
NVIDIA公司的CUDA[5]語言是基于C語言的擴(kuò)展,,主要使用API調(diào)用底層功能進(jìn)行處理與計(jì)算,使熟悉C語言的編程人員能夠快速運(yùn)用CUDA開發(fā)通用計(jì)算程序,。在CUDA結(jié)構(gòu)中,, CPU端被稱為Host,GPU端被稱為Device,,采用SIMT(Single Instruction Multiple Thread)模式執(zhí)行程序[5],。用戶把可以放在GPU上并行執(zhí)行的程序組織稱為Kernel內(nèi)核程序。在CPU端執(zhí)行的程序稱為Host宿主程序,,控制Kernel的啟動,、加載或保存與GPU的通信數(shù)據(jù),以及執(zhí)行部分的串行計(jì)算,。Device端在執(zhí)行時創(chuàng)建很多的并行線程Thread,,線程組織成線程塊Block,而Block再組成網(wǎng)格Grid,。每個Thread執(zhí)行自己的程序Kernel,,Block內(nèi)的線程通過共享存儲器(Shared Memory)分享數(shù)據(jù)。并行線程通過GPU上的眾多計(jì)算內(nèi)核實(shí)現(xiàn)并行處理,,實(shí)現(xiàn)整個程序的性能加速[5],。
1.2 兩種典型的像素級融合算法
遙感圖像融合在遙感圖像配準(zhǔn)基礎(chǔ)上進(jìn)行,待融合的兩幅遙感圖像具有相同大小,,每個像素點(diǎn)的融合或是獨(dú)立執(zhí)行,,或者只需要少量周圍像素點(diǎn)數(shù)據(jù)協(xié)助執(zhí)行。
1.2.1 BROVEY變換融合算法
BROVEY變換融合算法[6]是一種基于色度的變換,,屬于彩色空間的方法,。它是將多光譜的色彩空間進(jìn)行分解得到色彩與亮度,再用其全色圖像進(jìn)行計(jì)算,。這種算法像素點(diǎn)彼此單獨(dú)執(zhí)行,,具有良好的并行性,算法執(zhí)行簡單,,在保留了較多光譜信息的同時,,也具有較快的處理速度。
1.2.2 YIQ變換融合算法
YIQ顏色系統(tǒng)是一種用于電視信號傳輸NTSC制式的彩色編碼系統(tǒng),。其中,,Y對應(yīng)亮度信息,I,、Q分量反映圖像與硬件相關(guān)的彩色信息,。YIQ變換融合算法[7]屬于彩色空間的方法,計(jì)算較為復(fù)雜,,像素點(diǎn)在變換到Y(jié)IQ分量后,,需要使用直方圖匹配,具有一定的并行性,。
2 并行設(shè)計(jì)及優(yōu)化實(shí)現(xiàn)
2.1 優(yōu)化策略
2.1.1 數(shù)據(jù)異步傳輸
遙感圖像融合CUDA并行計(jì)算程序在CPU-GPU異構(gòu)平臺上執(zhí)行,,該平臺上CPU與GPU工作任務(wù)不同。CPU為GPU準(zhǔn)備執(zhí)行數(shù)據(jù),,同時執(zhí)行邏輯控制等復(fù)雜事務(wù),。CPU加載數(shù)據(jù)時,采用同步方式啟動傳輸指令,;傳遞數(shù)據(jù)時,,CPU處于空閑狀態(tài),計(jì)算資源不能得到充分利用,。優(yōu)化時CPU采用異步方式傳輸數(shù)據(jù),,啟動傳輸指令后直接進(jìn)行后續(xù)事務(wù)處理,使CPU執(zhí)行與加載數(shù)據(jù)重疊,,提高資源利用率,。
2.1.2 訪存優(yōu)化
GPU線程對全局存儲器(Global Memory)進(jìn)行一次訪存需要400~600個時鐘周期,對共享存儲器(Shared Memory)、寄存器(Register)等快速存儲部件訪存一次只需要4個左右的時鐘周期,。優(yōu)化時充分利用GPU顯存中的多層次存儲部件,,發(fā)揮快速存儲部件讀取數(shù)據(jù)優(yōu)勢,最大化提高執(zhí)行性能,。
2.2 融合算法的CUDA并行實(shí)現(xiàn)
綜合融合算法CUDA優(yōu)化策略,,進(jìn)行融合算法CUDA程序并行設(shè)計(jì)與實(shí)現(xiàn)時,重點(diǎn)研究以下問題,。
2.2.1 線程塊參數(shù)與網(wǎng)格參數(shù)的設(shè)置
CPU-GPU異構(gòu)計(jì)算模式中,,每個線程塊只能擁有有限線程數(shù),每個流處理單元SP最多可同時執(zhí)行256整數(shù)倍線程,根據(jù)遙感圖像數(shù)據(jù)以二維方式組織的特點(diǎn),將塊Block設(shè)置為16×16二維形式,,每個塊有256個線程,,使每個SP單元能夠滿負(fù)載執(zhí)行,最大限度地提高資源利用率,。設(shè)計(jì)實(shí)現(xiàn)時,,線程網(wǎng)格大小的設(shè)置與圖像大小有關(guān),,網(wǎng)格的寬度設(shè)置成(imagewidth+dimBlock.x-1)/dimBlock.x,高度設(shè)置成(imageheight+dimBlock.y-1)/dimBlock.y,保證線程塊是一個整數(shù),。線程塊規(guī)模與遙感圖像規(guī)模有關(guān),,與GPU處理核心數(shù)量無關(guān)。這樣同一問題能夠在不同型號的GPU上執(zhí)行,,形成CUDA并行程序良好的可移植性,。
2.2.2 線程網(wǎng)格規(guī)模大于圖像規(guī)模
令i為線程網(wǎng)格寬度索引號,j為線程網(wǎng)格高度索引號,,imagewidth為圖像寬度,,imageheight為圖像高度。通過加入if(i<imagewidth&&j< imageheight)語句控制線程執(zhí)行對應(yīng)像素點(diǎn),??請?zhí)行線程最多可以為255×I+255×J-255×255個,其中,,I是線程網(wǎng)格的寬度,,J是線程網(wǎng)格的高度。與具有的大量執(zhí)行線程相比,,空執(zhí)行線程占很小比例,,幾乎不需要執(zhí)行時間。與并行加速獲取的提升時間相比,,空執(zhí)行少量線程浪費(fèi)的時間可以忽略,。
3 實(shí)驗(yàn)與結(jié)果分析
實(shí)驗(yàn)硬件為:Inter(CR) Core(TM) i5四核2.67 GHz CPU,2 GB內(nèi)存,NVIDIA GeForce GTX 460 GPU,,1 GB顯存,,336個SP計(jì)算單元。操作系統(tǒng)為Linux Ubuntu 10.10,,串行程序?yàn)镃語言實(shí)現(xiàn)的標(biāo)準(zhǔn)程序,。融合的圖像是IKONOS掃描北京故宮的遙感衛(wèi)星圖像。
(3)在相同的計(jì)算復(fù)雜度下,,圖像規(guī)模使GPU計(jì)算核心執(zhí)行達(dá)到飽和時,,speedupexecute趨于穩(wěn)定甚至下降。但因?yàn)橛?jì)算資源的優(yōu)勢,,總加速性能仍有提升,。
從圖中可以看出,圖像規(guī)模(如256×256和512×512)小時, Pexecute小,算法計(jì)算復(fù)雜度的不同導(dǎo)致加速比出現(xiàn)不同情況,。因此,為進(jìn)一步提升加速性能,融合算法CUDA并行執(zhí)行需要最大化地提高Pexecute,。
從實(shí)驗(yàn)結(jié)果可以得到,隨著算法計(jì)算復(fù)雜度與問題規(guī)模的增大,加速性能逐漸增加,。實(shí)驗(yàn)表明,,GPU并行處理能夠很好地應(yīng)用于遙感圖像融合的算法,將GPU應(yīng)用到遙感加速處理領(lǐng)域具有很好的應(yīng)用前景,。
本文從遙感圖像融合處理背景出發(fā),,闡述了研究融合處理加速的意義,,然后針對近些年興起的CPU-GPU異構(gòu)加速平臺,,對BROVEY變換和YIQ變換遙感圖像融合算法進(jìn)行了CUDA并行優(yōu)化實(shí)現(xiàn)。研究表明,,GPU通用計(jì)算技術(shù)在遙感圖像融合領(lǐng)域具有廣闊的應(yīng)用前景,。
參考文獻(xiàn)
[1] POHL C, Van Genderen J L. Multisensor image fusion in remote sensing: concepts,methods and applications[J].International Journal of Remote Sensing, 1998,19(5):823-854.
[2] OWENS J, LUEBKE D,GOVINDARAJU N,et al. A survey of general-purpose computation on graphics hardware[J]. Computer Graphics Forum, 2007,26(1):80-113.
[3] GARLAND M, GRAND S, NICKOLLS J, et al. Parallel computing experiences with CUDA[J]. IEEE Micro, 2008,28(4):13-27.
[4] LAHABAR S, AGRAWAL P, NARAYANAN P J. High performance pattern recognition on GPU[J]. National Conference on Computer Vision Pattern Recognition Image Processing and Graphics, 2008:154-159.
[5] NVIDIA. NVIDIA CUDA compute unified device architecture,Programming Guide,Version 2.0.NVIDIA,2008.[EB/OL].http//www.nvidia.com/object/cude_home_new.html.
[6] GILLESPIE A R, KAHLE A B, WALKER R E. Color enhancement of highly correlated images-II. channel ratio and chromaticity transformation techniques[J]. Remote Sensing of Environment,1987,22:343-365.
[7] Dong Guangjun, Huang Xiaobo, Dai Chenguang. Comparison and analysis of fusion algorithms of high resolution Imagery[C].International Symposium on Photoelectronic Detection and Imaging: Related Technologies and Applications, Proceedings of SPIE, 2008,6625(66250H).