13.07.2015 Aufrufe

Ausarbeitung

Ausarbeitung

Ausarbeitung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Westfälische Wilhelms-Universität MünsterSeminararbeitMPEGEin VideokompressionsstandardDörte NauninThemensteller: Prof. Dr. Herbert KuchenBetreuer: Christian ArndtInstitut für WirtschaftsinformatikPraktische Informatik in der Wirtschaft


Inhaltsverzeichnis1 Videokompression..................................................................................................32 Die Entwicklung von MPEG ..................................................................................42.1 Historie..........................................................................................................42.2 Anforderungen an den Standard .....................................................................42.3 Überblick der verschiedenen MPEG Standards ..............................................53 Grundlegende Funktionsweise................................................................................73.1 Intraframe Kodierung: Ausnutzen der räumlichen Redundanz......................103.1.1 Übertragung in den YCC Farbraum..........................................................113.1.2 Abtastraster..............................................................................................133.1.3 Diskrete Kosinus Transformation (DCT)..................................................133.1.4 Quantisierung...........................................................................................163.1.5 Zig–Zag–Scan..........................................................................................183.1.6 DPCM (Differential Pulse Code Modulation)...........................................193.1.7 Run Length Encoding (RLE, Lauflängenkodierung).................................203.1.8 Huffman Kodierung (Variable Length Coding) ........................................213.2 Interframe Kodierung: Ausnutzen der temporären Redundanz......................223.2.1 Blockbasierte Bewegungskompensation...................................................254 Fazit .....................................................................................................................27Literaturverzeichnis.....................................................................................................28II


1 VideokompressionVideokompression verkleinert eine Menge von Daten digitaler Videos, damit dieseVideos mit geringerer Bandbreite über Netzwerke übertragen und in kleinerenDatenmengen gespeichert werden können. Ein Ziel ist, die Qualität der Daten nicht zuverringern. In der Frage, wie stark ein Video komprimiert werden soll, muss einKompromiss zwischen dem Speicherplatzverbrauch, Qualitätsverlust und der Laufzeitfür Komprimierung und Dekomprimierung gefunden werden.Man unterscheidet die verlustfreie (lossless) und die verlustbehaftete (lossy)Komprimierung. Bei der verlustfreien Kodierung wird das Original nach derDekomprimierung wieder vollständig hergestellt, bei der verlustbehafteten Kodierungwerden Fehler in Kauf genommen, die sich je nach Komprimierungsgrad stärker oderweniger stark auf die Qualität auswirken. Verlustfreie Videokompression wird seltenerbenutzt, da die Kompression nicht so stark ist wie bei der verlustbehaftetenKomprimierung. Falls ein Video keine irrelevanten oder redundanten Informationenenthält, könnte ausschließlich mit der verlustfreien Komprimierung keine Verringerungder Datenmenge erreicht werden. So könnte die Datenrate zu groß bleiben,beispielsweise größer als die Bandbreite eines Netzwerks.Die Videokompression ist ein Sonderfall der Datenkompression, wie sie vonRECHENBERG und POMBERGER beschrieben wird: „Überträgt man Nachrichten(Daten) über Raum (Netze) und Zeit (Speichermedien), kann Datenkompression dieDatenmenge bei Beibehaltung des Informationsgehalts stark reduzieren undÜbertragungszeit und Speicherplatz einsparen. Speichermedien undKommunikationskanäle werden immer preiswerter, aber gleichzeitig nehmen dieDatenmengen und Prozessorleistungen zu, so dass Datenkompression weiterhin sinnvollist.“ [RP02, S. 241]3


2 Die Entwicklung von MPEG2.1 HistorieMPEG 1 ist die Abkürzung für Moving Pictures Expert Group, sie ist eine Arbeitsgruppeder ISO 2 /IEC 3 , die mit der Entwicklung von Audio und Video Standards beauftragt ist.Sie wurde im Jahre 1988 von Leonardo Chiariglione und Hiroshi Yasuda gegründet.Weiterhin ist MPEG die Bezeichnung für die verschiedenen Standards, die dieseExpertengruppe entwickelt hat. Das Ziel dieser Aktivitäten war, einen weltweiteinheitlichen Standard für die Videokompression bereitzustellen. Ein erster Entwurf desStandards wurde wie geplant zum Ende des Jahres 1990 vorgelegt.2.2 Anforderungen an den StandardEinen Standard macht aus, dass er weltweit genutzt werden kann. Er kann Kostenreduzieren und zur Interoperabilität zwischen verschiedenen Geräten beitragen. Ersollte die Kommunikation zwischen Geräten von verschiedenen Möglichst vieleAnforderungen sollten erfüllt sein, aber der Standard sollte nicht zu kompliziert werden.Die Expertengruppe hob einige Eigenschaften als besonders wichtig für eine flexibleLösung hervor. Ich führe hier nur einige Beispiele auf, die MPEG aus damaliger Sichterfüllen sollten.Die Fehlerresistenz ist die Widerstandskraft der Kodierung gegen Defekte. AuftretendeFehler können so korrigiert werden und im Idealfall sind sie beim Abspielen für denZuschauer unsichtbar.Ein geringer Zeitaufwand für Kodierung und Dekodierung sind für die Handhabungeines zu kodierenden Videos besonders wichtig. Die Zeit die für die Komprimierungund Dekomprimierung benötigt wird, sollte minimiert werden.Die Editierbarkeit ermöglicht es, das Video zu verändern, hierfür wäre es ideal, wennman auf jedes Bild des Videos einzeln zugreifen könnte.1 Der formale Name ist „ISO/IEC JTC 1/SC 29/WG 11“2 International Organization for Standardization3 International Electrotechnical Commission4


