DE69736031T2 - Transportdekodierer für MPEG-2 - Google Patents

Transportdekodierer für MPEG-2 Download PDF

Info

Publication number
DE69736031T2
DE69736031T2 DE69736031T DE69736031T DE69736031T2 DE 69736031 T2 DE69736031 T2 DE 69736031T2 DE 69736031 T DE69736031 T DE 69736031T DE 69736031 T DE69736031 T DE 69736031T DE 69736031 T2 DE69736031 T2 DE 69736031T2
Authority
DE
Germany
Prior art keywords
transport
decoder
data
value
received
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 - Fee Related
Application number
DE69736031T
Other languages
English (en)
Other versions
DE69736031D1 (de
Inventor
Saipraisad V. Langhorne Naimpally
Joseph P. Medford O'Hara
Edwin Robert Bensalem Meyer
Robert T. Langhorne Ryan
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69736031D1 publication Critical patent/DE69736031D1/de
Application granted granted Critical
Publication of DE69736031T2 publication Critical patent/DE69736031T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/434Disassembling 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft im Allgemeinen den Datenempfang, die Verarbeitung und die Übertragung von Daten, die gemäß MPEG-2-Normen codiert sind, und insbesondere den Betrieb und die Koppelung eines Transportdecodierers, der einen Datenstrom im MPEG-2-Format handhabt.
  • HINTERGRUND DER ERFINDUNG
  • Das Hochdefinitions-Fernsehen (HDTV) macht weiterhin Fortschritte bei dem Versuch, das herkömmliche Fernsehen zu ersetzen. Dieser Weg wird durch verschiedene Firmen und Vereinigungen gebahnt, die an Normen arbeiten, um einen globalen Markt für HDTV zu schaffen.
  • Eine derartige Gruppe von Firmen ist als "Digital HDTV Grand Alliance" ("Große Allianz für digitales HDTV") bekannt, an der z. B. AT&T, David Sarnoff Research Center, Massachusetts Institute of Technology und andere beteiligt sind. Ein umfassender Überblick der Schritte, die durch diese Gruppe unternommen wurden, ist in dem Artikel von Robert Hopkins mit dem Titel "Digital Terrestrial HDTV for North America: The Grand Alliance HDTV System" dargestellt, der in IEEE Transactions on Consumer Electronics (Sommer 1994) veröffentlicht wurde. Dieser Artikel beschreibt den Hintergrund und die Grundlagen von HDTV-Systemen einschließlich der Verwendung von Programm- und Transportpaketströmen.
  • Eine Norm, die von der Grand Alliance verwendet wurde, ist die MPEG-2-Norm zum Codieren von Video- und Audio-Informationen, die von der Moving Pictures Expert Group (MPEG), ein Komitee in der Internationalen Organisation für Normung (ISO), entwickelt wurde. Akzeptierte Normen werden periodisch veröffentlicht, wie z. B. Video Section of Information Technology-Generic Coding of Moving Pictures and Associated Audio ISO/IEC 13818-2 (1995) (nachfolgend "Video-Sektion") und Systems Section of Information Technology-Generic Coding of Moving Pictures and Associated Audio ISO/IEC 13818-2 (November 1994) (nachfolgend "System-Sektion"), die beide eingeführte Normen und Formate beschreiben.
  • Die Syntax für die MPEG-2-Norm definiert verschiedene Schichten von Datensätzen, die verwendet werden, um sowohl Audiodaten als auch Videodaten zu übermitteln. Um Informationen zu übertragen, wird ein digitaler Datenstrom, der z. B. mehrere Videosequenzen darstellt, in mehrere kleinere Einheiten unterteilt und jede von diesen Einheiten wird in ein entsprechendes Paket aus einem Elementarstrom in Paketform (PES-Paket) eingekapselt. Zur Übertragung wird jedes PES-Paket wiederum in eine Vielzahl von Transportpaketen mit fester Länge unterteilt. Jedes Transportpaket enthält Daten, die sich nur auf ein PES-Paket beziehen. Das Transportpaket enthält außerdem einen Paketkopf, der Steuerinformationen hält, und manchmal ein Anpassungsfeld enthält, das beim Decodieren des Transportpakets verwendet wird. PES-Daten können jedoch mehrere Elementarströme enthalten.
  • Wie in der System-Sektion dargestellt ist, wird eine Synchronisation zwischen mehreren Elementarströmen realisiert, indem periodisch Zeitstempel in dem Datenstrom vorgesehen werden. Die Decodierung von N Elementarströmen wird z. B. synchronisiert, indem die Decodierung der Ströme auf eine gemeinsame Masterzeitbasis eingestellt wird, anstelle der Einstellung der Decodierung eines Stroms in der Weise, dass sie mit der eines anderen Stroms übereinstimmt. Die Masterzeitbasis kann das Taktsignal von einem der N Decodierer, das Taktsignal der Datenquelle oder ein extern bereitgestelltes Taktsignal sein.
  • Um diesen Synchronisationsprozess zu unterstützen, ist in dem Transportpaketkopf der MPEG-2-Norm ein "Diskontinuitätsindikator" enthalten. Eine Syntax-Darstellung ist in der System-Sektion enthalten und zeigt, wo sich in dem Transportpaketkopf ein beispielhafter Diskontinuitätsindikator befindet. Diese Syntax ist nachfolgend in Tabelle 1 dargestellt.
  • Tabelle 1-Transportstrom-Anpassungsfeld
    Figure 00030001
  • Tabelle 1 (Fortsetzung)
    Figure 00040001
  • Wie in der System-Sektion beschrieben ist, befindet sich der Diskontinuitätsindikator in einem Anpassungsfeld im Transportpaketkopf. Der Diskontinuitätsindikator ist ein 1 Bit-Feld, das dann, wenn es auf eine "logische" 1 gesetzt ist, angibt, dass der Diskontinuitätszustand für das aktuelle Transportstrompaket wahr ist. Wenn der Diskontinuitätsindikator auf eine "logische" 0 gesetzt ist oder nicht vorhanden ist, ist der Diskontinuitätszustand falsch. Der Diskontinuitätsindikator wird verwendet, um zwei Typen von Diskontinuitäten anzugeben, Systemzeitbasis-Diskontinuitäten und Kontinuitätszähler-Diskontinuitäten.
  • Eine Systemzeitbasis-Diskontinuität wird durch die Verwendung des Diskontinuitätsindikators in Transportstrom-Programmidentifikations-Paketen (PID-Pakete) angezeigt, die als Programmtaktreferenz- (PCR) PID bezeichnet werden (siehe System-Sektion 2.4.4.9 auf S. 50). Anschließend wird ein PCR-Wert (d. h, eine Referenz auf ein Mastertaktsignal) empfangen.
  • Das Diskontinuitätsindikator-Bit wird z. B. gesetzt, wenn Programmmaterial, das mit einer Zeitbasis aufgezeichnet wurde, in einen Datenstrom eingesetzt wird, der mit einer anderen Zeitbasis aufgezeichnet wurde. Der Unterschied der Zeitbasis erscheint als ein unerwarteter PCR-Wert.
  • Wenn der Diskontinuitätszustand für ein Transportsystempaket einer PID, die als PCR-PID bezeichnet wird, wahr ist, stellt die nächste PCR in einem Transportsystempaket mit der gleichen PID einen Abtastwert eines neuen Systemzeittakts für das zugehörige Programm dar. Der Systemzeitbasis-Diskontinuitätspunkt ist definiert als der Zeitpunkt, wenn das erste Byte eines Pakets, das eine PCR einer neuen Systemzeitbasis enthält, am Eingang des System-Zieldecodierers (STD) eintrifft.
  • Es sollte angemerkt werden, dass ein STD in der Technik wohlbekannt ist und kurz gesagt einen hypothetischen Decodierer darstellt, der konzeptionell mit einem Ausgang eines Transportcodierers verbunden ist. Es wird gefordert, dass ein Datenstrom, der mit der MPEG-2-Norm konform ist, keine Datenflussprobleme für den STD (einschließlich Pufferüberlauf) bewirkt. Eine zusätzliche Erläuterung des STD ist in der System-Sektion angegeben.
  • Das Diskontinuitätsindikator-Bit kann des Weiteren außerdem in Transportstrompaketen mit der gleichen PCR-PID vor dem Paket, das die neue Systemzeitbasis-PCR enthält, auf "1" gesetzt sein. Nachdem in diesem Fall der Diskontinuitätsindikator auf "1" gesetzt wurde, bleibt er in allen Transportstrompaketen mit der gleichen PCR-PID auf "1" gesetzt bis einschließlich dem Transportstrompaket, das die erste PCR einer neuen Systemzeitbasis enthält. Nach dem Auftreten einer Systemzeitbasis-Diskontinuität werden mindestens zwei PCRs für die neue Systemzeitbasis empfangen, bevor eine weitere Systemzeitbasis-Diskontinuität auftreten kann. Außer in dem Fall, wenn ein Trickmodus-Zustand wahr ist, sollten ferner zu einem Zeitpunkt Daten von höchstens zwei Systemzeitbasen in den STD-Puffern für ein Programm vorhanden sein.
  • Ein mögliches Problem tritt dann auf, wenn bei einer Zeitbasis-Diskontinuität mehrere Systemzeitkonstanten- (STC) Werte (z. B. in einem Taktmanager eines Transportdecodierers und in externen Video- und Audiodecodierern) aktualisiert werden müssen, insbesondere dann, wenn eine wesentliche Latenzzeit zwischen Daten, die gegenwärtig durch externe Decodierer decodiert werden, und Daten, die empfangen und in den Puffern eines Transportdecodierers gespeichert werden, vorhanden ist. Das heißt, ein Transportdecodierer ist typischerweise mit externen Video- und Audiodecodierern gekoppelt, von denen jeder eine STC oder deren Entsprechung führt. Deswegen können dann, wenn eine Änderung in der Systemzeitbasis auftritt, die alle STCs gleichzeitig einstellt, Systemsynchronisationsprobleme hervorgerufen werden.
  • Mit Blick darauf besteht ein wichtiges Problem, das durch die vorliegende Erfindung angesprochen wird, darin, wie ein Transportdecodierer das Auftreten einer Systemzeitbasis-Diskontinuität zwischen Puffern und Decodierern effektiv handhaben kann.
  • Das Patent US 5.473.385 offenbart ein System, das Videodaten in Reaktion auf einen Codierungstakt codiert, die codierten Videodaten mit einem Codierer-Taktsignal, das die Codierungstaktfrequenz darstellt, überträgt und die Videodaten in Reaktion auf einen Decodierungstakt decodiert, wobei die Systemtakt-Genauigkeit durch Einstellen der Decodierungstaktfrequenz aufrechterhalten wird. Ein Empfänger/Decodierer enthält einen Paketrahmenbildner, der den Videodatenstrom zerlegt, indem die codierten Videodaten von den Codierer-Taktsignalen getrennt werden. Die Codierer-Videodaten werden an einen Puffer geliefert, der die den Paketen entnommenen codierten Videodaten speichert, bis sie von einem Decodierer abgerufen werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung enthält ein System, das zum Empfangen eines Transportdatenstroms entworfen ist, der Transportpakete mit Paketköpfen und Nutzlasten enthält, wobei die Paketköpfe einen Diskontinuitätsindikator enthalten. Das System enthält wenigstens einen Puffer zum temporären Speichern des empfangenen Transportdatenstroms und wenigstens einen externen Decodierer zum Decodieren von von dem Puffer ausgegebenen Daten für Präsentationszwecke. Die vorliegende Erfindung ist für die Handhabung des Empfangs eines Diskontinuitätsindikators entworfen, indem dann, wenn ein Diskontinuitätsindikator empfangen wird, der Transportpaketkopf syntaktisch analysiert wird und die Transportpaketnutzlasten im Speicher gespeichert werden. Beim Empfang eines nächsten Programmtaktreferenz-Wertes wird ein Zähler mit dem empfangenen Programmtaktreferenz-Wert geladen. Die gespeicherten Daten werden dann nach einem Zeitstempel durchsucht und wenn ein Zeitstempel gefunden wird, wird er wiedergewonnen. Schließlich wird eine Zeitgeberunterbrechung auf einen Zeitpunkt anhand des wiedergewonnenen Zeitstempels gesetzt und wenn die Zeitgeberunterbrechung auftritt, wird der Programmtaktreferenz-Wert zu dem Decodierer gesendet, wobei der neue Zeitstempelwert in einer für den Decodierer ausreichenden Zeit bereitgestellt wird, um Daten, die die neue Zeitbasis aufweisen, zu verarbeiten, ohne die Verarbeitung von Daten, die die vorherige Zeitbasis aufweisen, zu stören.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung wird aus der folgenden genauen Beschreibung am besten verstanden, wenn sie in Verbindung mit der beigefügten Zeichnung gelesen wird, in der:
  • 1A einen höheren Funktionsblockschaltplan eines beispielhaften digitalen Transportdecodierers und seiner verschiedenen Schnittstellen zeigt;
  • 1B einen höheren Ablaufplan zeigt, der die Schritte gemäß einem Aspekt der vorliegenden Erfindung unter Verwendung der in 1A gezeigten beispielhaften Implementierung veranschaulicht;
  • 2A einen höheren Funktionsblockschaltplan einer beispielhaften Implementierung eines Transportdecodierers, der in 1A gezeigt ist, zeigt;
  • 2B einen höheren Daten/Steuerungsablauf-Blockschaltplan einer beispielhaften Implementierung des Transportdecodierers, der in 1A gezeigt ist, zeigt;
  • 3 einen Funktionsblockschaltplan des Speichercontrollers zeigt, der in dem in 2 gezeigten Transportdecodierer verwendet wird;
  • 4 einen beispielhaften Ablaufplan zeigt, der erläutert, wie die Handhabung von Zeiger-FIFO-Einträgen durch den Speichercontroller erfolgt;
  • 5A einen beispielhaften Ablaufplan zeigt, der Schritte erläutert, die in dem Aspekt der Videodecodierer-Schnittstelle der vorliegenden Erfindung ausgeführt werden; und
  • 5B einen beispielhaften Ablaufplan zeigt, der Schritte erläutert, die in dem Aspekt der Audiodecodierer-Schnittstelle der vorliegenden Erfindung ausgeführt werden.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Überblick
  • Wie oben erwähnt wurde, besteht ein wichtiger Aspekt der vorliegenden Erfindung darin, wie ein Transportdecodierer einen Diskontinuitätsindikator effektiv handhaben kann. Ein weiterer Aspekt der vorliegenden Erfindung ist die Verbindung eines Transportdecodierers mit einem Videodecodierer, der lediglich Elementarstromdaten handhaben kann. Ein weiterer Aspekt der vorliegenden Erfindung enthält die Verbindung eines Transportdecodierers mit einem Audiodecodierer mit eingeschränkter Bitrate. Um die oben angeführten Aspekte zu umfassen, enthält die vorliegende Erfindung einen speziell entworfenen MPEG-2-Transportdecodierer.
  • Um einen bestimmten Kontext für den Diskontinuitätsaspekt der vorliegenden Erfindung anzugeben, würde ein echtes Beispiel einer Zeitbasis-Diskontinuität auftreten, wenn ein Programm unter Verwendung von MPEG-2-Formaten über Satellit zu vielen Empfangsstation im ganzen Land gesendet wird. Während des Programms fügt jedoch jede Station ihre eigenen Werbespots ein. In dieser Situation würde ein Diskontinuitätsindikator gesetzt werden, um eine Lücke oder eine Unterbrechung in der Zeitbasis des Programms anzuzeigen, um das Einfügen von Werbespots zu ermöglichen, die jeweils ihre eigene lokale Zeitbasis aufweisen. Die Programmübertragung vom Satelliten würde jedoch fortgesetzt werden, während die einzelnen Stationen ihre jeweiligen Programme einfügen. Demzufolge würde die interne Zeitsteuerung des Transportdecodierers zum Empfangen des Programms, das von der lokalen Station mit den eingefügten Werbespots ausgesendet wird, vorteilhaft die geeigneten Zeitbasen verfolgen, wenn ein Diskontinuitätsindikator angetroffen wird.
  • In den Figuren zeigt 1A einen höheren Funktionsblockschaltplan eines beispielhaften digitalen Transportdecodierers 110 und seiner verschiedenen Schnittstellen. Wie in 1 gezeigt ist, enthält der Transportdecodierer 110 Verbindungen zu einer physikalischen Schicht der Kanalschnittstelle (Kanalschnittstelle) 112, einen Pufferspeicher 114, einen Host-Mikroprozessor 116, externe Video- und Audiodecodierer 118 und 120 und eine Taktsignal-Schaltungsanordnung (z. B. VCXO) 122. In der beispielhaften Ausführungsform der vorliegenden Erfindung unterstützt der Transportdecodierer 110 eine Videoschnittstelle und bis zu zwei Audioschnittstellen (z. B. Audio A und Audio B).
  • Der Host-Mikroprozessor 116 ist neben dem Transportdecodierer 110 zusätzlich mit den Video- und Audiodecodierern 118 und 120 durch den Mikrobus 124 verbunden. Diese Verbindung kann parallele oder serielle Datenwege verwenden und hängt von den Anforderungen der einzelnen externen Decodierer ab, die für eine Verwendung ausgewählt sind. In jedem Fall ist dieses Verfahren zum Koppeln des Host-Mikroprozessors 116 mit externen Decodierern wohlbekannt, wie von einem Fachmann anerkannt wird.
  • Der Transportdecodierer 110 und jeder der externen Video- und Audiodecodierer 118 und 120 enthalten einen Systemzeitkonstanten-Wert (STC-Wert) (nicht gezeigt), der in einem Register oder einem Zähler für den Zweck der Synchronisation der Decodierung und der Anzeige des empfangenen Datenstroms gehalten wird.
  • Wie erwähnt wurde, kann ein Problem auftreten, wenn eine Zeitbasis-Diskontinuität in dem Datenstrom auftritt und die Diskontinuität erfordert, dass STC-Werte sowohl in dem Transportdecodierer 110 als auch in den Video- und Audio-Decodierern 118 und 120 aktualisiert werden müssen. Dies ist insbesondere dann ein Problem, wenn möglicherweise eine bedeutende Latenzzeit zwischen Daten, die gegenwärtig durch die externen Decodierer decodiert werden, und Daten, die empfangen und in dem Transportprozessor gespeichert wurden, vorhanden ist.
  • In der vorliegenden Erfindung hat der Mikroprozessor 116 eine wichtige Funktion bei der Steuerung der Synchronisation des Datenstroms und des Betriebs der Video- und Audio-Decodierer 118 und 120. In der vorliegenden Erfindung hat der Mikroprozessor 116 einen direkten speicherabbildenden Zugang zu verschiedenen Registern in dem Transportdecodierer 110. Der Mikroprozessor 116 hat außerdem einen Zugang zu Pufferbereichen im externen Speicher 114 (durch, Lese-, Schreib- und Wasserzeichen-Zeiger) und zu 32 Byte-On-Chip-Lese- und Schreib-FIFOs (die in 3 gezeigt sind). Der Mikroprozessor 116 ist durch einen internen Mikrobus 223 (der in 2B gezeigt ist) mit mehreren internen Funktionsblöcken gekoppelt und ermöglicht, dass verschiedene Ereignis- und Fehlerbedingungen über maskierbare Unterbrechungen signalisiert werden können.
  • Wie in dem Ablaufplan von 1B dargestellt ist, werden im Allgemeinen in einem Aspekt der vorliegenden Erfindung mittels des speziell entworfenen Transportdecodierers 110 nach dem Empfang eines Diskontinuitätsindikators im Schritt 150 die folgenden Schritte ausgeführt:
    • 1) Da ein Diskontinuitätsindikator sich nicht notwendigerweise in dem gleichen Datenpaket wie ein nächster Programmtaktreferenz-Wert (PCR-Wert) befindet, wenn der nächste PCR-Wert empfangen wird, wird ein Zähler in der Schaltungsanordnung des Taktmanagers (in 2A gezeigt), der in dem Transportdecodierer 110 enthalten ist, mit dem nächsten PCR-Wert geladen, Schritt 152;
    • 3) nachfolgende Pakete, die syntaktisch analysiert und im Speicher gespeichert wurden, werden nach einem Zeitstempel durchsucht und wenn ein Zeitstempel gefunden wird, wird der Zeitstempelwert wiedergewonnen, Schritt 154;
    • 4) eine Zeitgeberunterbrechung wird durch den Mikroprozessor 116 für einen Zeitpunkt gesetzt, der sich ungefähr eine Rahmendauer vor dem wiedergewonnenen Zeitstempelwert befindet, Schritt 156; und
    • 5) wenn die Zeitgeberunterbrechung auftritt, wird der aktuelle STC-Wert an die externen Video- und Audiodecodierer 118 und 120 gesendet, Schritt 158, wodurch den externen Decodierern eine ausreichende Zeit gegeben wird, um die Daten zu verarbeiten, bevor der in dem Datenstrom befindliche Zeitstempel mit dem Zählerwert, der in den Video- oder Audiodecodierern 118 oder 120 geführt wird, verglichen wird.
  • Die Implementierung dieser höheren Schritte wird später genau beschrieben.
  • Die 2A und 2B zeigen höhere Funktionsblockschaltpläne einer beispielhaften Implementierung des Transportdecodierers 110, der in 1A gezeigt ist. Unter Bezugnahme auf die 2A und 2B wird der Gesamtdatenfluss in dem Transportdecodierer 110 beschrieben.
  • Wie in den Figuren gezeigt ist, führt die Kanalschnittstelle 112 von 1A zu einem Kanaldatenprozessor (CDP) 210. Die Kanalschnittstelle 112 liefert außerdem Daten an eine NRSS-Schnittstelle 212 zur Entschlüsselung durch die NRSS-Smartcard 230. Die EIA-Norm für bedingten Zugang, Version 2.6, NRSS Committee (4/95) beschreibt die NRSS-Smartcard.
  • Der CDP 210 ist für eine Vorverarbeitung (z. B. Detektieren, Synchronisieren und Validieren) der Pakete in dem empfangenen Datenstrom vorgesehen. Der CDP 210 leitet nach der Ausführung seiner Verarbeitung seine Ausgangsdaten zum Transportprozessor (TPROC) 214 für eine Weiterverarbeitung. Der TPROC 214 führt verschiedene Verarbeitungen, wie etwa ein syntaktisches Analysieren, in Übereinstimmung mit einer PID-Tabelle, die nachfolgend genau beschrieben wird, aus.
  • Der TPROC 214 wirkt mit mehreren der Funktionsblöcke in dem Transportdecodierer 110 zusammen, die einen Speichercontroller 216, einen Taktmanager 218, einen Privatdatenprozessor 220 und einen schnellen Datenanschluss 222 enthalten. Wie erwähnt wurde, hat der Mikroprozessor 116 einen direkten Zugriff auf verschiedene On-Chip-Register. Dieser Zugriff wird erreicht mittels einer Mikroschnittstelle 217 und den internen Mikrobus 223 (in 2B gezeigt). Der Speichercontroller 216 ist zusätzlich zu seiner Kopplung mit dem TPROC 214 außerdem mit dem externen Speicher 114 und den Video- und Audiodecodierern 224, 226 und 228 gekoppelt.
  • Die Einzelheiten der Verarbeitung des digitalen Datenstroms werden nun in Bezug auf die einzelnen Funktionsblöcke beschrieben.
  • Kanaldatenprozessor (CDP) 210
  • Es wird angemerkt, dass der Datenstrom von der Kanalschnittstelle 112 nach einer möglichen Pufferung (nicht gezeigt) zu dem CDP 210 geleitet wird.
  • Der CDP 210 führt verschiedene Vorverarbeitungsschritte an dem empfangenen Datenstrom aus. Der CDP 210 bestimmt im Einzelnen die Byte- und Rahmengrenzen in dem Datenstrom und setzt den empfangenen Datenstrom in ein paralleles 8 Bit-Format um. In der beispielhaften Ausführungsform der vorliegenden Erfindung werden Operationen, die in dem Transportdecodierer 110 nach dem CDP 210 auftreten, unter Verwendung eines Byte-Formats ausgeführt.
  • Um Byte- und Rahmengrenzen zu bestimmen, synchronisiert der CDP 210 auf ein Rahmenbildungsmuster, das in dem Paketkopf eines Transportpakets enthalten ist. Diese Synchronisation wird im Einzelnen erreicht, indem nach dem MPEG-2-Transportstrom-Byte sync Byte (z. B. 47H) gesucht wird und sein Auftreten am Beginn einer programmierbaren Anzahl von aufeinander folgenden Transportpaketen geprüft wird.
  • Dadurch prüft der CDP 210 nach dem Byte sync byte, "verriegelt" auf dem Datenstrom und setzt das Validieren von Paketen fort. Wenn die Suche nach sync byte läuft, ist ein Bit Search State in einem (nicht gezeigten) CDP-Zustandsregister gesetzt. Wenn sync byte gefunden wurde und eine Überprüfung von erfolgreichen Auftrittsereignissen läuft, ist ein Bit Sync State gesetzt. Schließlich ist ein Bit Lock State gesetzt, wenn ein vorgegebenes Suchkriterium erfüllt ist. In der beispielhaften Ausführungsform der vorliegenden Erfindung sind das Suchkriterium drei aufeinander folgende validierte Pakete. Außerdem wird ein Wert Sync Hysterisis, der die Anzahl von Paketen mit beschädigten Bytes sync byte angibt, die der CDP 210 programmiert hat, gebildet, um diese durchzulassen, bevor ein Verlust des Zustands Lock State erklärt wird. Wenn dieser Wert Hysterisis überschritten wird, wird ein Verlust der Verriegelung erklärt. Der CDP 210 gibt dann eine Unterbrechung Lock Lost aus und geht vom Zustand Lock State wieder zum Zustand Search State.
  • Wenn die Kanalschnittstelle 112(in 1A gezeigt) ein Signal CHPSTRT bereitstellt, kann der Transportdecodierer 110 außerdem so konfiguriert sein, dass er dieses Signal als ein Mittel zum Synchronisieren auf dem Datenstrom verwendet, indem er ein Bit Framing Mode in einem Rahmenbildungs- und Synchronisationssteuerungsregister des CDP auf "logisch" 1 setzt. In diesem Fall wird eine Synchronisation innerhalb einer Transportpaketdauer nach dem Einschalten von CHPSTRT erreicht.
  • Wenn alternativ ein Bit Ignore Sync in dem Rahmenbildungs- und Synchronisationssteuerungsregister des CDP auf "logisch" 0 gesetzt wird, prüft der CDP 210 die Unversehrtheit von sync byte an der erwarteten (ersten) Bitstelle relativ zum Signalübergang von CHPSTRT und erklärt einen Verriegelungszustand, falls die Überprüfung fehlschlägt. Wenn Ignore Sync auf 1 gesetzt ist, überprüft der CDP 210 die Unversehrtheit der Synchronisation nicht.
  • Nach Erreichen des Zustands Lock State kann das Ausgangssignal des CDP 210 zu dem TPROC 214 weitergeleitet und von diesem verarbeitet werden, der die nun im Byte-Format befindlichen Daten weiterverarbeitet (z. B. filtert, syntaktisch analysiert und formatiert).
  • Transportprozessor (TPROC) 214
  • Signale, die durch den TPROC 214 erzeugt werden, steuern den Datenfluss zu dem Speichercontroller 216, der Mikroschnittstelle 217, dem Taktmanager 218, dem Privatdatenprozessor 220 und dem schnellen Datenanschluss 222.
  • In der beispielhaften Ausführungsform der vorliegenden Erfindung verarbeitet der TPROC 214 den Datenstrom unter der Steuerung einer PID-Tabelle. Wie in der System-Sektion beschrieben wurde, ist eine PID ein 13 Bit-Feld in einem Transportstrom-Paketkopf, das den Typ von Daten, die in der Paketnutzlast gespeichert sind, angibt. Einige PID-Werte werden zugewiesen und einige sind reserviert. Zusätzliche Einzelheiten der PID-Tabelle sind im Abschnitt 3.3 der System-Sektion der oben angeführten MPEG-2-Spezifikation beschrieben.
  • Bezugnehmend auf die PID-Tabelle kann der TPROC 214 bis zu 32 vom Benutzer wählbare PIDs gleichzeitig verarbeiten. Die PIDs, die der Transportdecodierer 110 verarbeiten soll, sind in der PID-Tabelle festgelegt. Bitfelder in der PID-Tabelle legen verschiedene Verarbeitungsoptionen für die Daten fest.
  • Im Betrieb wird die PID durch den TPROC 214 aus dem Paketkopf eines ankommenden Transportpakets extrahiert und gleichzeitig mit allen Einträgen in der PID-Tabelle verglichen. Wenn eine Übereinstimmung gefunden wird, werden die in dem Paket befindlichen Daten gemäß den Optionen verarbeitet, die in dem übereinstimmenden PID-Tabelleneintrag festgelegt sind. Wenn kein PID-Tabelleneintrag übereinstimmt, wird das Paket verworfen.
  • Jede Stelle in der PID-Tabelle, für die die Nutzlastformat-Bits nicht auf Verwerfen (000) gesetzt sind, ist einer Kanalnummer zugeordnet. In Verbindung mit dem TPROC 214 ist der Speichercontroller 216 für die Übertragung von Daten an einen bestimmten Pufferbereich (Kanal) im RAM verantwortlich. Der Betrieb des Speichercontrollers 216 wird später unter Bezugnahme auf die 2, 3 und 4 genau beschrieben.
  • In der beispielhaften Ausführungsform der vorliegenden Erfindung wird die PID-Tabelle, die im TPROC 214 geführt wird, während eines Initialisierungsprozesses über den internen Mikrobus 223 unter der Software-Steuerung durch den Mikroprozessor 116 eingerichtet.
  • Bezugnehmend auf das Format der PID-Tabelleneinträge enthält ein PID-Tabelleneintrag neben weiteren Informationen 1) eine 13 Bit-PID und 2) ein 1 Bit-PCR-PID-Feld, das dann, wenn es gesetzt ist, angibt, dass diese PID die PCR für das Programm befördert, das decodiert wird. Ein beispielhafter PID-Tabelleneintrag enthält außerdem ein 1 Bit-PES-HDR-Bit, das dann, wenn es gesetzt ist, ermöglicht, dass die RAM-Puffer-Adresse, die einer "Strom-ID" in dem PES-Paketkopf entspricht, in einem Zeiger-FIFO gespeichert wird. Eine Unterbrechung wird durch den Speichercontroller 216 ausgegeben, wenn er Daten in das Zeiger-FIFO schreibt. Diese Unterbrechung wird als ein Signal DMA MARK bezeichnet, das dazu dient, den Mikroprozessor 116 über die Bereitstellung des Bytes Stream ID zu benachrichtigen. In der beispielhaften Ausführungsform der vorliegenden Erfindung sind Kanalnummern den PID-Tabelleneinträgen in numerischer Reihenfolge anhand ihres Orts in der Tabelle zugewiesen, z. B. ist der erste Eintrag dem DMA-Kanal 0 zugewiesen, der nächste Eintrag ist dem DMA-Kanal 1 zugewiesen usw.
  • Der TPROC 214 gibt an, dass Transportpakete mit PGR-PID durch den Taktmanager 218 verarbeitet werden sollten, indem ein Signal PCR PID in dem PID-Tabelleneintrag angeordnet wird. Der Taktmanager 218 überwacht dann die Anpassungsfelder derartiger Pakete nach einem Merker PCR flag und extrahiert die PCR.
  • Nach dem Trennen der Pakete gemäß ihren PIDs entfernt der TPROC 214 die Paketköpfe der Transportpakete und speichert in Verbindung mit dem Speichercontroller 216 die Paketnutzlasten (z. B. Abschnitte der PES-Pakete) für die entsprechenden PIDs in aufeinander folgenden Speicherstellen des angegebenen Kanals in dem externen Speicher 114. Die Daten im Speicher 114 stellen PES-Pakete dar.
  • Der TPROC 214 wickelt außerdem Schreiboperationen von dem Host-Mikroprozessor 116 zum externen Speicher ab.
  • SPEICHERCONTROLLER 216
  • Der Speichercontroller 216 speichert die syntaktisch analysierte Nutzlast von Transportpaketen im externen Speicher 114 und liefert Videodaten, Audiodaten, PSI-Daten sowie andere Daten (z. B. private Daten) auf Anforderung an den Videoprozessor 224, an bis zu zwei Audioprozessoren 226 und 228 und an den Host-Mikroprozessor 116 (oder Mikrocontroller).
  • 3 zeigt einen beispielhaften Funktionsblockschaltplan eines Speichercontrollers, der für eine Verwendung in dem Transportdecodierer 110, der in den 2A und 2B gezeigt ist, geeignet ist. Wie in 3 gezeigt ist, empfängt der Speichercontroller 216 Daten von dem TPROC 214 über ein Transport-Eingangs-FIFO 310. Der Speichercontroller 216 empfängt/sendet Daten vom Mikroprozessor 116 über die Mikroschnittstelle 217, die das Mikro-Eingangs-FIFO 314 und das Mikro-Ausgangs-FIFO 3156 enthält. Es wird angemerkt, dass die Mikroschnittstelle 217, die in den 2A und 2B außerhalb des Speichercontrollers 216 dargestellt ist, in 3 zur Einfachheit so dargestellt ist, dass ihre Beziehung mit den FIFOs 314 und 316 veranschaulicht ist.
  • Der Speichercontroller 216 enthält außerdem eine Datenfluss-Steuereinheit 318, die einen On-Chip-Speicher, einen DMA-Controller 320, eine Datenweglogik 322 und FIFOs 324, 326 und 328 zum Liefern von Daten an die Video- und Audiodecodierer 224, 226 bzw. 228 enthält.
  • Der Speichercontroller 216 schreibt Daten aus zwei Quellen in den externen Speicher: eine Quelle ist der TPROC 214 (über das Transport-Eingangs-FIFO 310) und die andere Quelle ist der Mikroprozessor 116 (über das Mikro-Eingangs-FIFO 314).
  • Der Speichercontroller 216 liest Daten vom externen Speicher und liefert sie an die folgenden vier Zielorte: 1) Videoschnittstelle (über das Video-FIFO 324), 2) Audio A- Schnittstelle (über das Audio A-FIFO 326), 3) Audio B-Schnittstelle (über das Audio B-FIFO 328), und 4) Mikrocontroller 116 (über das Mikro-Ausgangs-FIFO 316).
  • Der externe Speicherraum ist in getrennte, nicht überlappende Pufferbereiche unterteilt, wobei ein Pufferbereich für jeden verwendeten DMA-Kanal vorhanden ist. Bis zu 32 Kanäle können verwendet werden. Eine Kanalnummer ist Daten zugeordnet, die in die zwei Quellen-FIFOs geschrieben werden oder aus den vier Ziel-FIFOs ausgelesen werden.
  • Daten, die durch den TPROC 214 geliefert und in das Transport-Eingangs-FIFO 310 geschrieben werden, tragen ein Kanalnummerkennzeichen. Die Kanalnummer für jedes der anderen FIFOs ist durch den Mikrocontroller 116 im DMA-Schnittstellenregister definiert. Ein 128 Bit-Kanalkonfigurationsregister (Kanalregister) wird für jeden verwendeten Kanal von dem Mikroprozessor 116 eingerichtet. Das Kanalregister enthält Konfigurationsinformationen, wie etwa den Pufferraum, der durch Anfangs- und Endadressen definiert ist, ob der Puffer als ein FIFO (Lese- und Schreibzeiger mit Übertrag, die gelegentlich als kreisförmige Warteschlange bezeichnet werden) oder als eine Warteschlange (Lese- und Schreibzeiger ohne Übertrag) konfiguriert ist, usw.
  • Wenn es das Kanalregister zulässt, kann der DMA-Controller 302 einen neuen Puffer erhalten, wenn der eine Puffer, der gegenwärtig verwendet wird, voll wird. Dieses Merkmal wird normalerweise nur für Puffer verwendet, die Daten speichern, die für den Host-Mikroprozessor 116 vorgesehen sind, wie etwa PSI-Sektionen. Die Anfangs- und Endadressen dieser neuen Puffer werden in einem New Buffer FIFO (FIFO für neue Puffer) gespeichert. Nur der Mikroprozessor 116 kann neue Pufferdaten in dieses FIFO schreiben. Verwendete Pufferzeiger und andere Typen von Zeigern werden durch den DMA-Controller 320 zu dem Zeiger-FIFO geschrieben. In der beispielhaften Ausführungsform der vorliegenden Erfindung kann nur der Mikroprozessor 116 den Zeiger-FIFO lesen. Diese Zeiger werden von dem Mikroprozessor 116 verwendet, um das Lesen von Pufferdaten und die Rückgabe von verwendeten Puffern wieder an das New Buffer FIFO zu verwalten. Der Ablaufplan für Zeiger-FIFO-Einträge, der in 4 gezeigt ist, zeigt die Einträge in dem Zeiger-FIFO für alle möglichen Signalbedingungen, Kanalregisterkonfigurationen und Pufferbedingungen.
  • Weiterhin in 3 liefern der DMA-Controller 320 und die Datenweglogik 322 alle Schnittstellensignale an den externen Speicher. Die Datenfluss-Steuereinheit 318 leitet den DMA-Controller 320 in der Weise, um ein bestimmtes Schnittstellen-FIFO (eines von sechs) zu bedienen, indem die geeigneten Steuersignale daran angelegt werden. Diese enthalten:
  • 1. DMA Controller Start
  • Dieses Signal befiehlt dem DMA-Controller 320, mit dem Bedienen eines bestimmten FIFO unter Verwendung von Befehlen wie DMA Controller Operation, DMA Input FIFO select und DMA Output FIFO select zu beginnen. Gleichzeitig liest die Datenfluss-Steuereinheit 318 das 128 Bit-Kanalregister aus und stellt es auf dem Datenbus des Kanalregisters (interner Speicher) zur Verfügung. Der DMA-Controller 320 liest dieses 128 Bit-Wort in sein internes Register und die Datenfluss-Steuereinheit 318 ist dann frei, um andere Lese/Schreiboperationen auf Anforderung an dem internen Speicher auszuführen.
  • 2. DMA Controller Operation (1 Bit).
  • Dieses Bit signalisiert eine Schreib- oder Leseoperation, die durch den DMA-Controller an den Schnittstellen-FIFOs auszuführen ist.
  • 3. DMA Input FIFO Select (1 Bit)
  • Signalisiert, welches der zwei Eingangs-FIFOs 310 oder 314 zu bedienen ist.
  • 4. DMA Output FIFO Select (2 Bits)
  • Signalisiert, welches der vier Ausgangs-FIFOs 316, 324, 326 oder 328 zu bedienen ist.
  • 5. Channel Data In Request/Channel Data/Channel Number/DMA Controller Stop:
  • Der DMA-Controller 320 bedient gewöhnlich weiterhin ein FIFO, bis er das FIFO nicht weiter bedienen kann infolge einer bestimmten Bedingung, wie etwa ein volles Schnittstellen-FIFO oder keine Daten im externen Speicher usw. Wenn dieser Typ einer Bedingung auftritt, schaltet der DMA-Controller 320 das Signal Channel Data In Request an die Datenfluss-Steuereinheit 318 ein und liefert die Daten Channel Register und die Daten Channel Number an die Datenfluss-Steuereinheit 318. Die Datenfluss-Steuereinheit 318 aktualisiert den Kanalregisterspeicher mit den Kanaldaten (aktualisierte Informationen, die z. B. die Schreib- und Lesezeiger enthalten.) und weist den DMA-Controller 320 an, das nächste FIFO in der Schleife zu bedienen, es sei denn, ein bestimmtes FIFO benötigt eine dringende Aktion (da es sich z. B. einem Zustand voll oder leer nähern kann).
  • Bei der Datenfluss-Steuereinheit 318 könnte gelegentlich die Notwendigkeit bestehen, einen Befehl DMA Controller Stop an den DMA-Controller 320 auszugeben in Reaktion auf eine Notwendigkeit, ein anderes FIFO zu bedienen, wie etwa das Transport-Eingangs-FIFO, das eine höhere Priorität haben könnte. Dieser Befehl weist den DMA-Controller 320 an, das Bedienen des FIFO, das gegenwärtig bedient wird, einzustellen und die Kanaldaten zur Datenfluss-Steuereinheit 318 zu schreiben.
  • Das Kanalregister wird durch den DMA-Controller 320 mit einem Lesezeiger, einem Schreibzeiger oder anderen Informationen an dem Punkt, an dem sie aufhört, ein FIFO zu bedienen, aktualisiert. Da die Datenfluss-Steuereinheit 318 dies in den internen Kanalregisterspeicher schreibt, kann der DMA-Controller 320 den Dienst an dem unterbrochenen FIFO an dem Punkt wiederaufnehmen, an dem er unterbrochen wurde.
  • Unter Bezugnahme auf die Teilnahme des DMA-Controllers an der Gesamtfunktion des Aspekts des Diskontinuitätszustands der vorliegenden Erfindung, bewirkt die Datenfluss-Steuereinheit 318 dann, wenn ein nächstes PES-Paket, das ein Byte Stream ID enthält, durch den TPROC 214 in den DMA-Controller 216 geschrieben wird, dass das Signal DMA MARK zum Hochpegel geht. Der Übergang des Signals DMA MARK löst eine Unterbrechung am Mikroprozessor 116 aus und die Adresse des PES-Paketkopfes wird in einem Eingabezeiger-FIFO gespeichert, auf das der Mikroprozessor Zugriff hat. Da der PES-Paketkopf einen Zeitstempel aufweisen kann, durchsucht der Mikroprozessor 116 in Reaktion auf einen Merker, der durch den Diskontinuitätsindikator eingeschaltet wurde, die gespeicherten Paketköpfe nach einem Zeitstempel und wenn er einen Zeitstempel findet, gewinnt er den Zeitstempelwert wieder. Anhand des wiedergewonnenen Zeitstempelwertes setzt der Mikroprozessor 116 eine Zeitgeberunterbrechung.
  • Mit nochmaligem Bezug auf 3, in der beispielhaften Ausführungsform der vorliegenden Erfindung enthält der interne Speicher der Datenfluss-Steuereinheit 318 vier Blöcke von jeweils 64 x 32 Bits, wovon jedes Channel Registers, New Buffer FIFO und Pointers FIFO zugewiesen ist.
  • In der beispielhaften Ausführungsform der vorliegenden Erfindung hat jedes Kanalregister (Channel Register) 128 Bits und es gibt eine maximale Anzahl von 32 Kanälen, deshalb können bis zu 128 x 32 Bits Channel Register in Vielfachen von 128 zugewiesen sein können.
  • Wörter aus 32 Bits werden zum New Buffer und Pointers FIFO geschrieben und von diesen gelesen. Wenigstens 128 x 32 Bits des Speichers (d. h. 128 Wörter) stehen für New Buffer und Pointer FIFOs zur Verfügung. Außerdem kann dann, wenn weniger als 32 Kanäle verwendet werden, ungenutzte Kapazität vom Speicher Channel Register den New Buffer und Pointer FIFOs zugeordnet werden.
  • Es folgen Beispiele der Speicherzuordnung für 32 DMA-Kanäle und 16 DMA-Kanäle.
  • 1) Speicherzuordnung für 32 verwendete Kanäle
    • New Buffer FIFO = 64 x 32 Bits
    • Pointer FIFO = 64 x 32 Bits
    • Channel Registers = 128 X 32 Bits
  • 2) Speicherzuordnung für 16 verwendete Kanäle
    • New Buffer FIFO = 64 x 32 Bits
    • Pointer FIFO = 128 x 32 Bits
    • Channel Registers = 128 x 16 Bits
  • TAKTMANAGER 218
  • Der in den 2A und 2B gezeigte Taktmanager 218 des Transportdecodierers 110 synchronisiert ein lokales 27 MHz-Signal (das durch die Taktsignal-Schaltungsanordnung 122 erzeugt wird) unter Verwendung von aufeinander folgenden PCR-Werten. Der Wert des Zählers in dem Taktmanager 218 wird als der Systemzeitkonstanten- (STC) Wert bezeichnet. Der Mikroprozessor 116 hat in der beispielhaften Ausführungsform der vorliegenden Erfindung über den internen Mikrobus 223 Zugriff auf den STC-Wert in dem Zähler.
  • Der Zähler im Taktmanager 218 wird periodisch auf die PCRs, die in dem Transportdatenstrom befördert werden, synchronisiert. Wenn die erste PCR in einem Datenstrom auftritt, wird die PCR in den Zähler geladen ("jam loaded") und wird der anfängliche STC-Wert. Wenn spätere PCR-Werte empfangen werden, werden sie mit dem STC-Wert verglichen, um die Frequenz der Taktsignal-Schaltungsanordnung 122 (z. B. VCXO) einzustellen. In der vorliegenden Erfindung wird dies unter Verwendung eines Digital/Analog-Umsetzers (DAC) ausgeführt, der später genau beschrieben wird. Nachdem Phasenfehlereinstellungen ausgeführt wurden, wird der neue PCR-Wert im Allgemeinen als der STC-Wert geladen.
  • Normalerweise treten PCR-Werte einmal pro Rahmen auf. Bei der MPEG-2-Norm müssen sie mindestens in jedem dritten Rahmen auftreten (eine Zehntelsekunde).
  • Die externen Video- und Audiodecodierer 118 und 120 werden typischerweise auf den Transportdecodierer 110 synchronisiert, indem der STC-Wert in den externen Decodierern anhand des STC-Wertes, der in dem Taktmanager 218 geführt wird, aktualisiert wird. Die Video- und Audiodecodierer 118 und 120 verwenden den gespeicherten Wert, um festzustellen, wann Daten decodiert/angezeigt werden sollen, indem sie ihn mit Zeitstempeln in dem empfangenen Datenstrom vergleichen. Es wird angemerkt, dass in der beispielhaften Ausführungsform der vorliegenden Erfindung der Transportdecodierer 110, der Videodecodierer 118 und der Audiodecodierer 120 das gleiche 27 MHz-Taktsignal empfangen, das durch den Taktmanager 218 erzeugt wird.
  • Der Transportdecodierer 110 enthält eine Hardware-Unterstützung, um ein Taktsignal lokal zu erzeugen, das für ein ausgewähltes Programm auf das Systemtaktsignal verriegelt ist. Wie oben erwähnt wurde, werden PCR-Werte, die mit dem festgelegten Wert PCR PID empfangen werden, an einer seriellen Schnittstelle für die Verwendung durch andere Vorrichtungen zur Verfügung gestellt.
  • Der Taktmanager 218 enthält einen Systemzeitzähler (STC) (nicht gezeigt), ein Systemzeittaktregister (nicht gezeigt), ein Programmtaktreferenzregister (nicht gezeigt), ein Register des aktuellen STC-Wertes (nicht gezeigt), ein Alarmtakt-Unterbrechungsregister (nicht gezeigt) und eine Logik (nicht gezeigt), um PCRs zwischenzuspeichern, die aus den Paketköpfen extrahiert werden, die einer ausgewählten PID zugeordnet sind. Er enthält außerdem die serielle PCR-Schnittstelle und ein DAC-Register zur Steuerung einer externen Systemtaktsignal-Steuerungsschleife.
  • In der beispielhaften Ausführungsform der vorliegenden Erfindung ist der STC ein 42 Bit-Zähler mit einer 9 Bit-Basis und einer 33 Bit-Erweiterung.
  • Die STC-Basis teilt das nominelle 27 MHz-Systemtakt-Eingangssignal durch 300. Das resultierende 90 kHz-Signal steuert die STC-Erweiterung an. Der STC kann durch Software gelesen oder geschrieben werden, die auf dem Mikroprozessor 116 zu einem beliebigen Zeitpunkt ausgeführt wird. Wahlweise kann der STC mit einer empfangenen PCR automatisch geladen werden, nachdem ein Diskontinuitätsindikator aufgetreten ist.
  • Wie oben erwähnt wurde, können PCRs aus dem ankommenden Bitstrom automatisch extrahiert werden, indem das Bit PCR PID in einem PID-Tabelleneintrag gesetzt wird. Die Handhabung der empfangenen PCRs hängt von Optionen ab, die durch die Software eingestellt sind, und davon, ob für das aktuelle Transportpaket ein Diskontinuitätszustand vorhanden ist, wenn die PCR empfangen wird.
  • Ein Diskontinuitätszustand wird erkannt, wenn ein Transportpaket, das den Wert PCR PID enthält, mit einer logischen 1 in dem Bit discontinuity indicator empfangen wird, oder bis der nächste Wert PCR in einem Paket PCR PID gefunden wird.
  • Wenn der Taktmanager 218 freigegeben ist, lädt er automatisch die empfangene PCR in den STC, wenn eine PCR empfangen wird, während ein Diskontinuitätszustand vorhanden ist. Zu diesem Zeitpunkt wird eine Unterbrechung an den Host-Mikroprozessor 116 ausgegeben.
  • Der Taktmanager 218 enthält ein Bit Initialize, das dann, wenn es durch die Software auf logisch 1 gesetzt ist, bewirkt, dass der nächste PCR-Wert, der empfangen wird, in den STC geladen wird, unabhängig davon, ob ein Diskontinuitätszustand vorhanden ist. Das Bit Initialize wird anschließend durch den Taktmanager 218 automatisch gelöscht. Das Bit Initialize ist nur dann gesetzt, wenn der STC keinen gültigen PCR-Wert enthält (d. h., wenn ein neuer PID-Wert ausgewählt worden ist).
  • Wenn kein Diskontinuitätszustand vorhanden ist oder die Funktion zum automatischen Laden des STC gesperrt ist, wird ein empfangener PCR-Wert im PCR-Register gespeichert und es wird (optional) eine Unterbrechung an den Host-Mikroprozessor 116 ausgegeben. Zum gleichen Zeitpunkt, wenn der PCR-Wert aufgenommen wird, wird der aktuelle Zustand des STC im STC-Register gespeichert. Die gespeicherte PCR- und STC-Werte werden verwendet, um ein Fehlersignal zur Steuerung des externen Systemtaktsignals (XOCLK) zu berechnen.
  • Wenn ein Transportpaket empfangen wird, das einen PID-Wert enthält, der gleich dem Wert PCR PID ist, und das einen PCR-Wert enthält, wird der PCR-Wert in dem PCR-Register zwischengespeichert. Der aktuelle Inhalt des STC-Zählers wird ebenfalls zu diesem Zeitpunkt in dem STC-Register zwischengespeichert und es wird eine Unterbrechung an den Host-Mikroprozessor 116 ausgegeben. Das Zwischenspeichern der beiden Werte eliminiert eine Unsicherheit infolge der veränderlichen Latenzzeit in der Unterbrechungsdienstroutine. In der beispielhaften Ausführungsform der vorliegenden Erfindung enthalten beide Register eine 9 Bit-Basis und eine 33 Bit-Erweiterung. Der Basisteil ist modulo-300, wohingegen die Erweiterung binär ist. Bevor der Registerinhalt bei Berechnungen verwendet werden kann, wird er in einen einzigen binären Zählerstand umgesetzt, indem die Erweiterung mit 300 multipliziert wird und der Basisteil zu dem Ergebnis addiert wird.
  • Das Register Current STC ist ein Nur-Lese-Register, das ermöglicht, dass der Mikrocontroller 116 jederzeit den aktuellen Inhalt des STC erhalten kann. Der Mikrocontroller 116 kann den STC des Videodecodierers oder des Audiodecodierers mit Hilfe des externen Mikrobusses 124 mit diesem Wert initialisieren.
  • Wie oben beschrieben wurde, enthält der Transportdecodierer 110 einen 10 Bit-Digital/Analog-Umsetzer (DAC) zur Verwendung in der Takteinstellungs-Steuerungsschleife in dem Taktmanager 218. Der DAC 230 kann nur beschrieben werden, d. h. die Software hält im Speicher eine Kopie des letzten Wertes, der in den DAC in den Speicher geladen wurde. Im Betrieb wird der DAC 230 verwendet, um die Steuerspannung für den externen spannungsgesteuerten Resonanzkristall-Oszillator VCXO 122 zu erzeugen, der die Quelle der Systemtaktfrequenz (nominell 27 MHz) ist. Durch Vergleichen der PCR- und STC-Werte kann die Software feststellen, ob das lokale Taktsignal eingestellt werden muss. Die Software kann z. B. die Differenz zwischen PCR und STC ermitteln und diesen Fehlerterm zu dem aktuellen Inhalt des Eingangsregisters des DAC 230 addieren.
  • Der Diskontinuitätsaspekt der vorliegenden Erfindung beinhaltet im Überblick:
    • 1) Der Kanaldatenprozessor (CDP) 210 prüft das Synchronisationsbyte in empfangenen Transportpaketen, um die Pakete zu validieren. Der Transportprozessor (TPROC) 214 führt eine syntaktische Analyse des Paketkopfes durch und leitet die Paketnutzlasten zur geeigneten Stelle im Speicher. Die Daten sind anhand der PID-Werte in den Transportpaketköpfen an unterschiedliche FIFO-Puffer (Kanäle) in dem Speicher gerichtet.
    • 2) Da sich ein empfangener Diskontinuitätsindikator nicht notwendigerweise in dem gleichen Paket befindet wie der nächste PCR-Wert, wenn der nächste PCR-Wert empfangen wird, lädt ("jam loads") der TPROC 214 den Zähler in den Taktmanager 218.
    • 3) Wenn das nächste PES-Paket, das ein Byte Stream ID enthält, durch den TPROC 214 in den Speichercontroller 216 geschrieben wird, geht das Signal DMA MARK zum Hochpegel. Dies bewirkt, dass der Speichercontroller 216 eine Unterbrechung an den Mikroprozessor 116 ausgibt und die Adresse des PES-Paketkopfes in einem Eingabezeiger-FIFO speichert. Dieser PES-Paketkopf kann einen Zeitstempel aufweisen (entweder einen Decodierungs-Zeitstempel oder einen Präsentations-Zeitstempel). Der Mikroprozessor 116 durchsucht in Reaktion auf die Unterbrechung vom Speichercontroller 216 die PES-Paketköpfe nach einem Zeitstempel, und wenn er einen Zeitstempel findet, gewinnt er den Zeitstempelwert wieder.
    • 4) Der Mikroprozessor 116 setzt dann eine Zeitgeberunterbrechung, damit sie zu einem Zeitpunkt auftritt, der sich ungefähr eine Rahmendauer vor dem Zeitstempelwert befindet.
    • 5) Wenn die Zeitgeberunterbrechung auftritt, sendet der Mikroprozessor 116 einen neuen PCR-Wert über den externen Mikrobus 124 an die Video- und Audiodecodierer. Dies gibt den Decodierern eine ausreichende Zeit, die Daten zu verarbeiten, bevor ihr Zeitstempel mit dem Zählerwert in dem Video- oder Audiodecodierer verglichen wird, ohne dass die Verarbeitung von Daten, die sich auf den vorherigen PCR-Wert beziehen, gestört wird.
  • VIDEO/AUDIODECODIERER 224, 226, 228
  • Nachdem die Transportpakete empfangen, verarbeitet und gespeichert wurden, wie oben erwähnt wurde, liest der Speichercontroller 216 die PES-Pakete aus dem Speicher 114 aus und leitet sie an die externen Video- und Audiodecodierer weiter. Bevor jedoch die PES-Pakete die externen Decodierer 118 und 120 erreichen, werden sie durch interne Video- und Audioprozessoren 224, 226 und 228 verarbeitet.
  • Eine wichtige Aufgabe dieser internen Prozessoren besteht darin, sicherzustellen, dass der Datenstrom, der den Transportdecodierer verlässt, mit den externen Decodierern kompatibel ist. Das heißt, verschiedene externe Decodierer haben unterschiedliche Datenanforderungen.
  • Einige der gegenwärtig zur Verfügung stehenden externen Videodecodierer können z. B. einen Strom von PES-Paketen, die einen Paketkopf und Nutzlast enthalten, im Wesentlichen in der gleichen Form akzeptieren, wie er aus dem Speicher ausgelesen wird. Einige externe Decodierer können dagegen zur Verarbeitung nur einen Elementarstrom akzeptieren (d. h. PES-Paket-Nutzlasten, jedoch keine Paketköpfe). Der zuletzt genannte Typ kann außerdem zusätzlich zu dem Datenstrom zugeordnete Steuerinformationen, wie etwa Zeitstempel und Byte-Zählerstände, erfordern. Ein derartiger Videodecodierer ist der von C-Cube hergestellte CL9100 mit der Spezifikation CL9100 Multimode Video Decoder, Benutzerhandbuch (10/94). Demzufolge ist der Videoprozessor 224 durch den Mikroprozessor 116 konfigurierbar, um den abgehenden Datenstrom so zu formatieren, dass er mit den Anforderungen des ausgewählten externen Decodierers kompatibel ist.
  • In Bezug auf die Handhabung der Schnittstelle zu einem externen Decodierer, wie etwa ein C-Cube CL9100, verarbeitet der Videoprozessor 224 den Strom von PES-Paketen, um den PES-Paketkopf abzutrennen und aus dem PES-Paketkopf Zeitstempel-Informationen zu extrahieren. Außerdem führt der Videoprozessor 224 einen Byte-Zählerstand unter Verwendung eines (nicht gezeigten) Zählers für die PES-Pakete, die zu dem externen Decodierer weitergeleitet werden. Deswegen hält der Videoprozessor 224 Zeitstempel-Informationen, führt einen Byte-Zählerstand und leitet die PES-Paket-Nutzlasten weiter zu dem externen Videodecodierer. Damit die Zeitstempel- und Zählerstand-Informationen zu dem externen Decodierer gelangen, sendet der Videoprozessor 224 eine Unterbrechung an den Mikroprozessor 116, der dann, wenn er reagiert, die Zeitstempel- und Zählerstand-Informationen über den Mikrobus 223 von dem Videoprozessor 224 liest und diese Steuerinformationen über den externen Mikrobus 124 an den externen Videodecodierer liefert.
  • Bevor jedoch der Mikroprozessor 116 auf die Unterbrechung vom Videoprozessor 224 reagieren kann, trifft manchmal ein weiterer Paketkopf mit Zeitstempel-Informationen ein. Dies kann z. B, dann auftreten, wenn der Mikroprozessor 116 für längere Zeit mit einer Aufgabe höherer Priorität beschäftigt war. In diesem Fall speichert der Videoprozessor 224 die Zeitstempel-Informationen zusammen mit einem Status. Der Videoprozessor 224 führt im Einzelnen ein Statusregister, das angibt, ob der Mikroprozessor Zeitstempel "verpasst" hat. Wenn in der beispielhaften Ausführungsform der Erfindung der Mikroprozessor 116 schließlich beginnt, die Zeitstempel-Informationen zu lesen, gewinnt er nur den neuesten Zeitstempel wieder, falls er einen oder mehr Zeitstempel verpasst hat, was durch den Status angegeben wird.
  • Da zusätzlich Zeitstempel-Informationen und Byte-Zählerstand-Informationen an den externen Decodierer zu liefern sind, wenn der Mikroprozessor 116 einen Zeitstempel verpasst, führt der Videoprozessor 224 einen kumulativen Byte-Zählerstand, da beliebig viele Zeitstempel ankommen können, bevor der Mikroprozessor 116 die Informationen liest. Dadurch liest der Mikroprozessor 116 den neuesten Zeitstempel und den kumulativen Byte-Zählerstand und liefert diese Informationen an den externen Videodecodierer. Anschließend können das Statusregister und der Byte-Zählerstand zurückgesetzt werden.
  • Wie in dem Ablaufplan von 5A gezeigt ist, werden die Paketköpfe der empfangenen Daten zerlegt und syntaktisch analysiert (Schritt 510), Zeitstempel-Informationen werden gespeichert und ein Byte-Zählerstand wird geführt (Schritt 512), eine Unterbrechung wird durch den Videoprozessor 224 an den Mikroprozessor 116 ausgegeben, die ihn benachrichtigt, dass Zeitstempel-Informationen zum Lesen zur Verfügung stehen (Schritt 514), falls zusätzliche Zeitstempel-Informationen empfangen werden, bevor der Mikroprozessor die vorherigen Zeitstempel-Informationen liest, werden die neuen Zeitstempel-Informationen gespeichert, der Byte-Zählerstand wird weiter akkumuliert (Schritt 516) und der Videoprozessor 224 gibt eine weitere Unterbrechung an den Mikroprozessor 116 aus, andernfalls liest der Mikroprozessor das Statusregister, die Zeitstempel-Informationen und die Byte-Zählerstand-Informationen und liefert sie an den externen Videodecodierer (Schritt 518).
  • Ein weiteres Beispiel der Verwendung bestimmter externer Decodierer beinhaltet die Verwendung von Decodierern mit eingeschränkter Bitrate, wie etwa der Zoran ZR38500 AC3 Audiodecodierer mit einer Spezifikation (10/94). Die meisten Audiodecodierer haben im Allgemeinen eine Datenanforderung, die angibt, dass sie Audiodaten akzeptieren können, und der Transportdecodierer 110 liefert dann über die Audioprozessoren 226/228 Audiodaten, bis der externe Audioprozessor die Anforderungen aufhebt. Mit anderen Worten, es gibt einen Quittungsmechanismus.
  • Decodierer mit eingeschränkter Bitrate, wie etwa der Zoran AC3 Audiadecodierer, erfordern jedoch, dass Audio-AC3-Daten als Audio-Datenrahmen geliefert werden, wobei jeder Rahmen eine Rahmendauer und eine Bitrate in seinem Paketkopf enthält. Eine Lieferung von Daten über diese vorbestimmte Datenrate hinaus kann einen Überlauf der internen Puffer und demzufolge einen Datenverlust bewirken. Diese Decodierer mit eingeschränkter Bitrate stellen darüber hinaus kein Signal Data-Ready bereit, das angibt, dass sie zum Aufnehmen weiterer Audiodaten bereit sind.
  • Deswegen sind die Audioprozessoren 226 und 228 wie der Videodecodierer 224 konfigurierbar, um sich an den ausgewählten externen Audiodecodierer anzupassen. Es wird angemerkt, dass in der beispielhaften Ausführungsform der vorliegenden Erfindung die Audioprozessoren 226 und 228 mit Ausnahme der Adresse, die einen Zugriff durch den Mikroprozessor 116 ermöglicht, im Wesentlichen identisch sind.
  • Demzufolge nehmen die Audioprozessoren 226/228 dann, wenn sie für eine Verbindung mit diesem Typ des Audiodecodierers programmiert sind, an, dass der Decodierer bereits ein Datenanforderungssignal ausgibt. Da jedoch PES-Paket-Audiodaten vom Speichercontroller 216 an die Audioprozessoren 226/228 geliefert werden, wird der PES-Paketkopf der empfangenen Daten durch die Audioprozessoren syntaktisch analysiert. In dem syntaktisch analysierten Paketkopf sind die Rahmengröße und die Bitrate für die Audiodaten enthalten. Aus der Rahmengröße und der Bitrate können die Audioprozessoren 226/228 die Rahmengrenze (d. h. die Rahmendauer) bestimmen. Nachdem sie die Rahmendauer-Informationen besitzen, setzen die Audioprozessoren 226/228 einen Rahmenzeitgeber in der Weise, dass dann, wenn Audiodaten zur Verfügung stehen, der Zeitgeber gesetzt wird, ein Rahmen aus Daten "stoßweise" von den Audioprozessoren 226/228 an den externen Decodierer ausgegeben wird und anschließend eine Pause eintritt, bis der Rahmenzeitgeber abläuft. Wenn der Zeitgeber abläuft, setzt sich der Zyklus mit jeweils einem Rahmen zu einem Zeitpunkt fort, während zusätzliche Rahmen zum Senden an den externen Audiodecodierer zur Verfügung stehen.
  • Steuerinformationen, wie etwa Zeitstempel, werden durch den Mikroprozessor wiedergewonnen und über den externen Mikrobus geliefert.
  • Wie in dem Ablaufplan der 5B gezeigt ist, werden PES-Pakete aus dem Speicher wiedergewonnen (Schritt 542), die Paketköpfe der empfangenen Daten werden zerlegt und syntaktisch analysiert (Schritt 530), eine Rahmendauer wird bestimmt (Schritt 532), der Zeitgeber beginnt zu laufen (Schritt 534), die Audioprozessoren 226/228 geben einen Rahmen aus Daten stoßweise aus (Schritt 536) und die Audioprozessoren 226/228 pausieren, bis der Zeitgeber abläuft (Schritt 538), wobei die Schritte 542, 530 und 532 in der gezeigten Weise während der Pause ausgeführt werden können. Anschließend kann der Prozess fortgesetzt werden.
  • Obwohl die Erfindung hier als ein Verfahren und eine Vorrichtung zum Aktualisieren der Systemzeitkonstante nach einer Diskontinuität in einem MPEG-2-Transportdatenstrom veranschaulicht und beschrieben wurde, soll die Erfindung nicht auf die gezeigten Einzelheiten beschränkt sein. Statt dessen können verschiedene Modifikationen an den Einzelheiten im Umfang und im Bereich von Entsprechungen der Ansprüche ausgeführt werden.

