Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Pjesa I - Teoria e informacionit
1. Konsiderata te pergjithshme mbi informacionin Informacioni eshte nje nocion themelor, qe ben pjese ne jeten tone te perditeshme, por per te cilin eshte e veshtire te japesh nje perkufizim te sakte. Per te mund te ilustrojme disa aspekte sic jane ato te dhena me poshte: Te informosh do te thote te japesh nje forme. Pra t’i japesh forme dickaje qe me pare ishte pa forme. Ne origjine informacioni eshte nje nocion abstrakt, i nje natyre psikologjike dhe filozofike, i mare me vone nga shkenca per t’i dhene vlera shume me te medha. Informacioni eshte nje faktor rregulli dhe strukture, ai zvogelon te panjohuren dhe te pasigurten. Vlera e nje informacioni qendron ne efektin e surprises qe ai shkakton. Sa me e paparashikueshme te jete nje ngjarje e caktuar aq me e madhe eshte sasia e informacionit e mare prej saj. Informacioni nuk eshte konservativ, ai mund te humbase. Informacioni mund te transformohet dhe te transportohet.

Duke u nisur nga sa thame me larte mund te quajme me fjalen informacion cdo gje qe eshte ne gjendje te eleminoje nje pasiguri mbi dicka. Nje nga detyrat thelbesore te telekomunikacionit eshte pikerisht transferimi ne distance i informacionit. 2. Skema e procesit te komunikimit Procesi i komunikimit ne pergjithesi ndodh sipas bllokskemes se figures 2.1. Pra behet fjale per te transmetuar nje mesazh qe vjen nga nje burim ne drejtim te nje destinacioni.

Burimi i mesazhit mund te jete: - nje burim mesazhesh diskrete, kur funksioni qe pershkruan mesazhin eshte nje funksion diskrete ne kohe e ne amplitude (p.sh. mesazhi qe vjen nga nje teleshkrues, nje tastiere apo nga nje burim telegrafik) - nje burim mesazhesh te vazhduara, kur funksioni qe pershkruan mesazhin eshte nje funksion i vazhduar ne amplitude (p.sh nje bisedim telefonik, nje transmetim radiofonik apo televiziv). Destinacioni te cilit i drejtohet masazhi duhet te jete ne gjendje te kuptoje gjuhen e burimit; ne rast te kundert nuk do te kishim transmetim informacioni. Mjeti i transmetimit eshte mjeti fizik i vendosur midis destinacionit dhe burimit p.sh. ajri per nje bisede midis dy personave, nje linje telefonike per rastin e nje bisede telefonike etj.
Faqe 1 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ne rastin kur mesazhi duhet t’i transmetohet nje destinacioni i cili ndodhet ne distance te larget nga burimi lind problemi i telekomunikacionit, bllokskema e pergjithshme e te cilit jepet ne figuren 2.2.

Nga bllokskema e figures 2.2 shohim se per tu transmetuar ne distanca te medha mesazhi fillimisht transformohet ne nje sinjal elekrik, me pas dergohet ne kanalin e transmetimit, ne menyre qe te jete ne gjendeje te pershkoje distancen e duhur. Ne anen tjeter te kanalit ky sinjal konvertohet perseri ne masazh dhe i kalon destinacionit. Ne cdo sistem transmetimi te realizueshem fizikisht, sinjali i mare nuk eshte asnjehere nje kopje besnike e sinjalit te transmetuar. Ne degradimin e sinjalit ndikojne shtremberimet qe ne menyre te paevitueshme lindin gjate konvertimit te mesazhit ne sinjal dhe zhurma e cila futet apo gjenerohet ne mjetin e transmetimit. Cilesia e transmetimit normalisht matet nga raporti sinjal-shqetesim ne marje. Me shqetesim ne kete rast kuptojme ne pergjithesi degradimin e sinjalit per shkak te shtremberimeve dhe te zhurmes. Cilesia globale e destinacionit vleresohet me ane te inteligjences se tij me te cilen kuptojme perqindjen e mesazheve te perceptuara ne menyre korrekte. 3. Matja e informacionit te nje burimi diskret. Kemi folur me larte per burimet diskrete dhe te vashduar te informacionit. Duhet thene se burimet diskrete te informacionit jane me te pershtatshem per tu studiuar nga ana matematikore. Po keshtu duhet te themi se me ane te procesit te kampionimit dhe te kuantizimit eshte e mundur te diskretizojme informacione te vazhduara dhe te aplikojme dhe ne kete rast teorine e informacionit per burimet diskrete. Nje nga hapat e para ne percaktimin e natyres se informacionit ka qene zgjedhja e njesise se matjes me ane te se ciles informacioni mund te vleresohet. Vleresimet e para per kete problem jane dhene nga Shannon i cili perfeksionoi studimet e bera me pare nga Hartley. Duke dashur te japim aftesine qe ka nje sistem per te transmetuar informacion duhet me pare te nisemi nga rendesia qe destinacioni u jep mesazheve te ndryshme qe ai merr. Sasia e informacionit eshte e bazuar ne sasine e pasigurise qe kemi apriori mbi mesazhin. Pra duke lene menjane elementet subjektive, duhet te identifikojme rritjen e informacionit me zvogelimin e pasigurise qe kemi apriori mbi mesazhin. Le te konsiderojme bashkesine S te n simboleve Sk [k=(1÷n)]. Keta simbole mund te jene germat e nje alfabeti, simbole te nje kodi te vecante apo vlerat e kuantizuara qe mund te mare nje variable i vazhdueshem pas diskretizimt. Pra ne pergjithesi kemi:

Faqe 2 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

S = (S1, S2, S3, …, Sn) Supozojme se behet fjale per germa te nje alfabeti. Supozojme gjithashtu se mesazhet (fjalet) jane te ndertuara nga sekuenca prej m simbolesh secili prej te cileve i perket bashkesise S, e qe mund te perseriten sa here te duam. Formulojme hipotezat e meposhteme: - Te gjithe simbolet jane ekuiprobabel. Kjo do te thote se duke konsideruar nje sekuence shume te gjate secili prej m simboleve do te kete frekuence paraqitjeje te njejte me simbolet e tjere. - Simbolet e ndryshme te se njejtes sekuence nuk jane te korreluar midis tyre. Kjo gje jo gjithmone eshte e vertete. P.sh. ne rastin e gjuhes italiane nje Q ndiqet gjithmone nga nje U, nje Z nuk ndiqet asnjehere nga nje S etj. Kerkohet numri i mesasheve te ndryshem qe mund te formohen me sekuenca prej m simbolesh. Eshte e qarte se: N = nm 3.1

Ku N eshte numri i mesazheve te ndryshem qe mund te formohen nga nje sekuence prej m simbolesh qe i perkasin bashkesise S. Nga hipotezat e bera rrjedh qe secili prej N mesazheve eshte ekuiprobabel. Le te shohim se si mund te percaktohet pasiguria apriori qe kemi mbi natyren e mesazhit. Apriori dihet vetem qe do te zgjidhet njeri nga N mesazhet; pra pasiguria do te jete aq me e madhe sa me e madhe te jete N, d.m.th pasiguria apriori eshte mje funksion rrites i N. Identifikojme sasine e informacionit me pasigurine apriori. Duke pasur parasysh sa thame me larte do te kemi: I = f(N) 3.2

Ku I eshte sasia e informacionit e sjelle nga nje mesazh. Per te percaktuar kete funksion duhet te kujtojme postulatin e mbledhjese i cili thote: “Duke pasur K ngjarje te ndryshme te pakorreluara midis tyre, sasia e informacionit e sjelle prej ketyre K ngjarjeve eshte sa shuma e sasise se informacionit te sjelle prej seciles ngjarje”. Per rastin tone sasie e informacionit e sjelle prej nje simboli, pra per m = 1 do te jete: i = f(n) Ku f eshte i njejti funksion si ne rastin 3.2. Duke qene se N = nm e duke aplikuar postulatin e mbledhjes kemi ekuacionin: I = m*i ose: f(nm) = m*f(n) 3.3

Ky eshte nje ekuacion funksional, (ku e panjohura eshte vete funksioni) e qe percakton ne menyre univoke, me afersine e nje konstanteje shumezuese vete funksionin e panjohur. Duke kujtuar se log ab = b*log a Shihet qarte se funksioni i panjohur f(n) do te jete i formes:
Faqe 3 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

f(n) = K*log n

3.4

Ekuacioni 3.4 kenaq ekuacionin 3.3 dhe mund te vertetohet se nuk ka zgjidhje tjeter. Te zgjedhesh K do te thote te zgjedhesh njesine e matjes se sasise se informacionit. Marrim ne shqyrtim rastin kur kemi vetem dy simbole ne dispozicion (n = 2 dhe m = 1), pra pasiguria do te jete midis dy mundesive si p.sh. prania ose mungesa e nje impulsi, celes i hapur apo i mbyllur, ON OFF etj. Pecakohet si 1 njesi informacioni sasia e informacionit e dhene nga nje eksperiment i tipit te mesiperm. Atehere kemi: 1 = f(2) = K*log 2 Nga ku: K=
Nga 3.4 e 3.6 kemi: f(n) = K*logn = log n log 2 dhe per n = 2x kemi: 1 log 2 3.6

3.5

log 2 =x pra n = 2f(n) log 2 duke pasur parasysh percaktimin e logaritmit kemi
f(n) = x*

f(n) = log2n e per pasoje do te kemi qe sasia e informacionit te sjelle nga nje simbol eshte: i = f(n) =log2n Ne baze te postulatit te mbledhjes kemi: I = m*I ose I = log2N bit I=m*log2 n=log2 nm 3.8 3.7

ku N eshte numri i ngjarjeve ekuiprobabel qe mund te verifikohen. M.q.s dy mesazhet e mundshme te ekuacionit 3.5 perkojne me dy simbolet e sistemit binar, nje njesi informacioni e bazuar ne dy simbole quhet binary-digit ose shkurt bit. Nje mesazh i ndertuar nga nje impuls i thjeshte elektrik ka nje vlere informacioni prej 1 bit per faktin se prania ose mungesa e impulsit i lejon marresit te zgjedhe nje mesazh nga dy te mundshem. Sic tregohet ne figuren 3.1 duke transmetuar nje impuls apo 1 bit i japim mundesine marresit te zgjedhe nje mesazh nga dy te mundshem. Duke transmetuar 2 impulse i japim mundesine te zgjedhe nje mesazh nga 4 te mundshem, me 3 bit nje nga 8 te mundshem etj. Ky proces zgjedhjeje na jep sasine mesatare te informacionit qe duhet te transmetohet per te specifikuar nje mesazh nga nje seri mesazhesh me propabilitete te njejta. Informacioni mesatar per simbol ne cdo rast praktik eshte me i vogel se vlera e tij teorike. Kjo eshte e kuptueshme per faktin se korrelimi midis simboleve ben te mundur qe shpesh te transmetohet informacion i njohur me pare. Pra vete mesazhet transmetojne informacione qe jane pjeserisht te njohura. Kjo perseritje e pjesshme apo teresore e informacionit quhet teprice.
Faqe 4 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Pavaresisht nga fakti qe teprica shkakton nje zvogelim ne shpejtesine e transmetimit te informacionit, ajo eshte nje veti shume e dobishme sepse pedoret per te dalluar gabimet qe mund te behen gjate procesit te transmetimin apo ne rastin me te mire edhe per korrigjimin e tyre.
3.1 Koncepti i entropies

Le te shohim tani rastet me komplekse duke u bazuar ne trajtimin e bere me pare. Kujtojme se sasia e informacionit te sjelle nga nje simbol i zgjedhur nga n te tille ekuiprobabel eshte: i = log2 n 3.9

Duke qene simbolet ekuiprobabel, propabiliteti i secilit simbol do te jete p =

1 e per pasoje n

kemi: Supozojme se simbolet nuk jane ekuiprobabel. Marim ne konsiderate nje burim i cili emeton simbolet A, B, C dhe D me propabilitete 0.25, 0.125, 0.5 e 0.125. Ne baze te ekuacionit 3.10 gjejme sasine e informacionit qe sjell cdo simbol dhe kemi. iA = -log20.25 = 2 bit iB = -log20.125 = 3 bit iC = -log20.50 = 1 bit iD = -log20.125 = 3 bit Sic shihet simbolet qe jane me te ralla sjellin me shume informacion, por pesha e tyre ne sasine mesatare te informacionit per simbol eshte me e vogel. Pra per te llogaritur sa me mire sasine mesatare te informacionit per simbol duhet te bejme mesataren e poderuar te kontributit te secilit simbol. Atehere do te kemi: i = 0.25*2+0.125*3 + 0.5*1+0.125*3 = 1.75 bit
Faqe 5 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Shohim se sasia mesatare e informacionit per simbol ne kete rast eshte me e vogel se ne rastin kur simbolet jane ekuiprobabel. Duke bere nje diskutim me te pergjithshem do te thoshim: Per nje bashkesi S simbolesh S1, S2, S3, … Sn dhe propabilitetet perkatese p1, p2, p3, … pn

 S1 , S2 , S3 ,... Sn   S ≡  p , p , p ... p   1 2 3, n  dhe duke pasur mesazhe te cilet jane te ndertuar perseri nga simbole jo te korreluar midis tyre, sasia e informacionit per simbolin Sk me propabilitet pk do te jete: i = -log2 pk 3.11

Per te gjetur sasine mesatare te informacionit per simbol duhet te bejme mesataren e poderuar ku cdo simbol do te kete per peshe propabilitetin e vet. Pra sasia mesatare e informacionit per simbol do te jete: H=

∑p
k =1

k =n

k log 2

1 pk

= - ∑ pk log2 pk
k =1

k =n

bit

3.12

Kjo madhesi quhet entropi per analogji me skemen llogjike te entropies termodinamike. Eshte interesante te gjejme entropine e nje burimi binar ne vartesi te propabiliteteve p e q te dy simboleve 1 e 0 te tij. Per p = q = 0.5 do te kemi maksimumin e informacionit per simbol H = 0.5*log20.5+0.5*log20.5 = 1 bit

Per p = 1 ose q = 1 entropia do te jete 0 per faktin se jemi para nje ngjarjeje te sigurt. Per rastin me te pergjithshem ne baze te 3.12 do te kemi: H= - p*log2p – q*log2q ku p + q = 1

Ne figuren 3.2 jepet grafiku i vartesise se entopise H nga propabiliteti p per nje burim binar. Nga sa thame me larte per nje sekuence prej m simbolesh sasia e informacionit do te jete: I = m*H bit 3.13 Per rastin kur m eshte shume e madhe dhe nuk kemi korrelim midis simboleve ne menyre qe mesazhet te konsiderohen ekuiprobabel.
3.2 Entopia e burimit

Kemi thene se me n simbole ne dispozicion mund te ndertojme sekuenca prej m simbolesh (mesazhe) dhe se numri i ketyre mesazheve eshte: N = nm Kemi thene gjithashtu se simbolet mund te kene propabilitete te ndryshme shfaqjeje ne formimin e nje mesazhi. Tani dhe mesazhet mund te kene propabilitete te ndryshme shfaqjeje ne nje seri mesazhesh. Pra flasim per nje bashkesi M te mesazheve dhe propabiliteteve perkatese:
Faqe 6 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

 X1 , X 2 , X3 ,... X n   M ≡  p , p , p ... p  n   1 2 3,
Duhet te themi se per ndertimin e mesazhit te pergjithshem Xk jane mbajtur parasysh konsideratat e propabilitetit dhe te korrelimit midis simboleve.

Ne keto kushte nuk eshte gabim te themi se mesazhet nuk jane te korreluar midis tyre pavaresisht nga fakti se egziston korrelimi midis simboleve te ndryshem qe ndertojne nje mesazh (por jo midis mesazheve te ndryshem qe emeton burimi). Pra kemi nje bashkesi ngjarjesh ku seciles i takon nje propabilitet i caktuar, por jo te korreluara midis tyre. Ne kete rast sasia mesatare e informacionit per mesazh (jo per sombol) do te jete: IM=

∑p
k =1

k =n

k

log2

1 pk

bit/mes.

3.14

Duke u nisur nga IM per tu kthyer tek simbolet e korreluar midis tyre mund te themi se per nje sekuence prej m simbolesh sasia mesatare e informacionit per simbol do te jete: Hm =

IM bit m

3.15

Pra llogaritet duke u nisur nga mesazhet. Per te llogaritur sasine mesatare te informacionit per simbol per sekuenca shume te gjata duhet te llogarisim limitin e Hm per m → ∞ HS = lim IM m →∞ m

bit

3.16

Kjo madhesi quhet entropia e burimit. Eshte e qarte se me rritjen e vlerave te m vlerat e HS zvogelohen. Kjo per faktin se me rritjen e m rritet numri i simboleve perpara nje simboli qe pritet, pra permiresohet parashikimi duke u nisur nga simbolet paraardhes.
Faqe 7 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ne praktike korrelimi ka vlere per nje numer te caktuar simbolesh ne nje interval te caktuar, pra nuk kemi korrelim midis dy simboleve qe jane shume larg nga njeri tjetri. Kjo ben qe vlera e Hm pas nje numri te caktuar simbolesh te arije vleren limit. Ne figuren 3.3 jepet grafiku i informacionit mesatar per germe ne vartesi te germave te meparshme per alfabetin e gjuhes angleze.

Shohim se per m = 10 praktikisht arihet vlera limit e HS = 1.5 bit. Ndersa vlera maksimale eshte HMax = log2 27 = 4.75 bit. Konsideratat e mesiperme jane shume te rendesishme per nje kodim sa me eficent te burimit ne menyre qe te zvogelojme tepricen dhe te shfrytezojme sa me mire kanalin e transmetimit.
3.3 Teprica dhe kodimi i burimit

Kemi pare deri tani se per nje burim informacioni qe emeton N mesazhe me gjatesi m te ndertuara nga nje bashkesi prej n simbolesh eshte e mundur te gjejme: Sasine mesatare te informacionit per simbol duke konsideruar simbolet jo ekuiprobabel midis tyre H H=

bit k =1 pk - Sasine mesatare te informacionit per simbol per sekuenca shume te gjata mesazhesh duke konsideruar simbolet jo ekuiprobabel dhe te korreluar midis tyre HS
k =1 k log 2

∑p

k =n

1

= - ∑ pk log2 pk

k =n

HS = lim IM bit m →∞ m Kemi folur dhe per tepricen e informacionit, por pa dhene nje shprehje matematike per te. Kujtojme se entropia maksimale e nje burimi eshte HMax = log2 n dhe arihet ne mungese te korrelimit dhe kur simbolet jane ekuioprobabel. Percaktojme si Entropi Relative raportin e entropies se burimit me entropine e tij maksimale.
HR = H S
H Max
Faqe 8 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ndersa percaktojme si teprice R shprehjen R = 1 - HS = 1 - H R H Max 3.17

Po te kemi parasysh vlerat e meparshme HMax e HS per gjuhen angleze shohim se vlera e R eshte 0.68. Vlera e R, sidomos e shprehur ne perqindje, tregon se me sa zvogelohet kapaciteti maksimal qe ka burimi per te emetuar informacion, per shkak te korrelimit dhe te propabilitetit te ndryshem te simboleve qe formojne mesazhet e tij. Per rastin e burimit ne paragrafin 3.1 kemi

1.75 = 0.125 2 pra 12.5% te kapacitetit qe ka burimi per e dhene informacion shpenzohen ne menyre te kote. Ne pergjithesi mund te themi se: Per nje burim informacioni prej n simbolesh me kapacitet maksimal HMax = log2 n dhe me entropi HS, nje pjese R e simboleve qe dergohen ne mjetin e transmetimit e okupojne ate ne menyre te pa dobishme duke bere sistemin e transmetimit me pak eficent. Ne kete rast shrohet pyetja nese eshte e mundur te futet midis koduesit te mesazheve dhe kanalit te transmetimit nje dispozitiv qe eshte ne gjendje te perpunoje sekuencen e simboleve me teprice R qe vijne nga burimi, duke dhene ne dalje nje tjeter sekuence simbolesh por me teprice me te vogel. Ky operacion, qe lejon te shfytezohen ne maksimum vetite e kanalit te transmetimit quhet kodim i burimit. Teknikat e perdorura, te ndertuara ne baze te algoritmeve matematike te bazuara ne vetite statistikore te burimeve quhen teknika te zvogelimit te teprices. Nje paraqitje sematike e procesit te kodimit te burimit jepet ne figuren 3.4. Kodi i ri mund te perdore nc simbole e per me teper nc = n. Ne kete rast informacioni i sjelle nga nje simbol do te jete :
R = 1-

i = log2 nc N.q.s. ne gjuhen origjinale entropia e birimit ishte HS, per nje sekuence te gjate sasia e informacionit do te jete: I = m*HS 3.18

Ne kodin e ri kjo sasi informacioni do te jete:
Faqe 9 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

I = mc*log2 nc Ku mc eshte gjatesie e sekuences se re e ndertuar nga simbolet nc. Eshte e qarte qe sasite e informacionit para dhe pas kodimit duhet te jene te njejta. Pra: Nga ku: m*HS=mc*log2 nc

m c = HS m log n c 2 dhe duke supozuar nc = n kemi:
m c = HS = H S = H < 1 R m log n H Max 2

Pra me kodin e ri kemi te njejten sasi informacioni me nje numer me te vogel simbolesh. Nga sa me larte mund te themi se per nc = n vlera e teprices qe mund te anullohet eshte: R = 1 - mc m 3.19

Avantazhi eshte i qarte ne nje sistem me transmetim impulsesh; mund te transmetojme te njejten sasi informacioni me nje numer me te vogel impulsesh duke fituar ne kohe ose mund te perdorim impulse me te gjere duke zvogeluar brezin e transmetimit. Pyetjes nese nje sitem i tille kodimi eshte gjithmone i mundshem, i pergjigjet nje teoreme e Shannon-it, te cilen me vone do ta shohim edhe ne nje forme tjeter. Teorema thote: Per nje kod me nc simbole jo te korreluar midis tyre dhe ekuiprobabel, duke shqyrtuar bashkesine M te mesazheve dhe propabiliteteve te tyre
 X1 , X 2 , X3 ,... X n   M ≡  p , p , p ... p  n   1 2 3, Eshte e mundur te gjendet nje menyre kodimi e tille qe: X1 te kodohet me m1 simbole X2 te kodohet me m2 simbole X3 te kodohet me m3 simbole ……………………………… Xn te kodohet me mn simbole dhe ne kete menyre gjatesia mesatare e nje mesazhi do te jete: mc =

∑m
k =1

k =n

k

pk

3.20

e per me teper kjo gjatesi mesatare gezon vetine:
Faqe 10 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

IM log2 n c

≤ mc ≤

IM log2 n c

+1

Ndersa nuk egziston asnje menyre tjeter kodimi per te cilin te kemi:

mc ≤

IM log2 n c

Ku IM eshte sasie e informacionit mesatare per mesazh dhe vlen:
k =n k =1

IM = -

∑p

k

log2 pk

Pra teorema thote se numri mc i simboleve qe duhen per nje mesazh nuk mund te jete me i vogel se limiti teorik: IM log2 n c por egziston nje sistem kodimi ku numri mesatar i simboleve per mesazh ndryshon nga limiti teorik me 1 njesi. Po t’i referohemi perseri shembullite te paragrafit 3.1 mund te imagjinojme koduesin e burimit si nje dispozitiv qe duke pasur ne hyrje kodimin binar te sinboleve A, B, C e D na jep ne dalje nje kodim te ketyre simboleve sipas tabeles se me poshteme. Simbolet A B C D Duke aplikuar 3.20 kemi: mc = 2*0.25 + 3*0.15 + 1*0.5 + 3*0.125 = 1.75 simbole Duke aplikuar 3.12 burimi ka nje enropi HS = 1.75 bit dhe ne baze te 3.19 kemi tepricen e burimit te simboleve para kodimit Propabilitetet 0.25 0.125 0.5 0.125 Kodimi binar 00 01 10 11 Kodimi i burimit 01 001 1 000

