摘 要:目前,基于CPU(Central Processing Unit,中央處理器)的圖形圖像處理技術(shù)的發(fā)展難以跟上圖形圖像處理算法復雜度增加的速度。針對這一問題,本文對基于GPU(Graphic Processing Unit,圖形處理器)的圖形圖像處理技術(shù)進行了研究,即利用CUDA(Compute Unified Device Architecture,統(tǒng)一計算設備架構(gòu))技術(shù),使用C++語言在GPU上實現(xiàn)了圖像圖像處理中的彩色負片處理、高斯模糊處理以及Alpha透明混合處理。實驗表明,本文所實現(xiàn)的基于GPU的處理技術(shù)能以較短的時間達到與基于CPU的處理技術(shù)一樣的效果。
關鍵詞:CPU;GPU;CUDA;圖形圖像處理
中圖分類號:TP391.41
雖然CPU的處理能力與運算速率一直在翻倍的增長,但是人們對圖像的質(zhì)量與用途提出了更多的要求,圖像處理也變得更復雜??梢?,CPU難以勝任圖像處理任務。而GPU的運算能力遠大于CPU,同時伴隨著CUDA的出現(xiàn),使得基于GPU的圖形圖像處理進入了一個全新的發(fā)展階段。
1 相關技術(shù)介紹
1.1 GPU技術(shù)
在計算機技術(shù)的萌芽階段,圖像處理相對比較簡單,CPU完成能夠勝任。而隨著科技的快速發(fā)展,人們對圖像的質(zhì)量與用途提出了更多的要求,圖像處理相應地變得越來越復雜,而CPU的處理能力的增長難以跟上需求的步伐。為解決這一矛盾,1999年,NVIDIA公司制造了第一塊GPU。
1.2 CUDA方案
以前,程序員通過OpenGL等所提供的相關接口來實現(xiàn)對GPU的操作,這種方式不僅要求程序員具備較高的專業(yè)技能,而且程序?qū)崿F(xiàn)復雜、缺乏靈活性。針對這一問題,NVIDIA公司給出了CUDA方案。該方案以一種類似于C語言的編程方法和開發(fā)環(huán)境實現(xiàn)對GPU的操作,使得程序員能夠較快地掌握GPU編程。
2 基于GPU的圖形圖像處理的實現(xiàn)
本文利用編程工具Visual Studio 2010,在NVIDIA公司的Quadro 2000顯卡(CUDA版本為5.0,顯存為1G)上實現(xiàn)了高斯模糊、Alpha透明以及彩色負片處理。下面將分別對三種實現(xiàn)進行介紹。
2.1 基于GPU的高斯模糊處理的實現(xiàn)
在高斯模糊處理中,水平方向與垂直方向上的一維變換矩陣是不相關的,因此就可以把處理任務分解成多個相互獨立的子任務,然后把這些子任務同時交由GPU進行并行處理。處理流程為:首先讀取原始圖像,接著利用CUDA所提供的函數(shù)從水平與垂直兩個方向?qū)υ紙D像的像素進行分割,然后把所得到的兩個子集交由GPU進行并行高斯模糊處理,最后把處理結(jié)果進行合并,從而完成圖像的高斯模糊處理。
2.2 基于GPU的Alpha透明混合處理
3 結(jié)束語
本文把CUDA與GPU相結(jié)合,對圖像處理中的高斯模糊處理、透明合并處理以及彩色負片處理進行了實現(xiàn)。
參考文獻:
[1]Owens J D,Luebke D,Govindaraju N.A survey of general purpose computation on graphics hardware.COMPUTER GRAPHICS FORUM,2007(01):80-113.
[2]Rueda A,Ortega L.Geometric algorithms on CUDA.Proceddings of International Conference on Computer Graphics Theory and Applications,2008:107-112.
[3]Buck I.,F(xiàn)oley T..Brook for GPUs:stream computing on graphics hardware.New York:ACM,2009.
作者簡介:何明華(1980-),女,四川康定人,經(jīng)濟管理系講師,碩士。
作者單位:四川民族學院,四川康定 626001