DE69531561T2 - Ausführungssteuerungsverfahren für ein interaktives audio/video Programm - Google Patents

Ausführungssteuerungsverfahren für ein interaktives audio/video Programm Download PDF

Info

Publication number
DE69531561T2
DE69531561T2 DE69531561T DE69531561T DE69531561T2 DE 69531561 T2 DE69531561 T2 DE 69531561T2 DE 69531561 T DE69531561 T DE 69531561T DE 69531561 T DE69531561 T DE 69531561T DE 69531561 T2 DE69531561 T2 DE 69531561T2
Authority
DE
Germany
Prior art keywords
execution
message
program
avi
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69531561T
Other languages
English (en)
Other versions
DE69531561D1 (de
Inventor
Jean-Rene Menand
Alain Delpuch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OpenTV Inc
Original Assignee
OpenTV Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by OpenTV Inc filed Critical OpenTV Inc
Publication of DE69531561D1 publication Critical patent/DE69531561D1/de
Application granted granted Critical
Publication of DE69531561T2 publication Critical patent/DE69531561T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Steuern der Ausführung einer ablauffähigen interaktiven Audio-Video- (AVI) Programmkomponente.
  • Es wurden interaktive Fernsehsysteme vorgeschlagen, in denen ein Fernsehempfänger einen vom Programmanbieter programmierbaren Prozessor aufweist, der folgende Fähigkeiten besitzt: Antworten auf vom Benutzer eingegebene Daten, Erzeugen von Bildschirmgraphikanzeigen, die über das ausgesendete Video gelegt werden, Erzeugen von Ton in Verbindung mit dem gesendeten Audiosignal und/oder Austauschen von Daten mit dem Programmanbieter oder andere externe Datenverarbeitungsdienste. In einem solchen System steht am Ausstrahlungsort ein Computersystem zum Erzeugen von interaktiven Anwendungsprogramminformationen einschließlich ablauffähigem Code und Daten sowie zum Kombinieren der interaktiven Anwendungsprogramminformationen als zusätzliche Komponente mit den Video- und Audiokomponenten des zugehörigen Fernsehsignals. Der Prozessor im Fernsehempfänger empfängt die interaktiven Anwendungsprogramminformationen vom Programmanbieter, führt das durch diese Informationen repräsentierte interaktive Anwendungsprogramm aus, erzeugt Graphik- und Tonsignale, die mit den Fernsehvideo- und – audiosignalen kombiniert werden sollen, und verarbeitet über eine Fernbedienungseinheit empfangene Benutzereingaben.
  • In einem vorgeschlagenen AVI-System wird das zusammengesetzte AVI-Signal vom Programmanbieter in der Form eines Paketdatenstroms ausgestrahlt, einschließlich einer Mehrzahl von zeitmultiplexierten Paketdiensten. Jeder Paketdienst führt eine andere Signalkomponente des zusammengesetzten AVI-Signals. So führt beispielsweise ein Dienst die Videokomponente, ein weiterer führt die Audiokomponente und ein weiterer führt die interaktive Anwendungsprogramminformationskomponente. Es kann noch weitere Dienste geben, die Stereo- und SAP-Audiokanäle und/oder Bilduntertitelinformationen usw. führen. Ferner können einige Paketdatenströme Paketdienste beinhalten, die Signalkomponenten für mehr als ein AVI-Programm führen. Mit jedem Paketdienst ist eine eindeutige Dienstekomponentenkennung (SCID) assoziiert, und die Pakete in diesem Paketdienst beinhalten jeweils diese Dienstekennung.
  • Ferner hat ein Paketdienst in dem vorgeschlagenen AVI-System einen Programmführer und beinhaltet eine vorbestimmte Dienstekennung. Die vom Programmführer-Paketdienst geführten Daten assoziieren die Komponenten eines AVI-Programms mit den Dienstekennungen der diese Komponenten führenden Paketdienste. Unter Verwendung dieser Daten können die die Komponenten des gewünschten AVI-Programms führenden Paketdienste aus dem Paketstrom extrahiert werden.
  • Die Signalkomponenten im AVI-Signalpaketdatenstrom werden von einer oder mehreren Übertragungseinheiten geführt, die jeweils aus einer Mehrzahl von Paketen bestehen. Ein erstes Paket in jeder Übemagungseinheit ist ein Header-Paket, die übrigen Pakete in der Übertragungseinheit sind zugehörige Datenpakete. Das Header-Paket enthält Informationen über die folgenden Daten, und die zugehörigen Datenpakete führen die Daten, aus denen sich dieser Teil der Signalkomponente zusammensetzt. Verschiedene Übertragungseinheiten können verschiedene Anzahlen von Datenpaketen beinhalten, und die Unterteilung der Signalkomponenten in Übernagungseinheiten kann durch den zeitlichen Ablauf beeinflusst werden, der zum Liefern der verschiedenen Signalkomponenten zu den Zuschauerorten zu gewünschten Zeiten notwendig sind, oder durch andere Echtzeitüberlegungen.
  • Die interaktive Anwendungsprogramminformationskomponente besteht aus einem oder mehreren Code-Modulen (die ablauffähigen Code enthalten), möglicherweise einem oder mehreren Datenmodulen, und einem Verzeichnismodul, das Daten beinhaltet, die die Code- und Datenmodule beschreiben, die die interaktive Anwendungsprogrammkomponente bilden. Diese Module werden kontinuierlich im Anwendungsprogramm-Datenkomponentenfluss wiederholt. Die Module werden eindeutig gekennzeichnet und werden von Übernagungseinheiten wie oben beschrieben geführt, wobei das Header-Paket die Kennung des Moduls und den Ort innerhalb dieses Moduls enthält, zu denen die Daten in den nachfolgenden Datenpaketen gehören. Die interaktive Anwendungsprogramminformationskomponente beinhaltet auch ein Sondersignal zum Steuern der Ausführung des AVI-Anwendungsprogramms. So kann beispielsweise ein Signal ein gerade ablaufendes AVI-Anwendungsprogramm anweisen, die Ausführung zu unterbrechen; ein anderes kann ein gerade unterbrochenes AVI-Anwendungsprogramm anweisen, die Ausführung wieder aufzunehmen; und ein weiteres kann das gerade ablaufende AVI-Anwendungsprogramm anweisen, mit der Ausführung aufzuhören. Diese Signale können in Signalpakete innerhalb des AVI-Programmkomponentenpaketdienstes integriert werden.
  • Ein Prozessor in einem AVI-Empfänger extrahiert zunächst unter der Steuerung des Systemladers das Verzeichnismodul aus dem Datenfluss und verwendet die im Verzeichnis enthaltenen Informationen zum Bestimmen, welches Code-Modul zuerst ausgeführt werden soll. Dieses Code-Modul, Autostart-Modul genannt, wird dann aus dem Datenfluss extrahiert und in den Speicher geladen. Nach dem vollständigen Laden des Autostart-Moduls in den Speicher beginnt der Prozessor mit der Ausführung des Code-Moduls. Im Laufe seiner Ausführung kann das Code-Modul Daten von den im Verzeichnismodul identifizierten Datenmodulen anfordern. Diese Datenmodule werden dann extrahiert und in den Speicher geladen. Nach dem vollständigen Laden des Moduls in den Speicher wird das anfordernde Code-Modul avisiert, und die Ausführung wird mit dem Verarbeiten dieser Daten fortgesetzt. Ein Code-Modul kann auch mit einem nachfolgenden verkettet werden. In einem solchen Fall gibt das aktuelle Code-Modul eine Anforderung zur Verkettung mit einem neuen, im Verzeichnismodul aufgeführten Code-Modul aus, und sein Speicherplatz wird freigegeben. Das angeforderte Code-Modul wird dann aus dem Datenfluss extrahiert und in den Speicher geladen. Nach dem vollständigen Laden in den Speicher wird es ausgeführt. Weitere Funktionen sind möglich und werden nachfolgend beschrieben.
  • Im Gegensatz zu anderen verteilten Computersystemen kann sich die vom AVI-Empfänger empfangene AVI-Programmkomponente jederzeit ändern. So kann z. B. ein AVI-Programm von einer Nicht-AVI-Werbesendung oder einer AVI-Werbesendung unterbrochen werden, was natürlich ein anderes AVI-Programm beinhaltet. Oder ein Zuschauer kann einen Kanal von einem AVI-Programm auf ein anderes AVI-Programm umschalten. Ablauffähiger AVI-Code, die von diesem Code erzeugten Ton- und Graphiksignale sowie die empfangenen Audio- und Videokomponenten müssen stets richtig aufeinander synchronisiert sein.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Steuern der Ausführung eines interaktiven Audio-Video-Programms (AVI) in einem AVI-Empfänger bereitgestellt, der einen Paketstrom mit einem AVI-Programm und Ausführungssignalen empfängt, wobei der Empfänger einen Ausführungscontroller (410) zum Steuern der Ausführung des AVI-Programms beinhaltet, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: im Ausführungscontroller: Laden des AVI-Programms in einen Speicher (412) als Reaktion auf die Anwesenheit des AVI-Programms in dem Paketstrom; Senden einer Aktivieren-Umschaltmeldung zu dem AVI-Programm als Reaktion auf eine Benutzereingabe; Senden einer Ausgangsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsendesignal in dem Paketstrom; Senden einer Wartemeldung zum AVI-Programm als Reaktion auf ein Ausführungsunterbrechungssignal in dem Paketstrom; und Senden einer Fortsetzungsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsfortsetzungssignal in dem Paketstrom; und im AVI-Programm: Ausführen in: einem inaktiven Zustand (61), in dem das AVI-Programm inaktiv ist; einem aktiven Zustand (63), in dem das AVI-Programm abläuft; oder einem Wartezustand (65), in dem die Ausführung des AVI-Programms unterbrochen ist; Eintreten in den inaktiven Zustand als Reaktion auf das Laden des AVI-Programms in den Speicher; Halten der Ausführung und Entladen des AVI-Programms aus dem Speicher als Reaktion auf die Ausgangsmeldung; wenn im inaktiven Zustand, Eintreten in den aktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung; wenn im aktiven Zustand: Eintreten in den inaktiven Zustand als Reaktion auf die Aktivieren-Umschaltmeldung; und Eintreten in den Wartezustand als Reaktion auf eine Wartemeldung; und wenn im Wartezustand: Eintreten in den aktiven Zustand als Reaktion auf eine Fortsetzungsmeldung; und Eintreten in den inaktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zum Steuern der Ausführung eines interaktiven Audio-Video-Programms (AVI) in einem AVI-Empfänger bereitgestellt, der selektiv einen aus einer Mehrzahl von Paketströmen unter der Steuerung eines Benutzers empfängt, wobei jeder Paketstrom ein AVI-Programm mit einer Kennung und Ausführungssignale beinhaltet, wobei der Empfänger einen Ausführungscontroller (410) zum Steuern der Ausführung des AVI-Programms beinhaltet, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: im Ausführungscontroller: Laden des AVI-Programms in einen Speicher (412) als Reaktion auf die Anwesenheit des AVI-Programms in dem gewählten einen aus der Mehrzahl von Paketströmen, Speichern der Kennung des geladenen Anwendungsprogramms in eine jeweilige Stelle im Speicher und Durchsuchen von zuvor in dem Speicher gespeicherten Blöcken, die Kennungen von minimierten AVI-Programmen enthalten, und wenn eine in einem Block enthaltene Kennung mit der Kennung des im Speicher geladenen AVI-Programms übereinstimmt, Setzen von Ausführungszustand und Umgebung des neu geladenen AVI-Programms in einen Ausführungszustand und eine Umgebung, die in dem passenden Block enthalten sind; Senden einer Aktivieren-Umschaltmeldung an das AVI-Programm als Reaktion auf eine Benutzereingabe; Senden einer Ausgangsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsendesignal in dem gewählten einen aus der Mehrzahl von Paketströmen; Senden einer Wartemeldung zum AVI-Programm als Reaktion auf ein Ausführungsunterbrechungssignal in dem gewählten einen aus der Mehrzahl von Paketströmen; und Senden einer Fortsetzungsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsfortsetzungssignal in dem gewählten einen aus der Mehrzahl von Paketströmen; Senden einer Minimiermeldung zu dem AVI-Programm als Reaktion auf die Anwesenheit eines AVI-Programms in dem Datenstrom mit einer anderen Kennung als der Kennung an der jeweiligen Stelle in dem Speicher; und im AVI-Programm: Ausführen in: einem inaktiven Zustand (61), in dem das AVI-Programm inaktiv ist; einem aktiven Zustand (63), in dem das AVI-Programm abläuft; einem Wartezustand (65), in dem die Ausführung des AVI-Programms unterbrochen ist; oder einem minimierten Zustand (67), umfassend die folgenden Schritte: Haltender Ausführung des AVI-Programms; dann Speichern der Kennung des AVI-Programms sowie von Ausführungszustand und Umgebung des AVI-Programms in einem Block des Speichers; dann Entladen des AVI-Programms aus dem Speicher; Eintreten in den inaktiven Zustand als Reaktion auf das Laden des AVI-Programms in den Speicher; Halten der Ausführung und Entladen des AVI-Programms aus dem Speicher als Reaktion auf die Ausgangsmeldung; wenn im inaktiven Zustand, Eintreten in den aktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung; wenn im aktiven Zustand: Eintreten in den inaktiven Zustand als Reaktion auf die Aktivieren-Umschaltmeldung; und Eintreten in den Wartezustand als Reaktion auf eine Wartemeldung; und wenn im Wartezustand: Eintreten in den aktiven Zustand als Reaktion auf eine Fortsetzungsmeldung; und Eintreten in den inaktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung; und Eintreten in den minimierten Zustand als Reaktion auf die Minimiermeldung.
  • In den Zeichnungen zeigen:
  • 1 ein Blockdiagramm eines Teils eines AVI-Signaldecoders, der die vorliegende Erfindung ausgestaltet;
  • 2 ein Software-Strukturdiagramm der Software, die von der in 1 illustrierten Verarbeitungseinheit 40 ausgeführt wird;
  • 3 Ablaufdiagramme und Speicherlayout-Diagramme, die für das Verständnis der Extraktion von Modulen aus der Datenkomponente in einem AVI-Programm nützlich sind;
  • 4 ein Diagramm, teilweise in Blockform und teilweise in Speicherlayout-Form, ebenfalls nützlich zur Vermittlung des Verständnisses der Extraktion von Modulen aus der Datenkomponente eines AVI-Programms;
  • 5 ein Ablaufdiagramm, das die Initialisierungsfunktion des Systemladers illustriert; und
  • 6 ein Zustandsübergangsdiagramm, das die Datenstromüberwachungsfunktion des Systemladers illustriert.
  • 1 ist ein Blockdiagramm eines Teils eines die vorliegende Erfindung ausgestaltenden AVI-Signaldecoders. Ein Decoder gemäß Illustration in 1 wird an einem Zuschauerort installiert, an dem die Teilnahme an AVI-Programmen gewünscht wird. Gemäß 1 ist ein Transportmechanismus (nicht dargestellt) mit einem Eingangsanschluss 5 des Decoders verbunden. Der Eingangsanschluss 5 ist mit einem Eingangsanschluss eines Tuners 10 verbunden. Ein Ausgangsanschluss des Tuners 10 ist mit einem Dateneingangsanschluss eines AVI-Programmkomponenten-Detektors 30 verbunden. Ein Datenausgangsanschluss des Programmkomponentendetektors 30 ist mit einem Systembus 416 einer Verarbeitungseinheit 40 verbunden. Die Verarbeitungseinheit 40 beinhaltet eine Zentraleinheit (CPU) 410, einen Lese/Schreibspeicher (RAM) 412 und einen Festwertspeicher (ROM) 414, die auf bekannte Weise über den Systembus 416 miteinander verbunden sind. Ein Strom-E/A-Adapter 408 ist bidirektional zwischen dem Systembus 416 und einem Steueranschluss des Programmkomponentendetektors 30 geschaltet.
  • Ein Audioprozessor 418, der mit dem Systembus 416 verbunden ist, legt ein Audiosignal an den AVI-Audioausgangsanschluss 25 an, und ein Videoprozessor 420, der ebenfalls mit dem Systembus 416 verbunden ist, legt ein Videosignal an den AVI-Videoausgangsanschluss 15 an. Weitere Ein- und Ausgabeeinrichtungen sind durch einen E/A-Port 422, der mit einem ortsgleichen lokalen Prozessor (nicht dargestellt) über einen bidirektionalen Anschluss 45 verbunden ist, einen Benutzer-E/A-Adapter 424 zum Empfangen von Daten von einem Benutzer über einen Eingangsanschluss 35 sowie ein Modem 426 gegeben, das über einen bidirektionalen Anschluss 55 mit einem externen Computer (nicht dargestellt) verbunden ist; alle sind auf bekannte Weise auch mit dem Systembus 416 verbunden. Weitere Geräte, z. B. mathematische Prozessoren, weitere E/A-Adapter usw., können auf bekannte Weise mit dem Systembus 416 verbunden werden. Ferner kann eine Buserweiterung für eine Verbindung zu anderen Geräten in Gehäusen außerhalb des Decoder-Gehäuses einbezogen werden.
  • Beim Betrieb trägt der Transportmechanismus, der beispielsweise eine direkte RF- Satellitenverbindung, eine Kabelsystemzuleitung oder eine faseroptische Verbindung zum Decoder sein kann, eine Mehrzahl von AVI-Signalen, von denen beliebige vom Benutzer zum Betrachten gewählt werden können. In einer Direktsatellitenverbindung kann beispielsweise eine Mehrzahl von AVI-Datenströmen durch Modulieren jeweiliger RF-Trägersignale auf dem Transportmechanismus frequenzmultiplexiert werden. Jedes RF-Trägersignal wird von einem jeweiligen Transponder im Satelliten zum Zuschauerort weitergeleitet. Der Tuner 10 wählt auf bekannte Weise ein gewünschtes RF-modulierte Signal unter der Steuerung des Prozessors 40. So wird z. B. im Direktsatellitensystem das RF-modulierte Signal, das die Paketdienste enthält, die die Komponenten des gewünschten AVI-Programmsignals führen, von einem bekannten RF-Tuner abgestimmt. Der Ausgang des Tuners 10 ist ein digitaler Basisband-Paketdatenstrom, der diese Paketdienste enthält.
  • Die CPU 410 fordert die gewünschten Paketdienste vom Programmkomponentendetektor 30 durch Schreiben der gewünschten Dienstekennungen und RAM 412 Pufferstellen in die entsprechenden SCID- (Dienstekomponentenkennung) und DMA- (Direktspeicherzugriff) Controllerregister im Programmkomponentendetektor 30 über den Strom-E/A-Adapter 408 an. Der Programmkomponentendetektor 30 überwacht dann den Paketdatenstrom für die gewünschten Paketdienste. Wenn Header-Pakete von einem der gewünschten Paketdienste empfangen werden, dann werden sie mit bekannten DMA-Schreibtechniken in einem bestimmten Header-Paketpuffer im RAM 412 gespeichert, und es wird ein Header-Paketunterbrechungssignal erzeugt. Wenn Datenpakete von beliebigen der gewünschten Paketdienste empfangen werden, dann werden sie ebenfalls mit bekannten DMA-Schreibtechniken in den zuvor vorgegebenen Pufferstellen im RAM 412 gespeichert. Wenn alle Datenpakete in der Übertragungseinheit empfangen sind, wird ein Daten-komplett-Interruptsignal erzeugt. Der Empfang von Header- und/oder Datenpaketen von einem Paketdienst kann unter der Steuerung der CPU 410 freigegeben und gesperrt werden. Eine detailliertere Beschreibung des Programmkomponentendetektors 30 befindet sich in der US-Patentanmeldung mit der Seriennummer 232,787, PACKET VIDEOSIGNAL INVERSE TRANSPORT PROCESSOR MEMORY ADDRESS CIRCUITRY von K. E. Bridgewater et al., eingereicht am 22.4.94.
  • Wenn beispielsweise ein neues RF-modulierte Signal vom Tuner 10 abgestimmt wird, dann wird der den Programmführer enthaltende Paketdienst von der CPU 410 angefordert, indem die feste Programmführer-Dienstekennung zu einem Dienstekennungsregister im Programmkomponentendetektor 30 gesendet wird. Wenn die Daten in den Programrnführerpaketen empfangen und im Speicher gespeichert sind, dann lassen es diese Daten zu, dass die CPU die Paketdatendienste für das gewünschte AVI-Programm anfordert.
  • Wenn der Programmkomponentendetektor 30 Pakete in den angeforderten Paketdiensten empfangen und sie über DMA in die zuvor vorgegebenen Pufferstellen im RAM 412 geschrieben hat, dann lesen der Videoprozessor 420 und der Audioprozessor 418 die Daten aus den RAM 412 Pufferstellen in Verbindung mit ihren jeweiligen Paketdiensten mit bekannten DMA-Lesetechniken unter der Steuerung des Programmkomponentendetektors 30. Videoprozessor 420 und Audioprozessor 418 decodieren dann die komprimierten und codierten Daten, um jeweils das AVI-Videosignal am Ausgangsanschluss 15 und das AVI-Audiosignal am Ausgangsanschluss 25 zu erzeugen. Es ist auch möglich, dass die CPU 410 mit dem Videoprozessor 420 und/oder dem Audioprozessor 418 im Decodierungsprozess zusammenarbeitet. Die Datenkomponentenpaket-Dienstepakete werden unter der Steuerung der CPU 410 auf eine nachfolgend beschriebene Weise verarbeitet.
  • Wie oben beschrieben, wird, wenn der Programmkomponentendetektor 30 ein Header-Paket von einem angeforderten Paketdienst empfängt, dieses an einer bestimmten Stelle im RAM 412 für diesen Paketdienst gespeichert, und ein Header-Paket-Interruptsignal wird für die CPU 410 erzeugt. Als Reaktion auf das Header-Paket-Interruptsignal wird ein Interrupt-Handler ausgeführt, der den Inhalt des Header-Pakets analysiert und entweder die RAM 412 Pufferstellen in den DMA-Registern im Programmkomponentendetektor 30 aktualisiert und den DMA-Transfer freigibt oder den DMA-Transfer sperrt, wenn die Übertragungseinheit nicht gewünscht wird. Nach der Freigabe des DMA-Transfers werden dann die Daten in den Datenpaketen unter DMA-Steuerung in den RAM 412 geladen. Nach dem Laden der Datenpakete erzeugt der Programmkomponentendetektor 30 ein Daten-komplett-Interruptsignal. Als Reaktion auf das Daten-komplett-Interrupt-Signal wird ein Interrupt-Handler ausgeführt, der "Reinigungs"-Funktionen durchführt und auf das nächste Header-Paket vorbereitet.
  • 2 ist ein Diagramm des Aufbaus von Software 200, die auf der in 1 illustrierten Verarbeitungseinheit 40 läuft. 2 illustriert die Hauptsoftwarekomponenten, aus denen sich das multitaskingfähige AVI-Verarbeitungsbetriebssystem zusammensetzt. In 2 werden alle Komponenten im ROM 414 gespeichert, mit Ausnahme des Anwendungsprogramms, das durch den dunklen Bereich angedeutet ist. Das Anwendungsprogramm wird von der Datenkomponente des AVI-Signals geführt, wird von der Rundfunkstelle empfangen und im RAM 412 gespeichert. Die in 2 illustrierten Softwarekomponenten repräsentieren ablauffähigen Code und zugehörige konstante Daten. Während seines Ablaufs kann der Code variable Daten erzeugen und darauf zugreifen, die im RAM 412 gespeichert sind.
  • Im vorgeschlagenen AVI-Rundfunksystem können verschiedene Decoder CPUs unter Verwendung verschiedener Anweisungssätze verwenden, z. B. von verschiedenen Herstellern. In diesem System ist das Anwendungsprogramm ein prozessorunabhängiger Zwischencode. Die Software in jedem Decoder beinhaltet eine Komponente, die den Zwischenanwendungscode interpretiert (INTERPRETER). So kann das ausgesendete Anwendungsprogramm auf Decodern ausgeführt werden, die einen beliebigen Typ von CPU 410 enthalten. Dieser Interpreter liest die AVI-Datenkomponentenanweisungen im Zwischencode vom RAM 412, manipuliert Speicher und interagiert mit der Hardware durch andere Softwarekomponenten über eine Anwendungsprogrammierschnittstelle (API). Diese API, bei der es sich grundsätzlich um eine Liste von einem Anwendungsprogramm zur Verfügung stehenden Subroutinen sowie der für deren Abruf notwendigen Informationen handelt, wird veröffentlicht und kann vom Anwendungsprogrammierer zum Zugreifen auf die Decoderelemente verwendet werden.
  • Eine mathematische Bibliothek führt alle zum Implementieren von Ganzzahlen- und Gleitkomma-Arithmetik benötigten Funktionen aus. Ein Ablaufbetriebssystem steuert alle Treiber, die zum Überwachen der Datenkomponente des AVI-Signals notwendig sind, und verarbeitet angeforderte Module, wie nachfolgend ausführlicher beschrieben wird. Eine Benutzerschnittstellen-Managementkomponente handhabt die gesamte Benutzerinteraktion und benutzt eine Graphikbibliothek sowie einen Event-Manager für die Kommunikation mit dem Benutzer. Die Graphikbibliothek führt die gesamte Erzeugung von Graphikbildern aus, die auf das empfangene AVI-Video gelegt werden, und verwendet die mathematische Bibliothek zum Zeichnen komplexer Kurven.
  • Die verschiedenen Softwarekomponenten der Decoder-Software kommunizieren asynchron mit anderen, indem sie einander Meldungen senden. Jede Programmkomponente hat eine Meldungswarteschlange und funktioniert dadurch, dass sie wiederholt die nächste Meldung aus der Warteschlange liest, diese Meldung verarbeitet, möglicherweise eine Meldung zu einer anderen Programmkomponente sendet und, wenn keine Meldungen mehr anhängig sind, auf die nächste Meldung wartet. Der Event-Manager verwaltet die Kommunikation dieser Meldungen zwischen den anderen Softwarekomponenten, indem er die Meldungen ordnungsgemäß leitet und die Meldungswarteschlangen verwaltet.
  • Jeder Hardware-Adapter beinhaltet auch einen zugehörigen Software-Treiber. Der Treiber führt die eigentliche Interaktion zwischen der CPU 410 und den Registern im zugehörigen Hardware-Adapter über den Systembus 416 aus. So gibt es beispielsweise Treiber für das Modem 426, den externen E/A-Port 422, den Strom-E/A-Adapter 408 und die Benutzer-E/A 424. Darüber hinaus steuern separate Treiber einen Software-Timer sowie die Fronttafel des Decoders an. Diese Treiber sind stark vom Event-Manager abhängig. Alle obigen Komponenten arbeiten mit gemeinsamen Funktionen, die von einem Multitasking-Kernel bereitgestellt werden. So verwaltet der Kernel beispielsweise Prozessprioritäten, Aktive-Tasks-Warteschlangen, Signale, Semaphore, Präemptiv-Task-Umschalttaktimpulse, Interrupts (Hardware und Software) sowie Prozessstapel. Darüber hinaus besorgt der Kernel Hardware-Initialisierung und Einleitung der ersten Systemtask, nämlich einem Systemlader.
  • Beim Anstoß führt der Systemlader API-Aufrufe an das Ablaufbetriebssystem aus, das wiederum den Stromtreiber anweist, die entsprechenden Daten über den Strom-E/A-Adapter 408 zum Programmkomponentendetektor 30 zu senden. Diese API-Aufrufe vom Systemlader leiten in einer nachfolgend ausführlicher beschriebenen Weise einen Scan des Datenkomponentenpaketdienstes für das Verzeichnismodul ein. Wenn das Verzeichnismodul gefunden ist, wird es in den RAM 412 geladen und es wird geprüft, ob alle benötigten Betriebsmittel zur Ausführung dieses Programms zur Verfügung stehen. Wenn ja, leitet der Systemlader einen Scan der AVI-Datenkomponente für das erste Modul ein, Autostart-Modul genannt, so dass das AVI-Programm eingeleitet wird. Wenn das Autostart-Modul gefunden ist, wird es aus dem Datenkomponentenpaketdienst extrahiert und in den RAM 412 geladen. Dieses Autostart-Modul hat die Form von Zwischencode und wird ausgeführt, indem es vom Interpreter interpretiert wird. Das Autostart-Modul führt den Rest der Initialisierung aus und beginnt mit der Ausführung des AVI-Programms. Dieses Programm kann möglicherweise anderen Code und andere Datenmodule laden und eine Verkettung zu anderen Code-Modulen herstellen, alles über API-Aufrufe. Auf diese Weise funktioniert der Systemlader auf dieselbe Weise wie eine klassische UNIX® Shell.
  • Zusätzlich setzt der Systemlader den Scan des Datenkomponentenpaketdienstes fort, indem er übertragene Verzeichnismodule mit dem aktuellen Verzeichnismodul im RAM 412 vergleicht. Wenn sich das übertragene Verzeichnismodul von dem im RAM 412 gespeicherten unterscheidet, dann bedeutet das, dass sich der Datenkomponentenpaketdienst geändert hat, wie z. B. dann, wenn ein Zuschauer den Kanal umschaltet oder wenn eine interaktive Werbesendung ausgestrahlt wird. In diesem Fall wird mit der API eine Meldung über den Event-Manager zum Anwendungsprogramm gesendet. Als Reaktion auf diese Meldung hebt das Anwendungsprogramm die Zuordnung aller seiner Betriebsmittel auf und behält nur eine minimale Präsenz im Verarbeitungselement 40. So kann beispielsweise der zum Speichern aller Code- und Datenmodule verwendete Speicherplatz freigegeben werden, und nur der Ausführungszustand der Anwendung wird im RAM 412 gehalten. Nach Abschluss der Minimierung des Anwendungsprogramms wird eine. Meldung zum Systemlader gesendet.
  • Der Systemlader weist dann die Betriebsmittel zu, die zum Ausführen des durch das neue Verzeichnismodul repräsentierten AVI-Programms notwendig sind. Wenn ein neues Verzeichnismodul im AVI-Datenkomponentenpaketdienst erfasst wird, dann wird eine Liste von zuvor minimierten Anwendungen durchsucht, und wenn die durch das neue Verzeichnis repräsentierte Anwendung vorhanden ist, wird die Anwendung wieder aufgenommen, indem die benötigten Code- und Datenmodule vom Datenkomponentenfluss neu geladen und die Ausführung dort wieder aufgenommen wird, wo sie zuvor unterbrochen wurde. Dies kann am Ende einer zwischengeschalteten interaktiven Werbesendung geschehen. Dieser Prozess kann rekursiv sein. wo ein zweites AVI-Programm selbst durch ein drittes AVI-Programm unterbrochen und später wieder aktiviert werden kann.
  • 3 illustriert Ablaufdiagramme und Speicherlayout-Diagramme, 4 ist ein ausführlicheres Blockdiagramm des Programmkomponentendetektors 30 (1) sowie ein ausführlicheres Speicherlayout-Diagramm, das zur Vermittlung eines Verständnisses der Extraktion von Modulen aus dem Datenpaket in einem AVI-Programm nützlich ist. In 4 ist der digitale Basisband-Paketstrom vom Tuner 10 (von 1) mit jeweiligen Dateneingangsanschlüssen eines Daten-DMA-Controllers 32 und eines Header-Paket-DMA-Controllers 34 im Programmkomponentendetektor 30 verbunden. Jeweilige Datenausgangsanschlüsse von Daten-DMA-Controller 32 und Header-Paket-DMA-Controller 34 werden mit dem Systembus 416 der Verarbeitungseinheit 40 verbunden. Der Strom-E/A-Adapter 408 ist zwischen dem Systembus 416 und jeweiligen Steuereingangsanschlüssen des Daten-DMA-Controllers 32 und des Header-Paket-DMA-Controllers 34 geschaltet. Beim Betrieb überträgt der Strom-E/A-Adapter 408 Steuerinformationen, z. B. Pufferstellenstart- und -endadressen, Lese- und Schreibadressen sowie Transferzahlen auf bekannte Weise von der CPU 410 (von 1) zum Daten-DMA-Controller 32 und zum Header-Paket-DMA-Controller 34. Der Strom-E/A-Adapter 408 kann dann den Daten-DMA-Controller 32 und/oder den Header-Paket-DMA-Controller 34 befähigen, auf bekannte Weise jeweils Daten- oder Header-Pakete vom Paketstrom zum Puffer zu übertragen, oder er kann solche Übertragungen unter der Steuerung der CPU 410 sperren. Wenn der Daten-DMA-Controller 32 eine Datenübertragung abgeschlossen hat, dann erzeugt er ein Daten-komplett-Interruptsignal für die CPU 410. Wenn der Header-Paket-DMA-Controller 34 das Laden eines Header-Pakets abgeschlossen hat, dann erzeugt er ein Header-Paket-Interruptsignal für die CPU 410.
  • 4 repräsentiert den RAM 412 durch einen großen Block, und Datenstrukturen werden durch kleinere Blöcke innerhalb des großen Blocks dargestellt. Die Blöcke von 4 sind lediglich schematisch und sollen keine absoluten oder relativen Stellen oder Größen illustrieren, die im RAM 412 für die Datenstrukturen zugeordnet sind. 412 beinhaltet Datenstrukturen für die Modulanforderungswarteschlange 322, einen Header-Paketpuffer 324, einen Verzeichnismodulpuffer 326 und einen Modulpuffer 328. Informationsfelder in den Datenstrukturen sind als horizontale Scheiben dargestellt, die den Namen des in diesem Feld enthaltenen Informationstyp enthalten. Dies wird nachfolgend ausführlicher erörtert.
  • 3 illustriert die Prozedur zum Extrahieren eines Moduls von dem Datenkomponentenpaketdienst und zum Speichern desselben in einem Puffer im RAM 412. Ähnliche Prozeduren erfolgen für eine andere Modulverarbeitungen, wie nachfolgend beschrieben wird. In 3 werden Maßnahmen in einem Anwendungsprogramm (oder dem Systemlader) in der linken Spalte unter der Überschrift "ANW. PROG" illustriert. In Block 302 richtet das Anwendungsprogramm unter Verwendung des API eine Anforderung an das Ablaufbetriebssystem zum Laden eines Moduls mit der Kennungs-ID vom AVI-Programmkomponentenpaketdienst. Wie oben beschrieben, sind API-Aufrufe grundsätzlich Subroutinenaufrufe zu Betriebssystemfunktionen. Die Programmausführung wird somit zum Ablaufbetriebssystem (FOS) übertragen. Vom FOS durchgeführte Maßnahmen sind in der nächsten Spalte rechts unter der Überschrift "FOS" illustriert. Da die Anforderung das Laden eines Moduls beinhaltet, fordert das FOS in Block 312 eine Speicherplatzzuweisung vom Speichermanager mit einer zum Aufnehmen des Moduls ausreichenden Größe an. Wenn das angeforderte Modul beispielsweise ein Code- oder Datenmodul ist, dann beinhaltet das zuvor gespeicherte Verzeichnismodul 326 (von 4) ein Feld, das die Länge (LENGTH) der Modul-ID enthält. In diesem Fall weist ein Speichermanager einen Modulspeicherpuffer (328 von 4) mit einer Startadresse START und einer Endadresse END zu. Dann werden in Block 314 Informationen, die die Anforderung beschreiben, z. B. die Kennungs-ID des Moduls, der Anforderungstyp REQUEST (in diesem Fall eine Anforderung zum Extrahieren und Laden eines Moduls) und die zugewiesene Pufferstartadresse START sowie die Endadresse (END) alle im Einsprung in der Anforderungswarteschlange (QUEUE) 322 gespeichert. Dann wird der Header-Paket-DMA-Controller 34 zum Laden von Header-Paketen in den RAM 412 freigegeben, wenn diese im Paketstrom auftauchen.
  • Wenn ein Verzeichnismodul angefordert wird, dann ist seine Länge a priori nicht bekannt. In diesem Fall wird eine relativ große Speicherplatzzuordnung angefordert. Wenn sich diese Zuordnung als zu klein herausstellt, dann wird die Anforderung wiederholt, nachdem eine größere Speicherplatzzuweisung angefordert wurde, bis entweder das Verzeichnismodul geladen ist oder bis ermittelt ist, dass nicht genügend Speicherplatz zum Laden vorhanden ist, und in diesem Fall wird der Versuch zum Abarbeiten des AVI-Programms abgebrochen.
  • Das FOS kehrt dann sofort zum aufrufenden Anwendungsprogramm zurück. Das Anwendungsprogramm kann dann eine andere Verarbeitung durchführen, z.B. Ausgeben von Anforderungen von anderen Modulen, andere Initialisierungen usw. Wenn ein Zugriff auf das angeforderte Modul benötigt wird, kann das Anwendungsprogramm in Block 304 einen API-Aufruf an eine Wartefunktion im Kernel ausgeben. Diese Funktion unterbricht die Ausführung des Anwendungsprogramms, bis eine Meldung von diesem Anwendungsprogramm empfangen wird, die ein erfolgreiches Laden des angeforderten Moduls anzeigt. Nach Eingang einer solchen Meldung wird das Anwendungsprogramm zum Verarbeiten dieser Meldung reaktiviert. Alternativ kann das Anwendungsprogramm aktiv bleiben, z. B. um schneller auf Benutzereingaben reagieren zu können und um periodisch seine Meldungswarteschlange nach dieser Meldung abzufragen, was ein erfolgreiches Laden des angeforderten Moduls bedeutet, und die Meldung nach dem Empfang zu verarbeiten.
  • Wie oben beschrieben, lädt der Header-Paket-DMA-Controller 34 Header-Pakete in einen Header-Paket- (HDR PKT) Puffer 324 (von 4) im RAM 412, zuvor vom Speichermanager zugeordnet, und gibt ein Header-Paket-Interruptsignal an die CPU 410 aus. Ein Teil der vom Header-Interrupt-Handler im Kernel durchgeführten Verarbeitung ist in der Spalte mit dem Titel "HEADER INTR" in 3 illustriert. In Block 332 wird die Kennung des Moduls, die in der Übertragungseinheit geführt wird, für die dies das Header-Paket ist, aus einer bekannten Stelle, ID, im Header-Paketpuffer 324 abgerufen. In Block 334 wird eine Anforderungswarteschlange 322 untersucht, um zu ermitteln, ob für dieses Modul eine anhängige Anforderung vorhanden ist.
  • Wenn eine anhängige Anforderung für dieses Modul vorhanden ist, wird der Datenpaket-DMA-Controller 32 in Block 336 im Programmkomponentendetektor 30 wie folgt initialisiert: mit der Startadresse START des Modulpuffers 328 und der Endadresse END von der Anforderungswarteschlange 322; einer Schreibadresse, die die Summe der Startadresse START des Modulpuffers 328 und des Übertragungseinheitsdatenversatzes OFFSET (d. h. START + OFFSET) ist; und einer letzten Schreibadresse, nämlich START + OFFSET + GRÖSSE (oder alternativ eine Ladezahl, die die Größe SIZE vom Header-Paketpuffer 324 anstelle der letzten Schreibadresse ist). Dann wird der Datenpaket-DMA-Controller 32 freigegeben.
  • Wenn dies das erste nach der Ladeanforderung empfangene Header-Paket ist, dann wird in Block 338 ein Zeiger auf die erste in der Anforderungswarteschlange 322 gespeicherte Schreibadresse (FIRST) auf die Schreibadresse dieser ersten Übertragungseinheit initialisiert (d.h. FIRST = START + OFFSET). Ferner wird ein Zeiger auf die erwartete nächste Schreibadresse, NEXT, ebenfalls in der Anforderungswarteschlange 322 gespeichert, auf die Schreibadresse der ersten Übertragungseinheit initialisiert (d. h. NEXT = START + OFFSET). Dann erfolgt in Block 338 eine weitere Verarbeitung, die nachfolgend ausführlicher beschrieben wird. So wird z. B. ein Sonderzeiger auf die Stelle in der Anforderungswarteschlange 322 der gerade verarbeiteten Anforderung, CURR REQ, an einer vorbestimmten Stelle (nicht dargestellt) im RAM 412 gespeichert. Dann kehrt in Block 339 der Interrupt-Handler (339) zurück.
  • Der Datenpaket-DMA-Controller 32 initialisiert einen Schreibzeiger (WP) auf die zuvor empfangene Schreibadresse (START + OFFSET) und lädt Daten von den folgenden Datenpaketen im AVI-Programmkomponentenpaketdienst in sequentielle Stellen im Modulpuffer 328 im RAM 412. Wenn alle Daten in der Übertragungseinheit in den RAM 412 geladen sind, dann wird das Daten-komplett-Interruptsignal erzeugt. Ein Teil der durch den Daten-komplett-Interrupt-Handler im Kernel ausgeführten Verarbeitung ist in der rechten Spalte mit dem Titel "DATA COMPL INTR" von 3 illustriert.
  • In Block 342 werden Reinigungsfunktionen in Bezug auf den aktuellen Status der DMA-Übertragung ausgeführt. Der aktuelle Anforderungszeiger (CURR REQ), der zuvor im Header-Paket-Interrupt-Handler eingestellt wurde, zeigt auf den Einsprung in der Anforderungswarteschlange 322, für die gerade eine Übertragungseinheit den Ladevorgang beendet hat. Der erwartete nächste Schreibadresszeiger, NEXT, in der aktuellen Anforderung wird durch den Wert SIZE vom Header-Paketpuffer 324 inkrementiert und zeigt jetzt auf die für die nächste Übertragungseinheit erwartete Schreibadresse. Wenn der neue Wert des erwarteten nächsten Schreibadresszeigers, NEXT, gleich der Endadresse END des Modulpuffers 328 ist, dann wird er auf die Startadresse START des Modulpuffers 328 auf umlaufende Weise zurückgesetzt.
  • In Block 344 wird ermittelt, ob das gesamte angeforderte Modul im Speicher geladen ist. Der Wert des erwarteten nächsten Schreibadresszeigers NEXT wird mit dem Wert der ersten geladenen Adresse START verglichen. Wenn sie gleich sind, dann wurde das gesamte Modul geladen. In Block 346 wird über den Event-Manager eine Meldung zum anfordernden Anwendungsprogramm gesendet, um anzuzeigen, dass das anfordernde Modul vollkommen zurückgespeichert wurde, in 3 als gestrichelte Linie illustriert. Ferner wird die Anforderung aus der Anforderungswarteschlange 322 herausgenommen. Wenn der Wert der erwarteten nächsten Schreibadresse NEXT nicht gleich der ersten geladenen Adresse START ist, kehrt der Datenkomplett-Intenupt-Handler (349) zurück, und die nächste Daten für das erwartete Modul enthaltende Übertragungseinheit wird wie oben beschrieben vom Header-Paket-Interrupt-Handler verarbeitet. In beiden Fällen wird der aktuelle Anforderungszeiger (CURR REQ) weggenommen.
  • Wenn ein Teil einer Übertragungseinheit vom Programmkomponentendetektor 30 nicht richtig empfangen wurde, dann wird ein nachfolgendes Header-Paket empfangen, bevor das Datenkomplett-Interruptsignal vom vorherigen Header-Paket vom DMA-Schaltkomplex im Programmkomponentendetektor 30 erzeugt wurde. Dies hat wiederum zur Folge, dass ein nachfolgendes Header-Paket-Interruptsignal erzeugt wird, bevor das vorhergehende Datenkomplett-Interruptsignal erzeugt werden kann. Die Verarbeitung im Header-Paket-Interrupt-Handler und im Daten-komplett-Interrupt-Handler kann zum Identifizieren dieser Situation zusammenarbeiten und einen solchen Fehler handhaben.
  • Im Header-Paket-Interrupt-Handler erfolgt eine solche Verarbeitung in Block 338 (von 3), nachdem der Datenpaket-DMA-Controller zum Empfangen der nächsten Übertragungseinheit freigegeben wird. Für jedes empfangene Header-Paket wird die erwartete nächste Schreibadresse NEXT im aktuellen Anforderungswarteschlangen-Einsprung, zuvor durch den Daten-komplett-Interrupt-Handler aktualisiert, mit der Schreibadresse (START + OFFSET) für das neu empfangene Datenpaket verglichen. Wenn sie gleich sind, dann wurde die vorherige Übertragungseinheit erfolgreich empfangen. Ist jedoch die letzte Endadresse nicht dieselbe wie der neue Offset, dann bedeutet dies, dass der DMA-Transfer der vorherigen Übertragungseinheit nicht vollständig abgeschlossen wurde. In diesem Fall werden sowohl die erste Schreibadresse FIRST als auch die erwartete nächste Schreibadresse NEXT auf die aktuelle Schreibadresse (START + OFFSET) aktualisiert. Das heißt, zuvor geladene Übertragungseinheiten werden im Wesentlichen verworfen, und das Laden des Moduls wird mit der aktuellen Übertragungseinheit neu gestartet. Diese Form der Wiederherstellung nach einem Daten-fehlen-Fehlertyp kann zeitaufwändiger sein, weil eine Übertragungseinheit, die zuvor erfolgreich geladen wurde, beim Neuladen in einem Fehler resultieren kann. Wenn diese Wiederherstellungsform jedoch angewendet wird, werden die vom Header-Paket-Interrupt-Handler und vom Daten-komplett-Interrupt-Handler durchgeführten Tasks minimiert, und es werden nur zwei Zeiger im Speicher benötigt.
  • Im Rahmen der Modul-komplett-Meldungshandhabung führt der Event-Handler eine Fehlerprüfung am empfangenen Modul durch. So wird beispielsweise ein CRC-Prüfcode als eingebetteter Teil des Moduls übertragen. Der Event-Handler berechnet einen CRC-Code über das empfangene Modul im Modulpuffer 328 im RAM 412 und vergleicht ihn mit dem eingebetteten CRC-Code. Wenn der neu berechnete CRC-Code mit dem eingebetteten übereinstimmt, dann wurde das Modul korrekt empfangen, ansonsten ist ein Fehler aufgetreten, und das Modul wird wie oben beschrieben neu geladen.
  • Nach dem vollständigen Laden des angeforderten Moduls in den Speicher kann die weitere Verarbeitung durch das Anwendungsmodul fortgesetzt werden, wie in 3 mit einer Linie von Fuß des API-Aufrufs zur Wartefunktion 304 angedeutet ist. Es kann jedoch eine separate Task im Anwendungsprogramm als Reaktion auf den Eingang der Meldung von der Meldungswarteschlange dieses Anwendungsprogramms aktiviert werden.
  • Die oben erwähnte API beinhaltet Funktionen zum Zugreifen auf den Datenstrom durch das Anwendungsprogramm über den Interpreter oder über den Systemlader. Ein Anwendungsprogrammierer verwendet die veröffentlichte API-Beschreibung zum Formulieren eines API-Aufrufs, um auf die gewünschte Datenstromfunktion zuzugreifen. Eine erste Gruppe von Funktionen bezieht sich auf das Verzeichnis von Modulen. Eine erste Funktion, DIR_NEW, ist eine Anforderung für ein neues Verzeichnis. Wie oben beschrieben, erfolgt als Reaktion auf diese API-Funktion eine Zuweisung von Speicherplatz, dann wird eine Anforderung zum Laden des nächsten Verzeichnismoduls in den Datenstrom in eine Warteschlange gesetzt, dann kehrt die API-Funktion zurück. Nach dem Laden des Verzeichnisses wird eine Meldung zum anfordernden Programm gesendet. Eine weitere Funktion, DIR_FREE, gibt den Speicherplatz frei, der von dem aktuellen Verzeichnis angenommen wurde. Die Funktion DIR_SELECT gibt an, welches Verzeichnismodul in nachfolgenden API-Aufrufen verwendet wird. Die Funktion DIR_CURRENT gibt einen Handle zum aktuell gewählten Verzeichnis zurück.
  • Die Funktionen DIR_SPY und DIR_STOP_SPY sind der DIR_NEW Funktion ähnlich. Als Reaktion auf einen DIR_SPY API-Aufruf wird eine Anforderung in die Anforderungswarteschlange für ein Verzeichnismodul in die Warteschlange eingereiht, aber anstatt ein Verzeichnismodul zu laden und nach dem Laden eine Meldung zu senden, sendet diese Funktion jedesmal eine Meldung, wenn ein Verzeichnismodul im Datenfluss erfasst wird (das Verzeichnismodul ist nicht geladen). Darüber hinaus bleibt die Anforderung so lange in der Anforderungswarteschlange, bis ein DIR_STOP_SPY API-Aufruf erfolgt. Nach erfolgtem DIR_STOP_SPY API-Aufruf wird die Anforderungswarteschlange nach der Verzeichnisspion-Anforderung durchsucht, und dieser Einsprung wird entfernt. Diese Funktionen sind zum Ausspionieren von Änderungen vom aktuellen Verzeichnis im Datenstrom nützlich. Schließlich gibt es API-Aufrufe zum Extrahieren von Informationen über das aktuelle Verzeichnis: DIR_IDENTIFIER, DIR_REQUIREMENT und DIR_NB_MODULES.
  • Aufgrund des eingebetteten CRC-Codes im Modul muss jede Speicherzuweisungsanforderung zum Laden eines Moduls diesen Code berücksichtigen. Dazu werden drei API-Aufrufe bereitgestellt. Die Funktion MODULE_ALLOC nimmt eine Modulkennung als Argument und fordert eine Zuweisung der richtigen Speichermenge zum Laden dieses Moduls an, unter Berücksichtigung von CRC- oder anderen Speichererfordernissen. Die Funktion MODULE_FREE gibt den von einem Modul eingenommenen Speicherplatz frei. MODULE_CHECK führt eine CRC-Prüfung eines geladenen Moduls durch und gibt das Ergebnis zurück. Dies kann jederzeit erfolgen, weil der CRC-Code in dem Modul wie im Speicher geladen eingebettet ist.
  • Ein weiterer Satz von API-Aufrufen befasst sich mit den Modulen unter Verwendung des aktuell gewählten Verzeichnisses für deren Identifikation. Es gibt API-Aufrufe zum Extrahieren von Informationen über ein Modul: MODULE_REQUIREMENT, MODULE_SIZE und MODULE_FLAGS. Diese befähigen das System zu ermitteln, ob ein Modul geladen und/oder ausgeführt werden kann. Die Funktion MODULE_RUN dient zum Laden eines ablauffähigen Moduls, wie oben beschrieben, zum Erzeugen eines neuen Prozesses und zum Beginnen der Ausführung an der Einsprungstelle des Moduls. Diese Funktion wird vom Systemlader zum Einleiten der AVI-Programmausführung benutzt. Die Funktion MODULE_CHAIN dient zum Laden eines nachfolgenden ablauffähigen Moduls, zum Beenden der Ausführung des aktuellen Moduls und zum Beginnen der Ausführung des neu geladenen Moduls an seiner Einsprungstelle. Es wird in diesem Fall kein neuer Prozess erzeugt. Die Funktion MODULE_LOAD dient zum Laden eines Moduls, aber nicht zum Starten der Ausführung. Wie oben beschrieben, wird eine Meldung zum anfordernden Programm gesendet, wenn das Modul fertig geladen ist. Die Funktion MODULE_EXEC dient zum Erzeugen eines neuen Prozesses und zum Beginnen der Ausführung eines Moduls, das zuvor vom MODULE_LOAD API-Aufruf an seiner Einsprungstelle geladen wurde.
  • Die Funktion MODULE_LINK führt ein neues Modul mit dem aktuellen Prozess, den aktuellen Betriebsmitteln und Variablen aus. Sie erlaubt Subroutinen-ähnliche Aufrufe aus einem Modul heraus durch Bereitstellen einer dynamischen Verbindung zu dem neuen Modul. So können AVI-Programme in kleinere Module unterteilt werden, die nur bei Bedarf dynamisch verknüpft werden. Die MODULE_LINK Funktion führt Relokations- und Sprungtabellen. Die Funktionen MODULE_SPY und MODULE_STOP_SPY funktionieren ähnlich wie DIRECTORY SPY und DIRECTORY_STOP_SPY, aber mit Bezug auf identifizierte Module. Der MODULE_SPY API-Aufruf fügt einen Einsprung in die Anfordergungswarteschlange ein, einschließlich der Kennung des Moduls. Wann immer ein Header-Modul mit derselben Kennung im Datenstrom erfasst wird, wird eine Meldung zum anfordernden Programm gesendet. Dies wird so lange fortgesetzt, bis ein MODULE_STOP_SPY API-Aufruf erfolgt. Als Reaktion auf den MODUL_STOP_SPY API-Aufruf wird der die Spionageanforderung für das identifizierte Modul enthaltende Einsprung aus der Anforderungswarteschlange entfernt. Die MODULE_STOP_LORD Funktion stoppt jede gerade laufende Modulladeanforderung und nimmt den Ladeanforderungseinsprung aus der Anforderungswarteschlange heraus. Die Funktionen FLOW_MESSAGE und FLOW_STOP_MESSAGE erzeugen und beseitigen jeweils eine Anforderung für eine Meldung, wenn ein besonderes Signalgabepaket, das sich auf den Datenstrom bezieht, auftritt, wie z. B. ein unterbrochener Datenfluss oder das Ende des Datenflusses. Im Falle eines solchen Events wird eine Meldung zum anfordernden Programm gesendet.
  • Wie oben beschrieben, führt der Systemlader Systeminitialisierung durch und überwacht den Datenstrom, um zu gewährleisten, dass die Ausführung des Anwendungsprogramms synchron zu den empfangenen Audio- und Videokomponenten erfolgt. 5 ist ein Ablaufdiagramm, das die Initialisierungsfunktion des Systemladers illustriert. In Block 52 von 5 werden verschiedene Hardware- und Software-Komponenten des Decoders (von 17) initialisiert. Ferner werden Stellen im RAM 412 zugewiesen und für verschiedene Datenstrukturen initialisiert. Diese Initialisierungsfunktionen sind hinlänglich bekannt und sind von anderen Software-Komponenten im Decoder abhängig. Ein Systemprogrammierer wird verstehen, welche Hardware- und Software-Initialisierungen nötig sind, welche Datenstrukturen benötigt werden und wie die Initialisierungen durchgeführt werden. Daher wird dieser Block hier nicht ausführlich beschrieben.
  • In Block 54 erfolgt der oben beschriebene DIR_NEW API-Aufruf. Dieser API-Aufruf lädt das nächste Verzeichnismodul, das im AVI-Programmkomponentenpaket erscheint, in den zugewiesenen Puffer im RAM 412. Dieser API-Aufruf kehrt sofort zum Systemlader zurück, auch wenn das Verzeichnis möglicherweise erst später in den RAM 412 geladen wird. Der Systemlader führt andere Funktionen und dann, falls notwendig, einen Warte-API-Aufruf (nicht dargestellt) aus, bis eine Meldung über den Event-Manager empfangen wird, die anzeigt, dass das Verzeichnismodul geladen ist. In Block 56 werden die im Decoder (von 1) verfügbaren Betriebsmittel mit den Daten verglichen, die die benötigten Betriebsmittel im Verzeichnismodul anzeigen. Wenn der Decoder genügend Betriebsmittel zum Ausführen des AVI-Programms hat, erfolgt ein MODULE_RUN API-Aufruf zum Laden des Autostart-Code-Moduls, wie oben beschrieben im zuvor geladenen Verzeichnismodul identifiziert. Auch hier kehrt der API-Aufruf sofort zurück, aber das Code-Modul wird evtl. erst zu einem späteren Zeitpunkt vollständig vom Datenstrom geladen. Nach dem vollständigen Laden des Autostart-Code-Moduls wird eine andere Task auf bekannte Weise unter Verwendung des Multitasking-Kernels zum Ausführen des AVI-Programms über den Interpreter erzeugt.
  • In Block 58 beginnt der Systemlader mit der Überwachung der AVI-Programmkomponente für Ausführungssignale und Verzeichnisänderungen und steuert die Ausführung des AVI-Programms durch Senden von Meldungen zum AVI-Programm wie nachfolgend beschrieben. 6 ist ein Statusübergangsdiagramm, das die Überwachungsfunktion des Systemladers illustriert, und trägt zum Verständnis des Betriebs des Systemladers bei. Wenn ein Verzeichnis in einem AVI-Programmkomponentenpaketdienst erfasst wird, dann ist das Programm, das der Zuschauer gewählt hat, ein interaktives Programm. Nach dem Laden des Verzeichnisses in den RAM 412 und dem Anfordern des Autostart-Code-Moduls vom AVI-Komponentenpaketdienst tritt das AVI-Programm unter der Steuerung des Systemladers in den INAKTIV-Zustand 61 ein. Im INAKTIV-Zustand 61 wurden alle Betriebsmittel zum Starten der Anwendung zugewiesen, und die Anwendung kann ganz oder teilweise geladen werden, aber es gibt keine Interaktion mit dem Zuschauer. Zum Beispiel bleibt das AVI-Programm, während das Autostart-Modul geladen wird, im INAKTIV-Zustand 61. Ferner wechselt der Zuschauer, selbst nach dem Laden des Autostart-Moduls, vielleicht nur Kanäle durch den das AVI-Programm führenden Kanal und hat gar keine Absicht, mit dem AVI-Programm zu interagieren. Oder der Zuschauer möchte lediglich das AVI-Programm beobachten, bevor er eine Entscheidung zur Teilnahme an der Interaktion trifft. In allen diesen Fällen ist es wichtig, dass die Fernbedienung im normalen Kanalumschaltmodus und nicht in einem interaktiven Modus arbeitet. Dies ist der Zweck des INAKTIV-Zustands 61. Um dem Zuschauer mitzuteilen, dass der betrachtete Kanal ein interaktives Programm ausstrahlt, wird ein spezielles interaktives Programmzeichen oder -symbol über das AVI-Video gelegt.
  • Damit ein Zuschauer tatsächlich mit einer Interaktion mit dem AVI-Programm beginnen kann, wird eine spezielle Taste, nachfolgend "AKTIVIEREN" genannt, auf der Fernbedienung vorgesehen. Wenn das interaktive Programmzeichen oder -symbol angezeigt wird, kann der Betrachter die "AKTIVIEREN"-Taste betätigen. Der Systemlader sendet als Reaktion auf die Betätigung der AKTIVIEREN-Taste eine AKTIVIEREN-Meldung zum AVI-Programm, das dann in den AKTIV-Zustand 63 übergeht. Im AKTIV-Zustand 63 beginnt der Interpreter tatsächlich mit der Ausführung des zuvor geladenen AVI-Programms an der Einsprungstelle. Wenn das Autostart-Modul des AVI-Programms mit der Ausführung beginnt, weist es seine Datenstrukturen im RAM 412 selbst zu und initialisiert sie, lädt weitere Code- und/oder Datenmodule und steuert sämtliche Benutzeraktionen von der Fernbedienung und von der Frontschalttafel.
  • Da das AVI-Programm alle Benutzerinteraktionen steuert, kann es verhindern, dass der Benutzer Kanäle wechselt oder andere normale Fernbedienungsfunktionen ausführt. Um zu den normalen Fernbedienfunktionen zurückzukehren, muss der Zuschauer zuvor das aktuelle AVI-Programm stoppen. Der Zuschauer betätigt die AKTIVIEREN-Taste nochmals, um das Programm zu deaktivieren. Als Reaktion auf diesen Tastendruck sendet der Systemlader eine DEAKTIVIEREN-Meldung zum ablaufenden AVI-Programm, so dass der AKTIV-Zustand 63 verlassen wird und das System in den INAKTIV-Zustand 61 zurückkehrt. Es erscheint wieder das besondere interaktive Programmzeichen oder -symbol, was bedeutet, dass das AVI-Programm geladen ist, aber nicht abläuft. Der Zuschauer kann dann Kanäle wechseln oder andere normale Fernbedienfunktionen ausführen, oder er kann das AVI-Programm durch nochmaliges Betätigen der AKTIVIEREN-Taste reaktivieren. Die AKTIVIEREN-Taste dient somit als Umschalter zwischen dem AKTIV-Zustand 63 und dem INAKTIV-Zustand 61, wenn sie betätigt wird. Die Meldungen AKTIVIEREN und DEAKTIVIEREN können auch als AKTIVIEREN-Umschaltmeldungen verstanden werden, deren Bedeutung (AKTIVIEREN oder DEAKTIVIEREN) vom Zustand des AVI-Programms (INAKTIV bzw. AKTIV) abhängig ist, wenn die AKTIVIEREN-Taste betätigt wird.
  • Während das AVI-Programm im AKTIV-Zustand 63 abläuft, gibt es Zeiten, wenn sein Ablauf möglicherweise unterbrochen werden soll. Wenn beispielsweise eine nicht interaktive Werbesendung gesendet werden soll, dann stimmen die übertragenen Audio- und Videosignale nicht mehr mit den vom Decoder 10 (von 1) erzeugten Ton- und Graphiksignalen überein, und es soll dem Zuschauer gestattet werden, auf normale Weise mit der Fernbedienung zu arbeiten. Der Anwendungsprogrammierer kann jedoch nicht im Voraus wissen, wann solche Unterbrechungen gewünscht werden. So kann der Programmanbieter in diesem Fall unabhängig vom AVI-Programm möglicherweise repetitiv besondere Signalpakete (wie oben beschrieben), Unterbrechungssignalpakete genannt, in den AVI-Programmkomponentenpaketdienst integrieren. Jedes solche Paket enthält Daten, die anweisen, dass das gerade ablaufende AVI-Programm die Ausführung unterbrechen soll.
  • Der Systemlader empfängt über einen FLOW_MESSAGE API-Aufruf jedesmal eine Meldung, wenn solche Pakete im AVI-Programmkomponentenpaketdienst empfangen werden. Wenn beispielsweise ein Unterbrechungssignalpaket empfangen wird, dann empfängt der Systemlader eine Unterbrechungssignalmeldung und sendet als Reaktion auf die erste Unterbrechungssignalmeldung eine UNTERBRECHEN-Meldung zum AVI-Programm, das die Ausführung wiederum unterbricht und in den UNTERBROCHEN-Zustand 65 übergeht. Im UNTERBROCHEN-Zustand 65 wird die Ausführung des AVI-Programms auf eine solche Weise unterbrochen, dass es an der Stelle wieder gestartet werden kann, an der es unterbrochen wurde. Das heißt, alle zum Ausführen des AVI-Programms notwendigen Betriebsmittel bleiben zugewiesen, und der Ausführungszustand des AVI-Programms wird an einer Stelle im RAM 412 gespeichert. Zusätzlich wird ein zweites Zeichen oder Symbol, das angibt, dass ein zuvor ablaufendes interaktives Programm unterbrochen ist, aber wieder aufgenommen werden kann, wenn dies zugelassen wird, über das aktuelle Videobild gelegt.
  • Nach der Unterbrechung (z. B. der nicht interaktiven Werbesendung) stoppt der Programmanbieter den Einschluss der Unterbrechungssignalpakete im AVI- Programmkomponentenpaketdienst. Der Systemlader sendet nach einer vorbestimmten Zeitperiode ohne Empfang einer Unterbrechungssignalmeldung eine FORTSETZEN-Meldung zum AVI-Programm, das wiederum die Ausführung dort wieder aufnimmt, wo sie zuvor unterbrochen wurde, und wie oben beschrieben in den AKTIV-Zustand 63 übergeht.
  • In einer alternativen Ausgestaltung der oben beschriebenen UNTERBRECHEN / FORTSETZEN Signalgabeanordnung schließt der Programmanbieter ein einzelnes Unterbrechungssignalpaket in den AVI-Programmkomponentenpaketdienst ein, wenn die Ausführung des AVI-Programms unterbrochen werden soll. Der Programmanbieter schließt dann ein anderes besonderes Signalpaket, Fortsetzungssignalpaket genannt, in den AVI-Programmkomponentenpaketdienst ein, wenn die Ausführung des AVI-Programms wieder aufgenommen werden soll. Dieses Programm enthält Daten, die das gerade unterbrochene AVI-Programm anweisen, die Ausführung wieder aufzunehmen. Der Systemlader erkennt das Fortsetzungssignalpaket und sendet eine FORTSETZEN-Meldung zum AVI-Programm, das die Ausführung wieder aufnimmt und wie oben beschrieben in den AKTIV-Zustand 63 eintritt.
  • Es ist auch möglich, dass ein Zuschauer die Ausführung eines unterbrochenen AVI-Programms stoppt. Wenn das Programm-unterbrochen-Zeichen oder -Symbol erscheint, dann kann der Zuschauer die AKTIVIEREN-Taste betätigen. Der Systemlader sendet als Reaktion auf diese Tastenbetätigung eine DEAKTIVIEREN-Meldung zum unterbrochenen AVI-Programm, das wiederum in den oben beschriebenen INAKTIV-Zustand 61 übergeht. Vom INAKTIV-Zustand 61 kann das Programm die Ausführung erst dann wieder aufnehmen, wenn der Zuschauer die AKTIVIEREN-Taste betätigt, so dass der Systemlader eine AKTIVIEREN-Meldung zum AVI-Programm sendet, das dann in den AKTIV-Zustand 63 übergeht. Wenn der Systemlader immer noch Unterbrechungssignalpakete empfängt, dann wird eine weitere UNTERBRECHEN-Meldung unmittelbar zum AVI-Programm gesendet, das wiederum in den UNTERBROCHEN-Zustand 6S übergeht. Der INAKTIV-Zustand 61, der AKTIV-Zustand 63 und der UNTERBROCHEN-Zustand 65 sind die Zustände, zwischen denen das AVI-Programm als Reaktion auf Meldungen umschalten kann, die ihm vom Systemlader gesendet werden. Es gibt jedoch zwei weitere Zustände, in die unter direkter Steuerung des Systemladers eingetreten werden kann.
  • Ein AVI-Programm kann ein Ende seiner Ausführung erreichen. So kann der Programmanbieter beispielsweise ein weiteres Sondersignalpaket, Ausführungssignalpaket genannt, in den AVI-Programmkomponentenpaketdienst integrieren. Der Systemlader empfängt eine Ausführungsendemeldung, wenn ein Ausführungsendesignalpaket im AVI-Programmkomponentenpaketdienst über den FLOW_MESSAGE API-Aufruf erkannt wird. Als Reaktion auf die Ausführungsendemeldung sendet der Systemlader eine EXIT-Meldung zum AVI-Programm. Unabhängig davon, in welchem Zustand sich das AVI-Programm befindet, ob INAKTIV 6l, AKTIV 63 oder UNTERBROCHEN 65, reagiert das AVI-Programm auf die EXIT- Meldung durch Aufheben der Zuweisung aller seiner Betriebsmittel und entfernt alle Datensätze selbst aus dem Decoder 10 (von 1). Dies wird so angesehen, dass das Programm in den GESTOPPT-Zustand 69 eingetreten ist und aus dem Decoder 10 verschwindet. In einigen Fällen kann das Programm selbst erkennen, dass seine Ausführung abgelaufen ist, entweder über einen Benutzerbefehl oder über seine eigene Ausführung. Wenn das AVI-Programm erkennt, dass seine Ausführung beendet ist, führt es dieselbe Verarbeitung durch, die es durchgeführt hätte, wenn es eine EXIT-Meldung empfangen hätte, und tritt von sich alleine in den GESTOPPT-Zustand 69 ein.
  • Wenn sich ein AVI-Programm im UNTERBROCHEN-Zustand befindet, dann ist es möglich, dass ein anderes interaktives AVI-Programm auf dem AVI-Programmkomponentendatenfluss empfangen wird. Wenn das AVI-Programm beispielsweise für eine Werbesendung unterbrochen wurde, dann kann diese Werbesendung selbst ein interaktives Programm sein, oder der Benutzer kann Kanäle auf einen Kanal umgeschaltet haben, der ein anderes AVI-Programm ausstrahlt. In beiden Fällen enthält das AVI-Programm ein Verzeichnismodul, das sich von dem des unterbrochenen AVI-Programms unterscheidet.
  • Der Systemlader empfängt über den DIR SPY API-Aufruf immer dann eine Meldung, wenn ein Verzeichnis im AVI-Prograrnmkomponentenpaketdienst erfasst wird. Der Systemlader vergleicht das gerade aktive Verzeichnis mit dem gerade erfassten Verzeichnis. Wenn der Systemlader erkennt, dass ein anderes Verzeichnis im AVI-Programmkomponentenpaketdienst vorhanden ist, dann beginnt er mit dem Laden des AVI-Programms, das durch dieses Verzeichnis repräsentiert wird.
  • Zunächst wird eine Meldung zu dem gerade unterbrochenen AVI-Programm gesendet, die besagt, dass der Programmkomponentenpaketdienst nicht mehr sein Programm ausstrahlt oder dass das Programm 'den Ablauf verloren' hat. Diese Meldung ist eine Anforderung an das gerade ablaufende Programm, sich zu minimieren, d. h. sie ist eine MINIMISIEREN-Meldung. Als Reaktion auf die MINIMISIEREN-Meldung speichert das gerade unterbrochene AVI-Programm zunächst seinen aktuellen Ausführungszustand und seine Umgebung in einem kleinen Block des RAM 412, der die Identifikation der AVI-Anwendung und eine Zeitdauer enthält, wie nachfolgend beschrieben wird. Dann beginnt das unterbrochene AVI-Programm mit der Aufhebung der Zuweisung seiner Betriebsmittel. Ein minimiertes AVI-Programm beinhaltet keinen Code und kann somit seine Zustände nicht als Reaktion auf Meldungen ändern oder sich selbst neu starten.
  • Der Systemlader lädt dann das neu erfasste Verzeichnis- und Autostart-Modul und setzt das neue AVI-Programm in den INAKTIV-Zustand 61, wo das interaktive Programmzeichen oder – symbol wie oben beschrieben angezeigt wird. Der Zuschauer startet und stoppt dann die Interaktion mit dem neuen AVI-Programm durch Betätigen der AKTIVIEREN-Taste, und das Programm selbst kann unterbrochen und fortgesetzt werden.
  • Der Minimisierungsprozess ist ein rekursiver Prozess. Dieses neue AVI-Programm kann beispielsweise, wenn es unterbrochen wird, auch minimiert werden, wenn noch ein anderes AVI-Programm im AVI-Programmkomponentenpaketdienst erfasst wird. In diesem Fall wird ein weiterer Speicherblock zugewiesen, und Ausführungszustand und -umgebung dieses AVI-Programms werden zusammen mit seiner Kennung und einer Zeitdauer in diesem Speicherblock. gespeichert. Dann wird das neu erfasste AVI-Programm wie oben beschrieben geladen. Die Zahl der Programme, die gleichzeitig minimiert werden können, ist nur durch die Menge an Speicherplatz begrenzt, die zum Speichern aller Speicherblöcke benötigt wird, die die Ausführungszustände und -umgebungen der minimierten Programme enthalten.
  • Wenn nicht genügend verfügbarer Speicherplatz vorhanden ist, um das neue Verzeichnismodul zu laden oder das durch das zuvor geladene Verzeichnismodul repräsentierte Programm auszuführen, und wenn Speicherblöcke zugewiesen sind, die minimierte Programme repräsentieren, dann kann der Systemlader automatisch die Zuweisung einiger oder aller Speicherblöcke gemäß einem Algorithmus aufheben (wie z. B. die Zuweisungsaufhebung des ältesten Speicherblocks zuerst, oder zunächst die Zuweisungsaufhebung von Speicherblöcken, die als unentbehrlich von der aufrufenden Anwendung markiert sind), in einem Versuch, ausreichend Speicherplatz abzuleiten. Alternativ kann der Systemlader dem Zuschauer eine Liste von minimieren Anwendungen vorliegen und es dem Zuschauer gestatten, einige oder alle zum Löschen auszuwählen. Die Zuweisung von gewählte minimierte Anwendungen repräsentierenden Blöcken wird dann aufgehoben, um ausreichend Speicherplatz abzuleiten.
  • In der Zwischenzeit bleiben die Speicherblöcke, die die Ausführungszustände und -umgebungen von zuvor minimieren AVI-Programmen enthalten, im Speicher zugewiesen. Wie oben beschrieben, gibt es eine Zeitdauer in jedem solchen Speicherblock. Wenn die Zeitdauer in einem Block überschritten wird, dann erfolgt eine Zeitabschaltung des zuvor minimierten AVI-Programms. In diesem Fall wird dieses Programm als in den GESTOPPT-Zustand 69 eingetreten angesehen, und die Zuweisung seines Speicherblocks, der den Ausführungszustand und die Ausführungsumgebung enthält, wird aufgehoben, und sämtliche Datensätze des zuvor minimierten AVI-Programms gehen verloren.
  • Es ist jedoch möglich, dass der Decoder 10 nochmals eine AVI-Programmkomponente empfängt, die die Verzeichnis-, Code- und Datenmodule eines zuvor minimierten AVI-Programms enthält, oder dass dieses AVI-Programm 'den Ablauf wiederfindet'. So ist möglicherweise die interaktive Werbesendung beendet, das Programm tritt in den GESTOPPT-Zustand 69 ein oder der Zuschauer hat wieder auf diesen Kanal zurückgeschaltet. Der Systemlader beginnt mit dem Laden des 'neuen' Verzeichnisses im AVI-Programmkomponentenpaketdienst. Bei jedem Laden eines neuen Verzeichnisses wird die Anwendungskennung mit den Kennungen in allen Blöcken verglichen, die Ausführungszustand und -umgebungen enthalten, die gerade im RAM 412 gespeichert sind. Wenn ein übereinstimmender Block gefunden wird, dann werden die Code- und Datenmodule geladen, und das AVI-Programm wird in den INAKTIV-Zustand 61 gesetzt, aber sein Ausführungszustand wird auf den unmittelbar vor der Minimierung aktualisiert. Wenn der Zuschauer die AKTIVIEREN-Taste betätigt, dann tritt das AVI-Programm in den AKTIV-Zustand 63 ein und beginnt dort mit der Ausführung, wo diese zuvor unterbrochen wurde. Auf diese Weise kann ein AVI-Programm vorübergehend gestoppt werden, um ein anderes AVI-Programm abzuarbeiten, und dies kann dann wieder aufgenommen werden, ohne dass ausreichende Betriebsmittel für beide Programme gleichzeitig im Speicher bleiben müssten.

Claims (7)

  1. Verfahren zum Steuern der Ausführung eines interaktiven Audio-Video-Programms (AVI) in einem AVI-Empfänger, der einen Paketstrom mit einem AVI-Programm und Ausführungssignalen empfängt, wobei der Empfänger einen Ausführungscontroller (410) zum Steuern der Ausführung des AVI-Programms beinhaltet, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: in dem Ausführungscontroller: Laden des AVI-Programms in einen Speicher (412) als Reaktion auf die Anwesenheit des AVI-Programms in dem Paketstrom; Senden einer Aktivieren-Umschaltmeldung zu dem AVI-Programm als Reaktion auf eine Benutzereingabe; Senden einer Ausgangsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsendesignal in dem Paketstom; Senden einer Wartemeldung zum AVI-Programm als Reaktion auf ein Ausführungsunterbrechungssignal in dem Paketstrom; und Senden einer Fortsetzungsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsfortsetzungssignal in dem Paketstrom; und in dem AVI-Programm: Ausführen in: einem inaktiven Zustand (61), in dem das AVI-Programm inaktiv ist; einem aktiven Zustand (63), in dem das AVI-Programm abläuft; oder einem Wartezustand (65), in dem die Ausführung des AVI-Programms unterbrochen ist; Eintreten in den inaktiven Zustand als Reaktion auf das Laden des AVI-Programms in den Speicher; Halten der Ausführung und Entladen des AVI-Programms aus dem Speicher als Reaktion auf die Ausgangsmeldung; wenn im inaktiven Zustand, Eintreten in den aktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung; wenn im aktiven Zustand: Eintreten in den inaktiven Zustand als Reaktion auf die Aktivieren-Umschaltmeldung; und Eintreten in den Wartezustand als Reaktion auf eine Wartemeldung; und wenn im Wartezustand: Eintreten in den aktiven Zustand als Reaktion auf eine Fortsetzungsmeldung; und Eintreten in den inaktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass: das Ausführungsunterbrechungssignal im Paketstrom durch repetierende Ausführungsunterbrechungssignalpakete während eines Wartezeitintervalls und das Ausführungsfortsetzungssignal durch keine repetierenden Ausführungsunterbrechungssignalpakete repräsentiert werden; und der Schritt des Sendens einer Wartemeldung im Ausführungscontroller den Schritt des Sendens der Wartemeldung als Reaktion auf ein erstes Ausführungsunterbrechungssignalpaket umfasst; und der Schritt des Sendens einer Fortsetzungsmeldung im Ausführungscontroller den Schritt des Sendens einer Fortsetzungsmeldung nach einer vorbestimmten Zeitperiode umfasst, in der keine Ausführungsunterbrechungssignalpakete empfangen werden.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass: das Ausführungsunterbrechungssignal in dem Paketstrom durch ein Ausführungsunterbrechungssignalpaket und das Ausführungsfortsetzungssignal durch ein Ausführungsfortsetzungssignalpaket repräsentiert wird; und der Schritt des Sendens einer Wartemeldung im Ausführungscontroller den Schritt des Sendens der Wartemeldung als Reaktion auf ein Ausführungsunterbrechungssignalpaket umfasst; und der Schritt des Sendens einer Fortsetzungsmeldung im Ausführungscontroller den Schritt des Sendens einer Fortsetzungsmeldung als Reaktion auf ein Ausführungsfortsetzungssignalpaket umfasst.
  4. Verfahren zum Steuern der Ausführung eines interaktiven Audio-Video-Programms (AVI) in einem AVI-Empfänger, der selektiv einen aus einer Mehrzahl von Paketströmen unter der Steuerung eines Benutzers empfängt, wobei jeder Paketstrom ein AVI-Programm mit einer Kennung und Ausführungssignale beinhaltet, wobei der Empfänger einen Ausführungscontrollen (410) zum Steuern der Ausführung des AVI-Programms beinhaltet, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: im Ausführungscontroller: Laden des AVI-Programms in einen Speicher (412) als Reaktion auf die Anwesenheit des AVI-Programms in dem gewählten einen aus der Mehrzahl von Paketströmen, Speichern der Kennung des geladenen Anwendungsprogramms in eine jeweilige Stelle im Speicher und Durchsuchen von zuvor in dem Speicher gespeicherten Blöcken, die Kennungen von minimierten AVI-Programmen enthalten, und wenn eine in einem Block enthaltene Kennung mit der Kennung des im Speicher geladenen AVI-Programms übereinstimmt, Setzen von Ausführungszustand und Umgebung des neu geladenen AVI-Programms in einen Ausführungszustand und eine Umgebung, die in dem passenden Block enthalten sind; Senden einer Aktivieren-Umschaltmeldung an das AVI-Programm als Reaktion auf eine Benutzereingabe; Senden einer Ausgangsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsendesignal in dem gewählten einen aus der Mehrzahl von Paketströmen; Senden einer Wartemeldung zum AVI-Programm als Reaktion auf ein Ausführungsunterbrechungssignal in dem gewählten einen aus der Mehrzahl von Paketströmen; und Senden einer Fortsetzungsmeldung zum AVI-Programm als Reaktion auf ein Ausführungsfortsetzungssignal in dem gewählten einen aus der Mehrzahl von Paketströmen; Senden einer Minimiermeldung zu dem AVI-Programm als Reaktion auf die Anwesenheit eines AVI-Programms in dem Datenstrom mit einer anderen Kennung als der Kennung an der jeweiligen Stelle in dem Speicher; und in dem AVI-Programm: Ausführen in: einem inaktiven Zustand (61), in dem das AVI-Programm inaktiv ist; einem aktiven Zustand (63), in dem das AVI-Programm abläuft; einem Wartezustand (65), in dem die Ausführung des AVI-Programms unterbrochen ist; oder einem minimierten Zustand (67), umfassend die folgenden Schritte: Halten der Ausführung des AVI-Programms; dann Speichern der Kennung des AVI-Programms sowie von Ausführungszustand und Umgebung des AVI-Programms in einem Block des Speichers; dann Entladen des AVI-Programms aus dem Speicher; Eintreten in den inaktiven Zustand als Reaktion auf das Laden des AVI-Programms in den Speicher; Halten der Ausführung und Entladen des AVI-Programms aus dem Speicher als Reaktion auf die Ausgangsmeldung; wenn im inaktiven Zustand, Eintreten in den aktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung; wenn im aktiven Zustand: Eintreten in den inaktiven Zustand als Reaktion auf die Aktivieren-Umschaltmeldung; und Eintreten in den Wartezustand als Reaktion auf eine Wartemeldung; und wenn im Wartezustand: Eintreten in den aktiven Zustand als Reaktion auf eine Fortsetzungsmeldung; und Eintreten in den inaktiven Zustand als Reaktion auf eine Aktivieren-Umschaltmeldung; und Eintreten in den minimierten Zustand als Reaktion auf die Minimiermeldung.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass der Speicherschritt im Schritt des Ausführens in einem minimierten Zustand im Anwendungsprogramm ferner den folgenden Schritt umfasst: Speichern einer Zeitdauer in dem Speicherblock, Angeben einer Zeitperiode, während der. die in dem Block des Speicher gespeicherten Daten in dem Speicher verbleiben, und nach Ablauf der Zeitdauer Entfernen der im Speicherblock gespeicherten Daten.
  6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass: das Ausführungsunterbrechungssignal in dem gewählten einen aus der Mehrzahl von Paketströmen durch repetierende Ausführungsunterbrechungssignalpakete während eines Wartezeitintervalls und das Ausführungsfortsetzungssignal durch keine repetierenden Ausführungsfortsetzungssignalpakete repräsentiert wird; und der Schritt des Sendens einer Wartemeldung im Ausführungscontroller den Schritt des Sendens der Wartemeldung als Reaktion auf ein erstes Ausführungsunterbrechungssignalpaket umfasst; und der Schritt des Sendens einer Fortsetzungsmeldung im Ausführungscontroller den Schritt des Sendens einer Fortsetzungsmeldung nach einer vorbestimmten Zeitperiode umfasst, in der keine Ausführungsunterbrechungssignalpakete empfangen werden.
  7. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass: das Ausführungsunterbrechungssignal durch ein Ausführungsunterbrechungssignalpaket und das Ausführungsfortsetzungssignal durch ein Ausführungsfortsetzungssignalpaket repräsentier wird; und der Schritt des Sendens einer Wartemeldung in dem Ausführungscontroller den Schritt des Sendens der Wartemeldung als Reaktion auf ein Ausführungsunterbrechungssignalpaket umfasst; und der Schritt des Sendens einer Fortsetzungsmeldung im Ausführungscontroller den Schritt des Sendens einer Fortsetzungsmeldung als Reaktion auf ein Ausführungsfortsetzungssignalpakets umfasst.
DE69531561T 1994-04-28 1995-04-19 Ausführungssteuerungsverfahren für ein interaktives audio/video Programm Expired - Lifetime DE69531561T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US234146 1994-04-28
US08/234,146 US5563648A (en) 1994-04-28 1994-04-28 Method for controlling execution of an audio video interactive program

Publications (2)

Publication Number Publication Date
DE69531561D1 DE69531561D1 (de) 2003-09-25
DE69531561T2 true DE69531561T2 (de) 2004-06-17

Family

ID=22880139

Family Applications (3)

Application Number Title Priority Date Filing Date
DE0949816T Pending DE949816T1 (de) 1994-04-28 1995-04-19 Ausführungssteuerungsverfahren für ein interaktives audio/video Programm
DE69531561T Expired - Lifetime DE69531561T2 (de) 1994-04-28 1995-04-19 Ausführungssteuerungsverfahren für ein interaktives audio/video Programm
DE69515076T Expired - Lifetime DE69515076T2 (de) 1994-04-28 1995-04-19 Ausführungssteuerungsverfahren für ein interaktives audio/video Programm

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE0949816T Pending DE949816T1 (de) 1994-04-28 1995-04-19 Ausführungssteuerungsverfahren für ein interaktives audio/video Programm

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69515076T Expired - Lifetime DE69515076T2 (de) 1994-04-28 1995-04-19 Ausführungssteuerungsverfahren für ein interaktives audio/video Programm

Country Status (11)

Country Link
US (1) US5563648A (de)
EP (2) EP0949816B1 (de)
JP (1) JP4011128B2 (de)
KR (1) KR100334086B1 (de)
CN (1) CN1097386C (de)
CA (1) CA2145898C (de)
DE (3) DE949816T1 (de)
ES (2) ES2142966T3 (de)
PT (1) PT949816E (de)
RU (1) RU95106670A (de)
TW (1) TW357534B (de)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9400101D0 (en) * 1994-01-05 1994-03-02 Thomson Consumer Electronics Consumer interface for a satellite television system
US8793738B2 (en) * 1994-05-04 2014-07-29 Starsight Telecast Incorporated Television system with downloadable features
US5768539A (en) * 1994-05-27 1998-06-16 Bell Atlantic Network Services, Inc. Downloading applications software through a broadcast channel
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
US5614940A (en) * 1994-10-21 1997-03-25 Intel Corporation Method and apparatus for providing broadcast information with indexing
US6064378A (en) * 1994-12-23 2000-05-16 Thomson Consumer Electronics, Inc. Program guide in a digital video system
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines
US5920572A (en) * 1995-06-30 1999-07-06 Divicom Inc. Transport stream decoder/demultiplexer for hierarchically organized audio-video streams
US5826166A (en) * 1995-07-06 1998-10-20 Bell Atlantic Network Services, Inc. Digital entertainment terminal providing dynamic execution in video dial tone networks
US5835717A (en) * 1995-12-13 1998-11-10 Silicon Graphics, Inc. System and method for saving state information in an interactive television system
US6044396A (en) * 1995-12-14 2000-03-28 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Method and apparatus for utilizing the available bit rate in a constrained variable bit rate channel
US5729292A (en) * 1995-12-21 1998-03-17 Thomson Multimedia, S.A. Optimizing performance in a packet slot priority packet transport system
US5835493A (en) * 1996-01-02 1998-11-10 Divicom, Inc. MPEG transport stream remultiplexer
US6101546A (en) * 1996-03-11 2000-08-08 Microsoft Corporation Method and system for providing data files that are partitioned by delivery time and data type
US6240555B1 (en) * 1996-03-29 2001-05-29 Microsoft Corporation Interactive entertainment system for presenting supplemental interactive content together with continuous video programs
US5918012A (en) * 1996-03-29 1999-06-29 British Telecommunications Public Limited Company Hyperlinking time-based data files
US6025837A (en) 1996-03-29 2000-02-15 Micrsoft Corporation Electronic program guide with hyperlinks to target resources
US6225993B1 (en) 1996-04-22 2001-05-01 Sun Microsystems, Inc. Video on demand applet method and apparatus for inclusion of motion video in multimedia documents
EP0810789B1 (de) * 1996-05-30 2004-07-14 Matsushita Electric Industrial Co., Ltd. Vorrichtung zur Übertragung von Daten, Verfahren und Vorrichtung zum Empfang von Daten und Kommunikationssystem
KR100487012B1 (ko) * 1996-09-11 2005-06-16 마츠시타 덴끼 산교 가부시키가이샤 프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치
JP3434653B2 (ja) * 1996-12-05 2003-08-11 富士通株式会社 マルチメディアデータ蓄積伝送方法及び装置
US5850218A (en) 1997-02-19 1998-12-15 Time Warner Entertainment Company L.P. Inter-active program guide with default selection control
GB2325537B8 (en) * 1997-03-31 2000-01-31 Microsoft Corp Query-based electronic program guide
CA2257566C (en) * 1997-04-07 2002-01-01 At&T Corp. System and method for generation and interfacing of bitstreams representing mpeg-coded audiovisual objects
WO1998046006A2 (en) * 1997-04-07 1998-10-15 At & T Corp. System and method for interfacing mpeg-coded audiovisual objects permitting adaptive control
US6079566A (en) * 1997-04-07 2000-06-27 At&T Corp System and method for processing object-based audiovisual information
US5818440A (en) * 1997-04-15 1998-10-06 Time Warner Entertainment Co. L.P. Automatic execution of application on interactive television
US6801575B1 (en) * 1997-06-09 2004-10-05 Sharp Laboratories Of America, Inc. Audio/video system with auxiliary data
JPH1127641A (ja) * 1997-07-07 1999-01-29 Toshiba Corp テレビジョン受信機
EP0907285A1 (de) * 1997-10-03 1999-04-07 CANAL+ Société Anonyme Datenfernladung
US6292805B1 (en) 1997-10-15 2001-09-18 At&T Corp. System and method for processing object-based audiovisual information
US6351471B1 (en) 1998-01-14 2002-02-26 Skystream Networks Inc. Brandwidth optimization of video program bearing transport streams
US6195368B1 (en) 1998-01-14 2001-02-27 Skystream Corporation Re-timing of video program bearing streams transmitted by an asynchronous communication link
US6351474B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Network distributed remultiplexer for video program bearing transport streams
US6292490B1 (en) 1998-01-14 2001-09-18 Skystream Corporation Receipts and dispatch timing of transport packets in a video program bearing stream remultiplexer
US6246701B1 (en) 1998-01-14 2001-06-12 Skystream Corporation Reference time clock locking in a remultiplexer for video program bearing transport streams
US6654931B1 (en) 1998-01-27 2003-11-25 At&T Corp. Systems and methods for playing, browsing and interacting with MPEG-4 coded audio-visual objects
US7032236B1 (en) * 1998-02-20 2006-04-18 Thomson Licensing Multimedia system for processing program guides and associated multimedia objects
CA2321447C (en) * 1998-02-20 2007-12-18 Thomson Licensing S.A. A multimedia system for processing program guides and associated multimedia objects
US6609144B1 (en) 1998-05-04 2003-08-19 Matsushita Electric Industrial Co., Ltd. Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution
WO1999066679A1 (en) * 1998-06-19 1999-12-23 Matsushita Electric Industrial Co., Ltd. Data transmitting/receiving method and device, and program recorded medium
US6442755B1 (en) 1998-07-07 2002-08-27 United Video Properties, Inc. Electronic program guide using markup language
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
JP2000092118A (ja) * 1998-09-08 2000-03-31 Hitachi Ltd プログラマブルネットワーク
FR2784474A1 (fr) * 1998-10-08 2000-04-14 Thomson Multimedia Sa Gestionnaire d'applications avec jeu d'instructions de gestion variable
US7487534B1 (en) * 1998-11-12 2009-02-03 General Instrument Corporation Application programming interface (API) for accessing and managing resources in digital television receiver
US7877290B1 (en) 1999-03-29 2011-01-25 The Directv Group, Inc. System and method for transmitting, receiving and displaying advertisements
US7552458B1 (en) 1999-03-29 2009-06-23 The Directv Group, Inc. Method and apparatus for transmission receipt and display of advertisements
WO2000059220A1 (en) * 1999-03-30 2000-10-05 Diva Systems Corporation User access to secondary content associated with a primary content
US7222155B1 (en) * 1999-06-15 2007-05-22 Wink Communications, Inc. Synchronous updating of dynamic interactive applications
US7069571B1 (en) 1999-06-15 2006-06-27 Wink Communications, Inc. Automated retirement of interactive applications using retirement instructions for events and program states
US7634787B1 (en) 1999-06-15 2009-12-15 Wink Communications, Inc. Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs
US7325245B1 (en) 1999-09-30 2008-01-29 Intel Corporation Linking to video information
US7000245B1 (en) 1999-10-29 2006-02-14 Opentv, Inc. System and method for recording pushed data
DK1224806T3 (da) * 1999-10-29 2004-02-16 Opentv Corp System og en metode til optagelse af "pushed" dataindhold
US8250617B2 (en) 1999-10-29 2012-08-21 Opentv, Inc. System and method for providing multi-perspective instant replay
CN1225905C (zh) * 1999-10-29 2005-11-02 公共电视公司 交互式节目回放
US6970641B1 (en) 2000-09-15 2005-11-29 Opentv, Inc. Playback of interactive programs
US6530084B1 (en) * 1999-11-01 2003-03-04 Wink Communications, Inc. Automated control of interactive application execution using defined time periods
US8291444B1 (en) * 1999-12-30 2012-10-16 Intel Corporation System for controlling use of broadcast content
FR2803472B1 (fr) * 2000-01-03 2003-05-16 Nptv Procede informatique pour l'exploitation d'une emission de television numerique interactive
US7631338B2 (en) * 2000-02-02 2009-12-08 Wink Communications, Inc. Interactive content delivery methods and apparatus
US7028327B1 (en) 2000-02-02 2006-04-11 Wink Communication Using the electronic program guide to synchronize interactivity with broadcast programs
US7367042B1 (en) 2000-02-29 2008-04-29 Goldpocket Interactive, Inc. Method and apparatus for hyperlinking in a television broadcast
US7343617B1 (en) 2000-02-29 2008-03-11 Goldpocket Interactive, Inc. Method and apparatus for interaction with hyperlinks in a television broadcast
FR2807265B1 (fr) * 2000-04-03 2003-01-24 Sagem Dispositif de reception et de restitution de sequences audio et video
US9788058B2 (en) 2000-04-24 2017-10-10 Comcast Cable Communications Management, Llc Method and system for automatic insertion of interactive TV triggers into a broadcast data stream
US7702995B2 (en) * 2000-04-24 2010-04-20 TVWorks, LLC. Method and system for transforming content for execution on multiple platforms
US8936101B2 (en) * 2008-07-17 2015-01-20 Halliburton Energy Services, Inc. Interventionless set packer and setting method for same
US7360231B2 (en) * 2000-05-01 2008-04-15 The Directv Group, Inc. System for obtaining data regarding customer use of interactive television
WO2001084824A2 (en) * 2000-05-03 2001-11-08 Worldgate Service, Inc. Television terminal for processing and controlling memory resources for plural applications
US6629227B1 (en) * 2000-05-04 2003-09-30 Scientific-Atlanta, Inc. System and method for a communication terminal to manage memory and maintain a current application version for multiple applications
GB0016062D0 (en) * 2000-06-30 2000-08-23 Koninkl Philips Electronics Nv Playback of applications with non-linear time
JP4543513B2 (ja) * 2000-07-17 2010-09-15 ソニー株式会社 双方向通信システム、表示装置、ベース装置および双方向通信方法
JP4501243B2 (ja) * 2000-07-24 2010-07-14 ソニー株式会社 テレビジョン受像機およびプログラム実行方法
US6704926B1 (en) * 2000-09-28 2004-03-09 International Business Machines Corporation Bimodal Java just-in-time complier
US6889384B1 (en) 2000-11-08 2005-05-03 The Directv Group, Inc. Simplified interactive user interface for multi-video channel navigation
US6917627B1 (en) 2000-11-21 2005-07-12 The Directv Group, Inc. Hybrid satellite communications system
US20020152467A1 (en) * 2001-02-12 2002-10-17 Rosario Fiallos Automated generation of conditional access packets for IRD upgrades via radio frequency software download in satellite television systems
US20020178455A1 (en) * 2001-03-14 2002-11-28 General Instrument Corporation Dynamic movement of the control channel for broadband communication devices
US7313824B1 (en) * 2001-07-13 2007-12-25 Liquid Machines, Inc. Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
US7154916B2 (en) * 2001-07-26 2006-12-26 The Directv Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels
WO2003015393A2 (en) * 2001-08-06 2003-02-20 Digeo Inc. Providing content and applicatons via carousel transmission to thin-client interactive television terminals
US6996564B2 (en) * 2001-08-13 2006-02-07 The Directv Group, Inc. Proactive internet searching tool
US8880709B2 (en) * 2001-09-12 2014-11-04 Ericsson Television Inc. Method and system for scheduled streaming of best effort data
GB0122585D0 (en) 2001-09-19 2001-11-07 Koninl Philips Electronics Nv Control of an interactive application
GB0122669D0 (en) * 2001-09-20 2001-11-14 Koninl Philips Electronics Nv Processing of a broadcast signal
US20030093515A1 (en) * 2001-11-14 2003-05-15 Kauffman Marc W. Quality of service control of streamed content delivery
US20030099364A1 (en) * 2001-11-28 2003-05-29 Thompson Mark R. Playback manipulation of HTTP streamed content objects
US7844994B2 (en) * 2002-03-22 2010-11-30 The Directv Group, Inc. System and method for persistent storage of common user information for interactive television using a centrally located repository
US20040210947A1 (en) 2003-04-15 2004-10-21 Shusman Chad W. Method and apparatus for interactive video on demand
US20030196206A1 (en) 2002-04-15 2003-10-16 Shusman Chad W. Method and apparatus for internet-based interactive programming
US20040032486A1 (en) 2002-08-16 2004-02-19 Shusman Chad W. Method and apparatus for interactive programming using captioning
EP1377034A1 (de) * 2002-06-27 2004-01-02 Thomson Licensing S.A. Datenverarbeitungsvorrichtung und -verfahren für interaktives Fernsehen
US20040031052A1 (en) * 2002-08-12 2004-02-12 Liberate Technologies Information platform
EP1535469A4 (de) * 2002-08-30 2010-02-03 Wink Communications Inc Karussell-proxy
US7076616B2 (en) * 2003-03-24 2006-07-11 Sony Corporation Application pre-launch to reduce user interface latency
US20040194153A1 (en) * 2003-03-24 2004-09-30 Sony Corporation And Sony Electronics Inc. Conservation of system resources by efficiently activating/de-activating applications
US7693222B2 (en) * 2003-08-13 2010-04-06 Ericsson Television Inc. Method and system for re-multiplexing of content-modified MPEG-2 transport streams using PCR interpolation
US7870352B2 (en) * 2003-11-13 2011-01-11 Stalker Altan J State-based memory unloading
PL367409A1 (en) * 2004-04-20 2005-10-31 Advanced Digital Broadcast Ltd. Tv analogue and digital signal receiver and method for receiving analogue and digital signals
EP1818826A4 (de) * 2004-11-02 2011-11-30 Panasonic Corp Anwendungsprogramm-ausführungseinrichtung
US20060225107A1 (en) * 2005-04-01 2006-10-05 Microsoft Corporation System for running applications in a resource-constrained set-top box environment
US7870562B1 (en) * 2005-06-24 2011-01-11 Apple Inc. Media rendering hierarchy
US8776078B2 (en) * 2008-05-20 2014-07-08 International Business Machines Corporation Method for dynamically freeing computer resources
US7991801B2 (en) * 2008-06-10 2011-08-02 International Business Machines Corporation Real-time dynamic and synchronized captioning system and method for use in the streaming of multimedia data
US8566481B2 (en) * 2009-06-10 2013-10-22 Cisco Technology, Inc. Managing configuration data
US20110154420A1 (en) * 2009-12-17 2011-06-23 Level 3 Communications, Llc Data Feed Resource Reservation System
US20120050619A1 (en) 2010-08-30 2012-03-01 Sony Corporation Reception apparatus, reception method, transmission apparatus, transmission method, program, and broadcasting system
KR20120055779A (ko) * 2010-11-23 2012-06-01 한국전자통신연구원 지그비 기반의 음성 데이터 송수신 시스템 및 그의 음성 데이터 송수신 방법
US8935719B2 (en) 2011-08-25 2015-01-13 Comcast Cable Communications, Llc Application triggering
JP5957204B2 (ja) * 2011-11-01 2016-07-27 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US8687947B2 (en) 2012-02-20 2014-04-01 Rr Donnelley & Sons Company Systems and methods for variable video production, distribution and presentation
US9880776B1 (en) 2013-02-22 2018-01-30 Veritas Technologies Llc Content-driven data protection method for multiple storage devices
US9414114B2 (en) 2013-03-13 2016-08-09 Comcast Cable Holdings, Llc Selective interactivity
US11076205B2 (en) 2014-03-07 2021-07-27 Comcast Cable Communications, Llc Retrieving supplemental content
US10114661B2 (en) * 2014-11-07 2018-10-30 Roku, Inc. System and method for fast starting an application
US9948962B2 (en) 2014-11-13 2018-04-17 Time Warner Cable Enterprises Llc Apparatus and methods for efficient delivery of electronic program guide data
US11650562B2 (en) 2019-08-26 2023-05-16 Toyota Motor Engineering & Manufacturing North America, Inc. Interface assemblies for manufacturing components

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3803491A (en) * 1971-05-26 1974-04-09 Tocom Communications system
US3891792A (en) * 1974-06-25 1975-06-24 Asahi Broadcasting Television character crawl display method and apparatus
US4528589A (en) * 1977-02-14 1985-07-09 Telease, Inc. Method and system for subscription television billing and access
US4264925A (en) * 1979-08-13 1981-04-28 Michael J. Freeman Interactive cable television system
US4323922A (en) * 1979-12-17 1982-04-06 Oak Industries Inc. Television coding system with channel level identification
US4965825A (en) * 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US5191573A (en) * 1988-06-13 1993-03-02 Hair Arthur R Method for transmitting a desired digital video or audio signal
US5003591A (en) * 1989-05-25 1991-03-26 General Instrument Corporation Functionally modifiable cable television converter system
ATE154182T1 (de) * 1989-08-23 1997-06-15 Delta Beta Pty Ltd Optimisierung einer programmübertragung
US5132992A (en) * 1991-01-07 1992-07-21 Paul Yurt Audio and video transmission and receiving system
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
DE69210303T2 (de) * 1991-05-23 1996-11-14 Hitachi Ltd Breitbildschirmfernsehempfänger mit Bildseitenverhältnisumwandlungsfunktion und Verfahren zur Darstellung eines vergrösserten Abschnittes
US5289276A (en) * 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
US5418559A (en) * 1992-10-23 1995-05-23 At&T Corp. Multi-channel television converter for conventional and interactive signals
US5440632A (en) * 1992-12-02 1995-08-08 Scientific-Atlanta, Inc. Reprogrammable subscriber terminal

Also Published As

Publication number Publication date
EP0680213B1 (de) 2000-02-16
DE69515076D1 (de) 2000-03-23
EP0680213A2 (de) 1995-11-02
CN1097386C (zh) 2002-12-25
KR100334086B1 (ko) 2002-09-05
ES2147719T3 (es) 2004-05-01
CN1112333A (zh) 1995-11-22
PT949816E (pt) 2003-12-31
EP0680213A3 (de) 1996-05-08
ES2142966T3 (es) 2000-05-01
DE69531561D1 (de) 2003-09-25
JP4011128B2 (ja) 2007-11-21
CA2145898A1 (en) 1995-10-29
JPH0851596A (ja) 1996-02-20
RU95106670A (ru) 1997-01-20
DE69515076T2 (de) 2000-07-13
KR950035418A (ko) 1995-12-30
EP0949816A3 (de) 2000-06-14
DE949816T1 (de) 2001-01-25
ES2147719T1 (es) 2000-10-01
CA2145898C (en) 2004-10-26
US5563648A (en) 1996-10-08
EP0949816B1 (de) 2003-08-20
TW357534B (en) 1999-05-01
EP0949816A2 (de) 1999-10-13

Similar Documents

Publication Publication Date Title
DE69531561T2 (de) Ausführungssteuerungsverfahren für ein interaktives audio/video Programm
US5539920A (en) Method and apparatus for processing an audio video interactive signal
DE69819507T2 (de) Set-top-box gerätetreiber für die ieee1394 norm
DE69637230T2 (de) Transportkodierer für einen Paketstrom und Verfahren zu dessen Betrieb
DE69734064T2 (de) Anordnung und verfahren zur dynamischen bandbreitenzuordnung in einem paketstromkodierer
DE69731549T2 (de) Interaktivität mit audiovisueller programmierung
DE69838603T2 (de) Rundfunkempfangsvorrichtung und Verfahren zur Verbreitung von Daten
DE69933721T2 (de) DMA-Steuereinheit
DE69837194T2 (de) Methode und system zur netzwerkverwendungserfassung
EP0667081B2 (de) Adressierbare schaltungseinrichtung
DE69732262T2 (de) Maschine für Programmempfang und -ausführung, die auch bei teilweisem Empfang des Programms die Maschinenprogrammausführung starten kann.
DE69907426T2 (de) Digitale verarbeitung von grafischen bildern in einem dekodierer
DE60032031T2 (de) Ereignissteuergerät und digitales Rundfunksystem
DE69737920T2 (de) Multimedia-Endgerät und Verfahren zum Multimedia-Empfang
DE69731120T2 (de) Bereichs- und informationsanzeigeabhängige videopegelsteuerung
DE60124426T2 (de) System und Verfahren für die Zuordnung von Bandbreiten zu Kanälen bei der Übertragung von Rundfunkprogrammen.
DE69824307T2 (de) Mehrkanaliges digitalfernsehsystem
DE60217091T2 (de) Synchrones aktualisieren dynamischer interaktiver anwendungen
DE3638908C2 (de) Steuersystem für eine Audio/Video-Anlage
DE69935128T2 (de) Fernsehempfänger mit mehrseiten-videotext-dekoder unter anwendung eines prioritätsschemas
DE69921371T2 (de) Dienstbrowserverfahren und system
DE69805044T3 (de) Verfahren und Vorrichtung zur Verwaltung von Dienstinformationen in einem Digitalfernsehsystem
DE69837856T2 (de) Modemkontrolle
CN108632657A (zh) 一种字幕显示方法、存储介质及智能电视
DE112004002609T5 (de) Programmierbare Videoverarbeitung und Videospeicherarchitektur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: OPEN TV, INC., SAN FRANCISCO, CALIF., US