TTI Metoda de Codare REFERAT

5
 CODAREA HUFFMAN  In Teoria Transmisiei Informatiei, codarea Human este un algortim de codare entroic, folosit entru comresia datelor fara ierderi! Termenul se refera la folosirea unei ta"ela de cod de lungime #aria"ila entru codarea unui sim"ol sursa $cum ar % un caracter intr &un %sier' unde ta"ela de cod cu lungime #aria"ili a fost deri#ata intr &un mod articular "a(at e ro"a"ilita tea de aaritie a %ecarui sim"ol osi"il al sursei!  Acest cod a fost de(#oltat de catre Da#id A! Human in tim ce isi facea studiul de doctorat la MIT, si u"licat in )*+ in lucrarea -A Met.od for t.e Construction of Minimum& Redun danc/ Codes- $O metoda de constructie a codurilor de redundanta minima'! Human a de#enit mem"ru al facultatii MIT dua a"sol#ire! Codarea Human foloseste o metoda seci%ca de a alege rere(entarea %ecarui sim"ol, re(ultand un cod cu rorietatea ca %ecare succesiune de "iti ce rere(inta un sim"ol articular, nu este niciodata un re%0 al altui sim"ol! Acest cod are de asemenea rorietatea ca asignea(a sim"olurilor cu ro"a"ilitatea de aaritie cea mai mare, succesiunea cea mai scurta de "iti!  Human a utut astfel sa de(#olte cea mai e%cienta metoda de comresie de acest ti! Nici o alta metoda de asignare a unei sec#ente de "iti unor sim"oluri ale unei surse, nu oate roduce o marime medie mai mica a sirului de iesire, atunci cand frec#enta de aaritie a sim"olurilor este aceea folosita in creear ea codului! In sc.im", a fost mai tar(iu gasita o metoda ce oate face asta in tim liniar, daca ro"a"ilitatile de intrare sunt sortate!  Desi codarea Human este otima entru o codare sim"ol cu sim"ol cu distri"utia ro"a"ilitatilor cunoscute! De e0emlu codarea aritmetica si 123 de multe ori au caacitati de comresie mai "une! Am"ele metodele ot com"ina un numar ar"itrar de sim"oluri entru o codare mai e%cienta, si in general sa se adate(e statisticilor de intrare! Acestea sunt utile in mod deose"it, atunci cand ro"a"ilitatile de intrare nu sunt cunoscute recis! Una dintre alicatiile "inecunoscute ale ar"orilor "inari otimi o constituie determinar ea codurilor Human entru caracterele unui sir de intrare Aceste coduri #or utea % aoi folosite entru codi%carea sirului e un numar de "iti semni%cati# mai mic decat initial Daca e ost de sir de caractere este folosit un %sier, codurile Human ot a4uta la comresia %sierului resecti# $rere(entarea continutului sau e un numar de "iti mai mic decat in mod normal' 5om studia mersul algoritmului e un e0emlu Fie sirul de intrare6 7 MARE E MAREA MARMARA8 9e arcurge sirul si se contori(ea(a numarul de aaritii ale %ecarui caracter distinct Astfel6 :M; aare de < ori :A; aare de = ori :R; aare de < ori :E; aare de > ori ?"lan@ $satiul' aare de > ori $entru o mai mare claritate #om rere(enta caracterul satiu rin sim"olul :B;'

Transcript of TTI Metoda de Codare REFERAT

Page 1: TTI Metoda de Codare REFERAT

7/25/2019 TTI Metoda de Codare REFERAT