Der Standard sollte eine hohe Formatflexibilität besitzen und MPEG kodierte Videossollten in möglichst vielen Formaten gespeichert und abgespielt werden können.Ein weiterer wichtiger Punkt sollte der „Zufällige Zugriff“ sein. Es sollte in einemVideo möglich sein, einen beliebigen Punkt innerhalb des Videos anwählen zu können.Für den „Zufälligen Zugriff“ wäre es optimal, wenn man das Video wie hintereinanderablaufende nicht-bewegte Bilder komprimieren würde. So könnte man auf jedes Bildeinzeln zugreifen, da sein Inhalt sich nicht auf andere stützt. Eine Komprimierung inForm der Kompression aller Bilder einzeln würde allerdings den Rahmen desSpeicherplatzes sprengen und somit der Anforderung geringer Kosten nicht genügen.Angesichts der verschiedenen Anforderungen muss MPEG als ein Kompromissverstanden werden, denn nicht alle Eigenschaften können in diesem Standardgleichzeitig vollständig erfüllt sein. Aufgrund dessen nutzt MPEG zwei verschiedeneKodierungsarten, die Intraframe Kodierung und die Interframe Kodierung. DieIntraframe Kompression ist effektiv eine Kompression für nicht-bewegte Bilder. Sieenthält nur Bezüge von Bildern auf sich selbst und nutzt nur die räumlich überflüssigenInformationen zur Kompression. Eine Interframe Kompression beinhaltet auch Bezügevon einem Bild zu einem anderen, sie nutzt somit auch die zeitlich überflüssigenInformationen aus.Für den zufälligen Zugriff wäre es optimal, wenn die Kompression nur aus Intraframesbestehen würde, dass heißt, wenn jedes Bild einzeln für sich wie ein JPEG kodiertwerden würde 4 . Allerdings ist die Kompression begrenzt: Es ergeben sich Problemeaufgrund der Größe, beispielsweise für eine Übertragung über ein Netzwerk. Deswegenenthält ein MPEG kodiertes Video Interframe und Intraframe Bilder.2.3 Überblick der verschiedenen MPEG StandardsMPEG–1: „Coding of moving pictures and associated audio at up to 1,5Mbit/s” [St04,S. 357]Der erste MPEG Standard beschäftigte sich ausschließlich mit der Kodierung von Videound zugeordnetem Audio. Seine Layer 3 (Audio) definierte den Standard MP3 (MPEGLayer 3).4 Eine Kodierung eines Videos nur nach Intraframe Kodierung heißt auch M-JPEG (Motion JPEG)5


MPEG–2: “Generic Coding of moving pictures and associated Audio” [St04, S. 357]Die Weiterentwicklung des ersten MPEG Standards stellt eine größere Auswahl anMöglichkeiten bezüglich der Bildauflösung, Datenrate und Qualitätsstufe. So sind auchhoch auflösende Anwendungen möglich, wie zum Beispiel HDTV (High DefinitionTV). Außerdem stellt der Standard Digital Video Broadcasting (DVB) bereit.MPEG–3 wurde nie ein Standard. Ursprünglich wurde er für HDTV designt, dann bauteman diese Eigenschaften schon in MPEG–2 ein. Daraufhin wurden die Bemühungenum einen MPEG–3 Standard abgebrochen.MPEG–4: “Coding of audio - visual objects” [St04, S. 357]Dieser Standard erweitert die Standardisierung von Video– und zugehörigenAudiosignalen auf jegliche Arten von audiovisuellen Inhalten, wie zum Beispiel auchGrafiken, Körper– und Gesichtsanimationen.MPEG–7: “Multimedia Content Description Interface” [St04, S. 358]Der Standard macht eine Beschreibung von Metadaten für multimediale Inhalte möglichund gestattet Katalogisierung, erweiterte Suche und Verwaltung dieser Inhalte.MPEG–21: “Multimedia Framework” [St04, S. 358]MPEG standardisiert hiermit ein so genanntes Multimedia Framework Alle Schrittemultimedialer Inhalte, wie Erzeugung, Produktion, Distribution und Konsum werdendefiniert und beschrieben. Neben der Identifizierung dieser Schritte, dient der Standardauch der Sicherung von Eigentums– und Urheberrechten.Weitere Projekte der Moving Pictures Expert Group sind die Standards MPEG–A,MPEG–B, MPEG–C, MPEG–D und MPEG–E.6


3 Grundlegende FunktionsweiseAusgenutzt werden für die Komprimierung die zeitlichen, räumlichen undpsychovisuellen Redundanzen in Videodaten, sowie die Tatsache, dass das menschlicheAuge nicht alle Details erfassen kann.Laut FISCHER ist Redundanz ein „Inhalt, der ohne Informationsverlust weggelassenwerden kann“ [Fi02, S. 389]. In Videos treten häufig zeitliche und räumlicheKorrelationen auf. Fährt zum Beispiel ein Auto durchs Bild oder bleibt bei einerNachrichtensendung der Hintergrund des Sprechers unverändert, existieren gleicheBildausschnitte, die nicht alle einzeln gespeichert werden müssen.Der Hintergrund in einer Nachrichtensendung ist oft gleichmäßig in einer Farbegehalten. Die Information über seine Beschaffenheit muss nur einfach gespeichertwerden. Da die Informationen innerhalb, aber in verschiedenen Stellen eines Bildesauftauchen, nennt man dies die räumliche Redundanz.Ein fahrendes Auto in einem Video ist ein Beispiel für eine zeitliche Redundanz. DieBeschaffenheit des Autos bleibt gleich, die Position verändert sich jedoch im Fortlaufeneines Films. So muss die Information über das Aussehen des Autos nur einfachgespeichert werden. Doppelte Informationen, die auf die Zeit hingesehen vorkommen,also sich auf verschiedenen Bildern eines Videos befinden, haben daher eine zeitlicheRedundanz.Die psychovisuelle Redundanz besteht, weil das menschliche Auge stärker aufHelligkeits- (Luminanz) als auf Farbunterschiede (Chrominanz) reagiert. Auf dermenschlichen Netzhaut befinden sich mehr Stäbchen als Zäpfchen. Die Stäbchen fangendie Helligkeitssignale und die Zäpfchen die Farbsignale auf.Es werden Bildausschnitte eines Videos verglichen, um Duplikationen zu löschen unddie doppelte Information als Bezugnahme auf den ersten Bildausschnitt darzustellen.Um die Bildausschnitte zum Erkennen von Redundanzen miteinander vergleichen zukönnen, hat man eine einheitliche Unterteilung der Bilder festgelegt. MPEG gliedertjedes Bild eines Videos in so genannte Makroblöcke, die aus 16x16 Pixel bestehen.Diese Standardisierung vereinfacht die Algorithmen, da man sie nur noch auf kleinereBlöcke anwenden muss und nicht auf ein ganzes Bild.7


