siemens x
傳感器

用Spartan-3A DSP器件實現(xiàn)汽車應(yīng)用中的塊匹配

2025China.cn   2008年08月01日
汽車工程師采用多種智能技術(shù)幫助人們安全駕駛汽車。汽車系統(tǒng)中的主要技術(shù)包括雷達、超聲和攝像/視覺感測。這些技術(shù)統(tǒng)稱駕駛員輔助 (DA) 系統(tǒng),用于在惡劣條件和危險路況下協(xié)助安全駕駛。

   第一代攝像 DA 系統(tǒng)目前可見于各種生產(chǎn)用車型。這類系統(tǒng)大多為駕駛員提供車輛周邊環(huán)境的視頻圖像。最常見的是泊車/倒車輔助系統(tǒng),這種系統(tǒng)用后視攝像頭拍攝本車后面的景物,并且在收音機/導航系統(tǒng)的屏幕上或者在儀表板中的小型顯示器上顯示圖像。

   第二代攝像系統(tǒng)正處于開發(fā)測試階段,目前使用有限。第二代系統(tǒng)并非僅為駕駛員提供圖像,而是運用圖像處理與解析從視頻流中提取信息,并且對車輛環(huán)境進行表征和評估。必要時駕駛員會收到相應(yīng)警示。

   隨著工程師們獲取車輛環(huán)境表征方面的實際經(jīng)驗,未來的 DA 技術(shù)會更復(fù)雜,將為消費者提供更強大的實用工具并且增強其它汽車子系統(tǒng)的性能。圖 1 概括了目前和未來的多種 DA 功能。



高級處理要求

   DA 系統(tǒng)的處理要求可能超過目前汽車級串行 DSP 處理器的能力。另外,為了提高消費價值,在一套視覺傳感器上捆綁多種 DA 功能的需求日益高漲。

   例如,前瞻視覺模塊可能需要同時支持車道偏離警示、智能大燈控制和標志識別功能,而所有這些都需要不同的處理算法。因此,對于用 FPGA 通過原始圖像數(shù)據(jù)處理、配置靈活性和器件可縮放性來提供系統(tǒng)價值,DA 市場提供了實實在在的機會。

   視覺 DA 系統(tǒng)的圖像處理與解析功能可以包括空間/時間濾波、鏡頭失真校正、圖像清晰化、對比度增強、邊沿檢測、圖像匹配、物體識別和物體跟蹤,在某些情況下還包括圖形疊加。尤其值得關(guān)注的是一種支持運動估計或立體視差計算的圖像匹配功能。

   為了說明 FPGA 處理的性能價值,我們來考慮這樣一個視覺系統(tǒng):以 30 Hz 幀速率 (fps) 生成視頻的寬幅 VGA 分辨率成像器件(752 x 480 像素),而且需要估計幀間物體運動(或流動)。有一種算法(也適用于立體視差計算)是將圖像劃分為若干個塊(如大小為 4 x 4 像素),然后判斷第一幀中各圖像塊對第二幀中指定搜索區(qū)(如 20 x 20 像素)內(nèi)某位置的匹配條件。

   一種常用的匹配條件是用算子 SAD(絕對差和)求出第一幀圖像中的4x4塊與第二幀圖像上搜索區(qū)內(nèi)的像素之間的像素灰度最小絕對誤差 (MAE)。

   4 x 4 塊匹配示例需要 250 MMAE/s(每秒百萬次 MAE 計算)以上的性能,因為 (752 像素) x (480 行) x (20 x 20 像素搜索區(qū)) x (30 fps)/(4 x 4 像素塊大小) = 270,720,000 MAE/s。MAE 表示 4 x 4 像素塊的最終匹配誤差,而 SAD 是指根據(jù)四個獨立元素對進行計算得到的絕對差和。所以,每 MAE 需要四次 SAD 運算。

處理選項

   由汽車設(shè)計工程師決定的處理選項包括超長指令字 (VLIW) DSP-CPU 和 FPGA。FPGA 的處理能力遠遠高于任何現(xiàn)有的 VLIW DSP-CPU。這是由于 FPGA 的架構(gòu):大量并行功能單元(包括可編程 MAC)使 FPGA 的性能比任何 DSP 都高出 10-30 倍(具體性能取決于所實現(xiàn)的應(yīng)用),即使 FPGA 的時鐘頻率比 DSP-CPU 的時鐘頻率低得多。

