《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA中實現Bayer模板雙線性插值算法的改進
FPGA中實現Bayer模板雙線性插值算法的改進
來源:電子技術應用2012年第9期
梁忠東,安博文
上海海事大學 信息工程學院,上海200135
摘要: 針對單板CMOS圖像傳感器采集的Bayer模板的數據,結合FPGA硬件結構FIFO_DFF構成3×3插值模板,提出一種改進的雙線性插值算法。插值過程中利用當前要還原的分量同通道的水平、垂直以及兩個對角線方向上的已知分量進行邊緣檢測,用梯度小的方向的分量進行插值還原缺失的分量。實驗結果表明,在FPGA中使用該算法插值得到的圖像色彩準確,增強了圖像的邊緣和細節(jié),圖像清晰度高。
中圖分類號: TP852.1
文獻標識碼: A
文章編號: 0258-7998(2012)09-0028-04
Improvement of bilinear interpolation algorithm for Bayer pattern in FPGA
Liang Zhongdong,An Bowen
College of Information Engineering, Shanghai Maritime University, Shanghai 200135,China
Abstract: Using a 3×3 interpolation mold that is constructed by hardware resource of FIFO_DFF within FPGA to improve upon bilinear interpolation algorithm for image data from single CMOS sensor in Bayer pattern. In the interpolation process, horizontal, vertical and diagonal directions of the known color components in same channel are used to conduct edge detection, and the components in a small gradient direction are taken to compute the missing color components. The experimental results indicate that improved algorithm in FPGA is able to offer an image with accurate color and enhance the image edges, details,and has high definition as well.
Key words : CMOS sensor;color filter array;Bayer pattern;bilinear interpolation

    大部分成像設備都使用單板的圖像傳感器,其在光電二極管和鏡頭之間利用彩色濾光片陣列CFA(Colour Filter Array)獲取圖像數據,這樣傳感器輸出的每個像素點只含有紅、綠或藍中一種顏色分量的馬賽克圖像[1]。為了獲得全彩色圖像,需要用其領域像素的信號近似計算出被濾掉的另外兩種顏色分量,該過程又稱顏色插值[2]。CFA的排列方式主要有Bayer、Mosaic和Stripe等[3],其中應用最廣泛的排列方式由Bayer博士發(fā)明,為大部分單板傳感器使用,稱為Bayer模板。其每幀圖像的數據格式的排列如圖1所示。

    圖1中右上角的(1,1)位置作為圖像數據的起始點,每幀大小為n×m。使用硬件實現插值運算時,注意Bayer模板中數據的排序方向需和硬件結構中的數據排序一致。


    CFA的插值算法很多,但是基于硬件實現的大多是簡單的算法,應用最廣泛的是雙線性插值法[4]。Bayer模板中雙線性插值算法原理非常簡單,通常取3×3大小的模板,其中心像素缺失的另外兩種顏色的分量用其鄰域中同通道分量的平均值代替,其算法簡單、運算速度快、硬件實現容易。但由于在插值計算的過程中沒有區(qū)分圖像的邊緣,其恢復出的圖像效果并不理想,邊緣和細節(jié)的信息損失較明顯。
    本文將介紹Bayer模板的雙線性插值算法的改進及其在FPGA中的實現。


    從整個雙線性插值計算的過程可知,恢復被濾除的像素時沒有考慮圖像邊緣的變化,只是簡單地利用了中心像素的鄰域同通道的分量值進行了加和平均,相當于對要恢復的分量使用了均值濾波器。這樣雖然會得到平滑的圖像,但也造成圖像的邊緣和細節(jié)模糊。
1.2 改進的3×3模板的雙線性插值算法
    為了克服雙線性插值算法帶來的邊緣模糊的問題,Laroche 和Prescott 提出了一種基于梯度的邊緣導向(edge2 directed)插值算法[5]。插值過程中,首先比較水平方向上和垂直方向上梯度的大小,插值時取梯度值小的方向上的像素點作為估計點計算當前像素未知色彩的值,可避免跨邊緣顏色插值導致邊緣模糊。由于人眼對綠色較為敏感,為了盡量減少算法復雜度,該算法主要對恢復缺失的G分量的兩種排列方式(即圖4和圖5)時,使用了邊緣導向的算法,而恢復缺失的R或B分量則用雙線性插值法計算并由G分量修正得到。在邊緣導向的算法中,使用了5×5模板,同時在插值計算中,利用了其他的顏色通道即G分量的信息。
    根據邊緣導向插值算法的思想,原有的3×3模板不變,無需使用不同像素的通道信息?;謴腿笔У腉分量插值時考慮鄰域G分量像素梯度變化。當插值恢復缺失的R或B分量時,引進鄰域同通道已知像素的對角線梯度信息,進一步保留圖像的邊緣細節(jié)信息。因此,對圖4和圖5兩種排列情況的雙線性插值算法進行改進,對應公式修正如下:
 

