Unární kódování - Unary coding
Unární kódování , nebo unární číselná soustava , a také někdy nazýván teploměr kód , je entropie kódování , který představuje přirozené číslo , n , s n ty, následovaný nulou (v případě přirozené číslo se rozumí jako nezáporné celé číslo ), nebo s n - 1 jednička následovaná nulou (pokud je přirozené číslo chápáno jako přísně kladné celé číslo ). Například 5 je reprezentován jako 111110 nebo 11110. Některé reprezentace používají n nebo n - 1 nuly následované jedničkou. Jednotky a nuly jsou zaměnitelné bez ztráty obecnosti . Unární kódování je kód bez předpon a také synchronizační kód .
n (nezáporné) | n (přísně pozitivní) | Unární kód | Alternativní |
---|---|---|---|
0 | 1 | 0 | 1 |
1 | 2 | 10 | 01 |
2 | 3 | 110 | 001 |
3 | 4 | 1110 | 0001 |
4 | 5 | 11110 | 00001 |
5 | 6 | 111110 | 000001 |
6 | 7 | 1111110 | 0000001 |
7 | 8 | 11111110 | 00000001 |
8 | 9 | 111111110 | 000000001 |
9 | 10 | 1111111110 | 0000000001 |
Unární kódování je optimálně efektivní kódování pro následující diskrétní rozdělení pravděpodobnosti
pro .
V kódování symbol po symbolu je optimální pro jakékoli geometrické rozdělení
pro které k ≥ φ = 1,61803398879 ..., zlatý řez , nebo obecněji pro jakékoli diskrétní rozdělení, pro které
pro . Ačkoli se jedná o optimální kódování symbolů za symbolem pro taková rozdělení pravděpodobnosti, Golombovo kódování dosahuje lepší komprimační schopnosti pro geometrické rozdělení, protože nezohledňuje vstupní symboly nezávisle, ale spíše implicitně seskupuje vstupy. Ze stejného důvodu funguje aritmetické kódování lépe pro obecné rozdělení pravděpodobnosti, jako v posledním případě výše.
Dnes se používá unární kód
Mezi příklady použití unárního kódu patří:
- V kódu Golomb Rice se pro kódování kvocientové části kódového slova Golomb používá unární kódování.
- V UTF-8 se v úvodním bajtu vícebajtové sekvence používá unární kódování k označení počtu bytů v sekvenci, takže délku sekvence lze určit bez zkoumání bajtů pokračování.
- Okamžitě trénované neuronové sítě používají pro efektivní reprezentaci dat unární kódování.
Unární kódování v biologických sítích
Unární kódování se používá v neurálních obvodech zodpovědných za produkci ptačího zpěvu . Jádrem v mozku zpěvných ptáků, které hraje roli jak při učení, tak při produkci ptačí zpěvu, je HVC ( vysoké vokální centrum ). Příkazové signály pro různé tóny ptačího zpěvu vycházejí z různých bodů HVC. Toto kódování funguje jako vesmírné kódování, což je efektivní strategie pro biologické obvody díky své inherentní jednoduchosti a robustnosti.
Zobecněné unární kódování
Subhash Kak představil generalizovanou verzi unárního kódování, aby reprezentovala čísla mnohem efektivněji než standardní unární kódování. Zde je příklad zobecněného unárního kódování pro celá čísla od 1 do 15, které vyžaduje pouze 7 bitů (kde tři bity jsou libovolně vybrány místo jednoho ve standardním unárním zobrazení čísla). Všimněte si, že reprezentace je cyklická, kde jeden používá značky k reprezentaci vyšších celých čísel ve vyšších cyklech.
n | Unární kód | Zobecněné unární |
---|---|---|
0 | 0 | 0000000 |
1 | 10 | 0000111 |
2 | 110 | 0001110 |
3 | 1110 | 0011100 |
4 | 11110 | 0111000 |
5 | 111110 | 1110000 |
6 | 1111110 | 0010111 |
7 | 11111110 | 0101110 |
8 | 111111110 | 1011100 |
9 | 1111111110 | 0111001 |
10 | 11111111110 | 1110010 |
11 | 111111111110 | 0100111 |
12 | 1111111111110 | 1001110 |
13 | 11111111111110 | 0011101 |
14 | 111111111111110 | 0111010 |
15 | 1111111111111110 | 1110100 |
Zobecněné unární kódování vyžaduje, aby rozsah čísel, které mají být reprezentovány, byl předem specifikován, protože tento rozsah určuje počet bitů, které jsou potřeba.