將 GMSL 與乙太網路橋接:實現高效能與符合 RFC 規範的多相機視訊串流
本文介紹了如何將 Gigabit 多媒體序列鏈路(GMSL™) 技術無縫橋接到乙太網路(Ethernet)領域,以構建一個完全符合 RFC 規範、高速且低延遲的多相機視訊串流完整鏈路。為了獲得高效能、低功耗與靈活的架構,整個高速視訊串流管線(pipeline)完全利用 FPGA 資源來實現。
前言
透過自主機器人實現的工業自動化以及自動駕駛概念,被認為是 2020 年代最重要的盲新技術之一。在這些應用中,關鍵組件之一便是視訊傳輸,它能即時呈現機器人或車輛周圍環境的資訊。
-
GMSL 技術:作為關鍵支柱,它能透過單一導線在多個相機模組與主機處理系統單晶片(SoC)之間,提供具成本效益的高速視訊鏈路。
-
乙太網路標準:由於多數自主元件中所使用的設備都具備網路功能,乙太網路憑藉其高速的實現變體,成為核心的數據傳輸方法。
因此,視訊串流技術在確保主機 SoC 與環境中其他網路設備之間的相機畫素傳輸上,扮演著至關重要的角色。視訊串流最被看重的兩個面向是高速與低延遲。在這種情況下,FPGA 方案代表了最佳選擇,因為它具備平行處理能力與實現的靈活性。
本文將闡述如何完全利用 FPGA 資源,實現高效能的「視訊行(video line)至 IP 網路封包」轉換,以及基於即時傳輸協定(RTP)的視訊分發。為了展示此方法,本文採用了一個多路 GMSL 相機視訊串流場景,該場景依賴於高效能、低延遲且具成本效益的 ADRD8012-01Z 邊緣運算平台。
GMSL 技術與 RTP 規範
亞德諾半導體(ADI)的 GMSL 技術是一款專為在單一電纜上傳輸即時視訊數據、控制資訊與電源,而設計的高性價比且具擴展性的序列器/解序列器(SERDES)解決方案。它包含兩種架構變體:一種用於相機模組與嵌入式 SoC 系統之間高度可靠的序列鏈路,另一種則用於嵌入式 SoC 與顯示設備之間的鏈路。GMSL 技術在汽車領域被廣泛採用,目前的相機 GMSL 技術是自動駕駛的核心,能使用最少的電纜提供來自車輛多個區域的高速視訊鏈路。此外,它在機器人、工業、儀器運作和醫療保健市場等多個應用中也大有裨益。
為了實現上述的單線傳輸,高效能 SERDES 技術定義了兩個主要組件:GMSL 序列器(Serializer)與GMSL 解序列器(Deserializer)。在相機應用中,序列器設備負責轉換來自 MIPI CSI-2(相機序列介面第 2 版)輸出介面的高速平行視訊數據。接下來是 GMSL 傳輸引擎中的高速序列鏈路,在使用同軸電纜或隔離雙絞線(STP)的情況下,其傳輸速度在 GMSL1 中可達 3 Gbps,GMSL2 可達 6 Gbps,GMSL3 則可達 12 Gbps。最後,解序列器解包來自多個序列器設備的數據,然後將其轉換為一個或多個 CSI-2 輸出介面。為了實現時分傳輸(time divided transmission),GMSL 設備利用了 MIPI CSI-2 規範中提出的虛擬通道(Virtual Channel)功能。虛擬通道識別碼(ID)是一種簡化的數據交錯機制,使接收端能夠透過分配的 ID 值,輕鬆解析出接收自多個視訊源的影格(frames)。
圖 1 描繪了四台支援 GMSL 的相機與整合在 Xilinx SoC FPGA 區域內的 CSI-2 接收器邏輯之間的典型連接,其利用 CSI-2 接收器和 I2C 控制器來同時處理視訊和控制數據。
圖 1:使用 MAX96724 的 GMSL CSI-2 至 FPGA 傳輸鏈路。
對於在 IP 網路上進行即時視訊串流,RTP(即時傳輸協定)是最常用的規範。它通常依賴於使用 UDP(使用者資料報協定) 的低延遲無連接(connectionless)傳輸機制,並定義了多種封裝(packetization)方案以涵蓋多種視訊載荷(payload)格式。圖 2 說明了未壓縮視訊的通用 RTP 封包結構,其中包含通用 RTP 標頭、載荷標頭以及特定數量的部分或完整視訊行(video lines)。由於 RTP 協定屬於應用層(application layer)的實現,它具備所有能深入定義載荷數據特性的必要欄位,在這種情況下,視訊行、視訊類型或影格結束(end-of-frame)欄位即為部分特定於應用的欄位。
圖 2:RTP 封包格式。
無連接網路協定疊:使用 FPGA vs. CPU 子系統
隨著自主性技術在 2020 年代的演進,汽車自動駕駛或透過機器人實現的工業自動化等諸多市場,對創新解決方案的需求極大。除了使用各種感測器網路和複雜的 AI 演算法外,高速且低延遲的視訊串流在談論自動駕駛或像人形機器人這類智慧機器人時,也是關鍵的核心部分之一。在這種情況下,視訊數據的即時遞送是最需要被考量的面向,進而導致必須依賴無連接(connectionless)的傳輸方法。前述的 RTP(即時傳輸協定)在談論即時視訊串流實現時扮演了關鍵支柱,其大多與 UDP 傳輸規範結合並運行於 IP 網路之上。
儘管與基於 TCP/IP 協定疊的面向連接(connection-oriented)設計相比,無連接視訊串流所帶來的資源消耗顯著更低、效能更高,但它仍有進一步提升的空間。因為在汽車和工業領域的背景下,視訊串流大多是在與視訊源有直接硬體(HW)連接的嵌入式系統之間實現的。這種提升可以透過各種硬體解決方案來獲得,例如資料中心所使用的高效能 CPU 子系統。雖然這些運算元件可以解決典型視訊串流管線中的效能差距,但其成本和整合複雜性使其不適合嵌入式 SoC 環境——因為嵌入式環境需要針對能源效率和效能進行優化的組件。另一方面,GPU 元件雖然憑藉極高平行的運算能力提供了另一種高效能運算的選擇,但其硬體層級的靈活性較低。
因此,具備高度可重組性的 FPGA 在談論高效能網路和即時視訊串流時,成為了一個重要的組件。為了將邊緣運算效能極大化,目前的嵌入式 SoC 將 CPU 子系統、FPGA 資源和 RAM 整合在單一晶片上。因此,這類元件可以作為即時視訊串流的最佳運算選擇,它能夠實現視訊數據接收、在收到的視訊畫素與網路封包之間進行轉換,並以極低的 CPU 處理量(僅用於協定欄位配置)來實現視訊串流。
藉此,系統可以提供從延遲和數據速率來看皆為最高可能的效能,來實現完整的視訊數據至網路封包轉換以及無連接視訊串流,即使在使用一個或多個相機模組時也是如此。為了獲得最佳的傳輸效能並適應現有的 FPGA 資源,本網路協定疊架構設計採用了完全符合 RFC(徵求意見稿)規範的應用層協定,以及一個用於傳輸層、網路層和資料鏈結層規範的微型軟體(SW)可控設計。藉此,傳統功能齊全的 IP 路由實現被手動且簡化的 IP 位址分配欄位配置所取代。
視訊網域至網路網域的轉換
如前所述,GMSL 技術旨在將來自多個相機模組的視訊數據進行序列化,然後透過像 CSI-2 這樣的標準化實現將串接的串流輸出到嵌入式 SoC。為了實現串接,它利用了 GMSL SERDES 元件中可用的儲存能力,採用虛擬通道(virtual channel)交錯機制。本文介紹了一種高效能、低延遲的未壓縮視訊行(video line)至 IP 網路封包的轉換。選擇標準化基於 RTP 的視訊串流協定疊,是由於其極簡的標頭(header)設計以及使用 UDP 的無連接傳輸層選項。透過採用這種方法,該視訊串流協定疊能與接收端許多其他完全符合 RTP RFC 規範的軟體或硬體實現相容。
雖然用於未壓縮視訊的 RTP 規範中包含了一種帶有「部分行(partial lines)」的架構,但對於由硬體驅動的實現來說,最佳方法是不進行分段(without fragmentation)的設計,從而能顯著降低資源使用量並將功耗降至最低。
如前所述,有數種運算機器可以進行視訊網域至網路網域的轉換,此外也有多種不同的數據傳輸方法。圖 3、圖 4 和圖 5 展示了使用基於 CPU/GPU/FPGA 的嵌入式系統可能實現的基於記憶體的數據傳輸,以及本文所提出的純 FPGA 視訊串流協定疊架構。
圖 3 說明了在實現依賴於傳統軟硬體協同設計的視訊串流相關網路協定疊時,可以選擇的方案。其中,左側包含視訊接收器子系統,其隨後使用直接記憶體存取(DMA)控制器將視訊行發送到嵌入式系統的 RAM 記憶體中。然後,視訊數據從記憶體中被讀取,並透過使用以下網路協定疊設計機制之一傳輸到乙太網路媒體存取控制器(MAC):(1) 資料平面開發套件(DPDK),或 (2) 依賴於 Linux 核心網路的傳統實現。最後,乙太網路 MAC 再將網路封包轉發到所連接的乙太網路實體層(PHY)。
圖 3:傳統基於記憶體的視訊串流。
圖 4 描述了如何實現基於遠端直接記憶體存取(RDMA)的傳輸鏈路,展示了發送端和接收端兩側對於支援 RDMA 的網路介面卡(NIC)的特定要求。如圖中所示,底層的第 2 層實現是基於乙太網路標準。此範例鏈路是一個概述,呈現了如何進行基於聚合乙太網路的 RDMA(RoCE)傳輸。
圖 4:基於 RDMA 的視訊串流。
圖 5 呈現了本文方法的概述,展示了最重大的組件:基於 FPGA 的視訊行至 RTP 封包轉換,以及無連接網路協定疊模組。
圖 5:FPGA 加速的視訊串流引擎。
圖 6 描述了從 CSI-2 視訊數據到完整 RTP 封包的轉換。為了高效率地設計此轉換,本架構選擇了 1 行視訊對應 1 個 RTP 封包 的對應關係,這從資源使用和乙太網路標準的角度來看都是最佳解決方案。典型的乙太網路影格(frame)是基於指定的實施最大傳輸單元(MTU,生產型 NIC 中使用的測量單位),其範圍為 1500 位元組(常規影格)或 9000 位元組(巨型影格,jumbo frames),在實驗性案例中最高可達理論最大值 65536 位元組(超巨型影格)。由於一行視訊代表數千個位元組,因此選擇基於 1 行的架構以符合大多數接收端 NIC 的設計。
如前所述,純軟體或軟硬體協同設計的視訊數據至 RTP 封包轉換,在視訊和網路軟體子系統上都需要經歷多次記憶體讀/寫操作,這會增加複雜性並因高延遲而降低效能。在這種全硬體(full HW)方法中,實現的複雜性被降到最低,它為每一行的傳輸期間包含一個單一的儲存機制,從而確保封包在通過導線發送時不會被分段。
另一方面,這種極度簡化的機制僅適用於使用虛擬通道能力、來自一組時分(timely divided)視訊串流的數據轉換。在使用多個並行的時分視訊串流組的情況下,需要在傳輸階層中添加一個新的儲存層,從而建立一個進入網路子系統的時分傳輸。
圖 6:視訊畫素(一行)至 RTP 封包的轉換。
如圖 6 所示,該轉換流程包含兩個步驟:
-
從 CSI-2 接收器實現中進行數據採集,並建立符合 AXIS 規範的、基於單行視訊的封包。
-
透過將協定標頭(headers)附加到視訊行來建立 RTP 封包。
ADI GMSL 至 10 GbE 邊緣運算平台
為了充分利用全 FPGA 加速 RTP 視訊串流設計所帶來的優勢,ADI 提供了 ADRD8012-01Z 邊緣運算平台。它是一款圍繞高性價比的 AMD-Xilinx K26 SoM(系統模組)所構建的高效能多路 GMSL 相機至 10 Gigabit 乙太網路(GbE)轉換器。
在硬體配置上,該平台配備了兩個四通道的 MAX96724 GMSL 解序列器(deserializer),可支援多達八台相機的平行視訊串流,在進入解序列器前,這在硬體上被標示為兩個包含四個虛擬通道(VC0 至 VC3)的區塊。圖 7 展示了完整的視訊串流鏈路。
在網路端,該平台提供了一個 SFP+(小封裝可插拔加強版)插槽,可用於實現基於 10 GbE 的網路傳輸。與該產品視訊串流實現一同進行過測試的相機模組包括:
-
車規級的 Tier IV C1 與 C2 相機(具備 120 dB 的高動態範圍,解析度分別為 2.5 MP 與 5.4 MP)
-
Intel® RealSense™ D457
此外,這些相機模組內部均整合了連接至相應影像感測器的影像訊號處理器(ISP),因此能夠傳輸例如基於 YUV422 規範的全彩影像。
如前所述,在視訊串流的背景下,應用層規範是呈現影格(frame)結構的基礎。在這種未壓縮視訊傳輸的案例中,RTP 載荷標頭(RTP payload header)定義了每個載荷欄位的長度,用以指示實際的行長度(line length)、行號(line number)以及其他與分段相關的元素(本篇方法未考慮分段)。另一方面,通用 RTP 標頭則說明了視訊類型與標記識別符(Marker Identifier),該識別符用於指定視訊影格的最後一個位元組,能與 Arm® eXtensible Interface Streaming(AXIS)的 TVALID / TLAST 邏輯完美匹配。
圖 7:ADRD8012-01Z 上的 RTP 視訊串流鏈路。
結論
本文闡述了如何將基於 GMSL 的高速區域視訊傳輸,高效率地擴展到高效能的視訊串流基礎設施中,並在保持相同數據速率效能的同時,提供低延遲的表現。為了實現這種強韌且高效的架構,選用了 FPGA SoC 類型的元件。該元件同時提供 CPU 與 FPGA 資源,完美結合了軟體與硬體的能力,從而打造出一個卓越的多相機即時視訊串流引擎。