Uwe Rienäcker

 

Videokompression durch schwellwertgesteuerte Kodierung von Differenzbildern der DCT Koeffizienten

 

Zusammenfassung

In diesem Dokument wird ein Ansatz zur zusätzlichen Kompression bei der Aufzeichnung von Motion JPEG Videodaten durch schwellwertgesteuerte Kodierung von Differenzen der DCT Koeffizienten aufeinanderfolgender Frames beschrieben. Ausgehend von einem Referenzbild werden alle nachfolgenden Frames als Differenz der DCT Koeffizienten zum jeweils vorhergehenden Referenzbild kodiert. Es werden jeweils nur die Blöcke kodiert, deren Koeffizienten eine signifikante Differenz zum aktuellen Referenzbild aufweisen. Eine Kompensation von Bewegungen, vergleichbar mit der der MPEG Kompression, wird nicht vorgenommen, da diese auf das durch die DCT Blöcke festgelegte Raster eingeschränkt wäre. Durch Beschränkung aufwendiger Operationen auf ein Minimum ist die Kodierung mit geringen Anforderungen an die Hardware echtzeitfähig und kann in Ergänzung zur selektiven Aufzeichnung verwendet werden. Experimentelle Ergebnisse zeigen, daß eine durchschnittliche Reduktion der Daten auf ein Zehntel des ursprünglichen Volumens ohne sichtbare Verluste an Qualität im Vergleich zum Original erreichbar ist.

 

Hintergrund

Die selektive Aufzeichnung von Videodaten hat das Datenvolumen im beschriebenen Versuch auf 1/50 reduziert. Ein Szenenwechsel ändert die Verhältnisse. Die Ereignisse von Interesse treten häufiger auf. Die Datenmengen wachsen proportional. Die JPEG und damit auch die Motion JPEG Kompression erreicht bei akzeptabler Qualität eine Kompressionsrate von 100:1. Mit deutlichen Einbußen ist auch 200:1 erreichbar. Ein Frame der Auflösung 320x240 hat durchschnittlich 20 KByte Größe. Bei einer Aufzeichnungsgeschwindigkeit von 15 Frames je Sekunde fallen 300 KByte je Sekunde an. Das entspricht 1,4 MBit je Sekunde. Für eine Auflösung von 320x240 Bildpunkten sind diese Datenmengen entschieden zu viel. Die Bitrate je Pixel ist bei deutlich geringerer Qualität ungefähr äquivalent zu einer herkömmlichen DVD Aufzeichnung im XP Modus.
In den seltendsten Fällen ist ein Anteil von mehr als die Hälfte der Bildfläche veränderlich. Das gilt insbesondere für stationäre Videoaufzeichnungen. Durchschnittlich ist hierbei kaum mehr als ein Viertel des Bildausschnitts in Bewegung. Die von den Bewegungen verursachten Veränderungen sind im Mittel geringer als die Amplitude des Signals selbst. Durch eine Reduzierung der redundanten Informationen kann das Datenvolumen erheblich verringert werden. Dieses wird beispielsweise durch die MPEG Kodierung erreicht. Diese erhält im Unterschied zu dem in diesem Dokument beschriebenen Verfahren die Rohdaten pixelorientiert. Liegen die Videodaten jedoch bereits in komprimierter Form vor, müßten sie für die MPEG Kodierung erst vollständig dekodiert werden, um dann wieder kodiert zu werden. Durch Differenzbildung der DCT Koeffizienten kann ein wesentlicher Teil zeitaufwendiger Operationen eingespart werden, ohne für den vorgesehenen Zweck schlechtere Ergebnisse als die einer MPEG Kodierung zu erzielen. Auf eine aufwendige Kompensation von Bewegungen muß bei diesem Verfahren allerdings wegen des durch die DCT Blöcke gegebenen Rasters verzichtet werden.

 

Verfahrensbeschreibung

Rohdatenformat

Das Verfahren ist für eine weitere Kodierung von Videodaten im Motion JPEG Format, wie es beispielsweise von verschiedenen Netzwerkkameras geliefert wird, vorgesehen. Das Verfahren selbst nimmt weder eine DCT noch eine IDCT Kodierung vor. Es verwendet die unveränderten DCT Koeffizienten und Kompressionseinstellungen der Datenquelle. Diese dürfen sich im Verlauf einer Aufzeichnung nicht ändern.

Synchronisation SOI-EOI

Der Vollständigkeit halber wird die Synchronisation der bildbegrenzenden Marker SOI, start of image und EOI, end of image, als vorverarbeitende Komponente erwähnt. Durch diese Synchronisation werden während der Aufzeichnung desöfteren auftretende unvollständige oder fehlerhafte Einzelbilder gefiltert. Dies sichert einen fehlerfreien Datenstrom für die nachfolgende Verarbeitung.

