-
Die
vorliegende Erfindung bezieht sich auf einen Videodekompressionsprozessor,
und insbesondere auf ein effizientes Modell zum Erfassen erwünschter
Daten, wie etwa zu decodierender Videodaten, aus einem paketierten
Datenstrom.
-
Digitale Übertragung
von Fernsehsignalen kann Video- und Audiodienstleistungen liefern,
die eine viel höhere
Qualität
als analoge Techniken aufweisen. Digitale Übertragungsmodelle insbesondere für Signale
von Vorteil, die über
ein Kabelfernsehnetz oder über
Satelliten zu angeschlossenen Kabelfernsehunternehmen und/oder direkt
zu Heimsatellitenfernsehempfängern
rundgesendet werden. Es wird erwartet, dass digitale Fernsehsender-
und -empfängersysteme
existierende analoge Systeme genauso ersetzen werden, wie in der
Audioindustrie digitale CDs analoge Schallplattenaufzeichnungen
ersetzt haben.
-
Bei
jedem digitalen Fernsehsystem muss eine wesentliche Menge digitaler
Daten übertragen werden.
Bei einem digitalen Fernsehsystem empfängt ein Teilnehmer den digitalen
Datenstrom über einen
Empfänger/Entwürfler, der
dem Teilnehmer Video, Audio und Daten liefert. Um das verfügbare Funkfrequenzspektrum
am effizientesten zu nutzen, ist es vorteilhaft, die digitalen Fernsehsignale
zu komprimieren, um die Datenmenge, die übertragen werden muss, zu minimieren.
-
Der
Videoteil eines Fernsehsignals umfasst eine Sequenz von Video- „Einzelbildern", die zusammen ein
sich bewegendes Bild bereitstellen. Bei digitalen Fernsehsystemen
ist jede Zeile eines Videoeinzelbildes durch eine Sequenz digitaler
Datenbits definiert, die als „Pixel" bezeichnet werden.
Zum Definieren jedes Videoeinzelbildes eines Fernsehsignals ist eine
große
Datenmenge erforderlich. Zum Beispiel sind 7,4 Megabit an Daten
erforderlich, um ein Videoeinzelbild mit NTSC (National Television
System Committee)-Auflösung
bereitzustellen. Dabei wird angenommen, dass eine Anzeige aus 640
Pixeln mal 480 Zeilen mit acht Bits an Intensitätswert für jede der Primärfarben
Rot, Grün
und Blau verwendet wird. Um bei PAL (phase alternation line = zeilenweiser
Phasenwechsel)-Auflösung ein
Videoeinzelbild bereitzustellen, sind 9,7 Megabits an Daten erforderlich.
In diesem Fall wird eine Anzeige aus 704 Pixeln mal 576 Zeilen mit
acht Bits an Intensitätswert für jede der
Primärfarben
Rot, Grün
und Blau verwendet. Um diese Informationsmenge zu verwalten, müssen die
Daten komprimiert werden.
-
Videokompressionstechniken
ermöglichen die
effiziente Übertragung
digitaler Videosignale über herkömmliche
Kommunikationskanäle.
Derartige Techniken verwenden Kompressionsalgorithmen, die die Korrelation
zwischen benachbarten Pixeln nutzen, um eine effizientere Darstellung
der wichtigen Informationen in einem Videosignal abzuleiten. Die leistungsfähigsten
Kompressionssysteme nutzen nicht nur die räumliche Korrelation, sondern
können auch Ähnlichkeiten
zwischen benachbarten Einzelbildern benutzen, um die Daten weiter
zu verdichten. Bei derartigen Systemen wird üblicherweise eine Differenzcodierung
verwendet, um nur die Differenz zwischen einem tatsächlichen
Einzelbild und einer Prädiktion
des tatsächlichen
Einzelbildes zu übertragen. Die
Prädiktion
basiert auf aus einem vorausgegangenen Einzelbild derselben Videosequenz
abgeleiteten Informationen.
-
Beispiele
von Videokompressionssystemen, die Bewegungskompensation verwenden,
finden sich bei Krause et al., U.S. Patente 5,057,916; 5,068,724;
5,091,782; 5,093,720 und 5,235,419. Im Allgemeinen nutzen derartige
Bewegungskompensationssysteme einen Block zuordnenden Bewegungsabschätzalgorithmus
aus. In diesem Fall wird ein Bewegungsvektor für jeden Block in einem aktuellen Einzelbild
eines Abbildes bestimmt, indem in einem vorausgegangenen Einzelbild
ein Block identifiziert wird, der dem jeweiligen aktuellen Block
am ehesten ähnelt.
Das ganze aktuelle Einzelbild kann dann bei einem Decodierer rekonstruiert
werden, indem die Differenz zwischen den entsprechenden Blockpaaren,
zusammen mit den Bewegungsvektoren, die zum Identifizieren der entsprechenden
Paare benötigt
werden, gesendet wird. Die Menge übertragener Daten wird oftmals
weiter reduziert, indem sowohl die versetzten Blockdifferenzen als
auch die Bewegungsvektorsignale komprimiert werden. Block zuordnende
Bewegungsschätzalgorithmen
sind besonders effektiv, wenn sie mit auf Blöcken basierenden räumlichen
Kompressionstechniken, wie etwa der diskreten Cosinus-Transformation
(DCT), kombiniert werden.
-
Ein
Weg zur Übertragung
der komprimierten Videodaten an einen Empfänger ist in der Form von Paketen,
die in einem paketierten Datenstrom enthalten sind. Typischerweise
werden die die komprimierten Videodaten tragenden Pakete mit anderen
Paketen, welche z. B. entsprechende Audiodaten und Steuerinformationen
tragen, die zur Rekonstruktion eines Fernsehsignals notwendig sind,
gemultiplext. Eine Norm zum Transport digitaler Fernsehsignale auf
diese Weise ist die MPEG-2-Norm, deren Einzelheiten in dem Dokument
AVC-491, 1. Version, April 1993, veröffentlicht vom Telecommunications
Standardization Sector, Study Group 15, Experts Group 4ATM-Video
Coding der International Organisation for Standardization, ISO-IEC/JTC1/SC29/VUG11
mit dem Titel „Coded
Representation of Picture and Audio Information", gefunden werden können. Weitere Einzelheiten
der Videosyntax und -semantik für MPEG-2-Video
können
in dem Dokument ISO/IEC 13818-2 Internationale Norm, 1995, der International Organisation
for Standardization mit dem Titel „Generic Coding of Moving
Pictures and Associated Audio Information: Video" gefunden werden. Ebenfalls von Interesse
ist das Dokument MC68VDP/D, ein vorläufiges Datenblatt mit dem Titel „MPEG-2/DCII Video
Decompression Processor", ©Motorola
Microprocessor and Memory Technologies Group, 1994, das einen Videodekompressionsprozessor,
der die MPEG-2- und die DigiCipher® II-Norm verwendet, beschreibt.
-
Bei
dem MPEG-2-System (und dem ähnlichem
DigiCipher® II-System,
gesetzlich geschützt
für General
Instrument Corporation, dem Zessionar hiervon) ist ein Transportstrom
oder Transportmultiplex aus einem angrenzenden Satz von Paketen
fester Länge
zusammengesetzt. Jedes Paket ist insgesamt 188 Bytes lang, wobei
die ersten vier dieser Bytes als Paketkopf definiert sind. Der Nutzlastteil
jedes Pakets beträgt
somit normalerweise 184 Bytes. Es kann jedoch ein Anpassungsfeld
mit variabler Länge
bereitgestellt sein, um den Anfangsblock bei Bedarf zu erweitern.
Wenn ein Anpassungsfeld vorhanden ist, ist der Nutzlastteil des
Pakets entsprechend kürzer.
-
Verschiedene
Zeitsteuerungs- und Identifizierungsinformationen sind in unterschiedlichen
Teilen des Transportstroms bereitgestellt. Diese umfassen eine Paketkennung
(PID), die in dem Transportanfangsblock jedes Transportpakets zu
finden ist, um eine Bezugsnummer zum Kennzeichnen der Transportpakete,
die eine spezifische Dienstleistungskomponente tragen, bereitzustellen.
Diese Nummer ist in einer Dienstleistungsbestimmung oder einer „Dienstleistungsübersicht" eingeschlossen,
die vom Empfänger
verwendet wird, um diejenigen Transportpakete, die zum Rekonstruieren
eines Fernsehprogrammsignals erforderlich sind, zu identifizieren.
Die PID kann auch für
verschiedene Dienstetrennungs- und Remultiplexfunktionen mit Verweisen
versehen sein. In dem Fall von Video-, Audio- oder isochronen Daten
stellt der Strom von mit einer einzelnen PID markierten Paketen
einen Elementarstrom einer einzelnen Video-, Audio- bzw. isochronen Datendienstleistung
dar.
-
Von
dem Transportstrom getragene Zeitsteuerungsinformation umfasst eine
Programmtaktreferenz (PCR = Program Clock Reference), die einen Abtastwert
der Systemtakt (STC)-Zeitbasis, die der Dienstleistung zu Grunde
liegt und aus den PIDs, auf die in der Dienstleistungsübersicht
verwiesen wird, zusammengestellt ist, wirksam darstellt. Auf die
das Paket mit der PCR tragende PID ist ebenfalls in der Dienstleistungsübersicht
verwiesen. Die Video-, Audio- und isochronen Datenkomponenten einer Dienstleistung
sind durch eine festgelegte Beziehung mit dem Systemtakt synchronisiert.
Die PCR dient zum Definieren der Transportrate, in dem Sinn, dass zwischen
zwei aufeinander folgenden PCRs in einer PID die Transportrate konstant
ist und nominal gleich dem Systemtakt multipliziert mit dem Verhältnis der Gesamtzahl
von Transportbits zwischen den PCRs, geteilt durch den Unterschied
der PCRs in Einheiten von Systemtaktzählern.
-
Die
von dem Transportstrom getragene Zeitsteuerungsinformation umfasst
auch Zeitstempel für den
Beginn des Decodierens und der Präsentation von Daten für die Anzeige.
Der Präsentationszeitstempel
(PTS = Presentation Time Stamp) wird zur Erfassung von Dienstleistungskomponenten
und auch zur Beurteilung dessen, ob Zeitsteuerung und Puffersteuerung
am Decodierer richtig funktionieren, verwendet. Der Decodiererzeitstempel
(DTS = Decoder Time Stamp) wird verwendet, um anzugeben, wann der
Decodierer mit dem Decodieren der ersten Zugriffseinheit (z. B.
eines Videoeinzelbildes) anfangen sollte, die an einer Stelle in
der Nutzlast eines Pakets des paketierten Elementarstroms (PES =
Packetized Elementary Stream), dessen Anfangsblock den DTS umfasst,
anfängt.
Ein paketierter Elementarstrom ist ein Datenstrom, der aus PES-Paketen zusammengestellt
ist, die Ende-an-Ende
liegen, eine variable Länge
aufweisen und typischerweise weit länger als ein Transportpaket
fester Länge
sind. Somit ist ein PES-Paket typischerweise aus Daten von einer
Vielzahl von Transportpaketen mit einer einzelnen PID zusammengestellt.
-
Der
DTS wird von einem Videodekompressionsprozessor benötigt, um
den Beginn der Videodecodierung richtig zu takten. Da der DTS in
einem PES-Anfangsblock verpackt ist, ist es für einen Videodekompressionsprozessor
am Empfänger
schwierig und kompliziert gewesen, den DTS zu der gleichen Zeit,
in der er die zugehörigen,
zu analysierenden Videodaten empfängt, zu erhalten. Vor dem Analysieren
werden die Videodaten aus einem Videospeicher abgerufen, der die
Daten nach ihrem Abruf aus dem Transportstrom vorläufig speichert.
Die Videodaten werden nicht zum Decodieren durch den Videodekompressionsprozessor
bereit sein, bevor nach der Verwerfung des PES-Anfangsblocks, der die
notwendige DTS enthält,
nicht einige Zeit verstrichen ist.
-
EP-A-0
618 728 offenbart ein Verfahren zur Synchronisierung von Audio-/Videoinformationen, gemäß dem ein
komprimiertes Videosignal und ein komprimiertes Audiosignal von
einem Decodiersystem, das die ankommenden Pakete in einen Audiobitstrom
und einen Videobitstrom demultiplext, die Zeitstempel von den Paketköpfen nimmt
und sie gerade vor der assoziierten Zugriffseinheit in jedem Elementarstrom
einfügt,
decodiert werden.
-
Es
ist das Ziel der vorliegenden Erfindung, ein verbessertes Verfahren
zur Videodekompression bereitzustellen.
-
Dieses
Ziel wird durch ein Verfahren gemäß Anspruch 1 erreicht.
-
Weitere
vorteilhafte Ausführungsformen
sind Gegenstand der Ansprüche 2
bis 7.
-
Es
ist ein Vorteil der vorliegenden Erfindung, ein Verfahren zum Bereitstellen
des DTS für
den Videodekompressionsprozessor bei Bedarf bereitzustellen, ohne
dass es notwendig ist, wieder auf den PES-Anfangsblock, der den DTS ursprünglich trug, zuzugreifen
und ohne den Rest des PES-Anfangsblocks als Zusatz zu tragen.
-
Ein
weiterer Vorteil liegt darin, ein Verfahren zum Erkennen eines Empfangs
von zwei Zeitstempeln ohne einen vollen Satz von dazwischenkommenden,
zu dekomprimierenden Videodaten bereitzustellen, um die schnelle
Erholung des Decodierers zu ermöglichen,
falls Bildinformation verloren gegangen ist.
-
Noch
ein weiterer Vorteil liegt darin, ein Verfahren bereitzustellen,
das sicherstellt, dass keine Daten verloren gehen, wenn ein Speicherabbild
zum Speichern der aus dem Transportstrom abgerufenen Videodaten
initialisiert wird.
-
Es
ist ebenfalls ein Vorteil, ein Verfahren bereitzustellen, das das
Auftreten eines fehlenden Bildanfangsblocks in Bilddaten, die von
dem Transportstrom getragen werden, erkennt und sich von solch fehlenden
Informationen erholt.
-
Verfahren
zum selektiven Decodieren und Anzeigen von Festbildern aus einem
Transportstrom sind ebenfalls von Vorteil.
-
Die
Bereitstellung von Verfahren zum Stummschalten einer Videoausgabe
eines Prozessors, wenn ein neues Abbild nicht umgehend zur Verfügung steht,
oder zum Anzeigen eines vorherigen Bildes, bis ein neues Abbild
zur Verfügung
steht, ist ebenfalls vorteilhaft.
-
Die
vorliegende Erfindung stellt Verfahren zur Lokalisierung und zum
Erfassen von Videodaten aus einem Transportstrom und zum Erkennen,
Maskieren und Sich-Erholen von Fehlern in dem erfassten Strom bereit.
Die Verfahren der vorliegenden Erfindung weisen die zuvor erwähnten und
andere Vorteile auf.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung ist ein Verfahren zum Erfassen von Videodaten
für eine
gewünschte
Dienstleistung aus einem paketierten Datenstrom bereitgestellt.
Der Datenstrom umfasst Transportpakete, die unterschiedliche Komponenten
der Dienstleistung, wie etwa eine Videokomponente, eine Audiokomponente
und eine Steuerkomponente, tragen. Die von einem besonderen Transportpaket
getragene Komponente ist durch eine Paketkennung (PID) für diese
Komponente gekennzeichnet. Eine der Komponenten umfasst eine Programmtaktreferenz
(PCR), die Zeitsteuerungsinformation für die gewünschte Dienstleistung bereitstellt.
Das Verfahren beinhaltet den Schritt des Erkennens der PCR für die gewünschte Dienstleistung aus
der Komponente, die die PCR in dem Datenstrom trägt. Die aufgegriffenen PCRs
werden verwendet, um einen Decodiererzeitaktgeber, der der Codiererzeitsteuerung
entspricht, zu erfassen und zu lokalisieren. Die PIDs der Transportpakete
werden dann überwacht,
um diejenigen Pakete, die eine Videokomponente der gewünschten
Dienstleistung tragen, aufzugreifen. Anfangsblockinformation aus
den aufgegriffenen Transportpaketen wird verarbeitet, um Pakete
des paketierten Elementarstroms (PES), die einen PES-Anfangsblock
und Bildinformation aufweisen, aufzugreifen. Zeitstempel-Information
wird aus dem PES-Anfangsblock von mindestens einem der PES-Pakete
erhalten. Die Zeitstempel-Information wird gepuffert und dann an
die assoziierte Bildinformation zur Speicherung in einem Speicher
angehängt.
Auf diese Weise kann die Bildinformation unter Verwendung der Zeitstempel-Information,
die daran angehängt
ist, aus dem Speicher gelesen und decodiert werden, ohne wieder
auf den PES-Anfangsblock für
die Zeitstempel-Information zugreifen zu müssen.
-
Die
Bildinformation umfasst typischerweise einen Bildanfangsblock an
den Grenzen zwischen aufeinander folgenden Videoabbildern, die decodiert werden
sollen. Die von dem PES-Anfangsblock erhaltene Zeitstempel-Information
kann in den nächsten
Bildanfangsblock, der dem PES-Anfangsblock in dem paketierten Datenstrom
folgt, eingefügt
werden. Genauer gesagt kann die Zeitstempel-Information nach einem
Bildstartcode, der in dem nächsten
Bildanfangsblock enthalten ist, eingefügt werden.
-
Zeitstempel-Information
kann für
jedes folgende, zu decodierende Videoabbild bereitgestellt werden.
In diesem Fall werden die PES-Pakete überwacht, um jeden Empfang
von zwei PES-Anfangsblöcken,
die Zeitstempel ohne einen dazwischenkommenden Bildstartcode aufweisen,
eine Bedingung, die das Auftreten eines Fehlers anzeigt, zu erkennen.
Falls der Empfang von zwei derartigen PES Anfangsblöcken ohne
einen dazwischenkommenden Bildstartcode erkannt wird, wird der zweite
der Zeitstempel nach dem nächsten
Bildstartcode eingefügt, während der
erste der zwei Zeitstempel ignoriert wird. Ein Steuerbit ist mit
dem zweiten Zeitstempelfeld von dem Decodierer assoziiert (z. B.
daran angehängt),
um den nachfolgenden Verarbeitungssektionen anzugeben, dass ein
Fehler aufgetreten ist.
-
Zusätzlich zum
Verarbeiten der Zeitstempel-Information auf eine effiziente Weise
kann die Erfassung die Neukonfiguration eines Speichers erfordern.
In einer Implementierung, in der die Bildinformation Pixeldaten
und einen Videosequenzanfangsblock umfasst, der Informationen darüber, wie
die Pixeldaten zu decodieren sind, bereitstellt, kann der Speicher,
der die Bildinformation speichert, bei Erfassung mit einem besonderen
Mapping als Antwort auf Informationen aus dem Sequenzanfangsblock
neu konfiguriert werden. Während
der Zeit, in der der Speicher neu konfiguriert wird, werden Anforderungen
von Zugriff auf in dem Speicher gespeicherte Daten zurückgewiesen,
um sicherzustellen, dass während
der Speicherabbildungsinitialisierung keine Daten verloren gehen.
-
Die
Erfassung, Auswahl und Anzeige von gewünschten Standbildern wird auch
unterstützt.
Genauer gesagt kann, wenn die Bildinformation an den Grenzen zwischen
aufeinander folgenden Videoabbildern Bildanfangsblöcke umfasst,
jeder Bildanfangsblock eine Bezugsnummer für das folgende Videoabbild
umfassen. Spezifische Videoabbilder können dann zum Decodieren ausgewählt werden,
indem auf die dazu zugehörige
Bezugsnummer Bezug genommen wird. Das ausgewählte Abbild wird dann decodiert
und als ein Festbild angezeigt, bis ein anderes Abbild mit derselben
Bezugsnummer ausgewählt,
empfangen und angezeigt wird.
-
Die
von dem Transportstrom getragene Bildinformation kann einen Sequenzendcode
umfassen, der das Ende eines Videoabbilds, das von einem Videoprozessor
für die
Anzeige decodiert werden soll, angibt. Der Sequenzendcode wird erkannt
und es wird bestimmt, ob ein nachfolgendes Videoabbild im Anschluss
an den Sequenzendcode aktuell zum Decodieren und zur Anzeige zur
Verfügung
steht. Wenn kein nachfolgendes Videoabbild zur Verfügung steht, wird
eine Videoausgabe des Videoprozessors stumm geschaltet, bis ein
neues Videoabbild zur Verfügung steht.
Alternativ dazu kann die Ausgabe des Videoprozessors mit dem letzten
verarbeiteten Videoabbild versehen werden, bis ein neues Videoabbild
zur Verfügung
steht.
-
Um
sich von verlorenen Bildanfangsblöcken zu erholen, wird die aus
dem Transportstrom empfangene Bildinformation überwacht, um das Auftreten eines
fehlenden Bildanfangsblocks zu erkennen. Bei einer derartigen Erkennung
wird die Anzeige des zuletzt angezeigten Vollformats von Bildinformation, das
noch in dem Speicher enthalten ist, wiederholt, bis ein neues Vollformat
von Videodaten, die nach einem nachfolgenden Bildanfangsblock empfangen wurden,
zur Anzeige zur Verfügung
steht.
-
Obwohl
sie nicht durch einen Fehler verursacht worden sind, werden übersprungene
Bilder (d. h. Bilder, die am Codierer übersprungen werden), auf eine ähnliche
Weise gehandhabt. Um sich von übersprungenen
Bildern zu erholen, kann der Speicher überwacht werden, um zu erkennen,
ob die Daten für ein
volles Videoeinzelbild in dem Speicher vorliegen, wenn die Decodierung
dieses Einzelbilds beginnen soll. Wird erkannt, dass kein volles
Videoeinzelbild vorliegt, so wird die Anzeige des zuletzt angezeigten Vollformats
von decodierter Bildinformation, die noch in dem Speicher enthalten
ist, wiederholt.
-
Eine
Erholung von veralteter Zeitstempel-Information ist ebenfalls bereitgestellt.
Im Besonderen fährt
der Decodierer fort, die ankommenden Einzelbilder eines nach dem
anderen zu decodieren, nachdem der Decodiervorgang als Antwort auf
einen gültigen
DTS gestartet wurde. Zwischen DTSs werden die Einzelbilder zu Zeiten
decodiert, die von den vergangenen Decodierzeiten impliziert werden.
Wenn ein neuer DTS empfangen wird, wird die von diesem DTS vorgesehene
Zeit mit dem Wert des Decodiererzeittaktgebers zur Decodierzeit
verglichen. Wenn die von dem DTS vorgesehene Zeit dem Wert des Decodiererzeittaktgebers
voraus geht (d. h. die DTS-Zeit ist schon vorbei), wird angenommen,
dass die Synchronisierung verrutscht ist und dass der Videodekompressionsprozessor
(VDP) in dem Decodiervorgang zurückliegt.
Somit wird die der Zeitstempel-Information zugehörige Bildinformation verworfen,
und der VDP decodiert dieses Bild nicht.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockschaltbild eines Videodekompressionsprozessors der Art,
die die Verfahren der vorliegenden Erfindung benutzen kann;
-
2a bis 2c sind
schematische Illustrationen, die zeigen, wie PES-Pakete variabler Länge zu Transportpaketen fester
Länge umorganisiert werden,
um beim Bereitstellen eines Transportmultiplexes zur Übertragung
verwendet zu werden; und
-
3 ist
eine schematische Illustration, die zeigt, wie die empfangenen Transportpakete
an einem Decodierer verarbeitet werden, um Bildinformation und Zeitstempel-Information
zur Speicherung in dem dynamischen Direktzugriffsspeicher (DRAM) aus 1 aufzugreifen.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
1 ist
ein Blockschaltbild eines Videodekompressionsprozessors, der einen
Speicherverwalter 30 inkorporiert, welcher einen externen
DRAM 22 zum Speichern und Abrufen von Videodaten, die zum Rekonstruieren
eines Fernsehprogramms an einem Empfänger notwendig sind, ansteuert.
Der allgemein mit 20 bezeichnete Prozessor ist ein zeitverschachtelt
arbeitender Prozessor, der so ausgelegt ist, dass er sowohl die
Transportschicht (d. h. Steuer- und andere Nicht-Video-Informationen)
als auch die Videoschicht des über
den Anschluss 10, der manchmal als die „Transportpaketschnittstelle" des Videoprozessors
bezeichnet wird, eingegebenen komprimierten Bitstroms decodiert.
-
Am
Anschluss 14 ist eine Benutzerprozessorschnittstelle zum
Steuern des Videodatenprozessors über eine M-Bus-Steuerung 50 bereitgestellt, die
in dem Prozessor 20 verschiedene Register konfiguriert.
Der M-Bus ist ein zweidrahtiger bidirektionaler serieller Bus, der
ein einfaches und effizientes Mittel zum Datenaustausch zwischen
Vorrichtungen bereitstellt und vollständig mit dem I2C-Busstandard kompatibel
ist.
-
Eine
Schnittstelle zu dem DRAM 22 ist über die Adressleitungen 24 und
Datenleitungen 26 bereitgestellt. Bei dem in 1 illustrierten
Beispiel weist der DRAM 22 einen Neun-Bit-Adressenport
und einen Zweiunddreißig-Bit-Datenport
auf.
-
Eine
Videoausgabeschnittstelle 38 ist für das dekomprimierte rekonstruierte
Video bereitgestellt, das beispielsweise als standardmäßiges Acht-Bit-, Siebenundzwanzig-MHz-,
gemultiplextes Luminanz (Y)- und Chrominanz (Cr, Cb)-Signal nach
CCIR-656 (CCIR = International Radio Consultive Committee) ausgegeben
werden kann.
-
Eine
Testschnittstelle kann über
einen Anschluss 62 zu einer herkömmlichen JTAG (Joint Test Action
Group)-Steuerung 60 bereitgestellt werden. JTAG ist eine
standardisierte Boundary-Scan-Methodik
zum Testen auf Platinenebene, um Fehler in Gehäuse- und Platinenverbindungen
sowie inneren Schaltungen zu erfassen.
-
Über den
Anschluss 12 empfängt
der Videodekompressionsprozessor 20 ein Taktsignal. Der Taktgeber
liefert Zeitsteuerungsinformation, die z. B. verwendet wird, um
einen Transportsyntaxanalysator 32 zu befähigen, aus
Transportpaketen, die in einem über
den Anschluss 10 eingegebenen paketierten Datenstrom enthalten
sind, Zeitsteuerungsinformation und Videoinformation aufzugreifen.
Eine Erfassungs- und Fehlerverwaltungsschaltung 34 benutzt eine
Programmtaktreferenz (PCR) und einen Decodierzeitstempel (DTS),
die von einem Videosyntaxanalysator 40 erkannt werden,
um den Start der Bilddecodierung zu synchronisieren. Diese Schaltung stellt
die vertikale Synchronisierung ein und liefert eine globale Synchronisierung
für alle
Videodecodier- und -anzeigefunktionen.
-
Die
Videoschicht wird in einem von dem Speicherverwalter 30 in
dem externen DRAM 22 konfigurierten Eingabepuffer (FIFO)
gepuffert. Der Videosyntaxanalysator 40 empfängt die
von dem DRAM-FIFO ausgegebenen komprimierten Videodaten über den
Speicherverwalter 30 und trennt die Bewegungsvektorinformationen
von den die Videoinformationen beschreibenden Koeffizienten. Die
Koeffizienten werden von einem Huffman-Decodierer 52, einen
Umkehr-Quantisierer 54 und einen IDCT-Prozessor 56 (IDCT
= inverse diskrete Cosinus-Transformierung)
verarbeitet.
-
Bewegungsvektoren
werden aufgegriffen und dazu verwendet, vorher decodierte Videoeinzelbilder,
die zum Rekonstruieren eines aktuellen Videoeinzelbildes erforderlich
sind, anzusteuern. Insbesondere decodiert ein Bewegungsvektordecodierer 42 die
von dem Videosyntaxanalysator 40 empfangenen Bewegungsvektoren
und leitet sie zu einem Prädiktionsadressengenerator 44 weiter.
Der Prädiktionsadressengenerator
stellt die Adresseninformation bereit, die notwendig ist, um über den
Speicherverwalter 30 die notwendigen Ankereinzelbilddaten
(d. h. Innenbild (I = intraframe)-Daten oder Prädiktions (P)-Einzelbilddaten)
abzurufen, damit ein Prädiktionsrechner 46 ein
Prädiktionsignal
bereitstellen kann, das zur Rekonstruktion eines aktuellen Einzelbildblock
notwendig ist. Ein Differenzdecodierer 48 kombiniert die
Prädiktionsdaten
mit den decodierten Koeffizientendaten, um dekomprimierte Videodaten bereitzustellen.
Die dekomprimierten Daten werden über den Speicherverwalter 30 in
angemessenen Puffern des DRAM 22 gespeichert. Es versteht
sich, dass die von dem Bewegunsvektordecodierer 42, dem
Prädiktionsadressengenerator 44,
dem Prädiktionsrechner 46,
dem Differenzdecodierer 48, dem Huffman- Decodierer 52, dem Umkehr-Quantisierer 54 und
dem IDCT 56 ausgeführten
Videodekompressionsvorgänge
im Allgemeinen herkömmlich
sind und vom Fachmann gut verstanden werden.
-
Der
Speicherverwalter 30 teilt alle Aktivität auf den externen DRAM-Adress- und Datenbussen 24, 26 ein
und steuert den DRAM 22 effizient an. Der Speicherverwalter
stellt sicher, dass allen Datenübertragungsanforderungen
des Eingabe-FIFO-Teils des DRAM 22, des Videosyntaxanalysators 40 und
der Videorekonstruktionsschaltung 36 (sowie des Prädiktionsrechners 46 und
des Differenzdecodierers 48) genügt wird. Die Videorekonstruktionsschaltung 36 baut
ein aktuelles Bild und fügt
Untertitel für
Hörbehinderte,
ein Prüfzeilentestsignal
(VITS = vertical interval test signal) und/oder Prüfmusterdaten
zur Ausgabe auf der Videoausgabeleitung 38 ein. Der Decodiervorgang
für ein
komprimiertes Einzelbild von Videodaten wird synchronisiert, indem
die von dem Decodiererzeittaktgeber spezifizierte Zeit mit einem
Decodierzeitstempel (DTS) verglichen wird, der angibt, wann das
Videoeinzelbild decodiert werden soll. Der Anzeigevorgang für das dekomprimierte
Einzelbild wird synchronisiert, indem die von dem Decodiererzeittaktgeber
spezifizierte Zeit mit einem Präsentationszeitstempel
(PTS) verglichen wird, der angibt, wann das Videoeinzelbild zur
Anzeige präsentiert werden
soll.
-
Der
Speicherverwalter stellt auch je nach Decodiermodus, der beispielsweise
NTSC oder PAL mit bidirektionalen Prädiktions-Einzelbildern (B-Bildern) oder ohne
sie sein kann, eine variable Größe für den FIFO-Teil
des DRAM 22 bereit. Die Videopuffersteuerung stellt sicher,
dass der durch den DRAM 22 bereitgestellte FIFO nicht überläuft oder
unterläuft.
Die Puffersteuerung ist eine Funktion der Systemzeitsteuerungsparameter
einschließlich
PCR und DTS.
-
Der
DRAM 22 ist als externer Speicher veranschaulicht und kann
durch eine Vielzahl von DRAM-Chips bereitgestellt werden, wie etwa
zwei Vier-Mbit (Megabit,
d. h. 220 Bits)-DRAMs für eine acht-Mbit-Implementierung
oder vier Vier-Mbit-DRAMs für
eine Sechzehn-Mbit-Implementierung. Es versteht sich, dass der DRAM 22 in
zukünftigen
Implementierungen und mit Fortschritten bei der Speichertechnologie
als ein interner Speicher innerhalb des Videodekompressionsprozessors
bereitgestellt werden kann. Der DRAM wird so abgebildet, dass er
verschiedene Decodier- und Ausgabevideopuffer sowie einen Umlauf-FIFO-Puffer
für den komprimierten
eingegebenen Videobitstrom bereitstellt. Der DRAM kann auch verwendet
werden, um einen Prüfmusterpuffer,
einen VITS-Puffer und einen Umordnungspuffer für die Anzeige der Untertitel
für Hörbehinderte
bereitzustellen sowie um verschiedene Bildstrukturdaten zu speichern,
die zur richtigen Anzeige der decodierten Videoeinzelbilder erforderlich
sind. Der DRAM kann über
den Speicherverwalter 30 neu initialisiert werden, um nach
Bedarf verschiedene Speicherabbilder bereitzustellen, wenn Variablen
modifiziert werden, wie etwa PAL- oder NTSC-Video, acht- oder sechzehn-Mbit-Speicherkonfiguration,
und ob B-Bilder
vorliegen.
-
Wie
oben angegeben, teilt der Speicherverwalter 30 alle Aktivität auf den
externen DRAM-Bussen ein, einschließlich der Datenübertragungsanforderungen
des Eingabe-FIFO, des Videoanalysators und der Videorekonstruktionsschaltung.
Der Speicherverwalter führt
auch die erforderliche DRAM-Auffrischung auf herkömmliche
Weise aus. So kann beispielsweise die gleiche Zeile in jedem von
zwei oder vier externen DRAMs simultan aufgefrischt werden.
-
Wird
ein paketierter Bitstrom, der komprimierte Videodaten enthält, in Anschluss 10 des
Videodekompressionsprozessors 20 eingegeben, werden von
den komprimierten Daten dargestellte Videoeinzelbilder jeweils einzeln
rekonstruiert. Anfänglich muss
ein Vollformat an Videodaten empfangen und im DRAM 22 gespeichert
werden. Informationen für nachfolgende
Videoeinzelbilder können
aus einem Teilsatz des vollen Videoeinzelbildes bestehen, der, wenn
er zu den Prädiktionsdaten
vom vorherigen Videoeinzelbild (in DRAM 22 gespeichert)
hinzugefügt wird,
in der Rekonstruktion eines Vollformats resultiert.
-
2a veranschaulicht
einen Teil eines paketierten Elementarstroms, der aufeinander folgende PES-Pakete
trägt,
von denen jedes einen Anfangsblock (PES-HDR) 72 und eine
PES-Nutzlast 74 aufweist. Die PES-Pakete 70 sind von variabler
Länge.
-
PES-Pakete
weisen typischerweise eine Länge
von mehreren tausend Bytes auf. Sie müssen auf eine solche Weise
ausgerichtet werden, dass, wenn sie zu Transportpaketnutzlasten
aufgeteilt werden, sich das erste Byte jedes PES-Anfangsblocks in der
Position der ersten Nutzlast eines Transportpakets befindet. Für jedes
Transportpaket, das den ausgerichteten PES-Anfangsblock trägt, wird
ein „Startanzeiger
der Nutzlasteinheit" in
dem Transportanfangsblock für
das Transportpaket eingestellt. In dem MPEG-2- und dem DigiCipher® II-System
wird das PES-Format
für alle
inhärent
synchronen Dienstleistungskomponenten verwendet. Insbesondere werden
Video-, Audio- und isochrone Datenkomponenten als paketierte Elementarströme getragen,
und die PES-Anfangsblöcke 72 tragen
verschiedene Informationen, die zum Definieren der Nutzlast notwendig sind,
einschließlich
eines Präfixes
für den
Paketstartcode, einer Stromkennung und einer Länge des PES-Pakets. Der Anfangsblock kann auch einen
Präsentationszeitstempel
(PTS) oder sowohl einen PTS als auch einen Decodierzeitstempel (DTS)
enthalten. Trägt
der Anfangsblock nur einen PTS, so wird daraus gefolgert, dass der
DTS gleich dem PTS ist. Der PTS ist ein Feld, das den Wert angibt,
den entsprechende Bytes der Decodierersystemtaktreferenz aufweisen
sollten, wenn die erste Präsentationseinheit (d.
h. Videoeinzelbild, Audiosynchroneinzelbild, Zugriffseinheit für isochrone
Daten), deren Zugriffseinheit an einer Stelle in der Nutzlast dieses
PES-Pakets anfängt, präsentiert
wird. Für
Video fängt
eine Zugriffseinheit an, wenn das erste Byte des Bildstartcodes
in der Nutzlast des PES-Pakets vorliegt. Für Audio fängt eine Zugriffseinheit an,
wenn das erste Byte des Audiosynchronwortes in der Nutzlast dieses PES-Pakets
vorliegt. Für
isochrone Daten fängt
eine Zugriffseinheit mit dem ersten Byte der PES-Paketnutzlast an. Das PTS-Feld wird
zur Erfassung von Dienstleistungskomponenten und auch zur Beurteilung
dessen, ob Zeitsteuerung und Puffersteuerung am Decodierer richtig
funktionieren, verwendet.
-
Der
DTS ist ein Feld, das den Wert angibt, den entsprechende Bits der
rekonstruierten Decodiererzeittaktgeberreferenz aufweisen sollten,
wenn der Decodierer anfängt,
die erste Zugriffseinheit, welche an einer Stelle in der Nutzlast
dieses PES-Pakets anfängt,
zu decodieren. Der PTS und DTS unterscheiden sich nur für Video,
und nur in dem Fall, dass das I-Bild und die P-Bilder mit B-Bildern übertragen werden.
-
Die
PES-Nutzlast enthält
die Informationsdaten, deren Übertragung
an einen Empfänger
erwünscht
ist. So umfassen die Nutzlasten zusammen zum Beispiel alle Video-
oder Audioinformationen, die der Empfänger zum Decodieren und Rekonstruieren
eines digitalen Fernsehsignals benötigt.
-
Um
den Anforderungen von Robustheit und Einfachheit zu genügen, wird
ein Ansatz mit einer festen Paketlänge gegenüber PES-Paketen mit variabler
Länge bevorzugt.
Wie in 2b veranschaulicht, wird der
paketierte Elementarstrom, der die PES-Pakete 70 enthält, somit
zu einem Strom von Transportpaketen 80 mit fester Länge formatiert.
Die in 2b veranschaulichten Transportpakete
beziehen sich alle auf die gleiche Dienstleistungskomponente, wie
etwa die Videokomponente einer digitalen Fernsehübertragung. Bei der MPEG-2-
und der DigiCipher® II-Ausführungsform
ist jedes Paket insgesamt 188 Bytes lang, wobei die ersten vier
Bytes einen Transportpaketkopf (XPT HDR) 82 beinhalten. Der
Nutzlastteil 84 jedes Pakets 80 beträgt somit
normalerweise 184 Bytes. Jedoch liegt ein Anpassungsfeldmechanismus
vor, wie durch Transportpaket 80' veranschaulicht, um den Anfangsblock
bei Bedarf zu erweitern. Das Anpassungsfeld 86 stellt zusätzliche Informationen
bereit, die nicht für
jedes Transportpaket erforderlich sind. Das Anpassungsfeld (ADPT FIELD) 86 erweitert
den regulären
Transportanfangsblock 82 auf Kosten der Nutzlast 84,
die weniger als 184 Bytes beträgt,
wann immer die Anpassung bereitgestellt wird. Das Anpassungsfeld 86 ist
von variabler Länge,
je nach der Information, die es enthält. Typischerweise unterstützt das
Anpassungsfeld zusätzliche
Informationen zur Zeitbasiserholung und für andere Funktionen, und es
stellt auch einen Mechanismus zum Auffüllen der Nutzlast bereit, wenn
diese nicht die vollen 184 Bytes in Anspruch nimmt. Ein derartiges
Auffüllen
kann zum Beispiel verwendet werden, um das Video-PES-Paket variabler
Länge in eine
feste Anzahl von Transportpaketen zu passen.
-
Wie
in 2b angegeben, umfasst der Transportanfangsblock
jedes Transportpakets die PID, die die besondere Dienstleistungskomponente, welche
von dem Transportpaket getragen wird, kennzeichnet. Die PCR wird
von einem Anpassungsfeld getragen, um Zeitsteuerungsinformation
für eine
gewünschte
Dienstleistung bereitzustellen. Die PCRs für die gewünschte Dienstleistung werden
aus den Anpassungsfeldern an einem Empfänger erkannt. Transportpakete
einer spezifischen PID werden dann überwacht, um eine besondere
Komponente der verarbeiteten Dienstleistung aufzugreifen. Da der
Videodekompressionsprozessor aus 1 Videoinformation
verarbeitet, überwacht
er die Transportpakete, um alle diejenigen aufzufinden, deren PID
die verarbeitete Videokomponente angibt. Das Verarbeiten der Videokomponente
wird unten im Zusammenhang mit 3 detaillierter
erläutert.
-
Transportpakete
von verschiedenen Dienstleistungskomponenten werden zu einem Transportmultiplex 90 gemultiplext,
wie in 2c veranschaulicht. Der Transportmultiplex
trägt untereinander
verteilte Pakete von jeder der verschiedenen Komponenten (z. B.
Video, Audio und Steuerung), die zum Rekonstruieren einer Dienstleistung
an dem Empfänger
notwendig sind. Bei dem in 2c gezeigten Transportmultiplex
zur Veranschaulichung folgen Videotransportpaketen 80 (A1, A2, A3 ...)
Audiotransportpakete 92 (B1, B2, B3 ...), denen
wiederum Pakete 94 anderer Komponenten (C1,
C2, C3 ...) folgen,
welche von dem Transportpaketstrom getragene andere Dienstleistungen
oder Daten sein können.
-
3 veranschaulicht
die Verarbeitung von Videotransportpaketen durch einen Videodekompressionsprozessor,
wie etwa dem in 1 veranschaulichten. Eine Vielzahl
von Transportpaketen 80 werden von dem Transportsyntaxanalysator 32 empfangen,
der die notwendige Nutzlastinformation von aufeinander folgenden
Transportpaketen entnimmt, um eine PES-Nutzlast 74 zu rekonstruieren.
Die Information in den Transportanfangsblöcken 82 wird verwendet,
um die Nutzlastinformation 84 zu identifizieren, und ermöglicht die
Rekonstruktion der PES-Nutzlastdaten 74 sowie des PES-Anfangsblocks 72.
Wie oben angegeben, sind die PES-Pakete so ausgerichtet, dass, wenn
sie zu Transportnutzlasten aufgeteilt werden, sich das erste Byte
jedes PES-Anfangsblocks in der Position der ersten Nutzlast eines
Transportpakets befindet. Beim Erkennen eines Startanzeigers der
Nutzlasteinheit in dem Transportanfangsblock weiß der Transportsyntaxanalysator,
dass der erste Teil der Nutzlast in dem Transportpaket den PES-Anfangsblock
enthält.
-
Eines
der in dem PES-Anfangsblock 72 enthaltenen (oder von einem
PTS in dem PES-Anfangsblock gefolgerten) Objekte ist der Decodierzeitstempel
(DTS) 104, der von dem Videosyntaxanalysator 40 erfordert
wird, um die Bilddaten richtig zu decodieren. Gemäß der vorliegenden
Erfindung wird der DTS somit von dem PES-Anfangsblock 72 extrahiert
und im Anschluss an den Bildanfangsblock 100 in die Videoinformation
(Bilddaten) 102, welche in dem FIFO-Teil des DRAM 22 gespeichert
sind, neu eingefügt.
Die Einfügung
des DTS in die im DRAM 22 gespeicherte Videoinformation
befähigt
den Dekompressionsprozessor, die Videoinformationen zu verarbeiten,
ohne den DTS von einer Quelle außerhalb des DRAM abrufen zu
müssen.
Es sei angemerkt, dass der PTS auch im DRAM 22 gespeichert
wird, wenn er sich vom DTS unterscheidet.
-
Ein
besonderes Merkmal der vorliegenden Erfindung ist es, dass in dem
speziellen Fall, in dem ein DTS erkannt wird und dann ein zweiter
DTS erkannt wird, ohne dass der vorherige in den DRAM 22 geschrieben
wurde, ein einzigartiger Code bereitgestellt wird, um den Videosyntaxanalysator 40 zu
benachrichtigen, dass diese Situation aufgetreten ist. Insbesondere
wird der Videosyntaxanalysator darüber benachrichtigt, dass ein
Paket mit einem Bildanfangsblock verloren gegangen ist, aber dass
der zweite empfangene DTS wahrscheinlich für das nächste Bild korrekt ist. Der
Analysator, der den verlorenen Bildanfangsblock erkennt, würde andernfalls den
dem nächsten
Bild zugehörigen
DTS wegwerfen. Beim Empfang des die Situation kennzeichnenden einzigartigen
Codes weiß der
Videosyntaxanalysator 40 jedoch, dass der aktuelle DTS
den vorherigen, ungenutzten DTS überschrieben
hat, und es wird angenommen, dass der aktuelle DTS gültig ist.
-
Während die
Videokomponente des Transportstroms wie zuvor beschrieben erfasst
wird, fordert der Videosyntaxanalysator 40 weiterhin fortlaufend
Daten von dem Speicherverwalter 30 an. Da die Geschwindigkeit,
mit der Daten von der Paketschnittstelle geschrieben werden, viel
langsamer ist als die Geschwindigkeit, mit der sie analysiert werden
können,
wird der FIFO im DRAM 22 fast sofort, nachdem die Paketschnittstelle
ein Wort darauf geschrieben hat, geleert. Der Syntaxanalysator analysiert
dann die Daten nach den Informationen, die er in einem Sequenzanfangsblock
benötigt,
um ein Speicherabbild im DRAM 22 zu initialisieren. Der
Sequenzanfangsblock ist Teil der in der PES-Nutzlast getragenen
Videosyntax und gibt an, dass eine neue Sequenz von Videoinformationen
(Bildern) folgt. Der Sequenzanfangsblock kennzeichnet Parameter
des Bildes oder der verwendeten Videocodierung (z. B. horizontale
Größe, vertikale
Größe, Abtastlängenverhältnis, Einzelbildrate,
Bitrate und Innenbild-/Nichtinnenbild-Quantisierung
usw.), so dass der DRAM 22 richtig abgebildet werden kann,
um die Daten für
die Dekompression des komprimierten Videos zu speichern. Beim Erkennen
einer Sequenzerweiterung, die an den Sequenzanfangsblock angehängt ist,
wird das Speicherabbild initialisiert. Die Sequenzerweiterung stellt
zusätzliche
Informationen bereit, wie etwa, ob das Video im Zeilensprungverfahren
oder auf progressive Weise gescannt worden ist. Während der
Initialisierung des Speicherabbilds werden alle Anforderungen von
Zugang zum DRAM 22 zurückgewiesen.
Nachdem das Speicherabbild initialisiert ist, wird der Zugriff auf
den DRAM freigegeben. Diese Verfahrensweise stellt sicher, dass
keine in dem FIFO-Teil des DRAM 22 gespeicherten Daten
verloren gehen, wenn das Speicherabbild initialisiert wird. Der
Videosyntaxanalysator 40 kann dann fortfahren, nach dem ersten
Bildanfangsblock mit einem gültigen
DTS zu suchen, um die Dekompression der Videodaten zu beginnen.
-
In
einem digitalen Kommunikationsmodell ist es zu erwarten, dass Daten
gelegentlich über
den Übertragungskanal
verloren gehen. Wenn Videodaten an einen Videodekompressionsprozessor übermittelt
werden, ist es möglich,
dass ein Bildanfangsblock verloren geht. Es ist ebenfalls möglich, dass beim
Verarbeiten der empfangenen Videodaten der FIFO-Teil des DRAM 22 überläuft oder
unterläuft.
In diesen Fällen
muss eine Fehlerverwaltung ausgeübt werden,
um die Wahrscheinlichkeit zu minimieren, dass wahrnehmbare Artefakte
auf dem Bildschirm eines Fernsehzuschauers zu sehen sind. Übersprungene
Bilder müssen
ebenfalls behandelt werden. Obwohl übersprungene Bilder nicht aus
durch den Übertragungskanal
eingeführten
Fehlern resultieren, werden sie auf dieselbe Weise wie derartige
Fehler verwaltet.
-
Bei
der MPEG-2- und der DigiCipher® II-Norm ist die grundlegende
Videoeinheit ein Makroblock. Ein Makroblock ist eine Gruppe von
16 × 16
Pixeln. Video wird hierarchisch codiert. Eine Sequenz ist eine beliebige
Videosequenz. Eine Sequenz ist aus Bildsequenzen zusammengesetzt.
Eine Bildsequenz ist aus individuellen Bildern zusammengesetzt.
Jedes Bild entspricht einem einzelnen Einzelbild einer Bewegtbild-Kommunikation. Ein
Bild ist in mehrere Scheiben (Slices) aufgebrochen. Jede Scheibe
ist wiederum aus Makroblöcken
zusammengestellt. Makroblöcke
sind aus sechs 8 × 8
Blöcken von
Pixeln, einschließlich
16 × 16
Luminanzpixeln und zwei Blöcken
von 8 × 8
Chrominanzpixeln zusammengestellt. Ein Block ist ein Begriff, der
zum Beschreiben eines beliebigen 8 × 8 Blocks von Pixeln verwendet
wird.
-
Um
einen fehlenden Bildanfangsblock zu erkennen, überwacht der Videosyntaxanalysator 40 des
in 1 veranschaulichten Dekompressionsprozessors die
vertikale Position jeder Bildscheibe. Wenn slice_vertical_positionn < slice_vertical
positionn–1 und
kein Bildanfangsblock zwischen slice_vertical_positionn und slice_vertical_positionn–1 auftrat,
wird angenommen, dass slice_vertical_positionn zu
einem neuen Bild gehört und
dass ein Bildanfangsblock verloren gegangen ist. Wenn der Analysator
einen fehlenden Bildanfangsblock erkennt, sucht er nach dem nächsten Bildanfangsblock
und erfasst ihn und ignoriert seinen DTS, falls er einen aufweist,
es sei denn, dass er informiert wurde, dass der aktuelle DTS ein überschriebener
DTS ist, der als gültig
eingeschätzt
wird. Wenn es dort keinen DTS gibt, sagt der Videosyntaxanalysator
einen auf der Basis vorheriger Zeitsteuerungsinformation voraus.
Wenn die Prädiktion
aufgrund eines Fehlers falsch ist, verbleibt das System für eine kurze
Zeit nicht synchron, bis der nächste
gültige DTS
eintrifft. Die Zählung
der Bilder in dem FIFO-Teil des DRAM 22 verbleibt korrekt,
da weder die Paketschnittstelle noch der Videosyntaxanalysator das Bild
mit dem verlorenen Bildanfangsblock gezählt haben.
-
Wann
immer ein Bild verloren gegangen ist, wird die Anzeige eines vorherigen
Bildes wiederholt. Genauer gesagt wird das zuletzt angezeigte Vollformat,
das im DRAM 22 zur Verfügung
steht, wiederholt. Typischerweise ist dies das zuletzt angezeigte
I- oder P-Bild. Das letzte B-Bild
kann nicht wiederholt werden, solange DRAM 22 nicht groß genug
ist, um ein volles B-Bild zu halten, was möglicherweise verschwenderisch
und daher nicht die bevorzugte Ausführungsform ist.
-
Der
Transportsyntaxanalysator 32 erkennt das Vorhandensein
von vollständigen
Bildern in dem FIFO-Teil von DRAM 22 durch Überwachen
des Auftretens von Bildstartcodes und Sequenzendcodes. Wenn der
Decodierer bei Prüfung
der Anzahl von Bildern im FIFO feststellt, dass es am Start der
Decodierzeit kein ganzes Bild im FIFO gibt, wird angenommen, dass
am Codierer ein übersprungenes
Bild aufgetreten ist.
-
Wenn
ein übersprungenes
Bild erkannt wird, wird der dem aktuell im FIFO befindlichen unvollständigen Bild
zugehörige
DTS ignoriert, dass er als ungültig
definiert ist. Der Videoprozessor sagt einen DTS voraus und prüft weiterhin
den Zustand des FIFO. Wenn ein ganzes Bild im FIFO vorliegt, beginnt die
Decodierung. Während
des Wartens auf die Ankunft eines ganzen Bildes im FIFO wird das
zuletzt angezeigte Bild wiederholt.
-
Wenn
ein DTS erkannt wird, der in der Vergangenheit liegt, d. h. vor
der aktuellen Zeit, die von dem rekonstruierten Decodierzeittaktgeber
vorgesehen ist, wird angenommen, dass die Synchronisierung etwas
verrutscht ist und dass der Decodiervorgang zurückgefallen ist. Wenn dies auftritt,
werden die dem „veralteten" DTS zugehörigen Bilddaten nicht
decodiert und die Daten werden verworfen. Wenn das nächste Bild
keinen DTS aufweist, wird es unter der Annahme decodiert, dass der
Synchronisierungsrutsch weniger als ein oder gleich einem Bild betrug.
Wenn das nächste
Bild einen DTS aufweist, muss der DTS daraufhin überprüft werden, ob er in der Vergangenheit
liegt, in welchem Fall er verworfen wird. Liegt der DTS nicht in
der Vergangenheit, so wird das zugehörige Bild decodiert, wenn der
DTS aktuell ist.
-
In
dem Fall eines FIFO-Überlaufens
werden Pakete verworfen, und das erste Objekt, das auf den FIFO
nach dem Aufhören
des Überlaufens
geschrieben wird, wird ein Sequenzfehlercode sein. Der Decodiervorgang
behandelt dieses Ereignis genau wie jeden anderen Paketfehler und
wendet in einem Versuch, den Fehler zu verbergen, Videohalten auf
die Daten in den verworfenen Paketen an. Ein Unterlauf wird genau
wie ein übersprungenes
Bild behandelt, wie oben beschrieben.
-
Festbilder
werden entweder in einem hochratigen oder einem niedrigbitratigen
Modus unterstützt.
Der hochratige Festbildmodus wird von einem Benutzer initiiert,
der z. B. über
die Benutzerschnittstelle 14 einen Katalogeinkaufsbyte
in dem Videoprozessor (1) einstellt.
-
Wenn
der Prozessor in diesem Modus ist, decodiert und zeigt er nur diejenigen
Bilder, deren Zeitreferenz mit der Zeitreferenz in einem Seitenzahlenregister übereinstimmt.
Der Benutzerprozessor muss auswählen,
welche Seite (d. h., Festbild) durch das Einstellen dieses Registers
decodiert und angezeigt werden wird.
-
Der
niedrigbitratige Festbildmodus verwendet das MPEG-2-übersprungenes-Bild-Verhalten
des Videoprozessors, um eine niedrigbildratige Quelle anzuzeigen,
wie bei einer Diavorführung.
Jedes Mal, wenn der Videoprozessor nach der Erfassung ein ganzes
Bild in seinem FIFO vorfindet, wird dieses Bild decodiert und angezeigt,
bis sich das nächste ganze
Bild im Puffer befindet.
-
Der
Videoprozessor kann implementiert sein, um die Videoausgabe nach
einem Sequenzendcode stumm zu schalten, wenn ein neues Bild nicht
umgehend folgt. Das Stummschalten der Videoausgabe einer Videorekonstruktionsschaltung 36 resultiert
darin, dass der Fernsehbildschirm des Benutzers schwarz wird. Als
Alternative zum Stummschalten der Videoausgabe bis zum Empfang eines neuen
Bildes kann das letzte Bild der Sequenz wiederholt werden, bis das
nächste
Bild empfangen wird. Die Alternative des Stummschaltens der Videoausgabe
ist vorteilhaft, da sie die lokale Einfügung von Werbesendungen an
einer Kabelfernsehkopfstelle oder dergleichen erlaubt.
-
Es
versteht sich jetzt, dass die vorliegende Erfindung verbesserte
Verfahren zum Lokalisieren und Erfassen von Videodaten aus einem
paketierten Datenstrom und zum Erkennen, Maskieren und Sich-Erholen
von Fehlern in derartigen Daten bereitstellt. Aus einem PES-Anfangsblock
extrahierte Zeitsteuerungsinformation wird zusammen mit Bildinformation
in einem Videospeicher gespeichert, um das Decodieren der Bildinformation
zu erleichtern. Verschiedene Techniken zum Maskieren und Sich-Erholen
von Übertragungsfehlern
sind bereitgestellt.