使用遞迴高斯濾波器IIR實現快速高斯模糊

2021-07-02 18:47:58 字數 1253 閱讀 1783

**:

高斯窗常用於對影象進行模糊或低通濾噪,但是隨著高斯半徑的增加,時間消耗會逐級增加

如高斯半徑為n時,計算每個輸出取樣點需要計算的乘法次數為(2n+1)模糊方向數,加法次數為2n模糊方向數,這種情況下,當n=100時,甚至更大時,計算量是非常大的,即使進行simd指令集優化,在很多情況下仍然不能滿足要求,比如n=100時,優化後的彙編**的執行時間也通常在幾百毫秒以上,遠不能達到實時處理要求。

上述的方法是使用高斯視窗對準的原理進行實現的,屬於fir型濾波,因為對於半徑大於n的畫素點,其權重取為0,即對當前點無貢獻,然而在實際中我們知道,即使在3倍標準差外的畫素也應該對中心點有貢獻的,雖然很小

基於高斯濾波器的普通應用,對它的效能優化便變得很急迫,因而iir型的高斯濾波器被研究了出來,以及被用於對邊緣檢測進行低能處理的iir的高斯微分濾波器也同時被研究了出來,即前乙個輸出取樣點對後乙個輸出取樣點有貢獻,公式如下

第一遍,從左到右,或從上到下

w(n) = a0*x(n) + a1*x(n-1) - b1*w(n-1) - b2*w(n-2)

第二遍,從右到右,或從下到上

y(n) = a2*x(n) + a3*x(n+1) - b1*y(n+1) - b2*y(n+2)

其中,a0,a1,a2,a3,b1,b2為濾波係數

最後將兩遍的輸出相加之各便是最終結果

從上述兩個公式可以看出,每個輸出取樣點的計算與高斯半徑是沒有關係的,而6個濾波係數是高斯半徑的函式,只被計算一次,這樣,對高斯半徑為50、100、300等的處理,每個輸出取樣點的計算量是相同的,都是乘法次數為8*模糊方向數,加法次數為7*模糊方向數,計算量大幅下降,在很多時候的影象處理能滿足效能需求,並且質量不會下降,甚至cpu也能達到實時處理要求

上述的方法通常稱為並行,這是因為兩遍是分開計算的,最後將兩遍結果相加。

另一種方向稱為序列,即是將第一遍的w(n)作為第二遍的輸入

參考文獻:

(1)iir gaussian blur filter implementation using intel® advanced vector extensions

(2)recursively implementing the gaussian and its derivatives

(3)recursive gaussian derivative filters

(4)recursive gaussian filters

(5)recursivity and pde』s in image processing

FIR濾波器與IIR濾波器

有限長單位衝激響應濾波器,又稱為非遞迴型濾波器 特點 fir濾波器的最主要的特點是沒有反饋迴路,穩定性強,故不存在不穩定的問題 fir具有嚴格的線性相位,幅度特性隨意設定的同時,保證精確的線性相位 fir設計方式是線性的,硬體容易實現 fir相對iir濾波器而言,相同效能指標時,階次較高,對cpu的...

IIR數字濾波器實現

題目 16k取樣率音訊資料下取樣到 8k取樣率 求解方案分析 直接每隔乙個取乙個取樣值,這樣就可以得到 8k取樣率的資料。但是這樣明顯會有問題。按照取樣率變換理論,首先應該通過乙個低通濾波器,濾掉 pi 2,pi 這個區間上的頻率,以防止下取樣造成的頻率混疊。這個低通濾波器在很多書上都用 fir濾波...

IIR和FIR濾波器設計低通濾波器

設原始訊號為 採用iir濾波器和fir濾波器設計低通濾波器,比較兩類濾波器的濾波結果。要求 採用matlab語言實現,並分析結果。首先對原始訊號進行頻譜分析,確定濾波器引數。通過分析加噪訊號的頻譜,雜訊訊號為 原始訊號為 iir濾波器設計 按照數字濾波器技術指標 通帶邊界頻率wp 通帶最大衰減 阻帶...