Referenzbild und Kodierungstabellen

Das initiale Referenzbild sowie die JPEG Kodierungsparameter der Datenquelle werden in Form des ersten Bildes der Aufzeichnung unverändert übernommen. Auf dieses als JPEG gespeicherte Einzelbild beziehen sich die nachfolgend kodierten Veränderungen. Die JPEG Parameter verändern sich während der weiteren Aufzeichnung nicht. Die JPEG Kompressionsrate wird somit von der Datenquelle festgelegt. Unmittelbar im Anschluß an das Referenzbild werden die für die Kodierung der Differenzen der DCT Koeffizienten benötigten Huffmann Tabellen gespeichert. Für die Kodierung von DC- und AC Koeffizienten getrennt nach Luminanzkanal und Chrominanzkanälen werden unterschiedliche Huffmann Tabellen verwendet. Diese werden aus zuvor ermittelten Histogrammen für den jeweiligen Koeffiziententyp berechnet und sind während der gesamten Aufzeichnung unveränderlich.

Dekodierung der Quelldaten

Zur Schaffung der Voraussetzungen für die Berechnung und Kodierung der Differenzen der DCT Koeffizienten werden die Quelldaten bis auf die Ebene der DCT Koeffizienten dekodiert und diese dequantisiert. Die Dequantisierung selbst wird dabei ausschließlich für die Unabhängigkeit der Schwellwertoperationen von der Kompression der Quelldaten benötigt.

Differenzbildung Schwellwertoperation

Für jeden DCT Block wird anhand des Vergleichs der Differenz zwischen den dequantisierten DCT Koeffizienten des aktuellen und des Referenzbildes mit einem Schwellwert entschieden, ob dieser Block im aktuellen Frame kodiert werden soll. Mit dem eingestellten Schwellwert wird die Empfindlichkeit des Systems gegenüber Veränderungen und damit die Qualität der resultierenden Aufzeichnung beeinflußt. Die Auswahl der zum Vergleich herangezogenen DCT Koeffizienten ist variabel einstellbar. Die für die Kodierung ausgewählten Blöcke werden zu rechteckigen Bereichen zusammengefaßt, wobei die resultierende Kodelänge als Ziel eines Optimierungsschrittes betrachtet wird. Es wird ein Kompromiß zwischen zusätzlicher Informationslänge für Koordinaten der Rechtecke und der Kodelänge der nicht zu übertragenden Blöcke ohne Differenz zum Referenzbild eingegangen. Je größer die Rechtecke sind desto mehr nicht zu übertragende Blöcke können sie enthalten. Je kleiner die Rechtecke sind desto mehr Information wird für die Koordinaten der Rechtecke im Vergleich zu ihrer Gesamtfläche benötigt. Die Optimierung wird durch die Teilung von Ausschnitten der Rechtecke mit hoher Dichte nicht zu übertragender Blöcke erreicht.

Differenzbildkodierung

In einem abschließenden Schritt werden die Differenzen der quantisierten DCT Koeffizienten aller ausgewählten Blöcke gleich dem Prinzip der JPEG Kodierung zunächst in die ZigZag Reihenfolge umsortiert und in VLC Symbolfolgen umgewandelt. Blöcke innerhalb zusammengefaßter rechteckiger Bereiche, die nicht für die Kodierung ausgewählt wurden, werden wie Blöcke ohne Differenz zum Referenzbild kodiert. Die entstandenen VLC Symbolfolgen werden mittels Huffmann Kodierung komprimiert. Für alle kodierten Blöcke wird das Referenzbild angepaßt, damit eine kodierte Differenz innerhalb eines Frames nicht ein weiteres Mal kodiert wird. Mehrfachkodierungen wären sonst durch räumliche Überlagerung der Rechtecke möglich. Andererseits müssen Differenzen unterhalb des Schwellwerts erhalten bleiben, da diese sich im Verlauf der Aufzeichnung vergrößern und damit die Schwelle überschreiten könnten. Handelt es sich bei den geringen Differenzen nur um kurzfristige kleinere Veränderungen, werden die Informationen für diese bei der Kodierung eingespart. In jedem Fall wird durch die selektive Anpassung des Referenzbildes sichergestellt, daß dieses zu jeder Zeit identisch mit dem letzten aus der bisherigen Kodierung resultierenden Bild ist.

Zusatzinformationen

Zusätzlich zu den Bildinhalten wird der Startzeitpunkt der Aufzeichnung und die seit der jeweils letzten Kodierung eines Frames vergangene Zeit in den Datenstrom eingefügt. Auf synchronisierende Frames wird im derzeitigen Implementationsstand noch verzichtet. Damit ist nur eine sequentielle Dekodierung der resultierenden Aufzeichnung mit geringer Fehlertoleranz möglich. Praktisch bereitet aber die Navigation in Aufzeichnungen von mehreren Stunden keine Schwierigkeiten.
Das folgende Bild zeigt die schematische Darstellung der schwellwertgesteuerten Differenzbildkodierung.

 