http://slidepdf.com/reader/full/tti-metoda-de-codare-referat 1/5

  CODAREA HUFFMAN

  In Teoria Transmisiei Informatiei, codarea Human este un algortim de codare entroic,folosit entru comresia datelor fara ierderi! Termenul se refera la folosirea unei ta"ela decod de lungime #aria"ila entru codarea unui sim"ol sursa $cum ar % un caracter intr&un%sier' unde ta"ela de cod cu lungime #aria"ili a fost deri#ata intr&un mod articular "a(at ero"a"ilitatea de aaritie a %ecarui sim"ol osi"il al sursei!  Acest cod a fost de(#oltat de catre Da#id A! Human in tim ce isi facea studiul dedoctorat la MIT, si u"licat in )*+ in lucrarea -A Met.od for t.e Construction of Minimum&Redundanc/ Codes- $O metoda de constructie a codurilor de redundanta minima'! Humana de#enit mem"ru al facultatii MIT dua a"sol#ire!Codarea Human foloseste o metoda seci%ca de a alege rere(entarea %ecarui sim"ol,re(ultand un cod cu rorietatea ca %ecare succesiune de "iti ce rere(inta un sim"olarticular, nu este niciodata un re%0 al altui sim"ol! Acest cod are de asemenearorietatea ca asignea(a sim"olurilor cu ro"a"ilitatea de aaritie cea mai mare,succesiunea cea mai scurta de "iti!  Human a utut astfel sa de(#olte cea mai e%cienta metoda de comresie de acest ti!Nici o alta metoda de asignare a unei sec#ente de "iti unor sim"oluri ale unei surse, nuoate roduce o marime medie mai mica a sirului de iesire, atunci cand frec#enta deaaritie a sim"olurilor este aceea folosita in creearea codului! In sc.im", a fost mai tar(iugasita o metoda ce oate face asta in tim liniar, daca ro"a"ilitatile de intrare sunt sortate!  Desi codarea Human este otima entru o codare sim"ol cu sim"ol cu distri"utiaro"a"ilitatilor cunoscute! De e0emlu codarea aritmetica si 123 de multe ori au caacitatide comresie mai "une! Am"ele metodele ot com"ina un numar ar"itrar de sim"olurientru o codare mai e%cienta, si in general sa se adate(e statisticilor de intrare! Acesteasunt utile in mod deose"it, atunci cand ro"a"ilitatile de intrare nu sunt cunoscute recis!

• Una dintre alicatiile "inecunoscute ale ar"orilor "inari otimi o constituiedeterminarea codurilor Human entru caracterele unui sir de intrare

• Aceste coduri #or utea % aoi folosite entru codi%carea sirului e un numar de "itisemni%cati# mai mic decat initial

• Daca e ost de sir de caractere este folosit un %sier, codurile Human ot a4uta lacomresia %sierului resecti# $rere(entarea continutului sau e un numar de "iti maimic decat in mod normal'

• 5om studia mersul algoritmului e un e0emlu

• Fie sirul de intrare6 7MARE E MAREA MARMARA8 

• 9e arcurge sirul si se contori(ea(a numarul de aaritii ale %ecarui caracter distinct

•Astfel6

:M; aare de < ori :A; aare de = ori :R; aare de < ori :E; aare de > ori ?"lan@ $satiul' aare de > ori $entru o mai mare claritate #om rere(enta

caracterul satiu rin sim"olul :B;'

Page 2: TTI Metoda de Codare REFERAT

7/25/2019 TTI Metoda de Codare REFERAT

http://slidepdf.com/reader/full/tti-metoda-de-codare-referat 2/5

• Cunoscand ca lungimea sirului este de de caractere, utem calcula foarte usorfrec#entele $ro"a"ilitatile' de aaritie ale %ecarui caracter

• Astfel6

:M; < :A; = :R; < :E; > :B; >

• E#ident6 < = < > > G

• entru %ecare caracter distinct #om construi un ar"ore "inar otim a#and un singurnod

• Asociem %ecarui nod frec#enta de aaritie a c.eii nodului resecti#

• Ideea este de a reduce la %ecare as numarul de ar"ori "inari otimi rin com"inare,ana cand se a4unge la un singur ar"ore "inar otim

• In acest sens, la %ecare as se aleg dintre ar"orii "inari otimi disoni"ili, si anume

acei ar"ori "inari otimi care au frec#entele de aaritie minime $minimul siurmatorul minim'Daca sunt mai mult de ar"ori in aceasta situatie, se #or alege ar"itrar dintre ei

• In ca(ul nostru, #om alege ultimii ar"ori, ei a#and frec#entele de aaritie minime

• 9e #or inlocui cei ar"ori rintr&unul singur, care are ca radacina un caracter %cti# :;si cei ar"ori selectati ca su"ar"ori $nu contea(a lasarea e stanga sau e dreata,ideea este ca unul din ei #a % su"ar"ore stang si celalalt su"ar"ore dret'

• Frec#enta de aaritie a noului ar"ore #a % data de suma frec#entelor de aaritie acelor su"ar"ori comonenti

• Deoarece am inlocuit ar"ori rintr&unul singur, numarul total de ar"ori a sca(ut cu ounitate

• Din cei < ar"ori ramasi, alegem care au frec#entele de aaritie minime

• Acestia #or % rimul si al treilea si #or % inlocuiti rintr&un nou ar"ore a#and frec#entaJ

Page 3: TTI Metoda de Codare REFERAT

7/25/2019 TTI Metoda de Codare REFERAT

http://slidepdf.com/reader/full/tti-metoda-de-codare-referat 3/5

• Din cei > ar"ori ramasi, alegem care au frec#entele de aaritie minime

• Acestia #or % ultimii si #or % inlocuiti rintr&un nou ar"ore a#and frec#enta )

• Nu mai a#em de ales, %ind doar ar"ori

• Acestia #or % inlocuiti rintr&un nou ar"ore a#and frec#enta

• Am a4uns la un singur ar"ore, moment in care ne orim

• 5om etic.eta %ecare ramura sre stanga cu si %ecare ramura sre dreata cu )

=

Page 4: TTI Metoda de Codare REFERAT

7/25/2019 TTI Metoda de Codare REFERAT

http://slidepdf.com/reader/full/tti-metoda-de-codare-referat 4/5

Caracterele din sirul initial au a4uns frun(e in ar"orele Human

• Drumul de la radacina la %ecare frun(a #a da codul Human al caracterului coresun(ator frun(ei

• Astfel, #om a#ea6

:M; codul ;;K :A; codul ;);K :R; codul ;);K

:E; codul ;));K :B; codul ;)));

