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

Documentos relacionados