技術文章
2020/11/04

【電子工程專輯】為即時視訊處理選擇SWaP-C最佳化方案

【新聞參考資料】

建構一個運算及資源餘量皆超乎預期的系統可以既便宜又簡單,但一提到邊緣裝置或終端,明智的最法是最佳化其尺寸、重量、功率與成本(Size、Weight、Power與Cost,簡稱SWaP-C)。

隨著邊緣運算市場持續發展,區分邊緣系統和終端(endpoint)產品對設計人員來說非常重要。邊緣系統向來複雜,相對而言終端會簡單一些,可以說像一個感測器加上特定應用積體電路(ASIC)一樣簡單。無論是建構邊緣系統還是終端產品,可以肯定的是,設計人員會選擇那種能夠以合理的前期成本達成可控營運開銷之元件。接下來我們會以兩篇文章分別討論為什麼讓成本分析到此結束時是錯誤的,以及該如何避免該問題產生。

建構一個運算及資源餘量(Headroom)皆超乎預期的系統可以既便宜又簡單,但一提到邊緣裝置或終端,明智的最法是最佳化其尺寸、重量、功率與成本(Size、Weight、Power與Cost,簡稱SWaP-C)。邊緣系統若過度配置可能有害SWaP-C表現;若發生在終端,SWaP-C過度配置會是一場災難。

以攝影機來檢視此狀況是一個很好的起始點。因為它無處不在,無論在筆記型電腦、遊戲機、平板電腦、保全系統及智慧家電中皆有攝影機存在,特別是每支智慧型手機都還配備有兩個以上的攝影機。

根據LDV Capital的估計,地球上的攝影機數量已經比人口數量多很多倍,到2022年,估計運作中的攝影機總數將達450億台(全球人口於2018年已達7.594億人)。在2019年,每天、每分鐘都有累計超過500多個小時的視訊上傳到YouTube,這意味著每小時有超過3萬小時的視訊。而YouTube僅是每日影像擷取量的一小部分,人類可能無法看遍所有被產出的視訊。

且話說回來,大部分的影像擷取也不一定是供人眼觀看,有更多是為了未來檢索用途所建立的記錄與存檔,更可能是用做訊號處理和AI演算法自動分析。這就有一個為滿足AI需求所生之潛在而龐大的市場,其感興趣的情境及配套會是什麼?

一種常見情境是使用多個攝影機/感測器監視場景以找出異常事件,例如非法入侵者等諸如此類用途;或使用多個攝影機/感測器的傳輸資訊進行車輛導航。

視訊應用

對於某些場景之安全應用,監視影像僅被存檔,並且僅在發生某些異常事件時才會進行查看。而其他安全方面的應用,必須透過多台攝影機進行持續性、即時性的影像監控。由於它繁瑣且必須連續監視,這些應用程式越來越多地轉向使用AI系統進行自主監視;AI監視系統不會有人類監視的缺點,如注意力分散、疲倦、請病假等。

在其他應用中,視訊可以單獨使用或透過其他感測器數據進行擴增,並用於車輛導航。在這種近乎苛刻之應用中,準確性、延遲和可靠性表現非常重要,因為能否始終保持正常運作攸關人命。毫秒等級的延遲可能是避免碰撞發生的決定性因素,所以通常會在終端完成視訊分析與感測器資料融合。

此外,以無線傳輸數據並不一定可行,也可能並非隨時可行;取決於需求負載的變化,資料傳輸至雲端伺服器可能會出現幾秒鐘的延遲。而相較於接乎零成本的本地運算,在雲端進行分析與儲存算是昂貴的。

在本地處理影像系統數據有兩種基本架構:一是透過普通電腦上收集、處理及分析一些感測器資料,即所謂的「邊緣處理」(edge processing);二是將處理資源分散至更接近每個感測器的位置,執行本地化的「終端處理」(endpoint processing)。方法的選擇會對系統之SWaP-C表現、可擴展性與未來的迷你化產生關鍵性影響。

邊緣處理

邊緣處理架構通常基於一般用途之可編程多媒體處理電腦,這類電腦配備感測器輸入埠與網路連結,具有高頻寬大量處理能力,執行Linux等作業系統。這類電腦通常內建多GB之高頻寬DRAM,因為其多媒體處理器被設計為能有效執行不同工作負載。

有一些電腦配備更多的RAM與更強大處理能力,因為得在最壞的情況下也能提供運算餘量。圖1是三種熱門的訊號處理電腦主機板,在尺寸、功率及像素處理性能上有所不同。為這類系統添加更多的感測器或許不需要更高處理性能,取決於該設計的飽和程度;但這種超載可能在會少數幾種配置產生耗電和散熱問題。

圖1:三種不同的訊號處理單板電腦。

終端處理

終端處理並非使用普通多媒體處理電腦,而是將高頻寬多媒體處理移至感測器,或在實體上非常接近的一組感測器。舉例來說,終端處理器節點可以是包含FPGA和DRAM的模組,透過MIPI連接埠與兩個或多個視訊影線感測器連結。

FPGA載入了執行特定功能的位元流,例如影像辨識/分類或影像品質調整,以及鏡頭失真校正/影像旋轉,除了這兩個例子還有其他近乎無限多的範例。每個節點都支援一個感測器或一組相關的感測器,而且每個節點執行的任務不同。

