je příkladem bezeztrátového kompresního algoritmu. Nejčetnějším znakům přiřazuje kratší kódovací sekvenci, čímž šetří místo. Je detailně popsané např. na anglické wiki, existuje online applet, který provede rozbor na strom libovolné zadané věty.
Mějme větu: TENTO TEXT JE JEN TEST
V klasickém kódování ASCII zabere 22 B neboli 176 b.
V Huffmanově kódování pouze 60 b tedy necelých 8 B.
Znak | T | E | SPC | N | J | O | X | S |
---|---|---|---|---|---|---|---|---|
Četnost | 6 | 5 | 4 | 2 | 2 | 1 | 1 | 1 |
Znak | T | E | SPC | N | J | (X,S) | O |
---|---|---|---|---|---|---|---|
Četnost | 6 | 5 | 4 | 2 | 2 | 2 | 1 |
Znak | T | E | SPC | ( (X,S),O) | N | J |
---|---|---|---|---|---|---|
Četnost | 6 | 5 | 4 | 3 | 2 | 2 |
Znak | T | E | SPC | (N,J) | ( (X,S),O) |
---|---|---|---|---|---|
Četnost | 6 | 5 | 4 | 4 | 3 |
Znak | ( (N,J),( (X,S),O) ) | T | E | SPC |
---|---|---|---|---|
Četnost | 7 | 6 | 5 | 4 |
Znak | (E,SPC) | ( (N,J),( (X,S),O) ) | T |
---|---|---|---|
Četnost | 9 | 7 | 6 |
Znak | ( ( (N,J),( (X,S),O) ),T) | (E,SPC) |
---|---|---|
Četnost | 13 | 9 |
Znak | ( ( ( (N,J),( (X,S),O) ),T),(E,SPC)) |
---|---|
Četnost | 22 |
krok: | 1 | 2 | 3 | 4 | 5 | Celkem |
---|---|---|---|---|---|---|
T | 1 | 0 | 10 | |||
E | 0 | 1 | 01 | |||
SPC | 0 | 0 | 00 | |||
N | 1 | 1 | 1 | 1 | 1111 | |
J | 1 | 1 | 1 | 0 | 1110 | |
O | 1 | 1 | 0 | 0 | 1100 | |
X | 1 | 1 | 0 | 1 | 0 | 11010 |
S | 1 | 1 | 0 | 1 | 1 | 11011 |
100111111011000010011101010001110010011100111110010011101110
Dekódování probíhá sekvenčně náhradou za znak z tabulky, vždy jakmile to nalezená sekvence umožňuje:
10 | 01 | 1111 | 10 | 1100 | 00 | 10 | 01 | 11010 | 10 | 00 | 1110 | 01 | 00 | 1110 | 01 | 1111 | 00 | 10 | 01 | 11011 | 10 |
T | E | N | T | O | T | E | X | T | J | E | J | E | N | T | E | S | T |