DE69919686T2 - Speicherverwaltung in einem empfänger/decoder - Google Patents

Speicherverwaltung in einem empfänger/decoder Download PDF

Info

Publication number
DE69919686T2
DE69919686T2 DE69919686T DE69919686T DE69919686T2 DE 69919686 T2 DE69919686 T2 DE 69919686T2 DE 69919686 T DE69919686 T DE 69919686T DE 69919686 T DE69919686 T DE 69919686T DE 69919686 T2 DE69919686 T2 DE 69919686T2
Authority
DE
Germany
Prior art keywords
message
fifo
buffer
receiver
decoder
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
DE69919686T
Other languages
English (en)
Other versions
DE69919686D1 (de
Inventor
Jerome Meric
Christophe Declerck
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Application granted granted Critical
Publication of DE69919686D1 publication Critical patent/DE69919686D1/de
Publication of DE69919686T2 publication Critical patent/DE69919686T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4435Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)
  • Channel Selection Circuits, Automatic Tuning Circuits (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Systems (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf einen Empfänger/Decodierer, insbesondere auf eine Speicherverwaltung und einen Datentransfer dafür. Die Erfindung findet insbesondere Anwendung bei der Schnittstelle zwischen Anwendungsprogrammen und physikalischen Einrichtungen, Der hier verwendete Ausdruck „Empfänger/Decodierer" kann einen Empfänger zum Empfangen codierter oder nicht codierter Signale, beispielsweise Fernseh- und/oder Radiosignale umfassen, die durch eine andere Einrichtung rundgesendet oder übertragen werden. Der Ausdruck kann auch einen Decodierer zum Decodieren empfangener Signale umfassen. Ausführungsbeispiele derartiger Empfänger/Decodierer können einen mit dem Empfänger integriert vorhandenen Decodierer zum Decodieren der empfangenen Signale beispielsweise in einer „aufgesetzten Box" umfassen, wobei dieser Decodierer in Kombination mit einem physikalisch separaten Empfänger funktioniert, und wobei ein derartiger Decodierer zusätzliche Funktionen wie einen Webbrowser, Videorekorder oder Fernsehen enthält.
  • In einem digitalen Fernsehrundfunksystem werden empfangene Signale zu einem Empfänger/Decodierer und dann zu einem Fernsehgerät geführt. Der hier verwendete Ausdruck „digitales Fernsehsystem" umfasst beispielsweise ein beliebiges Satellitensystem, terrestrisches System, Kabelsystem, und so weiter. Der Empfänger/Decodierer decodiert ein komprimiertes Signal vom MPEG-Typ in ein Fernsehsignal für das Fernsehgerät. Er wird durch eine Handfernsteuerung über eine Schnittstelle im Empfänger/Decodierer gesteuert. Der Empfänger/Decodierer wird zur Verarbeitung des ankommenden Bitstroms verwendet, und enthält eine Vielzahl von Anwendungsmodulen, die den Empfänger/Decodierer zur Durchführung einer Vielzahl von Steuer- und anderen Funktionen veranlassen.
  • Ein derartiger Empfänger/Decodierer kann eine Vielfalt von mit ihm verbundenen Einrichtungen aufweisen, wie einen Kartenleser für den Benutzer, um eine Autorisierungskarte zur Bestätigung durchzuführen, welche Dienste der Benutzer autorisiert ist zu benutzen, einen Empfängersteuerungshandleser, eine Videoanzeigeeinheit und einen zweiten Kartenleser zur Verwendung mit Bankkarten, um dem Benutzer die Durchführung von Homebankingfunktionen zu ermöglichen. Er kann auch eine Vielzahl von mit ihm verbundenen Anschlüssen aufweisen, beispielsweise ein Modem für einen Internetzugang und zur Ausführung von Homebankingtransaktionen.
  • Die Möglichkeit einer Schnittstelle zwischen einem Empfänger/Decodierer und einer Vielzahl verschiedener Anschlüsse wurde vorgeschlagen, wie einem Modem, seriellen Kanal, parallelen Kanal, einem MPEG (komprimiertes und codiertes Videosignal)-Kanal, einem Swipe Card Reader, und so weiter. Der Empfänger/Decodierer enthält eine virtuelle Einrichtung, die eine Laufzeiteinrichtung umfasst. Die virtuelle Einrichtung ist mit einem Einrichtungsverwalter verbunden, der wiederum mit den physikalischen Schnittstellen der verschiedenen Kanäle über Einrichtungen und Einrichtungstreiber verbunden ist.
  • Die Erfindung betrifft insbesondere einen Empfänger/Decodierer mit einem oder mehreren Anwendungsmodulen, die mit einem oder mehreren Anschlüssen oder Einrichtungen verbunden sind, über die Informationen zu und von den Anwendungsmodulen geführt werden können.
  • Im allgemeinen weisen die verschiedenen Anschlüsse unterschiedliche Eigenschaften auf, beispielsweise bezüglich der Datenraten von wenigen bps (Bits pro Sekunde} für einen Empfängersteuerungshandleser bis, zu vielen Mbps (für einen MPEG-Bitstrom). Es ist daher üblich, ein Einrichtungsverwaltungsmodul vorzusehen, das effektiv eine Schnittstelle zwischen den Anwendungsmodulen und den Anschlüssen bildet. Dies ermöglicht eine Vereinfachung der Anwendungsmodule.
  • Möchte ein Anwendungsmodul Informationen senden, kann es oft die Übertragungsrats und andere Parameter in Abhängigkeit von den Bedingungen im Empfänger/Decodierer steuern. Für den Empfang von Informationen wird die Übertragungsrate allerdings oft durch externe Bedingungen bestimmt. Um einen Informationsverlust zu vermeiden, enthält das Einrichtungsverwaltungsmodul daher normalerweise eine Pufferanordnung, sodass die ankommenden Informationen in einem Puffer gespeichert werden können, bis das empfangende Anwendungsmodul für ihre Annahme bereit ist.
  • Das Einrichtungsverwaltungsmodul ist geeigneterweise zur Definition oder Bestimmung einer Vielfalt von Puffern entwickelt, wodurch ein flexibler Kommunikationsaufbau zwischen den Anwendungsmodulen, dem Einrichtungsverwaltungsmodul und den Anschlüssen ermöglicht wird.
  • Das grundlegende Prinzip des Pufferns im Empfänger/Decodierer besteht darin, dass ein Speicherabschnitt in einem Speicher als Puffer bestimmt wird. Ankommende Daten vom Anschluss werden in den Puffer geführt und das Anwendungsmodul liest die Informationen aus dem Puffer. In Abhängigkeit von den Umständen kann die Puffergröße derart gewählt werden, dass sie zur Aufnahme der meisten oder aller ankommenden Nachrichten groß genug ist, oder der Puffer kann zyklisch betrieben werden, mit zwei Zeigern, einem für den Punkt, wo frische ankommende Daten in den Puffer geschrieben werden, und dem anderen für den Punkt, an dem Daten aus dem Puffer gelesen werden. Eine unabhängige Kommunikation zwischen Einrichtungen ist nicht möglich, und das System kann manchmal unansprechbar sein, da ein Puffer durch einen Anschluss gefüllt werden muss, bevor Daten aus diesem Puffer zu einem anderen Anschluss gelesen werden können.
  • In der US 5,442,390 ist ein System zum interaktiven Betrachten von Videos beschrieben, bei dem ein ausgewähltes Video als Vielzahl von Rahmen für eine Wiedergabe auf eine Betrachtungseinrichtung übertragen wird. Das System beinhaltet einen Speicherpuffer zur Speicherung eines Segments eines ausgewählten Videos. Der Speicherpuffer enthält einen Schreibzeiger und einen Lesezeiger. Server sind zum unabhängigen Schreiben und Lesen von Videodaten der ausgewählten Videos in und aus dem Speicherpuffer an durch den Schreib- und Lesezeiger angegebenen Orten zur Übertragung des ausgewählten Videos zu der Betrachtungseinrichtung vorgesehen. Durch die Verwendung einer Fernsteuerung kann der Betrachter die Lese- und Schreibzeiger zum Betrachten eines beliebigen Abschnitts des ausgewählten Videos interaktiv positionieren.
  • Das Hauptziel der Erfindung besteht in der Ausbildung einer verbesserten Nachrichtenabwicklungsanordnung im System des vorstehenden Typs.
  • Erfindungsgemäß ist ein Empfänger/Decodierer nach Patentanspruch 1 ausgebildet.
  • Dieser bewirkt ein effektives Führen der ankommenden Nachricht zu einem Anwendungsmodul mit minimaler Interferenz mit dem Betrieb des Anwendungsmoduls. Anders als in vorhergehenden Puffersystemen unterliegt der Datentransfer der Steuerung einer FIFO-Steuereinrichtung, und nicht der Steuerung einer Anwendung. Da der Speicher zusätzlich einen Pufferabschnitt enthält und der Empfänger/Decodierer ferner eine Puffersteuereinrichtung enthält, die im Ansprechen auf eine am Anschluss erscheinende Nachricht zum Schreiben der Nachricht in den Pufferabschnitt des Speichers und im Ansprechen auf ein Steuersignal von einem Anwendungsmodul zum Lesen der Nachricht aus dem Puffer in das Anwendungsmodul betreibbar ist, kann dies beispielsweise einer Anwendung ermöglichen, in Abhängigkeit von der Art einer Nachricht zu bestimmen, ob die empfangene Nachricht entweder im FIFO-Abschnitt oder im Pufferabschnitt zu platzieren ist.
  • Die FIFO-Steuereinrichtung ist vorzugsweise zum Initiieren des Auslesens einer Nachricht aus dem FIFO-Abschnitt des Speichers zu der Anwendung oder in den weiteren Anschluss vor einem vollständigen Empfang der Nachricht eingerichtet. Auf diese Weise kann ein kontinuierlicher Datenfluss von einem Anschluss oder einer Einrichtung zu einem anderen Anschluss oder einer anderen Einrichtung aufrecht erhalten werden. Beispielsweise können von einer MPEG-Quelleneinrichtung empfangene Daten direkt in eine Videoeinrichtung ohne Eingabe von einer Anwendung geleitet werden.
  • Die FIFO-Steuereinrichtung kann zum Spülen einer Nachricht aus dem FIFO-Abschnitt eingerichtet sein. Dies kann die Aufrechterhaltung der Verarbeitung des Informationsflusses im Fall eines Überlaufs des FIFO-Abschnitts ermöglichen.
  • Die FIFO-Steuereinrichtung enthält vorzugsweise eine Belegungserfassungseinrichtung zur Erfassung des Belegungszustands des FIFO-Abschnitts. Die Belegungserfassungseinrichtung kann einen Überlauf und Unterlauf des FIFO-Abschnitts erfassen und kann ferner zumindest einen Schwellenwert eines drohenden Überlaufs und Unterlaufs des FIFO-Abschnitts erfassen. Dies kann der FIFO-Steuereinrichtung das Senden geeigneter Steuernachrichten zur Quelle der Nachricht, die vom FIFO-Abschnitt empfangen wird, und/oder zum Ziel der Nachricht ermöglichen, die vom FIFO-Abschnitt empfangen wird.
  • Der FIFO-Abschnitt kann eine Vielzahl von FIFO-Puffern umfassen, und die FIFO-Steuereinrichtung kann eine entsprechende Vielzahl von FIFO-Registersteuereinrichtungen umfassen.
  • Der Pufferabschnitt kann zwei Pufferbereiche umfassen, die durch jeweilige Pufferregister in der Puffersteuereinrichtung definiert sind. Dies kann der Puffersteuereinrichtung das Toggeln von Nachrichten zwischen zwei Pufferbereichen ermöglichen.
  • Die Puffersteuereinrichtung kann in einem Bitstrommodus betreibbar sein, in dem ein ankommender Bitstrom in den aktuell ausgewählten Pufferbereich geleitet und dann zwischen den zwei Pufferbereichen hin und hergeschaltet wird, sodass jeder Pufferbereich abwechselnd voll wird. Die Puffersteuereinrichtung kann ferner in einem Datagrammmodus betreibbar sein, in dem die Länge einer ankommenden Nachricht mit der freien Kapazität im aktuell ausgewählten Pufferbereich verglichen wird, und ist die Kapazität geringer als die Länge der Nachricht, der andere Pufferbereich ausgewählt wird.
  • Der Empfänger/Decodierer kann ferner eine vom FIFO-Abschnitt zugeführte Videoeinrichtungsanwendungseinheit enthalten, die eine Videochipeinheit zuführt, der auch ein Bitstrom zugeführt wird.
  • Die Erfindung erstreckt sich auch auf ein Rundfunksystem mit einem Empfänger/Decodierer wie vorstehend beschrieben und einer Einrichtung zum Senden von Nachrichten zum Empfänger/Decodierer.
  • Verschiedene Funktionen des Empfängers/Decodierers können als Hardware implementiert werden, beispielsweise in einer dezidierten integrierten Schaltung; dies kann eine gesteigerte Verarbeitungsgeschwindigkeit bereitstellen. Vorzugsweise sind aber zumindest einige der Funktionen als Software implementiert, und laufen vorzugsweise durch eine Verarbeitungseinrichtung, die die Anwendungen verarbeitet; dies ermöglicht eine größere Flexibilität, erfordert weniger Komponenten und ermöglicht ein leichteres Aktualisieren des Empfängers/Decodierers.
  • Nachstehend wird ein Ausführungsbeispiel des erfindungsgemäßen Empfängers/Decodierers unter Bezugnahme auf die beiliegende Zeichnung beschrieben. Es zeigen:
  • 1 ein schematisches Blockschaltbild von Schnittstellen des Empfängers/Decodierers,
  • 2 ein schematisches Blockschaltbild des Empfängers/Decodierers,
  • 3 ein vereinfachtes Blockschaltbild des Nachrichtenverwaltungssystems im Empfänger/Decodierer,
  • 3A ein ausführlicheres Blockschaltbild des Nachrichtenverwaltungssystems, wobei das Puffersubsystem gezeigt ist,
  • 3B ein ausführlicheres Blockschaltbild des Nachrichtenverwaltungssystems, wobei das FIFO-Subsystem gezeigt ist,
  • 4A eine vereinfachte Darstellung einer Pufferregistereinheit,
  • 4B eine vereinfachte Darstellung einer FIFO-Registereinheit und
  • 5 ein Blockschaltbild, das veranschaulicht, wie das Nachrichtenabwicklungssystem mit dem Haupt-MPEG-Bitstrom interagiert.
  • In 1 ist ein Empfänger/Decodierer 2020 oder eine aufgesetzte Box zur Verwendung in einem digitalen interaktiven Fernsehsystem schematisch gezeigt. Einzelheiten eines geeigneten digitalen interaktiven Fernsehsystems können in den ebenfalls anhängigen Anmeldungen PCT/EP97/02106 – 02117 gefunden werden. Zur leichteren Bezugnahme sind Abschnitte, die in den oben genannten Beschreibungen näher beschrieben sind, im allgemeinen mit den Bezugszeichen bezeichnet, wie sie in diesen Beschreibungen verwendet werden.
  • Wie in den vorstehend angeführten Beschreibungen näher beschrieben, umfasst der Empfänger/Decodierer 2020 gemäß den 1 und 2 mehrere Anschlüsse; insbesondere einen Tuner 4028 für den MPEG-Signalfluss, eine serielle Schnittstelle 4030, eine parallele Schnittstelle 4032 und zwei Kartenleser 4036, einen für eine Smartcard, die einen Teil des Systems bildet, und einen für Bankkarten (die zur Durchführung von Zahlungen, Homebanking, und so weiter verwendet wird). Der Empfänger/Decodierer enthält auch eine Schnittstelle 4034 zu einem Rückkanal mit Modem 4002 zu dem Fernsehsignalerzeuger, sodass der Benutzer dem Fernsehsignal-(Programm)-Hersteller Präferenzen und so weiter zurückgeben kann. Der Empfänger/Decodierer umfasst auch eine Laufzeiteinrichtung 4008, einen Einrichtungsverwalter 4068 und eine Vielzahl von Einrichtungen 4062 und Einrichtungstreibern 4060 zum Ablaufen lassen einer oder mehrerer Anwendungen 4056.
  • In dieser Beschreibung ist eine Anwendung ein Stück Computercode zur Steuerung von Funktionen auf hohem Niveau vorzugsweise des Empfängers/Decodierers 2020. Positioniert der Endbenutzer beispielsweise den Brennpunkt einer Fernsteuerung auf einem Tastenobjekt, das er auf dem Bildschirm des Fernsehgeräts 2022 sieht, und drückt eine Validierungstaste, wird die mit der Taste verknüpfte Anweisungssequenz ausgeführt.
  • Eine interaktive Anwendung schlägt Menüs vor und führt Befehle auf Anforderung vom Endbenutzer aus und stellt Daten bereit, die sich auf den Zweck der Anwendung beziehen. Anwendungen können entweder residence Anwendungen sein, das heißt, in einem ROM (oder Flash-Speicher oder einem nicht flüchtigen Speicher) des Empfängers/Decodierers 2020 gespeichert sein, oder rundgesendet und in das RAM oder den Flash-Speicher des Empfängers/Decodierers 2020 heruntergeladen werden.
  • Anwendungen sind an Speicherorten im Empfänger/Decodierer 2020 gespeichert und als Betriebsmitteldateien dargestellt. Die Betriebsmitteldateien umfassen Graphikobjekt-Beschreibungseinheitdateien, variable Blockeinheitdateien, Anwendungssequenzdateien, Anwendungsdateien und Datendateien, was ausführlicher in den vorstehend angeführten Patentanmeldungen beschrieben ist.
  • Der Empfänger/Decodierer enthält einen Speicher, der in ein RAM-Volumen, ein Flash-Volumen und ein ROM-Volumen unterteilt ist, jedoch unterscheidet sich diese physikalische Organisation von der logischen Organisation. Der Speicher kann ferner in mit den verschiedenen Schnittstellen verbundene Speichervolumen unterteilt sein. Von einem Gesichtspunkt aus kann der Speicher als Teil der Hardware betrachtet werden; von einem anderen Gesichtspunkt aus kann der Speicher so betrachtet werden, als ob er das gesamte System unterstützt oder enthält, das getrennt von der Hardware gezeigt ist.
  • Der Empfänger/Decodierer kann als zentriert in einer Laufzeiteinrichtung 4008 betrachtet werden, die einen Teil einer virtuellen Einrichtung 4007 bildet. Dieser ist auf einer Seite (der Seite auf „hohem Niveau") mit Anwendungen verbunden, und auf der anderen Seite (der Seite auf „niedrigem Niveau") über verschiedene logische Zwischeneinheiten, die nachstehend beschrieben werden, mit der Empfänger/Decodierer-Hardware 4061 verbunden. Die Empfänger/Decodierer-Hardware kann so betrachtet werden, als ob sie die vorstehend angeführten verschiedenen Anschlüsse enthält (die Schnittstelle 2030 für den Handapparat 2026, die MPEG-Stromschnittstelle 4028, die serielle Schnittstelle 4030, die parallele Schnittstelle 4032, die Schnittstellen zu den Kartenlesern 4036 und die Schnittstelle 4034 zu dem Modem-Rückkanal 4002).
  • Insbesondere gemäß 2 sind verschiedene Anwendungen 4056 mit der virtuellen Einrichtung 4007 verbunden; einige der üblicheren Anwendungen können mehr oder weniger permanent im System vorhanden sein, wie es mit 4057 gezeigt ist, während andere beispielsweise aus dem MPEG-Datenstrom oder von anderen Anschlüssen nach Bedarf in das System herunter geladen werden.
  • Die virtuelle Einrichtung 4007 enthält zusätzlich zu der Laufzeiteinrichtung 4008 einige residente Bibliotheksfunktionen 4006, die eine Toolbox 4058 enthalten. Die Bibliothek enthält vermischte Funktionen in der Sprache C, die von der Einrichtung 4008 verwendet wird. Diese enthalten eine Datenmanipulation wie eine Kompression, Expansion oder einen Vergleich von Datenstrukturen, Linienzeichnen und so weiter. Die Bibliothek 4006 enthält auch Informationen über Firmware im Empfänger/Decodierer 2020, wie Hardware- und Softwareversionsnummern und die verfügbare RAM-Kapazität, und eine beim Herunterladen einer neuen Einrichtung 4062 verwendete Funktion. Funktionen können in die Bibliothek herunter geladen werden, und werden im Flash- oder RAM-Speicher gespeichert.
  • Die Lautzeiteinrichtung 4008 ist mit einem Einrichtungsverwalter 4068 verbunden, der mit einer Gruppe von Einrichtungen 4062 verbunden ist, die mit Einrichtungstreibern 4060 verbunden sind, die wiederum mit den Anschlüssen oder Schnittstellen verbunden sind. Breit ausgedrückt kann ein Einrichtungstreiber als logische Schnittstelle definierend betrachtet werden, sodass zwei verschiedene Einrichtungstreiber mit einem gemeinsamen physikalischen Anschluss verbunden sein können. Eine Einrichtung ist normalerweise mit mehr als einem Einrichtungstreiber verbunden; ist eine Einrichtung mit einem einzigen Einrichtungstreiber verbunden, ist die Einrichtung normalerweise zum Enthalten der vollen für eine Kommunikation erforderlichen Funktionalität entwickelt, sodass dem Erfordernis des separaten Einrichtungstreibers vorgebeugt wird. Bestimmte Einrichtungen können untereinander kommunizieren.
  • Wie es nachstehend beschrieben ist, gibt es drei Formen einer Kommunikation von den Einrichtungen 4062 bis zur Lautzeiteinrichtung: mittels Variablen, Puffern und Ereignissen, die einer Gruppe von Ereigniswarteschlangen zugeführt werden.
  • Jede Funktion des Empfängers/Decodierers 2020 ist als Einrichtung 4062 dargestellt. Einrichtungen können entweder lokal oder entfernt vorhanden sein. Lokale Einrichtungen 4064 enthalten Smartcards, SCART-Verbindersignale, Modems, serielle und parallele Schnittstellen, einen MPEG-Video- und -Audioplayer und einen MPEG-Abschnitt und Tabellenextrahierer. Entfernte Einrichtungen 4066, die an einem entfernten Ort ausgeführt werden, unterscheiden sich von lokalen Einrichtungen darin, dass ein Anschluss und eine Prozedur von der Systemautorität oder dem Entwickler anstelle von einer Einrichtung und einem Einrichtungstreiber definiert werden müssen, die vom Hersteller des Empfänger/Decodierers vorgesehen und entwickelt werden.
  • Die Laufzeiteinrichtung 4008 läuft unter der Steuerung des Mikroprozessors und einer üblichen Anwendungsprogrammschnittstelle. Sie sind in jedem Empfänger/Decodierer 2020 installiert, sodass alle Empfänger/Decodierer 2020 vom Gesichtspunkt der Anwendung her identisch sind.
  • Die Einrichtung 4008 führt Anwendungen 4056 im Empfänger/Decodierer 2020 aus. Sie führt interaktive Anwendungen 4056 aus und empfängt Ereignisse von außerhalb des Empfängers/Decodierers 2020, zeigt Graphik und Text an, ruft Einrichtungen für Dienste auf und verwendet Funktionen der mit der Einrichtung 4008 verbundenen Bibliothek 4006 für bestimmte Berechnungen.
  • Die Laufzeiteinrichtung 4008 ist ausführbarer Code, der in jedem Empfänger/Decodierer 2020 installiert ist, und enthält einen Interpretierer zum Interpretieren und Ausführen von Anwendungen. Die Einrichtung 4008 ist an jedes Betriebssystem anpassbar, was ein Einaufgabenbetriebssystem (wie im MS-DOS) einschließt. Die Einrichtung 4008 beruht auf Prozessablaufsteuerungseinheiten (die verschiedene Ereignisse, wie das Drücken einer Taste zur Ausführung verschiedener Aktionen aufnehmen), und enthält ihren eigenen Scheduler zur Verwaltung von Ereigniswarteschlangen von den verschiedenen Hardwareschnittstellen. Sie wickelt auch die Anzeige von Graphik und Text ab. Eine Prozessablaufsteuerungseinheit umfasst einen Satz von Aktionsgruppen. Jedes Ereignis veranlasst die Prozessablaufsteuerungseinheit zur Bewegung von ihrer aktuellen Aktionsgruppe zu einer anderen Aktionsgruppe in Abhängigkeit vom Charakter des Ereignisses und zur Ausführung der Aktionen der neuen Aktionsgruppe.
  • Die Einrichtung 4008 umfasst eine Codeladeeinrichtung zum Laden und Herunterladen von Anwendungen 4056 in den Speicher des Empfängers/Decodierers. Lediglich der erforderliche Code wird in das RAM oder den Flash-Speicher zum Sicherstellen einer optimalen Verwendung geladen. Die heruntergeladenen Daten werden durch ein Authentisierungsverfahren zum Verhindern einer Modifikation einer Anwendung 4056 oder der Ausführung einer nicht autorisierten Anwendung verifiziert. Die Einrichtung 4008 umfasst ferner einen Dekompressor. Da der Anwendungscode (eine Form von Zwischencode) zur Kapazitätseinsparung und zum schnellen Herunterladen aus dem MPEG-Strom oder über einen eingebauten Empfänger/Decodierer-Modus komprimiert wird, muss der Code vor dem Laden in das RAM dekomprimiert werden. Die Einrichtung 4008 umfasst auch einen Interpretierer zum Interpretieren des Anwendungscodes zur Aktualisierung verschiedener Variablenwerte und zur Bestimmung von Statusänderungen und eine Fehlerüberprüfungseinrichtung.
  • Vor der Anwendung der Dienste einer Anwendung 4062 muss ein Programm (wie eine Anwendunsanweisungssequenz) als „Client" deklariert werden, das heißt, ein logischer Zugangsweg zur Einrichtung 4062 oder dem Einrichtungsverwalter 4068. Der Verwalter gibt dem Client eine Clientnummer, auf die bei allen Zugriffen auf die Einrichtung Bezug genommen wird. Eine Einrichtung 4062 kann mehrere Clients haben, wobei die Anzahl der Clients jeder Einrichtung 4062 in Abhängigkeit vom Typ der Einrichtung 4062 bestimmt ist. Ein Client wird für die Einrichtung 4062 durch eine Prozedur „Einrichtung: Kanal öffnen" eingeführt. Diese Prozedur weist dem Client eine Clientnummer zu. Ein Client kann aus der Clientliste des Einrichtungsverwalters 4068 durch eine Prozedur „Einrichtung: Kanal schließen" herausgenommen werden.
  • Der Zugriff auf durch den Einrichtungsverwalter 4068 bereitgestellte Einrichtungen 4062 kann synchron oder asynchron geschehen. Für einen synchronen Zugriff wird eine Prozedur „Einrichtung: Aufruf" verwendet. Dies ist ein Mittel zum Zugreifen auf Daten, das unmittelbar verfügbar ist, oder eine Funktionalität, die kein Warten auf die gewünschte Antwort beinhaltet. Für einen asynchronen Zugriff wird eine Prozedur „Einrichtung: I/O" verwendet. Dies ist ein Mittel zum Zugreifen auf Daten, das ein Warten auf eine Antwort beinhaltet, beispielsweise ein Abtasten von Tunerfrequenzen zum Herausfinden eines Multiplex oder ein Zurückerhalten einer Tabelle aus dem MPEG-Strom. Ist das angeforderte Ergebnis verfügbar, wird ein Ereignis in die Warteschleife der Einrichtung zum Signalisieren seiner Ankunft gestellt. Eine weitere Prozedur „Einrichtung: Ereignis" liefert ein Mittel zum Verwalten unerwarteter Ereignisse.
  • Wie vorstehend beschrieben ist die Hauptschleife der Laufzeiteinrichtung mit einer Vielfalt von Prozessablaufsteuerungseinheiten verbunden, und trifft die Hauptschleife auf ein geeignetes Ereignis, wird die Steuerung vorübergehend einer der Prozessablaufsteuerungseinheiten übergeben.
  • Somit ist ersichtlich, dass der Empfänger/Decodierer eine Plattform mit erheblicher Flexibilität beim Ermöglichen einer Kommunikation einer Anwendung mit einer Vielzahl von Einrichtungen liefert.
  • Für die vorliegenden Zwecke sind Einrichtung und Anschlüsse äquivalent. Anwendungsmodule müssen Informationen senden und empfangen; diese Kommunikation kann mit Einrichtungen geschehen (die im allgemeinen lokal vorhanden sind und mit dem Pufferverwaltungssystem eng verbunden sind) oder mit Anschlüssen geschehen (die im allgemeinen mit Informationsquellen verbunden sind, die vom System entfernt und/oder von diesen unabhängig sind). Der Ausdruck „Anschluss" wird ab hier als Einrichtungen umfassend verwendet.
  • Gemäß 3 umfasst der Empfänger/Decodierer eine Vielzahl von Anschlusseinheiten 10, 10', 10'', die über einen Datenbus 20 und einen Steuerbus 21 mit einem Einrichtungsverwaltungsmodul 11 verbunden sind, das wiederum über einen Datenbus 22 und einen Steuerbus 23 mit einer Vielzahl von Anwendungsmodulen 12, 12', 12'' verbunden ist. Das Datenverwaltungsmodul 11 ist auch über einen Datenbus 24, einen Adressbus 25 und einen Steuerbus 26 mit einem Speicher 13 verbunden.
  • Zwischen den Anschlüssen und den Anwendungen geleitete Nachrichten können entweder Puffer oder FIFOs (Speichereinheiten, bei denen die zuerst gespeicherten Daten auch zuerst wieder ausgegeben werden) durchlaufen. Der Speicher 13 enthält zwei Speicherbereiche 13-B und 13-F jeweils für Puffer und FIFOs, und das Einrichtungsverwaltungsmodul 11 enthält zwei Steuereinrichtungen 14-B und 14-F jeweils zur Steuerung des Durchlaufs von Nachrichten durch die Puffer 13-B und die FIFOs 13-F.
  • Puffer und FIFOs sind grundlegend auf die gleiche Weise aufgebaut und werden grundsätzlich auf die gleiche Art und Weise gehandhabt. Ein Puffer oder ein FIFO wird durch einen Befehl aufgebaut, der seine Eigenschaften (Speicherort, Größe und so weiter) definiert, und kann gleichermaßen gelöscht werden. Wurde ein Puffer oder ein FIFO aufgebaut, kann er dann durch Anschlüsse und Anwendungen unter Verwendung der vorstehend beschriebenen Prozeduren verwendet werden.
  • Wird zuerst die Verarbeitung von Nachrichten betrachtet, die durch die Pufferregister laufen, enthält der Pufferspeicher 13-B zwei Pufferbereiche 30 und 31 (3A), die durch jeweilige Pufferregistereinheiten 32 und 33 in einer Pufferadresssteuereinheit 34 in der Puffersteuereinrichtung 14-B im Einrichtungsverwaltungsmodul 11 definiert werden. Die Puffersteuereinrichtung im Einrichtungsverwaltungsmodul umfasst auch eine Steuereinheit 35, die die Pufferadresssteuereinheit 34 steuert. Ein Datenbus 36 verbindet im Einrichtungsverwaltungsmodul 11 alle Datenwege miteinander.
  • Gemäß 4A enthält jede Pufferregistereinheit eine Vielzahl von Adressregistern 32-1, 32-2, ...32-n. Diese Register umfassen ein oberes bzw. Anfangsregister 32-1 und ein unteres bzw. Endregister 32-n, die voreingestellt sind und oben und unten im jeweiligen Pufferbereich im Speicher 13 definieren, und ein Zeigerregister 32', das auf den Punkt im Pufferbereich zeigt, in den ankommende Daten zu schreiben sind. (Somit zeigt das Pufferregister 32' auf die Grenze im Pufferbereich zwischen dem Abschnitt, der Daten enthält, und dem Abschnitt, der leer ist).
  • Die verschiedenen Anschlusseinheiten 10, 10', 10'' können Nachrichten zu verschiedenen Anwendungsmodulen 12, 12', 12'' initiieren, die durch die Pufferregister 13-B zu leiten sind. Diese Nachrichten können zwei Grundtypen umfassen, Bitströme und Datagramme. Der Unterschied zwischen diesen zwei Nachrichtentypen besteht darin, dass ein Bitstrom eine Nachricht mit undefinierter Länge ist, während ein Datagramm eine Nachricht vorbestimmter Länge ist. Der Nachrichtentyp kann durch die Quelle der Nachricht (wie durch die die Nachricht begleitenden Steuersignale angegeben) oder durch einen Nachrichtenheader bestimmt werden (der durch die Steuereinheit 35 vom Datenbus 36 überwacht wird).
  • Einige Anschlusseinheiten können beide Nachrichtentypen initiieren; andere können den einen oder den anderen Typ initiieren. Möchte ein Anschluss 10 eine Nachricht initiieren, wählt das Einrichtungsverwaltungsmodul 11 diesen Anschluss 10 und das geeignete Anwendungsmodul 12 auf herkömmliche Art und Weise aus.
  • Die Steuereinheit 35 weist zwei Betriebsarten auf, die davon abhängen, ob die ankommende Nachricht ein Bitstrom oder ein Datagramm ist.
  • Die Steuereinheit 35 enthält ein binäres Auswahlelement oder ein Flip-Flop 37, das auswählt, welcher der zwei Pufferbereiche 30, 31 zu verwenden ist. Für einen Bitstrom richtet die Steuereinheit 35 den ankommenden Bitstrom in den aktuell ausgewählten Pufferbereich 30, bis er gefüllt ist. An diesem Punkt ändert die Steuereinheit 35 den Zustand des Auswahlelements 37 zur Auswahl des anderen Pufferbereichs 31 und richtet den Bitstrom in diesen Pufferbereich, bis dieser Pufferbereich gefüllt ist. Dann wählt sie wieder den ersten Pufferbereich 30 und fährt mit dem Umschalten zwischen den zwei Pufferbereichen fort, bis der Bitstrom endet.
  • Vorstehend wurde ausgeführt, dass die Steuereinheit 35 einen der Pufferbereiche 30, 31 auswählt, den ankommenden Bitstrom in diesen Pufferbereich 30 führt, und so weiter, jedoch handelt es sich dabei um eine vereinfachte Darstellung. Tatsächlich wählt die Steuereinheit 35 eine der zwei Pufferadressregistereinheiten 32, 33 aus, verwendet das Zeigerregister 32' in der ausgewählten Einheit 32 zur Auswahl der Adressen im Pufferbereich, in den ankommende Daten geschrieben werden, und schaltet zwischen den zwei Pufferadressregistereinheiten 32, 33 geeignet um.
  • Die Steuereinheit 35 informiert auch das Anwendungsmodul 12, dass der Bitstrom empfangen wird. Vom Anwendungsmodul 12 wird erwartet, dass es die Nachricht Abschnitt für Abschnitt aus den zwei Pufferbereichen 30, 31 alternierend liest, sodass die Pufferbereiche nicht überlaufen (das heißt, sodass bereits in den Pufferbereichen vorhandene Daten durch das Anwendungsmodul gelesen werden, bevor als Teil des Bitstroms ankommende frische Daten alte Daten überschreiben). Das Anwendungsmodul 12 kann eines oder mehrere Adressregister für dieses Lesen haben, oder ein zusätzliches Adressregister kann in jeder der Pufferadressregistereinheiten 32, 33 für diesen Zweck vorgesehen sein. Wenn das Lesen der gespeicherten Nachricht abgeschlossen ist, werden die Zeigeradressregister in den Pufferadressregistereinheiten 32, 33 rückgesetzt.
  • Für ein Datagramm bestimmt die Steuereinheit 35 die Länge des Datagramms und fragt bei der aktuell ausgewählten Pufferadressregistereinheit zur Bestimmung nach, wie viel Platz in ihr verfügbar ist. Dieser freie Kapazitätswert wird durch Bestimmung der Differenzen zwischen den Werten im oberen Register und im Zeigeradressregister erhalten. Die Steuereinheit vergleicht dann den freien Kapazitätswert mit der Länge des Datagramms, und ist die Datagrammlänge größer als der freie Kapazitätswert, ändert sie den Zustand des Auswahlelements 37 zur Auswahl des anderen Pufferbereichs.
  • Verursacht die ankommende Nachricht im Bitstrommodus ein Überlaufen der Pufferbereiche 30, 31, oder hat kein Pufferbereich im Datagrammmodus ausreichende freie Kapazität zur Aufnahme der ankommenden Nachricht, tritt das System in einen Fehlermodus ein, in dem der Nachrichtenempfang gestört ist oder abgebrochen wird. Dann kann eine geeignete Wiederherstellungsaktion vorgenommen werden, beispielsweise ein Aufruf für eine Neuübertragung der Nachricht, wenn das möglich ist, oder ein Rücksetzen des Systems in den Zustand vor dem Beginn des Nachrichtenempfangs.
  • Somit wird die ankommende Nachricht für einen Bitstrom in einen aktuell ausgewählten Pufferbereich gerichtet, und verursacht die ankommende Nachricht ein Überlaufen dieses Bereichs, wird automatisch auf den anderen Pufferbereich umgeschaltet, wobei das Umschalten zwischen den zwei Pufferbereichen bei Bedarf wiederholt wird. Bei einem Datagramm wird die vollständige ankommende Nachricht allerdings in einen einzigen Pufferbereich geleitet.
  • Dies ermöglicht die erfolgreiche Aufnahme ankommender Nachrichten sowohl beliebiger als auch bekannter Längen mit einer relativ einfachen Organisation der Pufferregister.
  • Die Puffer können auch allgemeiner für die Übertragung von Nachrichten zwischen Anwendungen verwendet werden.
  • Bezüglich der Verarbeitung der Nachrichten, die durch die FIFOs laufen, umfasst der Pufferspeicher 13-F einen Satz von FIFOs 40 (3B), die entsprechend FIFO-Registereinheiten 41 in der FIFO-Steuereinrichtung 14-F im Einrichtungsverwaltungsmodul 11 definiert sind. Daten laufen in und aus den FIFOs über den Datenbus 24, der mit dem Datenbus 36 verbunden ist (3A). Die FIFO-Steuereinrichtung 14-F im Einrichtungsverwaltungsmodul umfasst auch einen Satz von FIFO-Steuereinheiten 43, die das Schreiben von Nachrichten in die FIFOs 40 und das Lesen jener Nachrichten aus den FIFOs steuern.
  • Gemäß 4B umfasst jede FIFO-Registereinheit 41 eine Anzahl von Adressregistern 42-1, 42-2...42-n. Diese Register enthalten ein oberes Register 42-1 und ein unteres Register 42-2, die voreingestellt sind und den Anfang und das Ende bzw. oben und unten des jeweiligen FIFO-Bereichs im Speicher 13 definieren, ein Schreibzeigerregister 42-3, das auf den Punkt im FIFO-Bereich zeigt, an den ankommende Daten zu schreiben sind, und ein Lesezeigerregister 42-4, das auf den Punkt im FIFO-Bereich zeigt, an dem bereits gespeicherte Daten zu lesen sind.
  • Bei allgemeiner Betrachtung des Einrichtungsverwalters können Nachrichten daher von Anschlüssen zu Anwendungen, von Anwendungen zu Anschlüssen und zwischen Anwendungen unter Verwendung von Puffern oder FIFOs geführt werden.
  • Die Pufferverwendung wird durch Anwendungen auf hohem Niveau gesteuert. Das System ist ereignisbasiert; das heißt, wird eine Nachricht zu einer Anwendung auf hohem Niveau geführt, wartet die Anwendung auf den Empfang einer „Puffer bereit" Nachricht vom Pufferverwalter 14-F, bevor sie irgendeine Aktion hinsichtlich des Lesens der Inhalte des Puffers unternimmt. Mit dieser Anordnung ist eine unabhängige Kommunikation zwischen Anschlüssen nicht möglich. Des weiteren kann das System bis zu einem gewissen Grad unansprechbar sein, da ein Puffer von einem Anschluss gefüllt werden muss, bevor ein anderer Anschluss dessen Inhalte lesen kann.
  • Bei FIFOs wird die Verwendung durch die FIFO-Steuereinheiten 43 in der FIFO-Steuereinrichtung oder dem Abwickler 14-F gesteuert. Informationen werden in ein FIFO 40 geschrieben und aus diesem unter der Steuerung des FIFO-Abwicklers 14-F ausgelesen, der die entsprechende FIFO-Steuereinheit 43 enthält. Ein Datentransfer unterliegt daher der Steuerung des FIFO-Abwicklers 14-F anstelle der Steuerung durch die Anwendung 12. Ein Informationsstrom kann daher direkt zwischen zwei Anschlüssen 10, als auch zwischen einem Anschluss 10 und einer Anwendung 12 fließen.
  • Unter Verwendung der Schreib- und Lesezeiger 42-1 und 42-2 werden Daten in den FIFO 40 geschrieben und aus diesem gelesen. Diese Zeiger werden durch den FIFO-Abwickler 14-F gesteuert. Dies ermöglicht eine unabhängige Ausführung des Lesens und Schreibens des FIFOs 40. Das heißt, der Anschluss 10 oder die Anwendung 12 müssen keine Informationen über den Ursprung der Nachricht haben, die aus dem FIFO 40 gelesen wird. Das Auslesen von Informationen aus dem FIFO 40 kann beginnen, bevor der FIFO voll ist, oder bevor die Nachricht vollständig empfangen und in den FIFO 40 geschrieben ist. Dies ermöglicht das Erreichen eines im wesentlichen kontinuierlichen Informationsflusses. Das Auslesen von Informationen aus dem FIFO 40 muss nicht kontinuierlich sein; das Lesen kann zu jeder Zeit angehalten und neu gestartet werden.
  • Der FIFO-Abwickler 14-F überprüft, dass die in den FIFO 40 geschriebenen Informationen an der unteren Adresse des FIFO beginnen und nicht über die obere Adresse des FIFO hinausgehen. Die präzise Art und Weise, wie ein FIFO 40 arbeitet, kann von dessen bestimmter Verwendung abhängen. Somit kann ein FIFO 40 auf einer Einnachrichtenbasis betrieben werden, wobei der Beginn jeder Nachricht in die untere Adresse des FIFO geschrieben wird. Alternativ dazu kann ein FIFO 40 zyklisch betrieben werden, wobei der Beginn einer neuen Nachricht unmittelbar über das Ende der vorhergehenden Nachricht geschrieben wird, und der Anfang und das Ende des FIFO als aneinander angrenzend behandelt werden.
  • Sind Nachrichten länger als die Länge des FIFO 40 oder kommt eine Nachricht an, bevor die vorhergehende Nachricht vollständig aus dem FIFO 40 gelesen ist, besteht die mögliche Gefahr eines Konflikts. Die FIFO-Steuereinheiten 43 überwachen einen derartigen Konflikt. Wird das Ereignis des Konflikts erfasst, kann die FIFO-Steuereinheit 43 natürlich ein geeignetes Steuersignal zu der Quelle der Nachricht (beispielsweise einem Anschluss 10), dem Ziel der Nachricht (einer Anwendung 12) oder zu beiden senden.
  • Ein tatsächlicher Konflikt entsteht, wenn das Schreibzeigerregister 42-3 das Lesezeigerregister 42-4 einholt, oder wenn das Lesezeigerregister 42-4 das Schreibzeigerregister 42-3 einholt. Allerdings kann die FIFO-Steuereinheit 43 zur Erfassung möglicher Konflikte eingerichtet sein, das heißt, wenn sich das Schreibzeigerregister 42-3 dem Lesezeigerregister 42-4 oder umgekehrt auf eine gewisse Entfernung nähert. Das Einrichtungsverwaltungsmodul 11 kann diese Entfernungen (Schwellenwerte) für die FIFO-Steuereinheiten 43 einstellen. Die Überlauf- und Unterlaufschwellenwerte für ein FIFO 40 müssen nicht die gleichen sein, und die Schwellenwerte für verschiedene FIFOs 40 müssen nicht die gleichen sein. Es können auch zwei oder mehr Überlauf- und/oder Unterlaufschwellenwerte vorhanden sein, um progressiv dringendere Warnungen auszugeben, wenn ein tatsächlicher Überlauf oder Unterlauf in Sicht kommt.
  • Zusätzlich kann die FIFO-Steuereinheit 43 ein Flag enthalten, das bei dem Ereignis eines Überlaufs einstellbar ist, entweder um ein Schreiben zu erlauben oder ein weiteres Schreiben auszusetzen. Der erstgenannte Vorgang spült effektiv alte Informationen aus dem FIFO 40. Ein derartiges Ausspülen ist oft erwünscht, um die fortgesetzte Verarbeitung des Informationsflusses zu ermöglichen.
  • Eine FIFO-Steuereinheit 43 kann als Anwendung auf niedrigem Niveau betrachtet werden (oder unter einigen Umständen als Einrichtung), die Transferfunktionen für eine Anwendung auf hohem Niveau ausführt. Die Anwendung auf hohem Niveau ist mit den Transferfunktionen nicht belastet, und die übertragenen Nachrichten werden der Anwendung auf hohem Niveau effektiv automatisch zugeführt, die sie direkt verwenden kann, ohne mit deren Erhalt selbst betroffen zu sein.
  • 5 zeigt, wie die FIFOs zur Erzeugung von Videosignalen verwendet werden können, die mit den Videosignalen des Haupt-MPEG-Bitstroms kombiniert sind. Das Nachrichtenabwicklungssystem der 3, 3B und 4B wird zum Leiten von von einer MPEG Einrichtungsquelle empfangenen Daten direkt in eine Videoeinrichtung verwendet, ohne dass eine Eingabe von der Anwendung auf höherer Ebene erforderlich ist.
  • Ein MPEG-Bitstrom (der normalerweise der vom Tuner 4028 in 1 empfangene Bitstrom ist) wird über eine Leitung 50 einem Demultiplexer 51 zugeführt, der mit einer Serviceeinrichtung 52 verbunden ist. Die Funktion der Einrichtung 52 besteht im Aufbau des Videos; das heißt, im Erhalten von Informationen über den Hauptvideoaufbau und der Steuerung dessen Anzeige. Der Demultiplexer 52 wird zum Extrahieren der Hauptvideosequenz (Video-PID-Sequenz) aus dem MPEG-Videobitstrom gesteuert. Diese Hauptvideosequenz wird auf der Leitung 53 einem MPEG-2-Chip 54 zugeführt.
  • Außerdem können Video-MPEG-2-Bitströme aus einem oder mehreren der FIFOs 40 auf den Leitungen 55 extrahiert werden. Diese Bitströme werden einer Videoeinrichtung 56 zugeführt, die mit dem Hauptvideosignal auf der Leitung 53 verbunden ist. Die Bitströme auf den Leitungen 55 werden durch die Videoeinrichtung 56 verarbeitet und treten als Hilfsvideosequenzen auf den Leitungen 57 aus, die dem MPEG-2-Chip-54 zugeführt werden. Die Videosequenzen werden lediglich in der MPEG-Schicht angezeigt.
  • Jede Videosequenz der MPEG-Schicht hat ihren eigenen Alpha-Mischkoeffizienten, der jedem Bildelement des Bildes zum Mischen mit dem entsprechenden Bildelement der Hintergrundschicht zugeführt wird. Abschnitte der MPEG- Schicht, die nicht verwendet werden, sind vollständig transparent.
  • Die ausführlichen Einzelheiten der Implementierung der vorstehend beschriebenen verschiedenen Funktionen und ihre Aufteilung zwischen Hardware und Software sind Implementierungs-spezifisch und werden nicht näher beschrieben. Die dedizierten integrierten Schaltungen zur Durchführung der im Empfänger/Decodierer erforderlichen Operationen sind allerdings im Handel erhältlich oder können leicht entwickelt werden, und diese können als Grundlage für einen Hardwarebeschleuniger verwendet werden, oder besser zur Erzeugung eines dedizierten Hardwarebeschleunigers modifiziert werden, um verschiedene erforderliche Operationen zu implementieren, wodurch die zum Ablaufen lassen der Software erforderliche Verarbeitungsleistung verringert wird. Allerdings können die erforderlichen Operationen als Software implementiert werden, wenn ausreichend Verarbeitungsleistung verfügbar ist.
  • Die Module und weiteren Komponenten wurden bezüglich der Merkmale und Funktionen jeder Komponente zusammen mit optionalen und bevorzugten Merkmalen beschrieben. Mit diesen Informationen und der bereitgestellten Beschreibung sollte die tatsächliche Implementierung dieser Merkmale für den Fachmann möglich sein, wobei die Einzelheiten der Implementierung überlassen werden. Beispielsweise könnten bestimmte Module als Software implementiert werden, die vorzugsweise in der Programmiersprache C geschrieben ist, und vorzugsweise zum Laufen auf dem Prozessor kompiliert ist, der zum Ausführen der Anwendung verwendet wird; allerdings können manche Komponenten auf einem separaten Prozessor ausgeführt werden, und einige oder alle Komponenten können durch dedizierte Hardware implementiert werden.
  • Die vorstehenden Module und Komponenten dienen der Darstellung, und die Erfindung kann auf vielerlei Arten implementiert werden, und insbesondere können manche Komponenten mit anderen kombiniert werden, die ähnliche Funktionen durchführen, oder manche können in vereinfachten Implementierungen weggelassen werden. Hardware- und Softwareimplementierungen jeweiliger Funktionen können frei gemischt werden, sowohl zwischen Komponenten als auch innerhalb einer einzigen Komponente.
  • Die durch die Hardware, die Software und dergleichen durchgeführten Funktionen werden mit elektrischen Signalen oder dergleichen durchgeführt. Softwareimplementierungen können im ROM gespeichert sein, oder können einen Flash-Speicher belegen.
  • Gemäß dem bevorzugten Ausführungsbeispiel der Erfindung ist ein Einrichtungsverwaltungsmodul 11 insbesondere zur Verwendung in einem Empfänger/Decodierer für ein digitales Fernsehrundfunksystem vorgesehen, bei dem empfangene Signale durch einen Empfänger zu dem Empfänger/Decodierer und dann zu einem Fernsehgerät geleitet werden. Das Modul 11 verbindet ankommende Nachrichten von Anschlusseinheiten 10 und Anwendungsmodulen 12. Ein mit dem Modul 11 verbundener Speicher 13 hat einen Pufferbereich 13-B und einen FIFO-Bereich 13-F, die jeweils durch eine Puffersteuereinrichtung/Abwicklungseinrichtung 14-B und eine FIFO-Steuereinrichtung/Abwicklungseinrichtung 14-F gesteuert werden. Eine ankommende Nachricht kann in einen Puffer geleitet werden, und aus dem Puffer durch die Anwendung abgerufen werden, auf die sie gerichtet ist; zwei verschiedene Betriebsarten sind dafür verfügbar. Alternativ dazu kann eine Nachricht in einen FIFO geleitet werden; der FIFO-Abwickler arbeitet als Anwendung auf unterer Ebene, die die Nachricht zu einer Anwendung auf hoher Ebene führen kann, ohne dass die Anwendung etwas unternehmen muss, und ohne dass auf den Empfang der vollen Nachricht gewartet werden muss. Durch den FIFO-Bereich laufende Nachrichten können in einen MPEG-Signalstrom kombiniert werden.

Claims (11)

  1. Empfänger/Decodierer mit: zumindest einem Anschluss (10) zum Empfangen von Nachrichten, zumindest einem Anwendungsmodul (12), einem Speicher (13), der einen Pufferabschnitt (13-B) und einen FIFO-Abschnitt (13-F) umfasst, einer Puffersteuerungseinrichtung (14-B), die ansprechend auf eine an einem Anschluss (10) auftretende Nachricht arbeitet, um die Nachricht in den Pufferabschnitt (13-B) zu schreiben und nach vollständigem Schreiben der Nachricht die Nachricht ansprechend auf ein Steuersignal von einem Anwendungsmodul (12) vom Pufferabschnitt (13-B) zum Anwendungsmodul (12) auszulesen, einer an den oder jeden Anschluss (10), den Speicher (13) und das oder jedes Anwendungsmodul (12) angeschlossenen FIFO-Steuerungseinrichtung (14-F), die ansprechend auf eine an einem Anschluss (10) auftretende Nachricht arbeitet, um die Nachricht in den FIFO-Abschnitt (13-F) zu schreiben und, ohne ein vollständiges Schreiben der Nachricht abzuwarten, die Nachricht vom FIFO-Abschnitt (13-F) zu einem Anwendungsmodul (12) oder zu einem weiteren Anschluss (10) auszulesen, wodurch es ermöglicht ist, in Abhängigkeit von den Bedürfnissen eines Anwendungsmoduls (12) und/oder der Art der Nachricht, eine an einem Anschluss (10) empfangene Nachricht, ohne ein vollständiges Schreiben der Nachricht abzuwarten, zu einem weiteren Anschluss (10) auszulesen, oder entweder nach vollständigem Schreiben der Nachricht oder ohne ein vollständiges Schreiben der Nachricht abzuwarten, zu einem Anwendungsmodul (12) auszulesen.
  2. Empfänger/Decodierer gemäß Anspruch 1, wobei die FIFO-Steuerungseinrichtung (14-F) eine Belegungserfassungseinrichtung (43) zum Erfassen des Belegungszustands des FIFO-Abschnitts (13-F) des Speichers (13) umfasst.
  3. Empfänger/Decodierer gemäß Anspruch 2, wobei die Belegungserfassungseinrichtung (43) angepasst ist, um einen Überlauf und Unterlauf des FIFO-Abschnitts (13-F) zu erfassen.
  4. Empfänger/Decodierer gemäß einem der Ansprüche 2 und 3, wobei die Belegungserfassungseinrichtung (43) angepasst ist, um zumindest eine Schwelle für einen bevorstehenden Überlauf und Unterlauf des FIFO-Abschnitts (13-F) zu erfassen.
  5. Empfänger/Decodierer gemäß einem der vorangehenden Ansprüche, wobei die FIFO-Steuerungseinrichtung (14-F) dazu angepasst ist, eine Nachricht aus dem FIFO-Abschnitt (13-F) zu leeren.
  6. Empfänger/Decodierer gemäß einem der vorangehenden Ansprüche, wobei der FIFO-Abschnitt (13-F) eine Vielzahl von FIFO-Puffern (40) aufweist, und die FIFO-Steuerungseinrichtung (14-F) eine entsprechende Vielzahl von FIFO-Register-Steuerungseinrichtungen (41) aufweist.
  7. Empfänger/Decodierer gemäß einem der vorangehenden Ansprüche, wobei der Pufferabschnitt (13-B) zwei Pufferbereiche (30,31) aufweist, die durch jeweilige Pufferregister (32,33) in der Puffersteuerungseinrichtung (14-B) definiert sind.
  8. Empfänger/Decodierer gemäß Anspruch 7, wobei die Puffersteuerungseinrichtung (14-B) in einem Bit-Strom-Modus betrieben werden kann, in dem ein eintreffender Bitstrom in den derzeitig ausgewählten Pufferbereich geleitet und danach, während jeder Pufferbereich abwechselnd voll wird, zwischen den beiden Pufferbereichen hin- und hergeschaltet wird.
  9. Empfänger/Decodierer gemäß Anspruch 7 oder 8, wobei die Puffersteuerungseinrichtung (14-B) in einem Datagramm-Modus betrieben werden kann, in dem die Länge einer eintreffenden Nachricht mit dem freien Speicher im derzeitig ausgewählten Speicherbereich verglichen wird, und der andere Pufferbereich ausgewählt wird, falls der Speicher kleiner als die Länge der Nachricht ist.
  10. Empfänger/Decodierer gemäß einem der vorangehenden Ansprüche, der eine vom FIFO-Abschnitt (13-F) gespeiste Videovorrichtungsanwendungseinheit (56) umfasst, die eine Chipeinheit (54) speist, die zudem mit einem Videobitstrom gespeist wird.
  11. Ausstrahlungssystem mit einem Empfänger/Decodierer gemäß einem der vorangehenden Ansprüche und einer Einrichtung zum Übertragen von Nachrichten zum Empfänger/Decodierer.
DE69919686T 1998-03-27 1999-03-29 Speicherverwaltung in einem empfänger/decoder Expired - Lifetime DE69919686T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP98400764A EP0946053A1 (de) 1998-03-27 1998-03-27 Speicherverwaltung in einem Empfänger/Decoder
EP98400764 1998-03-27
PCT/IB1999/000650 WO1999051021A1 (en) 1998-03-27 1999-03-29 Memory management in a receiver/decoder

Publications (2)

Publication Number Publication Date
DE69919686D1 DE69919686D1 (de) 2004-09-30
DE69919686T2 true DE69919686T2 (de) 2005-09-01

Family

ID=8235318

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69919686T Expired - Lifetime DE69919686T2 (de) 1998-03-27 1999-03-29 Speicherverwaltung in einem empfänger/decoder

Country Status (20)

Country Link
EP (2) EP0946053A1 (de)
JP (1) JP4642230B2 (de)
KR (1) KR100604211B1 (de)
CN (1) CN1242605C (de)
AT (1) ATE274773T1 (de)
AU (1) AU2953199A (de)
BR (1) BR9909128A (de)
CA (1) CA2324086A1 (de)
DE (1) DE69919686T2 (de)
ES (1) ES2226352T3 (de)
HR (1) HRP20000599A2 (de)
HU (1) HUP0105435A3 (de)
ID (1) ID26209A (de)
IL (1) IL138440A0 (de)
NO (1) NO20004837L (de)
NZ (1) NZ507160A (de)
PL (1) PL343250A1 (de)
TR (1) TR200002764T2 (de)
WO (1) WO1999051021A1 (de)
ZA (1) ZA200006082B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073218A1 (en) * 1998-12-23 2002-06-13 Bill J. Aspromonte Stream device management system for multimedia clients in a broadcast network architecture
GB0130407D0 (en) * 2001-12-20 2002-02-06 Koninkl Philips Electronics Nv Delivery of digital applications
TWI284810B (en) * 2004-08-18 2007-08-01 Via Tech Inc Software communication between MPEG layer and servo layer
US8045472B2 (en) * 2008-12-29 2011-10-25 Apple Inc. Credit management when resource granularity is larger than credit granularity

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH083956B2 (ja) * 1986-09-18 1996-01-17 日本テキサス・インスツルメンツ株式会社 半導体記憶装置
US4942553A (en) * 1988-05-12 1990-07-17 Zilog, Inc. System for providing notification of impending FIFO overruns and underruns
TW237589B (de) * 1991-02-27 1995-01-01 Gen Electric
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
JP2658832B2 (ja) * 1993-11-12 1997-09-30 日本電気株式会社 動画像復号制御装置
US5642498A (en) * 1994-04-12 1997-06-24 Sony Corporation System for simultaneous display of multiple video windows on a display device
US5720037A (en) * 1994-06-16 1998-02-17 Lucent Technologies Inc. Multimedia on-demand server
JP3560078B2 (ja) * 1995-02-06 2004-09-02 ソニー株式会社 電子機器制御装置、電子機器制御方法、および電子機器制御システム
IT1275228B (it) * 1995-02-09 1997-07-31 Italtel Spa Decodificatore per postazione di utente in un sistema di televisione interattiva
FR2741172B1 (fr) * 1995-11-09 1997-12-12 Thomson Multimedia Sa Dispositif de traitement de donnees comportant une memoire tampon

Also Published As

Publication number Publication date
ES2226352T3 (es) 2005-03-16
NO20004837L (no) 2000-11-27
HUP0105435A3 (en) 2002-05-28
PL343250A1 (en) 2001-07-30
CN1242605C (zh) 2006-02-15
JP4642230B2 (ja) 2011-03-02
ATE274773T1 (de) 2004-09-15
HUP0105435A2 (hu) 2002-04-29
EP1064781A1 (de) 2001-01-03
WO1999051021A1 (en) 1999-10-07
IL138440A0 (en) 2001-10-31
ZA200006082B (en) 2001-05-30
KR100604211B1 (ko) 2006-07-24
EP0946053A1 (de) 1999-09-29
CN1303566A (zh) 2001-07-11
ID26209A (id) 2000-12-07
TR200002764T2 (tr) 2001-01-22
NZ507160A (en) 2002-03-28
DE69919686D1 (de) 2004-09-30
CA2324086A1 (en) 1999-10-07
KR20010042226A (ko) 2001-05-25
JP2002510908A (ja) 2002-04-09
HRP20000599A2 (en) 2001-06-30
EP1064781B1 (de) 2004-08-25
BR9909128A (pt) 2000-12-19
AU2953199A (en) 1999-10-18
NO20004837D0 (no) 2000-09-26

Similar Documents

Publication Publication Date Title
DE69833841T2 (de) Digitaler Bildempfänger, Modul für bedingten Zugang und Verfahren zur Übertragung von Daten dazwischen
DE69819507T2 (de) Set-top-box gerätetreiber für die ieee1394 norm
DE60018067T2 (de) Digitalfernsehempfänger zur steuerung einer anwendung gemäss eines anwendungslebenszyklus
KR100553195B1 (ko) 디지털 이송 스트림 처리
DE69909255T2 (de) Multimediaterminal für mehrere benutzer
DE69907426T2 (de) Digitale verarbeitung von grafischen bildern in einem dekodierer
DE69920782T2 (de) Verfahren unf Vorrichtung zur bidirektionalen Datenübertragung zwischen einem IEEE1394 Bus und einem Gerät
DE60014942T2 (de) System und Verfahren zum Einplanen von Ereignissen die sich auf eine Fernsehvorschau beziehen
DE102013114633B4 (de) Netzwerk-adaptive Latenzzeit-Verringerung durch Framerate-Steuerung
DE69935770T2 (de) Procede de mise à jour de logiciels dans un recepteur de television utilisant des donnees enregistrees
DE60108199T2 (de) Verfahren und Vorrichtung zur Dekodierung eines Videodatenstroms in besonderen Wiedergabebetriebsarten
DE602004009622T2 (de) Datenübertragung
EP0946056A1 (de) Verfahren zum Erhöhen der Speicherkapazität für Serviceinformation in einem Empfäger für digitale TV-Sendungen
DE10121777B4 (de) Multimediagerät dessen Funktionen erweitert werden können und Verfahren für das Erweitern der Funktionen
DE69919686T2 (de) Speicherverwaltung in einem empfänger/decoder
DE4408522A1 (de) Vorrichtung und Verfahren zur Bilddatenverarbeitung, die zur Verarbeitung von Bilddaten mit hoher Geschwindigkeit in der Lage sind
DE69912098T2 (de) Konfigurierungsmethode und -vorrichtung
DE69837856T2 (de) Modemkontrolle
DE19935604A1 (de) Verfahren und Vorrichtung zum decodieren eines Bewegungsbildes
DE69934829T2 (de) Ereignisbuchung
DE69914349T2 (de) Verfahren und vorrichtung zur verwaltung von dienstedaten in einem fernsehsystem
EP2670155A2 (de) Hybrid-TV-Empfänger mit einer Videomischeinrichtung für eine Mehrbildwiedergabe zum zeitgleichen visuellen Darstellen von Medieninhalten auf einem Wiedergabeschirm
DE19747864A1 (de) Adaptives Sektionsverfahren zur Prioritätssteuerung des Speicherzugriffs bei einem MPEG Prozessor
DE60220619T2 (de) Rundfunk-Empfangsgerät
DE60003939T2 (de) Verfahren und anlage zum schreiben von daten auf ein aufnahmemedium in einem digitalen videosystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition