Rekurzivní indexování - Recursive indexing
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Když je číslo (obecně velké číslo) zastoupeno v konečné abecední sadě a nemůže být reprezentováno pouze jedním členem množiny, rekurzivní indexování se používá.
Rekurzivní indexování samo o sobě je metoda k zápisu postupných rozdílů čísla po extrakci maximální hodnoty abecedy z čísla a pokračování rekurzivně, dokud rozdíl nespadne do rozsahu množiny.
Je volána rekurzivní indexace s dvoupísmennou abecedou unární kód.
Kódování
Pro zakódování čísla N, snižujte maximální prvek této sady (Smax) z N a výstup Smax pro každý takový rozdíl, zastaví se, když číslo leží v napůl uzavřeném napůl otevřeném rozsahu [0 -Smax).
Příklad:
Nechat S = [0 1 2 3 4… 10], být 11prvkovou sadou a musíme rekurzivně indexovat hodnotu N = 49.
Podle této metody musíme stále odstraňovat 10 ze 49 a pokračovat, dokud nedosáhneme čísla v rozsahu 0–10.
Hodnoty jsou tedy 10 (N = 49 – 10 = 39), 10 (N = 39 – 10 = 29), 10 (N = 29 – 10 = 19), 10 (N = 19 - 10 = 9), 9. Proto rekurzivně indexovaná sekvence pro N = 49 se sadou S, je 10, 10, 10, 10, 9.
Dekódování
Pokračujte v přidávání všech prvků indexu a zastavte se, když je hodnota indexu mezi (včetně konců) nejmenšími a předposledními prvky sady S.
Příklad:
Pokračováním výše uvedeného příkladu máme 10 + 10 + 10 + 10 + 9 = 49.
Použití
Tato technika se nejčastěji používá v kódování délky běhu systémy kódovat delší běhy, než dovolují velikosti abecedy.
Reference
- Khalid Sayood, Úvod do komprese dat, 3. vydání, Morgan Kaufmann.