Video Frame Buffer IP 簡介
Video Frame Buffer Read/Write IP 支持您將視頻數(shù)據(jù)從存儲器域(AXI4 存儲器映射接口)遷移到 AXI4-Stream 接口,或反之亦然。
從更高層次來看,它的作用與我們在先前視頻系列(視頻系列 24、視頻系列 25、視頻系列 26 等)中所使用過的 AXI VDMA IP 并無差異。
那么為什么要使用 Video Frame Buffer IP 核而不是 AXI VDMA IP 呢?
答案就記錄在(賽靈思答復(fù)記錄 72543)中。究其本質(zhì),AXI VDMA IP 從 AXI4-Stream 接口提取字節(jié),并直接將其移植到存儲器中,無關(guān)乎視頻數(shù)據(jù)格式。
Video Frame Buffer 必須關(guān)注傳入傳出存儲器的數(shù)據(jù)格式。根據(jù)所選格式,它能以不同方式將數(shù)據(jù)存儲在存儲器中。這對于 Linux 應(yīng)用非常實用。
比如,V4L2 格式 YUYV 和 UYVY 都表示 YUV4:2:2 8 位,唯一差別就在于兩者在存儲器中的存儲方式。
因此,建議針對新設(shè)計采用 Video Frame Buffer IP。
如需了解有關(guān) Video Frame Buffer Read/Write IP 的詳情,請參閱 (PG278)。
為 Video Frame Buffer IP 生成設(shè)計示例
注意:下文是基于 2019.2 版本中提供的設(shè)計示例編寫的。
硬件 (Vivado 2019.2) 設(shè)計示例
要生成應(yīng)用設(shè)計示例的硬件部分 (Vivado Design),請遵循 (PG278) 的第 5 章中的步驟進行操作。此處設(shè)計示例可用于 KC705、ZCU102、ZCU104 和 ZCU106 評估板。即使您沒有上述任意評估板,我也建議從設(shè)計示例開始實踐。這始終都是最佳的起點。
注意:要利用 Vivado WebPack 許可證生成設(shè)計示例,請使用 ZCU104 評估板作為起點開始操作。
設(shè)計示例分為兩種。一種用于 Video Frame Buffer Read IP,另一種用于 Video Frame Buffer Write IP。
我建議使用面向 Video Frame Buffer Write IP 的設(shè)計示例,因為 Video Frame Buffer Write IP 和 Video Frame Buffer Read IP 都囊括在其中。
Video Frame Buffer Write IP 設(shè)計示例的硬件設(shè)計屬于非?;A(chǔ)性的設(shè)計。
它使用 Video Frame Buffer Read IP 將數(shù)據(jù)從存儲器讀取到 AXI4-Stream 接口。
隨后,將其轉(zhuǎn)換為本地視頻,然后再使用 AXI4-Stream to Video Out IP 和 Video in to AXI4-Stream IP 重新轉(zhuǎn)換為 AXI4-Stream。
最后使用 Video Frame Buffer Write IP 將 AXI4-Stream 數(shù)據(jù)重新寫入存儲器。
我認為對于此設(shè)計,有兩個值得注意的要點:
1. 上述兩個 Video Frame Buffer IP(Read 和 Write)各自的中斷輸出都連接到處理器。這是前提條件。Video Frame Buffer 是基于中斷的 IP。
2. 而這兩個 Video Frame Buffer IP 的復(fù)位輸入則連接至 AXI GPIO IP。這一點至關(guān)重要,因為它支持您從處理器執(zhí)行 IP 軟復(fù)位。就像所有 HLS IP 一樣,只要分辨率改變,就需要將 Video Frame Buffer 復(fù)位。
應(yīng)用示例 (Vitis 2019.2)
要生成應(yīng)用示例,在 Vivado 中,首先將硬件導(dǎo)出至賽靈思 Vitis(依次單擊 File > Export > Export Hardware …)。
確保在導(dǎo)出的硬件中包含比特流。這將創(chuàng)建一個 XSA 文件。
輸入您所選的平臺名稱(例如,v_frmbuf_zcu104_pfm),然后單擊 Next。
選擇從 Vivado 導(dǎo)出的 XSA 文件,確保已選中 A53 處理器,然后單擊 Finish。
創(chuàng)建平臺后,單擊 psu_cortexa53_0 > standalone on psu_cortexa53_0 下的 Board Support Package,然后展開 Peripheral Drivers 部分。
在 Peripheral Drivers 下,查找對應(yīng)于 Video Frame Buffer Write (v_frmbuf_wr) 的行,然后單擊 Import Examples。
選擇示例 (xv_frmbufwr_example),然后單擊 OK。
運行應(yīng)用示例
注意:以下步驟假定評估板已上電并且已通過 UART 連接,BOOT 模式開關(guān)已設(shè)置為 JTAG 模式和 JTAG,并且已打開 UART 終端(如 Tera Term)供正確的 COM 端口使用。
單擊應(yīng)用并單擊錘子圖標(biāo)以構(gòu)建應(yīng)用:
要在硬件上啟動應(yīng)用示例,請右鍵單擊設(shè)計應(yīng)用示例,并單擊 Run As > Run Configurations…
在 Create, manage, and run configurations 窗口中,右鍵單擊 Single Application Debug,然后單擊 New Configuration。
在 UART 終端中,可以看到此應(yīng)用正在嘗試不同的視頻分辨率和色彩空間組合。
在應(yīng)用運行結(jié)束時,可能會顯示部分測試失敗的原因(主要原因是硬件配置不支持)。
色彩空間和視頻分辨率在應(yīng)用中以 ColorFormats 和 TestModes 結(jié)構(gòu)來定義。
編輯:hfy
-
存儲器
+關(guān)注
關(guān)注
38文章
7408瀏覽量
163416 -
賽靈思
+關(guān)注
關(guān)注
32文章
1794瀏覽量
131085 -
Video
+關(guān)注
關(guān)注
0文章
195瀏覽量
45123 -
Vitis
+關(guān)注
關(guān)注
0文章
145瀏覽量
7361
發(fā)布評論請先 登錄
相關(guān)推薦
評論