郝瑞華 魯 強(qiáng)
(中國石油大學(xué)(北京)計(jì)算機(jī)科學(xué)與技術(shù)系 北京 102249)
在大規(guī)模圖像可視化應(yīng)用中,往往涉及到數(shù)百M(fèi)B到數(shù)百GB的地形數(shù)據(jù)[1]。對(duì)要顯示的數(shù)據(jù)進(jìn)行繪制時(shí),則會(huì)產(chǎn)生龐大的運(yùn)算量。構(gòu)建圖像多分辨率金字塔索引是解決這一問題最有效的方法之一。如王文珊深入研究傳統(tǒng)的分層可伸縮編碼架構(gòu),提出了一種新的金字塔數(shù)據(jù)模型生成與壓縮的方法[2]。張?jiān)浦鄣忍岢鲆环N沿圖像紋理方向?yàn)V波的降采樣方法 TDFA(texture direction filtering ap?proach),可生成高質(zhì)量的空間影像金字塔[3]。曾志等利用集群對(duì)遙感影像并行處理算法進(jìn)行了優(yōu)化[4],但是圖像金字塔存在一個(gè)明顯的缺點(diǎn),即圖像金字塔只能存儲(chǔ)固定分辨率的地理圖像,不能讀取任意分辨率的圖像數(shù)據(jù)。當(dāng)顯示圖像分辨率與圖像金字塔中所存圖像分辨率不一致時(shí),就需要對(duì)圖像金字塔中最接近要顯示分辨率的圖像數(shù)據(jù)進(jìn)行重采樣。而傳統(tǒng)的重采樣方法是利用CPU進(jìn)行串行重采樣,對(duì)于較大的圖像塊,其重采樣速度較慢。雖然GPU能夠利用并行處理來加快圖像重采樣速度,如呂向陽分析了圖像的雙線性插值算法和立方卷積插值算法,給出了這兩種算法的GPU實(shí)現(xiàn)[5],但是在其重采樣過程中,圖像數(shù)據(jù)需要經(jīng)過主機(jī)內(nèi)存與GPU存儲(chǔ)之間的傳輸,影響重采樣效率。因而可以針對(duì)CPU和GPU自身的優(yōu)勢(shì),對(duì)CPU-GPU異構(gòu)計(jì)算模型進(jìn)行研究,Zhao J等設(shè)計(jì)了一個(gè)利用CPU-GPU平臺(tái)進(jìn)行遙感圖像融合的并行計(jì)算模型[6]。Ravishankar M等提出了一種跨GPU和多核CPU架構(gòu)進(jìn)行圖像處理的領(lǐng)域特定語言,允許編譯器處理冗長和易出錯(cuò)的任務(wù),同時(shí)為多個(gè)目標(biāo)體系結(jié)構(gòu)生成高效代碼[7]。Teodoro G等針對(duì)大數(shù)據(jù)集的高分辨率病理組織圖像設(shè)計(jì)了GPU-CPU計(jì)算平臺(tái)[8]。本文通過建立RECG模型根據(jù)圖像數(shù)據(jù)規(guī)模來評(píng)估在CPU和GPU中重采樣的效率,以決定合適的重采樣場(chǎng)所(CPU或GPU),便于CPU和GPU共存協(xié)作,各自發(fā)揮在圖像重采樣中的優(yōu)勢(shì),并在此基礎(chǔ)上分別設(shè)計(jì)了基于CPU和GPU的圖像數(shù)據(jù)緩存策略,有效地加快了圖像重采樣速度。
通過分析和對(duì)比基于CPU和GPU重采樣的方式,來建立選擇CPU或GPU進(jìn)行重采樣的評(píng)估模型,并給出評(píng)估算法。
2.1.1 算法流程對(duì)比
1)基于CPU進(jìn)行重采樣的算法流程如下:
根據(jù)指定的地理范圍,將接近所要求分辨率的圖像金字塔數(shù)據(jù)從外部存儲(chǔ)設(shè)備讀入主機(jī)內(nèi)存。利用指定的重采樣算法,對(duì)讀入主機(jī)內(nèi)存的圖像金字塔數(shù)據(jù)進(jìn)行重采樣。將重采樣后的圖像數(shù)據(jù)進(jìn)行顯示。具體過程如圖1所示。
圖1 CPU重采樣流程
2)基于GPU進(jìn)行重采樣的算法流程如下:
根據(jù)指定的地理范圍,將接近所要求分辨率的圖像金字塔數(shù)據(jù)從外部存儲(chǔ)設(shè)備讀入主機(jī)內(nèi)存。將讀入主機(jī)內(nèi)存中的數(shù)據(jù)傳輸至GPU存儲(chǔ)存儲(chǔ)。在GPU中利用指定的重采樣算法,對(duì)讀入的數(shù)據(jù)進(jìn)行重采樣。將重采樣的結(jié)果傳遞至主機(jī)內(nèi)存。具體過程如圖2所示。
圖2 GPU重采樣流程
2.1.2 對(duì)比分析
雖然GPU圖像重采樣速度快,但是GPU圖像重采樣比CPU圖像重采樣增加了主機(jī)內(nèi)存與GPU存儲(chǔ)之間數(shù)據(jù)傳輸?shù)倪^程。當(dāng)GPU進(jìn)行圖像重采樣時(shí),圖像數(shù)據(jù)在主機(jī)內(nèi)存與GPU存儲(chǔ)之間的傳輸時(shí)間和GPU圖像重采樣所用的總時(shí)間如果小于CPU圖像重采樣時(shí)間,則利用GPU進(jìn)行重采樣,反之則利用CPU進(jìn)行圖像重采樣。因此,在對(duì)圖像進(jìn)行重采樣時(shí),需要建立一個(gè)模型來評(píng)估不同數(shù)據(jù)規(guī)模和分辨率圖像利用CPU或GPU進(jìn)行圖像重采樣的效率。在此基礎(chǔ)上,為加快重采樣速度,根據(jù)圖像可視化特點(diǎn)設(shè)計(jì)緩存策略,將一部分圖像金字塔中的數(shù)據(jù)緩存在緩存中。當(dāng)進(jìn)行圖像重采樣時(shí),可減少圖像塊數(shù)據(jù)在不同類型存儲(chǔ)之間的讀取次數(shù),從而提高效率。
根據(jù)以上分析,設(shè)CPU重采樣時(shí)間為t(CPU),CPU對(duì)單個(gè)像素點(diǎn)進(jìn)行重采樣用的時(shí)間為t(sp),CPU對(duì)圖像金字塔數(shù)據(jù)進(jìn)行重采樣的總時(shí)間為T(CPU)。主機(jī)內(nèi)存與GPU存儲(chǔ)之間的數(shù)據(jù)傳輸時(shí)間為t(hd),GPU進(jìn)行重采樣時(shí)間為t(GPU),GPU存儲(chǔ)和主機(jī)內(nèi)存之間的數(shù)據(jù)傳輸時(shí)間為t(dh),GPU對(duì)圖像金字塔數(shù)據(jù)進(jìn)行重采樣的總時(shí)間為T(GPU),重采樣結(jié)果圖像的長寬為aw像素和ah像素,單個(gè)像素的通道數(shù)為n,重采樣之前的圖像長寬為bw像素和bh像素,重采樣的縮放倍率為s,GPU重采樣相對(duì)于CPU重采樣的加速比為λ,主機(jī)內(nèi)存與GPU存儲(chǔ)之間的數(shù)據(jù)傳輸速度為vi,GPU存儲(chǔ)與主機(jī)內(nèi)存間的傳輸速度為vo,則有:
GPU的重采樣總時(shí)間為數(shù)據(jù)在主機(jī)內(nèi)存和GPU存儲(chǔ)之間的傳輸時(shí)間和對(duì)圖像進(jìn)行重采樣的時(shí)間之和,如式(2)所示:
CPU對(duì)圖像進(jìn)行串行重采樣,則CPU重采樣的時(shí)間與結(jié)果圖像的大小成正比。則有:
根據(jù)式(1)和(3),則得到CPU重采樣的總時(shí)間為
由數(shù)據(jù)量與傳輸速度的關(guān)系,則數(shù)據(jù)在主機(jī)內(nèi)存和GPU存儲(chǔ)之間的傳輸時(shí)間為
數(shù)據(jù)在GPU存儲(chǔ)和主機(jī)內(nèi)儲(chǔ)之間的傳輸時(shí)間為
根據(jù)縮放倍數(shù)的關(guān)系則有:bw=aw/s,bh=ah/s,在式(5),用aw,ah,s替換bw,bh有:
根據(jù)加速比的關(guān)系,有t(GPU)=λ*t(CPU),根據(jù)式(3),將
分別用式(6~8)中的推導(dǎo)結(jié)果代替式(2)中的相關(guān)變量,則有:
設(shè)m為CPU和GPU重采樣總時(shí)間的比值,則m=(4)/(9),得到經(jīng)驗(yàn)公式:
在式(10)中,vi,vo,t(sp)是常量,與具體計(jì)算設(shè)備型號(hào)相關(guān),通過提前測(cè)試實(shí)驗(yàn)獲得。n表示通道數(shù),是一個(gè)常量,由圖像屬性決定。λ也是常量,也與具體具體設(shè)備型號(hào)有關(guān),通過擬合在同一圖像塊大小相同縮放倍率條件下的t(CPU)和t(GPU)數(shù)據(jù)可以得到。因此在式(10)中,只有縮放倍數(shù)s是個(gè)變量。因?yàn)閙表示CPU與GPU重采樣時(shí)間的比值,所以可以通過m的值來判斷是利用CPU還是GPU進(jìn)行重采樣。當(dāng)m>1時(shí),用GPU進(jìn)行重采樣,當(dāng)m≤1時(shí)用CPU進(jìn)行重采樣。因此,利用式(10)來判斷是使用GPU還是CPU進(jìn)行圖像重采樣。
在已經(jīng)建立的RECG模型基礎(chǔ)之上,建立圖像金字塔圖像塊的調(diào)度算法,以達(dá)到對(duì)金字塔圖像進(jìn)行重采樣的目的。
3.1.1 圖像金字塔模型
圖像金字塔模型是一種四叉樹結(jié)構(gòu),如圖3所示。
圖3 四叉樹格式
如圖3所示,圖像金字塔每一層都代表不同分辨率的圖像數(shù)據(jù),由圖像塊組成,可以按照四叉樹模型結(jié)構(gòu)對(duì)圖像塊進(jìn)行遞歸分解。
3.1.2 圖像金字塔圖像塊編碼
對(duì)于圖像金字塔的每一層,可以按照從左到右,從上到下的順序?qū)D像塊進(jìn)行編碼,則每一個(gè)圖像塊在圖像金字塔中的唯一索引為(l,tx,ty),其中l(wèi)為圖像塊所在的金字塔層數(shù),tx為圖像塊橫坐標(biāo),ty為圖像塊縱坐標(biāo)。如圖4對(duì)圖3中圖像金字塔第0層進(jìn)行編碼,灰色圖像塊的坐標(biāo)為(0,3,1)。
圖4 圖像塊編碼
3.1.3 像素點(diǎn)坐標(biāo)和圖像塊坐標(biāo)關(guān)系
如果已知金字塔圖像l層的一個(gè)像素點(diǎn)的坐標(biāo)為(px,py),圖像塊的寬和高為w,h,則此像素點(diǎn)在本層所在的圖像塊坐標(biāo)為
已知第m層的一個(gè)像素坐標(biāo)為(px,py),則此像素在第n層所對(duì)應(yīng)的像素坐標(biāo)為
已知第m層的圖像寬度和高度為mpw,mph,則在第n層時(shí)圖像的寬度npw和高度nph變?yōu)?/p>
3.1.4 每層圖像塊之間的拓?fù)潢P(guān)系
圖像塊拓?fù)潢P(guān)系包含同一層內(nèi)部鄰接關(guān)系和上下層之間的雙親與孩子關(guān)系兩個(gè)方面[9]。已知一個(gè)圖像塊的坐標(biāo)為(l,tx,ty),則:
1)按照從左到右,從上到下的順序,下層孩子節(jié)點(diǎn)的坐標(biāo)分別為[10]
2)此圖像塊的雙親圖像塊坐標(biāo)為
LRU(Least Recently Used),即近期最少使用算法。由于在圖像顯示過程中,多次被調(diào)用過的圖像塊,近期被訪問的概率仍然很大,所以本文的調(diào)度算法借鑒了LRU的思想,在GPU存儲(chǔ)和主機(jī)內(nèi)存分別都添加了一個(gè)LRU隊(duì)列,GPU存儲(chǔ)中的LRU隊(duì)列用于存儲(chǔ)近期在GPU中重采樣過的圖像金字塔圖像塊的數(shù)據(jù),內(nèi)存中的LRU隊(duì)列則是存儲(chǔ)了近期參與CPU重采樣的圖像塊數(shù)據(jù),以及這些圖像塊的雙親和孩子節(jié)點(diǎn)。為了節(jié)省GPU存儲(chǔ)的存儲(chǔ)空間,GPU中存儲(chǔ)的圖像塊的孩子節(jié)點(diǎn)和父節(jié)點(diǎn)的圖像數(shù)據(jù)也存儲(chǔ)在主機(jī)內(nèi)存中。通過對(duì)圖像塊數(shù)據(jù)進(jìn)行緩存,可以減少圖像塊數(shù)據(jù)在不同類型存儲(chǔ)之間的讀取次數(shù),以提高重采樣的速度。
預(yù)設(shè)GPU存儲(chǔ)中的LRU隊(duì)列為dlrulist,在主機(jī)存儲(chǔ)中的LRU隊(duì)列hlrulist。算法的核心流程如圖5所示。
輸入:要顯示的圖像的起始像素點(diǎn)在原始圖像中起始坐標(biāo)(sx,sy),要顯示的圖像的寬度為bw像素,高度bh像素,圖像縮放以后的寬度和高度aw像素和ah像素。
輸出:重采樣以后的結(jié)果圖像數(shù)據(jù)。
過程:
1)計(jì)算scaleNum=aw/bw。則根據(jù)scaleNum的值,選擇最接近這個(gè)縮放倍數(shù)的金字塔的層數(shù)l。
2)根據(jù)金字塔層數(shù)l,計(jì)算本層的縮放倍率為lScaleNum,分別計(jì)算本層的圖像塊還需要縮放的倍數(shù)為:realScaleNum=scaleNum/lScaleNum。
3)根據(jù)式(12),可以求出要顯示的原始圖像的起始像素坐標(biāo)在l層上對(duì)應(yīng)的像素坐標(biāo),記為(lsx,lsy)。根據(jù)式(13),求bw,bh在l層出對(duì)應(yīng)的寬度和高度lbw,lbh。
4)根據(jù)式(11)和lsx,lsy,lbw,lbh可以求出要顯示的圖像在圖像金字塔第l層所對(duì)應(yīng)的起止圖片塊的坐標(biāo),記為(l,stx,sty),(l,etx,ety)。
5)根據(jù)4)求出的圖片塊的起止坐標(biāo),得出顯示圖像所需要的本層所有圖像塊的坐標(biāo),通過圖像塊的坐標(biāo)生成圖像標(biāo)識(shí)。
6)根據(jù)RECG模型,以及2)中求出的縮放倍數(shù),判斷是否是GPU重采樣,是則轉(zhuǎn)7)否則轉(zhuǎn)8)。
7)遍歷5)的結(jié)果,根據(jù)圖像標(biāo)識(shí)在dlrulist中查找是否包含相應(yīng)的圖像塊,如果不包含,則根據(jù)圖像標(biāo)識(shí)在hlrulist中尋找相應(yīng)的圖像塊,如果在hlrulist存在,則直接從主機(jī)內(nèi)存中加載相應(yīng)的圖像塊到GPU存儲(chǔ),并將圖像信息存儲(chǔ)在dlrulist中,如果在hlrulist不存在,則從外部存儲(chǔ)加載相應(yīng)圖像塊到GPU存儲(chǔ),并將圖像存儲(chǔ)在dlrulist中,判斷是否此圖像塊存在雙親節(jié)點(diǎn)或者孩子節(jié)點(diǎn),如果存在,則啟動(dòng)預(yù)加載線程,并行地將此圖像塊的雙親節(jié)點(diǎn)和子節(jié)點(diǎn)加載到hrulist中。當(dāng)所需的圖像塊都在GPU存儲(chǔ)中,則利用GPU實(shí)現(xiàn)對(duì)圖像塊的重采樣。
8)遍歷5)的結(jié)果,根據(jù)圖像標(biāo)識(shí)在hlrulist中尋找相應(yīng)的圖像塊,如果所需圖像塊不存在,則從外部存儲(chǔ)加載相應(yīng)圖像塊到內(nèi)存,并將圖像信息存儲(chǔ)在hlrulist中。當(dāng)所需的圖像塊全部在內(nèi)存中,則接下來利用CPU進(jìn)行重采樣。判斷如果此圖像塊存在雙親節(jié)點(diǎn)或者子節(jié)點(diǎn),則啟動(dòng)預(yù)加載線程,并行地將此圖像塊的雙親節(jié)點(diǎn)和子節(jié)點(diǎn)加載到hrulist中。
圖5 運(yùn)行時(shí)圖像塊調(diào)度流程圖
實(shí)驗(yàn)設(shè)備為單臺(tái)計(jì)算機(jī),顯卡為NVIDIA Ge?Force GT520M顯卡,支持CUDA架構(gòu),顯存大小為1024M,支持的2D紋理的最大高度為65535,最大寬度為65536。CPU為Intel Core2 i5-2410M,4核,2.3GHz。圖像的通道數(shù)為4,插值算法為雙線性插值。實(shí)驗(yàn)首先在不同圖片塊大小的圖像金字塔條件下,分別測(cè)試CPU和GPU的重采樣時(shí)間來驗(yàn)證RECG模型的正確性。接著進(jìn)行了RECG算法與開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫GDAL(Geosp-atial Data Abstraction Library)中的圖像重采樣算法重采樣效率對(duì)比。
實(shí)驗(yàn)結(jié)果如表1~表4所示(表格中各變量的含義見2.2節(jié)):
表1 8192*8192圖片大小下GPU和CPU重采樣耗時(shí)(ms)
表2 4096*4096圖片大小下GPU和CPU重采樣耗時(shí)(ms)
表3 2048*2048圖片大小下GPU和CPU重采樣耗時(shí)(ms)
表4 1024*1024圖片大小下GPU和CPU重采樣耗時(shí)(ms)
通過以上結(jié)果可以得出:
1)由于數(shù)據(jù)在內(nèi)存和GPU存儲(chǔ)之間的傳遞需要消耗時(shí)間,利用GPU進(jìn)行重采樣的速率并不一定優(yōu)于利用CPU進(jìn)行重采樣的速率。
2)通過試驗(yàn)結(jié)果數(shù)據(jù)中CPU重采樣所用時(shí)間,以及圖像塊的像素?cái)?shù)量,可以計(jì)算出對(duì)CPU單個(gè)像素點(diǎn)進(jìn)行重采樣用的平均時(shí)間為=0.083us。
3)利用實(shí)驗(yàn)結(jié)果數(shù)據(jù),對(duì)在同一圖像塊大小相同縮放倍率下測(cè)得的t(CPU)(即表中T(CPU))和t(GPU)數(shù)據(jù)進(jìn)行擬合,可以得到CPU重采樣時(shí)間和GPU重采樣時(shí)間之間的關(guān)系,如圖6所示。
由擬合結(jié)果可知,在本實(shí)驗(yàn)環(huán)境下,進(jìn)行重采樣時(shí),t(CPU)與t(GPU)的關(guān)系,符合線性關(guān)系,根據(jù)這個(gè)趨勢(shì)線可以近似得出,GPU重采樣相對(duì)于CPU重采樣的加速比為λ=0.0243。
4)通過GPU帶寬測(cè)試程序10次測(cè)量得到表5中的數(shù)據(jù)。
圖6t(CPU)和t(GPU)關(guān)系圖
表5 GPU帶寬測(cè)試(GB/s)
根據(jù)表5中的數(shù)據(jù),求平均值可以得出:主機(jī)內(nèi)存與GPU存儲(chǔ)之間的數(shù)據(jù)傳輸速度-vi=2.78 GB/s,GPU存儲(chǔ)與主機(jī)內(nèi)存之間數(shù)據(jù)傳輸速度-vo=2.99GB/s。
根據(jù)以上的計(jì)算結(jié)果,按照2.2節(jié)中的式(10),將t(sp),λ,vi,vo的值代入公式,便可以求得關(guān)于縮放倍率s的公式為:
在常用的由1024*1024圖像塊組成的圖像金字塔的條件下進(jìn)行本文調(diào)度算法與開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫GDAL中的圖像重采樣算法重采樣效率對(duì)比。結(jié)果如圖7所示。
圖7 調(diào)度算法與GDAL重采樣時(shí)間對(duì)比
4.3.1 RECG模型驗(yàn)證
通過4.1節(jié)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行公式的驗(yàn)證,首先將縮放倍率代入式(16)。當(dāng)縮放倍率s=1/3時(shí),得到m=5.22>1,當(dāng)s=1/6時(shí),m=1.55>1,表明利用GPU進(jìn)行重采樣的速度是CPU重采樣的5.22倍和1.55倍,此時(shí)應(yīng)該利用GPU進(jìn)行重采樣。當(dāng)s=1/9時(shí),m=0.71<1,即利用GPU進(jìn)行重采樣時(shí),速度是CPU重采樣速度的0.71倍,此時(shí)應(yīng)該利用CPU進(jìn)行重采樣。由表1~表4中的實(shí)驗(yàn)數(shù)據(jù)可知,當(dāng)s的值為1/3,1/6時(shí),T(GPU)的值要小于T(CPU)的值,所以GPU進(jìn)行重采樣更合適,當(dāng)s的值為1/9時(shí),T(GPU)的值要大于T(CPU)的值,所以用CPU進(jìn)行重采樣更合適,與公式預(yù)測(cè)的結(jié)果吻合。又根據(jù)此公式,當(dāng)進(jìn)行放大操作時(shí),m的值均大于1,說明在本實(shí)驗(yàn)條件下,進(jìn)行放大操作時(shí),進(jìn)行重采樣所占的時(shí)間是影響效率的主要因素,主機(jī)內(nèi)存與GPU存儲(chǔ)之間數(shù)據(jù)傳輸所消耗的時(shí)間是次要因素,應(yīng)該用GPU進(jìn)行重采樣。這里對(duì)常用的大小為1024*1024的圖像金字塔圖像塊進(jìn)行放大操作驗(yàn)證,結(jié)果如表6所示。由表6的實(shí)驗(yàn)結(jié)果可以看出,對(duì)圖像塊進(jìn)行放大操作時(shí),T(GPU)的值均小于T(CPU)的值,與公式預(yù)測(cè)結(jié)果吻合。通過圖像放大和縮小的實(shí)驗(yàn)數(shù)據(jù)表明,式(10)和(16)是合理的。
表6 1024*1024圖片大小下放大操作耗時(shí)(ms)
由4.1節(jié)的實(shí)驗(yàn)數(shù)據(jù)知,當(dāng)利用RECG模型進(jìn)行判斷,結(jié)果為利用GPU進(jìn)行重采樣時(shí),重采樣速度比相同條件下利用CPU進(jìn)行重采樣的速度成倍增加。當(dāng)結(jié)果為利用CPU進(jìn)行重采樣時(shí),比相同條件下利用GPU進(jìn)行重采樣時(shí)的速度也有所增加。因此,先利用RECG模型進(jìn)行判斷然后決定重采樣的方式,比單純地使用一種重采樣的方式效率提升很多。
4.3.2 算法效率分析
從圖7可以看出,本文算法的重采樣效率要高于GDAL中圖像重采樣算法的效率。分析其中的原因,主要為算法利用RECG模型根據(jù)要進(jìn)行重采樣的圖像的信息對(duì)重采樣方法進(jìn)行了動(dòng)態(tài)選擇,結(jié)合了GPU與CPU圖像重采樣的各自優(yōu)勢(shì),而GDAL則是只利用了單一的CPU重采樣方式對(duì)圖像進(jìn)行重采樣。
4.4.1 金字塔重采樣層數(shù)的選擇
3.3節(jié)中的調(diào)度算法過程1)涉及到金字塔圖像層數(shù)的選擇問題,設(shè)目標(biāo)圖像的分辨率為r,圖像金字塔中與目標(biāo)分辨率接近的層數(shù)的分辨率為r1和r2,且r1>r>r2。為了獲取更好的圖像重采樣效果,則應(yīng)該選擇分辨率為r1的金字塔圖像圖像進(jìn)行重采樣。而當(dāng)需要快速地得到重采樣的結(jié)果,則可以選擇分辨率為r2的圖像實(shí)現(xiàn)重采樣。
4.4.2 重采樣結(jié)果的定位
由于金字塔每層都是按照?qǐng)D像塊劃分的,不能具體到像素點(diǎn),所以重采樣時(shí)會(huì)出現(xiàn)圖8的情況。
圖8 實(shí)際重采樣圖像和需要重采樣圖像關(guān)系圖
從圖8可以看出,在進(jìn)行重采樣時(shí),實(shí)際需要重采樣的圖像包含于進(jìn)行重采樣的圖像之中,如果要獲取實(shí)際需要的顯示的圖像,則需要求得重采樣之后實(shí)際需要的圖像的起始像素點(diǎn)坐標(biāo),設(shè)起始像素點(diǎn)坐標(biāo)為(rsx,rsy),圖像寬和高縮放倍數(shù)為scale?NumW,scaleNumH,則:
通過求得(rsx,rsy)以及已知的縮放以后要求的圖像的長和寬,則可以從重采樣結(jié)果中獲取真正需要的圖像部分。
本文利用了RECG模型來判斷圖像的重采樣方式,并且通過緩存減少圖像塊數(shù)據(jù)在不同類型存儲(chǔ)之間的讀取次數(shù),有效地提升了對(duì)圖像金字塔圖像塊進(jìn)行重采樣的效率。
本文中的重采樣為對(duì)規(guī)則的可見區(qū)域進(jìn)行重采樣,下一步將研究如何對(duì)不規(guī)則可見區(qū)域進(jìn)行快速重采樣,以及在可見區(qū)域快速轉(zhuǎn)換的過程中,如何提出更高效的預(yù)測(cè)和緩沖策略以降低圖像重采樣的請(qǐng)求響應(yīng)時(shí)間。
[1]鄧雪清.柵格型空間數(shù)據(jù)服務(wù)體系結(jié)構(gòu)與算法研究[D].鄭州:中國人民解放軍信息工程大學(xué),2003.
DENG Xueqing.Research of Service Architecture and Al?gorithms for Grid Spatial Data[D].Zhengzhou:The PLA Information Engineering University,2003.
[2]王文珊.遙感影像金字塔數(shù)據(jù)的生成與壓縮方法研究[D].太原:太原理工大學(xué),2015.
WANG Wenshan.TheGenerationandCompression Methord Research of Remote Sensing Image Pyramid Data[D].Taiyuan:Taiyuan University of Technology,2015.
[3]張?jiān)浦?,張陌,王晉年,等.TDFA:一種生成空間影像金字塔的方法[J].中國圖象圖形學(xué)報(bào),2016,21(7):959-966.
ZHANG Yunzhou,ZHANG Mo,WANG Jinnian,et al.TD?FA:a generation method of spatial image pyramid[J].Journal of Image and Graphics,2016,21(7):959-966
[4]曾志,李先濤,張豐,等.一種基于分塊的遙感影像并行處理機(jī)制[J].浙江大學(xué)學(xué)報(bào):理學(xué)報(bào),2012,39(2):225-230.
ZENG Zhi,LI Xiantao,ZHANG Feng.A mechanism of re?mote sensing image for parallel processing base on split?ting blocks[J].Journal of Zhejiang University(Science Edition),2012,39(2):225-230.
[5]呂向陽.基于CPU+GPU的圖像處理異構(gòu)并行計(jì)算研究[D].南昌:南昌大學(xué),2014.
LV Xiangyang.Research on Heterogeneous Parallel Com?puting Based on CPU+GPU in Digital Image Processing[D].Nanchang:Nanchang University,2014.
[6]Zhao J,Zhou H.Design and optimization of remote sens?ing image fusion parallel algorithms based on cpu-gpu het?erogeneous platforms[C]//Image and Signal Processing(CISP),2011 4th International Congress on.IEEE,2011,3:1623-1627.
[7]Ravishankar M,Holewinski J,Grover V.Forma:A DSL for image processing applications to target GPUs and multi-core CPUs[C]//Proceedings of the 8th Workshop on General Purpose Processing using GPUs.ACM,2015:109-120.
[8]Teodoro G,Pan T,Kurc T M,et al.High-throughput analysis of large microscopy image datasets on CPU-GPU cluster platforms[C]//Parallel&Distributed Processing(IPDPS),2013 IEEE 27th International Symposium on.IEEE,2013:103-114.
[9]Scott N Steketee,Norman I Badler,Parametric keyframe interpolation incorating kinetic adj-ustment and phrasing control[J].ACM SIGGRAPH Computer Graphics,1985,19(3):255-262.
[10]戴晨光,張永生,鄧雪清.一種用于實(shí)時(shí)可視化的海量地形數(shù)據(jù)組織與管理方法[J].系統(tǒng)仿真學(xué)報(bào),2005,17(2):406-409,413.
DAI Chengguang,ZHANG Yongsheng,DENG Xueqing.An Organization and Management Approach of Data for Real-Time Visualization of Massive Terrain Dataset[J].Journal of System Simulaton,2005,17(2):406-409,413.