Multimedijski sustavi

Preview:

DESCRIPTION

FOI, PITUM - MULTIMEDIJSKI SUSTAVI 1

Citation preview

Sažimanje podatka u multimediji

Kompresija video i audio podataka

Kompresija koristi redundanciju u podacima Vremenska Prostorna Spektralna Psiho-vizualna

Klasifikacija algoritama

Kompresija s gubicima Kompresija bez gubitaka

Klasifikacija tehnika kodiranja

Algoritmi za kompresiju bez gubitaka

Spriječavanje jednostavnog ponavljanja

Niz:

89400000000000000000000000000000000

Kodira se kao:

894f32

Kodiranje duljine nizova

111122233333311112222 (1,4),(2,3),(3,6),(1,4),(2,4)

Nadomještavanje nizova

Broji pojavljivanje nizova Sortiraj u opadajućam nizu Dodijeli neke simbole najčešćim

nizovima

Temelji teorije informacija

Shanon-Fano algoritam

Symbol A B C D E

----------------------------------

Count 15 7 6 6 5

Shanon-Fano algoritam

Symbol Count log(1/p) Code Subtotal (# of bits) Symbol Count log(1/p) Code Subtotal (# of bits) ------ ----- -------- --------- -------------------- ------ ----- -------- --------- -------------------- A A 15 15 11.38 .38 00 00 30 30 B B 7 7 2.48 2.48 01 01 14 14 C C 6 6 2.70 2.70 10 10 12 12 D D 6 6 2.70 2.70 110 110 18 18 E E 5 5 2.96 2.96 111 111 1515 TOTAL (# of bits): 89 TOTAL (# of bits): 89

Huffmanovo kodiranje

Symbol Count log(1/p) Code Subtotal (# of bits) ------ ----- -------- --------- --------------------

A 15 1.38 0 15 B 7 2.48 100 21 C 6 2.70 101 18 D 6 2.70 110 18 E 5 2.96 111 15

TOTAL (# of bits): 87

Huffmanovo kodiranje slika

Razdijeli sliku na 8x8 blokove Svaki simbol se mora kodirati Izračunaj Huffmanove kodove za skup

blokova Kodiraj blokove u skladu s time

Adaptivno Huffmanovo kodiranje

ENCODER DECODER ------- ------- Initialize_model(); Initialize_model(); while ((c = getc (input)) != eof) while ((c = decode (input)) != eof) { { encode (c, output); putc (c, output); update_model (c); update_model (c); } } }

Adaptivno Huffmanovo kodiranje

Adaptivno Huffmanovo kodiranje

Adaptivno Huffmanovo kodiranje

Lempel-Ziv-Welch algoritam

w = NIL; while ( read a character k ) { if wk exists in the dictionary w = wk; else add wk to the dictionary; output the code for w; w = k; }

Sažetak kodiranja entropijom

Huffman . preslikava simbole fiksne dužine u kodove varijabilne dužine. Algoritam je optimalan ako su vjerojatnosti simbola potencije od 2.

Arithmetičko k. Preslikava čitavu poruku u niz realnih brojeva temeljenu na statistici. Optimalan je za duge poruke, ali to ovisi o modelu podataka. Može biti zahtjevan za vrijeme procesora i memoriju.

Lempel-Ziv-Welch je matoda kompresije temeljena na rječniku. Preslikava varijabilni broj simbola u kod fiksne dužine.

Adaptivni algoritmi ne traže apriornu prosudbu vjerojatnosti, oni su korisniji u stvarnim aplikacijama.

Tehnike kodiranja izvora

Kodiranje izvora se temelji na sadržaju originalnog signala (naziva se i semantički temeljeno kodiranje)

Može se ostvaraiti veliki omjer kompresije, ali na račun gubitka informacija. Dobra kompresija se može postići s dobrim kodiranjem izvora bez gubitka ili s malim gubitkom informacija.

Metode iz frekventne domene

Frekventna domena se dobiva preko transformacije neke domene (vremenske ili prostorne) u drugu (frekventnu) preko

Diskretne kosinusne transformacije (DCT)Fourireove transformacije

1D primjer

2D primjer

Slike su puno kompleksnije Sličnost svjetline po jednoj crti se može zapisivati kao skup

mjerenja na istim udaljenostima ili kao skup vrijednosti prostornih frekvencija.

Svaka od ovih frekvencija se naziva frekventna komponenta. Svaka slika je dvodimenzionalni niz mjerenja piksela na

jednolikoj mreži. Ove se informacije opisuju preko dvodimenzionalnih mreža

prostornih frekvencija. Bilo koja frekventna komponenta se može odrediti koji je

doprinos učinjen preko podataka koja se mijenjaju preko specificiranih frekvencija x i y smjerova.

2D primjer

2D primjer

Fourierova teorija

In order to fully comprehend the DCT will do a basic study of the Fourier theory and the Fourier transform first.

Whilst the DCT is ultimately used in multimedia compression it is easier to perhaps comprehend how such compression methods work by studying Fourier theory, from which the DCT is actually derived.

The tool which converts a spatial (real space) description of an image into one in terms of its frequency components is called the Fourier transform

The new version is usually referred to as the Fourier space description of the image.

The corresponding inverse transformation which turns a Fourier space description back into a real space one is called the inverse Fourier transform.

1D slučaj

1D slučaj

2D slučaj

Diskretna kosinusna transformacija (DCT)

Diskretna kosinusna transformacija (DCT)

Diskretna kosinusna transformacija (DCT)

Diskretna kosinusna transformacija (DCT)

Diferencijalno kodiranje

fpredict(ti) = factual(ti-1)

Vektorska kvantizacija

Tok podataka se dijeli na (1D ili 2D kvadratne) blokove - vektore

Tablica ili knjiga kodova se koristi za pronalaženje obrazaca za svaki blok.

Knjiga kodova se može dinamički konstruirati ili predefinirati.

Svaki uzorak za blok se kodira kao vrijednost u tablici Kompresija se postiže ako su podaci dobro podijeljeni

i kodirani na toj razini.

JPEG kompresija

"Joint Photographic Expert Group" – međunarodni standard iz1992.

Radi se kolor si c/b fotografijama. Puno primjena: sateliti, medicina, itd.

JPEG kompresija

Kvantizacija

Zašto nam je potrebna kvantizacija?•Da se odbace bitovi

•Primjer: •101101 = 45 (6 bitova). •Skraćivanje na 4 bita: 1011 = 11. •Skraćivanje na 3 bita: 101 = 5.

•Kvantizacijska greška je glavni izvor kompresije s gubicima.

Cik-cak kodiranje

DPCM – diferencijalno pulsno kodna modulacija

Pored DCT primjenjuje se i druga metoda: najmanje DPCM na DC komponenti.

Zašto se mijenja ova strategija? DC komponenta je velika i varira, ali je uvijek blizu

prijašnjoj vrijednosti (poput JPEG bez gubitaka). Kodira razliku od prijašnjih 8x8 blokova - DPCM

Kodiranje niza znakova

1x64 vektori imaju mnogo nula Kodira se kao (skip, value) parovi, gdje skip označuje

broj bitova s nulama a value je slijedeća ne-nula komponenta.

Poslati (0,0) kao vrijednost koja označuje kraj bloka.

Kodiranje entropije

DC i AC komponente se konačno moraju prikazati preko manjeg broja bitova.

Kategoriziraje DC vrijednosti u SSS (više bitova treba prikazati) i stvarne bitove.

-------------------- Value SSS

0 0 -1,1 1

-3,-2,2,3 2 -7..-4,4..7 3 ------------ --------

Kodiranje entropije

Primjer: Ako je DC komponenta 4, potrebna su 3 bita. Poslati SSS kao Huffman simbol, iza kojeg slijedi

stvarna 3 bita. Za AC komponente (skip, value), kodirajte kompozitni

simbol (skip,SSS) koristeći Huffmanovo kodiranje. Huffman tablice mogu biti definirane od korisnika

(šalju se u zaglavlju) ili unaprijed definirane.

Sažetak JPEG kodiranja

"Frame" je slika, "scan" je prilaz kroz piksele (npr. crvena komponenta), "segment" je grupa blokova, a "block" je 8x8 skupina piksela.

Zaglavlje okvira: preciznost uzorkovanja (width, height) slike s brojem komponenti koji se odnosi na ID (za svaku komponentu), horizontalno/vertikalni faktor uzorkovanja (za svaku komponentu), kvantizacijska tablica koja će se koristiti (za svaku komponentu)

Skenirajte zaglavlje za broj komponenata u njihovom ID-u (za svaku komponentu) Huffmanovu tablicu za svaku komponentu

Ostalo (može se pojaviti između zaglavlja). Kvantizacijska tablica, Huffmanova tablica, tablice za aritmetičko kodiranje, komentari, podaci aplikacije

Praktična JPEG kompresija

Osnovna/sekvencijalna – opisana je u prijašnjem tekstu

Bez gubitaka Progresivna Hijerarhijska "Motion JPEG" – temeljni JPEG primijenjen na svaku

sliku u videu.

Video kompresija

Potrebna je opseg od 1.5 Gb/s za HDTV signal (traži se kompresija bolja od 83:1)

Tehnike s gubicima se primijenjuju jer su tehnike bez gubitaka nedovoljne (npr. Huffman, aritmetika, LZW) za slike i video kompresiju, posebno kada je distribucija piksela relativno ravna.

Otklanjanje prostorne redudancije – kodiranje unutar slika (JPEG)

Otklanjanje prostorne i vremenske redundancije – kodiranje unutar i između vremova (H.261, MPEG)

H. 261 kompresija

H. 261 kompresija se razvila naročito za aplikacije kod videa i telekomunikacije:

Razvijeno je od CCITT od 1988-1990 Služi za video konferencije i videotelefon na ISDN

telefonskim linijama. Osnovni kapacitet jedne linije za ISDN je 64

kbits/sec, koji se zatim multilicira (px64)

Pregled H. 261 kompresije

Okviri su tipa CCIR 601 CIF (352x288) i QCIF (176x144), slike s 4:2:0 uzorkovanjem. Dva tipa okvira: intraframes (I-frames) i interframes (P-frames) I-okviri koriste osnovni JPEGP-okviri koriste pseudo-differences (pseudo razlike) od prijašnjih okvira (predviđanje), tako da okviri ovise jedan o drugome. •I-okvir na daje jednu točku za početni pristup.

Unutarokvirno kodiranje

Unutarokvirno kodiranje

Unutarokvirno kodiranje

Format makro blokovaFormat makro blokova Adresa makroblova -> Addr INTRA blok -> Type Vrijednost kvantizacije -> Quant Vektor kretanja -> vector Neki se blokovi dobro podudaraju, a ostali slabije. Bitmaska koja pokazuje koji je koji blok (Coded Block Pattern, or CBP)Šalji blokove (4 Y, 1 Cr, 1 Cb) kako kod JPEG-a.

Međuokvirno kodiranje

Međuokvirno kodiranje

Struktura H.261 niza bitova

Struktura H.261 strukture niza bitova

Greške u H.261

Postoji nekoliko velikih problema za H.261: Tražanje pokretnih vektora Širenje greške Kontrola brzine prijenosa bitova

MPEG kompresija

MPEG je akronim za Moving Picture Expert Group, koji su napravili specifikacije za ISO, International Organization for Standardization i IEC, the International Electrotechnical Commission.

"MPEG video" se sastoji od dva konačna standarda, MPEG-11 i MPEG-22, s trećim standardom, MPEG-4, koji je već završen u 1998. za Very Low Bitrate Audio-Visual Coding.

MPEG-1 kompresija

MPEG-1 je završen 1991. i originalno je optimiran za rad kod rezolucije od 352x240 piksela kod 30 okvira/s (NTSC) ili 352x288 piksela kod 25 okvira/s (PAL), općenito se naziva Source Input Format (SIF) video.

MPEG-1 resolution mogu biti izuzetno velike npr. 4095x4095 kod 60 okvira/s.

Brzina prijenosa je optimirana za aplikacije od oko 1.5 Mb/s, ali može biti korištena za mnogo veće brzine ako treba.

MPEG-1 se definira samo za progresivne okvire, i nema direktne dobiti za video aplikacije s ispreplitanjem (interlaced), kao televizija.

MPEG-2 kompresija

MPEG-2 je završen 1994. i odnosi se na probleme digitalne televizije, za egfikasno kodiranje videa s ispreplitanjem i skalarnosti. Brzina dostave je povećana na 4 do 9 Mb/s, što omogućuje vrlo veliku kvalitetu videa.

MPEG-2 se sastoji od profila i razina. Profil definira skalabilnost niza bitova i rezoluciju boja, dok razina definira rezoluciju slike i maksimalnu brzinu prijenosa po slici.

Najčešći je profil: Main Profile, Main Level (MP@ML) koji se odnosi na 720x480 rezoluciju kod 30 okvira/s, kod 15 Mb/s za NTSC video.

Postoji još HDTV rezolucija od 1920x1080 piksela kod 30 okvira/s, kod brzine bitove do 80 Mb/s - Main Profile, High Level (MP@HL).

MPEG video

MPEG dodaje treći okvir koji je bidirekcijski okvir ili B-okvir B-okviri traže makroblokove u prošlim i budućim okvirimaTipičan niz je: IBBPBBPBB IBBPBBPBB IBBPBBPBB

H.261H.261

MPEG-2MPEG-2

MPEG video slojevi

Prosudba kretanja

Prosudba kretanja

Prosudba kretanja

MPEG video tok bitova

Dekodiranje MPEG videa u softeru

------------------------- Function % Time Parsing Bitstream 17.4% IDCT 14.2% Reconstruction 31.5% Dithering 24.5% Misc. Arith. 9.9% Other 2.7% -------------------------

Standardi MPEG 2, 3 i 4

-------------------------------------------------------------------Level size Pixels/sec bit-rate Application (Mbits) --------------------------------------------------------------------Low 352 x 240 3 M 4 consumer tape equiv.Main 720 x 480 10 M 15 studio TV High 1440 1440 x 1152 47 M 60 consumer HDTV High 1920 x 1080 63 M 80 film production --------------------------------------------------------------------

Standardi MPEG 2, 3 i 4

Razlike MPEG-2 u odnosu na MPEG-1 Traži po područjima, a ne samo slikama. 4:2:2 i 4:4:4 makroblokovi Okviri su veličine do 16383 x 16383 Promjenjivi načini: temporelni, progresivni Nelinearni kvantizacijski faktori za makroblokove Popravci MPEG-3: originalno za HDTV (1920 x 1080), prešao je u

MPEG-2 MPEG-4: prvobitno za vrlo spore komunikacije (4.8 do

64 Kb/s). Sada se odnosi na video obradu.

Jednostavna kompresija zvuka

Tradicionalne metode bez kompresije (Huffman, LZW, itd.) ne rade dobro kod video kompresije

Neke metode s gubicima koje se koriste kod audio kompresije: Kompresija tišine - detekcija “tišine", što je slično kodiranju

ponavljanja (run-length coding) Adaptive Differential Pulse Code Modulation (ADPCM) Npr. kod CCITT G.721 - 16 or 32 Kbits/sec. a) Kodira razliku imeđu dva uzastopna signalab) Prilagođava se kod kvantizacije tako da se manje bitova koristi. Linear Predictive Coding (LPC) prilagođava signal prema modelu

