Das Kefk Network Wiki befindet sich im Testbetrieb.
Motion Compensation
Aus Kefk.
Unter dem Oberbegriff Motion Compensation oder Motion Prediction wird eine Reihe von Algorithmen zusammengefasst, die temporäre Relationen zwischen benachbarten Frames ausnutzen, um die Gesamtmenge der zu komprimierenden Daten zu minimieren. Vereinfacht heißt dies, dass Bildbereiche, die über mehrere Frames hinweg annähernd gleich bleiben, nicht ein weiteres Mal übertragen werden, sondern die Informationen aus den vorgehenden Frames bestehen bleiben.
Einfache Kompressionsverfahren reduzieren nur unbewegte Bildanteile, beispielsweise den Hintergrund vor dem ein Nachrichtensprecher sitzt, oder einfache Kamerabewegungen wie Zoom, Horizontal- oder Vertikalverschiebung. Aktuelle Videocodecs verwenden jedoch komplexere Algorithmen, welche auch bewegte Bildanteile entsprechend komprimieren können. Hierbei wird die Bewegungsrichtung eines Objektes vorhergesagt und durch einen Bewegungs- oder Verschiebevektor beschrieben. Somit muss das Objekt ebenfalls nicht ständig erneut gespeichert werden, sondern nur der entsprechende Verschiebevektor. Dieser benötigt deutlich wenig Speicher als die eigentlichen Bilddaten, was zu einer teils enormen Platzersparnis führt.
Der gleich bleibende Hintergrund muss also nicht ständig erneut gespeichert werden, sondern wird weiterverwendet. Im Endeffekt wird das erste Bild der Szene anfangs nur einmal gespeichert; Für die folgenden Frames müssen dann lediglich diejenigen Bildteile neu hinterlegt werden, die durch das sich bewegende Objekt ursprünglich verdeckt waren. Allerdings wird üblicherweise das komplette Bild in regelmäßigen Abständen neu gespeichert um die Fehlertoleranz zu erhöhen.
Block Motion Compensation
Die Block Motion Compensation (BMC) wird unter Anderem im MPEG-2 Standard verwendet. Bei diesem Verfahren wird jeder Frame in n mal n große Pixelblöcke unterteilt, welche mit dem vorherigen Frame verglichen werden. Findet sich dort ein ähnlicher Bildausschnitt, so wird nur der Verschiebevektor gespeichert um den sich dieser Ausschnitt bewegt.
Ein Pixelblock kann auch als Matrix interpretiert werden. Sei nun Bx,y ∈ Nn×n ein Pixelblock des aktuellen Frames mit dem horizontalen Offset n ⋅ x und dem vertikalen Offset n ⋅ y. Die Matrixelemente bi,j seien die Pixel an der Position (n ⋅ x + i, n ⋅ y + j), pi,j entsprechend die Pixel im vorherigen Frame. Um nun den Verschiebevektor zu finden vergleicht man Bx,y mit einem um den Vektor (u, v) verschobenen Bildausschnitt im vorherigen Frame. Ein Indikator für den Unterschied du,v zwischen Pixelblock und Bildausschnitt ist die Summe der quadrierten Differenzen (Sum of Squared Differences, SSD):
Andere Indikatoren wären beispielsweise die Summe der absoluten Differenzen (Sum of Absolute Differences, SAD) oder die Kreuzkorrelation. Man berechnet du,v für alle Verschiebungen innerhalb einer festgelegten Umgebung von Bx,y und wählt den Vektor (u, v) als Verschiebevektor, bei dem du,v ≤ dmax und das Minimum aller Unterschiede ist. Setzt man dmax = 0, so ist der ursprüngliche Datenstrom vollständig rekonstruierbar, bei einem dmax > 0 komprimiert die Motion Compensation nicht mehr verlustfrei.
Eine Verbesserung des BMC-Algorithmus kann erreicht werden, indem neben dem vorherigen auch der nachfolgende Frame zur Bestimmung des Verschiebevektors herangezogen wird. Mittlerweile wurden auf Basis der Block Motion Kompensation weitere Algorithmen zur Motion Prediction entwickelt, die zum Teil deutlich bessere Ergebnisse liefern. Zum Einen sei hier die Variable Block-Size Motion Compensation und zum Anderen die Overlapped Block Motion Compensation genannt.
Global Motion Compensation
Die Global Motion Compensation (GMC) wird bei der digitalen Videokodierung verwendet, vor allem MPEG-4 (z. B. XviD). Das Ziel von GMC ist eine bessere Kodierungsqualität bei schnellen Bewegungsszenen, wie z. B. Explosionen. Die Verwendung von GMC führt zu einer besseren Bildqualität bzw. geringeren Dateigröße, was allerdings mit einem höheren Kodierungsaufwand einhergeht. GMC ist ein relatives junges Verfahren, das noch nicht von allen Abspielgeräten unterstützt wird und somit zu Problemen führen kann.
