Кодиране на Huffman - Компресия - Дърво - Декодиране онлайн

Дешифриране на кодирането на Хафман

Кодиращ генератор на Huffman

Инструмент за компресиране/декомпресиране с Huffman кодиране. Кодирането на Huffman е алгоритъм за компресиране на данни без загуби, използващ двоично дърво и код с променлива дължина въз основа на вероятностите за възникване.

Отговори на въпроси

Как да кодирам с Huffman Coding? (Принцип на криптиране)

Кодът Хъфман използвайте честотата на появата на букви в текста, изчислявайте и сортирайте символите от най-честите до най-рядките.

Пример: Съобщението DCODEMESSAGE съдържа 3 пъти буквата E, 2 пъти буквите D и S и 1 път буквите A, C, G, M и O .

Алгоритъмът на Хъфман ще създаде дърво, имащо за листа намерените букви и за стойност (или тегло) техния брой появявания в съобщението. За да създадете това дърво, намерете 2-те най-слаби възела (най-малкото тегло) и ги закачете към нов възел, чието тегло е сумата от 2-те възли. Повтаряйте операцията, докато имате само един възел, който ще се превърне в корен (и който ще има като тегло общия брой букви на съобщението).

След това се получава двоичен код на всеки символ чрез пресичане на дървото от корена до листа и отбелязване на хода (0 или 1) на всеки възел.

Пример: DCODEMOI води до създаване на дърво, така че най-често присъстващите D и O да имат кратък код. D = 00, O = 01, I = 111, M = 110, E = 101, C = 100 или 00100010010111001111 (20 бита)

компресия

Как да декодирам кода на Хафман? (Принцип на дешифриране)

Дешифриране на кода Хъфман изисква познаване на дървото за кореспонденция или речника (знаци с двоичен код)

За да дешифрирате, прегледайте дървото от корен до листа (обикновено отгоре надолу), докато получите съществуващ лист (или стойност, известна в речника).

Пример: Декодирайте съобщението 00100010010111001111, намерете 0 не дава никаква кореспонденция, след това продължете с 00, което е код за буквата D, след това 1 (не съществува), след това 10 (не съществува), след това 100 (код за C) и т.н.