Current Page: | Greybox » Authoring » Course ID: medieninformatik » Modules » Module ID: m04 » Learning Units » Unit ID: 05_37 |
---|---|
Last Modified: | Tuesday, 2015-05-05 - 08:09:06 |
Tools: | Validate — Preview XML Preview HTML Preview PDF |
Alternative: | Printable HTML |
Title: | MPEG-4 Visual | ||
---|---|---|---|
Abstract: | Der Visual-Teil des MPEG-4 Standards (ISO/IEC 14496-2) beinhaltet verschiedene Technologien um Visuelles darzustellen. Dabei sind Tools zur Kodierung von Textur von stehenden Bildern und die Animation von Gesichtern und Körpern standardisiert. Der Visual-Teil erstreckt sich über ein weites Feld von Applikationen, von solchen mit niedriger Bitrate für mobile Geräte über TV-Qualität bis zu Applikationen in Studios mit sehr hoher Auflösung und Qualität. | ||
Status: | Final for Review #2 - captions and applets missing (DOUBLE <Data> BUG WITH EXPORTER IN LAST-1 CorPU!!!) | Version: | 2004-10-14 |
History: | 2004-10-14
(Thomas migl): pda abb. eingefügt 2004-09-17 (Thomas Migl): Statuseintrag geändert 2004-08-16 (Robert Fuchs): Checked, fixed and exported for Review #2. 2004-07-29 (Thomas Migl): eine Abb ausgetauscht +++ LOD1 LOD2 LOD3 fertig +++ NOCH ZU MACHEN pda Ansicht einer Abbildung fehlt noch, Applet implementieren +++ Applet 55404 |
Author 1: | Eva Wohlfart | E-Mail: | evawohlfart@gmx.at |
---|---|---|---|
Author 2: | (empty) | E-Mail: | (empty) |
Author 3: | (empty) | E-Mail: | (empty) |
Author 4: | (empty) | E-Mail: | (empty) |
Author 5: | (empty) | E-Mail: | (empty) |
Organization: | Technische Universität Wien; Institut für Softwaretechnik und Interaktive Systeme; Arbeitsgruppe für Interaktive Multimediale Systeme; http://www.ims.tuwien.ac.at/ |
Einführung1
2Der MPEG-4 Visual Standard ist einer der wichtigsten Teile des MPEG-4 Standards (siehe Lerneinheit MPEG-4). Wie der Name schon sagt, geht es darin um die Kodierung und Repräsentation von visuellen Objekten. Hierbei wird zwischen natürlichen (pixel-basierten) Bildern und Video und synthetischen, also vom Computer generierten, Szenen unterschieden. Dadurch wird etwa die virtuelle Präsenz von Teilnehmern an einer Videokonferenz möglich. Was dieser Standard also bietet, sind Tools zur Kodierung von natürlichen stehenden Bildern und Videosequenzen und genauso Tools und Algorithmen zur Komprimierung von synthetischen graphischen und geometrischen Parametern zur Darstellung von 2D- und 3D-Inhalten. Allgemeines1Unterstützte Formate
Effizienz der Kompression
Content-basierte Funktionalitäten
Skalierbarkeit von Texturen, Bildern und Video
Objektbasierte Skalierbarkeit PC vivo2001
Objektbasierte Skalierbarkeit PDA_Phone vivo2001Weitere Möglichkeiten der Skalierbarkeit von MPEG-4
2In diesem Abschnitt werden einige grundsätzliche Dinge zum Visual-Standard erläutert. Dazu gehören die unterstützten Formate und einige content-basierte Funktionalitäten, die der Standard bietet. Außerdem wird auf die Effizienz der Kompression eingegangen. Unterstützte FormateFolgende Formate und Bitraten werden von MPEG-4 Visual unterstützt:
Effizienz der KompressionDie Algorithmen, die zur Kompression verwendet werden, sind sehr effizient. Auch Texturen werden mit einer Qualität kodiert, die man zwischen akzeptabler Qualität (für hohe Kompressionsraten) und nahezu verlustfreier Kompression regulieren kann. Texturen, die auf 2D- und 3D-Meshes gemapt werden, werden ebenfalls effizient komprimiert. Bei Video ist beliebiger Zugriff auf gespeichertes Video, wie schnelles Vor- oder Rückspulen, möglich. Content-basierte FunktionalitätenDas content-basierte Kodieren von Bildern und Video erlaubt separates Dekodieren und Rekonstruktion von unterschiedlich geformten Videoobjekten. In Videosequenzen kann beliebig auf Videoobjekte zugegriffen werden und Funktionalitäten wie etwa Pause und schnelles Vor- und Rückspulen dieser werden ermöglicht. Inhalte in Videosequenzen können auch noch weitgehender manipuliert werden, MPEG-4 erlaubt Warping von synthetischem oder natürlichem Text, Texturen, Bildern und Teilen des Videos. Ein Beispiel hierfür ist das Verknüpfen von Text mit einem sich bewegenden Objekt, sodass sich der Text mitbewegt. Skalierbarkeit von Texturen, Bildern und VideoMPEG-4 erlaubt das Kodieren von Bildern und Video mit zeitlicher oder räumlicher Skalierbarkeit, sowohl in „konventioneller“ rechteckiger als auch in beliebiger Form. Skalierbarkeit meint hier, nur einen Teil des Bitstroms zu dekodieren und so einzelne Bilder oder Bildsequenzen zu rekonstruieren. Diese Funktionalität ist etwa zur progressiven Kodierung von Bildern oder für Video, das in unterschiedlichen Qualitäten abrufbar sein soll, wichtig. Ein besonderer Fall der Skalierbarkeit ist die sogenannte objektbasierte Skalierbarkeit, bei der ausgesuchte Objekte eines Videos skaliert werden können. Objektbasierte SkalierbarkeitDurch die objektbasierte Skalierbarkeit bekommt der Enduser mehr Möglichkeiten, mit den medialen Inhalten zu interagieren. Objekte können dabei während der Wiedergabe zum Beispiel in der Größe, der Framerate und der visuellen Qualität skaliert werden. Ebenso wird dadurch das Verbessern der Qualität des Videos nur in einer bestimmten interessanten Bildregion möglich, dies kann dynamisch während der Wiedergabe erfolgen. Diese Features ergeben sich durch die unabhängige Kodierung jedes einzelnen Objekts. Wie auch die folgende Abbildung zeigt, kann jedes Objekt unterschiedlich geformt, unterschiedliche zeitliche Auflösung, visuelle Qualität oder Größe haben. Objektbasierte Skalierbarkeit PC vivo2001
Objekt-basierte Skalierbarkeit ermöglicht das unabhängige und beliebige Zugreifen auf ein Videoobjekt während der Wiedergabe. Jedes Objekt kann unterschiedlich kodiert sein,so könnte etwa in dieser Abbildung der Videoclip über Ballett im Hintergrund MPEG-2 kodiert sein, die zwei Personen in MPEG-4 und der Hintergrund und der Text „MPEG4 WORLD“ JPEG-kodiert sein Objektbasierte Skalierbarkeit PDA_Phone vivo2001Objekt-basierte Skalierbarkeit ermöglicht das unabhängige und beliebige Zugreifen auf ein Videoobjekt während der Wiedergabe. Jedes Objekt kann unterschiedlich kodiert sein,so könnte etwa in dieser Abbildung der Videoclip über Ballett im Hintergrund MPEG-2 kodiert sein, die zwei Personen in MPEG-4 und der Hintergrund und der Text „MPEG4 WORLD“ JPEG-kodiert sein Weitere Möglichkeiten der Skalierbarkeit von MPEG-4Außerdem bietet MPEG-4 Skalierbarkeit...
Robustheit1Resynchronisation
Methoden zur Resynchronisation
Video Packet Approach PC grin1999Video Packet Approach PDA_Phone grin1999Datenrekonstruktion
Reversible Variable Length Codes PC koen2002Reversible Variable Length Codes PDA_Phone koen2002Error concealment
2Durch den starken Anstieg an mobiler Kommunikation ist es extrem wichtig, dass visuelle Informationen auch über drahtlose Netzwerke, die meist in Bereichen niedriger Bitraten liegen, abrufbar sind. Da in diesen Umgebungen oft Fehler in der Übertragung auftreten können, ist Robustheit sehr wichtig. Die Tools zur Behandlung von solchen Fehlern können in drei große Bereiche aufgeteilt werden: Resynchronisation, Datenrekonstruktion und Error concealment (Verbergen von Fehlern). ResynchronisationDie Tools zur Rekonstruktion versuchen bei einem Fehler in der Übertragung von Daten zwischen dem Decoder und dem Bitstrom herauszufinden, wie groß die verlorene Datenmenge genau ist. Die Daten zwischen dem Synchronisationspunkt vor dem Fehler und dem ersten Punkt nachdem die Synchronisation wiederhergestellt ist, sind verloren, allerdings können, falls der Versuch zur Resynchronisation erfolgreich ist, die jeweiligen anderen Tools zur Datenrekonstruktion oder zum Vermindern der Effekte des aufgetretenen Fehlers eingreifen. Methoden zur ResynchronisationZur Resynchronisation wurden in MPEG-4 teilweise Prinzipien aus anderen Standards übernommen, wie etwa der packet approach, dessen Struktur ähnlich zur Group of blocks-Struktur im Standard für Videokonferenzen H.261 und H.263 ist. Dabei werden immer eine fixe Anzahl an Makroblöcken zu einer Gruppe zusammengefasst, und am Beginn der Gruppe wird ein header platziert, durch den die Synchronisation erfolgt. Eine andere Methode ist der video packet approach, bei dem im Bitstream am Beginn jedes video packets periodisch Markierungen gesetzt werden. Der „Abstand“ zwischen den Markierungen ist eine festgelegte Anzahl an Bits. Wird diese überschritten, wird zu Beginn des nächsten Makroblocks ein neues video packet erzeugt und eine Markierung gesetzt. Die Markierung beinhaltet die Nummer des Makroblocks zu Beginn des packets und den Quantisierungsparameter zur Dekodierung dieses ersten Makroblocks. Eine dritte Methode zur Resynchronisation ist die fixed interval synchronization, bei der Markierungen zur Resynchronisation in fixen Intervallen im Bitstrom platziert werden. Video Packet Approach PC grin1999Beim video packet approach wird eine bestimmte Anzahl von Bits zu video packets zusammengefasst. Jedes video packet wird unabhängig von den anderen kodiert und dekodiert. Dadurch wird die Fehlerrate erheblich vermindert. Links oben sieht man das ursprüngliche fehlerhafte Bild, rechts oben die einzelnen video packets, links unten den Fehler, der ohne video packets entstehen würde, und reachts unten den Fehler mit video packets. Video Packet Approach PDA_Phone grin1999eim video packet approach wird eine bestimmte Anzahl von Bits zu video packets zusammengefasst. Jedes video packet wird unabhängig von den anderen kodiert und dekodiert. Dadurch wird die Fehlerrate erheblich vermindert. Links oben sieht man das ursprüngliche fehlerhafte Bild, rechts oben die einzelnen video packets, links unten den Fehler, der ohne video packets entstehen würde, und reachts unten den Fehler mit video packets DatenrekonstruktionNachdem die Synchronisation erfolgt ist, versuchen Tools zur Datenrekonstruktion die verlorenen Daten wiederherzustellen. Ein wichtiges Tool, das dabei verwendet wird, ist Reversible Variable Length Codes (RVLC). Dabei sind die Codes, die die Variablenlängen beschreiben, so designt, dass sie sowohl vorwärts als auch rückwärts gelesen werden können. Dadurch kann ein guter Teil von verlorenen Daten zwischen zwei Synchronisationspunkten wiedergewonnen werden. Reversible Variable Length Codes PC koen2002Reversible Variable Length Codes. Diese Codes beschreiben die Variablenlängen und können von rückwärts und vorwärts gelesen werden. Dadurch kann ein Teil der verlorenen Daten zwischen zwei Synchronisationspunkten gerettet werden. QP und HEC beschreiben Regionen im Header des video packets, die für Quantisierungsparameter und den Header Extension Code reserviert sind. Reversible Variable Length Codes PDA_Phone koen2002Reversible Variable Length Codes. Diese Codes beschreiben die Variablenlängen und können von rückwärts und vorwärts gelesen werden. Dadurch kann ein Teil der verlorenen Daten zwischen zwei Synchronisationspunkten gerettet werden. QP und HEC beschreiben Regionen im Header des video packets, die für Quantisierungsparameter und den Header Extension Code reserviert sind. Error concealmentDie Effektivität eines Error concealment Tools hängt sehr von der vorangehenden Arbeit der Tools zur Resynchronisation ab. Können diese den aufgetretenen Fehler genau lokalisieren, so wird das Problem des Error concealment viel leichter behandelbar. Für Applikationen in Bereichen mit niedrigen Biraten haben sehr einfache Concealment-Methoden, wie zum Beispiel das Kopieren von Blocks aus dem vorigen Frame. MPEG-4 bietet außerdem auch noch einen zusätzlichen fehlerresistenten Modus, da der Bedarf an erweiterten Möglichkeiten zur Fehlerbehandlung besteht. Darin wird die Resynchronisation von Textur und Bewegung durch Setzen einer zweiten Markierung zwischen Textur- und Bewegungsinformation getrennt. Geht die Information über die Textur verloren, werden die Informationen über die Bewegung dazu genutzt, um aus dem vorigen Frame die jetzige Textur zu konstruieren. Visuelle Objekte und Video Object Planes1auto
Kodierung eines Videos in MPEG-4 PC repp2000Kodierung eines Videos in MPEG-4 PDA_Phone repp2000Natürliche Videoobjekte
Synthetische Objekte
Animation von Gesichtern und KörpernGesichtsanimation PC vida2000Gesichtsanimation PDA_Phone vida2000Body Definition Parameter
MPEG-4 Facial Animation Applet (applet55404)Kodierung von Meshes
2D-Gittermodell PC koen2002. 2D-Gittermodell PDA_Phone koen20022D-Meshes
3D-Meshes
2autoDer Visual-Teil des MPEG-4 Standards unterscheidet zwischen natürlichen und künstlichen visuellen Objekten. Für beide Arten von Objekten sind Kodier- und Komprimierungsverfahren standardisiert, welche im Folgenden kurz vorgestellt werden. Die Objekte sind als Teil einer Szene definiert, auf das unabhängig von anderen Objekten zugegriffen werden kann. Die Bilder, welche in MPEG-2 kodiert wurden, werden zu Video Object Planes. Schneidet ein Videoobjekt eine Video Object Plane, so kann es durch Intra-Coding, Forward-Prediction oder Bidirectional Prediction beschrieben werden Kodierung eines Videos in MPEG-4 PC repp2000Ein Videoobjekt wird bei der Kodierung in einzelne Datenströme unterteilt. Die Kodierung von Umriss, Textur und Bewegung erfolgt unabhängig voneinander. Die resultierenden Datenströme werden durch einen Multiplexer zu einem Datenstron zusammengefasst Kodierung eines Videos in MPEG-4 PDA_Phone repp2000Ein Videoobjekt wird bei der Kodierung in einzelne Datenströme unterteilt. Die Kodierung von Umriss, Textur und Bewegung erfolgt unabhängig voneinander. Die resultierenden Datenströme werden durch einen Multiplexer zu einem Datenstron zusammengefasst Natürliche VideoobjekteEin natürliches Videoobjekt ist ein Bereich von Textur, der sich mit der Zeit ändert. Bei der Kodierung eines solchen natürlichen Videoobjekts sind drei Bereiche wichtig: die Form des Objekts (shape coding), die aufgebrachte Textur (texture coding) und Informationen über die Bewegung des Objekts (motion coding). Eine besondere Art von Videoobjekten sind auch noch stehende Texturen, sogenannte Sprites, die nur einmal übertragen werden und bei denen sich nur mehr die Sichtperspektive auf sie ändern kann. Je nach der gewünschten Qualität kann das effektivste Kompressionsverfahren gewählt werden, und es ist auch möglich, ein Videoobjekt in sich zu skalieren (siehe auch Kapitel Skalierbarkeit). Nach der Kodierung werden die Informationen durch einen Multiplexer zusammengefasst und ergeben einen elementaren Datenstrom. Videoobjekte und ihre Kodierung werden in der Lerneinheit Videoobjects un Video Object Planes genauer beschrieben. Synthetische ObjekteUm synthetische Objekte darstellen zu können, wurden in MPEG-4 viele Dinge aus VRML (Virtual Reality Modeling Language) übernommen. Zusätzlich wurden außerdem Tools zur Darstellung und Animation von Gesichtern (facial animation) und Körpern (body animation) und von 2D-Gittermodellen (2D-Meshes) standardisiert. Diese werden in den folgenden Abschnitten beschrieben. Animation von Gesichtern und KörpernMPEG-4 standardisiert Tools zur Definition und Animation von synthetischen Gesichtern und Körpern. Modelle für diese Gesichter und Körper sind nicht standardisiert, nur die Parameter um sie zu definieren. Gesichter werden durch Gitter (Meshes) von 84 Punkten, sogenannten Feature Control Points, definiert, welche die Form des Gesichtes bestimmen. Zu Beginn enthält das Gesichtsobjekt ein generisches Gesicht mit einem neutralen Ausdruck. Durch die Facial Definition Parameter erhält es dann spezifische Züge. Ein Gesicht wird mit einem neutralen Ausdruck übertragen und kann durch die FAPs (Facial Animation Parameters) animiert werden. Zur Artikulation wird frame-basierte und temporale DCT-Kodierung verwendet. Parameter für Viseme und Lippenstellungen, die bestimmten Lauten zugeordnet sind, sind ebenfalls in den Tools enthalten, außerdem die Kodierung von Texturen für Gesichter und das Hinzufügen von personellen Besonderheiten, die die Mimik betreffen. Das Binary Format for Scenes (BIFS) im Systems-Teil bietet ebenfalls Gesichtsanimation, falls spezielle Modelle benötigt werden:
Gesichtsanimation PC vida2000Ein Gesichtsobjekt enthält zu Beginn immer ein generisches Gesicht mit einem neutralen Ausdruck. Dieses ist hier abgebildet. Durch die übermittelten Facial Definition Parameters erhält es dann spezifische Gesichtszüge, die Facial Animation Parameters animieren das Gesicht. Gesichtsanimation PDA_Phone vida2000Ein Gesichtsobjekt enthält zu Beginn immer ein generisches Gesicht mit einem neutralen Ausdruck. Dieses ist hier abgebildet. Durch die übermittelten Facial Definition Parameters erhält es dann spezifische Gesichtszüge, die Facial Animation Parameters animieren das Gesicht. Body Definition ParameterDie Body Definition Parameter des Standards zur Modellierung von Körpern bestehen im Prinzip aus Längen von Körpersegmenten und Positionen, an denen sich diese berühren. Body Animation Parameter sind in drei Leveln standardisiert: Level 1 definiert Rotationen an Berührungspunkten von Körpersegmenten. Das 2. Level ist eine Spezifikation von globalen Parametern und erlaubt z.B. Übermittlung von endgültigen Positionen im Raum anstatt Berührungswinkeln. Das dritte Level ist als Spezifikation von Aktionen angelegt, etwa Bewegungen wie „springen“, „gehen“ oder „heben“. Während dem Aufbau eines Körpers besteht dieser wie auch bei der Gesichtsanimation zu Beginn noch aus einem generischen „default“-Körper mit einer „default“-Haltung. Werden BDPs empfangen, wird der generische Körper dementsprechend geändert. Ebenso produzieren eintreffende BAPs Bewegungen des Körpers. Ist irgendeine Komponente null, wird beim Rendering der default-Wert des generischen Körpers eingesetzt. Die default-Haltung des Körpers ist eine stehende Haltung, bei der die Füße nach vorne zeigen und die Arme am Körper anliegen mit den Handflächen nach innen. MPEG-4 Facial Animation Applet (applet55404)
Kodierung von MeshesMeshes oder Gittermodelle sind die Darstellung einer Form durch Unterteilung in Polygone. Über diese Polygone können dann Texturen gelegt werden. MPEG-4 beinhaltet sowohl die Kodierung von Gittermodellen im zwei- als auch im dreidimensionalen Raum. 2D-Gittermodell PC koen2002
Mit 2D-Gittermodellen (Meshes) werden Formen in Polygone unterteilt. Über diese Polygone werden dann Texturen gelegt. Durch Manipulation der Knotenpunkte des Gitters (und damit auch Manipulation und Verformung der Textur) entsteht der Eindruck von Bewegung. 2D-Gittermodell PDA_Phone koen2002
Mit 2D-Gittermodellen (Meshes) werden Formen in Polygone unterteilt. Über diese Polygone werden dann Texturen gelegt. Durch Manipulation der Knotenpunkte des Gitters (und damit auch Manipulation und Verformung der Textur) entsteht der Eindruck von Bewegung. 2D-MeshesUnter einem 2D-Mesh oder -Gittermodell versteht man die Aufteilung eines zweidimensionalen Bereichs in Polygone, wobei die Schnittpunkte der Polygone als Knotenpunkte des Modells bezeichnet werden. MPEG-4 unterstützt nur die Aufteilung in Dreiecke. Auf das Gittermodell werden dann Texturen gelegt. Bei einer Animation wird dann die Textur des ursprünglichen Bilds über das manipulierte Gittermodell gelegt (texture mapping). Durch Manipulation der Koordinaten kann dann der Eindruck erweckt werden, dass ein Objekt sich bewegt. Die Tools zur Kodierung von 2D-Meshes beinhalten
3D-MeshesMPEG-4 beinhaltet auch Tools zur Kodierung von 3D-Meshes. Diese bestehen aus Polygonen und werden zur Repräsentation von Objekten im dreidimensionalen Raum verwendet. Dabei werden auf diese Netze dann Schattierung von Oberflächennormalen, Farben und Texturen angebracht. Es ist möglich, Texturen in Polygonen proportional zu den emfangenen Bits anzuzeigen. Dadurch kann inkrementell gerendert werden. Falls manche Informationen über das Gittermodell verloren gehen, kann es trotzdem teilweise rekonstruiert werden. Außerdem kommt hier auch die Skalierbarkeit des Standards zum Tragen: Eine vereinfachte Version eines Meshes kann angezeigt werden, indem nur ein Teil der Knotenpunkte aus einem Teil des empfangenen Bitstroms zur Rekonstruktion des Meshes benutzt wird. Dadurch wird weniger leistungsfähigen Renderingmaschinen ermöglicht, das Objekt in reduzierter Qualität zu rendern. Profile im Visual-Teil1Frage an Thomas => Ist es Absicht oder Fehler, dass die untenstehenden Auflistungen für "Visuelle Profile in MPEG-4, Version 1" und "Visuelle Profile in MPEG-4, Version 4" identisch sind? AW: habs ausgebessert An Martin => In dieser CorPU wird beim ersten Block ein doppletes <Data> erzeugt... warum? Visuelle Profile in MPEG-4 Version 1Natürliche Videoinhalte
Synthetische und hybride Videoinhalte
Visuelle Profile in MPEG-4 Version 2Natürliche Videoinhalte
Synthetische und hybride Videoinhalte
Später standardisierte Profile
2autoProfile sind eine Auswahl an Tools, die für einen bestimmten Anwendungsbereich gedacht sind. Im Visual-Teil von MPEG-4 können natürliche, synthetische und auch hybride Objekte kodiert werden. Die folgende Tabelle zeigt eine Auflistung und kurze Beschreibung der Profile, die für die jeweilige Art von Objekten standardisiert wurden. Zu den anfänglich definierten Profilen in MPEG-4 Version 1 wurden in den weiteren Versionen noch einige hinzugefügt. Die Tabellen sind daher auch auf MPEG-4 Version 1, Version 2 und hinzugefügte Profile in späteren Versionen bezogen. Frage an Thomas => Ist es Absicht oder Fehler, dass die untenstehenden Auflistungen für "Visuelle Profile in MPEG-4, Version 1" und "Visuelle Profile in MPEG-4, Version 4" identisch sind? Visuelle Profile in MPEG-4 Version 1Natürliche Videoinhalte
Synthetische und hybride Videoinhalte
Visuelle Profile in MPEG-4 Version 4Natürliche Videoinhalte
Synthetische und hybride Videoinhalte
Später standardisierte Profile
Links und Literatur3Links und LiteraturMPEG Industry Forum http://www.m4if.org Robust Compression and Transmission of MPEG-4 Video grin1999 MPEG-4 in Europe acts2000 The MPEG-4 Book pere2002 The MPEG Handbook watk2001-1 MPEG-4 Homepage koen2002 |
(empty) |