1616MakroblockBildAbbildung 1: Einteilung in MakroblöckeDer Standard benutzt zwei grundlegende Techniken: die blockbasierte MotionCompensation für die Reduktion der zeitlichen (temporären) Redundanz und dieDiskrete Kosinus Transformation (DCT 5 ) für die Reduktion der räumlichen Redundanz.Die verschiedenen BildtypenEin MPEG Video besteht aus hintereinander geschalteten Bildern, die verschiedenkodiert werden: den I-Bildern der Intraframe Kodierung und den P- und B-Bildern derInterframe Kodierung.• Intrakodierte Bilder (Interpolative Pictures; I-Bilder)I-Bilder haben ausschließlich Referenzen auf sich selbst, sie funktionieren daher wie dieKodierung nicht-bewegter Bilder und nutzen ausschließlich die räumliche Redundanzaus. Die Kompression ist nicht stark. Sie werden zum Beispiel für den zufälligenZugriff benötigt und dienen als Referenzen für P- und B-Bilder.• Predicted kodierte Bilder (Predictive Pictures; P-Bilder)P-Bilder haben Referenzen auf vergangene Bilder und dienen selbst als Referenz für I-und B-Bilder.• Interpolative / Bidirectional kodierte Bilder (Biderectional Prediction, B-Bilder)5 Discrete cosine transform8


B-Bilder liefern die höchste Kompression, sie haben Referenzen auf vergangene undzukünftige Bilder, können aber selbst nicht Referenz für andere Bilder sein. DieReferenzbilder sind das jeweils letzte I- oder P-Bild und das jeweils nächste I- oder P-Bild.0I1BErmittelt aus den Bildern 0 und 32BErmittelt aus den Bildern 0 und 33PPredicted aus Bild 04BErmittelt aus den Bildern 3 und 6Group of Pictures(GOP)5BErmittelt aus den Bildern 3 und 66PPredicted aus Bild 37BErmittelt aus den Bildern 6 und 98BErmittelt aus den Bildern 6 und 99IAbbildung 2: Beispiel für eine Abfolge von BildernOft wird die Abfolge der Bilder I BB P BB P BB P BB P BB I verwendet, sie kann abervariieren und muss auch nicht regelmäßig sein. Die Interframe Kodierung erstellt P- undB-Bilder, sie erreicht damit eine höhere Kompression als die Intraframe Kodierung, dieausschließlich I-Bilder verwendet. Im folgenden beschreibe ich, wie die beidenKodierungsarten irrelevante und redundante Informationen löschen und so einenVideodatenstrom verkleinern.9


3.1 Intraframe Kodierung: Ausnutzen der räumlichen RedundanzBei der Intraframe Kodierung werden die Dopplungen innerhalb eines Bildes erkanntund gelöscht, um die Datenmenge zu verringern. Sie kodiert nur I-Bilder. Für diese Artder Kodierung wird jedes Bild vom RGB Farbraum in den YCC Farbraum überführt.Die Bilder werden aufgeteilt in Helligkeits- (Luminanzsignal) und Farbsignale(Chrominanzsignal) gespeichert, anstatt über die Verteilung der Grundfarben Rot, Grünund Blau. Zur Vereinfachung der Bearbeitung werden die Bilder in kleinere Einheitenzerlegt. Die 16x16 Pixel großen so genannten Makroblöcke werden bei der IntraframeKodierung geviertelt und die entstehenden 8x8 Pixel großen Blöcke zur weiterenVerarbeitung erhalten. Diese Verkleinerung der einzeln abzuarbeitenden Einheitenvereinfacht die mathematischen Algorithmen stark, da bei der Diskreten KosinusTransformation alle Werte einer Einheit in jede einzelne Rechnung miteinbezogenwerden.Die Häufigkeiten der Helligkeits- und Farbsignale im neuen Farbraum hängen von derjeweiligen Abtastrate ab. Meistens beinhaltet ein Makroblock vie Luminanzblöcke undje einen Chrominanzblock der zwei verschiedenen Chrominanzarten. Jeder 8x8 Pixelgroße Block ist eine 8x8 Matrix, die Werte der Matrix werden mit der DiskretenKosinus Transformation (DCT) umgerechnet. Die so erhaltenen DCT Koeffizientenwerden quantisiert, d.h. sie werden durch den jeweiligen Wert einer 8x8Quantisierungsmatrix dividiert. Die erhaltene Matrix wird mit einem Zick Zack Mustergescannt und die Werte werden in der Reihenfolge dieses Zig-Zag-Scans alseindimensionale Folge aufgeschrieben. Die vorderste Zahl der Folge ist die so genannteDC-Komponente, sie wird mit der Differential Pulse Code Modulation (DPCM) kodiert.Die restlichen Zahlen werden mit der Lauflängenkodierung (Run Length Encoding -RLE) zu Tupeln geformt und anschließend mit der Huffman Kodierung kodiert und inBinärform gespeichert.10