1.75 R = 1 - mc = 1 = 0.125 m 2 Shembulli i mesiperm evidenton nje aspekt shume te rendesishem te kodimit te burimit ne rastin kur perdoren vetem simbole binare; mund te thuhet se entropia e burimit HS ne limit eshte e njejte me numrin e simboleve binar qe duhet per te paraqitur mesazhin pas kodimit te burimit.
Faqe 11 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Me fjale te tjera, per nje burim me entropi HS, egziston nje ligj kodimi qe lejon, ne limit, te perdoret nje kod binar i cili perdor HS shifra binare per cdo simbol te emetuar nga burimi. Teknikat e zvogelimit te teprices bazohen ne mundesine e dhenies se gjatesive te ndryshme mesazheve me propabilitete te ndryshme. Eshte intuitive te mendojme qe mesasheve me propabilitet me te madh t’u vendosim ne korespondence me pak simbole, pra te kene gjatesi me te vogel. Nje shembull interesant i kodimit te burimit dhe zvogelimit te teprices, i formuluar shume vite me pare se formulimi matematikor i bere nga Shannon, eshte alfabeti Morse i cili kodon ne pika dhe vija germat, numrat dhe simbole te tjera te gjuhes se shkruar. Se fundi theksojme se nje gabim edhe i vogel ne mjetin e transmetimit mund te kete efekte shume negative, duke krijuar pasiguri te madhe tek destinacioni per ate cfare eshte transmetuar realisht. Sic do te shohim me vone ky problem zgjidhet duke futur ne hyrje te kanalit te transmetimit nje sasi te kontrolluar teprice, me te vetmin qellim ate te dedektimit dhe korrigjimit te gabimeve per shkak te transmetimit. Ne kete rast behet fjale per kodimin e kanalit.
4 – Kapaciteti i informacionit te kanalit diskret pa zhurme

Deri tani kemi pare informacionet e dhena nga nje burim diskret, por per te studiuar kanalin e komunikimit qe transporton kete informacion duhet me pare te japim percaktimin e kanalit diskret e me pas te kapacitetit te tij, pra te aftesise se tij per te transferuar informacion. Quhet kanal diskret mjeti i transmetimit me ane te te cilit nje sekuence e caktuar, e zgjedhur nga nje bashkesi S prej n simbolesh Sk [k=(1÷n)], transmetohet nga nje pike ne nje pike tjeter. Ne pergjithesi secili prej simboleve Si mund te kete nje kohezgjatje τi sekonda te ndryshme prej simboleve te tjere. Gjate nje kohe T sekonda ne mjetin e transmetimit do te jene transmetuar T mesatarisht N = simbole ku τm eshte kohezgjatja mesatare e nje simboli dhe vlen:

τm

τm =

1 N

∑τ
1

N

i

Eshte e qarte se sa me e madhe te jete T aq me mire do te percaktohet koha mesatare τm dhe numri N i simboleve te transmetuara. Duke dashur te masim aftesine e kanalit diskret per te transmetuar informacion do te percaktojme si kapacitet te nje kanali diskret limitin: C = lim

log2 N(T ) T →∞ T

bit/sek

4.1

Ku N(T) eshte numri i simboleve te transmetuar gjate kohes T dhe te zgjedhur nga bashkesia S. Theksojme se simbolet Si jane te pershtatshem per tu transmetuar ne mjetin e transmetimit e per me teper mund te jene fizikisht te ndryshem nga ata te burimit te informacionit, mjafton qe ekuivalenca te jete univoke.
4.1 – Teorema e kanalit diskret pa zhurme

Koncepti i entropies se nje burimi dhe kapaciteti i nje kanali diskret pa zhurme sintetizohen ne teoremen themelore per nje kanal diskret pa zhurme te dhene nga Shannon. Teorema percakton shpejtesine e sinjalizimit VS ne simbole/sek kur nje burim informacioni me entropi HS bit/simbol nderfaqesohet me nje kanal diskret me kapacitet C bit/sek. Teorema thote:

Faqe 12 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Per nje burim te dhene me entropi HS bit/simbol dhe nje kanal me kapacitet C bit/sek dhe per nje vlere ε > 0 te vogel sa te duam ne eshte e mundur qe te kodohen mesazhet e burimit ne menyre te tille qe te kemi: - ε simb/sek 4.2 HS Ku VS eshte numri i simboleve te burimit qe kalojne ne kanal ne 1 sekonde. Dhe nuk eshte e mundur te transmetohet me nje shpejtesi
C HS

VS =

C

VS >

Rendesia e kesaj teoreme qendron ne faktin se jep kuptimin fizik te entopise se burimit, si numri mesatar minimal i simboleve binare qe i takojne nje shenje. N.q.s propabilitetet e simboleve nuk jane fuqi te plota negative te 2-shit, aritja e perpikte e numrit mesatar minimal te siboleve koduese eshte e pamundur, por me ane te kodimit me grupe mjaft te gjata mund t’i afrohemi sa te duam ketij kufiri. Pra eshte e mundur me ane te nje kodimi te pershtatshem te bejme entropine e burimit te afert me kapacitetin e kanalit te transmetimit, duke krijuar keshtu nje adaptim te burimit te informacionit me kanalin e transmetimit. Kodimi i pershtatshem per te cilin behet fjale ne kete rast eshte kodimi i burimit qe kemi pare ne paragrafet e meparshem. Adaptimi burim-kanal ne kate rast duhet kuptuar jo vetem ne sensin statistikor por edhe ne sensin qe mund te perdorim simbole te ndyshem fizikisht nga ato te burimit, me qellim qe te shfrytezohen sa me mire cilesite e mjetit te transmetimit. Kodimi i burimit duhet te parashikoje dhe nje memorje te brendshme me qellim qe simbolet ne dalje te percaktohen jo vetem nga karakteristikat statistike dhe korrelimi, por edhe nga simbolet e meparshem. Megjithese teorema nuk jep nje menyre per ndertimin e kodeve nga vertetimi i saj rrjedh se per te arritur minimumin e gjatesise se kodit simbolet duhet te jene ekuiprobabel dhe te pavarur nga njeri tjetri. Eshte e qarte se koduesit reale nuk mund te arijne nje adaptim perfekt. Per te vleresuar koduesin perdoret treguesi i eficences se sistemit te kodimit qe tregon sa larg jemi nga objektivi teorik. Ky tregues percaktohet si:

H SR ku HSR eshte entropia reale e burimit pas procesit te kodimit te burimit dhe HS entropia teorike Me poshte jepet nje shembull i kodimit te nje burimi me eficence 0.993

η = HS

4.3

Simbolet A B C D E F G H

Propabilitetet 0.5 0.15 0.12 0.1 0.04 0.04 0.03 0.02

Kodi binar 000 001 010 011 100 101 110 111

Kodimi i burimit 1 001 011 010 00011 00010 00001 00000

Faqe 13 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Per rastin e tabeles me lart eshte e qarte se nje kodim me tre bit nuk eshte i pershtatshem. Kodimi i ri con ne nje kod me gjatesi te ndryshme. Per kete kod ne baze te 3.20 kemi: mc =

∑m
k =1

k =n

k

pk = 2.26 simbole binare per mesazh (simbol), e per pasoje nje entropi reale

HSR = 2.26 bit. Ne baze te 3.12 kemi entropine teorike: HS= - ∑ pk log2 pk = 2.24 bit.
k =1 k =n

Treguesi i eficenses per kete kod eshte:

η=

2.24 = 0.991 2.26

Ne pjesen e dyte te ketij materiali, fu flitet per kompresimin e te dhenave do te shohim edhe dy menyra per ndertimin e kodeve te cilat lejojne t’i afrohemi propabiliteteve te njejta dhe mungeses se korrelimit midis simboleve koduese.
5 - Kapaciteti i informacionit te kanalit diskrete me zhurme 5.1 - Shtremberimet dhe zhurma – Ekuivokanca

N.q.s nje transmetues dergon nje sinjal te caktuar ne kanalin e transmetimit dhe marresit i vjen nje sinjal i modifikuar themi se ne kanalin e transmetimit kemi shqetesime. Ne rastin kur modifikimi ka te njejten natyre me sinjalin, ne menyre qe veprimi i tij eshte i parashikueshem, themi se kemi shtremberime. Ne rast se sinjali peson here pas here modifikime te ndryshme te rastit themi se kemi pranine e zhurmes. Brenda limiteve te caktuara shtremberimet nuk perbejne problem per interpretimin e sinjalit te mare. Me problematik paraqitet rasti i zhurmes. Efekti i zhurmes ne rastin e nje transmetimi ne kodin binar ben qe kur eshte transmetuar nje 0 te marrim ne anen tjeter te kanalit nje 1 dhe e kunderta. Me nje kuptim me te ngushte fizik mund te themi se nje fuqi e vogel e zhurmes mund te ngaterohet me nje sinjal dhe ne kete rast nuk mund te bejme interpretimin e sakte te informacionit te sjelle nga ky sinjal. Na intereson ne kete rast te shohim se si ndryshon entropia e sistemit ne prani te zhurmes. Per kete qellim merret nje sekuence me 0 e 1 e cila regjistrohet dhe pastaj futet ne mjetin e transmetimit tek i cili kemi pranine e zhurmes. Mesazhet e mara regjistrohen perseri. Duke krahasuar sekuencen e derguar me sekuencen e mare mund te percaktojme propabilitetet e gabimeve per shkak te efektit te zhurmes. Duke njohur keto propabilitete mund te llogaritet pasiguria mbi ate qe eshte transmetuar realisht dhe te shprehet kjo ne termat e entropise. Per te llogaritur shpejtesine totale te transmetimit duhet te heqim nga entropia e burimit entropine per shkak te efektit te zhurmes. Supozojme se nje burim binar transmeton simbolet 0 e 1 ekuiprobabel me nje frekuence 10.000 simb/sekonde, dhe se me ane te matjeve te meparshme eshte gjetur qe propabiliteti i gabimit eshte 1 ne 10. Pra propabiliteti qy(x) qe nje 0 e mare te kete qene 1 eshte 0.1 dhe propabiliteti py(x) qe te kete qene vertete 0 eshte 0.9. Kjo vlen dhe per simbolin 1. Po te shenojme me x gjithe simbolet ne hyrje te kanalit dhe me y ata ne hyrje te marresit, ngjarja y varet nga ngjarja x si ne figuren 5.1
Faqe 14 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Entropise H(x) ne hyrje te kanalit (e barabarte me 1) duhet t’i heqim nje sasi Hy(x) qe perfaqeson pasigurine qe vertet te jete transmetuar nje simbol x kur kemi mare kete simbol ne y. Ne kete menyre gjejme entropine qe efektivisht eshte transmetuar nga sistemi i transmetimit. Percaktojme ne kete rast si entropi te transferuar madhesine: Q = H(x) - Hy(x) bit/simbol 5.1

Madhesia Hy(x) quhet ekuivokance dhe tregon pasigurine mesatare te destinacionit per ate qe me te vertete eshte transmetuar nga burimi. Eshte e qarte se sa me i madh te jete propabiliteti i gabimit q aq me e madhe do te jete entropia e ekuivokances e aq me e vogel do te jete entropia e transferuar nga sistemi. Ne rastin e nje kanali pa shurme Hy(x) eshte 0 e per pasoje Q = H(x). Equivokanca eshte pra matese e nje sasie informacioni qe humbet ne transmetim per shkak te shqetesimeve. Por ne te njejten kohe ekuivokanca perfaqeson dhe sasine e informacionit shtese qe duhet t’i jepet destinacionit per te korrigjuar mesazhin e mare. Pra Q + Hy(x) = H(x). Shannon ka treguar se per te korrigjuar mesazhin nga gabimet e mjetit te transmetimit te shqetesuar, entropia e mesazhit te korrigjimit duhet te jete saktesisht e njejte me ekuivokancen.

Faqe 15 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ky fakt ka pasur nje rendesi te madhe praktike ne transmetimin e te dhenave dhe ne kerkimin e kodeve me te pershtatshem per korrigjimin e gabimeve sepse nga keto studime u arrit demostrimi teorik i mundesise se transmetimit pa gabime edhe ne prani te zhurmave. Duke u kthyer tek figura 5.1 m.q.s. kemi propabilitetin qy(x) = 0.1 qe nje simbol 0 ose 1 te jete i gabuar dhe py(x) = 0.9 qe te jete i sakte, eshte e qarte se entropia e ekuivokances do te jete: Hy(x) = - (0.9*log20.9 + 0.1*log20.1) = 0.47 bit/simb Entropia efektive e sistemit ne kete rast do te jete: Q = 1 - 0.47 = 0.53 bit/simb Kjo do te thote se ne vend qe te transmetojme 10.000 bit/sek si ne rastin pa zhurma, burimi transmeton vetem me 5300 bit/sek. Pra zhurma gati ka pergjysmuar shpejtesine e transmetimit edhe pse me propabilitet te vogel. Le te gjejme nje formule te pergjithshme per entropine e ekuivokances Hy(x). N.q.s burimi i informacionit me entropi H(x) ka n simbole ne x, per simbolin e i-te qe arrin destinacionin ne y egziston propabiliteti pi(i) qe simboli i mare te jete i sakte dhe egzistojne n-1 propabilitete qi(1), qi(2), ….qi(n) qe simboli i mare te jete i gabuar, per faktin se zhurma ka modifikuar ndonje prej simboleve te tjere ne x duke e bere qe ne y te arrije si ai qe po shqyrtojme (Shif fig. 5.3).

Per pasoje entropia e ekuivokances per simbolin e i-te do te jete: Hy(x)i = - pi(i)log2 pi(i) -

∑ q (n) log q (n)
1
i

n −1

2

i

5.2

Entopia e ekuivokances komplekse do te jete sa mesatarja e poderuar e Hy(x)i e shtrire per te gjithe simbolet ne y. Per te bere kete mesatare duhet te dime propabilitetin pyi qe ka cdo simbol per tu shfaqur ne y, pra ne hyrje te destinacionit. Nga fig. 5.3 kemi: pyi = pxi +

∑p
1

n −1

xn

qi ( n)

5.3

Entropia e ekuivokances komplekse ne kete rast do te jete:

Faqe 16 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Hy(x) =

∑p
1

n

yi

H y (x)i

5.4

Ne perfundim te ketij paragrafi le te shohim shembullin e fig. 5.4 ne te cilin secili nga simbolet 0 e 1 ka propabilitet te ndryshem shfaqjeje ne dalje te burimit dhe propabilitete te ndryshem te transmetimit korrekt.

