TTI Metoda de Codare REFERAT

Post on 27-Feb-2018

237 views 2 download

Transcript of 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;'

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

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 )

=

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

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