Transmisia datelor multimedia in retele de calculatoare Introducere

65
Transmisia datelor multimedia in retele de calculatoare Introducere Conf. Dr. Ing. Costin-Anton Boiangiu <[email protected]> UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE

description

UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE. Transmisia datelor multimedia in retele de calculatoare Introducere. Conf. Dr. Ing. Costin-Anton Boiangiu . Ce este compresia?. - PowerPoint PPT Presentation

Transcript of Transmisia datelor multimedia in retele de calculatoare Introducere

Human Computer Interface: Data Compression 01: Introduction

Transmisia datelor multimedia in retele de calculatoareIntroducereConf. Dr. Ing. Costin-Anton Boiangiu

UNIVERSITY POLITEHNICA of BUCHARESTDEPARTMENT OF COMPUTER SCIENCECe este compresia?Definitia 1: Compresia este stiinta reprezentarii datelor intr-o forma compactaDefinitia 2: Compresia este procesul de minimizare a spaiului ocupat sau a timpului necesar transmiterii unei anumite cantiti de informaieAnalogie fizica: impachetarea unei valize2

De ce compresie?In lumea fizicaInsuficienta spatiuluiIn lumea digitalaInterbare: Capacitatea de stocare/transmitere creste exponential. Merita efortul?Raspuns: Da, mai multa viteza.Exemple:1 sec de audio CDDA:44100 samples x 2 channels x 16 bits/sample = 1,411,200 bits1 sec de audio HD:192,000 x 2 x 24/32 = 9,216,000/12,288,000 bits1 sec de video CCIR 601 = 20+ MB1 frame VGA (RGB):1024 x 768 x 24 = 18,874,368 bits3De ce compresie?Alte exempleHDTV: Pana la 2,985 Mbps (1920 x 1080 x 24 x 60)Cablu HDMI 5-10 GpbsNHKs 8K:7680 x 4320 x 24 x 30 = 23,880 Gpbs (!)CompresieAudio 28Mbps 7-28MbpsVideo 24Gbps 180-600 Mbps4De ce compresie?Concluzie fara compresie:Multe aplicatii/servicii nu ar fi functionaleEx., streaming videoAlte servicii ar fi mult mai scumpeEx. Telefonie analogica vs. digitalaDe ce nu am tine datele compresate mereu?Majoritatea formatelor de date sunt proiectate pentru achizitie/consum nu si pentru stocare eficienta5Terminologie Metodele de compresie pot fi mprite n: metode de compresie cu pierdere metode de compresie fr pierdere 6CompresieDecompresiexyxoriginalcompresatdecompresatTerminologie Factorul de compresie:|x|/|y||x| reprezinta lungimea in biti a mesajului initial, iar |y| reprezinta lungimea in biti a mesajului codificatEx.: |x| = 65,536, |y| = 16384, compresie = 4:1sau, marimea datelor a fost redusa la (|x|-|y|)/|y| = 75%Alte marimi ale codificariiBiti / esantion (bits per sample)Ex. ASCII: 8 bits/char, RGB: 24/48/72 bits/pixelDistorsiune (metode cu pierderi)Raportul dintre diferenta dintre x si x perceputa de om si diferenta matematica dintre x si x7Compresia cu pierdereMetodele de compresie cu pierdere de informaie sunt folosite n special n transmisia semnalului audio i video, unde pierderea de informaie nu este critica