在這類終端處理架構中,第一層處理是高頻寬資料處理/資料縮減(data reduction),是在感測器附近完成。節點輸出的可以是經過分析的低頻寬資料,以大幅縮減隨後在上游進行分析的資料集大小。例如,節點輸出的可以是針對場景中已移動之某些物體的指示,以及物體的初步分類,可與其他節點的輸出一起發送到附近的處理器,藉由分析這些預處理的資料流來推斷整個系統正在觀察的內容。

在這種情況下,鄰近的處理器是以更簡單、功耗更低的處理器取代前一種架構的高性能多媒體邊緣處理器。這類處理器能運作於大幅減少的預處理資料,分散式系統也能產生相同的整體結果。可以依據需要透過添加節點或將節點擴展至更高性能的硬體,打造具備更多或更高解析度/影格率感測器的系統變體。這種分散式架構非常適合模組化擴展與升級。

圖2為兩種能夠支援4K/60 AI視訊處理FPGA+DRAM處理節點範例。右側是採用常規BGA封裝的Lattice ECP5系列FPGA和DDR3 DRAM;左側是晶圓級封裝組件,採扇入式(Fan-in) WLCSP封裝的DRAM,整個模組尺寸與右側的常規BGA型FPGA封裝的尺寸大致相同。WLCSP DRAM大約只有米粒大小,但容量為256 Mbit,頻寬與x16 DDR3相同。左側基於WLCSP的節點之ECP5 FPGA功耗約為1瓦,另外還有2顆DRAM執行4K影片工作負載。

圖2:FPGA +2個DRAM AI處理器節點,支援4K/60視訊處理(CSP位於左側,常規BGA位於右側)。

SWaP-C最佳化

從研發的角度來看,在邊緣處理架構中使用現成的多媒體電腦很有吸引力,因為硬體已經設計好了,使用起來很簡單,只需將攝影機和感測器以纜線連結,然後使用在標準作業系統下執行的工具即可專注於軟體開發。但這是對功耗/空間最佳化的解決方案嗎?會是符合大眾市場產品的最具成本效益解決方案嗎?

可以將硬體提供的「資源餘量」視為過度配置嗎?換句話說,你的硬體功能超出了該應用所需,也帶來過度配置的相關成本。

過度配置成本

除了實際的硬體成本,超額成本還可以在硬體的功耗和實體尺寸(體積+重量)中發現。根據應用,這些可能是關鍵的決定因素;舉例來說,汽車導航系統的重量、尺寸及功耗限制,與中型負載無人機的導航系統不盡相同,但在威脅偵測和避免碰撞方面有許多相似要求,特別是無人機具有除了X軸、Y軸以外還有Z軸之運動自由度需求。

以處理器和記憶體晶片來說,常見之設計過度配置為:處理器可能比所需要的功能更強大/速度更快;對記憶體來說,由於頻寬需求以及標準的記憶體架構及容量,可能提供比應用實際需要更多的記憶體位元(bits),這些多餘的記憶體容量會消耗不必要的功率。

記憶體位元/頻寬問題的一個範例是4K / 60視訊影格緩衝。對於24 位元視訊,僅需要200Mb,但是頻寬需求須達DDR3性能。JEDEC標準DDR3之最小容量為1Gb,因此使用DDR3記憶體至少衍生500%的容量超額配置。若能不只以頻寬為考量,還能平衡記憶體容量的選擇,以正確的容量提供合適的頻寬,將可大幅地降低整體系統功耗。

功率之隱藏成本

功率是一個特別敏感的參數,因為它的成本往往以不同方式隱藏來呈現。一種是電源供應器的需求,更高功率意味著在電池供電的裝置中,在相同的運作時間下需要更大容量電池,而更大的電池容量通常意味著更大的實體尺寸、重量及成本。電池往往決定了系統裝置之外觀大小尺寸,因此若能將產品之功耗降至最低特別重要,一來可以使外觀尺寸縮小,也意味著使用的元件材料更少,進而降低整體系統成本。

另一種功率隱藏成本是散熱的考量;設計良好的BGA和PCB通常無需散熱器即可承受高達1瓦的功率,取決於透過錫球將熱量傳導到PCB以及透過封裝表面的對流來散熱。一旦達到特定產品的功耗閾值就得使用散熱器。較高的功耗閾值取決於氣流,即需要添加風扇等裝置。

圖3中顯示了圖1中兩個配備散熱器的系統範例:其中一個必須考慮散熱能力低至5到10瓦的主機板冷卻系統。對於許多應用,散熱解決方案的體積與重量的需求遠遠超過其處理器板卡所設計的可支援程度。

圖3:圖1範例的處理器板卡配備的散熱解決方案。

 

因為應用於終端架構的FPGA/DRAM節點功耗小於1瓦,使用終端處理方法比邊緣處理方法實現的多孔徑訊號處理系統更具有顯著的SWaP-C優勢,這來自於系統在散熱解決方案的過度配置影響。而在接下來的文章將檢視不同記憶體對終端處理節點的SWaP-C影響,並將介紹針對小尺寸影像應用最佳化的一種高頻寬記憶體架構。