Projektseminar Bildverarbeitung – Image Processing Projektseminar
Transcription
Projektseminar Bildverarbeitung – Image Processing Projektseminar
Forum http://forum.uni-duisburg.de/ Projektseminar Bildverarbeitung – Image Processing Guido H. Bruck guido.bruck@kommunikationstechnik.org Kommunikations Technik Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 1 1.04.2012 Projektseminar (Praktikum) Bildverarbeitung – Image Processing Guido H. Bruck Bildverarbeitung - Folie 3 1.04.2012 Anwendung von Bilddatenkompressionsverfahren Wahlpflichtfach Projektseminar „Anwendung von Bilddatenkompressionsverfahren“ • Kennenlernen von verschiedenen Verfahren zur Bilddatenkompression MPEG-1, -2, -4, Realmedia, Windows Media etc. • Software finden Jede Gruppe ein Verfahren • Software installieren Besprechung und Vorträge der Gruppen bei Treffen • Bildsequenzen für verschiedene Parameter codieren Anmeldung online bis zum 12.4.2013 unter www.kommunikationstechnik.org • Bildqualitäten vergleichen Freitags von 11:00 Uhr -14:00 Uhr, Beginn 19.4.2013, Raum BB130 • Ziel: Welches Verfahren ist derzeit das geeignetste für welche Parameter und ... • Quelle: c‘t 10/2001, S. 122ff ; c‘t 10/2003 S. 146ff ; c‘t 10/2005 S. 146ff Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 2 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 4 1.04.2012 1 Testsequenzen zur Bildcodierung Vorgehensweise • • • • • • Gesamtprojekt in Teilprojekte aufspalten Gruppen von Studenten bilden Teilprojekte den Studentengruppen zuordnen. Jede Studentengruppe bearbeitet ein Teilprojekt selbständig Jede Woche berichtet jede Gruppe mit einem kurzen Vortrag über den Fortgang der Arbeiten, stellt Fragen zur Diskussion und sammelt Vorschläge ein. Die Präsentation fasst jede Gruppe auf „Papier“ zusammen und stellt sie allen anderen Gruppen zur Verfügung Am Ende des Semesters haben wir das Gesamtprojekt bearbeitet und die Fragen gelöst. Kommunikations Technik Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 5 1.04.2012 Guido H. Bruck Bildverarbeitung - Folie 7 1.04.2012 Interessierende Bildgrößen und Datenraten Verfahren zur Untersuchung • • • Bildgrößen Video-Quellmaterial 720 x 576 Bildelemente Reduziertes Video-Quellmaterial 544 x 432 Bildelemente Source Input Format 352 x 288 Bildelemente Quarter SIF 176 x 144 Datenraten von 2MBit/s (LAN) bis 50kBit/s (ISDN, Modem, Mobil?) • • • • • • • MPEG-1, MPEG-2: Tsunami MPEG-Encoder: DivX-3.11 DivX-6: RealVideo: Windows Media Video 9: MediaRig: On2: Xvid http://www.tmpgenc.net/ http://www.divx-digest.com http://www.divxnetworks.com http://www.realnetworks.com http://www.microsoft.com/windows/windowsmedia http://www.ligos.com/ http://www.on2.com/ http://www.xvid.org/ http://www.netzwelt.de/software/3384-xvid-codec.html/ http://www.netzwelt.de/software/3585-xvid-codec-koepi.html/ http://www.netzwelt.de/software/3407-xvid-codec-nics.html Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 6 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 8 1.04.2012 2 Vorgehensweise Gruppeneinteilung I • • • • • • • • • • Informationen zu Codierungsprogramm im Internet finden, lesen, nötige Software herunterladen Software auf PC installieren nach Absprache Software in Betrieb nehmen Verschiedene Bildsequenzen mit unterschiedlichen Parametereinstellungen codieren und beurteilen Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 9 1.04.2012 Weitere interessante Internet-Seiten mit interessanter Software • • • • • • • • Pro Gruppe bis zu 5 Teilnehmer Gruppe 1 MPEG-1, MPEG-2 Gruppe 2 RealVideo Gruppe 3 Windows Media Series 9 Gruppe 4 DivX-6, DivX-3.11 Gruppe 5 H.264/AVC Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 11 1.04.2012 H.264/AVC http://forum.doom9.org/showthread.php?s=95e4af6393a64adbc027f77ac360fef7&threadid=73022 Digital Digest http://www.digital-digest.com/ Vcd-Helper http://www.vcdhelp.com/ Tha video capturing source http://home.swipnet.se/~w-129483/ Virtual Dub http://www.virtualdub.org/ http://forum.dvdboard.de/ http://www.videotools.net/ http://www.math.berkeley.edu/~benrg/index.html http://www.doom9.org/ x264 http://de.wikipedia.org/wiki/X264 mpegable mpegable provides a free VFW AVC/H.264 Enc/Decoder (not based on the reference), which uses P-Frames only http://mpegable-x4-live.softonic.de/ MainConcept MainConcept's AVC/H.264 implementation (based on the reference software?) is currently available as a free preview version (adds a watermark) http://www.mainconcept.com JM (Reference Software) The Reference Software of the AVC/H.264 standard already offers a very rich featureset http://iphome.hhi.de/suehring/tml/ Hdot264 Hdot264 is an opensource (GPL) VFW version of the reference software, written by doom9 member charact3r http://sourceforge.net/projects/hdot264/ Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 10 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 12 1.04.2012 3 H.264/AVC Beurteilung der Qualität von Videosignalen http://forum.doom9.org/showthread.php?t=96059 - x264: the first publically available High Profile encoder, opensource (GPL) (Source), available for VFW: x264vfw, ffdshow (output .avi), as commandline: x264cli (outputs .mp4, .mkv, raw), mencoder (outputs raw, .avi) (Doom9's MeGUI) or ffmpeg x264 supports 2pass, CABAC, Loop, multiple B-Frames, B-References, multiple Reference Frames, 4x4 P-Frame, 8x8 B-Frame Blocksizes, anamorphic signalling and High Profile: 8x8 dct and intra prediction, lossless and custom quant matrices - NeroDigital AVC: useable in Nero Recode2, outputs .mp4 ND AVC supports 2pass, CABAC, (adaptive) Loop, multiple B-Frames, mulitple Reference Frames, weighted prediction, 8x8 P-Frame Blocksizes, 16x16 B-Frame Blocksizes, Adaptive Quant. (Psy High) - Sorenson: useable in Sorenson Squeeze 4, outputs .mp4, Sorenson supports 2pass, max 2 B-Frames, B-References, Loop and multiple Slices - Apple: useable in Quicktime 7, outputs .mp4, .3gp and .mov, totally slow uses 2pass, max 1 B-frame, Loop (0,0), P8x8,B8x8,I4x4, Adapt. Quant, 5 Slices, no CABAC, no Weighted Pred., no multi Ref. - JM: The AVC Reference Software offers in v9.3 Main and High Profile: B/SP-Frames, CABAC, Loop Filter, 4x4 Blocksizes, multiple Reference Frames, Adaptive Quant, Error Resilience, RDO, Lossless Coding, Custom Quants, Rate Control aso... - Hdot264: opensource (GPL) VFW version of the reference software by doom9 member charact3r, still based on a very old version of the reference (JM 4.0c) - VSS: free preview VFW Encoder (limited to 5 days), based on the reference encoder - Elecard: useable in Elecard Mobile Converter, outputs .mp4 and MainConcept's v2 encoder, outputs .264 and .mpg PS/TS not publically available anymore: - Moonlight: useable in Moonlight's OneClick Compressor v1.1 and CyberLink's PowerEncoder, outputs .mpg Moonlight supports 1pass (VBR/CBR/Fixed Quants), CABAC, Loop, 2 B-Frames, 8x8 P-Frame Sizes, Adapt. Quant, PAR, Interlacing - MainConcept: was useable in the v1 encoder (adds a watermark), outputs .264 and .mpg PS/TS 1pass (CBR/VBR/fixed Quants), P-Frame Reorder, CABAC, Loop, Multiple B-Vops, Multiple Ref, 4x4 P-Frame Sizes, PAR, RDO - mpegable: offered for some time a free VFW Encoder (not based on the reference), doesnt handle YV12 mpegable supports 1pass (fixed quants) uses P-Frames only, 8x8 P-Frame Blocksizes, CAVLC only, Loop - Envivio: useable in 4Coder, outputs .mp4 Kommunikations Technik • • • • • • • Beurteilung auf der 5-stufigen „Impairment scale“ nach ITU-R BT 500 5.0 = transparent (this should be the original signal) 4.0 = perceptible, but not annoying (first differences noticable) 3.0 = slightly annoying 2.0 = annoying 1.0 = very annoying to annoy = stören, ärgern, lästig sein Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 13 1.04.2012 Guido H. Bruck Bildverarbeitung - Folie 15 1.04.2012 Grundlagen Beurteilung der Qualität von Videosignalen • • • • • Bildqualitätsbeurteilung, Untersuchungsparameter Irrelevanzreduktion Zeilensprung (Interlace) Beispiel für Bilddatenkompression – Pixelanzahlen – Abtastformate – MPEG-Codierung Testsequenzen bei unterschiedlichen Datenraten beurteilen 5 Reihe2 4,5 Reihe4 Reihe6 4 3,5 3 2,5 2 1,5 1 0,5 0 0 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 14 1.04.2012 Kommunikations Technik 100 200 300 400 500 600 700 800 900 Guido H. Bruck Bildverarbeitung - Folie 16 1.04.2012 4 1.4.2 Nutzung der Unvollkommenheiten des menschlichen Gesichtssinns zur Irrelevanzreduktion Beurteilung der Qualität von Videosignalen • • Testsequenzen bei unterschiedlichen Datenraten beurteilen – 2MBit/s 720x576 Pixel, 25fps – 1MBit/s 720x576 Pixel, 352x288 Pixel, 25fps – 500 kBit/s 720x576 Pixel, 352x288 Pixel, 25fps – 300 kBit/s 720x576 Pixel, 352x288 Pixel, 25fps – 150 kBit/s 352x288 Pixel, 25fps – 64 kBit/s 352x288 Pixel, 25fps Datenrate R: R S 1 n 25 s S 25 n s Prinzip der Standard-Bildzerlegung in zwei Teilbilder: S=Dateigröße n=Anzahl der Bilder in der Sequenz Bei den eingeführten Fernsehsystemen verwendet man das Teilbildverfahren. Bei ihm wird ein Vollbild in zwei Teilbilder (Halbbilder) zerlegt, die zeilenweise ineinander verschachtelt sind (Zeilensprungverfahren, Interlace-Verfahren). Blendenöffnung bei der Aufnahme bzw. Leuchtfleck bei der Wiedergabe 1 2 5 6 7 8 9 10 11 Vertikalrücklauf 1. Teilbild 2. Teilbild Kommunikations Technik Zerlegung in 11 “Zeilen” nach dem Zeilensprungverfahren Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 17 1.04.2012 Guido H. Bruck Bildverarbeitung - Folie 19 1.04.2012 3.1.1a Digitale Fernsehstandards 1.4.1 Nutzung der Unvollkommenheiten des menschlichen Gesichtssinns zur Irrelevanzreduktion In der elektronischen Bildübertragungstechnik nutzt man das begrenzte örtliche Auflösungsvermögen des menschlichen Auges dadurch aus, dass man das einzelne Bild in streifenförmige Elemente (“Zeilen” gelegentlich auch „Spalten“) mit Breiten zerlegt, die vom menschlichen Auge aus dem Normalbetrachtungsabstand unter einem Winkel gesehen werden, der kleiner als 1' ist und die über die Streifenbreite variierende Leuchtdichte z. B. durch deren “Mittelwert” ersetzt. Bei der elektronischen Bewegtbildübertragungstechnik wird zusätzlich das begrenzte zeitliche Auflösungsvermögen des menschlichen Gesichtssinns dadurch ausgenutzt, dass man eine begrenzte Anzahl von Bildern pro Zeiteinheit überträgt. Bei digitalen Bildübertragungsverfahren wird die Anzahl der Bits zur Amplitudendarstellung so gewählt, dass zu einem kontinuierlichen Signal kein Unterschied sichtbar wird. Kommunikations Technik Horizontalrücklauf 3 4 Guido H. Bruck Bildverarbeitung - Folie 18 1.04.2012 • • • • • DVB (-S, -C, -T…) ATSC ISDB (-T) ISDTV DTMB Europa, teilw. Andere Kontinente USA, Korea Japan, Brasilien Brasilien China ATSC DVB-T ISDB-T ISDTV DTMB MPEG-2 MPEG-2 MPEG-2 H.264 MPEG-2 MPEG-2 AAC MPEG-2 AAC H.264 MPEG-2 Video Digitization Dolby AC-3 Audio Digitization Multiplexing Signal Transmission Kommunikations Technik MPEG MPEG MPEG MPEG MPEG 8-VSB modulation Multiplex COFDM Multiplex COFDM Multiplex COFDM SCM and MCM Guido H. Bruck Bildverarbeitung - Folie 20 1.04.2012 5 3.1.1b Digitale Fernsehstandards • • • • • • • • • • • • 3.1.3 Bild-Abtastformate (Vollbild-Schemata) DVB = Digital Video Broadcast ATSC = Advanced Telecision Systems Comitee (USA, Korea) ISDB = Integrated Services Digital Broadcasting (Japan, Brasilien) ISDTV = International System for Digital Television (Brasilien) DTMB = Digital Terrestrial Television Multimedia Broadcasting (China) MPEG = Moving Pictures Experts Group Dolby AC-3 = Dolby Digital („Audio Coding 3“) AAC = Advanced Audio Coding VSB = Vestigial Side Band – Restseitenband COFDM = Coded Orthogonal Frequency Division Multiplex SCM = Single Carrier Modulation MCM = Multi Carrier Modulation 4:4:4-Format: X: Luminanz-Signal (Y) ; Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 21 1.04.2012 3.1.1c Digitales Fernsehen - SDTV Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 23 1.04.2012 3.1.4 Bild-Abtastformate (Vollbild-Schemata) Für die digitale Übertragung von Videosignalen werden für die Übertragung im Studio und für die Übertragung zum Endteilnehmer unterschiedliche Standards verwendet. Standard für die Studioanwendung (ITU-R, BT.601) Bei diesem Standard werden das Luminanzsignal (Y) und zwei Chrominanzsignale (CR,CB) getrennt, aber in fester zeitlicher bzw. räumlicher Zuordnung zueinander abgetastet. Die Abtastfrequenzen werden im Verhältnis 4:2:2 gewählt. Für die Standards, denen die Parameter Z = 625 und fv = 50 Hz zugrunde liegen, gilt: Anzahl der Abtastwerte pro Zeile Abtastfrequenz Y: 864 (brutto) 720 (netto) 13,5MHz CR,CB: 432 (brutto) 360 (netto) 6,75MHz Die Signale werden einer gleichförmigen Quantisierung mit einer Auflösung entsprechend 8 Bit unterzogen. Im Interesse einer einfachen standardübergreifenden Konvertierbarkeit der Signale gelten die Werte für die Abtastfrequenz und die Anzahl der Abtastwerte pro Zeile weltweit. Aus den o.a. Werten ergibt sich eine Gesamtdatenrate von 216 Mbit/s (brutto). Kommunikations Technik : Chrominanz-Signal (CR,CB) Guido H. Bruck Bildverarbeitung - Folie 22 1.04.2012 4:2:2-Format: 4:2:0-Format: X: Luminanz-Signal (Y) ; Kommunikations Technik : Chrominanz-Signal (CR,CB) Guido H. Bruck Bildverarbeitung - Folie 24 1.04.2012 6 3.1.5 Standard für die Übertragung zum Endteilnehmer 3.1.6a Diskrete-Cosinus-Transformation (DCT) Die in 3.1.1 genannte Datenrate ist für die Übertragung zum Endteilnehmer viel zu hoch. Zur Senkung der Rate verwendet man eine redundanz- und irrelevanzreduzierende Datenreduktion („Datenkompression“). Sie erfolgt weltweit nach den sogenannten MPEG-Standards (Speziell: MPEG-2-Standard „ISO/IEC IS 13818“). Der MPEG-2-Standard: (MPEG: „Motion Picture Experts Group“) Bei Bildsignalen bestehen große Abhängigkeiten zwischen zeitlich aufeinanderfolgenden Bildern und ebenfalls Abhängigkeiten zwischen benachbarten Bildelementen in eine Bild. Diese Abhängigkeiten sind in den Quellsignalen enthalten. Durch eine Entfernung dieser Abhängigkeiten lässt sich die zur Übertragung nötige Datenmenge reduzieren. Die Abhängigkeiten können auf der Empfangsseite in das Signal wieder eingefügt und so das Quellsignal rekonstruiert werden. Die 2-dimensionale DCT kann wegen ihrer Separierbarkeit auch als Hintereinanderschaltung zweier eindimensionaler DCT aufgefasst werden: Kommunikations Technik F ( x, ) N 1 2 y 1 2 C ( ) f ( x, y ) cos N 2N y 0 F ( , ) N 1 2 x 1 2 C ( ) F ( x, ) cos N 2N x 0 f x ( , y ) 2 y 1 2 N 1 C ( ) F ( , )cos N 0 2N f ( x, y ) 2 x 1 2 N 1 C ( ) f x ( , y)cos 2 N N 0 1 für , 0 2 mit C ( ), C ( ) und (üblich): N 8 1 sonst Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 25 1.04.2012 Guido H. Bruck Bildverarbeitung - Folie 27 1.04.2012 3.1.6 Diskrete-Cosinus-Transformation (DCT) 3.1.7 Diskrete-Cosinus-Transformation (DCT) Bei Bildcodierungsverfahren wird häufig eine Transformationscodierung unter Verwendung einer 2-dimensionalen DCT verwendet. Damit lassen sich Abhängigkeiten der Bildelemente innerhalb eines Bildes verringern. Dies geschieht auch beim MPEG-2-Standard. Die 2-dimensionale DCT ist beschrieben durch: Basisfunktionen der 1-dimensionalen DCT für eine Blocklänge von N=8: F ( , ) f ( x, y ) 2 x 1 cos 2 y 1 2 C ( )C ( ) f ( x, y ) cos N 2N 2N x 0 y 0 N 1 N 1 2 N N 1 N 1 C ( )C ( ) F ( , ) 0 0 cos 2 x 1 2N cos 2 y 1 2N 1 für , 0 2 mit C ( ), C ( ) und (üblich): N 8 1 sonst Kommunikations Technik 0,25 0,15 0,05 -0,05 -0,15 -0,25 0,25 0,15 0,05 -0,05 -0,15 -0,25 0,25 0,15 0,05 -0,05 -0,15 -0,25 0,25 0,15 0,05 -0,05 -0,15 -0,25 Guido H. Bruck Bildverarbeitung - Folie 26 1.04.2012 0 0 0 0 1 1 1 1 2 2 2 2 Kommunikations Technik 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 n=0 n=1 n=2 n=3 0,25 0,15 0,05 -0,05 -0,15 -0,25 0,25 0,15 0,05 -0,05 -0,15 -0,25 0,25 0,15 0,05 -0,05 -0,15 -0,25 0,25 0,15 0,05 -0,05 -0,15 -0,25 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 n=4 n=5 n=6 n=7 Guido H. Bruck Bildverarbeitung - Folie 28 1.04.2012 7 3.1.10 Die Quantisierung 3.1.8 Diskrete-Cosinus-Transformation (DCT) Zur Transformation werden jeweils 8*8 Bildelemente (Pixel) zu einem Transformationsblock zusammengefaßt. Aus 8*8 Originalwerten entstehen durch die Transformation 8*8 Spektralwerte. Zur im Regelfall irrelevanzreduzierenden Codierung werden in einem nachfolgenden Verarbeitungsschritt die Spektralkoeffizienten einer Quantisierung unterzogen. Sie geschieht dadurch, dass man die Spektralkoeffizienten zunächst durch ihnen zugeordnete Q-Werte dividiert und die Ergebniswerte auf ganze Zahlen rundet. Die Q-Werte sind den Blöcken entsprechend in zweidimensional angeordneten Tabellen zusammengefasst. Dabei sind für unterschiedliche Bildtypen und Verfahren auch unterschiedliche Tabellen üblich: Basisfunktionen der 2dimensionalen DCT für eine Blocklänge von N=8: Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 29 1.04.2012 3.1.9 Diskrete-Cosinus-Transformation (DCT) Kommunikations Technik 3.1.11 Die Quantisierung DCT-Explorer von Lutz Lißeck Download von den Internet-Seiten des Fachgebiets KT („Freie Software“) Quantisierungstabellen für MPEG-2: 8 16 19 22 22 26 26 27 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 31 1.04.2012 Guido H. Bruck Bildverarbeitung - Folie 30 1.04.2012 16 16 22 22 26 27 27 29 Kommunikations Technik 19 22 26 22 24 27 26 27 29 26 27 29 27 29 32 29 32 35 29 34 38 35 38 46 QI ( , ) 27 29 34 34 35 40 46 56 29 34 34 37 40 48 56 69 34 37 38 40 48 58 69 83 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 QP,B ( , ) 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 Guido H. Bruck Bildverarbeitung - Folie 32 1.04.2012 8 3.1.12 Codierung eines Blocks mittels der DCT 3.1.14 Codierung eines Blocks mittels der DCT Das folgende Beispiel einer JPEG-Codierung (Joint Photographic Experts Group), einem der MPEG-2-Codierung ähnlichen Codierungsverfahren für Standbilder, zeigt die Anwendung der 2-dimensionalen DCT mit N=8 und Quantisierung der Spektralkoeffizienten für einen Bildblock. Auf der Empfangsseite werden die normalisierten Spektralkoeffizienten mit den zugehörigen Q-Werten multipliziert (oftmals irreführend als „inverse Quantisierung“ bezeichnet). Mittels der DCT-Rücktransformation wird dann aus den denormalisierten Spektralkoeffizienten ein Bildsignalblock rekonstruiert. Signalwerte des Originalbildes DCT-Spektralkoeffizienten 139 144 149 153 155 155 155 155 1259, 6 1, 0 12,1 5, 2 2,1 1, 7 2, 7 144 151 153 156 159 156 156 156 22, 6 17,5 6, 2 3, 2 2,9 0,1 150 155 160 163 158 156 156 156 10,9 1, 6 159 161 162 160 160 159 159 159 159 160 161 162 162 155 155 155 9,3 7,1 0, 6 1,9 0,8 0, 2 1,5 1,5 Denormalisierte Spektralkoeffizienten 1,3 1, 2 0, 4 0, 2 0,9 0, 6 0,1 1,5 0,9 0,1 1, 6 0,1 0, 7 0, 0 0, 6 0,3 1,3 10 0 0 0 0 0 Rekonstruierte Bildsignalwerte 1264 0 144 146 149 152 154 156 156 156 24 12 0 0 0 0 0 0 14 13 0 0 0 0 0 0 155 156 157 158 158 157 156 155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 161 161 162 161 159 157 155 163 163 164 163 162 160 158 156 148 150 152 154 156 156 156 156 161 161 161 161 160 157 157 157 1,8 0, 2 1,5 1, 0 1, 0 0 0 0 0 0 0 0 0 163 164 164 164 162 160 158 157 162 162 161 163 162 157 157 157 1,3 0, 4 0,3 1,5 0,5 1, 7 1,1 0,8 0 0 0 0 0 0 0 0 160 161 162 162 162 161 159 158 162 162 161 161 163 158 158 158 2, 6 1, 6 3,8 1,8 1, 2 0, 6 0, 4 0 0 0 0 0 0 0 0 158 159 161 161 162 161 159 158 1, 6 0,3 0,8 Kommunikations Technik 1,9 Guido H. Bruck Bildverarbeitung - Folie 33 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 35 1.04.2012 3.1.15 8x8 DCT Beispiel 3.1.13 Codierung eines Blocks mittels der DCT Die DCT Spektralkoeffizienten werden durch die ihnen zugeordneten Q-Werte dividiert und die Ergebniswerte auf ganze Zahlen gerundet. Die so entstandenen Zahlen seine als „normalisierte Spektralkoeffizienten“ bezeichnet. Quantisierungstabelle (Q-Werte) Normalisierte Spektralkoeffizienten 0 1 0 0 0 0 0 16 11 10 16 24 40 51 61 79 12 12 14 19 26 58 60 55 2 1 0 0 0 0 0 0 14 13 16 24 40 57 69 56 1 1 0 0 0 0 0 0 14 17 22 29 18 22 37 56 51 68 87 80 109 103 62 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 35 55 64 81 104 113 0 0 92 0 0 0 0 0 0 0 0 49 64 78 87 103 121 120 101 0 0 0 0 0 0 0 0 72 92 95 98 112 100 103 0 0 0 0 0 0 0 0 Kommunikations Technik 99 Guido H. Bruck Bildverarbeitung - Folie 34 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 36 1.04.2012 9 3.1.16 8x8 DCT-Beispiel 3.2.1 Der MPEG-2-Standard Im allgemeinen wird man davon ausgehen können, dass das zu codierende Programmaterial dem Studio-Standard entsprechend im 4:2:2-Format vorliegt. Die Werteauflösung entspricht dabei 8 Bit (in Sonderfällen 10 Bit). Der Codierung nach dem MPEG-2-Standard liegt in der Regel das 4:2:0– Abtastformat zugrunde. Ausgehend vom 4:2:2–Format wird bei den Chrominanzsignalen, im Standard mit CR und CB bezeichnet, eine AbtastratenKonversion vorgenommen. Sie bewirkt neben der Konversion der Abtastfrequenzen in vertikaler Richtung auch die Veränderung der „Abtastposition“ um einen halben Zeilenabstand. Zur Transformation werden jeweils 8*8 Bildelemente (Pixel) zu einem Transformationsblock zusammengefaßt. Bei Vorliegen eines 4:2:0-Abtastformats deckt dementsprechend ein Chrominanzsignalblock die vierfache Bildfläche eines Luminanzsignalblocks ab. Vier im Quadrat angeordnete Luminanzsignalblöcke und zwei zugeordnete Chrominanzblöcke bilden einen Makroblock. Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 37 1.04.2012 3.1.17 8x8 DCT-Beispiel Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 39 1.04.2012 3.2.2 Der MPEG-2-Standard Makroblock-Struktur beim Main-Profile Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 38 1.04.2012 Y (EY) Y (EY) Block 0 Block 1 Y (EY) Y (EY) Block 2 Block 3 Kommunikations Technik CB (EU) CR (EV) Block 4 Block 5 Guido H. Bruck Bildverarbeitung - Folie 40 1.04.2012 10 3.2.4 Der MPEG-2-Standard 3.2.3 Der MPEG-2-Standard Im MPEG-2-Standard unterscheidet man verschiedene Bildtypen: I-Bilder: Intraframe codierte Bilder P-Bilder: Unidirektional prädizierte Bilder B-Bilder: Bidirektional prädizierte Bilder Die Abfolge der verschiedenen Bildtypen in einer Bildfolge ist weitgehend durch den Codierer festlegbar. Eine für die fernsehtechnische Anwendung günstige Abfolge zeigt Abb. 1. 1 2 3 4 5 6 7 8 9 10 11 12 13 I B B P B B P B B P Kommunikations Technik Abb. 1 B B Ein zur Bewegungsvektorschätzung häufig eingesetztes Verfahren ist das BlockMatching-Verfahren. Beispiel: I Guido H. Bruck Bildverarbeitung - Folie 41 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 43 1.04.2012 3.2.3 Der MPEG-2-Standard 3.2.5 Der MPEG-2-Standard Die I-Bilder werden eigenständig, ohne den Einsatz einer Prädiktion codiert. Sie stellen „Stützbilder“ dar und erlauben dem Empfänger einen Einstieg in die Decodierung der Bilder. Die P-Bilder werden unter Verwendung eines jeweils vorausgegangenen I- oder PBildes prädiziert. Das prädizierte Bild ist aber nicht einfach ein entsprechendes vorausgegangenes Bild, sondern ein durch Bewegungsschätzung aus dem vorausgegangenen hervorgehendes Bild. Die Bewegungsschätzung erfolgt makroblockweise. Dazu wird untersucht, welcher Block mit den Abmessungen eines Makroblocks einen Makroblock in einem aktuellen Block am besten annähert. Die Blockbewegungen werden in Form von Bewegungsvektoren zum Empfänger übertragen. Die B-Bilder werden jeweils aus einem vorausgegangenen I- oder P-Bild und einem nachfolgenden I- oder P-Bild geschätzt. Dazu werden auch bidirektional geschätzte Bewegungsvektoren ermittelt. Durch die Verwendung von B-Bildern kann die datenreduzierende Wirkung der Codierung merklich gesteigert werden. Zur Bildprädiktion werden Bildspeicher benötigt. Auch die Bewegungsvektorschätzung ist mit einem Speicherbedarf verbunden. Um den Speicherbedarf auf der Empfängerseite so klein wie möglich zu halten, sieht der MPEG-2-Standard eine Bildumsortierung vor. Z.B. die in 3.2.3 dargestellte Bildfolge erfährt zur Übertragung folgende Umsortierung: IBBPBBPBBPBBI IPBBPBBPBBIBB Durch das beschriebene Bild-Prädiktionsverfahren wird eine Wertedekorrelation in den Differenz-Bildern erreicht. Dementsprechend ist die dekorrelierende Wirkung der DCT in diesen Bildern im Vergleich mit der in den I-Bildern gering. Dies findet Berücksichtigung in der Auslegung der Quantisierungtabellen in 3.1.10. Für die IBilder werden die QI(-Werte und für die P- und B-Bilder die QP,B(-Werte verwendet. Die Tabelle der QI(-Werte berücksichtigt, dass die wesentliche Energie eines I-Bild-Blocks in den „niederfrequenten“ Spektralanteilen steckt. Die I-, P- und B-Bilder werden in Blöcke eingeteilt und die DCT-Spektralkoeffizienten berechnet und quantisiert. Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 42 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 44 1.04.2012 11 3.2.6 Der MPEG-2-Standard 3.2.8 Der MPEG-2-Standard Die quantisierten Spektralkoeffizienten werden vor ihrer Übertragung noch einer redundanzmindernden Codierung unterzogen, und zwar einer Lauflängencodierung und einer anschließenden „Optimalkodierung“ (z.B. Huffmann-Codierung). Die entsprechend den Originalwerten ebenfalls im Quadrat angeordneten Spektralwerte werden zunächst in eine eindimensionale Wertefolge umgewandelt. Die Wertefolge enthält im allgemeinen mehr oder weniger lange Null-Folgen, die als Runs bezeichnet werden. Ein Run wird jeweils in Kombination mit einem nachfolgenden Nicht-Null-Wert, einem sogenannten Level, codiert. Dabei sind auch Runs der Länge Null möglich. Die Run-Level-Kombinationen werden einer „Optimalcodierung“ (entsprechend einer abgebrochenen Huffmann-Codierung) unterzogen. Die Gesamtstruktur des MPEG-2-Coders geht aus Abb. 1 hervor (z.B. mit PBildschätzung). QD DCT Guido H. Bruck Bildverarbeitung - Folie 45 1.04.2012 MUX DCT: DCT-1: Q: Q-1: „Q-1“ RLC: VLC: ME: MC: P: PS: MV: MUX: B: QF: QD: DCT-1 MC ME Kommunikations Technik Q QF RLC VLC P PS MV Abb. 1 Kommunikations Technik B Diskrete Kosinus-Transformation Inverse Diskrete Kosinus-Transformation Quantisierungseinheit Rückgewinnung der (quantisierten) Spektralkoeff. Lauflängen-Codierung „Optimalcodierung“ Bewegungsschätzung Bewegungskompensation Prädiktor Bildspeicher Bewegungsvektoren Multiplexer Puffer Quantisierungsfaktor Quantisierungsdaten Guido H. Bruck Bildverarbeitung - Folie 47 1.04.2012 3.2.7 Der MPEG-2-Standard 3.2.9 Der MPEG-2-Standard Die Überführung der quadratisch angeordneten Spektralwerte-Koeffizienten in eindimensionaler Folge wird mithilfe eines sogenannten Zick-Zack-Scans vorgenommen. Ein solcher Scan ist in Abb. 1 gezeigt. Er schließt den Koeffizienten des Gleichanteils aus. Dieser wird in Form eines Differenzwertes gegenüber dem des vorausgegangenen Blocks getrennt codiert. Abb. 1 zeigt die MPEG-2-Decodierungsschaltung. QD B MUX-1 VLC-1 RLC-1 Q-1 DCT-1 P Abb. 1 MV MUX-1: Demultiplexer RLC-1: Zu RLC und VLC inverse Operationen VLC-1: Zu RLC und VLC inverse Operationen Durch die Verwendung der Operationen DCT-1 und Q-1 auch auf der Codierungsseite wird sichergestellt, dass im Coder und Decoder gleiche Werte prädiziert werden. Abb. 1 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 46 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 48 1.04.2012 12 3.2.10 Der MPEG-2-Standard 3.3.1 MPEG-4 1920*1152 Pixel (960*576) 100(80,25) Mbit/s 1920*1152 Pixel High Level 80 Mbit/s 1440*1152 Pixel High-1440 Level 1440*1152 Pixel 1440*1152 Pixel (720*576) (720*576) 60(40,15) Mbit/s 80(60,20) Mbit/s 60 Mbit/s Main Level 720*576 Pixel 720*576 Pixel 720*576 Pixel 15 Mbit/s 15 Mbit/s 15(10) Mbit/s 352*288 Pixel 352*288 Pixel Low Level 4 Mbit/s Levels Simple Profile Profiles (wie Main Profile, ohne B-Bilder) Main Profile (4:2:0, keine Scal.) Kommunikations Technik 720*576 Pixel (352*288) 20(15,4) Mbit/s 4(3) Mbit/s SNR Scalable Spatial Scalable Profile Profile (wie Main Profile + SNR Scal.) (wie SNR Prof., + Spat. Scal.) High Profile (wie Spat. Prof., + 4:2:2-Cod.) Guido H. Bruck Bildverarbeitung - Folie 49 1.04.2012 MPEG-4 hat eine gegenüber MPEG-2 erweiterte Funktionalität: • Kompression • Flexibilität • keine Festlegung auf bestimmtes Verfahren, oft nur Interfaces standardisiert • stattdessen: Sammlung verschiedener „Tools“ • „Profiles“ limitieren Tools, die der Decoder implementieren kann optimale Qualität für spezielle Anwendungen • Wie bei MPEG-1 und –2 sind der Decoder und der Datenstrom standardisiert. Verschiedene Hersteller können so verschiedene Encoder herstellen, die zusammen mit einem standardgemäßen Decoder unterschiedliche Bildqualitäten liefern. Wegen der besseren Darstellung wird hier teilweise der Codierungsvorgang dargestellt. Kommunikations Technik 3.2.11 Der MPEG-2-Standard 3.3.2 MPEG-4 Der MPEG-2-Standard beschreibt einen sogenannten generischen Code (Gatterungscode) für die „Gatterung“ Bewegtbildcodierung. Er unterteilt deren Gesamtbereich in Merkmalsbereiche, die hinsichtlich „qualitativer“ und „quantitativer“ Merkmale unterschieden werden. In der Sprache der MPEG werden die Merkmalsbereiche nach Profils und Levels unterschieden. MPEG-4 Entwicklungen des Standards im Bereich Visual: Eine Übersicht über die Profile-Level-Struktur des Standards gibt 3.2.10. Die in der Übersicht angegebenen Parameterkombinationen sind als Maximumwerte zu verstehen. Die in Klammern stehenden Werte beziehen sich auf niedere, sogenannte Layer der Profile-Level-Kombinationen der Formen der skalierbaren Codierung. Die MPEG-2-Codierung ist abwärtskompatibel aufgebaut. Das bedeutet: Ein Decoder, der einem Feld in der Tabelle zugeordnet ist, muss auch die Datenströme entsprechend den links und unterhalb dieses Feldes liegenden Felder decodieren können. Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 50 1.04.2012 Guido H. Bruck Bildverarbeitung - Folie 51 1.04.2012 MPEG-4-Standard ISO 14496, Part 2, Visual • Version 1: Basic MPEG-4, International Standard (IS) Mai 1999 • Version 2: Neue Tools und Profiles, IS Feb. 2000 • Amendment 1, Studio Profile: Tools und Profiles für Studio und Produktion IS März 2001 • Amendment 2, Streaming Video Profile: Weitere Tools und Profiles, IS März 2001 • Amendment 3, Neue Levels und Tools: IS Dec. 2002 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 52 1.04.2012 13 3.3.3 MPEG-4 3.3.5 MPEG-4 Codierung Die zu übertragenen Daten werden auf unterschiedliche Art und Weise codiert: • Szene wird in „Einheiten“ unterteilt, sog. „Audio-Visual Objects“ • Zusammensetzung der Audio-Visual Objects wird gespeichert im „Szenengraph“ • Audio-Visual Objects: • Video Objects • Natural (Kamera) • Synthetic (computergeneriert) • Audio Objects • Natural (Mikrofon) • Synthetic (computergeneriert) • Szenengraph sorgt für korrekte Positionierung der Media Objects • räumlich • zeitlich • Realisiert durch gerichteten, azyklischen Graphen Bespiel für die Codierung einzelner Audio-Visual Objects Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 53 1.04.2012 Kommunikations Technik Quelle: Kohtaro Asai and Fuminobu Ogawa: MPEG Coding Technologies, Mitsubishi Electric ADVANCE December 1998 Guido H. Bruck Bildverarbeitung - Folie 55 1.04.2012 3.3.4 MPEG-4 Szenegraph 3.4.1 Datenstrom MPEG-4 Visual Jedes Audio-Visual Object besitzt ein eigenes Koordinatensystem Szenengraph verfügt selbst auch über ein Koordinatensystem • durch Berechnung: „virtuelle Kamera“ möglich • Blickwinkel • Ausschnitt • Audio-Visual Objects einer Szene sind hierarchisch sortiert • Blätter: Primitive Audio-Visual Objects • Still Images - unbewegte Bilder (z. B. Hintergrund) • Video Objects (z. B. Person) scene • Audio Objects (z. B. Stimme) Codierung von visuellen Objekten in natürlichen und synthetischen, bewegten Bildern. Hierarchische Beschreibung einer „visual scene“: • Visual Object Sequence (VS): Die komplette MPEG-4-Szene kann beliebig viele 2D oder 3D natürliche oder synthetische Objekte und deren Erweiterungen enthalten • Video Object (VO): Entspricht einem bestimmten (2D-)Objekt in der Szene. Im einfachsten Fall ein rechteckiges Bild oder ein beliebig geformtes Objekt • Video Object Layer (VOL): Jedes Video-Objekt kann skalierbar (multi layer) codiert werden. Es gibt räumliche (spatial) und zeitliche (temporal) Skalierbarkeit, von grober bis zu feiner Auflösung. Der Decoder kann die passende Skalierung einstellen. • Group of Video Object Planes (GOV): Sie fasst mehrere Video Object Planes zusammen. Auf den Anfang einer GOV kann wahlfrei zugegriffen werden. • Video Object Plane (VOP) Person voice Kommunikations Technik Quelle: MPEG-4 – Ein Überblick, Paderborn Center for mobile Computing 2D Background Video picture Guido H. Bruck Bildverarbeitung - Folie 54 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 56 1.04.2012 14 3.4.2 Datenstrom MPEG-4 Visual 3.4.4 Datenstrom MPEG-4 Visual • • Video Object Plane (VOP): Sie stellt einen zeitlichen Abtastwert eines VideoObjektes dar und kann unabhängig oder durch Bewegungskompensation in Abhängigkeit von anderen VOPs codiert werden. Ein herkömmliches Videobild kann durch eine VOP mit rechteckiger Form repräsentiert werden. Beispiel einer VOP-Decodierung in MPEG-4 ohne Sprites Ein natürliches Video-Objekt enthält die folgenden Informationen: • Form (shape) • Bewegungsinformation (motion) • Texturen (texture) • Zusätzliche Kompression durch sprite Coding Sprites: zeitunveränderliche Video-Objekte, größer als das übliche Bild, zur Repräsentation größerer, statischer Bildinhalte (Hintergrund). Kommunikations Technik Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 57 1.04.2012 3.4.3 Datenstrom MPEG-4 Visual Guido H. Bruck Bildverarbeitung - Folie 59 1.04.2012 3.4.5 Datenstrom MPEG-4 Visual • • Quelle: Touradj Ebrahimi and Caspar Horne: MPEG-4 Natural Video Coding - An overview, aus dem Internet Beispiel einer Überlagerung mehrerer Video Object Planes (VOPs): Entsprechend enthalten die VOPs in Makroblöcken: • Zeitliche Abtastwerte des Video-Objekts: • Form-Informationen (Shape) • Bewegungsvektoren und –parameter • Texturdaten: Luminanzsignal und unterabgetastetes Chrominanzsignal wie bei MPEG-2 im Abtastformat 4:2:0 für DCT-Codierung in 8x8-Blöcken Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 58 1.04.2012 Kommunikations Technik Quelle: Andrew Perkis: MPEG-4 visual, SIE2070 Multimedia signal processing, 4/3/2002 Guido H. Bruck Bildverarbeitung - Folie 60 1.04.2012 15 3.5.1 Tools zur Codierung von VOPs natürlicher Video-Objekte 3.6.2 Binary-Shape-Coding • • Shape Coding Tools • Binary Shape Coding • Gray Scale Shape Coding Bewegungskompensation (Motion Compensation Tools) mit optionalen Erweiterungen: • Overlapped Motion Compensation, • Advanced Motion Compensation Texturcodierung Sprites Skalierbarkeit • Räumliche Skalierbarkeit • Zeitliche Skalierbarkeit Error Resilence ... ... • • • • • • • Kommunikations Technik • • • • • • Guido H. Bruck Bildverarbeitung - Folie 63 1.04.2012 3.6.3 Gray-Scale-Shape-Coding • Binary-Shape-Coding • Matrix (Binary Alpha Map) • definiert, ob Pixel zu Objekt gehört • 0 - liegt nicht drin • 255 - liegt drin Kommunikations Technik Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 61 1.04.2012 3.6.1 Binary-Shape-Coding Jede VOP wird von einer „Bounding Box“ umschlossen Zu der VOP gehört eine binäre Maske, die für jedes Pixel, das zur VOP gehört, den Wert 255 enthält. Alle anderen Pixel haben der Wert 0. Die binäre Maske wird in „Binary Alpha Blocks“ (BAB) der Größe 16x16 Pixel unterteilt, die einzeln codiert werden. Quelle: Touradj Ebrahimi, MPEG-4 Natural Haben alle Pixel den Wert 0, ist der Block Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne transparent und es erfolgt keine weitere Codierung. Haben alle Pixel den Wert 255, ist der Block undurchsichtig, er gehört zur VOP und es erfolgt eine Codierung. BAB werden durch eine „Context based Arithmetic Encoding“ (CAE) mit Bewegungskompensation codiert. Dabei gibt es InterCAE und IntraCAE mit und ohne Bewegungskompensation. • 0 0 0 255 0 0 0 0 0 255 255 255 0 0 0 255 255 255 255 255 0 255 255 255 255 255 255 255 Entspricht der Binary-Shape-Coding mit dem Unterschied, dass jeder Wert der Maske Werte zwischen 0 (transparent) und 255 (undurchsichtig) annehmen kann und mit den dazwischen liegenden Werten die Transparenz des zugehörigen Pixels beschrieben wird. Gray-Scale-Shape-Information wird mit einer bewegungskompensierten DCT ähnlich der Texturcodierung codiert Quelle: MPEG-4 – Ein Überblick, Paderborn Center for mobile Computing Guido H. Bruck Bildverarbeitung - Folie 62 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 64 1.04.2012 16 3.7.1 Bewegungskompensation (Motion Compensation) 3.7.3 Bewegungskompensation (Motion Compensation) • • Die bekannten Verfahren anderer Video-Codierungsstandards wurden an die VOP-Struktur von MPEG-4 angepasst. Daher gibt es drei Typen von Video Object Planes (VOP): • Eine VOP wird unabhängig von anderen VOPs codiert. Diese VOP wird Intra-VOP (I-VOP) genannt. • Eine VOP wird durch Bewegungskompensation auf Basis einer anderen vorher codierten VOP codiert. Solche VOPs werden Predicted VOP (P-VOP) genannt. • Eine VOP wird durch Bewegungskompensation auf Basis von früheren und zukünftigen VOPs codiert. Diese VOP werden Bidirectional Interpolated VOPs (B-VOP) genannt. Sie dürfen nur auf Basis von I-VOPs und P-VOPs interpoliert werden. Kommunikations Technik • Die Skizze zeigt verschiedene Typen von VOPs. Wenn ein 16x16 Pixel großer Macroblock ganz in der VOP liegt, geschieht die Bewegungskompensation auf Basis eines Block-Matching mit den Macroblöcken bzw. mit 8x8 Pixeln großen Blöcken im „Advanced Prediction Mode“. • • • • Die Texturinformation eines Video-Objektes wird mit Hilfe des Luminanzsignals Y und den beiden Chrominanzsignalkomponenten CR und CB beschrieben. Im Fall von I-VOPs enthalten das Luminanzsignal und das Chrominanzsignal direkt die zugehörigen Werte. Im Fall von bewegungskompensierten VOPs enthalten sie nur die nach der Bewegungskompensation verbleibenden Fehlersignale. Zur Codierung der Texturinformation wird eine übliche 8x8 blockbasierte DCT verwendet. Zeilensprung-Bilder: Field-DCT Coding Progressive Bilder: Frame DCT-Coding Eine Übersicht über den Codierungsvorgang zeigt das folgende Bild: VOP Textur Kommunikations Technik Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Guido H. Bruck Bildverarbeitung - Folie 67 1.04.2012 3.8.1 Texturcodierung • • Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 65 1.04.2012 3.7.2 Bewegungskompensation (Motion Compensation) Wenn ein Macroblock nicht ganz innerhalb der VOP liegt, werden verschiedene Füllverfahren für die außerhalb liegenden Teile sowie modifizierte-Block (Polygon)Matching-Verfahren verwendet. Guido H. Bruck Bildverarbeitung - Folie 66 1.04.2012 DCT Kommunikations Technik Quantisierung Prädiktion der Koeffizienten Scan der Koeffizienten Codierung mit variabler Wortlänge Datenstrom Guido H. Bruck Bildverarbeitung - Folie 68 1.04.2012 17 3.8.2 Texturcodierung 3.8.4 Texturcodierung Diskrete Cosinus-Transformation (DCT) • Blöcke der Größe 8x8 Pixel werden der VOP überlagert. Blöcke innerhalb der VOP werden ohne Veränderung codiert. Blöcke, die teilweise auf der Grenze der VOP liegen, werden anders behandelt. Low Pass Extrapolation: 1. Die Werte außerhalb der VOP werden auf den Mittelwert der Werte innerhalb der VOP gesetzt: N : Anzahl der Pixel pro Block 1 f r ,c r ,c VOP f x , y mit N x , y VOP f x , y : Signalwert an der Stelle x, y Kommunikations Technik Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne 2. Die Werte in der Nähe des Randes der VOP werden angepasst: f f f r ,c 1 f r 1,c f r ,c r ,c VOP r ,c 1 r 1,c 4 Als Signalwerte für die rechte Seite der obigen Gleichung kommen nur Werte in Betracht, die innerhalb der VOP liegen. Wenn Werte außerhalb liegen, werden sie nicht berücksichtigt und der Nenner des Bruches entsprechend angepasst. Nach der Erweiterung werden die Randblöcke genauso behandelt wie die inneren Blöcke. Guido H. Bruck Bildverarbeitung - Folie 69 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 71 1.04.2012 3.8.3 Texturcodierung 3.8.5 Texturcodierung • Quantisierung • Die nach der Transformation vorliegenden Spektralkoeffizienten werden quantisiert, indem die Spektralkoeffizienten durch einen Wert dividiert und die Ergebnisse auf ganze Zahlen gerundet werden. Dabei gibt es verschiedene Methoden: • Division durch Werte einer Quantisierungsmatrix ähnlich wie bei MPEG-2. • Division durch einen festen Wert. • Eine ungleichförmige Quantisierung („non-linear“) des DC-Koeffizienten ist möglich. • • • Blöcke der Größe 8x8 Pixel an den Grenzen der VOP enthalten nur teilweise Werte aus der VOP. Die übrigen Werte, die außerhalb der VOP lokalisiert sind, werden aus den Werten der VOP extrapoliert: Bei Luminanzsignal-Blöcken wird auf Basis 16x16 extrapoliert, bei Chrominanzsignal-Blöcken auf Basis 8x8. Bei P- und B-Blöcken werden außerhalb der VOP liegende Pixel mit dem Wert Null gefüllt. Bei I-Blöcken werden die außerhalb der VOP liegenden Werte durch einen zweistufigen Prozess mit Werten gefüllt. Dieser Prozess wird Low Pass Extrapolation (LPE) genannt. Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 70 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 72 1.04.2012 18 3.8.6 Texturcodierung 3.8.8 Texturcodierung Prädiktion der Spektralkoeffizienten in Abhängigkeit der Unterschiede der Koeffizienten in den Blöcken A, B und C DC-Prädktion AC-Prädiktion Statische Texturen Nachbarblock B Kandidatenblock C Nachbarblock B Kandidatenblock C Kandidatenblock A Aktueller Block Kandidatenblock A Aktueller Block Prädiktion des DC-Koeffizienten durch den Koeffizienten von Block A oder von Block C Kommunikations Technik Entweder die Koeffizienten der ersten Zeile oder der ersten Spalte werden aus den entsprechenden Koeffizienten eines ausgewählten Kandidatenblocks prädiziert. Guido H. Bruck Bildverarbeitung - Folie 73 1.04.2012 Mit MPEG-4 können statische Texturen, die sich also nicht bewegen, auf animierte 2Doder 3D-Oberflächen abgebildet werden. Zu diesem Zweck verfügt MPEG-4 über Methoden zur Codierung von statischen Texturen, die eine größere Skalierbarkeit ermöglichen als die Codierung mittels der DCT. Die Codierung beruht auf einer Wavelet-Transformation, wobei die DC- und ACKomponenten unterschiedlich codiert werden. Die sich ergebenden Koeffizienten werden quantisiert und mit einem sog. Zero-Tree-Algorithmus und arithmetischer Codierung codiert. Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 75 1.04.2012 3.8.7 Texturcodierung 3.9.1 Sprites Scan der Koeffizienten Sprites sind Hintergrund-Objekte, die sich nicht bewegen und nur einmal übertragen werden. Sie werden wie I-VOPs am Anfang eines Datenstroms übertragen und stehen dann in einem Speicher dem Empfänger zur Verfügung. Bei einem Wechsel der Kameraposition rechnet der Empfänger den jeweils sichtbaren Teil aus den im Speicher vorliegenden Daten aus. Es lassen sich große Kompressionraten erzielen. Die Koeffizienten werden in vorgegebener Weise in einen eindimensionalen Datenvektor überführt. Dazu dient der Zig-Zag-Scan nach 3.2.7 oder zwei alternative Muster (Alternate-horizontal scan und Alternate-vertical scan), die in Abhängigkeit von der Prädiktion der DC-Koeffizienten benutzt werden. Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 74 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 76 1.04.2012 19 3.10.1 Skalierbarkeit 3.10.3 Räumliche Skalierbarkeit (Spatial Scalability) Durch verschiedene Video-Object-Layer wird eine räumliche oder zeitliche Skalierung implementiert. Beispiel: Base-Layer und Enhancement-Layer Im Fall der räumlichen Skalierung enthält der Base-Layer Informationen über das Videoobjekt mit geringer Auflösung und der Enhancement-Layer die nötige Zusatzinformation zur Auflösungserhöhung. Beispiel für eine räumliche Skalierbarkeit, hier mit zwei Enhancement-Layern Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 77 1.04.2012 Kommunikations Technik Quelle: Andrew Perkis: MPEG-4 visual, SIE2070 Multimedia signal processing, 4/3/2002 Guido H. Bruck Bildverarbeitung - Folie 79 1.04.2012 3.10.4 Zeitliche Skalierbarkeit (Temporal Scalability) Der VOPs des Base-Layers werden codiert wie vorher beschrieben. Die VOPs des Enhancement-Layers werden als P-VOPs oder als B-VOPs codiert. Bei der zeitlichen Skalierbarkeit wird die Wiederholrate der VOPs verbessert, der Enhancement-Layer enthält die Informationen, die zwischen den Bildern des BaseLayers wiedergegeben werden sollen. Base Layer Enhancement Layer Zwei Typen: Enhancement • Typ I: Der Enhancement-Layer Typ I verbessert nur die Auflösung VOL 0: Ges. Bild VOL 1: Auto eines Teils des Base-Layers. • Typ II: Der Enhancement-Layer verbessert die Auflösung des Enhancement gesamten Base-Layers. Typ II VO 0 3.10.2 Räumliche Skalierbarkeit (Spatial Scalability) VOL 1: Ges. Bild VO 1 VOL 0: Ges. Bild VOL 0: Auto Kommunikations Technik Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Guido H. Bruck Bildverarbeitung - Folie 78 1.04.2012 Kommunikations Technik Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne VOL 1: Auto Verbesserter Bereich Guido H. Bruck Bildverarbeitung - Folie 80 1.04.2012 20 3.10.5 Zeitliche Skalierbarkeit (Temporal Scalability) 3.10.7 Zeitliche Skalierbarkeit (Temporal Scalability) Typ I: Der Enhancement-Layer Verbessert nur die zeitliche Auflösung eines Teils des Base-Layers. Kommunikations Technik Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Guido H. Bruck Bildverarbeitung - Folie 81 1.04.2012 3.10.6 Zeitliche Skalierbarkeit (Temporal Scalability) Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Kommunikations Technik Quelle: Andrew Perkis: MPEG-4 visual, SIE2070 Multimedia signal processing, 4/3/2002 Guido H. Bruck Bildverarbeitung - Folie 83 1.04.2012 3.11.1 Error-Resilence-Tools Typ II: Der Enhancement-Layer verbessert die zeitliche Auflösung des gesamten Base-Layers. Kommunikations Technik Beispiel für eine zeitliche Skalierbarkeit mit zwei Enhancement-Layern Speziell für die Übertragung über gestörte Kanäle, wie z.B. über Mobilfunkkanäle, sind sog. Error-Risilence-Tools vorhanden, die die sichtbaren Auswirkungen von Übertragungsfehlern verringern sollen: • Resynchronization Markers Das Bild zeigt die Auswirkungen dieser • Extended Header Code Tools auf die Datenstrom-Syntax • Data Partitioning • Reversible VLCs Vorwärts-Decodierung Guido H. Bruck Bildverarbeitung - Folie 82 1.04.2012 Kommunikations Technik Rückwärts-Decodierung Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal Processing Laboratory Swiss Federal Institute of Technology, Lausanne Guido H. Bruck Bildverarbeitung - Folie 84 1.04.2012 21 3.12.1 Synthetische Video-Objekte 3.12.3 Body Animation MPEG-4 enthält verschiedene Tools, um synthetische Video-Objekte zu übertragen (Auswahl): Vergleichbar mit der Face Animation. Form, Textur und Haltung des Körpers werden nur durch Parameter übergeben • • • • • Facial Animation - Animation von Gesichtern Body Animation – Animation von Körpern 2D-Meshes (2D-Gittermodelle) 3D-Meshes (3D-Gittermodelle) View-dependent Scalability Quelle: MPEG-4 – Ein Überblick, Paderborn Center for mobile Computing Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 85 1.04.2012 3.12.2 Facial Animation Kommunikations Technik „Body Control Points“ in unteren Körperteilen Quelle: Streaming Multimedia – The MPEG-4 Approach, Circuit Cellular, Issue 137, Dec. 2001 Guido H. Bruck Bildverarbeitung - Folie 87 1.04.2012 3.12.4 2D-Meshes Form, Textur und Gesichtsausdruck werden nur durch Parameter übergeben • Facial Definition Parameters (FDP) Gesicht wird durch 84 FDPs beschrieben • FDPs werden vom Decoder in Gesicht umgesetzt Animation: • Facial Animation Parameters Gesichtsausdrücke Aufteilung des 2-dimensionalen Raumes in Polygone • in MPEG-4 nur Dreiecke Textur wird über das Gittermodell gelegt • Texture Mapping Animation • Verschieben der Knotenpunkte Quelle: MPEG-4 – Ein Überblick, Paderborn Center for mobile Computing Kommunikations Technik Quelle: MPEG-4 – Ein Überblick, Paderborn Center for mobile Computing Guido H. Bruck Bildverarbeitung - Folie 86 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 88 1.04.2012 22 3.12.5 View-dependent Scalebility 3.13.2 Profile (Profiles) Beispiel für die Bearbeitung von Profilen in einem MPEG-4 Encoder/Decoder. Profile werden in Form von Video-Objekt-Typen definiert • wird in 3D-Welten benutzt • ermöglicht Übertragung von Texturen • nur sichtbare Informationen werden übertragen spart Bandbreite • Berechnung auf Encoder- und Decoder-Seite Rückkanal erforderlich Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 89 1.04.2012 3.13.1 Profile (Profiles) Kommunikations Technik Quelle: Olivier Avaro: Overview of MPEG-4 Developments, Davic European Information Day, Geneva, 12 January 1999 Guido H. Bruck Bildverarbeitung - Folie 91 1.04.2012 3.13.3 Profile (Profiles) für natürliche Videobilder („natural Video“) Auswahl von Video-Tools zu einigen Video-Objekttypen Die meisten Anwendungen benötigen nur einen Teil der vielfältigen Werkzeuge („Tools“), die im MPEG-4-Standard definiert sind. Die Codierungswerkzeuge werden zu sog. Profilen („Profiles“) zusammengefasst. Diese Profile werden auf bestimmte Anwendungen angepasst, dadurch verringert sich der Implementierungsaufwand in Encoder und Decoder. Für jedes Profil kann es verschiedene „Levels“ geben, die die Komplexität z.B. in Form von Bildgröße, Anzahl der Video-Objekte, Speicherbedarf, einschränken. Typen von Profilen: • Szenenbeschreibung • Objektbeschreibungen • Audio (natürliche und synthetische): Typen von Objekten • Visual (natürliche und synthetische): Typen von Objekten • Grafiken Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 90 1.04.2012 MPEG-4 video tools Basic(I and P-VOP, coefficient prediction, 4-MV, unrestricted MV) Error resilience Short Header B-VOP P-VOP with OBMC (Texture) Method 1/Method 2 Quantization P-VOP based temporal scalability Binary Shape Grey Shape Interlace Sprite Temporal Scalability (Rectangular) Spatial Scalability (Rectangular) N-Bit Scalable Still Texture MPEG-4 video object types Main Simple N-bit Scalable Simple Core x x x x x x x x x x x x x x x x x x x x x x x x x x x Still Scalable Texture x x x x x x x „Simple“: Nur rechteckförmige Video-Objekte (keine Shape-Verarbeitung) Kommunikations Technik Quelle: Touradj Ebrahimi and Caspar Horne: MPEG-4 Natural Video Coding - An overview, aus dem Internet Guido H. Bruck Bildverarbeitung - Folie 92 1.04.2012 23 3.13.4 Profile (Profiles) für natürliche Videobilder („natural Video“) Auswahl von Typen von Video-Objekten, die innerhalb einer Auswahl von Profiles bearbeitet werden können: MPEG-4 video profiles Simple MPEG-4 video object types Simple x Core Main Simple Scaleable N-Bit Scalable Still Texture Kommunikations Technik Core Main Simple Scalable N-Bit x x x x x x x x Scalable Texture x x x Quelle: Touradj Ebrahimi and Caspar Horne: MPEG-4 Natural Video Coding - An overview, aus dem Internet x Guido H. Bruck Bildverarbeitung - Folie 93 1.04.2012 3.13.6 Profile (Profiles) für natürliche Videobilder („natural Video“) Weitere Ergänzungen durch neue Tools und Profiles: • Advanced Simple: Verbesserte Codierverfahren gegenüber dem simple Profile. • Simple Studio: Hohe Bildqualität, Verwendung für die Bildbearbeitung im Studio, nur I-VOPs, Datenrate bis 2GBit/s. • Core Studio: Wie Simple-Studio, aber zusätzlich mit P-VOPs, die eine verbesserte Datenreduktion erlauben aber gleichzeitig einen erhöhnten Implementierungsaufwand verlangen. • Core Scalable: Wie Core, aber zusätzlich Skalierbarkeit. Anwendung im Internet, bei Mobilfunkübertragung und für Rundfunkzwecke. • Advanced Real-Time Simple: Für Echtzeitanwendungen wie Videotelefon, Telekonferenz. • Advanced Coding Efficiency: Mit allen neuen Verfahren zur verbesserten Codierung, für mobile Rundfunkübertragung, Camcorder etc. • Fine Granularity Scalable: Mehrere Verfahren zur Skalierbarkeit, um den Datenstrom schnell veränderlichen Datenübertragungsraten besser anpassen zu können (Streaming Video). Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 95 1.04.2012 3.13.5 Profile (Profiles) für natürliche Videobilder („natural Video“) 3.13.7 Levels Wichtige vorgesehene Anwendungen der Profiles: • Simple: Einfache fehlergeschützte Übertragung von rechteckigen Bildern, z.B. für Übertragung in Mobilfunksystemen • Simple Scalable: Anwendung, wo Skalierbarkeit z.B. wegen unterschiedlicher zur Verfügung stehender Bandbreite eingeschränkt wird, oder bei Begrenzungen von Rechenleistungen: Internet oder Software-Decodierung • Core: Übertragung für beliebig geformte Bildobjekte. Für einfache Interaktivität, z.B. Internet-Multimedia-Anwendungen • Main Visual: Für interaktive, Fernseh- und DVD-Anwendungen Mit sog. Levels werden Parametervorgaben für den Datenstrom gemacht. Die folgende Tabelle gibt einige Levels für die wichtigsten Profiles wider. In der Spalte „Total mblk memory“ ist die für den Decodiervorgang nötige Speichermenge in „Macroblock-Units“ angegeben. Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 94 1.04.2012 Typical scene size Profile and Level L1 Simple L2 Profile L3 L1 Core Profile L2 L2 Main Profile L3 L4 Kommunikations Technik QCIF CIF CIF QCIF CIF CIF ITU-R 601 1920x1088 Size in Pixels 176x144 352x288 352x288 176x144 352x288 352x288 720x576 1920x1088 Bitrate (bit/s) 64 k 128 k 384 k 384 k 2M 2M 15 M 38.4 M Quelle: Touradj Ebrahimi and Caspar Horne: MPEG-4 Natural Video Coding - An overview, aus dem Internet Maximum Total mblk number of memory objects (mblk units) 4 4 4 4 16 16 32 32 198 792 792 594 2376 2376 9720 48960 Guido H. Bruck Bildverarbeitung - Folie 96 1.04.2012 24 3.13.8 Datenrate 3.14.2 H.264/AVC - Scope and Context Die Datenrate kann sowohl für Anwendungen mit variabler Datenrate (VBR – Variable Bitrate) als auch für Anwendungen mit fester Datenrate (CBR – Constant Bitrate) eingestellt werden. Dazu ist ein Algorithmus erforderlich, der die Quantisierung der zu übertragenden Größen einstellt. Bei VBR-Anwendungen wird versucht, die optimale Bildqualität mit einer vorgegebenen Bitrate zu erreichen. Bei CBR-Anwendungen muss die vorgegebene Verzögerungszeit und die vorgegebene Größe des Pufferspeichers berücksichtigt werden, der die ungleichmäßig anfallenden Datenbits zwischenspeichert, bevor sie mit konstanter Datenrate über den Übertragungskanal geschickt werden. Ein vergleichbarer Pufferspeicher ist auf der Decoderseite vorhanden. Wenn der Pufferspeicher droht überzulaufen, wird die Quantisierung vergröbert, so dass weniger Daten anfallen. Wenn der Pufferspeicher droht leer zu laufen, wird die Quantisierung feiner eingestellt, so dass mehr Daten anfallen. • Aimed at providing high-quality compression for various services: – IP streaming media (50-1500 kbps) – SDTV and HDTV Broadcast and video-on-demand (1 - 8+ Mbps) – DVD – Conversational services (<1 Mbps, low latency) • Standard defines: – Decoder functionality (but not encoder) – File and stream structure • Final results: 2-fold improvement in compression • Same fidelity, half the size compared to H.263 and MPEG-2 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 97 1.04.2012 3.14.1 H.264/AVC – MPEG-4 Part 10 (Official MPEG Term) • ISO/IEC 14496-10 AVC – H.264 (Official ITU Term) Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 99 1.04.2012 3.14.3 H.264/AVC - New features • In the early 1990’s, the first video compression standards were introduced: – H.261 (1990) and H.263 (1995) from ITU – MPEG-1 (1993) and MPEG-2 (1996) from ISO • Since then, the technology has advanced rapidly – H.263 was followed by H.263+, H.263++, H.26L – MPEG-1/2 followed by MPEG-4 visual – But industry and research coders are still way ahead • H.264/AVC is a joint project of ITU and ISO, to create an up-to-date standard. • New features in H.264 – Motion compensation and intra-prediction – Image transform – Deblocking filters – Entropy coding – Frames and slices Quellen: Gidon Shavit The H.264/AVC Video Coding Standard, Based on Material from IEEE Transactions on Circuits and Systems for Video Technology, July 2003, www.cs.washington.edu/ homes/gidon/presentations/h264.ppt Tom McMahon: The Emerging H.264/AVC Video Coding Standard, www.itl.nist.gov/div895/isis/jvtslides.ppt Dr. Pankaj Topiwala H.264: The Next Revolution? www.hpaonline.com/files/public/topiwala.ppt Mohsen Saneei: H-264 ece.ut.ac.ir/classpages/Multimedia/h264.ppt Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 98 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 100 1.04.2012 25 3.14.4 H.264/AVC - Changes in Motion Compensation 3.14.6 H.264/AVC - Variable Block Sizes • Quarter-pixel accuracy – A gain of 1.5-2dB across the board over ½-pixel • Variable block-size: – Every 16x16 macroblock can be subdivided – Each sub-block gets predicted separately • Multiple and arbitrary reference frames – Vs. only previous (H.263) or previous and next (MPEG). • Anti-aliasing sub-pixel interpolation – Removes some common artifacts in residual Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 101 1.04.2012 3.14.5 H.264/AVC - Variable Block-Size MC Guido H. Bruck Bildverarbeitung - Folie 103 1.04.2012 3.14.7 H.264/AVC - Motion Scale Example • Motivation: size of moving/stationary objects is variable – Many small blocks may take too many bits to encode – Few large blocks give lousy prediction • In H.264/AVC, each 16x16 macroblock may be: – Kept whole, – Divided horizontally (vertically) into two sub-blocks of size 16x8 (8x16) – Divided into 4 sub-blocks 16x16 16x8 8x16 – In the last case, the 4 sub-blocks may MB 0 0 0 1 Types be divided once more into 2 or 4 1 smaller blocks. 4x8 8x4 8x8 0 – Bit rate savings of more than 15% as 8x8 0 1 0 Types 1 compared to using only a Motion vector accuracy 1/4 16x16 block size. Kommunikations Technik Kommunikations Technik 8x8 0 1 2 3 4x4 0 1 2 3 T=1 Guido H. Bruck Bildverarbeitung - Folie 102 1.04.2012 Kommunikations Technik T=2 Guido H. Bruck Bildverarbeitung - Folie 104 1.04.2012 26 3.14.8 H.264/AVC - Motion Scale Example T=1 Kommunikations Technik 3.14.10 H.264/AVC – Variable Block Size Example T=2 T=1 Guido H. Bruck Bildverarbeitung - Folie 105 1.04.2012 T=2 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 107 1.04.2012 3.14.11 H.264/AVC – Arbitrary Reference Frames 3.14.9 H.264/AVC - Motion Scale Example • In H.263, the reference frame for prediction is always the previous frame • In MPEG and H.26L, some frames are predicted from both the previous and the next frames (bi-prediction) • In H.264/AVC, any one frame may be used as reference: – Encoder and decoder maintain synchronized buffers of available frames (previously decoded) – Reference frame is specified as index into this buffer • In bi-predictive mode, each macroblock may be: – Predicted from one of the two references – Predicted from both, using weighted mean of predictors Multiple Reference Frames for Motion Compensation T=1 Kommunikations Technik T=2 Guido H. Bruck Bildverarbeitung - Folie 106 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 108 1.04.2012 27 3.14.12 H.264/AVC – Intra Prediction 3.14.14 H.264/AVC – 4x4 Intra Prediction Modes • Motivation: intra-frames are natural images, so they exhibit strong spatial correlation – Implemented to some extent in H.263++ and MPEG-4, but in transform domain • Macroblocks in intra-coded frames are predicted based on previously-coded ones – Above and/or to the left of the current block – The macroblock may be divided into 16 4x4 sub-blocks which are predicted in cascading fashion • An encoded parameter specifies which neighbors should be used to predict, and how • 9 types for luminance signal Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 109 1.04.2012 3.14.13 H.264/AVC – Intra Prediction Guido H. Bruck Bildverarbeitung - Folie 111 1.04.2012 3.14.15 H.264/AVC – 4x4 Intra Prediction Modes • For example in Mode 3 (Diagonal-Down-Left prediction) the values of a to p are given as follows: – a is equal to (A+2B+C+2)/4 – b, e are equal to (B+2C+D+2)/4 – c, f, i are equal to (C+2D+E+2)/4 – d, g, j, m are equal to (D+2E+F+2)/4 – h, k, n are equal to (E+2F+G+2)/4 – l, o are equal to (F+2G+H+2)/4 – p is equal to (G+3H+2)/4 • Mode 2 (DC) – Predict all pixels from – (A+B+C+D+I+J+K+L+4)/8 or (A+B+C+D+2)/4 or (I+J+K+L+2)/4 • For I macroblocks • For luminance samples – 4x4 prediction process – 16x16 prediction process • For chrominance samples – 8x8 prediction process Kommunikations Technik Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 110 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 112 1.04.2012 28 3.14.16 H.264/AVC – 4x4 Intra Prediction Modes Kommunikations Technik 3.14.18 H.264/AVC - Intra Prediction Guido H. Bruck Bildverarbeitung - Folie 113 1.04.2012 3.14.17 H.264/AVC - Intra Prediction Guido H. Bruck Bildverarbeitung - Folie 115 1.04.2012 3.14.19 H.264/AVC - Image Transform Intra 16x16 luminance (smooth macroblocks containing little detail) and 8x8 chrominance prediction modes – Mode 0 (Vertical) – Mode 1 (Horizontal) – Mode 2 (DC) – Mode 4 (Plane): a linear “plane” function is fitted to the upper and left-hand samples H and V. • Motivation: – DCT requires real-number operations, which may cause inaccuracies in inversion – Better motion compensation means less spatial correlation – no need for 8x8 transform • H.264 uses a very simple integer 4x4 transform – A (pretty crude) approximation to 4x4 DCT – Transform matrix contains only +/-1 and +/-2 • Can be computed with only additions, subtractions, and shifts • Results show negligible loss in quality (~0.02dB) If any of the 8x8 blocks in the luminance component are coded in Intra mode, both chrominance blocks (Cr,Cb) are also intra coded Kommunikations Technik Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 114 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 116 1.04.2012 29 3.14.20 H.264/AVC - Image Transform 3.14.22 H.264/AVC - Image Transform • EXACT MATCH Simplified Transform • Based primarily on 4x4 transform (all prior standards: 8x8) T 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 2 • In “adaptive block size transform” mode – further transforms are chosen depending on the motion compensation block size(4x8, 8x4, 8x8, 16x8, etc) – transform operates on 4x4 blocks of residual data after motioncompensated prediction or Intra prediction 1 1 T 1 1 • Requires only 16 bit arithmetic (including intermediate values) • Easily extensible to 10-12 bits per component Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 117 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 119 1.04.2012 3.14.21 H.264/AVC - Image Transform 3.14.23 H.264/AVC - Deblocking Filters Transform in “baseline” profile of H.264/AVC • 4x4 block transform for residual data • 4x4 transform of luminance DC coefficients in intra macroblocks (intra predicted in 16x16 mode) • 2x2 transform of chrominance DC coefficients (in any macroblock) • Motivation: block-based MC and transforms generate blocking artifacts – Very visible to human eye at low bit-rates • Previous standards applied simple filters to “smudge” edges between blocks • H.264/AVC adaptively chooses for each edge which one of 5 deblocking filters to apply. – For instance, if both blocks have the same motion vector, less filtering is needed. • Improves objective quality as well: about 7-9% reduction in bit-rate for same PSNR. Kommunikations Technik Luminance signal Guido H. Bruck Bildverarbeitung - Folie 118 1.04.2012 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 120 1.04.2012 30 3.14.24 H.264/AVC - Deblocking Filters 3.14.26 H.264/AVC - Entropy Coding: CABAC • Arithmetic coding framework designed specifically for H.264 • Binarization: all syntax symbols are translated to bit-strings • 399 predefined context models, used in groups – E.g. models 14-20 used to code macroblock type for inter-frames – The model to use next is selected based on previously coded information (the context) – Each context model adapts to empirical distribution 1) Without Filter 2) with H264/AVC Deblocking Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 121 1.04.2012 3.14.25 H.264/AVC - Entropy Coding Guido H. Bruck Bildverarbeitung - Folie 123 1.04.2012 3.14.27 H.264/AVC - Frames and Slices • Motivation: traditional coders use fixed, variable-length codes – Essentially Huffman-style codes – Non-adaptive – Can’t encode symbols with probability > 0.5 efficiently, since at least one bit required • H.263 Annex E defines an arithmetic coder – Still non-adaptive – Uses multiple non-binary alphabets, which results in high computational complexity • H.264/AVC uses two entropy codings: – CAVLC (context-adaptive variable length coding) and UVLC (Uniform Variable Length Coding) – CABAC (context-adaptive binary arithmetic coding) Kommunikations Technik Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 122 1.04.2012 • In H.263 and MPEG, each frame is either inter (P-frame) or intra (I-frame). – Exception: some macroblocks in P-frames may be intra-coded, and are called I-blocks. • H.264/AVC generalizes this: each frame consists of one or more slices – Contiguous groups of macroblocks – Processed in internal raster order – Each is independently encoded and decoded • I-slices, P-slices, B-slices (two reference frames) Slice 0 Slice 1 Slice 2 Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 124 1.04.2012 31 3.14.28 H.264/AVC vs MPEG-2, Low Rate Foreman, QCIF, 30 fps MPEG-2 203 kbps Kommunikations Technik H.264 39 kbps! Guido H. Bruck Bildverarbeitung - Folie 125 1.04.2012 3.14.29 Quick Look at WM9 • WM4 onward were variants of MPEG-4 • WM9 is a variant of H.264/AVC – Fast, 16-bit integer transform – Sophisticated motion estimation – Scalar quantization – Adaptive VLC (no CABAC) • This would give it performance similar to H.264/AVC – Might expect ~10% less since no CABAC – In our tests, they appear comparable • WM9 performed well in tests at DVD Forum. But – WM9 may have used optimized, tuned, 2-pass encoding, prefiltering. – H.264/AVT used 1-pass ref. sw. (No 2-pass, tuning, filtering, opt.) Kommunikations Technik Guido H. Bruck Bildverarbeitung - Folie 126 1.04.2012 32