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.

Viz také

Poznámky

Reference