-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf eine Bilddecodierschaltung
zum Expandieren komprimierter Bilddaten und zum Wiederherstellen
unkomprimierter Bilddaten, und insbesondere bezieht sie sich auf
eine Bewegbilddecodierschaltung zum Expandieren von Bilddaten, die
gemäß einem
Bewegbildkompressionssystem komprimiert sind, wobei eine orthogonale
Transformation und eine vorhersagende Interrahmen(Intervollbild)/Interfeld-codierung
verwendet werden.
-
Beschreibung
der Hintergrundstechnik
-
In
einem Artikel in Proceedings of the SPIE, Bd. 2188, 1994, San Jose,
CA, US, S. 145–152,
Sun and Zdepski: "Error
Concealment Strategy for Picture-Header Loss in MPEG compressed
video" schlagen
die Autoren eine Fehlerunterdrückungsstrategie für den Fall
des Verlierens von Bildkopfinformation während der Übertragung des komprimierten MPEG-Bitstromes
vor. Ein bewegtes Bild ist in Einheiten von Segmenten vorgeschriebener
Größe komprimiert,
worin jedes Segment einen Datenblock mit zu verarbeitenden Daten
und einen Kopf mit Information aufweist, die Attribute der Daten
des Datenblockes bezeichnet. Eine Bilddecodierschaltung enthält ein Datenverarbeitungsmittel
und Mittel zum Analysieren eines Kopfes in einem Bitstrom. Weiter sind
Nachweismittel zum Nachweisen eines Fehlers in dem Bitstrom vorgesehen.
-
In
ELEKTRONIK, FRANZIS VERLAG GMBH, MÜNCHEN, Bd. 41, Nr. 23, 1992,
Seiten 72–75,
M. Querol: "MPEG/H261-Videodecoder
mit weni gen Chips" beschreibt
der Autor einen integrierten Echtzeit-Decodierchip zum Dekomprimieren von komprimierten
Bewegbilderdaten. Der Chip analysiert die Köpfe in dem Bitstrom, die Information über die
Dekomprimierung der komprimierten Bilder aufweist.
-
Es
ist ein System des Codierens einer enormen Quantität von Bilddaten
mit hoher Effektivität zum
Verringern des Betrages von Daten zur Übertragung und zum Decodieren
der übertragenen
Bilddaten, die mit hoher Effektivität codiert sind, wodurch die
ursprünglichen
Bilder wiederhergestellt werden, vorgeschlagen worden. Solche Bilddatenverarbeitungssysteme
enthalten den MPEG (Moving Picture Experts Group – Bewegbilderexpertengruppe)-Standard,
der auf Bewegbilder gerichtet ist. Während das System zum Codieren
von Pixeldaten unter dem MPEG-Standard im Stand der Technik gut
bekannt ist, wird das System des Codierens von Bilddaten entlang
des MPEG-Standards nun beschrieben, damit das Verständnis des
Hintergrundes der vorliegenden Erfindung erleichtert wird.
-
27 zeigt schematisch den Aufbau einer allgemeinen
Bilddatencodiereinheit entlang des MPEG-Standards. Es wird Bezug
genommen auf 27, die Codiereinheit enthält einen
Subtrahierer 1000, der einen Unterschied zwischen Eingangspixeldaten
und entsprechenden Pixeldaten (Referenzpixeldaten) eines Vorhersagebildes,
einen DCT-Konverter 1002, der eine diskrete Cosinustransformation-(DCT)Verarbeitung
durchführt,
das eines von orthogonalen Transformationsverarbeitungsverfahren ist,
auf einem Signal (Vorhersagefehlersignal) das von dem Subtrahierer 1000 ausgegeben
ist, und einen Quantisierer 1004, der ein Signal (DCT-Koeffizient)
quantisiert, das von dem DCT-Konverter 1002 ausgegeben
ist.
-
Wie
später
im einzelnen beschrieben wird, enthalten Bilder verschiedener Typen
wie I-, P- und B-Bilder, und Vorhersagesysteme werden in Abhängigkeit
der Typen der Bilder variiert. Die I- Bilder werden einer Intrarahmen- oder
Intrafeld-Codierung unterworfen, so daß die Eingangspixeldaten selbst
codiert werden. Die P-Bilder werden einer vorhersagenden Interrahmen-
oder Interfeldcodierung aus den vergangenen erzeugten Bildern unterworfen.
Die B-Bilder sind entweder durch vergangene reproduzierte Bilder
oder zukünftige
reproduzierte Bilder (Rahmen oder Feld) oder beide vorhergesagt.
Die B-Bilder werden vorhersagend codiert (Vorhersagecodierung) unter
Benutzung der I- und der P-Bilder. Die B-Bilder werden nicht als
Referenzbilder verwendet.
-
In
dem Fall der Interrahmen- oder Interfeldvorhersage wird eine Bewegungskompensation
ausgeführt.
Blöcke
in Vorhersagebilder mit der höchsten Korrelation
mit Blöcken
(Segmente, die als Verarbeitungseinheiten dienen) des gegenwärtigen Bildes werden
so erhalten, daß das
Vorhersagecodieren ausgeführt
wird unter Benutzung der Blöcke
mit der höchsten
Korrelation. Verschiebungen zwischen den gegenwärtigen und den Vorhersagebildblöcken werden
als Bewegungsvektoren erhalten, die an die entsprechenden Pixeldatenblöcke angehängt und übertragen
werden. Allgemein wird die Bewegungskompensation in Einheiten von
Blöcken
(Segmenten) von 16 × 16
Pixel ausgeführt.
-
Der
DCT-Konverter 1002 führt
allgemein eine DCT-Verarbeitung in Einheiten von Blöcken von 8 × 8 Pixel
aus. Räumliche
Redundanz (hohe Korrelation zwischen benachbarten Pixeln) in den
Bildern wird durch die DCT-Verarbeitung verringert. Es ist nämlich möglich, DCT-Koeffizienten
in einem Niederfrequenzkoeffizientenbereich zu lokalisieren durch Ausführen der
DCT-Verarbeitung in dem DCT-Konverter 1002, dadurch wird
die Verringerung der Bilddatenmenge durch Verarbeitung durch den
Quantisierer 1004 in der nächsten Stufe ermöglicht.
-
In
einer Quantisierungstabelle 1012 werden große Werte
für Hochfrequenzkomponenten
gesetzt. Der Quantisierer 1004 quantisiert die von dem DCT-Konverter 1002 empfangenen
Koeffizienten in Be zug auf die Quantisierungstabelle 1012,
wodurch Niederfrequenzkomponenten im Wert vergrößert werden können und
Hochfrequenzkomponenten im wesentlichen auf 0 sowohl in der horizontalen
als auch in der vertikalen Richtung in den räumlichen Frequenzen gesetzt
werden können.
Somit wird die Datenmenge verringert.
-
Die
Codiereinheit enthält
weiter einen Zickzackabtaster 1006, der die von dem Quantisierer 1004 empfangenen
quantisierten Daten in einer vorgeschriebenen Reihenfolge in einer
Zickzackweise sequentialisiert, einen Codierer 1008 variabler
Länge,
der mit variabler Länge
die von dem Zickzackabtaster 1006 empfangenen Daten codiert,
und eine Übertragungscodierschaltung 1010,
die die mit variabler Länge
codierten Daten von dem variablen Längencodierer 1008 Bewegungsvektorinformation
von einem Bewegungsvektordetektor (nicht gezeigt) und Information,
die Attribute von anderen Blöcken
bezeichnen, empfängt
und mit variabler Länge
die Bewegungsvektorinformation und die Attributinformation gemäß eines
vorgeschriebenen Formates zum Ausgeben codiert, während Fehlercodewörter usw. dazu
addiert werden.
-
Wie
in einem Block 1015 auf der linken Seite von 27 gezeigt ist, sequentialisiert der Zickzackabtaster 1006 8 × 8 DCT-Koeffizienten in
einer Zickzackweise aufeinanderfolgend von dem oberen linken Abschnitt
zu dem unteren rechten Abschnitt (d. h. Hochfrequenzkomponentenbereich).
Unter den DCT-Koeffizienten, die in dem DCT-Koeffizientenblock 1015 von 27 gezeigt sind, wird der oberste linke ein DC-Koeffizient
genannt, der den Mittelwert der Daten des Blockes von 8 × 8 Pixel
bezeichnet, während
die verbleibenden DCT-Koeffizienten AC-Koeffizienten genannt werden.
Koeffizienten ungleich Null werden effektiv von dem Zickzackabtasten
der DCT-Koeffizienten durch den Zickzackabtaster 1006 gefunden.
-
Der
variable Längencodierer 1008 codiert aufeinanderfolgend
zweidimensional mit variabler Länge
die quantisierten DCT- Koeffizienten,
die von dem Zickzackabtaster 1006 empfangen sind, in Bezug
sowohl auf die Zahl (Läufe)
von vorangehenden Nullkoeffizienten (Zerokoeffizienten) und Werten
(Pegel) der Koeffizienten ungleich Null (signifikante Koeffizienten).
Dieser variable Längencodierer 1008 codiert
mit variabler Länge
die quantisierten DCT-Koeffizientendaten, die von dem Zickzackabtaster 1006 empfangen
sind, durch eine Codiertabelle 1014, die zum Beispiel entlang
Huffman-Codes entwickelt ist. In den quantisierten DCT-Koeffizienten sind
viele Nullen in Hochfrequenzkomponenten enthalten, und viele der
signifikanten Koeffizienten sind in Niederfrequenzkomponenten enthalten.
Codes kleiner Länge werden
signifikante Koeffizienten zugeordnet, während Codes einer großen Codelänge quantisierte
Koeffizienten mit niedriger Auftrethäufigkeit zugeordnet werden,
wodurch weiter die Datenmenge verringert wird.
-
28 stellt eine beispielhafte Anordnung von Bildern
dar, die von der in 27 gezeigten Übertragungscodierschaltung 1010 übertragen
werden. 13 Bilder mit den Bildnummern 1 bis 13 sind in 28 dargestellt. Die Bilder der Nummern 1 und 13 sind
I-Bilder, und die Bilder der Nummern 4, 7 und 10 sind P-Bilder. Zwei B-Bilder
sind zwischen ein I-Bild und ein P-Bild oder zwischen einem Paar
von P-Bildern eingefügt.
Die I-Bilder werden nur der Intrarahmencodierung ohne Vorhersagecodierung
unterworfen. Die P-Bilder werden der vorhersagenden Interrahmen- oder Interfeldcodierung
(mit Bewegungskompensation) unterworfen, und die B-Bilder werden in
zwei Richtungen vorhersagecodiert (mit Bewegungskompensation) zum
Beispiel. Die I-Bilder (I), die P-Bilder (P) und die B-Bilder (B)
können
Feldbilder oder Rahmenbilder sein. Bei der Vorhersage der B-Bilder
(B) wird eine Interpolation ausgeführt mit I- und P-Bildern oder
mit P-Bildern, die vorangehen und danach folgen auf einer Zeitgrundlage
zum Beispiel. Die P-Bilder werden der vorhersagenden Codierung (mit
Bewegungskompensation) mit I-Bildern (I) oder P-Bildern (P) unterworfen,
die dazu auf der Zeitgrundlage vorangehen. Nur die I- und P-Bilder werden
als Vorhersagebilder verwendet, während die B-Bilder (B) nicht
als Vorhersagebilder verwendet werden.
-
29 stellt den Aufbau eines Bildes dar.
-
Es
wird Bezug genommen auf 29,
ein einzelnes Bild (Feld oder Rahmen) 1020 ist in eine Mehrzahl
von Segmenten unterteilt, die Makroblocks genannt werden. Zum Zwecke
der Vereinfachung ist das Bild 1020 in 32 Makroblocks (MB#1
bis MB#32) in 29 zum Beispiel unterteilt.
Verarbeitung eines Bewegbildes wird in Einheiten der Segmente, die
Makroblocks) ausgeführt
(sowohl beim Codieren als auch beim Decodieren). Jeder der Makroblocks MB#1
bis MB#32 enthält
allgemein 256 Pixel, die in horizontal 16 Pixel × vertikal 16 Pixel angeordnet sind.
Daher wird das in 29 gezeigte Bild durch 128 × 64 Pixel
gebildet,
-
30 stellt schematisch den Aufbau (Syntax) eines
Bitstromes (mehrere Bitbreiten) von Bilddaten dar. Es wird Bezug
genommen auf 30, der Bitstrom ist in eine
Mehrzahl von Schichten einschließlich einer Sequenzschicht,
einer GOP-(Group of Pictures – Gruppe
von Bildern)Schicht einer Bildschicht, einer Scheibenschicht, einer
Makroblockschicht und einer Blockschicht gebildet.
-
Die
Blockschicht ist durch einen Block 1100 mit einem Bereich 1100a einschließlich von
DCT-Koeffizienten und einem Bereich 1100b, der ein Blockende
(EOB) speichert, das ein Ende des Blockes bezeichnet, enthält. Der
Bereich 1100a speichert DCT-Koeffizientendaten von Pixeln von 8
Zeilen und 8 Spalten, die als eine Einheit der DCT-Verarbeitung dienen.
Wenn der letzte AC-Koeffizient des Bereiches 1100a ein
Koeffizient ungleich Null in diesem Block 1100 ist, braucht
das Blockende des Bereiches 1100b nicht verwendet zu werden.
-
Der
Makroblock enthält
eine vorgeschriebene Zahl (6) Blöcke 1100.
Der Makroblock auf dem Bitstrom enthält Datenblöcke, die durch die Blöcke 1100 gebildet
sind, und einen Makroblockkopf 1105 zur Codierung variabler
Länge und
zum Speichern von Datenattributen, eines Bewegungsvektors usw. der Datenblöcke.
-
Die
Scheibenschicht enthält
Scheiben 1120, von denen jede aus einem oder einer Mehrzahl
von Makroblöcken 1100 gebildet
ist, die in der Bildabtastreihenfolge verkettet sind. Ein Scheibenkopf 1125, der
in Information, die eine vertikale Position der Scheibe auf dem
Schirm bezeichnet, und Information wie ein Startcode mit einem vorgeschriebenen
Muster, der das Starten der Scheibe bezeichnet, speichert, ist an
dem Kopf der Scheibe 1120 vorgesehen. Diese Scheibenschicht,
die die unterste Schicht unter jenen ist, denen Codes vorgeschriebener
Muster zugeordnet sind, wird als die Einheit der Resynchronisation
bei Fehlererzeugung verwendet.
-
Die
Bildschicht enthält
Bilder 1130, von denen jedes durch eine Mehrzahl von Scheiben 1120 gebildet
ist. Ein Bildkopf 1135, der Information, die den Typ des
Bildes (I-Bild, P-Bild usw.) bezeichnet, und Information wie ein
Startcode, der das Starten des Bildes in einem variablen Längensymbol
(variables Längencodewort)
bezeichnet, speichert, ist an dem Kopf des Bildes 1130 angeordnet.
-
Die
GOP-Schicht enthält
GOPs 1140, von denen jede eine Mehrzahl von Bildern 1130 enthält. Jedes
der Bilder 1130, die in jeder GOP 1140 enthalten
sind, enthält
mindestens ein I-Bild und null oder eine Mehrzahl von P- oder B-Bildern.
Ein GOP-Kopf 1145, der Information wie einen GOP-Startcode,
ein Flag, das anzeigt, daß diese
GOP keine Referenz von den Bilddaten einer vorangehenden GOP benötigt, usw.
ist an dem Kopf der GOP 1140 angeordnet.
-
Die
Sequenzschicht enthält
Sequenzen 1150, von denen jede durch eine oder eine Mehrzahl von
GOPs 1140 oder eines oder einer Mehrzahl von Bildern 1130 gebildet
ist. Ein Sequenzkopf 1155, der Information wie das Schirmformat
speichert, ist an dem Kopf der Sequenz 1150 angeordnet.
Dieser Sequenzkopf 1155 kann an den Kopf einer jeden GOP 1140 angeordnet
sein, die in der Sequenz 1150 enthalten ist (zum Ermöglichen
der Reproduktion von Bildern aus einer Zwischenstufe der Sequenz).
Der Sequenzkopf 1155 speichert Information wie einen Startcode
mit einem vorgeschriebenen Muster, der das Starten der Sequenz bezeichnet,
horizontale und vertikale Größe der Bilder,
eine Bildrate (Bildanzeigeraten), eine Bitrate und Inhalte davon
usw.
-
31 stellt die Beziehung zwischen jedem Bild und
den Scheiben dar. Wie in 31 gezeigt
ist, enthält
ein einzelnes Bild 1130 eine Mehrzahl von Scheiben 1120.
Die Scheibe 1120, die eine willkürliche Länge aufweisen kann, kehrt zu
dem linken Ende zurück,
nachdem das rechte Ende auf dem Schirm erreicht ist.
-
32 stellt den Datenblockaufbau des Makroblockes 1110 dar.
Der Makroblock 1100 enthält Bereiche 1100aa bis 1100ad,
die DCT-Koeffizientendaten
Y1 bis Y4 für
Bereiche speichern, die durch Unterteilen des Makroblockes in vier
Abschnitte erhalten werden, und Blöcke 1100ae und 1100af,
die unterabgetastete Chrominanzsignale Cb5 bzw. Cb6 enthalten. Die
Chrominanzblöcke 1100ae und 1100af sind
in der vertikalen und der horizontalen Richtung unterabgetastet,
wodurch die vier Luminanzblöcke 1100aa bis 1100ad und
ein Chrominanzblock 1100ae (oder 1100af) die gleichen
Abmessungen auf dem Schirm aufweisen. Bewegungskompensation wird
in Einheiten der Makroblöcke 1110 (MB)
ausgeführt, von
denen jeder 16 × 16
Pixel ist, während
die DCT-Verarbeitung in Einheiten von Blöcken ausgeführt wird, von denen jeder 8 × 8 Pixel
ist.
-
33 stellt schematisch den Aufbau einer herkömmlichen
Bilddekodierschaltung 1200 dar. Die in 33 gezeigte Bilddeko dierschaltung expandiert Bilddaten,
die durch die in 27 gezeigte Codiereinheit codiert
sind, und stellt die ursprünglichen
Bilddaten wieder her.
-
Es
wird Bezug genommen auf 33,
die Bilddecodierschaltung 1200 enthält eine FIFO-Schnittstelle 1210,
die einen ankommenden Bitstrom (mehrer Bit breit) empfängt und
denselben speichert/liest in/aus einem externen Speicher 1230 auf
eine FIFO(First-In-First-Out)-Weise, einen variablen Längendecodierer 1212,
der Pixeldaten mit variabler Länge
decodiert, die durch die FIFO-Schnittstelle 1210 geliefert
werden, in Einheiten von Segmenten (Makroblöcke) und quantisierte DCD-Koeffizientendaten
(quantisierte Indizes) fester Längendaten
erzeugt, einen inversen Quantisierer 1214, der invers die
von dem variablen Längendecoder 1212 ausgegebenen
Daten quantisiert und DCT-Koeffizientendaten
erzeugt, einen Abtastkonverter 1216, der die von dem inversen
Quantisierer 1214 ausgegebenen Daten sequentialisiert zum
Erzeugen von DCT-Koeffizientendaten, die in Abtastreihenfolge angeordnet
sind, einen inversen diskreten Cosinuskonverter 1218, der
die inverse diskrete Cosinustransformation ausführt, die eine von inversen
orthogonalen Transformationsverfahren ist, auf den Daten, die von dem
Abtastkonverter 1216 ausgegeben sind, und einen Pixelrekonfigurator 1220,
der Pixeldaten (differentielle Daten) empfängt, die von dem inversen diskreten
Cosinuskonverter 1218 ausgegeben werden, und Vorhersagebildpixeldaten,
die von dem externen Speicher 1230 durch eine Speicherschnittstelle 1224 geliefert
werden, zum Wiederherstellen (Rekonfigurieren) ursprünglicher
Pixeldaten.
-
Die
FIFO-Schnittstelle 1210 greift auf den externen Speicher 1230 durch
die Speicherschnittstelle 1224 zum Speichern/Lesen des
ankommenden Bitstromes auf die FIFO-Weise zu, wodurch der ankommende
Bitstrom gepuffert wird und Differenz zwischen der Bitrate davon
und der Datenverarbeitungsrate in der Bilddekodierschaltung 1200 beseitigt
wird.
-
Der
variable Längendecodierer 1012 erfaßt Köpfe der
entsprechenden Schichten von dem Bitstrom, der von der FIFO-Schnittstelle 1210 geliefert wird,
analysiert die erfaßten
Köpfe und
führt die
Datenverarbeitung der entsprechenden Blöcke (Blöcke, die in Makroblöcken enthalten
sind) gemäß den Resultaten
der Analyse aus. Somit führt
der variable Längendecodierer 1212 eine
Kopfanalysetätigkeit und
eine variable Längendecodierverarbeitung
von quantisierten DCT-Koeffizienten aus. Dieses variable Längendecodierverarbeiten
enthält
Verarbeiten von wiedergewonnen quantisierten DCT-Koeffizienten fester
Länge von
Lauflängendaten,
die mit variabler Länge
codiert sind.
-
Der
inverse Quantisierer 1214 quantisiert invers die quantisierten
DCT-Koeffizienten, die von dem variablen Längendecodierer erhalten werden, durch
quantisierte Daten einer Quantisierungstabelle (Quantisierungsmatrix:
nicht gezeigt), zum wiederherstellen oder Wiederaufbauen der DCT-Koeffizienten.
Diese Quantisierungsmatrix kann in einer Quantisierungstabelle beschrieben
sein, die in dem inversen Quantisierer 1214 enthalten ist,
durch den variablen Längendecodierer 1212.
-
Der
Abtastkonverter 1216 empfängt Zickzack abgetastete DCT-Koeffizientendaten,
die in 27 gezeigt sind, die von dem
inversen Quantisierer 1214 geliefert werden, und anordnet
die Abtastreihenfolge davon in der ursprünglichen Reihenfolge wieder
an. Der inverse diskrete Cosinuskonverter 1218 führt eine
inverse diskrete Cosinustransformationsverarbeitung auf dem DCT-Koeffizientendaten die
von dem Abtastkonverter 1216 geliefert sind, durch und
stellt die vorhersagecodierten Daten wieder her. Der Pixelrekonfigurator 1220 liest
notwendige Vorhersagebildpixeldaten aus dem externen Speicher 1230 durch
die Speicherschnittstelle 1224 gemäß den Bewegungsvektordaten
und den Makroblockattributdaten von dem variablen Längendecodierer 1212,
addiert die gelesenen Pixeldaten mit den Differentialpixeldaten auf,
die von dem inversen diskreten Cosinuskonverter 1218 geliefert
sind, zum Rekonfigurieren der ursprünglichen Pixeldaten und stellt
die ursprünglichen
Pixeldaten zum Speichern derselben in dem externen Speicher 1230 durch
die Speicherschnittstelle 1224 wieder her.
-
Die
Verarbeitung in dem Pixelrekonfigurator 1220 wird entsprechend
den I-, P- und B-Bildern variiert. In dem Fall der Pixeldaten von
solchen Bildern wie I-Bildern, die der Intrarahmencodierung unterworfen
sind, sind Pixeldaten, die von dem inversen diskreten Cosinuskonverter 1218 geliefert
sind, Bilddaten selbst, und keine Vorhersagecodierung wird ausgeführt, und
folglich schreibt der Pixelrekonfigurator 1220 die Pixeldaten,
die von dem inversen diskreten Cosinuskonverter 1218 geliefert
werden, in den externen Speicher 1230 durch die Speicherschnittstelle 1224.
In dem Fall von Pixeldaten von P- oder B-Bildern, die dem Interrahmen-
oder Interfeld-Vorhersagecodierung unterworfen sind, sind Pixeldaten,
die von dem inversen diskreten Cosinuskonverter 1218 an
den Pixelrekonfigurator 1220 geliefert werden, Vorhersagefehlersignale,
die durch die Differenz in Bezug auf die bereits decodierten Pixeldaten
vorgesehen werden (Vorhersagebilddaten). Daher addiert der Pixelrekonfigurator 1220 die
entsprechenden Vorhersagebildpixeldaten von dem externen Speicher 1230 und
die Pixeldaten von dem inversen diskreten Cosinuskonverter 1218 miteinander auf,
und er schreibt die Resultate der Addition in den externen Speicher 1230 durch
die Speicherschnittstelle 1224.
-
Die
in den externen Speicher 1230 geschriebenen Bilddaten werden
in der Rasterabtastreihenfolge durch die Speicherschnittstelle 1224 gelesen und
zu einer Anzeigeneinheit durch eine Bildanzeigensteuerschaltung
(nicht gezeigt) durch eine Pixelbusschnittstelle 1222 geliefert.
-
Die
oben erwähnte
Reihe von Verarbeitungen wird in Einheiten von Segmenten ähnlich wie
in dem Fall des Codierens ausgeführt.
Der inverse Quantisierer 1214, der Abtastkonverter 1216,
der inverse diskrete Cosinuskonverter 1218 und der Pixelrekonfigurator 1220 sind
in Pipelineweise vorgesehen zum Verarbeiten der Bilddaten mit einer
hohen Geschwindigkeit.
-
Eine
Steuerschaltung 1226 steuert den Zugriff auf den externen
Speicher 1230 und das Starten und Stoppen der Pipelinestufe.
-
34 stellt Speichergebiete des in 33 gezeigten externen Speichers 1230 dar.
Dieser externe Speicher 1230 ist durch einen DRAM (Dynamischer
Direktzugriffsspeicher) zum Beispiel gebildet und enthält ein FIFO-Gebiet 1232,
das einen extern gelieferten Bitstrom in der FIFO-Weise speichert,
ein Referenzbildgebiet 1234, das Referenz-(Vorhersage)Bildpixeldaten
speichert, die für
Vorhersagedecodier(DPCM-Decodieren)-Verarbeitung in dem Pixelrekonfigurator 1230 (33) verwendet wird, und ein Anzeigenbildgebiet 1236,
das Anzeigenbilddaten speichert, die auf einer Anzeigeneinheit durch
die Anzeigensteuerschaltung (nicht gezeigt in 33) anzuzeigen sind. Das FIFO-Gebiet 1230 wird
allgemein ein Ratenpuffer zum Rateneinstellen zum Absorbieren einer
Differenz zwischen der Bitrate des ankommenden Bitstromes und der
Datenverarbeitungsgeschwindigkeit in der Bilddecodierschaltung 1200 (33) genannt. Aufgrund der Verwendung des FIFO-Gebietes 1232 ist
es möglich,
die Differenz in der Codemenge, die in einer Zeiteinheit bei der
Bildexpansionsverarbeitung aufgrund des Verarbeitens von variablen
Längencodewortdaten
benötigt
wird, während
die Übertragungsrate
des ankommenden Bitstromes im wesentlichen konstant gehalten wird, zu
kompensieren.
-
35 stellt ein beispielhaftes Zeitdiagramm in der
Beziehung zu der Steuerung der Bilddecodierschaltung, die in 33 gezeigt ist, dar. Diese Figur zeigt ein Bildsynchronisierungssignal,
das ein Synchronisierungssignal ist, daß das Starten eines Betriebes
in Einheiten von Rahmen- oder Feldbildern anzeigt, und ein MB-Synchronisierungssignal,
das ein Synchronisierungssignal ist, daß das Starten eines Betriebes
in Einheiten von Segmenten anzeigt. Das Bildsynchronisierungssignal,
das zum Beispiel ein vertikales Synchronisierungssignal ist, wird
an die in 33 gezeigte Steuerschaltung 1226 von
der Anzeigensteuerschaltung (nicht gezeigt) geliefert. Die Steuerschaltung 1226 gibt
das MB-Synchronisierungssignal
in Synchronisation mit dem Bildsynchronisierungssignal aus. Der
Zyklus des Bildsynchronisierungssignal weist einen konstanten Wert
auf, der von einer Anzeigenrate der decodierten Bilddaten (Pixeldaten,
die durch die in 32 gezeigte Pixelbusschnittstelle 1222 gelesen
sind) auf der Anzeigeneinheit entschieden wird. Diese Anzeigenrate wird
durch einen Pegel in dem MPEG-Standard entschieden. Die Maximalwerte
der Zahl der horizontalen Pixel, die Zahl der vertikalen Pixel und
der Rahmenfrequenzen sind in dem "Pegel" standardisiert. In einem einzelnen
Bild wird die Zahl der unterteilten Makroblöcke zuvor bestimmt. Daher wird
die Zahl der MB-Synchronisierungssignale, die in einem Bildsynchronisierungssignalzyklus
geltend gemacht werden, durch die Pixelzahl des Bildes bestimmt,
d. h. die Zahl der Makroblöcke
in einem einzelnen Bild. Dieses MB-Synchronisierungssignal wird an jede
Schaltung der Bilddecodierschaltung 1220 von der in 33 gezeigten Steuerschaltung 1226 geliefert,
so daß jede
Schaltung eine vorgeschriebene Verarbeitung synchron ausführt.
-
36 ist ein Zeitablaufdiagramm, das die Verarbeitung
zeigt, die in einem Segmenteinheitverarbeitungsabschnitt ausgeführt wird.
Diese Figur zeigt die Bilddecodierschaltung als einen Decodierer. Ein
Betrieb dieser Bilddecodierschaltung (Decodierer) wird in Synchronisation
mit dem MB-Synchronisierungssignal gestartet. Der variable Längendecodierer 1212 (siehe 33) wird in Synchronisation mit dem MB-Synchronisierungssignal
zum Erfassen und Analysieren von Köpfen von dem Bitstrom aktiviert,
der von der FIFO-Schnittstelle 1210 geliefert wird, wodurch
die darauf folgend auszuführende
Verarbeitung entschieden wird. Dann wird das Decodieren tatsächlicher
Daten (hier im folgenden als Decodieren von Blockdaten bezeichnet)
entsprechender Blöcke
von Makroblöcken
gemäß der durch
die Kopfanalyse entschiedenen Verarbeitungstätigkeit ausgeführt.
-
Parallel
zu der Entscheidungstätigkeit
in dem Decodierer wird ein Zugriff auf den externen Speicher 1230 ausgeführt einschließlich des
Schreibens des Bitstromes in das in 34 gezeigte
FIFO-Gebiet 1232, Lesen von Pixeldaten aus dem FIFO-Gebiet 1232 als
der zu decodierende Bitstrom, schreiben der decodierten Bilddaten
in das Referenzbildgebiet 1234 oder das Anzeigenbildgebiet 1236 (B-Bilder werden
nicht als Referenz-(Vorhersage)Bilder
verwendet), Lesen der Daten von dem Anzeigenbildgebiet 1236 des
externen Speichers zum Anzeigen der Bilddaten und Lesen Vorhersagebilddaten,
die die Vorhersage der Codier-/Decodierverarbeitung in dem Pixelrekonfigurator 1220 verwendet
werden, aus dem Referenzbildgebiet 1234.
-
36 zeigt auch die Verarbeitungstätigkeit eines
einzelnen Makroblockes. In der folgenden Beschreibung wird angenommen,
daß der
Begriff "Segment" sowohl einen Makroblock
mit einer Mehrzahl von Blöcken
und einen Makroblockkopf mit Attributdaten des Markoblockes enthält, und
der Ausdruck "Makroblock" einfach eine Mehrzahl
von Datenblöcken
enthält.
-
Ein
Kopfanalyseteil decodiert einen Kopfteil des Segmentes und entscheidet
die darauf folgend ausführende
Bearbeitung und Attribute des Makroblockes, die zu verarbeiten sind.
Nach dem Decodieren des Kopfteiles des Makroblockes werden Luminanzsignale
(Y-Signale) und Chrominanzsignale Cb und Cr der entsprechenden Blöcke des
Makroblockes decodiert. Zu dieser Zeit wird eine Tätigkeit
des Rekonfigurierens von Bewegungsvektoren von jenen, die durch
Decodieren des Makroblockkopfteiles erhalten sind, parallel ausgeführt (eine
Mehrzahl von Bewegungsvektoren werden in dem Fall B-Bildern verwendet).
Eine beispielhafte Decodiertätigkeit solch
eines Decodierers ist in "A
Single-Chip MPEG2 Video Decoder LSI" by Demura et al., ISSCC 94, Digest
of Technical Papers, S. 72 bis 73, 2 zum Beispiel
beschrieben. In dem Fall dieser Verarbeitung hängt daher die Zeit, die für die Kopfanalyse
benötigt
wird, von der Länge
des Kopfteiles und damit der Periode des MB-Synchronisierungssignales
ab, d. h. die Zeitlänge
des einzelnen Verarbeitungsabschnittes unterscheidet sich für verschiedene
Verarbeitungsabschnitte.
-
In
der Bilddecodierschaltung wird der Bitstrom in Einheiten von Segmenten
verarbeitet. Wie in 30 gezeigt ist, sind Anfangsblöcke auf
Köpfen der
entsprechenden Schicht mit Ausnahme der Blockschicht vorgesehen.
Startcodes, die das Starten der Schichten bezeichnen, sind auf den
Kopfabschnitten der Kopfblöcke
angeordnet. Jeder Startcode 1300 weist eine Breite von
32 Bit auf, die in Einheiten von Byte angeordnet sind, wie in 37 gezeigt ist.
-
Es
wird Bezug genommen auf 37,
der Startcode 1300 enthält
ein 3 Byte Datenanfangsetikett 1310 mit einem vorgeschriebenen
Muster, das bezeichnet, daß dieses
ein Startcode ist, und einen 1 Bit Schichtstartcode 1320 mit
einem Muster, das für jede
Schicht spezifisch ist. Zum Beispiel weist ein Startcode, der das
Starten einer Bildschicht des MPEG2-Standards bezeichnet, das folgende
Muster auf:
0000 0000 0000 0000 0000 0001 0000 0000,
während ein
Startcode, der das Starten einer Sequenzschicht anzeigt, das folgende
Muster aufweist:
0000 0000 0000 0000 0000 0001 1011 0011.
-
Bei
den oben erwähnten
Startcodes ist das Dateianfangsetikett durch die oberen 24 Bit (3
Byte) gebildet, und der Schichtstartcode ist durch ein unteres Byte
(8 Bit) gebildet.
-
In
dem MPEG2-Standard ist die Kopfinformation dem Startcode in jeder
Schicht folgend angeordnet, die höher in der Reihenfolge als
die Makroblockschicht ist. Kein Startcode ist auf der Makroblockschicht
angeordnet. Die Kopfinformation besteht aus festen Längendaten,
während
die detaillierte Beschreibung davon weggelassen wird. Der Kopf (Makroblockkopf)
der Makroblockschicht enthält
mit variabler Länge
codierte Information.
-
38 stellt einen beispielhaften Aufbau eines Makroblockkopfes 1350 dar.
Es wird Bezug genommen auf 38,
der Makroblockkopf 1350 enthält ein Makroblockadressengebiet 1352,
das Information (eine Makroblockadresse) speichert, die die Position
des Makroblockes auf dem Schirm und die Zahl von Makroblöcken, die
zu überspringen
sind (Makroblockadressenerhöhung)
bezeichnet, ein Gebiet 1354, das einen Makroblocktyp speichert,
der ein Verfahren der Verarbeitung des Makroblockes bezeichnet,
ein Gebiet 1356, das Bewegungsvektoren des Makroblockes
speichert, und ein CBP-Gebiet 1358, das CBP (Codiertes
Blockmuster) speichert, das bezeichnet, ob oder nicht entsprechende
Blöcke des
Makroblockes, die nicht in I-Bildern sind, DCT-Koeffizientendaten
enthalten.
-
Die
Makroblöcke,
die durch die Makroblockadressenerhöhung überschlagen werden, sind jene, die
keine Codes von DCT-Koeffizienten
aufweisen unter jenen, die keiner Bewegungskompensation zum Beispiel
der P-Bilder unterworfen sind. Der in dem Gebiet 1354 gespeicherte
Makroblocktyp enthält
Information, ob oder nicht der Makroblock dem Intrarahmen-/Intrafeldvorhersagecodieren
unterworfen wird, ob oder nicht der gleiche der Bewegungskompensation
unterworfen wird und ähnliches.
-
Das
Bewegungsvektorgebiet 1356 speichert Bewegungsvektoren
in dem Fall der bewegungskompensierten Vorhersage. In dem Fall von
I-Bildern werden keine Bewegungsvektoren in dem Bewegungsvektorgebiet 1356 gespeichert.
In Bezug auf P-Bilder können
anderer seits Bewegungsvektoren entlang eines Vorhersagesystemes
(ungerade und gerade Felder (obere und untere Felder) in dem Fall
eines Rahmenvorhersagecodiersystems) verwendet werden. Ebenfalls
bezüglich
von B-Bildern variiert die Zahl von verwendeten Bewegungsvektoren
gemäß dem Vorhersagesystem.
Daher unterscheidet sich die Bitbreite des Bewegungsvektorsspeichergebietes 1356 für unterschiedliche
Segmente. Daher ist ein Block, für
den die Information, die in dem CBP-Gebiet 1358 gespeichert
ist, den Einschluß von
keinen DCT-Koeffizientendaten bezeichnet, in der Datenübertragung abwesend.
-
Die
in den entsprechenden Gebieten 1352, 1354, 1356 und 1358 des
Makroblockkopfes 1350 enthaltene Information wird vollständig durch
Codewörter
variabler Länge
(variable Längensymbole) ausgedrückt. Daher
variiert die Zeit, die zum gesamten Analysieren der Information
des Makroblockkopfes 1350 benötigt wird, gemäß den Attributen
des Makroblockes (das Verfahren der Verarbeitung, die Zahl der Bewegungsvektoren
usw.).
-
Es
ist möglich
anzugeben, welche Verarbeitung für
den Makroblock ausgeführt
wird, der den Makroblockkopf 1350 folgt, in dem die Kopfinformation analysiert
wird. Allgemein wird die Analyse der Information des Makroblockkopfes 1350 in
Synchronisation mit dem MB-Synchronisierungssignal (MBSYNC) gestartet,
wie in 36 gezeigt ist, so daß Decodieren
der Makroblockdaten nur ausgeführt
wird, nachdem die Information des Makroblockkopfes 1350 insgesamt
analysiert ist. Ein Codedecodierteil des variablen Längendecoders 1212,
des inversen Quantisierers 1214, des Abtastkonverters 1216,
des inversen diskreten Cosinuskonverters 1218 und des Pixelrekonfigurators 1220,
die in 33 gezeigt sind, wird in Betriebsstoppzustände gehalten,
nachdem das MB-Synchronisierungssignal
(MBSYNC) geltend gemacht wird, bis die Information des Makroblockkopfes 1350 gesamt
analysiert ist, und diese Betriebsprozessoren werden in die Betriebszustände nur dann
gebracht, nachdem die Makroblockkopfinformation vollständig analysiert
ist. 39 stellt solch einen Zustand
dar, das Köpfe
der Makroblöcke MB#A,
MB#B und MB#C vollständig
zu Zeiten Ta, Tb bzw. Tc vollständig
analysiert sind, und dann werden zum Beispiel die Blockdaten decodiert.
-
Wenn
daher eine lange Zeit für
die Kopfanalyse des zum Beispiel Makroblockes MB#C benötigt wird,
werden die Betriebsstoppzeiten der Betriebsprozessoren, die dem
variablen Längencodedecodierer
folgen, so vergrößert, daß die Benutzungseffektivität der Betriebsprozessoren
verringert wird, und die Bilddaten können nicht mit hoher Geschwindigkeit
decodiert werden. Zum Verhindern solcher Verringerung der Benutzungseffektivität der Betriebsprozessoren
kann die Betriebsverarbeitung denkbar in einer Pipelineweise ausgeführt werden.
-
40 stellt schematisch eine Pipeline dar, die durch
entsprechende Stufen von Betriebsprozessoren von einem inversen
Quantisierer bis zu einem Pixelrekonfigurator definiert sind. Bei
dem in 40 gezeigten Aufbau werden
decodierte Daten variabler Länge
mit einem analysierten Kopf in der Pipeline bei jeder Geltendmachung
des MB-Synchronisierungssignales MBSYNC verteilt. Stufen inverser
Quantisierung, Abtastkonvertierung, inverser DCT und Pixeldecodierung
in den Pipelinestufen verarbeiten die gelieferten Daten in einem
Pipelinemodus.
-
Wenn
die Kopfanalyse und die variable Längendecodierung des Segmentes
(des Makroblockkopfes und des Makroblockes) MB#A beendet sind und
ein nächstes
MB-Synchronisierungssignal MBSYNC geltend gemacht wird, werden die
entsprechenden Blockdaten des Makroblockes MB#A in die Pipeline
verteilt und aufeinander folgend verarbeitet.
-
Wenn
eine lange Zeit für
die Kopfanalyse des nächsten
Segmentes MB#B benötigt
wird, sind die Daten des Makroblockes MB#B noch nicht in die. Pipeline
bei der Beendigung der Datenverarbeitung der entsprechenden Blöcke des
Makroblockes MB#A eingeführt.
somit wird ein Leerraum in den Pipelinestufen verursacht, und die
Pipelinebenutzungseffektivität
wird verringert.
-
Wenn
die Kopfanalyse und die variable Längendekodierung des Segmentes
MB#B beendet sind, werden die Daten der variablen längendekodierten
Wörter
des Makroblockes MB#B in die Pipelinestufen gemäß der Geltendmachung des nächsten MB-Synchronisierungssignales
MBSYNC verteilt.
-
Wenn
die Kopfanalyse des nächsten
Segmentes MB#C in einer kurzen Zeit beendet ist und das variable
Längendekodierung
für die
Daten der entsprechenden Blöcke
des Makroblockes MB#C ebenfalls schnell entsprechend beendet ist,
wird ein nächstes
MB-Synchronisierungssignal
MBSYNC geltend gemacht auf die Beendigung folgend der variablen
Längendekodierung
des Makroblockes MB#C. Wenn die Datenverarbeitung der entsprechenden Blöcke des
Makroblockes MB#B noch nicht in der inversen Quantisierungsstufe
der Pipeline zu dieser Zeit beendet ist, werden Blockdaten des nächsten Makroblockes
MB#C während
der Datenverarbeitung der entsprechenden Blöcke des Makroblockes MB#B verteilt.
Somit werden die Daten der entsprechenden Blöcke der Makroblöcke MB#B
und MB#C gemischt verarbeitet, und die Datenverarbeitung (Expansionsverarbeitung)
kann nicht richtig ausgeführt werden,
sondern bricht zusammen. Somit kann eine große Pipeline nicht eingeführt werden,
und die Verbesserung der Benutzungseffektivität der Betriebsprozessoren durch
die Benutzung der Pipeline ist begrenzt.
-
Bei
einer Bilddekodierschaltung zum Verarbeiten von Bewegbilddaten,
insbesondere Daten von Bildern mit einer großen Schirmgröße des HDTV (High
Definition Television – Hochauflösendes Fernsehen)
oder ähnliches,
ist es notwendig, eine große Menge
von Daten mit einer hohen Geschwindigkeit zu verarbeiten (die Frequenz
eines Rahmens oder eines Feldes, d. h. der Zyklus dieses Bildsynchronisierungssignales
wird durch die Anzeigengeschwindigkeit der Bilddaten nach der Expansion
entschieden), und der Betrag der Tätigkeiten der Betriebsprozessoren
(wie inverser DCT Konverter) bei der Expansionsprozedur wird extrem
groß.
Damit die Reduktion der Betriebseffektivität der Betriebsprozessoren kompensiert
wird und ein Hochgeschwindigkeitsdatenverarbeitung implementiert
wird, ist es daher notwendig, die Betriebsgeschwindigkeiten der
entsprechenden Betriebsprozessoren zu erhöhen (Zunahme der Frequenz der
Taktsignale, die die Betriebsverarbeitungsgeschwindigkeiten bestimmen).
Somit wird die Zahl der Ein- und
Aus-Zeiten der Elemente, die die Betriebsprozessoren bilden, und
die Zahl der Lade- und Entladezeiten der Signalleitungen pro Zeiteinheit
vergrößert, was
zu einer Zunahme des Stromverbrauches führt.
-
Als
ein anderes Verfahren ist es ebenfalls denkbar, eine Mehrzahl von
Betriebsprozessoren parallel zueinander vorzusehen und dieselben
simultan parallel zueinander anzutreiben, wodurch eine Reduktion
der Benutzungseffektivität
kompensiert wird. In diesem Fall wird jedoch die Elementzahl nachteilhafterweise
vergrößert, so
daß die
Vorrichtungsabmessung vergrößert wird.
-
Wenn
eine Unterbrechungsverarbeitung von einer externen Steuereinheit
während
der Bildausdehnungsprozedur zum Beispiel verursacht wird, ist es
notwendig, die Bilddekodierschaltung nach der Beendigung der Unterbrechung
zu initialisieren. Wenn die Verarbeitung von dem Unterbrechungszustand
wieder gestartet wird, wird die Anzeige jedoch aus einer Zwischenstufe
des Bildes durchgeführt.
In diesem Fall kann es unmöglich
sein, die Verarbeitung des folgenden Bildes mit der Anzeige auf
der Anzeigeneinheit zu synchronisieren. Wenn eine erste Bildanzeige
unmittelbar nach der Initialisierung in Synchronisation mit dem
Bildsynchronisierungssignal wie ein vertikales Synchronisierungssignal
zum Beispiel ausgeführt
wird, werden Bilder außer
Synchronisation danach angezeigt (Grenzen zwischen den Bildern werden
auf dem Schirm angezeigt). In dem MPEG-Standard ist ein Sequenzkopf auf
dem Kopf einer jeden GOP (Gruppe von Bildern) angeordnet, so daß eine Reproduktion
von einer willkürlichen GOP
ermöglicht
wird. Es ist jedoch keine Verarbeitung, die bei der Wiedereinstellung
(Initialisierung der Bildexpansionsprozedur auszuführen ist,
erwähnt. Weiterhin
erwähnt
der Stand der Technik keine solche Tätigkeit der Initialisierung
der Bildexpansionsverarbeitung.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, eine Bilddecodierschaltung
vorzusehen, die effektiv Expansion von Bilddaten ausführen kann.
-
Es
ist eine andere Aufgabe der vorliegenden Erfindung, eine Bilddecodierschaltung
mit einer effektiv tätigen
Pipelinestufe vorzusehen.
-
Es
ist eine noch andere Aufgabe der vorliegenden Erfindung, eine Bilddecodierschaltung
vorzusehen, die hervorragend in der Benutzungseffektivität von Betriebsprozessoren
ist.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, eine Bilddecodierschaltung
vorzusehen, die zuverlässig
eine Verarbeitung von einem ersten Makroblock eines Bildes bei dem
Wiedereinsetzen (Initialisierung und Resynchronisation) ohne Verringerung
der Verarbeitungseffektivität
durchführen kann.
-
Diese
Aufgaben werden gelöst
durch eine Bilddecodierschaltung nach Anspruch 1.
-
Eine
weitere Ausgestaltung ist in Anspruch 2 beschrieben.
-
Bei
der Bilddecodierschaltung wird der Kopf analysiert auf das Decodieren
des Datenblockes folgend, und das Starten der Daten verarbeitung
wird angeordnet, nachdem der Kopf vollständig analysiert ist. Ein Verarbeitungsabschnitt
wird bei der Verarbeitung des Datenblockes gestartet und bei der
Analyse des Kopfes beendet. Wenn der Datenverarbeitungsstart bezeichnet
ist, führt
der Datenprozessor unmittelbar das Verarbeiten aus. Daher wird die
Stoppdauer des Betriebsprozessors verringert, und seine Benutzungseffektivität ist verbessert.
Weiter wird die Ruhezeit des Betriebsprozessors verringert, wodurch die
Zeitdauer eines Verarbeitungsabschnittes verringert werden kann
zum Implementieren einer Hochgeschwindigkeitsverarbeitung.
-
Ein
Startcode mit einem vorgeschriebenen Muster wird erfaßt, wenn
ein Fehler in einer Kopfanalyse oder dem variablen Längendecodierprozeß verursacht
ist, und der Kopf eines Segmentes, das dem Startcode folgt, wird
analysiert, und der Start der Verarbeitung eines Datenblockes, der
dem analysierten Kopf folgt, wird verzögert, bis eine vorgeschriebene Bedingung
erfüllt
ist nach der Beendigung der Analyse. Verarbeiten wird gestartet
von einem vorgeschriebenen Segment selbst in dem Auftreten eines Fehlers,
und der Verarbeitungsabschnitt wird bei der Verarbeitung des Datenblockes
bei dem Wiederstarten der Verarbeitung gestartet, wodurch eine Verringerung
der Benutzungseffektivität
des Betriebsprozessors ebenfalls bei dem Starten des Verarbeitens nach
Erholung von dem Fehler unterdrückt
werden kann. Weiter ist es möglich,
solche Regularitäten
aufrechtzuerhalten, daß der
Verarbeitungsabschnitt mit dem Decodieren des Datenblockes gestartet
wird.
-
Ein
Startcode mit einem vorgeschriebenen Muster wird nach der Anforderung
zum Zurücksetzen erfaßt, und
ein Kopf eines Segmentes, das dem Startcode folgt, wird analysiert
und die folgende Verarbeitung wird gestoppt, bis die vorgeschriebene
Bedingung hergestellt ist. Die Verarbeitung kann zuverlässig von
einem Makroblock eines Segmentes einer gewünschten Position gestartet
werden auch bei Anforderung zum Zurücksetzen.
-
Die
vorangehenden und anderen Aufgaben, Merkmale, Aspekte und Vorteile
der vorliegenden Erfindung werden ersichtlicher aus der folgenden
detaillierten Beschreibung der vorliegende Erfindung, wenn sie i
Zusammenhang mit den begleitenden Zeichnungen genommen wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 stellt
schematisch einen Betrieb in einem Verarbeitungsabschnitt einer
Bilddecodierschaltung gemäß der vorliegenden
Erfindung dar;
-
2A und 2B stellen den Aufbau eines Verarbeitungsabschnittes
(Einheit) der Bilddecodierschaltung gemäß der vorliegenden Erfindung
und einen Effekt der Pipelineanordnung dar;
-
3 stellt
die Tätigkeiten
eines Verarbeitungsabschnittes der Bilddecodierschaltung und eines
DRAM-Port gemäß der vorliegenden
Erfindung dar;
-
4 stellt
andere Betriebsabläufe
der Bilddecodierschaltung und des DRAM-Port gemäß der vorliegenden Erfindung
dar;
-
5 stellt
Aufbauten von Eingangs- und Ausgangssignalen in und aus einem inversen
Quantisierer dar, der in der Bilddecodierschaltung gemäß der vorliegenden
Erfindung verwendet wird;
-
6 stellt
die Beziehungen zwischen den Eingangs- und Ausgangssignalen des
in 5 gezeigten inversen Quantisierers dar;
-
7 stellt
einen Pipelineaufbau von Betriebsprozessoren der Bilddecodierschaltung
gemäß der vorliegenden
Erfindung und eine Verarbeitungssequenz für Blockdaten dar;
-
8 ist
ein Flußdiagramm,
das einen Betrieb zum Einstellen der Zeitdauer eines Verarbeitungsabschnittes
in der Bilddecodierschaltung gemäß der vorliegenden
Erfindung darstellt;
-
9 stellt
eine andere Betriebssequenz zum Entscheiden eines Verarbeitungsabschnittes
in der Bilddecodierschaltung gemäß der vorliegenden Erfindung
dar;
-
10 ist
ein Flußdiagramm,
das einen Betrieb in einem Fehlerzustand in der Bilddecodierschaltung
gemäß der vorliegenden
Erfindung darstellt;
-
11 stellt die Aufbauten eines Kopfes eines
Segmentes und eines Startcodes, der dieselben begleitet, die bei
der vorliegenden Erfindung verwendet werden, dar;
-
12 stellt
den Aufbau eines Teiles der Bilddecodierschaltung gemäß der vorliegenden
Erfindung dar, der sich auf den Betrieb in einem Fehlerzustand bezieht;
-
13 stellt
eine Betriebssequenz des in 12 gezeigten
Aufbaues in einem Fehlerzustand dar;
-
14 stellt
eine andere Betriebssequenz des in 12 gezeigten
Aufbaues in einem Fehlerzustand dar;
-
15 stellt
den inneren Aufbau eines in 12 gezeigten
variablen Längendecoders
dar;
-
16 ist
ein Blockschaltbild, das den internen Aufbau einer in 12 gezeigten
Steuereinheit zeigt;
-
17 stellt
den Aufbau eines Pixelrekonfigurators in der Bilddecodierschaltung
gemäß der vorliegenden
Erfindung dar;
-
18 stellt
eine Betriebssequenz in einem Fehlerzustand in der Bilddecodierschaltung
gemäß der vorliegenden
Erfindung dar;
-
19 stellt
eine Fehlerverbergungsverarbeitung in der Bilddecodierschaltung
gemäß der vorliegenden
Erfindung dar;
-
20 stellt
einen anderen Aufbau des Pixelrekonfigurators in der Bilddecodierschaltung
gemäß der vorliegenden
Erfindung dar;
-
21 stellt
den Aufbau eines in 20 gezeigten Abtastkonverters
dar;
-
22 stellt
eine noch andere Betriebssequenz in einem Fehlerzustand in der Bilddecodierschaltung
gemäß der vorliegenden
Erfindung dar;
-
23 stellt eine Fehlerverbergungsverarbeitung in
der in 22 gezeigten Betriebssequenz dar;
-
24 ist ein Flußdiagramm, das einen Betrieb
bei dem Zurücksetzen
(Neustarten) der Bilddecodierschaltung gemäß der vorliegenden Erfindung darstellt;
-
25 ist ein Flußdiagramm, das einen Betrieb
bei dem Zurücksetzen
(Initialisieren) der Bilddecodierschaltung gemäß der vorliegenden Erfindung darstellt;
-
26 stellt eine beispielhafte Betriebssequenz bei
dem Zurücksetzen
der Bilddecodierschaltung gemäß der vorliegenden
Erfindung dar;
-
27 stellt einen Aufbau zum Erzeugen eines variablen
Längencodes
dar, den die vorliegende Erfindung verarbeitet;
-
28 stellte eine Bildanordnung in einer GOP-Schicht
dar, die in einer Bilddecodierschaltung benutzt wird, auf die die
vorliegende Erfindung angewendet wird;
-
29 stellt den Aufbau von Bilddaten dar, auf die
die vorliegende Erfindung angewendet wird;
-
30 stellte die Syntax von Bilddaten dar, auf die
die vorliegende Erfindung angewendet wird;
-
31 stellt eine in 30 gezeigte
Scheibenschicht dar;
-
32 stellt den Aufbau einer in 30 gezeigten Blockschicht dar;
-
33 ist ein Blockschaltbild, das schematisch den
Aufbau einer Bilddecodierschaltung zeigt, auf die die vorliegende
Erfindung gerichtet ist;
-
34 stellt den Aufbau von Speichergebieten eines
in 33 gezeigten externen Speichers dar;
-
35 stellt einen Verarbeitungsabschnitt einer herkömmlichen
Bilddecodierschaltung dar;
-
36 stellt einen Betrieb der herkömmlichen
Bilddecodierschaltung dar;
-
37 stellt einen Aufbau eines Startcodes dar;
-
38 stellt den Aufbau eines Kopfteiles einer Makroblockschicht
dar;
-
39 stellt ein Problem bei der herkömmlichen
Bilddecodierschaltung dar; und
-
40 stellt ein anderes Problem bei der herkömmlichen
Bilddecodierschaltung dar.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
1 stellt
einen Betrieb in einem Verarbeitungsabschnitt PS1 eines Decodierteiles
variabler Länge
in einer Bilddecodierschaltung gemäß der vorliegenden Erfindung
dar. Der Verarbeitungsabschnitt PS1 eines Decodierteiles variabler
Länge (hier
im folgenden als Decoder (VLD) bezeichnet) enthält eine Decodierperiode PS2
zum Decodieren von Daten von entsprechenden Blöcken eines Makroblockes, und
eine Periode PS3, die der Decodierperiode PS2 folgt, zum Analysieren
von Kopfinformation. Die Decodierperiode PS2 wird als Reaktion auf
das Geltendmachen eines MB-Synchronisierungssignales MBSYNC
gestartet zum Decodieren der Blockdaten, die aus einer Symbolgruppe
variabler Länge
bestehen, auf der Grundlage eines Quantisierungsindexes. In der
Kopfanalyseperiode PS3 wird Information eines Kopfteiles (Sequenz
und Bildköpfe
können
zusätzlich
zu einem Makroblockkopf enthalten sei) für einen nächsten Verarbeitungsabschnitt
vollständig analysiert.
Nach Beendigung der Analyseperiode PS3, d. h. nach Beendigung einer
Analyse aller Information des nächsten
Makroblockkopfes, wird das Starten des nächsten Verarbeitungsabschnittes
PS1, d. h. Decodierverarbeitung von Daten von Blöcken des nächsten Makroblockes verzögert, bis
vorgeschriebene Bedingungen hergestellt sind. Es wird Bezug genommen
auf 1, die Blockdaten des nächsten Makroblockes werden
auf die Beendigung der Analyseperiode PS3 decodiert. Die Zeitdauer
der Analyseperiode PS3 variiert jedoch in Abhängigkeit von der Kopfinformation.
Die Decodierverarbeitung von codierten Blockdaten (die Daten der
entsprechenden Blöcke
des Makroblockes) ist in einer festen konstanten Zeit beendet. Die
Daten der entsprechenden Blöcke
des Makroblockes sind mit variabler Länge codiert mit verschiedenen
Codelängen.
Wenn die Codes variabler Länge
decodiert werden mit einer Rate von 1 Symbol/1 Taktzyklus, weist
zum Beispiel jeder Block des Makroblockes 8 × 8 Pixel auf, und die maximale
Zahl der Symbole pro Block ist 64. Wenn die Zeitdauer der Decodierperiode
PS2 auf die oben erwähnte
Weise eingestellt wird, kann daher ei ne feste Zeitlänge erzielt
werden. Wenn die variable Längencodierung
mit der Rate von 1 Symbol/1 Taktzyklus ausgeführt wird, werden Lauflängendaten
decodiert und DCT-Koeffizienten der entsprechenden Blöcke werden
aufeinander folgend entlang der decodierten Lauflängeninformation
erhalten. In diesem Fall kann daher der Maximalwert der Zeit, die
für die Lauflängendecodierung
benötigt
wird, zuvor bestimmt werden, und wenn die benötigte Zeit für solch eine
Lauflängendecodierung
zuvor auf einen konstanten Wert eingestellt ist und wenn DCT-Koeffizientendaten
der Blöcke
mit einer Rate von 1 Pixel pro Takt aus der decodierten Lauflängeninformation
erhalten wird, ist die Zeitdauer auch in diesem Fall fixiert. Wenn
ebenfalls die Zeit, die für
die Lauflängendecodierung
benötigt
wird, variiert wird und folglich die Zeitdauer der Decodierperiode
PS2 fluktuiert, kann die Zeitdauer, die zum Decodieren der Blockdaten
benötigt
wird, innerhalb einer konstanten Zeit unterdrückt werden (ungefähr die maximale
Decodierzeit). Der Decoder (VLD) gibt DCT-Koeffizienten (Quantisierungsindex)
fester Längen
aus.
-
Gemäß dem Aufbau
der in 1 gezeigten Verarbeitungsperiode werden die folgenden
Vorteile erzielt: die Daten der Blöcke des Makroblockes werden
in Synchronisation mit dem MB-Synchronisierungssignal
MBSYNC decodiert. Daher kann jedes in der Bilddecodierschaltung
enthaltenes Berechnungselement seinen Betrieb nach Beendigung der
Kopfanalyse ohne Wartezeit starten. Daher können ein inverser Quantisierer,
ein variabler Längendecodierer, ein
Abtastkonverter, ein inverser diskreter Cosinuskonverter und ein
Pixelrekonfigurator Verarbeitung starten ohne Verzögerung (insbesondere,
wenn die Elemente eine Pipeline aufbauen), wodurch die Benutzungseffektivität verschiedener
Berechnungselemente der Bilddecodierschaltung verbessert werden kann.
-
Weiter
können
die Zeitdauern der Decodierperiode PS2 und der Analyseperiode PS3
bemerkenswert durch Treiben verschiedener Be triebsprozessoren verringert
werden, die in der Bilddecodierschaltung enthalten sind, auf Pipelineweise,
wie später
beschrieben wird.
-
2A und 2B stellen speziell den Aufbau eines jeden
Verarbeitungsabschnittes dar. Es wird Bezug genommen auf 2A,
die Decodierperiode PS2 eines Verarbeitungsabschnittes enthält Decodierverarbeitung
variabler Länge
(VLD) zum Decodieren mit variabler Länge von variablen Längencodes
und Erzeugen quantisierter DCT-Koeffizienten fester Länge, inverse
Quantisierungsverarbeitung (IQ) der mit variabler Länge decodierten
DCT-Koeffizientendaten,
Abtastkonvertierungsverarbeitung des Ausführens der Konvertierung der
Abtastordnung der invers quantisierten DCT-Koeffizienten, inverse
diskrete Cosinustransformationsverarbeitung (IDCT) der abtastkonvertierten
Daten und Pixelrestaurationsverarbeitung (DPCM: Differentielle PCM)
zum Wiederherstellen der ursprünglichen
Pixeldaten aus den Pixeldaten nach der inversen diskreten Cosinustransformation.
Es wird Bezug genommen auf 2A, die
Zeitdauer einer Decodierperiode in dem Verarbeitungsabschnitt ist
die gesamte Summe der Zeiten, die für die entsprechenden Verarbeitungstätigkeiten
benötigt
werden.
-
2B stellt einen beispielhaften Aufbau des
Falles der Ausführung
der entsprechenden Verarbeitungstätigkeiten, die in der Decodierperiode
2 enthalten sind auf Pipelineweise dar. Wenn die Decodierverarbeitung
variabler Länge
(VLD) beendet ist, kann die Kopfinformation in dem variablen Längendecodierer
analysiert werden. Daher kann die Kopfinformation eines nächsten Segmentes
parallel zu der inversen Quantisierungsverarbeitung (IQ), der Abtastkonvertierungsverarbeitung
(Schreiben/Lesen der Daten in einen Pufferspeicher begleitet von Adreßkonvertierung),
der inversen diskreten Cosinustransformationsverarbeitung (IDCT)
und der Pixelrestaurationsverarbeitung (DPCM). Somit kann die Reduktion
der Zeitdauern der Decodierperiode PS2 und der Analyseperiode PS3
eingeführt
durch Ausführen
der Verarbeitung in dem Pipe linemodus aufgrund der parallelen Verarbeitung
der Kopfinformationsanalyse und der Decodierung der Blockdaten durch
die Pipeline, die Zeitdauer für
einen Verarbeitungsabschnitt kann deutlich verringert werden, und eine
Hochgeschwindigkeitsarithmetikverarbeitung (Expansion) kann ausgeführt werden.
Der Aufbau der Pipeline wird später
im einzelnen beschrieben.
-
Der
externe Aufbau der Bilddecodierschaltung gemäß der vorliegenden Erfindung
ist schematisch identisch mit dem in 33 gezeigten
Aufbau. Die inneren Aufbauten des variablen Längendecodierers 1212 und
der Steuerschaltung 1226 unterscheiden sich. Diese Aufbauten
werden später
im einzelnen beschrieben.
-
3 stellt
Tätigkeiten
des Decodierer (Bilddecodierschaltung) und einen Port einer externen Speichervorrichtung
(DRAM) dar. Es wird Bezug genommen auf 3, Decodieren
von Blockdaten des Segmentes wird als Reaktion auf das Geltendmachen
des MB-Synchronisierungssignales MBSYNC in der Bilddecodierschaltung
(Decodierer) gestartet. Wenn das Decodieren der Blockdaten beendet
ist, wird die Kopfinformation des nächsten Segmentes analysiert.
Eine Verarbeitungseinheitszeitdauer wird gerade beendet, wenn die
Analyse der Kopfinformation beendet ist, und das Decodieren der
Blockdaten des Makroblockes des nächsten Segmentes wird gestartet.
-
In
Bezug auf den DRAM werden andererseits Pixeldaten, die in der vorangehenden
Verarbeitungseinheitszeitperiode (Abschnitt) decodiert sind, zuerst
als Reaktion auf das Geltendmachen des MB-Synchronisierungssignales MBSYNC geschrieben.
Dann wird ein extern gelieferter Bitstrom in einer vorbestimmten
Zeitdauer durch die in 32 gezeigte
FIFO-Schnittstelle 1210 geschrieben. Wenn das Schreiben
des Bitstromes in dem DRAM-Port (Schreiben in einen Ratenpuffer)
beendet ist, werden die Bilddaten für die Anzeige dann ausgelesen. Wenn
das Lesen der Bilddaten für
die Anzeige (Pixeldaten des Makroblockes zum Beispiel) beendet ist, werden
Vorhersagebilddaten, die für
die Restauration der codierten Vorhersagepixeldaten verwendet werden,
dann ausgelesen. Bei solchem Lesen der Vorhersagebilddaten werden
Bilddaten von zwei Bildern, die vorangehend und nachfolgend in der
Zeit sind, in dem Fall der Interpolationsvorhersage ausgelesen,
zum Beispiel in dem Fall von B-Bildern. Daher variiert das Lesen
der Vorhersagebilddaten in Abhängigkeit
des Codiermodus der zu decodierenden Blockdaten.
-
Wenn
das Lesen der Vorhersagebilddaten beendet ist, wird der zu verarbeitende
Bitstrom dann ausgelesen (lesen des Ratenpuffers). Bei dem Lesen des
Ratenpuffers wird die Menge der Lesedaten zuvor eingestellt. Es
ist notwendig, daß der
für die
Analyse der Kopfinformation in der Verarbeitungseinheit verwendete
Bitstrom, die das Lesen des Ratenpuffers ausführt, und die Blockdaten des
Segmentes, die in der nächsten
Verarbeitungseinheit (Abschnitt) decodiert werden, in einem Puffer
vorbereitet werden, der in dem variablen Längendecodierer enthalten ist, was
später
beschrieben wird. Es ist möglich
speichern (vorauslesen) zu garantieren des Bitstromes, der für die Kopfanalyse
in dem entsprechenden Verarbeitungsabschnitt verwendet wird, und
der Blockdaten, die in dem nächsten
Verarbeitungsabschnitt verwendet werden, in einem Pufferspeicher,
der in dem variablen Längendecodierer
enthalten ist, durch Lesen des Bitstromes von dem Ratenpuffer in
jedem Verarbeitungs-(Einheit)Abschnitt. Hier entspricht eine Verarbeitungseinheit
einem Verarbeitungsabschnitt.
-
Nach
dem Lesen des Ratenpuffers wird das DRAM-Auffrischen ausgeführt, und
das Auffrischen der Speicherdaten, die in dem DRAM gespeichert sind,
der eine externe Speichervorrichtung ist, wird ausgeführt. Bei
dem Betrieb des DRAM-Ports werden die zuvor erwähnten Tätigkeiten aufeinander folgend
in einer einzelnen Verarbeitungseinheitszeit ausgeführt. Bei
der in 3 gezeigten Betriebssequenz wird kein Zugriff
gemacht, bis der nächste
Verarbeitungsabschnitt nach der Beendigung der DRAM- Auffrischtätigkeit
gestartet wird, und der DRAM-Port tritt in einen leeren (Warte-)Zustand
ein. Das DRAM-Auffrischen ist dargestellt, daß es während mindestens einem Verarbeitungsabschnitt
ausgeführt
wird. Dieses DRAM-Auffrischen kann jedoch zu einer richtigen Zeit
in dem Abschnitt einer Verarbeitungseinheit ausgeführt werden.
-
4 stellt
eine andere Sequenz von Tätigkeiten
der Bilddecodierschaltung und des DRAM-Port in einem Verarbeitungsabschnitt
dar. Es wird Bezug genommen auf 4, Decodieren
der Blockdaten (Daten der entsprechenden Blöcke des Makroblockes) wird
in der Bilddecodierschaltung (Decodierer) in Synchronisation mit
dem Geltendmachen des MB-Synchronisierungssignal MBSYNC ähnlich zu
der in 3 gezeigten Sequenz ausgeführt, und die Kopfinformation
des Textsegmentes wird ausgeführt
nach Beendigung des Decodierens. Bei der in 4 gezeigten
Sequenz wird das Starten der Decodierverarbeitung der Blockdaten
des nächsten
Segmentes verzögert
nach der Beendigung der Analyse der Kopfinformation.
-
Bei
dem DRAM-Port wird Schreiben der decodierten Daten, Schreiben in
den Ratenpuffer, Lesen von Bilddaten zur Anzeige, Lesen von Vorhersagebilddaten
und Lesen des Ratenpuffers aufeinander folgend in Synchronisation
mit der Geltendmachung des MB-Synchronisierungssignales
MBSYNC ausgeführt.
Das DRAM-Auffrischen
wird vor dem Lesen des Ratenpuffers ausgeführt. Dieses DRAM-Auffrischen
kann in einem Verarbeitungsabschnitt zu einer beliebigen Zeit ausgeführt werden,
wie oben beschrieben wurde. Ein Verarbeitungsabschnitt wird durch
Beenden des Lesens des Ratenpuffers beendet. Als Reaktion auf die
Beendigung des Verarbeitungsabschnittes wird das MB-Synchronisierungssignal
MBSYNC zum Anordnen des Startens des Decodierens der Blockdaten
des nächsten
Segmentes geltend gemacht. Eine Leerperiode zwischen der Analyse
der Kopfinformation und des Startens des Decodierens der nächsten Blockdaten
wird später
im einzelnen beschrieben.
-
Das
Schreiben der decodierten Daten, das Schreiben in den Ratenpuffer,
das Lesen der Bilddaten zur Anzeige, das Lesen der Vorhersagebilddaten und
das Lesen des Ratenpuffers werden in Bezug auf den DRAM-Port in
der vorgeschriebenen Reihenfolge in diesem Verarbeitungsabschnitt
ausgeführt, wodurch
es nicht notwendig ist, die Priorität der Zugriffe auf den DRAM
zu unterscheiden oder einen Busausgleicher zum Einstellen der Zugriffe
zu dem DRAM vorzusehen, und der Vorrichtungsaufbau ist vereinfacht.
-
Weiter
ist es möglich
für die
Verarbeitungstätigkeiten,
daß sie
an den Pipelineaufbau der Betriebsprozessoren der Bildverarbeitungsschaltung
angepaßt
werden, wie später
im einzelnen beschrieben wird, in dem die decodierten Daten zuerst
in den Verarbeitungsabschnitt geschrieben werden. Zusätzlich ist
es möglich,
Bilddaten vorzubereiten, die für
das darauf folgend ausgeführte
Lesen der Bilddaten zur Anzeige in dem DRAM vorzubereiten, in dem
die decodierten Daten zuvor eingeschrieben werden. Die decodierten
Daten werden nämlich
sofort in dem Fall B-Bildern
(B-Bilder werden nicht als Vorhersagebilder verwendet) anzuzeigen.
Es ist möglich,
den Bitstrom in den Ratenpuffer ohne Änderung des Betriebsmodus (Schreibmodus/Lesemodus)
des DRAM und ohne Verzögerung
des extern gelieferten Bitstromes zu schreiben, indem der Bitstrom
in den Ratenpuffer auf das Schreiben der decodierten Daten folgend
geschrieben wird. Es ist nicht notwendig, den Betrieb der Anzeigensteuereinheit
anzuhalten, der getrennt im äußeren vorgesehen
ist, da die Bilddaten für
die Anzeige vor dem Lesen der Vorhersagebilddaten gelesen werden.
Die Zahl der Vorhersagebilder, die zu lesen sind, variieren nämlich in
Abhängigkeit von
dem Verarbeitungsverfahren (Vorhersagecodierung) für das Segment
bei dem Lesen der Vorhersagebilddaten. Daher variiert die Zeit,
die zum Beenden des Lesens der Vorhersagebilddaten notwendig ist, mit
der Art des Bildes. Somit ist es möglich, die Anzeigebilddaten
an die Anzeigesteuereinheit im wesentlichen zu der gleichen Zeit
in jedem entsprechenden Verar beitungsabschnitt zu liefern durch
Lesen der Bilddaten für
die Anzeige vor dem Lesen der Vorhersagebilddaten mit einem unterschiedlichen
Zeitpunkt der Beendigung eines Verarbeitungsabschnittes, und die
Benutzungseffektivität
der Anzeigensteuereinheit wird nicht beschädigt.
-
Der
Bitstrom wird aus dem Ratenpuffer an dem letzten Verarbeitungsabschnitt
ohne Problem gelesen, da nur die Lieferung an den variablen Längendecodierer
(1212: siehe 33) eines Bitstromes nötig ist,
der für
die Blockdatendecodierverarbeitung und die Kopfanalyse in dem nächsten Abschnitt
benötigt
wird. Die Vorhersagebilddaten werden vor dem Lesen des Ratenpuffers
gelesen, so daß die
Vorhersagebilddaten zuverlässig
in den Pufferspeicher geladen werden können, der in dem Pixelrekonfigurator
der Bilddecodierschaltung vorgesehen ist, und das arithmetische
Verarbeiten des Bildens der Vorhersagebilder kann zuverlässig darauf folgend
in Synchronisation mit dem Starten des nächsten Verarbeitungsabschnittes
ausgeführt
werden.
-
Der
Zugriff zu dem DRAM-Port wird in Synchronisation mit dem MB-Synchronisierungssignal MBSYNC
gestartet, wodurch die Lesezeit für die Vorhersagebilddaten zuvor
vorhergesagt werden kann, und die Bussteuerung wird vereinfacht
(Zugriffssteuerung auf den DRAM wird durch die in 32 gezeigte
Steuerschaltung 1226 ausgeführt, deren Aufbau später im einzelnen
beschrieben wird). Es ist nämlich
möglich,
den Typ des Makroblockes und seine Position auf dem Schirm zu erkennen
durch Analysieren der Kopfinformation zuvor. Der DRAM weist den
Aufbau eines Rahmenspeichers auf. Daher ist es möglich, zuvor die Änderung
von Zeilenadressen usw. bei dem Schreiben der decodierten Daten
und dem Lesen der Bilddaten zum Anzeigen vorherzusagen durch Analysieren
der Kopfinformation zuvor, wodurch die Zeiten, die für das Schreiben
der decodierten Daten und das Lesen der Bilddaten zur Anzeige benötigt werden,
als Reaktion vorhergesagt werden können, und die Lesezeit für die Vorhersagebilddaten
kann als Reaktion vorherge sagt werden. Somit kann die Steuerung
der in 32 gezeigten Speicherschnittstelle
und die Ladetätigkeit
der Vorhersagebilddaten in dem Pixelrekonfigurator ebenfalls willkürlich ausgeführt werden.
-
5 stellt
schematisch den Aufbau des inversen Quantisierers dar, der die Pipeline
in Einheiten von Taktzyklen darstellt. Dieser inverse Quantisierer 1214 empfängt quantisierte
DCT-Koeffizientendaten,
die aus Festlängendaten
mit variabler Längen
decodiert sind, durch einen Eingangsbus A101, während er ein Eingangssynchronisierungssignal empfängt, das
den Start eines jeden Blockes bezeichnet (jeder Block des Makroblockes),
durch eine Signalleitung A103, er führt die inverse Quantisierungsverarbeitung
in einem Pipelinemodus durch und gibt DCT-Koeffizientendaten von einem Ausgangsbus
A102 aus, während
ein Ausgangssynchronisierungssignal, das das Starten des Blockes
der Ausgangsdaten bezeichnet, durch eine Signalleitung A104 ausgegeben
wird.
-
Der
inverse Quantisierer 1214 führt eine arithmetische Verarbeitung
invers zu der Quantisierung auf den quantisierten DCT-Koeffizienten aus, die
in Festlängencodes
konvertiert sind unter Benutzung einer zuvor vorbereiteten Quantisierungstabelle (er
führt zum
Beispiel eine Multiplikation mit den entsprechenden Koeffizienten
der Quantisierungstabelle aus: wenn eine Division durch entsprechende
Koeffizienten der Quantisierungstabelle bei der Quantisierung durchgeführt wird).
Zu dieser Zeit wird die Multiplikationsverarbeitung in einer Pipelineweise ausgeführt. Allgemein
weist dieser inverse Quantisierer 1214 eine Pipeline mit
128 Extrastufen im Vergleich mit den VLD-, IDCT- und DPCM-Verarbeitungsstufen,
wie in 6 gezeigt ist. Wenn das Eingangssynchronisierungssignal
durch die Signalleitung A103 angelegt wird und die Daten aufeinander folgend
durch den Eingangsbus A101 geliefert werden, wie in 6 gezeigt
ist, werden daher invers quantisierte Daten nach einem Ablauf von
128 Zyklen ausgegeben. Die zu dem inversen Quantisierer 1214 gelieferten
Eingangsdaten werden durch den in 33 gezeigten
variablen Längendecodierer 1212 vorgesehen.
Bevor alle Ausgangsdaten, die an dem Ausgangsbus A102 von dem inversen
Quantisierer 1214 auftauchen, ausgegeben sind, oder bevor
dieselben zu einer inversen DCT-Einrichtung durch den Abtastkonverter
geliefert werden, wie in 2B gezeigt
ist, enden die Eingangsdaten vor mindestens 123 Zyklen. Während dieser
Dauer kann daher der variable Längendecodierer
für die
Kopfanalyse benutzt werden. Somit kann die Verarbeitung, die dem inversen
Quantisierer und der Kopfanalyse folgt, parallel zueinander ausgeführt werden
(siehe 2B).
-
7 stellt
einen anderen Pipelinemodus für die
Bilddecodierschaltung dar. In der in 7 gezeigten
Bilddecodierschaltung wird die Pipelineverarbeitung durch eine Pipeline
von vier Stufen in Synchronisation mit dem MB-Synchronisierungssignal
MBSYNC ausgeführt.
Es wird Bezug genommen auf 7, die erste
Pipelinestufe liest ein Vorhersagebild aus dem DRAM decodiert mit
variabler Länge
die DCT-Koeffizienten (Bildung aus Festlängen DCT-Koeffizientendaten)
und führt
inverse Quantisierungsverarbeitung aus. Bei dem Lesen der Vorhersagebilddaten
aus dem DRAM werden Bewegungsvektoren aus der Kopfinformation extrahiert,
die in einem vorhergehenden Verarbeitungsabschnitt analysiert sind,
so daß die
Vorhersagebilddaten aus dem DRAM gemäß den extrahierten Bewegungsvektoren gelesen
werden.
-
Die
zweite Pipelinestufe führt
Filterverarbeitung der Vorhersagebilddaten aus, die aus dem DRAM
gelesen sind. Bei der Filterverarbeitung der Vorhersagebilder werden
eine Mehrzahl von Vorhersagebildern in dem Fall einer Teilvorhersagegenauigkeit
synthetisiert (gemittelt) durch Interpolation. In dem Fall von B-Bildern der Interpolationsvorhersage werden
Bilddaten von zwei Bildern, die vorangehen und nachfolgen in der
Zeit miteinander synthetisiert (die Bilddaten werden mit Gewichtungen
gemäß den entsprechenden
Zeitabständen
synthetisiert). Somit werden Vorhersagebilddaten gebildet.
-
Die
dritte Pipelinestufe führt
inverse diskrete Cosinustransformationsverarbeitung (IDCT) und Vorhersagedifferenzcodedecodierverarbeitung
(DPCM-Decodierung) aus. Bei der IDCT-Verarbeitung wird eine inverse
diskrete Cosinustransformationsverarbeitung von DCT-Koeffizientendaten
ausgeführt,
die der inversen Quantisierungsverarbeitung (IQ) unterworfen sind.
Bei dem DPCM-Decodierprozeß wird eine
Vorhersagedifferenzialcodierung (Addition) von Pixeldaten, die durch
IDCT-Verarbeitung gebildet sind, und Vorhersagebilddaten, die durch Vorhersagebildfilterverarbeitung
gebildet sind, ausgeführt,
so daß ursprüngliche
Pixeldaten gebildet werden. Wenn die Makroblöcke I-Bilder sind, entsprechen
die IDCT-Verarbeitungsdaten den ursprünglichen Pixeldaten (wenn keine
DC-Vorhersage gemacht ist). Die durch PCM decodierten und wiederhergestellten
Pixeldaten werden in den Puffer geschrieben, der in der Bilddecodierschaltung
enthalten ist.
-
Die
vierte Pipelinestufe schreibt die decodierten Bilddaten in den DRAM.
Das Schreiben in den DRAM wird nämlich
von dem Puffer ausgeführt.
-
Es
ist möglich,
die Zeitdauer der Verarbeitungseinheit deutlich zu verringern, indem
die Verarbeitung der Bilddecodierschaltung ausgeführt wird auf
die Kopfanalyse in einer Pipelineweise in Einheiten von Segmenten
(Makroblöcke)
folgend. Es sei angenommen, daß das
MB-Synchronisierungssignal MBSYNC in einem Intervall in einem Verarbeitungsabschnitt
in 7 geltend gemacht wird, und daher werden vier
Verarbeitungsabschnitte zum Decodieren von Blockdaten eines Makroblockes
benötigt. Analyse
der Kopfinformation wird in jedem Verarbeitungsabschnitt durchgeführt. 7 zeigt
eine Betriebssequenz in dem Fall des Verarbeitens eines digitalen
NTSC-Signales (720 gültige
Pixel/Zeile, 470 Zeilen/Rahmen) in Einheiten von Makroblöcken, von denen
je der aus zum Beispiel 16 × 16
Pixel pro Rahmen besteht. Zuerst werden die 1350ten Makroblöcke MB#1
bis MB#1350 durch die vier Pipelinestufen in Einheiten von Segmenten
verarbeitet (1 Segment (Makroblock) wird in einem Verarbeitungsabschnitt verarbeitet).
-
7 zeigt
auch den Zugriff auf den DRAM-Port in dem Fall des Ausführens der
internen Arithmetikverarbeitungstätigkeit in der Bilddecodierschaltung
auf eine Pipelineweise entsprechend den Pipelinestufen in der Bilddecodierschaltung.
-
Wie
in 7 gezeigt ist, kann das Verarbeiten der Segmente,
die die Einheiten der Bildexpansionsverarbeitung sind, in einer
Pipelineweise über eine
Mehrzahl von Verarbeitungsabschnitten aufgrund der Pipelineverarbeitung
der entsprechenden Betriebsprozessoren der Bilddecodierschaltung
in Einheiten von Segmenten ausgeführt werden, wodurch die für alle Verarbeitungen
eines Segmentes benötigte
Zeit (Zeit für
eine Verarbeitungseinheit) effektiv verringert werden kann. Wie
in 7 gezeigt ist, wird ein Segment in einem Verarbeitungsabschnitt
einer Zeit von ungefähr
ein Viertel einer Verarbeitungseinheit in dem Fall des Vierstufenpipelineaufbaues
verarbeitet.
-
Die
Zeitdauer für
den in 7 gezeigten Verarbeitungsabschnitt kann auf eine
konstante Taktzykluszahl fixiert werden. Es ist auch möglich, die
Zeitdauer (Taktzykluszahl) des Verarbeitungsabschnittes gemäß den Attributen
des Segmentes zu ändern.
-
8 stellt
einen Betriebsfluß zum Ändern der
Zeitdauer des Verarbeitungsabschnittes dar. Es wird Bezug genommen
auf 8, ein Verfahren zum Ändern der Taktzykluszahl des
Verarbeitungsabschnittes wird nun beschrieben.
-
Zuerst
wird das MB-Synchronisierungssignal MBSYNC geltend gemacht (Schritt
S1). Als Reaktion auf diese Geltendmachung des MB-Synchronisierungssignales
MBSYNC wird ein Zeitgeber, der in der Steuerschaltung 1226 (siehe 33) enthalten ist, wird gestartet zum Zählen (Schritt
S2).
-
Nachdem
die Zeitgebertätigkeit
gestartet ist, wird eine Bestimmung durchgeführt, ob oder nicht es notwendig
ist, eine eingestellte Zeit zu ändern,
auf der Grundlage der in dem vorangehenden Verarbeitungsabschnitt
analysierten Kopfinformation (Schritt S3). Wenn das Verarbeitungsverfahren
für die
Makroblöcke
kompliziert ist (in dem Fall von B-Bildern, die einer Vorhersagecodierung
in zwei Richtungen mit Bewegungsvorhersage mit Teilgenauigkeit zum Beispiel
unterworfen sind), wird die Verarbeitungseinheitszeitdauer vergrößert. In
diesem Fall wird die eingestellte Zeit gemäß der analysierten Kopfinformation
erhöht.
Wenn eine Bestimmung durchgeführt wird,
daß die Änderung
der eingestellten Zeit notwendig ist, in Schritt S3, wird die Zeit
des Verarbeitungsabschnittes auf einen richtigen Wert (lang oder
kurz) gemäß der analysierten
Kopfinformation eingestellt. Wenn eine Bestimmung durchgeführt wird,
daß die eingestellte
Zeit nicht geändert
werden muß,
in Schritt S3, wird andererseits die Zeitänderungsverarbeitung in einem
Schritt S4 überschlagen.
Dann wird eine Bestimmung durchgeführt, ob oder nicht die gezählte Zeit
des Zeitgebers die eingestellte Zeit erreicht (Schritt S5). Wenn
die eingestellte Zeit abläuft, kehrt
der Prozeß zu
dem Schritt S1 zurück,
so daß das
MB-Synchronisierungssignal MBSYNC, daß das Starten des nächsten Prozeßabschnittes
bezeichnet, geltend gemacht wird. Der Schritt S5 wird wiederholt bis
zu dem Ablauf der eingestellten Zeit ausgeführt.
-
Die
Schritte S3 und S4 können
parallel zu dem Schritt S1 ausgeführt werden. Bezüglich der Änderung
der eingestellten Zeit, wenn der Zeitgeber durch einen Zähler und
einen gespeicherten Referenzwert eines Registers gebildet ist und
das Zählen des
Zählers
durch einen Komparator verglichen wird, der eine Übereinstimmung/Fehlerübereinstimmung dazwischen
erfaßt,
und wenn das MB-Synchronisierungssignal MBSYNC gemäß dem Resultat
des Vergleiches durch den Vergleicher geltend gemacht wird, wird
der Referenzwert des Registers geändert. Wenn ein Zähler einer
variablen Stufenzahl verwendet wird und die Stufenzahl des Zählers nach
dem Ändern
der eingestellten Zeit geändert
wird, kann ein Hochzählsignal
des Zählers
als das MB-Synchronisierungssignal MBSYNC benutzt werden.
-
Wenn
die Zeitdauer des Verarbeitungsabschnittes konstant ist, werden
die Schritte S3 und S4 weggelassen.
-
9 stellt
eine andere Technik des Einstellens der Zeitdauer des Verarbeitungsabschnittes
dar. Die in 9 gezeigte Steuertätigkeit
wird auch in der in 32 gezeigten Steuerschaltung 1226 ausgeführt. Der
Aufbau der Steuerschaltung 1226 wird später im einzelnen beschrieben.
-
Der
Verarbeitungsabschnitt wird gestartet, und das MB-Synchronisierungssignal
MBSYNC wird geltend gemacht (Schritt S10). Dann werden die Schritte
S12, S14 und S16 in einem parallelen Modus ausgeführt. In
dem Schritt S12 wird eine Bestimmung durchgeführt, ob oder nicht das Laden
des Bitstromes von dem Ratenpuffer in den variablen Längendecodierer
beendet ist. In dem Schritt S14 wird eine Bestimmung durchgeführt, ob
oder nicht eine vorgeschriebene eingestellte Zeit abläuft von
der Geltendmachung des MB-Synchronisierungssignales MBSYNC. In dem
Schritt S16 wird eine Bestimmung gemacht, ob oder nicht eine Analyse
der Kopfinformation vollständig
beendet ist. Ein Signal, das anzeigt, ob oder nicht die Analyse
der Kopfinformation vollständig
beendet ist, wird von dem variablen Längendecodierer ausgegeben,
wie später
im einzelnen beschrieben wird. Die Resultate dieser Bestimmungen werden
in einem Schritt S18 überwacht,
so daß der Prozeß von dem
Schritt S18 zu dem Schritt S10 zurückkehrt, wenn alle Resultate
der Bestimmung in den Schritten S12, S14 und S16 bestätigend (JA) sind,
und das MB-Synchronisierungssignal MBSYNC, das das Starten des nächsten Verarbeitungsabschnittes
bezeichnet, wird geltend gemacht.
-
Es
ist möglich,
zuverlässig
den nächsten Verarbeitungsabschnitt
zu starten, nachdem die notwendige Verarbeitung durch Ausführen der
in 9 gezeigten Verarbeitungstätigkeit beendet ist. Es ist möglich zu
verhindern, daß der
nächste
Abschnitt an einer Zwischenstufe der Datenverarbeitung gestartet wird
(während
der Datenlesetätigkeit
von dem Ratenpuffer oder der Kopfanalysetätigkeit zum Beispiel). Im Vergleich
mit einem Aufbau einer festen Einstellung der Zeitdauer des Verarbeitungsabschnittes wird
die Reihe der Verarbeitung von der variablen Längendecodiertätigkeit
zu der Pixelrestaurationsverarbeitung zuverlässig in einem Pipelinemodus
gestartet, nachdem alle notwendigen Verarbeitungen beendet sind
(nachdem alle notwendigen Daten geliefert sind). Es wird Bezug genommen
auf 9, die eingestellte Zeit in dem Schritt S14 kann änderbar gemäß den Attributen
der Segmente, die zu decodieren sind, gemacht werden (siehe 8).
-
Wie
hier oben beschrieben wurde, ist es möglich, deutlich die Segmentverarbeitungsabschnitte
in der Zeit zu verringern, in dem entsprechende Betriebsprozessoren
der Bilddecodierschaltung in einen Pipelineaufbau in Einheiten der
Segmente gebracht werden.
-
Fehlerverarbeitungstätigkeit
-
Die
Daten des Bitstromes, die in die Bilddecodierschaltung eingegeben
werden, können
Fehlerbit enthalten. In dem Bitstrom, der der variablen Längencodierung
unterliegt, sind die Längen
der Symbole voneinander unterschiedlich. Wenn ein Fehlerbit gemischt
wird, übt
daher ein Fehler eines Symbols einen Einfluß auf ein folgendes Symbol
aus, und folglich kann eine richtige variable Längendecodierung nicht ausgeführt werden.
Aufgrund des Mischens des Fehlerbit führt die Bilddecodierschaltung
einen Übergang
von einem stabilen normalen Zustand des Ausführens des richtigen De codierens
zu einem unstabilen, unnormalen Zustand, der nicht das richtige
Decodieren ausführen
kann, aus. Die Bilddecodierschaltung muß eine Rückkehr von solch einem unnormalen
Zustand zu dem normalen Zustand und eine Verarbeitung der Unterdrückung der
Qualitätsverschlechterung
der decodierten Bilder in dem unnormalen Zustand auf ein Minimum
ausführen.
Die Verarbeitung, die zwischen Fehlererfassung und Rückkehr zu
dem richtigen Zustand ausgeführt
wird, wird Fehlerverarbeitung genannt. Die Verarbeitung zum Verringern
des Einflusses durch den Fehler auf den Anzeigenschirm, die auf
den Segmenten durchgeführt
wird, die in dem unnormalen Zustand verarbeitet sind, wird "Fehlerverbergungsverarbeitung" genannt, Die Fehlerverarbeitungstätigkeit
und die Fehlerverbergungsverarbeitung werden nun beschrieben.
-
10 ist
ein Flußdiagramm,
das schematisch eine Tätigkeit
der Bilddecodierschaltung bis zu der Fehlererfassung darstellt.
Die Tätigkeit
der Bilddecodierschaltung bei der Fehlererfassung wird nun unter
Bezugnahme auf 10 beschrieben.
-
Zuerst
wird ein Fehler in einem Schritt S20 erfaßt. Bei dieser Fehlererfassung
wird eine Bestimmung über
das Auftreten eines Fehlers durchgeführt, wenn ein notwendiges Symbol
nicht bei der Kopfanalyse gefunden wird, die in einem Startcode
in dem variablen Längendecodierer
enthalten ist, oder ein entsprechendes Symbol nicht in der variablen
Längendecodierverarbeitung
des Quantisierungsindexes zum Beispiel gefunden wird, und ein Fehlererfassungssignal
wird auf dem Resultat des Vergleiches erzeugt.
-
Wenn
der Fehler erfaßt
wird, wird ein Startcode mit einem speziellen Muster gesucht (Schritt S21).
In dem MPEG-Standard enthält
der Startcode einen Scheibenstartcode, einen Bildstartcode, einen GOP-Startcode
oder einen Sequenzstartcode zum Bezeichnen des Startens einer Schicht,
oder einen Sequenzfehlercode.
-
Wenn
der Startcode durch den Suchprozeß erfaßt wird, wird eine Bestimmung
durchgeführt,
ob oder nicht der erfaßte
Startcode für
die richtige Rückkehr
effektiv ist (Schritt S22). Zum Beispiel ist ein Sequenzfehlercode,
der ein Startcode ist, nicht effektiv für die richtige Rückkehr (Rückkehr zu
dem stationären
Zustand). Daher wird die Suche nach einem anderen Startcode fortgesetzt.
-
Wenn
ein für
eine richtige Rückkehr
effektiver Startcode erfaßt
ist, wird der Kopf, der diesem Startcode folgt, analysiert (Schritt
S23). Zu dieser Zeit wird die Kopfinformation, die in dem ersten
Segment folgend auf den Startcode enthalten ist, analysiert. Durch
diese Kopfanalyse wird das Segment, das zu dem normalen Zustand
(stationären
Zustand) zurückkehren
muß, identifiziert.
Wie in 11 gezeigt ist, speichert ein
Kopf 1400 (einschließlich
aller Köpfe
bis zu einem Makroblockkopf, die den Makroblöcken des Segmentes vorangehen)
Resynchronisationssegmentadressinformation 1402, die die
Position auf dem Anzeigeschirm des Segmentes (Makroblock) bezeichnet,
an dem die Rückkehr
zu dem normalen Zustand bei der Fehlererzeugung gemacht wird. In
dem MPEG-Standard entspricht zum Beispiel die Resynchronisationssegmentadressinformation 1402 einer
vertikalen Scheibenposition und einer Makroblockadreßerhöhung, die
in dem Schreibenkopf enthalten ist. Eine Resynchronisationssegmentadresse
wird durch Analysieren des Kopfes 1400 identifiziert, wodurch
das Segment, das von dem nichtstationären Zustand zu dem stationären Zustand
zurückkehren
sollte, identifiziert werden kann.
-
Wenn
der gültige
Startcode ein Sequenzstartcode, ein GOP-Startcode oder ein Bildstartcode in
dem MPEG-Standard zum Beispiel ist, ist das Segment, das zu dem
stationären
Zustand zurückkehren soll,
das erste Segment des Bildes.
-
Wenn
der erfaßte
Startcode ein Scheibenstartcode ist, kann die Rückkehrt zu dem stationären Zustand
von dem ersten Segment der Scheibenschicht gestartet werden, da
die Scheibenschicht zum Verhindern einer Fehlerausbreitung vorgesehen ist.
Der Kopf der Scheibenschicht enthält Information, die die Position
auf dem Schirm bezeichnet, wie oben beschrieben wurde, und die die
Position auf dem Schirm bezeichnende Information wird als die Resynchronisationsadresse
benutzt.
-
Nachdem
die Kopfinformation analysiert ist, wird mit der variablen Längendecodierverarbeitung der
Daten des Makroblockes, der dem Kopf folgt, gewartet, bis vorbeschriebene
Bedingungen eingestellt sind.
-
Es
wird nämlich
eine Bestimmung durchgeführt,
ob oder nicht das Segment, das darauf folgend in der Bilddecodierschaltung
zu verarbeiten ist, der Makroblockadresse entspricht, die in der
Kopfanalyse erhalten ist, die in dem Schritt S23 ausgeführt ist (Schritt
S24).
-
Bei
der Suche nach dem Startcode wird der Bitstrom, der zu der Bilddecodierschaltung
geliefert wird, für
die Startcodesuche verwendet, und keine Decodierverarbeitung der
Makroblockdaten, die in dem Bitstrom enthalten sind, wird ausgeführt. Andererseits
gibt die Bilddecodierschaltung Bilddaten aus, die der Fehlerverbergungsverarbeitung,
die später
im einzelnen beschrieben sind, in jedem Verarbeitungsabschnitt unterworfen
sind. Zum Beispiel ist es möglich,
die Adresse (Position) auf dem Schirm des Segmentes zu erkennen,
das in jedem Verarbeitungsabschnitt verarbeitet wird, indem das
MB-Synchronisierungssignal MBSYNC gezählt wird, daß jeden
Verarbeitungsabschnitt in der Steuereinheit zum Beispiel definiert.
Daher ist es möglich
zu Unterscheiden, ob oder nicht ein Segment, das in dem nächsten Verarbeitungsabschnitt
zu verarbeiten ist, der Makroblockadresse entspricht, in der Kopfanalyse
in der Steuereinheit erhalten ist. Wenn die Makroblockadresse des
Segmentes, das darauf folgend zu verarbeiten ist, zu der Makroblockadresse
paßt,
die durch die Kopfanalyse erhalten ist, wird die Rückkehr zu
dem normalen Betrieb von dem nächsten
Verarbeitungsabschnitt unter der Steuerung durch die Steuereinheit
durchgeführt
(Schritt S25).
-
Ebenfalls
wird bei der Rückkehr
von dem nichtstationären
Zustand zu dem stationären
Zustand die Kopfinformation zuvor analysiert, und die Decodierverarbeitung
der Blockdaten wird gemäß dem MB-Synchronisierungssignal
MBSYNC gestartet, wodurch keine Verringerung der Benutzungseffektivität in den
entsprechenden Betriebsprozessoren der Bilddecodierschaltung gebracht
wird.
-
Bei
der Fehlerentwicklung kann das Lesen der Vorhersagebilddaten in
jedem Verarbeitungsabschnitt gestoppt werden, so daß diese
Periode für das
Datenlesen von dem Ratenpuffer benutzt wird. Dieses ist so, da die
Pixeldaten des Makroblockes durch einen Mittelwert von Pixeldaten
eines Makroblockes in dem gleichen gemeinsamen Bild bei der Fehlerentwicklung
ersetzt werden kann, wie später im
einzelnen beschrieben wird. Somit ist es möglich, nach dem notwendigen
Startcode mit einer hohen Geschwindigkeit zu suchen.
-
12 stellt
schematisch den Aufbau des Teiles dar, der sich auf die Verarbeitungstätigkeit
der Fehlererfassung und die Rückkehr
in der Bildverarbeitungsschaltung bezieht. Diese Figur zeigt nur
den variablen Längendecodierer 1212 und
die Steuereinheit 1226. Der variable Längendecodierer und die Steuereinheit
sind durch die gleichen Bezugszeichen wie jene des variablen Längendecodierer
und der Steuereinheit bezeichnet, die in 32 gezeigt
sind. Dieses dient zum Bezeichnen, daß die Funktion der Bilddecodierverarbeitung
selbst identisch zwischen der erfindungsgemäßen und der herkömmlichen
Einheit ist, aber die Strukturen sind von den herkömmlichen
Komponenten unterschiedlich, wie oben beschrieben wurde.
-
Die
Steuereinheit 1226 liefert ein Startsignal ϕACT
zum Starten der Bilddecodierverarbeitung und das MB-Synchronisierungssignal
MBSYNC an den variablen Längendecodierer 1212.
Der variable Längendecodierer 1212 gibt
an die Steuereinheit 1226 ein Fehlererfassungssignal ϕER,
ein Erfassungsbezeichnungssignal für einen gültigen Startcode (Startcode,
der wirksam zurückkehrt
zum normalen Betrieb) ϕSD und ein Bezeichnungssignal der
Decodierbeendigung der Verarbeitungseinheit ϕCPL, das anzeigt,
daß die
Information des Kopfes des Segmentes insgesamt analysiert ist. Der
Betrieb des in 12 gezeigten Aufbaues wird nun
kurz unter Bezugnahme auf 13 beschrieben,
das ein Betriebssequenzdiagramm davon ist.
-
Die
Steuereinheit 1226 macht das MB-Synchronisierungssignal
MBSYNC auf den variablen Längendecodierer 1212 geltend.
Der variable Längendecodierer 1212 decodiert
die Blockdaten in Synchronisation mit dem Geltendmachen des MB-Synchronisierungssignal
MBSYNC und gibt DCT-Koeffizientendaten fester Länge aus. Nach Beendigung des
Decodierens der Blockdaten wird die Information des Kopfes des nächsten Segmentes-analysiert. Wenn
die Analyse der Kopfinformation vollständig beendet ist, macht der
variable Längendecoder 1212 das
Bezeichnungssignal der Decodierbeendigung der Verarbeitungseinheit ϕCPL
auf die Steuereinheit 1226 geltend. Wenn das Bezeichnungssignal
der Decodierbeendigung der Verarbeitungseinheit ϕCPL geltend
gemacht wird, macht die Steuereinheit 1226 das MB-Synchronisierungssignal
MBSYNC wieder auf dem variablen Längendecodierer 1212 geltend, nachdem
vorgeschriebene Bedingungen erfüllt
sind. Als Reaktion darauf wird die Decodierverarbeitung der Blockdaten
ausgeführt.
Wenn ein Fehler in der Decodierprozedur erfaßt wird, macht der variable Längendecodierer 1212 das
Fehlerbezeichnungssignal ϕER geltend. Als Reaktion auf
die Geltendmachung des Fehlererfassungsbezeichnungssignales ϕR,
geht die Steuereinheit 1212 in einen Fehlerzustand. In
diesem Fehler zustand wird die später
beschriebene Fehlerverbergungsverarbeitung ausgeführt. Der
variable Längendecodierer 1212 sucht nach
einem Startcode als Reaktion auf das Geltendmachen des Fehlererfassungsbezeichnungssignales ϕER.
Wenn ein gültiger
Startcode erfaßt
wird, macht der variable Längendecodierer 1212 das
Bezeichnungssignal der Startcodeerfassung ϕSD geltend. Wenn
der Startcode erfaßt
ist, analysiert der variable Längendecodierer 1212 die
Information des Kopfteiles des Segmentes, das dem Startcode folgt,
und macht das Bezeichnungssignal der Decodierbeendigung der Verarbeitungseinheit ϕCPL
an dem Zeitpunkt geltend, an dem die Analyse beendet ist, auf die
Steuereinheit 1226. Die Steuereinheit 1226 bestimmt,
ob der nicht das in dem nächsten
Verarbeitungsabschnitt auszuführende
Segment daß ist,
dessen Kopfinformation analysiert ist, gemäß der analysierten Kopfinformation
und der Startcodeinformation, und es macht das MB-Synchronisierungssignal MBSYNC
als Reaktion auf das Geltendmachen des Bezeichnungssignales der
Decodierbeendigung der Verarbeitungseinheit ϕCPL geltend,
wenn das Segment in dem nächsten
Verarbeitungsabschnitt auszuführen
ist. In der in 13 gezeigten Sequenz kehrt daher
der Prozeß zu
dem stationären
Zustand (normalen Zustand) von dem Verarbeitungsabschnitt zurück, der
dem folgt, der den Fehler verursacht hat.
-
14 stellt
eine andere Betriebssequenz der Bilddecodierschaltung bei der Fehlererfassung dar.
Es wird Bezug genommen auf 14, eine
Betriebssequenz identisch zu der in 13 wird
ausgeführt,
nachdem das Bezeichnungssignal der Fehlererfassung ϕER
bei der Fehlererfassung geltend gemacht wird, bis das Bezeichnungssignal
der Decodierbeendigung in der Verarbeitungseinheit ϕCPL geltend
gemacht wird.
-
Nach
dem Geltendmachen des Bezeichnungssignales der Decodierbeendigung
der Verarbeitungseinheit ϕCPL bestimmt die Steuereinheit 1226 eine
Zeit, in der das Segment des analysierten Kopfes von der analysierten
Kopfinformation verarbeitet sein muß (Erfassung der Makroblockadresse). Wenn
das analysierte Segment nicht in dem nächsten Verarbeitungsabschnitt
ausgeführt
wird, macht die Steuereinheit 1226 das MB-Synchronisierungssignal
MBSYNC geltend unter Bedingungen des Geltendmachens des Bezeichnungssignales
der Decodierbeendigung der Verarbeitungseinheit ϕCPL in
einem Ablauf einer vorbestimmten Zeit (siehe 9) von dem
vorangehenden MB-Synchronisierungssignal MBSYNC und einem Leerraum
(Nichtbenutzung) des DRAM-Ports. In der Fehlerzeit wird das Verarbeiten
der Blockdaten des analysierten Segmentes in einen Ruhezustand gebracht.
Bis der Verarbeitungsabschnitt für
das Segment, das analysiert wird und in den Ruhezustand gebracht
ist, erreicht wird, wird das MB-Synchronisierungssignal MBSYNC jedesmal nach
dem Ablauf der vorbestimmten Zeit unter der Bedingung des Leerraumes
des DRAM-Ports geltend gemacht. Der Leerraum des DRAM-Ports wird zu
1 unter den Bedingungen in dem Fehlerzustand gemacht, da es notwendig
ist, decodierte Daten von der Bilddecodierschaltung in den DRAM-Port
zu schreiben. In diesem Fehlerzustand kann das Bezeichnungssignal
der Decodierbeendigung der Verarbeitungseinheit ϕCPL in
einem geltend gemachten Zustand gehalten werden. Das Bezeichnungssignal der
Decodierbeendigung der Verarbeitungseinheit ϕCPL kann durch
Geltendmachen des MB-Synchronisierungssignales MBSYNC zurückgesetzt
werden, wenn die Blockdaten in dem nächsten Verarbeitungsabschnitt
zu verarbeiten sind.
-
Wenn
der Verarbeitungsabschnitt zu verarbeitendes Segmentes in dem Ruhezustand
erreicht ist, geht die Bilddecodierschaltung in den normalen Zustand
gemäß des Geltendmachens
des MB-Synchronisierungssignales
MBSYNC, so daß Blockdaten
des Segmentes in dem Ruhezustand decodiert werden.
-
Wenn
ein Verarbeitungsabschnitt für
ein tatsächliches
Decodieren von der Resynchronisationssegmentadresse erfaßt wird,
die zu der Zeit der Kopfanalyse in dem Fehlerzustand für die Rückkehr zu dem
normalen Zustand erhalten wird, kann das folgende Verfahren verwendet
werden: ein Zähler,
der in Synchronisation mit einem Bildsynchronisationssignal (z.
B. ein vertikales Synchronisationssignal VSINC) zurückgesetzt
wird, daß das
Starten eines Bildes bezeichnet, wird zum Zählen des MB-Synchronisationssignales
MBSYNC verwendet, und die Makroblockadresse (Position auf dem Schirm)
eines jeden Verarbeitungsabschnittes wird gemäß dem Zählwert überwacht. Wenn eine Adresse
folgend auf die überwachte
Makroblockadresse gleich der Resynchronisationsadresse ist, müssen die
Blockdaten des Segmentes in dem Ruhezustand in dem nächsten Verarbeitungsabschnitt
verarbeitet werden. Da die Kopfinformation insgesamt analysiert
ist vor dem Geltendmachen des MB-Synchronisierungssignales MBSYNC,
kann diese Bestimmungsverarbeitung zuverlässig in einem Verarbeitungsabschnitt
ausgeführt werden,
der dem für
die tatsächliche
Ausführung
des Verarbeitungsvorganges vorangeht.
-
Bei
solch einer Fehlerentwicklung wird auch die Kopfinformation insgesamt
analysiert, und die folgende Verarbeitung wird in einen Ruhezustand
gebracht, und die Verarbeitung der Blockdaten des Ruhezustandes
wird in Synchronisation mit dem MB-Synchronisierungssignal MBSYNC ausgeführt, wenn
das Verarbeiten ausgeführt
werden muß.
Die zu verarbeitenden Blockdaten werden unmittelbar an den variablen
Decodierer 1212 in Synchronisation mit dem MB-Synchronisierungssignal
MBSYNC auch bei der Rückkehr
von dem Fehlerzustand zu dem normalen Zustand geliefert, und folglich
kann die Verarbeitung mit hoher Geschwindigkeit ausgeführt werden.
Bei der in 14 gezeigten Betriebssequenz müssen keine
Blockdaten neu zu der Bilddecodierschaltung während der Periode des Fehlerzustandes geliefert
werden. Die Fehlerverbergungsverarbeitung, die später im einzelnen
beschrieben wird, wird in diesem Verarbeitungsabschnitt ausgeführt.
-
15 stellt
speziell den inneren Aufbau des in 12 gezeigten
variablen Längendecodierers 1212 dar.
Es wird Bezug ge nommen auf 15, der variablen
Längendecodierer 1212 enthält einen
Bitstromzuführer 1,
der den Bitstrom, der aus dem Ratenpuffer gelesen ist, durch einen
Pufferspeicher (nicht gezeigt) empfängt und die Bitstromdaten von dem
Kopf-(erstes)Bit eines variablen Längensymbol liefert, einen Startcodedetektor 2,
der die Daten von dem Bitstromzuführer 1 empfängt und
den Startcode erfaßt,
ein Kopfanalyseteil 3, das die Bitstromdaten von dem Bitstromzuführer 1 empfängt und
die Kopfinformation analysiert, einen Blockdatendecodierer 4,
der die Blockdaten decodiert, die in den Bitstromdaten von dem Bitstromzuführer 1 enthalten
sind, und quantisierte DCT-Koeffizientendaten fester Länge erzeugt,
ein Fehlererfassungsteil 5, daß das Auftreten eines Fehlers
als Reaktion auf ein Fehlererfassungssignal von dem Startcodeerfassungsteil 2 erfaßt, wobei
das Kopfanalyseteil 3 und der Blockdatendecodierer 4 und
ein Steuerteil 6 die Tätigkeit
des variablen Längendecodierers 1212 steuern.
-
Das
Steuerteil 6 empfängt
ein Startanforderungssignal ϕACT (dieses Signal wird später in Beziehung
auf einen Betrieb bei dem Zurücksetzen
beschrieben) und das MB-Synchronisierungssignal MBSYNC und gibt
ein Fehlererfassungsbezeichnungssignal ϕER, ein Bezeichnungssignal
des Decodierbeendens der Verarbeitungseinheit ϕCPL und
ein Bezeichnungssignal für
die Erfassung eines Startcodes ϕSD aus. Dieses Steuerteil 6 empfängt einen erfaßten Startcode
von dem Startcodeerfassungsteil 2 und macht das Bezeichnungssignal
für die
Erfassung eines Startcodes ϕSD geltend, wenn der Startcode
für die
Rückkehr
zu dem stationären
Zustand effektiv ist. Das Steuerteil 6 empfängt auch
ein Bezeichnungssignal der Analysebeendigung der Kopfinformation
(von der Endbiterfassung des Kopfes erfaßt) von dem Kopfanalyseteil 3 und
macht das Bezeichnungssignal der Decodierbeendigung der Verarbeitungseinheit ϕCPL
geltend. Das Steuerteil 6 macht das Fehlererfassungsbezeichnungssignal ϕER
als Reaktion auf das Fehlererfassungssystem von dem Fehlererfassungsteil 5 geltend.
-
Das
Steuerteil 6 empfängt
weiter den Startcode von dem Startcodeerfassungsteil 2,
Information, die eine Bitlänge
eines analysierten variablen Längencodes
bezeichnet, von dem Kopfanalyseteil 3, und eine Bitlängeninformation
eines decodierten variablen Längencodes
von dem Blockdatendecodierer 4, löscht den verarbeiteten (erfaßten, analysiert oder
decodierten) variablen Längencode
in dem Bitstromzuführer 1,
erfaßt
ein nächstes
Kopfbit eines variablen Längencodes
und liefert den nächsten
variablen Längencode
von den Kopf-(ersten)Bit zu dem Kopfanalyseteil 3 oder
dem Blockdatendecodierer 4 von dem Zuführer 1. Der Bitstromzuführer 1 gibt
regulär
Datenbit aufeinander folgend von dem signifikantesten Bit eines
variablen Längencodes
unter der Steuerung des Steuerteiles 6 aus. Der Startcodedetektor 2 überwacht
konstant die Bitdaten von dem Bitstromzuführer 1 zum Erfassen,
ob oder nicht der Startcode enthalten ist.
-
Das
Kopfanalyseteil 3 analysiert variable Längencodewörter (Kopfinformation), die
von dem Bitstromzuführer 1 geliefert
werden, unmittelbar nach der Beendigung der Decodiertätigkeit
des Blockdatendecodierers 4 unter der Steuerung durch das Steuerteil 6 (dieser
Steuerpfad ist nicht gezeigt). Der Blockdatendecodierer 4 wird
in Synchronisation mit dem MB-Synchronisierungssignal MBSYNC unter der
Steuerung des Steuerteiles 6 aktiviert und decodiert die
variablen Längencodes,
die von dem Bitstromzuführer 1 geliefert
werden.
-
Das
Kopfanalyseteil 3 extrahiert Information wie Bewegungsvektoren,
ein Verarbeitungsverfahren (Vorhersageverfahren) für die Makroblöcke und ähnliches
als auch eine Rückkehr(Resynchronisations)Segmentadresseninformation
bei der Fehlererzeugung zum Liefern an die Steuereinheit. Der Blockdatendecodierer 4 gibt
einen Quantisierungsindex fester Länge an den inversen Quantisierer
der nächsten
Stufe aus.
-
Das
Kopfanalyseteil 3 ist beschrieben als konstant analysierend
variabler Längencodes.
Der Sequenzkopf, der GOP-Kopf und der Bildkopf sind jedoch Daten
fester Länge,
die einer festen Längendecodierung
unterworfen sind. Ob das Kopfanalyseteil 3 Analyse von
Festlängencodes
oder Analyse von variablen Längencodes
ausführt,
wird durch das Steuerteil 6 gemäß dem in dem Startcodeerfassungsteil 2 erfaßten Startcode
entschieden. Das Steuerteil 6 weist das Kopfanalyseteil 3 darüber an, welche
Analysetätigkeit
gemäß dem erfaßten Startcode
ausgeführt
werden soll. Alternativ kann ein Aufbau, das der Kopfanalyseteil 3 selbst
bestimmt, welche Tätigkeit
entlang einer Syntax auszuführen
ist, verwendet werden. Weiter ist das Startcodeerfassungsteil 2 als
konstant den Startcode suchend beschrieben. Der Startcodedetektor 2 kann
jedoch alternativ so aufgebaut sein, daß seine Erfassungstätigkeit
in den Tätigkeiten
des Kopfanalyseteiles 3 und des Blockdatendecodierers 4 gestoppt
wird.
-
16 stellt
speziell den inneren Aufbau der in 12 gezeigten
Steuereinheit 1226 dar. Es wird Bezug genommen auf 16,
die Steuereinheit 1226 enthält eine Initialisierungssteuerschaltung 14, die
ein Startbezeichnungssignal ϕACT für den variablen Längendecoder
als Reaktion auf ein Rücksetzanforderungsbezeichnungssignal ϕRRQ
ausgibt, einen Zustandsüberwacher 15,
der den Fortschrittszustand des Verarbeitens des variablen Längendecoders
gemäß dem Fehlererfassungsbezeichnungssignal ϕER
und dem Bezeichnungssignal für
die Erfassung des Startcodes ϕSD von dem variablen Längendecoder überwacht
und eine Betriebstreiberschaltung 11, die empfängt das
Startbezeichnungssignal ϕACT von der Initialisierungssteuerschaltung 14,
das Ausgangssignal von dem Zustandsüberwacher 15, ein
Bildsynchronisierungssignal PSYNC, das den Start eines Bildes bezeichnet,
ein Bezeichnungssignal der Decodierbeendigung der Verarbeitungseinheit ϕCPL,
das von dem variablen Längendecodierer
geliefert wird, und Kopfinformation (Blockspezifizierungsinformation),
und sie liefert das MB- Synchronisierungssignal
MBSYNC an die entsprechenden Pipelinestufen der Berechnungseinheiten
der Decodierschaltung.
-
Die
Initialisierungssteuerschaltung 14 macht das Startbezeichnungssignal ϕACT
zum Liefern an den variablen Längendecoder
geltend, wenn das Rücksetzanforderungssignal ϕRRQ,
daß das
Rücksetzen
einer Decodiertätigkeit
von Bilddaten anfordert, geltend gemacht wird. Dieses Rücksetzanforderungssignal ϕRRQ
kann ein Bezeichnungssignal für den
Decodierverarbeitungsstart zum Anweisen des Startens des Decodierens
der Bilddaten oder ein Rücksetzanforderungsbezeichnungssignal,
das von der Unterbrechung einer externen Steuereinheit resultiert,
sein. Weiter kann das Rücksetzanforderungssignal ϕRRQ
erzeugt werden, wenn ein Fehlerzustand bei der Fortsetzung während einer
vorgeschriebenen Zeitdauer verursacht ist oder das Fehlererfassungsbezeichnungssignal
aufeinander folgend eine vorgeschriebene Anzahl in einer vorgeschriebenen
Zeit geltend macht.
-
Der
Zustandsüberwacher 15 informiert
die Betriebstreiberschaltung 11 von der Tatsache, daß ein Fehler
in dem Decodierprozeß des
variablen Längendecoders
auftritt als Reaktion auf das Geltendmachen des Fehlererfassungsbezeichnungssignales ϕER
und von der Tatsache, daß der
variable Längendecoder
in eine Vorbereitungsstufe zum Zurückkehren zu dem normalen Zustand
eintritt nach dem Geltendmachen des Bezeichnungssignales für die Erfassung
eines Startcodes ϕSD.
-
Die
Betriebstreiberschaltung 11 startet das Takten eines Zeitgebers 16 nach
dem Geltendmachen des MB-Synchronisierungssignal MBSYNC. Der Zeitgeber 16 führt seine
Zähltätigkeit
aus und liefert ein Zeitaussignal an die Betriebstreiberschaltung 11 nach
dem Erreichen einer eingestellten Zeit. Dieser Zeitgeber 16 kann
so aufgebaut sein, daß die
Betriebstreiberschaltung 11 die eingestellte Zeit gemäß Blockattributinformation
(Kopfinformation) ändert,
die von dem variablen Längendecodierer
geliefert wird (siehe 8). In einem normalen Zustand
macht die Betriebstreiberschaltung 11 das MB-Synchronisierungssignal
MBSYNC geltend, wenn das Bezeichnungssignal der Decodierbeendigung
der Verarbeitungseinheit ϕCPL geltend gemacht wird, das
Zeitaussignal von dem Zeitgeber 16 geltend gemacht wird
und ein Signal, das einen Leerzustand bezeichnet (Lesen aus dem
Ratenpuffer ist beendet) eines DRAM-Ports von einer Buszugriffssteuerung 12 empfangen
ist.
-
Nach
der Fehlererzeugung führt
die Betriebstreiberschaltung 11 die folgende Tätigkeit
gemäß einem
von dem Zustandsüberwacher 15 ausgegeben
Signal aus: die Betriebstreiberschaltung 11 enthält einen
Zähler
(nicht gezeigt), der als Reaktion auf das Bildsynchronisierungssignal
PSYNC zurückgesetzt
wird und jedes Geltendmachen des MB-Synchronisierungssignal MBSYNC
hochzählt.
Der Zählwert
dieses Zählers
bezeichnet die Position auf dem Schirm (Makroblockadresse) des Segmentes,
das in dem variablen Längendecodierer
verarbeitet wird. Wenn er von dem Zustandsüberwacher 15 von der Tatsache
informiert wird, daß ein
Startcode, der für eine
normale Rückkehr
effektiv ist, gemäß dem Bezeichnungssignal
für die
Erfassung des Startcodes erfaßt
ist, extrahiert die Betriebstreiberschaltung 11 eine Resynchronisationsadresse
aus der Blockattributinformation, die dem Bezeichnungssignal für die Erfassung
des Startcodes ϕSD folgt. Sie vergleicht die Resynchronisationsadresse
mit dem Zählwert des
Zählers
und bestimmt, ob oder nicht es möglich ist,
zu dem normalen Zustand von dem nächsten Verarbeitungsabschnitt
zurückzukehren.
Wenn es möglich
ist, zu dem normalen Zustand an dem nächsten Verarbeitungsabschnitt
zurückzukehren,
macht die Betriebstreiberschaltung 11 das MB-Synchronisierungssignal
MBSYNC als Reaktion auf das Geltendmachen des Bezeichnungssignales
der Decodierbeendigung der Verarbeitungseinheit ϕCPL geltend, das
auf das Bezeichnungssignal für
die Erfassung des Startcodes ϕSD, der Zeitausbezeichnung
des Zeitgebers 16 und einem Bezeichnungssignal des Lesebeendens des
Ratenpuffers (DRAM-Port ist leer) von der Buszugriffssteuerung 12 folgend
geliefert. Die entsprechenden Betriebsprozessoren, die dem variablen
Längendecodierer
(Blockdatendecodierer von 15 folgen),
sind als Reaktion auf das MB-Synchronisierungssignal
MBSYNC tätig.
-
Wenn
der nächste
Verarbeitungsabschnitt noch nicht der ist, in dem die Rückkehr zu
dem normalen Zustand gemacht werden soll, gibt andererseits die
Betriebstreiberschaltung 11 das MB-Synchronisierungssignal MBSYNC gemäß dem Zeitaussignal,
das von dem Zeitgeber 16 ausgegeben ist, und dem Signal
der Buszugriffssteuerung 12, das die Nichtbenutzung des
DRAM-Ports bezeichnet, aus. In diesem Fehlerzustand (der Zustand,
in dem der nächste
Verarbeitungsabschnitt nicht der ist, in dem die Rückkehr zu
dem normalen Zustand gemacht werden soll), kann das MB-Synchronisierungssignal MBSYNC
zu den Pipelinestufen der entsprechenden Betriebsprozessoren mit
der Ausnahme des variablen Längendecoders
geliefert werden. Alternativ kann das MB-Synchronisierungssignal MBSYNC zu den
entsprechenden Betriebsprozessoren der Pipelinestufen geliefert
werden, die den variablen Längendecodierer
enthalten (Blockdatendecodierer), während ein Verhinderungssignal
der normalen Rückkehr
von der Betriebstreiberschaltung 11 geltend gemacht wird,
das an den variablen Längendecodierer simultan
zu dieser Zeit geliefert wird, so daß eine variable Längendecodiertätigkeit
durch den variablen Längendecodierer
verhindert werden kann. Auch in dem Fehlerzustand gibt die Bilddecodierschaltung Bilddaten
aus (die Fehlerverbergungsverarbeitung, die später beschrieben wird, wird
ausgeführt).
-
Wenn
ein Segment in einem Wartezustand in dem nächsten Verarbeitungsabschnitt
auszuführen ist,
macht die Betriebstreiberschaltung 11 das MB-Synchronisierungssignal
MBSYNC gemäß dem Zeitaussignal,
das von dem Zeitgeber 16 ausgegeben ist, und dem Signal,
das den leeren Zustand des DRAM-Ports bezeichnet, das von der Buszugriffssteuerung 12 ausgegeben
ist, geltend. Somit kehrt die Betriebstreiberschaltung 11 zu
dem normalen Zustand zurück
und stoppt die Tätigkeit
des Vergleichens des Zählwertes
des Zählers
mit der Resynchronisationssegmentadresse. In diesem normalen Zustand
sind die Betriebsprozessoren dem variablen Längendecodierer folgend (Blockdatendecodierer) gemäß dem MB-Synchronisierungssignal
MBSYNC von der Betriebstreiberschaltung 11 tätig zum
Ausführen
der entsprechenden normalen Verarbeitung.
-
Die
Buszugriffssteuerung 12 steuert eine Zugriffstätigkeit
auf den DRAM-Port unter der Steuerung der Betriebstreiberschaltung 11.
Sie führt
nämlich
die Portsteuerung der FIFO-Schnittstelle 1210 und der Speicherschnittstelle 1224,
die in 32 gezeigt sind, aufeinander
folgend in einer vorgeschriebenen Reihenfolge durch. Die Buszugriffssteuerung 12 schreibt
zuerst vollständig
decodierte Bilddaten von dem Pixelrekonfigurator 1220 in
den externen Speicher (DRAM) 1230 durch die Speicherschnittstelle 1224 in
Synchronisation mit dem MB-Synchronisierungssignal MBSYNC von der
Betriebstreiberschaltung 11 (in einem normalen Betrieb).
-
Nach
der Beendigung dieser Schreibtätigkeit führt die
Buszugriffssteuerung 12 das Schreiben des Bitstromes von
der. FIFO-Schnittstelle 1210 in
den externen Speicher (DRAM) durch die Speicherschnittstelle 1224 (Schreiben
in den Ratenpuffer), das Lesen der Anzeigenbilddaten von dem externen Speicher
(DRAM) 1230 in der Pixelbusschnittstelle 1222 durch
die Speicherschnittstelle 1224, das Übertragen der Vorhersagebilddaten
von dem externen Speicher (DRAM) 1230 durch die Speicherschnittstelle 1224 und
das Übertragen
von Daten von dem externen Speicher (DRAM) 1230 in den
variablen Längendecodierer
durch die FIFO-Schnittstelle 1210 und
die Speicherschnittstelle 1224 (Übertragung zu einem Pufferspeicher
(nicht gezeigt)) (Lesen des Ratenpuffers) aus. Während dieser Zeit führt die
Buszugriffssteuerung 12 das Auffrischen des externen Speichers
(DRAM) 1230 an vorgeschriebenen Intervallen aus und verhindert
den Zugriff auf den externen Speicher während dieses Auffrischens.
In dem Fehlerzustand kann die Buszugriffssteuerung 12 die Periode
des Lesens der Vorhersagebilddaten als eine Periode des Lesens von
Daten von dem Ratenpuffer als Reaktion auf das Fehlerzustandsbezeichnungssignal
von der Betriebstreiberschaltung 11 benutzen. Weiter kann
eine Beendigungszeit des Lesens der Vorhersagebilddaten gemäß der Blockattributinformation
von der Betriebstreiberschaltung 11 entschieden werden.
-
Eine
Fehlerverbergungssteuerschaltung 13 steuert die später im einzelnen
beschriebene Fehlerverbergungsverarbeitung. Diese Fehlerverbergungssteuerschaltung 13 wird
als Reaktion auf das Fehlererfassungsbezeichnungssignal ϕER
von dem Zustandsüberwacher 15 gestartet
zum Befehlen der Fehlerverbergungsverarbeitung (Signal ϕERR)
an den Abtastkonvertierungsteil oder den Pixelrekonfigurator und
den Abtastkonvertierungsteil, und befiehlt die Beendigung dieser
Fehlerverbergungsverarbeitung als Reaktion auf eine Bezeichnung
der Rückkehr
zu einem normalen Zustand von der Betriebstreiberschaltung 11.
-
Gemäß der Ausführungsform
der vorliegenden Erfindung ist der Startcode, wie hier oben beschrieben
wurde, der wirksam zu der Rückkehr
von dem Fehlerzustand zu dem stationären (normalen) Zustand effektiv
ist, bei der Fehlererzeugung erfaßt, dann wird die Analyse der
Kopfinformation des Segmentes ausgeführt und die Verarbeitung der
Blockdaten des Segmentes wird verzögert nach der Ankunft des Verarbeitungsabschnittes
für die
tatsächliche
Verarbeitung, wodurch die Rückkehr
zu dem normalen Zustand ausgeführt
werden kann auch bei Fehlerentwicklung ohne Verringerung der Benutzungseffektivität der Betriebsprozessoren.
-
Fehlerverbergungsverarbeitung
1
-
17 stellt
schematisch den Aufbau des Pixelrekonfigurators 1220 der
Bilddecodierschaltung gemäß der vorliegenden
Erfindung dar. Es wird Bezug genommen auf 17, der
Pixelrekonfigurator 1220 enthält einen Pufferspeicher 20,
der zeitweilig Daten speichert, die durch die Speicherschnittstelle 1224 geliefert
sind, ein Vorhersagebildfilterteil 21, das Vorhersagebilder
durch die Bilddaten herstellt, die in dem Pufferspeicher 20 gespeichert
sind, ein Berechnungselement 22, das als ein Addierer dargestellt
ist, zum Aufaddieren von Daten von inversen diskreten Cosinustransformationsteil
(IDCT) 1218 und ein Ausgangssignal von dem Vorhersagebildfilterteil 21 und
Ausführen
einer DPCM-Decodierung, eine Auswahlschaltung 23, die eines
der von den IDCT 1218 ausgegebenen Daten, von dem Berechnungselement 22 ausgegebenen
Daten und Pixeldaten von dem Vorhersagebildfilterteil 21,
und einen Pufferspeicher 24, der zeitweilig Ausgangsdaten
der Auswahlschaltung 23 speichert. Die Speicherdaten des
Pufferspeichers 24 werden in dem externen Speicher (DRAM)
als decodierte Pixeldaten durch die Speicherschnittstelle 1224 gespeichert.
Makroblocktypen von B-Bildern enthalten, (1) eine Intrarahmen/Intrafeldvorhersage,
die keine der Vorwärtsvorhersage
und Rückwärts(Umgekehrt)vorhersage
verwendet, (2) Vorwärtsvorhersage
bei der die Vorhersage auf der Grundlage der vergangenen wiedergegebenen
Bilder gemacht wird, (3) Rückwärtsvorhersage
in der die Vorhersage auf der Grundlage von zukünftigen Bildern gemacht wird,
und (4) Interpolationsvorhersage, die sowohl die vergangenen als
auch die zukünftigen
Bilder verwendet.
-
Das
Vorhersagebildfilterteil 21 führt vorgeschriebene Verarbeitung
gemäß dem Makroblocktyp aus
und bildet Vorhersagebilder. Der Pixelrekonfigurator enthält weiter
ein Steuerteil 25 zum Steuern des Betriebes der Pixelrekonfiguration.
Das Steuerteil 25 empfängt
Kopfinformation, die von dem variablen Längendecodierteil geliefert
werden, das MB-Synchronisierungssignal MBSYNC und das Fehlererfassungsbezeichnungssignal ϕERR
von der Steuereinheit (siehe 16) und
ein Busverwendungsfreigabesignal von der Steuereinheit (Buszugriffssteuerung).
Das Steuerteil 25 entscheidet die Filterverarbeitung, die
in dem Vorhersagebild filterteil 21 ausgeführt wird,
gemäß dem Makroblocktyp,
der in der Kopfinformation enthalten ist. Weiter steuert das Steuerteil 25 das
Datenschreiben und das Datenlesen in und aus den Pufferspeichern 20 und 24 in
Synchronisation mit dem MB-Synchronisierungssignal MBSYNC.
-
Bezüglich der
Bilddaten, die in den Pufferspeicher 20 durch die Speicherschnittstelle 1224 geladen
sind, werden Adressen gemäß von Bewegungsvektorinformation
erzeugt, die durch das Resultat der Analyse des Kopfanalyseteiles
in dem variablen Längendecodierer
gebildet werden, und wenige Bilddaten (Referenzsegmentdaten) werden
aus dem externen Speicher (DRAM) gelesen. Bei der Fehlerentwicklung
wird die Bewegungsvektorinformation auf der Grundlage der übertragenen
Bewegungsvektorinformation gebildet. Wie später beschrieben wird, kann
der Bewegungsvektor in dem Fall einer Fehlererzeugung zu Null gesetzt
werden. Alternativ kann ein Bewegungsvektor, der einen Makroblock
bezeichnet, der um eine Zeile vorangeht, in dem Fall einer Fehlererzeugung
verwendet werden. Makroblockdaten eines entsprechenden Abschnittes in
den Vorhersagebildern werden nämlich
bei der Fehlererzeugung gelesen.
-
Unter
der Steuerung durch das Steuerteil 25 wählt die Auswahlschaltung 23 die
Daten von dem IDCT 1218 aus, wenn der verarbeitete Makroblock ein
Intravorhersagemakroblock (I-Bilder und Intravorhersage B-Bilder)
ist, wählt
die von dem Berechnungselement 22 ausgegebenen Daten aus
in Bezug auf einen codierten Vorhersagemakroblock, der nicht die
Intravorhersage ist, und wählt
die Ausgangsdaten aus von dem Vorhersagebildfilterteil 21 bei
der Fehlerverarbeitung. Eine Fehlergegenmaßnahmetätigkeit in dem Fall des Verwendens
des in 17 gezeigten Pixelrekonfigurators
wird nun beschrieben.
-
18 ist
ein Betriebsablaufdiagramm, das eine Fehlergegenmaßnahmetätigkeit
der Bilddecodierschaltung bei der Fehlerbear beitung darstellt. Wie
in 18 gezeigt ist, ist die Bilddecodierschaltung
in vier Pipelinestufen in Einheiten von Segmenten (Makroblöcke) ähnlich zu
der zuvor erwähnten Ausführungsform
gebildet. Es sei angenommen, daß ein
Fehler in einem Decodiervorgang für Blockdaten eines Segmentes
MB#11 auftritt. Das Fehlererfassungsbezeichnungssignal ϕER
(ϕERR) wird in diesem Zustand geltend gemacht, während der
variable Längendecodierer
und die Steuereinheit die zuvor erwähnten Tätigkeiten auf die Erzeugung
eines Fehlers hin ausführen.
In dem Verarbeitungsabschnitt, während
dem dieser Fehler auftritt, führt
der in 17 gezeigte Pixelrekonfigurator 1220 eine
Pixeldecodiertätigkeit
so aus, daß wiedergewonnene
Pixeldaten in dem Pufferspeicher 24 gespeichert werden. Wenn
ein nächster
Verarbeitungsabschnitt gestartet wird, werden Vorhersagebilddaten
für Fehlerverbergung
eines Teiles entsprechend einem Makroblock MB#12 in dem Pufferspeicher 22 durch
die Speicherschnittstelle 1224 gespeichert. Das Vorhersagebildfilterteil 21 bildet
Vorhersagebilddaten für
den Makroblock MB#11. Andererseits bildet der IDCT 1218 invers
quantisierte Daten von Blockdaten eines Makroblockes MB#10, so daß Pixel
wiedergewonnene Daten gemäß dem Makroblocktyp
davon gebildet werden durch die Auswahlschaltung 23 und
darauf folgend in den Pufferspeicher 24 geschrieben werden. In
dem Pufferspeicher 24 werden andererseits zuvor gespeicherte
decodierte Pixeldaten eines Makroblockes MB#9 in den DRAM durch
die Speicherschnittstelle 1224 geschrieben. In den Pufferspeichern 20 und 24 werden
neue Daten geschrieben, nachdem davon gespeicherte Daten vollständig ausgelesen sind.
-
Danach
wird die Pipelineverarbeitung aufeinander folgend so ausgeführt, daß Daten
von entsprechenden Makroblöcken
der Vorhersagebilder aufeinander folgend aus dem externen Speicher
(DRAM) gelesen werden und Bilddaten in diesem Zustand erzeugt werden
(schraffierte Gebiete in 8).
-
Vorhersagebildpixeldaten,
die in dem Verarbeitungsabschnitt für den Makroblock MB#12 gelesen
sind, werden durch die Auswahlschaltung 23 ausgewählt. Somit
werden entsprechende Pixeldaten der Vorhersagebilder aufeinander
folgend in dem Pufferspeicher 24 gespeichert. Das Vorhersagebildfilterteil 21 führt Filterverarbeitung
gemäß einer
vorbestimmten Regel bei der Fehlererfassung aus.
-
Daher
werden Pixeldaten, die Fehlergegenmaßnahmen unterworfen sind, d.
h. Pixeldaten von Vorhersagebildern, aufeinander folgend in dem DRAM
von einem Verarbeitungsabschnitt zum Verarbeiten eines Makroblockes
MB#15 gespeichert.
-
Wenn
der Fehlerzustand in einem Verarbeitungsabschnitt für einen
Makroblock MB#16 beendet wird, wird das Verarbeiten eines Makroblockes MB#17
von dem nächsten
Verarbeitungsabschnitt ausgeführt.
In diesem Fall wählt
der Auswähler 23 entweder
Daten aus, die von dem IDCT 1218 ausgegeben sind, oder
Daten aus, die von dem Berechnungselement 22 ausgegeben
sind, gemäß der Kopfinformation,
wenn die Verarbeitung der Blockdaten des Makroblockes MB#17 die
dritte Pipelinestufe erreicht.
-
Aufgrund
der zuvor erwähnten
Reihe von Tätigkeiten
können
Pixeldaten, die durch einen Fehler ausgelassen werden, durch Pixeldaten
von Vorhersagebildern in einem Fehlerzustand ersetzt werden, wodurch
eine Bildqualitätsverschlechterung
von decodierten Bildabbildungen unterdrückt werden kann, die durch
Mischen eines Fehlerbit erzeugt wird (siehe 19). Es
ist nämlich
möglich,
die Verschlechterung in der Qualität der decodierten Bilder in
den Makroblöcken
MB#12 bis MB#16 in dem Fehlerzustand zu unterdrücken, wie in 19 gezeigt
ist.
-
Fehlerverbergungsverarbeitung
2
-
20 stellt
den Aufbau eines Pixelrekonfigurators 1220 zum Implementieren
einer zweiten Fehlerverbergungsverarbeitung gemäß der vorliegenden Erfindung
dar. Bei dem Aufbau des in 20 gezeigten
Pixelrekonfigurators stellt ein Steuerteil 35 eine Auswahlschaltung 33 in
einen Zustand, in dem ein Ausgangssignal eines IDCT 1218 als
Reaktion auf Kopfinformation, ein MB-Synchronisierungssignal MBSYNC, ein
Ausgangssignal einer Buszugriffssteuerung und einer Fehlerverbergungssteuerschaltung,
die in der Steuereinheit von 6 enthalten
ist, wenn ein Fehler erzeugt ist, ausgewählt wird. Andere Aufbauten
sind identisch zu jenen in 17 gezeigten,
und die entsprechenden Teile sind durch die gleichen Bezugszeichen
bezeichnet. In einem normalen Zustand bewirkt das Steuerteil 35,
daß das
Berechnungselement 22 Pixeldaten von einem Vorhersagebildfilterteil 21 und
Pixeldaten, die von dem IDCT 1218 ausgegeben sind, verarbeitet
(DPCM-decodiert) und danach ein Ausgangssignal von dem IDCT 1218 oder
dem Berechnungselement 22 durch den Selektor 33 gemäß dem Typ
dieses Bildes zum Schreiben in einen Pufferspeicher 24 auswählt. In
einem Fehlerzustand, d. h. bei der Aktivierung eines Signales ϕERR
steuert das Steuerteil 35 die Auswahlschaltung 33 und
versetzt dieselbe in einen Zustand, in dem die von dem IDCT 1218 ausgegebenen
Daten ausgewählt
werden unabhängig
von dem Bildtyp.
-
Der
IDCT 1218 wird mit Daten beliefert, die von einem Abtastkonvertierungsteil 1216 ausgegeben
werden, dessen Aufbau hier im folgenden im einzelnen beschrieben
wird. Wie hiernach im einzelnen beschrieben wird, beliefert das
Abtastkonvertierungsteil 1216 im Fehlerzustand den IDCT 1218 mit decodierten
Makroblockdaten, die um eine Zeile vorangehen (Daten vor der IDCT-Verarbeitung) in
dem gleichen Bild oder mit einem vorbestimmten festen Wert (wenn
kein Makroblock, der um eine Zeile vorangeht, vorhanden ist) von
einem Verarbeitungsabschnitt, der dem folgt, der den Fehler verursacht.
-
21 stellt
den internen Aufbau des in 20 gezeigten
Abtastkonvertierungsteiles 1216 im einzelnen dar. Es wird
Bezug genommen auf 21, das Abtastkonvertierungsteil 1216 enthält einen
Pufferspeicher 40, der aufeinander folgend invers quantisierte
DCT-Koeffizientendaten, die von einem inversen Quantisierer ausgegeben
sind, speichert und dann die gespeicherten Daten in der Rasterabtastreihenfolge
ausgibt, eine Lese/Schreibsteuerschaltung 41, die das Datenschreiben
und das Datenlesen des Pufferspeichers 40 steuert, eine
Mittelungsschaltung 42, die den Mittelwert der DCT-Koeffizienten
erzielt, die aus dem Pufferspeicher 40 gelesen sind, einen
Speicher 43, der Mittelwertdaten von Makroblöcken durch
eine Zeile zum Beispiel unter den Mittelwertdaten, die von der Mittelungsschaltung 42 ausgegeben
werden, in einer FIFO-Weise speichert, eine Lese/Schreibsteuerschaltung 44,
die das Datenschreiben und Lesen des Speichers 43 steuert, und
eine Auswahlschaltung 45, die entweder DCT-Koeffizientendaten,
die von dem Pufferspeicher 40 ausgegeben werden, oder Daten
von dem Speicher 43 auswählt zum Ausgeben an den IDCT 1218 unter
der Steuerung der Lese/Schreibsteuerschaltung 44.
-
Die
Lese/Schreibsteuerschaltung 41 speichert in dem Pufferspeicher 40 inverse
quantisierte DCT-Koeffizientendaten, die von dem inversen Quantisierer
an der vorhergehenden Stufe geliefert sind, in Synchronisation mit
dem MB-Synchronisierungssignal MBSYNC. Diese Lese/Schreibsteuerschaltung 41 weist
einfach die Funktion des Konvertierens von Lese- und Schreibadressen
für den
Pufferspeicher 40 auf und stellt die Adressen zum Neuanordnen
der DCT-Koeffizienten ein, die auf eine Zickzack-Abtastweise abgetastet
worden sind, in die Rasterabtastreihenfolge zum Ausgeben. Die Adreßerzeugung
kann so getan werden, daß entweder Lese- oder Schreibadressen
in einer vorbestimmten Sequenz erzeugt werden, während die anderen Adressen
aufeinander folgend so erhöht
werden, daß die
zickzackabgetasteten Pixeldaten in der Rasterabtastreihenfolge neu
angeordnet werden. Der Zickzackabtastkonver ter 216 braucht
nicht besonders in einer Pipelinestufe enthalten zu sein, da er
als eine Pufferschaltung durch den Pufferspeicher 40 dient. Daher
kann die Lese/Schreibsteuerschaltung 41 gebildet sein zum
Erzeugen von Adressen in Synchronisation mit einem Eingangssynchronisierungssignal, das
den Start der DCT-Koeffizientendaten
bezeichnet.
-
Die
Mittelungsschaltung 42 erzielt den Mittelwert der DCT-Koeffizientendaten,
die aus dem Pufferspeicher 40 gelesen sind. Zu dieser Zeit
kann der mittelwert durch arithmetische Mittelwerte (alle DC- und
AC-Koeffizienten) aller DCT-Koeffizientendaten erhalten
werden. In einem Block von 8 × 8
Pixel bezeichnet jedoch ein DC-Koeffizient den Mittelwert der Pixeldaten
des Blockes. Daher kann die Mittelungsschaltung 42 den
Mittelwert der DCT-Koeffizientendaten von vier Blöcken für ein Luminanzsignal
erhalten, während
der DC-Koeffizient als der Mittelwert für ein Chrominanzsignal in Bezug
auf einen Makroblock benutzt wird.
-
Der
Speicher 43 speichert Mittelwertdaten von DCT-Koeffizienten
in Bezug auf entsprechende Makroblöcke für eine Zeile zum Beispiel in
der FIFO-Weise. Die Tätigkeiten
des Abtastkonvertierungsteiles und des Pixelrekonfigurators, die
in 20 und 21 gezeigt
sind, wird nun unter Bezugnahme auf 22 beschrieben,
die ein Betriebsablaufdiagramm ist.
-
22 stellt
die Tätigkeiten
in dem Fall dar, in dem ein Fehler bei dem Decodieren von Blockdaten
eines Makroblockes MB#11 verursacht wird und die Rückkehr zu
einem normalen Zustand von einem Makroblock MB#17 zum Beispiel durchgeführt wird.
-
Wenn
ein Fehlererfassungsbezeichnungssignal ϕER geltend gemacht
wird, wird ein Fehlerbezeichnungssignal ϕERR von der Fehlerverbergungssteuerschaltung
als Reaktion geltend gemacht (kein ϕERR ist in 2 gezeigt). Als Reaktion auf das Geltendmachen
des Fehlererfassungsbezeichnungssignales ϕERR verhindert
die in 21 gezeigte Lese/Schreibsteuerschaltung 44 das
Schreiben der Mittelwertdaten in den Speicher 43. Das Speichern
eines berechneten Mittelwertes von DCT-Koeffizientendaten wird in
dem Fall der Fehlererfassung verhindert. Daher speichert der Speicher 43 den
Mittelwert von DCT-Koeffizienten einer Zeile von Makroblöcken bis
zu einem Makroblock MB#9. Kein Mittelwert der DCT-Koeffizienten eines
Makroblockes MB#10 wird in dem Speicher 43 gespeichert.
Der Mittelwert von DCT-Koeffizienten eines Makroblockes, der dem
Makroblock MB#10 um genau eine Zeile vorangeht, wird an einer Kopfadressenposition
des Speichers 43 gespeichert. In einem Verarbeitungsabschnitt,
in dem dieser Fehler verursacht ist, wird die Pixelrestaurationsverarbeitung
für den
Makroblock MB#9 ausgeführt.
Die in 20 gezeigte Auswahlschaltung 33 wählt entweder
ein Ausgangssignal des Berechnungselementes 22 oder Daten,
die von dem IDCT 1218 ausgegeben sind, aus und liefert
das ausgewählte
an den Pufferspeicher 24 gemäß einem Ausgangssignal von
dem Steuerteil 35.
-
Bei
einem Verarbeitungsabschnitt, der dem folgt, der den Fehler verursachte,
liest die in 21 gezeigte Lese/Schreibsteuerschaltung 44 den
Mittelwert der DCT-Koeffizienten
eines Makroblockes, der um eine Zeile vorangeht, der in der Kopfposition
von dem Speicher 43 gespeichert ist, als Reaktion auf das
Fehlerbezeichnungssignal ϕERR und liefert den gelesenen
Mittelwert an den IDCT 1218 durch die Auswahlschaltung 45.
Der Speicher 43 kann einen Mittelwert für Luminanzblöcke des
Makroblockes oder einen Mittelwert für entsprechende Luminanzsignalblöcke speichern
(da der IDCT 1218 die inverse diskrete Cosinustransformationsverarbeitung
in Einheiten von 8 × 8
Pixel ausführt).
-
Die
in 20 gezeigte Auswahlschaltung 33 wird
in einen Zustand des Wählens
von Daten, die von dem IDCT 1218 ausgegeben werden, unter
der Steuerung durch das Steuerteil 35 versetzt. In dem Verarbeitungsabschnitt,
der dem folgt, der den Fehler verursachte, wird daher eine Pixelrestauration
(DPCM-Decodierung) gemäß den Pixeldaten
des Makroblockes, der um eine Zeile vorangeht, ausgeführt. Wie
in 22 gezeigt ist, kann daher die Fehlerverbergungsverarbeitung
von dem Makroblock ausgeführt
werden, der dem vorangeht, der den Fehler verursachte, während die
Fehlerverbergungsverarbeitung auch für den Makroblock ausgeführt werden kann,
der den Fehler verursacht, wodurch eine Bildqualitätsverschlechterung,
die durch Mischen eines Fehlerbit verursacht wird, weiter unterdrückt werden kann.
Daten von verschiedenen Makroblöcken
werden aufeinanderfolgend aus dem Speicher 43 für jeden
Verarbeitungsabschnitt in Synchronisation mit dem MB-Synchronisierungssignal
MBSYNC ausgelesen.
-
Wenn
die Rückkehr
von dem Fehlerzustand zu dem normalen Zustand durchgeführt wird,
werden die Daten von dem Speicher 43 ausgewählt und
an den IDCT 1218 in dem Verarbeitungsabschnitt geliefert,
wenn das Fehlerbezeichnungssignal ϕERR nicht mehr geltend
gemacht wird, Mittelwertdaten von der Mittlungsschaltung 42 werden
in den Speicher 43 in dem nächsten Verarbeitungsabschnitt
geschrieben, und die Auswahlschaltung 45 wird in einen
Zustand des Auswählens
des Ausganges des Pufferspeichers 40 in einem Verarbeitungsabschnitt,
der dem nächsten
folgt, versetzt.
-
Der
Speicher 43 speichert die Daten in der FIFO-Weise, und
folglich wird der Zustand des aufeinander folgenden Speicherns der
Pixelblockdaten für
eine Zeile auch aufrechterhalten, wenn der Mittelwert der Blockdaten
des Makroblockes MB#17 neu in den Speicher 43 in der FIFO-Weise
geschrieben wird.
-
Bei
der Rückkehr
zu dem normalen Zustand können
Daten in dem Pufferspeicher 40 in Synchronisation mit einem
Eingangssynchronisierungssignal geschrieben werden, das den Start
von Blockdaten bezeichnet, die von dem inversen Quantisierer der vorhergehenden
Stufe geliefert werden, unter der Steuerung durch die Le se/Schreibsteuerschaltung 41.
Alternativ kann ein Bezeichnungssignal des Rückkehrens in den normalen Zustand
an die Lese/Schreibsteuerschaltung 41 von der Steuereinheit so
geliefert werden, daß das
Schreiben von dem Verarbeitungsabschnitt durchgeführt wird,
der mit dem Bezeichnungssignal der Rückkehr zu dem normalen Zustand
beliefert wird (wenn das Abtastkonvertierungsteil die letzten Unterstufen
der ersten Pipelinestufe einschließlich mehrfacher Unterstufen
bildet) die erste Pipelinestufe geht bis zu dem Datenschreiben in
dem Puffer 40)). Alternativ können die Daten in den Pufferspeicher 40 unter
der Steuerung der Lese/Schreibsteuerschaltung 41 von einem
Verarbeitungsabschnitt geschrieben werden, der dem Verarbeitungsabschnitt
der Rückkehr
zu dem normalen Zustand folgt (wenn das Abtastkonvertierungsteil
in der dritten Pipelinestufe enthalten ist). Alternativ kann das
Abtastkonvertierungsteil 1216 so angeordnet sein, daß es ein
Teil der zweiten Pipelinestufe bildet.
-
Wenn
der Fehler an dem Kopf des Bildes verursacht ist, wird ein vorbestimmter
fester Wert verwendet, da kein entsprechender Durchschnittswert vorhanden
ist. Während
dieser Aufbau nicht gezeigt ist, können entweder Durchschnittswertdaten
oder Festwertdaten gemäß der Adreßinformation
(Position auf dem Schirm) des bearbeiteten Makroblockes gewählt werden,
wie durch die gestrichelte Linie in 21 gezeigt
ist.
-
23 stellt die Modi der Makroblöcke dar, die dem Fehlerverbergungsprozeß in der
zweiten Fehlerverbergungsverarbeitung, die in 20 bis 22 gezeigt
ist, unterworfen sind. Wie in 23 gezeigt
ist, wird die Fehlerverbergungsverarbeitung durch Pixeldaten eines
Makroblockes ausgeführt,
der vor dem Makroblock MB#10, der dem Makroblock MB#11 vorangeht,
der den Fehler verursacht, um eine Zeile voranliegt. Die Blockdaten
der Makroblöcke
MB#10 bis MB#16 werden nämlich
von Pixeldaten von Makroblöcken
MB#2 bis MB#8 ersetzt, die um eine einzelne Zeile in dem gleichen
Bild vorangehen.
-
Bei
der obigen Beschreibung wird die Fehlerverbergungsverarbeitung ausgeführt durch
den Mittelwert der Blockdaten der vorangehenden Makroblöcke bei
der Fehlerentwicklung. Ein Zeilenspeicher, der Pixeldaten von Makroblöcken für eine Zeile
speichert, kann in dem Pixelrekonfigurator 1220 so angeordnet
sein, daß decodierte
Pixeldaten der Speicherblöcke,
die in diesem Zeilenspeicher gespeichert sind, in dem externen Speicher
(DRAM) durch den Pufferspeicher 24 gespeichert werden zum
Ersetzen der entsprechenden Pixeldaten durch jene des Makroblockes,
der um eine Zeile entsprechend vorangeht bei der Fehlerentwicklung.
-
Gemäß dem Aufbau
der Ausführungsform der
vorliegenden Erfindung, wie er hier oben beschrieben wurde, kann
die Fehlerverbergungsverarbeitung effektiv ausgeführt werden
durch effektives Benutzen der Pipelinestufen der Bilddecodierschaltung.
Wenn insbesondere die Fehlerverbergungsverarbeitung ausgeführt wird
durch decodierte Daten (decodierte Daten variabler Länge) in
dem gleichen Bild, kann die Fehlerverbergungsverarbeitung ausgeführt werden
von dem Makroblock, der in der Verarbeitungsreihenfolge dem Segment
(Makroblock) vorangeht, das den erfaßten Fehler aufweist, wodurch
weiter eine effektive Fehlerverbergungsverarbeitung ausgeführt werden
kann und eine Bildqualitätsverschlechterung,
die durch Mischen eines Fehlerbits verursacht wird, unterdrückt werden
kann.
-
Initialisierungstätigkeit
1: Neustarten (Rückkehr
von dem Fehler)
-
24 ist ein Flußdiagramm, das eine Initialisierungstätigkeit
der Bilddecodierschaltung zeigt. Die Initialisierungstätigkeit
der Bilddecodierschaltung gemäß der vorliegenden
Erfindung wird nun beschrieben.
-
Zuerst
wird eine Bestimmung durchgeführt, ob
oder nicht eine Rücksetzanforderung
gemacht ist (Schritt S30). Diese Rücksetzanforderung wird gemacht
beim Neustarten, wenn ein Bruch der Anzeige durch eine Unterbrechung
durch eine externe Steuereinheit oder ein Fehlerzustand während einer
vorgeschriebenen Zeit anhält
(wenn ein Zustand des Zurückkehrens
von einem Fehlerzustand zu dem normalen Zustand gefolgt von einer
Rückrückkehr zu dem
Fehlerzustand anhält).
-
Wenn
eine Rücksetzanforderung
(Neustartbefehl) gemacht wird, bestimmt die Steuereinheit 1226 (siehe 16)
zuerst, ob oder nicht diese Bilddecodierschaltung gegenwärtig decodieren
von Bilddaten ausführt
(Schritt S31). Wenn das Decodieren der Bilddaten gegenwärtig ausgeführt wird
(wenn eine Pixelrestaurationstätigkeit
ausgeführt
wird: einschließlich
einer Tätigkeit
in einem Fehlerzustand), wird die Erzeugung des MB-Synchronisierungssignal MBSYNC
von dem nächsten
Verarbeitungsabschnitt gestoppt (Schritt S32). Wenn die Erzeugung
des MB-Synchronisierungssignales
MBSYNC gestoppt ist, wird das Startsignal ϕACT (R) geltend
gemacht und zu dem variablen Längendecodierer
geliefert (siehe 15). Wenn keine Pixelrestaurationstätigkeit
in dem Schritt S31 ausgeführt
wird, wird andererseits der Schritt S32 überschlagen und das Startsignal ϕACT
(R) wird in einem Schritt S33 geltend gemacht.
-
Der
variable Längendecodierer
sucht nach einem Startcode, der das Starten eines Bildes anzeigt,
als Reaktion auf das Geltendmachen des Startsignales ϕACT
(R). Er sucht nämlich
nach einem Sequenzstartcode, einem GOP-Startcode oder einem Bildstartcode.
Zu dieser Zeit wird ein Scheibenstartcode vernachlässigt, da
ein neues Bild gesucht wird. Wenn ein Startcode, der das Starten
eines Bildes anzeigt, erfaßt
wird, wird die Information eines Kopfteiles, das diesen Startcode
folgt, analysiert, und die Kopfinformation eines Segmentes einer
Makroblockschicht wird analysiert (Schritt S34). Das Herstellen der
vorgeschriebenen Be dingungen wird in dem Zustand des Analysierthabens
der Kopfinformation erwartet (Schritt S35). Die vorgeschriebenen
Bedingungen sind, daß eine
ausreichende Menge von Bitstrom in dem Ratenpuffer gespeichert ist
und ein vertikales Synchronisierungssignal, das von der externen
Anzeigensteuereinheit geliefert wird, geltend gemacht wird. Es ist
möglich
zu unterscheiden, ob oder nicht eine ausreichende Menge von Bitstrom
in dem Ratenpuffer gespeichert ist, in dem die Differenz zwischen
der Schreib- und der Leseadresse des FIFO-Gebietes der externen
Speichereinrichtung (DRAM) durch die in 16 gezeigte
Buszugriffssteuerung 12 erfaßt wird.
-
Wenn
die vorgeschriebenen Bedingungen hergestellt sind, macht die Steuereinheit
ein Bildsynchronisierungssignal geltend, das den Start des Bildes
anzeigt, setzt einen Zähler,
der in seinem Inneren enthalten ist zurück zum Anzeigen einer Makroblockadresse,
macht das MB-Synchronisierungssignal in Synchronisierung mit dem
Bildsynchronisierungssignal geltend und bewirkt, daß die Bilddecodierschaltung
einen normalen Betrieb ausführt
(Schritt S36). Aufgrund des Geltendmachens des MB-Synchronisierungssignales
MBSYNC in Synchronisation mit dem Bildsynchronisierungssignal PSYNC
können Anzeigebilddaten
richtig in Synchronisation mit einem vertikalen Synchronisierungssignal
gelesen werden, das zum Beispiel von der externen Steuereinheit
geliefert wird, wenn die Rücksetzanforderung gemacht
wird und ein neues Bild angezeigt wird. Weiter können Pixeldecodiertätigkeiten
aufeinander folgend parallel zu der Bildanzeige ausgeführt werden.
-
Die
Reihe von Tätigkeiten
von den Schritten S30 bis S33 werden durch die in 16 gezeigte
Initialisierungssteuerschaltung 14 ausgeführt.
-
Initialisierungstätigkeit
2: Rücksetztätigkeit
-
25 ist ein Flußdiagramm, das eine andere
Initialisierungstätigkeit
der Bilddecodierschaltung zeigt. Diese Initialisierungstätigkeit
der Bilddecodierschaltung gemäß der vorliegenden
Erfindung wird nun erläutert.
Bei dieser Initialisierungstätigkeit
bezeichnet der Benutzer 9 eine Bildanzeige.
-
Zuerst
wird eine Bestimmung durchgeführt, ob
oder nicht eine Rücksetzanforderung
(Initialisierungsbefehl) gemacht ist (Schritt S40). Diese Rücksetzanforderung
wird von Hardware oder Software (Satz von Registerwerten) gemäß einer
Bildanzeigenbezeichnung von dem Benutzer erzeugt.
-
Wenn
die Rücksetzanforderung
gemacht wird zum Bezeichnen der Anzeige eines neuen Bildes, wird
ein Startsignal ϕACT (I) geltend gemacht und zu dem variablen
Längendecoder
(siehe 15) geliefert, da die Bilddecodierschaltung
keine Bilddatendecodiertätigkeit
zu dieser Zeit ausführt
(Schritt S41).
-
Als
Reaktion auf das Geltendmachen des Startsignales ϕACT (I)
sucht der variable Längendecodierer
nach einem Sequenzstartcode. Ein GOP-Startcode, ein Bildstartcode
und ein Scheibenstartcode werden nicht beachtet. Wenn ein Sequenzstartcode
erfaßt
wird und ein Startcode, der das Starten eines Bildes bezeichnet,
dann erfaßt
wird, wird die Information eines Kopfteiles, der dem Startcode folgt,
analysiert und die Kopfinformation eines Segmentes einer Makroblockschicht
wird analysiert (Schritt S42). In dem Zustand des Analysierthabens dieser
Kopfinformation wird das Aufstellen vorgeschriebener Bedingungen
erwartet (Schritt S43). Die vorgeschriebenen Bedingungen sind identisch
zu jenen, die unter Bezugnahme auf Schritt S35 in 24 beschrieben wurden. Die vorgeschriebenen Bedingungen
sind nämlich,
daß eine
ausreichende Menge von Bitstrom in dem Ratenpuffer gespeichert ist
und ein vertikales Synchronisierungssignal, das von der externen
Anzeigensteuereinheit geliefert wird, geltend gemacht wird. Wenn
die vorgeschriebenen Bedingungen aufgestellt sind, macht die Steuereinheit ein
Bildsynchronisierungssignal geltend, das den Start eines Bildes
bezeichnet, setzt einen Zähler,
der eine Makroblockadresse bezeichnet und in seinem Inneren enthalten
ist, zurück,
macht ein MB-Synchronisierungssignal in Synchronisation mit dem
Bildsynchronisierungssignal geltend und bewirkt, daß die Bilddecodierschaltung
einen normalen Betrieb ausführt
(Schritt S44). Nach der Rücksetzanforderung des
Benutzers wird das Geltendmachen des MB-Synchronisierungssignal
in Synchronisation mit dem Geltendmachen des Bildsynchronisationssignal gemacht,
wodurch Anzeigenbilddaten richtig in Synchronisation mit dem vertikalen
Synchronisierungssignal gelesen werden können, das zum Beispiel von der
externen Steuereinheit geliefert wird, in dem Fall des Anzeigens
eines Bildes einer neuen Sequenz, und die Pixeldecodiertätigkeiten
können
aufeinander folgend entlang der Bildanzeigeausgeführt werden.
-
Die
Reihe von Verarbeitungstätigkeiten
wird durch die in 16 gezeigte Initialisierungssteuerschaltung 14 ausgeführt. Das
Startsignal ϕACT ist so bezeichnet, daß das gleiche Signal geltend
gemacht wird in Bezeichnungsneustarten einer Rücksetzanforderung der Anzeige
und des Bezeichnens der Initialisierung der Anzeige. Dieses sind
jedoch verschiedene Signale, und Startcodes, die bei dem Neustarten
und Initialisieren zu suchen sind, unterscheiden sich als Reaktion
auf die Typen der Startsignale ϕACT oder ϕACT
(R) und ϕACT (I).
-
26 stellt beispielhafte Tätigkeiten der Bilddecodierschaltung
bei einer Rücksetztätigkeit dar.
Diese Figur zeigt solch einen Zustand, daß eine Befehlsbildanzeige einer
Initialisierungsbezeichnung (Rücksetzbezeichnung)
von dem äußeren zum
Beispiel (siehe 25) geliefert wird. In diesem
Zustand wird kein MB-Synchronisationssignal MBSYNC geltend gemacht,
da die Bilddecodierschaltung keine Pixeldecodiertätigkeit
ausführt.
-
Wenn
ein Rücksetzanforderungssignal ϕRRG
geltend gemacht wird, wird das Startsignal ϕACT (I) ausgegeben
(geltend gemacht) von der in 16 gezeigten
Initialisierungssteuerschaltung. Als Reaktion auf das Geltendmachen
des Startsignales ϕACT (I) sucht der variable Längendecodierer
nach einem Startcode, der das Starten eines Bildes einer Sequenzschicht
anzeigt. Bei dieser Suchtätigkeit werden
Daten aus dem Ratenpuffer unter der Steuerung durch die Steuereinheit
gelesen. Wenn noch kein Bitstrom in dem Ratenpuffer gespeichert
ist, aber der Bitstrom zuerst nach der Erzeugung des Rücksetzanforderungssignales ϕRRQ
ankommt, liefert die Steuereinheit direkt den Bitstrom, der durch die
FIFO-Schnittstelle zu dem variablen Längendecoder geliefert wurde,
und bewirkt, daß derselbe
einen Startcode sucht. Der variable Längendecodierer analysiert den
Startcode, der von dem Startcodedetektor (siehe 15)
in dem Steuerteil 6 erfaßt ist, erfaßt den Bildstartcode,
der das Starten des Bildes bezeichnet nach der Erfassung des Sequenzstartcodes und
Analysiert Kopfinformation folgend auf den erfaßten Bildstartcode. Bei dem
Neustarten wird ein Startcode in einer Schicht über einer Makroblockschicht
gesucht und Kopfinformation wird nach der Erfassung davon analysiert.
Wenn die Kopfinformation des Segmentes der Makroblockschicht vollständig analysiert
ist, macht der variable Längendecoder
ein Bezeichnungssignal der Decodierbeendigung der Verarbeitungseinheit ϕCPL
geltend. Als Reaktion auf das Geltendmachen des Bezeichnungssignales
der Decodierbeendigung der Verarbeitungseinheit ϕCPL wartet
die Steuereinheit auf die Herstellung vorgeschriebener Bedingungen.
Wenn die vorgeschriebenen Bedingungen vorhanden sind, d. h. wenn
eine ausreichende Menge von Bitstrom in dem Ratenpuffer gespeichert
ist und ein vertikales Synchronisierungssignal geliefert ist, macht
die Steuereinheit das Bildsynchronisierungssignal PSYNC in seinem
Inneren geltend, während
das MB-Synchronisierungssignal MBSYNC in Synchronisation mit diesem
Bildsynchronisierungssignal PSYNC geltend gemacht wird. In einem
ersten Verarbeitungsabschnitt werden das Decodie ren der Blockdaten
des Segmentes, dessen Kopfinformation analysiert worden ist, und
die Analyse der Kopfinformation auf dieses Segment folgend ausgeführt. Danach
wird das MB-Synchronisierungssignal
MBSYNC jedesmal geltend gemacht, wenn Kopfinformation in jedem Verarbeitungsabschnitt analysiert
wird, und vorgeschriebene Bedingungen werden aufgestellt.
-
Aufgrund
der Reihe von Initialisierungs- oder Rücksetztätigkeiten kann das Decodieren
der Blockdaten der Segmente zuverlässig als Reaktion auf das Geltendmachen
des MB-Synchronisierungssignales MBSYNC
gestartet werden zum Implementieren einer Hochgeschwindigkeitsarithmetikverarbeitung
als auch bei einer Rücksetztätigkeit
mit einer Fehlerrückkehrtätigkeit.
-
Bei
der zuvor erwähnten
Ausführungsform wird
die Decodierverarbeitung von Bilddaten (Pixeldaten), die entlang
des MPEG-Standards
decodiert sind, als ein Beispiel einer Pixeldatendecodierverarbeitung
beschrieben. Die vorliegende Erfindung ist jedoch auch anwendbar,
wenn die Verarbeitung in Einheiten von Datenblöcken mit bestimmten Größen variabler
Längencodes
anstelle der MPEG-Standardpixeldaten durchgeführt wird, wenn Kopfinformation in
Form von variablen Längencodes
für die
Blockdaten vorgesehen wird. Weiter ist die vorliegende Erfindung
auch anwendbar auf Daten, die einer orthogonalen Transformation,
die nicht die DCT-Verarbeitung ist, unterworfen sind.
-
Wesentliche
Merkmale der vorliegenden Erfindung sind wie folgt:
- (1) Kopfinformation wird analysiert auf die Verarbeitung eines
Datenblockes in einem Verarbeitungsabschnitt folgend, und Datenverarbeitungsstart
wird durchgeführt,
nachdem die gesamte Analyse der Kopfinformation beendet ist. Ein
Verarbeitungsabschnitt wird gestartet bei dem Decodieren des Datenblockes
und in der Analyse der Kopfinformation beendet. Wenn das Starten
des Datenverarbeitens bezeichnet ist, kann daher jeder Betriebsprozeß un mittelbar
seine Verarbeitung ausführen,
wodurch die Benutzungseffektivität
der Operationsprozessoren verbessert wird, und die Datenverarbeitung
kann mit einer hohen Geschwindigkeit ausgeführt werden. Weiter wird die
Ruhezeit des Betriebsprozessors verringert, wodurch die Zeitdauer
eines Verarbeitungsabschnittes verringert werden kann.
- (2) Die Zeitdauer des Verarbeitungsabschnittes wird gemäß des Resultates
der Analyse der Kopfinformation geändert. Die Zeitdauer des Verarbeitungsabschnittes
kann in Abhängigkeit
der Attribute des zu verarbeitenden Segmentes geändert werden, und die optimale
Länge des
Verarbeitungsabschnittes kann gemäß den Attributen des zu verarbeitenden
Segmentes eingestellt werden. Es ist möglich, solch eine Fehlfunktion
zu verhindern, daß ein
nächster
Verarbeitungsabschnitt gestartet wird vor der Beendigung eines Verarbeitungsabschnittes,
was verursacht werden kann in dem Fall eines Verarbeitungsabschnittes
einer festen Zeitlänge,
und Bilddaten können
effektiv und richtig verarbeitet werden.
- (3) Zugriff auf einen externen Speicher wird parallel zu dem
Decodieren von Datenblockdaten ausgeführt. Ein Einfluß, der auf
die Pixeldatendecodierverarbeitung durch den Zugriff auf den externen
Speicher ausgeübt
wird, kann ausgeschlossen werden, und die Verarbeitungszeit kann
verringert werden. Weiter können
notwendige Daten effektiv zu dem Datenverarbeitungsteil ohne Zerstörung der
Daten geliefert werden, die für
die Pipelineverarbeitung in dem Datenverarbeitungsteil benötigt werden,
in dem der Zugriff zu dem externen Speicher aufeinander folgend
in der Reihenfolge des Schreibens der wiedergewonnen Daten, des
Lesens eines ankommenden Datenstromes, des Lesens von Anzeigebilddaten,
des Lesens von Vorhersagebilddaten und des Lesens des Bitstromes
ausgeführt
wird.
- (4) Wenn ein Fehler in einem Kopfinformationsanalyseprozeß oder einem
variablen Längendecodierprozeß auftritt,
wird ein Startcode mit einem vorgeschriebenen Muster erfaßt, und
die Kopfinformation eines Segmentes, das dem Startcode folgt, wird
analysiert, so daß Verarbeiten
eines Datenblockes, der der analysierten Kopfinformation folgt,
verzögert
wird, bis vorgeschriebene Bedingungen nach Beendigung der Analyse
erfüllt sind.
Verarbeiten kann an einem Segment gestartet werden, das keinen Einfluß durch
einen Fehler aufweist, durch Starten von Verarbeitung bei der Fehlererzeugung,
während
die Verarbeitung gestartet wird von dem Decodieren des Datenblockes
auch bei dieser Verarbeitung, die nach der Fehlererzeugung gestartet
wird, wodurch die Verringerung der Benutzung eines jeden Betriebsprozessors,
der in dem Datenverarbeitungsteil enthalten ist, unterdrückt werden
kann auch nach der Erholung von dem Fehler, und die Datenverarbeitung
kann mit hoher Geschwindigkeit ausgeführt werden.
- (5) Eine Pipeline ist gebildet mit einer Verarbeitungseinheit
eines Verarbeitungsabschnittes entsprechend einem Segment. Die Verringerung
der Benutzungseffektivität
eines Berechnungselementes einer jeden Pipeline kann auf ein Minimum
gedrückt
werden, und Hochgeschwindigkeitsdatenverarbeitung ist möglich. Weiter
kann eine Verarbeitungseinheit (Segment) von einer Mehrzahl von
Verarbeitungsabschnitten in einer Pipelineweise aufgrund der Pipelinestufen
geteilt werden, wodurch die Zeitdauer für den Verarbeitungsabschnitt
verringert werden kann und eine Hochgeschwindigkeitsdatenverarbeitung
ermöglicht
wird.
- (6) Die Pipelinestufen sind in einen Vierstufenpipelineaufbau
in Einheiten von Segmenten gemäß dem Inhalt
der Verarbeitung gebildet. Es ist möglich, einen Pipelinebetrieb
mit der minimalen Wartezeit eines jeden Betriebsprozessors auszuführen, selbst
wenn die Zeitdauer des Verarbeitungsabschnittes variiert, wodurch
eine Hochgeschwindigkeitsdatenverarbeitung ausgeführt werden
kann. Aufgrund des Pipelineaufbaues kann weiter Kopfinforma tion
parallel zu der Datenverarbeitung analysiert werden, wodurch die
Zeitdauer für
den Verarbeitungsabschnitt verringert werden kann und eine Hochgeschwindigkeitsdatenverarbeitung
implementiert wird.
- (7) Bei der Fehlerverarbeitung werden Blockdaten eines Segmentes,
das dem vorangeht, bei dem ein Fehler erfaßt worden ist, in der Pipelinestufe repariert,
wobei die Verzögerung
der Pipelinestufe wirksam benutzt wird, eine Fehlerreparaturtätigkeit
kann auf dem Segment gemacht werden, das den Fehler verursacht hat,
und die Verschlechterung der Qualität eines decodierten Bildes,
das durch Mischen eines Fehlerbits verursacht ist, kann unterdrückt werden.
- (8) Wenn eine Rücksetzanforderung
gemacht wird, wird ein Startcode mit einem vorgeschriebenen Muster
gesucht, und ein Verarbeitungsstartbezeichnungssignal wird geltend
gemacht, wenn vorgeschriebene Bedingungen aufgestellt sind, nachdem
Kopfinformation eines Segmentes, das dem Startcode folgt, vollständig analysiert
ist, so daß das
Verarbeiten des Datenblockes dieses Segmentes ausgeführt wird.
Das Verarbeiten kann zuverlässig
von dem Starten eines Bildes auch bei dem Zurücksetzen ausgeführt werden, während jeder
Betriebsprozessor unmittelbar als Reaktion auf den Verarbeitungsstart
getrieben werden kann zum Ausführen
der Datenverarbeitung, wodurch ein Hochgeschwindigkeitsverarbeiten
ausgeführt
werden kann.
-
Das
Datendecodierverarbeiten wird in Synchronisation mit einem extern
gelieferten Bildsynchronisierungssignal (vertikales Synchronisierungssignal)
gestartet, das den Start eines Bildes bezeichnet. Auch bei dem Zurücksetzen
können
eine richtige Pixeldatenverarbeitungstätigkeit und Lesen der Anzeigenbilddaten
ausgeführt
werden durch Herstellen einer Synchronisation mit dem Synchronisationssignal,
das von einer externen Steuereinheit geliefert wird.