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