計算機信息技術

霍夫曼碼:應用實例

目前,很少有人會想到有關的事實,如何做文件壓縮。 與以前使用的個人電腦相比已經變得更加容易。 而幾乎每個人都與文件系統的工作使用的文件。 但很少有人會想到他們如何工作,在什麼基礎上的文件壓縮。 這一過程的第一個版本是霍夫曼碼,他們今天已應用於各種流行的檔案庫。 很多用戶甚至不認為文件壓縮多麼容易發生,它是工作的一個方案。 在這篇文章中,我們看一下如何壓縮什麼細微的差別有助於加快和簡化編碼的過程,以及看什麼樹編碼的原則。

歷史算法

電子信息的編碼效率的第一個算法已經成為一個代碼霍夫曼提出的,早在二十世紀中葉,即1952年。 它是誰,他此刻是多數人創建的壓縮信息程序的基本元素。 目前,使用這種代碼最流行的來源之一是檔案ZIP,ARJ,RAR和其他許多人。 另外,Huffman算法被用於壓縮的JPEG圖像和其他圖形對象。 好了,所有的傳真也使用現代編碼,在1952年發明的。 儘管由於代碼創建了這麼多時間,這一天它在各種新膜和設備古老與現代的類型,使用的事實。

有效編碼原則

Huffman算法的基礎包括一個方案,允許您更換最可信,最經常出現的符號 二進制編碼 系統。 而那些誰是不太常見的,換成較長碼。 去長霍夫曼碼後,方可系統採用全最小值出現。 該技術允許你以最小化原始消息作為一個整體的每個符號的代碼的長度。 最重要的一點是,在字母出現的編碼概率的開頭應該已經知道。 這是從他們將準備和最後的消息。 基於這些數據,進行霍夫曼代碼樹的建設,這將舉行在檔案編碼過程字母的基礎上。

霍夫曼編碼,例如

為了說明這個算法,考慮建設代碼樹的圖形變種。 使用這個方法是有效的,有必要澄清所需的處理的概念的某些值的定義。 該組中的多個節點和弧,這是從節點引向節點的,稱為曲線圖。 樹本身是一組特定的性質圖:

  • 中的每個節點可以包括不超過一個圓弧以上;
  • 其中一個節點必須是樹的根,也就是說,它不應該在所有的弧的一部分;
  • 如果桿開始沿弧線運動,這個過程應該允許在任何節點的完全搞定。

還有這樣的事情,霍夫曼碼作為樹的葉子的一部分。 它是從哪個不應該去任何弧的節點。 如果兩個節點通過圓弧連接,其中一人是其他孩子的父母,這取決於從哪個節點電弧熄滅,並包含什麼。 如果兩個節點具有相同的父節點,它們被稱為姊妹網站。 如果在葉,從幾個弧線的節點離開,那麼它被稱為二叉樹。 正是這樣的哈夫曼樹。 承建單位的特點是,每個父母的重量等於其所有子節點的權重的總和。

構建樹哈夫曼算法

霍夫曼碼的建設是從英文字母的輸入。 產生的是在未來的代碼樹的免費網站的列表。 列表中的每個節點的權重必須是相同的作為對應於該節點的字母帖子的發生的概率。 在這種情況下,誰重的至少一個從未來樹的幾個免費的網站中選擇。 在這種情況下,如果最低工資率在幾個地點觀察到的,你可以自由選擇任意對。 然後是父節點,其必須權衡不亞於對節點中的權重之和的創建。 之後,父母送的名單與自由廁所,孩子們都被刪除。 在這條弧線是適當的指標,一和零。 根據需要只保留一個節點重複此過程之多。 然後寫出來的二進制數字從上到下。

提高壓縮效率

為了提高壓縮效率,它是在樹構建代碼必須使用的字母出現在一個特定的文件的可能性,連接到樹中的所有數據,而不是讓他們分散在大量的文本文檔的事實。 如果預穿行這個文件,你可以立即計算出如何統計往往存在設施受到壓縮的信件。

壓縮過程的加速度

為了加快算法,字母的定義應該不是在一個特定的字母出現的概率,其發生的頻率方面進行。 有了這個算法變得容易,更快地與他們合作。 這也避免了與浮點除法相關的操作。 此外,在這種模式下工作,動態Huffman編碼,或者更確切地說,算法本身是沒有受到任何的變化。 這主要是由於這樣的事實,所述概率正比於頻率。 這是值得關注的一個事實,即文件或所謂的根節點的最終重量等於在對象中的字符數的待處理的總和。

結論

霍夫曼碼 - 簡單,歷史悠久的算法,它仍然被許多知名項目和企業。 它的簡單和清晰可取得有效的成果壓縮任何體積的文件,並顯著減少磁盤存儲空間。 換句話說,Huffman算法 - 長期以來一直研究並沒有被這一天減少工作圖,它的緊迫性。 而隨著以減少文件的大小,通過網絡或通過轉移它們的能力等手段更簡單,快捷,方便。 該算法的工作,你完全可以壓縮的任何信息,而不會損害它的結構和質量,但最大的效果,以減輕重量文件。 換句話說,霍夫曼碼的編碼一直是並且仍然壓縮文件大小的最流行和相關方法。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhtw.unansea.com. Theme powered by WordPress.