-
ALLGEMEINER
STAND DER TECHNIK
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und ein Gerät zur Übermittlung
von Daten über
einen paketierten Datenstrom und insbesondere auf die Erkennung
und Korrektur von Fehlern in hochratigen isochronen Daten („Isodaten") in einem digitalen
Datenstrom. Ein derartiger Datenstrom kann zum Beispiel einen MPEG-2-
oder einen DigiCipher® II-Datenstrom beinhalten.
-
Für den Transport
digitaler Daten wie etwa digitaler Fernsehdaten haben sich verschiedene
Normen herausgebildet. Beispiele derartiger Normen umfassen die
als MPEG-2 bezeichnete Norm der Motion Picture Experts Group und
die der General Instrument Corporation aus Chicago, Illinois, USA,
dem Zessionär
der vorliegenden Erfindung, gehörende
DigiCipher II-Norm.
Die DigiCipher II-Norm ist der MPEG-2-Norm, die weithin bekannt
und als eine von der Internationalen Normenorganisation (ISO) im
Dokument ISO 13818 sanktionierte Vorgabe zur Video- und Audiokomprimierung
anerkannt ist, ähnlich
und umfasst verschiedene Aspekte von ihr. Zusätzlich zu den Video- und Audiokomprimierungsmerkmalen
enthält
die MPEG-2-Vorgabe auch eine System-„Schicht", die eine vom Übertragungsmedium unabhängige Codiertechnik
zum Formen von Bitströmen, die
ein oder mehrere MPEG-Programme
enthalten, bereitstellt. Die MPEG-Codiertechnik verwendet eine formale
Grammatik („Syntax") und einen Satz
semantischer Regeln zur Konstruktion von zu übertragenden Bitströmen. Die
Syntax und die semantischen Regeln umfassen Vorkehrungen für Multiplexierung,
Taktrückgewinnung,
Synchronisation und Fehlerresilienz. Für den Zweck dieser Offenbarung
wird jeder Datenstrom, der ähnlich
dem eines MPEG- 2-Transportstroms
codiert ist, als ein „MPEG-2-artiger
Transportstrom" bezeichnet. Ein
Beispiel, aber keinesfalls der einzige MPEG-2-artige Transportstrom,
ist ein Datenstrom, der gemäß der DigiCipher
II-Norm bereitgestellt ist. Es ist zu erwarten, dass in der Zukunft
andere derartige Normen veröffentlicht
werden.
-
Der
MPEG-2-Transportstrom ist mit Rücksicht
auf Übertragung
unter Konditionen, die Datenfehler erzeugen können, entworfen. MPEG-Transportpakete weisen
je eine feste Länge
von 188 Byte auf. Viele Programme, jedes mit unterschiedlichen Komponenten,
können
in einem Transportstrom kombiniert werden. Beispiele von Diensten,
die unter Verwendung des MPEG-Formats bereitgestellt werden können, sind
der Fernsehdienstrundfunk über
terrestrische Netze, Kabelfernseh- und Satellitennetze sowie interaktive
Dienste auf der Basis des Fernsprechwesens. Die Syntax und Semantik
des MPEG-2-Transportstroms
sind in der Internationalen Normenorganisation, ISO/IEC 13818-1,
Internationale Norm, 13. November 1994 mit dem Titel Generic Coding
of Moving Pictures and Associated Audio: Systems (generisches Codieren
bewegter Bilder und damit verbundener Tonfolgen: Systeme), Empfehlung
N.222.0, und ISO/IEC 13818-2, Internationale Norm, 1995 mit dem
Titel Generic Coding of Moving Pictures and Associated Audio: Video
(generisches Codieren bewegter Bilder und damit verbundener Tonfolgen:
Video), Empfehlung H.262, beide hier unter Verweis eingeschlossen, definiert.
-
Eine
Multiplexierung gemäß der MPEG-2-Norm
wird durch das Verpacken roher Elementarströme wie etwa codierten Videos
und Audios zu Paketen des paketierten Elementarstroms (PES), die
dann in Transportpakete eingefügt
werden, erzielt. Wie oben angemerkt, ist jedes MPEG-Transportpaket in
der Länge
auf 188 Byte festgelegt. Das erste Byte ist ein Synchronisationsbyte
mit einem einzigartigen Acht-Bit-Muster, z. B. 01000111. Das Synchronisationsbyte
zeigt den Anfang jedes Transportpakets an.
-
Auf
das Synchronisationsbyte folgt ein Präfix aus drei Byte, das einen
Transportpaket-Fehleranzeiger aus einem Bit, einen Nutzlasteinheits-Startanzeiger aus
einem Bit, einen Transportprioritätsanzeiger aus einem Bit, eine
Paketkennung (PID = Packet Identifier) aus 13 Bit, eine Transportverwürflungs-Steuerung
aus zwei Bit, eine Anpassungsfeldsteuerung aus zwei Bit und einen
Kontinuitätszähler aus
vier Bit umfasst. Die Verwendung des Synchronisationsbyte und des
Präfixes
aus drei Byte lässt
bis zu 184 Byte Nutzlast übrig, welche
die zu übermittelnden
Daten tragen. Ein wahlfreies Anpassungsfeld kann auf das Präfix folgen,
um sowohl auf MPEG bezogene als auch private Informationen zu tragen,
die für
einen gegebenen Transportstrom oder den Elementarstrom, der in einem
gegebenen Transportpaket getragen wird, von Bedeutung sind. Vorkehrungen
für eine
Taktrückgewinnung
wie etwa eine Programmtaktreferenz (PCR = Program Clock Reference)
und Spleißsteuerung
sind typisch für
die Informationen, die in dem Anpassungsfeld getragen werden. Indem
derartige Informationen in ein Anpassungsfeld gesetzt werden, werden
sie mit ihren zugehörigen
Daten eingekapselt, um erneute Multiplexier- und Netzverkehrslenkungsabläufe zu erleichtern.
Wenn ein Anpassungsfeld verwendet wird, ist die Nutzlast entsprechend
kürzer.
-
Die
PCR ist eine Zählung,
die den Wert des Systemzeittaktes (STC = System Time Clock) für das zugehörige Programm
für den
Zeitpunkt widerspiegelt, zu dem der PCR-Wert in den Transportstrom
eingefügt wurde.
Der Decodierer verwendet die PCR, um einen Decodiererzeittakt mit
dem Codierersystemtakt zu synchronisieren. Die unteren neun Bits
der 42-Bit-PCR stellen einen Modulo-300-Zähler bereit, der mit einer
Taktrate von 27 MHz (der „Systemtaktrate") inkrementiert wird.
Bei jedem Modulo-300-Durchlauf wird die Zählung in den oberen 33 Bit
so inkrementiert, dass die oberen Bits Zählungen repräsentieren,
die mit einer Rate von 90 kHz auftreten. Das ermöglicht, dass Präsentationszeitstempel
(PTS = Presentation Time Stamp) und Decodierzeitstempel (DTS = Decoding
Time Stamp) unter Verwendung des 90-kHz-Wertes verglichen werden können. Da
jedes Programm oder jeder Dienst, das/der vom Datenstrom getragen
wird, seine eigene PCR haben kann, können die Programme und Dienste
asynchron gemultiplext werden.
-
Die
Synchronisation von Audio, Video und Daten innerhalb eines Programms
wird unter Verwendung eines Zeitstempelansatzes erzielt. Präsentationszeitstempel
und Decodierzeitstempel werden in den Transportstrom für die separaten
Video- und Audiopakete eingefügt.
Die PTS- und DTS-Informationen werden vom Decodierer verwendet,
um zu ermitteln, wann ein Bild zu decodieren und anzuzeigen und
wann ein Audiosegment zu spielen ist. Wie oben angedeutet, sind
die PTS- und DTS-Werte an denselben Takt gebunden, der durch die
PCR aufgestellt wurde, sie sind jedoch durch die MPEG-2-Norm auf
eine zeitliche Auflösung
von 11,1 Mikrosekunden beschränkt.
Diese Auflösung
ist durch die PTS-Auflösung
des 90-kHz-Taktens beschränkt,
das durch die oberen 33 Bit der PCR bereitgestellt wird. Diese Einschränkung schließt den Transport
von verallgemeinerten "hochratigen" Daten aus, die gegenüber Zeitablauffehlern
robust sind, z. B. Datenraten, die sich nicht ganzzahlig auf 90
Kilobitls beziehen, wobei derselbe Ansatz verwendet wird, der in
einem normalen MPEG-2-artigen Transportstrom für Video- und Audio-Informationen bereitgestellt
ist.
-
MPEG-2-Daten
wie etwa komprimierte Video- und Audio-Daten müssen zu einem paketierten Elementarstrom
(PES) formatiert werden, der aus einer Folge von PES-Paketen gebildet
wird. Jedes PES-Paket umfasst einen PES-Kopf, auf den eine Nutzlast
folgt. Dann werden die PES-Pakete in Nutzlasten von aufeinander folgenden
Transportpaketen fester Länge
aufgeteilt.
-
Im
Allgemeinen weisen PES-Pakete eine variable Länge auf und sind relativ lang.
Verschiedene wahlfreie Felder, wie etwa die Präsentationszeitstempel und Decodierzeitstempel,
können
auf den PES-Kopf
folgen. Wenn die Transportpakete aus dem PES gebildet werden, werden
die PES-Köpfe
mit den Transportpaketköpfen
abgeglichen. Ein einzelnes PES-Paket kann sich über viele Transportpakete erstrecken,
und die Unterabschnitte des PES-Pakets müssen in nacheinander folgenden
Transportpaketen mit demselben PID-Wert erscheinen. Es sollte sich
jedoch verstehen, dass diese Transportpakete mit anderen Transportpaketen,
die verschiedene PID aufweisen und Daten von unterschiedlichen Elementarströmen tragen,
beliebig verzahnt werden können.
-
Videodienste
werden getragen, indem codierte MPEG-Videoströme in PES-Pakete gesetzt werden, die
dann zum Einfügen
in einen Transportstrom in Transportpakete aufgeteilt werden. Jedes
Video-PES-Paket enthält das gesamte
oder einen Teil eines codierten Videobilds, das als „Video-Präsentationseinheit" bezeichnet wird.
PTS- und DTS-Daten werden in einen PES-Paket-Kopf gesetzt, der die
zugehörige
Präsentationseinheit
einkapselt. Der DTS zeigt an, wann der Decodierer die Präsentationseinheit
decodieren sollte. Der PTS wird dazu verwendet, den Decodierer einzuschalten,
um die zugehörige
Präsentationseinheit
zu präsentieren (z.
B. „anzuzeigen").
-
Audiodienste
werden gemäß der MPEG-Norm
unter Verwendung derselben Vorgabe der PES-Paketschicht bereitgestellt.
PTS-Daten sind an einige Pakete angehängt, die Audio-Rahmengrenzen
umfassen.
-
Derartige
Grenzen werden durch Audio-Synchronisationswörter (Sync-Wörter)
definiert. Ein Audio-Rahmen ist als die Daten zwischen zwei nacheinander
folgenden Audio-Sync-Wörtern
definiert.
-
Um
von den Video- und Audio-Informationen, die in einem MPEG-2-artigen
(z. B. MPEG-2 oder DigiCipher II) Transportstrom getragen werden,
ein Fernsehsignal zu rekonstruieren, wird ein Decodierer benötigt, um
die Video-Pakete für
die Ausgabe an einen Video-Dekompressions-Prozessor (VDP) und die
Audio-Pakete für
die Ausgabe an einen Audio-Dekompressions-Prozessor
(ADP) zu verarbeiten. Es ist auch möglich, andere Datentypen in
einem derartigen Transportstrom zu übertragen. Zum Beispiel können private
Daten zur Bereitstellung von Diensten wie etwa Teletext, Börsenkursen
und anderen Informationen als separate Transportpakete, die aus
einem separaten paketierten Elementarstrom abgeleitet werden, getragen
werden. Asynchrone Datenpipes können
auch unterstützt
werden; eine derartige Pipe würde
eine Ausgabe vom Typ RS-232 von dem Decodierer mit der entsprechenden
Eingabe an einen Codierer repräsentieren.
Derartige Informationsdienst-Transportpakete
würden
mit den MPEG-Video- und Audio-Paketen in einem endgültigen,
z. B. über
Satellit oder Kabel übertragenen
Multiplex gemultiplext.
-
Es
wäre vorteilhaft,
unter Verwendung eines MPEG-2-artigen Formats auch „isochrone" Daten zu tragen.
Isochrone Daten sind hochratige Daten, die an den Flanken eines
regelmäßigen Takts
bereitgestellt werden und sich von bündelförmigen „synchronen" Daten unterscheiden,
welche mit einem unregelmäßigen Takt ankommen
können.
Somit tragen isochrone Daten eine Jitter-Spezifikation, und der
Takt kann mit einer einfachen Phasenregelschleife (PLL = Phase Lock
Loop) wiederhergestellt werden. Im Allgemeinen werden bei einer
isochronen Datenkomponente Datenbits im Wesentlichen in regelmäßigen Raten
mit einem begleitenden Takt präsentiert.
Eine Abweichung von der regelmäßigen (isochronen)
Rate würde
von der Jitter-Spezifikation definiert. Derartige Daten können für eine beliebige
Anzahl eines großen
Bereichs von „Daten-Pipe"-Anwendungen verwendet
werden. Ein Beispiel ist der Transport des Inhalts eines digitalen
T1 (d. h. Telefondatenleitung)-Datenstroms. Derartige Datenströme arbeiten
mit 1,554 Megabits. Ohne darauf beschränkt zu sein, umfassen andere
Anwendungen betriebliche Netzwerkdaten, allgemeine Hochgeschwindigkeits-Datenübermittlungen
und praktisch jeden beliebigen anderen Datendienst, der Datenübertragungsraten
mit konstanter Verzögerung
benötigt,
die jene allgemein vorhandenen unter Verwendung asynchroner Übermittlungstechniken übertreffen
oder für
variable Verzögerung
nicht geeignet sind. Diese Anwendungen sind durch eine allgemeine Intoleranz
gegenüber „Bitschlupf" gekennzeichnet.
Das heißt,
dass Fehler toleriert werden, dass aber eine Resynchronisation,
die eine Nettoversetzung des Bitstroms involviert, große Ausfälle bei
der endgültigen
Datensynchronisation verursacht.
-
Bei
der MPEG-2-Norm können
die Präsentationszeitstempel
die Präsentationseinheitsfälle (d.
h. aus 8 Bit bestehende Datenbyte, die dem Decodierer „präsentiert" werden) nur mit
einer Auflösung
von 11,1 Mikrosekunden anzeigen. Diese Einschränkung ergibt sich aus der 90-kHz-Rate,
die durch die oberen Bits der PCR-Zählung bestimmt wird, welche
zur Erstellung der Präsentationszeitstempel
verwendet wird. Bei isochronen Hochgeschwindigkeits-Daten ist es
möglicherweise
nötig,
die Präsentationseinheitszeiten
mit einer höheren
Auflösung
aufzulösen,
insbesondere zum Zweck der Fehlerkorrektur. Spezifisch besteht die
Notwendigkeit, in der Lage zu sein, Präsentationseinheiten zeitlich
unzweideutig zu präsentieren,
um kontinuierlich variable Raten zu unterstützen. Es wäre daher ein Vorteil, die zeitliche
Auflösung
der Präsentationszeitstempel
gegenüber
derjenigen zu erhöhen,
die durch eine normale MPEG-2-Umsetzung bereitgestellt wird. Es
wäre beispielsweise
vorteilhaft, ein Schema für
die Erhöhung
der PTS-zeitlichen Auflösung
bereitzustellen, um den robusten Transport isochroner Daten oder
dergleichen bei Raten von bis zu 9,0 Megabits oder mehr zu ermöglichen.
-
Es
wäre weiterhin
vorteilhaft, ein Schema zur Vereinfachung eines Datenempfängers bereitzustellen, um
die geeigneten Taktraten bereitzustellen, die auf einer Systemtaktfrequenz
basieren, um Daten von einem Datenstrom zurückzugewinnen. Insbesondere
wäre es
vorteilhaft, ein Schema bereitzustellen, bei dem der Empfänger in
der Lage wäre,
einen Takt mit jeder beliebigen gewünschten Informationsdatenrate,
z. B. von 19,2 Kilobits bis 9 Megabits, zur Verwendung bei der Ausgabe
isochroner Informationsdaten über
direkte digitale Synthese (DDS), bereitzustellen.
-
Es
wäre darüber hinaus
vorteilhaft, ein Verfahren und ein Gerät zur Verwaltung der unvermeidlichen Fehler
bereitzustellen, die bei der Übertragung
isochroner Daten über
einen paketierten Transportstrom auftreten. Insbesondere wäre es wünschenswert,
die Synchronisation eintreffender Isodaten trotz des Auftretens von
Fehlern und während
der Zeit, in der die Fehlerkorrektur abläuft, aufrechtzuerhalten. Weiterhin
fließen
Isodaten typischerweise durch einen Puffer in einen Decodierer,
der die Isodaten aus dem Übertragungsstrom zurückgewinnt.
Es wäre
vorteilhaft zu gewährleisten,
dass der Puffer während
der Fehlerkorrektur gefüllt
bleibt, um das Versagen des Datenrückgewinnungsvorgangs aufgrund
eines Pufferüberlaufs
oder -unterlaufs zu vermeiden.
-
Nachdem
Daten aufgrund von Fehlern verlorengegangen sind, wäre es vorteilhaft,
einen Mechanismus zu haben, um den Zeitablauf, mit dem die erfolgreich
zurückgewonnenen
Isodaten als Ausgabe vom Isodaten-Decodierer präsentiert werden, zu prüfen und
wiederherzustellen und um durch verlorene Daten verursachte Zeitablauffehler
zu absorbieren. Verbesserte Verfahren zum Erkennen des Auftretens
verlorener Daten wären
ebenfalls wünschenswert.
Zusätzliche
Vorkehrungen zur Sicherstellung der Wiederaufnahme der Datenpräsentation
zur richtigen Ausgabezeit wären
ebenfalls vorteilhaft. Darüber
hinaus wäre
es vorteilhaft, ein Schema zur Überwindung
von Unsicherheiten im Inhalt von Datenpaketen für den Fall, dass die Pakete
verschlüsselte
Daten enthalten, nachdem deren Entschlüsselung schon beendet sein
sollte, bereitzustellen.
-
Ein
Audio-/Video-Decodiersystem ist in EP-A-0668700 beschrieben. Ein
Gerät zum
Ausschneiden (und Wiedereinfügen)
spezifischer Daten aus einem komprimierten Videodatenstrom zur Reduktion
seiner Übertragungsbandbreite
ist in US-A-5371547 beschrieben.
-
Die
vorliegende Erfindung wird in den Ansprüchen dargelegt, worauf hier
hingewiesen wird. Sie stellt Verfahren und Geräte zum Erkennen und Korrigieren
von Fehlern bei der Verarbeitung von Isodaten an einem Decodierer
bereit, wobei diese Verfahren und Geräte die zuvor erwähnten und
andere Vorteile genießen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß der vorliegenden
Erfindung wird ein Verfahren zum Verwalten von Fehlern in isochronen
Daten bereitgestellt, die in Bündeln
von einem paketierten Datenstrom empfangen werden, der in Isodaten-Transportpaketen
fester Länge
Isodaten-Präsentationseinheiten
trägt.
Jedes der Transportpakete umfasst eine Paketkennung (PID). Mindestens
einige der Pakete enthalten einen Präsentationszeitstempel (PTS),
der anzeigt, zu welchem Zeitpunkt die Präsentation fester Rate von Isodaten-Präsentationseinheiten
vom einem Puffer, in dem sie nach dem Empfang vorübergehend
gespeichert wurden, begonnen werden soll. Der Datenstrom wird überwacht,
um PID zu erkennen, welche die Isodaten-Transportpakete identifizieren. Die
durch die PID identifizierten Isodaten-Transportpakete werden überwacht,
um Isodaten-PTS zu lokalisieren. Die Präsentation der Präsentationseinheiten
von dem Puffer wird mit einem Systemzeittakt (STC) synchronisiert,
wobei Zeitinformationen verwendet werden, die von den lokalisierten
Isodaten-PTS abgeleitet werden. Diskontinuitätsfehler werden zwischen aufeinander
folgenden Isodaten-Transportpaketen
identifiziert, und falls eine Diskontinuität von nicht mehr als einem
Paket identifiziert wird, wird ein Schreibzeiger des Puffers um
eine angemessene Anzahl von Bits vorwärts bewegt, um die Diskontinuität zu kompensieren,
während
die Synchronisation der Präsentation
mit Bezug auf den STC aufrechterhalten wird.
-
Erste
und zweite PTS-Zeiger sind bereitgestellt, wobei jeder einen unterschiedlichen
PTS-Wert und eine Adresse des Puffers aufrechterhält, um zu
identifizieren, wo eine von dem PTS-Wert bezeichnete Präsentationseinheit
gespeichert ist. Die Synchronisation der Präsentation wird aufrechterhalten,
indem (i) der PTS-Wert und die Adresse für einen der PTS-Zeiger durch
einen neuen PTS-Wert und eine neue Adresse ersetzt werden, nachdem
Daten, die an der zu dem ersetzten Wert zugehörigen Adresse gespeichert sind,
von dem Puffer präsentiert
worden sind, und indem (ii), wenn die neue Adresse erreicht ist,
die Präsentation
der Daten von dem Puffer angehalten wird, falls der STC nicht gleich
einer Präsentationszeit
ist, die von dem neuen PTS-Wert abgeleitet wurde, und indem (iii),
falls die Präsentation
angehalten wurde, die Präsentation
der Daten von dem Puffer wiederaufgenommen wird, wenn der STC die
Präsentationszeit
erreicht, die von dem neuen PTS-Wert abgeleitet wurde.
-
Im
Verlauf der Zeit können
neue PTS-Werte von den Isodaten- Transportpaketen
empfangen werden. In einer derartigen Ausführungsform wird ermittelt,
ob beide PTS-Zeiger PTS-Werte enthalten, die noch nicht dazu verwendet
worden sind, Daten von dem Puffer zu präsentieren, wenn ein neuer PTS-Wert
empfangen wird. Wenn ja, werden der PTS-Wert und die zugehörige Adresse
in dem zuletzt aktualisierten PTS-Zeiger durch den neuen PTS-Wert
und die neue Adresse ersetzt, wodurch der älteste nicht verwendete PTS-Wert
und die Adresse zur Verwendung beim Synchronisieren der Präsentation
der Präsentationseinheiten
von dem Puffer aufrechterhalten werden.
-
In
einer anderen Ausführungsform
wird ein PTS-Zeiger bereitgestellt, um einen gegenwärtigen PTS-Wert
sowie eine Adresse des Puffers aufrechtzuerhalten, die identifiziert,
wo eine Präsentationseinheit, auf
die durch den aktuellen PTS-Wert verwiesen wird, gespeichert ist.
Die Synchronisation der Präsentation wird
durch die folgenden weiteren Schritte aufrechterhalten: (i) Ersetzen
des PTS-Wertes in dem PTS-Zeiger durch einen neuen gegenwärtigen PTS-Wert,
nachdem an der Adresse gespeicherte Daten von dem Puffer präsentiert
worden sind, (ii) Ersetzen der Adresse in dem PTS-Zeiger durch eine
neue Adresse, die einer Präsentationseinheit
entspricht, die durch den neuen gegenwärtigen PTS-Wert bezeichnet wird, (iii) wenn die neue
Adresse erreicht ist, Anhalten der Präsentation von Daten von dem
Puffer, falls der STC nicht gleich einer Präsentationszeit ist, die von
dem neuen gegenwärtigen
PTS-Wert abgeleitet wurde, und (iv) falls die Präsentation angehalten worden
ist, Wiederaufnehmen der Präsentation
von Daten von dem Puffer, wenn der STC die Präsentationszeit erreicht, die
von dem neuen gegenwärtigen
PTS-Wert abgeleitet wurde.
-
Die
von dem paketierten Datenstrom getragenen Präsentationseinheiten können von
Paketen eines paketierten Elementarstroms (PES) geliefert werden,
die die Präsentationseinheiten
sowie Informationen tragen, welche die Länge jedes PES-Pakets anzeigen.
In einer derartigen Ausführungsform
wird ermittelt, ob sich eine Menge von Präsentationseinheitsdaten, die
tatsächlich
für ein
gegebenes PES-Paket empfangen worden sind, von der Menge von Daten
unterscheidet, die empfangen werden sollte, wie es durch die PES-Paketlängeninformationen
angezeigt wurde. Ein Fehler wird angezeigt, wenn die verglichenen
Mengen von Daten nicht übereinstimmen.
-
Wenn
ein derartiger Fehler auftritt, wird der PTS-Zeiger auf null gesetzt.
Die Präsentation
von Daten von dem Puffer wird auch vorübergehend blockiert, falls
zusätzliche
Präsentationseinheitsdaten
in der Abwesenheit eines neuen PES-Paketanzeigers weiter ankommen,
nachdem die PES-Paketlängeninformationen anzeigen,
dass für
das gegebene PES-Paket alle Daten bereitgestellt worden sind. Die
Präsentation
von Daten von dem Puffer wird auf der Basis eines neuen PTS-Werts,
der in dem PTS-Zeiger bereitgestellt ist, wiederaufgenommen, nachdem
der PTS-Zeiger auf null gesetzt wurde.
-
Eine
PTS-Erweiterung kann aus den identifizierten Isodaten-Transportpaketen
wiedergewonnen werden, um das Erhöhen der zeitlichen Auflösung zum
Präsentieren
von Isodaten-Präsentationseinheiten
zu ermöglichen.
In diesem Fall können
die Zeitinformationen ermittelt werden, indem mindestens der PTS
und die PTS-Erweiterung summiert werden. Die Zeitinformationen können alternativ
von der Summe aus dem PTS, der PTS-Erweiterung und einem PTS-Verschiebungswert,
der verwendet wird, um eine Zeitverzögerung bereitzustellen, abgeleitet
werden.
-
Die
Zeitinformationen können
mit dem STC verglichen werden, um zu ermitteln, ob es für die Präsentation
der Präsentationseinheiten
von dem Puffer zu früh,
zu spät
oder die richtige Zeit ist. Füllbits
werden als Ausgabe bereitgestellt, bis es Zeit ist, die Präsentationseinheiten
zu präsentieren,
falls der Vergleich ermittelt, dass es für die Präsentation der Präsentationseinheiten
zu früh
ist. Die Präsentation
der Präsentationseinheiten
von dem Puffer wird resynchronisiert, falls der Vergleichsschritt
ermittelt, dass es für
die Präsentation
der Präsentationseinheiten
zu spät
ist. Die Präsentationseinheiten
werden von dem Puffer präsentiert,
falls der Vergleichsschritt ermittelt, dass die Zeit für ihre Präsentation
richtig ist.
-
Die
Synchronisation der Präsentation
der Präsentationseinheiten
mit dem Systemzeittakt kann durchgeführt werden, indem der STC mit
den von den PTS abgeleiteten Zeitinformationen verglichen wird.
Füllbits können dann
als Ausgabe bereitgestellt werden, bis es Zeit ist, die Präsentationseinheiten
zu präsentieren, falls
der Vergleich ermittelt, dass es für die Präsentation der Präsentationseinheiten
zu früh
ist. Wie oben angedeutet, können
die Zeitinformationen die Summe von mindestens einem PTS und einer
PTS-Erweiterung beinhalten, welche das Erhöhen der zeitlichen Auflösung zum
Präsentieren
von Isodaten-Präsentationseinheiten
ermöglicht.
Die Füllbits
werden als Ausgabe bereitgestellt, bis eine von dem STC bezeichnete
Zeit gleich der Zeit ist, die von der Summe bezeichnet wird. Die
Zeitinformationen können
alternativ dazu die Summe aus dem PTS, der PTS-Erweiterung und einem
PTS-Verschiebungswert, der verwendet wird, um eine Zeitverzögerung bereitzustellen,
beinhalten.
-
Jede
Präsentationseinheit
kann eine ganzzahlige Anzahl N von Isodaten-Bits beinhalten. Eine N-Bit-Zählung wird
aufrechterhalten, die mit der Präsentation
einer ersten Präsentationseinheit
von dem Puffer korreliert. Füllbits
werden ständig
als Ausgabe bereitgestellt, nachdem der STC der von der Summe bezeichneten
Zeit gleich ist, bis die N-Bit-Zählung
anzeigt, dass es Zeit ist, mit der Präsentation einer neuen Präsentationseinheit
zu beginnen.
-
Die
von den PID identifizierten Isodaten-Transportpakete können überwacht
werden, um zu ermitteln, ob irgendwelche davon als verschlüsselt bezeichnet
sind, nachdem jedwede Verschlüsselung
schon entfernt worden sein sollte. Falls nur ein Einzelpaket als
verschlüsselt
bezeichnet ist, nachdem eine Verschlüsselung schon entfernt worden
sein sollte, wird ein Schreibzeiger des Puffers um eine angemessene
Anzahl von Bits vorwärts
bewegt, um das Einzelpaket zu ignorieren. Die Synchronisation der
Präsentation
wird während
dieser Prozedur mit Bezug auf den STC aufrechterhalten.
-
Ein
Decodierer ist zum Empfang und zum Verwalten von Fehlern in isochronen
Daten bereitgestellt, die in Bündeln
von einem paketierten Datenstrom, der Isodaten-Präsentationseinheiten
in Isodaten-Transportpaketen
fester Länge
trägt,
empfangen werden. Jedes der Transportpakete umfasst eine Paketkennung
(PID), und mindestens einige der Pakete enthalten einen Präsentationszeitstempel
(PTS), der anzeigt, zu welchem Zeitpunkt die Präsentation fester Rate von Isodaten-Präsentationseinheiten
von einem Puffer, in dem sie nach dem Empfang vorübergehend
gespeichert wurden, begonnen werden soll. Mittel zur Überwachung
des Datenstroms sind bereitgestellt, um PID zu erkennen, welche
die Isodaten-Transportpakete identifizieren. Es sind auch Mittel
zur Überwachung
der Isodaten-Transportpakete bereitgestellt, die durch die PID identifiziert
worden sind, um die Isodaten-PTS zu lokalisieren. Die Präsentation
der Präsentationseinheiten
von dem Puffer wird mit einem Systemzeittakt (STC) synchronisiert,
wobei Zeitinformationen verwendet werden, die von den lokalisierten
Isodaten-PTS abgeleitet werden. Zur Identifikation von Diskontinuitätsfehlern
zwischen aufeinander folgenden Isodaten-Transportpaketen sind Mittel
bereitgestellt, und falls eine Diskontinuität von nicht mehr als einem
Paket identifiziert wird, wird ein Schreibzeiger des Puffers um
eine angemessene Anzahl von Bits vorwärts bewegt, um die Diskontinuität zu kompensieren,
während
die Synchronisation der Präsentation
mit Bezug auf den STC aufrechterhalten wird.
-
Der
Decodierer kann auch die anderen Fehlerverwaltungs-Merkmale der
oben beschriebenen Verfahren inkorporieren.
-
Eine
vorteilhafte Ausführungsform
stellt ein Verfahren zum Verwalten von Fehlern in isochronen Daten („Isodaten"), die von einem
paketierten Datenstrom, der Isodaten-Präsentationseinheiten in Isodaten-Transportpaketen
fester Länge
trägt,
in Bündeln
empfangen werden, bereit, wobei jedes der Transportpakete eine Paketkennung
(PID) umfasst und wobei mindestens einige der Pakete einen Präsentationszeitstempel
(PTS) enthalten, der anzeigt, zu welchem Zeitpunkt die Präsentation
fester Rate von Isodaten-Präsentationseinheiten
von einem Puffer, in dem sie beim Empfangen vorübergehend gespeichert wurden,
aus begonnen werden soll, wobei das Verfahren die folgenden Schritte
beinhaltet:
Überwachen
des Datenstroms, um PID zu erkennen, welche die Isodaten-Transportpakete identifizieren;
Überwachen
der durch die PID identifizierten Isodaten-Transportpakete, um Isodaten-PTS
zu lokalisieren;
Synchronisieren der Präsentation der Präsentationseinheiten
von dem Puffer mit einem Systemzeittakt (STC), wobei Zeitinformationen
verwendet werden, die von den lokalisierten Isodaten-PTS abgeleitet
werden;
Identifizieren von Diskontinuitätsfehlern zwischen aufeinander
folgenden Isodaten-Transportpaketen, und falls eine Diskontinuität von nicht
mehr als einem Paket identifiziert wird, Vorwärtsbewegen eines Schreibzeigers des
Puffers um eine angemessene Anzahl von Bits, um die Diskontinuität zu kompensieren,
während
die Synchronisation der Präsentation
mit Bezug auf den STC aufrechterhalten wird.
-
Eine
andere vorteilhafte Ausführungsform
stellt ein Verfahren bereit, wobei ein erster und zweiter PTS-Zeiger
bereitgestellt sind, so dass jeder einen unterschiedlichen PTS-Wert
und eine Adresse des Puffers aufrechterhält, die identifiziert, wo eine
Präsentationseinheit,
die durch den PTS-Wert bezeichnet wird, gespeichert ist, wobei die
Synchronisation der Präsentation
durch folgende weitere Schritte aufrechterhalten wird:
Ersetzen
des PTS-Werts und der Adresse für
einen der PTS-Zeiger durch einen neuen PTS-Wert und eine neue Adresse,
nachdem in der Adresse, die dem ersetzten Wert zugehörig ist,
gespeicherte Daten von dem Puffer präsentiert wurden;
wenn
die neue Adresse erreicht ist, Anhalten der Präsentation von Daten von dem
Puffer, wenn der STC einer von dem neuen PTS-Wert abgeleiteten Präsentationszeit
nicht gleich ist; und
wenn die Präsentation angehalten wurde,
Wiederaufnehmen der Präsentation
von Daten von dem Puffer, wenn der STC die von dem neuen PTS-Wert
abgeleitete Präsentationszeit
erreicht.
-
Es
ist weiterhin vorteilhaft, wenn im Verlauf der Zeit neue PTS-Werte
von den Isodaten-Transportpakten empfangen werden, wobei das Verfahren
die folgenden weiteren Schritte beinhaltet:
Ermitteln, ob beide
PTS-Zeiger PTS-Werte enthalten, die noch nicht verwendet wurden,
um Daten von dem Puffer zu präsentieren,
wenn ein neuer PTS-Wert empfangen wird; und wenn ja,
Ersetzen
des PTS-Werts und der zugehörigen
Adresse in dem zuletzt aktualisierten PTS-Zeiger durch den neuen
PTS-Wert und die neue Adresse, wodurch der älteste nicht verwendete PTS-Wert
und die Adresse zur Verwendung beim Synchronisieren der Präsentation
der Präsentationseinheiten
von dem Puffer aufrechterhalten werden.
-
Eine
vorteilhafte Lösung
stellt einen PTS-Zeiger bereit, um einen gegenwärtigen PTS-Wert zusammen mit
einer Adresse des Puffers, die identifiziert, wo eine durch den
gegenwärtigen
PTS-Wert bezeichnete Präsentationseinheit
gespeichert ist, aufrechtzuerhalten, wobei die Synchronisation der
Präsentation
durch die folgenden weiteren Schritte aufrechterhalten wird:
Ersetzen
des PTS-Werts in dem PTS-Zeiger durch einen neuen gegenwärtigen PTS-Wert,
nachdem an der Adresse gespeicherte Daten von dem Puffer präsentiert
wurden;
Ersetzen der Adresse in dem PTS-Zeiger durch eine neue
Adresse, die einer Präsentationseinheit,
die durch den neuen gegenwärtigen
PTS-Wert bezeichnet wird, entspricht;
wenn die neue Adresse
erreicht ist, Anhalten der Präsentation
von Daten von dem Puffer, wenn der STC einer von dem neuen gegenwärtigen PTS-Wert abgeleiteten
Präsentationszeit
nicht gleich ist; und
wenn die Präsentation angehalten wurde,
Wiederaufnehmen der Präsentation
von Daten von dem Puffer, wenn der STC die von dem neuen gegenwärtigen PTS-Wert
abgeleitete Präsentationszeit
erreicht.
-
In
einer weiteren vorteilhaften Ausführungsform werden die von dem
paketierten Datenstrom getragenen Präsentationseinheiten von Paketen
eines paketierten Elementarstroms (PES) geliefert, die die Präsentationseinheiten
sowie Informationen tragen, welche die Länge der einzelnen PES-Pakete
anzeigen, wobei das Verfahren die folgenden weiteren Schritte beinhaltet:
Ermitteln,
ob sich eine Menge von tatsächlich
für ein
gegebenes PES-Paket
empfangener Präsentationseinheitsdaten
von einer Menge von Daten, die empfangen werden sollten, wie durch
die PES-Paketlängeninformationen
angezeigt, unterscheidet; und
Anzeigen eines Fehlers, wenn
die verglichenen Mengen von Daten nicht übereinstimmen.
-
Ein
anderes vorteilhaftes Verfahren beinhaltet die folgenden weiteren
Schritte:
Auf-null-Setzen des PTS-Zeigers und vorübergehendes
Blockieren der Präsentation
von Daten von dem Puffer in dem Fall, dass zusätzliche Präsentationseinheitsdaten in
der Abwesenheit eines neuen PES-Paketanzeigers
weiter ankommen, nachdem die PES-Paketlängeninformationen
anzeigen, dass alle Daten für
das gegebene PES-Paket bereitgestellt wurden; und
Wiederaufnehmen
der Präsentation
von Daten von dem Puffer auf der Basis eines neuen PTS-Werts, der
in dem PTS-Zeiger bereitgestellt ist, nachdem der PTS-Zeiger auf
null gesetzt wurde.
-
In
einer bevorzugten Lösung
werden ein erster und zweiter PTS-Zeiger bereitgestellt, so dass
Jeder einen unterschiedlichen PTS-Wert und eine Adresse des Puffers
aufrechterhält,
die identifiziert, wo eine Präsentationseinheit,
die durch den PTS-Wert bezeichnet wird, gespeichert ist, wenn neue
PTS-Werte im Verlauf der Zeit von den Isodaten-Transportpaketen
empfangen werden, wobei das Verfahren die folgenden weiteren Schritte
beinhaltet:
Ermitteln, ob beide der PTS-Zeiger PTS-Werte enthalten,
die noch nicht verwendet wurden, um Daten von dem Puffer zu präsentieren,
wenn ein neuer PTS-Wert empfangen wird, und wenn ja,
Ersetzen
des PTS-Werts und der zugehörigen
Adresse in dem zuletzt aktualisierten PTS-Zeiger durch den neuen
PTS-Wert und die neue Adresse, wodurch der älteste nicht verwendete PTS-Wert
und die Adresse zur Verwendung beim Synchronisieren der Präsentation
der Präsentationseinheiten
von dem Puffer aufrechterhalten werden;
Auf-null-Setzen beider
PTS-Zeiger und vorübergehendes
Blockieren der Präsentation
von Daten von dem Puffer in dem Fall, dass zusätzliche Präsentationseinheitsdaten in
der Abwesenheit eines neuen PES-Paketanzeigers
weiter ankommen, nachdem die PES-Paketlängeninformationen
anzeigen, dass alle Daten für
das gegebene PES-Paket bereitgestellt wurden; und
Wiederaufnehmen
der Präsentation
von Daten von dem Puffer auf der Basis eines neuen PTS-Werts, der
in einem der PTS-Zeiger bereitgestellt wird, nachdem die PTS-Zeiger
auf null gesetzt wurden.
-
Ein
bevorzugtes Verfahren ist bereitgestellt, wobei:
die Isodaten-Präsentationseinheiten,
die in den Isodaten-Transportpaketen
fester Länge
getragen werden, von Isodaten-Paketen des paketierten Elementarstroms
(PES) erhalten werden, und
die angemessene Anzahl von Bits
zum Vorwärtsbewegen
des Schreibzeigers als Reaktion auf eine Zählung von PES-Nutzbyte, die
aus den Isodaten-Transportpaketen wiedergewonnen werden, ermittelt
wird.
-
Eine
bevorzugte Ausführungsform
stellt ein Verfahren bereit, wobei die Isodaten-Transportpakete
fester Länge
je 188 Byte beinhalten, und:
wenn die Zählung anzeigt, dass mindestens
noch 184 Byte für
das gegenwärtige
PES-Paket zu empfangen sind, wird die Zählung um 184 dekrementiert
und der Schreibzeiger um 184 Byteadressen vorwärts bewegt;
wenn die Zählung anzeigt,
dass keine Byte mehr für
das gegenwärtige
PES-Paket zu empfangen sind, wird die Zählung auf den Wert einer vorherigen
PES-Paketlänge
eingestellt und dann um 178 dekrementiert, und der Schreibzeiger
wird um 164 Byteadressen vorwärts
bewegt; und
wenn die Zählung
anzeigt, dass N Byte, wobei 1 ≤ N ≤ 183, noch
für das
gegenwärtige
PES-Paket zu empfangen sind, wird die Zählung um N dekrementiert und
der Schreibzeiger um N Byteadressen vorwärts bewegt.
-
In
einem bevorzugten Verfahren zum Verwalten von Fehlern in isochronen
Daten („Isodaten"), die von einem
paketierten Datenstrom, der Isodaten-Präsentationseinheiten
in Isodaten-Transportpaketen fester Länge trägt, in Bündeln empfangen werden, umfasst
jedes der Transportpakete eine Paketkennung (PID), und mindestens
einige der Pakete enthalten einen Präsentationszeitstempel (PTS),
der anzeigt, zu welchem Zeitpunkt die Präsentation fester Rate von Isodaten-Präsentationseinheiten
von einem Puffer, in dem sie bei Empfang vorübergehend gespeichert werden,
aus angefangen werden soll, wobei das Verfahren die folgenden Schritte
beinhaltet:
Überwachen
des Datenstroms, um PID zu erkennen, welche die Isodaten-Transportpakete identifizieren;
Überwachen
der durch die PID identifizierten Isodaten-Transportpakete, um Isodaten-PTS
zu lokalisieren;
Synchronisieren der Präsentation der Präsentationseinheiten
von dem Puffer mit einem Systemzeittakt (STC), wobei Zeitinformationen
verwendet werden, die von den lokalisierten Isodaten-PTS abgeleitet
werden, wobei der Synchronisationsschritt den STC mit den von den
PTS abgeleiteten Zeitinformationen vergleicht; und
Bereitstellen
von Füllbits
als Ausgabe, bis es Zeit ist, die Präsentationseinheiten zu präsentieren,
falls der Vergleich ermittelt, dass es für die Präsentation der Präsentationseinheiten
zu früh
ist.
-
Ein
weiteres vorteilhaftes Verfahren beinhaltet die folgenden weiteren
Schritte:
Wiedergewinnen einer PTS-Erweiterung aus den identifizierten
Isodaten-Transportpaketen,
um das Erhöhen der
zeitlichen Auflösung
zum Präsentieren
von Isodaten-Präsentationseinheiten
zu ermöglichen;
und
Ableiten der Zeitinformationen durch das Summieren von
mindestens dem PTS und der PTS-Erweiterung.
-
In
einem bevorzugten Verfahren werden Zeitinformationen von der Summe
aus dem PTS, der PTS-Erweiterung und einem PTS-Verschiebungswert, der verwendet wird,
um eine Zeitverzögerung
bereitzustellen, abgeleitet.
-
Ein
weiteres bevorzugtes Verfahren beinhaltet die folgenden weiteren
Schritte:
Vergleichen der Zeitinformationen mit dem STC, um
zu ermitteln, ob es für
die Präsentation
der Präsentationseinheiten
von dem Puffer zu spät
oder die richtige Zeit ist;
Neusynchronieren der Präsentation
der Präsentationseinheiten
von dem Puffer, wenn der Vergleichsschritt ermittelt, dass es für die Präsentation
der Präsentationseinheiten
ansonsten zu spät
wäre; und
Präsentieren
der Präsentationseinheiten
von dem Puffer, wenn der Vergleichsschritt ermittelt, dass es für die Präsentation
der Präsentationseinheiten
die richtige Zeit ist.
-
In
einer vorteilhaften Ausführungsform
beinhalten die Zeitinformationen die Summe aus mindestens einem
PTS und einer PTS-Erweiterung, welche das Erhöhen der zeitlichen Auflösung zum
Präsentieren
von Isodaten-Präsentationseinheiten
ermöglicht;
und die Füllbits
werden als Ausgabe bereitgestellt, bis eine durch den STC bezeichnete
Zeit der Zeit, die durch die Summe bezeichnet wurde, gleich ist.
-
In
einer weiteren Ausführungsform
beinhalten die Zeitinformationen die Summe aus dem PTS, der PTS-Erweiterung
und einem PTS-Verschiebungswert,
der verwendet wird, um eine Zeitverzögerung bereitzustellen.
-
Gemäß einer
Ausführungsform
eines Verfahrens beinhaltet jede Präsentationseinheit eine ganzzahlige
Anzahl N von Isodaten-Bit, wobei das Verfahren die folgenden weiteren
Schritte beinhaltet:
Aufrechterhalten einer N-Bit-Zählung, die
mit der Präsentation
einer ersten Präsentationseinheit
von dem Puffer korreliert; und
kontinuierliches Bereitstellen
von Füllbits
als Ausgabe, nachdem der STC der Zeit, die durch die Summe bezeichnet
wird, gleich ist, bis die N-Bit-Zählung anzeigt,
dass es Zeit ist, die Präsentation
einer neuen Präsentationseinheit
zu beginnen.
-
Eine
bevorzugte Ausführungsform
eines Verfahrens zum Verwalten von Fehlern in isochronen Daten („Isodaten"), die von einem
paketierten Datenstrom, der Isodaten-Präsentationseinheiten in Isodaten-Transportpaketen
fester Länge
trägt,
in Bündeln
empfangen werden, jedes der Transportpakete umfasst eine Paketkennung
(PID), und mindestens einige der Pakete enthalten einen Präsentationszeitstempel
(PTS), der anzeigt, zu welchem Zeitpunkt die Präsentation fester Rate von Isodaten-Präsentationseinheiten
von einem Puffer, in dem sie bei Empfang vorübergehend gespeichert wurden,
aus angefangen werden soll, wobei das Verfahren die folgenden Schritte
beinhaltet:
Überwachen
des Datenstroms, um PID zu erkennen, welche die Isodaten-Transportpakete identifizieren;
Überwachen
der durch die PID identifizierten Isodaten-Transportpakete, um Isodaten-PTS
zu lokalisieren;
Synchronisieren der Präsentation der Präsentationseinheiten
von dem Puffer mit einem Systemzeittakt (STC), wobei Zeitinformationen
verwendet werden, die von den lokalisierten Isodaten-PTS abgeleitet
werden, wobei der Synchronisationsschritt den STC mit den von den
PTS abgeleiteten Zeitinformationen vergleicht;
Überwachen
der durch die PID identifizierten Isodaten-Transportpakete, um zu
ermitteln, ob irgendwelche von ihnen als verschlüsselt bezeichnet sind, nachdem
jegliche Verschlüsselungen
entfernt worden sein sollten; und
wenn nur ein Einzelpaket
als verschlüsselt
bezeichnet ist, nachdem jegliche Verschlüsselungen entfernt worden sein
sollten, Vorwärtsbewegen
eines Schreibzeiger des Puffers um eine angemessene Anzahl von Bits, um
das Einzelpaket zu ignorieren, während
die Synchronisation der Präsentation
mit Bezug auf den STC aufrechterhalten wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine schematische Darstellung, die zeigt, wie Elementarstromdaten
in Transportpakete verpackt werden;
-
2 stellt
die in 1 bezeichneten PES- und isochronen Datenköpfe detaillierter
dar;
-
3 ist
ein Blockschaltbild eines Codierergeräts zur Zusammenstellung der
in 1 bezeichneten Transportpakete;
-
4 ist
ein Blockschaltbild eines Decodierergeräts zur Rückgewinnung der isochronen
Daten, die von den Transportpaketen getragen werden;
-
5 ist
ein Blockschaltbild, in dem Teile aus 4 detaillierter
gezeigt werden; und
-
6 ist
ein Zustandsdiagramm, das die Erfassung und die Verfolgung isochroner
Daten gemäß der vorliegenden
Erfindung darstellt.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
1 ist
eine schematische Darstellung, die zeigt, wie unterschiedliche,
digitale Dienstkomponenten zu einem Strom von Transportpaketen gemultiplext
werden können.
Multiplexierung wird erzielt, indem rohe Elementarströme wie etwa
codiertes Video und Audio und codierte Daten in PES-Pakete verpackt
und dann in Transportpakete eingekapselt werden. Die Figur ist nur
zur Illustration gedacht, da ein PES-Paket wie etwa das dargestellte
Paket 12 aus mehr oder weniger als den sieben dargestellten
Transportpaketen 22a–22g bestehen
kann.
-
In
dem Beispiel aus 1 beinhaltet ein Elementarstrom,
der allgemein mit 10 bezeichnet ist, einen seriellen Strom
von Datenbits wie etwa die gezeigten isochronen Daten. Es sollte
sich verstehen, dass andere Datentypen in dem Elementarstrom zur Übertragung
gemäß der vorliegenden
Erfindung bereitgestellt werden können. Ähnliche Elementarströme werden
für komprimierte
Video- und Audiodaten gemäß der MPEG-2-Transportnorm
bereitgestellt.
-
Der
erste Schritt bei der Bildung eines Transportpaketstroms besteht
darin, den Elementarstrom für jeden
Datentyp in einen entsprechenden paketierten Elementarstrom (PES)
einzukapseln, der aus aufeinander folgenden PES-Paketen wie etwa
dem dargestellten Paket 12 gebildet ist. Jedes PES-Paket
enthält
einen PES-Kopf 14, gefolgt von einer PES-Nutzlast, die eine
ganzzahlige Anzahl von Präsentationseinheiten
(PU = Presentation Unit) 18 enthält. Die Nutzlast beinhaltet
die endgültigen
Informationen, die von einer Übertragungsstelle
zur Rückgewinnung
auf einer Empfangsstelle übermittelt
werden sollen. Der PES-Kopf 14 enthält Informationen, die bei der
Verarbeitung der Nutzdaten nützlich
sind, wie etwa den Präsentationszeitstempel (PTS)
gemäß der MPEG-2-Systemspezifikation.
-
Gemäß der vorliegenden
Erfindung folgt auf den PES-Kopf 14 ein isochroner Datenkopf
(ISO-Kopf) 16 als Teil der PES-Paket-Nutzlast. Die Präsentationseinheiten 18 der
Nutzlast folgen auf den ISO-Kopf 16. Der ISO-Kopf wird
unten detaillierter beschrieben.
-
Der
Kopf und die Nutzdaten jedes PES-Pakets sind in individuelle Transportpakete 22, 24, 26 fester Länge geteilt,
wobei jedes einen Transportkopf 30 und Nutzdaten 36 enthält. Die
Nutzdaten jedes Transportpakets enthalten einen Teil der Nutzdaten
(d. h. Präsentationseinheiten 18)
des entsprechenden PES-Pakets 12 und können auch den PES-Kopf 14 und
ISO-Kopf 16 enthalten, wie bei 22a dargestellt.
Transportpaket 22d ist ein weiteres isochrones Datentransportpaket
in dem Transportpaket-Multiplex 20. Dieses Transportpaket umfasst
einen Transportkopf 30 sowie eine Nutzlast 36.
Die Nutzlast umfasst keinen PES-Kopf oder ISO-Kopf, weil dieses
Transportpaket aus Nutzdaten abgeleitet ist, die dem PES-Kopf und
dem ISO-Kopf in dem PES-Paket nachfolgen. Mit anderen Worten, da
es pro PES-Paket nur einen PES-Kopf und einen ISO-Kopf gibt, enthält nur das
erste von jenem PES-Paket abgeleitete Transportpaket den PES-Kopf
und ISO-Kopf. Die Nutzlastsegmente der verbleibenden, von dem PES-Paket
abgeleiteten Transportpakete enthalten nur Teile der eigentlichen
Informationsdaten, die übertragen
werden sollen.
-
Gemäß der MPEG-2-Systemspezifikation
enthalten die Transportpaketköpfe 30 die
Programmkennung (PID), die jeden Transportpaketstrom, wie etwa einen
isochronen Datenpaketstrom, einen Videopaketstrom oder einen Audiopaketstrom,
von anderen Paketströmen
unterscheidet. In 1 ist nur die Ableitung des
isochronen Datentransportpakets 22 gezeigt. Um Videopakete 24 und
Audiopakete 26 abzuleiten, sind entsprechende Elementarströme (nicht
gezeigt) bereitgestellt, die in PES-Pakete und Transportpakete im
Wesentlichen auf dieselbe Weise eingekapselt sind, wie in 1 mit
Bezug auf die Bildung der isochronen Datenpakete 22 dargestellt
ist, mit der Ausnahme, dass der isochrone Datenkopf 16 der
vorliegenden Erfindung nicht in den Video- oder Audio-Transportpaketen
bereitgestellt ist.
-
Jedes
MPEG-Transportpaket enthält
188 Datenbyte, die aus dem Transportkopf 30 von mindestens vier
Byte und den Nutzdaten 36, die bis zu 184 Byte sein können, gebildet
sind. Gemäß der MPEG-2-Systemspezifikation
kann ein Anpassungsfeld von z. B. acht Byte zwischen dem Transportkopf 30 und
der Nutzlast 36 bereitgestellt werden. Das Anpassungsfeld
variabler Länge
kann zum Beispiel die Programmtaktreferenz (PCR) enthalten, die
zur Synchronisation des Systemzeittaktes des Decodierers verwendet
wird.
-
Die
Vielzahl von isochronen Datenpaketen 22a, 22b, 22c ... 22g ...,
sowie anderer Pakete 24a–f ... und 26a–f ... wird,
wie in 1 dargestellt, gemultiplext, um den Transportstrom 20 zu
bilden, der über
den Übertragungskanal
von dem Codierer zum Decodierer übermittelt
wird. Es ist der Zweck des Decodierers, die unterschiedlichen Arten
von Transportpaketen aus dem Transportstrom auf der Basis der PID
der individuellen Pakete zu demultiplexen und dann die isochronen
Daten, Audio- und Videokomponenten je selektiv zu verarbeiten, um
sie beim Rekonstruieren eines Fernsehsignals und der Rückgewinnung
eines Datenstroms, der durch die isochronen Daten repräsentiert
wird, zu verwenden.
-
2 stellt
den PES-Kopf 14 und ISO-Kopf 16 detaillierter
dar. Der PES-Kopf 14 umfasst
verschiedene Längen-
und Strukturinformationen 50 gemäß der MPEG-2-Systemspezifikation.
Ein wahlfreies PTS-Feld 52 kann auf die Längen- und
Strukturinformationen 50 folgen. Falls ein PTS bereitgestellt
ist, ist in dem ISO-Kopf 16 eine PTS-Erweiterung als Gegenstück bereitgestellt.
Wie in 2 dargestellt, ist die PTS-Erweiterung 54 vorzugsweise
am Anfang des ISO-Kopfes 16 bereitgestellt, so dass sie
unmittelbar auf den PTS 52 in dem PES-Kopf folgt. Die vorliegende
Erfindung ist jedoch nicht darauf beschränkt, die PTS-Erweiterung am Anfang
des ISO-Kopfes bereitzustellen. Die PTS-Erweiterung kann an anderer Stelle in
dem ISO-Kopf bereitgestellt werden, solange sie am Decodierer erkannt
werden kann, damit sie zum Anhängen
an den PTS verwendet werden kann, um die zeitliche Auflösung zur
Präsentation
der isochronen Daten an der Ausgabe des Decodierers zu erweitern.
Indem beispielsweise zusätzliche
acht Bits in der PTS-Erweiterung
bereitgestellt werden, die zu den dreiunddreißig Bits addiert werden müssen, welche
in dem in der Vorgabe des MPEG-Systems vorgeschriebenen PTS bereitgestellt
sind, kann die normale MPEG-2-Auflösung von
11,1 Mikrosekunden zur unzweideutigen Ermittlung der korrekten Startzeit
für die
Präsentationseinheit
auf 74 Nanosekunden erweitert werden, wobei auf die Startzeit von
einem erweiterten isochronen Daten-PTS verwiesen wird.
-
Der
ISO-Kopf umfasst auch verschiedene Raten-, Längen- und Inkrementinformationen 56.
Insbesondere umfassen die Raten-, Längen- und Inkrementinformationen einen Datenratenmerker,
ein isochrones Datenkopf-Längenfeld
und ein Inkrementfeld, das ein Verhältnis der Informationsdatenrate
(z. B. der isochronen Datenrate) gegenüber einer Systemtaktfrequenz
festlegt. Dieser Taktinkrementierwert ermöglicht einen direkten, digitalen
Synthesetakt an einem Decodierer, um ein Taktsignal mit der Informationsdatenrate,
zur Verwendung bei der Ausgabe von Informationsdaten, die von einem
Datentransportstrom gemäß der vorliegenden
Erfindung getragen werden, bereitzustellen.
-
In
einer bevorzugten Ausführungsform
der Erfindung ist jede isochrone Daten-Präsentationseinheit 18 (1)
sechzehn Bit lang, d. h. ein Wort aus zwei Acht-Bit-Byte. Die isochronen
Daten werden mit der PES-Syntax abgeglichen, wobei das erste Byte
des isochronen Datenkopfes unmittelbar auf das letzte Byte des PES-Kopfes
folgt. Auch werden die isochronen Daten-Präsentationseinheiten mit der
PES-Syntax abgeglichen, wobei das erste Byte der ersten Präsentationseinheit
in einem gegebenen PES-Paket unmittelbar auf das letzte Byte des
isochronen Datenkopfes folgt. Isochrone Daten-Präsentationseinheiten werden
mit Transportpaket-Nutzlasten so abgeglichen, dass das erste Nutzbyte
eines isochronen Datentransportpakets das erste Byte einer isochronen
Daten-Präsentationseinheit
ist (nach beliebigen Anpassungs-, PES-Kopf- und isochronen Datenkopf-Feldern).
Das letzte Byte eines isochronen Datentransportpakets ist das letzte
Byte einer isochronen Daten-Präsentationseinheit.
-
Die
Syntax isochroner Daten gemäß der vorliegenden
Erfindung ist unten beschrieben, wobei die formale Grammatik verwendet
wird, die von der MPEG-2-Systemspezifikation benutzt wird. Die MPEG-Grammatik
ist eine der C-Sprache ähnliche
Syntax und ist ein Verfahren, das Bitfolgen, die eine kontinuierliche
und möglicherweise
eine variable Rate aufweisen, beschreibt, anstatt ein prozedurales
Programm und seine Funktionen vorzuschreiben, wie in der Computersprache
C. Die erste Spalte der Syntax enthält das Syntaxelement. Die zweite
Spalte gibt die Länge
des Syntaxelements in Bit an, und die dritte Spalte identifiziert
den Syntaxtyp. Die Typen sind bslbf (bit sequence left-most bit
first = zuerst das am weitesten links stehende Bit der Bitfolge) und
uimsbf (unsigned integer most significant bit first = zuerst das
höchstwertige
Bit einer vorzeichenlosen Ganzzahl). Die Schreibweise „isochronous_data_header()
{...}" zeigt an,
dass die Syntaxelemente innerhalb der geschweiften Klammern eine
benannte Gruppe sind und an anderer Stelle in der Syntax aufgerufen
werden können,
indem einfach die Bezeichnung „isochronous_data_header()" verwendet wird.
Ein bedingtes Auftreten von Bit-Strukturen kann mit den gewöhnlichen „wenn"-Tests angezeigt
werden. Die üblichen,
in der C-Sprache wohl bekannten Vergleichsoperatoren sind auch verfügbar. Schleifenstrukturen
sind möglich
und verwenden die Standard-C-Schleifensyntax. Die Syntaxtabelle
wird von einer Semantikgruppe begleitet, wobei für jedes vorher undefinierte
Syntaxfeld Definitionen bereitgestellt und ihrer Verwendung Einschränkungen
auferlegt werden. Die folgende isochrone Datenbitstrom-Syntax und
Bitstrom-Semantik stellen eine bevorzugte Ausführungsform der vorliegenden
Erfindung dar: Isochrone Datensequenz:
- 1 isochrone_Datensequenz
- 2 Isochroner_Datenkopf
- 3 Isochrone_Datenpräsentationseinheit
-
Isochroner Datenkopf:
-
Um
jede isochrone Datensequenz auf eine gerade Anzahl von Byte einzuschränken, ist
vorgeschrieben, dass das letzte reservierte Feld in dem isochronen
Datenkopf eine gerade Anzahl von Byte sein muss. Die Syntax für isochrone
Datenköpfe
ist:
- 4 Daten_Raten_Merker
- 5 reserviert
- 6 isochrone_Daten_Kopf_Länge
- 7 Inkrement
-
Semantik des isochronen
Datenbitstroms:
-
Isochrone Datensequenz:
-
- Isochronous_data_presentation_unit (isochrone_Daten_Präsentations_Einheit)
-- Eine 16-Bit-Präsentationseinheit
isochroner Daten, wobei das erste (linke) Bit vor dem zweiten Bit
präsentiert
(ausgegeben) wird, usw.
-
Isochroner Datenkopf:
-
- pts_ext8 -- Ein 8-Bit-Feld, das den PTS erweitert, der in
dem PES-Kopf dieses PES befördert
wird. Dieses Feld ist die 8 höchstwertigen
Bits der 9-Bit-PCR-Erweiterung,
die in der MPEG-2-Systemspezifikation definiert ist, und wird gemäß der vorliegenden
Erfindung dazu verwendet, die zeitliche Auflösung von isochronen Daten-PTS
von der Auflösung
von 11,1 Mikrosekunden (90 kHz) gemäß der MPEG-2-Systemspezifikation
auf 74 Nanosekunden (13,5 MHz) zu erweitern, zur unzweideutigen
Ermittlung der korrekten Startzeit für die Präsentationseinheit, wobei auf
die Startzeit von einem isochronen Daten-PTS verwiesen wird.
- data_rate_flag (Daten_Raten_Merker) -- Ein Ein-Bit-Merker, der
anzeigt, dass ein Inkrementfeld in dem isochronen Datenkopf vorliegt,
wenn er auf „1" gestellt ist.
- isochronous_data_header_length (isochrone_Daten_Kopf Länge) --
Ein 4-Bit-Feld,
das die Anzahl Wörter
(16 Bits) des isochronen Datenkopfes anzeigt, die auf dieses Feld
folgen, einschließlich
der reservierten Wörter (Einheiten
von 16 Bits zwingen den isochronen Datenkopf dazu, eine gerade Anzahl
von Byte zu haben, was es in Verbindung mit isochronen Daten-Präsentationseinheiten,
Anpassungsfeldern und PES-Kopf, die jeweils auch eine gerade Anzahl
von Byte haben, ermöglicht,
dass isochrone Datentransportpakete ohne Auffüllbyte und damit mit einer
höheren
Effektivität
erzeugt werden können).
- increment (Inkrement) -- Ein 28-Bit-Feld, das den isochronen
Datentaktinkrement-Wert anzeigt und einen Wert annimmt, der das
genaue Verhältnis
der isochronen Datenrate zu einem phasensynchronisierten Referenztakt beschreibt,
z. B. einer 27-MHz-Referenz
nach MPEG-2. In einer bevorzugten Ausführungsform ist das Inkrement:
Inkrement
= NINT(isochrone Datenrate* 536,868,000/nominal_system_clock_frequency);
wobei:
nominal_system_clock_frequency
(nominale_System_Takt_Frequenz) von MPEG als 27 MHz vorgeschrieben ist
und „NINT" die „am nächsten liegende
ganze Zahl" bedeutet.
Wie oben erwähnt,
erlaubt MPEG eine 30-PPM-Variabilität in Bezug
auf die nominale Systemtaktfrequenz.
- reserved (reserviert) -- Ein n-Bit-Feld reservierter Wörter, für die der
Decodierer keinen bestimmten Wert annimmt.
-
Das
Blockschaltbild aus 3 stellt einen möglichen
Codierer zur Umsetzung der vorliegenden Erfindung dar. Isochrone
Daten (z. B. vom Elementarstrom 10 – 1) werden über die
Datenstation 60 in eine Kopfeinfügestufe 62 eingegeben,
welche die Daten einfügt,
die für
die Zusammenstellung des ISO-Kopfes 16 benötigt werden.
Diese Daten werden beispielsweise von einem nicht gezeigten System-Mikroprozessor
erhalten. Die Isodaten mit dem einfügten ISO-Kopf werden von einer
PES-Paketierstufe 66 empfangen,
welche den PES-Kopf 14 einfügt, der aus PES-Kopfdaten zusammengestellt
worden ist, die über
die Datenstation 68 eingegeben wurden. Wie bei den ISO-Kopfdaten
lassen sich die PES-Kopfdaten
von einem System-Mikroprozessor oder einer anderen Datenquelle erhalten,
wie auf dem Stand der Technik wohl bekannt ist.
-
Ein
isochrones Datentaktsignal wird über
die Datenstation 65 in eine Phasenregelschleife (PLL =
Phase Lock Loop) 67 des Codierers aus 3 eingegeben.
Die PLL kann z. B. einen 27-MHz-Oszillator und eine DDS- Schaltung beinhalten,
um sich an das Eingabetaktsignal anzukoppeln, wobei sie den wie
oben berechneten, am nächsten
liegenden Inkrementwert verwendet. PCR-Werte werden dann von einem
PCR-Generator 69 erzeugt.
Die PCR-Werte werden als Transportanpassungsdaten in einen Transportpaket-Paketierer 70 eingegeben,
der unten detaillierter beschrieben ist.
-
Nachdem
der ISO-Kopf und der PES-Kopf in den Elementarstrom isochroner Daten
eingefügt
worden sind, werden die nachfolgenden, über die Datenstation 60 eingegebenen
Nutzdaten segmentiert, um den Köpfen
in Form von Präsentationseinheiten 18 fester
Länge zu
folgen. Das Ergebnis ist eine Aufeinanderfolge von PES-Paketen 12,
die von dem PES-Paketierer 66 an
die Transportpaket-Paketierstufe 70 ausgegeben werden.
An diesem Punkt werden Daten, die zum Zusammenstellen des Transportkopfes
benötigt
werden, über die
Datenstation 72 auf eine herkömmlichen Weise empfangen und
zu einem Transportkopf zusammengestellt, an den als Gegenstück Nutzdaten
angehängt
werden. Die Nutzdaten beinhalten den nächsten Teil von Daten (d. h.
PES-Kopfdaten, ISO-Kopfdaten
und/oder Präsentationseinheiten)
aus dem (den) gegenwärtigen PES-Paket(en).
Die Ausgabe des Paketierers 70 ist eine Serie isochroner
Datentransportpakete 22, die jeweils einen Transportkopf
und eine Nutzlast beinhalten und die als Teil der Nutzlast Informationen
bezüglich PES-Köpfen und
isochronen Datenköpfen
umfassen können.
-
Die
isochronen Datentransportpakete vom Paketierer 70 können mit
komprimierten Audiopaketen und Videopaketen, die über Datenstation 76 bzw. 78 in
einen Multiplexer 74 eingegeben werden, gemultiplext werden.
Die Audio- und Videopakete werden gemäß der MPEG-2-Systemspezifikation
bereitgestellt, wie auf dem Stand der Technik wohl bekannt ist.
Der Multiplexer 74 stellt die Transportpakete zu einem Transportpaketstrom 20 zusammen
(wie in 1 gezeigt). Der Transportpaketstrom
wird in einem herkömmlichen
Modulator 80 moduliert und über einen herkömmlichen
Sender 82 über
Satellit, Kabel oder einen anderen bekannten Übertragungskanal übertragen.
-
4 stellt
einen Empfänger
(„Decodierer") für den Übertragungsmultiplex
dar, der vom Codierer aus 3 ausgegeben
wird. Der Übertragungsmultiplex
wird über
die Datenstation 90 in einen Empfänger 92 eingegeben
und in einem herkömmlichen
Demodulator 94 demoduliert. Ein Demultiplexer 96 gewinnt
die Audiopakete, Videopakete und isochronen Datenpakete aus dem
demodulierten Transportdatenstrom zurück. Die isochronen Datenpakete
werden in einen Kopfprozessor 98 eingegeben, der einen
herkömmlichen
Mikroprozessor beinhalten kann, der dazu programmiert ist, den PES-Kopf und den ISO-Kopf
aus dem isochronen Datenpaketstrom zurückzugewinnen. Der PTS wird
in einer PTS-Herausnahmestufe 102 aus dem PES-Kopf herausgenommen.
Die PTS-Erweiterung wird durch eine PTS-Erweiterungs-Herausnahmestufe 104 aus
dem ISO-Kopf herausgenommen. Der PTS und die PTS-Erweiterung werden
in einem Kombinator 106 kombiniert, um die isochronen Daten-PTS
bereitzustellen, die es ermöglichen,
die hochratigen, isochronen Daten zeitlich genau zu präsentieren.
Ein PTS-Decodierer 108 nimmt die Zeitinformationen aus
den erweiterten, isochronen Daten-PTS heraus, die von dem Kombinator 106 ausgegeben
werden. Diese Zeitinformationen werden in einen isochronen Datenextraktor 110 eingegeben,
der auch die isochronen Datenpakete aus dem Demultiplexer 96 empfängt. System-Zeitinformationen
aus dem Kopfprozessor 98 ermöglichen es den Herausnahmestufen 102, 104,
dem PTS-Decodierer 108 und dem isochronen Datenextraktor 110,
die jeder Stufe präsentierten
Daten richtig zu lokalisieren und zu verarbeiten. Der Isodaten-Extraktor 110 reagiert
auf die PTS aus dem PTS-Decodierer 108, um die individuellen
isochronen Daten-Präsentationseinheiten
(die zurückgewonnenen „Isodaten") zur geeigneten
Zeit zu präsentieren.
Die präsentierten
Isodaten werden zur Verwendung bei der Bereitstellung eines gewünschten
Dienstes, der auf den in den Daten verkörperten Informationen basiert,
von dem Isodaten-Extraktor 110 ausgegeben.
-
Der
Decodierer aus 4 umfasst auch einen DDS-Taktgeber 100,
der verwendet wird, um eine Vielzahl von Referenztaktraten bereitzustellen,
die vom Kopfprozessor und/oder anderen Komponenten des Decodierers
verwendet werden. Die vom Kopfprozessor 98 ausgegebene
Systemzeitsteuerung basiert auf einer oder mehreren Referenztaktraten,
die von dem DDS-Taktgeber bereitgestellt werden. Diese Referenztaktraten basieren
auf einer Systemtaktfrequenz, zum Beispiel der gemäß der MPEG-2-Systemspezifikation
dargelegten Systemtaktfrequenz von 27 MHz. Um PCR zu verarbeiten
und dabei die Systemtaktfrequenz zur Verwendung durch die DDS zu
erzeugen, umfasst der Decodierer einen PCR-Syntaxanalysator 97,
der die PCR-Werte aus den isochronen Datentransportpaketen herausnimmt.
Die herausgenommenen PCR-Werte werden verwendet, um eine Phasenregelschleife 99,
die den Systemtakt (z. B. 27 MHz) erzeugt, fest einzukoppeln. Der Systemtakt
wird in den DDS-Taktgeber 100 zur Verwendung beim Erzeugen
der oben beschriebenen Referenztaktraten eingegeben.
-
Um
den Decodierer zu vereinfachen, ist ein Takt-„Inkrement" in dem isochronen Datenkopf bereitgestellt,
um das Verhältnis
der isochronen Datenrate zur Systemtaktfrequenz anzugeben. Dieses
Inkrement wird vom Kopfprozessor 98 zurückgewonnen und in den DDS-Taktgeber 100 eingegeben,
der das Inkrement dazu verwendet, ein Taktsignal mit der isochronen
Datenrate zur Verwendung bei der Präsentation der isochronen Daten
bereitzustellen.
-
Die
Bereitstellung eines Taktinkrements in dem isochronen Datenkopf
umgeht die Notwendigkeit, dass der Decodierer dieses Inkrement selbst
ausrechnen müsste.
In herkömmlichen
Systemen, die einen direkten, digitalen Synthesetakt verwenden,
empfängt
der Decodierer einen benötigten
Taktfrequenzanzeiger mit den Daten, die zurückzugewinnen sind. Der Taktfrequenzanzeiger
schreibt die tatsächliche
Taktfrequenz vor, die durch den DDS-Taktgeber zu synthetisieren
ist. Da der DDS-Taktgeber einen bestehenden Systemtakt skaliert, um
verschiedene feste Taktfrequenzen zu produzieren, müssen herkömmliche
Decodierer zunächst
das Verhältnis
der gewünschten
Taktfrequenz zur Systemtaktfrequenz ermitteln, wovon dann die gewünschte Taktfrequenz
abzuleiten ist. Die Verarbeitungs-Hardware, die notwendig ist, um
diese Funktion auszuführen,
führt beim
Decodierer zu höheren
Kosten und größerer Komplexität.
-
Bei
digitalen Fernsehdecodierern müssen
die Kosten so niedrig wie möglich
gehalten werden, da für jedes
der potentiell Millionen von Fernsehgeräten im Bereich ein separater
Decodierer erforderlich ist. Durch Versehen des Decodierers mit
einem Inkrement, das von dem DDS-Taktgeber
direkt benutzt werden kann, um die gewünschte Taktfrequenz zu erzeugen,
werden die Kosten und die Komplexität des Empfängers verringert. Bei dem System
der vorliegenden Erfindung wird die Berechnung des Inkrements, das
zum Bereitstellen der gewünschten
Frequenz nötig
ist, zentral am Codierer ausgeführt,
der die Millionen von Decodierern im Bereich bedient. Daher brauchen
die Decodierer diese Berechnung nicht auszuführen.
-
5 stellt
den Kombinator 106, PTS-Decodierer 108 und Isodaten-Extraktor 110 aus 4 detaillierter
dar. Isodaten-Pakete, die in einem eintreffenden Datenstrom an ihren
PID erkannt werden, werden über eine
Datenstation 112 in einen Kopfprozessor 98 und
einen Kopfabstreifer 150 eingegeben. Der Kopfabstreifer 150 ist
ein Teil des Isodaten-Extraktors 110 und streift die Transport-,
PES- und Isodaten-Köpfe
von den empfangenen Paketen ab, so dass nur die Präsentationseinheiten
(PU) als Ausgabe an ein FIFO-Register 152 bereitgestellt
werden. Das FIFO 152 puffert die PU gemäß der Erfindung, so dass richtige
Synchronisation und Fehlerkorrektur erzielt werden können. Das
FIFO kann umgesetzt werden, indem eine Serie von FIFOs verwendet
wird, wie etwa ein Vor-DRAM-FIFO, ein DRAM-FIFO und ein Nach-DRAM-FIFO.
In einer derartigen Umsetzung werden Verweise auf eine Ablese aus
dem Isodaten-FIFO hierin auf das letzte verwendete FIFO verweisen,
z. B. ein Nach-DRAM-FIFO. Ein Lesezeiger 154 und ein Schreibzeiger 156 sind
bereitgestellt, um das Schreiben von Daten auf und das Lesen von
Daten aus dem FIFO 152 zu steuern. Der Schreibzeiger 156 ist über Datenstation 182 mit
einem FIFO-Takt
synchronisiert. Eine detaillierte Beschreibung der Pufferarbeitsweise
ist unten in Verbindung mit der Beschreibung von 6 bereitgestellt.
-
Die
Präsentationseinheiten
aus dem FIFO 152 werden als Ausgabe für eine Präsentationseinheits-Synchronisationsschaltung 158 bereitgestellt.
Diese Schaltung synchronisiert die Präsentationseinheits-Daten mit
dem Systemzeittakt (STC) 162. Ein Datentakt 160,
der mit der festen Rate läuft,
mit der die Isodaten schließlich
ausgegeben werden, ist an die Präsentationseinheits-Synchronisationsschaltung 158 und an
einen Präsentationseinheitszähler 164 gekoppelt.
Diese Anordnung wird verwendet, um sicherzustellen, dass die Präsentation
von Isodaten aus dem FIFO mit dem ersten Bit einer Präsentationseinheit
beginnt. Die aus dem FIFO präsentierten
Daten werden in einen Füllbit-Multiplexer
(MUX) 166 eingegeben, der dazu verwendet wird, wenn nötig Füllbits bereitzustellen,
um Fehler zu korrigieren, die im Eingabedatenstrom auftreten. Die
Ausgabe des Füllbit-Multiplexers 166 beinhaltet
die zurückgewonnenen
Isodaten, die anstelle von fehlerhaften oder fehlenden Daten Füllbits umfassen
können.
-
Die
Präsentationseinheits-Synchronisationsschaltung 158 empfängt auch
notwendige Zeiger-Werte und die korrekte Präsentationszeit vom PTS-Decodierer 108.
In 5 sind die Funktionen des PTS-Decodierers 108 mit
den Funktionen des Kombinators 106 zusammengefasst. Wie
oben in Verbindung mit 4 bemerkt, stellt der Kombinator 106 die
isochronen Daten-PTS bereit, die es ermöglichen, die hochratigen isochronen
Daten zeitlich genau zu präsentieren.
-
Die
Schaltungen 106 und 108 beinhalten einen PES-Längenzähler 170 und
eine PES-Längenvergleichs-Schaltung,
um zu ermitteln, ob die Länge
jedes empfangenen PES-Pakets mit der für das Paket in dem entsprechenden
PES-Kopf bezeichneten Länge übereinstimmt.
Der von dem PES-Kopf herausgenommene PES-Längenwert wird von dem Kopfprozessor 98 an
die PES-Längenvergleichs-Schaltung 172 weitergeleitet. Der
PES-Längenzähler 170 empfängt den
FIFO-Takt über
Datenstation 184 und ermittelt die Länge jedes empfangenen PES,
indem er die darin enthaltenen Byte zählt, ein Byte pro FIFO-Taktzyklus.
Der PES-Längenzähler 170 empfängt Informationen
vom Kopfprozessor 98, die den Anfang jedes neuen PES-Pakets
bezeichnen, und liefert dann seinerseits über die Leitung 175 die
für jedes
PES-Paket gezählte
Länge an
die PES-Längenvergleichs-Schaltung 172.
Falls die gezählte
Länge nicht
mit der in dem PES-Kopf angezeigten PES-Länge übereinstimmt, wird ein PES-Längen-Fehlermerker
erzeugt. Andere Fehlermerker, die von dem Kopfprozessor 98 erzeugt
werden, umfassen einen Fehlermerker für ein verschlüsseltes
Paket und einen Diskontinuitätsmerker.
Ein isochroner Daten-Mikroprozessor (nicht gezeigt) empfängt die
verschiedenen Fehlermerker und stellt Steuerungssignale für eine Reaktion
auf die Fehlerkonditionen bereit. Diese Fehlermerker werden unten
detaillierter diskutiert.
-
Die
Funktion, den PTS und die PTS-Erweiterung zu kombinieren, wird von einem
PTS-Zeigerverwalter 174 bereitgestellt. PTS und PTS-Erweiterungen
werden in gewissen Isodaten-Köpfen
getragen, die durch den Kopfprozessor 98 erkannt werden,
der diese Werte an den Zeigerverwalter weitergibt. Der Zeigerverwalter speichert
die PTS- und PTS-Erweiterungswerte
in neue bzw. alte Zeiger-Register 176, 178. Der
kombinierte älteste
Wert wird an einen Präsentationszeit-Rechner 180 zur
Verwendung beim Berechnen des Zeitpunkts ausgegeben, zu dem die
Präsentation
von Isodaten-Präsentationseinheiten
aus dem Isodaten-Extraktor 110 begonnen
werden soll. Der Schreibzeiger 156 hält den Zeigerverwalter über die
zuletzt geschriebene FIFO-Adresse auf dem Laufenden, so dass der
Zeigerverwalter den FIFO-Adressenwert jedes PTS-Zeigers liefern
kann.
-
Ein
PTS-Verschiebungswert wird dem Präsentationszeit-Rechner 180 über eine
Datenstation 186 bereitgestellt. Dieser Verschiebungswert
stellt jede beliebige Zeitverzögerung
bereit, die notwendig ist, um korrigierbare Transport-Zeitablauffehler
zu absorbieren. Insbesondere ermöglicht
es diese Verschiebung dem FIFO, ausreichend Daten zu sammeln, um
einen kontinuierlichen Datenstrom auszugeben, trotz des in der MPEG-Vorgabe
erlaubten STC-Fehlers und des Übergangsverhaltens
eines Decodierers bei STC-Abtastschleifen, und ermöglicht es
dem FIFO, eine Datenmenge anzusammeln, die nötig ist, um den Verlust eines Pakets
ohne Unterlauf zu überstehen.
-
Es
soll nun das Zustandsdiagramm von 6 betrachtet
werden, in dem das Verarbeiten von Isodaten bei 120 beginnt,
wenn das System rückgestellt
wird. Der Isodaten-Ausgabemodus hat drei Zustände, und die Isodaten-PID wird
bei der Rückstellung
auf ungültig
gesetzt. Dann beginnt eine Anlaufsequenz, während der die Isodaten-PID
auf die PID der Isodaten-Dienstkomponente programmiert wird, bevor
die Isodaten-PID. auf gültig
gesetzt wird. Wenn an die Isodaten-PID geschrieben wird, wird das
Isodaten-FIFO 152 geräumt
und beide PTS-Zeiger 176 und 178 werden auf null
gesetzt. Das FIFO kann geräumt
werden, indem die Lese- und Schreibzeiger 154, 156 einfach
auf dieselbe Adresse gesetzt sowie alle Vor- und Nach-FIFOs auf
null gesetzt werden. Ein PTS-Zeiger kann auf null gesetzt werden,
indem sein Im-Einsatz-Merker einfach rückgestellt wird. Wenn die Isodaten-PID
auf gültig
gesetzt ist, wird der Isodaten-Ausgabemodus
auf muted_clock_and_data (gedämpfter_Takt_und_Daten)
gesetzt und die Erfassung beginnt. Falls die Isodaten-PID in den
ungültigen
Zustand zurückgeht,
wird der Isodaten-Ausgabemodus auf muted_clock_and_data gesetzt
(falls er sich nicht schon in diesem Zustand befindet) und die Anlaufsequenz
wird wiederaufgenommen. Falls der Isodaten-Ausgabemodus auf muted_data
(gedämpfte_Daten)
gesetzt ist, wird das Verarbeiten der Isodaten wie normal fortgesetzt,
und eine Rückkehr
zum Anlaufzustand findet nicht unbedingt statt.
-
Der
Erfassungszustand beginnt bei 124, indem Isodaten-Transportpakete
auf der Isodaten-PID empfangen werden und auf ein Paket mit seinem
gesetzten payload_unit_start_indicator (Nutzlast_Einheits_Start_Anzeiger)
gewartet wird (was anzeigt, dass ein PES mit dem ersten Byte der
Nutzlast des Pakets beginnt). Der Isodaten-Kopf wird analysiert, um einen data_rate_flag
zu finden, der gesetzt ist, und um den Datentakt-Inkrementwert,
falls vorhanden, zu finden und aufzuzeichnen. Wenn der data_rate_flag
gesetzt ist, wird der Inkrementwert in einem Register gespeichert
und der System-Mikroprozessor
wird unterbrochen, um anzuzeigen, dass der Inkrementwert auf der
Isodaten-PID empfangen worden ist. Dieser Vorgang, bei dem in jedem
Isodaten-Kopf nach dem Inkrementwert gesucht wird, setzt sich fort,
bis der Inkrementwert empfangen worden ist.
-
Die
Verarbeitung geht dann zum Aufbauwartezustand 126 weiter.
An diesem Punkt, sobald sich der Inkrementwert im Register befindet,
wartet die Verarbeitung, bis ein Registermerker gesetzt ist, womit
angedeutet wird, dass mit der Isodaten-Erfassung fortgefahren werden
soll. Die Erfassung wird dann fortgesetzt, nachdem der Mikroprozessor
verifiziert hat, dass eine PCR empfangen worden ist (z. B. auf der
Isodaten-PCR-PID),
einen notwendigen Datenmodulus und Inkrementregister programmiert
hat, sowie das data_PTS_offset-Register (Daten_PTS_Verschiebungs-Register)
programmiert hat. Dann findet der Übergang in den PTS-Bezugszustand 128 statt.
-
Im
PTS-Erfassungszustand wird der Isodaten-Ausgabemodus auf muted_clock_and_data
gesetzt. Dann wird der Empfang von Isodaten-Transportpaketen wieder aufgenommen,
und eine Suche nach einem PES-Kopf,
der einen PTS enthält,
beginnt. In diesem Zustand werden keine Isodaten-Präsentationseinheiten an
das FIFO geschrieben.
-
Um
die Fehlererkennung zu unterstützen,
wird jedes auf der Isodaten-PID empfangene Nutzbyte zum Vergleich
mit der PES-Länge,
die in jedem PES-Kopf angezeigt ist, gezählt. Somit wird die PES-Länge jeweils im
PES-Zähler 170 gespeichert,
wenn der Anfang eines PES empfangen wird. Dieser Zähler wird
bei der Analyse jedes PES-Byte um eins dekrementiert. Wenn ein PTS
empfangen wird, wird der PTS-Wert in einem der zwei PTS-Zeiger-Register 176, 178 gespeichert.
Dann wird mit der Analyse des Isodaten-Kopfes (der in demselben
Paket vorhanden sein muss) fortgefahren, und das pts_ext8 wird dann
wiedergewonnen und mit dem PTS, der im vorherigen Schritt in das
PTS-Zeiger-Register geschrieben wurde, gespeichert. Die Verarbeitung fährt dann
fort, indem alle Präsentationseinheiten
in diesem Paket in das FIFO 152 geschrieben werden und indem
auch die FIFO-Adresse, an der die erste Präsentationseinheit gespeichert
ist, gespeichert wird. Diese FIFO-Adresse wird mit dem PTS und pts_ext8
gespeichert, die während
der obigen Schritte in das PTS-Zeiger-Register geschrieben wurden,
und dann wird dieses spezielle PTS-Zeiger-Register als „im-Einsatz" gekennzeichnet.
-
Sobald
ein PTS mit der entsprechenden Isodaten-Präsentationseinheit empfangen
worden ist, wird der Präsentationseinheits-Synchronisierer 158 anfangen,
auf die PTS-Synchronisation zu warten, wie bei 130 dargestellt.
Dies besteht darin, den Isodaten-Ausgabemodus auf muted_clock_and_data
zu halten, bis der STC 162 gleich dem Wert von PTS + pts_ext8
+ data_PTS_offset ist, der vom Präsentationszeit-Rechner 180 geliefert
wird. Wenn dieser Fall auftritt, wird der Präsentationseinheitszähler 164 (der
ein 4-Bit-Zähler
ist, der durch den Isodaten-Datentakt 160 inkrementiert
wird) auf den Wert 810 (10002)
gesetzt. Dies bereitet den Präsentationseinheits-Synchronisierer
darauf vor, mit der Ausgabe des ersten Bit der Präsentationseinheit
zu beginnen, wenn der Präsentationseinheitszähler 010 (00002) erreicht.
Dieser Vorgang, den Präsentationseinheitszähler auf
810 zu setzen, wird nur ausgeführt, wenn
der Übergang
in den Erfassungszustand stattgefunden hat, seit der Übergang
in den PTS_Sync-Zustand (PTS_Synchronisations-Zustand) zuletzt stattgefunden
hatte. Wenn der Präsentationseinheitszähler 010 erreicht, wird der Isodaten-Ausgabemodus
auf ungedämpft
gesetzt und die Präsentation
der Isodaten von dem FIFO 152 beginnt, wobei mit dem ersten
Bit der Präsentationseinheit
am Anfang des FIFO angefangen wird. Die Präsentation setzt sich damit
fort, dass das FIFO ein Isodaten-Bit pro Isodaten-Takt ausgibt.
-
Falls
zu irgendeiner Zeit, während
auf die PTS-Synchronisation gewartet wird, STC größer als
PTS + pts_ext8 + data_PTS-offset ist, wird die Verarbeitung unterbrochen,
das FIFO geräumt,
werden die PTS-Zeiger auf null gesetzt und der Erfassungszustand 124 wieder
aufgenommen. Während
auf die PTS-Synchronisation (STC = PTS + pts_ext8 + data_PTS_offset)
gewartet wird, setzt sich der Empfang und die Verarbeitung der Pakete
fort. Die Präsentationseinheiten,
aber nicht der Isodaten-Kopf jedes Pakets, werden in das FIFO abgelegt.
Außerdem
wird, wenn ein PTS empfangen wird, während dieser Zustand herrscht,
der PTS-Wert zusammen mit dem pts_ext8 und der zugehörigen FIFO-Adresse
in einem zweiten PTS-Zeiger-Register gespeichert. Falls beim Empfang
eines PTS beide PTS-Zeiger-Register belegt sind, überschreibt
der neue PTS-Zeiger den zuletzt geschriebenen PTS-Zeiger (neuester
PTS-Zeiger).
-
Wenn
die Ausgabe der Isodaten begonnen wird, fängt die Verfolgung an, wie
bei 132 angedeutet. In diesem Zustand werden Daten weiter
mit der Rate des Isodaten-Taktes 160 von dem FIFO 152 präsentiert. Außerdem werden
Isodaten-Transportpakete weiter verarbeitet, wobei jede Präsentationseinheit
in das FIFO geschrieben wird und die PTS-Zeiger gespeichert werden.
Falls das Isodaten-FIFO voll vorgefunden wird, wenn eine Präsentationseinheit
gespeichert werden muss (FIFO-Überlauf),
wird der Vorgang unterbrochen, das FIFO geräumt, die PTS-Zeiger werden
auf null gesetzt und es wird zum PTS-Erfassungszustand 128 zurückgekehrt,
nachdem der Isodaten-Ausgabemodus auf muted_data gesetzt worden
ist. Falls das Isodaten-FIFO leer vorgefunden wird, wenn eine Präsentationseinheit
ausgegeben werden muss (FIFO-Unterlauf), wird die Verarbeitung unterbrochen,
das FIFO geräumt,
die PTS-Zeiger werden auf null gesetzt und es wird zum PTS-Erfassungszustand 128 zurückgekehrt,
nachdem der Isodaten-Ausgabemodus auf muted_data gesetzt worden
ist.
-
Ein
von jedem Isodaten-Transportpaket umfasstes Feld ist ein Feld, das
zwei transport_scrambling-Steuerbits (Transport_Verwürflungs-Steuerbits) enthält, die
anzeigen, ob die Daten im Transportpaket verschlüsselt sind. Wenn ein Isodaten-Transportpaket
empfangen wird, bei dem die transport_scrambling_control-Bits (Transport_Verwürflungs_Steuer-Bits)
auf irgendetwas anderes als not_scrambled (nicht_verwürfelt) gesetzt
sind, wird dieser Zustand genauso wie der Empfang eines Isodaten-Transportpakets
behandelt, bei dem der transport_error_indicator (Transport_Fehler_Anzeiger)
gesetzt ist.
-
Transportpakete
enthalten auch einen Kontinuitätszähler. Wenn
ein Isodaten-Transportpaket empfangen wird, bei dem der continuity_counter
(Kontinuitäts_Zähler) nicht
gleich dem continuity_counter-Wert des zuletzt empfangenen Pakets
plus einem Modulo 16 ist (Paket-Diskontinuitätsfehler), werden die folgenden Schritte
unternommen:
- 1. Falls die Diskontinuität anzeigt,
dass ein redundantes Paket empfangen worden ist, wird das redundante Paket
verworfen.
- 2. Falls die Diskontinuität
anzeigt, dass zwei oder mehr Pakete verlorengegangen sind, werden
die PTS-Zeiger auf null gesetzt, der Isodaten-Ausgabemodus wird
auf gedämpfte
Daten gesetzt und es wird zum PTS-Erfassungszustand 128 zurückgekehrt.
- 3. Falls die Diskontinuität
anzeigt, dass ein Paket verlorengegangen ist, dann:
- A. Falls der PES-Zähler
anzeigt, dass noch 184 oder mehr Byte für den gegenwärtigen PES
zu empfangen sind, wird der PES-Zähler um
184 dekrementiert und der FIFO-Schreibzeiger wird um 184 Byteadressen (92 Wörter) vorwärts bewegt,
um effektiv 184 Byte in das FIFO einzufügen, um die Nutzlast des verlorenen Pakets
zu kompensieren. Es sollte beachtet werden, dass es möglich ist,
dass das FIFO überläuft, wenn die
Anzahl der mit einem fehlenden Paket verlorenen Byte kleiner als
die Anzahl der in das FIFO eingefügten Byte ist.
- B. Falls der PES-Zähler
anzeigt, dass noch genau null Byte für den gegenwärtigen PES
zu empfangen sind, wird der PES-Zähler auf
den Wert der vorherigen PES_packet_length (PES_Paket_Länge) gesetzt,
der PES-Zähler
um 178 dekrementiert und der FIFO-Schreibzeiger um 164 Byteadressen
vorwärts
bewegt. Es ist möglich,
dass das FIFO überläuft, wenn
die Anzahl der mit einem fehlenden Paket verlorenen Byte kleiner
als die Anzahl der in das FIFO eingefügten Byte ist.
- C. Falls der PES-Zähler
anzeigt, dass noch N (zwischen einschließlich einem und 183) Byte für den gegenwärtigen PES
zu empfangen sind, wird der PES-Zähler um N dekrementiert und
der FIFO-Schreibzeiger wird um N Byteadressen vorwärts bewegt,
um effektiv N Byte in das FIFO einzufügen, um die Nutzlast des verlorenen
Pakets zu kompensieren. Es ist möglich,
dass das FIFO überläuft, wenn
die Anzahl der mit einem fehlenden Paket verlorenen Byte kleiner
als die Anzahl der in das FIFO eingefügten Byte ist.
-
Wenn
PES-Daten analysiert werden, wird der Wert des PES-Zählers überwacht.
Falls ein PES-Byte analysiert wird, wenn der PES-Zähler gleich
null ist (bevor der Zähler
dekrementiert wird, um das gegenwärtige PES-Byte zu berücksichtigen) und dieses Byte
nicht das erste Byte eines neuen PES ist, dann sind wegen des Verlusts
von einem oder mehreren früheren
Transportpaketen zu viele Byte an das FIFO geschrieben worden. Wenn
das auftritt, wird der Vorgang das Schreiben von Isodaten-Präsentationseinheiten
an das FIFO, beginnend mit dem gegenwärtigen Byte, anhalten und zum
PTS-Erfassungszustand zurückkehren,
nachdem das FIFO geräumt
und die PTS-Zeiger auf null gesetzt worden sind.
-
Nachdem
jede Präsentationseinheit
vom FIFO entfernt worden ist, erkennt der Vorgang, wann der FIFO-Lesezeiger
gleich der DRAM-Verschiebeadresse
des ältesten
PTS-Zeigers ist. Wenn das auftritt, wird der Zeitablauf auf folgende
Weise verifiziert:
Wenn der STC weniger als PTS + pts_ext8
+ data_PTS offset des entsprechenden PTS-Zeigers ist, was beim Verlust
von Isodaten der Fall sein wird, werden Füllbits (z. B. Nullen) statt
Isodaten ausgegeben, bis STC = PTS + pts_ext8 + data_PTS offset
ist. Zu dieser Zeit werden Füllbits
statt Isodaten weiter ausgegeben, bis der Präsentationseinheitszähler gleich
010 (00002) ist.
Wenn das auftritt, wird das Lesen von Isodaten-Präsentationseinheiten
aus dem FIFO wieder aufgenommen und diese Daten werden als Isodaten
präsentiert.
Falls der STC größer oder
gleich PTS + pts_ext8 + data_PTS_offset des entsprechenden PTS-Zeigers
ist, wird die normale Isodaten-Verarbeitung fortgesetzt.
-
Während der
Isodaten-Verarbeitung wird der Zeitablauf auf folgende Weise überwacht:
Wenn
der FIFO-Lesezeiger während
des Zeitintervalls, in dem der Präsentationseinheits-Zähler nach
STC = PTS + pts_ext8 + data_PTS offset eines PTS-Zeiger zum ersten
Mal gleich null ist, nicht gleich der FIFO-Adresse des entsprechenden
PTS-Zeigers ist, wird die Verarbeitung unterbrochen (FIFO-Spätausgabefehler)
und der Übergang
in den Erfassungszustand 124 findet erneut statt.
-
In
einer bevorzugten Umsetzung des oben beschriebenen Vorgangs werden
die folgenden Vorgaben verwendet:
data_PTS_offset (Daten_PTS_Verschiebung)
-- Ein 13-Bit-Wert, der die Anzahl der PTS-Takte darstellt, die
jedem PTS-Wert und pts_ext8-Wert hinzuaddiert wird, um die bei Isodaten
angewandte Zeitverzögerung
zu steuern. Dieser Wert hat Einheiten von 11,1 Mikrosekunden und
ermöglicht
es Isodaten, um bis zu 90,9 Millisekunden verzögert zu werden.
-
PTS-Zeiger
-- Jeder PTS-Zeiger umfasst die folgenden Felder, die es ermöglichen,
auf eine spezielle Präsentationseinheit
im FIFO zu zeigen und den Zeitpunkt, zu dem sie zu präsentieren
ist, mit einer Auflösung von
74 Nanosekunden zu speichern.
- • PTS --
Ein 16-Bit-Feld mit Einheiten von 11,1 Mikrosekunden, das die 16
niedrigstwertigen Bits des PTS der entsprechenden Präsentationseinheit
speichert. 16 Bit ermöglichen
es Isodaten, bis zu 727,4 Millisekunden im FIFO zu verbleiben.
- • PTS_Ext8
-- Ein 8-Bit-Feld mit Einheiten von 74 Nanosekunden, das die oberen
8 Bit der 9-Bit-pcr_extension speichert, die in Generic Coding of
Moving Pictures and Associated Audio, Internationale Normenorganisation,
ISO/IEC 13818-1, Systems International Standard, November 1994,
für MPEG vorgeschrieben
ist. Dieses Feld entspricht dem Zeitstempel der Präsentationseinheit
und erweitert die zeitliche Auflösung
von Isodaten-Zeitstempeln über
die normalen, für
MPEG vorgeschriebenen 11,1 Mikrosekunden hinaus auf 74 Nanosekunden.
- • DRAM-Verschiebeadresse
-- Eine 12-Bit-DRAM-Wort-Verschiebeadresse
mit Bezug auf die Isodaten-Grundadresse, die auf das DRAM-Wort des
FIFO zeigt, bei dem die entsprechende Präsentationseinheit gespeichert
ist. 12 Bit ermöglichen
es dem FIFO, einen Umfang von bis zu 4096 Wörtern zu haben.
- • Im-Einsatz-Merker
-- Ein Ein-Bit-Merker, der es ermöglicht, den Zustand eines PTS-Zeigers
zu ermitteln. Wenn er gesetzt ist, zeigt dieser Merker an, dass
dieser PTS-Zeiger im Einsatz ist, da er eine gültige Gruppe von Werten enthält. Bei
jedem Zeiger wird dieser Merker nach einer Rückstellung des Isodaten-Vorgangs auf
null gesetzt.
-
Aufrechterhaltung
des PTS-Zeigers
-
Die
zwei PTS-Zeiger-Register 176, 178 werden auf die
folgende Weise aufrechterhalten:
- I. Nach einer
Rückstellung
werden alle Im-Einsatz-Merker der PTS-Zeiger-Register rückgestellt (auf nicht im Einsatz).
- II. Bei Empfang eines PTS-Wertes wird der PTS-Wert in dem PES-Kopf
im PTS-Feld des ALTEN PTS-Zeiger-Registers gespeichert.
- III. Das pts_ext8-Feld wird dann aus dem Isodaten-Kopf analysiert
und in dem pts_ext8-Feld des ALTEN PTS-Zeiger-Registers gespeichert.
- IV. Nachdem ein neuer PTS-Wert in einem PTS-Zeiger-Register
gespeichert wurde, wird mit der Isodaten-Verarbeitung fortgefahren.
Wenn die nächste
Präsentationseinheit
empfangen und korrekt in das FIFO geschrieben ist, wird die DRAM-Verschiebeadresse,
die der FIFO-Adresse entspricht, welche das erste Byte der Präsentationseinheit
hält, im
DRAM-Verschiebeadressenfeld des Zeigers gespeichert. Die nächste Präsentationseinheit
wird empfangen und korrekt in das FIFO geschrieben, wenn keine Daten
zwischen Empfang des PTS-Wertes und Empfang der ersten Präsentationseinheit
desselben PES_packet (PES_Paket) aus irgendeinem Grund verlorengegangen
sind. Wenn das erzielt ist, ist der PTS-Zeiger gültig und wird als im-Einsatz
gekennzeichnet, indem der Im-Einsatz-Merker desselben PTS-Zeiger-Registers gesetzt
wird, und wird bei nachfolgendem Verarbeiten als neuester PTS-Zeiger
betrachtet.
- V. Wenn ein PTS-Zeiger aufgezeichnet wird und keines der PTS-Zeiger-Register im
Einsatz ist, wird der Zeiger im ALTEN PTS-Zeiger-Register aufgezeichnet.
- VI. Sollte das ALTE PTS-Zeiger-Register im Einsatz sein, wenn
ein neuer Zeiger bereit ist, aufgezeichnet zu werden, wird der neue
Zeiger im NEUEN PTS-Zeiger-Register aufgezeichnet.
- VII. Wenn beide PTS-Zeiger-Register im Einsatz sind, wird der
neue Zeiger aufgezeichnet, indem der NEUE PTS-Zeiger überschrieben
wird.
- VIII. Die PTS-Zeiger werden eingesetzt, wie es in der vorhergehenden
Beschreibung des Verfolgzustandes 132 vorgeschrieben ist.
- IX. Wenn der NEUE PTS-Zeiger wie im Verfolgzustand vorgeschrieben
verwendet worden ist, wird er zum ALTEN PTS-Zeiger transferiert
und der NEUE PTS-Zeiger wird als nicht verwendet gekennzeichnet,
indem sein Im-Einsatz-Merker auf null gesetzt wird, so dass das
NEUE Zeiger-Register dazu verwendet wird, den nächsten PTS-Zeiger zu speichern.
- X. Wenn ein Transportpaket mit gesetztem discontinuity_indicator-Bit
(Diskontinuitäts_Anzeiger-Bit)
seines Anpassungsfeldes auf der Isodaten-PID empfangen wird, wird
der Im-Einsatz-Merker aller PTS-Zeiger-Register
auf null gesetzt und keine PTS-Zeiger werden mehr gespeichert, bis
der nächste
PCR-Wert empfangen wird (z. B. auf der Isodaten-PCR-PID).
-
Um
zur Fehlererkennung beizutragen, wird jedes empfangene Nutzbyte
auf der Isodaten-PID zum Vergleich mit der PES_packet_length, die
wie von MPEG definiert in jedem PES-Kopf angezeigt ist, gezählt. Somit
wird, wenn der Anfang eines jeden PES_packet empfangen wird, die
PES_packet_length im PES-Längenzähler 170 gespeichert.
Dieser Zähler
wird bei der Analyse jedes PES-Byte um eins dekrementiert. Weiterhin
wird dieser Zähler
verwendet und aufrechterhalten, wie es für den Verfolgzustand 132 vorgeschrieben ist.
-
Zusätzlich zu
dem PES-Längenzähler hält das bevorzugte
System den zuvor erwähnten
Präsentationseinheitszähler 164 aufrecht.
Der Präsentationseinheitszähler ist
ein 4-Bit-Zähler,
der durch den Isodaten-Ausgabetakt
inkrementiert wird. Dieser Zähler
wird bei der Ausgabe der ersten Isodaten-Präsentationseinheit aus dem FIFO
auf 810 (10002)
gesetzt, wie für
den PTS-Synchronisationszustand 130 beschrieben. Darauffolgende Übergänge in den
PTS-Synchronisationszustand werden diesen Zähler weder setzen noch rückstellen,
es sei denn, dass der Übergang
in den Erfassungszustand 124 seit dem letzten Übergang
in den PTS-Synchronisationszustand stattgefunden hat.
-
Vier
Isodaten-Ausgabemodi sind wie folgt umgesetzt:
- 1.
Dreizustand – in
diesem Modus befinden sich sowohl der Isodaten-Takt als auch die Datenausgaben im Dreizustand;
- 2. Muted_clock_and_data – in
diesem Modus sind sowohl der Isodaten-Takt als auch die Datenausgaben niedrig
(z. B. null);
- 3. Muted_data – in
diesem Modus ist nur die Isodaten-Ausgabe niedrig, wogegen der Isodaten-Takt
aktiv ist;
- 4. Unmuted (ungedämpft) – in diesem
Modus sind weder die Isodaten – noch
die Takt-Ausgaben gedämpft (nicht
aktiv).
-
Ein
eindeutiger Fehlermerker wird für
jede Fehlerkondition gesetzt, die rückgestellt wird, nachdem der Merker
gelesen worden ist. Jede Fehlerkondition, die den Isodaten-Vorgang
unterbricht, ist maskierbar. Tabelle 1 führt die verschiedenen, auf
die Isodaten-Verarbeitung bezogenen Fehlerkonditionen und die Reaktion
des Systems auf den Fehler auf. Das Folgende definiert den Inhalt
der Tabelle:
Name – Ein
Name, der jeder Fehlerkondition für Verweiszwecke an anderer
Stelle darin zugeschrieben wird.
Definition – Eine Definition
der Konditionen, die anzeigen, dass der entsprechende Fehler aufgetreten
ist.
-
Int
-
- ja – Zeigt
an, dass die Isodaten-Verarbeitung zu unterbrechen ist, wenn dieser
Fehler auftritt.
- nein – Zeigt
an, dass die Isodaten-Verarbeitung nicht unterbrochen wird, wenn
dieser Fehler auftritt.
-
Zustand prüfen und
nächster
Zustand
-
- > „Zustand" – Zeigt an, dass dieser Fehler
erkannt wird, wenn der gegenwärtige
Isodaten-Verarbeitungszustand höher
ist als „Zustand". Die folgende Liste
definiere die Hierarchie der Isodaten-Verarbeitungszustände:
1. Rückstellen
Unterstes
2. Anlaufen
3. Erfassung
4. Setup_Wait
(Aufbau_Warten)
5. PTS_Acquire (PTS_Erfassen)
6. PTS_Sync
7.
Verfolgen Höchstes
- ≥ „Zustand" – Zeigt an, dass dieser Fehler
erkannt werden wird, wenn der Isodaten-Verarbeitungszustand gleich
oder höher
ist als „Zustand".
- Anlaufen, Erfassung, setup_wait, pts_acquire, pts_sync oder
Verfolgen – Zeigt
an, dass dieser Fehler in diesem Zustand erkannt wird oder dass
Isodaten-Verarbeitung bis zu diesem Zustand fortgeführt wird,
nachdem die zugehörigen
Aktionen ausgeführt
worden sind.
- derselbe – Zeigt
an, dass die Isodaten-Verarbeitung in demselben Zustand verbleibt,
nachdem die zugehörigen
Aktionen ausgeführt
worden sind.
- alles – Zeigt
an, dass dieser Fehler erkannt wird, wenn er in einem beliebigen
Verarbeitungszustand auftritt.
-
FIFO-Aktion
-
- Räumen – Zeigt
an, dass das FIFO geräumt
wird, indem die FIFO- Lese-
und Schreibzeiger der DRAM-Grundadresse des FIFO gleichgesetzt werden.
- keine – Zeigt
an, dass keine Änderung
der normalen FIFO-Verwaltung
auftritt.
-
Zeiger-Aktion
-
- Auf-null-Setzen – Zeigt
an, dass die PTS-Zeiger in den vorgeschriebenen Zustand zurückgeführt werden,
als ob der Vorgang rückgestellt
worden wäre.
- keine – Zeigt
an, dass keine Änderung
der normalen Zeiger-Verwaltung
auftritt.
- siehe andere Aktionen – Zeigt
an, dass andere Aktionen einen Zeiger anzeigen können, der zu setzen oder rückzustellen
ist, ansonsten wird es wie keine behandelt.
-
Ausgabemodus – Gibt den
Ausgabemodus an, in den der Prozessor übergeht.
-
Andere
Aktionen – Gibt
jegliche zusätzlichen
Aktionen an, die infolge des Fehlers benötigt werden.
-
-
-
-
-
-
Eine
Registergruppe wird aufrechterhalten, um den Zustand des Isodaten-Vorgangs zu steuern
und zu verfolgen. Die Registergruppe ist in Tabelle 2 spezifiziert.
-
Tabelle
2: Isodaten-Register
-
Es
versteht sich jetzt, dass die vorliegende Erfindung ein Verfahren
und ein Gerät
zum Erkennen und Korrigieren von Fehlern bereitstellt, wenn Informationsdaten
wie etwa isochrone Daten in einem MPEG-2-artigen Datenstrom übermittelt
werden. Die isochronen Daten folgen auf einen PES-Kopf im Nutzlastteil
eines paketierten Elementarstroms. Die PES-Nutzlast beginnt mit einem isochronen
Datenkopf, auf den isochrone Daten-Präsentationseinheiten folgen.
Isodaten-Transportpakete werden überwacht,
um Isodaten-Präsentationszeitstempel
(PTS) zu lokalisieren, und die Präsentation von Isodaten von
einem Puffer ist mit einem Systemzeittakt (STC) synchronisiert,
der von den PTS abgeleitete Zeitinformationen verwendet. Diskontinuitätsfehler zwischen
den Isodaten-Paketen werden identifiziert, und wenn möglich, wird
ein Schreibzeiger des Puffers um eine angemessene Anzahl von Bits
vorwärts
bewegt, um die Diskontinuität
zu kompensieren. Die Synchronisation der Präsentation mit Bezug auf den
STC wird während
des Fehlerkorrekturvorgangs aufrechterhalten. Eine Präsentationseinheitszählung und
eine PES-Zählung
werden aufrechterhalten, um verlorene Daten zu erkennen. Ausgabe-Zeitablauf
wird verifiziert, indem eine PTS-Erweiterung und eine PTS-Verschiebung
verwendet werden. Ein Paar PTS-Zeiger wird verwendet, um korrekten
Datenausgabe-Zeitablauf zu verifizieren. Zusätzliche Fehlererkennungs- und Fehlerkorrektur-Techniken
sind auch offenbart.
-
Obwohl
die Erfindung in Verbindung mit einer bevorzugten Ausführungsform
beschrieben worden ist, versteht es sich, dass zahlreiche Anpassungen
und Änderungen
daran vorgenommen werden können,
ohne den Bereich der in den Ansprüchen dargelegten Erfindung
zu verlassen.