govora (zvuči kao kompjuterski govor kodd 2.4 kb/s). Code Excited Linear Predictor (CELP) izvršava LPC, ali prenosi i

oznake o greškama – postiže se kvaliteta audio konferencija kod 4.8 kb/s.

Ljudski sluh i glas

Ljudski sluh i zvuk Raspon je od 20 Hz do 20 kHz, a najosjetljiviji kod 2

do 4 KHz. Dinamički opseg (najtiši do najglasnijeg) je oko 96 dB Normalni govor je od 500 Hz do 2 kHz Niske frekvencije su samoglasnici i basovi Visoke frekvencije su suglasnici

Ljudski sluh i glas

Činjenice

MPEG-1: 1.5 Mb/s za audio i video Oko 1.2 Mb/s za video, a 0.3 Mb/s za audio (Nekomprimirani CD audio je 44,100 uzoraka/s * 16 b/uzorku * 2 kanala > 1.4

Mb/s) Faktor kompresije je u rasponu od 2.7 do 24. S kompresijom od 6:1 (16 bitni stereo se uzorkuje kod 48 KHz se smanji na

256 kb/s) i optimalni uvjeti za slušanje, stručnjaci eksperti ne mogu napraviti razliku između kodiranog i originalnog audio odsječka.

MPEG audio podržava frekvencije uzorkovanja od 32, 44.1 i 48 KHz. Podržavamo jedan ili dva audio kanala u jednom od četiri moda: Monofoni – jedan audio kanal Dualni monofoni – dva neovisna kanala Stereo – za stereo kanale koji dijele bitove, ali ne koriste zajedničko stereo

