周天馳
摘 要:在許多行業(yè)和領(lǐng)域,都需要用到圖像處理技術(shù),針對各種圖像信息進(jìn)行轉(zhuǎn)化和處理,提升圖像的清晰度,以便于更好的分析圖像的細(xì)節(jié),從中提取出有用信息。在不斷的發(fā)展過程中,人們對于圖像處理的質(zhì)量和效率提出了更高的要求,也使得傳統(tǒng)基于CPU的圖像處理算法逐漸暴露出了一些不足和問題,無法切實(shí)滿足圖像處理的現(xiàn)實(shí)需求,基于這一現(xiàn)狀,本文提出了一種基于GPU(圖形處理器)的圖像處理并行算法,可以在一定程度上提升圖像處理的效果。
關(guān)鍵詞:GPU;圖像處理;計(jì)算方法
在計(jì)算機(jī)硬件不斷的發(fā)展過程中,依照摩爾定律,CPU的速度不斷提升,性能也在持續(xù)完善,不過在面對不斷提高的圖像質(zhì)量要求和日趨發(fā)展的圖像處理算法時(shí),仍然暴露出許多的不足?;诖?,可以在圖像處理中引入GPU,以提升圖像處理算法的質(zhì)量和效率。
1 GPU圖像處理相關(guān)技術(shù)
GPU是指圖形處理器,是一種專門的圖形處理設(shè)備。事實(shí)上,在計(jì)算機(jī)技術(shù)發(fā)展初期,由于圖形的處理和運(yùn)算相對簡單,加上質(zhì)量要求不高,因此單單運(yùn)用CPU的運(yùn)算能力,就能夠滿足圖形樹立的需要。不過,伴隨著人們對于圖形處理質(zhì)量及運(yùn)算速度要求的不斷提升,CPU在圖像處理方便暴露出一些問題,也因此推動(dòng)了GPU的出現(xiàn)。相比較而言,CPU的功能更加全面,可以從容應(yīng)對各種不同的處理和控制請求,而GPU則可以實(shí)現(xiàn)對于海量數(shù)據(jù)的集中運(yùn)算,運(yùn)算效率更高,在緩存和控制邏輯等方面也有著自身的優(yōu)勢。GPU的初始設(shè)計(jì)目標(biāo),就是針對大量數(shù)據(jù)的處理,硬件結(jié)構(gòu)的特點(diǎn)決定了其對于運(yùn)算處理的高效性。
數(shù)字圖像處理,主要是利用計(jì)算機(jī),在相應(yīng)的存儲(chǔ)介質(zhì)上,針對存儲(chǔ)的二級(jí)制數(shù)據(jù)圖像進(jìn)行相應(yīng)的變形運(yùn)算和處理,可以對圖像的視覺效果進(jìn)行改觀,也可從中提取出有價(jià)值的信息。數(shù)字圖像處理算法的關(guān)鍵步驟是信號(hào)轉(zhuǎn)化,可以將圖像信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),方便利用計(jì)算機(jī)進(jìn)行后續(xù)的處理操作。
2 基于GPU的圖像處理計(jì)算方法
2.1 高斯模糊處理算法
在傳統(tǒng)計(jì)算機(jī)的串行程序結(jié)構(gòu)中,高斯模糊算法雖然可以運(yùn)用,但是無法保證變換的效率,因此,為了對GPU多線程資源進(jìn)行合理利用,需要依照計(jì)算統(tǒng)一設(shè)備架構(gòu)(CUDA)的多線程加工處理思想,針對程序進(jìn)行重新構(gòu)造。
利用GPU的多線程并行處理特性,針對圖像進(jìn)行高斯模糊變化,一個(gè)非常重要的前提,是水平與豎直方向上的一維高斯矩陣變換不相關(guān),換言之,可以分別進(jìn)行處理,同時(shí),在某個(gè)方向的處理過程中,每一個(gè)像素的計(jì)算同樣獨(dú)立進(jìn)行。基于此,可以利用GPU的多線程并行計(jì)算功能,將原本統(tǒng)一的像素計(jì)算任務(wù)進(jìn)行分割,交由不同的線程塊運(yùn)行,基本流程為:讀取待處理的原始圖像,在水平和垂直方向上,對其像素進(jìn)行分塊,交由不同的線程塊進(jìn)行并行運(yùn)算,處理完成后,將所有的結(jié)果合并在一起,就可以得到原始圖像的高斯模糊處理效果。在這個(gè)過程中,CUDA架構(gòu)提供的API函數(shù)為分塊操作提供了便利,對像素區(qū)塊的劃分同樣是由CUDA實(shí)現(xiàn)的。
2.2 透明合并處理算法
為了可以在CUDA架構(gòu)下,發(fā)揮GPU多線程處理的優(yōu)勢,針對兩幅需要進(jìn)行透明合并處理的圖像進(jìn)行有效處理,需要首先對圖像的相對位置進(jìn)行明確??紤]到圖像尺寸的差異性,在處理前,需要對合并處理的區(qū)域和范圍進(jìn)行明確,然后將其劃分為若干較小的處理單元,通過計(jì)算機(jī)CPU,將這些處理單元合理分配到GPU的多線程處理器中,完成圖像的處理和計(jì)算。之所以可以實(shí)現(xiàn)上述處理,主要是透明合并處理并不存在復(fù)雜的邏輯控制,與一般的圖像處理流程基本相同,處理對象之間也不存在相互聯(lián)系。
2.3 彩色負(fù)片處理算法
彩色負(fù)片處理要求對圖像中的每一個(gè)像素點(diǎn)進(jìn)行全面處理,因此需要耗費(fèi)大量的時(shí)間。而從數(shù)字計(jì)算的角度分析,彩色負(fù)片處理算法本身的處理其實(shí)比較簡單,通常是讀取需要處理的圖像,將其傳輸?shù)絻?nèi)存中,然后針對所有像素點(diǎn)的R、G、B值進(jìn)行提取,以255減去相應(yīng)數(shù)值,最后利用得到的值,生成全新的負(fù)片圖像。結(jié)合上述流程可以看出,在這種算法中,每一個(gè)像素的處理都是獨(dú)立進(jìn)行的,這種特點(diǎn)恰恰與GPU多線程并行處理的優(yōu)勢相適宜,通過將一幅較大的圖像分割成若干小圖像的方式,減少了圖像處理過程中的數(shù)據(jù)量,充分發(fā)揮了GPU的優(yōu)勢,在對小圖像進(jìn)行分別處理后,可以將處理結(jié)果合并起來,得到一幅完整的圖像,保證了處理的效果。需要注意的是,基于GPU的彩色負(fù)片處理算法有一個(gè)非常重要的前提,即像素運(yùn)算的完全獨(dú)立性,如果其存在相關(guān)性,則需要編寫相應(yīng)的控制代碼,不僅更加繁瑣,而且這樣的程序結(jié)構(gòu)并不能發(fā)揮GPU的優(yōu)勢,最終會(huì)影響圖像處理的質(zhì)量和效率。
3 結(jié)語
伴隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,圖像處理技術(shù)也呈現(xiàn)出了日新月異的趨勢,與傳統(tǒng)的CPU圖像處理相比,基于GPU的圖像處理算法有著更加顯著的優(yōu)勢,通過多線程并行處理的方式,提高了圖像處理的速度和質(zhì)量,能夠滿足人們對于圖像處理的客觀需求。
參考文獻(xiàn):
[1] 張春,楊俊.基于GPU的圖像處理算法研究[J].西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,38(7):41-45.
[2] 吳欣峰.基于GPU的數(shù)字圖像處理算法研究[D].江西理工大學(xué),2011,(14):383.
[3] 裘皓萍,馮瑞,萬時(shí)華.基于GPU的多點(diǎn)觸控圖像處理技術(shù)[J].計(jì)算機(jī)工程,2012,38(1):208-210.