TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

MPEG-4 Video Merging

Diese Arbeit beschäftigt sich mit dem Kombinieren mehrerer MPEG-4 Videostreams zu einem neuen Videostream. Die Wiedergabe von Videos auf mobilen Endgeräten, wie einem PDA oder einem Handy, ist einigen Einschränkungen unterworfen. Viele Streamingangebote im Internet sind für die Nutzung durch einen Desktop-PCs vorgesehen. Mobile Clients können schnell überfordert sein, da einige Ressourcen nicht so stark verfügbar sind. Eine Darstellung von mehreren Videos gleichzeitig ist daher noch schwieriger. Die größten Nachteile sind in folgenden Ressourcen zu finden:

  • Displaygröße: PDAs haben eine Auflösung die im Bereich von 240x320 Pixel liegt. Bei Handys ist momentan eine Auflösung von 200x200 Pixel üblich. Zum Vergleich hat ein Fernsehbild hierzulande eine Auflösung von 720x576. Die Bildgröße würde die Bildschirmgröße weit überschreiten. Zu dem kommt noch, dass PDAs und Handys ein Display im Hochformat verwenden. Das Videomaterial aus Film und Fernsehen wird im Querformat produziert. Insgesamt werden oft zu viele Informationen übertragen, die gar nicht dargestellt werden können. Bei einer Anordnung von mehreren Videos steigt dies noch einmal an.
  • CPU und Speicher: Die Darstellung eines Videos kann für einen mobilen Client schon zur Herausforderung werden. Für die Darstellung n Videos werden auch n Decoder, sowie 2 oder 3 mal n Puffer in Größe des Videos notwendig. Die Reduktion auf einen Decoder und 2-3 Puffer in Videogröße würden CPU und Speicherbedarf enlasten.
  • Netzwerkanbindung: Steht als drahtlose Netzwerkverbingdung WLAN zur Verfügung, so dürfte es kaum zu Problemen kommen. Darunter ist die schnellste Verbindung nur mit UMTS möglich, das eine Datenrate von maximal 384kbps bietet. Ein Verschmelzen mehrerer Videostreams zu einem kann einen Vorteil in der nötigen Bitrate haben, falls die einzelnen Videos aus dem Bild herausragen oder sich gegenseitig überschneiden.
Um diese Ressourcen nicht zu überfordern, ist es sinnvoll nur die Informationen zu übertragen, die auch wirklich dargestellt werden können. Ein Videogateway müßte im Vorfeld diese Aufgabe übernehmen, bei der mehrere Einzelvideos zu einem neuen kombinierten Video zusammengefügt werden (s. Abb. 1). Ein komplettes Decodieren der einzelnen Videos, Aneinandersetzen der einzelnen Pixel und erneutes Codieren beansprucht aber uch sehr viel Rechenleistung. Selbst ein Gateway kann überfordert sein das Merging in Echtzeit durchzuführen. Aus diesem Grund wird versucht das Merging im komprimierten Bereich durchzuführen, wobei möglichst wenig der MPEG-4 Videodaten decodiert werden sollten.

Merging von 4 Videos

Abb.1: Video-Merging am Beispiel einer Verkehrsüberwachung

Anwendungsfälle