VLIW DSP-CPU 處理器中的 SAD 和 MAE 計算

   在一個 32 位架構(gòu)的單指令多數(shù)據(jù) (SIMD) DSP-CPU 中可實現(xiàn)四個 8 位像素視頻數(shù)據(jù)單元的 SAD 運算,因此,僅在一個周期內(nèi)即可有效執(zhí)行相當于11條基本指令的運算,如圖 2 所示。



   例如,Nexperia PNX1500 媒體處理器配有 32 位 TriMedia VLIW-CPU,對于具有二周期延遲的 8 位像素,可以在一個時鐘周期內(nèi)執(zhí)行兩條四路 SAD 指令。算上超長指令字,就是每時鐘周期最多五條基本RISC/SIMD指令,其中只有兩條可以是SAD指令(在TriMedia數(shù)據(jù)手冊中稱為“8meii”)。

   所以,對 4 x 4 大小的塊進行 MAE 計算需要五個時鐘周期,如表 1 所示:兩個周期用于兩條四路 SAD 指令的流水線處理(周期 1 用于 sad1/sad2,周期 2 用于 sad3/sad4);三個周期用于部分結(jié)果的累加(周期3、4 和 5)。因此,如果只處理一個塊,則一個 300 MHz 的 Nexperia PNX1500 處理器的處理能力最高可達 60 MMAE/s。



   如果每次處理一個以上 4 x 4 塊,最高性能可略有提高。例如,可以在七個周期內(nèi)計算兩個并行4x4塊的 MAE,這時性能可達85.71MMAE/s;而處理三個塊需要九個周期,即性能為100MMAE/s。

   可并行處理的最大塊數(shù)分別受限于任意長指令字中允許的 SIMD SAD 運算次數(shù)、VLIW-CPU的通用寄存器數(shù)和優(yōu)化編譯器的調(diào)度算法。如果繼續(xù)增加塊數(shù),整體性能會趨于飽和,因此我們考慮并行處理的 MAE 不超過三個。
 
   TI 的 TMSD320DM6437 數(shù)字媒體處理器每周期有一條由八次基本 RISC 運算組成的長指令,分別通過兩條數(shù)據(jù)通路,各通路每周期有四個時隙。其 VLIW-CPU 每周期最多可執(zhí)行兩條 SAD 指令(在 TI DM6437 數(shù)據(jù)手冊中稱為“subabs4”),各指令有一個周期的延遲。但是,要累加部分結(jié)果,就必須使用常數(shù) 0x01010101 執(zhí)行具有三周期延遲的 SIMD MAC 運算(稱為“dotpsu4”)。

   所以,600 MHz 的 TI DM6437 DSP-CPU 可以用七個周期計算一個 MAE(如表 2 所示),因此對于 4 x 4 像素塊的最高性能為 85.71 MMAE/s。如果并行處理兩個塊,就需要九個周期,性能為 133.33 MMAE/s;而三個塊需要11個周期,性能為163.64 MMAE/s,這仍然低于我們的 250 MSAD/s 要求。



VLIW DSP-CPU 性能不足

   至此,我們一直假定每像素 8 位,這很適合 32 位架構(gòu)的 DSP-CPU 處理器。然而,新型 CMOS 圖像傳感器的分辨率范圍較高,即每像素 12 到 14 位。對于這些數(shù)據(jù)類型,32 位架構(gòu)的傳統(tǒng)四路 8 位子字 SIMD 不夠有效,必須換用雙路 16 位半字 SIMD,其中的子字并行度僅為二。因此,由于計算一個 MAE 需要較多時鐘周期,最高性能大幅度下降。

   表 3 所示為在 TI VLIW DSP-CPU 上使用 16 位子字指令計算 SAD 時可能的偽匯編代碼,假定延遲正確且函數(shù)發(fā)射時隙允許執(zhí)行這種指令。因此,一個 4 x 4 的塊需要八個周期,而并行處理兩個和三個塊分別需要 10 個和 12 個周期。這時,相應(yīng)的最高性能分別為 75 MMAE/s、120 MMAE/s 和 150 MMAE/s。這些數(shù)字都比使用 8 位子字指令得到的數(shù)字小。



