中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于RT-Thread和STM32的數(shù)碼相框設(shè)計方案

        基于RT-Thread和STM32的數(shù)碼相框設(shè)計方案

        作者: 時間:2013-12-19 來源:網(wǎng)絡(luò) 收藏

        4.系統(tǒng)軟件設(shè)計

        本系統(tǒng)的軟件主要由系統(tǒng)各模塊初始化、μC/GUI建立、文件系統(tǒng)讀取圖片及字庫文件、圖片解碼算法的實現(xiàn)、觸摸瀏覽功能及幻燈片播放功能等功能模塊組成。

        4.1μC/GUI建立本系統(tǒng)利用μC/GUI builder建立μC/GUI,在μC/GUI builder中建立窗體、文本框、控件等、將編譯后產(chǎn)生的C文件添加到工程目錄中。μC/GUI builder的應(yīng)用,縮短了界面開發(fā)周期,修改靈活方便,后期修改界面時,只需要在μC/GUI builder修改相關(guān)組件,編譯運行即可實現(xiàn)程序的修改。

        4.2μC/GUI顯示漢字

        μC/GUI中通過查找字模的方式來實現(xiàn)字體的顯示。字體庫中的每一個字母都有其對應(yīng)的字模,字模由結(jié)構(gòu)體GUI_FONT和GUI_FONT_PROP統(tǒng)一管理。但是μC/GUI中本身只支持英文,沒有提供中文的字庫源碼文件。本系統(tǒng)在修改μC /GUI字庫顯示驅(qū)動函數(shù)的基礎(chǔ)上實現(xiàn)了漢字的顯示,以顯示12*12點陣漢字為例,具體的修改步驟如下:

        第一步:在GUI.H中聲明全局結(jié)構(gòu)體對象GUI_Font12_HZ;

        第二步:定義存放字模數(shù)據(jù)的數(shù)組;

        第三步:定義用于說明每個字母的字模數(shù)據(jù)在程序段存儲方式的結(jié)構(gòu)體;

        第四步:根據(jù)漢字內(nèi)碼高位定義多個結(jié)構(gòu)體,用于存放字庫字模編碼和字模數(shù)據(jù)存放地址的映像;

        第五步:將創(chuàng)建的漢字庫文件HZK12.C添加至μC/GUI工程,在主函數(shù)中調(diào)用顯示函數(shù)。

        通過以上步驟實現(xiàn)了中文漢字在μC/GUI界面的顯示,經(jīng)測試,漢字顯示流暢穩(wěn)定。

        4.3圖片解碼算法

        JPEG圖片解碼顯示包括解析JPEG頭文件信息、基于連續(xù)DCT編碼的JPEG解碼算法處理、轉(zhuǎn)換圖像格式、液晶顯示等部分,總體流程圖如圖7所示。

        本文引用地址:http://www.antipu.com.cn/article/256991.htm



        4.3.1解析JPEG頭文件信息

        對JPEG解碼的過程進行初始化,獲取JPEG頭文件中的相關(guān)信息,本系統(tǒng)的方法是設(shè)計一系列的結(jié)構(gòu)體對應(yīng)頭文件中的各個信息標記,并存儲標記內(nèi)表示的信息,如色彩信息、采樣比、圖片尺寸、量化表、Huffman解碼表等重要信息。

        4.3.2基于連續(xù)DCT編碼的JPEG解碼算法

        基于連續(xù)DCT編碼的JPEG解碼算法包括熵解碼、反量化和反向離散余弦變換(IDCT)共三個步驟。JPEG基本系統(tǒng)的解碼器結(jié)構(gòu)圖如圖8所示。



        (1)熵解碼。熵解碼的輸入信號是被壓縮編碼的比特流,輸出是被解碼得到的DCT變換系數(shù)的量化值。通過查找Huffman解碼表將壓縮圖像數(shù)據(jù)還原成交流AC系數(shù)和直流DC系數(shù)組成的量化數(shù)據(jù)塊。

        熵解碼對讀入的圖像數(shù)據(jù)進行DC直流系數(shù)和AC交流系數(shù)的Huffman解碼。JPEG算法提供標準的Huffman碼表,針對每幅圖像都有各自不同的特點,系統(tǒng)熵解碼采用自適應(yīng)的Huffman碼表。采用自適應(yīng)的Huffman碼表,首先統(tǒng)計輸入圖像數(shù)據(jù)的特性,生成碼樹,再反推得到各級Huffman碼表。

        在JPEG頭文件信息的標記中,定義了一張表用來記錄Huffman樹其代碼長度限制在16bit以內(nèi)。JPEG頭文件信息一般包含4個Huffman碼:用于解碼直流DC系數(shù)的Huffman碼表,其中包括一個亮度表和一個色度表;用于解碼交流AC系數(shù)的Huffman碼表,其中包括一個亮度表和一個色度表。根據(jù)Huffman碼表在文件中的保存形式,設(shè)計Huffman解碼一個碼字的程序,程序流程圖如圖9所示。



        解碼時,輸入圖像壓縮后的數(shù)據(jù)流,從數(shù)據(jù)流中讀取比特數(shù)據(jù)組成的碼字,在Huffman樹中搜索碼字的位置,根據(jù)碼字的位置確定解碼的值,解碼輸出結(jié)果是一個8位值。在Huffman解碼過程中,如果產(chǎn)生了一個0xFF,就用0xFF0x00代替,把0xFF0x00當做0xFF進行處理。

        (2)反量化。反量化的輸入信號是熵解碼后的數(shù)據(jù),通過查量化表進行計算,將在壓縮過程中經(jīng)過DCT變換后的頻率系數(shù)還原出來,反量化成DCT系數(shù)。

        JPEG文件中包括亮度量化表和色度量化表兩張量化表,將Huffman解碼得到的系數(shù)矩陣與相應(yīng)的量化矩陣相乘,即得到反量化結(jié)果。

        由于數(shù)據(jù)是按8×8矩陣的“Z”字形編排,所以要對反量化運算的結(jié)果進行反Zig-Zag變換。

        (3)反向離散余弦變換(IDCT)。反向離散余弦變換把頻率域DCT分量系數(shù)反轉(zhuǎn)成顏色空間域表示的圖像數(shù)據(jù)。對反量化后得到的DCT變換系數(shù)經(jīng)過反向離散余弦變換IDCT得到圖像的像素。反離散余弦轉(zhuǎn)換的輸入是頻率域的一個8×8分量系數(shù)塊,輸出則得到空間域的一個8×8像素塊。

        在程序運行過程中,IDCT運算量較大,有大量浮點乘法和加法運算,程序執(zhí)行速度較慢,這對圖片能否流暢的顯示有很大影響。基于此本統(tǒng)軟件對IDCT算法了優(yōu)化,采用一種快速IDCT算法[5],把二維IDCT分解成行和列兩個一維IDCT,再將IDCT算法通過數(shù)學變換轉(zhuǎn)化為離散傅里葉逆變換(IDFT),利用矩陣變換簡化計算。在開始進行二維IDCT轉(zhuǎn)換時,先對輸入的反量化后的數(shù)據(jù)進行8次一維的行變換,并將存儲運行結(jié)果,再對運行的結(jié)果進行8次一維的列變換,經(jīng)過兩次變換,得到的就是二維IDCT運算變換的結(jié)果。程序流程圖如圖10所示。

        電路相關(guān)文章:電路分析基礎(chǔ)


        手機電池相關(guān)文章:手機電池修復(fù)




        評論


        相關(guān)推薦

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

        關(guān)閉