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 |
Tools: | Validate — Preview XML Preview HTML Preview PDF |
Alternative: | Printable HTML |
Title: | Frames in MPEG Video | ||
---|---|---|---|
Abstract: | 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: | Final | Version: | 2005-01-17 |
History: |
2005-01-17 (Thomas Migl): math-xml hinzugefügt 2004-09-16 (Thomas migl): pda Abb. eingefügt 2004-08-16 (Robert Fuchs): Checked, fixed and exported for Review #2. 2004-08-10 (Thomas Migl): in Greybox importiert, finalisiert, PDA Abbidung fehlt 2004-03-12 (Robert Fuchs): Closed for 50% Content Deadline import in Scholion. 2004-03-11 (Thomas Migl): LOD1 Header added 2004-03-09 (Robert Fuchs): Fixed nested list bug introduced by Contribute. 2004-03-09 (Thomas Migl): LOD1 und Abstract hinzugefügt 2004-03-07 (Robert Fuchs): Fixed empty source tags, removed sHeader class from image. 2004-03-05 (Robert Fuchs): Added links. 2004-03-04 (Robert Fuchs): Imported and tagged content from "m4-LU30-Frames_in_MPEG_Video-fertig.doc"; minor changes in structure, one CorPU less than the Word document. 2004-02-25 (HTMLContentTools):Created skeleton page. |
Author 1: | Thomas migl | E-Mail: | migl@ims.tuwien.ac.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: | Organisation: Technische Universität Wien; Institut für Softwaretechnik und Interaktive Systeme; Arbeitsgruppe für Interaktive Multimediale Systeme; http://www.ims.tuwien.ac.at/ |
Einführung1Frames in MPEG
2autoWie 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. Frames in MPEGMPEG unterscheidet Intra-Frames und Interframes . Intra-FramesSelbständige Bilder. Zur Anzeige eines Intra-Frame benötigt man kein Referenzbild. Eine spezielle Form eines I-Frames ist das D-Frame. Inter-FramesInter-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 und P-Frames1I-Frame
P-Frame
2I-FramesI-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.
P-FramesDas 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. Informationsgehalt P-FrameIn einem P-Frame sind für jeden Makroblock Bewegungsvektor und Prädiktionsfehler angegeben. KodierungDa 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-Frames1Rückwärts/Vorwärts Prädiktion
Erzeugung B-Frame
Auswahl einer Variante PC
uswahl einer Variante PDA_Phone
2Rückwärts/Vorwärts Prädiktion stru2002, 156B 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. Erzeugung B-FrameZur 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. Die 3 Varianten der Prädiktion PCJeder Makroblock eines B-Frames kann jetzt mit den beiden errechneten Bewegungsvektoren auf drei verschiedene Möglichkeiten prädiziert werden
Die 3 Varianten der Prädiktion PDA_PhoneJeder Makroblock eines B-Frames kann jetzt mit den beiden errechneten Bewegungsvektoren auf drei verschiedene Möglichkeiten prädiziert werden
Auswahl einer VarianteWelche 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. VorteilDurch 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. NachteilKodierung 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. D-Frames1auto reyn2004
2auto reyn2004Zusä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. Kodierung von Intraframes1Bildvorbereitung
Quantisierung
Bestimmung Skalierfaktor für Quantisierungstabelle
Kodierung der quantisierten DCT Koeffizienten
2Bei der Intraframe-Kodierung werden Bilder ohne Bezug auf andere Bilder als selbstständige Bilder kodiert. MPEG-Kompressionsalgorithmen verfahren ähnlich wie jene des JPEG-Standards . BildvorbereitungFarbraum TransformationDas 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) Blockzerlegung, DCTDas Bild wird in 8x8 Pixel Blöcke unterteilt. Für jeden Block werden mittels Diskreter Cosinustransformation die DCT Koeffizienten ermittelt. Quantisierung stru2002Auch 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. Skalierfaktor für QuantisierungstabelleDie Werte derQuantisierungstabelle können nach Bedarf mit einem Skalierfaktor multipliziert werden. Dieser dient zur Anpassung der Kompressionsrate an die Bitratensteuerung. Skalierfaktor für QuantisierungstabelleIst 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. Kodierung der DC KoeffizientenDC 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. Kodierung der AC KoeffizientenGleich 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. Kodierung von Interframes1Inter/Intrakodierung
Interkodierung
Tabelle für Interkodierung2autoDie Kodierung eines Interframes ist wesentlich komplexer. Es kommen sowohl Techniken der Intraframe Kodierung, wie auch eine eigene Technik für Interframes zum Einsatz. Inter/IntrakodierungFür jeden Makroblock wird entschieden, ob interkodiert oder intrakodiert wird. Welche Methode gewählt wird, richtet sich nach dem Ergebnis des Blockmatchingverfahrens.
InterkodierungDie 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. Tabelle für InterkodierungKomprimierungsverhalten der verschiedenen Frames reyn20041auto
2auto
|
(empty) |