informatika:maturita:huffmann
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
informatika:maturita:huffmann [26. 09. 2020, 22.57] – vytvořeno rydlo | informatika:maturita:huffmann [26. 09. 2020, 23.18] (aktuální) – rydlo | ||
---|---|---|---|
Řádek 7: | Řádek 7: | ||
V klasickém kódování ASCII zabere 22 B neboli 176 b. | V klasickém kódování ASCII zabere 22 B neboli 176 b. | ||
- | V Huffmanově kódování pouze 46 b tedy necelých | + | V Huffmanově kódování pouze 60 b tedy necelých |
- | Postup: | + | ==== Postup |
- **Zjistíme četnost** jednotlivých znaků:< | - **Zjistíme četnost** jednotlivých znaků:< | ||
^ Znak | ^ Znak | ||
Řádek 17: | Řádek 17: | ||
- Zpětně **procházíme vzniklý strom** a na každé úrovni **přidělujeme vždy symboly 1 a 0** tak, že větev/znak s vyšší četností dostane 1 a větev/znak s nižší četností 0. | - Zpětně **procházíme vzniklý strom** a na každé úrovni **přidělujeme vždy symboly 1 a 0** tak, že větev/znak s vyšší četností dostane 1 a větev/znak s nižší četností 0. | ||
- | Na příkladu: | + | ==== Na příkladu |
- Nejnižší četnost mají znaky X,S, proto vznikne dvojznak (X,S) s četností 2:< | - Nejnižší četnost mají znaky X,S, proto vznikne dvojznak (X,S) s četností 2:< | ||
^ Znak | ^ Znak | ||
Řádek 23: | Řádek 23: | ||
</ | </ | ||
- Další dvojice v pořad je O a dvojznak (X, | - Další dvojice v pořad je O a dvojznak (X, | ||
- | ^ Znak | + | ^ Znak |
- | ^ Četnost | + | ^ Četnost |
</ | </ | ||
- Nyní mají nejnižší četnost znaky N a J, vzniká z nich dvojznak:< | - Nyní mají nejnižší četnost znaky N a J, vzniká z nich dvojznak:< | ||
- | ^ Znak | + | ^ Znak |
- | ^ Četnost | + | ^ Četnost |
</ | </ | ||
- V dalším kroku budeme slučovat trojznak XSO a dvojznak NJ, který bude mít hodnotu 7:< | - V dalším kroku budeme slučovat trojznak XSO a dvojznak NJ, který bude mít hodnotu 7:< | ||
- | ^ Znak | + | ^ Znak |
- | ^ Četnost | + | ^ Četnost |
</ | </ | ||
- Dále slučujeme mezeru a E:< | - Dále slučujeme mezeru a E:< | ||
- | ^ Znak | + | ^ Znak |
- | ^ Četnost | + | ^ Četnost |
</ | </ | ||
- V předposledním kroku bude složený znak NJXSO spojen s T:< | - V předposledním kroku bude složený znak NJXSO spojen s T:< | ||
- | ^ Znak | + | ^ Znak |
- | ^ Četnost | + | ^ Četnost |
</ | </ | ||
- Při posledním složení už vznikne jediný složený znak, tedy kompletní strom: | - Při posledním složení už vznikne jediný složený znak, tedy kompletní strom: | ||
- | ^ Znak | + | ^ Znak |
- | ^ Četnost | + | ^ Četnost |
</ | </ | ||
- | Výše uvedený řetězec lze zapsat také formou stromu: | + | ==== Výše uvedený řetězec lze zapsat také formou stromu |
- | {{ : | + | |
+ | {{ : | ||
+ | |||
+ | ==== Při zpětném sestavení přidělujeme 1 a 0 ==== | ||
+ | |||
+ | |||
+ | | krok: ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ Celkem | | ||
+ | ^ | ||
+ | ^ | ||
+ | ^ SPC | 0 | 0 | | ||
+ | ^ | ||
+ | ^ | ||
+ | ^ | ||
+ | ^ | ||
+ | ^ | ||
+ | |||
+ | [[http:// | ||
+ | ==== Zakódovaný text ==== | ||
+ | 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 |
informatika/maturita/huffmann.1601153862.txt.gz · Poslední úprava: autor: rydlo