Video Frame Buffer IP 簡介
Video Frame Buffer Read/Write IP 支持您將視頻數據從存儲器域(AXI4 存儲器映射接口)遷移到 AXI4-Stream 接口,或反之亦然。
從更高層次來看,它的作用與我們在先前視頻系列(視頻系列 24、視頻系列 25、視頻系列 26 等)中所使用過的 AXI VDMA IP 并無差異。
那么為什么要使用 Video Frame Buffer IP 核而不是 AXI VDMA IP 呢?
答案就記錄在(賽靈思答復記錄 72543)中。究其本質,AXI VDMA IP 從 AXI4-Stream 接口提取字節,并直接將其移植到存儲器中,無關乎視頻數據格式。
Video Frame Buffer 必須關注傳入傳出存儲器的數據格式。根據所選格式,它能以不同方式將數據存儲在存儲器中。這對于 Linux 應用非常實用。
比如,V4L2 格式 YUYV 和 UYVY 都表示 YUV4:2:2 8 位,唯一差別就在于兩者在存儲器中的存儲方式。
因此,建議針對新設計采用 Video Frame Buffer IP。
如需了解有關 Video Frame Buffer Read/Write IP 的詳情,請參閱 (PG278)。
為 Video Frame Buffer IP 生成設計示例
注意:下文是基于 2019.2 版本中提供的設計示例編寫的。
硬件 (Vivado 2019.2) 設計示例
要生成應用設計示例的硬件部分 (Vivado Design),請遵循 (PG278) 的第 5 章中的步驟進行操作。此處設計示例可用于 KC705、ZCU102、ZCU104 和 ZCU106 評估板。即使您沒有上述任意評估板,我也建議從設計示例開始實踐。這始終都是最佳的起點。
注意:要利用 Vivado WebPack 許可證生成設計示例,請使用 ZCU104 評估板作為起點開始操作。
設計示例分為兩種。一種用于 Video Frame Buffer Read IP,另一種用于 Video Frame Buffer Write IP。
我建議使用面向 Video Frame Buffer Write IP 的設計示例,因為 Video Frame Buffer Write IP 和 Video Frame Buffer Read IP 都囊括在其中。
Video Frame Buffer Write IP 設計示例的硬件設計屬于非常基礎性的設計。
它使用 Video Frame Buffer Read IP 將數據從存儲器讀取到 AXI4-Stream 接口。
隨后,將其轉換為本地視頻,然后再使用 AXI4-Stream to Video Out IP 和 Video in to AXI4-Stream IP 重新轉換為 AXI4-Stream。
最后使用 Video Frame Buffer Write IP 將 AXI4-Stream 數據重新寫入存儲器。

我認為對于此設計,有兩個值得注意的要點:
1. 上述兩個 Video Frame Buffer IP(Read 和 Write)各自的中斷輸出都連接到處理器。這是前提條件。Video Frame Buffer 是基于中斷的 IP。

2. 而這兩個 Video Frame Buffer IP 的復位輸入則連接至 AXI GPIO IP。這一點至關重要,因為它支持您從處理器執行 IP 軟復位。就像所有 HLS IP 一樣,只要分辨率改變,就需要將 Video Frame Buffer 復位。
應用示例 (Vitis 2019.2)
要生成應用示例,在 Vivado 中,首先將硬件導出至賽靈思 Vitis(依次單擊 File > Export > Export Hardware …)。
確保在導出的硬件中包含比特流。這將創建一個 XSA 文件。

啟動賽靈思 Vitis 并選擇要用作為工作空間的目錄。
在 Vitis 中,單擊 New > Platform project。

輸入您所選的平臺名稱(例如,v_frmbuf_zcu104_pfm),然后單擊 Next。
確保選中 Create from hardware specification (XSA),然后單擊 Next。
選擇從 Vivado 導出的 XSA 文件,確保已選中 A53 處理器,然后單擊 Finish。

創建平臺后,單擊 psu_cortexa53_0 > standalone on psu_cortexa53_0 下的 Board Support Package,然后展開 Peripheral Drivers 部分。

在 Peripheral Drivers 下,查找對應于 Video Frame Buffer Write (v_frmbuf_wr) 的行,然后單擊 Import Examples。

選擇示例 (xv_frmbufwr_example),然后單擊 OK。

運行應用示例
注意:以下步驟假定評估板已上電并且已通過 UART 連接,BOOT 模式開關已設置為 JTAG 模式和 JTAG,并且已打開 UART 終端(如 Tera Term)供正確的 COM 端口使用。
單擊應用并單擊錘子圖標以構建應用:
要在硬件上啟動應用示例,請右鍵單擊設計應用示例,并單擊 Run As > Run Configurations…
在 Create, manage, and run configurations 窗口中,右鍵單擊 Single Application Debug,然后單擊 New Configuration。
在 UART 終端中,可以看到此應用正在嘗試不同的視頻分辨率和色彩空間組合。
在應用運行結束時,可能會顯示部分測試失敗的原因(主要原因是硬件配置不支持)。
色彩空間和視頻分辨率在應用中以 ColorFormats 和 TestModes 結構來定義。


編輯:hfy
-
存儲器
+關注
關注
39文章
7738瀏覽量
171654 -
賽靈思
+關注
關注
33文章
1798瀏覽量
133426 -
Video
+關注
關注
0文章
197瀏覽量
46539 -
Vitis
+關注
關注
0文章
157瀏覽量
8347
發布評論請先 登錄
AI端側部署案例(SC171開發套件V2-FAS)
RDMA設計39:寄存器功能驗證與分析
AI端側部署案例(SC171開發套件V3)2026版
FPGA初學者求助
RDMA設計5:RoCE V2 IP架構
Video Processing Subsystem與HDMI示例設計
學習物聯網怎么入門?
C語言入門(硬件嵌入式那種不是APP開發的)
避雷!樹莓派初學者常犯的5個錯誤!
射頻設計入門之S參數
AI端側部署案例(SC171開發套件V3)
從單片機初學者邁向單片機工程師
一文詳解Video In to AXI4-Stream IP核
Video Frame Buffer IP初學者入門案例分析
評論