借助物聯網、機器學習和人工智能等新時代技術,公司正在通過以創新的方式融合物理現實和數字信息來重新構想和創建智能多媒體應用程序。多媒體解決方案涉及音頻/視頻編解碼器,圖像/音頻/視頻處理,邊緣/云應用程序,以及在某些情況下的AR / VR。本博客將討論任何多媒體解決方案中嵌入式視頻處理器內核所涉及的軟件基礎架構。
該視頻處理器是基于 RTL 的強化 IP 模塊,可用于領先的 FPGA 板。借助此嵌入式內核,用戶可以本機支持視頻會議、視頻流和基于 ML 的圖像識別和面部識別應用,具有低延遲和高資源效率。但是,在部署視頻處理器之前,可能會出現與操作系統支持、H.264/265 處理、驅動程序開發等相關的軟件級問題。
讓我們從視頻處理器的概述開始,看看如何為半導體公司解決這些問題,使最終用戶能夠獲得其產品優勢。
嵌入式視頻處理器內核
視頻處理器是一種多組件解決方案,由視頻處理引擎本身、DDR4 塊和同步塊組成。這些組件共同致力于支持高達 4k UHD (3840x2160p60) 分辨率的 H.264/.265 編碼和解碼,對于此 FPGA 器件系列的最高速度等級,支持高達 4096x2160p60 的速率。支持的級別和配置文件包括最高 L5.1 高等級(HEVC)和 L5.2(AVC)。這三款產品都是基于RTL的嵌入式IP產品,部署在目標FPGA器件系列的可編程邏輯結構中,并經過優化/“強化”,以實現最高的資源效率和性能。
視頻處理器引擎能夠同時對多達 32 個視頻流進行編碼和解碼。這是通過在所有預期通道上拆分2160p60帶寬來實現的,支持480p30分辨率的視頻流。支持高達 960Mb/s 的位流 (L5.2 2160p60 高 4:2:2 配置文件 (CAVLC) 和高達 533Mb/s 的位流的 H.265 解碼 L5.1 2160p60 主 4:2:2 10b 內部配置文件 (CABAC)。
視頻處理器引擎中還內置了顯著的多功能性。速率控制選項包括 CBR、VBR 和常量 QP。在較低的幀速率下支持比 2160p60 更高的分辨率。該引擎可以處理 8b 和 10b 顏色深度以及 4:0:0、4:2:0 和 4:2:2 的 YCbCr 色度格式。
微架構包括單獨的編碼器和解碼器部分,每個部分都由嵌入式 32b 可合成 MCU 管理,該 MCU 通過單個 32b AXI-4 Lite I/F 從屬于主機 APU。每個 MCU 都有其 L1 指令和數據緩存,由專用的 32b AXI-4 主站提供支持。使用系統存儲器的數據傳輸通過 4 通道 128b AXI-4 主 I/F 進行,該 I/F 在編碼器和解碼器之間分配。還有一個嵌入式AXI性能監視器,可直接測量總線事務和延遲,無需為每個MCU鎖定固件之外再增加軟件開銷。
DDR4 模塊是內存控制器和 PHY 的組合。控制器部分使用 SDRAM 優化 R/W 事務,而 PHY 執行串行和時鐘管理任務。還有其他支持模塊,可通過系統內存提供初始化和校準。5 個 AXI 端口和 1 個 64b SODIMM 端口提供高達 2677 MT/s 的性能。
第三個模塊同步視頻處理器引擎編碼器和 DMA 之間的數據事務。它可以緩沖多達 256 個 AXI 事務,并確保低延遲性能。
該公司的集成開發環境 (IDE) 用于根據比特流的數量、所選的編解碼器和所需的配置文件來確定給定應用程序所需的視頻處理器內核數以及編碼或解碼緩沖區的配置。通過工具鏈,用戶可以選擇AVC或HEVC編解碼器,I / B / P幀編碼,分辨率和級別,每秒幀數顏色格式和深度,內存使用情況以及壓縮/解壓縮操作。IDE 還提供了帶寬要求和功耗的估計值。
嵌入式軟件支持
嵌入式軟件開發支持任何硬件進入視頻處理可分為以下一般類別:
視頻編解碼器驗證和功能測試
Linux 支持,包括內核開發、驅動程序開發和應用程序支持
工具 & 框架開發
參考設計開發和部署
根據需要使用開源組織并向其提供捐助
在視頻處理器上對 AVC 和 HEVC 編解碼器進行廣泛的驗證。它必須以 3840x2160p60 的性能級別執行,以便在裸機和支持 Linux 的環境中進行編碼和解碼。從原型設計到全面生產,低延遲性能也得到了驗證。
Linux的工作重點是多媒體框架和級別來自定義內核和驅動程序。這包括 v4l2 子系統、DRM 框架和同步塊的驅動程序,以確保低延遲性能。
編解碼器和 Linux 項目代表客戶有效地開發各種參考設計。用于編碼和解碼的邊緣設計,從低延遲視頻會議到32通道視頻流,基于感興趣區域的編碼和ML人臉檢測的發展,所有這些都可以通過使用經過仔細考慮的開源工具,框架和功能來實現。在下面找到這些產品的摘要:
GStreamer – 一個開源的多媒體組件多操作系統庫,可以按照面向對象的設計方法和插件架構進行管道方式組裝,用于多媒體播放、編輯、錄制和流式傳輸。它支持多媒體應用程序的快速構建,并在GNU LGPL許可證下提供。GStreamer產品還包括各種非常有用的工具,包括gst啟動(用于構建和運行GStreamer管道)和gsttrace(一種基本的示蹤劑工具)。
StreamEyeー一個開源工具,提供數據和圖形顯示,用于深入分析視頻流。
Gstshark – 作為Ridgerun的開源項目提供,該工具為GStreamer多媒體應用程序構建的分析和調試提供了基準測試和跟蹤功能。
FFmpeg 和 FFprobe – 都是 FFmpeg 開源項目的一部分,它們是面向多媒體軟件開發人員的硬件無關的多操作系統工具。FFmpeg允許用戶在多種格式之間轉換多媒體文件,更改采樣率并縮放視頻。FFprobe是多媒體流分析的基本工具。
OpenMAX – 可通過 Khronos 集團獲得,這是一個 API 和信號處理函數庫,允許開發人員使多媒體堆棧跨硬件平臺可移植。
Yocto – Linux 基金會的開源協作,用于創建工具(包括 SDK 和 BSP)和支持功能,以便為嵌入式和物聯網應用開發 Linux 自定義實現。社區及其 Linux 版本控制與硬件無關。
Libdrm - 一組用于支持 DRM 的開源低級庫。直接渲染管理器是一個 Linux 內核,用于代表用戶程序管理基于 GPU 的視頻硬件。它通過命令隊列以仲裁模式管理程序請求,并管理硬件子系統資源,特別是內存。庫包括用于支持英特爾、AMD 和英偉達 GPU 的函數。Libdrm 包括用于測試 DRM 顯示驅動程序的模式測試等工具。
媒體 ctl – 一個廣泛使用的開源工具,用于在 Linux v4l2 層中配置媒體控制器管道。
PYUV播放器ー另一個廣泛使用的開源工具,允許用戶播放未壓縮的視頻流。
大膽 - 一個免費的多操作系統音頻編輯器。
上述工具/框架有助于在視頻處理、流媒體和會議下設計高效、優質的多媒體解決方案。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19160瀏覽量
229121 -
嵌入式
+關注
關注
5068文章
19017瀏覽量
303253
發布評論請先 登錄
相關推薦
評論