新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ATmegal28的LED顯示屏圖像數據解碼設計

        基于ATmegal28的LED顯示屏圖像數據解碼設計

        作者: 時間:2013-01-18 來源:網絡 收藏

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

          l JPEG解碼可行性分析

          該設計所用全彩LED屏接收的數據格式為Xmp格式,Xmp格式是簡化的BMP格式。Xmp格式在圖像數據前有6個字節表示圖像的屬性,第1字節為1個點的字節數;第2字節為XMP文件中包含的圖片個數;第3,4字節為圖像的高;第5,6字節為圖像的寬,其后為圖像每點的顏色。每點的顏色用2個字節表示(16位色)。由于所用全彩LED屏只有64×64像素,所以JPEG解碼后還需進行圖像的縮放。

          JPEG解碼過程中所需要的緩存主要包括原始JPEG圖像數據的緩存、中間變量的緩存以及解出的Xmp數據的緩存。根據JPEG圖像的復雜度及壓縮比的不同,一般一幀320×240的彩色JPEG圖像的大小在2~20 KB。JPEG解碼緩存主要用于存儲Huffman表,量化表,IDCT解碼的臨時結果等。這些大約需要8 KB。解出的Xmp數據的緩存要求的RAM相對比較固定為9 KB。綜上JPEG解碼大致需25 KB的RAM。內部只有4 KB的SRAM,所以該系統外擴了64 KB的外部RAM。

          2 軟件實現

          該設計采用avr—gcc作為編譯工具。avr-gcc默認設置棧由內部RAM的頂部向下生長。由于圖像處理過程中需要占用大量的RAM空間,所以應該通過設置把所有數據區移到外部RAM,只留棧區在內部RAM,避免數據的相互覆蓋。

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

        流程框圖

          2.1 Huffman解碼的實現

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肥乡县| 顺义区| 调兵山市| 靖江市| 涪陵区| 弥勒县| 芮城县| 太白县| 元氏县| 岳阳县| 兴海县| 武山县| 扎赉特旗| 呼玛县| 潞城市| 竹山县| 临清市| 龙口市| 莲花县| 鹤岗市| 布尔津县| 综艺| 浦北县| 宁海县| 邢台县| 辰溪县| 泽州县| 中江县| 遂平县| 竹北市| 奉化市| 敦煌市| 弋阳县| 新丰县| 阳曲县| 松潘县| 福贡县| 安吉县| 江门市| 平塘县| 建水县|