“Huffman-樹”不僅能對文本數(shù)據(jù)進(jìn)行編碼、譯碼,提高文本數(shù)據(jù)的傳輸效率,同時它也能對多媒體數(shù)據(jù)(如:數(shù)字圖像、視頻等)進(jìn)行編碼、譯碼,從而實現(xiàn)多媒體數(shù)據(jù)的壓縮存儲。目前,在Web互聯(lián)網(wǎng)上廣泛使用的JPEG圖像格式就采用了Huffman編碼,與其他圖像格式(如:BMP、TIF等)相比,同一副圖像采用JPEG格式時所需的存儲空間是最少的。在這個實驗中,請設(shè)計一個Huffman編/譯碼器,并模擬數(shù)字圖像的壓縮存儲(編碼)和解碼顯示(譯碼)的過程。
(1)構(gòu)造“Huffman-樹”:
①讀入一個大小為N*M(N為圖像的高度,M為圖像的寬度)的灰度圖像塊,該圖像中的每個像素(元素)的取值范圍是0~255,取值為0表示該像素是“黑色”,取值為255表示該像素是“白色”,其他取值表示介于“黑色”和“白色”之間的灰度值。
②統(tǒng)計讀入圖像塊中每種灰度值出現(xiàn)的次數(shù),并去除出現(xiàn)次數(shù)為零的灰度值,以此作為構(gòu)造“Huffman-樹”所需的權(quán)值。
③說明:在構(gòu)造“Huffman-樹”的過程中,當(dāng)有多個待合并元素的權(quán)值相同時,每次選擇灰度值較小的兩個元素進(jìn)行合并。
(2)Huffman編碼(壓縮存儲):讀入新的灰度圖像塊,利用已建立好的“Huffman-樹”對其進(jìn)行編碼,將圖像的寬度、高度信息和編碼結(jié)果保存到文件(如:compress_image.txt)中,同時計算Huffman編碼的壓縮比并輸出。壓縮比的計算公式如下:壓縮比=原始圖像所需比特數(shù)/壓縮后圖像所需比特數(shù)。
(3)Huffman譯碼(解碼顯示):讀入壓縮存儲的灰度圖像,利用已建立好的“Huffman-樹”對其進(jìn)行譯碼,將譯碼結(jié)果按照原有寬度、高度還原圖像,并將還原之后的圖像保存到文件(如:decoding_image.txt)中。
資源簡介:算法源碼集合:有hash表、笛卡爾集、哈弗曼樹、矩陣乘法、快速排序
上傳時間: 2014-01-05
上傳用戶:lijianyu172
資源簡介:構(gòu)造哈夫曼樹 哈弗曼樹中沒有度為一的節(jié)點(diǎn),是標(biāo)準(zhǔn)的二叉樹,所以有n個葉子結(jié)點(diǎn)時,需要一個長度為2n-1的一維數(shù)組存儲哈弗曼樹的結(jié)點(diǎn)。 (1)、n個葉子節(jié)點(diǎn)只有weight權(quán)值,處理非葉子節(jié)點(diǎn),從ht[i](ht[1]~ht[n-1])中找到ht[i].weight最小的兩個節(jié)點(diǎn)ht[s1]...
上傳時間: 2016-06-13
上傳用戶:ztj182002
資源簡介:實現(xiàn)了一個相對簡單的哈弗曼樹的壓縮算法,是基于MFC開發(fā)的。
上傳時間: 2014-01-12
上傳用戶:z1191176801
資源簡介:關(guān)于哈弗曼樹的編碼譯碼,以及用文件形式輸出的的算法
上傳時間: 2014-11-22
上傳用戶:xauthu
資源簡介:該程序是基于哈弗曼樹的構(gòu)造,可以實現(xiàn)正常的編碼
上傳時間: 2017-01-27
上傳用戶:qazxsw
資源簡介:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計源碼以及報告 有3個程序:1)哈弗曼樹及哈弗曼編碼 2)排序—內(nèi)部排序方法 3)Hanoi Tower
上傳時間: 2013-12-16
上傳用戶:qoovoop
資源簡介:用C++編寫的哈弗曼樹的源代碼,方便C語言及C++初學(xué)者學(xué)習(xí)交流
上傳時間: 2013-12-06
上傳用戶:aysyzxzm
資源簡介:哈弗曼樹生成代碼,運(yùn)行后能生成哈弗曼樹,對學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有幫助。
上傳時間: 2013-12-23
上傳用戶:star_in_rain
資源簡介:C++ Builder程序員學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),里面涵蓋了所有你要學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)的所有源碼(二叉樹、鏈表、單鏈表、雙鏈表、紅黑樹、快速排序、冒泡排序、哈弗曼樹、堆、集合、字典、散列、字典、跳表、圖、最短路徑、排序。。。。)等等所有數(shù)據(jù)結(jié)構(gòu)涉及的源碼!!!
上傳時間: 2014-01-27
上傳用戶:jyycc
資源簡介:用哈弗曼樹實現(xiàn)實現(xiàn)對文件的編碼與譯碼, 本代碼用C語言描述
上傳時間: 2017-07-22
上傳用戶:wkchong
資源簡介:哈弗曼樹的c程序,通過了c的調(diào)試,運(yùn)行成功
上傳時間: 2013-12-15
上傳用戶:yan2267246
資源簡介:哈弗曼編/譯碼程序源代碼,可以由用戶讀入哈弗曼樹,也可以從文件讀入哈弗曼樹
上傳時間: 2013-12-19
上傳用戶:jcljkh
資源簡介:哈弗曼編碼的編譯和解碼 還能打印哈弗曼樹
上傳時間: 2017-09-27
上傳用戶:Yukiseop
資源簡介:讀入輸入的n的大小,n個字符串,和權(quán)值建立哈弗曼樹,并進(jìn)行哈夫曼編碼
上傳時間: 2019-11-16
上傳用戶:zlmzlm
資源簡介:哈弗曼編碼的實現(xiàn),包括了構(gòu)造哈弗曼樹函數(shù),編碼函數(shù),譯碼函數(shù)和輸出函數(shù)。
上傳時間: 2017-02-03
上傳用戶:璇珠官人
資源簡介:哈弗曼編碼的遞歸實現(xiàn)算法,包括構(gòu)造哈弗曼樹函數(shù),編碼函數(shù),譯碼函數(shù)和輸出函數(shù)。
上傳時間: 2017-02-03
上傳用戶:zhuoying119
資源簡介:哈夫曼樹與哈弗曼編碼,內(nèi)有實驗報告和程序設(shè)計!
上傳時間: 2016-12-19
上傳用戶:李彥東
資源簡介:C++實現(xiàn)的哈弗曼編碼,并有流程圖(1)I:初始化(Initialization)。從指定的英文文件中Sourcefile.txt讀取數(shù)據(jù),根據(jù)文件內(nèi)容統(tǒng)計的字符的頻度,建立哈夫曼樹。 (2)E:編碼(Encoding)。利用已經(jīng)建好的哈夫曼樹進(jìn)行編碼,并將每個字符的編碼寫入文件HuffCo...
上傳時間: 2013-12-24
上傳用戶:gxrui1991
資源簡介:我們數(shù)據(jù)結(jié)構(gòu)課上的一些作業(yè) 包括約瑟夫環(huán)和哈夫曼樹之類的幾個程序
上傳時間: 2015-01-06
上傳用戶:leehom61
資源簡介:包括編譯程序詞法分析器、操作系統(tǒng)進(jìn)程狀態(tài)切換演示、VC_哈夫曼樹halftree、節(jié)點(diǎn)矩陣最短路徑guildmap、串基本操作的演示
上傳時間: 2015-01-14
上傳用戶:plsee
資源簡介:哈夫曼樹編碼代碼
上傳時間: 2013-12-25
上傳用戶:franktu
資源簡介:構(gòu)建哈夫曼樹,并對給定的字母進(jìn)行編碼,還能將數(shù)字密碼解碼成字符串
上傳時間: 2013-12-08
上傳用戶:yy541071797
資源簡介:數(shù)據(jù)結(jié)構(gòu)哈夫曼樹
上傳時間: 2014-10-25
上傳用戶:lyy1234
資源簡介:哈夫曼樹結(jié)構(gòu)運(yùn)算
上傳時間: 2014-01-11
上傳用戶:253189838
資源簡介:哈夫曼樹的建立,編碼,以減少存儲空間
上傳時間: 2014-01-11
上傳用戶:小眼睛LSL
資源簡介:哈夫曼樹的實現(xiàn).
上傳時間: 2015-02-28
上傳用戶:shanml
資源簡介:使用動態(tài)哈夫曼樹實現(xiàn)哈夫曼編碼譯碼
上傳時間: 2013-12-29
上傳用戶:epson850
資源簡介:c語言編寫的哈夫曼程序,運(yùn)行通過的!根據(jù)輸入構(gòu)建哈夫曼樹.
上傳時間: 2015-03-15
上傳用戶:BOBOniu
資源簡介:本代碼是算法設(shè)計課程里的哈夫曼樹的查找及繪圖實驗
上傳時間: 2013-12-22
上傳用戶:woshini123456
資源簡介:哈夫曼樹的8種實現(xiàn)方法
上傳時間: 2013-12-25
上傳用戶:as275944189