Auch wenn die Notwendigkeit für mobile Clients eher gegeben ist, so steht einer generellen Nutzung auch in anderen Bereichen nichts im Wege. Anwendungsgebiete sind immer in Bereichen zu finden, wo mehrere Videos als Quellen verwendet werden:

  • Videokonferenz: Die Videokonferenz war die ausschlaggebende Anwendung, für die in der Vergangenheit Verfahren für H.261 und H.263 entwickelt wurden. Bei einer Videokonferenz wird in der Regel der Bildschirm gleichmäßig auf alle Teilnehmer aufgeteilt. Typische Layouts sind die Abbildungen 2(a), 2(b) und 2(c).
  • Videoüberwachung: Die Videoüberwachung ist eine weitere Anwendung für das Merging mehrerer Videoquellen. Wie schon in Abb. 1 dargestellt, wird auch hier der Bildschirm gerne gleichmäßig auf die Quellvideos aufgeteilt. Eine weitere Möglichkeit der Anordnung der Videos für eine Überwachung ist in Abb. 2(d) zu sehen. Für eine Detailansicht wird ein Video vergößert dargestellt. Die restlichen Videos werden verkleinert um das erste herum wiedergegeben.
  • Fernsehen (Picture-in-Picture): Im Bereich des Fernsehens könnte diese Technik ebenfalls eingesetzt werden. In Abb. 2(e) ist eine Picture-In-Picture-Anordnung von zwei Videos zu sehen. Wie schon in vielen Fernsehern vorhanden, wird ein Programm bilschrimfüllend angezeigt, während ein zweites Video verkleinert in einer Ecke dargestellt wird. Im Sportfernsehen, wie Formel-1 Übertragungen, ist es üblich, dass ein Signal erzeugt wird, in dem alle Einstellungen zu sehen sind. Dies würde der Anordnung aus Abb 2(d) entsprechen.
  • E-Learning: Auch für Lernumgebungen könnte dieses Verfahren eingesetzt werden. In Abb. 2(f) ist eine Anordnung zu sehen, wie sie bei einer Vorlesung oder einem Vortrag genutzt werden könnte. In Bereich 1 würde eine Folie dargestellt werden, mit der sich gerade beschäftigt wird. Bereich 2 wäre für die Gliederung des Vortrags und dessen Fortschritt reserviert. Im 3. Bereich wäre der Dozent zu sehen, der den Vortrag hält.
Eine vollkommen willkürliche Anordnung der Quellvideos ist in Abb. 2(g) zu sehen. Soll nun ein Layout durch eine Datenstruktur beschrieben werden, so unterscheidet sich ein strukturiertes Layout nicht von einem willkürlichen. Nötige Parameter für ein Layout sind:
  • Die Größe des gesamten Zielvideos, damit überstehende Bildbereiche abgeschnitten werden können
  • Die Position und die Größe der einzelnen Quellvideos im Zielvideo
  • Die Angabe der Priorität eines Videos, damit bei überlagerten Videos entschieden werden kann, welches der Video Vorrang hat.
Bei vielen dieser Anordnungen sind Änderungen am Quellvideo notwendig. Änderungen sind beispielsweise eine Verkleinerung, Anpassung des Apect-Ratio, Deinterlacing etc. Diese Änderungen sind nicht Teil dieser Arbeit. Die Videos, die beim Merging verwendet werden, müssen bereits das Format besitzen, das sie auch im Zielvideo haben.
Gitteranordnung von 4 VideosGitteranordnung von 6 VideosGitteranordnung von 9 Videos
(a)
(b)
(c)
Hervorheben eines VideosPicture-In-Picture AnordnungAnordnung für eine Lernumgebung
(d)
(e)
(f)
Willkürliche Anordnung
(g)
Abb.2: Layoutbeispiele

Ergebnis

Entstanden ist eine Bibliothek zum bearbeiten von MPEG-4 Videodaten. Aus Gründen der Komplexität wurde sich für eine Betrachtung des Simple-Profile entschieden. Genaueres über MPEG-4 ist in [1], [2], [3] und [4] zu finden. Im Folgenden werden die Grundlagen über MPEG-4 vorausgetzt.

Der Videoeingang der Bibliothek decodiert einen MPEG-4 Videostream im Simple-Profile bis zur Auflösung der Predictions. Die Dequantisierung und die inverse Diskrete-Cosinus-Transformation (IDCT) werden dadaurch eingespart. Inhaltlich sind die Makroblöcke nun unabhängig von einander und können beliebig kopiert werden. Die decodierten Daten werden in einer objektorietierten Struktur gespeichert.

