1 / 50

Intra-frame DCT -koodaus

Intra-frame DCT -koodaus. Siirrettävien bittien määrää voidaan vähentää poistamalla redundanttista informaatiota signaalista ennen lähettämistä ja palauttamalla ne sitten tarpeellisella tarkkuudella vastaanottopäässä.

Télécharger la présentation

Intra-frame DCT -koodaus

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. Intra-frame DCT -koodaus • Siirrettävien bittien määrää voidaan vähentää poistamalla redundanttista informaatiota signaalista ennen lähettämistä ja palauttamalla ne sitten tarpeellisella tarkkuudella vastaanottopäässä. • Videosignaalissa voidaan erottaa kahdenlaista redundanssia: ’spatial and temporal redundancy’ sekä ’psychovisual redundancy’. tMyn

  2. Spatial and temporal redundancy: • Pikseliarvot eivät ole toisistaan riippumattomia, vaan jonkinlaista kerrelaatiota voidaan havaita vierekkäisten pikseliarvojen välillä sekä yksittäisen kehyksen sisällä (spatial redundancy) että kehysten välillä (temporal redundancy). • Voidaan siis sanoa, että jossakin määrin pikselin arvo on ennustettavissa sellaisessa tapauksessa jossa kyseisen pikselin naapurien arvot tunnetaan. • Tämä luku keskittyy kehyksen sisällä olevanredundanssin löytämiseen ja poistamiseen ennen siirtämistä. tMyn

  3. Psychovisual redundancy: • Ihmissilmällä on rajallinen kyky erotella pieniä avaruudellisia, kolmiulotteisia yksityiskohtia. • Silmä ei ole erityisen herkkä erottamaan tarkasteltavan objektin reunojen yksityiskohtia tai sellaisia yksityiskohtia, jotka esiintyvät nopean muutoksen taitekohdassa. tMyn

  4. Diskreetti kosinimuunnos, DCT (Discrete Cosine Transform) on mukana useissa pakkausmenetelmissä. • DCT:ta voidaan havainnollistaa joukkona suodattimia, joiden kanssa operoidaan rinnakkain yhtä aikaa. • Enkoodausvaiheessa DCT-prosessia seuraa kvantisointi (quantization), näytteiden järjestäminen tarkoituksenmukaiseen jonoon (zig-zag scanning), näytteiden ryhmittely joukoksi pareja (run length coding) ja entropiakoodaus (variable-length encoding). • Tarkastellaan näitä vaiheita jatkossa askel kerrallaan. tMyn

  5. DCT (type II) compared to the DFT. For both transforms, there is the magnitude of the spectrum on left and the histogram on right; both spectra are cropped to 1/4, to zoom the behaviour in the lower frequencies. The DCT concentrates most of the power on the lower frequencies. Lähde: Wikipedia tMyn

  6. Videosignaalin pakkauksen yhteydessä puhutaan usein makrolohkoista (macroblock) ja lohkoista (block), kuvat 1a, 1b ja 1c. tMyn

  7. Kuva 1a. Jaetaan kenttä 16*16 makrolohkoihin (macroblocks). tMyn

  8. Kuva 1b. Edellisen kuvan vahvennettu makrolohko (macroblock) koostuu 16:sta näytteestä (sample) ja 16 juovasta (line), yhteensä 4 lohkosta (block). tMyn

  9. Kuva 1c. Edellisestä kuvasta kukin lohko (block) koostuu 8 näytteestä (sample) ja 8 juovasta (line). tMyn

  10. Kun siis vaikkapa ajatellaan Standardi-DigiTV-ympäristöä, niin siinä kuvan resoluutio on 720*576 pikseliä, jolloin yksi kehys koostuu (720:16)*(576:16)=45*36=1620 makrolohkosta, kuva 1d. • Kun ajatellaan esim. harmaasävyn DCT-prosessointia, niin silloin kehys jaetaan 1620*4=6480 lohkoon (8*8 pikseliä). tMyn

  11. Kuva 1d. Standardi-DigiTV:n kehys, kuvasuhde 16:9, 1620 makrolohkoa. tMyn

  12. MPEG tuntee käsitteen viipale, slice. • Kuvassa 2 havainnollistetaan viipaleen ja makrolohkon välistä yhteyttä MPEG:ssa. tMyn

  13. 720 samples Frame Slice 1 Slice 2 576 lines Slice 36 16 samples 1 3 2 4 45 16 lines Slice Macroblock Kuva 2. MPEG-2:n viipale (slice). tMyn

  14. Yleisimmät näytteistykset MPEG:ssa ovat 4:2:0 ja 4:2:2, kuvat 3a ja 3b. • Näytteistys tapahtuu DigiTV.ssä komponenttimuodossa. • Komponenttimuoto ei ole täsmälleen sama kuin komponenttimuoto YUV, vaikka näitä käytetäänkin sekaisin. tMyn

  15. GREEN 720*576 RED 720*576 BLUE 720*576 MATRIX Y 720*576 R-Y 720*576 B-Y 720*576 FILTER AND SCALE 360*288 360*288 MPEG-2 ENCODE MPEG-2 ENCODE MPEG-2 ENCODE Kuva 3a. MPEG-2, 4:2:0 näytteistys. tMyn

  16. GREEN 720*576 RED 720*576 BLUE 720*576 MATRIX Y 720*576 R-Y 720*576 B-Y 720*576 FILTER AND SCALE 360*576 360*576 MPEG-2 ENCODE MPEG-2 ENCODE MPEG-2 ENCODE Kuva 3b. MPEG-2, 4:2:2 näytteistys. tMyn

  17. Vastaavia DCT-lohkoja havainnollistetaan kuvissa 4a ja 4b. tMyn

  18. 4 5 8 8 8 8 1 8 0 8 8 2 3 8 Y Kuva 4a. Colour subsampling 4:2:0, DCT blocks. tMyn

  19. 5 6 7 8 8 8 8 8 8 1 8 0 4 2 3 8 8 8 Y Kuva 4b. Colour subsampling 4:2:2, DCT blocks. tMyn

  20. Kuvakehys sisältää taajuuskomponentteja, kun tarkastellaan kuvan kirkkauden tai värin vaihtelua siirryttäessä kuvapintaa pitkin pysty- ja vaakasuunnassa. • Tästä käytetään nimeä spatiaalinen taajuus. • Kun kuvassa on tiheää viivoitusta, tarkoittaa se suurta spatiaalista taajuutta viivoja vastaan kohtisuorassa suunnassa. • DCT on menetelmä, joka tuo esiin kuvasta sen spatiaaliset taajuuskomponentit. • Kuvaa käsitellään numeerisessa muodossa lohko kerrallaan, 8*8 näytepisteen matriiseina, kuva 5. tMyn

  21. DCT DC-TERMI INCREASING HORIZONTAL FREQUENCY INCREASING VERTICAL FREQUENCY Kuva 5. 8*8 DCT-menetelmä prosessoi 8*8 DCT-kerrointa. tMyn

  22. Otetaan esimerkkinä aivan kuvitteellinen kehys, josta poimitaan mustavalko- eli luminanssi-informaatio (luma) Y yhden DCT-lohkon alueelta. • Oletetaan, että Y:n arvot voivat olla kokonaislukuja väliltä 16-235, siis mustavalkoinformaatio ilmoitetaan 8 bitillä, kuva 6. tMyn

  23. 70 64 72 70 70 68 68 72 100 103 99 103 94 97 101 94 129 132 132 130 132 129 121 125 157 157 154 153 148 155 150 145 164 163 162 168 161 163 161 156 165 162 166 170 172 163 158 163 163 159 174 164 170 164 167 167 170 166 174 173 166 167 167 160 Kuva 6. Luminenssi-informaatio 8*8 lohkon alueelta näytteenoton jälkeen. tMyn

  24. Kuvan 6 8*8 näytelohkoon ei suoraan kohdisteta DCT-operaatiota, vaan esim. lasketaan ensin näytteiden keskiarvo. • Sovitaan niin, että mitä pienempi näytearvo, niin sitä tummemmanharmaata se edustaa (pienin näytearvo sovittiin olevan 16). Valkoista edustaa suurin käytettävissä oleva luku, eli luku 235. • Olkoot keskiarvo 128. Tämä luku vähennetään kaikista näytearvoista, jolloin osa näytearvoista menee negatiivisiksi, kuva 7. tMyn

  25. -58 -64 -56 -58 -58 -60 -60 -56 -28 -25 -29 -25 -34 -31 -27 -34 1 4 4 2 4 1 -7 -3 29 29 26 25 20 27 22 17 36 35 34 40 33 35 33 28 37 34 38 42 44 35 30 35 35 31 46 36 42 36 39 39 42 38 46 45 38 39 39 32 Kuva 7. Luminenssi-informaatio 8*8 lohkon alueelta keskiarvon vähentämisen jälkeen. tMyn

  26. Kun lohko on käsitelty DCT-algoritmilla, saadaan tulokseksi uusi 8*8 –matriisi, jonka lukuarvot ilmentävät kuvan eritaajuisten osakomponenttien voimakkuutta. • Joka lukuarvon laskemiseen on käytetty alkuperäisen lohkon kaikkia lukuja. • Matriisin vasemman yläkulman arvo on tärkein, sillä se on ”tasakomponentti”, koko kuvalohkon keskiarvo. • Oikeaa alakulmaa kohden siirryttäessä tullaan suuritaajuisiin komponentteihin ja samalla tyypillisesti pienempiin lukuarvoihin. • Käänteisellä DCT-operaatiolla voidaan palauttaa taajuusarvoista alkuperäiset kuvalohkon näytearvot. tMyn

  27. DCT on erikoistapaus diskreetille Fourier-muunnokselle. • DCT:ssä ei ole mukana lainkaan sinitermejä. • Havainnollistettuna: näytteet heijastetaan (time reversal) origon suhteen, ja näin aikatasossa pituudeltaan kaksinkertainen näytejono diskreetti Fourier –muunnetaan. Tämä aiheuttaa sinitermien eliminoitumisen, koska heijastamisen jälkeen syntynyt kokonaisnäytejono on aina parillinen (even). • Matemaattisesti ilmaistuna 8*8 DCT ja käänteismuunnos 8*8 IDCT: tMyn

  28. Yllä olevaa kaavaa (ylinnä olevaa DCT-kaavaa) voidaan havainnollistaa kuvalla 8: tMyn

  29. DCT Sarakeindeksi y Sarakeindeksi v y=0 v=0 v=7 y=7 x=0 u=0 8*8 LOHKO Rivi-indeksi u Rivi-indeksi x u=7 x=7 Kuva 8. DCT-muunnoskaavan havainnollistaminen. Vakioiden C(u) ja C(v) arvot ovat silloin kun u=0 tai vastaavasti v=0, muutoin niiden arvo on 1. tMyn

  30. Kun muistellaan Fourier-sarjaesitysmuotoa, niin huomattiin, että signaali voitiin hajottaa joukkoon sini- ja kosinitermejä. Näitä termejä, joista alkuperäinen signaali voidaan jälleen koota, kutsutaan perusfunktioiksi (basis function). • Diskreetissä kosinimuunnoksessa tällainen perusfunktio voidaan ilmaista vaikkapa muodossa tMyn

  31. DCT:ssa pätee sama kuin Fourier-sarjaesitrysmuodossakin: käyttäen näitä perusfunktioita alkuperäinen 8*8-lohko voidaan esittää alkuperäisenä. • Matlabilla katsottuna kaksidimensioiset perusfunktiot näyttävät tältä: tMyn

  32. tMyn

  33. tMyn

  34. tMyn

  35. Kuvan 7 näytelohkoon kohdistettuna DCT-operaatio voisi tuottaa seuraavanlaisen tuloksen, kuva 9. • Vasemmassa yläkulmassa on DC-arvo, muut 63 arvoa ovat AC-arvoja. tMyn

  36. tMyn

  37. tMyn

  38. -3 2 27 86 6 2 -2 -2 -3 -247 0 -5 1 -3 -4 1 -1 -117 1 -1 -1 -1 0 -1 -2 -40 1 2 -2 2 1 0 -1 -2 1 -7 -1 0 -1 2 0 -2 0 1 -6 0 -1 0 -1 -1 -4 -2 -1 -1 1 -1 -1 1 -3 -3 1 1 0 1 Kuva 9. DCT-toiminto kohdistettu luminenssi-informaatioon 8*8 lohkon alueelta keskiarvon vähentämisen jälkeen. tMyn

  39. Edellisen dian kuvasta nähdään, että energia on keskittynyt vasempaan ylänurkkaan. • Kertoimien arvot ovat lähellä nollaa suuremmilla taajuuksilla. tMyn

  40. Kvantisointi (quantization) • DCT-operaation jälkeen on vuorossa lukuarvojen pyöristäminen eli kvantisointi tiettyihin luokkiin. • Periaatteessa tämä käy helposti, kun kaikki arvot jaetaan ensin jollakin luvulla ja tulokseksi otetaan vain jakolaskusta saatu kokonaisosa. • Kun jakaja valitaan riittävän suureksi, saadaan moni lukuarvo nollaksi ja vain pienitaajuisia komponentteja osoittaviin kohtiin jää nollasta eroavia arvoja. • Näin kuvasta on poistettu sellaista suuritaajuista informaatiota, jota silmä ei kuitenkaan voisi havaita. tMyn

  41. Se, että aggressiivista kvantisointia voidaan harrastaa, perustuu kahteen tosiasiaan: • DCT-operaation jälkeen moni kerroin on lähellä nollaa. • Esim. kuvan 9 tapauksessa huomataan, että siellä on 57 kappaletta AC-arvoja, joiden itseisarvo on 5 tai vähemmän. tMyn

  42. Ihmissilmä on melkoisen tunnoton virheille, jotka kohdistuvat tämän tyyppisiin DCT-arvoihin, joiden itseisarvo on riittävän pieni. Niinpä ne voidaan laittaa nollaksi aiheuttamatta sen suurempaa vahinkoa kuvan laadulle. • Ihmissilmä on herkkä niihin virheisiin, jotka kohdistuvat DC-kertoimeen tai pienitaajuisiin AC-kertoimiin. Herkkyys pienenee edettäessä kohti suurempitaajuisia AC-kertoimia. tMyn

  43. Kokeellisten tutkimusten avulla on muodostettu kvantisointimatriiseja erikseen sekä luminanssitiedon kvantisointiin että krominanssitiedon kvantisointiin. • Nämä kvantisointimatriisit eivät kuulu mihinkään standardiin. • Näistä kvantisointimatriiseista löytyy jakaja kullekin DCT-arvolle. • Kvantisoituja DCT-arvoja ei siis saada jakamalla jollakin yksittäisellä kokonaisluvulla kaikkia kertoimia. • Kvantisoinnin tuloksena kuvan 9 DCT-arvot voisivat olla seuraavanlaisia, kuva 10: tMyn

  44. 0 0 2 5 0 0 0 0 0 -21 0 0 0 0 0 0 0 -8 0 0 0 0 0 0 0 -3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Kuva 10. DCT-kertoimiin kohdistettu aggressiivinen kvantisointi kvantisointimatriisin avulla. tMyn

  45. Kuvasta 10 huomataan, että nollasta eroavien kertoimien määrä on rajusti vähentynyt. • Tämä luonnollisesti vähentää siirrettävien kertoimien lukumäärää – siis tarvittavien bittien määrää. • Todennäköisyys sille, että nollasta eroavat kertoimet ovat ylhäällä vasemmassa nurkassa on paljon suurempi kuin se, että ne olisivat oikealla alanurkassa. • Niinpä ei ole järkevää siirtää kertoimia esim. rivi kerrallaan. tMyn

  46. Zig-Zag skannaus • Kuvassa 11 on esitelty yleisessä käytössä oleva kertoimien järjestäminen siirtoa varten. • Menetelmän käyttö johtaa siihen, että 1. valitaan DC-kerroin ja sitten tulevat AC-kertoimet kohti kasvavaa taajuutta. • Seurauksena on, että kaikki nollasta poikkeavat kertoimet tulevat ensimmäisinä, ja sitten tulee pitkä jono nollia. tMyn

  47. Kuva 11. Zig-Zag-skannausjärjestys. tMyn

  48. Kun skannataan kuvan 11 mukaisessa järjestyksessä, saadaan esimerkin tapauksessa seuraavanlainen lukujono: • (5) 2 –21 –8 0 0 0 0 0 –3 (loput 54 nollia) • DC-kerroin on suluissa, koska se jatkokäsitellään erillään AC-kertoimista. tMyn

  49. Jonon pituuteen perustuva RLE-menetelmä • RLE, Run Length Coding • Edellisen dian lukujonosta huomataan, että se sisältää eri pituisia määriä nollia ja sitten taas nollasta eroavan kertoimen (itse asiassa tuossa esimerkissä tällainen nollasarja esiintyi vain kerran, tyypillisesti niitä on useampi). • RLE tarkoittaa, että näitä taajuuskertoimia kootaan sarjaksi pareja [run, amplitude]. • run ilmoittaa nollakertoimien lukumäärän ja amplitude sen kertoimen arvon, joka päätti tuon kyseisen nollajonon. tMyn

  50. Variable-Length Coding • Tiivistys perustuu merkkien vaihtuvamittaiseen koodaukseen. • Useammin esiintyvä merkki koodataan vähemmällä määrällä bittejä verrattuna harvemmin esiintyvään merkkiin. • Kysymyksessä on entropiakoodaus, ja Huffman-koodaus on tyypillisesti käytössä sopivasti erikoistettuna. tMyn

More Related