Spartan-3A DSP FPGA 的 SAD 和 MAE 性能

   為了填補Spartan-3和Virtex-4 器件之間的處理性能空白,Xilinx 推出的Spartan 3A-DSP 1800A和3400A FPGA采納了 Virtex-4 器件中的 DSP48 Slice 的修改版。另外,3A-DSP 器件包括大量片上存儲器(Block RAM)。這兩方面增強加上針對大量應(yīng)用制訂的價位使 3A-DSP 器件非常適合汽車視覺 DA 系統(tǒng)。

   圖3所示為Spartan-3A DSP 1800 (XC3SD1800A-4FG676)器件上的四路12 位像素的 SAD 計算方案。此方案是使用 System Generator for DSP 設(shè)計流程(Xilinx 提供的 Simulink 工具中的數(shù)字和周期都精確的可綜合庫)完成的。所需資源數(shù)量是 121 個 Slice(236 個 LUT 和 140 個觸發(fā)器)。將此結(jié)構(gòu)復(fù)制四次并且加上部分結(jié)果,即得到整個 4 x 4 塊的計算方案,該方案需要 508 個 Slice(990 個觸發(fā)器和 606 個 LUT),具有一個周期吞吐量(這意味著可從任意時鐘周期開始計算新的 MAE)和七個周期延遲。



   如果使用 150 MHz 時鐘頻率(該器件最高時鐘頻率為 250 MHz),只需要兩個并行結(jié)構(gòu)(約占器件面積的 6%)即可達到300 MMAE/s的性能,從而滿足示例應(yīng)用的250 MMAE/s 性能要求。這樣可以節(jié)省大量資源用來實現(xiàn)其它圖像處理功能、數(shù)據(jù)路由通道、存儲器接口控制器以及一個用于串行處理和外部通信的 32 位 MicroBlaze 嵌入式處理器。

   作為參考,仍然用 150 MHz 頻率,Spartan 3A-DSP 1800A 器件僅使用整個 FPGA 器件的 70%, 即可并行處理多達 23 個塊(70% x 16,640 Slice/508 Slice/塊 = 23 塊)。與此對應(yīng)的最高性能是 3,529 MMAE/s,這至少要比 600 MHz 的 TI DSP-CPU 的最高性能高 25 倍。

結(jié)論

   以汽車視覺應(yīng)用為例說明了如何利用中型低成本 Xilinx FPGA的可編程并行處理能力提供超過VLIW DSP-CPU 的處理性能。表 4 列出了分析結(jié)果。



   值得注意的是對于 12 位像素數(shù)據(jù)的 4 x 4 塊的 MAE 計算,Spartan-3A DSP 的性能僅以四分之一時鐘速度即可達到 TI TMS320DM6437 的兩倍。另外,F(xiàn)PGA 的資源占用率僅為 6%,因此可以在同一器件上實現(xiàn)其它圖像處理功能(必要時可采納并行處理)。

   另一方面,VLIW DSP-CPU 在 SAD 計算期間被完全占用,消耗串行處理器長指令的可用時隙,因此很少有機會同時執(zhí)行其它功能。

   我們對于 FPGA 的估算時鐘頻率相當保守(以 150 MHz 對 250 MHz),對于運動估算的搜索區(qū)也是如此(搜索區(qū)越大,需要計算的 MAE 的數(shù)量就越多)。例如,30 x 30 的搜索區(qū)需要 609 MMAE/s 的性能(遠遠超過 VLIW DSP-CPU 的能力),然而卻僅占用 1800A 器件上 Slice 的 12%。

   最后需要說明的是,在實現(xiàn) MAE 時根本未使用 DSP48 MAC 單元:因為據(jù)估計,如果用四個 DSP48 單元取代由 100 個 Slice 組成的加法器樹,則一個 12 位輸入數(shù)據(jù) MAE 的 4 x 4 塊會占用 400 個 Slice(782 個觸發(fā)器和 400 個 LUT)和四個 DSP48。

   因此,Spartan-3A DSP 1800A 器件非常適合需要極高處理性能、靈活性和可縮放性的視覺應(yīng)用,如未來型汽車駕駛員輔助系統(tǒng)中的視覺應(yīng)用。

(轉(zhuǎn)載)

標簽:Spartan-3A DSP 汽車應(yīng)用 塊匹配 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機器人下載中心
西克
2024全景工博會
專題報道