kodiranje Zajednički stereo – koristi prednosti tkorelacije među kanalima

Koraci algoritma

Koristite spirale filtere da odijelite audio signale (tj. 48 kHz zvuk) u frekventne subopsege koji aproksimiraju 32 kritična opsega -> sub-band filtering.

Odredite količinu maskiranja za svak opseg uzrokovanog od susjednog opsega korištenjem psihoakustičkog modela (psychoacoustic model).

Ako je jačina signala u području manja od maskirnog praga, nemojte ga kodirati.

U obrnutom slučaju, odredite broj bitova potrebnih za prikaz koeficijenta tako da je šum uveden od kvantizacije manji od maskirnog efekta (sjetite se da 1 kvantizacije doprinosi sa 6 dB šuma).

Format niz bitova.

Primjer

----------------------------------------------------------------------Band 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Level (db) 0 8 12 10 6 2 10 60 35 20 15 2 3 5 3 1----------------------------------------------------------------------

If the level of the 8th band is 60dB, it gives a masking of 12 dB in the 7th band, 15dB in the 9th. Level in 7th band is 10 dB ( < 12 dB ), so ignore it. Level in 9th band is 35 dB ( > 15 dB ), so send it.

-> Can encode with up to 2 bits (= 12 dB) of quantization error.

MPEG slojevi

Sloj 1: filter DCT tipa s jednim okvirom i jednakim frekventnim rasponom po području (band). Psihoakustički model koristi samo frekventno maskiranje.

Sloj 2: Koristi tri okvira u filteru (prije, sada, slijedeći u ukupom od 1152 uzoraka). Ovo modelira vremensko maskiranje.

Sloj 3: Bolji kritički filter područja se koristi (njednake frekvencije), psihoakustički model uključuje učinke vremenskog maskiranja, uzimao u obzir stereo redunadanciju i koristi Huffmana

Slojevi

-------------------------------------------------------------------- Layer Target Ratio Quality @ Quality @ Theoretical bitrate 64 kbits 128 kbits Min. Delay--------------------------------------------------------------------Layer 1 192 kbit 4:1 --- --- 19 ms Layer 2 128 kbit 6:1 2.1 to 2.6 4+ 35 ms Layer 3 64 kbit 12:1 3.6 to 3.8 4+ 59 ms --------------------------------------------------------------------

5 = perfect, 4 = just noticeable, 3 = slightly annoying, 2 = annoying, 1 = very annoying

Real delay is about 3 times theoretical delay

Streaming audio i video

Streamed audioReal Audio Shockwave .wav files (not video obviously)