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