<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于STM32的BMP圖片解碼系統(tǒng)

          基于STM32的BMP圖片解碼系統(tǒng)

          作者: 時間:2012-02-06 來源:網(wǎng)絡(luò) 收藏


          3 算法
          3.1 文件組成
          文件由文件頭、位圖信息頭、顏色信息和圖形數(shù)據(jù)4部分組成。BMP文件頭數(shù)據(jù)結(jié)構(gòu)舍有BMP文件的類型、文件大小和位圖起始位置等信息,它占14個字節(jié)。BMP位圖信息頭數(shù)據(jù)用予說明位圖的尺寸等信息,它占40個字節(jié)。BMP顏色表用于說明位圖中的顏色,它有若干個表項,每一個表項定義一種顏色。位圖信息頭和顏色表組成位圖信息,位圖數(shù)據(jù)記錄了位圖的每一個像素值,記錄順序是在掃描行內(nèi)是從左到右,掃描行之間是從下到上,Windows規(guī)定一個掃描行所占的字節(jié)數(shù)必須是4的倍數(shù)(即以long為單位),不足的以0填充。
          3.2 BMP的讀取顯示算法
          首先根據(jù)讀取到的BMP數(shù)據(jù)得到BMP的頭部信息,得到文件類型,大小和文件的起始位置,然后讀取BMP位圖信息頭,這里面記錄了圖片的格式的信息,如BMP圖片的寬度和高度,以及每個像素所占的位數(shù),下面舉例來說明BMP圖片的過程。
          常用的BMP圖片格式有24位真彩圖,16位圖,和32位圖,過程略有不同,下面分別介紹,首先是24位圖,當(dāng)根據(jù)BMP的頭文件信息得到數(shù)據(jù)的起始地址之后,從起始地址開始讀數(shù)據(jù),假設(shè)每次讀入512字節(jié),由于AM240320TFT采用16位的565方式顯示,即就是說需要把每個像素所占的24位致?lián)簿褪?個字節(jié),轉(zhuǎn)換為16位的數(shù)據(jù),即2個字節(jié),這里以前3個字節(jié)為例來說明解碼算法:
          d.jpg
          其中codor為需要提供給液晶顯示器每個像素點的顏色值,tmp_color為解碼過程中的臨時變量,數(shù)組temp存儲24位格式的像素值。同樣也可以解碼16位顏色圖和32位顏色圖,解碼16位顏色圖的算法比較簡單,只需要解出連續(xù)的兩個值然后組合成16位的565格式的顏色值送到液晶顯示,其解碼算法如下:
          e.jpg
          在32位圖的解碼過程中需要注意一個問題,就是32位圖中實際上只使用了24位存儲像素值,也就是32位中的前3位,最后一位沒有存儲像素值信息,所以在解碼的過程中只需要解碼前3位,將第4位跳過,具體解碼算法如下:
          f.jpg
          3.3 解碼并顯示BMP圖片程序
          在BMP圖片解碼過程中,有兩種方式:一種是將BMP圖片數(shù)據(jù)從外部SD卡中調(diào)入內(nèi)存中,從內(nèi)存中解碼,解碼后將圖片數(shù)據(jù)顯示在TFT屏上;第二種方式是一邊從SD卡中讀數(shù)據(jù)一邊解碼顯示,兩種方式各有優(yōu)缺點。第一種方式的優(yōu)點是由于整個解碼過程全部在內(nèi)存中進(jìn)行,所以解碼的速度比較快,顯示圖片的速度快。由于一般處理器內(nèi)部RAM都是有限的,而這種方式對RAM的消耗特別大,所以采用這種方式需要外擴(kuò)SRAM。第二種方式是從SD卡總邊讀取邊解碼,例如一般FAT32文件簇的大小都是512字節(jié),所以可以以簇為單位來讀取圖片信息,然后顯示接著讀取下一簇,這種方式的缺點是,由于SD卡的SPI方式速度較慢,解碼一張320x240的圖片大概需要1s,但是這種方式對的內(nèi)存消耗比較低,比較適合于沒有外部RAM的。本中,采用第二種方式進(jìn)行解碼顯示,采用外部8 MHz的晶振作為輸入時鐘,內(nèi)部鎖相環(huán)將時鐘倍頻到72 MHz作為系統(tǒng)時鐘,采用GPIO口模擬8080時序并行驅(qū)動2.8寸TFT屏,屏幕分辨率為320x240,處理器首先完成各種外設(shè)初始化,接著初始化FAT文件系統(tǒng),然后從SD卡中讀取一簇的數(shù)據(jù),解碼顯示,接著讀取下一簇。整個程序的流程圖如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/149782.htm

          g.jpg



          4 結(jié)論
          本文采用了ARM的Cortex-M3內(nèi)核的,它最新ARMv7架構(gòu),設(shè)計了一個BMP圖片解碼系統(tǒng),完成了在2.8寸TFT屏上解碼并顯示BMP圖片,通過讀取SD卡中的圖片數(shù)據(jù),邊讀取邊解碼顯示,實現(xiàn)了在內(nèi)存有限的處理器中的BMP圖片的解碼算法。

          熱式質(zhì)量流量計相關(guān)文章:熱式質(zhì)量流量計原理
          流量計相關(guān)文章:流量計原理

          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 解碼 系統(tǒng) 圖片 BMP STM32 基于

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();