本文將介紹如何創建一個支持HDMI輸入到輸出的圖像處理平臺。這可以用作基于HLS的圖像處理演示的基礎。
概述
該項目將演示如何基于XilinxZynq創建一個簡單的圖像處理平臺。然后,該項目將用作后續開發的基礎,這些開發側重于基于高級綜合的開發,允許使用行業標準OpenCV庫。
為了創建這個示例,我使用ZyboZ7,因為它提供HDMI輸入和輸出,以及用于MIPI相機的CSI-2接口,我們也可以將其用于未來的開發。
除了Zybo-Z7,我們還將使用:
HDMI攝像頭,例如Apeman1080P運動攝像頭
HDMI輸入和輸出端口的相關電纜
HDMI顯示
為了創建應用程序,我們將使用以下開發工具和庫:
維瓦多2017.4
DigilentVivado庫
要創建此示例,我們需要執行以下準備步驟:
將DigilentVivado庫下載并解壓到您的計算機
安裝DigilentBoard定義,如果您不確定如何執行此操作,請單擊此處
創建一個針對Zybo-Z7的新Vivado項目
在Vivado中創建新的框圖
構成
在Vivado框圖中,我們需要添加以下IP:
Zynq處理系統-這將提供圖像處理系統的配置和控制,同時它的DDR也用作幀緩沖區以確保以下配置
PL時鐘0=200MHz
PL時鐘1=100MHz
HP0Slaveenabled-這將用于將圖像傳輸到PSDDR或從PSDDR傳輸圖像
GP0Masterenabled-用于配置圖像處理鏈
DVI2RGB-這將HDMI視頻流轉換為具有適當垂直和水平同步的24位RGB總線。
AXIGPIO-用于斷言HDMI源上的熱插拔檢測的單個輸出,未能斷言這可能意味著沒有接收到視頻。
視頻定時控制器-配置為檢測,這將檢測從HDMI源接收的視頻的模式。
視頻輸入到AXIS-這會將并行視頻和同步轉換為AXI流。與TDATA上的圖像數據一起,幀的開始由TUser信號標識,而行尾由TLast信號標識。
將此配置為具有獨立時鐘,以便像素時鐘和AXI流時鐘不同。
AXIS子集轉換器-此組件將24位視頻輸出的格式重新映射為正確的RGB格式。其中兩個在VDMA之前和之后使用。
視頻直接內存-寫入通道將AXI流視頻移動到AXI內存映射形式,以便存儲在PSDDR內存中。而讀取通道訪問PSDDR并將AXI內存映射格式轉換為AXI流以供輸出。確保啟用兩個方向。
視頻時序控制器-配置為時序源,配置所需的時序取決于輸入視頻時序。這被AXIS用于視頻輸出以生成輸出并行視頻和同步
RGB2DVI-這將輸出并行視頻和垂直和水平同步轉換為HDMI
為了支持動態配置輸出時鐘,使用了DigilentVivado庫中的動態時鐘發生器。這允許使用AXIlite根據接收到的視頻格式來改變像素時鐘頻率。
Vivado項目
將所有這些放在一起可以創建一個Vivado項目,如下所示。
然后可以構建Vivado項目并將其導出到XilinxSDK以使我們能夠創建應用軟件。
在XilinxSDK中,我們需要編寫我們的軟件應用程序來執行以下操作:
斷言連接到HDMIIN熱插拔檢測的GPIO-斷言此信號后,處理器等待5秒以確保HDMI源生成視頻。
配置視頻定時控制器(檢測器)以報告傳入視頻模式。
配置視頻時序控制器(生成器)以根據檢測視頻模式生成時序。
配置動態時鐘
將VDMA配置為從PSDDR讀取和寫入數據
運行應用程序SW應該可以讓您看到所選HDMI源上的圖像。
實物
總而言之,這個項目為我們提供了一個想法平臺,我們可以在未來使用它來展示我們基于HLS圖像處理的應用程序。
-
HDMI
+關注
關注
32文章
1676瀏覽量
151682 -
圖像處理
+關注
關注
27文章
1282瀏覽量
56656 -
HLS
+關注
關注
1文章
128瀏覽量
24043
發布評論請先 登錄
相關推薦
評論