當(dāng)前大家對(duì)于霍夫曼編碼都是頗為感興趣的,大家都想要了解一下霍夫曼編碼,那么小美也是在網(wǎng)絡(luò)上收集了一些關(guān)于霍夫曼編碼的一些信息來分享給大家,希望能夠幫到大家哦。
1、霍夫曼編碼(英語:Huffman Coding),又譯為哈夫曼編碼、赫夫曼編碼,是一種用于無損數(shù)據(jù)壓縮的熵編碼(權(quán)編碼)算法。
2、由大衛(wèi)·霍夫曼在1952年發(fā)明。
3、在計(jì)算機(jī)數(shù)據(jù)處理中,霍夫曼編碼使用變長(zhǎng)編碼表對(duì)源符號(hào)(如文件中的一個(gè)字母)進(jìn)行編碼,其中變長(zhǎng)編碼表是通過一種評(píng)估來源符號(hào)出現(xiàn)機(jī)率的方法得到的,出現(xiàn)機(jī)率高的字母使用較短的編碼,反之出現(xiàn)機(jī)率低的則使用較長(zhǎng)的編碼,這便使編碼之后的字符串的平均長(zhǎng)度、期望值降低,從而達(dá)到無損壓縮數(shù)據(jù)的目的。
4、例如,在英文中,e的出現(xiàn)機(jī)率最高,而z的出現(xiàn)概率則最低。
5、當(dāng)利用霍夫曼編碼對(duì)一篇英文進(jìn)行壓縮時(shí),e極有可能用一個(gè)比特來表示,而z則可能花去25個(gè)比特(不是26)。
6、用普通的表示方法時(shí),每個(gè)英文字母均占用一個(gè)字節(jié),即8個(gè)比特。
7、二者相比,e使用了一般編碼的1/8的長(zhǎng)度,z則使用了3倍多。
8、倘若我們能實(shí)現(xiàn)對(duì)于英文中各個(gè)字母出現(xiàn)概率的較準(zhǔn)確的估算,就可以大幅度提高無損壓縮的比例。
9、霍夫曼樹又稱最優(yōu)二叉樹,是一種帶權(quán)路徑長(zhǎng)度最短的二叉樹。
10、所謂樹的帶權(quán)路徑長(zhǎng)度,就是樹中所有的葉結(jié)點(diǎn)的權(quán)值乘上其到根結(jié)點(diǎn)的路徑長(zhǎng)度(若根結(jié)點(diǎn)為0層,葉結(jié)點(diǎn)到根結(jié)點(diǎn)的路徑長(zhǎng)度為葉結(jié)點(diǎn)的層數(shù))。
11、樹的路徑長(zhǎng)度是從樹根到每一結(jié)點(diǎn)的路徑長(zhǎng)度之和。
本文到此結(jié)束,希望對(duì)大家有所幫助。