ZHCAF23A February 2025 – March 2025 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM67A , TDA4AEN-Q1
AM6xA 器件支持兩種視覺框架:GStreamer 與 OpenVX。確切地說,德州儀器 (TI) 已實施并且符合 OpenVX 標準;該實施方案被命名為德州儀器 OpenVX (TIOVX)。該等框架支持片上硬件加速器(例如:C7xMMA 與 ISP)。在底層架構中,該等框架能夠處理 IPC 與數(shù)據(jù)管理,以便降低應用級復雜性。
GStreamer (GST) 是一個基于 Linux 的開源多媒體流水線框架。流水線由能夠實現(xiàn)特定功能的插件構成(例如:采集圖像、更改數(shù)據(jù)格式、縮放大小、壓縮或寫入文件)。雖然支持使用多種社區(qū)插件,但使用德州儀器 (TI) 提供的插件(利用片上加速器)能夠獲得最佳性能。在 Edge AI SDK 中,可提供該等插件,源代碼可用于修改或擴展德州儀器 (TI) 插件。GST 對于快速構建與測試流水線特別有效。除了 C++、Python 以及其他語言支持以外,GST 流水線還可以直接通過命令行運行。例如:
v4l2src device=/dev/video-usb-cam0 ! image/jpeg, width=1280, height=720 ! jpegdec ! video/x-raw, format=NV12 ! kmssink driver-name=tidss sync=true
上述流水線由以“!”分隔符分隔的單個插件組成。該流水線能夠從利用 v4l2 的 USB 攝像頭讀取圖像,解碼 JPEG 編碼圖像,將幀編碼轉換為 NV12,并且通過 Linux 的 KMS/DRM 接口將幀推送到顯示子系統(tǒng) (DSS),以便在顯示器上實現(xiàn)可視化。流水線很可能非常龐大和復雜,但仍然可以通過命令行運行,而無需進行其他編碼。
TIOVX 是用于在異構 SoC 上構建視覺流水線的底層框架。與 GST 相類似,流水線由非循環(huán)圖中的節(jié)點組成,每個節(jié)點能夠在目標內核上運行一個函數(shù)。例如,在 ISP 上處理原始幀或在 C7xMMA 上運行神經(jīng)網(wǎng)絡。TIOVX 應用采用 C/C++ 編寫,且需對 SOC 有更多的了解。在底層架構中,GST 利用 TIOVX 與硬件加速器進行通信。GST 需要與 Linux 進行更多交互,以便傳遞來自插件的控制信號,而 TIOVX 則允許內核更直接地通信。TIOVX 能夠在包括 Linux 與 QNX 的諸多操作系統(tǒng)間移植,適用于功能安全 (FuSa) 認證應用。也正因此,TIOVX 成為汽車級與其他 ASIL 和 SIL 等級用例的絕佳選擇。在中斷使用方面,TIOVX 框架的效率略高于 GST;但是,在幀速率、加速器利用率以及 DDR 帶寬方面,GST 與 TIOVX 幾乎不相上下。
請注意,對于深度學習模型,TIOVX 應用將用戶限制為使用 TIDL_RT;運行時,不能通過 TIOVX 使用 ONNX Runtime 等開源運行時框架 (OSRT)。OSRT 的作用之一是為 TIDL 不支持的層提供備用實施。因此,通過僅使用 TIOVX 的應用程序直接調用 TIDL_RT,這意味著,對于神經(jīng)網(wǎng)絡中的所有層均必須由 TIDL 提供支持。
大多數(shù)情況下,GST 足以在運行 Linux 的 TI AM6xA SoC 上構建視覺處理應用。如果需要功能安全與其他操作系統(tǒng),TIOVX 是更合適的選擇。