Codificare Huffman - Compresie - Arborele - Decodează online

Decriptarea codificării Huffman

Generator de codare Huffman

Instrument pentru comprimare/decomprimare cu codificare Huffman. Codificarea Huffman este un algoritm de compresie a datelor fără pierderi care folosește arborele binar și codul de lungime variabilă bazat pe probabilitățile de apariție.

Răspunsuri la întrebări

Cum se codifică cu Huffman Coding? (Principiul de criptare)

Codul Huffman utilizați frecvența de apariție a literelor în text, calculați și sortați caracterele de la cel mai frecvent la cel mai puțin frecvent.

Exemplu: Mesajul DCODEMESSAGE conține de 3 ori litera E, de 2 ori literele D și S și de 1 dată literele A, C, G, M și O .

Algoritmul Huffman va crea un copac având pentru frunze literele găsite și pentru valoare (sau greutate) numărul lor de apariții în mesaj. Pentru a crea acest arbore, găsiți cele mai slabe 2 noduri (cea mai mică greutate) și conectați-le la un nou nod a cărui greutate este suma celor 2 noduri. Repetați operația până când aveți un singur nod, care va deveni rădăcină (și care va avea ca greutate numărul total de litere ale mesajului).

Codul binar al fiecărui caracter este apoi obținut prin parcurgerea copacului de la rădăcină la frunză și notând cursul (0 sau 1) la fiecare nod.

Exemplu: DCODEMOI duce la crearea unui copac astfel încât D și O, cel mai adesea prezente, vor avea un cod scurt. D = 00, O = 01, I = 111, M = 110, E = 101, C = 100 sau 00100010010111001111 (20 biți)

compresie

Cum se decodează Codul Huffman? (Principiul decriptării)

Decriptare cod Huffman necesită cunoașterea arborelui de corespondență sau a dicționarului (caractere de cod binar)

Pentru a descifra, răsfoiți arborele de la rădăcină la frunze (de obicei de sus în jos) până când obțineți o frunză existentă (sau o valoare cunoscută în dicționar).

Exemplu: Decodează mesajul 00100010010111001111, găsește 0 nu dă nicio corespondență, apoi continuă cu 00 care este cod pentru litera D, apoi 1 (nu există), apoi 10 (nu există), apoi 100 (cod pentru C) etc.