RGBildBC bYC rZerlegung in MakroblöckeC bZerlegung in 8x8 PixelYC rDCTDCTKoeffizientenDPCMQuantisierungRLEZig – Zag - ScanQuantisierteDCTKoeffizientenHuffman Kodierung00101110...Abbildung 3: Intraframe Kodierung3.1.1 Übertragung in den YCC FarbraumEin Bildsignal ist eine Verteilung der drei Grundfarben Rot, Grün und Blau (R, G, B).Aus der Intensität der jeweiligen Grundfarbe ergeben sich die Informationen überHelligkeit und Farbsättigung. Die Helligkeits- (Luminanz) und Farbsignale11


(Chrominanz) werden voneinander getrennt mit der Überführung in den YCCFarbraum 6 . Danach setzen sich die Signale wie folgt zusammen:MPEG – Signale:C b = B – YC r = R – YYBeschreibungChrominanz b (Farbsättigung)Chrominanz r (Farbsättigung)Luminanz (Helligkeitssignal)Nun haben wir für jedes Bild drei Bilder, ein Luminanzbild und zweiChrominanzbilder.Errechnet wird der YUV Farbraum (Y Luminanz; U, V Chrominanz) wie folgt:Y =0,299 * R + 0,587 * G + 0,144 * BU = 0,436 * (B – Y) / (1 – 0,144)V = 0,615 * (R – Y) / (1 – 0,299)Anders ausgedrückt :Y = + 0,299 * R + 0,587 * G + 0,114 * BU = – 0,147 * R – 0,289 * G + 0,436 * BV = + 0,615 * R – 0,515 * G – 0,1 * BAm Faktor 0,587 sieht man, dass das Helligkeitssignal (Y) signifikant durch die Farbegrün bestimmt wird. Daran ist zu erkennen, dass das menschliche Auge sehrempfindlich auf die Farbe grün reagiert.Nachdem die Helligkeits- von den Farbsignalen unterschieden wurden, können siegetrennt voneinander bearbeitet werden. Dies ist sinnvoll, da die Farbsignale stärker6 auch: YUV Farbraum12


verändert werden können als die Helligkeitssignale, ohne dass ein Unterschied für dasmenschliche Auge sichtbar wird.3.1.2 AbtastrasterEin Bild hat theoretisch unendlich viele Bildpunkte. Mit Hilfe des Abtastens wird eineendliche Anzahl Punkte des digital dargestellten Bildes gefunden. Bei der Abtastungwerden aus jedem Bildpunkt die Werte für das Luminanzsignal (Y) und die beidenChrominanzsignale (C b , C r ) gewonnen. Schon während dieses Prozesses können dieSignale gewichtet werden, um unwichtige Informationen zu reduzieren. FolgendeChrominanzformate zeigen, mit welcher Abtastrate die Signale gewonnen wurden:Ein 4:2:0 Makroblock umfasst neben den vier Luminanzblöcken jeweils einen C bChrominanzblock und einen C r Chrominanzblock. Aus jedem Bildpunkt werden vierLuminanzsignale und jeweils eins der beiden Chrominanzsignale gewonnen. DiesesFormat wird am häufigsten verwendet.Ein 4:2:2 Makroblock schließt jeweils zwei der Chrominanzblöcke mit ein. Aus jedemBildpunkt werden zwei Luminanzsignale und jeweils eins der beidenChrominanzsignale erhalten.Ein 4:4:4 Makroblock beinhaltet von den Luminanz und verschiedenenChrominanzblöcken jeweils 4. Aus jedem Bildpunkt wird jeweils ein Signale der dreiArten gewonnen, sie werden mit der gleichen Abtastrate verarbeitet.3.1.3 Diskrete Kosinus Transformation (DCT)Die diskrete Kosinus Transformation (DCT) ist eine mathematischer Algorithmus, derWerte des YCC Farbraums in eine Frequenzdarstellung umwandelt.Für den Algorithmus wird folgende Formel angewandt:1F[u,v]= CuC4v77∑∑x= 0 y=für x, y ,u, v = 0…7(2x+ 1) uπ(2y+ 1) vπf ( x,y) cos cos0 16 1613


Cu,v⎧ 1⎪= ⎨ 2⎪⎩1fürsonstu,v = 0Die inverse Kosinus Transformation (IDCT) lautet :f ( x,y)=77∑∑u= 0 v=0CuCv⎡ (2x+ 1) uπ⎤ ⎡ (2y+ 1) vπ⎤F(u,v)cos⎢ ⎥cos⎢162 2⎥⎣ 16 ⎦ ⎣⎦Die Variablen x und y stehen für die Position eines Pixels in einem 8x8 Pixel Block,gezählt werden von 0 bis 7.Die in Makroblöcke geteilte Bilder werden für die DCT nochmals in kleinereBildausschnitte unterteilt. Jeder Makroblock wird geviertelt, um 8x8 Pixel Blöcke zuerhalten. Das ist nötig, um die Berechnungen der DCT zu vereinfachen.Die Umwandlung in die Frequenzdarstellung geschieht ohne Verlust, es wird damitallein noch keine Komprimierung der Daten erreicht. Die DCT birgt aber einen großenSchritt zur Komprimierung, da in der Frequenzdarstellung hohe von niedrigenFrequenzen getrennt werden. Das menschliche Auge nimmt hohe Frequenzen schlechterwahr. Nach der Trennung der hohen von den niedrigen Frequenzen können die hohenFrequenzen eliminiert werden, ohne die niedrigen Frequenzen zu behindern. Sogeschieht eine starke Komprimierung der Daten ohne einen sichtbaren Qualitätsverlustdes Videos.Bei der Berechnung der DCT Koeffizienten einer 8x8 Matrix werden bei jedereinzelnen Rechnung alle Werte der Matrix miteinbezogen, das bedeutet jedeBerechnung eines der 64 Koeffizienten beinhaltet 64 Summanden. Deswegen nehme ichein Rechenbeispiel der eindimensionalen DCT zur besseren Verständlichkeit, dieRechnung erfolgt dann nicht über eine komplette 8x8 Matrix, sondern über 1x8Bildpunkte, und die acht Koeffizienten werden mit nur acht Summanden errechnet.14


