Elajasov kod (Šenon-Fano-Elajasov kod) je kod sa strukturom stabla promenljive dužine koji neograničeno duge nizove izvornih simbola koduje u neograničeno duge nizove kodovanih simbola. Operacija kodovanja ima klizajuću strukturu, kod koje, kako nekoliko simbola uđe u koder tako ga nekoliko kodovanih bita i napušta. Broj kodovanih bita na izlazu iz dekodera nakon ulaska jednog izvornog simbola je promenljiv i zavisi od strukture niza izvornih simbola.

Matematička interpretacija Elajasovog koda uredi

 
Funkcija raspodele F(i)

Pretpostavimo da imamo izvor bez memorije Xi koji uzima vrednosti iz alfabeta {1,2,...,L}. Pretpostavimo da su verovatnoće svih ovih simbola strogo pozitivne p(i)>0, ∀i. Funkcija raspodele F(i) je data sa:

 

Modifikovana funkcija raspodele koja predstavlja sumu verovatnoća svih simbola od i, i polovinu verovatnoće simbola i može se zapisati kao:

 

C obzirom da su sve verovatnoće pozitivne, F(i)≠F(j) za i≠j možemo odrediti i ako znamo modifikovanu funkciju raspodele (direktno sa grafika). Vrednosti modifikovane funkcije raspodele se mogu koristiti kao kod za i. U opštem slučaju je Fs(i) je realan broj koji može da se prikaže samo sa beskonačnim brojem bita u njegovom binarnom obliku, tako da ne možemo da koristimo tu vrednost kao kodnu reč.

Pretpostavimo da zaokružimo binarnu predstavu Fs(i) na   bita što se može zapisati kao:

 

Sad imamo:

 

Ako je:

 

Tada imamo:

 

Iz ovoga sledi da se broj L nalazi u intervalu koji odgovara vrednosti i, i da dovoljan broj bita da se opiše i iznosi

 

Ovako konstruisani kod je prefiksan (nijedna kodna reč nije prefiks druge kodne reči) što ćemo i dokazati. Pretpostavimo da je kodna reč b1b2…bl. Ovi bitovi predstavljaju interval

 

Da bi kod bio prefiksan potrebno je da intervali koji odgovaraju kodnim rečima budu disjunktni. Interval koji odgovara kodnoj reči simbola i ima dužinu 2-l(i) što je manje od polovine koraka koji odgovara simbolu i. Početna tačka intervala se nalazi u donjoj polovini koraka. Ovo znači da se krajnja tačka intervala nalazi ispod vrha koraka. Dakle svi intervali su disjunktni i kod je prefiksan.

Prosečna dužina kodne reči iznosi:

 

Dakle

 

Elajasov Gama kod uredi

Elajasov Gama kod je najprostija realizacija Elajasovog koda koji se koristi u situacijama kada najveća kodovana vrednost nije poznata unapred, ili da bi se komprimovali podaci u kojima se češće pojavljuju male vrednosti nego velike vrednosti.

Kodovanje prirodnog broja x є N = {1,2,3,…}:

  1. Broj se napise u binarnom obliku (da bi se broj napisao u binarnom obliku potrebno je ⌊log2(x)⌋+1 cifara)
  2. Ispred broja u binarnom obliku se dopise ⌊log2(x)⌋ nula

Dekodovanje broja kodovanog Elajasovim Gama kodom:

  1. Prebroji se broj, npr n, nula na početku reči do pojave prve jedinice. Ako je n=0 onda je dekodovani broj 1; ako je n≠0, onda dekoder čita narednih n+1 bita i dekoduje odgovarajući binarni broj.

Elajasov Delta kod uredi

Elajasov Delta kod– složeniji je i koristi Elajasov Gama kod kao osnovu.

Kodovanje prirodnog broja x є N = {1,2,3,…}:

  1. Broj se napiše u binarnom obliku
  2. Broj ⌊log2x⌋+1 se napiše u binarnom obliku (X)
  3. Od binarnog broja dobijenog u koraku 1 se oduzme vodeći bit i preostali biti se zapisuju (Y)
  4. Na kraj binarnog broja X se doda binarni broj Y
  5. Prebrojati broj bita dobijenih pod 2 i od toga broja oduzeti 1 i toliko nula dodati ispred.

Dekodovanje broja kodovanog Elajasovim Delta kodom

  1. Prebroji se broj nula dok se ne naiđe na prvu jedinicu. Neka je ovaj broj nula - L.
  2. Prva jedinica se smatra da je prva cifra broja sa vrednošću 2l. Pročitamo preostalih L cifara. Neka je ovaj broj N.
  3. Staviti 1 na prvom mestu konačnog izlaza. Pročitamo i dodamo preostalih N-1 bita

Poređenje Elajasovog Gama i Elajasovog Delta koda uredi

Neka se ova dva koda koriste za kodovanje brojeva iz skupa {1,2,…,N}, N>>1.

 
 

Neka je X proizvoljna slučajna promenljiva sa uniformnom raspodelom nad {1,2,…,N}, i tada ima entropiju

 

Očekivana dužina Elajasovog Gama koda iznosi

 

Znamo da je ⌊ ⌋> -1,∀ , pa sledi:

 

Koristeći činjenicu:

 

možemo zaključiti

 

Za jako veliko N očekivana dužina Elajasovog Gama koda se približava dvostrukoj entropiji što nije optimalno.

Očekivana dužina Elajasovog Delta koda iznosi

 

kako

 

Znamo da za svako N važi

 

pa možemo zaključiti:

 

Ovim smo pokazali da za jako veliko N očekivana dužina Elajasovog Delta koda se približava entropiji, i zaključujemo da je delta kod asimptotski optimalan.

Literatura uredi

  • David J.C. MacKay, 2008.Information Theory,Inference,and Learning Algorithms. Cambridge University Press 2003
  • Thomas M. Cover, Joy A. Thomas, 2006. Elements of Information Theory. JOHN WILEY & SONS, INC.
  • P. Elias, Universal codeword sets and representations of the integers. IEEE Transactions on Information Theory, vol. 21, pp. 194-203 March 1975.
  • Te Sun Han, Kingo Kobayashi, 2001. Mathematics of information and coding.AMS Bookstore, 2001