OpenCV的加速嵌入式系統(tǒng)開(kāi)發(fā)中的應(yīng)用
圖2:SoC基本內(nèi)部架構(gòu)
現(xiàn)在,SoC最重要的部分不是硬件本身,而是可幫助開(kāi)發(fā)人員通過(guò)ARM應(yīng)用程序高效利用SoC全部性能的支持性軟件,這不僅包括優(yōu)化C語(yǔ)言編譯器的熟悉工具,還包括加速常見(jiàn)信號(hào)處理任務(wù)的優(yōu)化軟件庫(kù),以及處理SoC中不同模塊之間低級(jí)互動(dòng)的驅(qū)動(dòng)器。此外,它可能還包括支持特定廠商協(xié)處理器與加速器的特殊工具。這些工具相結(jié)合,可使嵌入式優(yōu)化成為高級(jí)應(yīng)用開(kāi)發(fā)中一個(gè)簡(jiǎn)單透明的組成部分。
通過(guò)高效集成OpenCV等高級(jí)軟件與器件廠商提供的低端軟件,進(jìn)而創(chuàng)建高效可行的系統(tǒng),是嵌入式開(kāi)發(fā)的重要挑戰(zhàn)之一。例如,我們不妨考慮這樣一種情況,SoC中包括了針對(duì)高強(qiáng)度計(jì)算的全功能數(shù)字信號(hào)處理器(DSP)。該DSP可能非常適合OpenCV的影像分析算法,尤其是在CPU缺乏原生浮點(diǎn)指令情況下更是如此,不過(guò),要讓OpenCV在DSP架構(gòu)上運(yùn)行,可能還有大量工作要做。讓OpenCV等高級(jí)軟件實(shí)現(xiàn)分區(qū),并在整個(gè)SoC上無(wú)縫運(yùn)行是軟件開(kāi)發(fā)工具的重要使命。
從嵌入式開(kāi)發(fā)人員的角度來(lái)說(shuō),將應(yīng)用的不同部分透明地交給SoC上最合適的模塊來(lái)處理是再好不過(guò)的了。這樣做能夠幫助開(kāi)發(fā)人員將更多資源集中到終端產(chǎn)品開(kāi)發(fā)方面,從而*費(fèi)更少的時(shí)間處理特定平臺(tái)問(wèn)題,這是嵌入式器件的獨(dú)特優(yōu)勢(shì)。支持上述要求的軟件工具則可在基本的處理功能與硬件功能基礎(chǔ)上更進(jìn)一步,這對(duì)開(kāi)發(fā)人員而言具有更重要的意義,器件廠商必須滿足這一要求,才能保持自身的競(jìng)爭(zhēng)優(yōu)勢(shì)。
圖3:嵌入式應(yīng)用分區(qū)后,在異構(gòu)多內(nèi)核SoC上運(yùn)行更高效
評(píng)論