2 硬件實現
2.1 硬件系統(tǒng)架構

    以FPGA芯片為核心的處理單元具有速度快、效率高、低功耗等特點,本算法使用FPGA完成圖像數據的讀取、Bayer模版的圖像插值,既節(jié)省了硬件資源,又提高了系統(tǒng)整體效率。
    系統(tǒng)的前端為采集圖像數據的CMOS圖像傳感器,其中FPGA讀取Bayer模板圖像數據,經FPGA內部硬件構成的3×3模板,完成圖像數據的插值還原,最后傳輸給DSP。其硬件系統(tǒng)如圖6所示。

2.2 FPGA中3×3插值模板的硬件結構
    改進的插值算法是基于3×3模板,計算一個中心像素點最多用到相鄰2行和2列的像素數據,無需存儲整幀實時圖像數據,只需緩存3行數據。使用結合FPGA硬件結構的FIFO_DFF的算法模型[6],即可在FPGA中實現此3×3插值模板,其中構成插值模板的FIFO_DFF硬件結構如圖7所示。

    這樣無需外部存儲設備,在FPGA中就可以根據插值計算公式使用該硬件結構構成的矩陣計算中心像素  P(2,2)的RGB分量的值。需要指出的是,在處理邊界像素時也會和其他大小的模板一樣不可避免地產生邊界效應,當矩陣的第一行沒有數據時即開始計算,相當于在此時矩陣中心的第一行數據前面補零;當矩陣中最后一行沒有數據讀進時的插值計算,相當于在此時矩陣中心的最后一行數據后面補零??梢钥闯?,3×3模板插值時要比5×5模板的邊界效應少2行2列。補零后,原Bayer模板的每幀圖像數據的起點被移動,式(1)中的x和y也相應變化。因此,3種像素排列規(guī)律對應的公式需要根據變化的x和y做相應調整。
3 實驗結果
    在CMOS傳感器的控制參數和光源條件同等的條件下,利用FPGA構成的3×3硬件模板中分別使用雙線性插值算法和改進的雙線性插值算法對同一幅彩色廣告圖片進行拍攝,得到彩色圖像數據如圖9和圖10所示(實際圖像數據為2 592×1 944像素大小,這里只選取其左上角部分內容)。

 

    顯示邊緣和細節(jié)的兩幅圖進行比較,同時聯系各自的彩色圖像的色彩信息,可以直觀得出:改進插值算法后的圖像中右上角的綠色花朵的顏色更加接近實物,色彩鮮艷,其邊緣和細節(jié)也保留得相對完整,這是式(10)和(12)恢復綠色分量時對同通道的水平和垂直分量進行邊緣檢測后再插值還原的結果體現。
    同樣對圖像中間商品名稱的紅色字和藍色字分別比較,也可直觀得出,改進插值算法的圖像中的紅色和藍色更加接近實物,相應的邊緣和細節(jié)也保留得更多,這是式(11)和(12)分別恢復紅色和藍色分量時使用同通道對角線分量進行邊緣檢測后插值還原的結果體現。
    對單板CMOS傳感器采集的Bayer模板圖像數據插值還原時,利用FPGA內部硬件資源構成3×3插值運算模板,減小了其他插值模板所產生的邊界效應,無需增加外部存儲器,降低了硬件開銷。同時,充分考慮Bayer模板圖像數據提供的邊緣變化信息進行插值還原,與傳統(tǒng)的雙線性插值算法相比,為后續(xù)分析和處理以及最終的結果提供了更加準確和豐富的色彩,并得到了圖像中目標物體的更多邊緣和細節(jié)信息。
參考文獻
[1] 周紅艷.數碼圖像中莫爾條紋去除算法的研究[D].上海:上海交通大學,2008.
[2] 彭俊,高偉.基于FPGA的Bayer圖像彩色恢復快速算法研究及實現[D].北京:中國科學院研究生院,2007.
[3] 邱菊.基于插值算法的去彩色摩爾紋效應的研究[D].南京:南京理工大學,2009.
[4] 李淵淵,孟偉.一種用硬件實現的Bayer格式圖像恢復算法[D].吉林:長春光學精密機械與物理研究所,2009.
[5] 賀欽,劉文予.數字圖像傳感器顏色插值算法研究[D].武漢:華中科技大學,2007.
[6] 潘勝達.超分辨率傳像光纖束成像算法的硬件實現研究[D].上海:上海海事大學,2009.

此內容為AET網站原創(chuàng),未經授權禁止轉載。