• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2009-05-12 03:14杜小偉謝桂泉周展懷潘永雄
      現(xiàn)代電子技術(shù) 2009年2期

      杜小偉 謝桂泉 周展懷 潘永雄

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

      關(guān)鍵詞:ATmega128;JPEG解碼;Huffman解碼;IDCT解碼;全彩LED顯示屏

      中圖分類號:TP368文獻標(biāo)識碼:B

      文章編號:1004 373X(2009)04 192 03

      Design of Decoding for LED Display′s Image Data Based on ATmega128

      DU Xiaowei1,XIE Guiquan1,ZHOU Zhanhuai2,PAN Yongxiong2

      (1.South China University of Technology,Guangzhou,510641,China;2.Guangdong University of Technology,Guangzhou,510006,China)

      Abstract:According to the situation that at present the image data′s processing of the full-color LED display relyes on the computer,this paper proposes a solution of using ATmega128 chip to realize the purpose of decoding JPEG image.By using the solution,images in full-color LED′s display can be changed through the GPRS networks.Feasibility analysis of JPEG decode is given according to the resources and characteristics of ATmega128.The article emphasizes the realization of Huffman decode,IDCT decode and image scaling on ATmega128.Because image processing is achieved in microcontroller,which reduces the cost of products and have strong production practicality.

      Keywords:ATmega128;JPEG decode;Huffman decode;IDCT decode;full-color LED display

      專利:基于GPRS的遠程交互式多用戶智能信息屏設(shè)備(ZL200720052615.4)

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

      設(shè)計利用手機作為發(fā)送端,發(fā)送彩信至GPRS模塊,利用ATmega128單片機直接對彩信圖像進行解碼然后發(fā)送到LED顯示屏上進行顯示。

      1 JPEG解碼可行性分析

      該設(shè)計所用全彩LED屏接收的數(shù)據(jù)格式為Xmp格式[2],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。ATmega128內(nèi)部只有4 KB的SRAM[3],所以該系統(tǒng)外擴了64 KB的外部RAM。

      2 軟件實現(xiàn)

      該設(shè)計采用avr-gcc作為編譯工具。avr-gcc默認設(shè)置棧由內(nèi)部RAM的頂部向下生長[4]。由于圖像處理過程中需要占用大量的RAM空間,所以應(yīng)該通過設(shè)置把所有數(shù)據(jù)區(qū)移到外部RAM,只留棧區(qū)在內(nèi)部RAM,避免數(shù)據(jù)的相互覆蓋。

      JPEG解碼[5]過程主要包括Huffman解碼、反量化及IDCT變換、色彩變換等模塊。該文采用的LED顯示屏是64×64點像素,并且只能顯示Xmp格式的圖片。因此在JPEG解碼后需增加圖像的縮放模塊。其流程框圖如圖1所示。

      圖1 JPEG圖像解碼為Xmp格式的流程圖

      2.1 Huffman解碼的實現(xiàn)

      Huffman解碼是解碼過程中重要的一環(huán)。傳統(tǒng)的哈夫曼解碼需要逐位查找哈夫曼表,進行比較判斷,由于查找過程需要大量的移位及循環(huán)。這樣的解碼效率非常低。針對這種情況,充分考慮到ATmega128的存儲容量的限制,在讀文件頭時,軟件事先構(gòu)造出不同碼長下的哈夫曼碼字的最小值表和最大值表如表1所示,最小值在哈夫曼表中的索引以及哈夫曼樹各葉子結(jié)點對應(yīng)的編碼表。

      表1 構(gòu)造的最小值表和最大值表

      不同碼長的首地址最小值表最大值表

      碼長為1的最小值的首地址碼長為1的最小值碼長為1的最大值

      碼長為n的最小值的首地址碼長為n的最小值碼長為n的最大值

      碼長為16的最小值的首地址碼長為16的最小值碼長為16的最大值

      在解碼的時候,讀取1串二進制數(shù)據(jù),分別與各碼長下的最大值和最小值進行比較,如果在哈夫曼表中沒有該碼長的碼字,說明該比特數(shù)據(jù)不是完整的Huffman編碼,接著讀取下一個比特數(shù)據(jù)加在前面的比特數(shù)據(jù)組成的新的碼字,然后再在最小值表和最大值表中進行查找,直至找到確切的碼字。最后把該碼字減去同一碼長下最小值,加上此最小值在哈夫曼表中的索引即可得到該碼字在編碼表中的位置。

      2.2 IDCT變換的實現(xiàn)

      將8×8 塊中的顏色分量單元的64個值逐一乘以對應(yīng)的量化表內(nèi)位置相同的系數(shù),然后再將64個數(shù)據(jù)進行Z字型的重新排列,進行IDCT變換。IDCT的運算量很大,其中要進行大量的浮點乘法和加法運算,因而在解碼過程中IDCT所占時間最多。采用行列分解法先將二維IDCT分解成一維8點的IDCT,對于一維8點IDCT采用Loeffler的快速算法[6]。圖2為 Loeffler算法的流程圖,Loeffler算法運算因子的解釋如圖3所示。

      圖2 Loeffler算法流程圖

      圖3 Loeffler算法運算因子的解釋

      直接對旋轉(zhuǎn)因子進行計算需要4次乘法和2次加法,這樣1次8個點的一維IDCT變換總共需要14次乘法和26次加法[7]。可以對旋轉(zhuǎn)因子進行變形如式(1)所示:

      O0=2(sinnπ2N-cosnπ2N)·2cosnπ2N·(I0+I1)

      O1=2(sinnπ2N+cosnπ2N)·2cosnπ2N·(I0+I1)

      (1)

      從而1次旋轉(zhuǎn)因子計算只需要3次乘和3次加。進而進行1次一維IDCT只需11次乘和29次加。因為乘法運算的代價高于加法運算,所以這種變形是有益的。完成一次二維的IDCT運算總共要進行16次的8點一維IDCT運算。由于ATmega128在速度方面的限制,在IDCT運算過程中把浮點操作改進為整形運算,并且把2cosnπ16的值擴大211倍存儲起來,為IDCT運算做準(zhǔn)備。

      2.3 圖像的縮放

      由于該設(shè)計所使用的顯示屏為64×64個像素,所以對于JPEG格式的彩信需要先進行解碼,然后再進行縮放,使其成為64×64的格式。一般情況下,圖像縮放是采用目標(biāo)圖像到源圖像“逆向映射”法。但是考慮到ATmega128 RAM容量的限制,如果先解出源圖像,則會占用大量的RAM,因此采用源圖像到目標(biāo)圖像的映射方法。當(dāng)解出源圖像一個像素的RGB值時,通過運算求出其在目標(biāo)圖像中的位置;先判斷此位置是否為零,如果是,則直接存儲;如果否,則求兩數(shù)的平均值后存儲。對于源圖像中n個像素點對應(yīng)目標(biāo)圖像1個像素點的情況,這個目標(biāo)圖像像素點的顏色分量I=I1/2n+…+I璶/2,其中:I1為對應(yīng)源圖像中第一個像素點的顏色分量,I璶為最后一個的顏色分量。

      該設(shè)計所用方法得到的Xmp格式圖像與最近鄰域法所得圖像的比較如圖4所示。圖4(a)為Lena原圖,圖4(b)為采用最近鄰域法得到的Xmp格式圖像,圖4(c)為本文所用方法得到的Xmp格式圖像。對比可知,這里所用的方法得到的圖像像素點間過渡比較平滑,有比較好的顯示效果。此方法是對最近鄰域法的改進,既避免了在使用最近鄰域法時源圖像某些像素信息的丟失,又節(jié)省了系統(tǒng)的RAM資源。

      圖4 原圖和兩種方法處理后得到的Xmp圖

      3 硬件實現(xiàn)

      該系統(tǒng)的硬件實現(xiàn)框圖如圖5所示:

      圖5 系統(tǒng)硬件框圖

      系統(tǒng)以ATmega128單片機為主要芯片,通過RS 232和TR800進行數(shù)據(jù)傳輸[8]。ATmega128通過命令讀取TR800接收到的彩信圖像,進行解碼處理。然后通過RS 232把數(shù)據(jù)傳輸?shù)饺蔐ED顯示屏進行圖像的更改。在ATmega128與外部SRAM之間使用了鎖存器[9],該設(shè)計采用的是74AHC573。

      TR-800模塊是一個高性能、功耗小的GPRS模塊[10],它內(nèi)嵌了WAP協(xié)議棧、TCP/IP協(xié)議棧、MMS協(xié)議棧便于用戶的二次開發(fā)以及固件的升級。由于以上特點,該設(shè)計選用此模塊來實現(xiàn)對彩信收發(fā)處理功能。LED顯示屏的傳輸協(xié)議遵守Xmodem通信協(xié)議,采用CRC校驗。整個系統(tǒng)運行效果表明,ATmega128在采用16 MHz晶振的情況下解碼167×173像素的JPEG圖片大約需要1 s。

      4 結(jié) 語

      提出適合于全彩LED顯示屏的遠程圖像傳輸設(shè)計,并給出關(guān)鍵問題的解決方法。由于利用單片機實現(xiàn)了圖像的軟件解碼,這給工程上應(yīng)用帶來便利。該設(shè)計能廣泛應(yīng)用于車載,或者戶外廣告屏的圖像數(shù)據(jù)的處理傳輸。將計算量龐大的JPEG解碼算法成功地在ATmega128上進行移植,并由此實現(xiàn)全彩LED顯示屏圖像數(shù)據(jù)的遠程更改,具有較強生產(chǎn)實用性。

      設(shè)計完成的“基于GPRS的遠程交互式多用戶智能信息屏”在第十屆“挑戰(zhàn)杯”全國大學(xué)生課外學(xué)術(shù)科技作品競賽中獲二等獎。

      參考文獻

      [1]劉洪楷.繁榮的LED市場展現(xiàn)出無限美好的前景[J].光機電信息,2000(10):35-36.

      [2]SuperComm_SDK_Manual.pdf.http://www.lytec.com.cn,2007/2007.

      [3]ATMEL.mega128 Datasheet.http://www.atmega.com,2007/2007.

      [4]馬潮.高檔8位單片機ATmega128原理與開發(fā)應(yīng)用指南(上)[M].北京:北京航空航天大學(xué)出版社,2004.

      [5]吳嘉慧.JPEG圖像解碼方案[J].現(xiàn)代計算機,2007(3):49-53.

      [6]Loeffler C,Ligtenberg A,Moschytz G.Practical Fast 1D DCT Algorithms with 11 Multiplications[A].ICASSP′89,Proceedings of IEEE International Conference on Acoustics,Speech and Signal Processing.1989,2 (5):988-991.

      [7]羅天煦,鄺繼順.一種基于Loeffler算法的快速實現(xiàn)2D DCT/IDCT的方法[J].計算機應(yīng)用研究,2007(1):224-226.

      [8]姜虎強,姜平,杜亞江,等.基于ATmega128的無線數(shù)據(jù)采集系統(tǒng)[J].微計算機信息,2007,23(9):129-131.

      [9]王少卿,霍迎輝.ATmega128在開發(fā)應(yīng)用中應(yīng)注意的問題[J].微型機與應(yīng)用,2004(2):15-17.

      [10]Anon.TR-800MMSATC_Guidev1.0_270407.pdf.http://www.iwow.com.sg,2007/2007.

      作者簡介 杜小偉 男,1983年出生,湖北襄樊人,2007年獲廣東工業(yè)大學(xué)電子科學(xué)與技術(shù)學(xué)士學(xué)位,在讀碩士研究生。研究方向為嵌入式系統(tǒng)的開發(fā)與應(yīng)用。

      和田县| 贵定县| 顺义区| 乐至县| 扶沟县| 茶陵县| 梅州市| 海林市| 渭源县| 黑水县| 天柱县| 泸州市| 洛扎县| 江口县| 信阳市| 吉木萨尔县| 剑河县| 鄂托克前旗| 新源县| 静乐县| 白玉县| 定边县| 克拉玛依市| 龙南县| 屏边| 深圳市| 二连浩特市| 六枝特区| 云梦县| 土默特左旗| 收藏| 武强县| 乌鲁木齐县| 凭祥市| 保亭| 怀化市| 青神县| 太湖县| 达州市| 光山县| 五河县|