Documente Academic
Documente Profesional
Documente Cultură
Algoritmul Huffman Garantează Obţinerea Unui Cod Optimal. Metoda Presupune
Algoritmul Huffman Garantează Obţinerea Unui Cod Optimal. Metoda Presupune
Unele surse de informaie genereaz semnale analogice ce pot fi descrise drept variabile aleatoare de tip continuu. n aceast clas intr semnalul vocal generat de un microfon, unda seismic generat de un geofon i, n general, semnalele generate de diverse traductoare (un traductor fiind un dispozitiv care convertete o mrime neelectric n una electric i invers). lte surse de informaie genereaz iruri de simboluri dintr!o mulime discret i finit. "e e#emplu, o dactilograf bt$nd la maina de scris genereaz un ir de caractere din setul de caractere pentru care sunt prevzute taste. cest e#emplu pare a nu mai fi de actualitate, cci maina de scris a fost trimis la %uzeul de &storie a 'e(nicii prin larga rsp$ndire a calculatoarelor personale. "ar aceeai dactilograf, adapt$ndu!se vremurilor, genereaz de la claviatura unui )C un te#t ce poate include un set mult mai larg de simboluri, de asemenea ns discret i finit. %ai mult dec$t at$t, cineva care scrie un te#t utiliz$nd calculatorul personal genereaz de fapt un fiier, adic un ir compus numai din dou simboluri, * i +, ir ce poate fi memorat sau transmis la distan i pe care o imprimant l poate oric$nd transforma n te#tul tiprit. )rin eantionare i cuantizare, un semnal analogic poate fi transformat ntr!un semnal digital din care poate fi recuperat cu o distorsiune ce poate fi fcut acceptabil de mic. )rin urmare, indiferent dac sursa de informaie genereaz un semnal analogic sau unul digital, acest semnal poate fi transformat ntr!unul ec(ivalent utiliz$nd numai dou simboluri, fie ele * i +. ,rice surs de informaie poate fi transformat ntr!o surs de simboluri binare. , problem important n memorarea i n transmiterea digital a informaiei este reprezentarea eficient a datelor generate de surs. )rocesul prin care se realizeaz aceast reprezentare se numete codare surs. "ispozitivul care efectueaz aceast reprezentare se numete codor surs. Un codor surs eficient trebuie s satisfac dou cerine funcionale+. Cuvintele de cod produse de codor trebuie s fie n form binar. .. Codul surs s fie univoc decodabil, astfel nc$t irul surs originar s poat fi reconstruit perfect din irul binar codat. n anul +/0., 1uffman a conceput un algoritm de codare cu lungime variabil, optim n sensul c numrul mediu de bii necesari pentru a reprezenta simbolurile surs este minim astfel nc$t cuvintele de cod s satisfac acea condiie de prefi# descris mai sus care permite ca irul recepionat s fie decodabil univoc i instantaneu.
Algoritmul Huffman garanteaz obinerea unui cod optimal. %etoda presupune parcurgerea urmtoarelor etape+ stabilirea listei simbolurilor sursei n ordinea descresctoare a probabilitilor2 . combinarea celor mai mici dou probabiliti i reordonarea listei, urmat de repetarea operaiunii p$n la obinerea unei liste cu doar . probabiliti2
generarea cuvintelor de cod pornind de la ultimul pas i revenind spre probabilitile iniiale, prin atribuirea de 0 i respectiv 1 logic pe ramurile care apar. Un e#emplu de aplicare a acestui algoritm este prezentat n figura urmtoare-
3e obin urmtoarele coduri finalea+- 00 a0- 0100 a.- 011 a4- 0101 a5- 100 a6- 110 a7- 101 a8- 111 )entru acest cod s!a obinut- L 9 .,682 H(A) 9 .,6+ : 9 /6,78;. n aplicaii de compresie a te#tului, algoritmul 1uffman poate fi utilizat pentru codarea unui ir de caractere pentru care poate fi determinat frecvena relativ de apariie a fiecrui caracter. "eoarece fiecare caracter este codat printr!un cuv$nt de cod av$nd un numr variabil de bii, procesul de decodare a irului de bii recepionat se va face pe o baz orientat pe bit i nu pe baza unor lungimi fi#e de 6<8 bii. "atorit modului n care se face alocarea biilor n timpul procedurii de codare, algoritmul 1uffman (ca i algoritmul 3(annon!=ano, de altfel) are proprietatea c nici un cuv$nt de cod scurt nu este prefi#ul unui cuv$nt de cod mai lung. )rin urmare codul obinut este instantaneudecodabil, printr!o procedur recursiv de verificare bit cu bit p$n n momentul n care se gsete un cuv$nt de cod valid. &n =igura ..5 este prezentat organigrama corespunztoare algoritmului de decodare. lgoritmul presupune disponibilitatea la recepie a unui tabel al cuvintelor de cod, precum i al caracterelor 3C&& corespunztoare. >irul de bii recepionat este memorat n bufferul >&? ?@C@)A&,B ', iar biii citii i utilizai pentru construirea cuvintelor de cod se memoreaz n bufferul CUCDB' "@ C,". "in organigram rezult faptul c pe msur ce este identificat un cuv$nt de cod
viabil, caracterul 3C&& corespunztor este ncrcat n EU==@? ?@C@)A&@. )rocedura se repet p$n n momentul n care au fost procesai toi biii recepionai.
"eoarece cuvintele de cod 1uffman obinute se modific n funcie de setul de caractere transmise, este necesar cunoaterea de ctre receptor a cuvintelor de cod corespunztoare datelor transmise. ceast cunoatere poate fi asigurat prin dou metode. )rima metod const n transmiterea cuvintelor de cod corespunztoare urmtorului set date nainte de transmiterea efectiv a datelor. doua metod const n cunoaterea prealabil de ctre receptor a cuvintelor de cod care urmeaz a fi utilizate. )rima metod conduce la o form de compresie adaptiv, deoarece cuvintele de cod pot fi modificate n scopul de a fi potrivite tipului de date care urmeaz a fi transmise. "ezavantaFul metodei const n faptul c noul set de cuvinte de cod (mpreun cu caracterele corespunztoare) trebuie transmise de fiecare dat c$nd un nou tip de date urmeaz a fi transmise. , alternativ a acestei metode este aceea de a memora la nivelul receptorului mai multe seturi de cuvinte de cod,
astfel nc$t de la emitor s fie necesar doar indicarea setului de cuvinte de cod care urmeaz a fi utilizate cu urmtorul set de date transmise. "e e#emplu, n cazul des nt$lnit al transmisiei de fiiere de te#t generate de un procesor de te#t, pot fi utilizate analize statistice privind frecvena de apariie a diferitelor caractere din alfabet. ceast informaie poate fi utilizat pentru construirea cuvintelor de cod 1uffman pentru alfabetul respectiv, care vor fi utilizate n mod automat de ctre emitor i receptor. , limitare a performanelor codorului 1uffman pentru simboluri independente, fa de calculele teoretice, este aceea c lungimea medie a cuvintelor de cod Lmed G +, independent de valoarea entropiei. 3e poate arta c optimalitatea teoretic se atinge ntotdeauna dac probabilitile de apariie a simbolurilor sunt de forma 2-m, unde m este un numr natural i dac, n plus, entropia este mai mare dec$t +. )entru asemenea aplicaii, unde viteza este un factor important i numrul de simboluri este mare, se folosesc alte coduri de lungime variabil, care au performane apropiate de cele ale codorului 1uffman, dar conduc la coduri cu lungime ma#im mai mic.