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

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > 基于ATmegal28的LED屏圖像數(shù)據(jù)解碼設(shè)計

          基于ATmegal28的LED屏圖像數(shù)據(jù)解碼設(shè)計

          作者: 時間:2009-04-29 來源:網(wǎng)絡(luò) 收藏

          摘 要:針對目前對全彩顯示屏的處理需依賴計算機的情況,提出利用單片機實現(xiàn)JPEG的方法,并利用此方法實現(xiàn)了通過GPRS網(wǎng)絡(luò)對全彩顯示屏的遠程傳輸。針對的資源和性能特點,對JPEG進行了可行性分析。重點論述Huffman、IDCT解碼和圖像縮放的優(yōu)化算法在單片機上的實現(xiàn)。由于圖像的處理在單片機上實現(xiàn),降低了產(chǎn)品的成本,具有較強地生產(chǎn)實用性。
          關(guān)鍵詞:ATmegal28;JPEG解碼;Huffman解碼;IDCT解碼;全彩顯示屏

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


          隨著LED顯示屏的普及和成本的降低,LED顯示屏已經(jīng)成為公共場合信息宣傳的一種重要工具。目前實現(xiàn)對LED顯示屏的文字圖像更改的方法主要有:顯示屏通過串口或網(wǎng)線與計算機連接實現(xiàn)更改;通過GPRS網(wǎng)絡(luò)實現(xiàn)的遠程傳輸,接收后在計算機上用特定軟件解碼后發(fā)送到LED顯示屏顯示。以上方法始終需要在計算機平臺上實現(xiàn),附加成本較高。利用手機作為發(fā)送端,發(fā)送彩信至GPRS模塊,利用ATmegal28單片機直接對彩信圖像進行解碼然后發(fā)送到LED顯示屏上進行顯示。


          l JPEG解碼可行性分析
          所用全彩LED屏接收的數(shù)據(jù)格式為Xmp格式,Xmp格式是簡化的BMP格式。Xmp格式在圖像數(shù)據(jù)前有6個字節(jié)表示圖像的屬性,第1字節(jié)為1個點的字節(jié)數(shù);第2字節(jié)為XMP文件中包含的圖片個數(shù);第3,4字節(jié)為圖像的高;第5,6字節(jié)為圖像的寬,其后為圖像每點的顏色。每點的顏色用2個字節(jié)表示(16位色)。由于所用全彩LED屏只有64×64像素,所以JPEG解碼后還需進行圖像的縮放。
          JPEG解碼過程中所需要的緩存主要包括原始JPEG圖像數(shù)據(jù)的緩存、中間變量的緩存以及解出的Xmp數(shù)據(jù)的緩存。根據(jù)JPEG圖像的復(fù)雜度及壓縮比的不同,一般一幀320×240的彩色JPEG圖像的大小在2~20 KB。JPEG解碼緩存主要用于存儲Huffman表,量化表,IDCT解碼的臨時結(jié)果等。這些大約需要8 KB。解出的Xmp數(shù)據(jù)的緩存要求的RAM相對比較固定為9 KB。綜上JPEG解碼大致需25 KB的RAM。ATmegal28內(nèi)部只有4 KB的SRAM,所以該系統(tǒng)外擴了64 KB的外部RAM。


          2 軟件實現(xiàn)
          采用avr―gcc作為編譯工具。avr-gcc默認設(shè)置棧由內(nèi)部RAM的頂部向下生長。由于圖像處理過程中需要占用大量的RAM空間,所以應(yīng)該通過設(shè)置把所有數(shù)據(jù)區(qū)移到外部RAM,只留棧區(qū)在內(nèi)部RAM,避免數(shù)據(jù)的相互覆蓋。
          JPEG解碼過程主要包括Huffman解碼、反量化及IDCT變換、色彩變換等模塊。該文采用的LED顯示屏是64×64點像素,并且只能顯示Xmp格式的圖片。因此在JPEG解碼后需增加圖像的縮放模塊。其流程框圖如圖1所示。


          上一頁 1 2 3 下一頁

          評論


          相關(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); })();