Differenzbildcodierung

 

Kombination mit selektiver Aufzeichnung

In Kombination mit der selektiven Aufzeichnung bestimmt das Ergebnis der qualitativen Bewertung einer Szene, ob der Frame kodiert wird oder nicht. Die Bewertung kann dabei eine reine Bewegungserkennung oder diese in Kombination mit der Klassifikation der bewegten Objekte sein. Nicht oder negativ klassifizierte Frames werden nicht kodiert. Das Referenzbild wird für diese Frames nicht aktualisiert, damit bei der nächst folgenden Klassifizierung die vollständige Differenz zum zuletzt kodierten Frame berücksichtigt wird. In längeren Pausen ohne Klassifizierung werden in regelmäßigen Abständen Frames zur zeitlichen Synchronisation der Aufzeichnung kodiert und das Referenzbild angepaßt.

 

Experimentelle Ergebnisse

Kompressionsraten

Im Vergleich zur Motion JPEG Kompression mit einer ursprünglichen Datenreduktion von ca. 100:1 wurden durch die Differenzbildkodierung bei unterschiedlicher Qualität die in der folgenden Tabelle aufgeführten zusätzlichen Kompressionsraten erzielt. Die Qualität beschreibt die Qualität im Verhältnis zur Original Motion JPEG Aufzeichnung. Die Kompressionsraten sind Durchschnittswerte von 5 verschiedenen stationären Tagesaufzeichnungen. Die erzielten Kompressionsraten und die daraus resultierende Qualität sind darüber hinaus von den Helligkeits- und Kontrastverhältnissen abhängig.
Stufe Qualität Kompression
1 Verlustfrei 4:1
2 geringe Verluste 8:1
3 sichtbare Verluste 16:1
4 deutliche Verluste 18:1
5 sehr deutliche Verluste 19:1
6 maximal akzeptable Verluste 20:1
Im Vergleich zu stationären Aufzeichnungen, bei denen sich im Durchschnitt ein Großteil des Hintergrunds nicht bewegt, fallen die Kompressionsraten beispielsweise bei der Kodierung eines Spielfilms deutlich geringer aus. Gute Qualität wird mit einer Rate von 2:1 erreicht. Bei einer Kompressionsrate von 5:1 ist die Qualität noch akzeptabel.

Geschwindigkeit

Die Geschwindigkeit der Videoanalyse ist unabhängig von der Kompressionsrate der Datenquelle. Dagegen wächst der Zeitbedarf der Diffferenzkodierung mit höherer Qualität durch einen kleineren Schwellwert, da mehr Blöcke zu kodieren sind. In der höchsten Qualitätsstufe können auf einem P133 PC bis maximal 10 Bilder der Auflösung 320x240 je Sekunde kodiert und aufgezeichnet werden. Mit der zweithöchsten Stufe steigt die Verarbeitungsgeschwindigkeit auf 15 Bilder je Sekunde und erreicht maximal 20 Bilder je Sekunde in der niedrigsten Qualitätsstufe. Die Integration in das Schema der selektiven Aufzeichnung veringerte die Geschwindigkeit nur unwesentlich.

 

Schlußfolgerungen

Die nachträgliche Kompression von Motion JPEG Videodaten durch Differenzbildkodierung bewirkt insbesondere im Kontext stationärer Aufzeichnungen eine deutliche Datenreduktion. Die Einsparung zeitaufwendiger Operationen ermöglicht einen Echtzeitbetrieb mit geringen Anforderungen an die Hardware. Eine Vielzahl mit der selektiven Aufzeichnung gemeinsamer Verarbeitungsschritte vereinfacht eine Integration dieser in das Kompressionsverfahren ohne wesentliche Verluste an Geschwindigkeit. Für Spielfilme und ähnliche Videodaten ist das Verfahren wegen der fehlenden Bewegungskompensation weniger geeignet. Bewegungen können nur im Raster der DCT Blöcke erfaßt werden. Versuche der Kompensation von Bewegungen auf Blockebene lieferten keine dem Aufwand angemessene Reduktion der Datenmengen. Durch das Fehlen synchronisierender Frames ist der resultierende Datenstrom bisher nur sequentiell dekodierbar und nicht fehlertolerant. In der Praxis hat dieser Nachteil bisher keine Auswirkungen gezeigt. Alle bisherigen Aufzeichnungen waren fehlerfrei dekodierbar. Eine höhere Fehlertoleranz z.B. für die Übertragung über unsichere Medien kann durch Einfügen vollständiger Frames zur Synchronisation in den Datenstrom erreicht werden. Dadurch wird die erzielte Kompressionsrate wieder verringert.