Au ca rezultat o scdere a calitii sunetului, respectiv imaginii8Compresia fara pierdereExemplu: prescurtrile din viaa de zi cu zi (abrevieri: prof., etc., CEC, .a.) - o form primitiv a compresiei de dateCompresia de date fr pierdere este prezent n special n:programele de arhivaresistemele de transmisiune a datelorA evoluat de-a lungul timpului pornind de la algoritmi simpli (suprimarea zerourilor, codarea pe iruri) i ajungnd la algoritmii compleci folosii n prezent 9Compresia fara pierdereIn general, cantitatea de informaie prelucrat (transmis, depozitat) conine o anumit redundan care se datoreaz: distribuiei caracterelor (unele caractere au o frecven de apariie mult mai mare dect altele)repetrii consecutive a unor caracteredistribuiei grupurilor de caractere (unele grupuri sunt mult mai frecvente dect altele i n plus exist grupuri care nu apar deloc)distribuiei poziiei (unele caractere sau grupuri ocup poziii prefereniale, predictibile n anumite blocuri de date) 10Avantajele compresiei Avantajele compresiei sunt: reducerea spaiului necesar depozitrii unei cantiti de informaiescderea timpului de transmitere a unor mesaje, ceea ce duce la scderea costului per mesaj i posibiltatea creterii traficului ntr-o reea de transmisiuniaceast scdere a timpului este efectul direct al micorrii cantitii de informaie, dar i efectul indirect al micorrii pierderilor de timp datorate protocoalelor de comunicaiescderea timpului de rulare a unui program datorit timpului de acces la disc 11Clasificarea algoritmilor de compresie fr pierderi algoritmi statici - se bazeaz pe o statistic bine cunoscut a sursei i dau rezultate bune n cazul n care sursele au o statistic asemntoare cu cea presupus in caz contrar, rezultatul poate fi o extensie n loc de o compresie algoritmi semiadaptivi (sau n dou treceri) - algoritmi care folosesc statistica simbolurilor mesajului, statistic ce se obine printr-o parcurgere iniial a ntregului mesajaceti algoritmi ofer rezultate pentru orice tip de surs, dar nu pot fi folosii ntr-o transmisiunealgoritmi adaptivi - sunt de obicei cei mai potriviti pentru orice tip de surstehnicile adaptive au ca idee construirea unui "dicionar de codare" al simbolurilor mesajului, paralel cu codarea pentru compresie a mesajului; acest dicionar se va construi identic la recepie, pe baza informaiei recepionate 12Modelare si codificareCerinele reconstruciei sunt cele ce impun dac compresia este cu sau fr pierderi, schema exact depinznd de un numr de factori; cei mai importani sunt impui de caracteristicile datelor destinate compresieiDe exemplu, o tehnic de compresie poate fi eficient pentru compresia unui text, dar total ineficient pentru imagini Fiecare aplicaie prezint particulariti specificeDezvoltarea algoritmilor de compresie pentru o varietate de date cuprinde dou faze:prima faz se refer de obicei la modelare, cnd se ncearc extragerea informaiei despre orice redundan din date i descrierea acesteia sub forma unui modela doua faz este codareaDiferena dintre date i model se numete secven rezidual sau reziduu13Modelare si Codificare. Exemplul 1Se considera secventa:Sn = 9, 11, 11, 11, 14, 13, 15, 17, 16, 17, 20, 21Codificare binara necesita 5 bits/sampleSe considera modelul:n = n + 8:9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20Reziduuen = Sn - n: 0, 1, 0, -1, 1, -1, 0, 1, -1, -1, 1, 1Ex. codificare: 00 -1, 01 0, 10 12 bits/sampleSchema de compresie = model + reziduuObs. Modelul trebuie sa fie codificat de asemenea (de obicei in cadrul algoritmului)14Modelare si Codificare. Exemplul 2Se considera secventa:Sn = 27, 28, 29, 30, 30, 32, 31, 31, 29, 28, 27Se considera modelul:1 = 0; n = Sn-1 for n > 10, 27, 28, 29, 30, 30, 32, 31, 31, 29, 28Reziduul{en}= 27, 1, 1, 1, 0, 2, -1, 0, -2, -1, -1 Poate fi codificat cu mult mai putini bitiCodificare predictivaFolosirea datelor precedente pentru a calcula date viitoareFoarte folositor pentru exploatarea redundantei temporaleEx. in audio si video15Codificare in lumea reala: Braille (1821)16

Be nice to othersCodificare in lumea reala: Morse (1844)17

