ELIS – Multimedia Lab Multimedia academiejaar 2006–2007 Practicum 2: Videocodering 26 februari 2007 Sarah De Bruyne Multimedia Lab vakgroep Elektronica en Informatiesystemen faculteit Ingenieurswetenschappen Universiteit Gent
2/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Overzicht Praktische gegevens - afspraken Inleiding practicum 2: videocodering –coderen van stilstaande beelden –compressieschema’s voor bewegende beelden Opgave practicum 2
3/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Praktische gegevens - afspraken Vragen en opmerkingen –Sarah De Bruyne onderwerp beginnen met [MM]! groepsnummer vermelden! Evaluatie –elke oefening wordt bekeken per groep –oplossingen dienen beschikbaar te zijn op de daartoe vooropgestelde plaats tegen een vooraf opgelegde datum Website: –
4/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Practicum 1 Oplossingen uploaden naar persoonlijke map –videokwaliteit-directory Respecteer de deadline: donderdag 1 maart 2007 (14u)
ELIS – Multimedia Lab Inleiding practicum 2: Videocodering
6/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Principes van videocodering Doel: –videobeelden voorstellen met minder bits dan de originele beelden –gebruikmakend van de eigenschappen van videobeelden –door het uitbuiten van redundantie spatiaal per beeld temporeel over meerdere beelden spectraal eigenschappen Human Visual System (HVS)
7/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Kleurenruimte Beeld opgebouwd uit pixels –een pixel bestaat uit een aantal waarden intensiteit en kleur –het aantal waarden en hun bereik hangt af van de gekozen kleurenruimte bekende kleurenruimtes: RGB, CMYK, LAB, YUV, … –onderbemonstering voor YUV
8/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Compressie van stilstaande beelden Functionele blokken –transformatie spatiale en spectrale redundantie lokaliseren –quantisatie precisie van coëfficiënten verminderen –scanning omzetten van 2-dimensionale naar 1-dimensionale voorstelling –entropiecodering statistische compressie Entropiedecoder Gedecodeerd beeld Origineel beeld Inverse Transformatie Quantisatie Inverse Quantisatie EntropiecoderScanning Inverse Scanning Opslag / Transmissie
9/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Onderverdeling van een beeld Elk beeld wordt onderverdeeld in slices Elke slice is opgebouwd uit macroblokken Elk macroblok bestaat uit –één matrix van 16x16 luminantiesamples –twee matrices met chrominantiesamples
10/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Transformatie (1) Differential Pulse Code Modulation (DPCM) –niet elke pixel afzonderlijk coderen, maar deze voorspellen aan de hand van naburige pixels –door de spatiale correlatie zal deze voorspellingsfout klein zijn
11/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Transformatie (2) Discrete Cosinus Transformatie (DCT) –beeld is lineaire combinatie van DCT-basisfuncties –DCT: bepalen van coëfficiënten ( X ij ) –doel: lokaliseren van spectrale en spatiale redundantie –transformatie aan de hand van twee matrixvermenigvuldigingen X 11 +X 12 +X 13 +X X 21 +X 22 +X 23 +X X 31 +X 32 +X 33 +X X 41 +X 42 +X 43 +X … =
12/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Transformatie (3) stijgende verticale frequentie stijgende horizontale frequentie DCT-coëfficiënten (in absolute waarde) Discrete Cosinus Transformatie (DCT) –na DCT beeld is ontbonden in een klein aantal coëfficiënten die visueel belangrijk zijn grote meerderheid stelt minder belangrijke informatie voor Coëfficiënt in linkerbovenhoek: AC- coëfficiënt Andere coëfficiënten: DC- coëfficiënten zorgt niet voor compressie!
13/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 origineel gequantiseerd(>>2) gedequantiseerd(<<2) Quantisatie (1) Doel –visueel minder belangrijke coëfficiënten verwijderen en/of nauwkeurigheid verminderen (voorstellen met minder bits) –de gequantiseerde coëfficiënten kunnen met minder bits gecodeerd worden door hun lagere entropie –na inverse quansatie bekomt men niet langer de originele DCT- waarden dit proces is verlieshebbend
14/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Quantisatie (2) Standaard quantisatie: –grote stapgrootte ruwe schatting van originele waarden lagere kwaliteit lagere bitsnelheid Voorbeeld vorige slide: –Nadeel: alle waarden behorend tot eenzelfde interval worden afgebeeld op de laagste waarde. [4,8[ na quantisatie = 1 na inverse quantisatie = 4 gevolg: grote gemiddelde quantisatiefout
15/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Quantisatie (3) Een betere oplossing is om de waarden af te beelden op de gemiddelde waarde van het interval. –[2,6[ wordt nu afgebeeld op 4 (met Qstep = 4) –gemiddelde quantisatiefout is kleiner Verdere uitbreidingen : –plaatsafhankelijke quantisatiestap rekeninghoudend met de belangrijkheid van de coëfficiënten –verwijderen van minder belangrijke coëfficiënten
16/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Invloed verwijderen DCT coëfficiënten DC DC + 9 ACs DC + 3 ACs Alles
17/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Invloed herschalen DCT coëfficiënten Qstep = 1 Qstep = 28 Qstep = 50 Qstep = 40 gecodeerd met H.264/AVC
18/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Scanning 2-dimensionale 1-dimensionale voorstelling Keuze van scanningsmethode wordt bepaald door de eigenschappen van de transformatie –bij DCT zigzag scan meest significante coëfficiënten bevinden zich in de linkerbovenhoek …
19/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Entropiecodering Doel –frequent voorkomende symbolen korte codewoorden –weinig voorkomende symbolen langere codewoorden Gequantiseerd macroblok bestaat uit klein aantal significante coëfficiënten –veel nulcoëfficiënten –kan efficiënt gecodeerd worden m.b.v. statistische methoden
20/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Compressie van bewegende beelden Blokschema Referentie- beeld(en) Origineel beeld Bewegings- schatting beeldencoder + - beelddecoder Voorspelling Bewegingsgecompenseerde voorspelling Gecodeerd beeld Bewegingsvectoren
21/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Bewegingsestimatie - Bewegingscompensatie Uitbuiten van temporele redundantie –voorspellen van het huidige beeld aan de hand van reeds gecodeerde beelden –referentiebeelden zijn beelden die gebruikt worden bij voorspellingen
22/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari = Predictie aan de hand van voorgaand beeld Eenvoudigste manier: –kopie van voorgaand beeld als voorspelling van huidig beeld huidig beeldreferentiebeeld residubeeld hogere waarden hoofdzakelijk te wijten aan beweging betere compressie door bewegingsestimatie
23/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Bewegingsestimatie - Bewegingscompensatie Bewegingsestimatie en –compensatie –veranderingen in een frame door beweging van objecten bewegingsvector: de beweging van huidig frame t.o.v. referentie –zoek de beste voorspelling in het referentiebeeld residue: het verschil tussen het huidige beeld en de voorspelling codeer de bewegingsvector en het residu
24/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Bewegingsestimatie - Bewegingscompensatie Bewegingsestimatie wordt meestal uitgevoerd op blokken van 16x16, 8x8, 4x4, … afhankelijk van de gebruikte standaard Voor elk blok wordt de beste bewegingsvector gezocht huidig beeldreferentiebeeld bewegingsestimatie
25/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Zoeken van de beste bewegingsvector –het huidige blok vergelijken met blokken gelegen in het bijhorende zoekvenster in het referentiebeeld –het optimale blok is hetgene waarbij de energie van het verschil tussen het huidige blok en het voorspelde blok minimaal is Bewegingsestimatie - Bewegingscompensatie
26/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Bewegingsestimatie - Bewegingscompensatie Door bewegingsestimatie en –compensatie is het mogelijk een betere voorspelling te maken van het huidige beeld residubeeld na bewegingscompensatie residubeeld zonder bewegingscompensatie
27/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Overzicht van de principes van videocodering Referentie- beeld(en) Origineel beeld Bewegings- schatting beeldencoder + - beelddecoder Voorspelling Bewegingsgecompenseerde voorspelling Gecodeerd beeld Bewegingsvectoren Stap 3: Transformatie Quantisatie Scanning Entropiecodering Stap 1: Bewegings- estimatie Stap 2: Bewegings- compensatie Beeld moet opnieuw gedecodeerd worden zodat encoder en decoder dezelfde referentiebeelden gebruiken
28/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Opgave practicum 2 Implementeren van een eenvoudige video-encoder Raamwerk voorzien waarin een aantal onderdelen ontbreken –transformatie DCT op blokken van 8x8 pixels –quantisatie –bewegingsestimatie en –compensatie op blokgroottes van 16x16 gebruikmakend van een zoekvenster berekenen van energie door enkel rekening te houden met luminantiecoëfficiënten
29/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Opgave practicum 2 Raamwerk in C++ –enkel ondersteuning voor Windows XP –config.h parameters DO_MC, DO_DCT en DO_QT geven aan of deze stappen al dan niet in het encodeer- en decodeerproces moeten uitgevoerd worden –binnen elke codeerstap wordt op macroblokniveau gewerkt de coëfficiënten die gebruikt worden als input kunnen teruggevonden worden in mb luma, mb cr en mb cb aangezien de input van het ene blok de output is van het vorige moeten de verkregen waarden ook in deze structuren worden bewaard
30/30 ELIS – Multimedia Lab Multimedia – practicum 2: videocodering Sarah De Bruyne Gent, België – 26 februari 2007 Opgave practicum 2 Testen van resultaten –gebruikmakend van de parameters DO_MC, DO_DCT en DO_QT –door het verkregen gecomprimeerd bestand te decoderen en af te spelen in een YUV-speler kan gekeken worden of de algoritmen correct zijn –het oproepen van inverse methoden is mogelijk