DE69529001T2 - Prozessor für inverse Übertragung mit Speicheradressenschaltung - Google Patents
Prozessor für inverse Übertragung mit SpeicheradressenschaltungInfo
- Publication number
- DE69529001T2 DE69529001T2 DE69529001T DE69529001T DE69529001T2 DE 69529001 T2 DE69529001 T2 DE 69529001T2 DE 69529001 T DE69529001 T DE 69529001T DE 69529001 T DE69529001 T DE 69529001T DE 69529001 T2 DE69529001 T2 DE 69529001T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- packets
- packet
- program
- 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
Links
- 238000012546 transfer Methods 0.000 title description 2
- 238000012545 processing Methods 0.000 claims description 15
- 230000008054 signal transmission Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 description 13
- 238000013475 authorization Methods 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/163—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Time-Division Multiplex Systems (AREA)
- Television Signal Processing For Recording (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
Description
- Die vorliegende Erfindung ist eine Trennanmeldung der Europäischen Patentanmeldung Nr. 95 105 541.7 auf den Namen von THOMSON Consumer Electronics, Inc. Die vorliegende Erfindung betrifft eine Vorrichtung zur Verarbeitung von Paketen aus Programmkomponentendaten von einem Paketvideosignal und zur Extrahierung entsprechender Nutzdaten verschiedener Programmsignalkomponenten. Die Erfindung umfaßt eine Vorrichtung zur Adressierung eines Transportpufferspeichers und das Konzept der Benutzung eines gemeinsamen Übertragungspufferspeichers.
- Es ist bekannt, zum Beispiel aus der US 5 168 356 und der US 5 289 276, dass es vorteilhaft ist, ein komprimiertes Videosignal in Paketen zu übertragen, wobei jeweilige Pakete ein Maß an Fehler-Schutz/Korrektur bieten. Die Systeme in den obigen Patentschriften übertragen und verarbeiten ein einziges Fernsehprogramm, jedoch mit mehreren Programmkomponenten, von jeweiligen Übertragungskanälen. Diese Systeme verwenden inverse Übertragungsprozessoren für die Extrahierung der Videosignalkomponente der jeweiligen Programme für die weitere Verarbeitung, um die Videokomponente für die Wiedergabe aufzubereiten. Die US 5 289 276 beschreibt nur die Verarbeitung der Videosignalkomponente. Die US 5 168 256 beschreibt einen inversen Übertragungsprozessor, der andere Programmkomponenten aufgrund von Paket-Headerdaten zur Unterscheidung jeweiliger Signalkomponenten mit einem einzigen Demultiplexer trennt. Die abgetrennte Videokomponente wird einem Pufferspeicher zugeführt, während die übrigen Signalkomponenten direkt ihrer jeweiligen Verarbeitungsschaltung zugeführt werden.
- Aus der US 5 233 654 ist es bekannt, dass ein Code mit dem Fernsehsignal übertragen werden kann, um eine interaktive Programmierung zu bilden. Dieser Code wird im allgemeinen verarbeitet oder ausgeführt durch einen zu einem Fernsehempfänger gehörenden Computer. Aus der am Prioritätstag der vorliegenden Erfindung nicht veröffentlichten WO94/14284 ist ein neu-programmierbarer Anschluss für die zur Erfassung der auf einem Fernsehprogramm-Verteilsystem angebotenen Programme bekannt.
- Bei Anwendungen, wo die meisten Programmkomponenten komprimiert sind, wird eine gewisse Pufferung zwischen dem Übertragungskanal und dem größten Teil der entsprechenden Vorrichtung für die Verarbeitung der Komponente (Dekomprimierung) benötigt. Daher ist es erwünscht, die meisten, wenn nicht alle Komponenten einem Pufferspeicher zuzuführen. Die Datenraten der verschiedenen Programmkomponenten können sich zwischen den jeweiligen Komponenten sowie innerhalb jeweiliger Komponenten in weitem Umfang ändern. Daher ist es vorteilhaft, jede Komponente getrennt zu puffern. Ein Pufferspeicher für die Pufferung komprimierter Programmkomponentendaten und zur Verarbeitung interaktiver Programme ist im allgemeinen nicht unkritisch. Sie kann nämlich nennenswert zu den Kosten eines Empfängersystems beitragen.
- Wenn der inverse Übertragungsprozessor zum Beispiel aus einer Set-Top-Box besteht, sollten die Speichergröße und die Verwaltungsschaltung bei einem Minimum gehalten werden, um die Verbraucherkosten so niedrig wie möglich zu halten. Daher ist es wirtschaftlich erwünscht, denselben Speicher und dieselbe Speicherverwaltungsschaltung für die Programmkomponentenpufferung, die Prozessor- Fernsteuerung und die interaktiven Funktionen zu verwenden.
- Die vorliegende Erfindung ist ein Signalübertragungsprozessor mit einer Vorrichtung zur Verarbeitung von Signalen mit zeitlich gemultiplexten Paketen von Programmkomponenten, wobei jeweilige Pakete NutzdatenI von Programmkomponentendaten und einen Header mit einem Programmkomponentenidentifizierer, SCID, enthalten, und wobei Nutzdaten von jeweiligen Komponenten in gegenseitig exklusiven Teilen eines gemeinsamen Pufferspeichers (16) gespeichert werden. Die Vorrichtung enthält eine Schaltung zur Adressierung des Pufferspeichers mit folgenden Merkmalen:
- eine Quelle von zeitgemultiplexten Paketen,
- einen SCLD-Detektor, der auf jeweilige Komponentenidentifzierer in Paket-Headern anspricht, zur Detektion von Paketen mit vorbestimmten Programmkomponenten,
- mehrere Schaltungen für einen direkten Speicherzugriff,
- eine Steuervorrichtung, die dafür programmiert ist, dass jeweilige Schaltungen mit einem direkten Speicherzugriff Nutzdaten der empfangenen Pakete in geeignete, gegenseitig exklusive Teile des gemeinsamen Pufferspeichers aufgrund der detektierten Identifizieren geschrieben werden.
- Zusätzlich enthalten bestimmte der mehreren Schaltungen für den direkten Speicherzugriff folgende Merkmale:
- ein Register zur Speicherung eines durch die Steuervorrichtung gelieferten Startzeigers und
- ein weiteres Register zur Speicherung eines Werts für die letzte Adresse eines jeweiligen exklusiven Teils des gemeinsamen Pufferspeichers.
- Die Erfindung enthält außerdem:
- ein Register zur Speicherung einer laufenden Schreibadresse, und die mehreren Schaltungen für den direkten Speicherzugriff enthalten ferner eine gemeinsame Inkrementierschaltung zur Inkrementierung jeweiliger Speicheradressen, die in jeweiligen Registern für die Speicherung einer laufenden Schreibadresse gespeichert sind, und
- ein weiteres Register zur Speicherung einer laufenden Leseadresse enthalten, und
- eine weitere gemeinsame Inkrementierschaltung zur Inkrementierung jeweiliger Speicheradressen, die in jeweiligen Registern zur Speicherung einer laufenden Leseadresse gespeichert sind.
- Die Erfindung wird anhand der Zeichnung beschrieben.
- Fig. 1 ist eine bildliche Darstellung eines zeitgemultiplexten Paket- Fernsehsignals,
- Fig. 2 ist eine bildliche Darstellung von jeweiligen Signalpaketen,
- Fig. 3 ist ein Blockschaltbild eines Empfängers zur Wahl und zur Verarbeitung von Paketen von gemultiplexten Komponentensignalen mit der vorliegenden Erfindung,
- Fig. 4 ist ein Blockschaltbild einer beispielhaften Speicher- Verwaltungsschaltung, die für das Bauteil 17 von Fig. 3 ausgeführt werden kann,
- Fig. 5 ist eine bildliche Darstellung und zeigt eine Speicheradressen- Formation für Service-Kanaldaten,
- Fig. 6 ist eine bildliche Darstellung und zeigt eine Speicheradressen- Formation für zusätzliche Paketdaten,
- Fig. 7 ist ein Blockschaltbild einer beispielhaften Schaltung zur Erzeugung von zusätzlichen Paketspeicheradressen,
- Fig. 8 ist ein Blockschaltbild einer alternativen Registerschaltung zur Inkrementierung von Speicheradressen,
- Fig. 9 ist ein Flussdiagramm für den Betrieb der Steuerung der Speicheradressen, und
- Fig. 10 ist ein Blockschaltbild eines Filter/Start-Code-Detektors für einen bedingten Zugriff.
- Fig. 1 zeigt einen Signalstrom aus einer Reihe von Kästen, die Signalpakete darstellen, die Komponenten von mehreren verschiedenen Fernseh- oder interaktiven Fernsehprogrammen sind. Es wird angenommen, dass diese Programmkomponenten aus komprimierten Daten bestehen und somit die Menge von Videodaten für jeweilige Bilder veränderbar ist. Die Pakete haben eine konstante Länge. Pakete mit Buchstaben mit gleichen Idices bezeichnen Komponenten eines einzigen Programms. Zum Beispiel bezeichnen Vi, Ai, Di Video-, Audio- und Datenpakete, und mit V&sub1;, A&sub1;, D&sub1; bezeichnete Pakete bezeichnen Video-, Audio- und Datenkomponenten für das Programm 1, und V&sub3;, A&sub3;&sub1;, A&sub3;&sub2;, D&sub3; bezeichnen Video-, Audio1-, Audio2- und Datenkomponenten des Programms 3. Die Datenpakete Di können zum Beispiel Steuerdaten zur Initiierung einer bestimmten Aktion in einem Empfänger enthalten, oder sie können einen durchführbaren Code zur Bildung einer Anwendung enthalten, die zum Beispiel durch einen Mikroprozessor durchgeführt wird, der in einem Empfänger liegt oder zu diesem gehört.
- In der oberen Zeile der Reihe von Paketen sind die jeweiligen Komponenten eines bestimmten Programms zusammengruppiert dargestellt. Es besteht jedoch keine Notwendigkeit, dass Pakete von demselben Programm in der dargestellten Weise durch die gesamte Reihe von Paketen gruppiert sind. Es gibt auch keine besondere Reihenfolge für die Folge des Auftretens jeweiliger Komponenten.
- Die jeweiligen Pakete enthalten ein Präfix und Nutzdaten, wie es in Fig. 2 dargestellt ist. Das Präfix dieses Beispiels enthält zwei 8-Bit Byte mit fünf Feldern, von denen vier (P, BB, CF, CS) 1-Bit-Felder sind, und von denen eines (SCID) ein 12-Bit- Feld ist. Das SCID-Feld ist der Signalkomponenten-Identifizierer. Das Feld CF enthält eine Markierung zur Anzeige, ob die Nutzdaten des Pakets verwürfelt sind, und das Feld CS enthält eine Markierung, die anzeigt, welcher der beiden alternativen Entwürfelungsschlüssel zur Entwürfelung der verwürfelten Pakete benutzt werden muß. Das Präfix jedes Pakets ist Paket-ausgerichtet, so dass die Lage der jeweiligen Felder leicht identifizierbar ist.
- In allen Nutzdaten liegt ein Header, der einen Kontinuitätszählwert, CC, Modulo 16 und ein TOGGLE-Markierbit enthält, die für die Programmkomponenten spezifisch sind. Der Kontinuitätszählwert ist einfach eine aufeinanderfolgende Numerierung von aufeinanderfolgenden Paketen derselben Programmkomponente. Das TOGGLE- Markierbit ist ein Signal mit einem Bit, das für die Videokomponente den logischen Wert in Paketen ändert oder "toggelt" und den Beginn eines neuen Bildes (Vollbildes) definiert, d. h. Pakete, die einen Bild-Schicht-Header enthalten.
- Fig. 3 zeigt in Blockform einen Teil eines Empfängers für ein digitales Fernsehsignal mit Bauteilen eines inversen Übertragungsprozessors. Das Signal wird durch eine Antenne 10 detektiert und einem Tuner-Detektor 11 zugeführt, der ein bestimmtes Frequenzband der empfangenen Signale extrahiert und ein komprimiertes Signal in binärer Form im Basisband liefert. Das Frequenzband wird von dem Benutzer über einen Mikroprozessor 19 durch bekannte Verfahren gewählt. Normalerweise sind digitale Rundfunksignale fehlerkodiert, zum Beispiel durch Anwendung von einer Reed-Solomon-Vorwärtsfehlerkorrektur (FEC)-Kodierung. Die Basisbandsignale werden somit einem FEC-Dekoder 12 zugeführt. Der FEC-Dekoder 12 synchronisiert das empfangene Videosignal und liefert einen Strom von Signalpaketen von dem in Fig. 1 dargestellten Typ. Der FEC 12 kann Pakete in regelmäßigen Intervallen oder auf Anforderung, zum Beispiel durch eine Speichersteuereinheit 17, liefern. In beiden Fällen wird ein Paketrahmungs- oder Synchronisiersignal durch die FEC- Schaltung geliefert, die die Zeiten anzeigt, wo jeweilige Paketinformationen von dem FEC 12 übertragen werden.
- Das detektierte Frequenzband kann mehrere, zeitgemultiplexte Programme in Paketform enthalten. In nützlicher Weise sollten nur Pakete von einem einzigen Programm den weiteren Schaltungselementen zugeführt werden. In diesem Beispiel wird angenommen, dass der Benutzer nicht weiß, welche Pakete gewählt werden müssen. Diese Informationen sind in einem Programmführer enthalten, der in sich selbst ein Programm aus Daten ist, die über SCID's eine Beziehung von Programmsignalkomponenten herstellen und Informationen enthalten können, die zum Beispiel Berechtigungen eines Abonnenten betreffen. Der Programmführer ist eine Auflistung für jedes Programm der SCID's für die Audio-, Video- und Datenkomponenten der jeweiligen Programme. Dem Programmführer (Pakete D4 in Fig. 1) ist ein fester SCID zugeordnet. Wenn Betriebsspannung an den Empfänger angelegt wird, wird der Mikroprozessor 19 dafür programmiert, den SCID für den Programmführer in eine Bank eines ähnlich programmierbaren SCID-Registers 13 zu laden. Die SCID-Felder des Präfix-Teils der jeweiligen detektierten Pakete des Signals von dem FEC 12 werden nacheinander in ein weiteres SCID-Register 14 geladen. Die programmierbaren Register und das empfangene SCID-Register werden jeweiligen Eingangsanschlüssen einer Komparatorschaltung 15 zugeführt, und der empfangene SCID wird mit dem Programmführer SCID verglichen. Wenn der SCID für ein Paket mit dem Programmführer SCID übereinstimmt, bewirkt der Komparator 15, dass eine Speichersteuereinheit 17 das Paket zu einer vorbestimmten Stelle in dem Speicher 18 für eine Anwendung durch den Mikroprozessor führt. Wenn der empfangene SCID nicht mit dem Programmführer des SCID übereinstimmt, wird das entsprechende Paket einfach unterdrückt oder verworfen.
- Der Mikroprozessor wartet auf einen Programmierbefehl von dem Benutzer über eine Schnittstelle 20, die als ein Computer-Tastenfeld dargestellt ist, die jedoch eine bekannte Fernbedieneinheit oder Schalter auf dem Bedienfeld des Empfängers sein kann. Der Benutzer kann fordern, ein Programm auf Kanal 4 anzusehen (in der Ausdrucksweise von analogen Fernsehsystemen). Der Mikroprozessor 19 ist dafür programmiert, die Programmführerliste abzutasten, die in dem Speicher 18 für die jeweiligen SCID's der Programmkomponenten des Kanals 4 geladen wurde, und diese SCID's in jeweils anderen programmierbaren Registern der Bank des Registers 13 zu laden, denen entsprechende Komponentensignal-Verarbeitungswege zugeordnet sind.
- Empfangene Pakete von Audio-, Video- oder Daten-Programmkomponenten für ein gewünschtes Programm müssen letztlich Signalprozessoren für die jeweiligen Audio 23, Video 22 oder Zusatzdaten 21, (24) zugeführt werden. Die Daten werden bei einer relativ konstanten Rate empfangen, jedoch fordern die Signalprozessoren im allgemeinen Eingangsdaten in sogenannten "Bursts" (z. B. in Abhängigkeit von den jeweiligen Typen der Dekomprimierung). Das beispielhafte System von Fig. 3 führt zunächst die jeweiligen Pakete zu vorbestimmten Speicherstellen in dem Speicher 18. Danach fordern die jeweiligen Prozessoren 21-24 die Komponentenpakete vo dem Speicher 18 an. Die Weiterleitung der Komponenten über den Speicher bildet ein Maß einer gewünschten Pufferung der Signaldatenrate oder Drosselung (throttling).
- Die Audio-, Video- und Datenpakete werden in jeweilige vorbestimmte Speicherstellen geladen, um für die Signalprozessoren einen bequem gepufferten Zugang zu den Komponentendaten zu ermöglichen. Damit die Nutzdaten der jeweiligen Komponentenpakete in den richtigen Speicherbereichen geladen werden, sind den jeweiligen SCID-Komparatoren diese Speicherbereiche zugeordnet. Diese Zuordnung kann festverdrahtet in der Speichersteuereinheit 17 enthalten sein, oder die Zuordnung kann programmierbar sein. Im ersten Fall werden bestimmte programmierbare Register 13 immer den Audio-, Video- bzw. Daten-SCID's zugeordnet. Im letzteren Fall können die Audio-, Video- und Daten-SCID's in eines der programmierbaren Register 13 geladen werden, und die richtige Zuordnung wird in der Speichersteuereinheit 17 programmiert, wenn die jeweiligen SCID's in den programmierbaren Registern geladen werden.
- Im eingeschwungenen Zustand, nachdem die Programm-SCID's in dem programmierbaren Registern 13 gespeichert worden sind, werden die SCID's der empfangenen Signalpakete mit allen SCID's in den programmierbaren SCID-Registern verglichen. Wenn eine Übereinstimmung mit entweder einem gespeicherten Audio-, Video- oder Daten-SCID erfolgt, wird die entsprechenden Paket-Nutzdaten in dem Audio-, Video- oder Datenspeicherbereich bzw. Datenblock gespeichert.
- Die jeweiligen Signalpakete werden vom dem FEC 12 über einen Signalentschlüsseler 16 der Speichersteuereinheit 17 zugeführt. Nur die Signalnutzdaten werden verwürfelt, und die Paket-Header werden unverändert durch den Entschlüsseler übertragen. Ob ein Paket entwürfelt werden muss oder nicht, wird durch die CF- Markierung in dem Paket-Präfix bestimmt, und wie es entwürfelt werden muss, wird durch die CS-Markierung bestimmt. Alternativ kann, wenn keine SCID- Übereinstimmung für ein jeweiliges Paket vorliegt, kann der Entschlüsseler einfach für jede Datenübertragung gesperrt werden. Alternativ kann, wenn keine SCID- Übereinstimmung für ein Paket besteht, der Entschlüsseler entsprechend seiner letzten Einstellungen entschlüsseln, und die Speicher-Schreibsteuerung kann gesperrt werden, um das entsprechende Paket zu unterdrücken.
- Der Entschlüsseler wird mit Entschlüsselungsschlüsseln programmiert, die von der Smart Card-Vorrichtung 31 geliefert werden. Die Smart Card ist zuständig für die Berechtigungsinformationen, die in bestimmten Paketen des Programmführers enthalten sind, um die richtigen Entschlüsselungsschlüssel zu erzeugen. Das System gemäß dem vorliegenden Beispiel enthält zwei Werte der Verschlüsselung oder des Programmzugriffs, der Berechtigungs-Steuernachrichten, ECM's, und der Berechtigungs-Verwaltungsnachrichten, EMM's. Programmberechtigungs- Steuer- und Verwaltungsinformationen werden regelmäßig in Paketen übertragen, die mit speziellen SCID's identifizierbar sind, die in dem den Programmführer enthaltenden Paketstrom enthalten sind. Die in diesen Paketen enthaltenen ECM-Informationen werden durch die Smart Card dafür benutzt, die von dem Entschlüsseler benutzten Entschlüsselungsschlüssel zu erzeugen. Die in diesen Paketen enthaltenen EMM-Informationen werden von der Abonnenten-spezifischen Smart Card dafür benutzt, das Programmmaterial zu ermitteln, für das der Abonnent berechtigt ist. EMM- Berechtigungsinformationen in diesen Paketen können geographisch-spezifisch oder Gruppen-spezifisch oder Abonnenten-spezifisch sein. Zum Beispiel könnte das vorliegende System ein (nicht dargestelltes) Modem für die Kommunikation der Belastungsinformationen von der Smart Card zu dem Programmanbieter enthalten, z. B. der Satelliten-Sendeanstalt. Die Smart Card kann zum Beispiel mit dem Bereichscode und der Fernsprechvermittlung der Empfängerstelle programmiert sein. Die EMM kann Daten enthalten, die bei einer Verarbeitung durch die Smart Card den Empfang von bestimmten Programmen in einem bestimmten Bereich freigeben oder sperren.
- Der Programmanbieter kann die Fähigkeit wünschen, bestimmte Bereiche oder Gruppen mit einer sehr kurzen Vorlaufzeit auszutasten oder zu sperren. Zum Beispiel kann eine Sendeanstalt aufgefordert sein, ein Fußballspiel in der örtlichen Umgebung des Stadions auszutasten, wenn die Eintrittskarten für das Spiel nicht ausverkauft sind. Diese Informationen sind erst unmittelbar vor der Spielzeit verfügbar. Mit einer derart kurzen Vorlaufzeit kann es nicht möglich sein, EMM's für die Austattung des örtlichen Bereichs zu programmieren. Eine weitere Kodierung von Berechtigungsinformationen ist in den Nutzdaten der Berechtigungsdaten enthalten, um eine sofortige Austastung oder Sperrung zu ermöglichen.
- Die Berechtigungsdaten enthaltenden Pakete enthalten einen Nutzdaten-Header mit 128 Bit in speziell kodierten 4 Gruppen von 32 Bit. Ein angepaßtes Filter oder ein E- Code-Dekoder 30 ist dafür vorgesehen, bestimmte Kombinationen von Bitmustern in dem 128 Bit-Header zu detektieren. Wenn eine Übereinstimmung festgestellt wird, kommuniziert der Dekoder mit der Speichersteuereinheit 17 und der Smart Card 31, um den übrigen Teil der Berechtigungs-Nutzdaten für die Smart Card verfügbar zu machen (über den Speicher 18). Wenn keine Übereinstimmung ermittelt wird, werden die Nutzdaten durch den spezifischen Empfänger nicht angenommen. Die speziellen Codes können periodisch geändert werden, wenn das angepaßte Filter 30 programmierbar ausgebildet ist. Diese Codes können periodisch durch die Smart Card geliefert werden. Für spezifischere Details für den Betrieb der Smart Card hinsichtlich der Betrachterberechtigungen wird der Leser verwiesen auf Section 25 of THE SATELLITE BOOK; A COMPLETE GUIDE TO SATELLITE TV THEORY AND PRACTICE, Swift Television Publications, 17 Pittsfield, Cricklade, Wilts, England.
- Das signalangepaßte Filter oder der E-Code-Dekoder führt eine zweite Funktion durch, die darin besteht, die besonderen MPEG-Video-Header zu detektieren. Diese Header oder Startcodes haben eine Länge von 32 Bit (das ist der Grund, dass Header von Berechtigungs-Nutzdaten in Gruppen mit 32 Bit kodiert sind). Wenn Videodaten verlorengegangen sind, kann ein MPEG-Videodekoder die Dekomprimierung der Videodaten nur bei bestimmten Dateneingabepunkten neu starten. Diese Eingabepunkte fallen zusammen mit MPEG-Start-Codes. Der Dekoder kann dafür vorgesehen sein, mit der Speichersteuereinheit 17 zu kommunizieren, um den Strom von Videodaten zu dem Speicher nach den Videopaketverlusten zu sperren, und das Schreiben von Video-Nutzdaten in dem Speicher nur dann wieder aufzunehmen, nachdem der nächste MPEG-Startcode durch den Dekoder 30 detektiert worden ist.
- Fig. 4 zeigt eins beispielhafte Vorrichtung für die in Fig. 3 dargestellte Speichersteuereinheit 17. Jede Programmkomponente wird in einem anderen, angrenzenden Block des Speichers 18 gespeichert. Zusätzlich können andere Daten, wie durch den Mikroprozessor 19 oder eine (nicht dargestellte) Smart Card erzeugte Daten, in dem Speicher 18 gespeichert werden.
- Adressen werden dem Speicher 18 von einem Multiplexer 105 zugeführt, und Eingangsdaten werden dem Speicher 18 über einen Multiplexer 99 zugeführt. Ausgangsdaten von der Speicher-Verwaltungsschaltung werden durch einen weiteren Multiplexer 104 zu den Signalprozessoren geliefert. Durch den Multiplexer 104 gelieferte Ausgangsdaten werden von dem Mikroprozessor 19, dem Speicher 18 oder direkt von dem Multiplexer 99 abgeleitet. Es wird angenommen, dass Programmdaten eine Standard-Bildauflösung und -Qualität aufweisen und bei einer bestimmten Datenrate auftreten. Andererseits erscheinen Signale für ein hochauflösendes Fernsehen (WDTV), die durch diesen Empfänger geliefert werden können, bei einer nennenswert höheren Datenrate. Praktisch alle durch den FEC gelieferten Daten werden durch den Multiplexer 99 und die Speicher I/O-Schaltung 102 über den Speicher 18 geführt, ausgenommen die HDTV-Signale mit einer höheren Rate, die direkt von dem Multiplexer 99 zu dem Multiplexer 104 geführt werden können. Daten werden zu dem Multiplexer 99 von dem Entschlüsseler 16, der Smart Card-Schaltung, dem Mikroprozessor 19 und einer Quelle von Übertragungsfehlercodes 100 geliefert. Der Ausdruck "Übertragungsfehlercodes" (media error codes), wie er hier benutzt wird, bedeutet spezielle Codewörter, die in einen Datenstrom eingefügt werden, damit der jeweilige Signalprozessor (Dekomprimierer) die Verarbeitung bis zur Detektion eines vorbestimmten Codeworts einstellt, wie eines Sartcodes, und dann die Verarbeitung zum Beispiel gemäß dem Startcode wieder aufnimmt.
- Speicheradressen werden dem Multiplexer 105 von der Programmadressierschaltung 79-97, von dem Mikroprozessor 19, von der Smart Card-Vorrichtung 31 und von dem Zähler 78 für die zusätzlichen Paketadressen zugeführt. Die Wahl einer bestimmten Adresse bei einer bestimmten Zeitperiode wird durch eine Schaltung 98 für einen direkten Speicherzugriff (DMA = direct memory access) zugeführt. Die SCID = Steuersignale von dem Komparator 15 und die Signale "Daten benötigt" (data needed) von den jeweiligen Signalprozessoren werden dem DMA 98 zugeführt, und in Abhängigkeit davon werden Konflikte hinsichtlich des Speicherzugriffs geschlichtet. Der DMA 98 arbeitet mit einem sogenannten "Service Pointer Controller" (Service-Zeiger-Steuereinheit) 93 zusammen, um die geeigneten Lese- und Schreibadressen für das jeweilige Programmsignal zu liefern.
- Die jeweiligen Adressen für die verschiedenen Signalkomponenten-Speicherblöcke werden durch vier Gruppen von Programmkomponenten- oder Service-Zeiger- Registern 83, 87, 88 und 92 erzeugt. Die Startzeiger für die entsprechenden Blöcke des Speichers, in denen die jeweiligen Signalkomponenten gespeichert werden, sind in Registern 87 für die jeweiligen Signalkomponenten enthalten. Die Startzeiger können feste Werte sein, oder sie können durch konventionelle Speicherverwaltungs- Verfahren in dem Mikroprozessor 19 berechnet werden.
- Die letzten Adressenzeiger für jeweilige Blöcke werden in der Bank der Serviceregister 88 gespeichert, einer für jede denkbare Programmkomponente. Ähnlich zu den Startadressen können die Endadressen feste Werte sein, oder sie können berechnete Werte sein, die von dem Mikroprozessor 19 geliefert werden. Die Anwendung berechneter Werte für den Start- und Endzeiger wird bevorzugt, weil sie ein vielseitigeres System mit weniger Speicheraufwand bildet.
- Die Speicher-Schreibzeiger oder Head-Zeiger werden durch die Addierstufe 80 und die Service-Head-Register 83 erzeugt. Es gibt ein Service-Head-Register für jede denkbare Programmkomponente. Ein Schreib- oder Head-Pointer-Wert wird in einem Register 82 gespeichert und während eines Speicherschreibzyklus dem Adressenmultiplexer 105 zugeführt. Der Head-Zeiger wird außerdem der Addierstufe 80 zugeführt, worin er um eine Einheit inkrementiert wird, und der inkrementierte Zeiger wird in dem entsprechenden Register 80 für den nächsten Schreibzyklus gespeichert. Die Register 83 werden durch die Service-Zeiger-Steuereinheit 93 für die derzeit bediente entsprechende Programmkomponente gewählt.
- In diesem Beispiel wird angenommen, dass der Start- und der Endzeiger 16-Bit- Zeiger sind. Die Register 83 liefern 16-Bit-Schreib- oder Head-Zeiger. 16-Bit-Zeiger Werden gewählt um die Anwendung von 16-Bit oder 8 Bit-Bussen für die Ladung der Start- und Endzeiger in den Registern 87 und 88 zu erleichtern. Der Speicher 18 hat andererseits 18 Bit-Adressen. Die 18-Bit-Schreibadressen werden durch Verknüpfung der beiden höchstwertigen Bit der Startzeiger zu den 16 Bit-Headzeigern gebildet, mit den Startzeiger-Bit an den Stellen des höchstwertigen Bit der kombinierten 18 Bit-Schreibadresse. Die Startzeiger werden durch die jeweiligen Register 87 zu der Servicezeiger-Steuereinheit 93 geliefert. Die Servicezeiger-Steuereinheit analysiert die höherwertigen Bit des Startzeigers von den in den Registern 87 gespeicherten Startzeigern und ordnet diese Bit dem 16 Bit-Headzeiger-Bus zu. Dies ist durch den Bus 96 dargestellt, der mit dem Headzeigerbus kombiniert ist, der von dem Multiplexer 85 ausgeht und in Fig. 5 durch die fetten oder voll ausgezogen dargestellten Pfeile dargestellt ist.
- In Fig. 5 stellen die obere, die mittlere und die untere Reihe von Kästen die Bit eines Startzeigers, eine Adresse bzw. einen Kopf- oder Endzeiger dar. Die höher numerierten Kästen bezeichnen die Stellen der höherwertigen Bit. Die Pfeile zeigen an, von welchen Bitstellen der Start- oder Kopf-Endzeiger die entsprechenden Bit einer Adresse abgeleitet werden. In dieser Ableitung stellen die voll ausgezogenen schwarzen Pfeile den eingeschwungenen Betrieb dar.
- Auf ähnliche Weise werden Speicher-Lesezeiger oder Endzeiger durch die Addierstufe 79 und die Service-Endregister 92 erzeugt. Es gibt ein Service-Endregister für jede denkbare Programmkomponente. Ein Lese- oder Endzeigerwert wird in einem Register 92 gespeichert und während eines Speicher-Lesezyklus dem Adressenmultiplexer 105 zugeführt. Der Endzeiger wird außerdem der Addierstufe 79 zugeführt, wo er um eine Einheit inkrementiert wird, und der inkrementierte Zeiger wird in dem entsprechenden Register 92 für den nächsten Lesezyklus gespeichert. Die Register 92 werden durch die Servicezeiger-Steuereinheit 93 für die derzeit bediente entsprechende Programmkomponente gewählt.
- Die Register 92 liefern 16 Bit-Endzeiger. 18 Bit-Leseadressen werden durch Verknüpfung der beiden höchstwertigen Bit der Startzeiger zu den 16 Bit-Endzeigern gebildet, mit den Startzeiger-Bit in den Stellen mit den höchstwertigen Bit der kombinierten 18 Bit-Schreibadresse. Die Servicezeiger-Steuereinheit analysiert die höherwertigen Bit der Startzeiger aus den in den Registern 87 gespeicherten Startzeigern und ordnet diese Bit dem 16 Bit-Endzeigerbus zu. Das ist durch den Bus 94 dargestellt, der mit dem Endzeigerbus aus dem Multiplexer 90 kombiniert wird.
- Daten werden in dem Speicher 18 bei der berechneten Adresse gespeichert. Nach der Speicherung eines Datenbyte wird der Kopfzeiger um eins inkrementiert und für diese Programmkomponente mit dem Endzeiger verglichen. Wenn sie gleich sind, werden die höherwertigen Bit des Kopfzeigers durch die niederwertigeren 14 Bit des Startzeigers ersetzt, und die Nullen werden an den unteren beiden Bitstellen des Kopfzeigerteils der Adressen plaziert. Das ist in Fig. 5 durch die gestrichelten Pfeile zwischen den Startzeigern und den Adressen dargestellt. Dieser Betrieb ist dargestellt durch den Pfeil 97, der von der Servicezeiger-Steuereinheit 93 zu dem Kopfzeigerbus von dem Multiplexer 85 zeigt. Es wird angenommen, dass die Anwendung der 14 niederwertigeren Bit der Startzeiger Vorrang haben gegenüber den Kopfzeigerbit. Der Ersatz der Kopfzeigerbit durch die niederwertigeren Startzeigerbit in der Adresse für diesen einen Schreibzyklus bewirkt, dass der Speicher den durch die oberen zwei Startzeigerbit bezeichneten Speicherblock durchgeht (scroll), und so die Neuprogrammierung der Schreibadressen bei dem Start jedes Paketes auf eine einzige Speicherstelle in einem Block vermeidet.
- Wenn der Kopfzeiger immer gleich dem Endzeiger ist (dient zur Anzeige, wo Daten von dem Speicher 18 gelesen werden müssen), wird ein Signal zu dem Unterbrechungsabschnitt des Mikroprozessors gesendet und zeigt an, dass ein Absturz (crash) eines Kopfzeigers stattgefunden hat. Ein weiteres Schreiben in den Speicher 18 aus diesem Programmkanal wird gesperrt, bis der Mikroprozessor den Kanal wieder freigibt. Dieser Fall ist sehr selten und sollte im Normalbetrieb nicht auftreten.
- Daten werden auf Anforderung der jeweiligen Signalprozessoren aus dem Speicher 18 bei durch die Addierstufe 79 und die Register 92 berechneten Adressen zurückgewonnen. Nach dem Lesen eines Byte von gespeicherten Daten wird der Endzeiger um eine Einheit inkrementiert und mit dem Endzeiger für diesen logischen Kanal in der Servicezeiger-Steuereinheit 93 verglichen. Wenn die Abschluß- und Endzeiger gleich sind, dann werden die höherwertigen Bit des Endzeigers durch die geringerwertigen 14 Bit des Startzeigers ersetzt, und Nullen werden in den beiden geringerwertigeren Bitstellen des Endzeigerteils der Adressen plaziert. Das ist durch den Pfeil 95 dargestellt, der von der Steuereinheit 93 ausgeht und zu dem Endzeigerbus von dem Multiplexer 90 zeigt. Wenn der Endzeiger nun gleich dem Kopfzeiger ist, dann wird der jeweilige Speicherblock als leer definiert, und es werden keine weiteren Byte zu dem zugehörigen Signalprozessor gesendet, bis mehr Daten von der FEC für diesen Programmkanal empfangen werden. Der tatsächliche Ersatz der Kopf- oder Endzeigerteile der jeweiligen Schreib- oder Leseadressen durch die niederwertigeren 14 Bit des Startzeigers kann durch ein geeignetes Multiplexing oder die Anwendung von drei Zustands-Zusammenschaltungen erfolgen.
- In zusätzlichen Paketen übertragene Daten sind im allgemeinen Adressen/Telefonbuch-, Header- oder Steuerinformationen und werden dadurch etwas anders als die Programmkomponentendaten verarbeitet. Daten in den zusätzlichen Paketen enthalten Informationen, die benötigt werden, um die notwendigen Speicherbereiche für die jeweiligen Programmkomponenten und jegliche darin enthaltenen Anwendungen zu bilden. Somit wird den zusätzlichen Paketen ein Vorzug gegeben. Es sind zwei Serviceblöcke für jede Komponente vorgesehen. Jeder Block enthält eine acht-Bit sequentielle Adresse oder Speicherstellen für 256 Datenbyte. Jeder Block enthält eine Gesamtadresse mit achtzehn Bit, die in Fig. 6 dargestellt ist. Die acht LSB's der Adresse werden von einem sequentiellen Zähler geliefert. Das neunte Bit wird von der CS oder das Verwürfelungs-Schlüsselbit von dem Transportpräfix geliefert. Das zehnte bis zwölfte Bit werden aufgrund der besonderen SCID's für die Programmdetektion erzeugt. Dieses Beispiel nimmt an, dass das System Mittel für die Verarbeitung und Detektion von fünf Programmkomponenten (einschließlich Programmführer) oder Servicediensten aufweist. Es gibt somit fünf SCID's, die in den jeweiligen programmierbaren SCID-Registern 13 programmiert sind, und fünf SCID-Komparatoren 15. Die fünf Komparatoren enthalten jeder eine Ausgangsklemme, die einer Programmkomponente zugeordnet ist. Die fünf möglichen Programme, die zu den fünf Komparator-Ausgangsklemmen gehören, sind jeweils drei Bit-Codes zugeordnet, wobei drei Bit die geringste Zahl von Bit ist, die fünf Zustände darstellen kann. Die Drei-Bit-Codes werden als die zehnten bis zwölften Bit der Zusatzpaketadressen eingefügt. Es wird angenommen, dass die SCID's für fünf jeweilige Programmkomponenten programmierbaren Registern zugeordnet sind, die willkürlich mit 1-5 nummeriert sind. Die Drei-Bit-Codes der Komponenten, die den programmierbaren Registern 1-5 zugeordnet sind, sind 000, 001, 010, 011 bzw. 100. Abhängig davon, welche Programmkomponente derzeit detektiert wird, werden der Drei-Bit-Code für das programmierbare Register, das die derzeitige Programmkomponente SCID enthält, in die zehnte bis zwölfte Bitstelle in der Speicher- Schreibadresse eingefügt.
- Die sechs höchstwertigen Bit der zusätzlichen 18-Bit-Adressen werden von dem Mikroprozessor gemäß konventionellen Speicherverwaltungslösungen geliefert.
- Fig. 7 zeigt eine beispielhafte Schaltung zur Erzeugung von zusätzlichen Speicheradressen. Fig. 7 enthält ein Präfix-Register 125 für die Erfassung des Präfix-Bit CS, das dem Mikroprozessor 19 zugeführt wird. Die fünf Steuerleitungen von dem SCID- Detektor 15 werden einem Konverter 126 von fünf Steuerleitungen auf drei Bit zugeführt, der ein einfacher sogenannter Boolean-Logikoperator sein kann. Die drei durch den Konverter 126 erzeugten Bit werden dem Mikroprozessor 19 zugeführt, der jeweils 10 höchstwertige Bit (MSB)-Teile von Zusatzadressen zusammensetzt. Bei der Detektion eines Zusatzpakets wird der 10-MSB-Adressenteil dem MSB-Teil einer der Banken von Registern 128 zugeführt. Der 8-LSB-Teil des jeweiligen Registers 128 wird auf einen vorbestimmten Wert gesetzt, im allgemeinen null, zu Beginn jedes Zusatzpakets. Der 8-LSB-Teil wird an den 10-MSB-Teil angehängt und einem Eingangsanschluß des 10-zu-1-Multipelxers 129 zugeführt. Der 8-LSB-Teil der jeweiligen von dem Multiplexer 129 gelieferten Adressen wird einer Addierstufe 130 zugeführt, wo der 8-LSB-Adressenwert um eine Einheit inkrementiert und über einen weiteren Multiplexer 127 in dem 8-LSB-Teil des Registers 128 über einen weiteren Multiplexer 127 zurückgeführt wird. Der inkrementierte LSB-Teil (der sein MSB-Teil ist) dient als die nächstfolgende Adresse für das jeweilige Zusatzpaket. Die Multiplexer 127 und 129 werden durch die DMA-Steuereinheit 98 für die Wahl des laufenden Speicherblocks für Adressen gesteuert. Es sei bemerkt, dass in einer alternativen Anordnung des uPC 19 wenigstens einen Teil der Zusatzadressen bilden kann.
- Zusatzpakete werden im allgemeinen unabhängig verarbeitet, und vollständige Zusatzpaket-Nutzdaten werden im allgemeinen in einen Speicher geladen, bevor sie benutzt werden können. An sich wird der Speicherblock, der für das Schreiben eines laufenden Zusatzpakets darin adressiert wird, normalerweise nicht gleichzeitig für Lese- und Schreibzwecke adressiert. Daher können dieselben Register für die Lese- und Schreibadressierung benutzt werden. Sobald ein Zusatzpaket in einem entsprechenden Speicherblock gespeichert ist, wird der 8-LSB-Teil zur Vorbereitung des Datenauslesens auf die vorbestimmte Startadresse zurückgesetzt. In einer alternativen Anordnung kann eine Parallelbank von Registern, Multiplexern und eine Addierstufe ähnlich zu den Bauteilen 127-130 zur Erzeugung von Leseadressen konfiguriert werden. Diese Leseadressen können mit einem weiteren Multiplexer in Kaskadenverbindung mit dem Multiplexer 129 zeitgemultiplext werden.
- Die Speicher-Lese/Schreib-Steuerung erfolgt durch die Servicezeiger-Steuereinheit und die Bauteile 93 und 94 für den direkten Speicherzugriff DMA (direct memory access). Der DMA wird zur Abbildung von Lese- und Schreibzyklen programmiert. Die Zuordnung ist abhängig davon, ob der FEC 12 in den Speicher zu schreibende Daten liefert oder nicht. Schreibvorgänge für FEC-Daten haben Vorrang, damit keine Signalkomponenten-Daten verlorengehen. In der in Fig. 4 dargestellten beispielhaften Vorrichtung gibt es vier Typen der Vorrichtung, die Zugriff zu dem Speicher bewirken können. Das sind die (nicht dargestellte) Smart Card, der FEC 12 (genauer der Entschlüsseler 16), der Mikroprozessor 19 und die Anwendungsgeräte wie die Audio- und Videoprozessoren. Der Speicherkonflikt wird in der folgenden Weise behandelt. Der DMA bewirkt entsprechend den Datenanforderungen von den verschiedenen, oben aufgeführten Verarbeitungsbauteilen, eine Zuordnung von Speicherblöcken zu jeweiligen Programmkomponenten. Der Zugriff zu dem Speicher erfolgt in Zeitschlitzen von 95 ns, während der ein Datenbyte aus dem Speicher 18 gelesen oder in diesen geschrieben wird. Es gibt zwei Hauptmodi für die Zugriffszuordnung, bezeichnet mit "FEC Providing Data" bzw. "FEC Not Providing Data". Für jeden dieser Modi sind die Zeitschlitze in der folgenden Weise zugeordnet und der Priorität nach geordnet, unter Annahme einer maximalen FEC-Datenrate von 5 MByte/Sekunde oder ein Byte für jede 200 ns. Diese sind:
- FEC Providing Data (FEC liefert Daten)
- 1) Schreiben von FEC-Daten,
- 2) Anwendungsgerät Lesen/Mikroprozessor Lesen/Schreiben,
- 3) Schreiben von FEC-Daten,
- 4) Mikroprozessor Lesen/Schreiben
- und für
- FEC Not Providing Data (FEC liefert keine Daten)
- 1) Smart Card Lesen/Schreiben,
- 2) Anwendungsgerät Lesen/Mikroprozessor Lesen/Schreiben,
- 3) Smart Card Lesen/Schreiben,
- 4) Mikroprozessor Lesen/Schreiben.
- Da das Schreiben der FEC-Daten nicht verschoben werden kann, muß der FEC (oder genauer der Entschlüsseler) bei der Lieferung der Daten garantiert während jedes Intervalls von 200 ns Zugriff zu dem Speicher haben. Alternierende Zeitschlitze werden gemeinsam durch die Anwendungsgeräte und den Mikroprozessor benutzt. Wenn für die Anforderungsgeräte keine Daten verfügbar sind, benutzt der Mikroprozessor die Anwendungs-Zeitschlitze.
- Die Steuereinheit 93 kommuniziert mit dem SCID-Detektor, um zu ermitteln, welcher der jeweiligen Start-, Kopf- und Endzeiger-Register Speicherzugriff für die Schreiboperationen haben soll. Die Steuereinheit 93 kommuniziert mit dem DMA, um zu ermitteln, welcher der Start-, End- und Abschlußregister Speicherzugriff für die Lesevorgänge haben soll. Der DMA 98 steuert die Wahl der entsprechenden Adressen und Daten durch die Multiplexer 99, 104 und 105.
- Eine bevorzugte alternative Schaltung für die Inkrementierung der Speicheradressen ist in Fig. 8 dargestellt. Diese Schaltung kann in der Vorrichtung von Fig. 4 oder Fig. 7 benutzt werden. Fig. 8 zeigt die Durchführung für die Inkrementierung des Abschlußzeigers gemäß Fig. 4. Bei dem Beginn eines Pakets wird der Zeiger in dem zugehörigen Register 92A der Addierstufe 79A zugeführt, wo er um 1 inkrementiert wird. Anstelle der Speicherung der inkrementierten Abschlußzeiger in den Registern 92A von Fig. 8 (92 von Fig. 4) werden inzwischen inkrementierte Zeigerwerte nacheinander in einem Arbeitsregister 107 gespeichert. Nachdem der letzte Zeigerwert für ein Paket des Signals erzeugt worden ist, wird der aktualisierte Zeiger in dem Register 107 zu dem zu dem Paket SCID gehörenden Register 92A übertragen.
- Es ist nicht ungewöhnlich, dass Daten in einem Speicherpuffer weggelassen werden müssen. Zum Beispiel kann ein Teilpaket gespeichert sein, wenn ein Systemfehler oder eine Datenunterbrechung auftritt. Um Speicherplatz einzusparen, erfolgt das Weglassen der Daten einfach durch Überschreiben des Teilpakets der Daten. Das Überschreiben dieser Daten erfolgt durch Rücksetzen des jeweiligen Zeigers auf den Wert, den er zu Beginn des Pakets aufgewiesen hat. Ein derartiges Rücksetzen erfolgt durch Nicht-Übertragung des Wertes in dem Register 107 zu dem Zeigerregister, d. h. dadurch, dass nichts getan wird.
- Es ist vorteilhaft, Medium-Fehlercodes in den Strom des Videokomponentensignals einzufügen, wenn Pakete verlorengegangen sind, damit der Videosignal- Dekomprimierer die Dekomprimierung aussetzt, bis ein bestimmter Signaleingabepunkt in dem Datenstrom auftritt. Es ist nicht praktikabel, vorauszusagen, wo und in welchem Videopaket der nächste Eingangspunkt auftreten kann. Um den nächsten Eingabepunkt möglichst schnell zu finden, ist es notwendig, einen Medium- Fehlercode in das erste Videopaket nach der Detektion einzufügen, dass ein Paket verlorengegangen ist. Die Schaltung von Fig. 4 plaziert einen Medium-Fehlercode zu Beginn jedes Videopakets und entfernt dann den Medium-Fehlercode in den jeweiligen Paketen, wenn es keinen Verlust eines vorangehenden Pakets gibt. Der Medium-Fehlercode wird in die ersten M Adressenstellen des Speichers eingefügt, die für die laufenden Videopaket-Nutzdaten reserviert sind, durch Schreiben in den Speicher 18 für M Schreibzyklen, bevor die Video-Nutzdaten von dem Entschlüsseler ankommen. Gleichzeitig wird der Multiplexer 99 durch den DMA 98 veranlaßt, den Medium-Fehlercode von der Quelle 100 dem I/O-Speicher 18 zuzuführen. M ist einfach die ganze Zahl von Speicherstellen, die für die Speicherung des Medium- Fehlercodes benötigt werden. Unter der Annahme, dass der Speicher Bytes mit 8 Bit speichert und der Medium-Fehlercode aus 32 Bit besteht, wird M gleich 4.
- Die Adressen für das Laden des Medium-Fehlercodes in den Speicher werden von den jeweiligen Videokomponenten-Serviceregistern 83 über den Multiplexer 82 und den Multiplexer 85 geliefert. Es sei bemerkt, dass die ersten M Adressen, die von den Zeigerregister 83 zum Laden des Medium-Fehlercodes in die Speicherstellen geliefert werden, die anderenfalls mit Videokomponenten-Daten geladen werden, einfach die nächsten M folgenden Adressen sind, die normalerweise durch den Video-Kopfzeiger erzeugt würden. Diese selben Adressen werden einem Verzögerungselement 84 mit M Stufen zugeführt, so dass, unmittelbar nachdem das letzte Byte des Medium-Fehlercodes in dem Speicher 18 gespeichert worden ist, die erste der M Adressen am Ausgang des Verzögerungselementes 84 verfügbar ist.
- Das Timing des Ladens des Medium-Fehlercodes in den Speicher fällt mit der Ermittlung eines verlorengegangenen Pakets zusammen. Das Laden des Medium- Fehlercodes, während die Ermittlung des Paketverlustes erfolgt, stellt keine zusätzliche Timing-Anforderung an die Verarbeitung des Signalstroms.
- Wenn ein Paketverlust detektiert wird, wird die Videokomponente des laufenden Pakets in dem Speicher 18 gespeichert, beginnend bei der nächsten oder (M + 1)-ten Adressenstelle des Speicherblocks für diese Komponente. Das wird dadurch erreicht, dass der Multiplexer 85 veranlasst wird, weiterhin unverzögerte Kopfzeiger von dem entsprechenden Register 83 zu übertragen. Wenn alternativ kein Paketverlust detektiert wird, werden die ersten M Byte der Videokomponente in dem laufenden Paket in den Speicherplätzen gespeichert, in denen der Medium-Fehlercode unmittelbar vorher gespeichert war. Das wird erreicht durch die Servicezeiger- Steuereinheit, die den Multiplexer 85 veranlasst, die verzögerten Kopfzeiger für M Schreibzyklen von dem Verzögerungselement 84 zu übertragen. Am Ende der M Schreibzyklen bewirkt die Servicezeiger-Steuereinheit 93, dass der Multiplexer wieder unverzögerte Kopfzeiger überträgt. Wenn der Multiplexer auf nicht-verzögerte Zeiger zurückschaltet, entspricht der nächste nicht-verzögerte Zeiger der (M + 1)-ten Adresse.
- Die Detektion eines Paketfehlers oder Verlustes erfolgt durch einen Fehlerdetektor 101, der auf die CC- und HD-Daten des laufenden Pakets anspricht. Der Detektor 101 prüft den Kontinuitätszählwert CC in dem laufenden Paket, um zu ermitteln, ob er von dem CC des vorangehenden Pakets um eine Einheit abweicht. Zusätzlich wird das TOGGLE-Bit in dem laufenden Paket geprüft, um zu ermitteln, ob es eine Änderung gegenüber dem vorangehenden Paket erfahren hat. Wenn der CC-Wert inkorrekt ist, wird der Zustand des TOGGLE-Bit geprüft. Abhängig davon, ob eines oder beide der CC- und TOGGLE-Bit fehlerhaft sind oder bzw. sich geändert haben, werden ein erster und ein zweiter Modus der Fehlerabhilfe eingeleitet. In dem zweiten Modus, ausgelöst durch den fehlerhaften CC und das geänderte TOGGLE-Bit, bewirkt das System ein Zurücksetzen zu einem Paket mit einem Bildschicht-Header. In dem ersten Modus, wo nur der CC fehlerhaft ist, bewirkt das System ein Rücksetzen auf ein Paket mit einem Scheiben-Startcode. (Eine Scheibenschicht ist ein Untersatz von komprimierten Daten in einem Vollbild). In dem ersten und in dem zweiten Modus wird der in den Speicher geschriebene Medium-Fehlercode beibehalten, um den Dekomprimierer zu warnen, den Ersatz- oder Hilfsvorgang einzuleiten.
- Abhängig von den besonderen Ausführungen eines bestimmten Empfängers kann es nützlich sein oder auch nicht, Medium-Fehlercodes in unterschiedliche Signalkomponenten einzufügen, wenn jeweilige Komponenten-Transportpakete verlorengegangen sind. Zusätzlich kann es vorteilhaft sein, unterschiedliche Medium- Fehlercodes für unterschiedliche Formate von Signalkomponenten oder Komprimiervorgängen zu benutzen. Somit können eine oder mehrere Quellen für einen Medium- Fehlercode benötigt werden.
- Fig. 9 zeigt ein beispielhaftes Flußdiagramm des Verfahrens für den Zugriff zu dem DMA-Speicher 98. Die DMA spricht über die Detektion von SCID's {200} auf die Detektion oder die Nicht-Detektion eines empfangenen Pakets an. Wenn eine SCID detektiert worden ist und die Anwesenheit von in den Speicher zu schreibenden Daten von dem Entschlüsseler 16 anzeigt, wird ein Byte von Programmdaten von dem Entschlüsseler in den Pufferspeicher 18 geschrieben {201}. Der Speicherblock, in den es geschrieben wird, wird durch den Prozessor 93 aufgrund des laufenden SCID bestimmt. Als nächstes ermittelt die DMA {202}, ob einer der Programmkomponenten-Prozessoren, einschließlich der Smart Card und des uPC, Daten oder einen Lese/Schreib (R/W)-Zugriff zu dem Speicher 18 anfordert. Wenn auf der DMA keine Datenanforderungen erfolgen, kehrt der Vorgang zum Schritt {200} zurück. Wenn eine Daten-R/W-Anforderung erfolgt ist, ermittelt die DMA {203} die Priorität der Anforderung. Das erfolgt durch ein konventionelles Unterbrechungsprogramm oder alternativ durch einen sequentiellen Byte-Service in einer willkürlichen Reihenfolge dieser Daten anfordernden Programmprozessoren. Es wird zum Beispiel angenommen, dass eine willkürliche Reihenfolge der Zugriffpriorität Video, Audio I, Audio II, Smart Card und uPC ist. Es wird außerdem angenommen, dass nur Video, Audio II und uPC einen Speicherzugriff anfordern. Während des laufenden Betriebs des Schritts {203} wird ein Videobyte von dem Speicher gelesen. Während des nächsten Betriebs des Schritts {203} wird ein Byte von Audio II von dem Speicher gelesen, und während des nächsten, darauffolgenden Auftretens des Schritts {203} wird ein Byte von uPC-Daten in den Speicher 18 geschrieben oder aus diesem gelesen, undsoweiter. Es sei bemerkt, dass die Adresse für den Zugriff zu der Smart Card und den uPC durch die Smart Card bzw. den uPC geliefert wird, dass jedoch Adressen für Video, Audio und Programmführer von der Anordnung der Adressenzeiger (80-93) verfügbar sind.
- Wenn der Prioritätszugriff gebildet ist {203}, wird der notwendige Programmprozessor mit einem Byte von Daten bedient {204}, die in den Speicher 18 geschrieben oder aus diesem gelesen werden. Als nächstes wird ein Datenbyte von dem Entschlüsseler 16 in den Speicher geschrieben {205}. Es erfolgt eine Prüfung {206}, um zu ermitteln, ob der uPC einen Zugriff anfordert. Wenn der uPC einen Zugriff anfordert, wird er mit einem Datenbyte bedient {207}. Wenn der uPC keinen Zugriff anfordert, springt der Vorgang zum Schritt {202}, um zu ermitteln, ob einer der Programmprozessoren einen Zugriff anfordert. Auf diese Weise wird den ankommenden Daten immer in jeder zweiten Speicherzugriffsperiode ein Zugriff garantiert, und die dazwischen liegenden Speicherzugriffsperioden werden unter den Programmprozessoren verbreitet.
- Wenn gegenwärtig keine Daten von dem Entschlüsseler 16 verfügbar sind, d. h. ein SCID derzeit nicht detektiert wird, folgt der Vorgang {208-216}. Zunächst {208} wird die Smart Card geprüft, um zu ermitteln, ob sie einen Speicherzugriff anfordert. Wenn das der Fall ist, bekommt sie einen Speicherzugriff von einem Byte {209}, sonst erfolgt eine Prüfung {210}, um zu ermitteln, ob einer der Programmprozessoren einen Speicherzugriff anfordert. Wenn eine Anforderung für R/W-Daten erfolgt ist, ermittelt die DMA {211} die Priorität der Anforderung. Der jeweilige Prozessor wird mit einem Lese- oder Schreibzyklus zu dem Speicher mit einem Byte bedient. Wenn eine R/W-Datenanforderung durch die Programmprozessoren nicht erfolgt ist, springt der Vorgang zum Schritt {213}, wo ein Test erfolgt, um zu ermitteln, ob die Smart Card einen Speicherzugriff anfordert. Wenn das der Fall ist, wird sie mit einem Speicherzugriff von einem Byte bedient {216}, sonst springt der Vorgang zum Schritt {200}.
- Es sollte bemerkt werden, dass in dem vorliegenden, bevorzugten Beispiel, wenn man sich in den Modus "FEC Not Providing Data" befindet, der Smart Card einen Zwei-zu-Eins-Zugriff über allen anderen Programmprozessoren geliefert wird. Diese Priorität wird in einer Zustandsvorrichtung in der DMA-Vorrichtung programmiert und unterliegt einer Änderung durch den uPC. Wie früher erwähnt, ist das System zur Bildung interaktiver Dienste oder Serviceleistungen vorgesehen, und der uPC 19 wird durch interaktive Daten gesteuert, um wenigstens teilweise den interaktiven Vorgang durchzuführen. In dieser Rolle benutzt der uPC 19 den Speicher 18 sowohl für die Anwendungsspeicherung und als Arbeitsspeicher. In diesen Fällen kann der System-Operateur die Priorität des Speicherzugriffs ändern, um dem uPC 19 einen Speicherzugriff mit höherer Häufigkeit zu liefern. Die Neuprogrammierung der Priorität für den Speicherzugriff kann als ein Untersatz von interaktiven Anwendungsanweisungen enthalten sein.
- Es ist vorteilhaft, Medium-Fehlercodes in den Signalstrom mit der Videokomponente einzufügen, wenn Pakete verlorengegangen sind, damit der Videosignal- Dekomprimierer die Dekomprimierung einstellt, bis ein bestimmter Signaleingabepunkt in dem Datenstrom auftritt. Es ist nicht praktikabel, vorauszusagen, wo und in welchem Videopaket der nächste Eingabepunkt auftritt. Um den nächsten Eingabepunkt möglichst schnell zu finden, ist es notwendig, einen Medium-Fehlercode zu Beginn des ersten Videopakets nach der Detektion einzufügen, dass ein Paket verlorengegangen ist. Die Schaltung von Fig. 4 plaziert einen Medium-Fehlercode zu Beginn jedes Videopakets und beseitigt dann den Medium-Fehlercode in jeweiligen Paketen, wenn kein Verlust eines vorangehenden Pakets vorliegt. Der Medium- Fehlercode wird in die ersten M Speicheradressenplätze eingefügt, die für das laufende Videopaket-Nutzsignal reserviert sind, und zwar durch Schreiben in den Speicher 18 für M Schreibzyklen, bevor die Video-Nutzdaten von dem Entschlüsseler ankommen. Gleichzeitig wird der Multiplexer 99 durch die DMA 98 so gesteuert, dass er den Medium-Fehlercode von der Quelle 100 zu dem I/O-Speicher 18 liefert. M ist einfach die ganze Zahl von Speicherplätzen, die zur Speicherung des Medium- Fehlercodes benötigt werden. Unter der Annahme, dass der Speicher Byte mit 8 Bit speichert und der Medium-Fehlercode 32 Bit aufweist, wird M gleich 4.
- Die Adressen zum Laden des Medium-Fehlercodes in den Speicher werden durch die jeweiligen Videokomponenten-Serviceregister 83 über den Multiplexer 82 und den Multiplexer 85 geliefert. Es wird bemerkt, dass die ersten M Adressen, die von dem Zeigerregister 83 zum Laden des Medium-Fehlercodes in die Speicherplätze geliefert werden, die anderenfalls mit den Videokomponenten-Daten geladen würden, einfach die nächsten M sequentiellen Adressen sind, die normalerweise durch den Video-Kopfzeiger erzeugt würden. Diese selben Adressen werden in ein Verzögerungselement 84 mit M Stufen eingegeben, so dass, unmittelbar nachdem das letzte Byte des Medium-Fehlercodes in dem Speicher 18 gespeichert ist, die erste der M Adressen am Ausgang des Verzögerungselements 84 verfügbar ist.
- Die Detektion eines Paketfehlers oder Paketverlustes erfolgt durch einen Fehlerdetektor 101, der durch die CC- und HD-Daten des laufenden Pakets gesteuert wird. Der Detektor 101 prüft den Kontinuitätszählwert CC in dem laufenden Paket, um festzustellen, ob er von dem CC des vorangehenden Pakets um eine Einheit abweicht. Zusätzlich wird das TOGGLE-Bit in dem laufenden Paket geprüft, um zu ermitteln, ob es den richtigen Zustand für das jeweilige Videovollbild aufweist. Wenn der CC-Wert falsch ist, wird der Zustand des TOGGLE-Bit geprüft. Abhängig davon, ob einer oder beide von dem CC- und TOGGLE-Bit fehlerhaft sind, werden ein erster oder ein zweiter Modus der Fehlerabhilfe eingeführt. In dem ersten Modus, wo nur das CC fehlerhaft ist, wird das System derart gesteuert, dass es auf ein Paket mit einem Scheiben-Schicht-Header (slice layer header) rücksetzt. (Eine Scheibenschicht ist ein Untersatz von komprimierten Daten in einem Vollbild.) In dem zweiten Modus, der ausgelöst wird, wenn das CC- und das TOGGLE-Bit fehlerhaft sind, bewirkt das System eine Rücksetzung auf ein Paket mit einem Bild-Schicht-Header (picture layer header). In dem ersten und in dem zweiten Modus wird der in den Speicher geschriebene Medium-Fehlercode in dem jeweiligen Nutzsignal beibehalten, um den Dekomprimierer zu warnen, den Behebungsvorgang einzuführen.
- Wenn ein Paketverlust detektiert wird, wird die Videokomponente des laufenden Pakets in den Speicher 18 gespeichert, beginnend bei dem nächsten oder dem (M + 1)- ten Adressenplatz. Das wird dadurch erreicht, dass der Multiplexer 85 weiterhin unverzögerte Kopfzeiger von dem jeweiligen Register 83 überträgt. Alternativ werden, wenn kein Paketverlust detektiert wird, die ersten M Byte der Videokomponente in dem laufenden Paket in den Speicherplätzen gespeichert, in denen der Medium- Fehlercode unmittelbar davor gespeichert war. Das erfolgt dadurch, dass die Steuereinheit für den Servicezeiger bewirkt, dass der Multiplexer 85 die verzögerten Kopfzeiger für M Schreibzyklen von dem Verzögerungselement 84 überträgt. Am Ende der M Schreibzyklen bewirkt die Servicezeiger-Steuereinheit 93, dass der Multiplexer wieder unverzögerte Kopfzeiger überträgt. Wenn der Multiplexer auf die nicht-verzögerten Zeiger zurückschaltet, entspricht der nächste nicht-verzögerte Zeiger der (M + 1)-ten Adresse.
- Abhängig von den jeweiligen Aufbauten eines bestimmten Empfängers kann es nützlich sein oder auch nicht, Medium-Fehlercodes in verschiedene Signalkomponenten einzufügen, wenn jeweilige Komponenten-Transportpakete verlorengegangen sind. Zusätzlich kann es vorteilhaft sein, unterschiedliche Medium-Fehlercodes für unterschiedliche Signalkomponenten-Formate oder Komprimiervorgänge anzuwenden. Dann werden eine oder mehrere Quellen für einen Medium-Fehlercode benötigt.
- Fig. 10 zeigt eine beispielhafte Vorrichtung zur Detektierung von Paketen, die Informationen für einen bedingten Zugriff oder MPEG-Startcodes enthalten (Dekoder 30 von Fig. 3). Ob der Dekoder 30 veranlasst wird, Berechtigungs-Nutzsignale oder MPEG-Startcodes zu detektieren, ist abhängig von dem derzeit empfangenen SCID. In Fig. 10 wird angenommen, dass die von den Entschlüsseler 16 gelieferten Daten aus Byte mit 8 Bit bestehen und in Paketen ausgerichtet sind. Das heißt, das erste Byte des Berechtigungs-Nutzsignals oder das erste Byte eines MPEG-Startcodes ist genau mit dem Beginn eines Paket-Nutzsignals ausgerichtet, so dass für die Detektierung spezifischer Header- oder Start-Codewörter ihre Lage in dem Bit/Byte-Strom genau bekannt ist. Daten von dem Entschlüsseler 16 werden einem Register 250 für 8 Bit zugeführt, das einen 8-Bitparallelen Ausgangsanschluß aufweist, der jeweils mit den ersten Eingangs-Anschlüssen eines Komparators 254 verbunden ist, der zum Beispiel als eine Bank von acht EXCLUSIV-NOR (XNOR)-Schaltungen konfiguriert ist, die jeweils Ausgangsanschlüsse aufweisen, die mit einem UND-Gatter und einem Zwischenspeicher, einem sogenannten Latch, verbunden sind. Das Latch kann ein Daten-Latch sein, das zur Zwischenspeicherung der Ergebnisse des UND- Gatters bei jedem Byteintervall ausgebildet ist.
- Ein MPEG-Startcode mit 32 Bit wird als vier Byte in einer Registerbank 265 für 8 Bit gespeichert. Berechtigungs-Kopfcodes werden als Byte mit 8 Bit in einer Bank von 16 Registern 257 für 8 Bit gespeichert. Das Laden der Registerbanken 251 und 265 wird durch den Mikroprozessor 19 und/oder die Smart Card gesteuert. Die Startcode- Register 265 werden einem Multiplexer 266 von vier auf eins zugeführt, und die Berechtigungs-Kopfregister werden einem Multiplexer 257 für sechzehn auf eins zugeführt. Ausgangsanschlüsse der Multiplexer 257 und 266 sind mit einem Multiplexer 249 von zwei auf eins verbunden. Jeweilige Ausgangsanschlüsse des Multiplexers 249 sind jeweils mit entsprechenden zweiten Eingangsanschlüssen des Komparators 254 verbunden. Es sei bemerkt, dass die Eingangs- und Ausgangsanschlüsse der Multiplexer 249, 257 und 266 Busse mit 8 Bit sind. Wenn die jeweiligen Werte an den entsprechenden Ausgangsanschlüssen des Register 215 somit dieselben sind wie die Ausgangswerte an den entsprechenden Ausgangsanschlüssen des Multiplexers 249, wird durch die Komparatorschaltung 254 ein echtes Signal oder "Wahrheitssignal" für das entsprechende Datenbyte erzeugt.
- Für die Detektion des Startcodes wird der Multiplexer 266 durch den Zähler 258 abgetastet, um die vier verschiedenen Register 265 synchron mit dem Auftreten der ersten vier Datenbyte von dem Entschlüsseler mit dem XNOR zu verbinden. Alternativ wird für eine Detektion des Berechtigungs-Nutzdaten-Headers der Multiplexer 257 durch den Zähler 258 abgetastet, um sequentiell verschiedene Register 265 mit der Komparatorschaltung zu verbinden.
- Der Ausgang der Komparatorschaltung wird einer Akkumulier- und Testschaltung 255 zugeführt. Die Schaltung 255 ermittelt, ob eine einer vorbestimmten Zahl von Byte-Übereinstimmungsbedingungen aufgetreten ist, und erzeugt, wenn das der Fall ist, ein Schreib-Freigabesignal für die Berechtigungsdaten in einem Teil der der Prüfung unterliegenden besonderen Nutzdaten. In dem vorliegenden System enthält der Berechtigungs-Nutzdaten-Header 128 Bit, angeordnet in vier Segmenten mit 32 Bit. Unterschiedliche Abonnenten müssen dann nach unterschiedlichen Kombinationen von Byte der 128 Bit Ausschau halten. Zum Beispiel kann eine Abonnentenvorrichtung dafür vorgesehen sein, eine Übereinstimmung der ersten vier Byte des Berechtigungs-Nutzdaten-Header zu bewirken. Eine andere Abonnentenvorrichtung kann dafür vorgesehen sein, eine Anpassung der zweiten vier Byte des Berechtigungs- Nutzdaten-Headers zu bewirken, usw. In jeder dieser beispielhaften Situationen ermittelt die Schaltung 255 ob für die entsprechenden vier aufeinanderfolgenden Byte eine Übereinstimmung stattgefunden hat.
- Die Vorrichtung von Fig. 10 enthält außerdem eine Schaltung (Elemente 261-263) für die Detektierung eines Berechtigungs-Nutzdaten-Header-Zustands mit alles Nullen. Die Bit der jeweils ankommenden Datenbyte werden jeweiligen Klemmen des OR-Gatters 263 für 8 Bit zugeführt. Wenn eines der Bit eine logische eins ist, erzeugt das OR-Gatter 263 einen Ausgang mit der logischen eins. Der Ausgang des OR- Gatters 263 ist mit einem Eingang eines OR-Gatters 263 mit zwei Eingängen verbunden, das einen Ausgang und einen zweiten Eingang aufweist, die mit dem Dateneingang bzw. den Q-Ausgangsklemmen eines D-Latch 261 verbunden sind. Das D-Latch wird durch die Timing-Schaltung 259 synchron mit der Ankunft der einlaufenden Datenbyte getaktet. Wenn ein Bit in einem der Datenbyte, das nach dem Rücksetzen des Latch auftritt, eine logische "1" ist, bildet das Latch 261 eine logische eins an seinem Q-Ausgang, bis der nächste Rücksetzimpuls auftritt. Der Q- Ausgang des Latch 261 ist mit einem Inverter verbunden, der immer einen Ausgangswert null bildet, wenn das Latch einen Ausgangswert mit dem Wert "1" aufweist. Wenn somit nach den 128 Bit (16 Byte) des Headers über das Register 250 gelaufen sind, ist der Ausgang des Inverters HOCH (HIGH) oder "1", dann werden die 128 Bit auf null gesetzt.
- Aufgrund der Detektion eines Ausgangswertes "1" von dem Inverter nach dem Durchlauf des Berechtigungs-Nutzdaten-Headers erzeugt die Schaltung 255 ein Daten-Schreibfreigabesignal.
- Es wurde als besonders effizient herausgefunden, das System derart zu teilen, dass der SCID-Detektor, der Entschlüsseler, die Addressierschaltung, das Filter für den bedingten Zugriff und die Smart Card-Schnittstelle alle in einer einzigen integrierten Schaltung enthalten sind. Das begrenzt die Anzahl der äußeren Wege, die zu kritischen Timing-Beanspruchungen führen können.
Claims (5)
1. Signalübertragungsprozessor mit einer Vorrichtung zur Verarbeitung von
Signalen mit zeitlich gemultiplexten Paketen von Programmkomponenten, wobei
jeweilige Pakete Nutzdaten von Programmkomponentendaten und einen Header mit
einem Programmkomponentenidentifizierer, SCID, enthalten, und wobei
Nutzdaten von jeweiligen Komponenten in gegenseitig exklusiven Teilen eines
gemeinsamen Pufferspeichers (16) gespeichert werden,
dadurch gekennzeichnet, dass
die Schaltung zur Adressierung des Pufferspeichers folgende Merkmale enthält:
eine Quelle (11) von zeitgemultiplexten Paketen,
einen SCID-Detektor (13-15), der auf jeweilige Komponentenidentifzierer in
Paket-Headern anspricht, zur Detektion von Paketen mit vorbestimmten
Programmkomponenten,
mehrere Schaltungen (79-97) für einen direkten Speicherzugriff,
eine Steuervorrichtung (98), die dafür programmiert ist, dass jeweilige
Schaltungen mit einem direkten Speicherzugriff Nutzdaten der empfangenen Pakete in
geeignete, gegenseitig exklusive Teile des gemeinsamen Pufferspeichers
aufgrund der detektierten Identifizieren geschrieben werden.
2. Vorrichtung nach Anspruch 1, wobei bestimmte der mehreren Schaltungen für
den direkten Speicherzugriff folgende Merkmale enthalten:
ein Register (87) zur Speicherung eines durch die Steuervorrichtung
gelieferten Startzeigers und
ein weiteres Register (88) zur Speicherung eines Werts für die letzte
Adresse eines jeweiligen exklusiven Teils des gemeinsamen Pufferspeichers.
3. Vorrichtung nach Anspruch 2, wobei bestimmte der mehreren Schaltungen für
den direkten Speicherzugriff ein Register (83) zur Speicherung einer laufenden
Schreibadresse enthalten und die mehreren Schaltungen für den direkten
Speicherzugriff ferner eine gemeinsame Inkrementierschaltung (80) zur Inkrementierung
jeweiliger Speicheradressen enthalten, die in jeweiligen Registern für die
Speicherung einer laufenden Schreibadresse gespeichert sind.
4. Vorrichtung nach Anspruch 3, wobei bestimmte der mehreren Schaltungen für
den direkten Speicherzugriff ein weiteres Register zur Speicherung einer
laufenden Leseadresse enthalten.
5. Vorrichtung nach Anspruch 4, wobei die mehreren Schaltungen für den direkten
Speicherzugriff ferner eine gemeinsame Inkrementierschaltung zur
Inkrementierung jeweiliger Speicheradressen enthalten, die in jeweiligen Registern zur
Speicherung einer laufenden Leseadresse gespeichert sind.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/232,789 US5521979A (en) | 1994-04-22 | 1994-04-22 | Packet video signal inverse transport system |
US08/232,787 US5475754A (en) | 1994-04-22 | 1994-04-22 | Packet video signal inverse transport processor memory address circuitry |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69529001D1 DE69529001D1 (de) | 2003-01-09 |
DE69529001T2 true DE69529001T2 (de) | 2003-10-09 |
Family
ID=26926333
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69517240T Expired - Lifetime DE69517240T2 (de) | 1994-04-22 | 1995-04-12 | Prozessor für inverse Übertragung mit Speicheradressenschaltung |
DE69529001T Expired - Lifetime DE69529001T2 (de) | 1994-04-22 | 1995-04-12 | Prozessor für inverse Übertragung mit Speicheradressenschaltung |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69517240T Expired - Lifetime DE69517240T2 (de) | 1994-04-22 | 1995-04-12 | Prozessor für inverse Übertragung mit Speicheradressenschaltung |
Country Status (13)
Country | Link |
---|---|
EP (2) | EP0971538B1 (de) |
JP (2) | JP3495454B2 (de) |
KR (2) | KR100343819B1 (de) |
CN (2) | CN1100438C (de) |
BR (1) | BR9501735A (de) |
CA (1) | CA2146472C (de) |
DE (2) | DE69517240T2 (de) |
ES (2) | ES2183468T3 (de) |
HK (1) | HK1018564A1 (de) |
MY (2) | MY115173A (de) |
PT (2) | PT971538E (de) |
RU (1) | RU2145728C1 (de) |
TR (1) | TR28547A (de) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0166935B1 (ko) * | 1994-11-23 | 1999-03-20 | 구자홍 | 엠펙2 트랜스포트 디코더 장치 |
EP0735776B1 (de) * | 1995-03-29 | 2004-01-28 | Hitachi, Ltd. | Dekoder für komprimierte und multiplexierte Bild- und Audiodaten |
US5899578A (en) * | 1995-12-25 | 1999-05-04 | Sony Corporation | Digital signal processor, processing method, digital signal recording/playback device and digital signal playback method |
JP3269768B2 (ja) * | 1996-01-16 | 2002-04-02 | 株式会社東芝 | ディジタル信号受信装置 |
EP1833251A3 (de) * | 1996-05-06 | 2012-05-02 | Irdeto Eindhoven B.V. | Durch eine Sicherheitsvorrichtung geregelter Zugriff auf Informationen |
CA2204828C (en) * | 1996-05-10 | 2004-11-23 | Ray Nuber | Error detection and recovery for high rate isochronous data in mpeg-2 data streams |
FR2752350B1 (fr) * | 1996-08-09 | 2001-06-08 | Thomson Multimedia Sa | Procede d'extraction de donnees dans un systeme de transmission cyclique et dispositif de mise en oeuvre |
CA2216573C (en) * | 1996-10-01 | 2006-03-14 | Sony Corporation | Digital tuner having ieee 1394 serial bus interface for providing a plurality of selected programs as a functional unit |
US6414726B1 (en) | 1996-11-01 | 2002-07-02 | Texas Instruments Incorporated | Device for identifying packets of digital data and a receiver for digital television signals equipped with such a device |
US6226291B1 (en) * | 1996-11-01 | 2001-05-01 | Texas Instruments Incorporated | Transport stream packet parser system |
GB2329802B (en) * | 1997-06-28 | 1999-08-18 | United Microelectronics Corp | Adaptive-selection method for memory access priority control in MPEG processor |
EP0893913A1 (de) * | 1997-07-24 | 1999-01-27 | CANAL+ Société Anonyme | Verarbeitung eines digitalen Transportstroms |
EP1000510B1 (de) * | 1997-08-01 | 2001-11-28 | Scientific-Atlanta, Inc. | Verfahren und vorrichtung zur einkapselung der zugriffsberechtigung in einem system mit bedingtem zugang |
JP3578913B2 (ja) * | 1997-09-29 | 2004-10-20 | 松下電器産業株式会社 | データ一致検出装置,及びデータ選別装置 |
JP3389843B2 (ja) * | 1997-10-17 | 2003-03-24 | 日本電気株式会社 | 情報処理装置におけるデジタル放送受信システム |
NL1007453C2 (nl) * | 1997-11-05 | 1999-05-07 | United Microelectronics Corp | Zich aanpassende kieswerkwijze voor het regelen van de geheugentoegangsprioriteit in een MPEG-processor. |
US6621817B1 (en) | 1999-07-06 | 2003-09-16 | Texas Instruments Incorporated | Transport packet parser |
EP1096714A3 (de) * | 1999-10-29 | 2003-04-09 | Matsushita Electric Industrial Co., Ltd. | Dispositif et procédé de conversion d'un contenu de données et support d'enregistrement stockant un programme de conversion d'un contenu de données |
KR100752463B1 (ko) * | 1999-11-17 | 2007-08-24 | 소니 가부시끼 가이샤 | 디지털 신호 처리 장치 및 시스템 및 확장 기능 제공 방법 |
DE10035707A1 (de) * | 2000-07-21 | 2002-01-31 | Scm Microsystems Gmbh | Digitales Aufnahme-und Weidergabeverfahren |
JP2002175266A (ja) * | 2000-09-27 | 2002-06-21 | Texas Instruments Inc | ディジタル信号プロセッサの直接メモリ・アクセス・コントローラにおけるソーティング・モードのための装置および方法 |
US6775254B1 (en) | 2000-11-09 | 2004-08-10 | Qualcomm Incorporated | Method and apparatus for multiplexing high-speed packet data transmission with voice/data transmission |
FR2819139B1 (fr) * | 2001-01-03 | 2003-03-28 | Canal Plus Technologies | Procede et dispositif de gestion d'informations dans un systeme de communication interactif |
US6868125B2 (en) * | 2001-11-29 | 2005-03-15 | Thomson Licensing S.A. | Transport stream to program stream conversion |
JP2003333024A (ja) * | 2002-05-09 | 2003-11-21 | Nec Corp | 暗号化/復号化システム及びその暗号解読防止/改竄防止方法 |
US7213103B2 (en) | 2004-04-22 | 2007-05-01 | Apple Inc. | Accessing data storage systems without waiting for read errors |
US7366865B2 (en) * | 2004-09-08 | 2008-04-29 | Intel Corporation | Enqueueing entries in a packet queue referencing packets |
JP4667108B2 (ja) | 2005-04-11 | 2011-04-06 | パナソニック株式会社 | データ処理装置 |
US7523146B2 (en) | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US8495015B2 (en) | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
JPWO2007099659A1 (ja) | 2006-03-01 | 2009-07-16 | パナソニック株式会社 | データ転送装置及びデータ転送方法 |
US7797670B2 (en) | 2006-04-14 | 2010-09-14 | Apple Inc. | Mirrored file system |
US7860826B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US7657769B2 (en) | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
US7924456B1 (en) * | 2007-01-12 | 2011-04-12 | Broadbus Technologies, Inc. | Data distribution and buffering |
US7760562B2 (en) | 2008-03-13 | 2010-07-20 | Qualcomm Incorporated | Address multiplexing in pseudo-dual port memory |
CN114595105B (zh) * | 2022-05-09 | 2022-08-05 | 深圳佰维存储科技股份有限公司 | Psn唯一性设计方法、装置、可读存储介质及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4965825A (en) | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US4866770A (en) * | 1986-07-08 | 1989-09-12 | Scientific Atlanta, Inc. | Method and apparatus for communication of video, audio, teletext, and data to groups of decoders in a communication system |
US5168356A (en) | 1991-02-27 | 1992-12-01 | General Electric Company | Apparatus for segmenting encoded video signal for transmission |
US5289276A (en) | 1992-06-19 | 1994-02-22 | General Electric Company | Method and apparatus for conveying compressed video data over a noisy communication channel |
ATE283608T1 (de) * | 1992-12-09 | 2004-12-15 | Discovery Communicat Inc | Vorrichtung und verfahren zur bereitstellung von rundfunkdatendiensten |
-
1995
- 1995-04-06 CA CA002146472A patent/CA2146472C/en not_active Expired - Lifetime
- 1995-04-12 PT PT99120648T patent/PT971538E/pt unknown
- 1995-04-12 EP EP99120648A patent/EP0971538B1/de not_active Expired - Lifetime
- 1995-04-12 ES ES99120648T patent/ES2183468T3/es not_active Expired - Lifetime
- 1995-04-12 EP EP95105541A patent/EP0679028B1/de not_active Expired - Lifetime
- 1995-04-12 DE DE69517240T patent/DE69517240T2/de not_active Expired - Lifetime
- 1995-04-12 DE DE69529001T patent/DE69529001T2/de not_active Expired - Lifetime
- 1995-04-12 ES ES95105541T patent/ES2146677T3/es not_active Expired - Lifetime
- 1995-04-12 PT PT95105541T patent/PT679028E/pt unknown
- 1995-04-13 TR TR00425/95A patent/TR28547A/xx unknown
- 1995-04-19 BR BR9501735A patent/BR9501735A/pt not_active IP Right Cessation
- 1995-04-19 KR KR1019950009190A patent/KR100343819B1/ko not_active IP Right Cessation
- 1995-04-20 MY MYPI95001039A patent/MY115173A/en unknown
- 1995-04-20 MY MYPI97001721A patent/MY121258A/en unknown
- 1995-04-21 RU RU95106681A patent/RU2145728C1/ru active
- 1995-04-21 CN CN95104689A patent/CN1100438C/zh not_active Expired - Lifetime
- 1995-04-21 JP JP09722095A patent/JP3495454B2/ja not_active Expired - Lifetime
-
1997
- 1997-04-15 CN CN97110746A patent/CN1113534C/zh not_active Expired - Lifetime
-
1999
- 1999-08-12 HK HK99103497A patent/HK1018564A1/xx not_active IP Right Cessation
-
2000
- 2000-04-18 KR KR1020000020343A patent/KR100343821B1/ko not_active IP Right Cessation
-
2001
- 2001-08-02 JP JP2001235161A patent/JP3690737B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
HK1018564A1 (en) | 1999-12-24 |
EP0971538A3 (de) | 2000-07-19 |
JP2002135739A (ja) | 2002-05-10 |
RU95106681A (ru) | 1997-01-27 |
DE69517240D1 (de) | 2000-07-06 |
CN1111867A (zh) | 1995-11-15 |
KR950035437A (ko) | 1995-12-30 |
DE69529001D1 (de) | 2003-01-09 |
CN1100438C (zh) | 2003-01-29 |
PT971538E (pt) | 2003-03-31 |
MY121258A (en) | 2006-01-28 |
CA2146472A1 (en) | 1995-10-23 |
CA2146472C (en) | 2007-10-09 |
EP0679028A3 (de) | 1996-04-24 |
JPH07297855A (ja) | 1995-11-10 |
RU2145728C1 (ru) | 2000-02-20 |
KR100343819B1 (ko) | 2002-11-30 |
TR28547A (tr) | 1996-09-30 |
CN1113534C (zh) | 2003-07-02 |
PT679028E (pt) | 2000-11-30 |
JP3690737B2 (ja) | 2005-08-31 |
CN1208307A (zh) | 1999-02-17 |
DE69517240T2 (de) | 2000-10-26 |
MY115173A (en) | 2003-04-30 |
ES2183468T3 (es) | 2003-03-16 |
KR100343821B1 (ko) | 2002-07-20 |
BR9501735A (pt) | 1995-11-14 |
JP3495454B2 (ja) | 2004-02-09 |
EP0971538B1 (de) | 2002-11-27 |
EP0679028B1 (de) | 2000-05-31 |
EP0971538A2 (de) | 2000-01-12 |
EP0679028A2 (de) | 1995-10-25 |
ES2146677T3 (es) | 2000-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69529001T2 (de) | Prozessor für inverse Übertragung mit Speicheradressenschaltung | |
DE69505369T2 (de) | Informationsanordnung für bedingten zugang | |
DE69509897T2 (de) | Verfahren und gerät zur bearbeitung einer progammübersicht mit bedingtem zugang für satelliten-fernsehdienst | |
DE69422791T2 (de) | Sendung und Empfang von Programminformation | |
DE69516752T2 (de) | Paketprogrammkomponentendetektor | |
DE69708867T2 (de) | Adaptives Verfahren zur Ausgabe verschlüsselter Videoeingangsdaten wahlweise in ihrem verschlüsselten Format oder entschlüsselt | |
DE69933721T2 (de) | DMA-Steuereinheit | |
DE69523937T2 (de) | Chipkarte, signalverarbeitungsgerät und verfahren zur signalverarbeitung | |
DE69420260T2 (de) | Vorrichtung mit dynamischer virtueller dienstauswahl in einem mehrdienstkommunikationssystem | |
DE69523972T2 (de) | Medienfehlerkode-Verarbeitung, zur Anwendung bei der Dekompression digitaler Videosignalpakete | |
DE69318629T2 (de) | Übertragungsfehlerkorrektur in einem digitalen Kommunikationssystem | |
DE69506463T2 (de) | Verschlüsselungsverfahren für ein digital übertragenes Fernsehsignal | |
DE69614495T2 (de) | Demultiplexeinrichtung für ein digitales Fernsehsystem | |
DE69215973T2 (de) | Multiplexer mit Einfügung von digitalen Paketen mit verschiedenen Prioritäten in einem Übertragungskanal | |
DE69726753T2 (de) | Verfahren und gerät zur dekodierung und speicherung verschlüsselter videodaten | |
DE69811532T2 (de) | Paketfilterung | |
DE69718199T2 (de) | Verfahren zum verarbeiten eines verschlüsselten videosignals zur erzeugung eines entschlüsselten programmsignals | |
DE69935770T2 (de) | Procede de mise à jour de logiciels dans un recepteur de television utilisant des donnees enregistrees | |
DE69935342T2 (de) | Sicheres Informationsverteilungssystem unter Verwendung von Segmentverschlüsselung | |
DE69333207T2 (de) | Interaktives hausinformationssystem | |
DE69223114T2 (de) | Auswahl komprimierter Fernsehsignale aus einer Einzelkanalzuteilung auf der Basis von Zuschauercharakteristiken | |
DE69512023T2 (de) | Programmführer mit begrenzter gültigkeitsdauer für digitales fernsehsystem | |
DE69521102T2 (de) | Syntaxparser für einen Prozessor zur Videodekompression | |
DE69637230T2 (de) | Transportkodierer für einen Paketstrom und Verfahren zu dessen Betrieb | |
DE69807475T2 (de) | System und verfahren zur änderung des programmzeitschriftenformats |
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: THOMSON LICENSING, ISSY-LES-MOULINEAUX, FR |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: ROSSMANITH, M., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW. |