Video
Kompressionsverfahren MPEG-1
Übersicht
Im Jahre 1993 wurde MPEG-1
bzw. MPEG als ISO Standard „ISO IEC JTC 1“ verabschiedet. MPEG-1 setzt
hierbei auf der im Jahre 1990 von der ITU verabschiedeten H.261 Norm und
dem Einzelbildkompressionsverfahren JPEG auf.
H.261 wird im nachfolgenden
Kapitel kurz erwähnt. Die wesentlichen Konzepte der Videokompression
sollen jedoch anhand von MPEG-1 dargestellt werden.
MPEG steht für die Forschung
bzw. Normierungsgruppe „Moving Picture Experts Group“, die sich mit der
Videokompression beschäftigt.
Die grundsätzlichen
Vorgaben für MPEG-1 war die Darstellung von Videos in akzeptabler
Qualität, wobei hier die Qualität eines VHS-Videorecoder erreicht
werden sollte, bei einer vorgegebenen Datenrate von 1,2MBit/s. Diese Datenrate
konnte durch damalige CD-ROM Laufwerke erreicht werden. MPEG-1 arbeitet
mit Datenraten bis zu 1,856MBit/s.
Die gesamten Qualitätsparameter
zu MPEG-1 sind:
max. 768x576 Pixel |
max. 30 Frames/Sekunde |
max. 1,856 MBit/Sekunde |
Bei MPEG-1 wird die Einzelbildkompression
basierend auf dem JPEG (Joint Picture Experts Group) eingesetzt. JPEG bzw.
JPG wird daneben in vielen Anwendungen mit digitalen Bildern als Dateistandard
verwendet.
Bei der Videokompression
stehen zwei grundsätzliche Ansätze zur Kompression zur Verfügung.
Ein Video läßt sich als Folge von einzelnen Bildern verstehen.
Somit ist es offensichtlich, daß durch die Kompression dieser einzelnen
Bilder eine Kompression möglich ist. Dieser Ansatz wird als „intraframe“
Kompression bezeichnet, da hier das einzelne Bild betrachtet wird.
Eine weitere Möglichkeit
der Kompression entsteht durch die Analyse der Änderung zwischen nachfolgenden
Bildern. Im wesentlichen wird hierbei die Differenz zwischen den Bildern
betrachtet. Dieser Ansatz wird als „interframe“ Kompression bezeichnet.
Bei MPEG-1 werden sowohl
„intraframe“ als auch „interframne“ Kompression eingesetzt.
Die Darstellung eines einzelnen
Bildpunktes auf dem Bildschirm entsteht durch die Addition der drei Farbkomponenten
Rot, Grün und Blau. Diese RGB-Darstellung ist für jeden Monitor
selbstverständlich, da auf der Bildröhre genau diese drei Elementarfarben
vorhanden sind, und durch die Mischung hierdurch alle anderen Farben erzeugt
werden können.
Bei der Source-Codierung
ist es entscheidend, daß die spezifischen Eigenschaften des Empfängers
berücksichtigt werden. Hieraus ergibt sich eine andere Farbdarstellung.
Statt einen Bildpunkt als RGB-Vektor zu verstehen, wird eine Transformation
in einen Helligkeitsanteil Y (luminance) und zwei Farbvektoren I und Q
durchgeführt.
Die Motivation hierfür
ergibt das menschliche Auge. Das Auge hat eine sehr viel höhere Helligkeitsempfindlichkeit,
als dies bei der Farbempfindlichkeit der Fall ist. Durch die Trennung zwischen
Helligkeitsinformation, mit der bereits ein Schwarzweißbild erzeugt
werden kann, und der Farbinformation kann nachfolgend eine bessere Kompression
erreicht werden.
Dies erfolgt in nächsten
Schritt durch die Einteilung des Bildes in sogenannte Macroblöcke.
Ein Macroblock besteht aus 8x8 einzelnen Bildpunkten. Bei der Helligkeitsinformation,
werden 8x8 Bildpunkt in einen 8x8 Pixel großen Macroblock übersetzt.
Da die Farbinformation für
das Auge jedoch nicht von so entscheidender Bedeutung ist, werden bei den
beiden Farbkomponenten I und Q jeweils 2x2 Pixel in einen einzelnen Pixel
im Macroblock transformiert. Somit werden aus ursprünglich 16x16 Pixel
nur noch 8x8 Pixel im Macroblock. Durch diese Zusammenfassung wird bereits
eine Datenreduktion von 75% bei den Farbkomponenten erreicht, da aus ursprünglich
4 Pixel nur noch ein einzelner Pixel wurde.
Durch die Transformation
der Helligkeits- und Farbinformation in Macroblöcke wird der nächste
wesentliche Schritt bei der Kompression ermöglicht.
In einem Macroblock werden
8x8 (bei der Helligkeitsinformation) bzw. 16x16 (Bei der Farbinformation)
repräsentiert. Diese Darstellung läßt sich erneut durch
ein mathematisches Verfahren zerlegen.
Um das grundsätzliche
Verfahren zu verstehen ist ein Exkurs in die Nachrichtentechnik bzw. Physik
erforderlich.
Grundsätzlich läßt
sich jedes Signal, z.B. die Messung einer Spannungsänderung an einem
Mikrofon, durch die Summation von mehreren einzelnen diskreten Frequenzen
darstellen. Das entsprechende mathematische Verfahren wird Fourier-Transformation.
Nach der FT wird ein Signal nicht mehr als eine Folge von Spannungswerten
zu bestimmten Zeitpunkten (Graph) beschrieben, sondern durch die Anteile
von bestimmten Frequenzen.
Bild: Transformation eines Makroblock
von der Signal (Zeit) Darstellung in die Frequenz Darstellung mittels DCT
Bild: Basis zu der das ursprüngliche
Signal in die Frequenzdarstellung transformiert wird
Die FT ermöglicht dies
für ein eindimensionales Signal. Bei der Bildkompression wird das
zweidimensionale Verfahren „discrete cosinus transformation“ DCT verwendet.
Hier wird das „Signal“ nicht als eindimensionale Frequenzdarstellung, sondern
als Darstellung zweier Frequenzen dargestellt, die senkrecht aufeinander
stehen.
Eine weitere Möglichkeit
dies zu verstehen ist durch eine Basistransformation zu verstehen. Eine
solche Basis ist durch nachfolgendes Bild gegeben. Auf diesem Bild ist
links oben die geringste Frequenz zu sehen, während die Frequenzen
nach rechts bzw. unten steigen.
Nachdem durch die DCT eine
Frequenzdarstellung in x- bzw. y-Achse vorhanden ist, können weitere
Informationsanteile entfernt werden. In der transformierten Darstellung
eines Macroblock steigen die Frequenzen für die x-Achse von links
nach rechts, während die Frequenzen für die y-Achse von oben
nach unten steigen.
Betrachtet man die Summe
der x- und y-Frequenz, so ergeben sich auf diagonalen Geraden von rechts-oben
nach links-unten jeweils gleiche Summenfrequenzen. Werden diese Frequenzen
durch den im Bild dargestellten „zig-zag“ Kurs durchlaufen, dann steigt
die Summenfrequenz kontinuierlich an, bis das Maximum in der rechten unteren
Ecke erreicht wird. Werden die Macrozellen in dieser Reihenfolge als Vektor
betrachtet, so steigen die Frequenzen von der ersten zur letzten Komponente
an. Mit einer steigenden Frequenz wird der Anteil der höherfrequenten
kontinuierlich geringer.
Bild: Ermittlung der Reihenfolge durch
"zig-zag" Kurs
Durch eine Quantisierung
(Rundung) dieses Vektors, werden i.d.R. viele Komponenten zu 0. Diese Komponenten
brauchen dann bei der späteren Verarbeitung nicht mehr berücksichtigt
werden. Gerade diese Quantisierung ist ein weiterer wesentlicher Schritt
der Datenreduktion bei diesem Verfahren.
Durch diese sehr umfangreichen
mathematischen Verfahren ist der wesentliche Teil der Datenreduktion erreicht.
Die jetzt folgenden Schritte kodieren die so gewonnenen Daten.
Die erste Komponente des
quantisierten Vektors beschreibt die geringste Frequenz in dem entsprechenden
Macroblock. Hierdurch wird die Grund- bzw. Durchschnittsausprägung
der Helligkeitskomponente bzw. eines der beiden Farbvektoren beschrieben
werden. Dieser Wert wird als DC-Wert bezeichnet und kann für eine
sehr grobe Bilddarstellung bereits eingesetzt werden. Da ein Bild seine
Helligkeits- bzw. Farbinformation i.d.R. steig ändert, werden die
DC-Werte von nachfolgenden Macroblöcken mittels „differential pulse
code modulation“ DPCM kodiert. Bei diesem Verfahren werden zu dem entsprechenden
Vorgängerwert lediglich die Differenzen berücksichtigt.
Die anderen 63 AC Werte
werden durch die Lauflängen-Kodierung dargestellt. Die Motivation
hierfür ergibt sich aus der Tatsache, daß viele dieser Wert
0 sind, und somit durch die LL-Kodierung eine sehr gute Kompression erreicht
werden kann.
Neben der sehr komplexen
„intraframe“ Kompression wird noch die „interframe“ Kompression durchgeführt.
-
interframe Kompression
Bild: Beispiel "Tagesschau" (c) ARD/NDR
(Erlaubnis zur Veröffentlichung im
Rahmen der Seminararbeit wird angenommen.)
Bei den meisten Anwendungen
ändern sich im zeitlichen Verlauf nur sehr wenige Macroblöcke
bei nachfolgenden Bildern. Somit ist es sehr wünschenswert nur solche
Macroblöcke neu zu übertragen, in denen eine signifikante Änderung
stattgefunden hat. Bei dem dargestellten Bild der Tagesschau, ändern
sich nur sehr wenige Teile, insbesondere die Gesichtszüge und diverse
Text- und Grafik-Einblendungen im Vorder- und Hintergrund.
Daneben wird bei der „interframe“
Kompression noch eine „motion compensation“ durchgeführt. Hierbei
wird untersucht, ob einzelne Macroblöcke durch translatorische Bewegungen
ihre Position im Bild geändert haben. Gerade dieser Schritt ist sehr
aufwendig und wird nicht immer durchgeführt, da nur bei bestimmten
Bildsequenzen eine signifikante Datenreduktion möglich ist. Andere
Bewegungsabläufe einzelner Macroblöcke (z.B. Rotationen) werden
grundsätzlich nicht durchgeführt, da dies noch einmal eine sehr
erhebliche CPU Belastung für den Sender zur Folge hätte.
Abschließend werden
für MPEG-1 noch die benutzen Frametypen dargestellt. In einem Frametyp
wird ein entsprechender Teil des Datenstroms dargestellt.
Diese Frames stellen ein
komplettes Bild in JPEG Kodierung dar. I-Frames werden in regelmäßigen
Schritten gesendet, um einem Empfänger quasi jederzeit die Möglichkeit
zum Darstellen des Videos zu ermöglichen. Denn ein I-Frame ist immer
die Grundlage für andere nachfolgende Frametypen.
Bei diesen Frames werden
die Änderungen zu einem anderen I-Frame bzw. zu einem anderen P-Frame.
-
B – Frames (Bidirectional Frames)
-
D – Frames (DC Komponente)
Dieser Frametyp beinhaltet
nur den DC Anteil eines Macroblock. Somit läßt sich hierdurch
das Bild nur sehr grob darstellen. Deshalb werden D-Frames hauptsächlich
für Anwendungen mit schnellem Vor- bzw. Rückspulen eingesetzt.
Die Framereihenfolge kann
völlig frei durch den Sender vorgegeben werden. Wie bereits erwähnt,
muß jedoch in regelmäßigen Abständen ein I-Frame
gesendet werden, damit auch alle potentiellen Empfänger möglichst
schnell mit der Darstellung beginnen können.
Bild: Mögliche Reihenfolge der unterschiedlichen
Frametypen mit ihren entsprechenden Referenzbildern
-
Zusammenfassung MPEG
In der nachfolgenden Grafik
wird das komplette MPEG-1 Verfahren ohne den „interframe“ Anteil dargestellt.
Bild: MPEG-Kompletdarstellung (ohne interframe)
Die Audio Kompressionsverfahren
von MPEG-1 werden hier nicht erwähnt.
-
MPEG 2
Neben MPEG-1 wurde 1993
zur Normierung bei der ISO vorgeschlagen. Während MPEG-1 sehr enge
Grenzen bei der Qualität und der nutzbaren Bandbreite vorgibt, beinhaltet
MPEG-2 eine größere Variationsmöglichkeit von Qualität
und Bandbreite.
Während MPEG-1 lediglich
„VHS-Qualität“ bietet, kann MPEG-2 auch bei anspruchsvollen Anwendungen
mit erhöhten Qualitätsanforderungen eingesetzt werden.
MPEG-2 bietet also die sogenannte
„Broadcast Quality“, wie sie für die Verbreitung von Fernsehbildern
gefordert wird.
Die Bandbreitenvorgaben
erfolgen in „levels“. Daneben existieren „profiles“ die Qualitätsvorgaben
machen. Die möglichen Kombination zwischen „levels“ und „profiles“
werden in der nachfolgenden Tabelle dargestellt.
High Level
1920x1152 pixel |
|
80 MBit/s |
|
|
100MBit/s |
High-1440 Level
1440x1152 pixel |
|
60 MBit/s |
|
60 MBit/s |
80 MBit/s |
Main Level
720x576 pixel |
15 MBit/s |
15 MBit/s |
15 MBit/s |
|
20 MBit/s |
Low Level
352x288 pixel |
|
4 MBit/s |
4 MBit/s |
|
|
LAYERS/LEVELS
and
PROFILES |
Simple Profile
no B-Frames
4:2:0
not scalable |
Main Profile
B-Frames
4:2:0
not scalable |
SNR Scalable
Profile
B-frames
4:2:0
SNR scalbale |
Spatialy Scalable Profile
B-Frames
4:2:0
SNR Scalable or spatial scalable |
High Profile
B-Frames
4:2:0 or 4:2:2
SNR scalbale or spatial scalable |
Das wichtigste Einsatzgebiet
von MPEG-2 stellt das digitale Fernsehen dar. So wird MPEG-2 bei der digitalen
Fernsehübertragung via Satellit und Kabel eingesetzt.
Nächstes
Kapitel:
Video
Kompressionsverfahren H.261/H.263