Beispiel [SW99, S. 447]:u 0 1 2 3 4 5 6 7f(x): Bildpunkte -58 -58 -58 -28 22 72 72 72DCT Koeffizienten 13 -159 9 36 -7 -6 4 -6Q - Matrix 16 11 10 16 24 40 51 61Ergebnisse 0 -14 0 2 0 0 0 0Die Formel der eindimensionalen Diskreten Kosinus Transformation (1D-DCT) lautet1F[u]= C2u7∑x=(2x+ 1) uπf ( x)cos0 16Cu⎧ 1⎪= ⎨ 2⎪⎩1fürsonstu = 0Berechnung des dritten DCT Koeffizienten: (u = 2)1C(2)=2∗7∑x=1 7 (2 * x + 1)2πC(2)= ∗ ∑ f ( x)cos()2 x = 016(2 ∗ x + 1) * 2* πf ( x) cos0 161 ⎡ (2 * 0 + 1)2π(2 *1 + 1)2π(2 * 2 + 1)2π(2 * 3 + 1)2π= ∗ − 58 * cos− 58 * cos− 58 * cos− 28 * cos2 ⎢⎣16161616(2 * 4 + 1)2π(2 * 5 + 1)2π(2 * 6 + 1)2π(2 * 7 + 1)2+ 22 * cos+ 72 * cos+ 72 * cos+ 72 * cos*16161616π ⎤⎥⎦15


⎡⎢⎣1 2π6π10π14π18π22π26π30π= * − 58 * cos − 58 * cos − 58 * cos − 28 * cos + 22 * cos + 72 * cos + 72 * cos + 72 * cos216 16 1616161616161≈ *21= *2= 9,2376[ − 58 * 0,9239 − 58 * 0.3827 − 58 * ( −0,3827)− 28 * ( −0,9238)+ 22 * ( −0,9239)+ 72 * ( −0,3827)+ 72 * 0,3827 + 72 * 0,9239][ − 53,5862 − 22,1966 + 22,1966 + 25,8664 − 20,3258 − 27,5544 + 27,5544 + 66,55208]1= *18,47522⎤⎥⎦Das Ergebnis wird auf- oder abgerundet. In diesem Fall erfolgt eine Abrundung auf 9.(Wert in Tabelle fettgedruckt)3.1.4 QuantisierungDC KomponenteHöher werdendeFrequenzenMakroblockHöher werdende Frequenzen16


Die Quantisierung hilft die höheren Frequenzen zu eliminieren und so eine hoheKompression ohne großen Qualitätsverlust zu erreichen. Die DC-Komponente 7 ist derWert oben links in der DCT Koeffizienten Matrix. Je weiter ein Wert von diesem Wertentfernt steht, desto höher die Frequenz, die der Wert beschreibt. Die Werte derhöchsten Frequenzen liegen somit unten rechts im Block. Im eindimensionalen Beispielist die DC-Komponente 13, der erste Wert der Folge von DCT Koeffizienten(fettgedruckt in Tabelle unten).Jeder Wert der DCT Koeffizienten Matrix wird durch den zugehörigen Wert aus einerQuantisierungstabelle dividiert. Nach der Division werden die Ergebnisse auf ganzeZahlen abgerundet. Es findet ein Verlust an Daten statt, die Rundung verfälscht dieDaten, die Quantisierung ist ein verlustbehaftetes Kompressionsverfahren. Die höherenFrequenzen haben kleine Werte nach der Diskreten Kosinus Transformation. An denentsprechenden Stellen in der Quantisierungstabelle stehen hingegen große Werte. EineDivision eines solchen kleinen Wertes durch einen hohen Wert ergibt nach der Rundungauf eine ganze Zahl Null. Nach der Quantisierung werden deswegen viele Nullen untenrechts in der Matrix stehen. Diese stehen nach dem Zig-Zag-Scan hintereinander und eskann mit wenig Aufwand eine hohe Kompression erreicht werden.Weiterführung Beispiel [SW99, S. 447]:DCT Koeffizienten 13 -159 9 36 -7 -6 4 -6Q - Matrix 16 11 10 16 24 40 51 61Ergebnisse 0 -14 0 2 0 0 0 0Die Quantisierung im eindimensionalen Beispiel erfolgt genau wie imzweidimensionalen (mit 8x8 Matrizen). Jeder Wert der DCT Koeffizienten wird durchden zugehörigen Wert der gegebenen Quantisierungsmatrix geteilt und die Ergebnissewerden auf ganze Zahlen gerundet. Die ersten drei Werte der Folge werdenfolgendermaßen berechnet:13 : 16 = 0,1825 → gerundet: 0-159 : 11 ≈ -14,4545 → gerundet: 149 : 10 = 0,9 → gerundet: 0 (die Werte werden immer abgerundet, nie aufgerundet)7 auch: Gleichanteil (Maß für die mittlere Helligkeit)17


Da im Beispiel viele DCT Koeffizienten kleiner sind als die dazugehörigen Werte ausder Quantisierungsmatrix, ergeben die Divisionen zusammen mit der Abrundung derErgebnisse häufig null und diese Werte könnten effizient weiter komprimiert werden.Bei der Wahl der Bewertungsmatrix ist zu beachten, dass ein Blocking-Effektvermieden wird. Denn dieser lässt die Umrisse der 8x8 Pixel Blöcke für das Augesichtbar werden.Die Quantisierung birgt einen Unterschied zu JPEG, man kann für jeden Block ausmehreren Quantisierungstabellen wählen (= adaptive quantisation). Das ermöglichthöhere Kompressionsraten, macht aber die Kodierung selbst komplizierter.3.1.5 Zig–Zag–ScanAbbildung 4: Zig-Zag-ScanMithilfe des Zig–Zag–Scans werden die Koeffizienten nun geordnet. Die Koeffizientenwerden in der Reihenfolge des Zick-Zack-Musters von der Matrix in eineeindimensionale Folge gebracht. Da die Frequenzen höher sind, je weiter rechts undunten sie in der Matrix stehen, ist die erhaltene Folge aufsteigend nach der Höhe derFrequenzen geordnet. Im Idealfall sind bei der Quantisierung viele hohe Frequenzen mitNull bezeichnet worden, die nach der Ordnung nun hintereinander stehen. Diese Folgenvon Nullen können mit der Lauflängenkodierung effektiv komprimiert werden.18