Der Merger kopiert nun pro Frame die Makroblöcke der Quellvideos nach einem vorgegebenen Layout zusammen, so dass die Bilder des Zielvideos entstehen. Der Merger abreitet auf Makroblock-Ebene. Die Position und die Größenangaben der Quellvideos können daher nur innerhalb eines 16x16 Pixel Raster angegeben werden.

Der Videoausgang der Bibliothek erzeugt wieder einen MPEG-Videostream im Simple-Profile. Aufgrund des Mergings können jedoch Kombinationen von Makroblöcken entstehen, die nicht mehr in MPEG-4 Daten ausgedrückt werden können. Dies ist der Fall, wenn der quantiser_scale zweier benachbarter Makroblöcke soweit auseinander liegt, dass der Unterschied nicht mehr durch den Parameter dquant ausgedrückt werden kann. Für diesen Fall erzeugt der Videoausgang einen Resync-Marker. In dem Video-Packet-Header, der nach dem Resync-Marker folgt, kann der qunatiser_scale als ganzer Wert neu gesetzt werden.

Anwendung findet die Bibliothek in einem Programm auf der Kommondozeile, welches mehrere Videos nach vorgegebenem Layout zu einem zusammenfügt. Die Definition des Layouts findet in der XML-basierten Konfigurationsdatei statt.

Fehler

Im Rahmen dieser Arbeit konnte ein Problem nicht gelöst werden. Wenn Bewegungsvektoren, die im Quellvideo natürlich korrekt kompensiert wurden, auf einen fremden Bildinhalt zeigen, entstehen Fehler, da das vorhandene Fehlerbild nicht mehr korrekt ist. Dieser Effekt wirkt sich in zwei Bereichen aus:

  • In MPEG-4 ist es möglich, dass Bewegungsvektoren aus dem Frame herauszeigen. Das dafür zuständige Tool heißt Unrestricted-Motion-Vectors. An den Grenzen benachbarter Videos entstehen daher Fehler wie sie in Abb. 3(a) zu sehen sind.
  • Überschneiden sich zwei Videos, so wird ein Video von einem anderen Video verdeckt. Als Beispiel dient Abb. 2(e). Zeigen nun Bewegungsvektoren von Video 1 in den von Video 2 verdeckten Teil, so wird auch hier der Bewegungsvektor nicht mehr korrekt kompensiert.
Sind die Inhalte der benachbarten Bildgrenzen ähnlich und ist wenig Bewegung vorhanden, fällt dieser Effekt kaum auf, wie in Abb. 3(b) zu sehen ist. Hier verschwimmen lediglich die Bildgrenzen ein wenig. Sind aber starke Kontraste und große Bewegungen an den Bildgrenzen vorhanden, so entstehen starke Bildfehler wie in Abb. 3(a). Der Fehler fällt subjektiv sofort auf. Der starke Effekt kommt in diesem Beispiel von dem schwarzen Balken der sich immer rechts in den Quellvideos von Abb. 3(a) befindet.
(a)
(b)
Abb. 3: Fehler durch Bewegungsvektoren

Literatur

[1]PEREIRA, Fernando; EBRAHIMI, Touradj: The MPEG-4 Book. 1. Auflage. New Jersey, USA: Prentice Hall PTR, 2002. - ISBN 0-130-61621-4
[2]RICHARDSON, Iain E. G.: H.264 & MPEG-4 Video Compression. Understanding and Implementing Video Compression. 1. Auflage. John Wiley & Sons, Ltd., 2003. - ISBN 0-470-84837-5
[3]SADKA, Abdul H.: Compressed Video Communications. 1. Auflage. John Wiley and Sons, Ltd., 2002. - ISBN 0-470-84312-8
[4]ISO/IEC: 14496-2: Information Technology - Coding of audio-visual objects - Part 2: Visual. 2004


aktualisiert am 26.04.2006, 10:30 von Christoph Hoche
printemailtop