Transcript 霍夫曼樹
壓縮演算法-霍夫曼壓縮 95363621林東磊 壓縮處理的基本概念 將可以省略的資料丟掉,即可以有效壓縮檔案。 壓縮可以分為可逆壓縮以及不可逆壓縮。 霍夫曼樹 左圖是這個句子「this is an example of a huffman tree」中得到的字母頻率 來建構霍夫曼樹。 為何有適應型演算法? 各資料值的出現頻率資訊一定要被存放在輸出資料的 某處,而這些資料可能會成為Overhead。 進行資料處理前必須取得全部資料的資訊。 適應型霍夫曼編碼 將所有資料值出現的頻率設為1,處理過的資料值頻率 加1,且建立霍夫曼樹;也可以說,在處理資料值的過 程中,一邊建立最“適應”資料出現頻率的霍夫曼樹。 但是如此建立霍夫曼樹的方法,恐怕造成時間上的消 耗。 FGK演算法 由Faller、Gallager、Kmouth三人發明,故稱為FGK演 算法。 此演算法會依據霍夫曼樹建立的條件,在葉的重量增 加時,讓霍夫曼樹變形滿足條件。 兄弟條件 FGK演算法是根據以下條件來變形霍夫曼樹的排列方 式。 1. 對所有節點來說,其兩個子節點的號碼是一定連續 的。 2. 父節點號碼永遠比子節點大。 V演算法 為改良後的FGK演算法,於1987年由J.S.Vitter提出。 概念:節點間的距離是『從A節點走到B節點時,中間 經過的節點數。』 V演算法 依造以下規則建立霍夫曼樹 1. 從距離跟最遠的節點由小到大分配編號。 2. 若兩節點的出現頻率相同,則在葉節點上的配點要 比內部節點更小。 參考資料 壓縮演算法-編碼原理與使用C語言的實作 維基百科