-
Die
Erfindung bezieht sich auf ein System zum Verarbeiten eines Signals
für hochauflösendes Fernsehen,
abgekürzt
HDTV (High Definition Television), und betrifft speziell eine Anordnung
zum Rekombinieren gesendeter komprimierter und codierter Daten,
die in einen vorrangigen Kanal und einen nachrangigen Kanal aufgeteilt
sind.
-
Digitale
Videoinformation mit hoher Auflösung
kann erfolgreich über
terrestrische Fernsehkanäle übertragen
werden, indem man, wie hier beschrieben, die Videodaten in vorrangige
und nachrangige Information (Information hoher und niedriger Priorität) unterteilt
und dann getrennten Trägern
aufmoduliert. Die modulierten Träger
werden in ein 6 MHz breites Frequenzband gefügt, und dann wird das kombinierte
Signal frequenzmäßig umgesetzt, um
das Spektrum eines normgemäßen Rundfunkkanals
zu belegen. Die vorrangigen Daten werden mit relativ hoher Leistung
und die nachrangigen Daten mit geringerer Leistung übertragen.
Als vorrangig werden diejenigen Daten eingestuft, die für sich bereits
zur Wiedergabe eines Bildes genügen,
das aber noch nicht die Qualität
eines hochaufgelösten
Bildes hat.
-
Aus
der
US 48 53 779 ist
eine Anordnung zum Kombinieren komprimierter Videodaten aus einem
vorrangigen und einem nachrangigen Datenstrom mit einem Decoder
bekannt, der über
einen Demultiplexer zum Zuordnen von Code-Wörtern zu den vorrangigen und
den nachrangigen Codewortfolgen sowie über entspre chende Decodiereinheiten, welche
eine resultierende Codewortfolge ausgeben, verfügt.
-
Die
vorliegende Erfindung richtet sich auf eine Schaltungsanordnung
zum empfängerseitigen Rekombinieren
komprimierter Videodaten, die in vorrangige und nachrangige Videodaten
aufgeteilt worden sind. Zum Zwecke der Erläuterung sei angenommen, dass
die Videodaten in einem sogenannten MPEG-ähnlichen Format komprimiert
sind. Mit der Bezeichnung "MPEG-ähnlich" sei hier ein Codierungsformat
gemeint, das dem genormten Codierungsformat ähnelt, wie es von der International
Organization for Standardization" festgelegt
ist. Diese Norm ist beschrieben in dem Dokument "International Organization for Standardization", ISO-IEC JT(1/SC2/WG1),
Coding of Moving Pictures and Associated Audio, MPEG 90/176 Rev.
2 vom 18. Dezember 1990. Auf dieses Dokument sei hier zur Beschreibung
des allgemeinen Codeformats verwiesen.
-
Bei
dem hier beschriebenen System wird das Videosignal in einer solchen
Weise komprimiert, dass Blöcke
von Daten-Codewörtern
entstehen. Die Daten in den jeweiligen Blöcken werden zwischen einem vorrangigen
und einem nachrangigen Übertragungskanal
aufgeteilt, je nach der relativen Wichtigkeit der Codewörter für die Bildrekonstruktion.
Die komprimierten Daten im vorrangigen und im nachrangigen Kanal
enthalten, zumindest teilweise, codierte Daten variabler Länge ohne
Demarkation der Codewörter.
-
Am
Empfänger
werden, zum Zwecke der Dekomprimierung, die vorrangigen und nachrangigen Daten
aus entsprechenden Blöcken
rekombiniert. Die Tatsache, dass die übertragenen Daten-Codewörter keine
definierten Grenzen haben, macht das Rekombinieren der vorrangigen
und nachrangigen Daten kompliziert.
-
In
der älteren
nicht Vorveröffentlichten
EP 448 491 A1 ist
eine Videosignal-Verarbeitungseinrichtung zum Verarbeiten digitaler
komprimierter Videodaten beschrieben, die, unterteilt in vorrangige und
nachrangige Daten in einem vorrangigen bzw. einem nachrangigen Kanal übertragen
werden. Die vor- und nachrangigen Daten werden aus codierten komprimierten
Videodaten erzeugt, die als Blöcke von
Codewörtern
in einer nach Wichtigkeit für
die Bildwiedergabe absteigenden Reihenfolge erscheinen. Die Daten
bis jeweils durch zu einem j-ten Codewort einzelner Blöcke werden
als vorrangige Daten behandelt, und die übrigen Codewörter für die betreffenden
Blöcke
werden als nachrangige Daten behandelt. Eine erste Schaltung spricht
auf die vorrangigen und nachrangigen Daten an, um diese Daten zu
decodieren und entsprechende Folgen von Codewörtern vorrangiger bzw. nachrangiger
Daten zu liefern. Eine zweite Schaltung spricht auf die vorrangige und
die nachrangige Folge von Codewörtern
an, um in zyklischer Weise jeweils Codewörter der vorrangigen Folge
bis durch zu einem ersten vorbestimmten Codewort zu liefern, und
dann Codewörter
der nachrangigen Folge bis durch zu einem zweiten vorbestimmten
Codewort dieser nachrangigen Folge zuliefern und dann den Zyklus
zu wiederholen.
-
Bei
einer Anordnung zum Kombinieren von Daten aus einem vorrangigen
Kanal mit Daten aus einem nachrangigen Kanal zur Erzeugung eines
einzigen Datenstroms in einem Fernsehverarbeitungssystem zur Decodierung
eines komprimierten Videosignals, dessen vorrangige Daten in dem
vorrangigen Kanal und dessen nachrangige Daten in dem nachrangigen
Kanal übertragen
werden, wobei diese Daten Codewörter
CW unterschiedlicher Typen enthalten und diese Typen eine Hierarchie
von größerer zu minderer
Wichtigkeit für
die Bildwiedergabe darstellen, wobei die Codeworttypen größerer Wichtigkeit im
vorrangigen Kanal und die Codeworttypen minderer Wichtigkeit im
nachrangigen Kanal enthalten sind und die Codewörter in Blöcken von Daten erscheinen,
wobei Daten aus einzelnen Blöcken
in beiden Kanälen
auftreten und die Daten des vorrangigen und des nachrangigen Kanals
in jeweiligen Transportpaketen geführt werden, die Vorsatzdaten
mit Blockbezeichnungen enthalten, wobei die Vorsatzdaten der Transportpakete
des vorrangigen Kanals Codewörter
CW#j enthalten, die Typen von Codewörtern identifizieren, welche
im Kanal hoher Priorität enthalten
sind, besteht die Erfindung in einer ersten Einrichtung, die auf
das empfangene Signal anspricht, um einerseits die vorrangigen und
nachrangigen Daten mit herausgeschnittenen Vorsatzdaten und andererseits
die Vorsatzdaten zu liefern, einer zweiten Einrichtung, die auf
die Codewörter
CW#j in den Vorsatzdaten anspricht, um die vorrangigen Daten in
einzelne Teilblöcke
von Daten zu unterteilen, einer dritten Einrichtung, die auf die
nachrangigen Daten anspricht, um diese Daten in einzelne Teilblöcke von
Daten zu unterteilen, und einer vierten Einrichtung, die auf die
Vorsatzdaten anspricht, um einander entsprechende Teilblöcke vorrangiger
und nachrangiger Daten zu kombinieren, um so rekonstruierte Blöcke von
Daten zu liefern, die den besagten einzelnen Datenstrom bilden.
-
Die
Erfindung wird nachstehend an einem Ausführungsbeispiel anhand von Zeichnungen
näher erläutert:
-
1 zeigt Blockschaltbilder
eines die Erfindung verkörpernden
HDTV-Codier/Decodiersystems.
-
1B–1C sind
bildliche, für
die Beschreibung der Erfindung hilfreiche Darstellungen von Folgen
der Vollbilder/Teilbilder eines codierten Videosignals.
-
2 ist eine bildliche Darstellung
eines Makroblocks der von der Kompressionsschaltung nach 3 gelieferten Daten.
-
3 ist ein Blockschaltbild
einer Kompressionsschaltung für
Videosignale.
-
3A ist eine verallgemeinerte
bildliche Darstellung des von der Kompressionsschaltung nach 3 gelieferten Datenformats
-
4 ist ein Blockschaltbild
einer beispielgebenden Schaltungsanordnung, die für die Formatierungsschaltung 111 nach 3 verwendet werden kann.
-
5 ist ein Blockschaltbild
einer beispielgebenden Schaltungsanordnung, die für die Rangauswählschaltung
in 1 benutzt werden
kann.
-
5A ist ein Flußdiagramm
der Arbeitsweise des Analysators in 5.
-
6 ist ein Diagramm des vom
Transportprozessor 12 in 1 gelieferten
Signalformats.
-
7 zeigt ein Blockdiagramm
eines Schaltungsbeispiels für
die Implementierung der Transportsteuerschaltung gemäß 1.
-
8 ist ein Blockschaltbild
einer beispielgebenden Schaltungsanordnung, die für den Transportprozessor 25 in 1 benutzt werden kann.
-
9 ist ein Blockschaltbild
einer beispielgebenden Schaltungsanordnung, die für die Rückgliederungsschaltung 26 in 1 verwendet werden kann.
-
10 ist ein Blockschaltbild
einer beispielgebenden Schaltung, die für die Dekompressionsschaltung 27 in 1 verwendet werden kann.
-
10A ist ein Blockschaltbild
einer Kombination einer alternativen Rückgliederungsschaltung und
einer Dekompressionsschaltung.
-
10B ist ein Flußdiagramm
der Arbeitsweise der Rückgliederungsschaltung
nach 10A.
-
11 ist ein Blockschaltbild
einer beispielgebenden Schaltungsanordnung, die für die Modems 17 und 20 in 1 verwendet werden kann.
-
Ein
beispielgebendes HDTV-System, das mit der vorliegenden Erfindung
gestützt
werden kann, arbeitet mit einem 2:1- Zeilensprungsignal von 1050 Zeilen
bei 59,94 Vollbildern pro Sekunde. Das nominelle aktive Bild hat
960 Zeilen mit jeweils 1440 Pixels und einem Bildseitenverhältnis von
16 × 9.
Das Signal wird unter Verwendung von zwei Trägern in 64-Quadratur-Amplitudenmodulation (64-QAM) übertragen,
im Frequenzmultiplex innerhalb eines 6-MHz-Übertragungsbandes.
-
Die
nominelle Gesamtbitrate, einschließlich Video-, Ton- und Hilfsdaten,
ist 26–29
Mb/s.
-
Das
Videosignal wird zu Anfang entsprechend einem MPEG-ähnlichen Format komprimiert, jedoch
unter Verwendung beider Teilbilder eines jeden Vollbildes und mit
einer höheren
Pixeldichte. Anschließend
werden die Codewörter
des MPEG-artigen Signals in zwei Bitströme aufgegliedert, entsprechend
der relativen Wichtigkeit der jeweiligen Codewort-Typen. Die beiden
Bitströme
werden unabhängig
voneinander verarbeitet, um informationslose Bits für die Federkorrektur
einzubringen, und dann werden sie zugeordneten Trägern in
QAM aufmoduliert. Die modulierten Träger werden für die Übertragung kombiniert.
Der Bitstrom höherer
Wichtigkeit wird als vorrangiger Kanal bezeichnet, wobei für den Begriff "vorrangig" im folgenden auch
die Abkürzung
HP (von "High Priority") verwendet wird.
Der Bitstrom geringerer Wichtigkeit wird als nachrangiger Kanal
bezeichnet, wobei für
den begriff "nachrangig" im folgen auch die
Abkürzung
LP (von "Low Priority") verwendet wird.
Der vorrangige (HP-)Kanal wird mit ungefähr der doppelten Leistung gegenüber dem
nachrangigen (LP-)Kanal übertragen.
Das Verhältnis
der vorrangigen zur nachrangigen Information ist ungefähr 1:4.
Die ungefähren
Gesamt-Datenraten nach der Vorwärts-Fehlerkorrektur
sind 4,5 Mb/s für
den HP-Kanal und 18 Mb/s für
den LP-Kanal.
-
Die 1 veranschaulicht ein Beispiel
für ein HDTV-Codier/Decodiersystem
gemäß der Erfindung. Die 1 zeigt das System in der
Verarbeitung eines einzigen Videoeingangssignals; es versteht sich
jedoch, daß die
Leuchtdichte- und Farbartkomponenten getrennt komprimiert werden
und daß die
Bewegungsvektoren der Leuchtdichte werden, um komprimierte Farbartkomponenten
zu erzeugen. Die komprimierten Leuchtdichte- und Farbartkomponenten werden
verschachtelt, um Makroblocks zu bilden, bevor die Rangaufteilung
der Codewörter
erfolgt.
-
Eine
Folge von Teilbildern/Vollbildern, wie sie in 1B gezeigt ist, wird an eine Schaltung 5 gelegt,
welche die Teilbilder/Vollbilder entsprechend der 1C umordnet. Die umgeordnete Folge wird
an einen Kompressor gelegt, der eine komprimierte Folge von Vollbildern
erzeugt, die nach einem MPEG-ähnlichen
Format codiert sind. Dieses Format ist hierarchisch und in abgekürzter Form
in 3A dargestellt.
-
Das
hierarchische MPEG-Format enthält eine
Vielzahl von Ebenen mit jeweils einer zugehörigen Vorsatzinformation. Nominell
enthält
jeder Vorsatz einen Startcode, Daten bezüglich der jeweiligen Ebene
und Vorkehrungen für
die Hinzufügung
von Vorsatzerweiterungen. Ein großer Teil der Vorsatzinformation
(wie in dem oben erwähnten
MPEG-Dokument angegeben) ist bei MPEG-Systemen für Synchronisierungszwecke erforderlich.
Um ein komprimiertes Videosignal für ein digitales HDTV-Simultansendesystem
zu schaffen, bedarf es nur beschreibender Vorsatzinformationen,
d.h. Startcodes und optionale Erweiterungen können ausgeschlossen werden.
Die einzelnen Ebenen des codierten Videosignals sind bildlich in 2 dargestellt.
-
Wenn
hier davon die Rede ist, daß das
vorliegende System ein MPEG-ähnliches
Signal erzeugt, dann ist damit gemeint, daß a) aufeinanderfolgende Teilbilder/Vollbilder
des Videosignals entsprechend einer Folge I-, P- und B-Codierungen codiert werden
und b) codierte Daten auf der Bildebene in MPEG-ähnliche Gruppen von Blöcken, sogenannte "Streifen" (slices), codiert
werden, wenn auch die Anzahl der Streifen pro Teilbild/Vollbild
und die Anzahl von Makroblöcken
pro Streifen verschieden sein kann. I-Bilder sind Bilder, die durch
sogenannte "Intraframe"-Codierung komprimiert
sind; P-Bilder sind solche, die unter Extrapolation ("Prädiktion") in Vorwärtsrichtung
codiert sind; B-Bilder sind solche, die unter "bidirektionaler" Extrapolation codiert sind.
-
Das
codierte Ausgangssignal des vorliegenden Systems wird in Gruppen
von Teilbildern/Vollbildern (GOF) unterteilt, wie es durch die Kästchenreihe L1
veranschaulicht ist (3A).
Jede Gruppe GOF (Ebene L2) enthält
einen Vorsatz gefolgt von Abschnitten mit Bilddaten. Der GOF-Vorsatz
enthält
Daten bezüglich
der horizontalen und vertikalen Bildgröße, des Bildseitenverhältnisses,
der Teilbild/Vollbild-Frequenz, der Bitrate, usw..
-
Die
einem jeweiligen Teilbild/Vollbild entsprechenden Bilddaten (L3)
enthalten einen Vorsatz, gefolgt von Streifendaten (L4). Der Bild-Vorsatz
enthält eine
Teilbild/Vollbild-Nummer und eine Bildcodetype. Jeder Streifen (L4)
enthält
einen Vorsatz, gefolgt von einer Vielzahl von Datenblöcken MBi.
Der Streifen-Vorsatz enthält
eine Gruppennummer und einen Quantisierungsparameter.
-
Jeder
Block MBi (L5) stellt einen Makroblock (MBi) dar und enthält einen
Vorsatz, gefolgt von Bewegungsvektoren (MV) und codierten Koeffizienten. Die
MBi-Vorsätze
enthalten eine Makroblockadresse, eine Makroblock-Typenbezeichnung
und einen Quantisierungsparameter. Die codierten Koeffizienten sind
in der Ebene L6 dargestellt. Es sei bemerkt, daß jeder Makroblock aus sechs
Blöcken
besteht, nämlich
vier Leuchtdichteblöcke,
ein U-Farbartblock und ein V-Farbartblock, vgl. 2. Ein Block stellt eine Matrix von Pixels
dar, z.B. 8 × 8
Pixels, über
die eine diskrete Cosinustransformation (DCT) durchgeführt wird.
Die vier Leuchtdichteblöcke
sind jeweils eine 2-mal-2-Matrix benachbarter Leuchtdichteblöcke, die
z.B. eine Matrix von 16 × 16
Pixels darstellen. Die Farbartblöcke
(U und V) repräsentieren
dieselbe Gesamtfläche
wie die vier Leuchtdichteblöcke. Das
heißt,
vor der Komprimierung wird das Farbartsignal gegenüber der
Leuchtdichte horizontal und vertikal um einen Faktor 2 unterabgetastet.
Ein "Streifen" der Daten entspricht
den Daten, die einen rechteckigen Teil eines Bildes entsprechend
derjenigen Fläche
darstellen, welche einer Gruppe von benachbarten Makroblöcken entspricht.
-
Die
Blockkoeffizienten werden, für
jeden Block auf einmal, mit der diskreten Cosinustransformation
(DCT) geliefert, wobei zuerst der DCT-Gleichstromkoeffizient (DC-Koeffizient)
erscheint, jeweils gefolgt von einzelnen DCT-Wechselstromkoeffizienten (AC-Koeffizienten)
in der Reihenfolge ihrer relativen Wichtigkeit. Am Ende eines jeden
der aufeinandefolgend erscheinenden Datenblöcke wird ein Blockende-Code
EOB angehängt.
-
Die
Menge der vom Kompressor 10 gelieferten Daten wird durch
die Geschwindigkeits-Steuereinrichtung 18 bestimmt. Wie
allgemein bekannt, erscheinen komprimierte Videodaten mit variablen
Raten, zweckmäßigerweise
sollten die Daten aber mit einer der Kanalkapazität äquivalenten
konstanten Rate übertragen
werden, um den Kanal wirtschaftlich auszunutzen. Geschwindigkeitspuffer 13 und 14 sorgen
für die Überführung der
variablen Datenrate in eine konstante Rate. Es ist auch bekannt,
die Menge der vom Kompressor gelieferten Daten entsprechend dem
Belegungsgrad der Puffer einzustellen. Deswegen enthalten die Puffer 13 und 14 eine
Schaltungsanordnung zur Anzeige ihres jeweiligen Belegungsgrades.
Diese Anzeigen werden der Geschwindigkeits-Steuereinrichtung 18 zugeführt, um
die vom Kompressor 10 gelieferte mittlere Datenrate einzustellen.
Die Einstellung erfolgt typischerweise durch Einstellung der Quantisierung,
die bei den DCT-Koeffizienten angewandt wird. Die Quantisierungspegel können für verschiedene
Arten der Vollbildkompression unterschiedlich sein. Einzelheiten
einer beispielgebenden Methode zur Bestimmung von Quantisierungspegeln
finden sich in der US-Patentanmeldung Nr. 494,098, die am 15. März 1990
unter dem Titel "Digital
Signal Coding With Quantization Level Computations" eingereicht wurde
und auf die hier verwiesen wird.
-
Die
komprimierten Videodaten, die gemäß der 3A hierarchisch formatiert sind, werden
auf eine Rangauswähleinrichtung 11 gekoppelt,
welche die codierten Daten zwischen einem "vorrangigen" Kanal (HP-Kanal) und einem "nachrangigen" Kanal (LP-Kanal)
aufteilt (Rang"Selektion"). Die vorrangige (HP-)Information
ist diejenige, deren Verlust oder Entstellung zur größten Verschlechterung
in den wiedergegebenen Bildern führen
würde.
Umgekehrt ausgedrückt
sind es die erforderlichen Mindestdaten zur Schaffung eines Hildes,
wenn auch eines noch nicht perfekten Bildes. "Nachrangige" Information ist die restliche Information.
Die vorrangige Information enthält
im wesentlichen alle Vorsatzinformationen, die in den verschiedenen
hierarchischen Ebenen enthalten sind, plus die DC-Koeffizienten
der jeweiligen Blöcke
und einen Teil der AC-Koeffizienten der jeweiligen Blöcke (Ebene
6 in 3A).
-
Das
Verhältnis
der HP- zu den LP-Daten am Sender ist ungefähr gleich 1:4. Im Transportprozessor
werden dem zu sendenden Signal Zusatzdaten hinzugefügt. Dieses
Zusatzsignal kann ein digitales Tonsignal enthalten und z.B. Daten
für Fernsehtext. Heim
hier beschriebenen Beispiel wird zumindest das digitale Tonsignal
in den HP-Kanal eingefügt.
Die mittlere Menge der in den HP-Kanal eingefügten Zusatzdaten wird ausgerechnet
und mit dem erwarteten statistischen Mittel der komprimierten Videoinformation
verglichen. Hieraus wird das Verhältnis zwischen den vor- und nachrangigen
komprimierten Videoinformationen ausgerechnet. Die Rangauswähleinrichtung
teilt die vom Kompressor 10 gelieferten Daten entsprechend
diesem Verhältnis
auf.
-
Die
komprimierten HP- und LP-Videodaten werden auf einen Transportprozessor 12 gekoppelt, der
a) die HP- und LP-Datenströme in Transportblöcke unterteilt,
b) an jedem Transportblock eine Paritäts- oder zyklische Redundanzprüfung durchführt und
die betreffenden Paritätsprüfungsbits
daran anhängt
und c) die Zusatzdaten mit den HP- oder LP-Videodaten multiplexiert.
Die Paritätsprüfbits werden vom
Empfänger
benutzt, um in Verbindung mit synchronisierender Vorsatzinformation
Fehler zu isolieren und um Fehler zu verdecken, falls unkorrigierbare Bitfehler
in den empfangenen Daten enthalten sind. Jeder Transportblock enthält einen
Vorsatz mit Informationen, die den Typ der im Block enthaltenen
Information anzeigt, z.B. Videoton und Hinweismarken für die Anfangspunkte
benachbarter gleichartiger Daten.
-
Die
HP- und LP-Datenströme
vom Transportprozessor 12 werden jeweils auf den zugeordneten
Puffer 13 bzw. 14 gegeben, worin die vom Prozessor 12 kommenden
Videodaten variabler Geschwindigkeit in Daten umgewandelt werden,
die mit einer im wesentlichen konstanten Rate oder Geschwindigkeit
erscheinen. Die geschwindigkeitsjustierten HP- und LP-Daten werden
jeweils einer zugeordneten Vorwärts-Fehlercodiereinrichtung 15 bzw. 16 zugeführt, worin
a) die betreffenden Datenströme unabhängig voneinander
jeweils eine REED-SOLOMON-Codierung
für Vorwärts-Fehlerkorrektur
erfahren, b) Datenblöcke
verschachtelt werden, um zu verhindern, daß große Fehlerbündel einen großen zusammenhängenden
Bereich eines wiedergegebenen Bildes entstellen, und c) den Daten
z.B. Barker-Codes angehängt
werden, für
die Synchronisierung der Datenströme am Empfänger. Anschließend werden die
Signale auf ein Sende-Modem 17 gekoppelt, worin die Daten
des HP-Kanals in Quadratur-Amplitudenmodulation einem ersten Träger und
die Daten des LP-Kanals in Quadratur-Amplitudenmodulation einem zweiten Träger aufmoduliert
werden, der gegenüber
dem ersten Träger
um ungefähr
2,88 MHz versetzt ist. Die 6-dB-Bandbreite des modulierten ersten
Trägers
ist ungefähr
0,96 MHz, und diejenige des zweiten Trägers ist ungefähr 3,84
MHz. Der modulierte erste Träger
wird mit einer um ungefähr
9 dB höheren
Leistung als der modulierte zweite Träger gesendet. Da die HP-Information
mit größerer Leistung
gesendet wird, ist sie weniger anfällig für Entstellung durch den Sendekanal.
Der HP-Träger liegt in
demjenigen Bereich des Frequenzspektrums eines Fernsehkanals wie
z.B. eines NTSC-Kanals, der normalerweise vom Restseitenband eines
Fernsehsignals z.B. der NTSC-Norm belegt. Dieser Teil des Signalkanals
wird in Standardempfängern
normalerweise durch die dort vorhandenen Nyquist-Filter stark gedämpft, so
daß HDTV-Signale
mit diesem Sendeformat keine Gleichkanalstörung einführen.
-
Im
Empfänger
wird das gesendete Signal durch das Modem 20 demoduliert,
so daß zwei
Signale entsprechend dem HP- und dem LP-Kanal geliefert werden.
Diese beiden Signale werden an jeweils einen zugeordneten REED-SOLOMON-Fehlerkorrekturdecoder 21 bzw. 22 gelegt.
Die fehlerkorrigierten Signale werden auf Geschwindigkeitspuffer 23 und 24 gegeben,
die Daten mit einer variablen Geschwindigkeit empfangen, entsprechend
den Erfordernissen der nachfolgenden Dekompressionsschaltung. Die
mit variabler Rate oder Geschwindigkeit erscheinenden HP- und LP-Daten
werden auf einen Transportprozessor 25 gegeben, der einem
gegenüber
dem Prozessor 12 inversen Prozeß durchführt. Außerdem bewirkt er eine gewisse
Fehlerkorrektur in Ansprache auf die in den einzelnen Transportblöcken enthaltenen
Paritätsprüfbits. Der
Transportprozessor 25 liefert voneinander getrennte Zusatzdaten, HP-Daten,
LP-Daten und ein Fehlersignal E. Die letztgenannten drei Signale
werden auf einen "Rückgliederungs"-Prozessor 26 gegeben,
der die HP- und LP-Daten wieder zurück in ein hierarchisch gegliedertes
Signal formatiert (Rang-"Deselektion"), das an einen Dekompressor 27 gelegt
wird. Der Dekompressor 27 führt die inverse Funktion des
Kompressors 10 durch.
-
Die 3 zeigt ein Beispiel für eine Kompressorvorrichtung,
die für
die Einrichtung 10 der 1 verwendet
werden kann, um hierarchisch gegliederte komprimierte Videodaten
zu liefern. Die gezeigte Vorrichtung enthält nur die zur Erzeugung komprimierter
Leuchtdichtedaten benötigte
Schaltungsanordnung. Eine ähnliche
Vorrichtung wird zur Erzeugung komprimierter U- und V-Farbartdaten
benötigt.
In der 3 sind die Elemente 104 und 105 zur
Berechnung der Vorwärts-
bzw. der Rückwärts-Bewegungsvektoren
bestimmt. Ob ein Bewegungsvektor vorwärts oder rückwärts gerichtet ist, hängt nur
davon ab, ob das laufende Teilbild bezüglich eines vorangehenden oder
eines nachfolgenden Teilbildes analysiert wird; daher werden beide
Elemente durch gleichartige Schaltungsmittel realisiert, und in
der Tat erzeugen beide Elemente 104 und 105, auf
Teilbild/Vollbild-Basis
abwechselnd, Vorwärts- und
Rückwärts-Vektoren.
Zur Realisierung der Elemente 104 und 105 können integrierte
Schaltungen des Typs STI 3220 MOTION ESTIMATION PROCESSOR verwendet
werden, erhältlich
von SGS-THOMSON MICROELECTRONICS. Um die notwendigen Verarbeitungsgeschwindigkeiten
zu erzielen, weist jedes der Elemente 104 und 105 eine Mehrzahl
solcher integrierter Schaltungen auf, die gleichzeitig verschiedene
Bereiche der jeweiligen Bilder verarbeiten.
-
Das
Element 109, das mit "DCT & Quantisierung" bezeichnet ist,
führt die
diskrete Cosinustransformation und die Quantisierung der Transformierten-Koeffizienten
durch und kann realisiert werden unter Verwendung integrierter Schaltungen
des Typs STV 3200 DISCRETE COSINE TRANSFORM, erhältlich von SGS-THOMSON MICROELECTRONICS.
Das Element 109 kann ebenfalls durch eine Vielzahl dieser
Schaltungen realisiert werden, die parallel betrieben werden, um
gleichzeitig verschiedene Bereiche des Bildes zu verarbeiten.
-
Es
sei die 1C betrachtet
und angenommen, daß gerade
das Vollbild 16 ansteht. Das früher erschienene P-Vollbild 13 ist
ergriffen und im B-Pufferspeicher 101 gespeichert worden.
Außerdem
ist ein erzeugtes extrapoliertes Vollbild 13 in einem der Pufferspeicher 114 bzw. 115 gespeichert
worden. Wenn das Vollbild 16 erscheint, wird es im A-Pufferspeicher 102 gespeichert.
Außerdem
wird das Vollbild 16 an einen Arbeitspufferspeicher 100 gelegt. Wenn
das Vollbild 16 erscheint, werden zugehörige Bilddatenblöcke aus
dem Speicher 100 an den Minuendeneingang eines Subtrahierers 108 gelegt.
Während
der Komprimierung des I-Vollbildes
wird der Subtrahendeneingang des Subtrahierers 108 auf dem
Wert Null gehalten, so daß Daten
den Subtrahierer 108 unverändert durchlaufen. Diese Daten werden
an die DCT- und Quantisierungseinrichtung 109 gelegt, die
quantisierte Transformierten-Koeffizienten an Einrichtungen 110 und 112 liefert.
Die Einrichtung 112 führt
eine inverse Quantisierung und eine inverse DCT-Transformation der Koeffizienten durch,
um ein rekonstruiertes Bild zu erzeugen. Das rekonstruierte Bild
wird über
einen Addierer 113 an einen der Pufferspeicher 114 bzw. 115 gelegt
und dort gespeichert, um bei der Komprimierung nachfolgender H-
und P-Vollbilder benutzt zu werden. Während der Komprimierung der
I-Vollbilder wird den von der Einrichtung 112 gelieferten
rekonstruierten Bilddaten keine Information (vom Addierer 113)
hinzugefügt.
-
Die
Einrichtung 110 führt
während
der Komprimierung von I-Vollbildern
zwei Funktionen durch. Zuerst bewirkt sie eine Differenzcodierung
(DPCM) der vom Element 109 erzeugten EC-Koeffizienten. Dann codiert sie die
differenzcodierten Koeffizienten in einem längenvariablen Code (VLC) und
codiert die vom Element 109 erzeugten AC-Koeffizienten
in einem Code mit Zero-Run und variabler Länge. Die längenvariablen (VCL-)Codewörter werden
an einen Formatierer 111 gelegt, der die Daten in Abschnitte aufteilt
und jeweils Vorsatzinformationen anhängt, entsprechend den Ebenen
gemäß der 3A. Die codierten Daten
von der Einrichtung 111 werden dann zur Rangauswähleinrichtung
durchgelassen. Jede der Einrichtungen 109, 110 und 111 wird
durch ein System-Steuergerät 116 gesteuert,
um die jeweiligen Operationen zyklisch zu den passenden Zeiten durchzuführen.
-
Nach
dem Vollbild 16 erscheint ein "B"-Vollbild
(14) und wird in den Pufferspeicher 100 geladen. Daten
aus dem Vollbild 14 werden auf beide Einrichtungen 104 und 105 gekoppelt.
Die Einrichtung 104 spricht auf Daten des Vollbildes 14 aus
dem Speicher 100 und auf Daten des Vollbildes 13 aus
dem Speicher 101 an und berechnet Vorwärts-Hewegungsvektoren für einzelne
Blöcke
von jeweils 16 × 16
Pixels der Bilddaten. Sie liefert außerdem ein Verzerrungssignal,
das die relative Genauigkeit der jeweiligen Vorwärts-Bewegungsvektoren anzeigt.
Die Vorwärts-Bewegungsvektoren
und die entsprechenden Verzerrungssignale werden auf einen Analysator 106 gekoppelt.
-
Die
Einrichtung 105 spricht auf Daten des Vollbildes 14 aus
dem Speicher 100 und auf Daten des I-Vollbildes 16 aus
dem Speicher 102 an und erzeugt Rückwärts-Bewegungsvektoren und entsprechende
Verzerrungssignale, die ebenfalls auf den Analysator 106 gekoppelt
werden. Der Analysator 106 vergleicht die Verzerrungssignale
mit einem Schwellenwert, und wenn beide den Schwellenwert übersteigen,
liefert sie die Vorwärts-
und Rückwärts-Bewegungsvektoren
beide als den Bewegungsvektor und liefert außerdem ein entsprechendes Signal,
das zum Verhältnis
der Verzerrungssignale in Beziehung steht. Bei Rekonstruktion erfolgt dann
die Erzeugung extrapolierter Bilder unter Verwendung sowohl des
Vorwärts-
als auch des Rückwärts-Vektors
und entsprechender davon abgeleiteter Vollbilddaten. Aus den vor-
und rückwärts extrapolierten
Vollbildern wird ein entsprechend dem Verhältnis der Verzerrungssignale
interpoliertes Vollbild erzeugt. Falls die Verzerrungssignale für die Vorwärts- und Rückwärts-Bewegungsvektoren
beide niedriger als die Schwelle sind, wird als Bewegungsvektor
für den
Block derjenige ausgewählt,
dem das Verzerrungssignal des niedrigeren Wertes entspricht.
-
Nachdem
der Bewegungsvektor bestimmt ist, wird er an einen bewegungskompensierten
Datenextrapolator bzw. "Prädiktor" 107 gelegt,
der Zugriff auf das passende Exemplar der in den Speichereinrichtungen 114 und 155 gespeicherten
Datenblöcke nimmt,
das durch den Vektor aus einem oder beiden der zuvor regenerierten
Vollbilder 16 und 13 definiert ist. Dieser Datenblock
wird an den Subtrahendeneingang des Subtrahierers 108 gelegt,
worin er Pixel für Pixel
vom entsprechenden Pixeldatenblock aus dem laufenden Vollbild 14 subtrahiert
wird, der vom Pufferspeicher 100 geliefert wird. Die Differenzen
oder Reste werden dann in der Einrichtung 109 codiert, und
die Koeffizienten werden an die Einrichtung 110 gelegt.
Der entsprechende Blockvektor wird ebenfalls an die Einrichtung 110 gelegt.
Für codierte
B- und P-Vollbilder werden die DC-Koeffizienten nicht differenzcodiert,
jedoch werden sowohl die DC- als auch die AC-Koeffizienten längenvariabel
codiert. Die Bewegungsvektoren werden differenzcodiert, und dann
werden die differenzcodierten Vektoren längenvariabel codiert. Die codierten
Vektoren und Koeffizienten werden dann an den Formatierer 111 übertragen.
Die codierten B-Vollbilder erfahren keine inverse Quantisierung
und inverse Transformation im Element 112, da sie für die nachfolgende
Codierung nicht verwendet werden.
-
P-Vollbilder
werden in ähnlicher
Weise codiert, nur daß ausschließlich Vorwärts-Bewegungsvektoren
erzeugt werden. So erfolgt beispielsweise die Codierung des P-Vollbildes 19 mit
Bewegungsvektoren, die zu entsprechenden Blöcken des I-Vollbildes 16 und des P-Vollbildes 19 gehören. Während der
Codierung von P-Vollbildern liefert das Element 112 entsprechende
decodierte Restwerte, und die Einrichtung 107 liefert das
entsprechende extrapolierte P-Vollbild. Das extrapolierte Vollbild
und die Restwerte werden im Addierer 113 Pixel für Pixel
addiert, um das rekonstruierte Vollbild zu erzeugen, das in demjenigen
Exemplar der Speichereinrichtungen 114 und 116 gespeichert
wird, welches nicht die Vollbildinformation enthält, aus der das extrapolierte P-Vollbild erzeugt
wird. Das rekonstruierte und gespeicherte P-Vollbild wird für die Codierung
nachfolgender B-Vollbilder benutzt. Es sei erwähnt, daß sowohl für die P- als auch die B-Teilbilder/Vollbilder
diskrete Cosinustransformationen (DCT) auf Blockbasis durchgeführt werden
(z.B. auf der Basis einer Matrix von 8 × 8 Pixels), während die
Bewegungsvektoren auf Makroblock-basis errechnet werden (z.B. für eine Matrix
von 2 × 2
Blöcken
der Leuchtdichte oder eine Matrix von 16 × 16 Pixels).
-
Die 4 zeigt in Blockform ein
Beispiel für eine
Schaltungsanordnung, die verwendet werden kann, um die Funktion
der Einrichtungen 110 und 111 in 3 durchzuführen. Das Ausgangsformat dieser Schaltungsanordnung
weicht ab von demjenigen, das normalerweise von einem MPEG-Codierer
geliefert wird: Während
ein MPEG-Ausgang ein bit-serieller Datenstrom ist, haben die vom
Schaltungsbeispiel nach 4 gelieferten
Daten Wörter
im Parallelbit-Format.
Dieses Format wird gewählt,
um die Realisierung sowohl des Rangauswählprozessors als auch des Transportprozessors
zu vereinfachen. Außerdem
werden zwei Extrasignale geliefert, die den Codetyp CW eines jeden
Ausgangs-Codewortes, CW,
und die Länge
CL eines jeden Codewortes definieren.
-
Bei
der Schaltungsanordnung nach 4 werden
die Bewegungsvektoren aus dem Analysator 106 (3) im DPCM-Element 127 auf
Streifenbasis differenzcodiert und über einen Pufferspeicher 133 auf
einen Multiplexer 129 gekoppelt. Die Transformierten-Koeffizienten
von der Transformationseinrichtung 109 werden auf einen
Multiplexer 132 und eine Differenzcodierungseinrichtung
(DPCM) 128 gekoppelt. Die differenzcodierten Koeffizienten
von der DPCM-Einrichtung 128 werden auf einen zweiten Eingang
des Multiplexers 132 gegeben. Während der Codierung von P-
oder B-Vollbildern werden alle Koeffizienten direkt vom Multiplexer 132 durchgelassen. Während der
Codierung von I-Vollbildern
werden die DC-Koeffizienten selektiv in der DCPM-Einrichtung 128 differenzcodiert.
Die differenzcodierten DC-Koeffizienten und die nicht-differenzcodierten
AC-Koeffizienten
werden vom Multiplexer 132 im Multiplex verschachtelt und über den
Pufferspeicher 133 auf einen zweiten Eingang des Multiplexers 129 gekoppelt.
Ein Formatsteuer- und Vorsatzgeber 126 koppelt Vorsatzinformation
auf einen dritten Eingang des Multiplexers 129. Die Einrichtung 126 enthält gespeicherte Information
und eine Steuerschaltung, um a) die erforderliche Vorsatzinformation
für die
verschiedenen Codeebenen (3A)
zu liefern, und um b) Steuersignale für die Zeitmultiplex-Verschachtelung
der Vorsatzinformation, der Bewegungsvektoren und der Transformierten-Koeffizienten
im Multiplexer 129 zu liefern. Die Einrichtung 126 spricht über den
Steuerbus CB auf das System-Steuergerät an, um die passenden Vorsätze entsprechend
der Bildgröße, der Geschwindigkeit,
des Typs der Bildcodierung, der Quantisierungsparameter, usw. zu
liefern. Manche der Vorsatzinformationen werden von der Einrichtung 126 in
Verbindung mit einem Analysator 125 errechnet. Beim Format
des MPEG-Typs ist ein großer
Teil der Vorsatzinformation (z.B. Ebene 5 in 3A) variabel, so etwa der Typ der Blockcodierung,
der Typ der Bewegungsvektoren, ob ein Block Bewegungsvektoren vom
Wert Null hat und/oder ob alle Koeffizienten in einem Block den
Wert Null haben. Die Vektorinformation und die Koeffizienteninformation
wird an den Analysator 125 gelegt, um diese Typen von Vorsatzinformation
festzustellen. Ob ein Bewegungsvektor vorwärts oder rückwärts gerichtet ist und/oder den
Wert Null hat, läßt sich
direkt durch Prüfung
der Vektoren bestimmen. Ob alle Koeffizienten in einem Block den
Wert Null haben, läßt sich
einfach dadurch bestimmen, daß man
die Beträge
der in einem Block enthaltenen Vektoren akkumuliert. Sobald der
Typ variabler Vorsatzdaten festgestellt ist, wird ein entsprechendes
Codewort zugeteilt und zu passender Zeit an den Multiplexer 129 geliefert.
Die Einrichtung 126 liefert außerdem Information über den
gerade in das Multiplex einzufügenden
Codeworttyp, d.h. Vorsatzinformation, Bewegungsvektor-Information, DC-Koeffizienten, AC-Koeffizienten.
-
Die
im Zeitmultiplex verschachtelte Information wird auf einen Codierer 130 für längenvariablen Code
(VLC) gekoppelt, der ebenfalls von der Einrichtung 126 gesteuert
wird. In der Figur ist der Fall gezeigt, daß die VLC-Steuerung durch das
Codetyp-Signal erfolgt. Die verschiedenen Codetypen sind längenvariable
Codes entsprechend verschiedenen VLC-Codetabellen, und daher ist
die Verwendung des Codetypsignals für diese Steuerung geeignet.
-
Der
VLC-Codierer 130 kann einen Zero-Run-Codierer zum Codieren
von Zero-Runs der AC-Koeffizienten enthalten und eine Vielzahl von Huffmann-Codetabellen,
die durch jeweilige, vom Multiplexer 129 durchgelassene
Codewörter
adressiert werden, um die längenvariable
Codierung der Transformierten-Koeffizienten und der Bewegungsvektoren
vorzunehmen. Die jeweils benutzte Tabelle wird durch das Codetypsignal
aktiviert. Jede der Codetabellen kann entsprechende Tabellen enthalten, die
mit den Codelängen
der jeweiligen längenvariablen
Codewörter
programmiert sind. Die Codewörter CW
und die Codelängen
CL werden gleichzeitig auf getrennten Bussen im Parallelbit-Format
geliefert. Im allgemeinen ist die Vorsatzinformation nicht längenvariabel
codiert und wird unverändert
vom VLC-Codierer 130 durchgelassen.
Der VLC-Codierer 130 enthält jedoch Codelängen-Tabellen,
um in Abhängigkeit
vom Codetypsignal die Codelängen
der Vorsatz-Codewörter
zu liefern. Alternativ kann ein Bitzähler im VLC-Codierer enthalten
sein, um die Anzahl der Bits dieser Daten zu zählen.
-
Die
Einrichtung 126 steuert ferner das Einschreiben und Auslesen
von Daten am Pufferspeicher 133.
-
Die 5 zeigt ein Beispiel für eine Vorrichtung
zur Durchführung
des Rangauswählvorganges. Diese
Vorrichtung kann in mehreren Betriebsarbeiten arbeiten. Beispielsweise
kann die Rangaufteilung der Daten für die verschiedenen Teilbild/Vollbild-Typen auf
einer gleichen Basis oder auf ungleicher Basis erfolgen. Im letzteren
Fall sei angenommen, daß der HP-Kanal
20% der gesendeten Gesamtdaten durchläßt und daß 3% des HP-Kanals durch Zusatzdaten verbraucht.
Wenn die Videodaten für
maximalen Ausnutzungsgrad des Sendekanals quantisiert sind, können dem
HP-Kanal 17,53% der Videodaten zugeordnet werden. Im erstgenannten
Fall können
die vorrangigen Daten für
die I-, P- und B-Vollbilder
beispielsweise im Verhältnis α:β:1 zugeordnet
werden. Die Werte α und β können vom
Benutzer wählbar sein
und/oder auf einer statistischen Basis aus der Menge der Codedaten
vorheriger codierter Vollbilder bestimmt werden.
-
Es
seien nun die 5 und 5A betrachtet. Die Daten
vom längenvariablen
Codierer 130 werden auf zugeordnete Eingangsanschlüsse zweier
Pufferspeicher 150A und 150B und auf einen Datenanalysator 152 gekoppelt.
Die beiden Puffer haben jeweils genug Speicherplatz, um z.B. einen
Streifen der Daten zu speichern. Die Puffer 150A und 150B werden in
einer "Ping-Pong"-Arbeitsweise betrieben,
um Datenstreifen abwechselnd einzuschreiben und auszulesen. Während also
der Puffer 150A Daten aus z.B. dem Streifen n einschreibt,
liest der Puffer 150B Daten aus dem Streifen n – 1 aus.
-
Während Daten
in einen der Puffer eingeschrieben werden, erzeugt der Analysator 152 eine Codewortnummer
CW#i für
jedes Codewort und speichert sie in Verbindung mit dem betreffenden
Codewort. Der Analysator berechnet außerdem den Punkt bzw. das Codewort,
bei welchem die Daten zwischen dem vorrangigen und dem nachrangigen Kanal
aufgeteilt werden sollen. Die Berechnung ist für die Menge der im Puffer gespeicherten
Daten bestimmt. Es gibt vier allgemeine Typen von Daten, nämlich Vorsatzdaten,
Bewegungsvektoren, DC-Koeffizienten und AC-Koeffizienten. Die DC-
und AC-Koeffizienten über
einen Block erscheinen in einer derartigen Reihenfolge, daß zuerst
der DC-Koeffizient kommt und dann Codewörter, welche die AC-Koeffizienten
darstellen, in einer Reihenfolge gemäß absteigender Wichtigkeit.
Die Gesamtzahl der Bits für
alle Codewörter
im Puffer werden gezählt. Dann
wird das Codewort, bei welchem die Summe der Bits gerade größer ist
als der Prozentanteil der vorrangigen Daten, als ein Codewort der
Nummer CW#j identifiziert. Diese Nummer wird an eine Schalteinrichtung 153A (153B)
gelegt und zur Steuerung des Multiplexers 155A (155B)
benutzt. Nachdem die Codewortnummer CW#j identifiziert ist, werden
die Codewörter,
die Daten der Codelänge,
die Daten des Codeworttyps und die Codewornummern parallel aus dem
Puffer 150A (150B) ausgelesen. Die Codewörter und
die Daten der Codelängen
und der Codetypen werden an den Eingang des Multiplexers 155A (155B)
gelegt, und die Codewortnummern werden an einen Eingang der Schalteinrichtung 153A (153B)
gelegt. Während
die Daten aus dem Puffer ausgelesen werden, vergleicht die Schalteinrichtung 153A (153B)
die Codewortnummern mit der errechneten Zahl CW#j. Für alle Codewortnummern,
die gleich oder kleiner sind als CW#j, liefert die Schalteinrichtung
ein Steuersignal, welches den Multiplexer 155A (155B)
so einstellt, daß er
die entsprechenden Daten über
einen vierten Multiplexer 156 zum vorrangigen Kanal (HP-Kanal)
durchläßt. Für Codewortnummern,
die größer sind
als CW#j, wird der Multiplexer 155A (155B) so
eingestellt, daß er
die entsprechenden Daten über
den Multiplexer 156 zum nachrangigen Kanal (LP-Kanal) durchläßt. Die
Steuerung des Multiplexers 156 erfolgt so, daß er vor-
und nachrangige Daten aus demjenigen der beiden Puffer 150A und 150b durchläßt, der
gerade ausgelesen wird.
-
Der
Analysator 152 spricht auf die Codelängen-Signale und auf die Codetyp-Signale
an. In Ansprache auf die Codetyp-Signale
erzeugt der Analysator Codewortzahlen für jedes erscheinende Codewort
(Schritt 502 in 5A).
Beispielsweise wird jedem Codewort, das Vorsatzinformation darstellt,
die Zahl –2
zugeordnet. Jedem Codewort, das einen Bewegungsvektor darstellt,
wird die Zahl –1
zugeordnet, und jedem Codewort, das einen DC-Koeffizienten darstellt,
wird die Zahl 0 zugeordnet. Aufeinanderfolgenden AC-Codewörtern werden
von Block zu Block aufsteigende ganze Zahlen i von 1 bis n zugeordnet.
-
Der
Analysator 152 enthält
außerdem
einen Akkumulator, der unter Steuerung durch die Codelängen- und
Codetyp-Signale die Anzahl der Bits der in den Puffer 150A (150B)
eingegebenen Codewörter
für jeden
Codetyp getrennt zählt.
Diese Summen werden addiert (Schritt 504), um die Gesamtanzahl der
im Puffer enthaltenen Codewortbits zu liefern. Die Gesamtsumme wird
mit dem dezimalen Äquivalent des
dem HP-Kanal zugeordneten
Prozentanteils multipliziert, um eine Prüfsumme zu erhalten (Schritt 512).
Anschließend
werden die jeweiligen Codetyp-Summen sequentiell in absteigender
Reihenfolge der Codewortnummer CW#i addiert (Schritt 508),
um Teilsummen zu liefern. Jeder Teilsumme wird mit der Prüfsumme verglichen
(Schritt 512), bis die Teilsumme die Prüfsumme übersteigt. Die für die unmittelbar vorhergehende
Teilsumme geltende Codewortnummer CW#j ist das letzte Codewort innerhalb
eines Blockes für
den HP-Kanal (Schritte 512–518). Alle nachfolgenden
Codewörter,
d.h. CW#j + 1 bis CW#n in jedem Block werden dem nachrangigen Kanal (LP-Kanal) zugeteilt.
-
Die
vorrangigen und nachrangigen Daten aus dem Rangauswähler werden
in Transportblöcken
angeordnet, um die Wiederge winnung des Signals und die Fehlerverdeckung
im Empfänger
zu verbessern. Das Format der Transportblöcke ist in 6 gezeigt. Ein exemplarischer HP-Transportblock
enthält
1728 Bits, und ein LP-Transportblock enthält 864 Bits. Die einzelnen
Transportblöcke
können
mehr oder weniger als die Daten eines Streifens enthalten. So kann
es vorkommen, daß ein
Transportblock Daten vom Ende eines Streifens und Daten vom Anfang des
nächstfolgenden
Streifens enthält.
Transportblöcke,
die Videodaten enthalten, können
mit Transportblöcken,
die andere Daten wie z.B. Toninformation enthalten, verschachtelt
sein. Jeder Transportblock enthält
einen Diensttyp-Vorsatz ST, der den Typ der im betreffenden Transportblock
enthaltenen Information anzeigt. Heim vorliegenden Beispiel ist
dieser ST-Vorsatz ein 8-Bit-Wort, das anzeigt, ob die Daten vorrangige
oder nachrangige Daten sind und ob sie Toninformation, Videoinformation
oder Zusatzdaten darstellen. Vier Bits des 8-Bit-Wortes werden dazu benutzt,
die ST-Information darzustellen, und vier Bits werden für den Hamming-Paritätsschutz
der ST-Informationsbits
verwendet.
-
Jeder
Transportblock enthält
einen Transportvorsatz TH unmittelbar nach dem ST-Vorsatz. Für den LP-Kanal
enthält
der Transportvorsatz eine aus 7 Bits bestehende Makroblock-Hinweisadresse, einen
aus 18 Bits bestehenden Bezeichner und eine aus 7 Bits bestehende
Hinweisadresse auf das Satzanfangsetikett RH. Der Transportvorsatz
des HP-Kanals enthält
nur ein aus 8 Bits bestehendes Satzanfangsetikett RH. Die Makroblock-Hinweisadresse wird
für Fälle verwendet
in den Makroblöcke
oder Satzanfangsetiketten RH zerschnitten sind, und weist auf den
Beginn der nächsten
decodierbaren Komponente hin. Wenn z.B. der betreffende Transportblock
Makroblockdaten enthält,
die zum Ende des Streifens n und zum Beginn des Streifens n + 1 gehören, werden
die Daten aus dem Streifen n an den Transportvorsatz angrenzend
angesetzt, und die RH-Hinweisadresse zeigt an, daß die nächsten decodierbaren
Daten angrenzend am Transportvorsatz TH liegen. Wenn umgekehrt ein
Satzanfangsetikett RH an den Transportvorsatz TH angrenzt, bezeichnet
die erste Marke die dem Satzanfangsetikett RH folgende Byte-Position.
Eine Makroblock-Hinweisadresse mit dem Wert 0 zeigt an, daß der Transportblock
keinen Makroblock-Anfangspunkt hat.
-
Der
Transportblock kann kein, ein oder mehr als ein Satzanfangsetikett
enthalten, und deren Positionen sind innerhalb des Transportblockes
veränderlich.
Ein Satzanfangsetikett erscheint am Beginn jedes Streifens von Makroblockdaten
im HP- und LP-Kanal. Keine Satzanfangsetiketten haben diejenigen
Transportblöcke,
die nur Videodaten-Vorsatzinformation enthalten. Die Satzanfangsetikett-Hinweisadresse weist
auf diejenige Byte-Position, die den Beginn des nächsten Satzanfangsetikettes
im Transportblock enthält.
Es sei erwähnt,
daß das
erste Satzanfangsetikett in einem Transportblock an eine Byte-Grenze
gesetzt wird. Das heißt,
wenn dem Satzanfangsetikett ein längenvariabler Code vorangeht,
kann dieser Code mit Füllbits
versehen werden, um sicherzustellen, daß der Beginn des Satzanfangsetikettes
an einer Bitposition erscheint, die vom Beginn des Transportblockes
um eine ganze Anzahl von Bytes beabstandet ist. Die Satzanfangsetiketten RH
werden an Bit-Grenzen
gesetzt, damit sie der Decoder lokalisieren kann, denn sie liegen
eingebettet in einem Strom geketteter längenvariabler Codewörter. Eine
RH-Hinweisadresse mit dem Wert 0 zeigt an, daß sich keine Satzanfangsetiketten
im Transportblock befinden. Wenn sowohl das RH-Hinweisadresse als
auch die Makroblock-Hinweisadresse den Wert 0 haben, zeigt dies
an, daß der
Transportblock nur Videodaten-Vorsatzinformation
enthält.
-
Der
aus 18 Bits bestehende Bezeichner im LP-Transportvorsatz identifiziert
den Typ des laufenden Vollbildes, die Vollbildnummer (Modulo 32),
die laufende Streifennummer und den ersten Makroblock, der im Transportblock
enthalten ist.
-
Nach
dem Transportvorsatz kommt entweder ein Satzanfangsetikett, oder
es folgen Daten. wie in 6 gezeigt,
enthält
das Satzanfangsetikett für die
Videodaten im HP-Kanal
folgende Information: Ein aus einem Bit bestehendes "Kennzeichen", welches anzeigt,
ob eine Vorsatz-"Erweiterung" vorhanden ist. Nach
dem Kennzeichen kommt ein "Bezeichner", der erstens den
Teilbild/Vollbild-Typ ("Bildtyp") I, B oder P, zweitens
eine Teilbild/Vollbild-Nummer ("Bildnummer", Modulo 32) und
drittens eine "Streifennummer" (Modulo 64) anzeigt.
Nach diesem Bezeichner enthält
die Satzanfangsetikett einen Hinweis auf die "Rangwechselstelle j" des Makroblocks. Dieser Hinweis gibt
die Codewortnummer CW#j an, die vom Analysator 152 des
Rangauswählers
geliefert wird, um die Codewörter
zwischen dem vorrangigen (HP) und dem nachrangigen (LP) Kanal aufzuteilen.
Als letztes kann wahlweise eine Vorsatz-"Erweiterung" in der HP-Satzanfangsetikett
enthalten sein.
-
Das
in den LP-Kanal aufgenommene Satzanfangsetikett RH enthält nur einen "Bezeichner", der ähnlich wie
der Bezeichner im HP-Kanal ist.
-
Jeder
Transportblock wird beendet mit einer Folge von 16 Vollbild-Prüfbits FCS,
die aus allen Bits im Transportblock errechnet wird. Diese Prüfbitfolge FCS
kann unter Verwendung eines zyklischen Redundanzcodes erzeugt werden.
-
Die 7 zeigt ein Ausführungsbeispiel
des Transportprozessors. Eine als "Schiedsrichter" fungierende Einrichtung 213 verschachtelt über einen Multiplexer 212 Transportblöcke von
Videodaten aus einem Multiplexer 211, Tondaten aus einem
Speicher 214 und Zusatzdaten aus einem Speicher 215.
Die Tondaten werden in Form von Transportblöcken von einer Quelle 216 geliefert
und einem chronologischen Speicher (FIFO-Speicher) 214 zugeführt. Die Zusatzdaten
werden in Form von Transportblöcken von
der Quelle 217 an einen FIFO-Speicher 215 geliefert.
Die Formate der Transportblöcke
für die
Ton- und Zusatzdaten können
anders sein als das Format der Video-Transportblöcke, jedoch enthalten alle Transportblöcke einen
vorangestellten Diensttyp-Vorsatz und haben vorzugsweise gleiche
Länge. Das
Schiedsrichtergerät 213 arbeitet
unter Berücksichtigung
des Belegungsgrades der Pufferspeicher 214, 215 und 207 in
einer Weise, die sicherstellt, daß keiner dieser Pufferspeicher überläuft.
-
Die
Anordnung nach 7 verarbeitet
eines der vorrangigen und nachrangigen Signale, so daß für das jeweils
andere Signal eine ähnliche
Anordnung erforderlich ist. Wenn jedoch alle Bestandteile der Ton-
und Zusatzsignale vorrangige Daten sind, braucht man im Transportblockprozessor
der nachrangigen Signale keinen Schiedsrichter für die Verschachtelung von Transportblöcken vorzusehen,
und umgekehrt.
-
Gemäß der 7 werden Codewort-Daten CW,
Codelängen-Daten
CL und Codetyp-Daten TYP vom Rangauswähler auf ein Transportsteuergerät 218 gekoppelt,
und die Codewort- und Codetyp-Daten werden außerdem einem Wortlängen-Umsetzer 201 zugeführt, der
variable Wortlängen
in eine feste Wortlänge
umwandelt. Der Umsetzer 201 paketiert längenvariable Codewörter z.B.
in 8-Bit-Bytes, um die erforderliche Menge an Speicherplatz für die Geschwindigkeitspuffer 13 und 14 zu
reduzieren. Der Umsetzer 201 kann von einem Typ sein, wie
er in der US-Patentschrift 4 914 675 beschrieben ist. Die vom Umsetzer 201 gelieferten
Wörter
fester Länge
werden im Puffer 207 zwischengespeichert.
-
Das
Transportsteuergerät 218 spricht
auf die Daten CW, CL, TYP und CW#j an, um die Transportblock-Vorsätze (ST,
TH, RH) zu bilden, und legt diese Vorsätze an einen Vorsatzpuffer 208,
der Bestandteil des Steuergerätes 218 sein
kann. In Ansprache auf die Codelängen-,
Codetyp- und Codewortdaten erzeugt das Steuergerät 218 die erforderlichen Zeitsteuersignale
zur Verschachtelung (über
den Multiplexer 209) der Videodatenwörter fester Länge und der
Transportblock-Vorsatzinformation in Transportblöcke mit jeweils einer vorbestimmten
Anzahl von Bits.
-
Die
vom Multiplexer 209 gelieferten Transportblöcke werden
auf einen Eingang eines Multiplexers 211 gekoppelt und
an den Eingang eines die Vollbild-Prüffolge FCS liefernden Codierers 210 gelegt,
dessen Ausgang mit einem zweiten Eingang des Multiplexers 211 gekoppelt
ist. Der FCS-Codierer 210 spricht
auf die Daten der Transportblöcke
an und bildet 2-Byte-Fehlerprüfcodes
für die
jeweiligen Transportblöcke.
Der Multiplexer 211 wird so gesteuert, daß er einzelne
Transportblöcke
vom Multiplexer 209 durchläßt und dann jeweils an ihr
Ende den aus 16 Bits oder 2 Bytes bestehenden FSC-Code vom Codierer 210 anfügt.
-
Bei
der vorstehenden Beschreibung des Transportprozessors wurde angenommen,
daß die Gesamtheit
der vom Kompressor 10 gelieferten Vorsatzinformation in
dem vom Transportprozessor gelieferten Videodatenstrom enthalten
ist. Es sei erwähnt,
daß ein
großer
Anteil der Vorsatzinformation der Videodaten auch in den Transportblock-Vorsätzen enthalten
ist und somit redundante Information darstellt. In einer alternativen
Anordnung kann das Steuergerät 218 den
Umsetzer 201 daran hindern, Video-Vorsatzdaten aufzunehmen,
die redundant in den Transportblock-Vorsätzen enthalten wären, so daß der Gesamt-Ausnutzungsgrad
der Codierung verbessert wird. Im Empfänger können die herausgeschnittenen
Video-Vorsatzdaten wieder aus der Transportblock-Vorsatzinformation rekonstruiert und in
den Strom der Videodaten eingefügt
werden.
-
Im
Empfänger
wird das demodulierte Signal an Schaltungen 21 und 22 zur
Vorwärts-Fehlerkorrektur
gelegt, um Fehler in den vorrangigen Signalen und in den nachrangigen
Signalen zu korrigieren. Die fehlerkorrigierten Daten werden dann über Geschwindigkeitspuffer 23 und 24 an
den Transportprozessor 25 gelegt. Obwohl die demodulierten
Daten eine Fehlerkorrektur in den Schaltungen 21 und 22 erfahren
haben, können
während
der Signalübertragung
gewisse Fehler aufgetreten sein, die sich mit diesen Schaltungen
nicht korrigieren lassen. Wenn man diese Fehler zur Dekompressionsschaltung durchläßt, können sehr
störende
Entstellungen im wiedergegebenen Bild auftreten. Um dies zu verhindern,
enthält
jeder Transportblock unabhängige
Fehlererkennungscodes zur Erkennung des Auftretens von Fehlern,
welche die Fehlerkorrekturschaltung durchdringen; auf diese Fehlererkennung
hin kann das System geeignete Maßnahmen zur Fehlerverdeckung
durchführen.
-
Die 8 zeigt den im empfangenden
Teil des Systems enthaltenen Transportprozessor 25. Es werden
zwei derartige Prozessoren benötigt,
einer für
den HP-Kanal und einer für
den LP-Kanal. Falls es von vornherein bekannt ist, daß Ton- oder Zusatzdaten
immer aus einem bestimmten Kanal ausgeschlossen sind, können die
entsprechenden Elemente im Transportprozessor des betreffenden Kanals weggelassen
werden.
-
Gemäß der 8 werden die Daten aus dem
Geschwindigkeitspuffer 23 oder 24 an einen FCS-Fehlerdetektor 250 und
an ein Verzögerungselement 251 gelegt.
Das Verzögerungselement 251 bringt
eine Verzögerung
entsprechend dem Intervall eines Transportblockes, um dem Detektor 250 Zeit für die Feststellung
zu lassen, ob irgendwelche Fehler im entsprechenden Transportblock
enthalten sind. Der Detektor 250 liefert ein Fehlersignal
E, welches die Anwesenheit oder Abwesenheit von Fehlern im Transportblock
anzeigt. Das Fehlersignal wird an den Eingangsanschluß eines
Eins-auf-drei-Demultiplexers 253 gelegt.
Die verzögerten
Transportblockdaten werden ebenfalls an den Eingangsanschluß des Multiplexers 253 gelegt.
Verzögerte
Transportblockdaten gelangen ferner zu einem Diensttyp-Detektor 252,
der den Diensttyp-Vorsatz (ST-Vorsatz) prüft und abhängig davon den Multiplexer 253 so
steuert, daß er
die Transportblockdaten und das entsprechende Fehlersignal auf den
jeweils zugeordneten Verarbeitungsweg für das Tonsignal, das Zusatzsignal
oder das Videosignal gibt. Selbst wenn in einem Transportblock ein
Fehler erkannt sein mag, kann man immer noch auf den ST-Code bauen,
weil er einen unabhängigen
Hamming-Codeschutz aufweist.
-
In
den jeweiligen Verarbeitungswegen für das Tonsignal, das Zusatzsignal
und das Videosignal kann das Fehlersignal in unterschiedlicher Weise verwendet
werden, um Fehler zu verdecken. Im Verarbeitungsweg der Videosignale
gibt es alternative Möglichkeiten
für die
Verwendung des Fehlersignals, je nachdem, welche Schaltungsanordnung
zur Fehlerüberdeckung
im Dekompressor 27 enthalten ist. Als einfachster Fall
sei angenommen, daß der
Dekompressor 27 einen Bildwiedergabespeicher enthält, in welchem
Informationen aktualisiert werden, wenn Information decodiert wird.
Falls keine Information für
einen bestimmten Teil eines Bildes empfangen wird, wird der entsprechende
Teil des Bildwiedergabespeichers nicht aktualisiert. Die nicht aktualisierten
Bildbereiche werden einfach in aufeinanderfolgenden Vollbildern
wiederholt, bis neue Daten empfangen werden. Wenn anzunehmen ist,
daß eine Fehlerverdeckung
durch vollbildweises Wiederholen von Information akzeptierbar ist,
kann im Verarbeitungsweg der Videosignale das Fehlersignal benutzt werden,
um einfach diejenigen Transportblöcke, die erkannte Fehler enthalten,
aus dem Strom der Videodaten herauszuschneiden. Alternativ, für eine raffiniertere
Art der Fehlerverdeckung, können
die Transportblockdaten beibehalten und mit der Fehleranzeige markiert
werden, um den Dekompressor aufzurufen, andere Funktionen zur Fehlerverdeckung
durchzuführen.
-
Im
Verarbeitungsweg des Videosignals werden die Transportblockdaten
und das Fehlersignal auf eine Verarbeitungsein richtung 256 gekoppelt, welche
den FSC-Code und die Transportblock-Vorsätze ST, TH und RH aus dem Datenstrom
herausschneidet. Sie kann ferner dazu ausgelegt sein, ganze Transportblöcke, in
denen Fehler erfaßt
worden sind, auszulöschen.
Die Einrichtung 256 liefert über getrennte Busse die Videodaten
mit herausgeschnittenen Transportblock-Vorsätzen, die Fehlerdaten und die
Transportblock-Vorsätze an den
Rückgliederungs-Prozessor 26.
-
Die
Vorwärts-Fehlerkorrekturschaltungen 21 und 22 liefern
die empfangenden Daten in Wörtern fester
Länge,
entsprechend den Wörtern
fester Länge,
die an die Vorwärts-Fehlerkorrekturschaltungen 15 und 16 des
Codierers geliefert werden. Somit erscheinen die Transportblock-Vorsatzdaten an Byte-Grenzen,
die entweder vorbestimmt sind (ST, TH und FCS) oder durch den Transportblock-Vorsatz identifiziert
sind (RH). Somit ist es eine relativ einfache Sache, die erforderlichen
Transportblock-Vorsätze
zu identifizieren und aus den jeweiligen Transportblöcken herauszuschneiden.
-
Die 9 zeigt ein Ausführungsbeispiel
für den
Rückgliederungs-Prozessor.
Dieser Prozessor nimmt Daten vom Transportprozessor des Empfängers und
bringt sie wieder in die Form, die dem Rangauswählprozessor 11 des
Codierers angelegt wurde. Um dies zu bewerkstelligen, müssen einzelne Codewörter des
Datenstroms identifiziert werden, d.h. das Codewort CW#j in jedem
Block muß erfaßbar sein.
Da die Daten in der Form aneinandergeketteter Codes variabler Länge vorliegen,
müssen
sie zumindest teilweise längenvariabel
decodiert werden, um die Codewortgrenzen festzulegen. Sobald die
Codewortgrenzen bestimmt sind, können
die Codewörter
gezählt
werden, um das Codewort CW#j (im HP-Kanal) aufzufinden. Nach Identifizierung
der Codewortgrenzen können
die Codewörter
leicht in längenvariable
Parallelbit-Codeform gegliedert werden.
-
In
der Anordnung nach 9 sind
für die vorrangigen
Daten (HP) und die nachrangigen Daten (LP) jeweils gleichartige
Schaltungen (270, 271, 272, 273 einerseits
und 276, 277, 278, 279 andererseits) vorgesehen,
welche die ankommenden Daten in längenvariable Parallelbit-Codewörter aufgliedern.
Die HP- und die LP-Codewörter
werden jeweils dem Multiplexer 274 zugeführt, der
unter Steuerung durch ein Rückgliederungs-Steuergerät 275 die
Daten zu einer Datenfolge ähnlich
derjenigen kombiniert, die vom Kompressor 10 geliefert
wurde.
-
Es
sei zunächst
die Schaltunsanordnung 270–273 für den HP-Kanal betrachtet.
Die von der Einrichtung 256 (8)
kommenden Videodaten werden einem Pufferspeicher 270 und
einem Rückgliederungs-Steuergerät 271 zugeführt. Diesem
Gerät 271 werden
außerdem
die Transportblock-Vorsatzdaten des HP-Kanals angelegt. Die Videodaten, ohne
Fehler, erscheinen in vorbestimmten zyklischen Folgen. Bestimmte
Punkte in einer Folge lassen sich anhand der Transportblock-Vorsatzinformation
identifizieren. Sobald ein Anfangspunkt identifiziert ist, schreitet
die Decodierung in der vorbestimmten Folge fort. Das Rückgliederungs-Steuergerät 271 ist
so programmiert, daß es
einen längenvariablen
Decoder (abgekürzt
VLD) für
einen Betrieb entsprechend dieser Folge konditioniert. Als Beispiel
sei angenommen, daß der
Transportblock-Vorsatz anzeigt, daß die laufenden Daten aus einem
I-Teilbild stammen und daß ein
Satzanfangsetikett beim Byte z erschienen ist. Das Satzanfangsetikett
wurde an den Beginn eines Streifens gesetzt, so daß sich der
Anfangspunkt eines Streifens bezüglich
des Bytes z identifizieren läßt. An diesem
Punkt ist der Streifen-Vorsatz bekannten Bit/Byte-Codeformats bekannt,
und diesem Vorsatz folgt ein Makroblock-Vorsatz bekannten Bit/Byte-Codeformats,
gefolgt von den Blockdaten in bekanntem Codeformat, usw.. Somit
legt das Steuergerät 271 aufgrund
der Transportblock-Vorsatzinformation fest, welche Decodierfolge
der VLD-Decoder 272 nimmt, d.h. welche VLD-Decodiertabellen
für welche
Gruppierung von längenvariablen
Codewörtern
zu verwenden sind. Da z.B. der Streifen-Vorsatz im Datenstrom nicht längenvariabel
codiert ist, kann das Steuergerät
dazu ausgelegt sein, die gemeinsame Streifen-Vorsatzinformation
mit der Transportblock-Vorsatzinformation
zu vergleichen, um den Anfangspunkt zu bestätigen.
-
Die
Videodaten aus dem Pufferspeicher 270 werden auf den VLD-Decoder 272 gekoppelt,
der eine Anzahl von Codewörtern
fester Länge
aneinanderfügt
und die vorderen Bits der aneinandergefügten Codewörter auf ein erkennbares Codewort
entsprechend dem Codierungstyp prüft, der gegenüber der
normalen zyklischen Folge zu erwarten ist. Sobald eine bestimmte
Anzahl vorderer Bits als gültiges Codewort
erkannt worden ist, werden diese Bits als Parallelbit-Codewort CW an einen
Pufferspeicher 273 ausgegeben. Außerdem wird die Information über den
erwarteten Codeworttyp T und die Codewortlänge CL geliefert und an den
Pufferspeicher 273 gelegt. Die Codewörter werden bei ihrer Eingabe
in den Pufferspeicher 273 vom Rückgliederungs-Steuergerät 275 mit
Index versehen.
-
Die
Codewörter
für die
DC- und AC-Koeffizienten sind nach unterschiedlichen Statistiken
codiert, und die Koeffizienten einzelner Blöcke innerhalb eines Makroblocks
sind aneinandergereiht, ohne Block-Endmarken zu enthalten. Im allgemeinen
ist jedoch der DC-Koeffizient des ersten Blockes in einem Makroblock
durch seine Position innerhalb des Bitstroms identifizierbar. Die
längenvariable
Decodierung kann nicht zwischen dem letzten AC-Koeffizienten eines
Blocks und dem DC-Koeffizienten des nächsten Blocks unterscheiden.
Die Identifizierung erfolgt durch CW#j, das in der Vorsatzinformation
des Transportblockes enthalten ist. CW#j identifiziert das Codewort
des letzten AC-Koeffizienten
in jedem Block in eines Streifens. Um das Codewort mit der Nummerierung
j zu finden, überwacht
das Rückgliederungs-Steuergerät 275 die
vom VLD-Decoder gelieferte Codeworttyp-Information. Das Steuergerät 275 zählt die
Codes vom AC-Typ T, und wenn eine Anzahl j solcher Codes aufgelaufen
ist, setzt sich das Steuergerät 275 mit
dem VLD-Decoder 272 in Verbindung, um den Zyklus auf die
Decodierung eines DC-Koeffizienten zurückzusetzen.
-
Die
Elemente 276–279 im
LP-Kanal arbeiten in einer ähnlichen
Weise. Die nachrangigen LP-Daten enthalten jedoch erwartungsgemäß nur Codewörter für AC-Koeffizienten.
Die AC-Codewörter
für die
einzelnen Blöcke
innerhalb eines Makroblockes sind durch Blockende-Codes (EOB) voneinander
getrennt, so daß hier
keine Notwendigkeit besteht, Codewörter zu zählen. Die Arbeit des VLD-Decoders 278 kann
einfach darin bestehen, Wörter
zu decodieren, die alle gemäß ein und
derselben Codetabelle codiert sind. Die Position des ersten Makroblocks
im Transportblock wird durch den jeweiligen Transportblock-Vorsatz
identifiziert, und jeder nachfolgende Makroblock wird durch Satzanfangsetiketten
identifiziert. Diese Information wird vom Rückgliederungs-Steuergerät 277 ausgewertet,
um den VLD-Decoder 278 zu
veranlassen, die Codewörter im
Speicherpuffer 279 mit Index zu versehen.
-
Aufgrund
der in den Pufferspeichern 273 und 279 gespeicherten
Informationen, nämlich
der mit Index versehenen Information und der Typ-Codewörter T,
fügt das
Rückgliederungs-Steuergerät 275 die
in den Speicherpuffern 273 und 274 gespeicherten
HP- und LP-Codewörter über einen
Multiplexer 274 aneinander. Das Steuergerät identifiziert
einen Makroblock, konditoniert den Multiplexer 274 zum
Durchlassen von Daten aus dem HP-Kanal und liest die einzelnen HP-Daten
aus dem Speicherpuffer 273 bis zum Codewort CW#j des Blockes
1 im Makroblock. Dann konditioniert es den Multiplexer zum Durchlassen
von Daten aus dem LP-Kanal und liest die demselben Block 1 entsprechenden
Codewörter
der AC-Koeffizienten, bis der Blockende-Code EOB erscheint. Anschließend konditioniert
das Steuergerät 275 den
Multiplexer 274 zum Durchlassen von Daten aus dem HP-Kanal und beginnt
mit der Auslesung von HP-Daten entsrechend dem Block 2 des Makroblocks.
Nach dem Auslesen des Codewortes CW#j schaltet das Steuergerät wiederum
auf die Auslesung von LP-Daten für
den Block 2 aus dem LP-Kanal, usw..
-
Wenn
während
der Datenauslesung aus dem vorrangigen HP-Kanal ein Blockende-Code erscheint,
bevor das Codewort CW#j erscheint, wird das Steuergerät 275 zurückgesetzt,
um den nächsten
Block von Daten aus dem HP-Kanal auszulesen.
-
Die
zyklische Natur erscheinender Codewörter kann variabel sein. Beispielsweise
können
manche Makroblöcke
innerhalb eines Streifens nicht codiert sein und/oder manche Blöcke innerhalb
eines Makroblocks können
nicht codiert sein. Diese Information ist in dem betreffenden Streifen
und den Makroblock-Vorsätzen
enthalten. Um die passenden Decodierzyklen festzulegen und aufrechtzuerhalten, prüft das Steuergerät 275 anhand
der Codeworttypen die Streifen- und Makroblock-Vorsatzcodewörter, um
die Anzahl von Blöcken
in den jeweiligen Makroblöcken
und die Anzahl von Makroblöcken
in den jeweiligen Streifen festzustellen. Unter Berücksichtigung
dieser Zahlen stellt das Steuergerät 275 unter Zählung spezieller
Decodieroperationen fest, wann bestimmte Decodierfunktionen beendet
sind, und startet einen Decodierzyklus neu. Wie weiter oben erwähnt, können in
einem Transportblock mehr als ein Satzanfangsetikett enthalten sein,
jedoch wird nur das erste Satzanfangsetikett vom Transportblock-Vorsatz
identifiziert, so daß nur
das erste Satzanfangsetikett in einem Transportblock von der Einrichtung 276 herausgeschnitten
werden kann. Um die Information aus diesen Satzanfangsetiketten
zu identifizieren und zu extrahieren und um diese Satzanfangsetikette
aus dem Datenstrom herauszuschneiden, zählt das Steuergerät 275 die
Anzahl der vom VLD-Decoder 272 verarbeiteten Makroblöcke, und
bei Beendigung des letzten Makroblockes in einem Streifen erkennt
es die als nächstes
erscheinenden Daten in einem Transportblock als Satzanfangsetikett.
Anschließend
liest es die Information im Satzanfangsetikett, um die nachfolgenden
zyklischen Operationen einzustellen, und verhindert dessen Durchlaß zum Puffer 273.
-
Die
Steuergeräte 271, 275 und 277 sind
in der Figur als drei getrennte Einrichtungen dargestellt; es sei
jedoch erwähnt,
daß sie
auch in einer einzigen Steuereinrichtung zusammengefaßt werden
können.
-
Die
Schaltungsanordnung nach 9 liefert keine
längenvariabel-decodierten
Daten, sondern teilt nur die einzelnen längenvariabel codierten Codewörter auf
und liefert sie in einer Form ähnlich
den Daten, die am Ausgang des Kompressors 10 geliefert werden.
So kann für
den Dekompressor 27 eine Schaltungsanordnung verwendet
werden, die im wesentlichen komplementär zum Kompressor 10 ist.
Es sei jedoch erwähnt,
daß die
Schaltungsanordnung nach 9 auch
so ausgelegt werden kann, daß sie längenvariable
Codes decodiert, so daß sich
ein VLD-Decoder in der Dekompressorschaltung erübrigt.
-
In
der Anordnung nach 9 sind
Vorkehrungen getroffen, um verschiedene Methoden der Fehlerverdeckung
durchzuführen.
Beispielsweise können,
auch wenn ein Transportblock einen Fehler enthält, die Daten für diesen
Block verarbeitet und zum Dekompressor durchgelassen werden. In
diesem Fall wird eine Fehlermarke für jedes Datenwort des Transportblockes
erzeugt und gemeinsam mit den an den Dekompressor gelegten Codewörtern befördert. Die
Fehlermarken werden von den Rückgliederungs-Steuergeräten 271 und 277 geliefert
und zu den Pufferspeichern 273 und 279 gegeben,
worin sie an Plätzen
gespeichert werden, die in Zuordnung zu den betreffenden fehlerbehafteten
Codewörtern
des Transportblockes stehen.
-
Für ein alternatives
System, worin entstellte Transportblöcke nicht verarbeitet werden,
sei angenommen, daß ein
LP-Transportblock verloren wurde. Der LP-Kanal liefert Koeffizientendaten,
die für
die Rekonstruktion von Bildern weniger wichtig sind, und in der
Tat können
DCT-Blöcke
ohne diese Koeffizienten dekomprimiert werden, wenn auch die auch
so dekomprimierten Blöcke
geringere räumliche
Auflösung
bringen. Wenn also fehlerbehaftete LP-Transportblöcke aus
dem Datenstrom herausgeschnitten werden und Daten im Multiplexer 274 nach
jedem Block-Codewort CW#j der HP-Daten rekonstruiert werden, wird
ein Blockende-Code EOB an die Stelle der LP-Daten gesetzt. Der EOB-Code
wird vom Steuergerät 275 geliefert
und über
den Multiplexer 274 in den Datenstrom eingefügt. Um anzuzeigen,
daß der EOB-Code
für die
betreffenden Blöcke
ein erzwungener oder künstlicher
EOB-Code ist, kann ein Fehlerkennzeichen gemeinsam mit dem EOB-Signal übertragen
werden. Das erzwungene EOB-Signal wird mit der Abkürzung EOBE
bezeichnet.
-
Das
Steuergerät 275 liefert
die Transportblock-Vorsatzinformation für beide Kanäle und versieht die in den
Speicherpuffern 273 und 279 verfügbare Blockinformation
mit Index. Die Makroblock- und Blockdaten erscheinen in einer bekannten
Folge, womit das Steuergerät
in der Lage ist, Verluste von Daten zu erkennen und für verlorene
LP-Daten EOBE-Codes zu erzeugen und an die HP-Daten anzuhängen.
-
Im
allgemeinen ist zu erwarten, daß im HP-Kanal
nur sehr wenige Fehler auftreten, wegen der Robustheit der Übertragungsstrecke.
Wenn jedoch tatsächllich
ein Fehler im HP-Kanal
auftritt, werden die Daten im LP-Kanal, die verlorenen Datenblöcken im
HP-Kanal entsprechen, bedeutungslos. Das Steuergerät 275 ist
so programmiert, daß es
einen Verlust von HP-Daten anhand einer Unterbrechung der normalen,
durch die unverfälschten
Transportblock-Vorsätze
gekennzeichnete Informationsfolge erkennt. Wenn der Verlust von
HP-Daten gefühlt wird,
werden die entsprechenden LP-Daten
aus dem Speicherpuffer 279 weggespült, d.h. sie werden nicht zum
Dekompressor weitergegeben. Außerdem
kann das Steuergerät 275 so
ausgelegt sein, daß es
Fehlerdaten an den Dekompressor gibt, und zwar in einer Form, welche
die verlorene Information kennzeichnet, d.h. Makroblock- oder Streifen- oder
Vollbild-Daten, die nicht vom Rückgliederungs-Prozessor
geliefert werden.
-
Das
Steuergerät 275 spricht über den
Steuerbus CB auf das Steuergerät
des Gesamtsystems an, um die Steuergeräte 271, 277 und
die VLD-Decoder 272, 278 beim Start des Systems
und bei Kanalwechseln usw. erstmalig oder wieder neu zu initialisieren.
Außerdem
kommuniziert das Steuergerät 275 mit
dem Transportprozessor 25 und den Geschwindigkeitspuffern 23 und 24,
um die Geschwindigkeit oder Rate der zur Rückgliederungs-Schaltungsanordnung
gelieferten Information zu steuern.
-
Die 10 zeigt ein Beispiel für die Anordnung
der Dekompressionsvorrichtung 27.
-
Die
Fehlerverdeckung wird bei der Beschreibung dieser Vorrichtung nicht
näher behandelt,
weil sie nicht Gegenstand der vorliegenden Erfindung ist. Es genügt, festzustellen,
daß das
Dekompressions-Steuergerät 302 Fehlerdaten
vom Rückgliederungs-Prozessor
empfängt,
um die Aktualisierung von Bereichen des Bildwiedergabe-RAM 318,
die fehlenden Datenblöcken
entsprechen, zu verhindern, und daß die Vorrichtung auf erzwungene
EOB-Codes so anspricht, als wären
es normal erscheinende EOB-Codes.
-
Allgemein
ist die Schaltungsanordnung nach 10 dazu
ausgelegt, Videodaten zu dekomprimieren, die in MPEG-ähnlichem hierarchischem Format geliefert
werden. Die vom Multiplexer 274 des Rückgliederungs-Prozessors gelieferten
Videodaten werden an einen Pufferspeicher 300 gelegt. Diese
Daten nimmt sich das Dekompressions-Steuergerät 302, worin Vorsatzdaten
extrahiert werden, um das Steuergerät 302 zu programmieren.
Die den DCT-Koeffizienten entsprechenden längenvariablen Codewörter werden
extrahiert und an einen längenvariable
Codes verarbeitenden Decoder (VLD-Decoder) 308 gelegt,
und die den Bewegungsvektoren entsprechenden längenvariablen Codewörter werden
an einen weiteren VLD-Decoder 306 gelegt.
Der VLD-Decoder 308 enthält Einrichtungen, um unter
Steuerung durch das Steuergerät
in geeigneter Weise Variabel-Längen-Decodierung,
inverse Run-Längen-Decodierung und inverse
DPCM-Codierung durchzuführen.
Die decodierten Daten vom VLD-Decoder 308 werden an eine
Schaltung 310 zur inversen diskreten Cosinustranssformation
(inverse DCT) gelegt, die Schaltungsmittel zur inversen Quantisierung
der jeweiligen DCT-Koeffizienten und zur Umsetzung der Koeffizienten
in eine Matrix von Pixeldaten enthält. Die Pixeldaten werden dann
an einen Eingang eines Addierers 312 gelegt, dessen Ausgang
mit dem Bildwiedergabe-RAM 318 und mit Pufferspeichern 314 und 316 gekoppelt
ist.
-
Der
VLD-Decoder 306 enthält
Schaltungsmittel, um unter Steuerung durch das Steuergerät 302 in
geeigneter Weise die längenvariabel
codierten Bewegungsvektoren zu decodieren und die inverse DPCM-Codierung
der Bewegungsvektoren durchzuführen.
Die decodierten Bewegungsvektoren werden an einen bewegungskompensierten "Prädiktor" 304 gelelgt.
In Ansprache auf die Bewegungsvektoren greift sich der Prädiktor entsprechende
Blöcke
von Pixels, die in einem (vorwärts)
der Pufferspeicher 314 und 316 oder in beiden
(vorwärts
und rückwärts) Pufferspeicher
gespeichert sind. Der Prädiktor
liefert einen Datenblock (von einem der Pufferspeicher) oder einen
interpolierten Datenblock (abgeleitet von entsprechenden Blöcken aus
beiden Pufferspeichern) an einen zweiten Eingang des Addierers 312.
-
Die
Dekompression geschieht auf folgende Weise: Wenn ein Teilbild/Vollbild
der eingangsseitigen Videodaten in Intraframe-Codierung vorliegt, sind
keine Bewegungsvektoren vorhanden, und die decodierten DCT-Koeffizienten
entsprechen Blöcken von
Pixelwerten. Daher legt der Prädiktor 304 im
Falle von intraframe-codierten Daten einen Nullwert an den Addierer 312,
und die decodierten DCT-Koeffizienten werden unverändert vom
Addierer 312 an den Bildwiedergabe-RAM durchgelassen, worin sie gespeichert
werden, um entsprechend normaler Rasterabtastung ausgelesen zu werden.
Die decodierten Pixelwerte werden ebenfalls in einem der Pufferspeicher 314 und 316 gespeichert,
um sie für
die Bildung extrapolierter Bildwerte und für die Decodierung bewegungskompensierter
Vollbilder (B oder P) zu verwenden.
-
Wenn
ein Teilbild/Vollbild der Eingangsdaten einem vorwärts-bewegungskompensierten
P-Teilbild/Vollbild entsprechen, entsprechen die decodierten Koeffizienten
den Restwerten oder Differenzen zwischen dem augenblicklichen Teilbild/Vollbild
und dem letztvorherigen I-Vollbild. Der auf die decodierten Bewegungsvektoren
ansprechende Prädiktor 304 greift
sich den entsprechenden Block von I-Vollbilddaten, die in dem einen oder
dem anderen der Pufferspeicher 314 und 316 gespeichert
sind und liefert diesen Datenblock an den Addierer, worin jeweilige
Böcke von
Restwerten, welche die Invers-DCT-Schaltung 310 liefert,
mit dem entsprechenden, vom Prädiktor 304 gelieferten
Block von Pixeldaten addiert werden. Die vom Addierer 312 erzeugten
Summen entsprechen den Pixelwerten für die betreffenden Blöcke des
P-Teilbildes/Vollbildes, und diese Pixelwerte werden an den Bildwiedergabe-RAM 318 gelegt,
um die betreffenden Speicherplätze
zu aktualisieren. Außerdem
werden die vom Addierer 312 gelieferten Pixelwerte in demjenigen der
Pufferspeicher 314 und 316 gespeichert, der das I-Teilbild/Vollbild
von Pixeldaten, die zur Erzeugung der extrapolierten Pixeldaten
verwendet werden, nicht speichert.
-
Für bidirektional
codierte (B-)Teilbilder/Vollbilder ist die Arbeitsweise ähnlich,
jedoch mit dem Unterschied, daß extrapolierte
Werte aus den in den beiden Pufferspeichern 314 und 316 gespeicherten
I- und P-Pixeldaten gegriffen werden, je nachdem, ob die jeweiligen
Bewegungsvektoren Vorwärts-
oder Rückwärts-Vektoren
oder beides sind. Die erzeugten Pixelwerte der B-Teilbilder/Vollbilder
werden zur Aktualisierung des Bildwiedergabe-RAM 318 angelegt, sie
werden jedoch in keinem der Pufferspeicher gespeichert, weil B-Teilbild/Vollbilddaten
nicht für
die Erzeugung anderer Teilbild/Vollbilddaten verwendet werden.
-
Die 10A zeigt eine kombinierte
Anordnung aus Rückgliederungs-Prozessor
und Dekompressor. In der 10A sind
Elemente, die Elementen in der 10 ähnlich sind
und ähnliche
Funktionen durchführen,
mit den gleichen Bezugszahlen wie dort bezeichnet. Die VLD-Decoder 308 und 306 sind durch
DPCM-Decoder 409 und 408 ersetzt, welche die geeignete
Run-Längen-Decodierung
und DPCM-Decodierung durchführen.
Die HP- und LP-Daten vom Transportprozessor 25 werden an
zugeordnete Pufferspeicher 400 bzw. 402 gelegt.
Die Transportblock-Vorsatzdaten aus den HP- und LP-Kanälen werden
an ein Hilfssteuergerät 404 gelegt,
das mit dem Dekompressions-Steuergerät 407 kommuniziert.
Das Hilfssteuergerät
kann eine Teilmenge der Instruktionen des Steuergerätes 407 beinhalten.
Unter dem Einfluß der
Vorsatzdaten richtet das Hilfssteuergerät die Daten in den Pufferspeichern 400 und 402 so
aus, daß sie
denselben Datenstreifen entsprechen. Die Daten in den Pufferspeichern
werden an Parallel/Serien-Umsetzer 401 und 403 gelegt,
die jeweils einen seriellen Datenstrom an zugeordnete Eingänge eines
Multiplexers 405 liefern. Vom Multiplexer 405 gelangen
serielle Daten zu einem VLD-Decoder 406. Der VLD-Decoder 406 nimmt
Daten jeweils Bit nach Bit auf und erzeugt längenvariabel-decodierte Daten
für das
Dekompressions-Steuergerät 407.
Decodierte Video-Vorsatzdaten werden im Steuergerät 407 gespeichert,
und decodierte Koeffizienten und Bewegungsvektoren werden vom Steuergerät an eine
jeweils zugeordnete DPCM-Einrichtung 409 bzw. 408 gelegt.
-
Das
Steuergerät 407 stellt
den Multiplexer 405 anfänglich
auf Durchlaß der
HP-Daten, so daß als
erstes Zugriff auf die Video-Vorsatzdaten erfolgt. Das Steuergerät 407 liest
decodierte Video-Vorsatzinformation und stellt abhängig davon
die passende Decodierfolge her. Nachdem das Steuergerät beginnt,
Daten entsprechend Makroblock-Koeffizienten aufzunehmen, zählt es die
Anzahl decodierter Koeffizienten-Codewörter, und
nach Decodierung von j solcher Codewörter stellt es den Multiplexer 405 so
ein, daß er
Daten aus dem LP-Kanal durchläßt. Beim Empfang
eines EOB-Codewortes in den LP-Daten stellt das Steuergerät den Multiplexer
wieder so ein, daß wiederum
Daten aus dem HP-Kanal durchgelassen werden. Das Steuergerät 407 ist
so ausgelegt, daß es
das Fehlen von LP-Daten erkennt und an deren Stelle EOB-Codes setzt,
d.h. nach dem Zählen von
j decodierten Koeffizienten-Codewörtern des HP-Kanals, um zum
nächsten
Block von HP-Daten zu gehen.
-
Gemäß der 10B führt das Steuergerät 407,
wenn ein Kanalwechsel erfolgt oder wenn Signale vom System-Steuergerät ausbleiben,
ein Initialisierungsverfahren (Schritt 700) durch, bei
welchem der VLD-Decoder 406 zurückgesetzt, der Multiplexer 405 auf
Durchlaß von
HP-Daten eingestellt
und das Hilfssteuergerät
für die
Prüfung
von GOP-Daten konditioniert wird. Anschließend wird ein Signal gesendet,
um z.B. einen Transportblock von Daten in den Puffer 400 zu
laden (Schritt 702). Dann erfolgt eine Prüfung (Schritt 704),
um festzustellen, ob ein Fehler im HP-Transportblock erschienen
ist, und falls ja, wird der nächste
Transportblock geladen. Außerdem wird
ein internes Fehlerkennzeichen gesetzt (Schritt 703). Ist
kein Fehler kennzeichen gesetzt, werden HP-Daten zum VLD-Decoder
geliefert und decodiert (Schritt 709), bis entweder ein
EOB-Code erscheint oder das j-te Codewort decodiert worden ist.
Wenn für
entsprechende Datenblöcke
im LP-Kanal ein Fehler angezeigt worden ist, wird nach jedem j-ten
decodierten Codewort ein EOB-Code eingefügt, und das System fährt fort,
HP-Daten zum VLD-Decoder zu liefern. Außerdem, wenn das System die
Ausrichtung von LP-Daten mit HP-Daten verfehlt hat, werden nach
jedem j-ten decodierten HP-Codewort EOB-Codes eingefügt. Alternativ, wenn LP-Daten
mit HP-Daten ausgerichtet worden sind und kein LP-Fehlerkennzeichen
gesetzt worden ist, wird nach Decodierung des j-ten HP-Codewortes eine Umschaltung durchgeführt, um
LP-Daten zu verarbeiten (Übergang
vom Schritt 709 zum Schritt 710). An diesem Punkt
wird der Multiplexer so eingestellt, daß er LP-Daten zum VLD-Decoder
durchläßt. Die
LP-Daten werden decodiert (Schritt 717), bis ein EOB-Code erscheint,
und zu diesem Zeitpunkt wird die Decodierung zurück auf die HP-Daten geschaltet.
-
Wenn
aber bei der obigen Prüfung
(Schritt 705) ein Fehlerkennzeichen für die HP-Daten gesetzt worden
ist, muß das
System auf den nächstverfügbaren Datenanfangspunkt
warten, der durch das Satzanfangsetikett RH identifiziert wird.
Daher fragt das System nach einem verfügbaren RH (Schritt 706).
Ist kein RH verfügbar,
kehrt der Prozeß zum
Schritt 702 zurück,
um mehr Daten zu bekommen. Ist ein RH verfügbar, wird der Transportblock-Vorsatz
TH auf seine Lage geprüft
(Schritt 707), und die Daten im Puffer 400 werden
bis zur Byte-Grenze vorgerückt, die
dem RH unmittelbar folgt. Dann werden im Satzanfangsetikett RH die
Vollbildnummer, die Streifennummer und das zugehörige Codewort CW#j abgefragt
(Schritt 708). Anschließend beginnt die Decodierung
der HP-Daten (Schritt 709).
-
Während der
Initialisierung des HP-Kanals wird der LP-Kanal in ähnlicher
Weise initialisiert. Anschließend
wird ein Streifen von LP-Daten in den Puffer 402 geladen
(Schritt 710), und es wird eine Prüfung auf einen Transportblockfehler
durchgeführt (Schritt 712).
Bei Feststellung eines Fehlers wird ein LP-Fehlerkennzeichen gesetzt,
und neue Daten werden geladen, bis kein Fehler vorhanden ist. Falls
kein Fehlerkennzeichen gesetzt worden ist, erfolgt ein Sprung zum
Schritt 717. Dieser Sprung zeigt an, daß das System in der normalen
Folge arbeitet, und die Decodierung schreitet in passender Weise
im Wechsel zwischen HP- und LP-Daten fort (Schritte 709, 717).
Alternativ, wenn ein Fehlerkennzeichen gesetzt worden ist (Schritt 713),
muß das
System nach dem nächsten
gültigen
Datenanfangspunkt suchen. Der laufende Transportblock-Vorsatz der
LP-Daten wird nach einer Makroblockadresse oder einem Satzanfangsetikett
RH abgefragt. Ist keines von beiden verfügbar, erfolgt ein Sprung zum
Schritt 710, und neue Daten werden aufgegriffen. Ist eines
verfügbar,
werden die LP-Daten zu diesem Anfangspunkt vorgerückt (Schritt 715).
Es sei bemerkt, daß das
System, wenn ein HP-Fehlerkennzeichen gesetzt ist, einen Makroblock-Anfangspunkt
ignoriert und zu einem Anfangspunkt weiterrückt, der einem Satzanfangsetikett RH
zugeordnet ist. Der Transportblock-Vorsatz wird nach den Vollbild-
und Streifennummern befragt (Schritt 716). An diesem Punkt
werden die LP-Daten auf ihre Koinzidenz mit den HP-Daten überprüft. Wenn
sie den HP-Daten nacheilen, erfolgt ein Sprung zum Schritt 710,
um die LP-Daten vorzurücken.
Liegt keine Nacheilung vor, wird die Ausrichtung der HP- und LP-Makroblöcke geprüft. Eilt
der LP-Makroblock dem laufenden HP-Makroblock vor, wird eine Wartezeit
eingeführt.
Wenn umgekehrt der LP-Makroblock dem HP-Makroblock nacheilt, werden
die Daten des LP-Makroblockes so weit vorgerückt, wie es der Lage des laufenden
HP-Makroblockes entspricht. Der LP-Kanal wartet dann auf das j-te
HP-Codewort des laufenden zu decodierenden Blockes.
-
Wie
weiter oben erwähnt,
kann es im Datenstrom eingebettete Satzanfangsetiketten geben, die nicht
durch die Transport- Vorsätze identifiziert
werden. Diese Satzanfangsetiketten werden gefunden, indem man die
Anzahl von Makroblöcken,
die decodiert werden, zählt
(Schritte 709, 717). In jedem Streifen befindet
sich eine vorbestimmte Anzahl von Makroblöcken, und daher können, wenn
diese Anzahl von Makroblöcken
decodiert ist, die als nächstes
erscheinenden Daten erkannt werden als z.B, zwei Bytes eines Satzanfangsetikettes.
Diese Daten werden vom Steuergerät
gelesen (Schritte 708, 716), und für die nächste Folge
von Decodiervorgängen benutzt.
Außerdem
enthält
ein Transportblock eine vorbestimmte Anzahl von Bytes, und diese
Bytes werden gezählt
(Schritte 709, 717), um anzuzeigen, wann die nächsten Transportblöcke ergriffen
werden (Schritte 702, 710).
-
Das
System nach der 10B ist
so ausgelegt, daß es
serielle Daten zum VLD-Decoder 406 liefert. Es sei jedoch
erwähnt,
daß ein
VLD-Decoder gewählt
werden kann, der längenvariable
Codewörter verarbeitet,
die im Parallelbit-Format
erscheinen. In diesem Fall können
die Parallel/Serien-Umsetzer 401 und 402 fortgelassen
werden. Vorzugsweise sind die von den Puffern gelieferten Daten
Tri-State-Daten, und die Ausgangsanschlüsse der Puffer werden in verdrahteter
oder Phantom-ODER-Schaltung zum Eingang dieses VLD-Decoders gegeben.
-
Die 11 zeigt Ausführungsbeispiele
von Modem-Schaltungen
sowohl für
die Sendeseite als auch für
die Empfangsseite des Systems. HP- und LP-Daten von den Vorwärts-Fehlerkorrekturschaltungen 15 und 16 werden
an einen jeweils zugeordneten 64-QAM-Modulator 400 bzw. 401 gelegt.
Der Modulator 400 liefert ein analoges HP-Signal mit einer –6dB-Handbreite
von ungefähr
0,96 MHz. Dieses Signal wird einem 1,5-MHz-Bandpaßfilter 402 angelegt,
um hochfrequente Harmonische zu unterdrücken, und dann auf einen analogen
Signalsummierer 405 gegeben. Der Modulator 401 liefert
ein analoges LP-Signal mit einer –6dB- Bandbreite von ungefähr 3,84 MHz. Dieses Signal
wird einem 6-MHz-Bandpaßfilter 404 angelegt,
um hochfrequente Harmonische zu unterdrücken, und dann auf ein Dämpfungsglied 406 gegeben.
Das Dämpfungsglied 406 reduziert
die Amplitude des analogen LP-Signals um ungefähr 9dB gegenüber dem
analogen HP-Signal. Das gedämpfte
LP-Signal wird dann auf den analogen Signalsummierer 405 gekoppelt,
wo es mit dem analogen HP-Signal summiert wird, um ein Signal mit einem
Frequenzspektrum ähnlich
dem in 1 gezeigten Signalspektrum
zu erzeugen. Das kombinierte Signal wird auf einen Mischer 407 gegeben,
worin es mit einem HF-Träger
multipliziert wird, um das kombinierte Signal in ein Frequenzband
umzusetzen, das zu einem normgemäßen Fernseh-Übertragungskanal
paßt.
Das umgesetzte Signal wird dann einem Bandpaßfilter 408 angelegt,
welches die Spektralcharakteristik des umgesetzten Signals so zuschneidet,
daß es
in den normgemäßen Kanal
paßt.
-
Im
Empfänger
wird das übertragene
Signal durch eine Tuner/ZF-Schaltung 410 herkömmlicher Bauart
demoduliert und auf eine PLL-Schaltung 413 und einen Analog/Digital-Wandler
(A/D-Wandler) 412 gegeben. Das digitalisierte Signal wird
zugeordneten 64-QAM-Demodulatoren 414 und 415 zugeführt. Die Demodulatoren 414 und 415 enthalten
Bandpaßfilter an
ihren jeweiligen Eingangsanschlüssen,
um eine Bandbegrenzung des Spektrums der zu verarbeitenden Signale
durchzuführen
und damit diese Signale dem nominellen Signalspektrum der HP- und
LP-Signale anzupassen. Die Demodulatoren 414 und 415 sind
herkömmliche
QAM-Demodulatorkonstruktionen und sprechen auf Taktsignale an, die
von der PLL-Schaltung 413 geliefert werden. Die PLL-Schaltung 413 erzeugt
die erforderlichen Taktsignale durch Phasensynchronisierung eines
von einem spannungsgesteuerten Oszillator entwickelten Signals mit einem
der beiden Träger,
die zu den QAM-Signalen gehören.
-
Die
Erfindung wurde vorstehend in Verbindung mit einem MPEG-ähnlichen
Signal beschrieben; es sei jedoch erwähnt, daß sie auch zur Verarbeitung
von Signalen ausgelegt werden kann, die in anderen Formaten und
durch andere Transformierte komprimiert sind. Die einzige Bedingung
hinsichtlich des Typs der Komprimierung ist, daß sie Daten liefert, die ihn
hierarchischen Ebenen rangmäßig geteilt werden
können,
z.B. Teilband- oder Pyramiden-Transformierte.