Ne baze te 5.2 kemi: Hy(x)1 = - (0.7*log20.7 + 0.1*log20.1) = 0.69 Hy(x)0 = - (0.9*log20.9 + 0.3*log20.3) = 0.65 Ne baze te 5.3 kemi: py1 = px1*p1(1) + px0*q1(0) = 0.46 py0 = px0*p0(0) + px1*q0(1) = 0.54 Duke aplikuar 5.4 kemi: Hy(x) = py1Hy(x)1 + py0Hy(x)0 = 0.46*0.69 + 0.54*0.65 = 0.67 bit/simb Entropia e burimit H(x) eshte: H(x) = - (0.6log20.6 + 0.4log20.4 = 0.97 bit/simb Trensferimi efektiv i informacionit per kete rast eshte: Q = H(x) - Hy(x) = 0.97 - 0.67 = 0.3 bit/simb Propabilitete 0.54 e 0.46 te simboleve 0 e 1 ne dalje te kanalit te bejne te mendosh per nje entropi 0.99 bit/simb kur ne te vertete kjo entropi eshte vetem 0.3 per shkak te gabimeve te linjes.
5.2 – Kapaciteti i kanalit diskrete me zhurme dhe teorema perkatese

N.q.s entropite H(x) dhe Hy(x) qe kemi permendur me pare ne bit/simb i konsiderojme si H’(x) dhe H’y(x) te shprehura ne bit/sek, mund te percaktojme kapacitetin e nje kanali me zhurme si shpejtesine maksimale te transmetimit, kur burimi i informacionit eshte pershtatur ne menyre oportune me kanalin e transmetimit. Pra kemi:

Faqe 17 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

C’= Max[H’(x) - H’y(x)] bit/sec

5.5

Eshte e qarte se kapaciteti i kanalit perkon me parametrin Q qe perfaqesone entropine e transferuar. Kapaciteti eshte nje parameter karakteristik i kanalit e per pasoje eshte funksion i propabiliteteve py(x) qe kemi pare me siper, pra eshte dhe funksion i ekuivokances. Ne rastin e nje kanali pa zhurme kemi H’y(x) = 0 dhe per pasoje C’ = H(x), pra kapaciteti perkon me entropine e burimit. Le te shohim se cfare kuptojme me burim te adaptuar ne menyre oportune me kanalin e transmetimit. Eshte njesoj sikur te shtrojme pyetjen nese nje meyre e vecante kodimi (pervec asaj te kodimit te burimit) e cila eshte ne gjendje te beje te mundur korrigjimin e gabimeve te transmetimit duke perdorur vetem sinjalin qe pershkon kanalin pa pasur nevojen e nje vezhgimi te jashtem si ai i paraqitur ne figuren 5.2. Nje gje e tille eshte e mundur, por kerkon qe bashke me simbolet qe transmetojne informacionin te futen ne kanalin e transmetimit dhe simbole te tjera shtese (te korrigjimit) te cilat duhet te jene te llogaritura me kujdes. Nje menyre tjeter eshte ajo e sakrifikimit te disa simboleve te informacionit (duke vogeluar ne kete rast entropine e burimit) dhe zvendesimi i tyre me simbole te korrigjit te gabimeve. Shannon ka demostruar se me ane te nje kodimi te pershtatshem (kodimi i kanalit) te sekuences se mesazheve te burimit dhe te simboleve shtese te korrigjimit (teprica sistematike) eshte e mundur te arrihet nje transmetim pa gabime dhe se ne kete rast teprica sistematike eshte e njejte me ekuivokancen. Teorema e Shannonit per kanalin diskret me zhurme thote: Per nje kanal diskret me kapacitet C’= Max[H’(x)- H’y(x)] bit/sek dhe nje burim diskret me entropi per sek. H’, ku H’ <= C’, egziston nje menyre kodimi e tille qe informacioni i emetuar nga burimi te mund te transmetohet permes kanalit me nje frekuence gabimi per sekonde me te vogel se ε ku ε eshte nje madhesi e vogel sa te duam ne. Pra C’ eshte shpejtesia maksimale e informacionit qe mund te transmetohet ne nje kanal diskret me propabilitet gabimi me te vogel se cdo vlere e dhene. Duke njohur ekuivokancen ne baze te propabiliteteve py(x) te simboleve te ndryshem dhe kapacitetin e kanalit ne mungese te zhurmave, mund te llogaritet shpejtesia maksimale e mundshme e transmetimit qe mund ta arrihet me ane te nje metode ideale kodimi e cila bazohet ne futjen e teprices sistematike ne vlere te njejte me ekuivokancen. (shif fig. 5.6). Eshte e rendesishme te theksojme se Shannon me ane te kesaj teoreme ka evidentuar limitin teorik te shtejtesise se transnetimit. Ne praktik ky limit eshte akoma i pa arritshem. Motivet per te cilen nuk eshte e mudur te arihet vlera e C’ ne menyre te permbledhur jane: - Koduesi dhe dekoduesi i kanalit per te qene sa me eficent duhet te shqyrtojne sekuenca perhere e me te gjata te simboleve gje e cila con ne vonesa te medha perpunimi. - Praktikisht kodimi i sekuencave te gjata e te fundme te simboleve nuk mbulojne plotesishte disa kombinime te rralla te gabimeve, te cilat ne kete menyre behen te pakorrigjueshme. - Kompleksiteti i koduseit dhe dekoduesit jo gjithmone mund te justifikohet ne praktike per shkak te raportit cilesi/cmim.
5.3 – Kodimi i kanalit

Me kete term percaktohet ne teorine e informacionit procesi me ane te te cilit futet ne fluksin e simboleve te burimit te informacionit, nepermjet nje perpunimi te pershtatshem, teprica sistematike me qellim kompesimin e ekuivokances se kanalit me zhurme dhe dedektimin e korrigjimin e gabimeve ne marrje. Ne kete rast skema e procesit te komunikimit qe kemi pare ne fig. 3.4 modifikohet si ne fig. 5.5. Eshte e rendesishme te sqarojme se nuk ka ndonje kontradite midis kodimit te burimit dhe kodimit te kanalit, ndonese ne pamje te pare duket jo llogjike qe procesi i pare eliminon tepricen dhe procesi i dyte e shton ate.
Faqe 18 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ne te vertete ndersa kodimi i burimit eliminon tepricen e burimit me qellim perdorimin ne maksimum te kapacitetit te kanalit, kodimi i kanalit shton nje tjeter teprice, por para se gjithash kjo teprice eshte sistematike, per me teper eshte me shume e lidhur me ekuivokancen e kanalit dhe eshte ne sasi te kufizuar, plotesishte e njohur dhe me te vetmin qellim dedektimin dhe korrigjimin e gabimeve te transmetimit qe ndodhin per shkak te zhurmes se kanalit. Nje shembull te perdorimit te kodimit te kanalit e gjejme ne teknikat e transmetimit te te dhenave ku perdoren kode te dedektimit dhe korrigjimit te gabimeve (kodet e kontrollit te ciftesise, kodet ciklike, kodet e Hammingut etj.). Po keshtu koded CRC jane ne perdorim duke filluar nga aparaturat numerike te transmetimit e deri tek rrjetat LAN. Nje pershkrim me te zgjeruar te ketyre kodeve, tipet e tyre si dhe teknika te implementimit do ta shohim ne pjesen e trete te ketij materiali.

Vlen te permendet edhe nje tip tjeter kodimi te cilit i nenshtrohet fluksi i informacionit perpara se te hyje ne mjetin e transmetimit. Behet fjale per kodimin e linjes qellimi i te cilit eshte te beje pershtatjen sa me te mire te sinjalit elektrik me ane te te cilit paraqiten simbolet me karakteristikat e mjetit te transmetimit. Ky kodim nuk ben pjese ne teorine e informacionit dhe per pasoje nuk do te flitet per te ne kete material. Si konkluzion i ketij paragrafi jepet figura 5.6 ku jane permbledhur ne menyre skematike konceptet qe kemi pare deri tani duke u nisur nga nje kanal real te cilit duhet ti gjejme kapacitetin teorik duke njohur karakteristikat statistikore te tij. Ne pjesen a te figures kemi rastin e peshtatjes se burimit me kanalin pa zhurme, me ane te procesit te kodimit te burimit per te bere te mundur qe H(x) = C’. Ne pjesen b te figures kemi rastin e te njejtit kanal i cili shqetesohet nga zhurma dhe ku supozojme se njohim edhe ekuivokancen e tij Hy(x). Vihet re se me ane te kodimit te kanalit eshte e mundur te transmetojme pa gabime, por ne kete rast kemi nje entropi te burimit me te vogel dhe integrimin ne te te teprices sistematike ∆H e cila ne vlere numerike eshte e njejte me ekuivokancen. Per te gjetur ekuivokancen e kanalit eshte e mjaftueshme qe te gjejme frekuencen e gabimit Tε te tij duke bere matje mbi nje sekuence te njohur mesazhesh dhe statistikisht te perafert me sekuencat e burimit real. Ne rastin e nje burimi binar (jo shume larg nga rastet praktike) duke supozuar px1=px0=0.5 dhe q0(1)=q1(0)=q=1/2Tε e si rrjedhim mund te shkruajme: Hy(x)1 = Hy(x)0 = -[(11 1 1 1 Tε)log2(1- Tε) + Tεlog2 Tε] 2 2 2 2

E cila per Tε ≥ 10-2 mund te perafrohet me:

Faqe 19 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

1 1 Hy(x)1 = Hy(x)0 =- Tεlog2 Tε 2 2

5.6

Nga supozimet e bera per px1 = px0 dhe q0(1) = q1(0) eshte e qarte qe do te kemi dhe py1 = py0 dhe per pasoje shprehja 5.6 eshte dhe ekuivokanca e kanalit. Po keshtu eshte e qarte se H(x) = 1 dhe nga fakti qe Q = H(x) – Hy(x) arijme ne perfundimin: Q=1+ 1 1 Tεlog2 Tε bit/simbol 2 2 5.7

Kjo formule jep entropine e transferuar te nje kanali diskret me zhurme me nje frekuence gabimi Tε ndersa shprehja C’ = Vs*Q bit/sek 5.8

Faqe 20 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Jep kapacitetin efektiv te kanalit diskret me zhurme, por pa gabime ne rastin kur kemi perdorur kodimin e kanalit. Ne tabelen me poshte jepen vlerat e entropise se transferuar Q dhe te kapacitetit C’ per nje kanal 2048 Kb/s ne vartesi te vlerave te ndyshme te Tε duke u qendruar supozimeve te bera me larte. Tε 10-2 10-3 10-4 10-5 10-6 10-7 10-8 Q bit/simbol 0.96178 0.99451 0.99928 0.99991 0.99998 0.99999 >0.99999 C’ Kb/s per Vs=2048Kbaud 1969 2036 2046 2047.8 2047.9 2047.99 2047.999

6 – Kapaciteti i informacionit te kanalit te vazhduar me zhurme 6.1 Entropia e nje burimi te vazhduar

Perpara se te percaktojme sasine e informacionit te nje burimi te vazhduar le te kujtojme teoremen e kampionimit te dhene nga Shannon sipas se ciles jane te mjaftueshme vetem nje numer i caktuar vlerash te funksionit qe pershkruan burimin e informacionit per ta percaktuar plotesishte ate. N.q.s. funksioni f(t) qe pershkruan burimin eshte i kufizuar ne brezin e frekuencave nga 0 ne B Hz, vete burimi eshte plotesishte i percaktuar nga ordinatat f(t) te vetem 1 2B pikave ne sekonde, ekuidistante B sekonda. Per funksionet e vazhduara qe do te shohim 2 me poshte do te supozojme se jane te kampionueshme. Permendim gjithashtu se nje paraqitje tjeter e funksioneve te vazhduara, pervec spektrit qe okupojne, eshte edhe funksioni i densitetit te propabiliteteve te madhesise p(x). Ne pjesen me te madhe te rasteve, funksionet qe mbartin nje informacion te vazhduar kane dhe nje funksion p(x) te vazhduar. Atehere per analogji me shprehjen 3.12 per informacionin diskrete, mund te percaktojme si entropi te nje burimi te vazhduar madhesine:
+∞

H=-

−∞

∫ p(x) log2p(x)dx

bit/kampion

6.1

Eshte e qarte se entropia e nje burimi te vazhduar me madhesi ekuiprobabel e per pasoje me p(x) konstante eshte maksimale dhe e barabarte me: H = -log2 p(x) bit/kampion Eshte e mundur te demostrohet qe midis burimeve te vazhduar te informacionit me densitet propabilitetesh p1(x), p2(x),...,pn(x) me forma te ndryshme, por me te njejtin diviacion standart σ, ai me entropine me te madhe shperndarja gaussiane. Kjo eshte mjaft intuitive po te mendojme se informacioni ka lidhje me pasigurine apriori dhe vetem shperndarja gaussiane perfaqeson fenomene teresishte te pasigurta e per pasoje me pasiguri maksimale. Po keshte eshte e mundur te demostrohet se entropia e nje burimi gaussian ne vlere numerike eshte: H = log2 2πeδ 2 bit/kampion
Faqe 21 / 66

6.2

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Eshte e rendesishme te dallojme ndryshimin midis enteropise se nje burimi te vazhduar dhe nje burimi diskret. Ne rastin e nje burimi diskret enrtopia vlereson ne menyre absolute pasigurine e variablit, ndersa ne rastin e nje burimi te vazhduar entropia vlereson pasigurine relative. Ne rastin e pare flasim per propabilitete te simboleve te ndryshem, ndersa ne rastin e dyte flasim per densitet te propabiliteteve referuar cdo vlere te variablit te pasigurt. Kjo diference nuk ndikon ne konceptet themelore te shpejtesise te transmetimit dhe te kapacitetit te kanalit qe do te shohim me poshte. Nga sa kemi thene me siper eshte e qarte se per te llogaritur entropine ne bit/sek. do te kemi: H’ = 2B*H bit/sec 6.3

6.2 Kapaciteti i kanalit te vazhduar me zhurme dhe teorema perkatese

Percaktohet si kanal i vazhduar mjeti i transmetimit me ane te te cilit transferohen nga nje ekstrem ne ekstremin tjeter informacione te vazhduara nen formen e sinjaleve te cilet karekterizohen nga parametra variabel por te vazhduar brenda limiteve te caktuara. P.sh. po te jete e mundur qe amplitudes vi se nje impulsi ti japim cdo vlere brenda limiteve Vmin e Vmax, dhe me ane te amplitudes te transferojme informacion, kemi ndertuar nje kanal te vazhduar. Ne pergjithesi paramerti vi ne transmetim mund te mare nje bashkesi vlerash te vazhduara, ndersa ne momentin e mbritjes ne destinacion kemi parametrin vu me bashkesine e tij te vlerave te vazhduara i cili eshte i ndryshem nga vi per shkak te zhurmave te mbivendosura. Pra mund te shkruajme qe: vu = vi + n ose per rastin e pergjithshem y = x + n Kanali i vazhduar eshte pra i percaktuar nga vlerat “x” te pranuara ne transmetim dhe nga karakteristikat propabilistike te zhurmes “n”, e cila supozohet e tipit mbledhese dhe me shperndarje gaussiane (hipoteze kjo e pranueshme per rastet e zhurmave te rastit dhe te vazhduara si p.sh. tasti i zhurmes termike e pranishme pothuaj ne te gjitha aparaturat elektronike). Duhet te theksojme se kanali i vazhduar, i percaktuar ne menyren e mesiperme eshte ne gjendje te transmetoje edhe informacion diskrete nen formen e impulseve me madhesi jo me te vazhduar por me nivele diskrete. Ne kete rast edhe kanali percaktohet si kanal diskret duke qene tipi i informacionit ai qe percakton tipin e kanalit. Kanali i transmetimit keshtu sic eshte percaktuar ne teorine e informacionit nuk duhet ngateruar me kanalin fizik i cili karakterizohet nga parametrat e tij te transmetimit (brezi, zhurma etj.) e ne te cilin mund te transmetohen si informacione diskrete ashtu edhe informacione te vazhduara. Ne kete paragraf do te mundohemi te gjejme kapacitetin e nje kanali te vazhduar dhe sic do te shohim ky kapacitet varet direkt nga gjeresia e bandes B dhe nga zhurma N e kanalit fizik te perdorur. Ky kapacitet eshte i vlefshem edhe per kanalin fizik qe perdoret si kanal i vazhduar. Me vone do te shohim dhe kapacitetin e informacionit te nje kanali fizik ne rastin kur ky perdoret per te transmetuar informacione diskrete ne forme binare me shume nivele. Per percaktimin e kapacitetit te informacionit te kanalit te vazhduar eshte e nevojshme te themi se meren ne konsiderate vetem sinjale me brez B te kufizuar te cilet mund te percaktohen, fale teoremes se kampionimit, vetem me ane te 2BT kampioneve ne intervalin e kohes T. Per me teper presupozohet qe sinjali dhe zhurma jane statistikisht te pa lidhur me njeri tjetrin. Pra sinjali i mare eshte shuma e atij te transmetuar me zhurmen (y = x + n). Duke u nisur nga supozimet e mesiperme eshte e mundur qe te demostrohet se entropia e transferuar e ne kete kanal eshte: Q’ = H’(x) – H’(y) = H’(y) – H’(n) bit/sek 6.4

Faqe 22 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Pra eshte sa diferenca midis entropise se sinjalit te mare me entropine e zhurmes. Edhe ne kete rast kapaciteti i kamalit percaktohet si maksimumi i entropise se transferuar Q’ C’ = Max[H’(y) – H’(n)] bit/sek 6.5

Per faktin se kemi thene qe zhurma “n” eshte statistikisht e pavarur nga sinjali i transmetuar “x” kemi dhe H’(n) te pavarur nga densiteti i propabiliteteve te sinjalit “x” p(x). Per te gjetur C’ ne kete rast duhet te gjejme maksimumun e sinjalit te mare H’(y). Ne rastin e pranise se nje zhurme gaussiane dhe te nje sinjali te transmetuar me fuqi mesatare S, kemi qe fuqia e sinjalit te mare eshte e barabarte me S + N ku N eshte fuqia mesatare e zhurmes. Entropia maksimale e sinjalit te mare y = x + n verifikohet kur ky sinjal eshte gaussian (me fuqi S + N) gje qe eshte e mundur ne rast se edhe sinjali i transmetuar “x” eshte gaussian (me fuqi S). Ne kete rast ne baze te 6.2 mund te themi se vlera maksimale e entropise se sinjalit te mare eshte : H(y) = log2 2πe( S + N ) bit/kampion bit/sek prej nga ne baze te 6.3 kemi 6.6

H’(y) = B*log2 [2πe(S+N)]

Per me teper duke ju referuar 6.2 e duke supozuar se zhurma eshte e shtrire ne gjithe gjeresine e brezit B entropia e zhurmes do te jete: H’(n) = B*log2[2πeN] bit/sek 6.7

Atehere kapaciteti i kanalit eshte C’ = H’(y)Max – H’(n) = B*log2 [2πe(S+N)] – B*log2[2πeN] prej nga: C’ = B*log2(1+ S ) N bit/sek 6.8

Si perfundim po japim dhe formulimin e teoremes baze te kanalit te vazhduar me zhurme te dhene nga Shannon. Teorema thote: Kapaciteti i nje kanali me brez B dhe i shqetesuar nga nje zhurme gaussiane me fuqi N kur fuqia S e transmetuesit eshte e kufizuar dhe e barabarte me S jepet nga C’ = B*log2(1+ ) bit/sek. N Kjo shprehje, tashme klasike ne gjithe literaturen shkencore, jep limitin teorik e te pakapercyeshem te shpejtesise maksimale te transmetimit qe mund te arrihet ne nje kanal me brez B, ne prani te nje zhurme me fuqi N dhe te nje transmetuesi me fuqi S. M.q.s. madhesite B, S e N jane madhesi karakteristike edhe per nje kanal fizik formula 6.8 jep njekohesishte kapacitetin maksimal te tij. Kjo eshte edhe me intuitive po te mendojme se nje kanal fizik me karakteristikat e mesiperme duhet te lejoje te njejtin kapacitet pavaresisht nga fakti se ne te transmetohet informacion i vazhduar apo diskret.
7 - Kapaciteti i informacionit te nje kanali fizik

Ndryshe nga kanali diskret qe mund te kete karakteristika abstrakte (simbolet mund te jene konvencionale), kanali fizik eshte gjithmone nje realitet fizik objektiv, i ndertuar nga dispozitiva reale qe pershkohen nga sinjale elektrike. Kanali fizik ne thelb eshte mjeti fizik i lidhjes midis dy qendrave te transmetimit dhe te marrjes ku informacioni, pavaresishte nese eshte diskret apo i vazhduar ka mare formen e sinjalit elektrik.
Faqe 23 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Nga kjo pikpamje kanali fizik pershkohet gjithmone nga sinjale elektrike te vazhduara te cilet modifikohen nga parametrat e transferimit te kanalit sic jane shuarja, vonesa e grupit, shtremberimet jolineare, zhurmat, etj. Ndersa degradimet e tipit sistematik (si shuarja apo vonesa e grupit) mund te kompensohen nga pajisje te posacme ne marrje, zhurmat jane te pa shmangshme. Sic kemi thene dhe me larte n.q.s. nje sinjali me vlere vi i caktohet detyra te transferoje informacion, ne marrje do te kemi sinjalin vu = vi + n, ku n tregon diferencen midis vu e vi per shkak te zhurmave dhe shqetesimeve te cilave mund tu njohim vetem vleren efektive EN dhe qe mund te konsiderohen si mbledhese dhe te tipit gaussian. Ne rastin kur ne kanalin fizik transferohen informacione te vazhduara, ky i fundit konsiderohet si kanal i vazhduar dhe per te vlejne te gjitha konsideratat qe kemi pare ne paragrafin 6.2. Ne rastin kur nje kanali fizik perdoret per te transferuar informacione diskrete kjo do te thote se sinjali vi ne hyrje te tij karakterizohet nga vlera diskrete dhe ne kete rast eshte e nevojshme te vendosim nje rregull per ta kaluar nga vlera vu e mare ne vleren vi e per pasoje dhe ne simbolin qe vlera vi paraqet. Do te shqytrojme nje rast te thjeshte te transmetimit te nje informacioni binar ku perdorim impulset me madhesi +A per te transmetuar simbolin 1 dhe –A per te transmetuar simbolin 0. Ne kete rast kemi nje transmetim me dy nivele. Po te konsiderojme fuqine e transmetuesit si te kufizuar e te barabarte me S do te kemi qe A2 eshte proporcionale me S. Ne marrje sinjali i tipit y = ± A + n, interpretohet ne baze te shenjes se tij, per ta aritur tek simbolet 0 e 1. Eshte e qarte se do te kemi nje gabim ne interpretim kur shqetesimi n eshte i tille sa ka bere te mundur qe shenja e sinjalit y te jete e kundert me ate te sinjalit ± A te transmetuar. Kjo eshte e mundur kur vlera e castit e shqetesimit eshte me e madhe se |A|, pra me e madhe se S dhe me shenje te kundert me ± A . Ne rast se kondicionet e raportit sinjale-zhurme te kanalit fizik jane te favorshme dhe me nje raport te caktuar sinjal-zhurme nuk kemi gabime, eshte e kuptueshme qe tentohet te rritet numri i niveleve nga 2 ne M me qellim rritjen e shpejtesise se transmetimit (shif fig.7.1). Ne rast se A1, A2,...AM jane nivelet e impulseve qe do te transmetojne M simbolet ne dispozocion, ne marje do te kemi vlerat y = Ai + n nga e cila duhet te nxjerrim vleren Ai e per pasoje dhe simbolin e transmetuar. Per kete qellim ne marrje vendosim pragjet e interpretimit te cilat ndajne fushen e vlerave y ne M intervale dhe secilit prej ketyre pragjeve i pergjigjet njohja e nje niveli te caktuar Ai. Ne rast se vlera momentale n e zhurmes kalon gjysmen e intervalit te pragut d pra gjysmen e intervalit q midis vlerave Ai, do te kemi njohjen e nje simboli te ndryshem nga ai i transmetuar. Propabiliteti qe kjo te ndodhe varet nga raporti midis madhesive q dhe vleres efektive EN te zhurmes se pranishme ne marrje. Sa me i madh te jete raporti midis q dhe N aq me e mire do te jete cilesia e transmetimit.

Faqe 24 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Eshte e qarte se fuqia e sinjalit te transmetuar ne lidhje me madhesite Ai do te jete:
2 S = E S = Ai2

7.1

2 Ku E S eshte vlera efektive e sinjalit me fuqi S e barabarte me mesataren e simboleve Ai ne katror. Ne rastin e sinjalit me 4 nivele si ne fig. 7.1 kemi:
2 A12 = A2 = d2 2 A32 = A4 = (3d)2

Ku d =

q 2
1 M

Nga ku duke qene Ai2 =

∑ A i2 kemi
i =1

M

Ai2 = 5d2 dhe duke supozuar simbolet Ai ekuiprobabel

kemi S = 5d2. Per analogji me rastin binare ku zhurma provokon gabime kur |n| > S , ne rastin me 4 nivele do te kemi gabime kur |n| > d = S / 5 pra per madhesi 5 me te vogla se rasti binar. Duke fiksuar nje vlere te caktuar te raportit S/N te nje kanali fizik eshte e mundur, per te rritur kapacitetin e tij, te rrisim vlerat e niveleve M deri ne momentin qe propabiliteti i gabimeve eshte akoma shume i vogel e per pasoje edhe Hy(x) << H(x). Ne keto kushte kapaciteti i kanalit do te jete C = Max[H(x) – Hy(x)] = MaxH(x) bit/simb e duke aplikuar 3.8 kemi: C = log2M bit/simb 7.2 Duke vazhduar te rrisim numrin e niveleve M, intervali q e per pasoje dhe d fillojne te behen te krahasueshem me EN. Ne kete ras kemi rritje te propabilitetit te gabimeve duke kompensuar keshtu rritjen e entropise per shkak te rritjes se M. Pra shpejtesia e transmetimit tenton drejt nje vlere te fundme e cila perfaqeson nje limit edhe per vlerat e M. Si konkluzion mund te themi se: S Ne nje kanal fizik i cili perdoret si suport i nje kanali numerik dhe me nje raport te caktuar , N me rritjen e numrit M te niveleve fitohen shpejtesi transmetimi perhere e me te medha te cilat tentojne drejt nje vlere te fundme limit. Mund te demonstrohet se per M → ∞ (rasti i informacionit te vazhduar) kapaciteti i kanalit eshte: C=
S 1 ) bit/kamp log2(1 + 2 N

7.3

Kjo vlere percakton dhe limitin e transmetimit te informacionit me nje gabim te vogel sa te duam ne. Per te arritur kete limit duhen sisteme kodimi te studiuar me kujdes e per me teper eshte e nevojshme qe sinjalet qe transmetohen te kene karakteristika statistikore sa me te aferta me sinjalet gaussiane. Nje menyre empirike per te arritur tek formula 7.3 eshte po te konsiderojme fuqite e sinjaleve dhe vlerat efektive te tyre. Eshte e kuptueshme qe M nivelet e mundshme ne nje kamal fizik dote jene sa raporti i vlerave efektive te sinjalit te mare me ate te zhurmes. Pra:

Faqe 25 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

E M= R = EM

PR N

=

S+N N

S  = 1 +  N 

1/ 2

7.4

Duke zvendesuar 7.4 tek 7.2 arijme ne shprehjen 7.3 Ne figuren 7.2 jepet nje grafik me ane te te cilit mund te interpretohet shprehja 7.3 e kapacitetit te kanalit fizik. S Ne kete rast kemi nje kanal fizik me raport = 30 dB (fuqia e zhurmes 1000 here me e vogel se N ajo e sinjalit te transmetuar). Linja vertikale korespondon me shpejtesite e transmetimit qe mund te arrihen per secilen vlere te M. Sic shihet deri ne vleren e M = 16 kemi rritje te shpejtesise se transmetimit per cdo dyfishim te numrit te niveleve. Me rritjen e metejshme te M nuk kemi rritje te shpejtesise se transmetimit per faktin se kemi rritje te gabimeve te cilat bllokojne kapacitetin e kanalit ne limitet e tij teorike.

Faqe 26 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Pjesa II – Kompresimi i te dhenave
1 – Hyrje ne kompresimin e te dhenave

Ne dy dekadat e fundit, te gjithe jemi deshmimtar te nje transformimi rrenjesore, shpesh i quajtur edhe revolucion, ne menyren e komunikimit. E per me teper ky transformim eshte akoma duke ndodhur. Ky revolucion perfshin internetin gjithnje ne rritje, zhvillimin eksploziv te telefonise se levizshme, komunikimet video perhere ne rritje si dhe shume aspekte te tjera te kesaj fushe. Kompresimi i te dhenave eshte nje prej teknologjive qe lehtesjne secilin prej aspekteve te ketij revolucioni multimedial. Nuk do te ishte aspak praktike te degjoheshin kenge apo te shiheshin imazhe te ndryshme ne internet pa ndihmen e kompresimit te te dhenave. Telefonat celulare nuk do te mund te arrinin kete stad te komunikimit pa ndihmen e kompresimit te te dhenave. Po e njejta gje mund te thuhet dhe per televizionin dixhital. Komresimi i te dhenave, qe per nje kohe te gjate ka qene “prone” e nje grupi te vogel inxhinieresh e shkencetaresh, tashme eshte i kudondodhur. Ne bejme nje telefonate ne distance dhe kemi te pranishem kompresimin, perdorim modemin apo faksin dhe perseri mbeshtetemi nga kjo teknologji, degjojme nje kenge ne formatin mp3 apo shohim nje DVD dhe perseri perdorim kompresimin e te dhenave. Por cfare eshte saktesishte kompresimi i te dhenave dhe perse sherben ai? Me pak fjale kompresimi i te dhenave eshte arti ose shkenca e paraqitjes se informacionit ne nje forme sa me kompakte. Ne e krijojme kete forme kompakte te paraqitjes se informacionit duke u bazuar ne strukturen e te dhenave ekzistuese. Te dhenat mund te jene karaktere te nje teksti, numra te cilet jane kampione te formes se vales se nje bisede apo imazhi video apo dhe sekuenca e numrave e gjeneruar nga nje proces industrial. Arsyeja perse duhet kompresimi i te dhenave eshte se informacioni qe ne gjenerojme e qe perdorim, perhere e me teper eshte i formas dixhitale, pra ne formen e numrave te cilet paraqiten si byte te dhenash. Ky numer byte-sh per te dhena te caktuara mund te jete shume i madh. P.sh. paraqitja ne forme dixhitale per nje sekonde video ne forme te pakompresuar mund te kerkoje deri ne 20 Mbyte. Nje paraqitje prej 2 minutash e nje kenge me cilesine e CD (44.100 kampine/sek, 16 bit/kampion) kerkon me shume se 84 million bite. Duke qene se sasia e informacionit qe prodhohet, perpunohet dhe transmetohet eshte perhere ne rritje perse te mos fokusohemi ne zhvillimin e teknologjive te reja per transmetimin dhe magazinimin e tij ? Kjo gja ka ndodhur dhe ndodh vazhdimisht, por duket se eshte e pamjaftueshme. Duket se kerkesa per magazinim dhe transmetim informacioni rritet gati dy here me shpejte se vete rritja e kapaciteteve magazinuese dhe transmetuese. Vec kesaj kemi dhe situata kur ky kapacitet nuk mund te rritet ne menyre te ndjeshme. Nje prej shembujve me te hershem te kopresimit te te dhenave eshte kodi Morse, shpikur nga Samuel Morse ne mes te shekullit XIX. Ne kete kod germat dhe numrat jane te koduara me vija e pika duke u vene ne korespondence nje sekuence pikash dhe vijash me te shkurter atyre karaktereve qe perdoren me shume dhe anasjelltas. Ne kete menyre zvogelohet koha mesatare qe duhet per te derguar nje mesazh. Me vone nje kod tjeter i perhapur ka qene dhe kodi Braille, i cili ndryshe nga kodi Morse, per te arritur kompresimin nuk perdorte frekuencen e perdorimit te nje karakteri te vetem, po ate te nje grupi karakteresh. Ne te dy shembujt e dhene me larte perdoret struktura statistike e te dhenave per te arritur kompresimin, por kjo nuk eshte e vetmja strukture e perdorshme qe ekziston ne te dhenat. Kur ne flasim, ndertimi fizik i aparatit vokal dikton tipin e tingujve qe ne do te prodhojme. Pra eshte ndertimi mekanik i aparatit vokal ai qe dikton strukturen e tingujve. Ne kete rast ne vend te transmetimit te zerit ne mund te transmetojme vetem informacionin e duhur i cili pershkruan kete ndertim mekanik, e me pas ky informacion mund te perdoret nga marresi per sintetizimin e tingujve. Kuptohet qe transmetimi i ketij informacioni kerkon shume me pak bite po ta krahasojme me transmetimin e te gjithe bisedes. Nje version i hershem i kesaj teknike kompresimi eshte rasti i vocoder-it realizuar ne vitin 1936.

Faqe 27 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Pervec struktures se te dhenave ajo qe perdoret se tepermi ne kompresimin e tyre eshte dhe aftesia perceptuese e perdoruesit te te dhenave. Ne rastin e transmetimit te zerit apo figures mendohet se perdoruesi i tyre eshte njeriu, i cili ne disa raste ka aftesi te kufizuara perceptimi per pjese te caktuara te ketij informacioni. Ne kete rast hiqet ajo pjese e informacionit qe nuk mund te perceptohet prej perdoruesit, duke cuar perseri ne nje kompresim te dhenash. Perpara se te kalojme ne studimin e nje pjese te teknikave te kompresimit le te shohim disa prej termave dhe koncepteve kryesore qe do te perdorim me vone.
1.1 – Teknika te kompresimit

Ne pergjithesi kur flasim per teknika apo algoritme te kompresimit duhet te kemi parasysh se jemi duke iu referuar dy algoritmeve te ndryshem . Algoritmi i pare eshte algoritmi i kompresimit. Ky eshte algoritmi qe perpunon nje hyrje X dhe gjeneron ne dalje pararaqitjen e saj XC. Kuptohet qe paraqitja e XC kerkon me pak bite se hyrja X. Algoritmi i dyte eshte algoritmi i rindertimit, i cili vepron mbi te dhenat e kompresuara XC, per te gjeneruar (rindertuar) te dhenat e pakompresuara Y. Keto dy operacione jane paraqitur skematikisht ne Figuren 1.1. Me poshte kur te flasim per algoritem te kompresimit duhet te kuptojme se po ju referohemi te dy algoritmeve.

Bazuar ne kerkesat e rindertimit, skemat e kompresimit te te dhenave ndahen ne dy kategori te medha: skema te kompresimit pa humbje, ne te cilat Y eshte identik me X, dhe skema te kompresimit me humbje, te cilat zakonisht lejojne komresim me te madh te te dhenave, por qe lejojne Y te jete i ndryshem nga X.
1.1.1– Kompresimi pa humbje

Ky lloj kompresimi, sic duket edhe nga emri i tij, nuk lejon humbje te informacionit. Ne nje skeme te tille te dhenat origjinale mund te perfitohen ne menyre egzakte prej te dhenave te kompresuara. Ky lloj kompresimi perdoret per ato aplikime te cilat nuk mund te tolerojne asnje diference midis te dhenave origjinale dhe atyre te rindertuara. Kompresimi i tekstit eshte nje nga fushat ne te cilat ky lloj kompresimi perdoret gjeresishte. Ne kete rast eshte shume e rendesishme qe te dhenat e rindertuara te jene identike me ato origjinale, pasi edhe ndryshimi me i vogel do te conte ne interpretim teresisht te gabuar te kuptimit te nje fjale apo fjalie. Po te njejtat kerkesa jane te vlefshme per nje file ne kompjuter apo nje rekord bankar. Ne rastin kur te dhenat e kopresuara, pas rindertimit do te kalojne ne faza te tjera perpunimi e sidomos “zgjerimi“ eshte shume e rendesishme qe integriteti i tyre te ruhet me fanatizem. Kjo sidomos ne rastin e kompresimit me humbje, sepse ky “zgjerim“ mund te beje qe diferenca e
Faqe 28 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

padukshem ne momentin e rindertimit te zmadhohet duke cuar ne interpretime te gabuara, te cilat mund te kene pasoja te medha. (Supozojme rastin e nje radiologjie).
1.1.2– Kompresimi me humbje

Teknikat e kompresimit me humbje lejojne nje fare humbje te informacionit dhe te dhenat e kompresuara me keto teknika nuk mund te rindertohen plotesishte. Nga ana tjeter duke pranuar kete diference midis te dhenave mund te arrijme kompresim me te mire se ne rastin e teknikave pa humbje. Ne shume aplikime ky ndryshim midis te dhenave nuk perben ndonje problem te madh. P.sh. ne rastin e regjistrimit apo te transmetimit te zerit vlera e sakte e cdo kampioni te zerit nuk eshte e nevojshme. Ne vartesi te cilesise se zerit qe ne kerkojme pas rindertimit vlera te ndryshme te sasise se informacionit mund te tolerohen. Ne rast se cilesia duhet te jete si ajo e nje bisede telefonike mund te tolerojme me teper sasi informacion se ne rastin e nje cilesie si te nje CD. Po keshtu dhe ne rastin e nje transmetimi video fakti qe te dhenat e rindertuara jane te ndryshme nga ato origjinale brenda kufijeve te caktuar nuk perben ndonje problem. Te dhenat video zakonisht kompresohen duke perdorur teknika me humbje te informacionit. Pasi kemi percaktuar skemen e kompresimit qe eshte me e pershtatshme per nje aplikim te caktuar, duhet te jemi ne gjendje te masim dhe efektshmerine e kasaj skeme. Per shkak te numrit dhe fushave te shumta te aplikimeve, terma te shumte perdoren per matjen e kesaj efektshmerie.
1.1.3– Matja e efektshmerise

Nje algoritem kompresimi mund te vleresohet ne menyra nga me te ndryshmet. Mund te vleresohet kompleksiteti i algoritmit, memorja qe kerkohet per te implementuar algoritmin, shpejtesia e algoritmit ne nje makine te caktuar, sasia e kompresimit si dhe diferenca midis te dhenave origjinale dhe atyre te kompresuara. Ne kete material do te fokusohemi kryesisht ne keto dy te fundit. Nje rruge llogjike per matjen e efekshmerise se nje algoritmi kompresimi eshte raporti midis numrit te biteve qe duhen per paraqitjen e te dhenave para kompresimit me numrin e biteve qe duhen per paraqitjen e tyre pas kompresimit. Ky raport quhet edhe raporti i kompresimit. Supozojme se per regjistrimin e nje imazhi te perbere nga 256x256 piksel duhen 65536 byte . Ky imazh kompresohet dhe versioni i kompresuar i tij kerkon 16384 byte. Ne kete rast themi se kemi nje raport kompresimi 4:1. Raporti i kompresimit mund te shprehet edhe ne perqindje. Per rastin e mesiperm thuhet se kemi nje kompresim prej 75%. Nje menyre tjeter eshte dhenia e numrit mesatar te biteve qe duhet per te paraqitur nje kampion te kompresuar. Kesaj madhesie i referohemi shpesh si norme apo vlere (rate). Ne shembullin e mesiperm per rastin e pa kompresuar kemi 8 bite per nje piksel. N.q.s. per rastin e kompresuar cdo piksel paraqitet mesatarisht me 2 bite themi se kemi nje rate prej 2 bit/piksel. Per rastin e kompresimit me humbje kemi nje diference midis te dhenave origjinale dhe atyre te kompresuara. Ne keto raste per te matur efektshmerine duhet ne nje fare menyre te vleresojme sasine e kesaj diference. Diferenca midis te dhenave origjinale dhe atyre te rindertuara shpesh quhet shtremberim. Po keshtu per te percaktuar diferencen midis te dhenave origjinale dhe atyre te rindertuara jo rralle perdoren dhe termat besnikeri dhe cilesi. Kur themi se besnikeria apo cilesia e te dhenave te rindertuara eshte e madhe kemi parasysh qe diferenca midis tyre dhe origjinalit eshte e vogel.
1.2– Modelimi dhe kodimi

Nderkohe qe kerkesat per te dhenat e rindertuara mund te diktojne nese do te perdorim kompresim me humbje apo pa humbje, skema egzakte e kompresimit varet nga shume faktore te tjere. Disa nga faktoret me kryesore jane karakteristikat e te dhenave qe do te kompresojme. Nje
Faqe 29 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

teknike kompresimi e cila eshte e mire per nje tip te dhenash mund te rezujtoje shume e pa parshtatshme per tipe te tjera te dhenash. Ne rastin e kompresimit secili aplikim paraqet nje numer te ndryshem sfidash. Zhvillimi i algoritmeve te kompresimit per pjesen me te madhe te te dhenave zakonisht ndahet ne dy faza. Faza e pare quhet faza e modelimit. Ne kete faze ne perpiqemi te njohin apo te mbledhim njohuri rreth teprices se informacioni e cila egziston ne te dhenat origjinale dhe perpiqemi te pershkruajme kete teprice ne formen e nje modeli te caktuar. Faza e dyte quhet faza e kodimit. Ne kete faze modeli qe kemi zgjedhur dhe diferenca e te dhenave me modelin kodohen, zakonisht me ane te nje alfabeti binar. Diferences midis modelit dhe te dhanave shpesh i referohemi si mbetje apo teprice. Ne shembujt e meposhtem do te shohim tre menyra te ndryshme te modelimit te te dhenave dhe me pas keto modele do te perdoren per kompresim.
Shembull 1.2.1

Marim ne konsiderate sekuence e numrave x1,x2,...x12 si me poshte: 9 11 11 11 14 13 15 17 16 17 20 21

Po te regjistrojme apo te transmetojme paraqitjen binare te ketyre numrave do te duhen 5 bite per secilin numer(kampion) dhe ne total kemi 60 bite. Po te shqyrtojme me kujdes te dhenat shohim se ato mund te modelohen sipas ekuacionit ŷn = n + 8 per n = 1,2,3... Per te pasur mundesi te perdorim kete model apo strukture le te shohim diferencen midis te dhenave orogjinale dhe modelit te mesiperm. Kjo diference (mbetja) eshte si me poshte: en = xn – ŷn 0 1 0 -1 1 -1 0 1 -1 -1 1 1

Shohim se kjo sekuence perbehet vetem nga tre numra -1, 0 dhe 1. Po te kodojme -1 me 00, 0 me 01 dhe 1 me 10 duhet te perdorim vetem 2 bite per te paraqitur gjithe sekuencen e mesiperme.Ne kete rast struktura e te dhenave ka nje rregull te caktuar. Pasi eshte percaktuar ky rregull ai mund te perdoret per te parashikuar secilen prej vlerave te dhena.Nje strukture e tille eshte vetem nje prej strukturave te shumta qe egzistojne ne te dhenat e ndryshme.
Shembull 1.2.2

Konsiderojme sekuencen e meposhteme te numrave: 27 28 29 28 26 27 29 28 30 32 34 36 38

Ne pamje te pare duket se kjo sekuence nuk ka ndonje rregullsi si ajo e Shembullit 1.2. Por shohim se cdo vlere eshte shume e afert me vleren paraardhese. Supozojme se per te bere regjistrimin apo transmetimin e saj marim vetem vleren e pare dhe me pas ne vend te seciles vlere, diferencen midis saj dhe vleres paraardhese. Sekuenca per transmetim do te jete: 27 1 1 -1 -2 1 2 -1 2 2 2 2 2

Edhe ne kete rast numri total i biteve eshte me i vogel. Pra perseri kemi arritur nje lloj kompresimi te te dhenave. Dekoduesi ne kete rast do te beje shumen e vleres se mare me ate paraardhese per te rindertuar sekuencen. Ne kete rast edhe pse koduesi dhe dekoduesi njohin
Faqe 30 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

modelin e perdorur perseri duhet qe te dergojme vleren e pare te sekuences bashke me vlerat e diferencave. Shpesh mund te hasen burime informacioni te cilet gjenerojne disa simbole me nje frekuence me te madhe se simbolet e tjere. Ne kete rast eshte me llogjike qe te perdoren kode me gjatesi te ndryshme per simole te ndryshem.
Shembull 1.2.3

Supozojme se kemi per te perpunuar sekuence e meposhteme:
abarayaranbarraybranbfarbfaarbfaaarbawxy

Shohim se sekuenca eshte e perbere prej 8 karaktereve te ndryshem. Per te paraqitur 8 simbole te ndryshem duhen 3 bite per cdo simbol dhe ne rast se secili prej simboleve ka te njejtin numer bitesh do te duhen 120 bite per te transmetuar sekuencen e dhene. Ne vend te perdorimit te kodit me 3 bite per secilin simbol le te perdorim kodin e meposhtem:
Simboli A N B F R W Y X Kodi 1 001 01100 0100 000 01101 0101 01100

Duke zvendesuar secilin simbol me kodin e ri shohim se numri total i biteve eshte me i vogel. Pra edhe ne kete rast kemi arritur ne nje kompresim te dhenash. Ne rastin e teksteve, pervec teprices statistike te simboleve kemi dhe nje tjeter teprice ne formen e fjaleve te cilat perseritem me shpesh. Kjo shfytezohet duke ndertuar nje liste me keto fjale e me pas duke i paraqitur ato me ane te indeksit te tyre ne listen e ndertuar. Kjo lloj skeme kompresimi quhet skeme e kompresimit me ane te fjalorit. Shpesh teprica e te dhenave behet me evidente duke mare ne shqyrtim jo nje simbol te vetem, por grupe te perbera prej dy apo me shume simbolesh. Nje menyre tjeter eshte ajo e ndarjes se te dhenave ne disa komponente te ndryshem. Me pas secili komponent shqyrtohet me vehte per te gjetur modelin me te pershtatshem. Rastet e permendura me siper jane disa prej menyrave per te aritur ne modelimin e te dhenave per kompresim. Theksojme se secila prej tyre con ne nje skeme te caktuar kompresimi. Nderkohe qe me rritjen e teknikave te kompresimit lind ne menyre te pashmangshme dhe nevoja per staandartizimin e tyre. Keto statndarte bejne te mundur qe produkte te prodhuesve te ndryshem te jene kompatibel midis tyre. Ne kete menyre ne mund te kompresojme te dhenat me ane te produkteve te nje prodhuesi dhe te kemi mundesi te bejme rindertimin e tyre me ane te prdukteve te nje prodhuesi tjeter. Per kete arsye edhe ne kete fushe egzistojne nje numer i madh standartesh nderkombetare per aplikime te ndryshme, standarte keto tashme te aprovuara dhe pranuara gjeresisht.
2 – Kompresimi pa humbje

Sic kemi thene me larte skemat e komresimit ndahen ne dy grupe te medhe: skema te kompresimit pa humbje te informacionit dhe ne skema te kompresimit me humbje te informacionit.
Faqe 31 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ne kete material do te fokusohemi me shume ne skemat e kompresimit pa humbje te informacionit. Keto lloj skemash bejne kompresimine te dhenave duke mos lejuar humbje te informacionit origjinal. Ne kete menyre te dhenat origjinale mund te rindertohen ne menyre identike prej te dhenave te kompresuara. Ne keto lloj skemash kompresimi, disa prej ideve te qe kemi pare ne pjesen e teorise se informacionit, perbejne bazen e ndertimit te algoritmeve te kompresimit. Per kete arsye le te rikujtojme disa prej ketyre koncepteve. Kemi thene se per nje burim informacioni i cili emeton simbolet S1, S2, .. Sn me propabilitete p1, p2, ..pn mund te gjejme:
-

Sasine e informacionit per simbolin k

i(Sk) = -log2 pk bit

Ne rast se burimi nuk emeton simbole me vete por N mesazhe me gjatesi m te ndertuara nga bashkesia prej n simbolesh S1, S2, .. Sn eshte e mundur te gjejme: Sasine mesatare te informacionit per simbol (entropine) duke konsideruar simbolet jo ekuiprobabel midis tyre H k =n k =n 1 H = ∑ p k log 2 = - ∑ pk log2 pk bit k =1 k =1 pk - Sasine mesatare te informacionit per simbol per sekuenca shume te gjata mesazhesh duke konsideruar simbolet jo ekuiprobabel dhe te korreluar midis tyre HS (entropine e burimit)

HS = lim IM bit m →∞ m Koncepti kryesor ne kete rast eshte kuptimi fizik i entropise. Entropia ne kete rast eshte numri mesatar (minimal) i biteve qe duhen per te koduar daljen e burimit. Me e mira qe mund te arihet me ane te skemave te kompresimit pa humbje te informacionit eshte te kodohet dalja e burimit me nje numer mesatar bitesh te njejte me entropine e tij. Ne pergjithesi per burimet reale fizike njohja e entropise eshte e pamundur. Ajo cka mund te behet eshte nje parashikim mbi kete entropi. Per te bere kete parashikim duhet te mbajme parasysh strukturen e sekuencave te ndyshme te burimit. Le te shqyrtojme sekuencen e meposhteme te numrave: 1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10 Duke gjeteur propabilitetet e secilit prej simboleve kemi: 1 = 0.0625 16 2 = 0.125 P2 = P3 = P4 = P5 = P8 = P9 = 16 Po te llogarisim entropine ne kete rast do te kemi: P1 = P6 = P7 = P10 = H = - ∑ pk log2 pk = 3.25 bit
k =1 k =16

Kjo do te thote se skema me e mire e kodimit qe ne mud te gjejme do te perdori 3.25 bite/simbol. Por po te marim parasysh nje fare korelacioni midis simboleve te ndryshem dhe heqim kete korelacion duke mare diferencen midis elementeve te njepasnjeshem arijme ne sekuencen: 111-1111-111111-111 Kjo sekuence eshte e perbere vetem nga dy simbole me propabilitete P1 = 3 = 0.1875 16
Faqe 32 / 66

13 = 0.8125 dhe P-1= 16

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ne kete rast entropie rezulton ne 0.7 bit/simbol. Eshte e qarte se njohja vetem e kesaj sekuence nuk eshte e mjaftueshme per merresin, per te ndertuar te dhenat origjinale. Ai duhet te njohe dhe procesin se si kjo sekuence eshte ndertuar prej te dhenave fillestare. Pra shihet se duke pastur nje njohje per te dhenat fillestare eshte e mundur te gjejme nje menyre per “zvogelimin e entropise”. Ne te vertete ajo qe ndodh nuk eshte “zvogelimin e entropise” se burimit pasi entropia e burimit eshte matja e sasise se informacionit qe burimi emeton, e per sa kohe qe kemi ruajtje te informacionit kjo vlere mbetet e njejte. Ne te veretete ndyshon vlersimi yne per entropine. Ose me fjale te tjera kemi kodim te informacionit te burimit ne nje menyre te tille qe entropia e “burimit” te ri te jete me e vogel. Duke pare formulen e entropise se burimit shohim se eshte me mire qe per percaktimin e saj te marim ne shqyrtim sekuenca perhere e me te medha mesazhesh. Le te shqyrtojme sekuencen e meposhteme: 12123333123333123312 Po te shqyrtojne secilin simbol me vete kemi P1 = P2 = 0.25 dhe P3 = 0.5. Entropia ne kete rast eshte 1.5 bite/simbol. Atehere per te paraqitur sekuencen e mesiperme do te na duhen 30 simbole. Le te shqyrtojme te njejten sekuence duke mare grupe prej dy simbolesh. Ne kete rast kemi nje burim te ri vetem me dy simbole (12) dhe (33) me propabilitete P12 = P33 = 0.5 dhe me nje entropi 1 bit/simbol. Ne kete rast do te na duhen vetem 10 bite per te paraqitur sekuencen e mesiperme. Teorikisht mund te nxjerim informacion per strukturen e te dhenave duke mare ne shqyrtim grupe me sa me shume simbole, por praktikisht kjo menyre ka limitet e saj. Zakonisht perpiqemi te zgjedhim nje model sa me te sakte per burimin e te dhenave dhe me pas bejme kodimin e burimit sipas modelit te zgjedhur.
2.1 – Modelet

Sic pame edhe me lart zgjedhja e nje modeli te mire per te dhenat eshte shume e dobishme ne vleresimin e entropise se burimit. Eshte e qarte se modelet e mira per nje burim te caktuar cojne ne nje algoritem kompresimi me eficent. Shpesh ne vend qe te zhvillojme teknika te cilat manipulojne te dhenat duke perdorur operacione matematike, ne perpiqemi te gjejme nje model matematik per te dhenat. Per kete arsye perdoren rruge te ndryshme.
2.1.1– Modelet Fizike

Ne rastet kur kemi njohje rreth aspekteve fizike te procesit i cili gjeneron te dhenat mund te perdorim kete informacion per te ndertuar modelin. P.sh. ne aplikimet qe kane lidhje me gjuhen e folur, njohja e aspekteve fizike te krijimit te tingujve mund te perdoret per krijimin e modelit matematik te kampioneve te procesit te te folurit. Biseda e kampionuar me vone kodohet sipas modelit te ndertuar. Modele te ndryshme per matjet telemetrike mund te ndertohen duke njohur proceset ne te cilat keto perdoren. P.sh. ne rastin e matjeve telemetrike per ngarkesen elektrike te pedorur nga nje zone e caktuar, njohja e zakoneve te popullsise se kesaj zone mund te perdoret per te percaktuar pikun e ngarkeses elektrike te kesaj zone. Me pas ne vend te kodimit te vlerave te matura mund te zgjedhim te kodojme vetem diferencat e vlerave midis matjes aktuale dhe asaj te meparshme. Ne pergjithesi karakteristikat fizike te proceseve qe gjenerojne te gjenat jane shume te nderlikuara per krijimin e nje modeli te caktuar. Ne raste te tilla krijimi i modelit behet duke u bazuar ne te vrojtime empirike te statistikes se te dhenave.

Faqe 33 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

2.1.2– Modelet Propabilistike

Modeli me i thjeshte statistikor per nje burim eshte rasti kur pranojme se cdo simbol i gjeneruar prej burimit eshte i pavarur prej simboleve te tjera dhe me nje propabilitet te njejte. Ky eshte rasti kur nuk dihet asnje gje per burimin e informacionit. Hapi tjeter ne nderlikimin e modelit dhe afrimin e tij me realitetin eshte kur vazhdojme te konsiderojme simbolet perseri te pavarura, por tashme jo me te njejtin propabilitet, por me propabilitetet ne te cilat ata shfaqen. P.sh. per nje burim i cili gjeneron karaktere prej alfabetit A = { a1, a2, ..., aM} mund te ndertojme modelin propabilistik P = {pa1, pa2, ... paM}. Ne kete rast mund te llogarisim entropine dhe me ane te ketij modeli mund te ndertojme kode eficente per paraqitjen e simboleve te alfabetit A. Eshte e qarte qe keta kode jane eficente per sa kohe percaktimi matematik i modelit eshte ne perputhje me realitetin. Ne rastin e burimeve reale te informacionit pavaresia e simboleve, apo korrelimi midis tyre eshte dicka qe nuk mund te injorohet. Ne keto raste per te gjetur nje skeme kompresimi eficente duhet te krijojme nje model i cili mban parasysh edhe vartesine e simboleve te ndryshem.
2.1.3– Modelet e Markovit

Nje nga menyrat me te perhapura per paraqitjen e vartesise se te dhenave eshte perdorimi i modeleve te Markovit. Per modelet e perdorura ne kompresimin pa humbje do te perdorim nje tip te vecante te procesit te Markovit i cili njihet si procesi diskret ne kohe. Per nje sekuence {xn}, me te dhena nga nje vrojtim i caktuar themi se kjo sekuence eshte ne perputhje me rendin k te modelit te Markovit n.q.s. permbushet barazimi i meposhtem: P(xn/xn-1,xn-2,...,xn-k) = P(xn/xn-1,xn-2,...,xn-k,...) Pra njohja e k simboleve te fundit eshte e njejte me njohjen e gjithe historise se procesit. Vlerat e mara ne shqyrtim {xn-1,xn-2,...,xn-k} quhen edhe gjendje te sistemit. Ne rast se madhesia e alfabetit eshte l atehere numri i gjendjeve eshte lk. Modeli me i perdorshem i Markovit eshte modeli i rendit te pare per te clin kemi: P(xn/xn-1) = P(xn/xn-1,xn-2,xn-3,...) Sic shihet dy ekuacionet e mesiperme ne kete model japin pikerisht korrelimin midis simboleve, pavaresisht se nuk japin ndonje ide te sakte per tipin e korrelimit. Le te shohim se si mund te perdoret nje model i tille ne rastin e nje imazhi bardhe e zi. Ky lloj imazhi perbehet nga vetem dy piksela te bardhe dhe te zi. Shfaqja e nje pikseli te bardhe ne observimin pasardhes varet ne nje fare mase edhe nga fakti nese pikseli korent eshte i bardhe apo i zi. Ne keto kushte procesin e shfaqjes se nje pikseli mund ta modelojme sipas nje procesi Markovi diskret ne kohe. Percaktojme dy gjendje Sw per rastin kur pikseli korent eshte i bardhe dhe Sb per rastin kur pikseli korent eshte i zi. Percaktojme propabilitetet P(w/b) si propabilitet te kalimit nga nje piksel i bardhe ne nje piksel te zi dhe P(b/w) per rastin e anasjellte. Po keshtu percaktojme dhe propabilitetet P(Sw) dhe P(Sb) te qendrimit ne secilen prej dy gjendjeve. Procesi i Markovt per kete rast mund te paraqitet nga diagrama e gjendjeve si ne Figuren 2.1. Entopia e nje procesi te fundem me Si gjendje eshte vlera mesatare e entropive ne secilen gjendje. H=

∑ P(S ) H (S )
k =1 i i

M

Per rastin e nje imazhi bardhe e zi kemi: H(Sw) = -P(b/w)log2P(b/w) – P(w/w)log2P(w/w)
Faqe 34 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ku P(w/w) = 1- P(b/w) Entropia H(Sb) llogaritet ne te njejtem menyre.

Shembull 2.1.3.1

Per te pare efektin e modelimit te mesiperm le te llogarisim entropine e nje imazhi binar fillimisht duke perdorur modelin propabilistik te tij e me pas duke perdorur modelin e Markovit sipas Figures 2.1. Supozojme se propabilitetet e dhena me siper jane si me poshte: 1 30 P(Sw) = P(Sb)= 31 31 P(w/w) = 0.99 P(b/w) = 0.01 P(b/b) = 0.7 P(w/b) = 0.3 Duke perdorur modelin propabilistik per kete rast kemi: 30 1 1 30 log2 = 0.206 bit log2 31 31 31 31 Ne rast se perdorimi modelin e Markovit kemi: H=H(Sb) = -0.3log20.3 – 0.7log20.7 = 0.881 bit H(Sw) = -0.01log20.01 – 0.99log20.99 = 0.081 bit 1 30 0.881 = 0.107 bit 0.081 + 31 31 Shohim se entopia po te bejme nje modelimin e mesiperm eshte gati sa gjysma e modelit te pare. Modelet e Markovit ne kompresimin e teksteve. Modeli i Markovit eshte shume i perdorshem ne kompresimin e teksteve ku propabiliteti i nje germe eshte shume i varur nga propabiliteti i germes apo germave te meparshme. Perdorimi i ketij modeli per gjihen angleze shfaqet qe ne punimet origjinale te Shannonit. Marim ne konsiderate fjalen preceding. Supozojme se kemi procesuar precedin dhe jemi duke koduar germen g. Po qe se nuk mbajme parasysh kontektstin e fjales dhe trajtojme secilen germe me vete atehere propabiliteti i shfaqjes se germes g eshte i vogel. Po qe se perdorim modelin e Markovit te rendit te pare (pra marim parasysh nje germe te meparshme) atehere propabiliteti i shfaqjes se germes g rritet. N.q.s vazhdojme te rrisim rendin e modelit (pra marim ne konsiderate in, din) atehere ky propabilitet rritet perhere e me shume. Ne kete rast propabiliteti i germave te alfabetit behet me i shperndare dhe entropia e tij me e vogel. Sa me i madh te jete rendi i modelit aq me mire ai parashikon germat vijuese. Por regjistrimi i propabiliteteve te ketyre karaktereve te mara se bashku rritet ne menyre eksponenciale me rritjen e numrit te karaktereve qe meren njekohesisht ne shqyrtim. Per me teper mund te kemi dhe H=
Faqe 35 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

kombinime te tyre te cilat cojne ne stringa qe praktikisht eshte e pamundur te shfaqen. Po te kemi nje model te rendit te katert (pra kater karaktere te mara se bashku) per nje alfabet me madhesi 95 numri i pergjithshem i elementeve qe duhet te shqyrtojme arin ne 954 – gati 81 milion. Ky problem mund te thellohet me teper nga fakti qe dalja e nje burimi te modeluar ne kete menyre mund te paraqesi element te cilet perseriten shpesh. Per kete arsye algoritmet e kompresimit te teksteve tentojne drejt nje strategjie te adaptueshme ne te cilen propabilitetet e simboleve ne stringat e ndryshme ndryshojne ne momentin qe keto simbole shfaqen. Kjo do te thote qe egziston mundesia e pasjes se simboleve te cilat deri ne momentin e procesimit nuk jane shfaqur ne asnje prej stringave te shqyrtuara (ky problem njihet si problemi i frekuences zero). Ne kete rast duhet te perdoret nje kod special i cili tregon se simboli pas tij nuk eshte hasur me pare ne stringen ne shqyrtim i shoqeruar ky dhe me kodin e vet simbolit. Kjo con ne nje rritje te gjatesise se kodit per simbolet e hasura per here te pare. Ne rastet kur kjo situate eshte e rralle mbingarkesa e per shkak te ketij problemi eshte e neglizhueshme. Por per rastet kur rendi i modelit te perdorur eshte i madh kjo situate haset me shpesh. Ne keto raste perdoret nje tjeter algoritem i quajtur algoritmi ppm (parashikim me ngjashmeri te pjesshme) te cilin do ta shqyrtojme me vone.
2.1.4– Modeli i burimit te perbere

Ne shume tipe aplikimesh nuk eshte e mundur te perdoret vetem nje lloj modeli per te pershkruar burimin e informacionit. Ne keto raste percaktojme nje burim te perbere i cili shihet si kompozim i disa modeleve me te thjeshta. Ne kete rast vetem nje burim eshte aktiv ne nje moment te caktuar kohe. Pra nje burim i tille eshte i perbere nga shume burime elementare Si secili prej te cileve pershkruhet prej modelit te vet Mi dhe propabiliteteve te veta Pi.
2.2.– Kodimi

Procesi i kodimin (ne kete pjese te materialit) eshte procesi i caktimit te nje sekuence binare per elementet e alfabetit te dhene. Bashkesine e ketyre sekuencave binare do ta quajme kod, ndersa elementet e vecante te kesaj bashkesie fjalekode. Nderkohe qe me alfabet do te kuptojme nje bashkesi simbolesh te quajtura germa. P.sh. alfabeti qe eshte perdorur per shkrimin e ketij materiali perbehet nga 52 germa dhe nga nje numer shenjash pikesimi. Sipas kesaj terminologjie nje presje eshte perseri nje germe. Ne rast se per kodimin e tyre do te perdorim kodin ASCII germes A i korespondon fjalekodi 100011, germes “,” fjalekodi 0011010. Ne rast se kodi perdor te njejtin numet bitesh per paraqitjen e secilit simbol ky quhet kod me gjatesi fikse. Ne rast se duam te zvogelojme numrin e biteve per te paraqitur nje mesash te caktuar eshte e qarte qe duhet te perdorim numer te ndryshem bitesh per paraqitjen e simboleve te ndryshem. Ne rast se perdorim me pak bite per simbolet qe shfaqe me shpesh, mesatarish kemi perdorur me pak bite per simbol. Numri mesatar i biteve per simbol quhet edhe norme apo vlere e kodit.
2.2.1.– Kodet e dedektueshem ne menyre unike

Gjatesia mesatare e nje kodi nuk eshte e vetmja pike e rendesishme per ndertimin e nje kodi te mire. Supozojme se alfabeti yne perbehet nga kater germa a1, a2, a3 dhe a4 dhe propabilitetet e tyre jane Pa1 = 0.5, Pa2 = 0.25, Pa3 = Pa4 = 0.125. Entropia e burimit me kete alfabet eshte 1.75 bit/simbol. Le te shqyrtojme disa kodet ketij burimi te cilat jane paraqitur ne tabelen me poshte. Ne tabele kemi dhene edhe gjatesine mesatare te secilit kod te llogaritur si:

mc =

∑m
k =1

k =n

k

pk

ku mk eshte gjatesie e cdo fjalekodi dhe pk propabiliteti i tij.

Faqe 36 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Germa a1 a2 a3 a4 Gjatesia

Propabiliteti 0.5 0.25 0.125 0.125

Kodi1 0 0 1 10 1.125

Kodi2 0 1 00 11 1.25

Kodi3 0 10 110 111 1.75

Kodi4 0 01 011 0111 1.875

Duke u bazuar vetem ne gjatesine mesatare duket se kodi me i mire eshte Kodi1. Por per te qene i vlefshem nje kod duhet te kete vetine te transferoje informacionin ne menyre te pangaterueshme. Duket qarte qe Kodi1 nuk e gezon kete veti sepse germave a1 dhe a2 u vendos ne korespondence te njejtin simbol binar 0. Ne rastin e marrjes se nje 0 nuk mund te percaktojme nese eshte transmetuar a1 apo a2. Pra pervec gjatesise mesatare nje kod i mire duhet qe secilit simbol ti veri ne korespondence nje fjalekodi unike. Ne pamje te pare duket se Kodi2 e ploteson kete kusht. Pra secilit simbol i eshte caktuar nje fjalekodi unike. Por le te kodojme sipas ketij kodi sekuencen a2 a1 a1. Sekuenca e koduar ne kete rast do te jete stringa binare 100. Ne momentin qe kjo sekuence binare mberin ne mares mund te dekodohet si a2 a1 a1, por njekohesisht po kjo sekuence mund te dekodohet edhe si a2 a3. Pra perdorimi i ketij kodi ben qe sekuenca e mare te dekodohet ne menyra te ndryshme. Pra duhet qe kodi te dekodohet ne menyre unike. Per nje sekuence te caktuar fjalekodesh duhet te arijme ne nje sekuence simbolesh dhe vetem ne nje. Per Kodin3 verejme se tre fjalekodet e para perfundojne me 0. Nderkohe qe fjalekodi i fundit perbehet nga nje sekuence prej tre 1 dhe nuk mund te ngaterohet me tre te tjeret. Ne kete rast regulli i dekodimit eshte i thjeshte. Regjistrohen bitet deri sa te marim nje 0 ose nje sekuence me tre 1. Nu ka ambiguitet ne kete rregull dhe mund te themi se kodi eshte i dekodueshem ne menyre unike. Per Kodin4 kemi nje rregull edhe me te thjeshte. Cdo fjalekod fillon me 0. Pra mjafton te regjistrojme bitet deri ne momentin e mberitjes se nje 0. Biti perpara bitit 0 te mberitur eshte biti i fundit i nje fjalekodi. Kodi3 dhe Kodi4 kane edhe nje tjeter ndryshim midi tyre. Per rastin e pare dekoduesi kupton ne moment mbarimin e nje fjalekodi, ndrrkohe qe ne rastin e dyte duhet te prese deri ne fillimin e fjalekodit tjeter. Per kete arsye Kodi3 quhet kod i menjehershem. Edhe pse me siper kemi perdorur kode me gjatesi te vogel dhe per kater simbole, vihet re se nuk eshte menjehere e kuptueshme nese nje kod eshte i dekodueshem ne menyre unike apo jo. Kjo gje behet edhe me e veshtire ne rastin e kodeve me gjatesi me te medha. Per kete arsye duhet gjetur nje menyre sistematike per testimin e kesaj vetie. Per dy kode a dhe b me gjatesi perkatesishte k dhe n ku k < n ne rast se k bitet e para te kodit b jane identike me kodin a themi se kodi a eshte prefix i kodit b. Bitet e mbetura te kodit b quhen prapashtese. P.sh per a = 010 dhe b = 01011 a eshte prefix i b dhe prapashtesa eshte 11. Per te testuar nese nje kod eshte i dekodueshem ne menyre unike perdorim algoritmin e meposhtem. Ndertojme nje liste me te gjithe fjalekodet. Marim ne shqyrtim te gjitha ciftet e fjalekodeve per te pare nese ndojeri prej tyre eshte prefiks i tjetrit. Ne rast se gjendet nje i tille shtojme prapashtesen ne listen e ndertuar per sa kohe kjo nuk eshte shtuar me pare. Perserisim te njejten procedure me listen e re te krijuar. Ky proces perseritet deri ne plotesimin e njeres prej situatave te meposhteme:
1- Arijme ne nje prapashtese qe eshte fjalekod. 2- Nuk kemi me prapashtesa unike. 3Ne rast se ndodhemi ne situaten e pare do te thote se kodi nuk eshte i dekodueshem ne menyre unike. Ne rast se jemi ne situaten e dyte kemi nje kod te dekodueshem ne menyre unike.

Faqe 37 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Shembull 2.2.1.1

Konsiderojme kodin e meposhtem:
Simboli a1 a2 a2 Kodi 0 01 11

Lista e pare eshte { 0, 01, 11}. Shohim se 0 eshte prefiks i 01. Prapashtesa ne kete rast eshte 1. Kjo nuk ndodhet ne liste prandaj ndertojme listen e dyte si me poshte: {0, 01, 11, 1}. Perseri 0 eshte prefiks i 01 me prapashtese 1, por kjo prapashtese tashme ndodhet ne liste. Po keshtu 1 eshte prefiks i 11 me prapashtese 1 e cila perseri ndodhet ne liste. Atehere nuk kemi me cifte te cilat mund te gjenerojne nje prapashtese te re. Per kete arsye themi se kodi eshte i dekodueshem ne menyre unike.
Shembull 2.2.1.2

Konsiderojme kodin e meposhtem:
Simboli a1 a2 a2 Kodi

0 01 10

Lista e pare eshte { 0, 01, 10}. Shohim se 0 eshte prefiks i 01. Prapashtesa ne kete rast eshte 1. Kjo nuk ndodhet ne liste prandaj ndertojme listen e dyte si me poshte: {0, 01, 10, 1}. Perseri 0 eshte prefiks i 01 me prapashtese 1 por kjo tashme ndodhet ne liste. Po keshtu 1 eshte prefiks i 10 me prapashtese 0 e cila eshte fjalekodi per simbolin a1. Per kete arsye themi se kodi nuk eshte i dekodueshem ne menyre unike.
2.2.2.– Kodet prefikse

Nga dy shembujt e mesiperm mund te kuptohet qarte se nje tip kodi per te cilin nuk ka mundesi qe prapashtesa te jete perseri nje fjalekod eshte ai tip per te cilin asnje fjalekod nuk eshte prefiks i nje fjalekodi tjeter. Ne kete rast bashkesia e prapashtesave do te ishte nje bashkesi boshe. Nje kod i tille ku asnje fjalekod nuk eshte prefiks i nje fjalekodi tjeter quhet kod prefix. Nje menyre e thjeshte per te pare nese nje kod gezon kete veti eshte duke ndertuar pemen binare te kodit. Duke u nisur nga rrenja e pemes vizatojme dy deget e saj. Njera qe i korespondon bitit 1 dhe tjetra bitit 0. Me poshte jepen pemet binare per Kodet 2, 3 dhe 4 te paragrafit 2.2.1

Faqe 38 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Pa mare parasysh nyjen rrenje shohim se pemet e kodit paraqesin dy tipe te tjera nyjesh, nyje nga te cilat dalin dege te tjera dhe nyje te cilat nuk dalin me dege. Nyjet e para quhen nyje te brendeshme ndersa te dytat quhen nyje te jashteme. Ne kodet prefiks fjalekodet jane gjithmone ne nyjet e jashteme. Nje kod qe nuk eshte kod prefiks ka fjalekode edhe ne nyjet e brendshme sic eshte rasti i Kodit 4 ne paragrafin 2.2.1 Duke mare ne shqyrtim kete klase kodesh shtrohet pyetja nese egzistojne kode te tjera te cilat nuk jan kode prefiks, por gezojne vetine e dekodimit unik dhe jane me te shkurter ne gjatesi se kodet prefiks. Fatmiresisht pergjigja eshte jo. Per nje kod jo prefiks dhe unik te dekodueshem gjithmone gjendet nje kod prefiks me te njejten gjatesi. Ne rast se kodi C me N fjalekode l1, l2, ..., lN eshte i dekodueshem ne menyre unike atehere ai permbush mosbarazimin: K(C) =

∑2
i =1

N

−li

≤1

Ky mosbarazim njihet si mosbarazimi Kraft-McMillan. Nderkohe vertetohet se nese nje seri numrash te plote l1, l2, ..., lN plotesojne mosbarazimin e mesiper atehere mund te gjendet nje kod prefiks me gjatesi te fjalekodeve l1, l2, ..., lN. Pra sic shihet duke shqyrtuar vetem keto lloj kodesh nuk egziston mundesia neglizhimit te ndonje lloj tjeter kodi i cili mund te kete gjatesi me te vogel.
3.1 – Kodimi Huffman

Ne kete kapitull do te peshkruajme nje nga alogoritmet me te perhapura te kompresimit e njohur gjeresishte si teknika e kodimin Huffman. Fillimisht do te pershkruajme procedurat qe perdoren per ndertimin e kodeve Huffman ne rstin kur propabilitetet e simboleve qe emeton burimi i informacionit jane te njhura. Me pas do te shohim nje menyre tjeter kodimi kur mungojne te dhenat statistikore per burimin. Do te permendim edhe disa teknika te tjera kodimi te cilat jane shume te peraferta me kodimin Huffman. Ne fund te kapitullit do te permendim disa aplikime te ndryshme ku kjo teknike perdoret me sukses. Kodet te cilat gjenerohen me ane te kesaj teknike apo procedure quhen shkurt kodet Huffman.
3.2 – Algoritmi i Kodimi Huffman

Kodet Huffman jane kode prefiks dhe jane kodet optimal per nje model propabilistik (kur kemi ne dispozicion propabilitetet e simboleve). Procedura Huffman bazohet ne dy vrojtime te rendesishme per kodet prefiks optimal. 1. Ne nje kod optimal, simbolet te cilet kane frekuencen e shfaqjes me te madhe do te kene nje fjalekodi me te shkurter se simbolet me frekuence shfaqjeje me te vogel. 2. Ne nje kod optimal dy simbolet me frekuencen e shfaqjes me te vogel kane fjalekod me te njejten gjatesi. Procedura Hafman fitohet duke u shtuar nje kerkese tjeter dy vrojtimeve te mesiperme. Kerkesa eshte qe dy fjalekodet e simboleve me propabilitetin me te vogel te ndryshojne nga njeri tjetri vetem ne bitin e fundit. Pra po qe se γ dhe δ jane dy simbolet me propabilitetin me te vogel dhe fjalekodi per γ eshte m*0, fjalekodi per δ duhet te jete m*1. Ne kete rast m eshte nje string e perbere nga 1 dhe 0 dhe operatori * tregon vargezim (bashkim). Kjo kerkese nuk bie ngesh me dy vrojtimet e mesiperme dhe con ne nje procedure kodimi te thjeshte.
Shembull 3.2.1

Te ndertohet kodi Huffman per nje burim i cili gjeneron germa prej alfabetit A = {a1, a2, a3, a4, a5} me propabilitete Pa1 = Pa3 = 0.2, Pa2 = 0.4 dhe Pa4 = Pa5=0.1.
Faqe 39 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Per te ndrtuar kodin Huffman fillimisht rendisim simbolet sipas rendit zvogelues te propabiliteteve si ne tabelen me poshte. Ne tabele C(ai) tregon fjalekodin per simbolin ai.
Simoli a2 a1 a3 a4 a5 Propabiliteti 0.4 0.2 0.2 0.1 0.1 Fjalekodi C(a2) C(a1) C(a3) C(a4) C(a5)

Dy simbolet me propabilitetin me te vogel jane a4 dhe a5. Atehere caktojme fjalekodet e tyre si me poshte: C(a4) = α1*0 C(a5) = α1*1 Ku α1 eshte nje stringe binare. Percaktojme nje alfabet te ri A’ me kater gema a1, a2, a3, a4’, ku a4’ eshte i perbere nga a4, a5 me propabilitet Pa4’ = Pa4 + Pa5 = 0.2. Rendisim perseri simbolet si ne tabelen me poshte:
Simoli a2 a1 a3 a4’ Propabiliteti 0.4 0.2 0.2 0.2 Fjalekodi C(a2) C(a1) C(a3) α1

Ne kete tabele a3 dhe a4’ jane dy simbolet me propabilitetin me te vogel. Caktojme fjalekodet e tyre si: C(a3) = α2*0 C(a4’) = α2*1 Duke qene se C(a4’) = α1 kemi qe α1 = α2*1 Prej nga: C(a4) = α2*10 C(a5) = α2*11 Ne kete faze percaktojme perseri nje alfabet te ri me tre germa a1, a2, a3’, ku a3’ perbehet nga a3 dhe a4’ me propabilitet Pa3’ = Pa4’ + Pa3 = 0.4. Ndertojme perseri tabelen si me poshte:
Simoli a2 a3’ a1 Propabiliteti 0.4 0.4 0.2 Fjalekodi C(a2) α2 C(a1)

Tashme propabilitete me te vogla jane per a1 dhe a3’. Ndersa per fjalekodet kemi: C(a3’) = α3*0 C(a1) = α3*1 Por C(a3’) = α2, pra α2 = α3*0. Atehere kemi:
Faqe 40 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

C(a3) = α3*00 C(a4) = α3*010 C(a5) = α3*011 Me te njejten llogjike si ne hapat e mesiperme fitojme tabelen tjeter:
Simoli a3’’ a2 Propabiliteti 0.6 0.4 Fjalekodi α3 C(a2)

Kemi veten dy simbole dhe caktimi i fjalekodeve eshte i thjeshte. C(a3’’) = 0 C(a2) = 1 Kjo do te thote qe α3 = 0 e per pasoje kemi: C(a1) = 01 C(a3) = 000 C(a4) = 0010 C(a5) = 0011 Pra si perfundim kemi kodin Huffman si ne tabelen me poshte: Gjatesia mesatare e ketij kodi eshte: mc = 0.4·1+0.2·2+0.2·3+0.1·4+0.1·4=2.2 bit/simbol
Simoli a2 a1 a3 a4 a5 Propabiliteti 0.4 0.2 0.2 0.1 0.1 Fjalekodi 1 01 000 0010 0011

Procedura e mesiperme mund te permblidhet si vijon: 1. Simbolet renditen ne nje kolone sipas rendit zvogelues te propabiliteteve. 2. Dy simbolet me propabilitetin me te vogel bashkohen me njeri tjetrin. Njerit i vendosim ne korespondence shifren binare 0 tjetrit shifren binare 1. 3. Propabilitetet e tyre mblidhen dhe rezultati vendoset ne nje kolone te re duke ruajtur rendin zvogelues te tyre. 4. Perseriten hapat 2 dhe 3 deri sa te ngelen dy simbole me shume te propabiliteteve 1. 5. Fjalekodet perfitohen duke ndertuar pemen e kodit e cila fillon nga nyja me propabilitet 1 deri sa te arrijme ne cdo simbol. Nje menyre per matjen e eficences se ketij lloj kodimi eshte gjetja e teprices se kodit. Ne kete rast teprica e llogaritur si diferenca midis entropise dhe gjatesise mesatare del 0.078 bit/simbol. Teprice e nje kodi del 0 ne rast se propabilitetet e simboleve jane fuqi negative te numrit dy. Ne shembullin e mesiperm shihet se gjatesia e fjalekodeve ndryshon nga nje ne kater. Shpesh, sic do te shikojme me poshte eshte e rendesishme qe kjo variance te jete minimale dhe kodi te kete perseri te njejten gjatesi mesatare.
3.2.1 – Kodimi Huffman me variance minimale

Duke bere renditjen e simboleve te mesiperme ne nje menyre ndryshe mund te gjendet nje tjeter kod Huffman. Ne renditje e pare kombinojme perseri a4 dhe a5 duke e vendosur rezultatin jo ne fund te kollones por me lart (perseri duke ruajtur renditjen e propabiliteteve). Duke vazhduar me te njejten llogjike deri ne fund te procedures do te perfitohen tabelat e meposhteme.
Faqe 41 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Renditja fillestare
Simoli a2 a1 a3 a4 a5 Propabiliteti 0.4 0.2 0.2 0.1 0.1 Fjalekodi C(a2) C(a1) C(a3) C(a4) C(a5)

Renditja e pare
Simoli a2 a4’ a1 a3 Propabiliteti 0.4 0.2 0.2 0.2 Fjalekodi C(a2) α1 C(a1) C(a3)

Renditja e dyte
Simoli a1’ a2 a4’ Propabiliteti 0.4 0.4 0.2 Fjalekodi a2 C(a2) α1

Renditja e trete
Simoli a2’ a1’ Propabiliteti 0.6 0.4 Fjalekodi a3 α2

Si perfundim kodi qe perfitohet eshte si me poshte:
Simoli a1 a2 a3 a4 a5 Propabiliteti 0.2 0.4 0.2 0.1 0.1 Fjalekodi 10 00 11 010 011

Edhe ne kete rast gjatesia mesatare e kodit eshte mc = 0.4·1+0.2·2+0.2·3+0.1·4+0.1·4=2.2 bit/simbol, e njejte kjo me kodin e pare. Por ne kete rast shohim se gjatesia minimale e kodit eshte dy dhe ajo maksimale eshte tre. Ne shume aplikime, pavaresishte nga perdorimi i kodeve me gjatesi variabel, shpejtesia e transmetimit eshte e fiksuar. P.sh. kur duam te transmetojme 10000 simbole/sec ne duhet te kemi nje kapacitet transmetimi 22000 bit/sec. Pra gjate nje sekonde kanali i transmetimit pret 22000 bite. Duke qene se shpejtesia e transmetimit te biteve leviz varion rreth kesaj vlere, dalja e burimit zakonisht furnizon nje buffer te dhenash. Kjo per te bere te mundur zvogelimin e ketyre variacioneve dhe per te furnizuar kanalin me nje shpejtesi konstante. Buferi ka nje madhesi kapacitet te fundem dhe sa me e madhe te jete varianca e kodit aq me i veshtire eshte implementimi i tij. Supozojme se burimi i mesiperm gjeneron simbolet a4 dhe a5 per disa sekonda. Po te perdorim kodin e pare kjo do te coj ne nje shpejtesi prej 40000 bite/sec. Pra per
Faqe 42 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

cdo sekonde duhet te regjistrojne ne buffer 18000 bite. Nderkohe me perdorimin e kodit te dyte kemi nje shpejtesi prej 30000 bitesh dhe duhet te regjistrojme ne bufer vetem 8000 bite per cdo sekonde. Nga ana tjeter po qe se burimi gjeneron simbolin a2 per disa sekonda kodi i pare do te prodhoje 10000 bite/sec. Ne kete rast kemi nje shperdorim te kanalit te transmetimit me rreth 12000 bite/sec. Ne rast se perdorim kodin e dyte ky deficit do te jete vetem prej 2000 bit/sec. Pra eshte e qarte se eshte shume me oportun perdorimi i kodeve me minimunin e variances se gjatesise. Per te aritur ne keta tipe kodesh duhet qe simbolet e kombinuara te vendosen ne kolonen e renditur gjithmone ne pozicionin me te larte te mundshem. Vertetohet se kodet Huffman jane kode optimale dhe se gjatesia mesatare e tyre kenaq mosbarazimin e meposhtem: H(S) ≤ mc < H(S) + 1
3.2.2 – Kodimi Huffman i rendeve te larta (i zgjeruar)

Ne aplikime ku perdoret kodi Huffman dhe madhesia e alfabetit eshte e madhe devijimi i gjatesise mesatare nga entropia ne pergjithesi eshte i vogel. Por ne rastet kur madhesia e alfabetit eshte e vogel dhe propabilitetet e germave te alfabetit jane te shperndara kodimi Huffman mund te jete jo shume efikas.
Shembull 3.2.2

Te ndertohet kodi Huffman per nje burim i cili gjeneron germa prej alfabetit A = {a1, a2, a3} me propabilitete Pa1 = 0.8, Pa2 = 0.02, Pa3 = 0.18. Entropia e ketij burimi eshte 0.816 bit/simbol Kodi Huffman per kete burim eshte si ne tabelen me poshte.
Simoli a1 a2 a3 Propabiliteti 0.8 0.02 0.18 Fjalekodi 0 11 10

Gjatesia mesatare e ketij kodi eshte 1.2 bit/simbol. Diferenca midis entropise dhe gjatesise mesatare eshte rreth 47% e entropise. Kjo do te thote se sipas ketij kodimi duhet 47% me teper simbole se minimumi i kerkuar. Ne keto raste mund te zvogelojme gjatesine mesatare duke shqurtuar jo nje simbol me vete por grupe prej dy apo me shume simbolesh. Numri i simboleve te mara ne nje grup quhet edhe rend i kodit. Supozojme se kemi nje burim S i cili emeton mesazhe prej alfabetit A = {a1, a2, ..., am}. Entropia e ketij burimi jepat nga: H(S) = - ∑ p(a i ) log2 p(a i )
i =1 m

bit

Dime se per kete burim mund te gjenerojme nje kod me gjatesi mesatare te tille qe: H(S) ≤ mc < H(S) + 1 Ne kete rast secili prej simboleve te alfabetit ka nje fjalekod te vetem (pra kemi mesazhe me gjatesi 1). Ndertojme fjalekodet jo me per nje simbol por per nje sekuence prej n simbolesh. Ne kete rast do te duheshin mn fjalekode. Kjo mund te behet duke i pare mn mesazhet si germa te nje alfabeti te zgjeruar si me poshte.

Faqe 43 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

A(n) = {a1 a1 a1 a1, a1 a1 a1 a2, ..., a1 a1 a1 am,..., am am am am} ku sekuencat a1 a1 a1 a1, a1 a1 a1 a2, etj perseriten n here. Ne kete rast kemi nje “burim te ri” S(n) i cili emeton mesazhe me gjatesi prej 1 “simboli”. Per “burimin” e ri gjatesia mesatare pas kodimit Huffman do te jete: H(S(n)) ≤ m(n)c < H(S(n)) + 1 ku m(n)c eshte gjatesia mesatare, ose numri i biteve per te koduar 1 simbol te “burimit te ri” ose n simbole te burimit origjinal. Pra gjatesia mesatare e kodit per “burimin origjinal” do te jete:
(n mc ) bit/simbol n Pra shihet qarte se gjate kodimit te burimit, po te marim n konsiderate blloqe simbolesh me nje gjatesi te caktuar, garantojme nje gjatesi mesatare te kodit te afert me entropine.

mc =

Shembull 3.2.3

Te ndertohet kodi Huffman per nje burim (shembulli 3.2.2) i cili gjeneron germa prej alfabetit A = {a1, a2, a3} me propabilitete Pa1 = 0.8, Pa2 = 0.02, Pa3 = 0.18, duke koduar dyshet e simboleve. Kodi Huffman per kete burim eshte si ne tabelen me poshte.
Simoli a1a1 a1a2 a1a3 a2a1 a2a2 a2a3 a3a1 a3a2 a3a3 Propabiliteti 0.64 0.016 0.144 0.016 0.0004 0.0036 0.1440 0.0036 0.0324 Fjalekodi 0 10101 11 101000 10100101 1010011 100 10100100 1011

Gjatesia mesatare e ketij kodi eshte 1.7228 bit/simbol. Por nje simbol i lfabetit te ri i korespondon dy simboleve te alfabetit origjinal. Pra do te kemi nje entropi 1.7228/2 = 0.8614 bit/simbol. Diferenca midis entropise dhe gjatesise mesatare ne kete rast eshte rreth 5.5% e entropise. Pra shohim se kemi zvogelim te teprices nga 47% ne rastin e pare ne 5.5% ne rastin e kodit te zgjeruar. Theksojme se per disa kombinime te caktuar propabilitetesh, per te aritur rezultate te kenaqshme duhet te marim ne konsiderate grupe me te medha simbolesh n. Nderkohe qe rritja e numrit te n con ne rritjen e madhesise se alfabetit ne menyre eksponenciale, duke bere perdorimin e kesaj metode jo shume praktike. Ne keto kushte perdoret me sukses nje tjeter teknike kodimi e quajtur kodimi aritmetik te cilen do ta shohim me me hollesi me vone.
3.3 – Kodimi adaptiv Huffman

Kodimi Huffman kerkon njohjen e propabiliteteve te simboleve te emetuara nga burimi. Ne rast se keto propabilitete nuk njihen qe ne fillim, ky kodim kryhet ne dy faza. Faza e pare eshte ajo e mbledhjes se te dhenave statistikore te burimit dhe faza e dyte eshte procedura e kodimit. Per ta kthyer kete kodim ne nje procedure te vetme perdoret kodimi adaptiv Huffman, per te cilin njohja paraprake e propabilitetit te simboleve nuk ka rendesi.

Faqe 44 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Per te pershkruar proceduren e kodimit adaptiv duhet te shtojme dy parametra te tjere ne pemen binare te kodit Haffman: peshen e seciles nyje, e cila shkruhet si numer brenda nyjes, dhe numrin e seciles nyje. Pesha e nyjeve ekstreme eshte numri i rasteve kur simboli qe i takon kesaj nyjeje eshte shfaqur. Pesha e seciles nyje te brendshme eshte shuma e peshave te degeve te saj. Numri i nyjeve eshte nje numer unik i cili i caktohet si nyjeve te brendshme ashtu eshte atyre ekstreme. Gjate ketij kodimi transmetuesi dhe marresi nuk njohin statistikat e sekuences qe do te transmetohet. Pema e kodit per transmetuesin dhe marresin konsiston ne nje nyje te vetme e cila i korespondon gjithe simboleve ende te pa transmetuara (NYT) dhe ka peshe 0. Gjate transmetimit, nyjet e simboleve te trasmetuara tashme shtohen ne peme dhe pema rikonfigurohet duke perdorur nje procedure update-i. Para fillimit te transmetimit transmetuesi dhe marresi caktojne nje kod fiks per secilin simbol. Nje kod i thjeshte ne kete rast eshte si me poshte: Po qe se alfabeti A = {a1, a2, a3, ... , am} ka madhesi m, zgjedhim dy numra e dhe r te tille qe: m = 2e+r dhe 0 ≤ r < 2e. Germa ak kodohet si paraqitja binare me (e+1) bit e vleres k-1, po qe se 1 ≤ k ≤ 2r; ne rast te kundert kodohet si paraqitja binare me e bit e vleres k–r-1. P.sh. per m=26 kemi e = 4 dhe r = 10. Atehere simboli a1 kodohet si 00000, simboli a2 si 00001 dhe simboli a22 si 1011. Kur nje symbol haset per here te pare, transmetohet nje kod per NYT i ndjekur nga kodi fiks per simbolin. Pas kesaj krijohet nje nye per kete symbol dhe ky hiqet nga lista NYT. Transmetuesi dhe marresi fillojne me te njejten structure peme. Pe keshtu dhe procedura e update-it eshte identike. Pra koduesi dhe dekoduesi mbeten te sinkronizuar gjate gjithe kohes.
3.3.1 – Procedura update

Kjo procedure kerkon qe nyjet e pemes binare te jene te numeruara. Per kete arsye numri me i madh i jepet nyjes rrenje dhe numri me i vogel nyjes NYT. Numrat prej nyjes NYT deri tek nyja rrenje vendosen ne rend rrites nga e majta ne te djathte dhe pastaj nga lart poshte. Nyjet me te njejten peshe quhen bllok. Ne Figuren 3.1 tregohet algoritmi i procesit te update-it. Me qellim qe dhenesi dhe marresi te punojne me te njejtin informacion, pema e kodit ne dhenes behet update pas cdo simboli qe kodohet. Ne marres kjo procedure ndiqet pas cdo simboli te dekoduar. Procedura funksionon si me poshte: Pas cdo simboli te koduar apo dekoduar, nyja ekstreme koresponduese me kete simbol shqyrtohet per te pare nese kjo nyje ka numrin me te madh ne bllokun e saj. Ne rast se numri i saj eshte me i vogel, kjo nderohet me nyjen qe ka numrin me te madh ne bllokun perlates, pervec rastit kur nyja me numrin me te madh eshte nyje burim e nyjes qe pe behet update. Pesha e nyjeve ekstreme rritet me nje njesi. Me rritjen e peshes se nyjeve kemi mbaruar update-in per nivelin ku jemi. Pas kesaj shqyrtojme nyjen burim te nyjes pesha e se ciles u rrit, per te pare nese ka numrin me te madh ne bllokun e saj. Ne rast se jo, kjo nyje nderohet me nyjen me numrin me te madh ne bllokun e vet me te njejtin perjashtim si ne rastin e pare. Perseri pesha e nyjes burim rritet me nje njesi. Vazhdohet ne kete menyre me nyjen burim te nje niveli me lart. Kjo procedure perseritet deri sa te arijme ne rrenjen e pemes. Ne rast se simboli kodohet apo dekodohet per here te pare, nje nyje e re ekstreme i caktohet simbolit dhe nje nyje e re NYT shtohet ne peme. Nyja ekstreme dhe nyja e re NYT jane dege te nje nyjeje te vjeter NYT. Pesha e nyjes se re ekstreme rritet me nje. Me qene nyja e vjeter NYT eshte burim nyjen e re pesha e saj rritet ne nje njesi dhe pas kesaj bejme update pemen deri ne rrenjen e saj.
Shembull 3.3.1 Procedura update

Supozojme se do te kodojme mesazhin aardvark te ndertuar nga alfabeti anglisht prej 26 germash te vogla. Pocedura tregohet ne Figuren 3.2. Fillojme me nyjen NYT. Numri total i

Faqe 45 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

nyjeve ne kete peme do te jete 2 * 26 – 1 = 51, pra fillojme numerimin prej numrit 51. Nyjes rrenje i vendosim ne korespondence kete numer.

Germa e pare per transmetim eshte a. Kjo nuk ndodhet ne peme prandaj transmetojme kodin 00000 per a dhe e shtojme germen a ne peme. Nga nyja NYT dalin dy nyje te reja. Nyja e re NYT dhe nyja ekstreme qe i korespondon simbolit a. Pesha e nyjes ekstreme per simbolin a duhet te jete me e madhe se pesha e nyjes se re NYT, prandaj caktojme peshen 50 per nyjen e a dhe 49 per nyjen e re NYT. Germa e dyte per transmetim eshte perseri a. Kjo ndodhet ne peme dhe ne kete rast transmetojme 1. Nyja qe i korespondon a ka numrin me te madh ne bllok (pa mare parasysh nyjen burim), pra nuk kemi nderim nyjesh. Germa tjeter eshte r. Kjo nuk ndodhet ne peme, pra transmetojme nje kod per yjen NYT qe ne kete rast eshte 0 dhe me pas indeksin e germes r 10001. Nga nyja e vjeter NYT dalin dy nyje te reja, nje nyje NYT e re dhe nje nyje ekstreme qe i korespondon germes r. Perseri nuk kemi nevoj per nderim vendesh te nyjeve. Germa tjeter d haset per here te pare. Persei transmetojme kodin per NYT, i cili ne kete rast eshte 00, te ndjekur nga indeksi i d 00011. Perseri nga nyja e vjeter NYT dalin dy nyje te tjera, nje nyje e re NYT dhe nyja koresponduese e germes d. Perseri nuk kemi nderim vendesh te nyjeve. Edhe germa e radhes v haset per here te pare. Nyjet 43 dhe 44 shtohen ne peme ku nyja 44 i
Faqe 46 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

takon germes v. Shohim se nyja burim e nyjes v (nyja 47) nuk ka numrin me te madh ne grup. Atehere kjo nderohet me nyjen 48. Rrisim peshen e nyjes 48 dhe kalojme tek nyja burim e saj (nyja 49). Ne kete grup numri me i madh i takon nyjes 50 pra nderojme vendin e nyjes 49 me nyjen 50 dhe rrisim peshen e nyjes 50. Kalojme ne nyjen burim te nyjes 50 e cila eshte nyja rrenje 51. Ne kete pike duhet vetem te rrisim peshen e saj.

3.3.2 – Procedura e kodimit

Bllokskema e procedures se kodimit tregohet ne Figuren 3.3. Fillimisht pema e kodit te dhenesi dhe te marresi konsiston ne nje nyje te vetme, nyjen NYT. Fjalekodi per simbolin e pare eshte fjalekodi fiks i vendosur perpara transmetimit. Pas simbolit te pare, ne rast se duhet te kodojme nje simbol i cili nuk eshte hasur me pare gjate kodimit, dergohet kodi per nyjen NYT i ndjekur nga kodi fiks per simbolin e hasur. Kodi per NYT fitohet duke shetitur pemen Huffman nga nyja rrenje tek nyja NYT. Kjo i tregon marresit se simboli te cilit i perket kodi mbas NYT nuk ka nje nyje koresponduese ne pemen e tij. Ne rast se simboli qe do te kodohet ka nje nyje koresponduese ne peme (pra eshte hasur me pare), kodi i tij fitohet duke shetitur pemen nga nyja rrenje tek nyja ekstreme qe i takon simbolit. Per te kuptuar me qarte proceduren e kodimit do te perdorim te njetin shembull te pare me larte per proceduren update.

Faqe 47 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Shembull 3.3.2 Procedura e kodimit

Ne shembullin 3.3.1 kishim ne perdorim nje alfabet prej 26 germash. Per te perfituar kodet fikse duhet te gjejme vlerat e m dhe r te tilla qe 2e + r = 26 kur 0 ≤ r < 2e. Eshte e qarte qe vlerat e meposhteme e = 4 dhe r = 10 kenaqin mosbarazimin. Simboli i pare per tu koduar eshte simboli a. Me qene se ky eshte simboli i pare i alfabetit kemi k=1. Duke qene k < 20 simboli a kodohet si paraqitja me e +1 bite i numrit dhjetor k-1 (pra paraqitja me 4 bite i numrit 0) ose 00000. Pas kesaj pema Huffman behet update si ne shembullin 3.3.1. Nga nyja e vjeter NYT lind nje nyje e re NYT dhe nje nyje ekstreme per simbolin a. Me qene se a eshte hasur deri ne kete moment nje here, nyja ekstreme qe i korespondon simbolit a ka peshen 1. Pesha e nyjes se re NYT eshte 0. Nyja e brendshme ka peshen 1 duke qene se pesha e saj eshte shuma e peshes se degeve te saj. Simboli tjeter eshte perseri a. Ky simbol ka nje nyje koresponduese ne peme prandaj per te gjetur kodin duhet te shetisim pemen nga rrenje tek nyja qe i takon simbolit a. Kjo konsiston vetem ne nje dege dhe kodi per kete simbol eshte 1. Pas kesaj pesha e nyjes qe i takon ketij simboli si dhe pesha e nyjes burim te saj rritet me nje.
Faqe 48 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Simboli i trete per tu koduar eshte r. Ky simbol haset per here te pare prandaj dergojme kodin per NYT te ndjekur nga kodi fiks i simbolit r. Duke shetitur pemen nga rrenja tek NYT shohim se kodi per NYT eshte 0. Germa r eshte germa e 18 e alfabetit ne perdorim, pra kodi i saj eshte 10001. Pema update-ohet perseri dhe procedura e kodimit vazhdon me germen d. Duke perdorur po te njejten llogjike si me larte kemi kodin per NYT i cili tashme eshte 00 te ndjekur nga kodi fiks per d i cili eshte 00011. Simboli tjeter v eshte germa e 22 e alfabetit. Me qene se k > 20 duhet te transmetojme kodin per NYT (000) dhe paraqitjen me 4 bite te numrit 22-10=11 e cila eshte 1011. Simboli tjeter eshte a kodi i te cilit tashme eshte 0. Procesi vazhdon njesoj deri tek simboli i fundit.
3.3.3 – Procedura e dekodimit

Bllokskema e procedures se dekodimit tregohet ne Figuren 3.4. Ne momentin e marrjes se nje stringe binare shetitet pema binare ne menyre identike me ate te kodimit. Ne momentin qe haset nje nyje dekodohet simboli korespondues i saj. Ne rast se ky simbol eshte NYT, kontrollohen e bitet pas tij per te pare nese numri koresponues eshte me i vogel se r. Kur ky numer eshte me i vogel se r lexohet edhe nje bit tjeter per te kompletuar kodin per nje simbol. Indeksi per simbolin gjendet duke i shtuar 1 vleres dhjetore qe i takon paraqitjes binare te stringes prej e ose e+1 bitesh. Pasi simboli eshte dekoduar pema behet update dhe me marjen e bitit tjeter fillon nje shqyrtim i ri i pemes prej rrenjes se saj. Le te shohim si funksionon procesi i dekodimit per rastin e shembullit 3.3.2.
Shembull 3.3.3 Procedura e dekodimit

Stringa binare e gjeneruar nga procedura e kodimit per shembullin 3.3.2 eshte: 000001010001000001100010110 Fillimisht pema e dekoduesit konsiston ne nyjen e vetme NYT. Atehere simboli i pare per tu dekoduar do te jete nga lista NYT. Lexojme 4 bitet e para 0000 meqenese e=4. Numri dhjetor i qe keto bite perfaqesojne eshte 0. Duke qene me i vogel se numri dhjetor r=10 lexojme edhe nje tjeter bit, pra stringa binare e lexuar behet 00000. Shtojme 1 ne vleren dhjetore te stringes binare dhe fitojme indeksin e simbolit te mare, si 1. Ky eshte indeksi i germes a. Pra simboli i pare i dekoduar eshte a. Pema behet update si ne figuren 3.2. Biti tjeter ne stringe eshte 1. Ky bit na jep rrugen nga rrenja e pemes tek nje nyje ekstreme qe i korespondon perseri simbolit a. Pra dekodojme perseri simbolin si a dhe bejme perseri update pemen. Ne kete rast update-i konsiston vetem ne rritjen e peshes se nyjes se simbolit a. Biti tjeter eshte 0. Ky bit tregon rrugen nga nyja rrenje tek nyja NYT. Pra simboli qe vjen nuk eshte ne peme. Lexojme perseri 4 bite, 1000, te cilat i korespondojne numrit dhjetor 8. Ky numer eshte me i vogel se 10, prandaj lexojme edhe 1 bit dhe kemi 10001. Vlera dhjetore e 10001 plus 1 eshte 18, qe eshte indeksi i germes r. Pra dekodojme simbolin tjeter si r dhe bejme update pemen. Dy bitet e tjera, 00, na cojne perseri tek nyja NYT. Lexojme 4 bitet ne vazhdim 0001, vlera e te cilave eshte 1 perseri me e vogel se 10. pra lexojme edhe nje bit shtese dhe kemi 00011. Vleres dhjetore te kesaj stringe binare i shtojme 1 dhe kemi vleren 4 qe eshte indeksi i simbolit d. Duke vazhduar ne kete menyre bejme dekodimin deri ne simbolin e fundit. Si perfundim te ketij kapitulli mund te themi se teknika e kodimit Huffman dhe variante te ndryshme te saj jane disa nga teknikat me te perdorshme ne procesin e kompresimit te te dhenave. Versione te modifikuara te kodimit Huffman hasen shpesh ne kompresimin e filave tekst si dhe te imazheve apo te dhenave video.

Faqe 49 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

4.1 – Kodimi Aritmetik

Kodimi aritmetik eshte njetjeter lloj kodimi i cili perdoret me eficence ne rastin e burimeve me alfabet te vogel dhe me propabilitete te shperndara. Kemi pare ne kaitullin tre se ne te tilla raste kodimi i thjeshte Huffman nukishte shume eficente. Per te koduar keto lloj burimesh sipas metodikes Haffman duhej te kodonim grupe simbolesh me gjatesi m. Kjo medode ne kete rast nuk eshte shume praktike sepse per te koduar nje sekuence te caktuar e gjatesi m duhet te gjenerojme te gjithe fjalekodet per te gjitha sekuencat e mundshme me gjatesine e dhene, gje qe conte ne nje rritje eksponenciale te numrit te fjalekodeve. Ajo qe duhet eshte nje metode e cila gjeneron nje fjalekod per nje sekuence te dhene pa qene nevoja e llogaritjes se te gjithe fjalekodeve te mundshem. Kodimi aritmetk eshte pikerisht kodimi i cili permbush kerkesen e mesiperme. Ne kete lloj kodimi nje identifikues i vetem, te cilin do e quajme tag, gjenerohet per
Faqe 50 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

sekuencen qe duam te kodojme. Ky tag shnderohet me pas ne kodin binar per sekuencen e koduar.
4.2 – Kodimi i sekuencave

Ne menyre qe te dallojme nje sekuence te dhene e simbolesh nga nje sekuence tjeter duhet qe te tagome kete sekuence me nje identifikues te vetem. Nje bashkesi e munshme tag-esh jane numrat ne intervalin [0,1). Duke qene se keta numra jane te pafundem atehere secili prej tyre mund te identifikoje nje sekuence te caktuar. Per kete duhet nje funksion i cili vendos nje korespondence midis simboleve dhe numrave te intervalit [0,1) ose intervalit njesi. Nje funksion i cili kryen kete proces midis variablave te rastit dhe numrave te intervalit njesi eshte funksioni i shperndarjes se ndryshores se rastit. Kujtojme se nje variabel i rastit vendos ne korespondence nje gjarje apo numer ngjarjesh te nje eksperimenti me numra reale. Per rastin tone ajo qe duhet eshte nje korespondence midis simboleve te burimit te informacionit dhe numrave reale. Per thjeshtesi, lloji i korespondences qe do te perdorim ne kete kapitull dote jete si me poshte: ku ai eshte nje nga simbolet e alfabetit A = { a1, a2, ..., am } te burimit dhe X eshte variabli i rastit. Kjo nenkupton gjithashtu se duke pasur modelin propabilistik te ketij burimi, kemi ne dispozicion edhe funksionin e densitetit te propabiliteteve per variablin e rastit P(X=i) =P(ai) Si dhe funksionin e shperndarjes se densiteteve Fx(i) = X(ai) = i

∑ P( X = k )
k =1

i

Eshte e qarte se cdo sombol ai me propabilitet te ndryshem nga 0 ka nje vlere te ndryshme te Fx(i). Kete fakt do te perdorim gjate kodimit aritmetik.
4.2.1 – Gjenerim i tag-ut

Procedura e gjenerimit te tag-ut kryhet duke zvogeluar madhesine e intervalit te tag-ut per cdo element te sekuences se dhene. Fillohet duke ndare intervalin njesi ne nenintervale te formes [Fx(i-1), Fx(i)), per i = 1, 2, ..., m. Intervali [Fx(i-1), Fx(i)) i korespondon simbolit ai. Shfaqja e simbolit te pare ben qe te fokusohemi ne intervalin e ketij simboli dhe te injorojme te gjithe intervalet e tjera. Pra n.q.s. elementi pare eshte ak intervali qe do te permbaje tag-un do te jete [Fx(k-1), Fx(k)). Ky interval ndahet perseri ne te njejtat pjese si intervali origjinal. Pra intervali i j-te i cili i korespondon simbolit te j-te do te jete: [Fx(k-1) + Fx(j-1) * (Fx(k) - Fx(k-1)), Fx(k-1) + Fx(j) * (Fx(k) - Fx(k-1))) Shfaqja e cdo simboli ben qe tag-u te bjere ne nje interval te caktuar i cili ndahet perseri ne te njejtat pjese si ai njesi. Ky proces behet me i qarte po te shohim shembullin e meposhtem.
Shembull 4.2.1

Supozojmenje alfabet me tre germa A = {a1, a2, a3} me P(a1) = 0.7, P(a2) = 0.1 dhe P(a3) = 0.2. Duke perdorur ekacionet per funksionin Fx kemi Fx(1) = 0.7, Fx(2) = 0.8 dhe Fx(3) = 1. Kjo ndan intervalin njesi ne tre pjese sic tregohet ne Figuren 4.1.

Faqe 51 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Intevali ne te cilin do te jete tag-u varet nga simboli i pare i sekuences qe do te kodohet. Po qe se simboli i pare eshte a1 tagu do te jete ne intervalin [0.0,0.7). Per a2 do te jete ne intervalin [0.7,0.8) dhe per a3 ne intervalin [0.8,1.0).

Pasi intervali i tag-ut eshte percaktuar intervalet e tjera injorohen dhe intervali i mbetur ndahet perseri ne te njejtat pjese. Supozojme se simboli i pare eshte a1. Tag-u bie ne intervalin [0.0,0.7). Ky interval ndahetperseri ne tre pjese si ai njesi duke na dhene nenintervalet [0.0, 0.49), [0.49,0.56) dhe [0.56, 0.7). Intervali i pare i takon simbolit a1, i dyti simbolit a2 dhe i tret simbolit a3. Supozojme se simboli i dyte eshte a2. Tag-u tashme do te bjere ne intervalin [0.49,0.56). Ndajme kete interval perseri ne te njejtat proporcione si ai origjinal dhe kemi perseri tre intervale te tjere [0.49, 0.539) per simbolin a1, [0.539, 0.546) per a2 dhe [0.546, 0.560) per a3. Ne rast se simboli tjeter eshte a3 tag-u bie ne intervalin [0.546, 0.560) i cili ndahet perseri si ne figure. Shohim se ardhja e cdo simboli ben qe tag-u te jete ne nje neninterval i cili eshte i ndare nda te tjeret. Pra tag-u per nje sekuence te caktuar do te jete ne nje interval te ndare nga ai i nje sekuence tjeter. Pra cdo numer brenda intevalit mund te identifikoje ne menyre unike sekuencen e dhene. Nje menyre per te zgjedhur numrin e tag-ut eshte ajo e marjes se kufirit te poshtem te intervalit, nje tjeter e mesit te tij. Per momentin do te perdorim mesin e intervalit. Matematikisht, per nje burim me alfabet A = {a1, a2, a3, ..., am} i cili gjeneron mesazhe me gjatesi nje simbol ne mund te vendosim ne korespondence simbolet {ai} me numrin {i}. Po keshtu mund te percaktojme Tx(ai) si: 1 1 P(X=i) = Fx(i-1) + P(X=i) 2 2 k =1 Pra per cdo vlere te ai, Tx(ai) do te kete nje vlere unike. Kete vlere mund ta perdorim si tag per ai. Tx(ai) =

∑ P( X = k ) +

i −1

Shembull 4.2.2

Supozojme se kryejme nje eksperiment duke hedhur nje zar. Dalja e eksperimentit mund te 1 pershkruhet nga numrat {1, 2, 3, 4, 5, 6}. Pra P(X=k) = per k = 1 , 2, 3, 4, 5, 6. 6 Nga sa me siper mund te gjejme tag-un per X=2. 1 1 1 = 0.25 Tx(2) = P(X=1) + P(X=2) = + 2 6 12 Po ne njejten menyre mund te gjejma tagu-un per X=5.
Faqe 52 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

1 P(X=5) = 0.75. 2 k =1 Pra shihet se gjenerimi i tag-ut per nje mesazh me gjatesi 1 eshte nje detyre e thjeshte. Kjo metode mund te perdoret edhe per mesazhe te renditura me gjatesi m, por do te na duhej te llogarisnim me pare propabilitetet e nje numri te caktuar te mesazheve “me te vogla” se mesazhi qe po kodojme. Nderkohe qe nje rruge tjeter me e perdorshme eshte ajo e llogaritjes se kufijve te intervalit ku bie tag-u dhe pastaj zgjedhja e nje vlere brenda intervalit. Llgaritja e kufirit te siperm u(n) dhe kufirit te poshtem l(n), per nje sekuence x = (x1x2...xn), mund te behet sipas formulave te meposhteme. Tx(5) =

∑ P( X = k ) +

4

l(n) = l(n-1) + (u(n-1) – l(n-1))*Fx(xn-1) u(n) = l(n-1) + (u(n-1) – l(n-1))*Fx(xn) Ne kete cfare duhet te njohim eshte vetem modeli propabilistik i burimit. N.q.s. do te perdorim piken e mesit te intervalit si vlere per tag-un kemi: Tx(x) = 1 (n) (n) (u +l ) 2

Shembull 4.2.3

Per nje burim me modelin e propabiliteteve te dhene gjeni tag-un per sekuencen 1321, kur dime se Fx(k) = 0 per k ≤ 0, Fx(1) = 0.8, Fx(2) = 0.82, Fx(3) = 1 dhe Fx(k) = 0 per k ≥ 3. Do te perdorim dy ekuacinet e mesipere, ne menyre sekuenciale, per te percaktuar tag-un e sekuences. Fillimisht duke inicializuar u(0) dhe l(0) me 0, per elementin e pare 1 kemi: l(1) = 0 + (1-0)*0 = 0 u(1) = 0 + (1-0)*0.8 = 0.8 Elementi i dyte i sekuences eshte 3. Duke pedorur ekuacionet me siper gjejme: l(2) = 0 + (0.8-0)* Fx(2) = 0.656 u(2) = 0 + (0.8-0)* Fx(3)= 0.8 Elementi i trete i sekuences eshte 2, dhe rezulton: l(3) = 0.656+ (0.8-0.656)* Fx(1) = 0.7712 u(3) = 0.656+ (0.8-0.656)* Fx(2)= 0.77408 Duke vazhduar te njejten llogjike per elementin e katert kemi: l(4) = 0. 7712+ (0. 77408-0. 7712)* Fx(0) = 0.7712 u(4) = 0. 7712+ (0. 77408-0. 7712)* Fx(1)= 0.773504 Atehere vlera e tagut per sekuencen 1321do te jete: Tx(1321) = 0.7712 + 0.773504 = 0.772352 2 Shohim se cdo interval i momentit eshte i perfshire ne intervalin e meparshem. Kjo veti do te shfrytezohet per deshifrimin e tag-ut. Po keshtu shihet se intrvalet zvogelohen perhere e me shume me rritjen e numrit te simboleve ne sekuence, pra per sekuenca te medha do te kemi
Faqe 53 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

numra me shume shifra pas presjes dhjetore. Per te tejkaluar kete problem do te shohim me tej nje menyre te zvogelimit te precizionit te ketyre numrave.
4.2.2 – Deshifrimi i tag-ut

Kemi pare me lart se si eshte e mundur qe nje sekuence te dhene ti vendosim ne korespondence nje tag duke pasur ne dispozicion minimumin e informacionit te mundshem. Por ky tag eshte i papedorshem ne rast se nuk mund te bejme deshifrimine tij, pra kalimin nga ky numer ne sekuencen e koduar. Ky proces eshte me i thjeshte se ai i gjenerimit te tag-ut. Le ta shohim nepermjet shembullit te meposhtem.
Shembull 4.2.4 Per rastin e shembullit 4.2.3 le te perfitojme sekuencen e paraqitur prej numrit 0.772352. Eshte e qarte se intervali ku ndodhet ky numer do te jete nje neninterval i te gjithe intervaleve te llogaritur gjate procesit te kodimit. Metoda e perdorur eshte ajo e dekodimit te elementeve ne sekuence e tille qe kufijte e siperm dhe te poshtem u(k) dhe l(k) te permbajne vleren e tag-ut per cdo k. Fillojme me l(0) = 0 dhe u(0) = 1. Pas dekodimit te elementit te pare x1 kemi:

l(1) = 0 + (1-0)* Fx(x1 - 1) = Fx(x1 - 1) u(1) = 0 + (1-0)* Fx(x1) = Fx(x1) Pra intervali ku ndodhet tag-u eshte [Fx(x1 - 1), Fx(x1)). Ne duhet te gjejme vleren e x1 per te cilen 0. 772352 ndodhet brenda ketij intervali. Per e x1 = 1 intervali eshte [0, 0.8), per e x1 = 2 intervali eshte [0.8, 0.82) dhe per x1 = 3 intervali eshte [0.82, 1). Duke qene se 0.772352 ndodhet ne intervalin e pare kemi x1 = 1. Pra elementi i pare i sekuences eshte 1. Perserisim proceduren per elementin e dyte x2 duke perdorur vlerat e perfituara per l(1) dhe u(1). l(2) = 0 + (0.8-0)* Fx(x2 - 1) = 0.8*Fx(x2 - 1) u(2) = 0 + (0.8-0)* Fx(x2) = 0.8*Fx(x2) per x2 = 1 intrvali i ri eshte [0, 0.64) dhe ky nuk e permban tag-un, per x2 = 2 intrvali i ri eshte [0.64, 0.656) i cili perseri nuk e permban tag-un dhe per x2 = 3 intrvali eshte [0.656, 0.8) dhe ky eshte intervali qe permban tag-un. Pra elementi i dyte i sekuences eshte 3. Duke njohur elementin e dyte te sekuences rillogarisim vlerat e l(2) dhe u(2) dhe me pas elementin x3 i cili na jep nje inteval ku ndodhet tag-u. l(3) = 0.656 + (0.8-0.656)* Fx(x3 - 1) = 0.656+0.144*Fx(x3- 1) u(3) = 0.656 + (0.8-0.656)* Fx(x3) = 0.656+0.144*Fx(x3) Keto dy ekuacione ne formen e dhene nuk jane shume te perdorshme per te kuptuar hapat e metejshem. Per te qene me te qarte duhet te zbresim vlerat e l(2) dhe u(2) nga te dy limitet dhe nga vlera e tag-ut. Kjo do te thote se duhet te gjejme ate vlere te x3 per te cilen intervali [0.144*Fx(x31), 0.144*Fx(x3)) permban vleren 0.772352 – 0.656 = 0.116352. Duke pjestuar 0.116352 me 0.144 gjejme vleren 0.808. Pra duhet te gjejme ate vlere te x3 per tecilen 0.808 bie ne intervalin [Fx(x3- 1), Fx(x3)). Shohim se e vetmja vlere per te cilene kjo eshte e mundur eshte 2. Zvendesojme kete vlere per x3 dhe llogarisim perseri vlerat e reja te l(3) dhe u(3). Pas kesaj gjejme elementin x4 duke llogaritur limitet si: l(4) = 0.7712 + (0.77408-0.7712)* Fx(x4 - 1) = 0.7712+0.00288*Fx(x4- 1) u(4) = 0. 7712 + (0. 77408-0.7712)* Fx(x4) = 0.7712+0.00288*Fx(x4)

Faqe 54 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Ne te njjten menyre si me lart gjejme x4 = 1. Ne kete menyre kemi aritur deri ne fund te sekuences se koduar. Theksojme se ne kete rast gjatesia e sekuences eshte e njohur dhe per kete arsye dihet dhe se ku do te perfundoje procesii dekodimit. Por per raste te tjera ky eshte nje informacion i cili ne nje menyre apo ne nje tjeter duhet ti behet i ditur dekoduesit. Si perfundim mund te themi se algoritmi per deshifrimin e tag-ut eshte si me poshte: 1. Fillojme me l(0) = 0 dhe u(0) = 1. 2. Per cdo k gjejme t* = (tag-l(k-1)/(u(k-1) – l(k-1)). 3. Gjejme vleren e xk per te cilen Fx(xk-1) ≤ t* < Fx(xk). 4. Llogarisim vlerat e reja per l(k) dhe u(k). 5. Perserisim keto hapa deri ne dekodimin e plote te sekuences.
4.2.3 – Kodi binar dhe eficenca e kodimit aritmetik

Duke perdorur algoritmin e gjenerimit te tag-ut qe pame me siper ne fitojme nje vlere reale per nje sekuence te dhene. Por ajo per te cilen realisht jemi te interesuar eshte paraqitja binare e sekuences se dhene ose fjalekodi i saj. Duke qene se tag-u eshte unik per nje sekuence te dhene, mund te themi se paraqitja binare e tag-ut formon nje kod binar unikper nje sekuence te dhene. Por duke qene se kjo paraqitje mund te jete nje numer me shumeshifra pas presjes dhjetore, edhe pse kodi eshte unik, nuk eshte shume eficente. Ky kod mund te behet eficent duke kufizuar paraqitjen binare te tag-ut. Nje menyre eshte ajo e paraqitjes binare te vleres dhjetore te tag-ut 1 Tx(x) dhe kufizimi i saj ne [log2 + 1] bite. Vertetohet se perseri kodi i perfituar ne kete P ( x) menyre eshte unik. Po keshtu per arsye te llogaritjeve nuk eshte shume praktike perdorimi i numrave me presje dhjetore. Nderkohe qe me po te njejten llogjike te perdorur me siper mund te implementohet kodimi aritmetik edhe me numra te plote. Tabela me poshte jep nje shembull te kodimit aritmetik. Simboli 1 2 3 4 Propabiliteti 1/2 1/4 1/8 1/8 Fx 0.5 0.75 0.875 1 Tx 0.25 0.625 0.8125 0.9375 Paraqitja binare .010 .101 .1101 .1111 log2 1 +1 P ( x) 2 3 4 4 Kodi 01 101 1101 1111

Mund te vertetohet gjithashtu se gjatesia mesatare e kodimit aritmetik permbush mosbarazimin e meposhtem: H(X) ≤ mcA < H(X) + 2 m

Ku m eshte gjatesia e sekuences. Shohim se me rritjen e gjatesise se sekuences se koduar gjatesia mesatare e kodit afrohet drejt entropise.
4.3 – Probleme te implementimit

Ne paragrafin 4.2.1 pame nje algoritem per gjenerimin e tag-ut te nje sekuence te caktuar. Por implementimi i tij ne praktik paraqet nje problem. Intervali [0,1) i ciline perdornim paraqet ne vetvete nje pafundesi numrash. Por praktikisht jemi te kufizuar ne paraqitjen e ketyre numrave nga maksimumi i biteve qe nje makine llogaritese perdor per paraqitjen e numrave. Nga algorimi
Faqe 55 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

duket qarte se me rritjen e numrit n, intervalet behen perhere e me te vegjel dhe numrat e kufirit te poshtem dhe te siperm te intervalit afrohen perhere e me shume. Per te paraqitur keta numra ne menyre unike duhet pa tjeter te rrisim precizionin e tyre. Por ne nje sistem me precizion te fundem kata numra do te konvergjojne tek njeri tjetri. Ne kete menyre kemi humbur informacionin per ate pjese te sekuences ku keta numra konvergjojne. Per kete arsye duhet te gjejme nje menyre per te “shkallezuar” intervalin e tag-ut. Eshte e qarte qe kjo duhet te kryhet ne menyre te tille qe te mos kemi humbje te informacionit. Nje tjeter aspekt i kodimit eshte fakti qe ne deshirojme te kryejme nje kodim te “menjehershem” ne kuptimin qe transmetimi i kodit te behet njekohesishte me vrojtimin e sekuences dhe jo te presim deri sa sekuenca te kete mbaruar e pastaj te fillojme transmetimin. Le te shohim se si mund te tejkalohen keto probleme. Me zvogelimin e intervaleve te tag-ut shohim se kemi njeren nga tre situatat e meposhteme: 1. Intervali eshte teresisht i kufizuar nga gjysma e poshteme e intervalit njesi [0, 0.5). 2. Intervali eshte teresisht i kufizuar nga gjysma e siperme e intervalit njesi [0.5, 1). 3. Intervali shtrihet pikerisht ne mes te intervalit njesi. Le te shohim dy rastet e para. Ne rast se intervali eshte i kufizuar nga njera prej gjysmave te inevalit njesi, ai gjate gjithe kohes do te jete i kufizuar nga po jo gjysme. Kujtojme se biti me me vlere i cdo numri brenda [0, 05) eshte gjithmone 0 dhe i cdo numri brenda {[0.5,1) eshte 1. Per pasoje pasi eshte percaktuar intervali se ku do te bjere tag-u. Biti me me vlere i tij do te jete gjithmone i njejte. Pra pa pritur pjesen tjeter te sekuences ne mund ti dergojme maresit informacionin se kudo te bjere tag-u duke derguar 1 per gjysmen e siperme dhe 0 per gjysmen e poshteme. Ky bit eshte njekohesishte dhe biti i pare i tag-ut. Pra pasi kemi percaktuar gjysmen e intervalit njesi mund te injorojme gjysmen jeter te tij e cila nuk do te permbaj asnjehere tag-un. Duke pasur kufizim ne precizionin e numrave dhjetore, tashme mund te vendosim ne korespondence te gjysmes se intevalit te caktuar te gjithe intervalin njesi. Pra mund te perdorim nje nga relacionet e meposhteme: E1: [0, 0.5) → [0, 1) E2: [0.5 , 1) → [0, 1) E1(x) = 2x E2(x) = 2(x-0.5)

Pasi kemi perdorur nerin prej relacioneve te mesiperme kemi humbur informacionin rreth bitit me me vlere, por kjo nuk ka rendesi sepse kete bit tashme e kemi ransmetuar. Mund te vazhdojme kete proces, duke gjeneruar nje tjeter bit, sa here qe tagu eshte i kufizuar nga njera prej gjysmave te intervalit te ri njesi. Ky proces kodimi, pa pritur te gjithe sekuencen, quhet edhe kodim rrites. Per rastin e trete, i cili ndodh kur tag-u eshte p.sh. ne intervalin [0.25, 0.75) perdoret relacioni i meposhtem: E3: [0.25 , 75) → [0, 1) E3(x) = 2(x-0.25)

Por ne kete rast prcedura e dergimit te bitit 0 apo 1 ndryshon nga dy rastet e para. Ne kete rast koduesi dergon nje kombinim te tille bitesh qe ti lejoje dekoduesit te perdori te njejtin relacion me te per shkallezimin e intervalit.
4.4 – Implementimi me numra te plote Kodimi Kemi pershkruar me siper implementimin e kodimit aritmetik me numra dhjetore. Le te shohim se si mund te ndertohetpo e njejta skeme kodimi ne numra te plote dhe te gjenerojme kodin binar te sekuences se dhene per kodim. Gjeja e pare qe duhet te bejme eshte percaktimi i gjatesise se fjales binare (numri i biteve) qe do te perdorim. Per nje gjatesi fjale m duhet qe te vendosim ne

Faqe 56 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

korespondence numrat ne intervalin [0,1) me numra binare te tipit 2m. Atehere numri 0 korespondon me 000...00 (m zero), numri 1 me 111...11 (m njesha) dhe vlera 0.5 me 100...00). Ekuacionet e limiteve te intervaleve kane te njejten forme si ato te para me larte. Por duke qene nje implementim me numra te pote duhet te zvendesojme funksionin Fx(x) ne keto ekuacione. Percaktojme nj si numri i hereve qe simboli j paraqitet ne nje sekuence me gjatesi TotalCount. Ne kete menyre funksioni Fx(k) mund te vleresohet si:

Fx(k) =

∑n
i =1

k

i

TotalCount

Duke percaktuar Cum_Count(k) =

∑n
i =1

k

i

mund te shkruajme:

l(n) = l(n-1) +

(u ( n −1) − l ( n −1) + 1) * Cum _ Count ( x n − 1) TotalCount ( n −1) ( n −1) (u −l + 1) * Cum _ Count ( x n ) u(n) = l(n-1) + -1 TotalCount

ku xn eshte simboli i n-te qe do te kodohet. Per shkat te menyres se korespondences midis vlerave ekstreme te intervalit dhe gjysme intervalit, kur l(n) dhe u(n) jane ne njeren prej gjysmave te intervalit njesi, bitet kryesore te tyre do te jene te njejte. Ne rast se biti me me peshe (MSB) eshte 1, atehere intervali i tag-ut eshte ne gjysmen e siperme te intervalit [000...00, 111..11). Ne rast te kundert ndodhet ne gjysmen e poshteme. Ne keto kushte per te kryer shkallezimin e intervalit, pra aplikimin e korespondences E1 apo E2 eshte shume e thjeshte. Cfare duhet te bejme eshte te reshqasim majtas MSB dhe te vendosim vleren e bitit me me pak peshe (LSB) 1 per u(n) dhe 0 per l(n). Supozojme se m=6, u(n)=54 dhe l(n)=33. Paraqitjet binare per u(n) dhe l(n) jane respektivisht 110110 dhe 100001. MSB e te dy numrave jane te njejte. Atehere reshqasim majtas (transmetojme ose magazinojme) MSB dhe vendosim 0 ne LSB per l(n) dhe 1 ne LSB per u(n). Vlerat e reja jane 101101 ose 45 per u(n) dhe 000010 ose 2 per l(n). Kjo procedure eshte ekuivalente me korespondencen E2. Edhe korespondenca E1 perfitohet po njesoj. Ne rast se biti i dyte (pas MSB) i u(n) eshte 0 dhe biti i dyte i l(n) eshte 1,kjo do te thote se duhet te kryejme nje korespondence E3. Per kete komplementojme bitin e dyte te te dy vlerave, reshqasim majtas te dy vlerat dhe vendosim 1 ne bitin e fundit te u(n) dhe 0 ne bitin e fundit te l(n). Regjistrojme numrin e shkallezimit E3 ne nje regjister te cilin po e quajme Scale3.
Shembull 4.4.1

Le te kodojme perseri sekuencen 1321 me numra te plote dhe sipas parametrave te dhena me poshte. Count(1) = 40 Cum_Count(0) = 0 Scale3=0 Count(2) = 1 Cum_Count(1) = 40 Count(3) = 9 Cum_Count(2) = 41 TotalCount = 50 Cum_Count(3) = 50 Fillimisht duhet te gjejme gjatesin e fjales qe do te perdorim (numrin e biteve) m. Duhet te sigurohemi se numrat e paraqitur prej ketyre biteve permbajne te gjitha numrat qe do te e diferencave te intervaleve gjate procesit te kodimit. Per rastin tone intervali me i vogel [l(n),u(n)] mund te jete sa nje e katerta e gjithe intervalit te numrave 2m. Atehere intervali total duhet te jete
Faqe 57 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

me i madh se 200. Per m=8 kemi l(0)= 0 = (00000000)2 dhe u(0) = 255 = (11111111)2. Pra kemi nje interval numrash me te madh se 200. Elementi i pare per kodim eshte 1. Gjejme limitet e intervalit dhe kemi: 256 * Cum _ Count (0) = 0 =(00000000)2 50 256 * Cum _ Count (1) -1 = 203 = (11001011)2 u(1) = 0 + 50 Elementi tjeter eshte 3. l(1) = 0 + 204 * Cum _ Count (2) = 167 =(10100111)2 50 204 * Cum _ Count (3) -1 = 203 = (11001011)2 u(2) = 0 + 50 MSB e l(2) dhe u(2) jane 1. Dergojme kete vlere ne dekodues, rreshqasim bitet majtas, vendosim vlerat e reja ne LSB dhe kemi: l(2) = 0 + l(2) = (01001110)2 = 78 u(2) = (10010111)2 = 151 Bitet e para tashme jane te ndryshem, por kemi bitin e dyte te u(2) = 0 dhe bitin e dyte te l(2) = 1. Ky eshte kushti per shkallezimin E3. Per kete arsye komplementojme bitin e dyte, rreshqasim bitet majtas, dhe mbushim perseri bitet e fundit. Po keshtu rrisim vleren e Scale3 me 1. l(2) = (00011100)2 = 28 u(2) = (10101111)2 = 175 Elementi tjeter ne sekuece eshte 2. Logarisim limitet e intervalit dhe kemi: 148 * Cum _ Count (1) = 146 =(10010010)2 50 148 * Cum _ Count (2) -1 = 148 = (10010100)2 u(3) = 28 + 50 Dy bitet LSB jane te njejte prandaj rreshqasim majtas, vendosim vlerat e LSB dhe kemi: l(3) = 28 + l(3) = (00100100)2 = 36 u(3) = (00101001)2 = 41 M.q.s. Scale3 eshte 1 transmetojme 0 dhe vendosim Scale3=0. MSB jane perseri te njejte prandaj transmetojme perseri 0 dhe pas rreshqitjes dhe mbushjes se LSB kemi: l(3) = (01001000)2 = 72 u(3) = (01010011)2 = 83 Kemi perseri MSB te njejte, pra transmetojme perseri 0. l(3) = (10010000)2 = 144 u(3) = (10100111)2 = 167 Transmetojme perseri 1. Limitet behen:

Faqe 58 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

l(3) = (00100000)2 = 32 u(3) = (01001111)2 = 79 Transmetojme 0 dhe kemi: l(3) = (01000000)2 = 64 u(3) = (10011111)2 = 159 Tashme MSB jane te ndryshme, por kemi plotesimin e kushtit per E3. Atehere: l(3) = (00000000)2 = 0 u(3) = (10111111)2 = 191 Scale3=1 Elementi tjeter eshte 1. Llogarisim perseri kufijte: l(4) = 0 + 192 * Cum _ Count (0) = 0 =(00000000)2 50 192 * Cum _ Count (1) -1 = 152 = (10011000)2 u(4) = 0 + 50

Duke vazhduar kodimin pefitojme sekuencen 1100010. Ne qofte se do te perfundojme kodimin ne kete moment duhet qe te dergojme gjendjen korente te tag-ut. Kete mund ta bejme duke derguar vleren e l(4). Kjo vlere eshte 0 pra dergojme 00000000. Por vlera e Scale3 eshte 1. Per kete arsye pasi dergojme nje 0 dergojme nje 1 dhe me pas trnsmetojme zerot e mbetura. Atehere sekuence e derguar eshte 1100010010000000.
Dekodimi Pasi kemi peshkruar proceduren e kodimit me numra te plote, implementimi i dekoduesit eshte me i thjeshte. Pasi kemi filluar dekodimin, gjithe cfare duhet te bejme eshte te imitojme koduesin. Le te shohim edhe kete proces duke dekuduar sekuencen e koduar ne shembullin 4.4.1. Shembull 4.4.2

Dekodimi i sekuences 1100010010000000 duke perdorur te njejtat parametra sine shembullin 4.4.1. Duke perdorur te njejen madhesi fjale, 8, lexojme 8 bitet e para te sekuences dhe formojme tagun t. t = (11000100)2 = 196 Inicializojme limitin e poshtem dhe te fundit si: t = (00000000)2 = 0 t = (11111111)2 = 255 per te filluar dekodimin llogarisim: (t − l + 1) * TotalCount − 1 197 * 50 − 1 = = 38 u − l +1 255 − 0 + 1 Krahasojme kete vlere me vlerat Cum_Count = [0 40 41 50] Me qene se 0 ≤ 38 < 40 dekodojme simbolin e pare si 1.
Faqe 59 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Llogarisim limitet e reja dhe kemi: l=0+ 256 * Cum _ Count (0) =0 TotalCount 256 * Cum _ Count (1) -1 = 203 u=0+ TotalCount

ose l = (00000000)2 u = (11001011)2 MSB jane te ndryshem dhe nuk permbushet as kushti per shkallezimin E3. Per kete arsye nuk nderojme vleren e tag-ut dhe vazhdojme dekodimin. Krahasojme vleren e (t − l + 1) * TotalCount − 1 = 48 u − l +1 me matricen Cum_Count dhe kemi qe: Cum_Count[2] ≤ 48 < Cum_Count[3] Atehere dekodojme simbolin tjeter si 3 dhe llogarisim perseri limitet. l=0+ 204 * Cum _ Count (2) = 167 = (1010011)2 TotalCount 204 * Cum _ Count (3) u=0+ -1 = 203 = (11001011)2 TotalCount

MSB jane te njejte. Kryejme te njejtin veprim si tek koduesi. Bejme po te njejten gje edhe per vleren e tag-ut, po ne bitin e fundit te tij vendosim bitin e radhes qe lexojme nga sekuenca. Atehere kemi: l = (01001110)2 u = (10010111)2 t = (10001001)2 Tashme jemi ne kushtet e shkallezimit E3 dhe kryejme per l e u veprimet identike si ne kodues. Per tagun vendosim ne LSB bitin e lexuar nga sekuenca. l = (00011100)2 = 28 u = (10101111)2 = 175 t = (10010010)2 = 146 Per te gjetur simbolin tjeter llogarisim (t − l + 1) * TotalCount − 1 = 40 u − l +1 Por 40 ≤ 40 < 41, prandaj dekodojme simbolin tjeter si 2. Llogarisim limitet e reja l = (10010010)2 dhe u = (10010100)2. Duke perseritur te njejtat veprime si me larte arijme deri ne simbolin e fundit te sekuences.
Faqe 60 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

4.5 – Krahasimi i kodimit Huffman me kodimin Aritmetik

Ne kete kapitull pershkruam kodimin aritmetik dhe perdorimin e tij per kodimin e nje sekuence simbolesh. Duhet thene se efikasiteti i kesaj menyre kodimi varet nga menyra se si ajo perdoret. Po keshtu varet edhe nga vetite propabilistike te burimit. Po te shohim tabelen ne seksionin 4.2.3 gjatesia mesatare e kodit te perdorur eshte: mcA = 2*0.5 + 3*0.25 + 4*0.125 + 4*0.125 = 2.75 bit/simbol Po te bejme kodimin Huffman te ketyre simboleve do te kemi nja gjatesi mesatare mcH = 1.75 bit/simbol Per me teper kjo eshte e njejte edhe me entropine e burimit. Pra duket se ne kete rast kodi haffman eshte me i mire sa ai aritmetik. Per te njejtin burim, po de kodojme grupe me nga dy simbole, me ane te kodimit aritmetik do te fitojme nje gjatesi mesatare prej 2.25 bit/simbol. Kjo gjatesi eshte me e vogel se ajo e rastit te pare, por perseri larg entropise se burimit. Megjithate shihet se me rritjen e numrit te simboleve kemi dhe zvogelim te gjatesise mesatare. Por sa duhet te jete numri i simboleve per te aritur nje kodim me te mire se ai Haffman? Kujtojme se kufijte e gjatesive mesatare te te dy metodave jane si me poshte: 2 m 1 m

H(X) ≤ mcA < H(X) +

H(X) ≤ mcH < H(X) +

Pra perseri dukes se kodimi me i mire eshte ai Haffman. Por per te gjeneruar kodin Haffman per nje sekuence me gjatesi m duhet te gjenerojme gjithe kodet e mundshme te te gjithe sekuencave me gjatesi m. Per nje burim me alfabet me madhesi k=16 dhe nje sekuence me gjatesi m=20 ne kete rast duhet te gjeneronim 1620 kode. Ky eshte pikerisht dhe disavantazhi i kodimit Haffman krahasuar me kodimin aritmetik. Me etoden aritmetike thjesh fitojme tagun per sekuencen e dhene pa llogaritur gjithe tag-et per gjithe sekuencate mundshme. Kjo do te thote se praktikisht numrin m mund ta rrisim sa te duam vetem ne rastin e kodimit aritmetik. Kjo do te thote se per shume burime gjatesia mesatare mund te afrohet me entropine vetem me ane te kodimit aritmetik e jo me ane te kodimit Huffman. Bejne perjashtim ato burime ku propabilitetet e simboleve jane fuqi te dyshit. Ne keto raste kodimi Huffman i germave te vecanta jep gjatesi mesatare sa entropia dhe kjo nuk mund te arihet me ane te kodimit aritmetik pavaresishte nga gjatesia e sekuences.
5.1 – Teknikat e kompresimit me fjalor

Ne dy kapitujt e meparshem pame teknika te kodimit te cilat supozojne se burimi i informacionit gjeneron sekuenca prej simboleve te pavarura nga njeri tjetri. Ne kete rast teknikat e kodimit nuk mbajne parasysh korrelimin e simboleve, pra ne fund te fundit vete strukturen e te dhenave. Ne kete kapitull do te shohim teknika te kodimit te cilat parashikojne edhe strukturen e te dhenave, si ne forme statike dhe ne forme dinamike. Keto teknika, statike apo dinamike, ndertojne nje liste me elementet me te perdorshem (qe hasen me shpesh) dhe per transmetimin e tyre perdorin indeksin e tyre ne liste. Keto teknika jane te efektshme ne rastin e burimeve te cilet gjenerojne

Faqe 61 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

nje numer te vogel elemetesh me shpeshtesi (frekuence paraqitjeje) te madhe, sic jane rastet e teksteve apo te komandave te nje programi kompjuterik.
5.2 – Metoda e kompresimit me fjalor

Ne nje numer te caktuar aplikimesh dalja e burimit konsiston ne nje numet te caktuar elementesh te cilet perseriten. Nje shembull klasik eshte rasti i teksteve ku disa fjale perseriten shume me shpesh, nderkohe qe fjale te tjera mund te mos hasen fare ose te hasen shume rralle. Nje menyre e arsyeshme per kodimin e ketyre lloj burimeve eshte ajo e krijimit te nje liste me elementet te cilet hasen me shpesh. Kjo liste quhet ndyshe edhe fjalor. Kur keta elemente shfaqen ne dalje te burimit, ato kodohen duke iu referuar fjalorit te mesiperm. Ne rast se elementi i shfaqur nuk ndodhet ne fjalor ai kodohet duke perdorur nje tjeter metode me pak eficente. Ne kete rast ne kemi ndare daljen e burimit ne dy klasa elementesh, ne elemente qe hasen me shpesh dhe ne ata qe hasen me rralle. Qe kjo teknike te jete e suksesshme duhet qe numri i elementeve qe hasen me shpesh (si rrjedhim madhesia e fjalorit) te jete me i vogel se numri i gjithe elementeve te mundshem. Supozojme se kemi nje tekst te ndertuar prej fjalesh me gjatesi 4 karaktere, tre prej te cileve jane 26 germat e vogla te alfabetit anglez dhe karakteri i fundit eshte njera prej shenjave pike, presje, spacio, pikepyetje, pikecuditese, dy pika. Pra madhesia e alfabetit te hyrjes eshte 32. Ne rast se do te kodojme secilen germe me vete duhet te perdorim 5 bite per secilen prej tyre. Per secilen prej fjaleve me gjatesi 4 karaktere do te na duheshin 20 bite. Per kodimin e ketij teksti le te perdorim tekniken e meposhteme. Fusim ne nje fjalor 256 fjalet me te perdorshme. Skema e transmetimit do te funksionoj si me poshte: Ne rast se duhet te transmetojme nje fjale e cila eshte ne fjalor dergojme nje 0 te ndjekur nga 8 bite te cilat i korespondojne indeksit te kesaj fjale ne fjalor. Ne rast se fjala nuk eshte ne fjalor dergojme nje 1 te ndjekur nga 20 bite qe perfaqesojne kodin e fjales. Pra do te kemi 9 bite per nje fjale e cila ndodhet ne fjalor dhe 21 bite per nje fjale e cila nuk ndodhet ne fjalor. Efektiviteti i kesaj metode do te varet nga perqindja e fjaleve te hasura dhe qe ndodhen ne fjalor. Ne rast se propabiliteti i shfaqjes se nje fjale e cila ndodhet ne fjalor eshte p numri mesatar i biteve R per nje fjale jepet nga: R = 9p + 21(1-p) = 21 – 12p Qe kjo metode te jete e perdorshme duhet qe R te jete me e voges se 20. Kjo gje arihet per vlera te p ≥ 0.084. Pervec faktit te zgjedhjes se nje metode funksionale duhet te mbajme parasysh edhe aritjen e nje performance sa me te mire te saj. Per kete qellim duhet qe p te kete nje vlere sa me te madhe. Per te aritur kete qellim duhet te zgjedhim me kujdes elementet me te cilet do te ndertohet fjalori, gje qe arihet duke patur parasysh strukturen e te dhenave te cilat do te kodojme. Ne rast se kete lloj informacioni nuk e kemi perpara kodimit duhet fillimisht te gjejme nje menyre per mbledhjen e tij. Ne rastin kur kemi informacion te mjaftueshem per vetite statistikore te burimit qe do te kodojme mund te perdorim menyren statike te kodimit, ne rast te kundert perdoret menyra dinamike ose adaptive e kodimit.
5.3 – Fjalori statik

Zgjedhja e nje menyre statike eshte e vlefshme ne rastet kur kemi njohuri paraprake per informacionin te cilin do te kodojme. P.sh. ne rastin e kompresimit te nje informacioni i cili permban te dhena per studentet e nje universiteti, fjale te tilla si: Emri, Mbiemri, Klasa, Viti etj do te hasen shume shpesh. Ne keto kushte perdorimi i nje skeme statike eshte shume eficente. Nga ana tjeter duhet pasur kujdes sepse perdorimi i po te njejtes skeme per nje tjeter lloj informacioni mund te coj ne zgjerim te informacionit ne vend te kompresimit te tij.

Faqe 62 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Nje teknike kodimi statike e cila eshte me pak e varur nga aplikacionet eshte kodimi digram (me germa dyshe) te cilin do e shohim me poshte.
5.3.1– Kodimi digram

Ne kete lloj kodimi, fjalori i ndertuar konsiston ne te gjithe germat e alfabetit te burimit te informacionit, e ndjekur nga te gjitha ciftet e germave (te quajtura digrama), sa mund te mbahen ne fjalor. P.sh. supozojme se do te ndertojme nje fjalor me madhesi 256 per nje kodim digram per te gjithe karakteret e printueshme ASCII. Ne kete rast 95 elementet e para te fjalorit do te jene 95 karakteret e printueshme ASCII. 161 elementet e tjere do te jene dyshet me te perdorshme te prej ketyre karaktereve. Koduesi ne kete rast lexon prej hyrjes dy karaktere dhe kerkon ne fjalor per te pare nese keto ndodhen ne te. Ne rast se dy karakteret ndodhen ne fjalor, indeksi korespondues i tyre kodohet dhe transmetohet. Ne rast se kjo dyshe nuk ndodhet ne fjalor kodohet karakteri i pare i dyshes. Karakteri i dyte i dyshes behet karakteri i pare i digrames tjeter. Koduesi lexon nje tjeter karakter nga hyrja per te kompletuar digramen dhe procedura e kerkimit perseritet. Shembull 5.3.1 Supozojme se kemi nje burim me nje alfabet prej 5 karakteresh A={a, b, c, d, r}. Duke u bazuar ne njohurite qe kemi per burimin kemi ndertuar nje fjalor si me poshte: Kodi 000 001 010 011 Elementi a b c d Kodi 100 101 110 111 Elementi r ab ac ad

Duam te kodojme sekuencen abracadabra. Koduesi lexon dy elementet e pare ab dhe kerkon ne fjalor. Ky elemente ndodhet ne fjalor dhe kodohet si 101. Koduesi lexon dy elementet e tjere ra dhe perseri kerkon ne fjalor. Ky element nuk ndodhet ne fjalor. Ne kete rast kodohet r si 100 dhe lexohet nje karakter tjeter per te perfituar dyshen ac. Kjo dushe ndodhet ne fjalor dhe kodohet si 110. Duke vazhduar ne te njejten menyre perfitohet stringa binare e sekuences qe duam te kodojme si 101100110111101100000.
5.4 – Fjalori adaptiv

Pjesa me e madhe e teknikave qe bazohen ne fjalorin adaptiv i kane fillimet e tyre ne materialet e paraqitura prej Jacob Ziv dhe Abraham Lempel ne 1977 dhe 1978. Keto materiale parashikojne dy menyra te ndryshme per ndertimin e fjaloreve adaptiv dhe prej tyre kane rrjedhur me vone nje numer i madh teknikash te ndryshme. Menyrat e kodimit te bazuara ne materialin e vitit 1977 bejne pjese ne famijlen e kodimeve te njojtura si LZ77 ose LZ1, ndersa ato te bazuara ne materialin e vitit 1978 njihen si LZ78 ose LZ2.
5.4.1– Metoda LZ77

Ne kete metode fjalori perbehet nga nje pjese e sekuences se koduar me pare. Koduesi shqyrton sekuencen hyrese permes nje dritareje rreshqitese si ne Figuren 5.1. Dritarja rreshqitese konsiston ne dy pjese, nje buffer i kerkimit i cili permban nje pjese te sekuences se koduar me pare dhe nje buffer te metejshem i cili permban nje pjese ne vazhdim te sekuences qe do te kodohet. Ne Figuren 5.1 bufferi i kerkimit permban 8 simbole ndersa buferi i metejshem
Faqe 63 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

permban 7 simbole. Ne praktike madhesite e buferave jane shume me te medha, por ne do te perdorim keto vlera per thjeshtesi ne shpjegim.

Figura 5.1. Kodimi LZ77 Per te koduar sekuencen ne bufferin e metejshem, koduesi leviz pointerin e kerkimit ne bufferin e kerkimit deri sa te gjeje nje korespondence me simbolin e pare ne bufferin e metejshem. Distanca e pointerit nga bufferi i metejshem quhet offset. Pas kesaj koduesi shqyrton simbolet qe ndjekin simbolin pas pointerit per te pare nese ato korespondojne me simbolet ne bufferin e metejshem. Numri i simboleve te njepasnjeshem ne bufferin e kerkimit te cilat korespondojne me simbolet ne buferin e metejshem duke filluar nga simboli i pare, quhet gjatesi e perputhjes. Koduesi shqyrton bufferin e kerkimit per te gjetur perputhjen maksimale. Kur kjo perputhje eshte gjetur ajo kodohet me nje treshe (o, l, c) ku o eshte offseti, l eshte gjatesia dhe c eshte fjalekodi i cili i korespondon simbolit ne bufferin e metejshem i cili pason perputhjen. P.sh. ne Figuren 5.1 pointeri eshte i pozicionuar ne fillim te perputhjes me te gjate. Offseti o ne kete rast eshte 7, gjatesia e perputhjes l eshte 4 dhe simboli ne buferin e metejshem i cili pason perputhjen eshte r. Arsyeja e dergimit te elementit te trete te treshes eshte per te parashikuar situaten ne te cilen nuk mund te gjendet perputhje midis simbolit ne bufferin e kerkimit me ate te bufferit te metejshem. Ne kete rast vlera e offsetit o dhe e gjatesise se perputhjes l jane 0 dhe fjalekodi eshte fjalekodi per vet simbolin. Ne rast se madhesia e bufferit te kerkimit eshte S, madhesia e dritares rreshqitese eshte W dhe madhesia e alfabetit eshte A, numri i biteve qe duhet per te koduar nje treshe me nje kod me gjatesi fikse eshte log2S+log2W+log2A. Termi i dyte ne kete rast eshte log2W sepse mund te ndodhi qe gjatesia e perputhjes te jete me e madhe se gjatesia e dritares. Kete situate do ta shohim ne shembullin 5.4.1. Ne kete shembull do te shohim tre rastet e munshme qe hasen gjate procesit te kodimit. 1. Nuk kemi perputhje per karakterin tjeter qe do te kodohet ne dritare 2. Nuk kemi fare perputhje 3. Stringa e perputhjes tejkalon buferin e metejshem. Shembull 5.4.1 Kodimi LZ77 Supozojme se duhet te kodojme sekuencen ...cabracadabrarrarrad... , madhesia e dritares eshte 13, madhesia e bufferit te metejshem eshte 6 dhe situata korente eshte si me poshte: cabraca dabrar me stringen dabrar ne buferin e metejshem. Kthehemi ne pjesen e koduar te sekuences per te gjetur korespondence me simbolin d. Me qene se nuk kemi koresponence transmetojme treshen (0,0,C(d)). Dy elementet e pare te trehes tregone se nuk kemi korespondence dhe elementi i trete eshte kodi i simbolit d. Ne kete rast kemi koduar vetem nje element, per kete arsye rreshqasim dritaren djathtas me nje katakter. Permbajtja e re e buferave behet si me poshte: abracad abrarr
Faqe 64 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

Duke shqyrtuar permbajtjen e tyre shikojme se kemi nje korenspondence te a ne offsetin 2 me gjatesi 1 (duke u nisur nga e djathta), nje tjeter ne ofsein 4 me gjatesi 1 dhe nje ne offsetin 7. Per kete te fundit shohim se numri i elementeve qe korespondojne midis dy bufferave eshte 4 (Figura 5.2). Ne kete rast kodojme stringen abra me treshen (7,4,C(r)) dhe levizim dritaren me 5 karaktere. Permbajtja e re behet si me poshte: adabrar rarrad Ne kete rast kemi nje perputhje te r ne oofsetin 1 me gjatesi 1, nje tjeter ne offsetin 3 me nje gjatesi qe ne pamje te pare duket 3, por ne ras se e tejkalojme bufferin e kerkimit shohim se kemi nje gjatesi prej 5 karakteresh. Pra ne kete rast do te transmetojme treshen (3,5,C(d)).

Figura 5.2. Procesi i kodimit Per te pare se si funksioon procesi i dekodimit le te supozojme se kemi dekoduar sekuencen cabraca dhe kemi mare treshet (0,0,C(d)), (7,4,C(r) dhe (3,5,C(d)). Treshja e pare eshte e thjeshte per tu dekoduar. Nuk kemi korespondence me elementet e meparshem dhe thjesh duhet te dekodojme simbolin d. Pra stringa e re u be cabracad. Treshja e dyte i tregon dekoduesit se duhet te zhvendoset mbrapa 7 karaktere dhe duhet te kopjoje nga ai pozicion 4 elemente. Ne fund duhet te dekodoje simbolin r. Procedura tregohet ne Figuren 5.3. Per dekodimin e treshes (3,5,C(d)) do te zhvendosemi pas 3 karaktere dhe do te kopjojme 5 elemente. Duhet te theksojme se procesi i kopjimit vetem fillon ne bufferin e kerkimit, me pas ai mund ta tejkaloje ate. Figura 5.4. tregon dekodimin e treshes (3,5,C(d)).

Figura 5.3. Dekodimi i treshes (7,4,C(r)) Sic shihet metoda LZ77 eshte nje metode e thjeshte adaptive e cila nuk kerkon njohuri paraprake mbi karakteristikat e burimit te informacionit. Autoret e ketij algoritmikane treguar se performanca e kesaj metode i afrohet ne menyre asimptotike perofrmances me te mire qe mund te arihet duke perdorur nje skeme e cila ka njohuri per vetite statistikore te burimit. Egzistojne
Faqe 65 / 66

Lorenc Dhamaj

Teoria e informacionit, kompresimi i te dhenave, kode te dedektmit dhe korrigjimit te gabimeve

variante te ndyshme te implementimit te metodes LZ77. Pjesa me e madhe e tyre kane te ejne me permiresime te perdorura ne kodimin sa me te efektshem te tresheve te transmetuara. Ne shpjegimin e bere u pranua qe kodimi i tresheve kryhet me ane te nje kodi me gjatesi fikse. Skema me komplekse kodimi perdorin kode me gjatesi variabbel per kete qellim. Utilitetet e kompresimit si PKZip, Zip, Lharc, PHG,gzip dhe ARJ kane si baze te tyre pikerisht kodimin LZ77. Variante te tjera te LZ77 perdorin buffera kerkimi dhe buffera te metejshem me gjatesi variabel. Nje tjeter modifilim i LZ77 eshte eleminimi i treshes (0,0,C(s)) ne rasin e situates kur kemi per te koduar vetem nje simbol. Modifikimi konsiston ne transmetimin e nje biti flagu i cili tregon se ajo qe ndjek kete bit eshte kodi i simbolit. Ne kete menyre nuk kemi nevoje per elementin e trete te treshes. Pra duhet te transmetojme vetem offsetin dhe gjatesine e perputhjes. Skema qe perdor kete modifikim quhet LZSS.

Figura 5.4. Dekodimi i treshes (3,5,C(d))

Faqe 66 / 66