470 likes | 673 Views
MPEG 1 | 2 Video. Seminar Multimediadatenformate Dozent Gerald Friedland Referent Klaus Brügmann. Aufbau des Vortrags. Allgemeines zu Video und MPEG Aufbau der MPEG-Daten Syntax-Erweiterungen durch MPEG 2 Stream-Synthese MCP-Algorithmen.
E N D
MPEG 1 | 2 Video Seminar Multimediadatenformate Dozent Gerald Friedland Referent Klaus Brügmann
Aufbau des Vortrags • Allgemeines zu Video und MPEG • Aufbau der MPEG-Daten • Syntax-Erweiterungen durch MPEG 2 • Stream-Synthese • MCP-Algorithmen
Wie sehen wirAllgemeines über visuelle Wahrnehmung • Wir sehen die Welt in Bewegung • Das Auge sendet aber nur Einzelbilder an das Gehirn • Das Gehirn möchte die Einzelbilder in einen Zusammenhang bringen • Im Gehirn wird die Bewegung rekonstruiert
Wie sehen wirAllgemeines über visuelle Wahrnehmung • Sehen badet das Auge in elektromagnetischen Wellen • Das Auge sendet Farbflächen an das Gehirn • Das Gehirn sucht nach der „Semantik“ dieser „Daten“ • Der Eindruck von gesehenen Dingen entsteht, die Illusion der Realität
Film • Filmbilder simulieren den visuellen Input einer Umwelt • Die Augen müssen mit qualitativ hochwertigem Bildmaterial gefüttert werden • Schnelle Bildfrequenz (>16Hz) • Realistische Farbwirkung (Stufenloser Farbverlauf) • Weites Blickfeld
Fernsehenund analoges Video • Framerate von 25Hz (PAL) • Interlacing gegen Flimmereffekt Frameverdopplung nur mit Zwischenspeicherung möglich • Signalübertragung analog Qualitätsverlust • Archivierung analog Qualitätsverlust
Digitales Video • Verlustfreie Übertragung der Daten • Speicherung auf digitalen Medien • komfortable Bildbearbeitung • Springen statt Spulen
MPEG-Historie • MPEG – Motion Picture Expert Group MPEG Komitee entstand 1988 • MPEG 1 : Int. Standard 11172 (1993, ISO/IEC) CD-Video, CD-I für Multimedia-Anwendungen Videorecorder-Qualität bei ca 1.5Mb/s Komfortable Archivierung • MPEG 2 : Int.Standard 13818 (1994, ISO/IEC) digitales Video mit Broadcast-Qualität (NTSC) bei 4 bis 6 Mb/s High Definition TV bei 15 – 30 Mb/s • Breite Anwendbarkeit
MPEG-Formatgrundlegendes • Streaming-fähig Zuschalten bei digitalem Fersehen • Verlustbehaftete Kodierung
Sequenz von Frames, ähnlich dem JPEG-Format kodiert Die örtliche (spatial) Redundanz in den Bilddaten wird reduziert MPEG-Datenallgemeines
MPEG-Datenallgemeines • MPEG reduziert zudem zeitliche Redundanz in den Daten : Ähnlichkeiten von einem Frame zum nächsten werden genutzt
Motion Compensation Prediction (MCP) • Ein Bereich des vorhergehenden Frames bildet die Vorlage (Prediction) für diesen Makro-Block • Der Bereich liegt um (x,y) Pixel verschoben zur aktuellen Position (Motion) • Der Verschiebungsvektor wird mit kodiert (Compensation)
MPEG-DatenSample-Blöcke Samples werden in Makro-Blöcke (16x16 Samples/Block) zusammengefasst Kompromiss : Daten-Overhead .vs. Fehlergröße Jeder Makro-Block kann nun unterschiedlich kodiert werden : Inter-kodiert und intra-kodiert
Makro- Blöcke intra-kodiert • Der Block-Code trägt die vollständige Farbinformation • Kodierung wie bei JPEG : Farbraumumwandlung Subsampling Blockbildung DCT Quantisierung Lauflängen-Kodierung Huffman-Kodierung
Makro-Blöckeinter-kodiert • Ein möglichst ähnlicher Bereich eines anderen Frames wird referenziert • Verschiebungsvektoren werden angegeben (Motion Compensation, MC)
Makro-Blöckeinter-kodiert • Die Sample-Differenz wird an Stelle der Sample-Information nach gleichem Schema kodiert
Slicesund übersprungene Blöcke • Makro-Block-Sequenzen werden zu Slices zusammengefasst • Slices bilden den Frame, lassen aber u.U. Lücken offen – übersprungene (skipped) Blöcke • Für diese Lücken werden die entsprechenden Samples des letzten Frames übernommen
Frame-Abhängigkeit3 Frame-Typen • Nicht alle Frames eines Videos hängen voneinander ab • Übertragungsfehler leben nicht ewig • Streaming möglich • Beliebiger Zugriff auf Frames möglich • 3 Frame-Typen : I-Frames, P-Frames, B-Frames
I-(intra-kodierte)Frames • Enthalten nur intra-kodierte Makro-Blöcke • Können von anderen Frames referenziert werden • Tabula Rasa im Bitstream • Orientierungspunkte in der Sequenz Beim Spulen, Editieren
P-(prädiktiv kodierte)Frames • Makro-Blöcke sind u.U. inter-kodiert • Referenzieren nur vorangegangene Frames • Können von anderen Frames referenziert werden
B-(bidirektional prädiktiv kodierte)Frames • Makro-Blöcke sind u.U. inter-kodiert • Referenzieren nachfolgende und vorangegangene Frames • Können von anderen Frames NICHT referenziert werden
Frame-Abfolge • Frame-Verwendung durch den Encoder festgelegt • Häufige Verwendung bestimmter Abfolgen • Ausnahmen z.B. bei Szenenwechsel • Umsortierung um Pufferung zu erleichtern
Constrained Parameters Bitstreams (CPB) • Syntax erlaubt 4095 x 4095 Frames und Bitraten bis ca 100Mb/s • Häufig verwendete Parameter standardisiert • CPB (MPEG 1) : • 352 x 240 Frames(SIF), 30 Frames/s, <1.86Mb/s • verwendet für CD-Video
MPEG 2 „kann mehr“ • MPEG 2 definiert mehr als nur einen CPB (Levels) • MPEG 2 kodiert Interlacing • MPEG 2 bietet skalierbare Bitstreams (profiles) Decoder-abhängige Bildqualität
MPEG 2 Levels • Low Level : 352x240 Pixel/Frame • entspricht CPB bei MPEG 1 • Main Level : 720x480 Pixel/Frame • Standard für NTSC-broadcast-Qualität • High1440 Level : 1440x1152 Pixel/Frame • High Definition TV • High Level : 1920x1080 Pixel/Frame • High Definition TV
MPEG 2 Profile • Profile bezeichnen Beschränkungen der MPEG2-Syntax • Main-Profil : entspricht der MPEG1-Syntax (Bis auf das Interlacing) • Simple-Profil : wie Main, jedoch ohne B-Frames
MPEG 2 Profileskalierbare Daten • Signal besteht aus mehreren Streams (Layer) • Base (Lower) Layer ist voll dekodierbar • Enhancement (Upper) Layer bietet zusätzliche Information • Verbesserte Auflösung • Höhere Frame-Rate • Höhere Qualität
Skalierbare Profile Spatial-Profil • Frames in zwei verschiedenen Auflösungen • Base-Layer-Frames werden als alternative Vorlage zur Prädiktion der Upper-Layer-Frames verwendet
Skalierbare Profile SNR (Signal-to-Noise-Ratio) - Profil • Quantisierungsfehler wird enkodiert und auf dem Upper-Layer-Stream gesendet
Skalierbare Profile SNR-Profil Decoder
Interlacing mit MPEG 2 • Kodieren von Halbbildern als Felder (Field) • Nur paarweise
Bitrate – variabel oder konstant • Konstant : Encoder reguliert die Bitrate durch Skalierung der Quantisierungsmatrix • Variabel : Die DCT-Werte werden nach festen Matrizen quantisiert Bei variabler Bitrate können Puffer-Unterläufe auftreten
Stream – SynchronisationMPEG 1 • Video- und Audiopakete erhalten Zeit-Stempel • Multiplexing durch die System-Komponente
Stream – SynchronisationMPEG 2 • MPEG 2 erlaubt eine größere Zahl von Audio- und Benutzer-definierten Daten-Streams • Surround-Sound • Mehrere Sprachen kodiert • Untertitel • Streams mit gemeinsamer Zeitbasis zunächst in Program-Streams zusammengeführt • Der Transport-Stream enthält alle Program-Streams (Multiplexing mit konstanter Paketgröße)
Motion Compensation Prediction Algorithmen Der MPEG-Standard legt die Syntax der Daten fest (und damit auch den Dekodiervorgang) Kodier-Algorithmen sind dagegen frei wählbar Herausforderung : Schnelles Finden der besten Treffer für die MCP
MCP – Algorithmeneinfache Methode • Ausprobieren aller möglichen 16x16 Felder – der beste gewinnt • Fehler-Kodierung mit Intra-Kodierung vergleichen – die kürzere gewinnt Diese Methode ist solide, aber nicht schnell. Wenn schnelle Kodierung (Echtzeit) gewünscht, zu langsam
MCP – AlgorithmenIntelligentere Methoden • Absuchen eines Fensters von +/- x Pixeln um die aktuelle Position • Wählen einer Fehlertoleranz : Nicht weitersuchen, wenn man sie unterschritten hat Findet möglicherweise nicht den besten Treffer, verschwendet aber weniger Zeit
MCP – AlgorithmenGrob-Abschätzung • Mittelwert-Bildung aller betrachteten Prädiktions-Bereiche • Schneller Vergleich mit aktuellem Makro-Block-Mittelwert • Fehler-Schätzung liegt niedriger als tatsächlicher Fehler • Disqualifikation vieler Kandidaten, noch bevor rechen-intensiver Vergleich stattfindet Damit werden gute Suchmuster noch rentabler
MCP – AlgorithmenSpiralmuster • Fenster-Durchsuchen vom Zentrum aus, um gute Treffer schnell zu finden
MCP – AlgorithmenBewegungsvektor vorrausahnen • Bewegungsvektor des vorangegangenen Frames des selben Blockes puffern • Suchfenster um diesen Vektor verschieben
MCP – AlgorithmenSub-Sampling • Suche nach grobem Raster zuerst • Dann dichte Suche um die besten „Stichproben“ herum
MCP – AlgorithmenFourier-Transformation • Partielle Fourier-Transformation der niedrigsten Frequenzen des Spektrums • Vergleich der Koeffizienten gibt gute Abschätzung des zu erwartenden Fehlers
ZusammenfassungMPEG Video • Block-basierendes Kodierungs-Schema • Verlustbehaftet • Hohe Kompressionsraten • Breite Anwendbarkeit
Literatur • Shanawaz Basith, 1996, MPEG : Standards, Technology and Applications, http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol2/sab/article2.html, download 15.1.2003 • George Tsang, -, MPEG-1 Video Codec, http://www.cmlab.csie.ntu.edu.tw/ cml/dsp/training/coding/mpeg1/, download 15.1.2003 • P.N. Tudor, 1995, MPEG-2 VIDEO COMPRESSION , http://www.bbc.co.uk/ rd/pubs/papers/paper_14/paper_14.html, download 15.1.2003 • Chad Fogg, 1996, MPEG-2 FAQ, http://bmrc.berkeley.edu/frame/research/ mpeg/mpeg2faq.html, download 15.1.2003 • B. Lincoln, M. T. Malkin, 1997, Speed-up of Block Motion Estimation in Long-Term Memory Motion-Compensation Prediction, http://ise0.stanford.edu/class/ ee392c/demos/lincoln_malkin/projhtml.html, download 15.1.2003 • Thomas Sikora, 1997, MPEG-1 and MPEG-2 Digital Video Coding Standards, http://wwwam.hhi.de/mpeg-video/papers/sikora/mpeg1_2/mpeg1_2.htm, download 15.1.2003