劉小豫 聶維 魏浩
摘 ?要:隨著計(jì)算機(jī)技術(shù)的更新發(fā)展,人們需要處理各式各樣復(fù)雜的圖像,而圖像處理的方式方法也表現(xiàn)出多元化特性,對(duì)此,該文基于GPU并行處理能力,提出了一種更加高效、快捷的圖像處理方法,通過(guò)C++語(yǔ)言進(jìn)行圖像計(jì)算,主要從高斯模糊算法并行化、彩色負(fù)片處理算法并行化、透明合并處理算法并行化3個(gè)方面做了全面分析,從而證明GPU視角下的圖像處理并行算法更具優(yōu)勢(shì),值得大力推廣與應(yīng)用。
關(guān)鍵詞:GPU ?圖像處理 ?并行算法
中圖分類號(hào):TP391 ? 文獻(xiàn)標(biāo)識(shí)碼:A ? ? ? ? ? ?文章編號(hào):1672-3791(2019)06(c)-0033-02
1 ?GPU圖像處理技術(shù)分析
1.1 GPU
通過(guò)計(jì)算機(jī)CPU充分發(fā)揮其強(qiáng)有力的運(yùn)算能力,根據(jù)程序設(shè)計(jì)算法,便能夠?qū)崿F(xiàn)數(shù)字圖像模糊、合并等相關(guān)處理,把原始圖像轉(zhuǎn)變?yōu)樗鑸D像。而用戶對(duì)于應(yīng)用系統(tǒng)圖像處理質(zhì)量的要求不斷提高,雖然CPU速度通過(guò)摩爾定律周期逐漸提升,但是就越來(lái)越復(fù)雜的圖像處理算法和越來(lái)越高的質(zhì)量要求,CPU的能力依舊顯得相對(duì)不足。而GPU實(shí)際上就是圖形處理器,是專門進(jìn)行圖像處理的設(shè)施設(shè)備。在計(jì)算機(jī)技術(shù)發(fā)展的初期階段,因?yàn)閳D形處理與運(yùn)算比較簡(jiǎn)單,再加上質(zhì)量要求相對(duì)偏低,所以,只利用CPU進(jìn)行圖像處理便能夠滿足圖形處理需求。但是,在圖形處理質(zhì)量與速度要求越來(lái)越高的趨勢(shì)下,衍生了GPU。對(duì)比來(lái)講,CPU功能比較全面化,能夠更好地完成各種圖像的處理與控制請(qǐng)求,但是GPU卻能夠集中運(yùn)算處理海量數(shù)據(jù)信息,效率較高,在緩存與控制邏輯上也具備突出性優(yōu)勢(shì)。GPU初始設(shè)計(jì)目標(biāo)主要針對(duì)的是海量數(shù)據(jù)處理,其硬件結(jié)構(gòu)特性直接明確了其具備高效的運(yùn)算處理能力。
1.2 CUDA
GPU的作用主要是編輯并處理圖像,但是在計(jì)算機(jī)的各個(gè)應(yīng)用領(lǐng)域,GPU依舊無(wú)法充分發(fā)揮功能、作用,這主要是因?yàn)锳PI編程十分繁雜,再加上GPU內(nèi)存量比較小,無(wú)法支持比較大的程序規(guī)模,而且GPU編程缺乏較好的靈活性,導(dǎo)致GPU難以將自身優(yōu)勢(shì)、作用充分發(fā)揮出來(lái)。為了有效解決這些問(wèn)題,NVIDIA構(gòu)建了一種運(yùn)算平臺(tái),即CUDA,其可以并行計(jì)算框架,促使GPU解決復(fù)雜性問(wèn)題,現(xiàn)階段CUDA可以支持C++語(yǔ)言穩(wěn)定運(yùn)行,這就代表GPU可以發(fā)揮更加重要的作用。
1.3 數(shù)字圖像處理
數(shù)字圖像處理是基于計(jì)算機(jī),在存儲(chǔ)介質(zhì)上,就存儲(chǔ)二級(jí)制數(shù)據(jù)圖像做變形運(yùn)算與處理,可改觀圖像視覺效果,還可以從中獲取更具實(shí)用價(jià)值的信息。數(shù)字圖像處理算法的關(guān)鍵在于轉(zhuǎn)換信號(hào),把圖像信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),以便于通過(guò)計(jì)算機(jī)做后續(xù)處理。
2 ?GPU視角下的圖像處理并行算法
2.1 高斯模糊算法并行化
所謂高斯模糊實(shí)際上也是高斯平滑,在圖像處理軟件中的應(yīng)用非常廣泛,其能夠有效減少圖像噪聲,并降低細(xì)節(jié)部分的層次,高斯模糊中的模糊能夠被看作是周邊像素平均值。但是此算法并行化在串聯(lián)程序結(jié)構(gòu)中根本不能靈活轉(zhuǎn)換,為了最大化地有效利用GPU硬件多線程資料,必須嚴(yán)格遵循CUDA多線程框架處理理念重構(gòu)程序。在通過(guò)GPU進(jìn)行圖像高斯模糊變化時(shí),重要基礎(chǔ)是水平方向與垂直方向的一維高斯矩陣變換之間沒有相關(guān)性,也就是可以分開處理,針對(duì)具體一個(gè)方向進(jìn)行處理,各像素的處理彼此不相關(guān)聯(lián),根據(jù)此特性,能夠利用GPU多線程并行把像素處理任務(wù)劃分為不同模塊,并利用GPU線程加以計(jì)算。以CUDA為基礎(chǔ)的高斯模糊處理,需要先讀入待處理原始圖形,再把圖像像素基于水平與垂直方向分塊,促使GPU線程塊分開處理模塊,在處理后,合并處理后結(jié)構(gòu),以此達(dá)到所需原始圖像的高斯模糊效果。在此過(guò)程中,需就實(shí)際需要,提供相應(yīng)函數(shù),促使GPU線程塊針對(duì)不同數(shù)據(jù)做相應(yīng)處理,這就是高斯模糊算法基于CUDA的圖像處理。
2.2 彩色負(fù)片處理算法并行化
彩色負(fù)片處理過(guò)程非常消耗時(shí)間,這是由于其要求對(duì)整個(gè)圖像的各個(gè)像素點(diǎn)加以處理。就數(shù)字計(jì)算角度來(lái)看,負(fù)片處理比較簡(jiǎn)單,流程為先讀入圖像,即Bitmap格式圖像,將其置入內(nèi)存,遍布全部像素點(diǎn),獲取r、g、b值,并通過(guò)255減去這些值,把最后所得值生成全新負(fù)片圖像。通過(guò)負(fù)片算法流程能夠看出,其對(duì)各像素處理是彼此獨(dú)立的,即針對(duì)某像素進(jìn)行處理的時(shí)候,和其他像素值之間并不存在關(guān)系。負(fù)片算法此特點(diǎn)使得其十分適合基于GPU多線程并行處理的優(yōu)勢(shì)特性,把整體圖像劃分成許多小圖像,對(duì)小圖像分別做好處理,并把最后所獲得的小圖像處理結(jié)果合并成大圖像。在針對(duì)圖像像素?cái)?shù)據(jù)做并行運(yùn)算處理的重要基礎(chǔ)上,像素運(yùn)算彼此間是獨(dú)立的,如果處理過(guò)程中,像素不獨(dú)立,就明確要求程序編寫控制代碼,這種程序結(jié)構(gòu)和運(yùn)行方式并不適合GPU圖像處理并行算法,這主要是由于針對(duì)控制語(yǔ)句的處理不是GPU的優(yōu)勢(shì)。就具體實(shí)驗(yàn)證明,基于CUDA的GPU處理比CPU處理所耗費(fèi)的時(shí)間減少了幾百倍。
2.3 透明合并處理算法并行化
Alpha透明混合處理其實(shí)就是為了實(shí)現(xiàn)半透明的良好效果。而透明混合效果處理數(shù)學(xué)公式具體如(1)所示。假設(shè)不透明的物體著色用A表示,而透明的物體顏色用B表示,經(jīng)過(guò)Alpha混合處理,顏色C表示透過(guò)B看A所呈現(xiàn)出的顏色。如果B的透明度值是Alpha,取值控制在0~1之間,0代表完全透明,1代表完全不透明,那么獲得Alpha混合公式為。
其中,R(s)、G(s)、B(s)代表像素顏色s的RGB分量。通過(guò)公式可以看出,Alpha混合處理比較簡(jiǎn)潔,通過(guò)此技術(shù)能夠獲得火光、煙霧、陰影等各種半透明效果。
想要基于CUDA框架,通過(guò)GPU內(nèi)部多線程處理器處理兩幅需透明混合處理的圖像,先確定圖像相對(duì)位置。因?yàn)閳D像大小可能不一致,因此,先明確混合處理范圍,再將所需處理范圍劃分為多項(xiàng)處理單元,再通過(guò)CPU加以控制,把多項(xiàng)單元分配到GPU多線程處理器加以運(yùn)算。
可以把兩幅Alpha透明混合處理圖像基于CUDA編程框架進(jìn)行GPU處理,這是由于透明混合處理中并不存在太過(guò)復(fù)雜的邏輯控制,就不同處理對(duì)象而言,處理過(guò)程相同,但是不同處理對(duì)象間并不相關(guān)。就具體實(shí)驗(yàn)證明,基于CUDA的處理速度比CPU處理速度顯著提升。
3 ?結(jié)語(yǔ)
綜上所述,伴隨著計(jì)算機(jī)技術(shù)在圖像處理中的應(yīng)用越來(lái)越廣泛,人們對(duì)圖像處理的速度和效率等相關(guān)要求逐漸提高。該文對(duì)高斯模糊處理、彩色負(fù)片處理、透明合并處理3種處理方式進(jìn)行分析,可知通過(guò)CUDA編程框架利用GPU多線程模塊并行處理方式,能夠在很大程度上促使圖像處理速度與水平得到顯著提升?;贑DUA架構(gòu),通過(guò)編程語(yǔ)言實(shí)現(xiàn)基于GPU的圖像處理算法,將GPU的并行運(yùn)算能力作用有效發(fā)揮出來(lái),能夠在很大程度上提升圖像處理速度和效率,以此滿足各種應(yīng)用領(lǐng)域?qū)τ跀?shù)字圖像處理的多元化需求。
參考文獻(xiàn)
[1] 王平,全吉成,王宏偉.GPU圖像并行處理設(shè)計(jì)模型研究[J].艦船電子工程,2016,36(11):74-76.
[2] 范夢(mèng)然.GPU上基本圖像處理算法性能優(yōu)化關(guān)鍵技術(shù)研究[D].中國(guó)科學(xué)院大學(xué):中國(guó)科學(xué)院工程管理與信息技術(shù)學(xué)院,2017.
[3] 趙明超,陳智斌,文有為.基于GPU圖像去噪總變分對(duì)偶模型的并行計(jì)算[J].計(jì)算機(jī)應(yīng)用,2016,36(5):1228-1231.