霍迎秋 陳春榮 王雨菲 尹加
摘 要: 針對(duì)圖像去噪算法中由于數(shù)據(jù)量大、計(jì)算復(fù)雜度高導(dǎo)致的實(shí)時(shí)性低的問(wèn)題,通過(guò)對(duì)經(jīng)典K?SVD圖像去噪算法的并行性進(jìn)行研究分析,設(shè)計(jì)基于CUDA架構(gòu)的并行K?SVD圖像去噪算法。該算法主要對(duì)去噪算法中矩陣?yán)?、快速OMP和SVD等部分進(jìn)行并行設(shè)計(jì),采用“共享內(nèi)存”“歸并求和”等策略進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果表明,基于CUDA架構(gòu)的并行算法比串行算法速度有了顯著提高,最高加速比為12倍,極大提高了圖像去噪算法的處理速度。
關(guān)鍵詞: CUDA; 圖像去噪; K?SVD; 圖形處理器; 并行優(yōu)化; 矩陣?yán)?/p>
中圖分類號(hào): TN911.73?34; TP311 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)22?0053?06
Abstract: In allusion to the low real?time performance caused by mass data quantity and high calculation complexity in the image denoising algorithm, a parallel K?SVD image denoising algorithm based on computer unified device architecture (CUDA) is designed by means of parallelism research analysis of the typical K?SVD image denoising algorithm. In the algorithm, the parallel design of matrix stretching, fast OMP, SVD and other parts in the denoising algorithm is conducted. Strategies like memory sharing and summation by merging are adopted for optimization. The experimental results show that the parallel algorithm based on CUDA has a significant higher speed than the serial algorithm and a speed?up ratio as high as 12, which greatly improves the processing speed of the image denoising algorithm.
Keywords: CUDA; image denoising; K?SVD; graphic processing unit; parallel optimization; matrix stretching
圖像處理技術(shù)被廣泛應(yīng)用于航空航天[1?3]、CT裝置[4?5]、工業(yè)工程[6]等多個(gè)方面。其中,圖像去噪算法能夠去除在圖像的生成、傳輸和存儲(chǔ)過(guò)程中產(chǎn)生的噪聲,提高圖像的質(zhì)量。目前主要的圖像去噪算法有中值濾波[7]、維納濾波[8?9]等經(jīng)典方法。
本文主要研究基于K?SVD[10](K?Singular Value Decomposition)的圖像去噪算法。K?SVD是一種字典學(xué)習(xí)法[11],基于K?SVD的圖像去噪方法能夠有效抑制加性高斯白噪聲,在對(duì)紋理圖像處理中優(yōu)勢(shì)明顯[12]。但是這種算法計(jì)算復(fù)雜度高,計(jì)算量大,導(dǎo)致算法的實(shí)時(shí)性較低,難以滿足工程中高實(shí)時(shí)性的實(shí)際要求。
圖形處理器(Graphic Processing Unit,GPU)的通用計(jì)算能力正在高速發(fā)展中,極大地提高了計(jì)算機(jī)圖形處理的速度和質(zhì)量[13]。基于GPU設(shè)計(jì)并行算法成為近年來(lái)研究的熱點(diǎn)[14?16]。本文通過(guò)利用GPU并行計(jì)算能力,提出一種基于CUDA(Computer Unified Device Architecture)架構(gòu)的并行K?SVD圖像去噪算法。使其能夠大大降低算法所需時(shí)間,提高運(yùn)行速度,因此在實(shí)際工程中具有重要的應(yīng)用意義。
Michal Aharon等人在2006年提出了K?SVD算法[11],它可以對(duì)字典進(jìn)行自適應(yīng)更新,K指算法進(jìn)行了K次迭代,每次都使用了SVD算法。此算法可以針對(duì)目標(biāo)圖像構(gòu)建特定的、能夠反映目標(biāo)圖像特征的字典,從而在圖像去噪、壓縮等領(lǐng)域取得較好的效果[17]。
1.1 K?SVD數(shù)論基礎(chǔ)
當(dāng)K?SVD算法中每個(gè)信號(hào)只用到一個(gè)原子來(lái)近似時(shí),K?SVD算法就變化成K?均值聚類算法。同理,稀疏表示也可以看作是廣義的矢量量化(Vector Quantization,VQ),其中的多個(gè)原子的線性組合可以表示一個(gè)信號(hào),令D表示字典,y表示訓(xùn)練信號(hào),x表示訓(xùn)練信號(hào)的稀疏表示向量,Y是N個(gè)訓(xùn)練信號(hào)的集合,X是Y的解向量集合。
假設(shè)字典D是固定的,用MP(Matching Pursuit),OMP(Orthogonal Matching Pursuit)或BP(Basis Pursuit)等算法可以得到字典D,矩陣X是Y的稀疏表示系數(shù),然后根據(jù)矩陣X可以求解出更好的訓(xùn)練字典D。
2.1 K?SVD算法技術(shù)實(shí)現(xiàn)
本文基于C語(yǔ)言來(lái)實(shí)現(xiàn)K?SVD串行圖像去噪算法。在算法實(shí)現(xiàn)過(guò)程中主要實(shí)現(xiàn)圖像的讀取、圖像的拉伸、字典的生成。通過(guò)實(shí)現(xiàn)快速OMP算法生成稀疏矩陣,實(shí)現(xiàn)SVD算法來(lái)分解矩陣然后更新字典與稀疏矩陣;通過(guò)實(shí)現(xiàn)OMP算法生成稀疏矩陣。然后根據(jù)生成的稀疏矩陣與字典來(lái)更新拉伸矩陣,把拉伸矩陣還原成圖片實(shí)現(xiàn)圖像去噪。
2.2 實(shí)驗(yàn)結(jié)果與分析
本文算法的計(jì)算機(jī)配制是Intel(R) Core(TM) E7400 2.80 GHz,內(nèi)存為2 GB。在Windows 7環(huán)境下,使用Visual Studio 2010進(jìn)行研究與測(cè)試,其中圖片大小為256×256。首先給原始圖像加上加性高斯白噪聲形成噪聲圖像,然后使用K?SVD圖像去噪算法去噪,最后得到去噪后的圖像。
通過(guò)對(duì)實(shí)驗(yàn)結(jié)果分析發(fā)現(xiàn),稀疏度對(duì)圖像去噪效果和算法性能產(chǎn)生很重要的影響。當(dāng)稀疏度為128時(shí),實(shí)驗(yàn)結(jié)果如圖2所示。加噪后的PSNR值為20.28,去噪之后的PSNR值為28.53。
當(dāng)稀疏度為512時(shí)實(shí)驗(yàn)結(jié)果如圖3所示。加噪后的PSNR值為20.29,去噪之后的PSNR值為28.51。
分析可知,K?SVD圖像去噪算法去噪效果非常好,但是在不同稀疏度的情況下算法耗時(shí)不同,詳細(xì)情況如表1所示。
對(duì)表1分析發(fā)現(xiàn),串行運(yùn)行K?SVD算法進(jìn)行圖像去噪非常耗費(fèi)時(shí)間,實(shí)時(shí)性不高,對(duì)算法優(yōu)化以減少其運(yùn)行時(shí)間就變得非常重要。
3.1 去噪算法并行性分析
分析發(fā)現(xiàn),K?SVD算法中用到大量的矩陣運(yùn)算,如矩陣相乘、矩陣轉(zhuǎn)置、矩陣求逆,矩陣運(yùn)算可以進(jìn)行并行優(yōu)化。K?SVD圖像去噪算法主要耗費(fèi)時(shí)間是在快速OMP和SVD部分。下面就快速OMP部分和SVD部分進(jìn)行并行優(yōu)化設(shè)計(jì)可行性分析。
3.1.1 快速OMP并行分析
在快速OMP過(guò)程中,取訓(xùn)練信號(hào)的一列向量與字典相乘。從得到的向量里面選取最大的[K]個(gè)數(shù),再?gòu)挠?xùn)練信號(hào)中選取對(duì)應(yīng)的列數(shù)組成一個(gè)矩陣,求該矩陣的廣義逆,得到相應(yīng)列的稀疏矩陣。各列之間沒(méi)有相互依賴關(guān)系,可以進(jìn)行并行優(yōu)化。
3.1.2 SVD算法并行分析
在奇異值分解過(guò)程中,主要是求矩陣的特征值和特征向量。將矩陣轉(zhuǎn)置與自身相乘得到一個(gè)方陣,構(gòu)造一個(gè)值全部為1的向量,方陣與這個(gè)向量相乘更新構(gòu)造的那個(gè)向量,將向量的每個(gè)元素都除以該向量的最大值,迭代這個(gè)過(guò)程。研究發(fā)現(xiàn),每個(gè)迭代過(guò)程之間無(wú)關(guān)聯(lián),能并行優(yōu)化。
通過(guò)以上分析可知,在基于K?SVD的圖像去噪算法中用到了大量矩陣運(yùn)算。在矩陣運(yùn)算中每個(gè)元素都可以獨(dú)立地進(jìn)行計(jì)算,為后續(xù)的并行優(yōu)化提供了良好的基礎(chǔ)和可能性。
3.2 基于CUDA并行設(shè)計(jì)圖像去噪算法
在并行設(shè)計(jì)過(guò)程中,首先對(duì)耗時(shí)較大的部分進(jìn)行并行設(shè)計(jì),這樣才能顯著地降低所需要的時(shí)間。而且要結(jié)合GPU的硬件特點(diǎn),合理使用硬件資源才能得到好的效果。
優(yōu)化的重點(diǎn)放在耗時(shí)較大的算法上。整體優(yōu)化過(guò)程分矩陣?yán)靸?yōu)化、快速OMP算法優(yōu)化和[SVD]算法優(yōu)化。X.m和mat.m用以表示矩陣的行,X.n和mat.n用以表示矩陣的列。
3.2.1 矩陣?yán)靸?yōu)化
1) 讀取圖像生成一個(gè)大小為256×256的圖像矩陣,生成字典D。
2) 設(shè)計(jì)8×8大小的滑動(dòng)窗口,從原始圖像左上角滑動(dòng)到右下角。將1)中得到的陣?yán)鞛?4×62 001的矩陣。設(shè)計(jì)一個(gè)blocks為(249,249),threads為64的核函數(shù)進(jìn)行矩陣?yán)熳儞Q的并行計(jì)算。其中,249是對(duì)應(yīng)256-8+1,64對(duì)應(yīng)8×8。從最左邊滑到最右邊則要滑動(dòng)249次,同理,從最左邊滑到最右邊則也要滑動(dòng)249次。生成的拉伸矩陣共有249×249=62 001列。具體情況如圖4所示。
3.2.2 快速OMP算法優(yōu)化
1) 使用快速OMP算法將第3.2.1中1)得到的字典與第3.2.1中2)拉伸矩陣生成稀疏矩陣。生成稀疏矩陣的函數(shù)全部用CUDA核函數(shù)實(shí)現(xiàn)。構(gòu)建一個(gè)線程數(shù)量為D.m的核函數(shù),D.m是字典D的行數(shù),將字典中的一列提取出來(lái)。為避免每次循環(huán)都需要耗費(fèi)80 ms時(shí)間在數(shù)據(jù)從CPU到GPU的傳輸上,直接在顯卡端聲明一個(gè)變量保存每次循環(huán)需要提取的第幾列。
開辟一個(gè)X.n個(gè)線程格,每個(gè)線程格中有64個(gè)線程的核函數(shù),每個(gè)線程計(jì)算對(duì)應(yīng)元素的乘積,其結(jié)果保存在共享內(nèi)存中,最后歸并求和得到共享內(nèi)存數(shù)組所有元素的和。
計(jì)算上述稀疏矩陣的稀疏度,令為sparse,設(shè)計(jì)一個(gè)線程數(shù)為64的核函數(shù)。提取出上述過(guò)程得到的向量中前sparse個(gè)最大的數(shù),并記錄下索引值。每個(gè)線程找出對(duì)應(yīng)映射的元素里面的最大值,將512個(gè)線程中歸并找出最大值,獲得所有元素中最大值的索引,并將最大值賦值為0。再求次最大值,得到除去最大值之外第二大元素的記錄索引。依次類推,得到向量中前sparse個(gè)最大值及其索引。
令核函數(shù)的線程塊大小為X.m,線程數(shù)量是sparse,將向量中前sparse個(gè)值所對(duì)應(yīng)的列取出,組成一個(gè)矩陣。其中有訓(xùn)練信號(hào)行數(shù)m個(gè)線程格,每個(gè)線程格中線程都對(duì)應(yīng)取一個(gè)元素。該元素的索引為上述選取的最大值對(duì)應(yīng)的索引,得到的元素構(gòu)成一行,設(shè)計(jì)核函數(shù)的線程塊為sparse,線程數(shù)為X.m,即要轉(zhuǎn)置矩陣的列,對(duì)該行進(jìn)行矩陣轉(zhuǎn)置。矩陣相乘核函數(shù)線程格grid,即第一個(gè)矩陣的行與第二個(gè)矩陣的列構(gòu)成的線程格數(shù),線程數(shù)為X.m。將轉(zhuǎn)置后的矩陣與原矩陣相乘,每個(gè)線程格負(fù)責(zé)生成相乘之后矩陣中的一個(gè)元素。每個(gè)線程計(jì)算對(duì)應(yīng)元素的乘積,存放到共享內(nèi)存中,最后歸并求和。
對(duì)上述相乘得到的矩陣求逆。先構(gòu)造一個(gè)單位矩陣,使用初等變換法求逆。通過(guò)一次消元一列的方法讓矩陣變成單位陣,每次消元一列用到的核函數(shù)線程格和線程數(shù)均為sparse。映射元素如圖5所示。
消元第一列之后,僅第一行第一列元素非零,第一列其余元素都為零。將求逆得到的矩陣與轉(zhuǎn)置的矩陣使用線程格為grid,線程數(shù)為sparse的核函數(shù)相乘,相乘得到的矩陣再與字典相應(yīng)列相乘,令其線程格為sparse,線程數(shù)為64。將向量中得到的每個(gè)元素放入到對(duì)應(yīng)位置構(gòu)成稀疏矩陣。將該稀疏矩陣傳輸?shù)街鳈C(jī)端。其中的一行如圖6所示。
2) 將稀疏矩陣對(duì)應(yīng)行的對(duì)應(yīng)非零元素所在的列取出,與字典相乘。將訓(xùn)練信號(hào)對(duì)應(yīng)列取出,這兩個(gè)矩陣相減得到待SVD分解的矩陣,將該矩陣傳輸?shù)斤@卡端。
3.2.3 SVD算法優(yōu)化
1) 將第3.2.2節(jié)中2)的矩陣轉(zhuǎn)置。
2) 將第3.2.2節(jié)中1)的矩陣與原矩陣相乘,核函數(shù)開辟的線程格為mat.n×mat.n個(gè),線程數(shù)為mat.m個(gè)。使用一個(gè)線程格為1,線程數(shù)為mat.n的核函數(shù)構(gòu)造一個(gè)全為1的向量。轉(zhuǎn)置后的矩陣與該向量相乘核函數(shù)的線程格和線程數(shù)均為mat.n,其結(jié)果為一個(gè)向量,從中找出最大值,該向量除以得到的最大值。
上述過(guò)程循環(huán)200次,完成SVD分解。在串行算法中,保持兩次最大值不改變從而完成SVD分解。如遵循串行算法的過(guò)程,則要不斷地將顯卡端獲得的最大值傳輸給主機(jī)端,比較是否滿足退出循環(huán)條件。傳輸?shù)臄?shù)據(jù)不多,但是很耗費(fèi)時(shí)間。統(tǒng)計(jì)串行代碼中的循環(huán)次數(shù),分析得出200次足夠得到一個(gè)好的特征值和特征向量。當(dāng)然在稀疏度更大的情況下也要改變循環(huán)次數(shù)。用分解得到的向量更新字典與稀疏信號(hào)。
3) 將訓(xùn)練得到的字典與訓(xùn)練信號(hào)稀疏后,用稀疏信號(hào)與字典相乘從而更新訓(xùn)練信號(hào),將訓(xùn)練信號(hào)還原成一張圖片,該圖片就是去噪之后的圖像。
3.3 實(shí)驗(yàn)結(jié)果分析
算法運(yùn)行環(huán)境:GPU顯卡型號(hào)為GTX770,CUDA架構(gòu)版本是5.5;CPU為Intel Core2 E7400 2.8 GHz,內(nèi)存2 GB。
在應(yīng)用OMP算法對(duì)原始信號(hào)進(jìn)行稀疏分解的過(guò)程中發(fā)現(xiàn)得到的稀疏矩陣的稀疏度不可知,可通過(guò)經(jīng)驗(yàn)值估計(jì)圖像的稀疏度。實(shí)驗(yàn)測(cè)試發(fā)現(xiàn),稀疏度越大,去噪效果越好,但是算法的運(yùn)算量也越大。這是因?yàn)楫?dāng)稀疏度很大時(shí),相應(yīng)的圖像處理的計(jì)算量變大,后續(xù)的奇異值分解過(guò)程也變得非常復(fù)雜。如在稀疏度為4 000時(shí),奇異值分解耗時(shí)不小于1 h。在用快速OMP算法對(duì)原始信號(hào)進(jìn)行稀疏分解的過(guò)程中可以人為地控制稀疏度。在選定稀疏度為128的情況下發(fā)現(xiàn)算法整體耗時(shí)減少50%,但是圖像的去噪效果受到了很大影響。
選定稀疏度為128,256,512情況下,測(cè)試并行圖像去噪算法的性能。分析實(shí)驗(yàn)結(jié)果可知,在三種稀疏度下并行去噪算法去噪后圖片的PSNR值都為29 dB,通過(guò)肉眼觀察結(jié)合PSNR值可知并行算法去噪效果非常好,具體如圖7~圖9所示。在稀疏度為128的情況下,圖像去噪的效果如圖7c)所示。其中加噪后PSNR值為20.29,去噪后的PSNR值是28.41。
在稀疏度為256的情況下,圖像去噪效果如圖8c)所示。其中加噪后的PSNR值為20.29,去噪之后的PSNR值為29.38。
在稀疏度為512時(shí),圖像去噪效果見圖9c)。其中加噪后的PSNR值為20.29,去噪后的PSNR值為29.13。
隨著稀疏度的逐漸增加,圖像去噪效果越來(lái)越好,但是算法的運(yùn)算量也越來(lái)越大。算法運(yùn)算量越大越能夠發(fā)揮GPU并行處理的優(yōu)勢(shì),相應(yīng)的加速效果越明顯。例如:在稀疏度為128時(shí),串行去噪算法整體耗時(shí)為827 508 ms,而并行算法耗時(shí)76 812 ms。在稀疏度為512時(shí),串行去噪算法整體耗時(shí)高達(dá)5 952 046 ms,并行去噪算法耗時(shí)484 932 ms。詳細(xì)如表2所示。
在不同稀疏度情況下并行去噪算法的加速比如圖10所示。
通過(guò)對(duì)表2和圖10分析可知,隨著稀疏度不斷變大,并行算法相對(duì)于串行算法的加速比不斷提升。在稀疏度為128時(shí),加速比為10.8;稀疏度為256時(shí),加速比為11.6;稀疏度為128時(shí),加速比為12.3。分析其主要原因是隨著稀疏度不斷變大,去噪算法的運(yùn)算量也逐漸增大。去噪算法的非相關(guān)運(yùn)算量增大,越能夠充分發(fā)揮GPU大量并行處理單元的優(yōu)勢(shì),因此加速比逐漸增大。綜合考量并行去噪算法的去噪效果和運(yùn)行速度可知,并行去噪算法在保持算法去噪效果的同時(shí),能夠極大地加速算法的運(yùn)行,提高算法的實(shí)時(shí)性。
本文主要研究了基于K?SVD的圖像去噪算法,提出一種基于CUDA架構(gòu)的并行圖像去噪算法。并行算法充分利用了GPU強(qiáng)大的并行計(jì)算能力,對(duì)基于K?SVD的圖像去噪算法進(jìn)行了并行優(yōu)化設(shè)計(jì)。共設(shè)計(jì)了三組實(shí)驗(yàn)對(duì)比分析串、并行算法的性能以及去噪效果。分別測(cè)試在不同稀疏度下的串行、并行算法的耗時(shí)和去噪效果。實(shí)驗(yàn)結(jié)果表明,在128,256,512三種稀疏度下串、并行算法去噪效果沒(méi)有區(qū)別,去噪后的圖片PSNR值都為29 dB。但是并行圖像去噪算法相對(duì)于串行算法運(yùn)行速度得到了很大的提高,最高加速比達(dá)12,極大地提高了算法的實(shí)時(shí)處理性能。因此,本文設(shè)計(jì)的并行圖像去噪算法能夠替代串行去噪算法,且能夠有效提高圖像處理的實(shí)時(shí)性,在航空航天、CT裝置、工業(yè)、工程等需要進(jìn)行圖像去噪的領(lǐng)域具有廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1] 趙育良,許兆林.基于圖像處理技術(shù)的航空相機(jī)鏡頭焦面自準(zhǔn)直定位研究[J].應(yīng)用光學(xué),2012,33(2):288?292.
ZHAO Yuliang, XU Zhaolin. Autocollimation location system of aerial camera lens′ focus plane based on image processing technology [J]. Journal of applied optics, 2012, 33(2): 288?292.
[2] 孫世杰,張凱,孫力,等.基于圖像處理的航空儀表自動(dòng)判讀系統(tǒng)設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2011,11(6):1260?1263.
SUN Shijie, ZHANG Kai, SUN Li, et al. Automatic interpretation of aviation instrument based on image processing [J]. Science technology and engineering, 2011, 11(6): 1260?1263.
[3] 趙志彬,劉晶紅.基于圖像處理的航空成像設(shè)備自動(dòng)調(diào)焦設(shè)計(jì)[J].液晶與顯示,2010,25(6):863?868.
ZHAO Zhibin, LIU Jinghong. Auto?focusing method for airborne image equipment based on image processing [J]. Chinese journal of liquid crystals and displays, 2010, 25(6): 863?868.
[4] 郝景宏,姜袁,梅世強(qiáng),等.基于CT圖像處理技術(shù)的混凝土損傷演化研究[J].人民長(zhǎng)江,2010,41(17):79?83.
HAO Jinghong, JIANG Yuan, MEI Shiqiang, et al. Study on damage development of concrete based on CT image processing [J]. Yangtze River, 2010, 41(17): 79?83.
[5] 田威,黨發(fā)寧,陳厚群.基于CT圖像處理技術(shù)的混凝土細(xì)觀破裂分形分析[J].應(yīng)用基礎(chǔ)與工程科學(xué)學(xué)報(bào),2012,20(3):424?431.
TIAN Wei, DANG Faning, CHEN Houqun. Fractal analysis on meso?fracture of concrete based on the technique of CT image processing [J]. Journal of basic science and engineering, 2012, 20(3): 424?431.
[6] 劉奇,李昌聰,黃韞梔,等.對(duì)接管焊縫的雙壁雙投影工業(yè)X射線圖像處理研究[J].四川大學(xué)學(xué)報(bào)(工程科學(xué)版),2015,47(2):89?94.
LIU Qi, LI Changcong, HUANG Yunzhi, et al. Image processing research on double?walled double?imaging industrial X?ray radiographs of butt weld [J]. Journal of Sichuan University (Engineering science edition), 2015, 47(2): 89?94.
[7] 丁繼生,衛(wèi)偉,楊依忠,等.一種基于FPGA的開關(guān)中值濾波算法研究[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,39(4):490?493.
DING Jisheng, WEI Wei, YANG Yizhong, et al. Research on switching median filtering algorithm based on FPGA [J]. Journal of Hefei University of Technology, 2016, 39(4): 490?493.
[8] 汪祖輝,孫劉杰,邵雪,等.一種結(jié)合小波變換和維納濾波的圖像去噪算法[J].包裝工程,2016,37(13):173?178.
WANG Zuhui, SUN Liujie, SHAO Xue, et al. An image denoising algorithm combined with wavelet transform and Wiener filtering [J]. Packaging engineering, 2016, 37(13): 173?178.
[9] 張小波.基于維納濾波的圖像去噪算法研究[D].西安:西安電子科技大學(xué),2014.
ZHANG Xiaobo. Research of image denoising algorithms based on Wiener filter [D]. Xian: Xidian University, 2014.
[10] 焦莉娟,王文劍.一種快速的K?SVD圖像去噪方法[J].小型微型計(jì)算機(jī)系統(tǒng),2016,37(7):1608?1612.
JIAO Lijuan, WANG Wenjian. Speeded?up K?SVD image denoising algorithm [J]. Journal of Chinese computer systems, 2016, 37(7): 1608?1612.
[11] AHARON M, ELAD M, BRUCKSTEIN A. K?SVD: an algorithm for designing overcomplete dictionaries for sparse representation [J]. IEEE transactions on signal processing, 2006, 54(11): 4311?4322.
[12] ELAD M, AHARON M. Image denoising via sparse and redundant representations over learned dictionaries [J]. IEEE transactions on image processing, 2006, 15(12): 3736?3745.
[13] 張海軍,陳圣波,張旭晴,等.基于GPU的遙感圖像快速去噪處理[J].城市勘測(cè),2010(2):96?98.
ZHANG Haijun, CHEN Shengbo, ZHANG Xuqing, et al. GPU?based denoising to remotely sensing images [J]. Urban geotechnical investigation & surveying, 2010(2): 96?98.
[14] PARK J Y, CHUNG K S. Parallel LDPC decoding using CUDA and OpenMP [J]. EURASIP journal on wireless communications and networking, 2011(1): 172?179.
[15] MROZEK D, BROZEK M, MALYSIAK?MROZEK B. Parallel implementation of 3D protein structure similarity searches using a GPU and the CUDA [J]. Journal of molecular modeling, 2014, 20(2): 2067.
[16] 霍迎秋,秦仁波,邢彩燕,等.基于CUDA的并行K?means聚類圖像分割算法優(yōu)化[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2014,45(11):47?53.
HUO Yingqiu, QIN Renbo, XING Caiyan, et al. CUDA?based parallel K?means clustering algorithm [J]. Transactions of the Chinese Society of Agricultural Machinery, 2014, 45(11): 47?53.
[17] 張曉陽(yáng).基于K?SVD和殘差比的稀疏表示圖像去噪研究[D].重慶:重慶大學(xué),2012.
ZHANG Xiaoyang. Image denoising via sparse and redundant representations over K?SVD algorithm and residual ratio iteration termination [D]. Chongqing: Chongqing University, 2012.