Current Page: | Greybox » Authoring » Course ID: medieninformatik » Modules » Module ID: m04 » Learning Units » Unit ID: 05_30 |
---|---|
Last Modified: | Tuesday, 2015-05-05 - 08:09:06 |
Printed: | Friday, 2024-05-17 - 09:04:46 |
Im MPEG Video Standard sind 4 Arten von Frames definiert. In dieser Lerneinheit werden die Funktionen, die Features, die Schwächen und Stärken von I-, P-, B- und D-Frames beschrieben. Weiters werden die im MPEG Video Standard verwendeten Inter- und Intrakodierungstechniken ausführlich erläutert.
Status: v.2005-01-17 — Final
Learning Unit ID: 05_30
Wie in den Lerneinheiten Bewegungsschätzung und -kompensation und MPEG Videokodierungsprinzip beschrieben, werden bei MPEG Video nicht alle Bilder einer Videosequenz als Einzelbilder kodiert, sondern es werden mit Hilfe des Blockmatchingverfahrens (siehe Bewegungsschätzung und -kompensation) nur die bildinhaltlichen Änderungen bezogen auf ein Referenzbild kodiert. Als Referenzbilder können vorhergehende, aber auch nachfolgende Bilder in der Videosequenz gewählt werden. Im MPEG Standard sind nun verschiedene Typen von Frames definiert.
MPEG unterscheidet Intra-Frames und Interframes .
Selbständige Bilder. Zur Anzeige eines Intra-Frame benötigt man kein Referenzbild. Eine spezielle Form eines I-Frames ist das D-Frame.
Inter-Frames sind ohne Kenntnis des Referenzbildes nicht anzeigbar, da in ihnen nur Differenzwerte zu einem Referenzbild angegeben sind. Je nachdem, ob sich das Interframe auf ein vorhergehendes oder auf ein nachfolgendes Bild in der Videosequenz bezieht, unterscheidet MPEG zwischen zwei Typen von Interframes
I-Frames in einer Videosequenz sind selbstständige Bilder. In ihnen ist die gesamte Bildinformation enthalten
Kodiert werden sie ähnlich wie JPEG. Sie weisen nur mäßige Kompression auf. Dadurch, dass sie die gesamte Information eines Bildes beinhalten, sind sie der einzige Bildtyp, auf den ohne Umwege zugegriffen werden kann. Dies ist für Features wie random access, fast forward, fast rewind, reverse playback und die Editierbarkeit des komprimierten Datenstroms notwendig.
Das P steht für das englische Wort „Prediction“.
Bei einem Prediction-Frame handelt es sich nicht um ein selbstständiges Bild. Es beinhaltet lediglich Informationen, mit deren Hilfe man aus dem unmittelbar vorhergehenden Referenzbild das Originalbild rekonstruieren kann. Referenzbilder können dabei I-Frames oder ein vorhergehendes P-Frame sein.
In einem P-Frame sind für jeden Makroblock Bewegungsvektor und Prädiktionsfehler angegeben.
Da der Prädiktionsfehler ein Bild ist , kann ein P-Frame auch wie ein Bild kodiert werden. Zusätzlich muss allerdings für jeden Makrobild der Bewegungsvektor in die Kodierung mit einbezogen werden. reyn2004
B steht für „Bidirectional“.
Bei der bidirektionalen Kodierung verwendet man nicht nur das vorhergehende, sondern auch das nachfolgende Bild als Referenzbild. Als Referenzbilder sind I und P Frames möglich, nicht aber B-Frames.
Bei der Rückwärtsprädiktion verwendet man genau die gleichen Allgorithmen wie bei der Vorwärtsprädiktion.
Die Rückwärtsprädiktion bringt zum Beispiel dort einen Vorteil, wo im Originalbild Dinge sichtbar werden, die im vorhergehenden Bild noch verdeckt waren und daher durch Bewegungskompensation nicht prädiziert werden können. Im Bild, welches dem Originalbild unmittelbar folgt sind diese Dinge gewöhnlich sichtbar und können daher deren Position für das Originalbild prädizieren. In diesem Fall ergibt sich bei Rückwärtsprädiktion ein kleinerer Prädiktionsfehler und damit einhergehend eine wesentlich effektivere Kompression.
Zur Erzeugung eines B-Frames werden sowohl die Bewegungsvektoren, die sich auf das vorangegangene Bild beziehen als auch jene, die sich auf das nachfolgende Bild beziehen, berechnet. Für jeden Block im Originalbild gibt es jetzt 2 Bewegungsvektoren. In einer weiteen Prozedur wird eruiert, welcher der beiden Vektoren zu einer besseren Kompressionsrate verhilft.
Jeder Makroblock eines B-Frames kann jetzt mit den beiden errechneten Bewegungsvektoren auf drei verschiedene Möglichkeiten prädiziert werden
Jeder Makroblock eines B-Frames kann jetzt mit den beiden errechneten Bewegungsvektoren auf drei verschiedene Möglichkeiten prädiziert werden
Welche Variante verwendet wird, wird für jeden Makroblock individuell entschieden. Dazu wird für jede der 3 Varianten der Prädiktionsfehler berechnet, jene Variante mit dem kleinsten Prädiktionsfehler wird für die Kodierung weiter verwendet.
Durch die Möglichkeit, aus drei Varianten für jeden Block die am bestgeeignete zu wählen, wird eine hohe Genauigkeit der Bewegungskompensation erzielt. B-Frames bewirken daher im Allgemeinen einen viel höheren Kompressionsfaktor als P-Frames.
Kodierung von B-Frames erfordert längere Rechenzeiten als P-Frames. B-Frames können erst dann kodiert/decodiert werden, wenn ein zeitlich späteres Bild bereits vorhanden ist. Das macht die B-Frame-Kodierung für Echtzeitanwendungen wie Videotelefonie, Videokonferenz unbrauchbar.
Zusätzlich zu den bisher beschriebenen Frames definiert MPEG Video noch ein D-Frame. Dieses Frame ist einzig für Repräsentationszwecken gedacht und ist nicht Bestandteil der GOP .
D-Frames sind Intraframes mit einer sehr geringen Auflösung. Sie wurden bei der Entwicklung des Standards definiert, um ein schnelles Durchsuchen einer MPEG Videosequenz mittels fast forward/fast rewind Funktion zu ermöglichen. Die geringe Auflösung erzielt man dadurch, dass man jeden 8x8 Pixel Block nur durch seinen DC-Koeffizienten (siehe JPEG Bildvorbereitung) repräsentiert.
Durch die geringe Auflösung ist die erforderliche Dekodierzeit für ein D-Frame dementsprechend niedrig. So können viel mehr Bilder pro Zeiteinheit dekodiert werden, was eine schnellere Durchsicht des Videomaterials erlaubt.
Heute spielen die D-Frames keine sehr große Rolle mehr, da heute verwendete Hardware schnell genug ist, auch mit Hilfe der in der GOP enthaltenen I-Frames ein schnelles Durchsuchen zu ermöglichen.
Bei der Intraframe-Kodierung werden Bilder ohne Bezug auf andere Bilder als selbstständige Bilder kodiert. MPEG-Kompressionsalgorithmen verfahren ähnlich wie jene des JPEG-Standards .
Das Farbbild wird durch ein Grauwertbild und zwei Chrominanzbilder dargestellt. Die beiden Chrominanzbilder werden je nach verwendetem Standard unterabgetastet.. Während MPEG-1 nur eine Farbunterabtastung von 4:2:0 zulässt, gibt es im MPEG-2 Standard zusätzlich die Wahl von 4:2:2, 4:4:4 (siehe MPEG-2 und MPEG-2 Levels und Profiles)
Das Bild wird in 8x8 Pixel Blöcke unterteilt. Für jeden Block werden mittels Diskreter Cosinustransformation die DCT Koeffizienten ermittelt.
Auch der MPEG Standard schlägt Quantisierungstabellen vor.
Der DC Koeffizient ist für MPEG-1 ist mit 8 festgelegt. Für MPEG-2 sind auch Werte von 4, 2 und 1 erlaubt.
Die Werte derQuantisierungstabelle können nach Bedarf mit einem Skalierfaktor multipliziert werden. Dieser dient zur Anpassung der Kompressionsrate an die Bitratensteuerung.
Ist die geforderte Datenbitrate niedrig, ist eine hohe Kompressionsrate notwendig. Es müssen daher die Werte der Quantisierungstabelle dementsprechend vergrößert werden. Dies erreicht man dadurch, dass man alle Werte mit einem Skalierfaktor multipliziert. Je höher der gewählte Wert für den Skalierfaktor, desto größer die erzielbare Kompression.
MPEG erlaubt Skalierfaktoren zwischen 1 und 31. Dieser wird vom Encoder je nach zur Verfügung stehender Anzahl an Bits eingestellt.
DC Koeffizienten werden gleich wie bei der JPEG Kodierung behandelt. (siehe LU 20). Es werden die Differenzen aufeinander folgender DC Koeffizienten kodiert. Die Differenzwerte werden in Klassen eingeteilt. Die Kategorienummer wird Huffman kodiert.
Gleich wie bei JPEG werden die Prozeduren der Zick-Zack- Abtastung (siehe JPEG Kodierungstechnik), derLauflängen- und der Huffmankodierung durchlaufen. Im Gegensatz zu JPEG werden die AC Koeffizienten nicht in Kategorien eingeteilt.
Die Kodierung eines Interframes ist wesentlich komplexer. Es kommen sowohl Techniken der Intraframe Kodierung, wie auch eine eigene Technik für Interframes zum Einsatz.
Für jeden Makroblock wird entschieden, ob interkodiert oder intrakodiert wird. Welche Methode gewählt wird, richtet sich nach dem Ergebnis des Blockmatchingverfahrens.
Die Interkodierung funktioniert im Prinzip wie die Intrakodierung. Als Bild fungiert der Prädiktionsfehler. Im Gegensatz zur Intrakodierung ist die Quantisierungstabelle fix vorgegeben. Da die Makroblöcke eines Interframes durch Bewegungskompensation entstanden sind, gibt es oft keine Korrelation zwischen benachbarten Makroblöcken. Es werden daher die DC Koeffizienten nicht separat kodiert, sondern gemeinsam mit den zum jeweiligen Block gehörenden AC Koeffizienten. Zusätzlich müssen für jeden Makroblock der Bewegungsvektor und Informationen, auf welches Bild referenziert wird, in die Kodierung miteinbezogen werden.
Kompressionsverhalten | |
---|---|
I-Frame | 10:1-20:1 |
P-Frame | 20:1-30:1 |
B-Frame | 30:1-50:1 |
Kompressionsverhalten | |
---|---|
I-Frame | 10:1-20:1 |
P-Frame | 20:1-30:1 |
B-Frame | 30:1-50:1 |