MPEG-2-Codierung und MPEG-2
Transcrição
MPEG-2-Codierung und MPEG-2
Proseminar „Ausgewählte Themen aus der Medientechnik“ MPEG-2-Codierung und MPEG-2-Datenströme Steffen Buchner 206110033 [email protected] Andreas Stahlhofen 206110428 [email protected] 05. Juli 2007 1 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2 Proseminar „Ausgewählte Themen aus der Medientechnik“ Inhaltsverzeichnis 1. Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Wofür steht MPEG? . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Was bezweckt MPEG-2? . . . . . . . . . . . . . . . . . . . . 1.3 Entstehung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 2. Video-Kompression . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Reduktionstypen . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Quantisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Weglassen der H- und V-Brücke . . . . . . . . . . . . . . . 2.4 Reduktion der Farbauflösung in horizontaler Richtung . . . . . . . . . . . . . . . . . . . . . 2.5 Differenzpulscodemodulation . . . . . . . . . . . . . . . . . 2.6 Motion Compensation . . . . . . . . . . . . . . . . . . . . . . . 2.7 Diskrete Cosinustransformation . . . . . . . . . . . . . . . 2.8 Zig-Zag-Scanning mit LLC von Nullsequenzen . . . . 2.9 Huffmann-Codierung . . . . . . . . . . . . . . . . . . . . . . . . 2.10 Zusammenfassung Videokompression . . . . . . . . . . 8 8 9 9 10 11 12 14 16 17 18 3. Audio-Kompression . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4. MPEG-2-Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Allgemeiner Aufbau des Datenstroms. . . . . . . . . . . 4.1.1 Vom PES-Paket zum Transportstrom . . . . . 4.1.2 Transportstompaket . . . . . . . . . . . . . . . . . . 4.2 Datenstrom-Empfang . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Program Specific Information (PSI) . . . . . . 4.2.2 Zugriff auf ein Programm . . . . . . . . . . . . . . 4.2.3 Zugriff auf ein verschlüsseltes Programm 4.2.4 Programmsynchronisation . . . . . . . . . . . . . 4.3 Private Sections und Private Tables . . . . . . . . . . . . 4.3.1 Standardisierung des Tabellenaufbaus . . . 4.3.2 Aufbau von Sections . . . . . . . . . . . . . . . . . . 4.3.3 Praxisbeispiel anhand einer PMT . . . . . . . . 4.4 Service Information gemäß DVB (SI) . . . . . . . . . . . 4.4.1 Network Information Table (NIT) . . . . . . . . 4.4.2 Service Descriptor Table (SDT) . . . . . . . . . 4.4.3 Bouquet Association Table (BAT) . . . . . . . . 4.4.4 Event Information Table (EIT) & Running Status Table (RST) . . . . . . . . . . . . 4.4.5 Time&Data Table (TDT) & Time Offset Table (TOT) . . . . . . . . . . . . . . . 4.4.6 Stuffing Table (ST) . . . . . . . . . . . . . . . . . . . 20 21 22 23 24 25 27 27 28 29 29 30 31 33 33 33 34 34 35 35 3 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4 Proseminar „Ausgewählte Themen aus der Medientechnik“ 1. Einführung 1.1 Wofür steht MPEG? MPEG steht für Moving Pictures Expert Group. Die MPEG ist eine Gruppen von Experten, die sich mit der Videokompression, der Audiokompression und den Containerformaten beschäftigt. Das Ziel der Gruppe ist es, eine Standardisierung dieser Bereiche zu verwirklichen. Mehrmals jährlich treffen sich die etwa 500 Experten aus 200 Firmen und Organisationen zu einem fünftägigen Meeting . Die offizielle Bezeichnung für MPEG ist ISO/IEC JTC1/SC29/WG11 (International Organization for Standardization/International Electrotechnical Commission, Joint Technical Committee 1, Subcommittee 29, Working Group 11). Ein wichtiges Gründungsmitglied stellt Leonardo Chiariglione dar, der mittlerweile eine eigene Firma namen cedeo.net DIGITAL MEDIA CONSULTING gegründet hat. © italtrade.com 5 Proseminar „Ausgewählte Themen aus der Medientechnik“ 1.2 Was bezweckt MPEG-2? Das Videosignal vor der Kompression (SDTV) hat eine Bandbreite von 270 Mbit/s. Dieser Wert lässt sich wie folgt berechnen: 720 * 576 * 25 * 24 Bit / 1 Sekunde Breite Höhe Bildrate Farbtiefe Zeiteinheit Nach der Kompression hat es bei ähnlicher Qualität maximal noch 15 MBit/s. 6 Proseminar „Ausgewählte Themen aus der Medientechnik“ 1.2 Entstehung Seit der Gründung im Jahr 1988 hat die MPEG bereits folgende wichtige Komprimierungsformate standardisiert: H.261 Erscheinungsjahr: 1990 Verwendungszweck: Bildtelefonie sowie Videokonferenzen über ISDN MPEG-1 Projektcode: JTC1.29.05.01 Erscheinungsjahr: 1993 Progressives Video-Format mit mehreren Layern. Verwendungszweck: Video-CDs, Musik Zum Audio-Teil von MPEG-1 gehört das MP3 (MPEG-1 Layer 3) MPEG-2 Alternativer Name: H.262 / H.263+ / H.263++ Projektcode: JTC1.29.05.02 Erscheinungsjahr: 1994-2000 Video- und Tonformate in Fernsehqualität. Verwendungszweck: Wird auch für DVD-Videos und DVB verwendet. (Bitrate: bis 15 MBit/s) MPEG-3 Erscheinungsjahr: nicht erschienen MPEG-3 hätte der Standard für HDTV werden sollen, jedoch genügte einer Erweiterung von MPEG-2. MPEG-3 wurde deshalb nie fertiggestellt. MPEG-4 Alternativer Name: / Projektcode: JTC1.29.13 Erscheinungsjahr: 1998-2007 MPEG-4 beschreibt u.a. ein komplexes Container-Format. Sie ist eine 3D-Sprache ähnlich VRML (Virtual Reality Modeling Language) und unterstützt auch nicht-rechteckige Video-Objekte. Die Video-Kompression wurde nochmals verbessert und es enthält auch Unterstützung für Digital Rights Management. Verwendungszweck: Digitale Übertragung von Medien über das Internet, sowie speicherplatzgünstige Abspeicherung. Weitere Formate (nicht Video): MPEG-7 / MPEG-21 / MPEG-(A-E) 7 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2. Video-Kompression 2.1 Reduktionstypen Bei der MPEG-2-Kompression werden die folgenden Reduktionstypen angewendet: Irrelevanzreduktion bedeutet: unnötig Es werden Sachen weggelassen, die der Empfänger problemlos reproduzieren kann. Beispiel: Anstelle von 0..0 kann man auch n*0 schreiben. Bei der MPEG-2-Kompression vorkommend bei: Weglassen der H-/V-Brücke Lauflängencodierung von Nullsequenzen nach vorherigem Zig-Zag-Scanning Huffmann-Codierung Redundanzreduktion bedeutet: überflüssig Es werden Sachen weggelassen, die als wenig wichtig erscheinen. Beispiel: Da das Auge die Chrominanz nicht so genau wahrnimmt wie die Luminanz, kann die Farbschärfe (Farbgenauigkeit) vermindert werden. Bei der MPEG-2-Kompression vorkommend bei: Ändern der Quantisierungsgenauigkeit Reduktion der Farbauflösung in horizontaler Richtung 8 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2.2 Quantisierung Quantisierung nennt man die Umformung einer Größe, welche zuvor unendlich genaue Werte annehmen konnte in ein System, in dem sie eine nur weniger hohe Anzahl von Werten annehmen kann. Ein Beispiel ist die Umformung einer Gleitkommazahl in einen Integer oder die Umformung eines analogen in einen digitalen Wert Für Videodaten im Studiobereich wird meist eine Quantisierung der Werte Y (Helligkeit), Cb (0: gelb, 0,5: grau, 1: blau) und Cr (0: grün, 0,5: blau, 1:rot) von 10 Bit verwendet. Bei der MPEG-2-Kompression wird diese allerdings auf 8 Bit heruntergesetzt, sodass ungenauere Werte einstehen. Es ergibt sich eine Speicherplatzersparnis von (10-8)/10 = 20%. 2.3 Weglassen der H-/V-Brücke Beim TV-Gerät wird ein Bild angezeigt, indem ein Elektronenstrahl eine Zeile von links nach rechts und anschließend darunter eine neue Zeile von links nach rechts aufbaut. In der Zeit, in der der Elektronenstrahl nach links wandert um einen neue Zeile zu beginnen, würde das Senden eines Signals störende Striche erzeugen. Darum wird während des Rücksprungs vom Ende der einen an den Anfang der darunter liegenden Zeile immer eine Horizontale Austastlücke gesendet, bei der Rückkehr vom Ende der letzten Zeile zum Anfang der ersten Zeile des nächsten Bildes die Vertikale Austastlücke. Da diese Austastlücke beim Empfänger problemlos reproduziert werden kann (Redundanzreduktion) und auch keine Daten enthält, wird sie bei der Kompression ausgelassen. Beim PAL-Signal sind nur 575 von 625 Zeilen sichtbar. Die 50 Zeilen der vertikalen Austastlücke machen also 8% der Bandbreite aus. Wenn man nun noch die vertikale Austastlücke weglässt, welche 12 µs der 64 µs langen Zeilendauer wegnimmt hat man eine zusätzliche Ersparnis von 19%, durch die Überlappung der Spareffekte letztlich 25%. 9 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2.4 Reduktion der Farbauflösung in horizontaler Richtung Das gegebene SDTV-Signal mit der Bandbreite von 270 MBit/s hat das Format 4:2:2, was bedeutet, dass in jeder Zeile für jeden Bildpunkt ein neuer Luminanzwert (Helligkeit), jedoch nur für jeden zweiten ein neuer Chrominanzwert (Farbe). Da das Auge jedoch nicht zwischen der horizontalen und vertikalen Farbauflösung nicht unterscheidet, kann man die Farbauflösung auch in der vertikalen Richtung reduzieren. 10 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2.5 Differenzpulscodemodulation Die Differenzpulscodemodulation ist abgeleitet von der Pulscodemodulation, welche auf der hier beschriebenen Idee basiert: Anstatt jedes mal den absoluten Wert zu übertragen, wird hier nur einmal der Absolutwert übertragen und anschließend nur Relativwerte zum vorherigen Wert. Da allerdings hin und wieder Übertragungsfehler auftreten oder man erst später in das Video „einsteigt“, müssen auch in regelmäßigen Abständen wieder die Absolutwerte übertragen werden. Die Differenzpulscodemodulation wird hingegen auf ganze Bilder angewendet und es wird jeweils nur die Veränderung zum vorherigen Bild übertragen. 11 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2.6 Motion Compensation Die Motion Compensation ähnelt der Pulscodemodulation und soll lediglich die Veränderungen von einem zum nächsten Bild übertragen. Das Bild wird in viele Makroblöcke zu 16*16 Bildpunkten bei der Luminanz und aufgrund des 4:2:0-Formats zu 8*8 Bildpunkten bei der Chrominanz unterteilt. Die Differenzbildung findet innerhalb der Makroblockebene statt. Diese ist die zweitletzte Ebene: Videosequenz, Bildgruppe, Einzelbild, Slice, Makroblock, Block. Bei der Motion Compensation entstehen dabei verschiedene Arten von Frames: I-Frames Die Intra-Frames in der Motion Compensation entsprechen den Absolutwerten der eben vorgestellten Pulscodemodulation. Diese Referenzbilder bestehen aus einem kompletten, sauberen, neu übertragenen Bild. P-Frames Bei den Predicted-Frames (vorhergesagte Bilder) vergleicht man immer einen Makroblock des Bildes mit dem jeweiligen Makroblock des Nachfolgerbildes. Dabei wird überprüft, ob sich der Makroblock verschoben, geringfügig oder komplett geändert hat. Die P-Frames können sowohl den vorangegangen I- und P- Frames zur Bewegungsschätzung von Nutzen sein, als auch als Referenz für eine weitere Bewegungsvorhersage genutzt werden. Ein Bild wird durch Bewegungsvektoren und Differenzblöcke repräsentiert. 12 Proseminar „Ausgewählte Themen aus der Medientechnik“ B-Frames Die Bidirectional-Frames sind abhängig von den vorausgehenen und auch den folgenden I- und P-Frames, d.h. gleichzeitig vorwärts- und rückwärts differenzgebildet. Die Bewegungsschätzung funktioniert nun wie folgt: Bei P-Frames sucht man in den vorangegangenen Frames (bei B-Frames auch in den nachfolgenden) im Umfeld des zu kodierenden Makroblocks nach dem Prinzip des Block-Matchings nach passenden Makroblockinformationen. Wenn jetzt ein gut passender Makroblock davor (resp. dahinter) gefunden wurde, werden die Bewegungsvektoren ermittelt und übertragen. GOP Die Group of Pictures ist diejenige Bildergruppe, die von zwei benachbarten I-Frames eingeschlossen wird. In der Regel besteht diese Gruppe aus 12 Elementen und hat die Reihenfolge {I1, B2, B3, P4, B5, B6, P7, B8, B9, P10, B11, B12}. Da man bei der Empfangsseite zur Decodierung der GOP nicht nur die vorausgehenden, sondern auch den nachfolgenden I-, resp. P-Frame benötigt, wird die GOP-Struktur zur Reihenfolge {I1, B-1, B0, P4, B2, B3, P7, B5, B6, P10, B12, B11}. Außerdem werden noch sogenannte DTS(Decoding Time Stamps)-Werte übertragen, um die Bilderreihenfolge wiederherstellen zu können (Seite 28). Somit kann der Empfänger die B-Frames problemlos dekodieren. 13 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2.7 Diskrete Cosinustransformation aus wikipedia.de aus wikipedia.de Die Diskrete Cosinustransformation macht sich folgende Tatsachen zu Nutze: Das Auge sieht Fehler in feinen Strukturen nur sehr schlecht und das Ergebnis der Transformation lässt sich sehr gut komprimieren. Die Vorgehensweise ist wie folgt: 1. Der 8x8-Makroblock (1) wird punktweise in die 2-dimensionale FDCT eingesetzt (2). 2. Die errechneten Werte werden unterschiedlich stark quantisiert (3). 3. Die quantisierten Werte werden linear verknüpft mit bestimmten Frequenzmustern (4). Die Diskrete Cosinustransformation wird auch zur Übertragung der Veränderung innerhalb eines Makroblocks von einem zum anderen Frame verwendet. Die Cosinustransformation ist komplett irreversibel, Qualitätsverluste entstehen lediglich durch die anschließende Quantisierung verschiedener Frequenzbereiche. 14 Proseminar „Ausgewählte Themen aus der Medientechnik“ aus wikipedia.de 15 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2.8 Zig-Zag-Scanning mit Läuflängencodierung von Nullsequenzen © ei.cs.vt.edu Entlang der auf der Abbildung eingezeichneten Linie bilden sich bei der Quantisierung nach der Quantisierungsmatrix viele Werte, die so klein werden, dass sie als 0 interpretiert werden können. Die Matrix wird nun entlang der Linie ausgelesen und dieses Wertefeld nach dem Redundanzverfahren komprimiert. Die vielen hintereinander liegenen Nullen werden so zu X*0 zusammengefasst. 16 Proseminar „Ausgewählte Themen aus der Medientechnik“ 2.9 Huffmann-Codierung Die Idee der Huffmann-Codierung besteht darin, oft vorkommende Zeichen durch ein möglichst kurzes Signal, weniger häufige durch ein längeres Signal darzustellen. Ein gutes Beispiel liefert das Morsealphabet, bei dem der Buchstabe E das Zeichen (.) hat. Der vorige Satz enthält alleine 15 e's. Bei dem Morsen wird zwischen den einzelnen Morse-Zeichen (dit (.) und dah (-)) immer eine Pause gemacht, da ansonsten Verwechslungen auftreten könnten, da die Zeichen teilweise unter sich ineinander enthalten sind. Dies soll bei der Huffmann-Codierung aber eben genau nicht auftreten, da diese nur 2 mögliche Signale hat (0 und 1). Um die Signale nun passend zur Priorität der Zeichen zu erstellen, wird ein Baum benötigt, der nach dem auf der folgenden Seite vorgestellten Verfahren aufgebaut wird. aus wikipedia.de 17 Proseminar „Ausgewählte Themen aus der Medientechnik“ a) Die Elemente werden nach ihrer Priorität sortiert aufgeschrieben. b-e) Die zwei niedrigsten Blätter werden zu einem neuen Blatt gebunden. So ergibt sich also folgende Liste (sei 0=links, 1=rechts) A: 0, B: 100, C: 101, D: 110, E: 111 Was man sieht: Es ist kein Signal in einem anderen enthalten und das Zeichen A ist deutlich kürzer als das Zeichen E. Das Wort DADA ist also: 11001100 Zur Entschlüsselung muss allerdings die Codetabelle vorliegen, diese wird beim MPEG-2-Stream mitgegeben, bzw. mithilfe von festgelegten Huffmann-Codetabellen berechnet. Eine Simulation lässt sich hier finden: http://www.inf.fh-flensburg.de/lang/algorithmen/code/huffman/huffman.htm 2.10 Zusammenfassung Videokompression Mithilfe der dargestellten Kompressionsverfahren konnte das ursprüngliche Videosignal von 270 Mbit/s auf eine kleine Bitrate von 2..7 Mbit/s mit der Obergrenze von 15 Mbit/s komprimiert werden. 18 Proseminar „Ausgewählte Themen aus der Medientechnik“ 3. Audio-Kompression Da bei der Video- und Audiokompression viele Parallelitäten auftauchen, sei hier noch ein kurzer Einblick in die Audio-Kompression gewährt. Das MPEG-2-Audioformat, welches 1994 verabschiedet wurde, besteht aus den 3 Layern des MPEG-1-Audioformats, wobei Layer 2 mit einer Multichannel-Fähigkeit erweitert wurde. Zur selben Zeit enstand auch das von Dolby entwickelte AC-3, welches heute in Kinos benutzt wird, aber auch auf der DVD Anwendung findet. Folgende Fakten macht sich die Audio-Kompression zu nutze: 1. Das Ohr nimmt Frequenzen unter 20 Hz und über 20 kHz nicht mehr wahr. 2. Das Ohr besitzt das Maskierungsverhalten, d.h., es kann ich einem Geräusch bestimmte Frequenzanteile kaum wahrnehmen (insbesondere bei 1 kHz), beispielsweise ein Ton mittlerer Frequenz bei tiefem Bass. Das Verfahren: Zuerst wird das Audiosignal aufspaltet und einem Filterprozess und Frequenzanalysator zugeführt. Der Frequenzanalysator ermittelt mithilfe der Fast-Fourier-Transformation die Bestandteile verschiedener Frequenzen. Mithilfe des Maskierungsverfahrens ist es nun möglich, irrelevante Bestandteile des Audiosignals zu lokalisieren. Im Filterprozess hingegen wird das Audiosignal in viele Frequenzteilbänder aufgespaltet, um zu überprüfen, ob das Teilband durch Signale in anderen Teilbändern komplett maskiert wird und somit nicht mehr übertragen werden muss. Außerdem werden die unterschiedlichen Teilbänder unterschiedlich stark quantisiert, so muss die Quantisierung bei tiefen Tönen höher sein als diese bei höhen Tönen. Eine ausführliche Darstellung findet sich im Buch „Walter Fischer – Digitale Fernsehtechnik in Theorie und Praxis“ auf den Seiten 139-155. 19 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4. MPEG-2-Streaming Definition: Unter Streaming (engl. streaming „Strömen, Fließen“) versteht man die kontinuierliche Übertragung von Daten, das heißt die Übertragung von Datenströmen. (Quelle: http://www.de.wikipedia.org) 4. Allgemeiner Aufbau des Datenstroms Der MPEG-2-Datenstrom besteht aus verschiedenen Elementarströmen, wie z.B. Audio-, Video- oder Datenströmen. Diese Elementarströme werden nach der Kompression in kleine Pakete mit verschiedener Länge zerlegt. Die Länge unterscheidet sich deshalb, da die analogen Signale von Bild und Ton nicht gleichstark komprimiert werden können. Diese Pakete nennt man „PESPaket“ (PES=Packetized Elementary Stream). 20 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.1.1 Vom PES-Paket zum Transportstrom Es gibt zwei Möglichkeiten für den Aufbau eines PES-Pakets. Bei Möglichkeit 1 hat das Paket eine maximale Größe von 64 kByte und besteht aus einem Header, in dem ein Längenindikator enthalten ist und einem Payload-Anteil, in welchem die Nutzlast übertragen wird. Somit hat der Nutzlastanteil eine maximale Größe von 64 kByte minus die Größe vom Header. Bei Möglichkeit 2 hat das Paket eine unbesimmte Länge. Hier wird der Längenindikator im Header auf „0“ gesetzt und der Dekoder muss das Paketende über einen vordefinierten Algorithmus bestimmen. Der Header eines solchen PES-Pakets ist nach dem folgenden Schema aufgebaut: Er beginnt mit einer 3 Byte großen Hexadezimalzahl, die immer den gleichen Wert aufweist, nämlich „0x00 0x00 0x01“. Dieser 3 Byte große Teil heißt „Start Code Prefix“ und zeigt den Beginn eines PES-Pakets an. Als nächstes folgt die 1 Byte lange „Stream ID“. Diese identifiziert die Art des Datenstroms. Dies kann ein Video- , Audio-, oder Datenstrom sein. Am Ende des Headers folgt dann noch der oben schon erwähnte Längenindikator, der eine Aussage über die Länge des PES-Pakets tätigt. Falls die 2 Bytes jeweils den Wert „0“ aufweisen, bedeutet dies eine Überschreitung der 64-kByte-Grenze. Nun beginnt in den meisten Fällen der eigentliche Nutzanteil, jedoch kann man den Header optional um 12 Bit verlängern. In dieser Verlängerung sind 11 Steuerflags enthalten mit Informationen für die Synchronisation von Audio und Video. 21 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.1.1 Vom PES-Paket zum Transportstrom Die PES-Pakete sind aufgrund ihrer langen Datenstruktur jedoch ungeeignet für die Übertragung von mehreren Programmen, was jedoch einen wichtigen Aspekt bei der Einführung von MPEG-2 darstellte. Um dies nun möglich zu machen, werden die PES-Pakete in kleinere Pakete mit einer konstanten Länge von 184 Byte eingeteilt. Zusätzlich wird noch ein 4 Byte langer Header vor das Paket gesetzt. Somit ergibt sich ein kleines Paket mit einer Gesamtlänge von 188 Byte, namens Transportstrompaket. Nun ist man soweit, dass für die einzelnen Video-, Audio- und Datenströme jeweils mehrere Transportstrompakete vorliegen. Die Transportstrompakete der verschiedenen Programme sollen nun zu insgesamt einem Transportstrom vereint werden. Dies geschieht, indem erst die Transportstrompakete eines Programms durch einen Multiplexing-Vorgang verschachtelt werden (Abb.3.7). Die nun entstandenen Datenströme der verschiedenen Programme werden durch einen weiteren Multiplexing-Vorgang verschachtelt, wodurch sich ein einziger Transportstrom ergibt, der sog. MPEG-2-Transportstrom. Der MPEG-2-Transportstrom besteht nun aus 188 Byte großen PETPaketen aller Programme mit allen Video-, Audio- und Datenströmen. In einem Transportstrom können sich bis zu 20 verschiedene Programme befinden. aus Walter Fischer „Digitale Fernsehtechnik in Theorie und Praxis“ 22 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.1.2 Transportstrompaket Ähnlich wie die aus dem PES-Paket erstellten Transportstrompakete besteht das MPEG-2-Transportstrompaket auch aus einem 4 Byte großen Header und einem 184 Byte langen Payloadanteil. Der Header ist nach folgendem Schema aufgebaut (Abb.3.8): Quelle: Walter Fischer: Digitale Fernsehtechnik in Theorie und Praxis Das erste Byte ist das sog. Sync Byte. Dieses hat immer die Hexadezimalzahl 0x47 und wiederholt sich logischerweise alle 188 Bytes. Es wird zur Synchronisierung auf den Transportstrom benötigt. Als nächstes folgt der 1 Bit lange Transport Error Indicator. Dieses Bit wird von Demodulatoren am Receiver gesetzt und weist auf eine fehlerhafte Übertragung hin. Am Ende des Headers befindet sich der 13 Bit lange Packet Identifier (PID). Anhand diesem Wert und mitgeführten Listen im Transportstrom kann man Bestandteile des Elementarstroms identifizieren. 23 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.2 Datenstrom-Empfang In diesem Kapitel wird darauf eingegangen, welche Informationen der Empfänger für den Datenstrom-Empfang benötigt und welche Schritte durchgeführt werden müssen. Abb.4.1 zeigt eine Übersicht dieser Prozedur und die dafür nötigen Informationen in den Transportstrombestandteilen. Transportstromsynchronisation: Wenn beim Empfang der Transportstrom im Dekoder eintrifft, muss dieser sich zuerst auf die Paketstruktur aufsynchronisieren. Zunächst sucht der Dekoder die Sync-Bytes ( 0x47, 1.Byte) im Header der Transportstrompakete. Für die Synchronisation ist sowohl der konstante Abstand von 188 Byte, als auch der einheitliche Wert 0x47 wichtig. Da es jedoch nicht zu vermeiden ist, dass im Payloadanteil der Transportstrompakete ebenfalls der Wert 0x47 als Datenwort vorkommt, durchsucht der Dekoder beim Auffinden eines Sync-Bytes nmal den Bereich 188 Bytes davor und dahinter. Dies ist eine Art Absicherung, dass es sich tatsächlich um ein Sync-Byte handelt. Wenn 5 Transportstrompakete im Dekoder angekommen sind, erfolgt lt. MPEG deren Synchronisation. 24 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.2 Datenstrom-Empfang Auslesen des Transportstrom-Inhalts: Der Inhalt eines Transportstroms wird m.H. von mitgeführter Listen, die den Transportstromaufbau beschrieben, ausgelesen. Diese Listen nennt man „Program Specific Information“ (PSI), die wiederum aus Tabellen bestehen, die ab und zu im Payloadanteil mitgeführt werden. 4.2.1 Program Specific Information (PSI) Die PSI besteht insgesamt aus drei wichtigen Tabellen, nämlich der „Program Association Table“ (PAT), der „Program Map Table“ (PMT) und der „Conditional Access Table“ (CAT). Auf letztere wird in diesem Kapitel nicht weiter eingegangen, da diese in Kap. 5.2.3 „Zugriff auf verschlüsselte Programme“ ausreichend besprochen wird. Program Association Table (PAT): Transportstrompakete mit dieser Tabelle haben immer eine PID (Packet Identifier) mit dem Wert 0. Es gibt nur eine PAT pro Transportstrom, diese wird jedoch alle 0,5 s wiederholt. Indirekt enthält diese Tabelle Informationen über die Anzahl der Programme im Transportstrom, da der Payloadanteil Listen mit speziellen PID's enthält, die man als Zeiger auf Einträge in der „Program Map Table“ (PMT) bezeichnen kann. Diese PID's treffen deshalb eine Aussage über die Anzahl der Programme im Transportstrom, da jede PID genau einem Programm zugeordnet ist (Abb.4.2). Program Map Table (PMT): Für jedes Programm gibt es genau eine „Program Map Table“ (PMT) und ähnlich wie die PAT werden diese alle 0,5 s wiederholt. Die PID einer PMT wird durch die „Program Association Table“ (PAT) signalisiert und kann im Bereich von 0x20 bis 0x1FFE liegen. Diese Art von Tabelle besteht aus speziellen Transportstrompaketen. Der Payloadanteil enthält weiter PID's, die als Zeiger auf Video-, Audiooder Datenelementarströme fungieren (Abb.4.2). 25 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.2.1 Program Specific Information (PSI) Abb 4.2 - Quelle: Walter Fischer: Digitale Fernsehtechnik in Theorie und Praxis 26 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.2.2 Zugriff auf ein Programm Durch die Informationen aus der „Program Map Table“ (PMT) und der „Program Association Table“ (PAT) gibt es meistens zwei PID's pro Programm. Eine PID für das Video- und eine für das Audiosignal. Manchmal können es auch mehr PID's sein, wie z.B. bei einer Formel-1Übertragung. Dort hat man die Möglichkeit mehrere Sprachen oder Kameraperspektiven auszuwählen. Dadurch werden natürlich auch mehrere Video- und Audiosignale übertragen, welche wiederum jeweils eine eigene PID benötigen. Beim „Demultiplexing-Vorgang“ interessiert sich der Dekoder nur noch für Transportstrompakete mit diesen PID's, sammelt die entsprechenden vom Video- und Audiosignal auf und baut daraus die einzelnen PES-Pakete. Diese werden dann an den Dekoder weitergegeben und können dekodiert werden, wenn sie nicht verschlüsselt sind. 4.2.3 Zugriff auf ein verschlüsseltes Programm Verschlüsselung von Programmen wird meistens von Pay-TV-Anbietern angewendet, beispielsweise „Premiere“ oder „Arena“. Es werden entweder alle oder nur teilweise die Elementarströme durch einen Verschlüsselungscode geschützt. Diesen Vorgang der Verschlüsselung nennt man „Scrambling“. Hierbei muss drauf geachtet werden, dass nur Elementarströme und keine Transportstromheader oder Tabellen gescambled werden. Für den Empfang eines „gescrambleten“ Programms benötigt der Empfänger bestimmte Zusatzhardware, die mit Entschlüsselungs- und Berechtigungsdaten versorgt werden muss. Diese Daten werden über die „Program Specific Information“ (PSI) übermittelt, genauer in der „Conditional Access Table“ (CAT). Die „Conditional Access Table“ (CAT) liefert PID's für weiter Datenpakete im Transportstrom. In diesen Datenpaketen sind die benötigten Informationen für die Verschlüsselung enthalten. Es gibt zwei Arten von Verschlüsselungsinformationen. Die „Entitlement Control Massages“ (ECM), in welchen die Entschlüsselungscodes enthalten sind, und die „Entitlement Management Massages“ (EMM) mit Informationen für die Zugriffsrechte. Mit Hilfe dieser Informationen kann die Zusatzhardware die Elementarströme wieder entschlüsseln. 27 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.2.4 Programmsynchronisation Wenn die PID's für Video- und Audiosignal feststehen, evtl. verschlüsselte Programme entschlüsselt sind und der „DemultiplexingVorgang“ die Video und Audio-PES-Pakete erzeugt hat, werden diese an den Decoder zur Decodierung weitergegeben. Vor der eigentlichen Decodierung müssen aber noch wichtige Synchronisierungsschritte durchgeführt werden. Zuerst muss der Dekodertakt an den Encodertakt angebunden werden. Dies geschieht mit Hilfe eines 42-Bit-Zählers, der im Decoder- und im Encoderseite vorhanden sein muss. Diese beiden Zähler müssen vollkommen frequenzsynchron laufen. Um dies sicher zu stellen, enthält der Datenstrom sog. PCR-Werte („Program Clock Reference“), die eine Kopie des Zählers zu einem bestimmten Zeitpunkt darstellen. Um die Bestätigung für das synchrone Laufen der Zähler muss der Decoder die Werte nur auslesen und mit dem eigenen Zähler vergleichen. Die PCR-Information wird im Adaption Field vom entsprechenden Programm-Transportstrompaket mitegführt. Die PCR-PID befindet sich in der „Program Map Table“. Diese zeigt dann anhand dieser speziellen PID in welcher Art von Transportstrompaket die PCR-Information liegt. Jetzt muss nur noch die Synchronisation von Video- und Audiosignal verwirklicht werden, die sog. „Lippensynchronisation“. Dafür werden weiter Zeitinformationen benötigt, die sich im Header der PES-Pakete von Audio und Video befinden. Die Informationen werden ebenfalls vom 42-Bit-Zähler abgeleitet, man nennt sie „Presentation Time Stamps“ (PTS). Hier werden die 33 höherwertigen Bits in die entsprechenden PES-Header eingetragen und anhand dieser kann die „Lippensynchronisation“ verwirklicht werden. Als letzter Schritt muss noch die Bildreihenfolge korrigiert werden. Diese wird aufgrund von Speicherplatzersparnissen im Decoder bei der Codierung nach einer bestimmten Gesetzmäßigkeit verwürfelt. Um die Originalreihenfolge wieder zu erhalten, benötigt man weiter Zeitinformationen, welche ebenfalls im Header der Video-PES-Pakete eingebettet sind. Man nennt diese Informationen „Decoding Time Stamps“ (DTS). Anhand dieser Information kann der Decoder die Originalreihenfolge der Bilder auslesen. Damit ist die Programmsynchronisation abgeschlossen. 28 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.3 Private Sections und Private Tables Für Anbieter, die weitere Informationen übertragen möchten, die beispielsweise die Benutzerfreundlichkeit verbessern, wurde beim MPEG-2-Standard eine „offene Tür“ eingebaut. Neben der „Program Specific Information“ (PSI) gibt es noch zusätzliche Tabellen, die sog. „private Tables“. Diese Tabellen sind unterteilt in Sektoren, sog. „private Sections“. Für den Aufbau, das Aussehen und das Einbinden in den Transportstrom von Tables und Sections wurden spezielle Mechanismen definiert. 4.3.1 Standardisierung des Tabellenaufbaus Für Tabellen gelten folgende Regeln: Tabellen werden im Payloadanteil übertragen und mit einer speziellen PID versehen das erste Nutzbyte einer Tabell stellt die Table-ID dar, die sie eindeutig identifiziert alle Tabellen sind in 4 kByte große Sections unterteilt, die jeweils mit einer 32 Bit langen „CRC-Checksum“ abgeschlossen werden Dieses Standard gilt für alle Tabellen, die im MPEG-2-Datenstrom enthalten sind, auch für die Tabellen der „Program Specific Information“ (PSI). 29 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.3.2 Aufbau von Sections Wie im Standard definiert werden alle Tabellen über den Mechanismus der Sections realisiert. Hier muss man zwischen „privaten“ und „nichtprivaten Sections“ unterscheiden. Zu den nicht-privaten Sections zählen die in den Tabellen der „Program Secific Information“ (PSI) enthaltenen Sections. Alle anderen Sections sind folglicherweise privat. Die Informationen über die Sections einer Tabelle, wie z.B. die Anzahl, befinden sich im Header der entsprechenden Tabelle. Spezielle SectionInformationen wie z.B. die aktuelle Nr. einer Section sind im Header der Section wiederzufinden. Der Beginn einer Section wird im Transportstrom durch den „Payload Unit Start Indicator“ angezeigt. Ist dieser gesetzt, beginnt eine Section. Nach dem Header folgt der sog. „Pointer“. Dies ist ein Zeiger auf den tatsächlichen Beginn der Section. Er hat entweder den Wert „0“, was bedeutet, dass die Section unmittelbar beginnt oder einen von null abweichenden Wert, was anzeigt, dass noch Reste der vorangegangenen Section folgen werden. Durch diese Option kann man weiteren Speicherplatz im Transportstrom sparen. Für Sections gelten, wie auch für Tabellen, bestimmte Regeln: eine Section beginnt mit einer Table-ID, die den Tabellentyp identifiziert eine Section wird anhand eines Bits, dem sog. „Section-SyntaxIndicator“, in lange und kurze Sections unterteilt. Weist dieser den Wert „1“ auf, ist es eine lange Section, andernfalls eine kurze. bei einer langen Section folgt ein verlängerter Section-Kopf mit Versionsverwaltung, wodurch Änderungen z.B. bei dynamischer PMT signalisiert werden, Länge der Section und Nummer der vorangegangenen Section. Die Section wird mit einer 32 Bit „CRCChecksum“ abgeschlossen. 30 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.3.3 Praxisbeispiel anhand einer PMT 31 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.3.3 Praxisbeispiel anhand einer PMT Die Abbildung zeigt ein mit einem MPEG-2-Analyzer aufgenommenes Bild einer recht kurze „Program Map Table“ (PMT), die jetzt näher besprochen werden soll. Die PMT beginnt mit der „Table-ID“, die den Wert 0x02 aufweist, wodurch sie eindeutig als eine „Program Map Table“ identifiziert werden kann. Der gesetzte „Sections-Syntax-Indicator“ weist auf eine lange Section hin, also sind die „Versionsverwaltung“ und die „CRCChecksum“ enthalten. Das folgende Bit hat den Wert „0“ was die Tabelle als „nicht-private Tabelle“ definiert. Nun folgt die „Section length“, welche besagt, dass es sich hier um eine 23 Byte lange Section handelt. Der nächste Eintrag ist die „Program number“. Bei diesem Wert ist es wichtig, dass er mit dem Eintrag in der „Program Association Table“ (PAT) korrespondiert. Die nächsten beiden Einträge müssen ständig vom Receiver überprüft werden. Es handelt sich hierbei um die „Version number“ und den „Current/Next indicator“. Diese beiden Einträge geben Informationen über die Programmstruktur und ändern sich, falls sich die Programmstruktur ebenfalls ändert. Die nun folgende „Last section number“ informiert über die Nummer der letzten Section. In unserem Beispiel hat sie den Wert „0“, was soviel heißt, dass unsere PMT nur aus einer und zwar genau dieser Section besteht. Der PCR-PID („ Program Clock Reference-Packet Identifier“) enthält die PID, auf der der PCRWert im Transportstrom ausgestrahlt wird. Dies ist eine wichtige Information für die Synchronisierung. Anschließend würde normalerweise die „Program-Info-Loop“ folgen, jedoch sehen wir, dass der Eintrag in der „Program_info_length“ den Wert „0“ aufweist, was bedeutet, dass diese nicht vorhanden ist. Nun folgt die „Stream-Loop“, wo die Video- und Audio-PID's bekannt gemacht werden. Der Eintrag „Stream type“ gibt noch Information über den Typ der Nutzlast, in unserem Fall MPEG-2. 32 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.4 Service Information gemäß DVB (SI) Die europäische DVB(„Digital Video Broadcasting“)-Gruppe nutzt die „private Tables und Sections“ um weitere Informationen zu übertragen. Dies soll zur Benutzerfreundlichkeit an der Empfangsstelle beisteuern. Diese zusätzlichen Tabellen nennt man „Service Information“ (SI). Insgesamt gibt es 8 verschiedene Tabellen-Typen, auf die in den folgenden Kapiteln genauer eingegangen wird. 4.4.1 Network Information Table (NIT) Die „Network Information Table“ enthält die physikalischen Größen der Übertragung. Dadurch soll der Kanalsuchlauf optimiert werden, da diese Werte nicht extra zu suchen sind, sondern in der NIT leicht verfügbar sind. Folgende Größen werden in der NIT übermittelt: Übertragungsweg (Kabel, Satellit) Empfangsfrequenz Modulationsart Fehlerschutz Übertragungsparameter 4.4.2 Service Descriptor Table Die „Service Desriptor Table“ übermittelt genauere Informationen über die im Transportstrom enthaltenen Programme. So enthält sie die Bezeichnungen der verschiedenen Sender als Textinformationen parallel zu den „Program-PID's“ in der „Program Asociation Table“ (PAT), z.B. „ARD“, „ZDF“ oder „CNN“. Dies erfüllt den Sinn der „Service Information“ (SI) und erleichtert die Bedienung am Empfangsgerät. 33 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.4.3 Bouqet Association Table Die „Bouquet Association Table“ (BAT) ist nah mir der „Service Descriptor Table“ (SDT) verwandt. Der Unterschied liegt darin, dass die SDT nur einen einzigen physikalischen Kanal beschreibt und die BAT mehrere. Somit kann man die BAT als eine „kanalübergreifende Programmtabelle“ bezeichnen, die alle Kanäle zu einem Bündel (Bouquet) zusammenfasst. Die BAT ist in jedem Kanal vorhanden und verbindet diese dadurch. Der Sinn der BAT ist, dass sie eine Übersicht über ein Bouquet von Services gibt und Programmanbieter wie „Premiere“ beispielsweise ein ganzes Bündel von Kanälen für sich beanspruchen können um ihr komplettes Programmangebot zu übertragen. 4.4.4 Event Information Table (EIT) & Running Status Table (RST) Viele Anbieter übertragen zusätzlich sog. EPG's („Electronical Program Guides“). Die geplanten Startzeiten und Dauern aller Sendungen sind in der „Event Information Table“ (EIT) und können von den EPG's genutzt werden. Die Tabellenstruktur der EIT lässt zu, dass noch weitere Zusatzinformationen übertragen werden könne, jedoch wird dies nur von wenigen Receivern unterstützt und wird deshalb in der Praxis selten angewendet. Die „Running Status Table“ (RST) enthält Steuerinformationen für das gezielte Starten von Aufzeichnungsmedien, wie z.B. dem Videorekorder. Leider werden diese Tabellen kaum in der Praxis realisiert, da sich zur Steuerung der Aufzeichnungsmedien die Datenzeile der VPS(„Video Program System“) -Information durchgesetzt hat. 34 Proseminar „Ausgewählte Themen aus der Medientechnik“ 4.4.5 Die Time&Date Table (TDT) & Time Offset Table (TOT) In der „Time&Date Table“ (TDT) wird die Greenwich Mean Time (=GMT,UTC) übertragen. Die Sommerzeitverschiebung wird hier nicht beachtet. Die „Time Offset Table“ (TOT) übermittelt noch die entsprechenden Zeitoffsets der verschiedenen Zeitzonen. Das Maß der Auswertung beider Tabellen hängt vom jeweiligen Receiver ab, da zur vollständigen Unterstützung die Zeitinformationen des aktuellen Orts mitgeteilt werden müsste. 4.4.6 Stuffing Table Teilweise müssen bestimmte Tabellen im Transportstrom ungültig gemacht werden. Dies kann so aussehen, dass z.B. nach dem Empfang der „Network Information Table“ diese ausgetauscht wird oder ein bestimmtes Programm zur Weitersendung unbrauchbar gemacht wird. Dies wird mit Hilfe der „Stuffing Table“ (ST) vorgenommen. Der Sinn liegt darin, dass falls die Übertragung fehlerhaft ist oder vom Receiver nicht unterstützt wird, eine unzureichende Ausstrahlung verhindert wird. 35 Proseminar „Ausgewählte Themen aus der Medientechnik“ Quellenverzeichnis „Digitale Fernsehtechnik in Theorie und Praxis“ MPEG-Basiscodierung, DVB-, DAB-, ATSC-Übertragungstechnik, Messtechnik Fischer, Walter Springer Verlag, 2006 ISBN: 978-3-540-29203-6 de.wikipedia.org Suchbegriffe: Huffmann, MPEG-2, DCT, PCM ei.cs.vt.edu http://www.inf.fhflensburg.de/lang/algorithmen/code/huffman/huffman.htm http://graphics.cs.uni-sb.de/Courses/ws9900/cgseminar/Ausarbeitung/Bjoern.Stahmer/index.html 36