Observati diferentele in lungimele codurilorCodul Morse vs. Frecventa literelorIn general, frecventa mare/mica => cod scurt/lungAcesta este ideea in spatele schemei de codificare ce exploateaza redundanta statistica18

Reprezentarea datelorDate analogice (continue)Reprezentate de numere realeObservatie: nu pot fi stocate in calculatoareDate digitale (discrete)Valori intr-un set finit {a1, a2, , an},Toate datele sunt reprezentate ca siruri de simboluri din acest set Ex.: {a,b,c,d,r} => abc, car, bar, abracadabra, Folosim date digitale pentru a aproxima date analogice19

Seturi de simboluriAlfabetul roman si semnele de punctuatieASCII - 256 simboluriBraille, MorseBinar- {0,1}0 si 1 se numesc bitiToate datele digitale pot fi reprezentate eficient cu bitiEx.: {a, b, c, d}, reprezentare binara cu lungime fixa (2 bits/simbol):20SimbolabcdBinar00011011Surse de informaie si codificareSursele de informatie pot fi analogice sau discreteMajoritatea surselor de informatie din domeniul calculatorelor si al aplicatiilor internet sunt discrete Pentru a descrie o surs discret fr memorie (SDFM) sunt necesare dou mrimi: alfabetul surseiprobabilitile de furnizare a fiecrui simbol:

21

Surse de informaie si codificareDac numrul de simboluri este finit, sursa se numete discret Dac la un moment dat se emite sigur un simbol atunci sursa este completSursa este fr memorie dac evenimentele sk sunt independente, adic furnizarea unui simbol la un moment dat nu depinde de simbolurile furnizate anteriorTotalitatea simbolurilor unei surse formeaz alfabetul surseiOrice succesiune finit de simboluri, n particular un singur simbol, se numete cuvntTotalitatea cuvintelor formate cu un anumit alfabet se numete limbaj

22Teoria informatieiDezvoltata formal de Claude Shannon la Bell Labs in 1940-1950Explica limitele de codificare/transmisie folosind teoria probabilitatilorInformatia furnizata de un simbol A al unei surse de informatii este: P(A) reprezinta probabilitaea de aparitie a simbolului A23

Surse de informaie si codificareObservatiiP(A) mic => i(A) mareP(A) mare => i(A) micIdee:Simbolurile cu probabilitate mica (surpriza) contin mai multa informatieDaca A si B sunt independente, atunci:i(AB) = i(A) + i(B)

24

Exemplu: aruncarea moneziiMoneda idealaFie H si T rezultatele aruncariiDaca P(H) = P(T) = 1/2, atuncii(H) = i(T) = -1/log2(1/2) = 1 bitMoneda masluitaFie P(H) = 1/8, P(T) = 7/8i(H) = 3 bitii(T) = 0.193 bitiObs. ca P(H) + P(T) = 125EntropieEntropia este informaia medie pe simbol sau, altfel formulat, este incertitudinea medie asupra simbolurilor sursei S, sau informatia medie furnizata de un simbolUnitatea de masura pentru entropie este biti/simbolDaca experimentul genereaza simboluri, atunci (pentru log2) H este numarul mediu de simboluri binare necesare pentru codificareShannon: Nici un algoritm fara pierderi nu poate compresa mai bine de atat

26

Exemplul 1Se considera secventa:1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10P(1) = P(6) = P(7) = p(10) = 1/16P(2) = P(3) = P(4) = P(5) = P(8) = P(9) = 2/16Presupunand ca secventa este iid (Independent & Identically Distributed):27

