日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

圖像屏幕尺寸綿放的C程序優(yōu)化技巧

出處:21IC中國電子網(wǎng) 發(fā)布于:2009-09-21 11:43:56

  引 言

  嵌入式系統(tǒng)的部件是嵌入式處理器。在眾多的處理器中,ARM是專為嵌入式應(yīng)用而設(shè)計的處理器,由于其低功耗、高性價比和易擴展性等特點,在嵌入式系統(tǒng)中得到了為廣泛的應(yīng)用。在許多成功的32位嵌入式系統(tǒng)中,ARM處理器都是其組成部分。ARM內(nèi)核已被廣泛應(yīng)用于移動電話、掌上設(shè)備以及種類繁多的便攜式消費類產(chǎn)品中。隨著ARM處理器越來越廣泛的應(yīng)用,如何提高代碼的執(zhí)行效率已成為工程師關(guān)注的問題,同時如何在實時嵌入式應(yīng)用中,通過代碼優(yōu)化以減少消耗過多的CPU運行時間已成為人們關(guān)注的焦點。軟件開發(fā)中,常用的代碼優(yōu)化技巧有“循環(huán)展開”、“減少外存訪問”、“考慮CPU帶寬”、“循環(huán)減計數(shù)”、“循環(huán)變量數(shù)據(jù)類型”、“使用SWITCH取代條件判斷”等。而圖像在不同屏幕尺寸之間縮放的程序是嵌入式領(lǐng)域常常用到的功能。這里就以實現(xiàn)這樣一個常見功能的程序為例,說明程序優(yōu)化的技巧。

  1 實例分析

  程序的目標(biāo)是將一個長寬為240×160,格式為RGB565的顯示緩沖區(qū)的內(nèi)容映射到長寬為320×240,格式也為RGB565的顯示緩沖區(qū)內(nèi)。因為源數(shù)據(jù)寬度是240點,所以,放大到目的區(qū)域的時候,就需要每3個源數(shù)據(jù)點中,重復(fù)1點的數(shù)據(jù),變成4點,放到目的顯示緩沖區(qū)中。同樣,每2行源數(shù)據(jù)也要重復(fù)1行,變成3行,放到目的顯示緩沖區(qū)中。源數(shù)據(jù)和目的數(shù)據(jù)分別定義如下(保證源顯示緩沖區(qū)和目的顯示緩沖區(qū)都是4字節(jié)對齊起始的):

  注:以下所有程序均是使用ADS1.1編譯,CPU主頻為100 MHz,使用ARM7EJ-S為目標(biāo)處理器,小端編譯方式,測試的時間是以所有的程序和數(shù)據(jù)均是Cache全命中為前提測試得到的。

  2 原始程序

  下面這段程序是沒有經(jīng)過任何優(yōu)化的程序,僅僅實現(xiàn)了相應(yīng)的功能要求,運行時間為10 ms。

  3 優(yōu)化步驟

  ,采用循環(huán)展開的技巧進行優(yōu)化,也就是盡量減少內(nèi)層循環(huán)的次數(shù)。這里在行循環(huán)中,由原來的每次處理1行源數(shù)據(jù),一共循環(huán)160次,改成每次處理2行源數(shù)據(jù),一共只需要循環(huán)80次。同時,在行內(nèi)部的列循環(huán)中,由原來的每次處理1個源像素點,一共循環(huán)240次,改成1次處理3個源像素點,一共只需要循環(huán) 80次。運行時間縮短為8 ms。


  第二,因為ARM處理器的帶寬是4字節(jié),所以,取數(shù)據(jù)時也使用4字節(jié)的方式是效率的,程序設(shè)計時也要盡量利用這個特點提高效率。下面就利用這個特點,每次取源數(shù)據(jù)時都取4字節(jié)。因為行內(nèi)部是每3點要重復(fù)1點,因此,行內(nèi)部循環(huán)改為每次處理6個像素點,這樣,又進一步減少了循環(huán)次數(shù)。運行時間縮短為4 ms。

  第三,訪問外存往往是程序運行的瓶頸,因為外存的速度一般遠(yuǎn)遠(yuǎn)低于CPU運行速度,所以,在編程的過程中,要盡量減少對外存的訪問。下面,將行循環(huán)中重復(fù)寫入的那行在上一行生成的過程中直接完成,減少了拷貝重復(fù)行過程中讀取1行的時間。運行時間縮短為3 ms。

  結(jié) 語

  本文以圖像在不同屏幕尺寸之間縮放的程序為例講解了代碼優(yōu)化技巧方法,給出了源代碼進行探討,并通過實驗得以證實。希望有助于讀者編寫出在提高執(zhí)行速度和減小代碼尺寸方面更高效的C源代碼。

關(guān)鍵詞:圖像屏幕尺寸綿放的C程序優(yōu)化技巧C程序

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

松夏 Proteus7.10仿真加載Hex程序運行仿真看效果 Keil3新建工程編譯C程序生成Hex
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!