新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設(shè)計(jì)應(yīng)用 > 用Spartan-3A DSP器件實(shí)現(xiàn)汽車(chē)應(yīng)用中的塊匹配

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

作者: 時(shí)間:2012-07-18 來(lái)源:網(wǎng)絡(luò) 收藏

汽車(chē)工程師采用多種智能技術(shù)幫助人們安全駕駛汽車(chē)。汽車(chē)系統(tǒng)中的主要技術(shù)包括雷達(dá)、超聲和攝像/視覺(jué)感測(cè)。這些技術(shù)統(tǒng)稱(chēng)駕駛員輔助 (DA) 系統(tǒng),用于在惡劣條件和危險(xiǎn)路況下協(xié)助安全駕駛。

本文引用地址:http://butianyuan.cn/article/196660.htm

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

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

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

11.jpg

高級(jí)處理要求

DA 系統(tǒng)的處理要求可能超過(guò)目前汽車(chē)級(jí)串行 處理器的能力。另外,為了提高消費(fèi)價(jià)值,在一套視覺(jué)傳感器上捆綁多種 DA 功能的需求日益高漲。

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

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

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

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

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

處理選項(xiàng)

由汽車(chē)設(shè)計(jì)工程師決定的處理選項(xiàng)包括超長(zhǎng)指令字 (VLIW) -CPU 和 FPGA。FPGA 的處理能力遠(yuǎn)遠(yuǎn)高于任何現(xiàn)有的 VLIW -CPU。這是由于 FPGA 的架構(gòu):大量并行功能單元(包括可編程 MAC)使 FPGA 的性能比任何 DSP 都高出 10-30 倍(具體性能取決于所實(shí)現(xiàn)的應(yīng)用),即使 FPGA 的時(shí)鐘頻率比 DSP-CPU 的時(shí)鐘頻率低得多。我們使用塊匹配運(yùn)算示例,是要證明 Xilinx® FPGA 的性能比任何 VLIW DSP-CPU 處理器都高。

VLIW DSP-CPU 處理器中的 SAD 和 MAE 計(jì)算

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

圖2

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

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

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

1.jpg

可并行處理的最大塊數(shù)分別受限于任意長(zhǎng)指令字中允許的 SIMD SAD 運(yùn)算次數(shù)、VLIW-CPU 的通用寄存器數(shù)和優(yōu)化編譯器的調(diào)度算法。如果繼續(xù)增加塊數(shù),整體性能會(huì)趨于飽和,因此我們考慮并行處理的 MAE 不超過(guò)三個(gè)。

德州儀器 (TI) 的 TMSD320DM6437 數(shù)字媒體處理器每周期有一條由八次基本 RISC 運(yùn)算組成的長(zhǎng)指令,分別通過(guò)兩條數(shù)據(jù)通路,各通路每周期有四個(gè)時(shí)隙。其 VLIW-CPU 每周期最多可執(zhí)行兩條 SAD 指令(在 TI DM6437 數(shù)據(jù)手冊(cè)中稱(chēng)為“subabs4”),各指令有一個(gè)周期的延遲。但是,要累加部分結(jié)果,就必須使用常數(shù) 0x01010101 執(zhí)行具有三周期延遲的 SIMD MAC 運(yùn)算(稱(chēng)為“dotpsu4”)。

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

2.jpg

VLIW DSP-CPU 性能不足

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

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

3.jpg

-3A DSP FPGA 的 SAD 和 MAE 性能

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

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

33.jpg

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

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

結(jié)論

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

44.jpg

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

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

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

最后,我們?cè)趯?shí)現(xiàn) MAE 時(shí)根本未使用 DSP48 MAC 單元:據(jù)我們估計(jì),如果用四個(gè) DSP48 單元取代由 100 個(gè) Slice 組成的加法器樹(shù),則一個(gè) 12 位輸入數(shù)據(jù) MAE 的 4×4 塊會(huì)占用 400 個(gè) Slice(782 個(gè)觸發(fā)器和 400 個(gè) LUT)和四個(gè) DSP48。

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



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