Beispiel [Sc02, S. 117]: (vereinfacht hier eine 4x4 Matrix statt der üblichen 8x8 Matrix)101 10 0 -10 0 0 -10 0 0 00 1 0 0Mit dem Zick Zack Muster wird die Matrix der quantisierten DCT Koeffizientengescannt und wir erhalten die Folge:101; 10; 0; 0; 0; 0; -1; 0; 0; 0; 1; 0; -1; 0; 0; 0.3.1.6 DPCM (Differential Pulse Code Modulation)Die DPCM nutzt aus, dass die DC-Komponenten (Gleichanteile) der verschiedenenMakroblöcke sehr stark miteinander korrelieren. Die Gleichanteile haben ähnlicheWerte, sind aber sehr unterschiedlich zu den anderen Werten der Makroblöcke. Es wirdeine stärkere Kompression erreicht, indem die DC-Komponenten getrennt von denrestlichen Werten der Makroblöcke miteinander kodiert werden.“Die Differential Pulse Code Modulation (DPCM) wird auf die DC Komponenteangewandt. Diese Komponente ist groß und abwechslungsreich, aber oft nah amvorhergehenden Wert (wie verlustfreies JPEG). Es wird die Differenz zuvorhergehenden 8x8 Blöcken kodiert.“ [St04, S. 27]Die Gleichanteile werden den vorhergehenden Gleichanteilen der anderen Makroblöckemit der DPCM kodiert. Die Differential Pulse Code Modulation speichert nicht dieWerte selbst, sondern ihre Differenz voneinander. Da die Gleichanteile sehr ähnlicheWerte haben, ist die Differenz zweier Gleichanteile ein wesentlich kleinerer Bitstringals die Werte selbst. So wird eine höhere Kompression der DC-Komponenten erreicht.Man subtrahiert den vorhergehenden Wert vom aktuellen Wert.XDPCM= Xi− Xi− 119


Beispiel:DC-Komponenten 101 103 99 101→ 101 → 2 → -4 → 2.Die erste DC-Komponente wird notiert, ab der zweiten werden nur noch dieDifferenzen kodiert.101103 – 101 = 299 – 103 = -4101 – 99 = 2.3.1.7 Run Length Encoding (RLE, Lauflängenkodierung)Das Run Length Encoding ist ein verlustfreier und sehr einfacherKompressionsalgorithmus. Er ist besonders effektiv bei Zeichenfolgen mit vielen sichwiederholenden Zeichen. Die Komprimierung funktioniert, indem statt einer Folge vongleichen Werten selbst der Wert und die Anzahl, wie oft er hintereinander vorkommt,gespeichert wird. Eine Folge von gleichen Zeichen wird als „run“ bezeichnet. Für dieFolge von ZeichenXXXXXXXwäre die RLE – Kodierung7X.So wird Speicherplatz eingespart. Diese Kodierung ist nicht bei allen Folgen vonWerten sinnvoll. Beinhaltet eine Folge von Werten wenig sich wiederholende Wertekann die Kodierung auch länger werden als die originalen Werte selbst. Bei MPEG istdiese Kodierung sinnvoll, da nach der Quantisierung viele Nullen entstehen. Nach demZig–Zag–Scan sind viele Nullen direkt hintereinander angeordnet, die „runs“ der Nullenwerden so abgekürzt.Zur Veranschaulichung wende ich die Lauflängenkodierung auf das Beispiel ausKapitel 3.1.5 an. (Grundsätzliche Lösung RLC: [HBS03, S. 55])20


Datenfolge 10 0 0 0 0 -1 0 0 0 1 0 -1 0 0 04 Nullen bis -1 3 Nullen bis 1Nach RLC 10 (4, -1) (3, 1) (1, -1) (3, ...)Die Zahl 101 ist die DC Komponente und wird mit der Differential Pulse CodeModulation kodiert und muss deswegen nicht in die Lauflängenkodierungmiteinbezogen werden.3.1.8 Huffman Kodierung (Variable Length Coding)Die Huffman Kodierung ist eine Form der Entropiekodierung. Eine Entropiekodierungkomprimiert die Daten, indem sie Zeichen verschiedene Folgen von Bits zuordnet. DieVerkleinerung der Daten wird dadurch erreicht, dass besonders häufig vorkommendenZeichen kurze Bitfolgen und selten auftretenden Zeichen lange Bitfolgen zugeschriebenwerden.Die aus der Lauflängenkodierung gewonnenen Tupel werden so verlustfrei weiterkomprimiert und in Binärschreibweise gebracht. Für die Eindeutigkeit ist die HuffmanKodierung präfixfrei (prefix–free). Das heißt, dass ein Bitstring, der für ein Zeichensteht, niemals im Beginn (prefix) eines Bitstrings stehen darf, der einen anderen Wertrepräsentiert.Nach der zugrunde liegenden Idee sollen die kürzesten Codewörter für die amhäufigsten vorkommenden Werte benutzt werden. Dafür wird eine Tabelle der Werteerstellt, geordnet nach ihren Häufigkeiten. Dem am häufigsten vorkommenden Wertwird das kürzeste Codewort beigeordnet. Dem am zweithäufigsten vorkommende Wertdas zweitkürzeste Codewort und so weiter.Die Anwendung des Huffman Codes führe ich mit dem Beispiels aus Kapitel 3.1.5 vor.In der vereinfachten DCT Koeffizienten Matrix kommen vier Werte vor, die kodiertwerden müssen: -1, 0, 1 und 10. Um zu entscheiden, welcher der Werte einen kurzenund welcher einen langen Code enthält, wird gezählt, wie oft die Werte vorkommen.Wert -1 0 1 10 ∑21