Exemplul 2Consideram secventa1 2 1 2 3 3 3 3 1 2 3 3 3 3 1 2 3 3 1 2P(1) = P(2) = 1/4, P(3) = 1/2, H = 1.5 bits/simbolTotal biti: 20 x 1.5 = 30Reconsideram secventa(1 2) (1 2) (3 3) (3 3) (1 2) (3 3) (3 3) (1 2) (3 3) (1 2)P(1 2) = 1/2, P(3 3) = 1/2H = 1 bit/simbol x 10 simboluri = 10 bitiIn teorie, se poate extrage o structura luand esantioane mai mariIn realitate, ne trebuie un model corect, pentru ca de obicei nu este practic sa observam sursa prea mult timp28ModeleUn model bun pentru date conduce la algoritmi de compresie eficieniPentru a dezvolta algoritmi care efectueaz operaii matematice asupra datelor, acestea trebuie modelate matematicModele fiziceDac se cunoate ceva despre mecanismul de generare a datelor, se poate folosi aceast informaie pentru construirea modeluluiExemplu: n aplicaiile referitoare la vorbire, cunoaterea mecanismului de producere a vorbirii poate fi folosit la construirea unui model matematic pentru procesul vorbirii eantionate29ModeleModele probabilisticeCel mai simplu model statistic pentru surs este de a presupune c fiecare mesaj furnizat de surs este independent de celelalte i fiecare se produce cu aceeai probabilitateAcesta este numit model de ignoran si ar putea fi util cnd nu se cunoate nimic despre sursUrmtorul pas n creterea complexitii modelului este de a pstra presupunerea asupra independenei, dar de a nltura presupunerea de probabilitate egal pentru mesajen acest caz se aloc fiecrui mesaj o probabilitate n funcie de frecvena de furnizare a mesajului respectiv30ModeleModele probabilistice (cont)Pentru o surs care genereaz mesaje dintr-un alfabetS = {s1,..., sM }se poate folosi modelul de probabilitate

Cu acest model se poate calcula entropia sursei i pot fi construite coduri eficiente pentru reprezentarea mesajelor din S, adic se poate folosi un numr mediu minim de bii pentru fiecare mesajDac se renun la presupunerea de independen, se pune problema gsirii unui mod de a descrie dependena datelor, aa cum este n cazul modelelor Markov31

ModeleModel de surse compusen multe aplicaii nu este potrivit a se folosi un singur model pentru a descrie sursa, caz n care se poate defini o surs compus, care poate fi vzut ca o combinaie de diverse surse, din care una este activ la un moment datFiecare din acestea este descris de un model propriu32Source 1Source 2Source nModeleModel MarkovUnul dintre cele mai rspndite moduri de reprezentare a dependenei ntre date este folosirea modelului Markov Pentru modelarea datelor, n compresia fr pierderi se folosete un model particular numit lan Markov discretFie {xn} secvena observat; aceasta secven este un model Markov de ordin k, dac:

adic simbolul xn depinde numai de ultimele k mesaje xn-1, ..., xn-k33

ModeleMultimile {xi-1, , xi-k}, i=n, n-1,, reprezinta starile procesuluiDac mrimea alfabetului sursei este l, numrul de stri este lkCel mai des folosit model Markov este cel de ordinul 1, pentru care:34

ModeleFolosirea modelului Markov nu necesit prezumia de liniaritateExemplu: fie o imagine binar, care are numai dou feluri de pixeli - albi i negriSe tie c apariia unui pixel alb la observarea urmtoare depinde n oarecare msur dac pixelul curent este alb sau negruPrin urmare, se poate modela succesiunea de pixeli cu un lan Markov 3536ModeleSe defines doua stari: Sb & Sw pentru valoarea pixelului curentSe defines probabilitatile:P(Sb) = prob. ca pixelul sa fie negruP(Sw) = prob. ca pixelul sa fie albProbabilitatile de tranzitie sunt:P(b|b), P(b|w)P(w|b), P(w|w)SwSbP(b|w)P(w|b)P(b|b)P(w|w)

37ExempluFie

Pentru modelul iid (Independently and Identically Distributed):

Pentru modelul Markov:

