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