天天看點

基于USB2.0的視訊圖像處理晶片實作方案

摘 要:實時圖像處理是圖像處理領域的一個熱點。給出了一種基于USB2.0 的視訊圖像處理晶片的實作方案,首先介紹了系統的整體設計架構,然後針對架構核心心子產品闡述了相應的硬體實作原理,最後以Xilinx FPGA 開發闆系列ML-506(核心晶片Virtex-5 XC5VSX50T FFG1136)。為驗證平台,結合各種軟體仿真工具對整個系統進行了仿真。仿真結果表明,該方案能夠很好地滿足實際的各項名額要求。

1 引言

​​電子技術​​的高速發展,實時圖像處理在多媒體、圖像通信等領域有着非常廣泛的應用。FPGA 晶片在內建度、容量和速度方面都達到了較高的水準,是實時圖像處理的理想選擇,基于FPGA 的圖像處理晶片的研究已成為資訊産業的新熱點。USB2.0 接口是一個傳輸速率可以達到480Mb/s的串行接口,并由不同類型的外圍裝置共享這個接口總路線,基于USB2.0 的視訊圖像處理晶片是按照USB協定進行設計的。USB2.0 接口的面世,推動了高清數位攝像頭的普及應用,加上同期寬帶的飛速發展,電腦攝像頭的本地和遠端視訊效果都有了大幅度提升。國内USB2.0 的視訊圖像處理晶片現在發展迅速,比如深圳的艾科創新、珠海的炬力等公司都相繼推出了各自的産品。本文介紹了一種基于USB2.0 的視訊圖像處理晶片的實作方案,并在搭建的仿真和驗證平台上,對系統進行了功能仿真和FPGA 驗證,結果證明本設計達到了設計要求。

2 基于USB2.0的視訊圖像處理晶片的整體實作方案

  基于USB2.0 視訊圖像處理晶片在硬體上由8 個子產品組成:微處理器子產品(MCU)、MCU 總線接口子產品(MCU Bus Interface)、USB2.0 收發器子產品(USB2.0PHY)、USB2.0 串行接口引擎子產品(USB2.0 SerialInterface Engine,簡稱USB2.0 SIE)、資料緩沖子產品(Data Buffer)、DMA 傳輸控制器子產品(DMA)、圖像處理單元 (PU) 、圖像預處理單元(PPU)。其結構框圖如下圖1 所示。

基于USB2.0的視訊圖像處理晶片實作方案

▲圖1 基于USB2.0 的視訊圖像處理晶片結構框圖

  其中,MCU子產品、USB2.0 PHY子產品和USB2.0 SIE子產品使用已有的IP 核,而其它子產品均采用硬體描述語言(Verilog HDL)自行設計。

  MCU 子產品負責協調控制整個系統的運作;MCUBus Interface 子產品負責各子產品的部分位址譯碼及相關資料的選通,以便于MCU 統一管理。USB2.0 PHY 子產品負責USB 實體層的連結,并将USB2.0 的總線信号變成标準的UTMI 接口信号;USB2.0 SIE 子產品負責處理USB 協定層的操作,完成USB 協定包生成和解析,以及接收來自DMA 的圖像資料,并将其儲存在資料緩沖子產品,完成與MCU 進行的互動;DataBuffer 負責将處理後的圖像資料緩存起來,以備USB 同步幀傳輸時取出後發送至PC;DMA 子產品完成将PU 處理後的圖像資料傳送給USB2.0 SIE;PPU 子產品完成擷取來自Sensor傳感器輸出的圖像資料,并且對資料進行各種圖像方面的處理,然後将處理後的圖像資料發送至PU.

3 PPU子產品中核心部件的設計

  PPU 子產品所完成的功能主要是:(1) YCbCr4:2:2格式到YCbCr4:4:4 格式的轉換;(2) RGB565 格式到RGB888 格式的轉換;(3) Bayer 資料壞點修正及Bayer格式到RGB888 格式的轉換。其中第三個功能是本子產品的最重要的功能,本方案中采用了"兩條線僞雙端口+六級流水線"的方案來實作,其原理圖如圖2所示。

基于USB2.0的視訊圖像處理晶片實作方案

▲圖2 Bayer 資料壞點修正及格式轉換的硬體原理圖

  從圖2 可以知道,在本方案中把壞點修正算法與格式轉換算法做在了一個子產品中。壞點位址存儲子產品,主要是用來接收從MCU 輸出的壞點資訊。僞雙端口RAM1、RAM2 是用來臨時存儲Bayer 圖像中的前兩行資料。而右端的六級流水線子產品,它的作用是完成相應的壞點修正和格式轉換。其中,六級流水線的前面五級的作用是完成3×5 視窗的壞點修正,而後面三級是為了完成3×3 視窗的格式轉換。

邏輯管理子產品的主要作用是統一管理六級流水線的相應操作,其内部包含一些計數器、比較器。從圖中還可以看到,P24、P34 分别把資料寫入了RAM1、RAM2,這主要是為了更新RAM 中的資料,使得3×6 視窗能夠漫遊Bayer 圖像的每一個像素點。同時本設計對圖像的邊緣也做了很好的處理,采用鏡像技術對邊緣做了很好的修正。

4 PU子產品中核心部件的設計

  圖像處理單元所要完成的功能主要有:(1)圖像濾波(Image Filte);(2)對比度(Contrast);(3)亮度(Brightness);(4)飽和度(Saturation);(5)色相(Hue);(6)銳化(Sharpness);(7)伽馬校正(Gamma)等。圖3 給出了PU 子產品中核心部件的結構,其中圖像濾波功能是通過一個1×5 視窗在圖像上的周遊來完成,伽馬校正主要是通過對ROM 的查表來實作。

