1 引言
隨著計算機技術(shù)、微電子技術(shù)的高速發(fā)展,實時圖像處理在多媒體、圖像通信等領(lǐng)域有著非常廣泛的應(yīng)用。FPGA 芯片在集成度、容量和速度方面都達到了較高的水平,是實時圖像處理的理想選擇,基于FPGA 的圖像處理芯片的研究已成為信息產(chǎn)業(yè)的新熱點。USB2.0 接口是一個傳輸速率可以達到480Mb/s的串行接口,并由不同類型的外圍設(shè)備共享這個接口總路線,基于USB2.0 的視頻圖像處理芯片是按照USB協(xié)議進行設(shè)計的。USB2.0 接口的面世,推動了高清數(shù)碼攝像頭的普及應(yīng)用,加上同期寬帶的飛速發(fā)展,電腦攝像頭的本地和遠程視頻效果都有了大幅度提升。國內(nèi)USB2.0 的視頻圖像處理芯片現(xiàn)在發(fā)展迅速,比如深圳的艾科創(chuàng)新、珠海的炬力等公司都相繼推出了各自的產(chǎn)品。本文介紹了一種基于USB2.0 的視頻圖像處理芯片的實現(xiàn)方案,并在搭建的仿真和驗證平臺上,對系統(tǒng)進行了功能仿真和FPGA 驗證,結(jié)果證實本設(shè)計達到了設(shè)計要求。
2 基于USB2.0的視頻圖像處理芯片的整體實現(xiàn)方案
基于USB2.0 視頻圖像處理芯片在硬件上由8 個模塊組成:微處理器模塊(MCU)、MCU 總線接口模塊(MCU Bus Interface)、USB2.0 收發(fā)器模塊(USB2.0PHY)、USB2.0 串行接口引擎模塊(USB2.0 SerialInterface Engine,簡稱USB2.0 SIE)、數(shù)據(jù)緩沖模塊(Data Buffer)、DMA 傳輸控制器模塊(DMA)、圖像處理單元 (PU) 、圖像預(yù)處理單元(PPU)。其結(jié)構(gòu)框圖如下圖1 所示。
其中,MCU模塊、USB2.0 PHY模塊和USB2.0 SIE模塊使用已有的IP 核,而其它模塊均采用硬件描述語言(Verilog HDL)自行設(shè)計。
MCU 模塊負責協(xié)調(diào)控制整個系統(tǒng)的運作;MCUBus Interface 模塊負責各模塊的部分地址譯碼及相關(guān)數(shù)據(jù)的選通,以便于MCU 統(tǒng)一管理。USB2.0 PHY 模塊負責USB 物理層的鏈接,并將USB2.0 的總線信號變成標準的UTMI 接口信號;USB2.0 SIE 模塊負責處理USB 協(xié)議層的操作,完成USB 協(xié)議包生成和解析,以及接收來自DMA 的圖像數(shù)據(jù),并將其保存在數(shù)據(jù)緩沖模塊,完成與MCU 進行的互動;DataBuffer 負責將處理后的圖像數(shù)據(jù)緩存起來,以備USB 同步幀傳輸時取出后發(fā)送至PC;DMA 模塊完成將PU 處理后的圖像數(shù)據(jù)傳送給USB2.0 SIE;PPU 模塊完成獲取來自Sensor傳感器輸出的圖像數(shù)據(jù),并且對數(shù)據(jù)進行各種圖像方面的處理,然后將處理后的圖像數(shù)據(jù)發(fā)送至PU.
3 PPU模塊中核心部件的設(shè)計
PPU 模塊所完成的功能主要是:(1) YCbCr4:2:2格式到Y(jié)CbCr4:4:4 格式的轉(zhuǎn)換;(2) RGB565 格式到RGB888 格式的轉(zhuǎn)換;(3) Bayer 數(shù)據(jù)壞點修正及Bayer格式到RGB888 格式的轉(zhuǎn)換。其中第三個功能是本模塊的最重要的功能,本方案中采用了"兩條線偽雙端口+六級流水線"的方案來實現(xiàn),其原理圖如圖2所示。
從圖2 可以知道,在本方案中把壞點修正算法與格式轉(zhuǎn)換算法做在了一個模塊中。壞點地址存儲模塊,主要是用來接收從MCU 輸出的壞點信息。偽雙端口RAM1、RAM2 是用來臨時存儲Bayer 圖像中的前兩行數(shù)據(jù)。而右端的六級流水線模塊,它的作用是完成相應(yīng)的壞點修正和格式轉(zhuǎn)換。其中,六級流水線的前面五級的作用是完成3×5 窗口的壞點修正,而后面三級是為了完成3×3 窗口的格式轉(zhuǎn)換。
邏輯管理模塊的主要作用是統(tǒng)一管理六級流水線的相應(yīng)操作,其內(nèi)部包含一些計數(shù)器、比較器。從圖中還可以看到,P24、P34 分別把數(shù)據(jù)寫入了RAM1、RAM2,這主要是為了更新RAM 中的數(shù)據(jù),使得3×6 窗口能夠漫游Bayer 圖像的每一個像素點。同時本設(shè)計對圖像的邊緣也做了很好的處理,采用鏡像技術(shù)對邊緣做了很好的修正。
4 PU模塊中核心部件的設(shè)計
圖像處理單元所要完成的功能主要有:(1)圖像濾波(Image Filte);(2)對比度(Contrast);(3)亮度(Brightness);(4)飽和度(Saturation);(5)色相(Hue);(6)銳化(Sharpness);(7)伽馬校正(Gamma)等。圖3 給出了PU 模塊中核心部件的結(jié)構(gòu),其中圖像濾波功能是通過一個1×5 窗口在圖像上的遍歷來完成,伽馬校正主要是通過對ROM 的查表來實現(xiàn)。
5 設(shè)計的仿真和驗證
5.1 模塊的功能仿真
主要給出了對圖像預(yù)處理模塊中核心部件Bayer模塊的仿真驗證方法,其他模塊的仿真驗證與此類似。
由于圖像處理模塊所涉及的數(shù)據(jù)量非常龐大,僅憑單一的一種或兩種軟件無法獨立完成,所以這里仿真驗證的工作是通過三個軟件Xilinx ISE + ModelSim +Matlab 共同完成,圖4 給出了Bayer 模塊TestBench示意圖,其實現(xiàn)的步驟主要分為以下三步:
(1)由MATLAB 從10 張有共同壞點位置的不同JPEG 圖像中讀取8bit 無符號RGB 數(shù)據(jù),然后由相應(yīng)的RGB 數(shù)據(jù)生成對應(yīng)的Bayer 數(shù)據(jù),并以10個。txt 文本文件來保留這10 張圖像的Bayer 數(shù)據(jù),這十張文本文件同壞點位置信息一起作為測試輸入激勵。
(2)把測試輸入激勵,分別輸入Bayer 模塊和MATLAB 模擬Bayer 模塊功能的程序中,可以分別得到大量的信息,這些信息都是由。txt 文本文件來保存,其中MATLAB 模擬程序完成的功能與Bayer 模塊完成的功能相同,只是兩者運行的平臺不同。
(3)比較由MATLAB 模擬程序與Bayer 模塊所生成的大量。txt 文本文件,由于模擬程序和硬件模塊具體實現(xiàn)的機制不同(模擬程序采用了矩陣運算,而硬件模塊采用2 條線的行緩沖+六級流水線的方式實現(xiàn)),如果它們產(chǎn)生的數(shù)據(jù)一致,則可以很好的說明硬件模塊完成了預(yù)期的功能, 然后再運用MATLAB 顯示函數(shù),把原始圖像數(shù)據(jù)與修正后的數(shù)據(jù)以圖像的形式顯示出來,這樣能以更加直觀的形式來觀察對應(yīng)的圖像效果。
圖5 所示的三張圖片是仿真驗證的過程中所涉及到圖片,從圖中可以看到Bayer 模塊的設(shè)計達到了預(yù)期的目的。
5.2 FPGA 上的驗證
5.2.1 FPGA 上驗證平臺的搭建
圖6 所示為本設(shè)計的FPGA 驗證平臺示意圖。
圖6 FPGA 驗證平臺示意圖。
PC 與一塊USB2.0 PHY板通過USB2.0 總線連接,USB2.0 PHY 板與FPGA 開發(fā)板由標準UTMI 接口連接。Sensor 板主要是采用美光的MT9V112 sensor 板,I2C 接口主要是用于MCU 對Sensor 的控制,Data 總線包括數(shù)據(jù)總線和數(shù)據(jù)控制總線。而硬件MCU 模塊、MCU Bus Interface 模塊、USB2.0 SIE 模塊、DMA 模塊、PPU 模塊和PU 模塊均已綜合生成FPGA 下載程序下載到FPGA 中。
5.2.2 驗證過程及結(jié)果
首先在PC 端需要安裝幾個工具軟件,用于觀察USB設(shè)備描述符信息的USBViewer,用于捕捉USB 枚舉信息的工具軟件BusHund.按圖6 所示連接所有硬件,然后,將USB2.0 PHY 板的USB 接口插入到PC的USB 插口,并打開USB 視頻管理工具軟件,能夠看到流暢的視頻圖像。專用測試工具軟件可以測試圖像幀速率。在驗證的過程中,可以看到本方案所設(shè)計的芯片支持的最大分辨率為 640×480(VGA),最大分辨率時的幀速率約為15~20fps,基本達到了設(shè)計要求。
圖7 所示為PC 機上安裝的USB 數(shù)據(jù)捕捉軟件工具捕捉的視頻圖像數(shù)據(jù),經(jīng)分析這些數(shù)據(jù)證明圖像數(shù)據(jù)正常傳送至PC 用戶。
圖7 BusHound 捕捉的圖像數(shù)據(jù)。
圖8 是通過本系統(tǒng)在PC 機上使用USB 視頻工具軟件Cyberlink YouCam 捕捉到的圖像。
圖8 在本系統(tǒng)基礎(chǔ)上捕捉到的圖像。
由上圖可以看出本設(shè)計能夠穩(wěn)定地輸出圖像,能夠穩(wěn)定地實現(xiàn)設(shè)計要求。并且經(jīng)過反復(fù)的測試和評估,表明本設(shè)計達到了設(shè)計要求。表1 為經(jīng)測試能夠?qū)崿F(xiàn)的主要技術(shù)指標。
表1 實現(xiàn)的主要技術(shù)指標
6 結(jié)束語
本文設(shè)計了一種基于USB2.0 的視頻圖像處理芯片,通過功能仿真和FPGA 驗證,表明達到了設(shè)計要求,完成了設(shè)計任務(wù)。隨著FPGA 技術(shù)不斷發(fā)展,使用FPGA 處理圖像信息已成為圖像處理領(lǐng)域中的一個發(fā)展趨勢,特別是在對圖像處理速度有較高要求的實時圖像處理系統(tǒng)中,F(xiàn)PGA 將更能體現(xiàn)其在速度與靈活性方面的優(yōu)勢。