新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM NEON技術在車位識別算法中的應用

        ARM NEON技術在車位識別算法中的應用

        作者: 時間:2013-12-04 來源:網絡 收藏

          

          

          3 圖像處理算法在CORTEX-A8 平臺上的優化

          本系統是Cortex-A8和Linux系統上搭建,Linux下使用的編譯器為GCC.本文中使用普通C 語言優化和NEON編程優化對圖像相關函數進行了優化,并進行了測試對比,下面給出方差函數variance代碼進行優化前后的對比說明,如圖5優化前的代碼。

          

          3.1 C語言級別優化

          對于一般C語言級別的優化,對于圖像這類矩陣數據而言,主要針對循環優化。以第一個循環為例,如圖6對于C語言級別循環優化后的代碼如圖6所示。

          

          由優化后的結果可見,通過對循環展開,有效的減少了循環跳轉次數,跳轉為原來的1 4 .但是也可以發現,加法運算次數,幾乎和原來相同并沒有減少。對于其他for循環和其他函數進行優化后,測試時間對比如表2所示。

          

          由表中數據可見,使用普通C 語言界別優化,并沒有明顯提升,原因是在Linux系統上使用GCC編譯器進行編譯的,在選擇-O2 級別優化的時候,已經對循環進行了優化,所以運行速度沒有明顯提升。

          3.2 使用的優化

          GCC 編譯器從4.3 版本開始,很好地提供了對 NEON 技術的支持。例如GCC 中的函數:

          uint32x2_t vadd_u32(uint32x2_t,uint32x2_t),對應匯語言:vadd.i32 d0,d0,d0.uint32x2_t代表這個數據類型是2 個32 位無符號整型。在使用GCC 編譯器中的NEON 技術時,需要包含頭文件arm_neon.h>.NEON增強指令集是在Cortex-A系列發布后才具有的功能,因此11 無法使用NEON 技術。對方差函數variance第一個for循環優化后的代碼對比如圖7所示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安庆市| 明水县| 沿河| 镇平县| 读书| 康乐县| 泰来县| 潼南县| 嘉义县| 枞阳县| 沂水县| 江北区| 龙里县| 海原县| 蒙阴县| 金乡县| 红原县| 田阳县| 罗江县| 四会市| 肇庆市| 朔州市| 黔南| 南岸区| 禹城市| 藁城市| 横山县| 贵州省| 宁乡县| 辉南县| 永昌县| 五常市| 什邡市| 西城区| 达州市| 军事| 齐齐哈尔市| 天峻县| 大埔区| 邳州市| 徐州市|