Bildkodning och datakompression Föreläsning 11 Videokodning Bildkodning och datakompression Föreläsning 11
Innehåll Kodning av färgbilder Rörliga bilder: Från 2D till 3D? Hybridkodning Standarder för videokodning
Del I: Färgkodning De tre grundfärgerna i färgtelevision är Rött: 700 nm Grönt: 546 nm Blått: 435 nm Tre grundfärger är tillräckliga för att syntetisera (nästan) alla andra färger!
Färgvektorn B I detta plan är luminansen Y = R+G+B = 1 R G
PAL-färgssystemet Y = 0.30B + 0.59G + 0.11B Cr = 0.70R - 0.59G - 0.11B Matris R-Y B B-Y Y = 0.30B + 0.59G + 0.11B Cr = 0.70R - 0.59G - 0.11B Cb = - 0.30R - 0.59G + 0.89B Y luminans; Cr, Cb krominans (färgdifferenser)
Kodning av färgbilder Ändra bas till YUV (ungefär samma som YCrCb). För mer information om färgrepresentationer, se FAQ på www.inforamp.net/~poynton Vårt synsystem uppfattar luminansen med högre upplösning än krominansen! Subsampla färgkomponenterna. Y U V 4:2:0 Y U V 4:2:2
Del II: Kodning av rörliga bilder Princip I – Utöka kända 2D-metoder till 3D.
Avkodnings-komplexitet Stillbildskodning - sammanställning Kodnings- metod Prestanda (bpp) Komplexitet Avkodnings-komplexitet PCM 6 – 8 låg VQ 0.5 – 2 mycket hög Prediktiv 2 – 5 Transform 0.5 – 1.5 hög Delband/ Wavelet 0.1 – 1.0
Utökning av 2D metoder Prediktiv kodning. Transformkodning. 3D prediktorer Rörelsekompenserande prediktion Transformkodning. 3D transformer Delbandskodning. 3D delbandsfilter Men! Bildsignalens egenskaper skiljer sig åt i bild- och tidsdomänen!
Går ut på att använda olika kodningsmetoder spatiellt och temporalt. Således: Princip II: Hybridmetoder Går ut på att använda olika kodningsmetoder spatiellt och temporalt. Kombination av prediktiv kodning och transformkodning är särskilt populär!
Del III: Hybridkodning Använd prediktiv kodning för att prediktera nästa bild i sekvensen (tidsled). Använd transformkodning för att koda prediktionsfelet (bildled).
Transformkoding T Q VLC T: Transform Q: Kvantisering VLC: Variabellängdkodare
Prediktiv kodning Q VLC Q-1 P Q: Kvantiserare Q-1: Invers-kvantiserare (rekonstruktion) P: Prediktor
Hybridkodning T Q VLC Q-1 T-1 P
Prediktorn kan göras effektivare om den estimerar rörelser... ”Bild-för-bild” Prediktivt kodad ”P-bild” Intra-kodad ”I-bild” Prediktorn kan göras effektivare om den estimerar rörelser...
Rörelsekompensering
Rörelsekompenserad Hybridkodning TQ-1 TQ P VLC TQ: Transform + kvantisering ME ME: Rörelse-estimator VLC
Rörelsekompensering Typiskt en rörelsevektor per makroblock (4 transform block). Rörelsekompensering är beräkningskrävande Hierarkisk rörelseestimering. Maximal längd på rörelsevektorerna. Smarta sökstrategier. Noggrannheter hos rörelsevektorer: hel, halv eller kvarts bildpunkt. Bilinjär interpolation.
Del IV: Standarder för videokodning Mobile videophone Videophone over PSTN ISDN videophone Video CD Digital TV HDTV 8 16 64 384 1.5 5 20 kbit/s Mbit/s Very low bitrate Low bitrate Medium bitrate High bitrate MPEG-4 H.263 H.261 MPEG-1 MPEG-2
Del IV: Standarder för videokodning Mobile videophone Videophone over PSTN ISDN videophone Video CD Digital TV HDTV 8 16 64 384 1.5 5 20 kbit/s Mbit/s Very low bitrate Low bitrate Medium bitrate High bitrate MPEG-4 H.264 H.263 H.261 MPEG-1 MPEG-2
Standarder, forts. H.26x MPEG - standarder för realtidskommunikation såsom bildtelefoni, videokonferens. (ITU) MPEG - standarder för lagrade videodata såsom filmer på CD etc. (ISO)
H.261 Standard för ISDN bildtelefoni (1990). Rörelsekompensering: En rörelsevektor per makroblock. Ett makroblock = fyra 8x8 luminansblocks + två krominansblock (ett U och ett V). Rörelsevektorer är max 15 bildpunkter långa längs vardera dimension. Format: CIF (352x288) eller QCIF (176x144) 7.5 – 30 frames/s. Datatakt: Multipel av 64 kbit/s (=ISDN) inkluderande ljud. Kvalitet: Acceptabel ner till 128 kbit/s (liten rörelse).
H.263 Standard för bildtelefoni över analoga telelinjer (1995). Format: CIF, QCIF or Sub-QCIF. Vanligtvis mindre än 10 bilder/s. Datatakt: Typiskt 20-30 kbit/s. Kvalitet: Jämförbar med H.261 (vid halva datatakten).
H.264 = MPEG-4 part 10 (AVC) ITU och ISO i samarbete: H.264 Samarbetet avser endast videokodaren (ej övriga MPEG-4 delar)
H.264/MPEG-4 del 10 4*4 heltalstransform (approximation till DCT) Blockprediktion upp till 16*16 block Rörelsevektorer för 4*4 upp till 16*16 block Upp till 5 referensbilder för prediktion Olikformad kvantisering Aritmetisk kodning av skurlängder/amplituder Prestanda: ca 50% lägre datatakt jämfört med H.263 Se kurshemsidan för detaljerad beskrivning av metoden
MPEG Moving Pictures Expert Group – en kommitté under ISO. Ursprungsplan: MPEG-1 för 1.5 Mbit/s (Video-CD) MPEG-2 för 10 Mbit/s (Digital TV) MPEG-3 för 40 Mbit/s (HDTV) Vad som senare hände: MPEG-2 för 2 – 60 Mbit/s (TV och HDTV) MPEG-4, -7 och –21 för andra saker.
MPEG-1 ISO/IEC standard (1991). Mål för datatakten: 1.5 Mbit/s (Video CD). Egenskaper: B-bilder. Mer flexibel än H.261. JPEG-liknande kodning av I-bilderna. Format: CIF Ej radsprång. 24-30 frames/s.
Bildtyper I B P ”Group of frames” (GOF) Prediktivt kodad ”P-bild” Intra-kodad ”I-bild” Bi-directionellt prediktivt kodad ”B-bild” I B P ”Group of frames” (GOF)
MPEG-kodning av I-bilder Intrakodning. 8x8 DCT. Valfri viktsmatris för komponenterna. Prediktiv kodning av DC-komponenter. Likformig kvantisering. Zig-zag, skurlängd, entropikodning.
MPEG-kodning av P-bilder Rörelsekompenserad prediktion från I- eller P-bild. Halv-pixel noggrannhet i rörelsevektorer, bilinjär interpolation. Prediktiv kodning av rörelsevektorer. Prediktionsfelet kodas som I-bild.
MPEG-kodning av B-bilder Rörelsekompenserad prediktion från två konsekutiva I- eller P-bilder. Enbart framåtprediktion (1 vektor/makroblock). Enbart bakåtprediktion (1 vektor/makroblock). Medelvärdet av framåt- och bakåt-prediktion (2 vektorer/makroblock). I övrigt som P-bilder.
MPEG-1 at 0.5 Mbit/s
MPEG-1 at 1.4 Mbit/s
MPEG-1 at 1.8 Mbit/s
MPEG-2 ISO/IEC standard (1994). Egenskaper: Format: klarar radsprång (optimerad för TV). Ytterligare mer flexibel än MPEG-1. Format: 352x288 704x576 (25 bilder/s) eller 640x480 (30 bilder/s) 1280x720 eller 1920x1080 (HDTV) Datatakt 2-60 Mbit/s ~4 Mbit/s: Bildkvalitet jämförbar med PAL / NTSC / SECAM. 18-20 Mbit/s: HDTV.
MPEG-2 (cont.) Profiler: Erfarenheter: ”Simple profile” ej B-bilder. ”Scalable profiles”. Erfarenheter: Vid 1.5 – 2 Mbit/s är MPEG-2 inte bättre än MPEG-1. Med manuell interaktion vid kodningen kan förbättrad kvalitet fås vid 3 – 4 Mbit/s. Lång tid för industrin att lösa kompabilitetsproblemen mellan olika leverantörers utrustning. Buffert- och datataktsstyrning är svåra problem.
MPEG-4 ISO/IEC standard 1998, version 2 1999 Istället för att koda ”frames” kodas ”audio-visuella objekt” Mindre fokus på kompression, mer på innehållsbaserad funktionalitet Definierar: Mediaobjekt (video, audio, text, grafik...). Parametrar för objektbeskrivning. Bitströmssyntax för de (komprimerade) parametrarna Scen-beskrivning, filformat, ”streaming”, synkronisering, ... Tillåter mixning av mediaobjekt.
Delarna i MPEG-4 standarden Del 1, Systems, innehåller Bitströmssyntax och det ”binära språket för scenbeskrivningen Beskrivningar för grafikobjekt Multiplexering, transport, ... Del 2, Visual, innehåller Videokodning (se H.264) Stillbildskodning Texturkodning, ... Del 3, Audio, innehåller en verktygslåda för olika ljudkodningstillämpningar ...
Strukturen hos en MPEG-4 avkodare A/V object Decoder A/V object Decoder Bitstream Audio/Video scene MUX Compositor A/V object Decoder
MPEG-4 (naturlig) Video Istället för ”frames”: Video Object Planes Kodas med Shape Adaptive DCT Alpha map A video frame Background VOP VOP SA DCT
MPEG-4 Videokodning TQ-1 TQ VLC Mux VLC VLC TQ: Transform + quantization TQ-1 TQ VLC Predictor Motion estimation Mux VLC VLC Shape coding
Synthetic/Natural Hybrid Coding Blandar traditionell video med 2D/3D grafik Möjliggör virtuella miljöer Enkelt att lägga till text, grafik, stillbilder, etc Hög kompression Kan ta emot objekt från olika källor Kan använda fördefinierade eller lokalt definierade objekt Skalbarhet Progressiv avkodning Mer kompetenta terminaler kan ge bättre återgivning.
Syntetiska objekt 2D/3D grafik VRML scener och objekt Linjer, polygoner Stillbilder bild/video mappning på “polygonmeshar” VRML scener och objekt Animerade människor Mer om animering och virtuella personer i föreläsning 12! Syntetiskt ljud Mer om syntetiskt ljud i föreläsning 12!
Virtuella bakgrunder Nerladdade virtuella bakgrunder Olika bakgrunder för olika användare Enkelt byte mellan bakgrunder Syntetiska är billigare än verkliga bakgrunder
Verktyg för syntetiska objekt Wavelet-baserad stillbildskodning Skalbar kvalitet och upplösning Progressiv avkodning Kan mappas på 2D or 3D meshes Kompression av 2D and 3D meshes Mesh geometri och animering Vertex koordinater skickas, mottagaren räknar fram polygonerna Rörlig bild eller stillbild kan mappas på meshen (texture mapping).
Fler verktyg för syntetiska objekt Ansikts- och helkroppsanimering Text-till-tal (TTS) interface Riktningsberoende skalbar textur Information om tittarens placering i 3D-scenen skickas tilbaks till sändaren Bara nödvändig texturinformation sänds till mottagaren.
Allt sammansätts i avkodaren! Naturligt videoobjekt mappat på 2D mesh Stillbild eller naturligt videoobjekt mappad på animerad 3D mesh Datorgrafiskt genererad virtuell miljö Allt sammansätts i avkodaren!
Mer om detta i föreläsning 12. Hur hanteras ljudet? MPEG-1 Audio layer I, II and III (mp3). MPEG-2 Fyra kanaler, samma kodare som i MPEG-1. AAC (Advanced Audio Codec) tillagd senare. MPEG-4 AAC Två talkodare ”strukturerad” audio Och ytterligare saker... Mer om detta i föreläsning 12.
Andra format Microsoft, RealVideo, QuickTime, DivX... Alla är varianter av MPEG-kodaren, med lite individuella finesser.
Sammanfattning Kodning av färgbilder Ändra representation från RGB till luminans och krominans Krominansbilderna kan komprimeras kraftigare än luminansbilden Kodning av rörliga bilder (videokodning) Hybridkodning: Rörelsekompenserad prediktion och transformkodning av prediktionsfelet I-, P-, och B-bilder Objektbaserad kodning (MPEG-4) kan blanda syntetiskt och naturligt ljud och bild
Sammanfattning (forts.) Standarder MPEG-1: Video CD (VCD) MPEG-2: Digital TV MPEG-4: Multimedia H.261: ISDN videotelefoni H.263: PSTN videotelefoni H.264:/MPEG-4 del 10 Universell video