嵌入式處理器的效能日益提公升、**不斷下降,帶來日益廣泛的嵌入式計算機視覺應用,包括從安全及工業監控到自動化車輛與汽車安全等領域。開發人員可充分利用越來越高階的硬體,在不影響基本質量的同時,更快速、更低成本地開發具有突破性效能的產品。
開發周期縮短而帶來的巨大壓力,迫使嵌入式系統開發人員必須高效利用嵌入式領域與傳統pc工作站領域的現有技術;適應並復用現有穩定軟體可為嵌入式開發人員提供不斷開發重大新專案的必備基礎。
opencv就是pc軟體進入嵌入式開發領域的乙個例項。opencv是一款免費的開源計算機視覺庫,可提供從影像過濾及轉換,到特性抽象與機器學習等幾十個不同類別的數百種演算法。它已被成千上萬的開發人員所使用,而且還在不斷發展之中。目前有很多庫是針對嵌入式系統的,但很少有像opencv這樣能夠在計算機視覺領域得到普遍推廣,而且涵蓋如此豐富的演算法。
圖1:opencv庫縮圖。
儘管opencv最初**於intel的x86架構,但它也不失為目前功能日益強大的嵌入式器件的自然選擇。opencv現已移植到嵌入式處理器常用cpu選擇arm架構上,這點也並不奇怪。我們完全能夠在嵌入式器件上原封不動地採用opencv的交叉編譯版,不過,儲存器限制與其它架構注意事項可能會帶來乙個技術難題。因此我們需要對opencv進行優化,以使它在新的主機上實現更高效能與更高效率。
對嵌入式平台而言,「優化」這個詞以前意味著要無限制地研究低階架構中不重要的細節,反覆編寫組合語言**。然而幸運的是,隨著嵌入式處理器複雜性的提公升,嵌入式開發工具已變得日益強大,使用者友好性也得以大幅提高。
典型的嵌入式器件可描述為系統級晶元(soc),其中不僅包含arm處理器,而且還含有多種外設與加速器,可將cpu從相關支援任務中解放出來。soc甚至可能具有多個arm核心,或其它功能齊全的協處理器。
圖2:soc基本內部架構。
現在,soc最重要的部分不是硬體本身,而是可幫助開發人員通過arm應用程式高效利用soc全部效能的支援性軟體,這不僅包括優化c語言編譯器的熟悉工具,還包括加速常見訊號處理任務的優化軟體庫,以及處理soc中不同模組之間低階互動的驅動器。此外,它可能還包括支援特定廠商協處理器與加速器的特殊工具。這些工具相結合,可使嵌入式優化成為高階應用開發中乙個簡單透明的組成部分。
通過高效整合opencv等高階軟體與器件廠商提供的低端軟體,進而建立高效可行的系統,是嵌入式開發的重要挑戰之一。例如,我們不妨考慮這樣一種情況,soc中包括了針對高強度計算的全功能數字訊號處理器(dsp)。該dsp可能非常適合opencv的影像分析演算法,尤其是在cpu缺乏原生浮點指令情況下更是如此,不過,要讓opencv在dsp架構上執行,可能還有大量工作要做。讓opencv等高階軟體實現分割槽,並在整個soc上無縫執行是軟體開發工具的重要使命。
從嵌入式開發人員的角度來說,將應用的不同部分透明地交給soc上最合適的模組來處理是再好不過的了。這樣做能夠幫助開發人員將更多資源集中到終端產品開發方面,從而花費更少的時間處理特定平台問題,這是嵌入式器件的獨特優勢。支援上述要求的軟體工具則可在基本的處理功能與硬體功能基礎上更進一步,這對開發人員而言具有更重要的意義,器件廠商必須滿足這一要求,才能保持自身的競爭優勢。
嵌入式系統
嵌入式開發的相關領域 搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關 領域包括 a 數字影象壓縮技術 這是嵌入式最重要最熱門的應用領域之一,主要是應掌握mpeg 編譯碼演算法和技術,如 pda 高精電視 機頂盒等都涉及mpeg高速解碼問 題。b 通訊協議及程式設計技術 這...
嵌入式系統
嵌入式系統就是計算機系統的一類,就是被塞進其他裝置的計算機作業系統。我的嵌入式老師只用了三個詞語就總結了嵌入式系統的精髓 專用的可裁剪的 計算機系統。包括嵌入式軟體開發的知識體系和背景 先說背景 計算機,領域內,知識體系,按層次分,可以分為 其中 此處,暫且不討論上層的純軟體,以及底層的硬體,只是簡...
嵌入式系統
硬體結構 軟體結構 作業系統 vxworks商用嵌入式系統的代表 嵌入式linux 採用的是linux的核心,大多數採用的是linux的微核心 微核心本身只提供一些最基本的作業系統功能,如任務排程 記憶體管理 中斷處理等,而類似於檔案系統和網路協議等附加功能則執行在使用者空間中 交叉編譯 交叉編譯 ...