Binární kódování čísel: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace |
||
(Není zobrazeno 33 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
==Se statickou velikostí== |
|||
==Varianta A== |
|||
* Mají pevný rozsah daný svou bitovou délkou |
|||
{| class="wikitable sortable" |
|||
* Snazší a efektivnější zpracování na počítači |
|||
{| |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 1 |
|||
! Číslice !! Kódování |
|||
|- |
|||
| 0 || 0 |
|||
|- |
|||
| 1 || 1 |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 2 |
|||
! Číslice !! Kódování |
|||
|- |
|||
| 0 || 00 |
|||
|- |
|||
| 1 || 01 |
|||
|- |
|||
| 2 || 10 |
|||
|- |
|||
| 3 || 11 |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 3 |
|||
! Číslice !! Kódování |
|||
|- |
|||
| 0 || 000 |
|||
|- |
|||
| 1 || 001 |
|||
|- |
|||
| 2 || 010 |
|||
|- |
|||
| 3 || 011 |
|||
|- |
|||
| 4 || 100 |
|||
|- |
|||
| 5 || 101 |
|||
|- |
|||
| 6 || 110 |
|||
|- |
|||
| 7 || 111 |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 4 |
|||
! Číslice !! Kódování |
|||
|- |
|||
| 0 || 0000 |
|||
|- |
|||
| 1 || 0001 |
|||
|- |
|||
| 2 || 0010 |
|||
|- |
|||
| 3 || 0011 |
|||
|- |
|||
| 4 || 0100 |
|||
|- |
|||
| 5 || 0101 |
|||
|- |
|||
| 6 || 0110 |
|||
|- |
|||
| 7 || 0111 |
|||
|- |
|||
| 8 || 1000 |
|||
|- |
|||
| 9 || 1001 |
|||
|- |
|||
| 10 || 1010 |
|||
|- |
|||
| 11 || 1011 |
|||
|- |
|||
| 12 || 1100 |
|||
|- |
|||
| 13 || 1101 |
|||
|- |
|||
| 14 || 1110 |
|||
|- |
|||
| 15 || 1111 |
|||
|} |
|||
|} |
|||
==S dynamickou velikostí== |
|||
'''Požadavky:''' |
|||
* Malé režijní informace, vysoká efektivita uložení dat |
|||
* Výpočetní náročnost |
|||
* Schopnost efektivně kódovat krátké bitové sekvence (i jednobitové) |
|||
* Schopnost efektivně kódovat dlouhé bitové sekvence (až nekonečné) |
|||
Jedním ze základních kritérií pro výběr vhodného kódování je právě schopnost kódovat dynamická čísla s režijními informacemi menšími než 0,5 pro celou škálu hodnot. Obecně vzato kódování, která mají nízkou efektivitu pro malé hodnoty pak mají vyšší efektivitu pro velké a naopak. Závislost poměru režijní informace u jednoduchých kódování má lineární charakter a naklonění této přímky pak zálež na režii kódu pro počáteční hodnotu nul. U kódování s exponenciálním růstem některé složky či u kódování s využitím rekurze pak s růstem hodnot efektivita kódování roste s růstem hodnoty. |
|||
===Se značkou pro pokračování=== |
|||
Vychází z kódování s pevnou šířkou, ale navíc určuje jednu hodnotu (zde nejvyšší číslo) jako ukončovací značku. Ve výsledku je tedy vždy obsažena na konci minimálně ukončovací značka. |
|||
* Mohou růst do nekončena |
|||
* Jejich generování i zpětná analýza je náročnější na výpočetní operace |
|||
{| |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 1 |
|||
! Číslice !! Kódování |
! Číslice !! Kódování |
||
|- |
|- |
||
Řádek 19: | Řádek 127: | ||
|- |
|- |
||
| 7 || 11111110 |
| 7 || 11111110 |
||
|- |
|||
| 8 || 111111110 |
|||
|- |
|||
| 9 || 1111111110 |
|||
|- |
|||
| 10 || 11111111110 |
|||
|- |
|||
| 11 || 111111111110 |
|||
|- |
|||
| 12 || 1111111111110 |
|||
|- |
|||
| 13 || 11111111111110 |
|||
|- |
|||
| 14 || 111111111111110 |
|||
|- |
|||
| 15 || 1111111111111110 |
|||
|- |
|||
| ... || ... |
|||
|} |
|} |
||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 2 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 00 || 0,5 |
|||
|- |
|||
| 1 || 01 || 0,5 |
|||
|- |
|||
| 2 || 10 || 0 |
|||
|- |
|||
| 3 || 11 00 || 0,5 |
|||
|- |
|||
| 4 || 11 01 || 0,25 |
|||
|- |
|||
| 5 || 11 10 || 0,25 |
|||
|- |
|||
| 6 || 11 11 00 || 0,5 |
|||
|- |
|||
| 7 || 11 11 01 || 0,5 |
|||
|- |
|||
| 8 || 11 11 10 || 0,33 |
|||
|- |
|||
| 9 || 11 11 11 00 || 0,5 |
|||
|- |
|||
| 10 || 11 11 11 01 || 0,5 |
|||
|- |
|||
| 11 || 11 11 11 10 || 0,5 |
|||
|- |
|||
| 12 || 11 11 11 11 00 || 0,6 |
|||
|- |
|||
| 13 || 11 11 11 11 01 || 0,6 |
|||
|- |
|||
| 14 || 11 11 11 11 10 || 0,6 |
|||
|- |
|||
| 15 || 11 11 11 11 11 00 || 0,66 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 3 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 000 || 0,66 |
|||
|- |
|||
| 1 || 001 || 0,66 |
|||
|- |
|||
| 2 || 010 || 0,33 |
|||
|- |
|||
| 3 || 011 || 0,33 |
|||
|- |
|||
| 4 || 100 || 0 |
|||
|- |
|||
| 5 || 101 || 0 |
|||
|- |
|||
| 6 || 110 || 0 |
|||
|- |
|||
| 7 || 111 000 || 0,5 |
|||
|- |
|||
| 8 || 111 001 || 0,33 |
|||
|- |
|||
| 9 || 111 010 || 0,33 |
|||
|- |
|||
| 10 || 111 010 || 0,33 |
|||
|- |
|||
| 11 || 111 011 || 0,33 |
|||
|- |
|||
| 12 || 111 100 || 0,33 |
|||
|- |
|||
| 13 || 111 101 || 0,33 |
|||
|- |
|||
| 14 || 111 110 || 0,33 |
|||
|- |
|||
| 15 || 111 111 000 || 0,55 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Rostoucí šířka |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 || 0 |
|||
|- |
|||
| 1 || 1 00 || 0,66 |
|||
|- |
|||
| 2 || 1 01 || 0,33 |
|||
|- |
|||
| 3 || 1 10 || 0,33 |
|||
|- |
|||
| 4 || 1 11 000 || 0,5 |
|||
|- |
|||
| 5 || 1 11 001 || 0,5 |
|||
|- |
|||
| 6 || 1 11 010 || 0,5 |
|||
|- |
|||
| 7 || 1 11 011 || 0,5 |
|||
|- |
|||
| 8 || 1 11 100 || 0,33 |
|||
|- |
|||
| 9 || 1 11 101 || 0,33 |
|||
|- |
|||
| 10 || 1 11 110 || 0,33 |
|||
|- |
|||
| 11 || 1 11 111 0000 || 0,6 |
|||
|- |
|||
| 12 || 1 11 111 0001 || 0,6 |
|||
|- |
|||
| 13 || 1 11 111 0010 || 0,6 |
|||
|- |
|||
| 14 || 1 11 111 0011 || 0,6 |
|||
|- |
|||
| 15 || 1 11 111 0100 || 0,6 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
|} |
|||
===Se značkou pro ukončení=== |
|||
{| |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 1 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 1 || 0 |
|||
|- |
|||
| 1 || 01 || 0,5 |
|||
|- |
|||
| 2 || 001 || 0,33 |
|||
|- |
|||
| 3 || 0001 || 0,5 |
|||
|- |
|||
| 4 || 00001 || 0,4 |
|||
|- |
|||
| 5 || 000001 || 0,5 |
|||
|- |
|||
| 6 || 0000001 || 0,57 |
|||
|- |
|||
| 7 || 00000001 || 0,71 |
|||
|- |
|||
| 8 || 000000001 || 0,55 |
|||
|- |
|||
| 9 || 0000000001 || 0,6 |
|||
|- |
|||
| 10 || 00000000001 || 0,63 |
|||
|- |
|||
| 11 || 000000000001 || 0,66 |
|||
|- |
|||
| 12 || 0000000000001 || 0,69 |
|||
|- |
|||
| 13 || 00000000000001 || 0,71 |
|||
|- |
|||
| 14 || 000000000000001 || 0,73 |
|||
|- |
|||
| 15 || 0000000000000001 || 0,76 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 2 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 11 || 0,5 |
|||
|- |
|||
| 1 || 00 11 || 0,75 |
|||
|- |
|||
| 2 || 01 11 || 0,5 |
|||
|- |
|||
| 3 || 10 11 || 0,5 |
|||
|- |
|||
| 4 || 00 00 11 || 0,5 |
|||
|- |
|||
| 5 || 00 01 11 || 0,5 |
|||
|- |
|||
| 6 || 00 10 11 || 0,5 |
|||
|- |
|||
| 7 || 01 00 11 || 0,5 |
|||
|- |
|||
| 8 || 01 01 11 || 0,33 |
|||
|- |
|||
| 9 || 01 10 11 || 0,33 |
|||
|- |
|||
| 10 || 10 00 11 || 0,33 |
|||
|- |
|||
| 11 || 10 01 11 || 0,33 |
|||
|- |
|||
| 12 || 10 10 11 || 0,33 |
|||
|- |
|||
| 13 || 00 00 00 11 || 0,5 |
|||
|- |
|||
| 14 || 00 00 01 11 || 0,5 |
|||
|- |
|||
| 15 || 00 00 10 11 || 0,5 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Bitová šířka 3 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 111 || 0,66 |
|||
|- |
|||
| 1 || 000 111 || 0,83 |
|||
|- |
|||
| 2 || 001 111 || 0,66 |
|||
|- |
|||
| 3 || 010 111 || 0,66 |
|||
|- |
|||
| 4 || 011 111 || 0,5 |
|||
|- |
|||
| 5 || 100 111 || 0,5 |
|||
|- |
|||
| 6 || 101 111 || 0,5 |
|||
|- |
|||
| 7 || 110 111 || 0,5 |
|||
|- |
|||
| 8 || 000 000 111 || 0,55 |
|||
|- |
|||
| 9 || 000 001 111 || 0,55 |
|||
|- |
|||
| 10 || 000 010 111 || 0,55 |
|||
|- |
|||
| 11 || 000 011 111 || 0,55 |
|||
|- |
|||
| 12 || 000 100 111 || 0,55 |
|||
|- |
|||
| 13 || 000 101 111 || 0,55 |
|||
|- |
|||
| 14 || 000 110 111 || 0,55 |
|||
|- |
|||
| 15 || 000 000 000 111 || 0,66 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Rostoucí šířka |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 1 || 0 |
|||
|- |
|||
| 1 || 0 11 || 0,66 |
|||
|- |
|||
| 2 || 0 00 111 || 0,66 |
|||
|- |
|||
| 3 || 0 01 111 || 0,66 |
|||
|- |
|||
| 4 || 0 00 000 1111 || 0,7 |
|||
|- |
|||
| 5 || 0 00 001 1111 || 0,7 |
|||
|- |
|||
| 6 || 0 00 010 1111 || 0,7 |
|||
|- |
|||
| 7 || 0 00 011 1111 || 0,7 |
|||
|- |
|||
| 8 || 0 00 100 1111 || 0,6 |
|||
|- |
|||
| 9 || 0 00 101 1111 || 0,6 |
|||
|- |
|||
| 10 || 0 00 110 1111 || 0,6 |
|||
|- |
|||
| 11 || 0 01 000 1111 || 0,6 |
|||
|- |
|||
| 12 || 0 01 001 1111 || 0,6 |
|||
|- |
|||
| 13 || 0 01 010 1111 || 0,6 |
|||
|- |
|||
| 14 || 0 01 011 1111 || 0,6 |
|||
|- |
|||
| 15 || 0 01 100 1111 || 0,6 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
|} |
|||
===S ukončovací sekvencí bitů=== |
|||
Je určena speciální sekvence bitů, která označuje konec čísla. Bity od začátku po tento konec jsou pak kódovány tak, aby se v nich daná sekvence nevyskytovala. |
|||
* Náročné na kódování a dekódování |
|||
{| |
|||
| |
|||
{| class="wikitable" |
|||
|+ Ukončovací sekvence 1 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 1 || 0 |
|||
|- |
|||
| 1 || 01 || 0,5 |
|||
|- |
|||
| 2 || 001 || 0,33 |
|||
|- |
|||
| 3 || 0001 || 0,5 |
|||
|- |
|||
| 4 || 00001 || 0,4 |
|||
|- |
|||
| 5 || 000001 || 0,5 |
|||
|- |
|||
| 6 || 0000001 || 0,57 |
|||
|- |
|||
| 7 || 00000001 || 0,71 |
|||
|- |
|||
| 8 || 000000001 || 0,55 |
|||
|- |
|||
| 9 || 0000000001 || 0,6 |
|||
|- |
|||
| 10 || 00000000001 || 0,63 |
|||
|- |
|||
| 11 || 000000000001 || 0,66 |
|||
|- |
|||
| 12 || 0000000000001 || 0,69 |
|||
|- |
|||
| 13 || 00000000000001 || 0,71 |
|||
|- |
|||
| 14 || 000000000000001 || 0,73 |
|||
|- |
|||
| 15 || 0000000000000001 || 0,76 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Ukončovací sekvence 11 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 11 || 0,5 |
|||
|- |
|||
| 1 || 011 || 0,66 |
|||
|- |
|||
| 2 || 0011 || 0,5 |
|||
|- |
|||
| 3 || 1011 || 0,5 |
|||
|- |
|||
| 4 || 00011 || 0,4 |
|||
|- |
|||
| 5 || 01011 || 0,4 |
|||
|- |
|||
| 6 || 10011 || 0,4 |
|||
|- |
|||
| 7 || 000011 || 0,5 |
|||
|- |
|||
| 8 || 001011 || 0,3 |
|||
|- |
|||
| 9 || 010011 || 0,3 |
|||
|- |
|||
| 10 || 100011 || 0,3 |
|||
|- |
|||
| 11 || 101011 || 0,3 |
|||
|- |
|||
| 12 || 0000011 || 0,42 |
|||
|- |
|||
| 13 || 0001011 || 0,42 |
|||
|- |
|||
| 14 || 0010011 || 0,42 |
|||
|- |
|||
| 15 || 0100011 || 0,42 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Ukončovací sekvence 111 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 111 || 0,66 |
|||
|- |
|||
| 1 || 0111 || 0,75 |
|||
|- |
|||
| 2 || 00111 || 0,6 |
|||
|- |
|||
| 3 || 10111 || 0,6 |
|||
|- |
|||
| 4 || 000111 || 0,5 |
|||
|- |
|||
| 5 || 010111 || 0,5 |
|||
|- |
|||
| 6 || 100111 || 0,5 |
|||
|- |
|||
| 7 || 110111 || 0,5 |
|||
|- |
|||
| 8 || 0000111 || 0,43 |
|||
|- |
|||
| 9 || 0010111 || 0,43 |
|||
|- |
|||
| 10 || 0100111 || 0,43 |
|||
|- |
|||
| 11 || 0110111 || 0,43 |
|||
|- |
|||
| 12 || 1000111 || 043 |
|||
|- |
|||
| 13 || 1010111 || 0,43 |
|||
|- |
|||
| 14 || 1100111 || 0,43 |
|||
|- |
|||
| 15 || 00000111 || 0,5 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
|} |
|||
==Složené tvary== |
|||
===Délka a hodnota=== |
|||
{| class="wikitable" |
|||
| Délka || Hodnota |
|||
|} |
|||
===Unární délkou=== |
|||
{| |
|||
| |
|||
{| class="wikitable" |
|||
|+ Statická délka 0 + n |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 || 0 |
|||
|- |
|||
| 1 || 10 0 || 0,66 |
|||
|- |
|||
| 2 || 10 1 || 0,33 |
|||
|- |
|||
| 3 || 110 00 || 0,6 |
|||
|- |
|||
| 4 || 110 01 || 0,4 |
|||
|- |
|||
| 5 || 110 10 || 0,4 |
|||
|- |
|||
| 6 || 110 11 || 0,4 |
|||
|- |
|||
| 7 || 1110 000 || 0,57 |
|||
|- |
|||
| 8 || 1110 001 || 0,57 |
|||
|- |
|||
| 9 || 1110 010 || 0,57 |
|||
|- |
|||
| 10 || 1110 011 || 0,57 |
|||
|- |
|||
| 11 || 1110 100 || 0,57 |
|||
|- |
|||
| 12 || 1110 101 || 0,57 |
|||
|- |
|||
| 13 || 1110 110 || 0,57 |
|||
|- |
|||
| 14 || 1110 111 || 0,57 |
|||
|- |
|||
| 15 || 11110 0000 || 0,55 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Statická délka 1 + n |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 0 || 0,5 |
|||
|- |
|||
| 1 || 0 1 || 0,5 |
|||
|- |
|||
| 2 || 10 00 || 0,5 |
|||
|- |
|||
| 3 || 10 01 || 0,5 |
|||
|- |
|||
| 4 || 10 10 || 0,25 |
|||
|- |
|||
| 5 || 10 11 || 0,25 |
|||
|- |
|||
| 6 || 110 000 || 0,5 |
|||
|- |
|||
| 7 || 110 001 || 0,5 |
|||
|- |
|||
| 8 || 110 010 || 0,33 |
|||
|- |
|||
| 9 || 110 011 || 0,33 |
|||
|- |
|||
| 10 || 110 100 || 0,33 |
|||
|- |
|||
| 11 || 110 101 || 0,33 |
|||
|- |
|||
| 12 || 110 110 || 0,33 |
|||
|- |
|||
| 13 || 110 111 || 0,33 |
|||
|- |
|||
| 14 || 1110 0000 || 0,5 |
|||
|- |
|||
| 15 || 1110 0001 || 0,5 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Statická délka 2 + n |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 00 || 0,66 |
|||
|- |
|||
| 1 || 0 01 || 0,66 |
|||
|- |
|||
| 2 || 0 10 || 0,33 |
|||
|- |
|||
| 3 || 0 11 || 0,33 |
|||
|- |
|||
| 4 || 10 000 || 0,4 |
|||
|- |
|||
| 5 || 10 001 || 0,4 |
|||
|- |
|||
| 6 || 10 010 || 0,4 |
|||
|- |
|||
| 7 || 10 011 || 0,4 |
|||
|- |
|||
| 8 || 10 100 || 0,2 |
|||
|- |
|||
| 9 || 10 101 || 0,2 |
|||
|- |
|||
| 10 || 10 110 || 0,2 |
|||
|- |
|||
| 11 || 10 111 || 0,2 |
|||
|- |
|||
| 12 || 110 0000 || 0,42 |
|||
|- |
|||
| 13 || 110 0001 || 0,42 |
|||
|- |
|||
| 14 || 110 0010 || 0,42 |
|||
|- |
|||
| 15 || 110 0011 || 0,42 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Statická délka exponenciální |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 || 0 |
|||
|- |
|||
| 1 || 10 0 || 0,66 |
|||
|- |
|||
| 2 || 10 1 || 0,33 |
|||
|- |
|||
| 3 || 110 00 || 0,6 |
|||
|- |
|||
| 4 || 110 01 || 0,4 |
|||
|- |
|||
| 5 || 110 10 || 0,4 |
|||
|- |
|||
| 6 || 110 11 || 0,4 |
|||
|- |
|||
| 7 || 1110 0000 || 0,62 |
|||
|- |
|||
| 8 || 1110 0001 || 0,5 |
|||
|- |
|||
| 9 || 1110 0010 || 0,5 |
|||
|- |
|||
| 10 || 1110 0011 || 0,5 |
|||
|- |
|||
| 11 || 1110 0100 || 0,5 |
|||
|- |
|||
| 12 || 1110 0101 || 0,5 |
|||
|- |
|||
| 13 || 1110 0110 || 0,5 |
|||
|- |
|||
| 14 || 1110 0111 || 0,5 |
|||
|- |
|||
| 15 || 1110 1000 || 0,5 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Statická délka exponenciální od šířky 1 |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 0 || 0,5 |
|||
|- |
|||
| 1 || 0 1 || 0,5 |
|||
|- |
|||
| 2 || 10 00 || 0,5 |
|||
|- |
|||
| 3 || 10 01 || 0,5 |
|||
|- |
|||
| 4 || 10 10 || 0,25 |
|||
|- |
|||
| 5 || 10 11 || 0,25 |
|||
|- |
|||
| 6 || 110 0000 || 0,57 |
|||
|- |
|||
| 7 || 110 0001 || 0,57 |
|||
|- |
|||
| 8 || 110 0010 || 0,43 |
|||
|- |
|||
| 9 || 110 0011 || 0,43 |
|||
|- |
|||
| 10 || 110 0100 || 0,43 |
|||
|- |
|||
| 11 || 110 0101 || 0,43 |
|||
|- |
|||
| 12 || 110 0110 || 0,43 |
|||
|- |
|||
| 13 || 110 0111 || 0,43 |
|||
|- |
|||
| 14 || 110 1000 || 0,43 |
|||
|- |
|||
| 15 || 110 1001 || 0,43 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
|} |
|||
{| class="wikitable" |
|||
|+ Statická délka 1 + n s absolutní hodnotou |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 0 || 0,5 |
|||
|- |
|||
| 1 || 0 1 || 0,5 |
|||
|- |
|||
| 2 || 10 10 || 0,5 |
|||
|- |
|||
| 3 || 10 11 || 0,5 |
|||
|- |
|||
| 4 || 110 100 || 0,5 |
|||
|- |
|||
| 5 || 110 101 || 0,5 |
|||
|- |
|||
| 6 || 110 110 || 0,5 |
|||
|- |
|||
| 7 || 110 111 || 0,5 |
|||
|- |
|||
| 8 || 1110 1000 || 0,5 |
|||
|- |
|||
| 9 || 1110 1001 || 0,5 |
|||
|- |
|||
| 10 || 1110 1010 || 0,5 |
|||
|- |
|||
| 11 || 1110 1011 || 0,5 |
|||
|- |
|||
| 12 || 1110 1100 || 0,5 |
|||
|- |
|||
| 13 || 1110 1101 || 0,5 |
|||
|- |
|||
| 14 || 1110 1110 || 0,5 |
|||
|- |
|||
| 15 || 1110 1111 || 0,5 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
===S rekurzivně kódovanou délkou=== |
|||
{| |
|||
| |
|||
{| class="wikitable" |
|||
|+ Zarovnání 2 bity |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 0 || 0,5 |
|||
|- |
|||
| 1 || 0 1 || 0,5 |
|||
|- |
|||
| 2 || 10 00 || 0,5 |
|||
|- |
|||
| 3 || 10 01 || 0,5 |
|||
|- |
|||
| 4 || 10 10 || 0,25 |
|||
|- |
|||
| 5 || 10 11 || 0,25 |
|||
|- |
|||
| 6 || 11 00 00 00 || 0,625 |
|||
|- |
|||
| 7 || 11 00 00 01 || 0,625 |
|||
|- |
|||
| 8 || 11 00 00 10 || 0,5 |
|||
|- |
|||
| 9 || 11 00 00 11 || 0,5 |
|||
|- |
|||
| 10 || 11 00 01 00 || 0,5 |
|||
|- |
|||
| 11 || 11 00 01 01 || 0,5 |
|||
|- |
|||
| 12 || 11 00 01 10 || 0,5 |
|||
|- |
|||
| 13 || 11 00 01 11 || 0,5 |
|||
|- |
|||
| 14 || 11 00 10 00 || 0,5 |
|||
|- |
|||
| 15 || 11 00 10 01 || 0,5 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
| |
|||
{| class="wikitable" |
|||
|+ Zarovnání 2 bity |
|||
menší růst |
|||
! Číslice !! Kódování !! Režie |
|||
|- |
|||
| 0 || 0 0 || 0,5 |
|||
|- |
|||
| 1 || 0 1 || 0,5 |
|||
|- |
|||
| 2 || 10 00 || 0,5 |
|||
|- |
|||
| 3 || 10 01 || 0,5 |
|||
|- |
|||
| 4 || 10 10 || 0,25 |
|||
|- |
|||
| 5 || 10 11 || 0,25 |
|||
|- |
|||
| 6 || 11 00 00 || 0,5 |
|||
|- |
|||
| 7 || 11 00 01 || 0,5 |
|||
|- |
|||
| 8 || 11 00 10 || 0,33 |
|||
|- |
|||
| 9 || 11 00 11 || 0,33 |
|||
|- |
|||
| 10 || 11 01 00 || 0,33 |
|||
|- |
|||
| 11 || 11 01 01 || 0,33 |
|||
|- |
|||
| 12 || 11 01 10 || 0,33 |
|||
|- |
|||
| 13 || 11 01 11 || 0,33 |
|||
|- |
|||
| 14 || 11 10 00 00 || 0,5 |
|||
|- |
|||
| 15 || 11 10 00 01 || 0,5 |
|||
|- |
|||
| ... || ... |
|||
|} |
|||
|} |
|||
Pro efektivnější zpracování na běžných počítačích je vhodné použít kódování s rekurzivní délkou zarovnané na 8 bitů. Následující tabulka ukazuje příklady kódování. '''x''' značí samotnou kódovanou hodnotu. '''d''' značí rekurzivně kódovanou délku. |
|||
* Některé hodnoty lze vyjádřit více kódy. Např. hodnota 0 lze zapsat jako '''00''' nebo jako '''FF 01 00''' nebo '''FF 02 00 00''' atd. |
|||
* V tomto kódování lze vyjádřit také blok dat o délce nula v nejkratším tvaru pomocí '''FF 00'''. |
|||
* Pomocí tohoto kódování a principu rekurze délky lze vyjádřit nekonečně dlouhé bloky. |
|||
* Stejný mechanizmus lze použít pro zarovnání na různé délky jako 2, 4, 8, 16, atd. |
|||
{| class="wikitable" |
|||
|+ Zarovnání 8 bitů (bajt) |
|||
! Číslice !! Kódování !! Bitová režie |
|||
|- |
|||
| 0 až 2<sup>7</sup>-1|| 0xxxxxxx || 0,125 |
|||
|- |
|||
| 2<sup>7</sup> až 2<sup>14</sup>-1 || 10xxxxxx xxxxxxxx || 0,125 |
|||
|- |
|||
| 2<sup>14</sup> až 2<sup>21</sup>-1 || 110xxxxx xxxxxxxx xxxxxxxx || 0,125 |
|||
|- |
|||
| 2<sup>21</sup> až 2<sup>28</sup>-1 || 1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,125 |
|||
|- |
|||
| 2<sup>28</sup> až 2<sup>35</sup>-1 || 11110xxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,125 |
|||
|- |
|||
| 2<sup>35</sup> až 2<sup>42</sup>-1 || 111110xx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,125 |
|||
|- |
|||
| 2<sup>42</sup> až 2<sup>49</sup>-1 || 1111110x xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,125 |
|||
|- |
|||
| 2<sup>49</sup> až 2<sup>56</sup>-1 || 11111110 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,125 |
|||
|- |
|||
| 0 až 2<sup>d*8</sup>-1 || 11111111 dddddddd ... || |
|||
|- |
|||
| nulová délka || 11111111 00000000 || 1 |
|||
|- |
|||
| 0 až 2<sup>8</sup>-1 || 11111111 00000001 xxxxxxxx || 0,66 |
|||
|- |
|||
| 2<sup>8</sup> až 2<sup>16</sup>-1 || 11111111 00000010 xxxxxxxx xxxxxxxx || 0,5 |
|||
|- |
|||
| 2<sup>16</sup> až 2<sup>24</sup>-1 || 11111111 00000010 xxxxxxxx xxxxxxxx xxxxxxxx || 0,4 |
|||
|- |
|||
| 2<sup>24</sup> až 2<sup>32</sup>-1 || 11111111 00000011 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,3 |
|||
|- |
|||
| 2<sup>32</sup> až 2<sup>40</sup>-1 || 11111111 00000100 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,28 |
|||
|- |
|||
| 2<sup>40</sup> až 2<sup>48</sup>-1 || 11111111 00000101 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,25 |
|||
|- |
|||
| 2<sup>48</sup> až 2<sup>56</sup>-1 || 11111111 00000110 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,22 |
|||
|- |
|||
| 2<sup>56</sup> až 2<sup>64</sup>-1 || 11111111 00000111 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx || 0,2 |
|||
|- |
|||
|colspan="3"|... |
|||
|- |
|||
| 0 až 2<sup>d*8</sup>-1 || 11111111 dddddddd dddddddd ... || |
|||
|- |
|||
| nulová délka || 11111111 10000000 00000000 || 1 |
|||
|- |
|||
| 0 až 2<sup>8</sup>-1 || 11111111 10000000 00000001 xxxxxxxx || 0,75 |
|||
|- |
|||
| 2<sup>8</sup> až 2<sup>16</sup>-1 || 11111111 10000000 00000010 xxxxxxxx xxxxxxxx || 0,6 |
|||
|- |
|||
| 2<sup>8</sup> až 2<sup>16</sup>-1 || 11111111 10000000 00000011 xxxxxxxx xxxxxxxx xxxxxxxx || 0,5 |
|||
|} |
|||
[[Kategorie:Programování]] |
Aktuální verze z 29. 9. 2015, 07:09
Se statickou velikostí
- Mají pevný rozsah daný svou bitovou délkou
- Snazší a efektivnější zpracování na počítači
|
|
|
|
S dynamickou velikostí
Požadavky:
- Malé režijní informace, vysoká efektivita uložení dat
- Výpočetní náročnost
- Schopnost efektivně kódovat krátké bitové sekvence (i jednobitové)
- Schopnost efektivně kódovat dlouhé bitové sekvence (až nekonečné)
Jedním ze základních kritérií pro výběr vhodného kódování je právě schopnost kódovat dynamická čísla s režijními informacemi menšími než 0,5 pro celou škálu hodnot. Obecně vzato kódování, která mají nízkou efektivitu pro malé hodnoty pak mají vyšší efektivitu pro velké a naopak. Závislost poměru režijní informace u jednoduchých kódování má lineární charakter a naklonění této přímky pak zálež na režii kódu pro počáteční hodnotu nul. U kódování s exponenciálním růstem některé složky či u kódování s využitím rekurze pak s růstem hodnot efektivita kódování roste s růstem hodnoty.
Se značkou pro pokračování
Vychází z kódování s pevnou šířkou, ale navíc určuje jednu hodnotu (zde nejvyšší číslo) jako ukončovací značku. Ve výsledku je tedy vždy obsažena na konci minimálně ukončovací značka.
- Mohou růst do nekončena
- Jejich generování i zpětná analýza je náročnější na výpočetní operace
|
|
|
|
Se značkou pro ukončení
|
|
|
|
S ukončovací sekvencí bitů
Je určena speciální sekvence bitů, která označuje konec čísla. Bity od začátku po tento konec jsou pak kódovány tak, aby se v nich daná sekvence nevyskytovala.
- Náročné na kódování a dekódování
|
|
|
Složené tvary
Délka a hodnota
Délka | Hodnota |
Unární délkou
|
|
|
|
|
Číslice | Kódování | Režie |
---|---|---|
0 | 0 0 | 0,5 |
1 | 0 1 | 0,5 |
2 | 10 10 | 0,5 |
3 | 10 11 | 0,5 |
4 | 110 100 | 0,5 |
5 | 110 101 | 0,5 |
6 | 110 110 | 0,5 |
7 | 110 111 | 0,5 |
8 | 1110 1000 | 0,5 |
9 | 1110 1001 | 0,5 |
10 | 1110 1010 | 0,5 |
11 | 1110 1011 | 0,5 |
12 | 1110 1100 | 0,5 |
13 | 1110 1101 | 0,5 |
14 | 1110 1110 | 0,5 |
15 | 1110 1111 | 0,5 |
... | ... |
S rekurzivně kódovanou délkou
|
|
Pro efektivnější zpracování na běžných počítačích je vhodné použít kódování s rekurzivní délkou zarovnané na 8 bitů. Následující tabulka ukazuje příklady kódování. x značí samotnou kódovanou hodnotu. d značí rekurzivně kódovanou délku.
- Některé hodnoty lze vyjádřit více kódy. Např. hodnota 0 lze zapsat jako 00 nebo jako FF 01 00 nebo FF 02 00 00 atd.
- V tomto kódování lze vyjádřit také blok dat o délce nula v nejkratším tvaru pomocí FF 00.
- Pomocí tohoto kódování a principu rekurze délky lze vyjádřit nekonečně dlouhé bloky.
- Stejný mechanizmus lze použít pro zarovnání na různé délky jako 2, 4, 8, 16, atd.
Číslice | Kódování | Bitová režie |
---|---|---|
0 až 27-1 | 0xxxxxxx | 0,125 |
27 až 214-1 | 10xxxxxx xxxxxxxx | 0,125 |
214 až 221-1 | 110xxxxx xxxxxxxx xxxxxxxx | 0,125 |
221 až 228-1 | 1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,125 |
228 až 235-1 | 11110xxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,125 |
235 až 242-1 | 111110xx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,125 |
242 až 249-1 | 1111110x xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,125 |
249 až 256-1 | 11111110 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,125 |
0 až 2d*8-1 | 11111111 dddddddd ... | |
nulová délka | 11111111 00000000 | 1 |
0 až 28-1 | 11111111 00000001 xxxxxxxx | 0,66 |
28 až 216-1 | 11111111 00000010 xxxxxxxx xxxxxxxx | 0,5 |
216 až 224-1 | 11111111 00000010 xxxxxxxx xxxxxxxx xxxxxxxx | 0,4 |
224 až 232-1 | 11111111 00000011 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,3 |
232 až 240-1 | 11111111 00000100 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,28 |
240 až 248-1 | 11111111 00000101 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,25 |
248 až 256-1 | 11111111 00000110 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,22 |
256 až 264-1 | 11111111 00000111 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx | 0,2 |
... | ||
0 až 2d*8-1 | 11111111 dddddddd dddddddd ... | |
nulová délka | 11111111 10000000 00000000 | 1 |
0 až 28-1 | 11111111 10000000 00000001 xxxxxxxx | 0,75 |
28 až 216-1 | 11111111 10000000 00000010 xxxxxxxx xxxxxxxx | 0,6 |
28 až 216-1 | 11111111 10000000 00000011 xxxxxxxx xxxxxxxx xxxxxxxx | 0,5 |