Vorkommen 3 11 1 1 16ProzentualesVorkommen0,1785 0,6875 0,0625 0,0625 1Damit der ganze Code später eindeutig interpretierbar ist, hält man sich bei der Auswahlder Codes an die Präfixfreiheit der Huffman Kodierung. Das heißt, wenn ich den Code1 benutze, darf ich keinen Code mit einer 1 am Anfang benutzen, wie beispielsweise 10oder 111. Dann könnte man eine Folge von Codes nicht mehr eindeutig entschlüsseln.(111 könnte für den Wert des Codes „111“ oder für dreimalige Wiederholung desWertes für Code „1“ stehen)Nun werden die am häufigsten vorkommenden Werte 0 und 1 den ein- undzweistelligen Codes zugeordnet, die anderen Werte bekommen absteigend nach ihremVorkommen längere Codes.Es ergibt sich folgende Zuordnungstabelle:WertCode0 0-1 101 11110 1103.2 Interframe Kodierung: Ausnutzen der temporären RedundanzDie Intraframe Kodierung reicht für die Komprimierung von nicht-bewegten Bildernvöllig aus, für die Kompression eines Videos wird jedoch eine stärkere Verkleinerungder Daten benötigt. Eine Kompression von allen Bildern des Videos einzeln verringertdie große Datenmenge eines Videos nur ungenügend. Deswegen nutzt MPEG neben derIntraframe Kodierung die Interframe Kodierung und kodiert die Bilder nicht nureinzeln, sondern auch mit Bezug aufeinander. Dabei wird ausgenutzt, dass Videosignale22


äumliche und zeitliche Informationen haben. So können bei der Videokompression imGegensatz zur Bildkompression auch zeitlich überflüssige Informationen erkannt undreduziert werden.Zeitliche Redundanzen sind überflüssige Informationen zwischen verschiedenenBildern. Um das Video zu komprimieren, werden sie herausgefiltert. DoppelteAusschnitte werden nicht gespeichert und es wird nur eine Referenz auf den erstenAusschnitt gespeichert. Diese Referenz ist der so genannte Bewegungsvektor (MotionVector), man speichert nur die Differenz von der Stelle des aktuellen Makroblocks imReferenzbild zu der Stelle des zu referenzierenden Makroblocks.Referenzierter MakroblockReferenzbildSuchbereichAktueller MakroblockAktuelles BildBewegungsvektorZeitAbbildung 5: Motion CompensationWährend die Intraframe Kodierung nur die Intrakodierten Bilder definiert, unterscheidetdie Interframe Kodierung zwischen zwei verschiedenen Arten von Bildern, denPredicted kodierten Bildern (P-Bilder) und den Bidirectional kodierten Bildern (B-Bilder). Die Predicted und Bidirectional kodierten Bilder bieten die maximaleKompression innerhalb von MPEG. B-Bilder können zudem zur Fehlerresistenzbeitragen. Einerseits kann der Effekt von Störgeräuschen vermindert werden, dadurchdass ein Durchschnitt zwischen den vergangenen und zukünftigen Referenzblöckenermittelt wird. Andererseits verbreiten B-Bilder Fehler nicht, denn sie werden selbstnicht als Bezugsbilder genutzt.Wie bei der Intraframe Kodierung muss bei der Interframe Kodierung der RGBFarbraum umgewandelt werden, hin zu einer Trennung von Helligkeits- und23


Farbsignalen. Die Verkleinerung der zu bearbeitenden Einheiten erfolgt durch dieZerlegung in Makroblöcke.Zur Feststellung ob eine Information ähnlich oder gleich in zwei verschiedenen Bildernvorkommt werden die Makroblöcke verschiedener Bilder verglichen. Gibt es keineÄhnlichkeiten, wird der betreffende Makroblock mit der Intraframe Kodierung kodiert.Gibt es eine solche doppelte Information, wird sie nur einmal kodiert und zurWiederherstellung des zweiten Makroblocks als Bewegungsvektor auf den anderenMakroblock gespeichert. Der Bewegungsvektor wird erst mit der Differential PulseCode Modulation (DPCM) und anschließend mit der Huffman Kodierung kodiert. DerDatenstrom liegt wie bei der Intraframe Kodierung nun in Binärwerten vor.RGBildBC bYC bZerlegung in MakroblöckeYC bC rFür jeden MakroblockPrediction ErrorMotion EstimationBewegungsvektorQuantisierungKeineMotion EstimationDPCMQuantisierteDCTKoeffizientenQuantisierungDCTDCTKoeffizientenHuffman KodierungZig – Zag - ScanDPCMHuffman KodierungRLE00101110...Abbildung 6: Interframe Kodierung24


