我必須在許多圖像的每一行應用卷積過濾器。經典的是360像素的1024x1024像素。在我的使用情況下,它是720圖像560x600像素。最快的方法來計算卷積
問題是,我的代碼比文章中公佈的要慢得多。
我已經實現了樸素的卷積,它需要2m 30s。然後我使用fftw切換到FFT。我使用了複雜的2複數,在每次轉換中過濾兩行。我現在大約20多歲。
事情是文章廣告大約10s甚至更少的經典條件。 所以我想問這裏的專家是否有更快的方法來計算卷積。
數字配方建議避免在dft中完成排序並相應地調整頻域濾波器功能。但是沒有代碼例子說明如何做到這一點。
也許我會在複製數據上失去時間。通過真正的2實數變換,我不必將數據複製到複數值中。不過無論如何我必須填充0。
編輯:請參閱我自己的回答下面的進度反饋和解決此問題的進一步信息。
問(精確再形成):
我正在尋找算法或一段代碼到一個非常快速卷積應用於離散的非周期函數(512至2048的值)。顯然,離散時間傅里葉變換是一條路。儘管如此,我想避免將數據複製和轉換複雜化,並避免重新排序。
什麼編程語言?什麼廣告文章? – 2009-10-10 19:45:17
C或C++。文章「使用GPU硬件的快速錐束CT圖像重建 」,嚴國瑞,田潔,朱壽平,戴亞康,秦成虎,X射線科學與技術雜誌16(2008)225,IOS Press [http: //www.3dmed.net/paper/YanGR_XRay_Fast%20cone-beam%20CT%20image%20reconstruction%20using%20GPU%20hardware.pdf。在8800GTX(8MP)上播放的360張圖像的播放時間爲5.9秒,在512^3上播放,我使用的是280GTX(30MP)。 – chmike 2009-10-11 07:56:44
你的意思是你應用了2D圖像上的一維內核?內核的大小是多少? – Royi 2017-08-04 22:01:11