如何使用純FPGA來實現(xiàn)嵌入式視覺方案?
嵌入式視覺是當(dāng)今科技最激動人心的領(lǐng)域之一。
關(guān)于使用Zynq SoC的嵌入式視覺應(yīng)用,熱心群眾們說的太多,我就不贅述了。今天我們換一個新的視角,來看看如何使用純FPGA來實現(xiàn)嵌入式視覺方案。
這篇文章,將帶你了解如何使用Digilent Nexys Video Artix-7 FPGA多媒體音視頻開發(fā)板來實現(xiàn)一個簡單的HDMI輸入/輸出視頻處理系統(tǒng)。特別是如果你是一名新手,通過本文,你會對基于FPGA的視頻處理有更多基本的理解。
坦白說,Digilent Nexys Video開發(fā)板可能是市面上性價比最高的音視頻處理FPGA口袋實驗室了。作為一款專用于音視頻處理教學(xué)以及視頻和視覺應(yīng)用原型開發(fā)的評估板,此板搭載了Xilinx Artix-7系列中資源最大的器件Aritx-7 XC7A200T FPGA。
今天我們就來介紹一下如何使用Nexys Video來實現(xiàn)一個簡單的HDMI輸入/輸出視頻處理系統(tǒng)。先來看下此板所集成的支持視頻接收、處理和生成/輸出的下列I/O和外設(shè)接口:
HDMI輸入
HDMI輸出
顯示輸出端口
以太網(wǎng)
UART
USB
512MB DDRSDRAM
線路輸入(Line In)/麥克輸入/耳機輸出/線路輸出(Line Out)
FMC
使用VHDL與RTL方法,要創(chuàng)建一個簡單的圖像處理流水線,我們需要實現(xiàn)如下架構(gòu):
監(jiān)控處理器(本例中采用Xilinx Artix-7 FPGA實現(xiàn)的MicroBlaze軟核RISC處理器)用于監(jiān)控與用戶接口間的通信并根據(jù)應(yīng)用的要求配置圖像處理流水線。在本例這個簡單的架構(gòu)中,HDMI輸入口接收的數(shù)據(jù)從原始的并行格式的視頻數(shù)據(jù)、Hsync和VSync轉(zhuǎn)換為AXI Streaming(AXIS)格式。我們想要將數(shù)據(jù)轉(zhuǎn)換成AXIS格式是因為Vivado提供多個使用這種數(shù)據(jù)格式的圖像處理IP。如果我們使用Vivado HLS來創(chuàng)建我們自己的圖像處理模塊,那么能夠支持AXIS接口也很重要。
MicroBlaze處理器需要支持如下外圍設(shè)備:
AXI UART – 支持系統(tǒng)的通信和控制
AXI Timer – 使MicroBlaze可以實時運行事件
MicroBlaze調(diào)試模塊 – 支持MicroBlaze的調(diào)試
MicroBlaze本地存儲 – 連接到DLMB和ILMB(數(shù)據(jù)&指令本地存儲總線)
我們將使用存儲接口生成器來創(chuàng)建與板上SDRAM對接的DDR接口。這個接口和SDRAM創(chuàng)建了一個公共的存儲框架,可以訪問圖像處理管道以及使用AXI interconnect訪問監(jiān)控處理器。
創(chuàng)建一個簡單的圖像處理流水線需要使用如下IP:
DVI2RGB – Digilent提供的HDMI輸入IP
RGB2DVI – Digitlent提供的HDMI輸出IP
Video In to AXI4-Stream – 將并行視頻輸入轉(zhuǎn)換為AXI Streaming協(xié)議(Vivado IP)
AXI4-Stream to Video Out – 將AXI-Stream轉(zhuǎn)換為并行視頻輸出(Vivado IP)
Video Timing Controller Input – 檢測輸入視頻流參數(shù)(Vivado IP)
Video Timing Controller Output – 生成輸出視頻流時序參數(shù)(Vivado IP)
Video Direct Memory Access – 支持圖像寫入和從DDR SDRAM讀出
視頻處理鏈的核心是VDMA,我們借助它來將圖像移動到DDR內(nèi)存中。
上圖展示了IP如何將流式數(shù)據(jù)轉(zhuǎn)換為讀和寫管道中內(nèi)存映射的數(shù)據(jù)。兩個VDMA通道都提供了在流式數(shù)據(jù)和內(nèi)存映射數(shù)據(jù)之間轉(zhuǎn)換的能力。寫通道支持流到內(nèi)存映射的轉(zhuǎn)換而讀通道提供內(nèi)存映射到流的轉(zhuǎn)換。
當(dāng)把所有這些集中到Vivado中創(chuàng)建初始的基本系統(tǒng),我們得到了如下架構(gòu),這是Nexys Video HDMI示例提供的。