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

Mehrdimensionales MPEG-4 Transcoding

Die zur Verfügung stehenden Ressourcen von mobilen Computern sind meistens geringer als die von handelsüblichen Desktop Computern. Für die Wiedergabe von Videosequenzen auf einem mobilen Client können vor allem folgende Ressourcen nicht ausreichen:

  • Netzwerkanbindung: Auch wenn bei den Wirelesstechniken immer höhere Übertragungsraten erreicht werden, ist die Übertragung von umfangreichen Videoinformationen immernoch problematisch. Selbst mit einem 54MBit WLAN kann ein 4MBit Video oftmals nicht mehr ruckelfrei wiedergegeben werden. Bei UMTS, welches eine maximale Datenrate von 384kBit ermöglicht, wird diese Ressource noch weiter eingeschränkt.
  • CPU: Das Decodieren eines Videos ist eine hohe Belastung für die CPU des Clients. Auch wenn mittlerweise Handys MPEG-4 wiedergeben können, so ist dies nur bis zu einer maximalen Bildgröße und einer maximalen Detailschärfe möglich.
  • Speicher: Für das Decodieren ist ein noch 3mal höherer Speicherbedarf notwenig als alleine zum Anzeigen. Die Inter-Frames benötigen bis zu 2 Referenzbilder. Hierbei kann der Speicher ab einer gewissen Bildgröße nicht mehr ausreichen.

Für eine flüssige Wiedergabe muss das Quellvideo vor der Übertragung an den mobilen Client angepasst werden. Unter mehrdimensionalem MPEG-4 Transcoding wird das Anpassen eines Videostreams in mehr als einer Eigenschaft verstanden. Mit Transcoding allgemein wird das Verändern eines Videostreams bezeichnet. Die einfachste Art des Transcodings ist das komplette Decodieren eines Videostreams, Ändern des Streams und das erneute Codieren des Streams. Jeder, der schon einmal ein Video mit einem MPEG-4 Encoder codiert hat, stellt fest, dass dies gerade einmal in Echtzeit geht. Für ein Transcoding käme aber noch die Zeit für das Verändern des Streams hinzu plus die Zeit des Decodierens. Daher wird probiert, die Operationen möglichst im codierten Bereich durchzuführen. Für das Codieren von MPEG-4 sind mehrere Einzelschritte notwendig bis ein MPEG-4 Bitstream entsteht. Je tiefer eine Operation im codierten Bereich arbeitet, desto weniger Schritte des Codierens müssen rückgängig gemacht werden und nach den Änderungen wieder erneut durchgeführt werden.

Ein Codierter Videostream kann nun auf verschiedenste Art und Weise modifiziert werden. In dieser Arbeit wird sich mit den für mobiles Video wichtigsten Operationen dem Frameskipping, dem Scaling und der Rate Reduction beschäftigt.

Das Frameskipping ist der Vorgang, bei dem einzelne Frames aus einem Video entfernt werden, um die Bildwiederholrate herabzusetzen. Das Senken der Bildwiederholrate kann verschiedene Gründe haben. Zum einen kann die CPU des Clients nicht in der Lage sein, ein Video mit höherer Framerate anzuzeigen. Zum anderen kann durch Weglassen von Frames die Bitrate des Videos gesenkt werden.

Beim Scaling wird die Größe der Frames eines Videos reduziert. Ein Grund hierfür kann wieder die Leistung der CPU und die Größe des Arbeitspeichers sein. Durch die Skalierung kann aber auch die Bitrate reduziert werden. Da die Bildschirmgröße eines mobilen Clients oftmals sehr klein ist, müssen nicht mehr Bilddetails übertragen werden, wie überhaupt angezeigt werden können.

Bei der Rate Reduction werden Details aus dem Bild entfernt. Die größte Anwendung findet dieser Schritt in der Reduzierung der Bitrate. Aber auch eine reine Detailreduktion um die Decodierkomplexität herabzusetzen kann hierdurch erreicht werden.

Implementation

Jeder der oben genannten Transcoding-Techniken läßt sich einzeln implementieren. Dieser Arbeit hat das Ziel einen einzigen Transcoder zu entwerfen, der alle drei Operationen auf einmal ausführt. Der Aufbau ist in Abbildung 1 zu sehen. Das ankommende Video erreicht zuerst den Frameskipper. Bilder die nicht mehr vorhanden sind müssen auch nicht mehr bearbeitet werden. Danach folgt die Skalierung, danch die Anpassung der Bitrate. Eine Anpassung der Bitrate ist vor der Skaliering nicht sinnvoll, da der Detailgrad der neuen Makroblöcke höher ist als vorher. Mit der Skalierung werden also nicht direkt Bits eingespart. Erst eine folgende Detailreduktion bringt eine höhrere Kompression als ohne Skalierung. Neben den einzelnen Transcoding-Schritten ist in gelb ein Rate-Contoller eingezeichnet. Der Rate-Controller ist der Teil, der entscheidet, ob ein Frame entfernt wird, auf welche Größe das Bild gestaucht wird und wie stark die Details reduziert werden. Der Rate-Controller wird in dieser Arbeit nur rudimentär implementiert. Es wird aber eine Schnittstelle geschaffen, die es erlaubt andere Rate-Controller zu implementieren und einzusetzen. Dadurch wird die Möglichkeit geschaffen die Transcoding-Parameter auch während die Übertragung anzupassen.


Abb. 1: Aufbau des Transcoders

Zeitplan

Der Zeitplan ist hier zu finden: Zeitplan

Literatur

MPEG-4
[1]PEREIRA, Fernando; EBRAHIMI, Touradj: The MPEG-4 Book. 1. Auflage. New Jersey, USA: Prentice Hall PTR, 2002. - ISBN 0-130-61621-4
[2]ISO/IEC: 14496-2: Information Technology - Coding of audio-visual objects - Part 2: Visual. 2004
[3]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
[4]RICHARDSON, Iain E. G.: Video Codec Design - Developing Image and Video Compression Systems. 1. Auflage. John Wiley & Sons, Ltd., 2002. - ISBN 0-471-48553-5
Transcoding - Allgemein
[5]SUN, Huifang; CHEN, Xuemin; CHIANG, Tihao: Digital Video Transcoding for Transmission and Storage. 1. Auflage. Floria, USA: CRC Press, 2005. - ISBN 0-849-31694-4
[6]SADKA, Abdul H.: Compressed Video Communications. 1. Auflage. John Wiley and Sons, Ltd., 2002. - ISBN 0-470-84312-8


aktualisiert am 16.08.2006, 10:11 von Christoph Hoche
printemailtop