Föreläsning 7: Bild- och videokodning Inledning - varför bildkodning - tillämpningar - grundprinciper Förlustfri kodning - Variabellängdskodning - Skurländskodning - Huffmankodning Irreversibla kodningsmetoder - prediktiv kodning - Transformkodning - JPEG - Waveletkodning - JPEG2000 Videokodning - 3D prediktiv kodning - Hybrid transform/prediktiv kodning - Rörelseestimering Videokodningsstandarder - MPEG, H.263 MPEG-4 - Video - Syntetiska bilder - Ansiktskodning Modellbaserad kodning - Analys av ansiktsrörelser - Bildsyntes Video-överföring i forntid Alexander Baird 1930 Antal linjer: 30 Bandbredd: ca 3 khz 1
Varför bildkodning? Rå digitaliserad TV: 270 Mbit per sekund ADSL: 2 Mbit per sekund TV via ADSL: 135 abonnemang behövs... Komprimering är ofrånkomlig! Exampel på produkter som använder avancerad bildkodningsteknik 2
Tillämpningar Stillbilder Fax (2.4-14.4 kbit/s) Web (56-512 kbit/s) Teleradiologi (64-384 kbit/s) Digitalkamera (0.1-1 MB/bild) Bilddatabaser(> 1 GB) Video Bildtelefoni (8-128 kbit/s) Videokonferens (64-384 kbit/s) Multimedia (0.3-2 Mbit/s) Digital-TV (2-6 Mbit/s) DVD (6-19 GB) Bildkodning som teknik/vetenskaps-område Telekommunikation Bildbehandling Bildkodning Datorgrafik Digital signalbehandling 3
Bildkodning baseras på... Statistisk redundans ---------------------- reversibel kodning Maskeringseffekter i synsystemet ------ irreversibel kodning (osynlig distorsion) Selektering av bildinformation ---------- irreversibel kodning (synlig distorsion) Reversibel (förlustfri) kodning 1. utnyttja statistisk redundans: - olika symbolsannolikheter (p i ) eller - symbolberoenden, 2. använd variabla kodordslängder eller variabelt antal symbols per kodord (VLC), 3. adaptera till föränderlig statistik, 4
Reversibel kodning - exempel 1 Bildtyp: fax. Statistisk redundans: närliggande bildpunkter har ofta samma värde. Kodningsmetod: Skurlängdskodning. Skurkod: 15,15,15,4,5,6,4,6,5,3, Antag 4 bitar/skur: 45*4 = 180 bitar jfr. okodat: 15*15 = 225 bitar Reversibel kodning - exempel 2 Gråskalebild med nivåer mellan 0-3. Statistisk redundans: de olika nivåerna förekommer olika ofta (se figur). Kodningsmetod: Huffmankodning (olika kodordsländger) % 50 0 1 2 3 Histogram nivå PCM 0-00 1-01 2-10 3-11 Huffman 0-0 3-10 1-110 2-111 2 bitar/bildpunkt 1.75 bitar/bildpunkt i genomsnitt! 5
Andra VLC metoder Aritmetisk kodning En metod som möjliggör enkel anpassning till ny källstatistik. Universell kodning Ett gemensamt namn på metoder som automatiskt anpassar sig till källstatistiken. Ett exempel är Lempel-Ziv koding. Gränser för reversibla metoder Praktisk kompressionsgräns för gråskalebilder: ca 2 ggr (för fax-bilder 5-10 ggr). Teoretisk gräns ges av Shannons entropimått: H = p i log(1/ p i ) Där p i är sannolikheten för pixel (eller block-)värde i. 6
Irreversibla kodningsmetoder Prediktiv kodning Transformkodning Waveletkodning Grundprincip: förlustfri transformation Kvantisering (A/D omvandling) VLC kodning En bild och dess histogram 256*256*8 bitar Direkt VLC-kodning ger ca 7 bitar per bildpunkt 7
Differentiell kodning (prediktiv kodning) princip: Källsymbolerna predikteras från föregående symboler source symbols VL-coder to channel predictor Prediktorn använder "all" tidigare kunskap för att skapa en differenssignal med så låg amplitud som möjligt. Differensbild efter en-stegs prediktion VLC ger 2,6 bitar per bildpunkt 8
Prediktiv kodning - egenskaper + enkel metod + reversibel/irreversibel försämrad kantskärpa måttlig kompression Transformkodning Transformkodning bygger på att vissa (spatiala) frekvenskomponenter förekommer oftare än andra. Metoden utvecklades under 1970-talet. Den ligger till grund för den s.k. JPEG-standarden. (JPEG = Joint Photographic Experts Group) 9
Exempel - fullbilds Fourier transform 2D DFT Reduction 2D IDFT Praktisk transformkodning (JPEG) 1. Bilden delas upp i små block, ex.vis 8*8 bildpunkter. 2. Varje block approximeras som en viktad summa av lämpligt valda basblock. 3. Vikterna överförs till mottagaren. + + + + a 1 a 2 a 3 a 4 a 5 För perfekt rekonstruktion åtgår lika många vikter som det finns bildpunkter i blocket, ex.vis 64 st. 10
DCT-transformens basblock 1D - DCT basfunktioner [C] i,j = c cos ( 2j + 1) i π N 2N (c = 1 om i= 0 annars c = 2) 2D transformer fås genom yttre produkter av 1D transformer 11
Transformkodning, forts. Om man samlar ihop samtliga vikter som hör till ett block erhålles dess transform : DC-komponenten 8 8 8 bildblock Transform 8 Exampel - transformen av ett bild block 12
Adressering av transformkomponenterna görs i ett zig-zag mönster: Skurlängderna och amplituderna Huffmankodas. Exempel: JPEG 256 KB 16 KB 13
Transformkodning - egenskaper + hög kompression + reglerbar kvalitet synliga blockgränser Waveletkodning (delbandskodning, subband coding ) en vidareutveckling av transformkodning Fördelar: lägre komplexitet inga blockeffekter progressiv uppdatering 14
Waveletkodning forts. Princip: bilden delas iterativt upp i (vertikala/horisontella) högpass och lågpassband med hjälp av filter: Vid kodningen läggs färre bitar på lågenergikomponenter Waveletkodning - egenskaper + hög kompressionsgrad + naturlig distorsion (suddighet) + Ingår i den nya JPEG-standard (JPEG2000) 15
JPEG2000 vs JPEG högre dynamik (16-32 bitar/bildpunkt) bättre kodningsprestanda (25-30% lägre datatakt) progressiv transmission reversibel kodning inom Region-of-interest accepterad standard (2001). Jämförelse vid 64 ggr kompression JPEG JPEG2000 16
Videokodning (kodning av bildsekvenser) Temporal-prediktiv kodning Hybrid transform - prediktiv kodning Modellbaserad kodning Temporal-prediktiv kodning t Prediktion (linjär/rörelsekompenserad) VLC Princip: gissa (prediktera) hur bilden ser ut, beräkna skillnaden (felbilden), variabellängd-koda felbilden. 17
Hybrid transform - prediktiv kodning bildsekvens Predikterad bild Rekonstruerad föregående bild T: DCT transform Q: quantizer VLC: variable length coder Rörelsekompenserande prediktion (H.263, MPEG) ME: Motion estimator P: temporal predictor 18
19
20
21
22
Exempel H.263, 13 kbit/s H.263, 20 kbit/s 23
24
25
26
27
Demo: Peter & Clinton 28