Claims (5)

  1. Verfahren für die Verwendung in einem Transportdecodierersystem, das für die Decodierung eines Transportdatenstroms entworfen ist, der Transportpakete mit Paketköpfen und Nutzlasten enthält, wobei die Paketköpfe einen Diskontinuitätsindikator enthalten, wobei das System wenigstens einen Puffer (114) zum temporären Speichern des empfangenen Transportdatenstroms und wenigstens einen Decodierer (118, 120) zum Decodieren von von dem Puffer (114) ausgegebenen Daten für Präsentationszwecke enthält, wobei sowohl der Transportdecodierer (110) als auch der Decodierer (118, 120) getrennte Zähler besitzen, wobei das Verfahren ein Verfahren für die Handhabung des Empfangs einer Programmtaktreferenz (PCR) ist und die folgenden Schritte umfasst: Empfangen des Diskontinuitätsindikators; syntaktisches Analysieren empfangener Transportpakete und Speichern der Daten im Speicher (114); bei Empfang eines nächsten PCR-Wertes Laden des Transportdecodierer-Zählers mit dem empfangenen Programmtaktreferenz-Wert; Durchsuchen der in dem Speicher (114) gespeicherten Daten, die nach dem PCR-Wert empfangen werden, nach einem Präsentationszeitstempel-Wert oder einem Decodierungszeitstempel-Wert und Wiedergewinnen des gesuchten Zeitstempelwertes; Setzen einer Zeitgeberunterbrechung, damit sie zu einem Zeitpunkt auftritt, die sich ungefähr eine Rahmendauer vor dem empfangenen Zeitstempelwert befindet; und wenn die Zeitgeberunterbrechung auftritt, Senden des PCR-Wertes zu dem Zähler des Decodierers.
  2. Verfahren nach Anspruch 1, bei dem der Durchsuchungsschritt umfasst: bei Empfang eines Transportpakets, das einen Präsentationszeitstempel-Wert oder einen Decodierungszeitstempel-Wert enthalten kann, Unterbrechen eines Host- Mikrocontrollers (116), um die Adresseninformationen des Host-Mikrocontrollers, die auf das gespeicherte Transportpaket bezogen sind, zu senden; anschließend an der geeigneten Adressenstelle des gespeicherten Transportpakets Suchen nach einem Präsentationszeitstempel-Wert oder einem Decodierungszeitstempel-Wert.
  3. Verfahren nach Anspruch 1, das ferner den folgenden Schritt umfasst: vor dem syntaktischen Analysieren Validieren empfangener Transportpakete durch Feststellen, ob ihre Grenzen vorgegebenen Paketgrenzen entsprechen, wobei nur jene Pakete syntaktisch analysiert werden, die validiert worden sind.
  4. Verfahren nach Anspruch 3, bei dem der Schritt des Validierens der empfangenen Transportpakete das Prüfen eines Synchronisationsbytes in dem empfangenen Transportpaket umfasst.
  5. System, das einen Transportdatenstrom empfängt, der Transportpakete mit Paketköpfen und Nutzlasten enthält, wobei die Paketköpfe einen Diskontinuitätsindikator enthalten, wobei das System wenigstens einen Puffer (114) zum temporären Speichern des empfangenen Transportdatenstroms und wenigstens einen Decodierer (118, 120) zum Decodieren von von dem Puffer (1149 ausgegebenen Daten für Präsentationszwecke umfasst, wobei sowohl der Transportdecodierer (110) als auch der eine Decodierer (118, 120) getrennte Zähler besitzen, wobei das System eine Vorrichtung für die Handhabung des Empfangs eines Diskontinuitätsindikators enthält und umfasst: Mittel (214), um einen Diskontinuitätsindikator zu empfangen und zu dedektieren; Mittel (214), um die Transportpakete syntaktisch zu analysieren und um die Daten im Speicher zu speichern; Mittel (214), um bei Empfang eines nächsten Programmtaktreferenz-Wertes den Transportdecodierer-Zähler mit dem empfangenen Programmtaktreferenzwert zu laden; Mittel (216, 116), um die im Speicher gespeicherten Daten nach einem Präsentationszeitstempel-Wert oder nach einem Decodierungszeitstempel-Wert zu durchsuchen und um dann, wenn er gefunden wird, den gesuchten Zeitstempelwert wiederzugewinnen; Mittel (116), um eine Zeitgeberunterbrechung so zu setzen, dass sie zu einem Zeitpunkt auftritt, der sich ungefähr eine Rahmendauer vor dem wiedergewonnenen Zeitstempelwert befindet; und Mittel (116), um dann, wenn die Zeitgeberunterbrechung auftritt, den Programmtaktreferenz-Wert zu dem Zähler des einen Decodierers zu senden.
DE69736031T 1996-03-29 1997-03-24 Transportdekodierer für MPEG-2 Expired - Fee Related DE69736031T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US626184 1996-03-29
US08/626,184 US5818539A (en) 1996-03-29 1996-03-29 System and method for updating a system time constant (STC) counter following a discontinuity in an MPEG-2 transport data stream

Publications (2)

Publication Number Publication Date
DE69736031D1 DE69736031D1 (de) 2006-07-20
DE69736031T2 true DE69736031T2 (de) 2006-10-19

Family

ID=24509318

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69736031T Expired - Fee Related DE69736031T2 (de) 1996-03-29 1997-03-24 Transportdekodierer für MPEG-2

Country Status (6)

Country Link
US (1) US5818539A (de)
EP (1) EP0798932B1 (de)
JP (1) JP3883637B2 (de)
KR (1) KR100248456B1 (de)
CN (1) CN1108698C (de)
DE (1) DE69736031T2 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3149328B2 (ja) * 1995-01-09 2001-03-26 松下電器産業株式会社 送信装置と受信装置
CA2206614A1 (en) * 1997-05-30 1998-11-30 Richard A. Kupnicki Method and apparatus for absolute time descriptor universal reference signals for the synchronization of video and audio equipment in analog and digital areas
KR100234265B1 (ko) * 1997-06-17 1999-12-15 윤종용 캡션 데이터 처리 회로 및 그 방법
JP3815854B2 (ja) * 1997-06-20 2006-08-30 富士通株式会社 ディジタルpll回路およびmpegデコーダ
US6088357A (en) * 1997-09-26 2000-07-11 International Business Machines Corporation Auxiliary transport assist processor especially for an MPEG-2 compliant decoder
US6356567B2 (en) * 1997-09-26 2002-03-12 International Business Machines Corporation Embedded clock recovery and difference filtering for an MPEG-2 compliant transport stream
US6115422A (en) * 1997-09-26 2000-09-05 International Business Machines Corporation Protocol and procedure for time base change in an MPEG-2 compliant datastream
JP3418966B2 (ja) * 1997-10-09 2003-06-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 同期化方法及びデコーダ
JP3389843B2 (ja) 1997-10-17 2003-03-24 日本電気株式会社 情報処理装置におけるデジタル放送受信システム
DE69732150T2 (de) * 1997-10-31 2006-01-12 Stmicroelectronics Asia Pacific (Pte) Ltd. Anordnung und verfahren für paketauflösung und zum ausrichten von eingangsdatenpaketen
EP0917356A1 (de) * 1997-11-17 1999-05-19 CANAL+ Société Anonyme Paketfilterung
DE69902874T2 (de) * 1998-01-07 2003-01-30 Thomson Licensing Sa Vorrichtung zur erzeugung einer verzögerung für videolippensynchronisation und verfahren dafür
US5973758A (en) * 1998-01-14 1999-10-26 C-Cube Microsystems, Inc. Video synchronization
US6310898B1 (en) * 1998-01-27 2001-10-30 Tektronix, Inc. Compressed video and audio transport stream multiplexer
US6330285B1 (en) * 1998-02-11 2001-12-11 Tektronix, Inc. Video clock and framing signal extraction by transport stream “snooping”
EP0979005B1 (de) * 1998-02-20 2007-12-05 Matsushita Electric Industrial Co., Ltd. Bilddekodierer
JPH11275524A (ja) * 1998-03-20 1999-10-08 Pioneer Electron Corp データ記録方法、データ再生方法、データ記録装置およびデータ再生装置
US6097699A (en) * 1998-06-05 2000-08-01 Gte Laboratories Incorporated Method and system for monitoring broadband quality of services
US6308280B1 (en) * 1998-06-25 2001-10-23 Hughes Electronics Corporation System for synchronizing discrete components to a common clock source
US6326960B1 (en) * 1998-09-04 2001-12-04 National Semiconductor Corporation Video output phase control in a decoder
US6175884B1 (en) * 1998-11-03 2001-01-16 Intel Corporation Efficient communication of transaction types using separate and orthogonal attribute fields in packet headers transferred between hubs in a computer system
KR100335441B1 (ko) * 1999-05-01 2002-05-04 윤종용 다중 비디오 디코딩 장치 및 그 방법
EP1496654B1 (de) * 1999-05-25 2006-07-12 Lucent Technologies Inc. Verfahren für Telekommunikation mit Internetprotokoll
EP1250812B1 (de) 1999-07-13 2003-11-26 Thomson Licensing S.A. System zur verarbeitung von fehlern in programmspezifischen informationen innerhalb eines videodekoders
CA2313979C (en) * 1999-07-21 2012-06-12 Thomson Licensing Sa Synchronizing apparatus for a compressed audio/video signal receiver
JP3406255B2 (ja) * 1999-09-29 2003-05-12 松下電器産業株式会社 画像復号装置および方法
US6690683B1 (en) 1999-11-23 2004-02-10 International Business Machines Corporation Method and apparatus for demultiplexing a shared data channel into a multitude of separate data streams, restoring the original CBR
US6429902B1 (en) * 1999-12-07 2002-08-06 Lsi Logic Corporation Method and apparatus for audio and video end-to-end synchronization
US6459738B1 (en) * 2000-01-28 2002-10-01 Njr Corporation Method and apparatus for bitstream decoding
FR2806574B1 (fr) * 2000-03-15 2002-05-03 Thomson Multimedia Sa Dispositif de synchronisation d'applications interactives dans un recepteur de television
US6801536B1 (en) * 2000-03-23 2004-10-05 International Business Machines Corporation Remultiplexing audio/video PES streams from an MPEG transport system
CA2349914C (en) * 2000-06-09 2013-07-30 Invidi Technologies Corp. Advertising delivery method
US6940873B2 (en) * 2000-12-27 2005-09-06 Keen Personal Technologies, Inc. Data stream control system for associating counter values with stored selected data packets from an incoming data transport stream to preserve interpacket time interval information
US6870887B2 (en) * 2001-04-09 2005-03-22 International Business Machines Corporation Method and system for synchronization between different content encoding formats
US7280738B2 (en) 2001-04-09 2007-10-09 International Business Machines Corporation Method and system for specifying a selection of content segments stored in different formats
US20020145622A1 (en) * 2001-04-09 2002-10-10 International Business Machines Corporation Proxy content editing system
US7730509B2 (en) 2001-06-08 2010-06-01 Invidi Technologies Corporation Asset delivery reporting in a broadcast network
US8676025B2 (en) * 2002-03-01 2014-03-18 Broadcom Corporation Method of timebase management for MPEG decoding with personal video recording functionality
JP4084646B2 (ja) * 2001-12-26 2008-04-30 松下電器産業株式会社 デジタル放送受信再生機能付き通信端末
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
KR100931915B1 (ko) 2002-01-23 2009-12-15 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
US7336667B2 (en) * 2002-11-21 2008-02-26 International Business Machines Corporation Apparatus, method and program product to generate and use CRC in communications network
JP4431537B2 (ja) * 2003-06-16 2010-03-17 パナソニック株式会社 パケット処理装置及び方法
JP4459590B2 (ja) * 2003-10-10 2010-04-28 パナソニック株式会社 Dtvデータ処理装置
CN101180875B (zh) 2005-01-12 2010-11-03 英维迪技术公司 广播网络资产交付的定向印象模型
US20090094640A1 (en) * 2007-09-26 2009-04-09 Anderson Bruce J Targeted advertising in unicast, multicast and hybrid distribution system contexts
US20130254787A1 (en) 2006-05-02 2013-09-26 Invidi Technologies Corporation Method and apparatus to perform real-time audience estimation and commercial selection suitable for targeted advertising
AU2007247996B2 (en) 2006-05-02 2012-07-12 Invidi Technologies Corporation Fuzzy logic based viewer identification
US20100138290A1 (en) * 2006-06-12 2010-06-03 Invidi Technologies Corporation System and Method for Auctioning Avails
US20070288953A1 (en) * 2006-06-12 2007-12-13 Sheeman Patrick M System and method for auctioning avails
EP2039154A4 (de) * 2006-06-12 2011-05-04 Invidi Tech Corp System und verfahren zur medieneingabe auf der basis von stichwortsuche
CN1901548B (zh) * 2006-07-26 2012-10-03 白杰 缓冲区管理方法
WO2008094960A2 (en) * 2007-01-30 2008-08-07 Invidi Technologies Corporation Asset targeting system for limited resource environments
US8146126B2 (en) 2007-02-01 2012-03-27 Invidi Technologies Corporation Request for information related to broadcast network content
WO2010017315A2 (en) 2008-08-05 2010-02-11 Invidi Technologies Corporation National insertion of targeted advertisment
WO2010017379A2 (en) 2008-08-06 2010-02-11 Invidi Technologies Corporation Third party data matching for targeted advertising
JP2010232861A (ja) * 2009-03-26 2010-10-14 Sony Corp 情報処理装置、音声信号処理方法、およびプログラム
JP5496548B2 (ja) * 2009-05-29 2014-05-21 ルネサスエレクトロニクス株式会社 半導体集積回路
JP4999915B2 (ja) * 2009-12-21 2012-08-15 パナソニック株式会社 Dtvデータ処理装置
JP2011188310A (ja) * 2010-03-09 2011-09-22 Toshiba Corp 同期データ検出装置、同期データ検出方法及びプログラム
US8677028B2 (en) 2010-08-23 2014-03-18 Qualcomm Incorporated Interrupt-based command processing
KR102521298B1 (ko) * 2018-02-14 2023-04-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11762584B2 (en) 2020-10-22 2023-09-19 International Business Machines Corporation Inferring the state of a write-only device by mapping control register values and feedback signal values

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5486864A (en) * 1993-05-13 1996-01-23 Rca Thomson Licensing Corporation Differential time code method and apparatus as for a compressed video signal
US5566174A (en) * 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
US5473385A (en) * 1994-06-07 1995-12-05 Tv/Com Technologies, Inc. Clock correction in a video data decoder using video synchronization signals
US5502496A (en) * 1994-06-09 1996-03-26 Thomson Consumer Electronics, Inc. Apparatus for providing audible instructions or status information for use in a digital television system
JP3371174B2 (ja) * 1994-09-22 2003-01-27 ソニー株式会社 パケット受信装置
US5588029A (en) * 1995-01-20 1996-12-24 Lsi Logic Corporation MPEG audio synchronization system using subframe skip and repeat
US5517250A (en) * 1995-02-28 1996-05-14 General Instrument Corporation Of Delaware Acquisition of desired data from a packetized data stream and synchronization thereto
US5650825A (en) * 1995-03-31 1997-07-22 Matsushita Electric Corporation Of America Method and apparatus for sending private data instead of stuffing bits in an MPEG bit stream
US5699392A (en) * 1995-11-06 1997-12-16 Stellar One Corporation Method and system for the recovery of an encoder clock from an MPEG-2 transport stream
US5703877A (en) * 1995-11-22 1997-12-30 General Instrument Corporation Of Delaware Acquisition and error recovery of audio data carried in a packetized data stream
US5675654A (en) * 1996-03-29 1997-10-07 Matsushita Electric Corporation Of America System and method for interfacing a transport decoder to a national renewable security systems (NRSS) smart card

Also Published As

Publication number Publication date
JP3883637B2 (ja) 2007-02-21
DE69736031D1 (de) 2006-07-20
KR100248456B1 (ko) 2000-03-15
CN1108698C (zh) 2003-05-14
US5818539A (en) 1998-10-06
EP0798932A2 (de) 1997-10-01
EP0798932A3 (de) 2003-06-04
EP0798932B1 (de) 2006-06-07
CN1173783A (zh) 1998-02-18
JPH1093960A (ja) 1998-04-10

Similar Documents

Publication Publication Date Title
DE69736031T2 (de) Transportdekodierer für MPEG-2
DE69633475T2 (de) Aufnahme gewünschter Daten aus einem Strom paketierter Daten und Synchronisierung davon
US6275507B1 (en) Transport demultiplexor for an MPEG-2 compliant data stream
US6181706B1 (en) Common buffer for multiple streams and control registers in an MPEG-2 compliant transport register
US6115422A (en) Protocol and procedure for time base change in an MPEG-2 compliant datastream
DE602004004096T2 (de) System und verfahren zur bereitstellung von multiplexen und neumultiplexen von mpeg-2-strömen
DE69933721T2 (de) DMA-Steuereinheit
DE19811292B4 (de) MPEG-II-System mit PES-Decodierer
DE69735379T2 (de) Schnelle abtrennung von programmspezifischer information aus mehreren transportströmen
DE69637230T2 (de) Transportkodierer für einen Paketstrom und Verfahren zu dessen Betrieb
DE69731865T2 (de) Verfahren zur Verbindung von komprimierten paketierten digitalen Videoströmen
US6026506A (en) Concealing errors in transport stream data
DE69830752T2 (de) Verfahren und Anlage zur Aufnahme vielfachprotokoll-komprimierter Ton- und Videodaten
US6078594A (en) Protocol and procedure for automated channel change in an MPEG-2 compliant datastream
US6356567B2 (en) Embedded clock recovery and difference filtering for an MPEG-2 compliant transport stream
DE69333982T2 (de) Verfahren zum Anordnen komprimierter Videodaten zur Übertragung über einen verrauschten Kanal
US5828416A (en) System and method for interfacing a transport decoder to a elementary stream video decorder
DE69736706T2 (de) Verfahren und gerät zum spleissen komprimierter datenflüsse
DE69628513T2 (de) Vorrichtung und Verfahren zur Bereitstellung eines interaktiven Programmführers für Veranstaltungen in einem Informationsnetzwerk
US6229801B1 (en) Delivery of MPEG2 compliant table data
DE60131647T2 (de) Programmiergerät und -verfahren für rundsendeprogrammaufzeichnung
DE69534750T2 (de) Umwandlungssystem für MPEG-Informationssignale
DE60310514T2 (de) Verfahren und Vorrichtung zur Synchronisation der Wiedergabe von Audio- und/oder Video-Frames
DE4322356B4 (de) Einrichtung zum Steuern der Rücksetzung in einem Videosignalcodierer
US6091772A (en) Black based filtering of MPEG-2 compliant table sections

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: PANASONIC CORP., KADOMA, OSAKA, JP

8339 Ceased/non-payment of the annual fee