-
Die
vorliegende Erfindung bezieht sich auf einen Informationsserver
zum Bereitstellen von Information in einem Ausgangstransportstrom,
insbesondere auf einen Informationsserver, der Datenseiten und Dateien in
besondere Kanälen
eines Transportstroms einfügen
kann, beispielsweise für
Rundfunk, zusammen mit Video- und
Audioinformation, beispielsweise bei einem DVB-Rundfunk.
-
Es
ist bekannt, Video- und/oder Audiodaten von verschiedenen Quellen
zu nehmen, um diese zu Transportstrompaketen anzuordnen, beispielsweise
MPEG2, zur Übertragung
als entsprechende Kanäle
eines Transportstroms.
-
Es
wurde nun vorgeschlagen, verschiedene Formen an Information in einem
derartigen Transportstrom zu übertragen.
Die Information kann Bilder, Java-Anwendungen und dgl. enthalten.
-
In
der
US 5 805 821 ist
ein Medienstreamer beschrieben, der aufweist: zumindest einen Steuerknoten; eine
Benutzerschnittstelle, welche einen Ausgang hat, der mit dem zumindest
einem Steuerknoten gekoppelt ist; zumindest einen Speicherknoten,
um eine Digitaldarstellung von zumindest einer Videopräsentation
zu speichern; und mehrere Kommunikationsknoten, die jeweils einen
Eingangsport haben, um eine Digitalrepräsentation von zumindest einer
Videopräsentation
davon zu empfangen. Die Videopräsentation
erfordert eine Zeit T, um diese zur Gänze zu zeigen und ist als mehrere
N Datenblöcke
gespeichert. Jeder Datenblock speichert Daten entsprechend einer
T/N-Periode der Videodarstellung. Jeder Kommunikationsknoten hat
außerdem
mehrere Ausgangsports, um eine Digitalpräsentation auszugeben. Ein Schaltungsschalter
ist zwischen dem zumindest einen Speicherknoten und den Eingangsports
der Kommunikationsknoten verbunden, um einen oder mehrere Eingangsports
mit dem zumindest einen Speicherknoten zu koppeln. Die Benutzerschnittstelle
umfasst eine Fähigkeit,
Befehle zur Ausübung
zu spezifizieren, und der zumindest eine Steuerknoten antwortet
auf individuelle von den Befehlen, um zumindest einen des zumindest
einen Speicherknoten und zumindest einen der mehreren Kommunikationsknoten
in Zusammenwirkung mit dem Schaltungsschalter zu steuern, um eine
Funktion in Verbindung mit individuellen der Befehle auszuführen. Die
Befehle können
videokassetten-rekorderartige Befehle umfassen, welche Befehle aufweisen,
welche aus einer Gruppe ausgewählt werden,
welche einen Lade-Befehl, einen Auswurf-Befehl, einen Wiedergabe-Befehl,
einen Langsam-Befehl, einen
schnellen Vorlauf-Befehl, einen Pausen-Befehl, einen Stopp-Befehl,
einen Zurückspul-Befehl
und einen Stumm-Befehl aufweist. Die Befehle können außerdem Befehle aufweisen, welche
aus einer Gruppe ausgewählt
werden, welche einen Wiedergabelisten-Befehl, einen Wiedergabelängen-Befehl,
und einen Sicherungs-Befehl aufweist. Eine synchrone Anwendungs-Programmschnittstelle
(API) ist vorgesehen, um über
die Benutzerschnittstelle ein Benutzeranwendungsprogramm mit dem
zumindest einen Steuerknoten zu koppeln. Die API umfasst Fernprozedurruf-Prozeduren
(RPC).
-
In
der
US 5 868 539 ist
das Herunterladen von Anwendungs-Software und das Übertragen
von Audio-/Videoinformation über
einen Kanal eines digitalen Rundfunknetzwerks beschrieben. Das Netzwerk
liefert eine Zweiwege-Niedriggeschwindigkeits-Datenkommunikationskapazität, beispielsweise
für das
Signalisieren und/oder für
interaktive Textdienste. Das Signalisieren über Datenkommunikation mit
einem Textserver steuert das Herunterladen eines ausführbaren
Codes vom digitalen Rundfunkkanal in ein programmierbares digitales Set-Top-Endgerät. Das Ausführen des
heruntergeladenen Codes wiederum steuert selektives Einfangen und die
Darstellung von Audio-/Videosegmenten, welche über einen der digitalen Rundfunkkanäle empfangen
werden. Das angesiedelte Betriebssystem und die Anwendungssoftware
im Endgerät
liefert die Gesamtkommunikation mit den Knoten des Netzwerks. Der
heruntergeladene Code bildet eine nichtangesiedelte Anwendung, welche
einen Satz vorher festgelegter Funktionsrufe hat, um Kommunikationsfunktionen
der angesiedelten Software zu aktivieren.
-
In
der
US 5 598 415 ist
ein Verfahren beschrieben, um isochrone Hochratendaten in einem MPEG2-Transportstrom
in robuster Weise zu kommunizieren. Die Syntax für den Datenbitstrom sorgt außerdem für die Kommunikation
eines Datentakt-Inkrementwerts zu einem Decoder. Der Inkrementwert
ermöglicht eine
vereinfachte und kosteneffektive Annäherung an die direkte digitale
Synthese einer Taktfrequenz, die notwendig ist, Daten vom paketierten
Datenstrom im Decoder wiederzuentwickeln. Die Zeitauflösung zum
Darstellen isochroner Datendarstellungseinheiten im Decoder wird
dadurch vergrößert, indem
eine Präsentationszeitstempel-Erweiterung
(PTS) vergrößert wird,
um einen Standard-MPEG2-PTS
zu ergänzen.
-
In
der
WO98/20417 ist
eine Architektur für
eine Informationsvorrichtung beschrieben, welche für eine spezifische
Anwendung angepasst ist, um eine Vielzahl von Vorrichtungspersonen
bezogen auf eine einzige Kerntechnologie zu unterstützen. Die
Informationsvorrichtung umfasst eine anwendungs-optimierte Hardware-Plattform
einschließlich
eines Prozessors, einer Anzeigeeinrichtung, einer Eingabe-/Ausgabeeinrichtung,
einer Benutzereingabeeinrichtung und eines Arbeitsspeichers. Ein
nichtflüchtiger
Speicher speichert Vorrichtungsbetriebssoftware und Anwendungssoftware.
Die Vorrichtungsbetriebssoftware umfasst einen Betriebssystemskern,
der für
den Prozessor angepasst ist, und eine Systembücherei, welche logisches Bereitstellen
einer Schnittstellen-Anwendungs-Software liefert. Eine Betriebsdienstebene
liefert eine Abstraktionsfunktion zwischen der Systembücherei und
dem Anwendungsbetriebs-Systemkern und Hardware, so dass die Logik
in der Systembücherei
und obiges, beispielsweise die Anwendung selbst, mit einem Entwicklungsplattform-Betriebssystem
ausgeführt
werden kann, welches gegenüber
dem Betriebssystem der Anwendung völlig verschieden ist.
-
In
der
US 5 633 654 sind
Videodaten für
zwei oder mehrere Videoströme
beschrieben, welche über eine
einzige Hintergrundbefehlsliste verarbeitet werden, welche einen
oder mehrere Hintergrundbefehle enthält, und eine einzige Vordergrundbefehlsliste,
welche einen oder mehrere Vordergrundbefehle enthält, wobei die
Vordergrundbefehlsliste lediglich während eines vertikalen Austastintervalls
des Anzeigerasters eines Monitors ausgeführt wird. Die verarbeiteten
Videodaten werden dann während
der Rasterperiode angezeigt. Bei einer bevorzugten Ausführungsform
wird, wenn die Durchführung
eines Hintergrundbefehls nicht durch den Start eines vertikalen
Austastintervalls beendet wurde, der Hintergrundbefehl unterbrochen,
der Status der Hintergrundbefehlsdurchführung wird gesichert, die Vordergrundbefehlsliste
wird verwirklicht, und dann wird der unterbrochene Hintergrundbefehl
wieder aufgenommen. Die Hintergrundbefehle sind vorzugsweise die, welche
nicht unmittelbar die Anzeige-Bitmaps beeinträchtigen, während die Vordergrundbefehle
die sind, welche unmittelbar die Anzeige-Bitmaps beeinträchtigen.
Eine geeignete Synchronisation der Videodatenverarbeitung und der
Videoanzeige auf Rasterbasis wird sichergestellt.
-
Gemäß der vorliegenden
Erfindung wird ein Informationsserver zum Einfügen von Datenseiten und Dateien
in bestimmte Kanäle
eines Ausgangstransportstroms zusammen mit Video- und Audioinformation
eines digitalen Videorundfunks bereitgestellt, wobei der Informationsserver
aufweist:
einen API-Server, um von einer externen Host-Steuerung
Steuerung und Daten zum Einfügen
in den Transportstrom zu empfangen;
einen Speicher zum Speichern
zumindest der Daten; und
zumindest einen Stromgenerator zum
Zusammenbauen von den Daten und unter der Steuerung des API-Servers
von Transportstrompaketen zur Einfügung in den Transportstrom,
wobei
jeder Stromgenerator zumindest einen Karussell-Bildner aufweist,
um eine Reihe von Nutzinformationen zur zyklischen Übertragung
im Transportstrom zu bilden,
und die Karussell-Bildner, welche
DSMCC-Objekt-Karusselle und/oder DSMCC-Datenkaruselle bilden, wobei DSMCC-Abschnitte
von den Daten gebildet werden.
-
Auf
diese Weise kann der Informationsserver als separate integrierte
Einheit vorgesehen werden, der leicht mit anderen ähnlichen
Informationsservern oder Anbietern anderer Transportsysteme, beispielsweise zur
Videoinformation, gemultiplext werden kann. Mittels des API-Servers
kann der Informationsserver durch einen externen Host-Computer gesteuert
und konfiguriert werden. Irgendeine Information zur Übertragung durch
den Informationsserver kann von der Host-Steuerung zum Speicher des Informationsserver übertragen werden. Ähnlich kann
der Stromgenerator dann ausgewählte
Information in ausgewählte
Kanäle
des Transportstroms, wenn dies durch die Host-Steuerung gefordert
wird, sowie unter der Steuerung des API-Servers einfügen. Wo
es erforderlich ist, Information wiederholt zu übertragen oder unterschiedliche
Information zyklisch zu übertragen,
können
schon berechnete Nutzinformationen für den Transportstrom ebenfalls
durch den Stromgenerator gespeichert werden, so dass die Transportstromdaten
nicht jedes Mal zur Übertragung
zusammengesetzt werden müssen.
Eine Reihe an Nutzinformationen kann vorbereitet sein und kann zyklisch
in einem Kanal des Transportstroms übertragen werden. Wenn mehr
als ein Karussellbildner vorgesehen ist, kann eine Anzahl unterschiedlicher
Seitenkarusselle im Transportstromkanal vorgesehen sein.
-
Vorzugsweise
umfasst jeder Stromgenerator einen Multiplexer/Paketierer, um die
Nutzinformationen in Paketen anzuordnen und um diese zu multiplexen,
um den Transportstrom zu bilden.
-
Insbesondere,
wo verschiedene Datenquellen im Stromgenerator vorgesehen sind,
beispielsweise eine Anzahl von Karussell-Bildnern und/oder Übertragung
von groben Daten von dem Speicher, können verschiedene Seiten miteinander
gemultiplext werden und in den Transportstrompaketen vorgesehen
sein.
-
Vorzugsweise
können
der API-Server und der zumindest eine Stromgenerator eine Betriebssystem-Abstraktionsebene
aufweisen, um eine Schnittstelle mit einem von einer Mehrzahl von
Betriebssystemen zu bilden, so dass der Informationsserver mit einem
anderen Betriebssystem arbeiten kann, indem lediglich die Betriebssystem-Abstraktionsebene ändert wird.
-
Somit
kann der Informationsserver auf einem von einer Anzahl von Betriebssystemen
aufgebaut sein, beispielsweise IRIX, LINUX, SOLARIS, Windows NT
usw.. Der Informationsserver kann auf Basis einer Plattform basieren,
beispielsweise C++, jedoch lediglich durch Ändern der Betriebssystem-Abstraktionsebene
ist es möglich,
das Betriebssystem zu andern, oder den Aufbau des Informationsservers
ansonsten zu andern.
-
Vorzugsweise
weist der Stromgenerator eine Ansteuerabstraktionsebene auf, um
eine Schnittstelle mit einem von mehreren Ansteuerungen für einen
DVB-Codierer zu
bilden, so dass der Informationsserver mit einer anderen Ansteuerung
verwendet werden kann, indem lediglich die Ansteuerabstraktionsebene
geändert wird.
-
Auf
diese Weise ist es durch Wechseln der Ansteuerabstraktionsebene
möglich,
die Ansteuerung zu wechseln, bei dem der Informationsserver verwendet
wird, ohne einen anderen Teil des Informationsservers zu ändern.
-
Die
vorliegende Erfindung wird besser aus der nachfolgenden Beschreibung
verstanden, die lediglich als Beispiel angegeben wird, und zwar
mit Hilfe der beiliegenden Zeichnungen, in denen:
-
1 ein
Rundfunknetzwerk zeigt, bei dem die vorliegende Erfindung angewandt
werden kann;
-
2 den
Wiedergabeabschnitt eines Informationsservers zeigt, bei dem die
vorliegende Erfindung angewandt werden kann;
-
3 eine
Anordnung von Informationsservern zeigt, bei der die vorliegende
Erfindung angewandt werden kann;
-
4A und 4B einen
Informationsserver zeigen, bei dem die vorliegende Erfindung angewandt werden
kann;
-
5 ein
Objekt-/Datenkarussell zeigt;
-
6 eine
Matrix begrifflicher Zeitschlitze zeigt, um Datenoperationen zu
priorisieren;
-
7 den
Aufbau von DVB-Abschnitten von Dateien zeigt; und 8 eine
Abhängigkeitsstruktur
für Datentransformationen
zeigt.
-
Die
folgende Beschreibung bezieht sich auf einen Informationsserver,
bei dem die vorliegende Erfindung angewandt werden kann. Insbesondere
wird eine Architektur für
einen DVB-konformen Datenserver vorgeschlagen, der als Informationsserver
bezeichnet wird, der fähig
ist, DVB-konforme Datenströme
zu erzeugen, welche DSMCC-Daten und Objekt-Karusselle enthalten.
Außerdem
dient der Informationsserver dazu, das dynamische Aktualisieren
von Inhalt innerhalb von DSMCC-Daten und des Objekt-Karussells zu
unterstürzen,
während
diese nach außenhin
strömend
abgegeben werden.
-
1 zeigt
den Teil eines DVB-Systems, bei dem der Informationsserver eingebaut
ist. Es sollte jedoch als vorteilhaft erkannt werden, dass der Informationsserver
auch in anderen DVB-Netzwerken beispielsweise Kabelnetzwerken oder
terrestrischen Netzwerken, und der außerdem in anderen DVB-Netzwerken eingebaut
werden kann.
-
Ein
Wiedergabeabschnitt 2 kann eine Anzahl von Video-/Audioquellen 4 wie
auch Life-Quellen 6 aufweisen. Daten von diesen Quellen,
beispielsweise in Form von MPEG2-Transportstrompaketen, werden einem
Multiplexer 8 zugeführt
und vom Wiedergabeabschnitt 2 ausgegeben. Der gemultiplexte
Datenstrom wird einem Modulator 10 zur Übertragung in diesem Beispiel
von einem Satelliten 12 zugeführt. Das Signal wird dann durch
die Set-Up-Box 14 eines Fernsehers 16 empfangen.
Signale von einer Anzahl anderer Modulatoren 10', 10' usw. können dann
zusammen zugeführt
und zum Satelliten 12 übertragen
werden.
-
Bei
diesem System ist es auch möglich,
einen Informationsserver 18 vorzusehen. Wie die Video-/Audioquellen 4, 6 liefert
der Informationsserver 18 Daten, beispielsweise in Form
von MPEG2-Transportstrompaketen, zum Multiplexer 8, welche
in den Datenstrom zur Übertragung
eingeführt
werden. Der Informationsserver kann dazu verwendet werden, um irgendeine
Form von Daten zu senden, beispielsweise MHEG5-Anwendungen, HTML-Seiten,
Java-Anwendungen, IRD-Software-Aktualisierungen
und weitere Datendienste in Form von DSMCC-Objekten auf Datenkarussellen.
Wie gezeigt ist, ist der Informationsserver 18 mit einem
Host 20 versehen, der dazu verwendet wird, das Verhalten
des Informationsservers 18 zusammen mit dem Inhalt und der
Natur der Daten, welche vom Informationsserver 18 ausgegeben
werden, zu steuern.
-
Der
Informationsserver wird durch den Host-Computer unter Verwendung
eines Steuernetzwerks, beispielsweise TCP/IP über Ethernet gesteuert. Die
erzeugten Transportströme
werden über
irgendein strömendes
Netzwerk, beispielsweise Ethernet, DVB ASI, DVB LVDS oder ATM zu
den Empfängern
(PCs, STBs usw.) wiedergegeben.
-
2 zeigt
den Gesamtaufbau des Informationsservers. Ein API-Server 22 empfängt Steuerung
und Daten von einem externen Host. Die Daten werden zu einer Speichereinheit 24 zum
nachfolgenden Wiederauffinden übertragen.
Es zumindest ein Stromgenerator 26 dazu vorgesehen, um
einen MPEG2-Datenstrom auszugeben. Somit empfangt im Betrieb der
API-Server Daten, beispielsweise eine Reihe von Bildern und überträgt die Daten
dieser Bilder zum Speicher 24. Ein jeder der Stromgeneratoren 26 erzeugt
einen Strom an Daten unter der Steuerung des API-Servers 22 auf
Basis einer Beschreibung des Karussells. Insbesondere empfängt der
API-Server 22 eine Steuerung vom externen Host und steuert
der Reihe nach die Stromgeneratoren 26 in geeigneter Weise.
Wie später
beschrieben wird, können
die Stromgeneratoren 26 Karussell-Bildner aufweisen, um
somit Daten vom Speicher 24 in korrekter Sequenz zu übertragen.
-
Der
Zweck des API-Servers besteht darin, eine Software-Schnittstelle
bereitzustellen, auf die von der Ferne her durch einen Host-Computer
(beispielsweise einen PC) über
TCP/IP zugegriffen werden kann. Die Software-Schnittstelle wird
unter Verwendung eines RPC-Protokolls realisiert und beliefert den
Benutzer des Informationsservers mit einem Satz von Software-Abstraktionen,
welcher dem Benutzer es erlaubt, Objekt- und Datenkarusselle in
einer Weise zu definieren, welche unabhängig vom Transportbitstrom
ist, welcher sich jedoch bevorzugt die Konzeptstruktur der Karusselle
bündelt,
welche von dem Inhalt, welcher durch die Karusselle zu senden ist,
beginnt.
-
Außerdem verwaltet
der API-Server die Inhaltsdaten, welche auf der Inhaltsplatte des
Informationsservers vorhanden sind.
-
Vom
Architektur-Standpunkt aus wird der API-Server als ein Einzelteilprozess
realisiert, der zwei Hauptmodule aufweist: "RPC-Ebene" und "API-Implementierung". "Die RPC-Ebene" verwaltet die Steuernetzwerkverbindung
mit einem oder mehreren Host-Computern. Jede Verbindung wird als
eine Sitzung bezeichnet. Sie empfängt die RPC-Anforderungen von
der Host-Computersitzung, bringt die Anforderungen in serielle Form,
prüft,
ob sie gültig
sind, ordnet die Daten (Argumente) für die Anforderungen um, ruft
einen geeigneten Eingabepunkt bei der "API-Implementierung" auf, empfängt das Ergebnis (oder Fehler)
von der API-Implementierung,
ordnet die empfangenen Ergebnisse zu einer RPC-Antwort um und sendet
schließlich
die Antwort zurück
zum Host-Computer. Die API-Implementierung liefert einen Satz an
Funktionen, welche die Funktionalität des Informationsservers-API verwirklichen.
Sie ist interaktiv mit der Inhaltsplatte, schreibt/liest Daten auf
diese Platte und prüft
die Gültigkeit
der Argumente in jedem API-Ruf.
-
Die Übertragung
der Ströme
von den Stromgeneratoren 26 zum Multiplexer des Wiedergabeabschnitts 2 kann
eine Anzahl unterschiedlicher Formen annehmen. Es wurde vorgeschlagen,
dass das Strömen als
eine separate Einheit zum Informationsserver bereitzustellen ist.
Somit kann das Strömen
von beispielsweise DVB-ASI über
ein PRISM-Feld (wie erzeugt durch Sony Digital Network Solutions
Japan), DVB-LVDS, ATM oder Ethernet ausgewählt werden.
-
Es
wurde vorgeschlagen, dass der Informationsserver als ein Standard-4U-19-Inch-Gestellaufbau
vorgesehen wird. Das Steuernetzwerk zwischen dem Host-Computer und dem
Informationsserver könnte
beispielsweise Ethernet oder ATM sein.
-
3 zeigt,
wie ein Host-Computer dazu verwendet werden kann, eine Anzahl von
Informationsservern zu steuern, wobei jeder eine Anzahl von Strömen erzeugt.
-
4A zeigt
weitere Details des Informationsservers mit Bezug auf lediglich
einen Stromgenerator. Der API-Server 22 umfasst das RPC-Protokoll
(Fernprozedurruf-Protokoll), welches zulässt, dass auf die APIs durch
den Host-Computer
zugegriffen werden kann. Es ist außerdem möglich, dass die Steuerungs-APIs mit IIOP laufen
können,
da dies populärer
wird. Somit empfängt
der API-Server 2 Daten und Steuerung vom fernen Host-Computer.
Der API-Server 22 läuft
außerdem
unter der Betriebssystems-Abstraktionsebene oder OSAL. Dies ist
dazu vorgesehen, zuzulassen, dass der Informationsserver auf einer
Anzahl unterschiedlicher Betriebssysteme läuft. Insbesondere ist es, um
den Informationsserver dazu anzupassen, auf einem anderen Betriebssystem
zu laufen, lediglich notwendig, die OSAL zu wechseln.
-
Der
Stromgenerator 26 ist in der Lage, grobe Transportstromdaten
auszugeben. Insbesondere ruft unter der Steuerung des API-Servers 22 der
Stromgenerator 26 lediglich Daten vom Speicher 24 ab
und gibt diese ohne irgendeine Kenntnis von deren Inhalt aus. Außerdem ist
jedoch beabsichtigt, dass der Stromgenerator 26 in der
Lage ist, Karusselle zu bilden, beispielsweise DSMCC-Objekt-Karusselle
und DSMCC-Datenkarusselle. Folglich umfasst der Stromgenerator 26 zumindest
einen Karussell-Bildner 28.
-
4B zeigt
einen Stromgenerator. Der Stromgenerator ist dazu verantwortlich,
den Transportbitstrom mit Beginn von der Konzeptbeschreibung des
Daten-/Objektkarussells dynamisch aufzubauen. Die Architektur des
Stromgenerators besteht aus einer Anzahl von konkurrierenden laufenden
Teilprozessen (Gruppen kleiner Programmbausteine). Es gibt die folgenden
Teilprozesse:
- 1. Hauptstromgenerator (SGMain):
dieser Teilprozess ist für
die Kommunikation mit dem API-Server verantwortlich. Er empfangt
Befehle vom API-Server,
um ein Objektkarussell zu beginnen oder anzuhalten, um ein Karussell
von einem laufenden Strom abfallen zu lassen, oder um einigen Inhalt
eines laufenden Systems zu aktualisieren. Zusätzlich ist der Hauptstromgenerator-Teilprozess
auch dazu verantwortlich, die anderen Teilprozesse zu verwalten.
Dies bedeutet das Starten/Stoppen dieser Teilprozesse und um deren Synchronisation
zu steuern.
- 2. Karussell-Bildner (CB): dieser Teilprozess (Gruppe kleiner
Programmbausteine) ist dafür
verantwortlich, die binaren DSMCC-Abschnitte aufzubauen, welche
das Objektkarussell bilden. Die CB-Gruppe kleiner Programmbausteine
empfangt die Karussellbeschreibung vom SGMain-Teilprozess. Wenn
die DSMCC-Abschnitte aufgebaut sind, werden sie zum Mux-Teilprozess
als Nutzinformationen (siehe unten) geliefert. Der CB-Teilprozess
kommuniziert außerdem
mit dem SI-Teilprozess, um die passende Dienstinformation in den
Tabellen einzufügen,
welche durch den SI-Teilprozess verwaltet werden.
- 3. SI: dieser Teilprozess ist zum Erzeugen und zum Aktualisieren
von Dienstinformationstabellen (SI-Tabellen) verantwortlich. Er
konstruiert dynamisch die MPG2-Abschnitte, welche diese SI-Tabellen
bilden und liefert die Abschnitte als Nutzinformationen zum Mux-Teilprozess.
Aktuell werden zwei Tabellen durch den SI-Teilprozess verwaltet: PAT und PMT.
Der CB-Teilprozess empfängt
Anfragen vom CB-Teilprozess, um Programmnummern in der PMT zu reservieren,
um PIDs für
die Karusselle zu reservieren und um Beschreibungen für die PMT
hinzuzufügen
oder zu löschen,
welche notwendig sind, die Karusselle zu identifizieren.
- 4. Mux: dieser Teilprozess empfangt Nutzinformationen vom Teilprozess
CB und SI und multiplext die Nutzinformation in MPEG2-Transportstrompakete.
Zusätzlich
kommuniziert der Mux-Teilprozess mit der realen Einrichtungsansteuerung,
um die Transportstrompakete über
das reale Schnittstellen-Ethernet, ASI, AMT herauszupumpen.
-
Jede
Komponente im Stromgenerator (SGMain, SI, Karussell-Bildner, Mux)
ist ein separater Teilprozess, der gleichzeitig mit den anderen
Teilprozessen abläuft.
Der SI, der Karussell-Bildner arbeiten im "Drück"-Modus. Sie berechnen
Teile des Transportbitstroms und drücken diese nach vorne in den
Mux. Der Mux-Teilprozess
arbeitet im "Zieh"-Modus. Sobald Daten
von entweder der SI oder von Karussell-Bildnern verfügbar sind,
zieht er diese Daten heraus und beginnt das Multiplexen der Nutzinformationen
zu Transportstrompaketen.
-
Jeder
Karussell-Bildner 28 ist fähig, ein Informationskarussell
zu bilden, beispielsweise, wie in 5 gezeigt
ist. Der Karussell-Bildner konstruiert Transportstromdaten, welche
zur Übertragung
der Reihe nach einer Serie von DSMCC-Dateien geeignet sind. Beispielsweise
könnte
jede Seite, wie in 5 gezeigt ist, MHEG- oder HTML-Dateien
oder Java-Anwendungen aufweisen. Als Ergebnis weist der Strom, der
durch den Stromgenerator erzeugt wird, jede dieser Seiten der Reihe
nach auf.
-
Es
ist für
den Karussell-Bildner auch möglich,
Hilfskarusselle zu bilden, so dass bei jeder Drehung des Seitenhauptkarussells
ein bestimmtes durch eine Reihe von Hilfsseiten selbst dreht.
-
Da
jeder Ausgangsstrom eine Anzahl unterschiedlicher Karusselle enthalten
kann, kann eine Anzahl unterschiedlicher Karussell-Bildner 28 ebenfalls
vorgesehen sein. Der Multiplexer/Paketierer 30 ordnet die
Daten von den verschiedenen Karussell-Bildnern 28 zu einem Ausgangsstrom.
-
Wie
in 4A und 4B gezeigt
ist, verwendet der Stromgenerator 26 auch die Betriebssystem-Abstraktionsebene.
Außerdem
verwendet er eine Ansteuer-Abstraktionsebene.
Auf diese Weise kann wie mit dem Betriebssystem die Ausgangsansteuerung
geändert
werden, ohne den Gesamtaufbau des Informationsservers zu ändern. Anstelle
davon ist es lediglich notwendig, die Ansteuer-Implementierung zu ändern.
-
Die
Ansteuerung 32 liefert die Transportstromdaten zu einer
DVB-Codierkarte.
-
Jeder
der Karussell-Bildner 28 kann mit seinen eigenen Daten
arbeiten, wobei der Multiplexer das Planen zwischen verschiedenen
Karussellen des Transportstroms handhabt.
-
Die
Karussell-Bildner haben effektiv ihre eigenen Speicher. Anstelle
die Seiten des Karussells von Daten im Speicher konstruiert zu lassen,
können
die Transportstromdaten dieser Seiten durch die Karussell-Bildner
gespeichert werden. Auf diese Weise, wenn eine Seite eines Karussells
unter der Instruktion des API-Servers
vom Host-Computer geändert
wird, braucht es nicht notwendig zu sein, die Daten des gesamten
Karussells neu zu berechnen, sondern lediglich die der geänderten
Seite. Sogar, wenn die Daten einer Seite von anderen Seiten abhängig sind,
wird außerdem
vorgeschlagen, eine abhängige
Struktur einzubinden, beispielsweise ist es wiederum lediglich einmal
notwendig, Daten für
Seiten, welche eine Änderung
erfordern, und nicht alle Seiten neu zu berechnen.
-
Jeder
Karussell-Bildner 28 liest den Inhalt und Inhaltsbeschreibungen,
Baugruppen der DSMCC-Objektkarusselle und bereitet geeignete DSI-,
DII- oder DDB-Abschnitte vor.
-
Der
SI-Tabellenmanager 34 dient dazu, PAT/PMT-Abschnitte, Programmnummern
und PIDs zu verwalten. Der Multiplexer/Paketierer 30 dient
dazu, die Abschnitte in Pakete zu spalten und die Pakete in Schlitzen
für die
Ansteuerung 32 zusammenzubauen.
-
Wie
oben erwähnt
weist der Informationsserver vorzugsweise eine Betriebssystems-Abstraktionsebene
OSAL auf. Diese kann eine Objekt-orientierte, Klassenbibliothek
auf C++-Basis sein. OSAL wird vorgeschlagen, welche eine API-liefert, welche einige
der wesentlichen Betriebssystemdienste abstrahiert, welche durch
verschiedene Betriebssysteme, beispielsweise Windows 95, Windows
NT; UNIX, LINUX usw. angeboten werden. Es wird vorgeschlagen, dass
die OSAL Abstraktionen für
Teilprozesse, Semaphore, Dateien, Verzeichnisse, Prozessoren, dateisystemunabhängige Pfadnamen
und Interprozess-Informationsschlangen bereitstellt.
-
Die
OSAL-Teilprozess-Abstraktion unterstützt die Bildung und das Zerstören unabhängiger Einheiten einer
Ausführung
innerhalb des Adressraums eines Einzel-Prozesses. Dem Teilprozessplanen
folgt ein einfaches Prioritätsschema
auf Basis einer diskreten Anzahl von Prioritätsklassen.
-
Die
OSAL-Semaphor-Abstraktion unterstützt einen Intraprozess, gebundene
und nichtgebundene Zähl-Semaphore
und die verknüpften
Warte-/Signaloperationen,
die verwendet werden können,
den Ausführungszustand
unterschiedlicher Teilprozesse zu synchronisieren.
-
Die
OSAL-Datei/Verzeichnis-Abstraktionen liefern ein einfaches virtuelles
Dateisystem mit einem hierarchischen Verzeichnisaufbau und Lese/Schreib/Ausführungsdatei/Verzeichniszulassungen.
Die unabhängigen
Dateisystem-Pfadnamen liefern ein Betriebssystem, welches unabhängig das
Verfahren benamt, welches auf unterschiedlichen realen Dateisystemorganisationen
abgebildet werden kann. Es werden Operationen vorgesehen, um Dateien
zu bilden/zu löschen,
Bytesequenzen von/auf Dateien zu lesen/zu schreiben, auf einer bestimmten
Bytenummer zu positionieren und eine Dateigröße abzurufen. Operationen über ein
Verzeichnis umfassen die Bildung/das Löschen und eine Iteration über die
Komponentendateien/Verzeichnisse.
-
Die
OSAL-Prozess-Abstraktion kann das Konzept virtueller Adressräume und
Code/Datensegmente unterstützen,
welche Teil des Adressraums sein müssen. Operationen können vorgesehen
sein, einen Prozess zu beginnen/zu stoppen und ihren Status (Ablaufen,
Beendet) abzufragen.
-
Die
OSAL-mSchlangen (mqueue)-Abstraktion kann eine Einrichtung bereitstellen,
eine Inter/Prozesskommunikation auf Basis von byte-orientierter,
FIFO-Nachrichtenschlangen
durchzuführen.
Es können
Operationen vorgesehen sein, variable Längenbytefolgen von der Schlange
hereinzunehmen oder abzurufen und die Gesamtzahl von Nachrichten/Bytes
zu prüfen,
welche auf jeder Schlange verfügbar
sind.
-
Jede
der OSAL-Abstraktionen kann durch eine verschiedene streng typische
C++-Handhabungsklasse unterstützt
werden. Die Handhabungsklassen liefern eine Objekt-orientierte Ansicht über die
Betriebssystem-Abstraktionen. Aufgrund der streng typischen Anwendungen,
welche an den Beginn der OSAL geschrieben werden, profitiert API
von der zwingenden zusammengestellten Zeitprüfung. Beispiele von Handhabungsklassen
zeigen betriebssystem-abhängige
Einheiten, und die Betriebssystemsdienste werden als Verfahren auf
der Handhabungsklasse dargestellt. Die Implementierung der Handhabungsklasse
ist unbeschwert, effizient und tragfähig über alle Plattformen, welche
den ANSI C++-Standard unterstützen,
da diese die API einer niedrigen Ebene verwendet, deren Implementierung
das spezifische Betriebssystem ist (Windows 95, Windows NT, Unix).
In den meisten Fällen
bildet die API der unteren Ebene sich unmittelbar auf Dienste ab,
welche durch das darunterliegende Betriebssystem unterstützt werden,
so dass der Überschuss,
der durch OSAL auferlegt wird, minimal ist.
-
Die
OSAL-Klassenbibliothek und API können
verwendet werden, eine Querplattform-Implementierung eines DVB-konformen
Datenrundfunkservers zu bilden, der die Lieferung von HTML-, Java,
MHEG-Anwendungen und anderer Daten über DSMCC-Objekt- und Datenkarusselle
unterstützt.
Die Teilprozess-Abstraktion kann verwendet werden, (a) mehrere Teilprozesse
zu unterstützen,
welche einen DSMCC-Objektkarussell-Bitstrom von Inhaltsdaten erzeugen,
(b) einen Teilprozess zu unterstützen,
welcher dem Erzeugen einer DBV-Dienstinformation gewidmet ist, und
(c) einen Teilprozess zu unterstützen,
der DSMCC-Abschnitte und Tabellendaten in Transportstrompakete multiplext.
Die Semaphor-Abstraktion wird verwendet, die Synchronisation zwischen
diesen Teilprozessen durchzuführen.
Die Datei- und Verzeichnis-Abstraktionen werden verwendet, Zugriff
zu andauerndem Inhalt auf dem Dateisystem des Servers durchzuführen. Die
Prozess-Abstraktion wird verwendet, einen Prozess durchzuführen, der
für die
Netzwerkkommunikation eigens bestimmt ist, und einen anderen Prozess,
der die Erzeugung abgehender Transportströme des Servers handhabt. Die m-Schlangen-Abstraktion
wird verwendet, Kommunikation zwischen dem Netzwerkstapel und der
Erzeugung des Bitstroms durchzuführen.
Unter Verwendung der OSAL-Klassenbibliothek und API läuft der
Datensende-Serveranwendungscode
unmodifiziert auf jedem der Betriebssysteme ab, auf denen aktuell
die OSAL unterstützt
wird.
-
Wie
oben erläutert
kann jeder Stromgenerator 26 eine Anzahl von Karussell-Bildnern 28 haben.
Es ist häufig
wünschenswert,
dass die Seiten eines Karussells häufiger als die Seiten eines
anderen Karussells übertragen
werden. Um dies zu tun, kann der Multiplexer/Paketierer 30 in
den Transportstrom Pakete von einem Karussell häufiger als dem anderen einführen. Beispielsweise
teilt, wo es lediglich zwei Karusselle gibt und eines eine dreifache
Wichtung zum anderen hat, wenn Datenstrompakete aufgefüllt werden,
der Multiplexer/Paketierer 75% an Wichtung einem Karussell zu und
wird drei Pakete mit Daten von dem Karussell für jedes eine Paket füllen, welches
mit Daten vom anderen Karussell gefüllt ist.
-
Unglücklicherweise
ist dieses System bezüglich
der Berechnung teuer, wenn Änderungen
bezüglich der
Natur der Daten gemacht werden, welche auf dem Transportstrom übertragen
werden. Wenn beispielsweise für
das oben angegebene Beispiel ein drittes Karussell mit einer ähnlichen
Wichtigkeit wie die niedrigere Wichtigkeit des Karussells, welches
schon in Verwendung wird, hinzugefügt wird, hat das System dann
neu zu berechnen, dass den drei Karussellen entsprechend 60%, 20%
und 20% der Übertragungszeit
gegeben sollten. Anders ausgedrückt,
wenn die Wichtigkeit des Karussells geändert wird oder Karusselle
hinzugefügt
oder gelöscht
werden, muss die Proportionierung, welche durch den Multiplexer/Paketierer 30 ausgeführt wird,
neu berechnet werden.
-
Im
Informationsserver wird ein neuer Algorithmus vorgeschlagen, um
die Pakete zu planen.
-
In 6 ist
eine Datenmatrix gezeigt, um die Wichtigkeit verschiedener Datenquellen
zu proportionieren.
-
Diese
ist als eine Reihe von begrifflichen Zeitschlitzen t angeordnet.
Jeder Zeitschlitz t der Matrix erlaubt die Registrierung von einer
oder mehreren Datenquellen, beispielsweise Karussellen, groben Daten
vom Speicher 24, usw.. Durch Zuordnen jeder Datenquelle
mit einer relativen Priorität
auf Basis einer begrifflichen Häufigkeit
können
die verschiedenen Datenquellen leicht priorisiert werden.
-
Im
gezeigten Beispiel ist der Datenquelle 1 die Priorität "4" zugeordnet, und tritt folglich bei
jedem vierten begrifflichen Zeitschlitz auf. Ähnlich ist der Datenquelle
2 eine Priorität "3" zugeteilt, und der Datenquelle 3 ist
eine Priorität "2" gegeben. Der Multiplexer/Paketierer 30 bildet
dann MPEG-Pakete, wobei der Sequenz der Datenquelle gefolgt wird,
welche längs
der Matrix bezeichnet werden, wobei jegliche leere begriffliche
Zeitschlitze ignoriert werden. Beispielsweise füllt er, den Datenquellen folgend,
welche in 6 gezeigt ist, ein Paket mit
Daten von der Datenquelle 1, dann ein Paket mit Daten von der Datenquelle
2, dann ein Paket mit Daten von der Datenquelle 3, dann ein Paket
mit Daten von der Datenquelle 2, dann ein Paket mit Daten von der Datenquelle
3, dann ein Paket mit Daten von der Datenquelle 1 usw.. Auf diese
Weise werden Daten von der Datenquelle 1 dreimal jedes vierte Mal,
welche von der Datenquelle 2 übertragen
werden und jedes sechste Mal von der Datenquelle 3 übertragen
werden.
-
Unter
Verwendung der oben beschrieben Matrix ist keine Neuberechnung erforderlich,
wenn Datenquellen hinzugefügt
oder gelöscht
werden oder wenn die Priorität
einer Datenquelle geändert
wird. Wenn beispielsweise die Datenquelle 3 gelöscht wird, wird die relative
Priorität
zwischen den Datenquellen 1 und 2 beibehalten. Wenn ähnlich eine
vierte Datenquelle mit sehr hoher Priorität übertragen wird, beispielsweise
die Zuteilung "1", verbleiben, sogar
dann, obwohl die Datenquellen 1, 2 und 3 alle dann mit der halben
Häufigkeit
wie vorher übertragen
werden, ihre Relativ-Prioritäten
und Häufigkeiten
die gleichen. Somit werden priorisierende Datenoperationen für das System
rechnerisch effizienter ausgeführt.
-
Unter
Verwendung dieses Systems im Stromgenerator 26 des beschriebenen
Informationsservers ist dann einfach, die Bandbreite verschiedenen
Datenquellen zuzuteilen, beispielsweise den verschiedenen Karussell-Bildnern 28.
Dies ist jedoch gleichermaßen
anwendbar zum Zuordnen von Verarbeitungszeit in einer CPU. Insbesondere
können
den verschiedenen Aufgaben, welche eine Ausführung erfordern, Prioritäten in der gleichen
Weise zugeteilt werden wie die Bandbreite zugeteilt wird.
-
Es
wird vorgeschlagen, dass die Fähigkeit,
verschiedene Ressourcen zu erlangen, beispielsweise die Verarbeitung
oder Bandbreite, nicht auf lediglich eines proportionalen anteiligen
Nutzens der Ressourcen basieren muss, sondern auch auf einem Reaktionszeitwert
eines anfänglichen
Zugriffes. Anders ausgedrückt können einige
Prozesse eine Aktion unverzüglicher
als andere erfordern. Beispielsweise ist der niedrige Reaktionszeitwert
der CPU-Verarbeitungszeit wichtig, einen sanften Betrieb von Multimedia-Anwendungen
sicherzustellen. Wo zwei Prozesse, beispielsweise Wortverarbeitung
und Videoanzeige einer vorhandenen Proportion an Verarbeitungszeit
zugeordnet werden, kann es noch sein, dass es für die Videoanzeige wichtiger ist,
ihr mehr unmittelbaren Zugriff für
die Verarbeitung zu geben.
-
Um
diese Notwendigkeit zu erklären,
kann ein zusätzlicher
Parameter jedem Ressourcen-Verbraucher oder jeder Datenoperation
zugeteilt werden, gleich ob dies die Datenverarbeitung oder die Übertragung
von Daten ist. Dieser Parameter soll dazu da sein, den Reaktionszeitwert
des Ressource-Zugriffes zu bestimmen.
-
Somit
wird jeder Ressource oder jedem Datenbetrieb ein Reaktionszeitwert
gegeben, so dass eine Anzahl von Ressource-Verbrauchern verglichen
werden kann, um zu bestimmen, was zuerst durchgeführt werden
sollte, oder ähnlich
eine Anzahl von Ressource-Verbrauchern verglichen werden kann, um
zu sehen, was zuerst übertragen
werden sollte. Im Fall des oben erläuterten Informationsservers,
wo es ein sehr wichtiges Informationsstück gibt, welches übertragen
werden sollte oder sobald wie möglich
empfangen werden sollte, kann der geeigneten Datenquelle ein sehr
hoher Reaktionszeitwert gegeben werden, so dass diese Daten durch
den Multiplexer/Paketierer 30 in den Datenstrom sobald
wie möglich
eingefügt
werden.
-
In
den Karussell-Bildnern 28 bilden wie oben beschrieben die
Karussell-Bildner
jeweils mehrere DVB-Abschnitte zur Lieferung zum Multiplexer/Paketierer 30.
Diese Abschnitte umfassen Daten, welche das Karussell dieses bestimmten
Karussell-Bildners zeigen. Es wird gewünscht, dass der Informationsserver
oder der Karussell-Bildner selbst in der Lage ist, einen oder mehrere
der Seiten innerhalb des Karussells zu ändern oder zu ersetzen. Wie
oben erläutert
werden, wenn ein Karussell-Bildner 28 ein
geeignetes Karussell von den Daten im Speicher 24 konstruiert
hat, diese Daten nicht neu berechnet, sondern lediglich zur zyklischen Übertragung
gespeichert. Um eine Seite oder eine Datei im Karussell zu ändern, ist
es möglich,
alle Daten für
dieses Karussell neu zu berechnen. Dies kann jedoch zu einer unerwünschten
Verzögerung
führen,
bevor das neue Karussell übertragen
wird.
-
7 zeigt
den Prozess der Datenumsetzung, welche durch den Karussell-Bildner durchgeführt wird. Die
Datendateien haben Datenköpfe,
welche diesen hinzugefügt
sind, um BIOPs als Teil eines DSMCC-Objektkarussells zu bilden.
Diese werden dann zusammen gruppiert, um Module für das DSMCC-Datenkarussell zu
bilden, welche dann der Reihe nach in DVB-Abschnitte unterteilt
werden, um diese an den Multiplexer abzugeben.
-
Wie
man es als vorteilhaft sehen wird, wird, wenn die Datei 1 geändert wird,
dann die BIOP-Datei 1 ebenfalls geändert, zusammen mit dem resultierenden
Modul und den Abschnitten. Die BIOPs für die Dateien 2 und 3 werden
doch unverändert
verbleiben. Daher ist es nach einer Änderung bezüglich der Datei 1 für den Karussell-Bildner
nicht notwendig, BIOPs für
die Dateien 2 und 3 neu zu berechnen.
-
Um
ermöglichen,
dass der Karussell-Bildner 28 die nichtnotwendige Berechnung
vermeidet, wird ein Abhängigkeitsmechanismus
vorgeschlagen. Unter Verwendung dieses Mechanismus ist es möglich, die
Bitstrom-Repräsentation
eines DSMCC-Objektkarussells schnell zu aktualisieren, wobei lediglich
Aktualisierungen von dessen Bestandteilen, d. h., Dateien, Verzeichnissen
usw. verwendet werden.
-
Die
Abhängigkeitsstruktur
ist im Karussell-Bildner durch eine Reihe an Knoten und Zeigern
eingerichtet. Insbesondere besteht das Abhängigkeitsnetzwerk aus zwei
Arten an Einheiten, nämlich
(a) Abhängigkeitsknoten,
welche Zeiger, welche als Inhaltsreferenzen bezeichnet werden, in
bestimmten Hilfsteilen der Bitstrom-Repräsentation
des DSMCC-Objektkarussells speichern, und (b) Abhängigkeitsverknüpfungen,
welche zeigen, wie ein Satz an Inhaltsreferenzen verwendet wird,
einen anderen Satz von Inhaltsreferenzen zu berechnen. Die Abhängigkeitsknoten
selbst kommen in zwei Arten, nämlich
(1) Primärknoten,
welche die Inhaltsreferenzen für
die Bestandteile enthalten (beispielsweise die DSMCC-Datei und Verzeichnisobjekte)
eines DSMCC-Objektkarussells, und (2) Berechnungsknoten, welche
Transformationen bezüglich
der Inhaltsreferenzen anderer Knoten enthalten. Eine Transformation
wird angewandt, einen Satz an Inhaltsreferenzen anzuwenden und hat
einen Satz neuer Inhaltsreferenzen zur Folge, welche auf neue Teile
des DSMCC-Objektkarussell-Bitstroms zeigen.
-
Da
ein Karussell-Bildner die geeigneten Daten konstruiert, werden Abhängigkeitsverknüpfungen
so gespeichert, um zu zeigen, wie ein Teil des DSMCC-Objektkarussell-Bitstroms
(beispielsweise ein Modul) zu einem anderen Teil des Bitstroms führt (beispielsweise
die Kompressionsäquivalente
des gleichen Moduls). Die Abhängigkeitsverknüpfungen
werden eingerichtet, wenn Transformationen durch die Berechnungsknoten des
Abhängigkeitsnetzwerks
ausgeführt
werden. Wenn insbesondere eine Transformation eines Abhängigkeitsknotens
die Inhaltsreferenzen in Verbindung mit einem anderen Knoten verwendet
(ob ein Primärknoten oder
ein Berechnungsknoten), wird eine Abhängigkeit zwischen dem verwendeten
Knoten und dem eingerichtet, der die Transformation berechnet. Eine
Abhängigkeitsverknüpfung wird
in Bezug auf den verwendeten Knoten gespeichert, der den Knoten
zeigt, für
den sie verwendet wurde.
-
Die
Abhängigkeitsverknüpfungen
erlauben, dass der Abhängigkeitsmechanismus
schnell den Satz an Transformationen bestimmt, der wiederum anzuwenden
ist, um einen neuen Bitstrom zu berechnen, wenn Bestandteile des
Objektkarussells sich ändern,
d. h., Daten der Primärknoten
sich andern.
-
Wenn
eine Aktualisierung ausgeführt
wird, werden einige von der DSMCC-Datei- und Verzeichnisobjekte
geändert.
Als Ergebnis werden die Primärknoten
bezogen auf diese Änderungen
ebenfalls geändert.
Für diese
Primärknoten,
wo eine Änderung
aufgetreten ist, folgen Abhängigkeitsverbindungen
in Verbindung mit diesen Primarknoten, um jeglichen resultierenden
Berechnungsknoten zu markieren. Wenn ein berechneter Knoten erreicht
ist, wird die Abhängigkeitsverknüpfung dieses
berechneten Knotens verwendet, um sich wiederum nach vorne zu einem
weiteren Berechnungsknoten zu verschieben. Alle berechneten Knoten,
welche auf diese Weise erreicht werden, werden zusammen mit irgendwelchen
Vorwärts-Abhängigkeitsverknüpfungen
gelöscht.
Als Folge davon hat das Abhängigkeitsnetzwerk
bestimmte verknüpfte
leere Berechnungsknoten. Der Karussell-Bildner wiederholt daher
den ursprünglichen
Berechnungsprozess für
diese berechneten Knoten, welche nun leer sind. Als Folge, wenn
die berechneten Knoten wiederum ihre Transformationen anwenden,
um einen neuen Satz von Inhaltsreferenzen neu zu berechnen, werden
Abhängigkeitsverknüpfungen wiederum
einmal von den Knoten eingerichtet, auf welche sie bezogen wurden.
-
Wenn
Primärknoten
nicht geändert
wurden oder Berechnungsknoten nicht gelöscht wurden, kann dann ein
nachfolgender Berechnungsknoten sich lediglich auf die nichtgeänderten
Primär-
oder Berechnungsknoten zurückbeziehen.
Wenn somit ein Berechnungsknoten sich lediglich auf den nichtgeänderten
primären Berechnungsknoten
bezieht, kann dieser unmittelbar verwendet werden, ohne dessen Transformation
wiederum anzuwenden. Solange die Inhaltsreferenzen, von denen der
Inhalt abhängt,
sich nicht ändern,
kann das Ergebnis in einem aktualisierten Bitstrom unmittelbar verwendet
werden, ohne diesen neu zu berechnen. Da die Teile eines Karussells,
welche durch eine Aktualisierung nicht beeinträchtigt werden, schon im Abhängigkeitsnetzwerk
gespeichert sind, erlaubt das Abhängigkeitsnetzwerk, den Inhalt
eines DSMCC-Objektkarussells schnell zu aktualisieren. Auf diese
Weise kann der Abhängigkeitsmechanismus
verwendet werden, Bitstrom-Repräsentationen
von DSMCC-Abschnitten aufzubauen, welche Objektkarusselle bilden.
Die Bistrom-Repräsentation
besteht aus einer Liste von Inhaltsreferenzen, welche zu den unterschiedlichen
Abschnitten zeigen. Die Inhaltsreferenzen werden zum Multiplexer
geführt,
der die DSMCC-Abschnitte zu einem MPEG-Transportstrom paketiert.
Der Mechanismus kann verwendet werden, die modifizierten DSMCC-Abschnitte
neu zu berechnen, wenn Bestandteilsteile des DSMCC-Objektkarussells
(beispielsweise Dateien oder Verzeichnisse) sich ändern. Es
auch möglich,
das Verfahren auf DSMCC-Datenkarusselle anzuwenden.
-
Dies
ist in 8 gezeigt. Insbesondere ist es durch Änderung
des Primärknotens
n4 und durch Bezugnahme auf die Abhängigkeitsverknüpfung deutlich, dass
der Inhalt des berechneten Knotens n7 ebenfalls geändert werden
muss. Durch Bezugnahme auf die Abhängigkeitsverknüpfung für den Berechnungsknoten
n7 ist es dann auch klar, dass der Inhalt für den Berechnungsknoten n8
auch geändert
werden muss. Wenn der Inhalt der Berechnungsknoten n7 und n8 gelöscht ist
und der Primarknoten n4 die neuen Inhaltsreferenzen enthält, wird
der Berechnungsknoten n7 unter Verwendung der Inhaltsreferenzen
der Primärknoten
n4 und n5 neu berechnet. Die Inhaltsreferenzen für den Berechnungsknoten n8
können
dann von Inhaltsreferenzen von Berechnungsknoten n6 und n7 neu berechnet
werden. Man wird es sehen, dass bei diesem Prozess es nicht notwendig
ist, die Inhaltsreferenzen für
den Berechnungsknoten n6 neu zu berechnen.
-
Für den Stromgenerator 26 des
Informationsservers ist es wünschenswert,
eine weitere Flexibilität beim
Aktualisieren der DSMCC-Dateiobjekte, welche durch den Transportstrom
zu übertragen
sind, vorzusehen.
-
Wie
oben erläutert
weist dieser Stromgenerator 26 einen oder mehrere Karussell-Bildner 28 und
einen Multiplexer/Paketierer 30 auf, um den resultierenden
MPEG-Transportstrom aufzubauen. Außerdem ist ein Abhängigkeitsnetzwerk
in dem Berechnungsprozess der gewünschten DSMCC-Abschnitte eines
DSMCC-Objektkarussells
eingebaut, die als Nutzinformationen bezeichnet werden, welche den
Bitstrom bei der DSMCC-Ebene bilden.
-
Es
wird gewünscht,
eine "heiße Einfügung" von DSMCC-Dateiobjekten
vorzusehen. Dies ist eine Außer-Band-Einfügung eines
DSMCC-Dateiobjekts sobald wie möglich
in den Rundfunkbitstrom.
-
Wie
oben erläutert
werden, wenn die erforderlichen DSMCC-Abschnitte eines DSMCC-Objektkarussells
für ein
Karussell berechnet wurden, sie lediglich gespeichert und zyklisch
neu übertragen.
Es würde
daher nicht wünschenswert
sein, lediglich ein DSMCC-Dateiobjekt in die Objekte des Karussells
heiß einzuführen, da
der Bitstrom der DSMCC-Ebene dann neu zu berechnen wäre. Anderseits
ist es wahrscheinlich, dass lediglich das Einführen von DSMCC-Abschnitten
für die
heiße
Einfügung
in den schon eingerichteten Bitstrom die Übertragung des DSMCC-Objektkarussells
stören
würde.
-
Der
Multiplexer schleift wiederholt durch die Liste berechneter Nutzinformationen
und zerhakt die Nutzlasten in MPEG2-Transportstrompakete zur Übertragung.
Um "heiße Einfügung" von DSMCC-Dateiobjekten
zuzulassen, sind "Einfügungspunkte" innerhalb der Nutzinformationsliste
des kompletten Satzes der DSMCC-Abschnitte für das Objektkarussell definiert.
Diese "Einfügungspunkte" sind Markierungen,
wo der Multiplexer sicher zusätzliche
Nutzinformationen für
ein Außer-Band-DSMCC-Dateiobjekt
einfügen
kann.
-
Somit
wird die Nutzinformation für
die Außerband-Aktualisierung
berechnet und dem Multiplexer zugeführt. Der Multiplexer wartet
dann bis zum nächsten
verfügbaren
markierten "Einfügungspunkt", und fügt dann
die Außerband-Nutzinformation ein.
Dieser Effekt dient dazu, die Übertragung
des Rests der Karusselldaten zu verzögern, jedoch sich nicht mit
seinem Inhalt zu stören.
-
Wie
oben erläutert
ist es auch wünschenswert,
eine zyklische Aktualisierung eines einzigen DSMCC-Dateiobjekts
zu liefern. Anders ausgedrückt
kann für
jede Runde der Karussellsendung eine andere Version einer bestimmten
DSMCC-Datei übertragen
werden.
-
In
Bezug auf das oben beschriebene Abhängigkeitsnetzwerk wird die
zyklische Aktualisierung dadurch erreicht, indem man einen separaten
Knoten im Abhängigkeitsnetzwerk
hat, der verwendet wird, die Nutzinformationen für jede Version des DSMCC-Objekts
zu berechnen. Die komplette Liste der Nutzinformationen wird dem
Multiplexer gezeigt, wobei jedoch diese Liste intern in einer Weise
organisiert ist, dass sie den nächsten Nutzinformationswert
liefert, wenn dies der Multiplexer im nächsten Zyklus des Objektkarussells
anfordert. Dieser Mechanismus ist extrem wirksam, da, bevorzugter
als eine aktualisierte Version des DSMCC-Objekts für jede Runde
des Karussells zu berechnen, ein Zeiger lediglich die geeignete
Nutzinformation anzeigen kann.
-
Es
ist wünschenswert,
dass die Auswahl von DSMCC-Dateiobjekten in Bezug auf die Sendereihenfolge,
die Sendehäufigkeit
und heiße
Aktualisierung durch den Benutzer durchgeführt wird. Um dies zu tun, wird vorgeschlagen,
dass Daten in der Weise der Tabelle, die anschließend angegeben
wird, eingegeben werden sollten. Tabelle 1
Referenzname | Attribut | voller
Name |
Seite
1 | normal | /Sport/Intro |
Seite
2 | zyklisch | /Nachrichten/Posten
1 /Nachrichten/Posten 2 /Nachrichten/Posten 3 /Nachrichten/Posten
4 |
Seite
3 | sofort | /Spielen/Pferde |
Seite
2 | zyklisch | /Nachrichten/Posten
5 /Nachrichten/Posten 6 |
-
Wie
man sehen wird, besteht die Tabelle aus drei Spalten. Die erste
Spalte listet den Referenznamen eines DSMCC-Dateiobjekts auf, wie
diese durch den Empfänger
der Sendung gehandhabt wird. Die komplette Liste der Referenznamen
bildet den virtuellen Namenraum, den der Empfänger handhabt. Die zweite Spalte spezifiziert
das Attribut für
den Posten, auf den durch den Referenznamen bezuggenommen wird.
Es wird vorgeschlagen, drei Attribute bereitzustellen, nämlich normal,
zyklisch und sofort. Diese werden anschließend beschrieben. Die dritte
Spalte spezifiziert eine Liste voller Namen, anders ausgedrückt einen
realen Dateinamen.
-
Das
Attribut "normal" bedeutet, dass die
bezogene Seite immer die gelistete Datei ausgibt. Anders ausgedrückt kann
für das
Attribut "zyklisch" die Tabelle mehr
als einen Namen enthalten, so dass in jedem Zyklus des Karussells
der nächste
volle Name, welche für
diese Seite aufgelistet ist, enthalten sein wird. Das Attribut "sofort" hat normalerweise
die gleiche Wirkung wie "normal", dahingehend, dass
eine einzige Datei für diese
Seite übertragen
wird. Wo jedoch eine bezogene Seite das Attribut "sofort" hat, sobald eine
Aktualisierung für
diese Seite empfangen wird, wird die Seite als "heiße
Einfügung" eingeführt, wird
jedoch bis zu ihrer Normalposition im Karussell nicht wieder erscheinen.
-
Für das oben
angegebene Beispiel definiert die Karussellkonfigurationstabelle
ein logisches Karussell, welches aus drei Seiten mit dem Namen besteht:
Seite 1, Seite 2, Seite 3. Die Sendereihenfolge wird durch die erste
Spalte definiert, d. h., – Seite
1 – Seite
2 – Seite
3 – Seite
2 und dann zurück
zur Seite 1. Für
die zyklischen Seiten in jedem Zyklus des Karussells wird in jedem
Zyklus des Karussells der nächste
Posten von der Liste voller Namen (dritte Spalte) hergenommen. Folglich
wird vom Gesichtsstandpunkts der Karussellreihenfolge es gelten:
/Sport/Intro-/Nachrichten/Postenl-/Spielen/Pferde-/Nachrichten/Posten
5-/Sport/Intro-/Nachrichten/Posten
2-/Spielen/Pferde-/Nachrichten/Posten 6-/Sport/Intro-/Nachrichten/Posten
3-/Spielen/Pferde/Nachrichten/Posten 5-/Sport/Intro-/Nachrichten/Posten
4-/Spielen/Pferde-/Nachrichten/Posten 6....
-
Im
Anschluss an die Eingabe der Daten für die Karussellkonfigurationstabelle
berechnet ein geeigneter Karussell-Bildner den erforderlichen DSMCC-Abschnitt
gemäß dem Abhängigkeitsnetzwerk,
welches oben erläutert
wurde. Insbesondere werden die Seiten, welche durch die Referenznamen
definiert sind, als Primärknoten
eingerichtet. Wo eine Seite als zyklisch definiert ist, richtet
der Karussell-Bildner dann äquivalente
Kopieseiten entsprechend jedem Objekt des Zyklus ein. Der Karussell-Bildner
berechnet dann geeignete Module für die Seiten. Vorzugsweise
werden beim Berechnen der Module äquivalente zyklische Seiten
separaten Modulen zugeteilt, so dass bei jeder Zyklusneuberechnung
dies bei einem Minimum gehalten wird. Ähnlich werden Seiten, welche
das Attribut "sofort" haben, separaten
Modulen zugeteilt, um ihre Einfügung,
wenn notwendig, zu erleichtern.