關于使用Zynq SoC的嵌入式視覺應用,熱心群眾們說的太多,我就不贅述了。今天我們換一個新的視角,來看看如何使用純FPGA來實現嵌入式視覺方案。
這篇文章,將帶你了解如何使用Digilent Nexys Video Artix-7 FPGA多媒體音視頻開發板來實現一個簡單的HDMI輸入/輸出視頻處理系統。特別是如果你是一名新手,通過本文,你會對基于FPGA的視頻處理有更多基本的理解。
坦白說,Digilent Nexys Video開發板可能是市面上性價比最高的音視頻處理FPGA口袋實驗室了。作為一款專用于音視頻處理教學以及視頻和視覺應用原型開發的評估板,此板搭載了XilinxArtix-7系列中資源最大的器件Aritx-7 XC7A200T FPGA。
今天我們就來介紹一下如何使用Nexys Video來實現一個簡單的HDMI輸入/輸出視頻處理系統。先來看下此板所集成的支持視頻接收、處理和生成/輸出的下列I/O和外設接口:
HDMI輸入
HDMI輸出
顯示輸出端口
線路輸入(Line In)/麥克輸入/耳機輸出/線路輸出(Line Out)
FMC
使用VHDL與RTL方法,要創建一個簡單的圖像處理流水線,我們需要實現如下架構:
監控處理器(本例中采用Xilinx Artix-7 FPGA實現的MicroBlaze軟核RISC處理器)用于監控與用戶接口間的通信并根據應用的要求配置圖像處理流水線。在本例這個簡單的架構中,HDMI輸入口接收的數據從原始的并行格式的視頻數據、Hsync和VSync轉換為AXI Streaming(AXIS)格式。我們想要將數據轉換成AXIS格式是因為Vivado提供多個使用這種數據格式的圖像處理IP。如果我們使用Vivado HLS來創建我們自己的圖像處理模塊,那么能夠支持AXIS接口也很重要。
MicroBlaze處理器需要支持如下外圍設備:
AXI UART –支持系統的通信和控制
AXI Timer – 使MicroBlaze可以實時運行事件
MicroBlaze調試模塊–支持MicroBlaze的調試
MicroBlaze本地存儲–連接到DLMB和ILMB(數據&指令本地存儲總線)
我們將使用存儲接口生成器來創建與板上SDRAM對接的DDR接口。這個接口和SDRAM創建了一個公共的存儲框架,可以訪問圖像處理管道以及使用AXI interconnect訪問監控處理器。
創建一個簡單的圖像處理流水線需要使用如下IP:
DVI2RGB – Digilent提供的HDMI輸入IP
RGB2DVI – Digitlent提供的HDMI輸出IP
Video In to AXI4-Stream – 將并行視頻輸入轉換為AXI Streaming協議(Vivado IP)
AXI4-Stream to Video Out – 將AXI-Stream轉換為并行視頻輸出(Vivado IP)
Video Timing Controller Input – 檢測輸入視頻流參數(Vivado IP)
Video Timing Controller Output – 生成輸出視頻流時序參數(Vivado IP)
Video Direct Memory Access – 支持圖像寫入和從DDR SDRAM讀出
視頻處理鏈的核心是VDMA,我們借助它來將圖像移動到DDR內存中。
上圖展示了IP如何將流式數據轉換為讀和寫管道中內存映射的數據。兩個VDMA通道都提供了在流式數據和內存映射數據之間轉換的能力。寫通道支持流到內存映射的轉換而讀通道提供內存映射到流的轉換。
當把所有這些集中到Vivado中創建初始的基本系統,我們得到了如下架構,這是Nexys Video HDMI示例提供的。
-
FPGA
+關注
關注
1626文章
21670瀏覽量
601873 -
嵌入式視覺
+關注
關注
8文章
117瀏覽量
59138 -
Zynq
+關注
關注
9文章
608瀏覽量
47128
原文標題:在Digilent Nexys Video Artix-7板卡上實現HDMI I/O視頻處理系統
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論