Next: Funktion eines Kodierers
Up: Aufbau des MPEG-Standards
Previous: Block
Wie weiter oben beschrieben, verwendet der MPEG-Standard grundsätzlich zwei
Verfahren zur Bildkodierung:
- Einzelbildkodierung
- Bewegtbildkodierung
Die Bewegtbildkodierung findet dabei nur in den P- oder B-Frames statt und
wird dort ergänzend zur normalen Codierung des Makroblocks angewandt.
Zur Bildkodierung werden die folgenden Makroblocktypen definiert:
- intra-type
Dieser Makroblock wird vollkommen autonom abgespeichert.
Dazu wird der Makroblock in 4 Blöcke von jeweils 8x8 Bildpunkten
aufgeteilt. Diese werden dann blockweise einer diskreten
Cosinunstransformation unterworfen. Das Ergebnis der DCT wird dann
quantisiert, d.h. Werte innerhalb eines Intervalls werden zu einem
Repräsentativwert zusammengefaßt, und mit
variabler Codelänge gespeichert. Auf dieses Verfahren will ich hier
nicht weiter eingehen, da es genauso im JPEG-Standard Verwendung findet
(siehe JPEG-Seminar).
(in I-, P- und B-Frames)
- backward-predicted-type
Bei diesem Makroblocktyp wird ausgenutzt, daß sich bestimmte
Bildteile in
den zeitlich folgenden Bildern kaum verändern bzw. nur eine andere
Position im Bild einnehmen. Dazu wird dieser Makroblock aus dem
Bildinhalt des letzten vorausgegangenen I- oder P-Frame
vorhergesagt (,,predicted``). Der Bewegungsvektor, der mit dem
Makroblock gespeichert wird, bestimmt dabei die Position auf dem
Referenzbild. Die noch vorhandene Abweichung zwischen dem zu kodierenden
Makroblock und der Referenz, auf die der Bewegungsvektor zeigt, wird
wie bei intra-type kodiert. Der
Bildunterschied
ist i.a. gering, so daß dessen Kodierung wesentlich weniger Platz
braucht als bei kompletter Einzelbildkodierung. Die Kodierung
des Restunterschieds kann dabei auch entfallen.
(in P- und B-Frames)
- forward-predicted-type
Dieser Typ entspricht im Prinzip dem backward-predicted-type
Makroblock. Nur wird hier nicht als Referenz ein vorausgegangenes Frame,
sondern das zeitlich als nächstes folgende I- oder P-Frame benutzt.
Da dazu auf zeitlich nachfolgende Frames zugegriffen wird, müssen
die nachfolgenden Bilder schon dekodiert vorliegen. Dies
erzwingt die Nutzung von Bildpuffern und bewirkt eine zeitliche
Verzögerung, d.h. der Dekoder hinkt mit der Darstellung der Frames
der Dekodierung um den Abstand bis zum nächsten I-
oder P-Frame hinterher. In bestimmten Bereichen, wie
z.B. Videokonferenzen, führt das zu Problemen.
(in B-Frames)
- average-type
Bei diesem Typ werden zwei Bewegungsvektoren, einer zeigt entsprechend
dem backward-predicted-type auf ein vorausgeganges Frame, der
andere, wie beim forward-predicted-type auf ein nachfolgendes
Frame. Als Bildinhalt wird das arithmetische Mittel der beiden
Referenzmakroblöcke verwendet.
Der Vorteil von diesem Typ liegt vor allem darin, daß bei der
Mittelwertbildung Rauschen und Bildfehler verringert werden.
(in B-Frames)
Besonders deutlich werden die verschiedenen Makroblocktypen in den
Abbildungen (6, 7).
Welche Frametypen (I, P oder B) verwendet werden, bestimmt der Anwender
beim Kodieren. Welche Makroblöcke der Kodierer in den einzelnen Frames
verwendet, entscheidet der Kodierer anhand der Vorgaben der Anwendung selbst.
Figure: Beispielbildfolge für Abbildung (7)
Figure: Kodierung des mittleren Frames aus Abbildung (6)
Next: Funktion eines Kodierers
Up: Aufbau des MPEG-Standards
Previous: Block
Marius Heuler
Tue Jun 13 18:38:52 MET DST 1995