38Folosirea modelelor Markov in compresia textelorModelele Markov sunt utile n compresia textelor, deoarece probabiltatea de apariie a unei litere este influenat de precedenteleExemplu: fie cuvntul ornitoring:Se presupune c s-a procesat deja ornitorin i urmeaz a se coda urmtoarea liter Dac nu se ine seama de context i se trateaz litera ca o surpriz, probabilitatea s apar litera g este relativ sczutDac se folosete un model Markov de ordinul , probabilitatea s urmeze g crete considerabilCu creterea ordinului modelului Markov (de la n la in, la rin .a.m.d.) probabilitatea literei g devine mai mare, ceea ce conduce la o entropie sczutCoduri unic decodificabileCodificarea sursei S, prin alfabetul X, inseamn gsirea unei corespondene biunivoce (S,X) ntre cuvintele de cod {ci | i=1,2,...,N} i simbolurile sursei SFiecare cuvnt de cod este o succesiune finit de litere din alfabetul coduluiProbabilitatea unui cuvnt de cod este dat de probabilitatea simbolului care trebuie transmisDefiniie: Un cod se numete unic decodabil dac fiecrei succesiuni de cuvinte de cod i corespunde o singur succesiune de mesaje (simboluri) ale sursei.Definiie: Dac un cuvnt de cod ci este format din succesiunea xi1xi2xim, atunci succesiunea xi1...xik, km se numete prefix al cuvntului respectivDac nici un cuvnt de cod nu este prefix pentru alt cuvnt de cod se spune c acel cod are proprietatea de prefix.

39Coduri unic decodificabileExempleAlfabet = {a1, a2, a3, a4}P(a1) = 1/2, P(a2) = 1/4, P(a3) = P(a4) = 1/8H = 1.75 bitsn(ai) = lungime(cuvant cod(ai)), i=1..4Lungime medie l = i=1..4P(ai) n(ai)Coduri posibile:40ProbabilitateCod 1Cod 2Cod 3Cod 4a10.500 0 0 0 0a20.250 0 1 10 01a30.125 1 00 110 011a40.125 10 11 111 0111l1.1251.2501.7501.875Coduri unic decodificabileCod 1Coduri identice pentru a1 si a2==> decode(00) = ???Cod 2Coduri unice dar ambigue: decode( 00/11) = ??? Cod 3Unic decodificabil, instantaneuCode 4Unic decodificabil, aproape instantaneu41ProbabilitateCod 1Cod 2Cod 3Cod 4a10.500 0 0 0 0a20.250 0 1 10 01a30.125 1 00 110 011a40.125 10 11 111 0111l1.1251.2501.7501.875Coduri unic decodificabileDecodificare unica:Pentru orice secventa de cuvinte cod exista o unica decodificare pentru eaUnica != instantaneeEx.: a1 0a2 01a3 11decode(0111111111) = a1a3 or a2a3 ?Nu se stie pana la sfarsitul secventei0111111111 01111111a3 011111a3a3 0111a3a3a3 01a3a3a3a3 a2a3a3a3a3a342Test de Decodificare UnicaPrefix si sufixFie a = a1ak, b = b1bn coduri binare si k < nDaca a1ak = b1bk atunci a este prefix al lui b si bk+1bn este sufix (dangling suffix) al lui a: ds(a, b)AlgoritmFie C = {cn} setul tuturor cuvintelor codPentru toate perechile (ci, cj) in C repeta:Daca ds(ci, cj) C // sufixul NU este cuvant codC = C U ds(ci, cj)Altfel// sufixul este cuvant codreturn NOT_UNIQUEpana cand nu mai exista perechi unicereturn UNIQUE43Coduri PrefixCod prefix:Niciun cuvant cod nu este prefix al altuiaArborii binari = decodificatori de prefix:44abc0011symbolcodea 00b 01c 1repeatcurr = root repeat if get_bit(input) = 1 curr = curr.right else curr = curr.left until is_leaf(curr) output curr.symboluntil eof(input)Decodificarea coduril prefix. Exemplu45abr01simbolcoda 0b 10c 110d 1110r 1111cd000111abracadabra = 010111101100111001011110Exemplu decodificare46abr01cd000111Input = 010111101100111001011110Output = ----------- Exemplu decodificare47abr01cd000111Input = 010111101100111001011110Output = a---------- Exemplu decodificare48abr01cd000111Input = -10111101100111001011110Output = a---------- Exemplu decodificare49abr01cd000111Input = -10111101100111001011110Output = a----------Exemplu decodificare50abr01cd000111Input = --0111101100111001011110Output = ab---------Exemplu decodificare51abr01cd000111Input = ---111101100111001011110Output = ab--------- Exemplu decodificare52abr01cd000111Input = ---111101100111001011110Output = ab--------- Exemplu decodificare53abr01cd000111Input = ----11101100111001011110Output = ab---------Exemplu decodificare54abr01cd000111Input = -----1101100111001011110Output = ab--------- Exemplu decodificare55abr01cd000111Input = ------101100111001011110Output = abr--------Exemplu decodificare56abr01cd000111Input = -------01100111001011110Output = abr-------- Exemplu decodificare57abr01cd000111Input = -------01100111001011110Output = abra------- Exemplu decodificare58abr01cd000111Input = --------1100111001011110Output = abra------- Exemplu decodificare59abr01cd000111Input = --------1100111001011110Output = abra------- Exemplu decodificare60abr01cd000111Input = ---------100111001011110Output = abra------- Exemplu decodificare61abr01cd000111Input = ----------00111001011110Output = abrac------ Exemplu decodificare62abr01cd000111Input = -----------0111001011110Output = abrac------ Exemplu decodificare63abr01cd000111Input = -----------0111001011110Output = abraca----- Exemplu decodificare64abr01cd000111Input = ------------111001011110Output = abraca----- Si tot asaConcluziiIn compresia datelor un rol important il are teoria codarii si teoria informatiei Compresia se refera la micsorarea redundantei mesajului de transmisCompresia de poate face:cu pierdere de informatie, asa cum este cazul surselor continue (analogice) discretizate, reprezentate numeric in calculatorfara pierdere de informatie, asa cum este in cazul textelor