3.2.1 Blockbasierte BewegungskompensationDie Idee der Bewegungskompensation (block–based motion compensation) beruhtdarauf, dass sich innerhalb eines Films nur Teile der aufeinander folgenden Bilderändern. Die Sequenzen können sich sehr ähnlich sein. Wenn der Film zum Beispiel einfahrendes Auto zeigt, so verändert sich die Position des Autos, seine Beschaffenheitaber nicht. Die Bewegung zwischen gleichen Bildteilen wird herausgefunden und derBewegungsvektor wird gespeichert.Die blockbasierte Bewegungskompensation nutzt die temporäre Redundanz undspeichert doppelt existierende Pixelblöcke als Bewegungsvektor (Motion Vector, auch:Verschiebevektor) des ersten Pixelblocks. Dabei werden doppelte Bildinformationenwie das Aussehen des fahrenden Autos nur einmal gespeichert. Bei der Kodierung wirdnun im Referenzbild ein 16x16 Pixel großer Makroblock gesucht, der möglichst großeÄhnlichkeit mit dem betrachteten Makroblock im aktuellen Bild besitzt. Wenn maneinen ähnlichen (fast gleichen) Bildbereich gefunden hat, wird anstelle des aktuellenMakroblocks nur ein Bewegungsvektor kodiert. Die Dekodierung funktioniert dann nurmit dem Makroblock, den man referenziert hat. Findet man für einen Makroblockkeinen ähnlichen Makroblock im Referenzbild wird der aktuelle Makroblock mit derIntra Frame Kodierung kodiert und die DCT Koeffizienten werden errechnet. DiesenMakroblock kann man ohne andere Makroblöcke oder andere Informationen wiederdekodieren. Der Unterschied zwischen dem aktuellen und dem zu referenzierendenMakroblock sollte möglichst gering sein. Sobald dieser eine gewisse Größeüberschreitet wird die Differenz mitkodiert und abgespeichert, was als Error Term oderPrediction Error bezeichnet wird. Die Größe, ab der ein Error Term mitkodiert wird,hängt von der jeweiligen Implementierung ab, MPEG macht dafür keine Vorgaben. DerError Term ist wichtig für die Prediction Error Compensation. Beinhaltet der aktuelleFrame beispielsweise ein Rechteck, welches sich auch im zu kodierenden P-Framebefindet, dort allerdings verschoben und gedreht, so kann der Unterschied derRechtecke mit der Prediction Error Compensation abgebildet werden. Die Verschiebungdes Rechtecks wird mit dem Bewegungsvektor ausgedrückt. Die Rotation desRechtecks wird mit Hilfe des Prediction Errors konstruiert. Die Differenz des Rechtecksund des gedrehten Rechtecks ist der Prediction Error, mit dem und dem Rechteck derForward Prediction zusammen der P-Frame bei der Dekodierung erhalten wird.25


Motion VectorI-FrameForward Prediction+P-FramePrediction ErrorAbbildung 7: Prediction Error CompensationDer Bewegungsvektor v * i wird durch die folgende Formel erhalten:v∗ix ∈V−= min 1∑ D[IC(x)− IR(x + v)]x∈Mix ist die Koordinate des BildpunktesM i ist der MakroblockI C ist das aktuelle Bild (current picture)I R ist das Referenzbild (reference picture)Der Suchbereich V und die Kostenfunktion D werden der Implementierung überlassen.Die B-Bilder sind eine Verbesserung der Bewegungskompensation gegenüber den B-Bildern, denn sie benutzen sowohl den vorherigen, als auch den nachfolgenden Framefür die Suche nach ähnlichen Makroblöcken. So können mehr Redundanzen gefundenwerden und die Komprimierung ist stärker als nur die Suche in einem anderen Bild, wiebei den B-Bildern.Anschließend wird der Bewegungsvektor durch einen variablen Lauflängencodedargestellt. (VLC)26


4 FazitMPEG hat sich als Standard durchgesetzt. MPEG ist bis heute der weltweit meistverbreitete Standard für Videokompression. Auch das Audioformat MP3, hervorgehendaus dem MPEG Standard, ist auf der ganzen Welt gebräuchlich.Der Erfolg von MPEG liegt wohl in der guten Qualität, die trotz hoher Kompressiongehalten wird und darin, dass MPEG die Nutzer nicht an eine bestimmte Firma bindet.Die bisherige Entwicklung hat über die Jahre die Qualität der komprimierten Bildernoch steigen lassen. Außerdem lässt MPEG viele Möglichkeiten und erlaubt denHerstellern, die Algorithmen zu verändern.Eine effektive Kompression von digitalen Videodaten wird aktuell immer wichtiger,zum Beispiel im Zuge der Einführung des digitalen Fernsehens, der Entwicklung vonHDTV oder des ATM–basierten Breitband ISDN.27


Literaturverzeichnis[AS99][Br97][Ch96][Fi02]Supavadee Aramvith, Ming-Ting Sun: MPEG-1 And MPEG-2 VideoStandards, Academic Press, 1999.Ilja N. Bronstein, Konstantin A. Semendjajew, Gerhard Musiol, HeinerMühlig: Taschenbuch der Mathematik, Harri Deutsch, 1997.Kulanthai Chandrarajh: What Is MPEG Video Compression Standard?,http://www-dse.doc.ic.ac.uk/~nd/surprise_96/journal/vol2/ck4/article2.html,1996.Peter Fischer: Lexikon der Informatik – Für Praxis und Studium,SmartBooks, 2002[Fis02] Sven Fischer: Grafikformate GE-PACKT, mitp, 2002.[Fu96][HBS03][KR07][LG91]Funke: Konzeption und Entwicklung eines Video Effect Modelers,(Diplomarbeit), 1996.Arne Heyna, Marc Briede, Ulrich Schmidt: Datenformate imMedienbereich, Carl Hanser Verlag, 2003.Uwe Kühhirt, Marco Rittermann: Interaktive audiovisuelle Medien, CarlHanser Verlag , 2007.Didier Le Gall: MPEG: A Video Compression Standard for MultimediaApplications, Communications of the ACM, Vol.34, No.4, 1991.[RP02] Peter Rechenberg, Gustav Pomberger: Informatik-Handbuch, Hanser, 2002.[Sc02] Ulrich Schmidt: Digitale Film- und Videotechnik, Carl Hanser Verlag, 2002.[St04][SW99]Michael Stepping: Ein Beitrag zu MPEG – 4 Broadcast, Stepping(Dissertation), 2004.Joachim Schulze-Wenck: Datenreduktion Digitalisierter Fernsehbilder,Unterrichtsblätter der Deutschen Telekom Heft Nr. 8, 1999.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!