-
Die
vorliegende Erfindung betrifft eine Technologie zum Decodieren mit
variabler Länge
und spezieller, obwohl nicht ausschließlich, ein Synchronisations-Wiederherstellungsverfahren
und eine -vorrichtung, die eine Synchronisation zur Verarbeitung
eines Signals in einem Decoder mit variabler Länge selbst in dem Fall aufrechterhalten,
dass ein Sendefehler in den mit variabler Länge codierten, digitalen Daten
erzeugt wird.
-
Ein
Verfahren zum Codieren mit variabler Länge (variable-length coding – VLC) ist
ein repräsentatives
eines verlustfreien Codierungsverfahrens und ist in Kombination
mit einem Codierungsverfahren weit verbreitet, das ein diskretes
Kosinustransformations-Verfahren oder ein Differenz-Pulscodemodulationsverfahren
in Verbindung mit einer Bildsignal-Codierungstechnologie verwendet.
Ein derartiges VLC-Verfahren vergibt ein kurzes Codewort mit Bezug
auf ein Symbol mit einer größeren Ereignishäufigkeit,
während
ein längeres
Codewort mit Bezug auf ein Symbol mit einer geringeren Ereignishäufigkeit
vergeben wird, wobei dadurch die gesamte Datensenderate gesenkt
wird. Ein derartiges Verfahren wird im Allgemeinen in einem Bildcodierungsverfahren
wie einem MPEG(Moving Picture Experts Group)-System einer weiterführenden
Standardisierung von ISO/CCITT oder einem hochauflösenden Fernsehsystem
(high definition television – HDTV) verwendet,
das in den USA entwickelt wurde. Ein allgemeines VLC-Verfahren und
ein Verfahren zum Decodieren mit variabler Länge (variable-length decoding – VLD) ist
in den folgenden Abhandlungen mit den Titeln 1) "An Entropy Coding System for Digital HDTV-Application" von Shaw-Min Lei und Ming-Ting Sun
(IEEE Transactions on Circuit & Systems
for Video Technology, Band Nr. 1, März 1991) und 2) "VLSI Architecture
and Implementation of a High-Speed Entropy Decoder" von Ming-Ting Sun
(Singapur, Seiten 200–203,
11.–14.
Juni 1991), Proceeding of the International Symposium an Circuits
and Systems offenbart.
-
Ein
VLC-Codierer eines Bildsignals erzeugt ein VLC-Codewort entsprechend
einem Runlevel-Paar das mittels eines allgemeinen Zickzack-Suchlaufs
erzeugt wird. Hier besteht das Runlevel-Paar aus einer Lauflänge, die
die Anzahl von sequenziellen "0" und einen Pegel
darstellt, der nicht Null ist, wie bekannt ist. Die durch den VLC-Codierer erzeugten
VLC-Codewörter
werden mit verschiedenen Headern und anderen Paritätsinformationen multiplexiert,
um eine sequenzielle Bitfolge zu bilden. Die an einem Decoder empfangene
sequenzielle Bitfolge wird als eine vorbestimmte Größe, zum
Beispiel 24 Bits segmentiert, die in einen FIFO-Speicher (first in
first-out – FIFO)
geschrieben werden. Der VLD-Decoder liest eine vorbestimmte Anzahl
von Bits der Daten aus dem FIFO-Speicher, um eine Decodierung mit
variabler Länge
durchzuführen,
und bestimmt, ob die vorbestimmte Anzahl der folgenden Bits von
Daten auf der Basis der Anzahl von Bits gelesen wird, für die die
Decodierung mit variabler Länge
abgeschlossen wurde. Ausführlicher
erfasst der VLD-Decoder sequenziell ein Lauflängen-Paar entsprechend dem
VLC-Codewort unter den gelesenen Bits und gibt "0" durch
die Lauflänge
mit Bezug auf das erfasste Lauflängen-Paar
aus, um dann einen Pegel auszugeben. Außerdem liest der VLD-Decoder
neue Daten mit einer vorbestimmten Anzahl von Bits aus dem FIFO-Speicher,
sofern die Anzahl der mit variabler Länge codierten Bits eine vorbestimmte
Anzahl von Bits wird. In diesem Fall weist die Bitfolge die VLC-Codewörter mit
variablen Längen
auf, wobei die Anzahl der mit variabler Länge decodierten Bits ebenfalls
jeden Augenblick variiert wird. Mit anderen Worten, da jede Abgrenzung
zwischen den VLC-Codewörtern
während
eines Verfahrens zum Decodieren mit variabler Länge nicht gesehen wenden kann, kann
eine Länge
des VLC-Codewortes, das gegenwärtig
decodiert wird, nicht exakt gesehen werden, bis das vorherige VLC-Codewort
decodiert sein wird. Aus diesem Grund decodiert der VLD-Decodierer das
folgende VLC-Codewort auf der Basis der Anzahl von Bits des gegenwärtig decodierten
VLC-Codewortes exakt nur in dem Fall, dass das gegenwärtige VLC-Codewort
exakt decodiert ist. Wenn die Bitfolge einen Sendefehler aufweist,
führt daher
der VLD-Decoder einen Decodiervorgang durch Verwendung eines fehlerhaften
VLC-Codewortes mit Bezug auf den durch Fehler erzeugten Abschnitt
durch. Demzufolge wird ein falscher Decodiervorgang danach kontinuierlich
durchgeführt.
Ein solcher Fehlvorgang kann einen abnormalen Vorgang verursachen,
wenn Daten aus dem FIFO-Speicher gelesen werden, mit einem Ergebnis,
dass der VLD-Decoder keine Synchronisation zum Decodieren der Eingangsdaten ausführt.
-
Die
Druckschrift
EP-A-0
506 294 beschreibt einen hierarchischen VLD-Decoder für digitale
Daten mit einer Vielzahl von Decodierelementen mit variabler Länge und
eingebetteten Steuerstrukturen. Die Steuerstrukturen übertragen
den Decodiervorgang auf einen passenden der Decodierelemente in
Reaktion auf eine frühere
Ausgabe von dem Decodierelement. Wenn Fehler in der codierten Datensequenz auftreten,
die einen Verlust des Kontexts verursachen, findet ein Reset statt.
-
Die
Druckschrift
EP-A-0
498 081 beschreibt einen Video-Codierer/Decoder mit einer
Verschiebungsvermeidung für
ansonsten korrekt decodierte Signalblöcke basierend auf der Bestimmung
des Verlustes eines Blockende-Wortes und Einsetzen eines Blockende-Wortes/Wörter, um
eine Verschiebung von korrekt decodierten Blöcken relativ zu ihrer wahren
Position im zu rekonstruierenden Bild zu verhindern, wobei dadurch
berücksichtigt
wird, dass die Anzahl von Blockende-Wörtern zwischen den Synchronisationswörtern im
Voraus bekannt ist.
-
Die
am 6. Dezember 1995 veröffentlichte Druckschrift
EP-A-0 685 970 beschreibt
einen VLD-Decoder für
mit Bits gestopfte Daten (Bit-Stuffing), in denen das Lesen von
mit variabler Länge
codierten Daten aus einem FIFO-Speicher abhängig von Startcodes gelesen
wird, wobei damit die Decodierung gesteuert wird. Bit-Stuffing findet
entsprechend einem im Voraus bekannten Format statt.
-
Es
ist ein Ziel von bevorzugten Ausführungsbeispielen der vorliegenden
Erfindung, ein Synchronisationswiederherstellungsverfahren bereitzustellen,
in dem ein Sendefehler erfasst wird, so dass ein normaler Decodiervorgang
mit variabler Länge
auf der Basis des erfassten Ergebnisses wieder aufgenommen wird,
nachdem eine vorbestimmte Zeit abläuft.
-
Es
ist ein weiteres Ziel von bevorzugten Ausführungsbeispielen der vorliegenden
Erfindung, eine Synchronisationswiederherstellungsvorrichtung bereitzustellen,
um einen normalen Decodiervorgang mit variabler Länge auf
der Basis der Erfassung eines Sendefehlers zu ermöglichen,
nachdem eine vorbestimmte Zeit abläuft.
-
Entsprechend
der vorliegenden Erfindung werden eine Synchronisationswiederherstellungsvorrichtung
und ein Synchronisationswiederherstellungsverfahren bereitgestellt,
wie sie in den beigefügten
Ansprüchen
dargelegt sind. Bevorzugte Merkmale der Erfindung werden anhand
der abhängigen
Ansprüche
und der Beschreibung offensichtlich, die folgt.
-
Die
bevorzugten Ausführungsbeispiele
werden mit Bezug auf die Zeichnungen beschrieben, in denen zeigen:
-
1 ein
schematisches Blockschaltbild einer Codierungs- und Decodierungsvorrichtung
für ein allgemeines
digitales System;
-
2 eine
Ansicht eines allgemeinen Datenverarbeitungsformats entsprechend
digitalen Datenfenstern;
-
3 ein
schematisches Blockschaltbild einer Synchronisationswiederherstellungsvorrichtung entsprechend
der vorliegenden Erfindung;
-
4A bis 4F Zeitablaufdiagramme
zur Erläuterung
eines Falles, wo ein Fehler beim Senden von digitalen Daten in einer
Synchronisationswiederherstellungsvorrichtung entsprechend der vorliegenden
Erfindung erzeugt wird;
-
5 ein
ausführliches
Schaltbild einer Schnittstelleneinrichtung eines VLD-Decoders (VLD – varaible-length-decoding – Decodieren
mit variabler Länge)
gemäß 3;
-
Ein
bevorzugtes Ausführungsbeispiel
der vorliegenden Erfindung wird unten ausführlicher nur beispielhaft mit
Bezug auf die begleitenden Zeichnungen beschrieben.
-
Es
gibt ein Quellencodierungsverfahren und ein Entropie-Codierungsverfahren
als allgemeine Bild-Codierungstechnologien. Das Quellencodierungsverfahren
verwendet die einem Bildsignal eigene Redundanz, um das Bildsignal
mittels eines DCT-(discrete
cosine transformation – diskrete
Kosinustransformation), eines Subband-DPCM-(Teilbereichs-Differenz-Pulscodemodulation),
eines Quantisierungsverfah rens usw. digital zu komprimieren. Das
Entropie-Codierungsverfahren komprimiert ferner die durch das Quellencodierungsverfahren
komprimierten Daten entsprechend einer statistischen Wahrscheinlichkeit
des Auftretens. Das Decodierungsverfahren mit variabler Länge ist
ein repräsentatives
Verfahren des verlustfreien Codierungsverfahrens, das zuvor bereits
beschrieben wurde. Ein digitales erweitertes TV-(advanced TV)System
verwendet zwei derartige Codierungsverfahren, die auf Grund der
erforderlichen großen
Menge der Datenverarbeitung einen Bildschirm in verschiedene Fenster
teilen und das geteilte Bild bearbeiten. Ein derartiges Beispiel
ist in 1 und 2 dargestellt.
-
1 ist
ein schematisches Blockschaltbild eines allgemeinen digitalen Systems
mit einer Codierungs- und Decodierungsvorrichtung für digitale
Daten. In 1 wird eine digitale Bildeingabe
in einer Partitionierungseinrichtung 10 eines Codierers 1 segmentiert
und in die jeweiligen Quellencodierer 20A bis 20D eingegeben.
Die Ausgaben der jeweiligen Quellencodierer 20A bis 20D werden
in einen Multiplexer 40 jeweils über VLC-Codierer 30A bis 30D eingegeben.
Der Multiplexer 40 multiplexiert die jeweiligen codierten
Fensterdaten in eine einzelne Bitfolge und sendet dann die multiplexierten
Daten zu einem Decoder 2. Da sich die Menge der in jedem
Fenster erzeugten Bits voneinander unterscheiden kann, setzt der
Multiplexer 40 Überhangdaten
in die Bitfolge ein, um die jeweiligen Fensterdaten voneinander zu
unterscheiden, und sendet dann die eingesetzten Daten zum Decoder 2.
Die auf diese Weise gesendete Bitfolge wird wieder in vier Fenster
geteilt und dann in die jeweiligen VLD-Decoder 60A bis 60D eingegeben.
Das durch die jeweiligen VLD-Decoder 60A bis 60D decodierte
Signal wird in den Quellendecodern 70A bis 70D wieder
decodiert. Danach wird das decodierte Signal in einem Multiplexer 80 multiplexiert und
als ein decodiertes Bild ausgegeben.
-
2 zeigt
einen Fall, in dem ein Bild in vier Fenster geteilt wird. Ein Fenster
besteht aus fünfzehn Gruppen
von Mass-Of-Macroblocks (MMB). Ein MMB besteht aus vier Scheiben.
Eine Scheibe besteht aus einer Vielzahl von Macroblocks. Wenn das System
von 1 eine Datenstruktur gemäß 2 verwendet,
multiplexiert der Codierer 1 die zu vier Fenstern gehörenden Daten
in der Reihenfolge von MMB1, MMB2, MMB3, MMB4, MMB5, ... MMB60 und sendet
die multiplexierten Daten. Der Deco der 2 multiplexiert
die MMBs in einer derartigen Reihenfolge umgekehrt. Dann werden
die MMBs im ersten Fenster durch den Quellencodierer 20A,
den VLC-Codierer 30A, den VLD-Decoder 60A und
den Quellendecoder 70A verarbeitet, wobei die MMBs im zweiten Fenster
durch den Quellencodierer 20B, den VLC-Codierer 30B,
den VLD-Decoder 60B und den Quellendecoder 70B verarbeitet
werden. Die MMBs in den übrigen
Fenstern werden in der gleichen Weise wie die oben genannten im
ersten und zweiten Fenster verarbeitet.
-
Da
andererseits die Menge der in jedem Fenster erzeugten Daten nicht
konstant ist, wird ein Bit-Stuffing-Vorgang im Endabschnitt der
MMBs durchgeführt,
so dass die Datenmenge von jedem MMB ein Vielfaches der Anzahl der
Bits wird (zum Beispiel 24 Bits), die auf einmal in den FIFO-Speicher geschrieben
werden. Um außerdem
eine Unterschreitung auf Grund einer geringen Datenmenge, die erzeugt
wird, zu verhindern, gibt es einen Bit-Stuffing-Vorgang zum Einsetzen
vorbestimmter Daten. In diesem Ausführungsbeispiel wird eine vorbestimmte Anzahl
eines Bitwertes von "0" in den Endabschnitt des
MMB eingesetzt. Da Bit-Stuffing für einen Decodiervorgang mit
variabler Länge
eine bekannte Technologie ist, die der Fachmann ohne weiteres entwerfen
kann, wird ein Abschnitt, der für
die Verwendung des Bit-Stuffing notwendig ist, unten in diesem Ausführungsbeispiel
beschrieben.
-
Die
vorliegende Erfindung stellt eine Vorrichtung zum normalen Decodieren
weiterer MMBs, die einem MMB folgen, der einen Sendefehler enthält, auf
der Basis einer Fehlererfassung bereit, wenn die mit variabler Länge codierte
und mit Bit-Stuffing versehene Bitfolge einen Sendefehler aufweist.
Ein Ausführungsbeispiel
der vorliegenden Erfindung wird ausführlicher mit Bezug auf 3 bis 5 beschrieben.
-
Die
Vorrichtung von 3 ist eine Vorrichtung zum Durchführen eines
Decodiervorgangs mit variabler Länge
auf der Basis eines konstanten Datenformats. Die auf die Vorrichtung
von 3 angewandte Bitfolge sind mit variabler Länge codierte
und mit Bit-Stuffing versehene Daten auf der Basis eines konstanten
Datenformats. Die Bitfolge von jedem auf der Basis eines konstanten
Datenformats erzeugten Bild-Frame besteht aus Frame-Head-Daten (FRMH), Head-Daten
(MMBH1) des MMB1 und Informationsdaten (MMBD1) und Head-Daten MMBH2
und Informationsdaten MMBD2 in der Reihenfolge gemäß 4A.
Die Frame-Head-Daten (FRMH) haben einen 32-Bit-Frame-Startcode (FSC). Die Head-Daten (MMBH)
von jedem MMB haben einen MMB-Startcode (MSC). Eine Scheibe in jedem
MMB hat hundert und zehn Blockende-(EOB)Codewörter. Die EOB-Codewörter wenden
im hinteren Ende von jedem Block der codierten Daten verknüpft. Eine
solche Bitfolge wird in Einheiten von 24 Bits in den und aus dem
FIFO-Speicher 100 geschrieben bzw. gelesen. Wenn damit
die Anzahl von Bits der Daten in jedem MMB nicht ein Vielfaches
von 24 Bits ist, sind ein bis dreiundzwanzig Bitwerte, die mit Bit-Stuffing
versehen sind, als "0" im Ende des MMB
enthalten. Der FIFO-Speicher 100 gibt 24-Bitdaten zur VLD-Schnittstelleneinrichtung 200 beginnend
von den zuerst gespeicherten Bits immer dann aus, wenn ein Lesesignal
(READ) von der VLD-Schnittstelleneinrichtung 200 zugeführt wird.
Wenn die Vorrichtung von 3 eine Bitfolge ohne Sendefehler
verarbeitet, werden die in der VLD-Schnittstelleneinrichtung 200 zwischengespeicherten
Daten in 4A gezeigt. Wenn die Vorrichtung
von 3 eine Bitfolge mit einem Sendefehler verarbeitet,
werden die in der VLD-Schnittstelleneinrichtung 200 zwischengespeicherten
Daten in 4F gezeigt. Ein als ein Sechseck
in 4A und 4F dargestelltes
Datenintervall bedeutet eine Menge der in der VLD-Schnittstelleneinrichtung 200 gespeicherten
Daten von jedem dritten gelesenen Signal.
-
Die
Vorrichtung von 3 verarbeitet die Bitfolge ohne
einen Sendefehler, wobei eine Steuereinheit 500 ein Startsignal
(START) und ein Initialisierungssignal (INIT) auf der Basis des
oben beschriebenen Datenformats erzeugt. Die Steuereinheit 500 erzeugt
ein Steuersignal zur Freigabe des Vorgangs des VLD-Decoders 300 und
das andere Steuersignal und führt
die erzeugten Steuersignale dem VLD-Decoder 300 zu. Die
VLD-Schnittstelleneinrichtung 200 erzeugt ein Lesesignal
(READ) entsprechend den von der Steuereinrichtung 500 zugeführten Signalen START
und INIT. Die VLD-Schnittstelleneinrichtung 200 variiert
ein Intervall zum Erzeugen des Lesesignals READ entsprechend, ob
ein durch den Vorgang des VLD-Decoders 300 erzeugtes Datenbedarfssignal
RQST und ein von einem Fehlerdetektor 400 zugeführtes Fehlersignal
(ERROR) dahin zugeführt werden
oder nicht. Die VLD-Schnittstelleneinrichtung 200 führt die
aus dem FIFO-Speicher 100 zugeführten Daten ebenso dem VLD-Decoder 300 zu.
Die Funktionsweise der VLD-Schnittstelleneinrichtung 200 wird
unten ausführlicher
mit Bezug auf 5 beschrieben.
-
Gemäß 5 weist
eine VLD-Schnittstelleneinrichtung 200 einen Datenzwischenspeicher 220, einen
FSC/MSC (Frame-Startcode/MMB-Startcode)-Detektor 230, eine
Anzahl-Ausgabeeinrichtung 250 und einen Steuersignal-Generator 260 auf. Zunächst erzeugt
die Steuereinheit 500 ein Startsignal START von 4B auf
der Basis eines vordefinierten Bitfolge-Standards. Das von der Steuereinheit 500 erzeugte
Signal START wird dem FSC/MSC-Detektor 230 und dem Steuersignal-Generator 260 zugeführt. Flip-Flops 236 und 237 des FSC/MSC-Detektors 230 werden
gelöscht,
so dass die Ausgabewerte durch Low-Pegelimpulse, die den Reset-Enden über ein
NOR-Gatter zugeführt
werden, "0" werden. Wenn ein
erster High-Pegelimpuls des Signals START gemäß 4B dem
Steuersignal-Generator 260 zugeführt wird, wird ein RS-Flip-Flop 261 im
Steuersignal-Generator 260 durch ein Reset-Signal/RST gelöscht und
gibt einen binären
Wert "1" über ein Ausgabeende Q in Reaktion
auf ein dem Eingabeende S zugeführtes
Startsignal START aus. Flip-Flop 265 speichert einen binären Wert
von "1" zwischen, der vom
RS-Flip-Flop 261 über
ein OR-Gatter 264 zugeführt
wird. Der im Flip-Flop 265 zwischengespeicherte binäre Wert
von "1" wird zum FIFO-Speicher 100 und
zum Flip-Flop 266 ausgegeben. Der vom Flip-Flop 265 ausgegebene
binäre
Wert von "1" wird als Lesesignal
READ für den
FIFO-Speicher 100 verwendet. Die Ausgabe des Flip-Flops 266 wird
als Auswahlsignal SEL zur Steuerung der Multiplexer 221, 223, 225, 234 und 235 verwendet.
Der FIFO-Speicher 100 gibt die gespeicherten Daten zur
VLD-Schnittstelleneinrichtung 200 24-Bit für 24-Bit
in Reaktion auf das von der VLD-Schnittstelleneinrichtung zugeführte Lesesignal READ
aus. Die vom FIFO-Speicher 100 zugeführten 24-Bit-Daten werden dem Daten-Zwischenspeicher 220 zugeführt, wobei
die Flip-Flops 222, 224 und 226 die zugeführten Daten
um 24 Bits sequenziell zwischenspeichern. Der FSC/MSC-Detektor 230 erfasst einen
Frame-Startcode oder einen MMB-Startcode anhand der Ausgangsdaten
des Flip-Flops 222 und der dem Multiplexer 221 zugeführten Daten.
Ausführlicher
vergleicht ein Komparator 232 die Ausgangsdaten des Flip-Flops 222 mit
einem MMB-Startcode von "000001H". Wenn beide gleich
sind, wird ein binärer
Wert von "1" ausgegeben, während, wenn
sich beide voneinander unterscheiden, ein binärer Wert von "0" ausgegeben wird. Der Komparator 233 vergleicht "00H", wobei dies ein
Teil des Startcodes "00000100H
ist, mit den Daten, die dem Multiplexer 221 zugeführt werden.
Sofern der Frame-Startcode erfasst wird, geben beide Komparatoren 232 und 233 binäre Werte
von "1" aus. Sofern andererseits
der MMB-Startcode erfasst wird, gibt nur der Komparator 232 einen
binären
Wert von "1" aus. Sofern der
Frame-Startcode oder der MMB-Startcode erfasst wird, wird der RS-Flip-Flop 261 zurückgesetzt.
Demzufolge erzeugt der Steuersignal-Generator 260 kein
Lesesignal READ mehr. Damit kann die VLD-Schnittstelleneinrichtung 200 die
mit Bit-Stuffing versehenen Daten automatisch entfernen, die in
den Frame-Head-Daten FRMH oder MMB-Head-Daten MMBH enthalten sind.
-
Wenn
der Frame-Startcode durch den FSC/MSC-Detektor 230 erfasst
wird, wird die dem Frame-Startcode folgende Frame-Anzahl im Flip-Flop 255 in
einer Anzahl-Ausgabeeinrichtung 250 zwischengespeichert.
Durch das Erfassen des Frame-Startcodes wird ein vom Komparator 232 ausgegebener
binärer
Wert von "1" dem Reset-Ende R des RS-Flip-Flops 261 im
Steuersignal-Generator 260 zugeführt, nachdem er in einem OR-Gatter 262 über den
Multiplexer 234 und den Flip-Flop 236 logisch
summiert wurde, wobei RS-Flip-Flop 261 einen binären Wert
von "0" über das Ausgabeende Q in Reaktion
darauf ausgibt. Da der RS-Flip-Flop 261 einen binären Wert
von "0" ausgibt, erzeugt
infolgedessen der Steuersignal-Generator 260 kein Lesesignal READ
mehr, sofern die Verzögerungszeit
für den RS-Flip-Flop 261 und
den Flip-Flop 265 abgelaufen ist.
-
Andererseits
führt die
Steuereinheit 500 einen zweiten High-Pegelimpuls gemäß 4B der Vorrichtung
von 5 zu, sofern die 72-Bit-Daten im Daten-Zwischenspeicher 220 zwischengespeichert sind.
Da der RS-Flip-Flop 261 wieder einen binären Wert
von "1" durch den zweiten
High-Pegelimpuls des Startsignals START ausgibt, erzeugt der Steuersignal-Generator 260 ein
Lesesignal READ, bis die neuen 72-Bit-Daten im Daten-Zwischenspeicher 220 zwischengespeichert
sind. Durch dieses Lesesignal READ werden die Head-Daten MMBH1 des
MMB1 gemäß 4A im
Daten-Zwischenspeicher 220 zwischengespeichert. In diesem
Fall wird der MMB-Startcode durch die Komparatoren 232 und 233 im
FSC/MSC-Detektor 230 erfasst, wobei der Flip-Flop 236 einen
binären
Wert von "1" zwischenspeichert.
Der RS-Flip-Flop 261 im Steuersignal-Generator 260 gibt
einen binären
Wert von "0" entsprechend einem
binären
Wert von "1" aus, der im Flip-Flop 236 über das
Ausgabeende Q zwischengespeichert ist. Außerdem wird die dem MMB-Startcode
folgende MMB-Anzahl im Flip-Flop 256 in der Anzahl-Ausgabeeinrichtung 250 zwischengespeichert.
Sofern die Head-Daten MMBH1 des MMB1 gemäß 4A im
Daten-Zwischenspeicher 220 zwischengespeichert sind, führt die
Steuereinheit 500 den ersten High-Pegelimpuls des Initialisierungssignals
INIT von 4C dem Flip-Flop 236 im FSC/MSC-Detektor 230 zu.
Der Flip-Flop 236 wird durch das einem Löschende
zugeführte
Initialisierungssignal gelöscht.
Da die dem Komparator 232 vom Flip-Flop 222 zugeführten Daten
nicht die gleichen Daten aufweisen wie die des MMB-Startodes, wird
ein binärer
Wert von "0" einem AND-Gatter 263 zugeführt, bis
ein Teil des MMB-Startcodes oder des Frame-Startcodes des MMB2 erfasst
wird. Infolgedessen kann der Steuersignal-Generator 260 ein
Lesesignal READ entsprechend dem vom VLD-Decoder 300 zugeführten Datenbedarfssignal
ROST erzeugen.
-
Wenn
die VLD-Schnittstelleneinrichtung 200 die zwischengespeicherten
Daten dem VLD-Decoder 300 zuführt, werden die zugeführten Daten
vom VLD-Decoder mit variabler Länge
decodiert. Ausführlicher
erfasst der VLD-Decoder 300 ein Runlevel-Paar entsprechend
dem Codewort mit variabler Länge,
gibt sequenziell nicht weniger "0" aus als eine Lauflänge des
Runlevel-Paars und gibt dann den dem Runlevel-Paar gehörenden Pegel
aus. Der VLD-Decoder 300 erzeugt ein Datenbedarfssignal RQST
immer dann, wenn die Anzahl der Bits der mit variabler Länge decodierten
Daten eine vorbestimmte Anzahl von Bits wird, und gibt das erzeugte
Datenbedarfssignal zur VLD-Schnittstelleneinrichtung 200 aus.
Durch Wiederholung dieses Vorgangs werden Informationsdaten MMBD1
des MMB1 durch den VLD-Decoder 300 mit variabler Länge decodiert.
Der VLD-Decoder 300 gibt den durch den Decodiervorgang
mit variabler Länge
bezogenen EOB-Code zu einem Fehlerdetektor 400 aus. Der
Fehlerdetektor 400 ermittelt, ob der EOB-Code exakt zum
Decodierzeitpunkt des EOB-Codes bezogen wurde. Wenn der Sendefehler
nicht in der Bitfolge enthalten ist, wird bestimmt, dass der vom
VLD-Decoder 300 zugeführte
EOB-Code exakt am Decodierzeitpunkt durch den Fehlerdetektor 400 decodiert
wurde. Da ein Fehlersignal ERROR der VLD-Schnittstelleneinrichtung 200 und
der Steuereinheit 500 nicht zugeführt wird, führt in diesem Fall die Vorrichtung
von 3 einen Decodiervorgang mit variabler Länge normalerweise
auf der Basis der aus dem FIFO-Speicher 100 zugeführten Daten
durch. Nachdem die Daten vom MMB1 der VLD-Schnittstelleneinrichtung 200 vollständig zugeführt sind,
sofern die Daten vom MMB2 zur VLD-Schnittstelleneinrichtung 200 zugeführt sind,
erfasst der FSC/MSC-Detektor 230 in der VLD-Schnittstelleneinrichtung 200 den
MMB-Startcode des MMB2. Dann führt
die Steuereinheit 500 den zweiten High-Pegelimpuls des
Initialisierungssignals INIT gemäß 4C zu,
sofern die MMBH2 des MMB2 im Daten-Zwischenspeicher 220 zwischengespeichert sind.
Die der VLD-Schnittstelleneinrichtung 200 zugeführten Daten
werden dem VLD-Decoder 300 durch Passieren durch die oben
genannten Verfahren zugeführt
und vom VLD-Decoder 300 mit variabler Länge decodiert.
-
Wenn
die dem VLD-Decoder 300 von der VLD-Schnittstelleneinrichtung 200 zugeführten Daten
einen Sendefehler enthalten, sind die Daten nicht exakt mit variabler
Länge decodiert.
Die in diesem Fall erzeugten EOB-Codes werden vom Fehlerdetektor 400 gezählt. Ein
Beispiel des Fehlerintervalls der Bitfolge mit dem Sendefehler wird
in 4D gezeigt. Der Fehlerdetektor 400 erzeugt
ein Fehlersignal ERROR, wenn die Anzahl der gezählten EOB-Codes geringer wird
als ein vorbestimmter Grenzwert. Hier werden die Grenzwerte auf
der Basis der Datenmenge richtig ausgewählt, die durch einen Fehlerverbergungsabschnitt
(nicht dargestellt) versteckt werden können. Das erzeugte Fehlersignal
ERROR wird der VLD-Schnittstelleneinrichtung 200, der Steuereinheit 500 und
dem Fehlerverbergungsabschnitt (nicht dargestellt) zugeführt. Sofern
das Fehlersignal ERROR gemäß 4D der
VLD-Schnittstelleneinrichtung 200 vom
Fehlerdetektor 400 zugeführt wird, führt das OR-Gatter 267 einen High-Pegelimpuls
des Fehlersignals ERROR' von 4E dem
Eingabeende S des RS-Flip-Flops 261 zu. Der RS-Flip-Flop 261 gibt
einen binären
Wert von "1" in Reaktion auf
den eingegebenen High-Pegelimpuls aus. Der RS-Flip-Flop 261 hält den binären Wert
von "1" kontinuierlich aufrecht,
bis ein binärer
Wert von "1" vom Flip-Flop 236 über das
OR-Gatter 262 zugeführt
wird. Wenn andererseits ein Fehlersignal ERROR' gemäß 4E der Steuereinheit 500 zugeführt wird,
steuert die Steuereinheit 500 den VLD-Decoder 300,
um den Decodiervorgang zu stoppen. Obwohl die Daten aus dem FIFO-Speicher 100 über die
VLD-Schnittstelleneinrichtung 200 zugeführt werden, decodiert damit
der VLD-Decoder 300 nicht die Eingangsdaten und erzeugt
kein Datenbedarfssignal RQST. In diesem Fall basiert das vom Steuersignal-Generator 260 erzeugte
Lesesignal READ auf der Ausgabe des RS-Flip-Flops 261 und
hat ein kleineres erzeugtes Zeitintervall als das auf dem Datenbedarfssignal RQST
basierende Lesesignal READ. Dies basiert auf der Tatsache, dass
der VLD-Decoder 300 das Datenbedarfssignal RQST basierend
auf der Anzahl von Bits erzeugt, die beim Decodiervorgang verwendet werden,
während
das vom RS-Flip-Flop 261 erzeugte Lesesignal READ auf der
Basis eines Taktimpulses (nicht dargestellt) zum Betreiben der Vorrichtung von 5 erzeugt
wird. Wenn der MMB1 einen Sendefehler aufweist, werden die von der
VLD-Schnittstelleneinrichtung 200 dem VLD-Decoder 300 zugeführten Daten
in 4F gezeigt. Die VLD-Schnittstelleneinrichtung 200 erzeugt
kontinuierlich das Lesesignal READ, bis Head-Daten MMBH2 aus dem FIFO-Speicher 100 zugeführt werden,
und liest die Daten aus dem FIFO-Speicher 100. Sofern die Head-Daten
MMBH2 des MMB2, der dem MMB1 direkt folgt, der VLD-Schnittstelleneinrichtung 200 zugeführt werden,
gibt der Komparator 232 einen binären Wert von "1" aus. Der binäre Wert von "1" wird dem RS-Flip-Flop 261 über den Flip-Flop 236 und das
OR-Gatter 262 zugeführt.
Infolgedessen gibt der RS-Flip-Flop 261 einen binären Wert
von "0" aus, wobei der Flip-Flop 265 kein
Lesesignal READ mehr erzeugt. Damit speichert die VLD-Schnittstelleneinrichtung 200 die
Daten der vorherigen Stufe des MMB2 zwischen, bis der zweite High-Pegelimpuls des Initialisierungssignals
INIT gemäß 4C von
der Steuereinheit 500 zugeführt wird. Andererseits steuert
die Steuereinheit 500 einen VLD-Decoder 300, um
den Decodiervorgang zu dem Zeitpunkt wieder aufzunehmen, wenn der
zweite High-Pegelimpuls des Initialisierungssignals INIT der VLD-Schnittstelleneinrichtung 200 zugeführt wird.
Auf diese Weise decodiert die Vorrichtung von 3 die
Daten in den jeweiligen MMBs nicht mit variabler Länge, die
den Sendefehler auf weisen, und kann stattdessen die Synchronisation
mit Bezug auf den folgenden MMB aufrechterhalten.
-
Wie
oben beschrieben ist, führt
die Synchronisationswiederherstellungsvorrichtung der vorliegenden
Erfindung einen forcierten Lesevorgang der Daten in dem MMB mit
dem Sendefehler durch, bis die Head-Daten des folgenden MMB aus
dem FIFO-Speicher 100 gelesen
werden, wenn ein Decodieren mit variabler Länge auf Grund des Sendefehlers
nicht normal durchgeführt
wird. Demzufolge kann ein normaler Decodiervorgang mit variabler Länge anhand
des folgenden MMB durchgeführt werden
und kann ebenso die Synchronisation für eine Signalverarbeitung aufrechterhalten.