1 / 65

Transmisia datelor multimedia in retele de calculatoare Introducere

UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE. Transmisia datelor multimedia in retele de calculatoare Introducere. Conf. Dr. Ing. Costin-Anton Boiangiu <Costin.Boiangiu@CS.PUB.RO>. Ce este compresia?.

goro
Download Presentation

Transmisia datelor multimedia in retele de calculatoare Introducere

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE Transmisia datelor multimedia in retele de calculatoareIntroducere Conf. Dr. Ing. Costin-Anton Boiangiu <Costin.Boiangiu@CS.PUB.RO>

  2. Ce este compresia? • Definitia 1: Compresia este stiinta reprezentarii datelor intr-o forma compacta • Definitia 2: Compresia este procesul de minimizare a spaţiului ocupat sau a timpului necesar transmiterii unei anumite cantităţi de informaţie • Analogie fizica: impachetarea unei valize

  3. De ce compresie? • In lumea fizica • Insuficienta spatiului • In lumea digitala • Interbare: 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 bits • 1 sec de audio HD: • 192,000 x 2 x 24/32 = 9,216,000/12,288,000 bits • 1 sec de video CCIR 601 = 20+ MB • 1 frame VGA (RGB): • 1024 x 768 x 24 = 18,874,368 bits

  4. De ce compresie? • Alte exemple • HDTV: • Pana la 2,985 Mbps (1920 x 1080 x 24 x 60) • Cablu HDMI 5-10 Gpbs • NHK’s 8K: • 7680 x 4320 x 24 x 30 = 23,880 Gpbs (!) • Compresie • Audio 28Mbps  7-28Mbps • Video 24Gbps  180-600 Mbps

  5. De ce compresie? • Concluzie – fara compresie: • Multe aplicatii/servicii nu ar fi functionale • Ex., streaming video • Alte servicii ar fi mult mai scumpe • Ex. Telefonie analogica vs. digitala • De ce nu am tine datele compresate mereu? • Majoritatea formatelor de date sunt proiectate pentru achizitie/consum nu si pentru stocare eficienta

  6. Terminologie • Metodele de compresie pot fi împărţite în: • metode de compresie cu pierdere • metode de compresie fără pierdere original compresat decompresat x y x’ Compresie Decompresie

  7. Terminologie • Factorul de compresie:|x|/|y| • |x| reprezinta lungimea in biti a mesajului initial, iar |y| reprezinta lungimea in biti a mesajului codificat • Ex.: |x| = 65,536, |y| = 16384, compresie = 4:1 • sau, marimea datelor a fost redusa la (|x|-|y|)/|y| = 75% • Alte marimi ale codificarii • Biti / esantion (bits per sample) • Ex. ASCII: 8 bits/char, RGB: 24/48/72 bits/pixel • Distorsiune (metode cu pierderi) • Raportul dintre diferenta dintre x si x’ perceputa de om si diferenta matematica dintre x si x’

  8. Compresia cu pierdere • Metodele de compresie cu pierdere de informaţie sunt folosite în special în transmisia semnalului audio şi video, unde pierderea de informaţie nu este critica • Au ca rezultat o scădere a calităţii sunetului, respectiv imaginii

  9. Compresia fara pierdere • Exemplu: • prescurtările din viaţa de zi cu zi (abrevieri: prof., etc., CEC, ş.a.) - o formă primitivă a compresiei de date • Compresia de date fără pierdereesteprezentă în special în: • programele de arhivare • sistemele de transmisiune a datelor • A evoluat de-a lungul timpului pornind de la algoritmi simpli (suprimarea zerourilor, codarea pe şiruri) şi ajungând la algoritmii complecşi folosiţi în prezent

  10. Compresia fara pierdere • In general, cantitatea de informaţie prelucrată (transmisă, depozitată) conţine o anumită redundanţă care se datorează: • distribuţiei caracterelor (unele caractere au o frecvenţă de apariţie mult mai mare decât altele) • repetării consecutive a unor caractere • distribuţiei grupurilor de caractere (unele grupuri sunt mult mai frecvente decât altele şi în plus există grupuri care nu apar deloc) • distribuţiei poziţiei (unele caractere sau grupuri ocupă poziţii preferenţiale, predictibile în anumite blocuri de date)

  11. Avantajele compresiei • Avantajele compresiei sunt: • reducerea spaţiului necesar depozitării unei cantităţi de informaţie • scăderea timpului de transmitere a unor mesaje, ceea ce duce la scăderea costului per mesaj şi posibiltatea creşterii traficului într-o reţea de transmisiuni • această scădere a timpului este efectul direct al micşorării cantităţii de informaţie, dar şi efectul indirect al micşorării pierderilor de timp datorate protocoalelor de comunicaţie • scăderea timpului de rulare a unui program datorită timpului de acces la disc

  12. Clasificarea algoritmilor de compresie fără pierderi • algoritmi statici - se bazează pe o statistică bine cunoscută a sursei şi dau rezultate bune în cazul în care sursele au o statistică asemănătoare 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 obţine printr-o parcurgere iniţială a întregului mesaj • aceşti algoritmi oferă rezultate pentru orice tip de sursă, dar nu pot fi folosiţi într-o transmisiune • algoritmi adaptivi - sunt de obicei cei mai potriviti pentru orice tip de sursă • tehnicile adaptive au ca idee construirea unui "dicţionar de codare" al simbolurilor mesajului, paralel cu codarea pentru compresie a mesajului; acest dicţionar se va construi identic la recepţie, pe baza informaţiei recepţionate

  13. Modelare si codificare • Cerinţele reconstrucţiei sunt cele ce impun dacă compresia este cu sau fără pierderi, schema exactă depinzând de un număr de factori; cei mai importanţi sunt impuşi de caracteristicile datelor destinate compresiei • De exemplu, o tehnică de compresie poate fi eficientă pentru compresia unui text, dar total ineficientă pentru imagini • Fiecare aplicaţie prezintă particularităţi specifice • Dezvoltarea algoritmilor de compresie pentru o varietate de date cuprinde două faze: • prima fază se referă de obicei la modelare, când se încearcă extragerea informaţiei despre orice redundanţă din date şi descrierea acesteia sub forma unui model • a doua fază este codarea • Diferenţa dintre date şi model se numeşte secvenţă reziduală sau reziduu

  14. Modelare si Codificare. Exemplul 1 • Se considera secventa: • Sn = 9, 11, 11, 11, 14, 13, 15, 17, 16, 17, 20, 21 • Codificare binara necesita 5 bits/sample • Se considera modelul: • Ŝn = n + 8: • 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 • Reziduu • en = Sn - Ŝn: 0, 1, 0, -1, 1, -1, 0, 1, -1, -1, 1, 1 • Ex. codificare: ‘00’ <=> -1, ‘01’ <=> 0, ‘10’ <=> 1 • 2 bits/sample • Schema de compresie = model + reziduu • Obs. Modelul trebuie sa fie codificat de asemenea (de obicei in cadrul algoritmului)

  15. Modelare si Codificare. Exemplul 2 • Se considera secventa: • Sn = 27, 28, 29, 30, 30, 32, 31, 31, 29, 28, 27 • Se considera modelul: • Ŝ1 = 0; Ŝn = Sn-1 for n > 1 • 0, 27, 28, 29, 30, 30, 32, 31, 31, 29, 28 • Reziduul • {en}= 27, 1, 1, 1, 0, 2, -1, 0, -2, -1, -1 • Poate fi codificat cu mult mai putini biti • Codificare predictiva • Folosirea datelor precedente pentru a calcula date viitoare • Foarte folositor pentru exploatarea redundantei temporale • Ex. in audio si video

  16. Codificare in lumea reala: Braille (1821) “Be nice to others””

  17. Codificare in lumea reala: Morse (1844) Observatidiferentele in lungimelecodurilor

  18. Codul Morse vs. Frecventa literelor • In general, frecventa mare/mica => cod scurt/lung • Acesta este ideea in spatele schemei de codificare ce exploateaza redundanta statistica

  19. Reprezentarea datelor • Date analogice (continue) • Reprezentate de numere reale • Observatie: nu pot fi stocate in calculatoare • Date 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 analogice

  20. Seturi de simboluri • Alfabetul roman si semnele de punctuatie • ASCII - 256 simboluri • Braille, Morse • Binar- {0,1} • 0 si 1 se numesc biti • Toate datele digitale pot fi reprezentate eficient cu biti • Ex.: {a, b, c, d}, reprezentare binara cu lungime fixa (2 bits/simbol):

  21. Surse de informaţie si codificare • Sursele de informatie pot fi analogice sau discrete • Majoritatea surselor de informatie din domeniul calculatorelor si al aplicatiilor internet sunt discrete • Pentru a descrie o sursă discretă fără memorie (SDFM) sunt necesare două mărimi: • alfabetul sursei • probabilităţile de furnizare a fiecărui simbol:

  22. Surse de informaţie si codificare • Dacă numărul de simboluri este finit, sursa se numeşte discretă • Dacă la un moment dat se emite sigur un simbol atunci sursa este completă • Sursa este fără memorie dacă evenimentele sksunt independente, adică furnizarea unui simbol la un moment dat nu depinde de simbolurile furnizate anterior • Totalitatea simbolurilor unei surse formează alfabetul sursei • Orice succesiune finită de simboluri, în particular un singur simbol, se numeşte cuvânt • Totalitatea cuvintelor formate cu un anumit alfabet se numeşte limbaj

  23. Teoria informatiei • Dezvoltata formal de Claude Shannon la Bell Labs in 1940-1950 • Explica limitele de codificare/transmisie folosind teoria probabilitatilor • Informatia furnizata de un simbol A al unei surse de informatii este: • P(A) reprezinta probabilitaea de aparitie a simbolului A

  24. Surse de informaţie si codificare • Observatii • P(A) mic => i(A) mare • P(A) mare => i(A) mic • Idee: • Simbolurile cu probabilitate mica (surpriza) contin mai multa informatie • Daca Asi B sunt independente,atunci: • i(AB) = i(A) + i(B)

  25. Exemplu: aruncarea monezii • Moneda ideala • Fie H si T rezultatele aruncarii • Daca P(H) = P(T) = 1/2, atunci • i(H) = i(T) = -1/log2(1/2) = 1 bit • Moneda masluita • Fie P(H) = 1/8, P(T) = 7/8 • i(H) = 3 biti • i(T) = 0.193 biti • Obs. ca P(H) + P(T) = 1

  26. Entropie • Entropia este informaţia medie pe simbol sau, altfel formulat, este incertitudinea medie asupra simbolurilor sursei S, sau informatia medie furnizata de un simbol • Unitatea de masura pentru entropie este biti/simbol • Daca experimentul genereaza simboluri, atunci (pentru log2)H este numarul mediu de simboluri binare necesare pentru codificare • Shannon: “Nici un algoritm fara pierderi nu poate compresa mai bine de atat”

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

  28. Exemplul 2 • Consideram secventa • 1 2 1 2 3 3 3 3 1 2 3 3 3 3 1 2 3 3 1 2 • P(1) = P(2) = 1/4, P(3) = 1/2, H = 1.5bits/simbol • Total biti: 20 x 1.5 = 30 • Reconsideram 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/2 • H = 1bit/simbol x 10 simboluri = 10 biti • In teorie, se poate extrage o structura luand esantioane mai mari • In realitate, ne trebuie un model corect, pentru ca de obicei nu este practic sa observam sursa prea mult timp

  29. Modele • Un model bun pentru date conduce la algoritmi de compresie eficienţi • Pentru a dezvolta algoritmi care efectuează operaţii matematice asupra datelor, acestea trebuie modelate matematic • Modele fizice • Dacă se cunoaşte ceva despre mecanismul de generare a datelor, se poate folosi această informaţie pentru construirea modelului • Exemplu: în aplicaţiile referitoare la vorbire, cunoaşterea mecanismului de producere a vorbirii poate fi folosit la construirea unui model matematic pentru procesul vorbirii eşantionate

  30. Modele • Modele probabilistice • Cel 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 aceeaşi probabilitate • Acesta este numit model de ignoranţă si ar putea fi util când nu se cunoaşte nimic despre sursă • Următorul pas în creşterea complexităţii modelului este de a păstra presupunerea asupra independenţei, dar de a înlătura presupunerea de probabilitate egală pentru mesaje • În acest caz se alocă fiecărui mesaj o probabilitate în funcţie de frecvenţa de furnizare a mesajului respectiv

  31. Modele • Modele probabilistice (cont) • Pentru o sursă care generează mesaje dintr-un alfabet S = {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 număr mediu minim de biţi pentru fiecare mesaj • Dacă se renunţă la presupunerea de independenţă, se pune problema găsirii unui mod de a descrie dependenţa datelor, aşa cum este în cazul modelelor Markov

  32. Source 1 Source 2 … Source n Modele • Model de surse compuse • În multe aplicaţii 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 văzută ca o combinaţie de diverse surse, din care una este activă la un moment dat • Fiecare din acestea este descrisă de un model propriu

  33. Modele • Model Markov • Unul dintre cele mai răspândite moduri de reprezentare a dependenţei între date este folosirea modelului Markov • Pentru modelarea datelor, în compresia fără pierderi se foloseşte un model particular numit lanţ Markov discret • Fie {xn} secvenţa observată;aceasta secvenţă este un model Markov de ordin k, dacă: adică simbolul xn depinde numai de ultimele k mesaje xn-1, ..., xn-k

  34. Modele • Multimile {xi-1, …, xi-k}, i=n, n-1,…, reprezinta starile procesului • Dacă mărimea alfabetului sursei este l, numărul de stări este lk • Cel mai des folosit model Markov este cel de ordinul 1, pentru care:

  35. Modele • Folosirea modelului Markov nu necesită prezumţia de liniaritate • Exemplu: fie o imagine binară, care are numai două feluri de pixeli - albi şi negri • Se ştie că apariţia unui pixel alb la observarea următoare depinde în oarecare măsură dacă pixelul curent este alb sau negru • Prin urmare, se poate modela succesiunea de pixeli cu un lanţ Markov

  36. Se defines doua stari: Sb & Swpentru valoarea pixelului curent Se defines probabilitatile: P(Sb) = prob. ca pixelul sa fie negru P(Sw) = prob. ca pixelul sa fie alb Probabilitatile de tranzitie sunt: P(b|b), P(b|w) P(w|b), P(w|w) P(b|b) P(w|w) P(b|w) Sw Sb P(w|b) Modele

  37. Exemplu Fie Pentrumodeluliid (Independently and Identically Distributed): Pentrumodelul Markov:

  38. Folosirea modelelor Markov in compresia textelor • Modelele Markov sunt utile în compresia textelor, deoarece probabiltatea de apariţie a unei litere este influenţată de precedentele • Exemplu: fie cuvântul “ornitoring”: • Se presupune că s-a procesat deja ornitorin şi urmează a se coda următoarea literă • Dacă nu se ţine seama de context şi se tratează litera ca o surpriză, probabilitatea să apară litera gesterelativ scăzută • Dacă se foloseşte un model Markov de ordinul Ι, probabilitatea să urmeze gcreşte considerabil • Cu creşterea 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 scăzută

  39. Coduri unic decodificabile • Codificarea sursei S, prin alfabetul X, inseamnă găsirea unei corespondenţe biunivoce (S,X) între cuvintele de cod {ci | i=1,2,...,N} şi simbolurile sursei S • Fiecare cuvânt de cod este o succesiune finită de litere din alfabetul codului • Probabilitatea unui cuvânt de cod este dată de probabilitatea simbolului care trebuie transmis • Definiţie: Un cod se numeşte unic decodabil dacă fiecărei succesiuni de cuvinte de cod îi corespunde o singură succesiune de mesaje (simboluri) ale sursei. • Definiţie: Dacă un cuvânt de cod ci este format din succesiunea xi1xi2xim, atunci succesiunea xi1...xik, km se numeşte prefix al cuvântului respectiv • Dacă nici un cuvânt de cod nu este prefix pentru alt cuvânt de cod se spune că acel cod are proprietatea de prefix.

  40. Coduri unic decodificabile • Exemple • Alfabet = {a1, a2, a3, a4} • P(a1) = 1/2, P(a2) = 1/4, P(a3) = P(a4) = 1/8 • H = 1.75 bits • n(ai) = lungime(cuvant cod(ai)), i=1..4 • Lungime medie l = i=1..4P(ai) n(ai) • Coduri posibile:

  41. Coduri unic decodificabile • Cod 1 • Coduri identice pentru a1 si a2==> decode(‘00’) = ??? • Cod 2 • Coduri unice dar ambigue: decode( ‘00’/’11’) = ??? • Cod 3 • Unic decodificabil, instantaneu • Code 4 • Unic decodificabil, aproape instantaneu

  42. Coduri unic decodificabile • Decodificare unica: • Pentru orice secventa de cuvinte cod exista o unica decodificare pentru ea • Unica != instantanee • Ex.: • a1 0 • a2 01 • a3 11 • decode(0111111111) = a1a3… or a2a3… ? • Nu se stie pana la sfarsitul secventei • 0111111111 01111111a3 011111a3a3 0111a3a3a3 01a3a3a3a3 a2a3a3a3a3a3

  43. Test de Decodificare Unica • Prefix si sufix • Fie a = a1…ak, b = b1…bn coduri binare si k < n • Daca a1…ak = b1…bk atunci a este prefix al lui b si • bk+1…bn este sufix (dangling suffix) al lui a: ds(a, b) • Algoritm • Fie C = {cn} setul tuturor cuvintelor cod Pentru toate perechile (ci, cj) in C repeta: Daca ds(ci, cj)  C // sufixul NU este cuvant cod C = C U ds(ci, cj) Altfel // sufixul este cuvant cod return NOT_UNIQUE pana cand nu mai exista perechi unice return UNIQUE

  44. 0 1 c 0 1 a b Coduri Prefix • Cod prefix: • Niciun cuvant cod nu este prefix al altuia • Arborii binari = decodificatori de prefix: repeat curr = root repeat ifget_bit(input) = 1 curr = curr.right elsecurr = curr.left untilis_leaf(curr) output curr.symbol untileof(input)

  45. Decodificarea coduril prefix. Exemplu 1 0 0 1 a 0 1 b 0 1 c d r abracadabra = 010111101100111001011110

  46. Exemplu decodificare 1 0 0 1 a 0 1 b 0 1 c d r Input = 010111101100111001011110 Output = -----------

  47. Exemplu decodificare 1 0 0 1 a 0 1 b 0 1 c d r Input = 010111101100111001011110 Output = a----------

  48. Exemplu decodificare 1 0 0 1 a 0 1 b 0 1 c d r Input = -10111101100111001011110 Output = a----------

  49. Exemplu decodificare 1 0 0 1 a 0 1 b 0 1 c d r Input = -10111101100111001011110 Output = a----------

  50. Exemplu decodificare 1 0 0 1 a 0 1 b 0 1 c d r Input = --0111101100111001011110 Output = ab---------

More Related