Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Erzeugung
eines Transportdatenstroms in einem System mit unterschiedlichen Taktgebern.
Die Erzeugung eines digitalen TV-Transportdatenstroms erfolgt in einem
Multiplexer oder Sendesystem im Headend in mehreren Verarbeitungsstufen. Die Eingangsdatenrate,
mit der der Transportdatenstrom dem Sender zugeführt wird, entspricht hierbei
nicht der Ausgangsdatenrate, mit der der daraus erzeugte Transportdatenstrom vom
Sender ausgestrahlt wird. Hinzukommt, dass die einzelnen Verarbeitungsstufen des
Senders jeweils von einem zugehörigen Taktgeber versorgt werden, die jeweils
hinsichtlich Frequenz, Genauigkeit und Auflösung unterschiedlich ausgeprägt
sind und nicht zueinander synchronisiert sind.
Bei der US 2005/0036521
A1 wird die fehlende Synchronität in der Verarbeitung zwischen den
einzelnen Verarbeitungsstufen durch Zwischenschalten von Pufferspeichern gelöst.
Die Unterschiedlichkeit zwischen Eingangs- und Ausgangsdatenrate wird typischerweise
durch Einfügen von Null-Transportdatenpaketen in den zu sendenden Transportdatenstrom
oder durch Entfernen von nicht benötigten Transportdatenpaketen aus den zu
sendenden Transportdatenstrom bewältigt.
Bei der digitalen Fernseh-Übertragung für stationäre
und gleichzeitig für mobile Empfänger nach dem US-amerikanischen Standard
ATSC-M/H (Advanced-Television-Systems-Committee-Mobile/Handheld) ist ein Einfügen
von Null-Transportdatenpaketen und ein Entfernen von nicht benötigten Transportdatenpaketen
aufgrund der festen Datenstruktur des ATSC-M/H-Transportdatenstroms nicht möglich.
Bezüglich ATSC sei beispielsweise auf die US
7,532,677 B2 verwiesen.
Aufgabe der Erfindung ist es deshalb, ein Verfahren und eine Vorrichtung
zur Synchronisierung unterschiedlicher Taktgeber in den einzelnen Verarbeitungsstufen
eines Senders zu schaffen, die einen digitalen Transportdatenstrom mit einer unveränderlichen
Datenstruktur beispielsweise für ein ATSC-M/H-Übertragungssystem verarbeiten
können.
Die Erfindungsaufgabe wird durch ein Verfahren zur Erzeugung eines
zu sendenden Transportdatenstroms mit den Merkmalen des Patentanspruchs 1 und durch
eine Vorrichtung zur Erzeugung eines zu sendenden Transportdatenstroms mit den Merkmalen
des Patentanspruchs 12 gelöst. Vorteilhafte technische Erweiterungen sind in
den abhängigen Patentansprüchen aufgeführt.
Die korrekte Synchronisierung des ersten Taktgebers, der die Empfangszeitpunkte
der einzelnen Transportdatenpakete im empfangenen Transportdatenstrom ermittelt,
mit dem zweiten Taktgeber, der die Taktung des zu sendenden Transportdatenstroms
und damit die Zeitintervalle der einzelnen im zu sendenden Transportdatenstrom enthaltenen
Datenrahmen vorgibt, ermöglicht ein korrektes zeitliches Einfügen jedes
einzelnen Transportdatenpaketes des empfangenen Transportdatenstroms im jeweils
korrekten Datenrahmen des zu sendenden Transportdatenstroms.
Erfindungsgemäß wird hierzu in einem ersten Schritt der
Empfangszeitpunkt jedes Transportdatenpakets des empfangenen Transportdatenstroms
als Anzahl von ersten Taktimpulsen des vom ersten Taktgeber erzeugten ersten Taktes
seit dem Empfangszeitpunkt des ersten Transportstrompakts im empfangenen Transportdatenstrom
ermittelt. Um eine zeitliche Relation zwischen dem vom ersten Taktgeber erzeugten
ersten Takt und dem vom zweiten Taktgeber erzeugten zweiten Takt, der als Referenztakt
dient, zu gewinnen, werden im nächsten Schritt die Zeitpunkte der zweiten Taktimpulse
des zweiten Taktes als Funktion der Anzahl von ersten Taktimpulsen seit dem Empfangszeitpunkt
des ersten Transportdatenpakets im empfangenen Transportdatenstrom bestimmt. Nach
Erzeugung der einzelnen Datenrahmen des zu sendenden Transportdatenstroms, deren
Zeitintervalle mit den zweiten Taktimpulsen zusammenfallen, wird der zu einem Transportdatenpaket
des empfangenen Transportdatenstroms gehörige Datenrahmen des zu sendenden
Transportdatenstroms auf der Basis der zum Empfangszeitpunkt des Transportdatenpakets
ermittelten Anzahl von ersten Taktimpulsen und der Relation zwischen den Zeitpunkten
der zweiten Taktimpulse des zweiten Taktes und der Anzahl von ersten Taktimpulsen
seit dem Empfangszeitpunkt des ersten Transportdatenpakets selektiert.
Die Ermittlung der zu den Zeitpunkten der zweiten Taktimpulse jeweils
gehörigen Anzahl von ersten Taktimpulsen erfolgt bevorzugt über eine Regelung.
Hierbei wird die innerhalb eines Zeitintervalls der einzelnen Datenrahmen jeweils
zu liegen kommende Anzahl von ersten Taktimpulsen aus der Addition der Anzahl von
ersten Taktimpulsen pro Zeitintervall eines Datenrahmens im Fall eines zum zweiten
Takt synchronisierten ersten Taktes und einer von einem Regler ermittelten Anzahl
von ersten Taktimpulsen pro Zeitintervall eines Datenrahmens bestimmt. Die vom Regler
ermittelte Anzahl von ersten Taktimpulsen pro Zeitintervall eines Datenrahmens ergibt
sich aus der Regeldifferenz zwischen der akkumulierten Anzahl von ersten Taktimpulsen
seit dem Empfangszeitpunkt des ersten Transportdatenpakets im empfangenen Transportdatenpaket
und der akkumulierten Anzahl von ersten Taktimpulsen, die sich aus den
in ein Zeitintervall eines Datenrahmen fallenden ersten Taktimpulsen im Fall eines
zum zweiten Takt synchronisierten ersten Taktes und den zusätzlich in ein Zeitintervall
eines Datenrahmens fallenden ersten Taktimpulsen im Fall eines zum zweiten Takt
nicht-synchronisierten ersten Taktes ergeben. Die zusätzlich in ein Zeitintervall
eines Datenrahmens fallenden ersten Taktimpulse im Fall eines zum zweiten Takt nicht-synchronisierten
ersten Taktes entspricht der vom Regler ermittelten Anzahl von ersten Taktimpulsen.
Auf diese Weise kann bei einer Frequenzdrift zwischen ersten und zweiten
Takt kontinuierlich für jeden Abtastzeitpunkt der digital realisierten Regelung
eine dem veränderten Taktverhältnis zwischen erstem und zweitem Takt entsprechende
Anzahl von ersten Taktimpulsen pro fixem Zeitintervall eines Datenrahmens ermittelt
werden.
Diskontinuierliche Signalanteile im zeitlichen Verlauf des Regeldifferenzsignals,
beispielsweise Signalspitzen und Signalsprünge, die aus messbaren Latenzen
im Scheduler des Echtzeitbetriebssystems für die einzelnen Tasks, Threads und
Prozesse resultieren, werden vorzugsweise über geeignete Filteralgorithmen
selektiert und anschließend aus dem Regeldifferenzsignal kompensiert.
Stochastische kontinuierliche Signalschwankungen im zeitlichen Verlauf
des Regeldifferenzsignals, die sich aus der Interruptverarbeitung oder der Kommunikationsverarbeitung
über ein internes Bussystem ergeben und sich dem zu messenden Signal überlagern,
werden bevorzugt über eine rollierende Mittelung über mehrere Abtastzeitpunkte
der digitalen Regelung aus dem Regeldifferenzsignal beseitigt.
Bei Transportdatenpaketen, deren Position sich im zu sendenden Transportdatenstrom
gegenüber dem empfangenen Transportdatenstrom ändert, was beispielsweise
bei ATSC-Transportdatenpaketen für stationäre Empfänger auftritt,
die aufgrund der Einplanung von ATSC-Transportdatenpaketen für mobile Empfänger
auf Positionen, die ursprünglich von ATSC-Transportstrompaketen für stationäre
Empfänger besetzt waren, ist zur Anzahl von ersten Taktimpulsen, die dem Empfangszeitpunkt
entsprechen, bevorzugt zusätzlich eine zum zeitlichen Abstand zwischen der
neuen und der alten Position korrespondierende Anzahl von ersten Taktimpulsen hinzuzuaddieren.
Enthält das hinsichtlich seiner Position im Transportdatenstrom
verschobene Transportdatenpaket eine Zeitmarke, z. B. zur Synchronisierung zwischen
Sender und Empfänger, so ist bevorzugt diese Zeitmarke entsprechend anzupassen.
Die bei ATSC-Übertragungssystemen im Transportdatenpaket im Programm-Clock-Reference(PCR)-Feld
ablegte Zeitmarke, die eine korrespondierende Anzahl von Taktimpulsen eines als
PCR-Frequenz dienenden Taktes enthält, wird durch die Neupositionierung des
ein PCR-Feld enthaltenden Transportdatenpakets in Abhängigkeit der aktuellen
PCR-Frequenz und dem zeitlichen Abstand zwischen alter und neuer Position korrigiert.
Da die PCR-Frequenz einer Schwankung unterworfen sein kann, erfolgt eine Korrektur
der PCR-Frequenz, indem die Anzahl von ersten Taktimpulsen eines ersten Taktgebers
zwischen zwei aufeinander folgenden, jeweils ein PCR-Feld enthaltenden Transportdatenpaketen
gemessen wird.
Die Ausgangsdatenrate, mit der der zu sendende Transportdatenstrom
ausgestrahlt wird, ergibt sich aus einem von einem dritten Taktgeber erzeugten dritten
Takt. Die Synchronisierung des dritten Taktes mit dem als Referenztakt dienenden
zweiten Takt erfolgt vorzugsweise durch Regelung des Pufferfüllstands eines
Pufferspeichers, in den der zu sendende Transportdatenstrom mit dem zweiten Takt
gefüllt wird und aus dem der zu sendende Transportdatenstrom mit dem dritten
Takt ausgelesen wird. Sinkt der Pufferfüllstand im Pufferspeicher gegenüber
dem Pufferfüllstand zur Initialisierung, so ist der dritte Takt höher
als der zweite Takt und muss entsprechend reduziert werden. Bei einem ansteigenden
Pufferfüllstand im Pufferspeicher gegenüber dem Pufferfüllstand zur
Initialisierung ist der dritte Takt gegenüber dem zweiten Takt reduziert und
muss entsprechend erhöht werden.
Um einen langzeitstabilen, als Referenztakt dienenden zweiten Takt
zu gewinnen, wird vorzugsweise der zweite Takt vom langzeitstabilen Referenztakt
des internetbasierten NTP-Servers versorgt. Um zur Langzeitstabilität auch
noch eine Kurzzeitstabilität des zweiten Taktes zu erzielen, wird der Referenztakt
des NTP-Servers mit einem von einem weiteren Referenzzeitgeber erzeugten Takt mit
hoher zeitlicher Auflösung interpoliert.
Ausführungsbeispiele des erfindungsgemäßen Verfahrens
und der erfindungsgemäßen Vorrichtung zur Erzeugung eines zu sendenden
Transportdatenstroms werden im Folgenden anhand der Zeichnung im Detail beispielhaft
erläutert. Die Figuren der Zeichnung zeigen:
1 ein Blockdiagramm eines Ausführungsbeispiels
der erfindungsgemäßen Vorrichtung zur Erzeugung eines zu sendenden Transportdatenstroms,
2 ein Blockdiagramm eines Ausführungsbeispiels
der erfindungsgemäßen Synchronisierung des ersten Taktes mit dem zweiten
Takt,
3 ein Blockdiagramm
eines Ausführungsbeispiels der erfindungsgemäßen Synchronisierung
des dritten Taktes mit dem zweiten Takt,
4 ein Zeitdiagramm zur Darstellung der
Interpolation des langzeitstabilen Referenztaktes mit einem kurzzeitstabilen Referenztakt,
5 ein Blockdiagramm eines Generators
für einen ATSC-Transportdatenstrom,
6 ein Zeitdiagramm der Zykluszeiten der
ATSC-M/H-Datenrahmen,
7 ein Zeitdiagram mit unterschiedlichen
Relationen zwischen ersten und zweiten Takt,
8 ein Zeitdiagramm eines Regeldifferenzsignals
mit diskontinuierlichen Signalschwankungen und
9 ein Flussdiagramm eines Ausführungsbeispiels
des erfindungsgemäßen Verfahrens zur Erzeugung eines zu sendenden Transportdatenstroms.
Das erfindungsgemäße Verfahren zur Erzeugung eines zu sendenden
Transportdatenstroms wird im Folgenden anhand des Flussdiagramms in 9
erläutert, wobei gleichzeitig auf die Merkmale der erfindungsgemäßen
Vorrichtung zur Erzeugung eines zu sendenden Transportdatenstroms gemäß
der 1, 2 und
3 Bezug genommen wird:
Im ersten Verfahrensschritt S10 wird ein ATSC-Transportdatenstrom mit TV-Programmdaten
mehrerer TV-Programme und TV-Services für stationäre Empfänger in
einem Generator für den Transportdatenstrom am Eingang 5 erzeugt.
Hierzu ist gemäß 5 für jedes TV-Programm
bzw. für jeden TV-Service jeweils ein Kodierer 11, 12, ..,
1n vorgesehen, der jeweils Audio- und Video-Daten für ein TV-Programm-
bzw. für einen TV-Service in einen Elementar-Transportdatenstrom bestehend
aus aufeinander folgenden Transportdatenpaketen einfügt und beispielsweise
mit einem MPEG2-Kodierungsalgorithmus quellkodiert.
Zusätzlich zu den Nutzdaten der TV-Programme und TV-Services
werden in den Elementar-Transportdatenströmen Taktinformationen hinterlegt,
mit denen beispielsweise die im jeweiligen A/V-Kodierer 11, 12,
.., 1n verwendete Bildwiederholrate der Videodaten dem Videodekodierer
in den einzelnen Empfängern zugeführt wird. Diese Taktinformationen werden
als Zeitmarken, die den exakten Einfügezeitpunkt des die Video-Daten eines
Bildes enthaltenden Transportdatenpakets im Elementar-Transportdatenstrom kennzeichnen,
in das jeweilige Transportdatenpaket in einem sogenannten Programm-Clock-Reference(PCR)-Feld
im Header des Transportdatenpakets abgelegt. Der exakte Einfügezeitpunkt des
einzelnen Transportdatenpakets in den einzelnen Elementar-Transportdatenstrom wird
aus dem Takt jeweils eines dem jeweiligen A/V-Kodierer 11, 12,
..., 1n zugeordneten Taktgebers für PCR-Zeitmarken 31,
32, .., 3n ermittelt. Hierzu wird im jeweiligen Taktgeber für
PCR-Zeitmarken 31, 32, .., 3n im Ausführungsbeispiel
ein 27 MHz Takt, der synchron zu Bildabtastrate läuft, einem internen Zähler
zugeführt. Der Zählerstand des internen Zählers zum Zeitpunkt des
Einfügens des Transportdatenpakets in den Elementar-Transportdatenstrom wird
vom jeweiligen A/V-Kodierer 11, 12, .., 1n beim jeweiligen
Taktgeber für PCR-Zeitmarken 31, 32, .., 3n abgefragt
um ihn im PCR-Feld des eingefügten Transportdatenpakets abzulegen.
In einem den einzelnen A/V-Kodieren 11, 12, ..,
1n nachfolgenden ATSC-Multiplexer 2 werden die einzelnen Elementar-Transportdatenströme
in einen Gesamt-Transportdatenstrom gepackt, der vom einem Taktgeber für den
Transportstrom am Eingang 4 im Ausführungsbeispiel mit einem Takt
von kleiner oder gleich 19,39 MHz im Fall einer ATSC-M/H-Übertragung versorgt
wird.
Im nächsten Verfahrensschritt S20 wird der Empfangszeitpunkt
jedes Transportdatenpakets des vom Generator für den Transportdatenstrom am
Eingang 5 empfangenen ATSC-Transportdatenstroms in einer Einheit zur Bestimmung
der Empfangszeit 6 ermittelt. Die Einheit 6 erhält hierzu
von einem ersten Taktgeber 7 einen ersten Takt, der einen zum Takt des
empfangenen ATSC-Transportdatenstroms unterschiedlichen Takt darstellt. Beispielsweise
weist der erste Takt eine Frequenz von 54 MHz auf und besitzt gegenüber der
standardisierten Langzeitgenauigkeit des empfangenen ATSC-Transportdatenstroms in
Höhe von 30·10–6 s/Tag eine zehnfach höhere Langzeitgenauigkeit
in Höhe von 3·10–6 s/Tag bzw. eine gegenüber der
standardisierten zeitlichen Auflösung bzw. Kurzzeitgenauigkeit des empfangenen
ATSC-Transportdatenstroms in Höhe von < 52 ns eine zweieinhalbfach höhere
zeitliche Auflösung bzw. Kurzzeitgenauigkeit in Höhe von < 20 ns auf.
Zur Bestimmung des Empfangszeitpunktes eines Transportdatenpaketes
ist im ersten Taktgeber ein interner Zähler vorgesehen, der die ersten Taktimpulse
des ersten Taktes seit dem Empfangszeitpunkt des ersten Transportdatenpakets des
empfangenen ATSC-Transportdatenstroms zählt und der Einheit zur Bestimmung
der Empfangszeit 6 zur Verfügung stellt.
Enthält das empfangene Transportdatenpaket eine Zeitmarke in
Form eines Zählerwertes im PCR-Feld, so ist der Zählerwert im PCR-Feld
mit der aktuellen Anzahl von Taktimpulsen des als PCR-Frequenz dienenden Taktes
zu aktualisieren. Aufgrund einer möglicherweise auftretenden Drift des als
PCR-Frequenz dienenden Taktes muss dieser Takt kontinuierlich auf Korrektheit überprüft
und bei einer Abweichung von einem Referenzwert entsprechend korrigiert werden.
Hierzu wird einerseits der tatsächliche zeitliche Abstand zweier aufeinander
folgender jeweils ein PCR-Feld mit einem Zählerwert tragenden Transportdatenpakete
ermittelt, indem der jeweilige Empfangszeitpunkt der beiden Transportdatenpakete
jeweils als Anzahl von ersten Taktimpulsen des ersten Taktes zum jeweiligen Empfangszeitpunkt
und anschließende Differenzbildung der jeweils zum Empfangszeitpunkt des Transportdatenpakets
mit Zeitmarke ermittelten ersten Taktimpulse bestimmt wird. Diese ermittelte Anzahl
von ersten Taktimpulsen wird mit dem Quotienten aus der Anzahl von Transportdatenpaketen
zwischen alter und neuer Position des verschobenen und eine Zeitmarke tragenden
Transportdatenpakets und der Anzahl von Transportdatenpaketen zwischen zwei jeweils
ein PCR-Feld tragenden Transportdatenpakete multipliziert.
Im darauffolgenden Verfahrensschritt S30 wird ein als Referenztakt
des gesamten Sendersystems dienender zweiter Takt in einem zweiten Taktgeber
8 erzeugt, der eine sich aus der Datenrate des ATSC-Transportdatenstroms
von 19,392658 MBit/s und der Größe der Datenverarbeitungsblöcke von
624 Transportdatenpaketen ergebende Taktfrequenz in Höhe von 20,66 Hz (19392658/8/624/188
= 20,66) aufweist und gegenüber dem empfangenen ATSC-Transportdatenstrom eine
deutlich höhere Langzeitgenauigkeit in Höhe von 1·10–11
s/Jahr und eine zeitliche Auflösung bzw. Kurzzeitgenauigkeit in Höhe von
< 2 ms aufweist.
Um die Langzeitstabilität des zweiten Taktes zu gewinnen, wird
als Referenzzeit das Network-Time-Protocol (NTP) benutzt, das von einem NTP-Server
auf der Basis eines öffentlichen Referenztaktes, bevorzugt des GPS-Taktes,
eine absolute Coordinated-Universal-Time(UTC)-Zeit erzeugt und über eine Netzwerk-Verbindung
einem langzeitstabilen Referenzzeitgeber 10 zur Verfügung stellt.
Zwischen dem NTP-Server und dem langzeitstabilen Referenzzeitgeber 10 findet
dabei ein Abgleich der absoluten UTC-Zeit über das Network-time-Protocol statt.
Der langzeitstabile Referenzzeitgeber 10 wird nur in einer
niedrigen zeitlichen Auflösung (< 15 ms) ausgelesen und weist deshalb eine
entsprechen) schlechte Kurzzeitgenauigkeit auf. Zur Erhöhung der Kurzzeitstabilität
wird der langzeitstabile Referenztakt mittels Interpolation in einem Interpolator
12 mit einem kurzzeitstabilen Referenztakt, der in einem kurzzeitstabilen
Referenzzeitgeber 11 erzeugt wird, in seiner Kurzzeitstabilität erhöht.
Hierzu wird der vom langzeitstabilen Referenzzeitgeber 10
als Zählerstand vorliegende langzeitstabile Referenztakt von der Systemsoftware
des Interpolators 12 zyklisch in einem bestimmten Abtastintervahl von einer
zyklisch aufgerufenen Task (Arbeitsanweisung), wie im Zeitdiagramm der
4 dargestellt ist, ausgelesen. Ändert sich der
Zählerstand des internen Zählers im langzeitstabilen Referenzzeitgeber
10, so wird der aktuelle Wert des kurzzeitstabilen Taktes des kurzzeitstabilen
Referenzzeitgebers 11 – wiederum als Zählerstand eines internen
Zählers im kurzzeitstabilen Referenzzeitgeber 11 – von der
Systemsoftware des Interpolators 12 ausgelesen.
Da die Task, wie im Zeitdiagramm der 4
dargestellt ist, nur zu bestimmten Zeitpunkten aufgerufen wird, kommt es zu einem
Interpolationsfehler-Versatz der gestrichelten Linien zwischen den einzelnen Zeitintervallen
der langzeitstabilen Referenzzeit –, der sich über die Zeit nicht fortpflanzt,
aber einen Zeit- oder Phasenjitter darstellt und mit geeigneten Algorithmen beseitigt
werden muss. Der vom Interpolator ermittelte Zählerstand des kurzzeitstabilen
Referenzzeitgebers 11 in Kombination mit dem ermittelten Zählerstand
des langzeitstabilen Referenzzeitgebers 10, die zusammen einen kurz- und
langzeitstabilen Referenztakt ergeben, werden noch einmal zyklisch in einem gegenüber
dem kurzzeitstabilen Referenztakt erhöhten Abtasttakt von einer Task der Systemsoftware
des zweiten Taktgeber 8 abgetastet und ergeben bei einem Wechsel des vom
Interpolator 12 ermittelten Zählerstandes wiederum als Wert eines
Zählerstandes den vom zweiten Taktgeber 8 erzeugten zweiten Takt.
Auf der Basis des somit erzeugten zweiten Taktes wird im nächsten
Verfahrensschritt S40 im Transportstrom-Remultiplexer 13 der zu sendende
ATSC-Transportdatenstrom erzeugt. Das Zeitintervall für einen VSB-Datenrahmen,
in den insgesamt 624 Transportdatenpakete gepackt werden, entspricht bei einer Taktfrequenz
des zweiten Taktes in Höhe von 20,66 Hz einem Wert von 48,39 ms. Es weist aufgrund
des Interpolationsfehlers im Interpolator 12 und aufgrund der Überabtastung
durch die Task der Systemsoftware des zweiten Taktgebers 8 einen Jitter
gemäß dem Zeitdiagramm in 6 und
7 auf. Das Zeitintervall des zweiten Taktes in Höhe
von 48,39 ms stellt die Dauer eines VSB-Datenrahmens des zu sendenden ATSC-Transportdatenstroms
dar, in die Transportdatenpakete mit TV-Programmdaten für stationäre und
mobile Empfänger gemäß dem ATSC-M/H-Übertragungsstandard gefüllt
werden.
Im nächsten Verfahrensschritt S50 wird in einem Regler zur Bestimmung
der zeitlichen Relation zwischen erstem und zweitem Takt 14 eine Zuordnung
der einzelnen ersten Taktimpulse des ersten Taktes zu den einzelnen Taktintervallen
des zweiten Taktes ermittelt. Da der erste Takt vom ersten Taktgeber
7 nicht veränderbar ist und somit an den als Referenztakt dienenden
zweiten Takt nicht angepasst werden kann, kann eine echte Synchronisierung zwischen
erstem und zweitem Takt im Sinne des Erreichens einer fixen Relation zwischen ersten
und zweiten Takt über der Zeit nicht realisiert werden. Da die Synchronität
des ersten und zweiten Taktes nicht realisierbar ist, ist zumindest die über
der Zeit veränderliche Relation zwischen ersten und zweiten Takt zu ermitteln,
um auf der Basis dieser ermittelten Relation eine korrekte Zuordnung zwischen den
einzelnen Transportstrompaketen des empfangenen Transportdatenstroms und den einzelnen
VSB-Datenrahmen des zu sendenden Transportdatenstroms zu gewinnen.
Als Größe zur Charakterisierung der zeitveränderlichen
Relation zwischen ersten und zweiten Takt wird die Anzahl von ersten Taktimpulsen
benutzt, die zusätzlich zu den ersten Taktimpulsen im Fall eines zum zweiten
Takt synchronisierten ersten Taktes in das Zeitintervall eines zweiten Taktes fallen.
Da die Anzahl der in ein Zeitintervall des zweiten Taktes jeweils fallenden ersten
Taktimpulse eine zeitveränderliche Größe ist, wird diese Größe
durch eine Regelung bestimmt. Dem Regler wird hierzu die Regeldifferenz zwischen
den über der Zeit akkumulierten ersten Taktimpulsen und den über der gleichen
Zeit akkumulierten und in jedes Zeitintervall des zweiten Taktes jeweils fallenden
ersten Taktimpulsen zugeführt, die für den Fall eines zum zweiten Takt
synchronisierten ersten Taktes in ein Zeitintervall des zweiten Taktes fallen und
die zusätzlich vom Regler ermittelt wurden.
Im Regler zur Bestimmung der zeitlichen Relation zwischen erstem und
zweitem Takt 14 gemäß 2 werden die
ersten Taktimpulse des vom ersten Taktgeber 7 erzeugten ersten Taktes einem
Abtast- und Halteglied (Sample/Hold-Glied (S/H)) zugeführt. Die ersten Taktimpulse
werden zu den Taktzeiten des zweiten Taktes abgetastet und über das Zeitintervall
des zweiten Taktes jeweils zwischengespeichert. Die abgetasteten ersten Taktimpulse
werden in einem nachfolgenden Verzögerungsglied 16 über ein einziges
Zeitintervall des zweiten Taktes verzögert. Durch Subtraktion der um ein Zeitintervall
des zweiten Taktes verzögerten ersten Taktimpulse von den aktuell abgetasteten
ersten Taktimpulsen in einem Subtrahierglied 17 werden die in das letzte
Zeitintervall des zweiten Taktes fallenden ersten Taktimpulse ermittelt.
Diese in das letzte Zeitintervall des zweiten Taktes fallenden ersten
Taktimpulse werden in einem nachfolgenden Summierers 18 zu den in den vorhergehenden
Zeitintervallen des zweiten Taktes jeweils ermittelten ersten Taktimpulsen hinzuaddiert.
Der Zählerstand des Summierers 18 beinhaltet somit die seit der Initialisierung
des Reglers 14 akkumulierte Anzahl von ersten Taktimpulsen des vom ersten
Zeitgeber 7 erzeugten ersten Taktes, während am Eingang des Abtast-
und Halte-Gliedes 15 eine Anzahl von ersten Taktimpulsen des ersten Taktes
als Zählerstand eines Zählers anliegt, der zur Initialisierung des Reglers
14 typischerweise einen von Null verschiedenen Zählerstand aufweist.
In einem weiteren Subtrahierglied 19 wird zur Bildung einer
Regeldifferenz die seit der Initialisierung des Reglers 14 im Summierer
18 akkumulierte Anzahl von ersten Taktimpulsen von der seit der Initialisierung
des Reglers 14 akkumulierten und in jedes Zeitintervall des zweiten Taktes
jeweils fallenden ersten Taktimpulsen, die von einem weiter unten noch erläuterten
Regler ermittelt wurden, subtrahiert.
Diese Regeldifferenz, die typischerweise als Signal über der
Zeit auch mit Signalverunreinigungen behaftet ist, wird einem Filter 20
zur Ermittlung von diskontinuierlichen Signalschwankungen im Regeldifferenz-Signal
zugeführt. Hierbei kann es sich gemäß 8
um Signalspitzen (Spikes) oder um sprungförmige Signalschwankungen (Stegs)
handeln. Die selektierten Signalspitzen und sprungförmigen Signalschwankungen
werden in einem nachfolgenden Subtrahierglied 21 aus dem Regeldifferenzsignal
beseitigt. Zusätzlich im Regeldifferenzsignal enthaltene Jitter, die aus der
Abtastung im ersten Taktgeber 7 resultieren, werden in einem Mittelungsfilter
22 gefiltert, in dem rollierend über eine bestimmte Anzahl von Abtastwerten,
beispielsweise 40 Abtastwerte, eine Mittelung durchgeführt wird.
In einem anschließenden Dezimator 23 wird die Anzahl
der Abtastwerte des gefilterten Regeldifferenzsignals reduziert, um dem Regler
24 nicht in jedem Taktzyklus des zweiten Taktes zu aktivieren, sondern
erst nach einer bestimmten Anzahl von Taktzyklen des zweiten Taktes. Um eine Mitkopplung
des Reglers zu vermeiden, entspricht die Dezimierungsrate des Dezimators
23 der Mittelungslänge des Mittelungsfilters 22.
Das gefilterte und dezimierte Regeldifferenzsignal wird einem Regler
24 zugeführt, der aufgrund des primär integrierenden Übertragungsverhaltens
der Regelstrecke – integrierende Wirkung des weiter unten noch zu erläuternden
Summierers 26 – lediglich als Regler mit proportionalen Regelverhalten,
sogenannter P-Regler, auszulegen ist. Der Regler 24 ermittelt in Abhängigkeit
des gefilterten und dezimierten Regeldifferenzsignals und aufgrund der Übertragungscharakteristik
des geschlossenen Regelkreises ein Signal, das der Anzahl von ersten Taktimpulsen
entspricht, die zusätzlich zu den ersten Taktimpulsen, die im Fall eines zum
zweiten Takt synchronisierten ersten Taktes innerhalb des aktuellen Zeitintervalls
des zweiten Taktes zu liegen kommen, innerhalb des aktuellen Zeitintervalls des
zweiten Taktes hinzugefügt werden müssen, um der aktuell
veränderten Relation zwischen ersten und zweiten Takt zu entsprechen.
Dem Ausgangssignal des Reglers 24 wird in einem nachfolgenden
Addierer 25 ein Signal hinzugefügt, das der Anzahl von ersten Taktimpulsen
im Fall eines zum zweiten Takt synchronisierten ersten Taktes entspricht. Somit
liegt am Ausgang des Addierers 25 ein Signal an, das der zur veränderten
Relation zwischen erstem und zweitem Takt korrespondierenden Anzahl von ersten Taktimpulsen
entspricht, die während des aktuellen Zeitintervalls des zweiten Taktes auftreten.
Die aufgrund der aktuell veränderten Relation zwischen erstem
und zweitem Takt in ein Zeitintervall des zweiten Taktes passende Anzahl von ersten
Taktimpulsen wird in einem nachfolgenden Summierer 26 zu den in den bisherigen
Zeitintervallen des zweiten Taktes seit Initialisierung des Reglers 14
jeweils passende Anzahl von ersten Taktimpulsen hinzuaddiert. Der Ausgang des Summierers
26 wird, wie weiter oben schon erwähnt wurde, an den invertierten
Eingang des Subtrahierers 19 zur Bildung der Regeldifferenz geführt.
Im nächsten Verfahrensschritt S60 wird im Transportdatenstrom-Remultiplexer
13 für jedes ATSC-Transportdatenpaket des empfangenen ATSC-Transportdatenstroms
der zugehörige VSB-Datenrahmen des im Verfahrensschritt S40 erzeugten zu sendenden
ATSC-Transportdatenstroms selektiert und die Position des jeweiligen ATSC-Transportdatenpakets
innerhalb des selektierten VSB-Datenrahmens bestimmt.
Für den Fall, dass sich die Position des ATSC-Transportdatenpakets
zwischen dem empfangenen und dem zu sendenden ATSC-Transportdatenstrom nicht ändert,
erfolgt die Selektion des korrekten VSB-Datenrahmens anhand der seit dem Empfangszeitpunkt
des ersten ATSC-Transportdatenpakets des ATSC-Transportdatenstroms akkumulierten
Anzahl von ersten Taktimpulsen zum Empfangszeitpunkt des jeweiligen Transportdatenpakets
und der durch den Regler 14 im vorherigen Verfahrensschritt S50 ermittelten
Anzahl von ersten Taktimpulsen je Zeitintervall des zweites Taktes und damit je
Zeitintervall eines VSB-Datenrahmens. Ändert sich die Relation zwischen erstem
und zweitem Takt ständig, so ist eine Relation zwischen der akkumulierten Anzahl
von VSB-Datenrahmen und der zugehörig akkumulierten Anzahl von ersten Taktimpulsen
heranzuziehen.
Für den Fall, dass sich die Position des ATSC-Transportdatenpakets
zwischen dem empfangenen und dem zu sendenden ATSC-Transportdatenstrom ändert,
ist eine der Positionsänderung im ATSC-Transportdatenstrom entsprechende Anzahl
von ersten Taktimpulsen zu ermitteln. Diese zu ermittelnde Anzahl von ersten Taktimpulsen
ist wiederum anhand der durch den Regler 14 ermittelten Anzahl von ersten
Taktimpulsen je Zeitintervall eines VSB-Datenrahmens bzw. anhand der Relation zwischen
der akkumulierten Anzahl von VSB-Datenrahmen und der zugehörig akkumulierten
Anzahl von ersten Taktimpulsen zu bestimmen. Die Selektion des korrekten VSB-Datenrahmens
für ein in seiner Position verschobenes ATSC-Transportdatenpaket basiert auf
der seit dem Empfangszeitpunkt des ersten ATSC-Transportdatenpakets akkumulierten
Anzahl von ersten Taktimpulsen zum Empfangszeitpunkt des jeweiligen ATSC-Transportdatenpakets
zuzüglich der ermittelten, zur Positionsänderung korrespondierenden Anzahl
von ersten Taktimpulsen.
Enthält das in den korrekten VSB-Datenrahmen einzufügende
ATSC-Transportdatenpaket eine Zeitmarke in Form eines Zählerwertes im PCR-Feld,
so ist der Zählerwert im PCR-Feld mit der zum aktuellen Empfangszeitpunkt des
ATSC-Transportdatenpakets ermittelten Anzahl von Taktimpulsen des als PCR-Frequenz
dienenden Taktes und der zur Positionsveränderung des ATSC-Transportdatenpakets
aktuell ermittelten Anzahl von ersten Taktimpulsen zu aktualisieren.
Nach Hinzufügen der ATSC-Transportdatenpakete für mobile
Empfänger in den dafür nach dem Standard vorgesehenen Positionen im zu
sendenden ATSC-Transportdatenstrom durch einen an den Transportdatenstrom-Remultiplexer
13 sich anschließenden Multiplexer für ATSC-M/H-Daten
17 werden die einzelnen ATSC-Transportdatenpakete des zu sendenden ATSC-Transportdatenstroms
blockweise in Vielfachen eines VSB-Datenrahmens in einen Pufferspeicher
3 eines Generators 28 für den Transportdatenstrom am Ausgang
geschrieben.
Da der von einem dritten Taktgeber 29 erzeugte dritte Takt
zur Ausstrahlung des ATSC-Transportdatenstroms mit dem als Referenztakt dienenden
zweiten Takt nicht synchronisiert ist, wird der dritte Takt im abschließenden
Verfahrensschritt S70 über eine Pufferfüllstands-Regelung 30
zum zweiten Takt synchronisiert.
Bei der Pufferfüllstands-Regelung wird gemäß
3 der Füllstand des Pufferspeichers
31 mit einer geeigneten Messauswertung erfasst.
Aufgrund von stochastischen Schwankungen in der zeitlichen Verarbeitung
der idealerweise exakt zyklisch bearbeiteten Tasks, Threads und Prozesse im Scheduler
des Echtzeitbetriebssystems kommt es zu Sprüngen der einzelnen Abtastzeitpunkte
in einem einzigen Zeitpunkt und/oder während eines bestimmten
Zeitintervalls und damit konsequenterweise zu Sprüngen der zugehörigen
Messwerte des Füllstands in einem einzigen Zeitpunkt (Spikes) und/oder während
eines bestimmten Zeitintervalls (Stegs). Der hinsichtlich seines Wertes springende
Messwert des Füllstands wird einem Filter 32 zur Ermittlung von diskontinuierlichen
Signalschwankungen im Füllstandssignal zugeführt. Die selektierten Signalspitzen
und sprungförmigen Signalschwankungen werden in einem nachfolgenden Subtrahierglied
33 aus dem Füllstandssignal beseitigt.
Zusätzlich im Füllstandssignal enthaltene zufällige
Signalanteile singulärer Natur, die auf einmaligen Prozessen im Echtzeitbetriebssystem,
beispielsweise Interrupt- oder Kommunikationsverarbeitung, resultieren, werden in
einem Mittelungsfilter 34 gefiltert, in dem rollierend über eine bestimmte
Anzahl von Abtastwerten, beispielsweise 40 Abtastwerte, eine Mittelung
durchgeführt wird.
In einem anschließenden Dezimator 35 wird die Anzahl
der Abtastwerte des gefilterten Füllstandssignals reduziert, um den nachfolgenden
Regler 37 nicht in jedem Taktzyklus des vierten Taktes zu aktivieren, sondern
erst nach einer bestimmten Anzahl von Taktzyklen des vierten Taktes. Um eine Mitkopplung
des Reglers zu vermeiden, entspricht die Dezimierungsrate des Dezimators
35 der Mittelungslänge des Mittelungsfilters 34.
Das gefilterte und dezimierte Füllstandssignal wird einem Summierglied
36 zugeführt, dem der negative Füllstand Fülls tan d(t0)
des Pufferspeichers 31 zum Initialisierungszeitpunkt t0 zugeführt
wird. Das Signal am Ausgang des Summiergliedes entspricht der Regeldifferenz der
Füllstandsregelung mit dem Füllstand Fülls tan d(t0) des
Pufferspeichers 31 zum Initialisierungszeitpunkt t0 als Referenzwert.
Das Regeldifferenzsignal wird einem Regler 37 zugeführt,
der aufgrund des integrierenden Übertragungsverhaltens des die Regelstrecke
bildenden Pufferspeichers 31 nur ein rein proportionales Regelverhalten
(so genannter P-Regler) aufweisen muss. Der Regler 37 ermittelt in Abhängigkeit
des gefilterten und dezimierten Regeldifferenzsignals und aufgrund der Übertragungscharakteristik
des geschlossenen Regelkreises ein Signal, das der Erhöhung oder der Reduzierung
des nominalen dritten Taktes entspricht, um den Pufferspeicher 31 wieder
auf seinen Referenzwert, dem Füllstand Fülls tan d(t0) des
Pufferspeichers 31 zum Initialisierungszeitpunkt t0, zurückzuführen.
Ist folglich der der gemessene Füllstand größer als
der Füllstand Fülls tan d(t0) zum Initialisierungszeitpunkt
t0, d. h. der zweite Takt, mit dem der Pufferspeicher 31 befüllt
wird, ist größer als der dritte Takt, mit dem der Pufferspeicher
31 entleert wird, so erzeugt der Regler 37 ein positives Ausgangssignal,
das in einem nachfolgenden Summierer 38 zum Wert des nominalen dritten
Taktes hinzuaddiert wird und einen gegenüber dem nominalen dritten Takt erhöhten
realen dritten Takt aufweist. Der Pufferspeicher 31 wird folglich mit einem
gegenüber dem ausgeregelten Zustand der Füllstandsregelung erhöhten
dritten Takt entleert, um eine Angleichung des Füllstands an den Referenzwert
des Füllstands Fülls tan d(t0) zum Initialisierungszeitpunkt
t0 zu erreichen.
Ist dagegen der der gemessene Füllstand kleiner als der Füllstand
Fülls tan d(t0) zum Initialisierungszeitpunkt t0, d.
h. der zweite Takt, mit dem der Pufferspeicher 31 befüllt wird, ist
kleiner als der dritte Takt, mit dem der Pufferspeicher 31 entleert wird,
so erzeugt der Regler 37 ein negatives Ausgangssignal, das in einem nachfolgenden
Summierer 38 zum Wert des nominalen dritten Taktes hinzuaddiert wird und
einen gegenüber dem nominalen dritten Takt reduzierten realen dritten Takt
aufweist. Der Pufferspeicher 31 wird folglich mit einem gegenüber
dem ausgeregelten Zustand der Füllstandsregelung reduzierten dritten Takt entleert,
um eine Angleichung des Füllstands an den Referenzwert des Füllstands
Fülls tan d(t0) zum Initialisierungszeitpunkt t0 zu erreichen.
Die obig ausgeführte Synchronisierung zwischen zwei Takten auf
der Basis einer Regelung der Anzahl von Taktimpulsen des einen Taktes innerhalb
des Taktintervalls des anderen Taktes einerseits und einer Pufferfüllstandsregelung
andererseits lässt sich auch auf andere Taktsynchronisierungen innerhalb eines
Sendersystems übertragen und ist von der Erfindung mit abgedeckt. So ist auch
beim Einfügen von IP-Datenpakete für mobile Empfänger in den Reed-Solomon-kodierten
ATSC-M/H-Transportcontainer (Reed-Solomon-Datenrahmen) eine Ermittlung des Empfangszeitpunkts
des IP-Datenpakets, ein Einfügen des IP-Datenpakets in der richtigen zeitlichen
Lage des Reed-Solomon-Datenrahmens sowie eine Korrektur von in speziellen Transportdatenpaketen
enthaltenen Zeitmarken (beispielsweise RTP- und RTCP-Zeitstempel) nötig.
Die Erfindung lässt sich auf alle Schnittstellenstandards, z.
B. Asynchronous-Serial-Interface-Standard (ASI), Standard der Society-of-Motion-Picture-and
Television-Engineers (SMPTE), Ethernet-Standard usw., mit den dazugehörigen
Taktgenauigkeiten anwenden.
Die Erfindung ist nicht auf die dargestellte Ausführungsform
beschränkt. Von der Erfindung sind auch andere heutige und zukünftige
digitale TV-Übertragungsstandards mit äquivalenten Taktsynchronisierungsproblemen
abgedeckt.
ZITATE ENTHALTEN IN DER BESCHREIBUNG
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen.
Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung.
Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
Zitierte Patentliteratur
- US 2005/0036521 A1 [0003]
- US 7532677 B2 [0004]