In mod normal, un caracter din sir $sau din %sier, daca folosim un %sier' se codi%ca e J "iti

• In ca(ul de fata, tinand cont ca sunt numai + caractere in total, am utea imlementa foarte usor o

codi%care "inara de > "iticaracter $ "iti ar asigura doar < caractere distincte, dar noi a#em +'

• 9e o"ser#a ca codurile Human o"tinute in urma algoritmului re(entat sunt mai scurte decat

codurile standard de > "iticaracter

• Mai recis, %ecare aaritie a caracterelor :M;, :A; sau :R; in sirul initial #a duce la o economie de ) "it

iar %ecare aaritie a caracterelor :E; sau :B; nu #a cau(a nici ierdere nici castig $se folosesc tot >

"iti'

• Nu intamlator, caracterele :M;, :A; si :R; sunt caracterele care a#eau frec#entele de aaritie cele

mai mari, astfel incat economiile de care aminteam se #or manifesta foarte des

• ractic, datorita fatului ca la %ecare as am selectat cei ar"ori care a#eau frec#entele de aaritie

minime, caracterele cu frec#ente de aaritie relati# mari au fost lasate la urma, astfel incat in

ar"orele %nal sa se regaseasca mai sus decat caracterele cu frec#ente de aaritie mai mici

1

Page 5: TTI Metoda de Codare REFERAT

7/25/2019 TTI Metoda de Codare REFERAT

http://slidepdf.com/reader/full/tti-metoda-de-codare-referat 5/5

• Aceasta este ideea dominanta la ar"ori otimi, deci ar"orele re(ultat este, din acest unct de

#edere, un ar"ore otim

• 5om codi%ca sirul 7MARE E MAREA MARMARA8 folosind codurile o"tinute

• Re(ultatul este6 ) ) )) ))) )) ))) ) ) )) ) ))) ) ) ) ) )

• 9unt necesari <= de "iti

• Codi%carea cu > "iticaracter ar % dus la >L G = de "iti, deci am reali(at o comresie de =,=

• Codi%carea imlicita cu J "iticaracter ar % dus la JL G )= de "iti deci am reali(at o comresie de

J,+ fata de aceasta codi%care

• Codurile Human o"tinute au proprietatea de prefx  

• rorietatea de re%0 suna astfel6 “nici un cod nu este prefx pentru alt cod”  

• Aceasta rorietate este asigurata imlicit din modul de constructie al ar"orelui Human

• Fiecare caracter a4unge o frun(a in ar"ore, si nu e0ista drum de la radacina la o frun(a in totalitate

continut in alt drum de la radacina la o alta frun(a $o rorietate de "un simt a ar"orilor, in general'

• Daca codurile Human nu ar % a#ut rorietatea de re%0, am % a#ut mari ro"leme la decodi%carea

unui sir

• 9a resuunem, rin a"surd, ca am % o"tinut6

cod$:A;' G ;)); si cod$:E;' G :)));

Atunci sirul initial 7AE8 ar % fost codi%cat 7)))))8 dar de decodi%cat oate % decodi%cat %e

ca 7AE8 %e ca 7EA8

• rorietatea de re%0 $e care am incalcat&o aici' nu ar % dus la astfel de am"iguitati