麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

基于cuda及邊緣檢測的圖像插值的制作方法

文檔序號:6362950閱讀:229來源:國知局
專利名稱:基于cuda及邊緣檢測的圖像插值的制作方法
技術領域
本發明涉及一種基于CUDA(Compute Unified Device Architecture,計算機統一架構體系)及邊緣檢測的圖像插值方法,利用CUDA并行技術并以像素為單位處理數據,不降低圖像處理復雜度的同時加快了處理速度,提高效率。其中涉及NVIDIA (英偉達)公司的CUDA技術及圖像處理過程中提高圖像分辨率方法。
背景技術
在數字圖像處理領域中,圖像插值是一類經常碰到的問題,而且圖像插值具有十分重要的實用價值。通過插值可以實現圖像的放大顯示,提高圖像的分辨率。例如,對于偵察衛星,衛星圖像的分辨率和清晰度越高,識別軍事目標的可能性越大、準確度越高,對軍事和國防事業具有重要的意義。而且,放大的高清晰圖像一方面提供令人愉悅的圖像,另一 方面還提供圖像更多的細節,這些細節對識別和分析圖像非常重要。但是,由于硬件性能的限制,通過攝像機或者其他視頻設備獲得的圖像往往達不到所需的分辨率,若從硬件上著手改進將需要付出較昂貴的代價,而采用圖像插值技術來提高數字圖像的分辨率和清晰度,從軟件方面進行改進和彌補硬件的不足是很有現實意義和價值的。目前已有許多算法被提出來解決提高圖像分辨率問題,線性插值算法便是解決該問題的一種重要方法。常見的線性插值,如雙線性或三次樣條插值,基于空間不變模型,計算簡單,效率高,但是捕捉邊緣能力差,得到的HR (high definition,高清)圖像邊緣模糊并有很多鋸齒。為了得到更好的插值效果,人們不斷提出新的插值算法,NEDI (New Edge-DirectedInterpolation,新型基于邊緣檢測的插值)算法就是其中之一。該算法的放大效果要遠遠好于傳統的線性插值,但是相應的復雜程度也遠高于傳統的線性插值算法。NEDI算法利用協方差的自適應插值方法可以用來調節插值過程使得它能滿足任何方向上的邊緣。它能用低分辨率圖像的協方差和高分辨率圖像的協方差具有幾何對偶性的特點實現高分辨率圖像重建。該方法是一種新的非迭代方向自適應插值算法,由Xin Li和Orchard提出,其基本思想是先計算原始圖像各像素點的局部協方差系數,再利用原始圖像與待插值圖像協方差間的幾何對偶性來計算待插值圖像中需要插入的像素點的值。NEDI算法雖然實現了方向自適應性,提高放大圖像的質量,但計算復雜度很高,不能在實際的實時圖像處理中得到廣泛的應用。GPGPU (通用計算圖形處理單元)編程是軟件開發中最熱門的最有前途的趨勢之一。通過編寫專門在目前的高端3D圖形卡中的大規模并行流處理器上運行的代碼,程序員能夠加快一系列算法,并且并不局限于在高性能計算應用程序中。最流行的GPGPU(GeneralPurpose Computation on the GPU,通用圖形處理器)架構是NVIDIA公司開發的CUDA技術。CUDA是利用GPGPU進行并行運算應用開發的一套C語言編程平臺,通過它可以利用特定顯卡的高性能運算能力進行一些大規模高性能計算,有效提升計算機系統的使用效率。它使用C語言為基礎,可以直接以大多數人熟悉的C語言,寫出在顯示芯片上執行的程序,而不需要去學習特定的顯示芯片的指令或是特殊的結構。由于CUDA特別的編程模型及存儲數據方法,使得大量而復雜的同類運算可以由線程同時處理,使得用戶能夠以更短的時間完成圖像視頻處理并讓CPU得以解放出來處理一般性日常任務。總而言之,基于邊緣檢測的圖像插值算法的復雜度高而處理實時性差,如果可以用CUDA技術的并行處理數據功能解決,不僅可以提高重建高分辨率圖像實時性,作為一個創新點對實時的圖像處理有很高的實用價值,而且對利用CUDA技術降低圖像處理中其它算法的復雜度也有很好借鑒作用
發明內容
為解決基于邊緣檢測的圖像插值算法因高復雜度而產生的處理時間增加問題,本發明的目的在于提供一種基于CUDA及邊緣檢測的圖像插值方法,利用CUDA并行技術處理圖像數據在不改變處理圖像質量同時減少處理時間、實現對圖像的實時處理。為達到上述目的,本發明的構思如下
I、首先需要求取圖像的灰度域。處理圖像一般選擇YUV色彩空間而不是RGB色彩空間,因為RGB是三個獨立的色彩空間,每一個色彩空間都不能完全反映圖片的邊緣特性,而對于Y代表亮度信號,U、V代表色度信號的YUV信號來說,像素的Y空間分量可以完全的反映出一副圖像的邊緣,Y空間的協方差可以包含一副圖像的邊緣信息,只需計算出灰度信息Y的協方差,即可得到RGB空間的協方差,不僅降低計算復雜度,而且使得傳輸時也只需要傳輸Y信號即可。所以,將圖像由RGB格式轉換為YUV格式再進行處理。2、要進行線程的劃分,即把圖像的循環執行改為并行處理。實驗用GPU協處理器為GTX 260+的處理器,總共有24個SM,根據CUDA編程模型中提到的GPU所能包含的線程塊、線程數量,以及線程塊所能包含的數量,得出本GPU所能供分配的線程塊最多為192,最少應該為48個、最多能供分配的線程數為18432。對圖像進行分塊,然后利用多線程并行計算各個塊的協方差以及插值,提高運行效率,減少處理圖像所用時間。3、用分塊方法在CUDA上實現并行計算,合理的利用CUDA技術提供的各個存儲器,將紋理存儲器、共享存儲器、全局存儲器全部合理利用,將存取時間降到最小,從而使處理速度得到提升,本專利中用紋理存儲器來存儲原始的圖像數據,用共享存儲器存儲在插值過程中產生的對角像素的元素。4、對塊邊界差值點進行檢錯處理。由第2點提出的用分塊方法處理一幅圖像,在處理結束整合為一幅圖片時勢必會由于塊的邊界像素值在插值算法中的缺失,造成邊界處理效果不理想。在合成為一幅圖像時,會在塊邊界產生邊界效應,影響整幅圖像的效果。所以這里提出對上述求出的插值點,尤其是塊邊界插值點進行檢錯處理,防止因為分塊并行而出現的塊效應。根據上述發明構思,本發明采用下述技術方案
一種基于CUDA及邊緣檢測的圖像插值實現方法,其特征在于操作步驟如下
1)把原始圖像從RGB轉換為YUV空間;
2)把轉換后的圖片像素讀入設備內存的紋理存儲器,并進行對角像素協方差求取以及插值;
3)對角像素信息放入本地存儲器中;4)進行右邊和下邊像素的協方差求取以及插值;
5)插值保護檢測。所述步驟I)把原始圖像從RGB轉換為YUV空間是讀入像素數據至內存并進行圖像灰度域的轉換,此轉換在CPU上實現,轉換公式為
Y= 0.299R + 0.537G + 0.114B。所述步驟2)把轉換后的圖片像素讀入設備的紋理存儲器,并進行對角像素協方差求取以及插值是利用CUDA平臺進行多線程并行處理,主機CPU調用一個多核API使插值算法在GPU上并行處理,將圖像分為N塊,每個塊大小為2 X 3,即6個像素值,每個線程處理一個塊;講圖像像素全部讀入紋理存儲器,進行線程分配,每個線程中處理六個像素;用
^2μ,2κ = 像素插值出Am+Um+I像素
所述步驟3)對角像素信息放入本地存儲器中、將步驟2)中每個塊產生的ik+1A+1信息存儲到本塊的共享存儲器中,這樣可以使同一個塊中的所有線程共享讀取,需要把邊界處外擴4行的iL+i2H+1的像素數據也讀入本塊中,因為在第二步邊界處求和^ 2is,2 +l 時需要其他塊在步驟2)所求得的 ^+ι2κ+1。所述步驟4)進行右邊和下邊像素的協方差求取以及插值是利用紋理存儲器和共享存儲器中的圖像信息按步驟2的原理插值出r2jH+Us和Γ2Κι2β+1的估計像素^s+Us和
Λ
1 2w,2s+l ο所述步驟5)插值保護檢測為對步驟2產生出來的iL+Us+1進行如下判斷然后求得最終的Ζ2! +1>!+1
右 ^2k+U*+1 — ^2(*+Jt),2(s+1)則 ^2*β+12*+1 = 11 皿 ^2(μ+ΛΡ(κ+Ι);
若 ^ +l,2s+l —maX則 ^2w+l2 +l = maX ^2(M+fcJ,2(a+i);
若 γ[> fmn ^(^+^(η+ι)._
.M+U*+l I <mgK ] (Μ+Α;ι2(κ+|)^2m+L2 +1 ^!w+L2 +l
步驟4)做同樣原理的選擇。本發明的有益效果是基于CUDA實現NEDI算法,不僅保持了效果好的插值算法的圖像質量,而且運算速率相比于CPU下執行速率加快了一百多倍,實現簡單、硬件要求低。對后續視頻處理方面做CUDA加速運算,提高效率做了很好的前序工作。


圖I是具體實施方式
的流程 圖2是插值實現詳細過程示意 圖3是像素數據向量排列及插值點插值方向示意圖;圖4是測試插值算法結果對比圖;其中(A)為bi-cubic插值,(B)為NEDI插值。
具體實施例方式本發明的一個優選實施例結合附圖詳述如下參照圖I,本基于CUDA及邊緣檢測的圖像插值方法,操作步驟如下本實施例用圖像大小為320X240像素的一幅RGB格式彩色圖像。步驟I.把原始圖像從RGB轉為YUV空間。此步驟在CPU上實現,轉換公式見式(1 )。
權利要求
1.一種基于CUDA及邊緣檢測的圖像插值方法,其特征在于操作步驟如下 把原始圖像從RGB轉換為YUV空間; 把轉換后的圖片像素讀入設備內存的紋理存儲器,并進行對角像素協方差求取以及插值; 對角像素信息放入本地存儲器中; 進行右邊和下邊像素的協方差求取以及插值; 插值保護檢測。
2.根據權利要求I所述的基于CUDA及邊緣檢測的圖像插值方法,其特征在于所述步驟I)把原始圖像從RGB轉換為YUV空間是讀入像素數據至內存并進行圖像灰度域的轉換,此轉換在CPU上實現,轉換公式為X = 0.299R + 0.587G + 0.114B。
3.根據權利要求I所述的基于CUDA及邊緣檢測的圖像插值方法,其特征在于所述步驟2)把轉換后的圖片像素讀入設備的紋理存儲器,并進行對角像素協方差求取以及插值是利用CUDA平臺進行多線程并行處理,主機CPU調用一個多核API使插值算法在GPU上并行處理,將圖像分為多塊,每個塊大小為2X3,即6個像素值,每個線程處理一個塊;將圖像像素全部讀入紋理存儲器,進行線程分配,每個線程中處理六個像素;用4
4.根據權利要求I所述的基于CUDA及邊緣檢測的圖像插值方法,其特征在于所述步驟3)對角像素信息放入本地存儲器中、將步驟2)中每個塊產生的ik+UK+1信息存儲到本塊的共享存儲器中,這樣可以使同一個塊中的所有線程共享讀取iL+UK+I ,需要把邊界處外擴4行的iL+W +I的像素數據也讀入本塊中,因為在第二步邊界處求和時需要其他塊在步驟2)所求得的。
5.根據權利要求I所述的基于CUDA及邊緣檢測的圖像插值方法,其特征在于所述步驟4)進行右邊和下邊像素的協方差求取以及插值是利用紋理存儲器和共享存儲器中的圖像信息按步驟2)的原理插值出r2M+Ws和r2lH,2s+1的估計像素和尾_+1。
6.根據權利要求I所述的基于CUDA及邊緣檢測的圖像插值方法,其特征在于所述步驟5)插值保護檢測為對步驟2產生出來的i^+Ws+1進行如下判斷然后求得最終的&+1^+1
全文摘要
本發明設計一種基于CUDA及邊緣檢測的圖像插值方法。高質量的圖像或者視頻縮放必然伴隨著高復雜度的計算,基于CUDA技術即利用多線程在GPU(GraphicsProcessingUnit,圖形處理器)上同時進行像素處理便可以減少計算的復雜度,同時加快執行速度,減小CPU(CentralProcessingUnit,中央處理器)的功耗,提高整體執行效率。通過CUDA技術實現插值算法,滿足了對圖像的實時處理,為以后CUDA技術處理復雜度較高圖像算法、模塊奠定了很好的基礎。
文檔編號G06T5/00GK102622723SQ20121000698
公開日2012年8月1日 申請日期2012年1月11日 優先權日2011年5月25日
發明者劉婷, 楊勝齊, 程榮輝, 陳學偉 申請人:上海大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 江油市| 玛纳斯县| 安吉县| 云南省| 永胜县| 花莲市| 永修县| 永昌县| 交口县| 西乌珠穆沁旗| 德清县| 长葛市| 安岳县| 黄平县| 台江县| 镇平县| 张家港市| 峡江县| 交城县| 南岸区| 兴和县| 德江县| 林西县| 辉县市| 湟中县| 枣阳市| 罗城| 景德镇市| 保山市| 沙田区| 瑞金市| 沾益县| 三门峡市| 沙田区| 河南省| 南通市| 竹溪县| 平顶山市| 龙江县| 莱芜市| 阿拉善右旗|