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