Bewegungskompensation bedeutet, daß redundante Bildinformationen, welche
sich durch Koordinatenverschiebungen innerhalb einer Bildsequenz ergeben, nur
durch einen Vektor mit Referenzierung auf einen Urblock codiert werden.
Bei der Berechnung der Motion Compensation wird sich dabei jedoch ein
Bilddetail nicht
immer identisch über eine Folge mehrerer Bilder fortsetzen. Ein Pixelblock
wird sich im Fall von Realvideo aufgrund des Grundrauschens immer mehr oder
weniger vom vorhergehenden unterscheiden. Bei einer Person, die sich durch
das Bild bewegt, ändert sich zum Beispiel der Sitz oder die Schattierung
der Kleidung. Falls die Bildunterschiede signifikant sind, muß neben dem
Motion-Vektor auch noch ein Fehlerbild codiert werden.
Die Entscheidung, wohin sich ein Bildinhalt bewegt, kann nur aufgrund
objektiver Kriterien erfolgen.
Ein Video-Encoder wird daher in der Umgebung des früheren Ausgangsblocks
nach einem Pixelblock suchen, der eine größtmögliche Ähnlichkeit
besitzt (Abbildung ).
Ein denkbares Entscheidungskriterium ist zum Beispiel der
mittlere quadratische Abstand der Werte der beiden 16xl6-Pixelblöcke.
Gemeint ist damit, daß die Quadrate der Differenzen aller Luminanzwerte
und Chrominanzwerte des Originalblocks und des Kandidatenblocks innerhalb des
Suchbereiches errechnet und aufsummiert werden. Auf diese Art und Weise
erhält man ein Maß für die Ähnlichkeit zweier Blöcke. Hat sich
ein Block zum nächsten fortgepflanzt ohne sich zu verändern, ist die
Differenz gleich Null. Eine sehr rechenaufwendige Methode wäre, für
alle denkbaren Verschiebungen innerhalb des Suchbereichs die Summe der
quadrierten Differenzen zu bilden. Im Encoder wird dann der Bewegungsvektor
des Bildes mit dem kleinsten quadratischen Abstand zum Original als der beste
ausgewählt. Die Suche nach dem besten Motion-Vektor kann mit einer
Auflösung von einem Pixel oder einem halben Pixel erfolgen. Die für die
Codierung verwendeten Vektoren besitzen dabei eine Auflösung von bis zu
einem halben Pixel. Für die Suche nach dem Motion-Vektor kann linear
zwischen benachbarten Pixeln interpoliert werden. Da der Rechenaufwand sehr
erheblich ist, werden unterschiedliche Suchstrategien angewandt. So kann
beispielsweise zunächst das Gitter der 48x48 ganzzahligen Verschiebungen
abgesucht werden, um danach die 8 benachbarten Positionen mit einem Abstand
von einem halben Pixel zu untersuchen. Eine weitere Methode benutzt für
die Suche zunächst ein grobes Raster mit einem Abstand von mehreren Pixeln
um es dann um die beste Position nach und nach zu verfeinern. Diese Methode
kommt mit noch weniger Schritten aus. Allerdings wird die Wahrscheinlichkeit
geringer, den optimalen Motion-Vektor zu finden.
JPEG kann in der Regel mit einer 20- bis 25fachen Datenverdichtung Bilder
guter Qualität komprimieren und dekomprimieren. MPEG erreicht durch das
Motion-Compensation-Verfahren den dreifachen Wert. Berücksichtigt man,
daß bei MPEG-1 Videobilder vor der eigentlichen Kompression auf CIF
heruntergerechnet werden, so ergeben sich Datenverdichtungen um den Faktor
240. (CIF (Common Intermediate Format) entspricht einer Auflösung von
352*288 Pixel (352*240 Pixel bei NTSC) - ermöglicht ganzzahlige
Aufteilung in 16x16 Blöcke.) Dies bedeutet - bildlich gesehen, daß
zehn Pixel mit je acht Bit für die Rot-, Grün- und Blau-Werte durch
nur ein Bit dargestellt werden.
Figure: Bereich für die Suche nach Bewegungsvektoren
[Buc94]