Ca masura a compresiei se foloseste - cel mai des marimea numita raportul de compresie, ca raport intre marimea fisierului comprimat si marimea fisireului initial, necomprimatUn criteriu complet al calitatii compresiei trebuie sa considere insa si complexitatea algoritmilor de codare/decodare

65Chart15.64385618984.64385618984.05889368913.64385618983.32192809493.05889368912.83650126772.64385618982.47393118832.32192809492.18442457112.05889368911.94341647161.83650126771.73696559421.64385618981.55639334851.47393118831.39592867631.32192809491.2515387671.18442457111.12029423371.058893689110.94341647160.88896868760.83650126770.78587519460.73696559420.68965987940.64385618980.59946207040.55639334850.51457317280.47393118830.43440282410.39592867630.35845397090.32192809490.28630418520.2515387670.21759143510.18442457110.15200309340.12029423370.08926733810.05889368910.0291463457-0

i(A)

Sheet1P(A)i(A)0.025.64385618980.044.64385618980.064.05889368910.083.64385618980.13.32192809490.123.05889368910.142.83650126770.162.64385618980.182.47393118830.22.32192809490.222.18442457110.242.05889368910.261.94341647160.281.83650126770.31.73696559420.321.64385618980.341.55639334850.361.47393118830.381.39592867630.41.32192809490.421.2515387670.441.18442457110.461.12029423370.481.05889368910.510.520.94341647160.540.88896868760.560.83650126770.580.78587519460.60.73696559420.620.68965987940.640.64385618980.660.59946207040.680.55639334850.70.51457317280.720.47393118830.740.43440282410.760.39592867630.780.35845397090.80.32192809490.820.28630418520.840.2515387670.860.21759143510.880.18442457110.90.15200309340.920.12029423370.940.08926733810.960.05889368910.980.02914634571-0

Sheet2

Sheet3