基于USB2.0的視訊圖像處理晶片實作方案

▲圖3 PU 子產品中核心部件結構圖

5 設計的仿真和驗證

5.1 子產品的功能仿真

  主要給出了對圖像預處理子產品中核心部件Bayer子產品的仿真驗證方法,其他子產品的仿真驗證與此類似。

  由于圖像處理子產品所涉及的資料量非常龐大,僅憑單一的一種或兩種軟體無法獨立完成,是以這裡仿真驗證的工作是通過三個軟體Xilinx ISE + ModelSim +Matlab 共同完成,圖4 給出了Bayer 子產品TestBench示意圖,其實作的步驟主要分為以下三步:

基于USB2.0的視訊圖像處理晶片實作方案

▲圖4 Bayer 子產品TestBench 模型示意圖

  (1)由MATLAB 從10 張有共同壞點位置的不同JPEG 圖像中讀取8bit 無符号RGB 資料,然後由相應的RGB 資料生成對應的Bayer 資料,并以10個。txt 文本檔案來保留這10 張圖像的Bayer 資料,這十張文本檔案同壞點位置資訊一起作為測試輸入激勵。

  (2)把測試輸入激勵,分别輸入Bayer 子產品和MATLAB 模拟Bayer 子產品功能的程式中,可以分别得到大量的資訊,這些資訊都是由。txt 文本檔案來儲存,其中MATLAB 模拟程式完成的功能與Bayer 子產品完成的功能相同,隻是兩者運作的平台不同。

(3)比較由MATLAB 模拟程式與Bayer 子產品所生成的大量。txt 文本檔案,由于模拟程式和硬體子產品具體實作的機制不同(模拟程式采用了矩陣運算,而硬體子產品采用2 條線的行緩沖+六級流水線的方式實作),如果它們産生的資料一緻,則可以很好的說明硬體子產品完成了預期的功能, 然後再運用MATLAB 顯示函數,把原始圖像資料與修正後的資料以圖像的形式顯示出來,這樣能以更加直覺的形式來觀察對應的圖像效果。

  圖5 所示的三張圖檔是仿真驗證的過程中所涉及到圖檔,從圖中可以看到Bayer 子產品的設計達到了預期的目的。

基于USB2.0的視訊圖像處理晶片實作方案

▲圖5(a) 用于生成Bayer 資料的原始圖像

基于USB2.0的視訊圖像處理晶片實作方案

▲圖5(b) 由Bayer 資料未作壞點修正直接複原出的圖像

基于USB2.0的視訊圖像處理晶片實作方案

▲圖5(c) 由做了壞點修正的Bayer 資料複原出的圖像

5.2 FPGA 上的驗證

  5.2.1 FPGA 上驗證平台的搭建

  圖6 所示為本設計的FPGA 驗證平台示意圖。

基于USB2.0的視訊圖像處理晶片實作方案

▲圖6 FPGA 驗證平台示意圖

  PC 與一塊USB2.0 PHY闆通過USB2.0 總線連接配接,USB2.0 PHY 闆與FPGA 開發闆由标準UTMI 接口連接配接。Sensor 闆主要是采用美光的MT9V112 sensor 闆,I2C 接口主要是用于MCU 對Sensor 的控制,Data 總線包括資料總線和資料控制總線。而硬體MCU 子產品、MCU Bus Interface 子產品、USB2.0 SIE 子產品、DMA 子產品、PPU 子產品和PU 子產品均已綜合生成FPGA 下載下傳程式下載下傳到FPGA 中。

5.2.2 驗證過程及結果

  首先在PC 端需要安裝幾個工具軟體,用于觀察USB裝置描述符資訊的USBViewer,用于捕捉USB 枚舉資訊的工具軟體BusHund.按圖6 所示連接配接所有硬體,然後,将USB2.0 PHY 闆的USB 接口插入到PC的USB 插口,并打開USB 視訊管理工具軟體,能夠看到流暢的視訊圖像。專用測試工具軟體可以測試圖像幀速率。在驗證的過程中,可以看到本方案所設計的晶片支援的最大分辨率為 640×480(VGA),最大分辨率時的幀速率約為15~20fps,基本達到了設計要求。

  圖7 所示為PC 機上安裝的USB 資料捕捉軟體工具捕捉的視訊圖像資料,經分析這些資料證明圖像資料正常傳送至PC 使用者。

基于USB2.0的視訊圖像處理晶片實作方案

▲圖7 BusHound 捕捉的圖像資料

  圖8 是通過本系統在PC 機上使用USB 視訊工具軟體Cyberlink YouCam 捕捉到的圖像。

基于USB2.0的視訊圖像處理晶片實作方案

▲圖8 在本系統基礎上捕捉到的圖像

  由上圖可以看出本設計能夠穩定地輸出圖像,能夠穩定地實作設計要求。并且經過反複的測試和評估,表明本設計達到了設計要求。表1 為經測試能夠實作的主要技術名額。

基于USB2.0的視訊圖像處理晶片實作方案

▲表1 實作的主要技術名額

6 結束語

  本文設計了一種基于USB2.0 的視訊圖像處理晶片,通過功能仿真和FPGA 驗證,表明達到了設計要求,完成了設計任務。随着FPGA 技術不斷發展,使用FPGA 處理圖像資訊已成為圖像處理領域中的一個發展趨勢,特别是在對圖像處理速度有較高要求的實時圖像處理系統中,FPGA 将更能展現其在速度與靈活性方面的優勢。