DE69634052T2 - Schaltung zur Bewegtbilddecodierung - Google Patents

Schaltung zur Bewegtbilddecodierung Download PDF

Info

Publication number
DE69634052T2
DE69634052T2 DE1996634052 DE69634052T DE69634052T2 DE 69634052 T2 DE69634052 T2 DE 69634052T2 DE 1996634052 DE1996634052 DE 1996634052 DE 69634052 T DE69634052 T DE 69634052T DE 69634052 T2 DE69634052 T2 DE 69634052T2
Authority
DE
Germany
Prior art keywords
data
processing
error
variable length
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1996634052
Other languages
English (en)
Other versions
DE69634052D1 (de
Inventor
Shinichi Chiyoda-ku Uramoto
Akihiko Chiyoda-ku Takabatake
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE69634052D1 publication Critical patent/DE69634052D1/de
Application granted granted Critical
Publication of DE69634052T2 publication Critical patent/DE69634052T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Communication Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

  • 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.

Claims (2)

  1. Bilddecodierschaltung zum Erstrecken eines Bewegbildes, das gemäß einer vorbestimmten Prozedur komprimiert ist, in Einheiten von Segmenten vorgeschriebener Größe zum Wiederherstellen dekomprimierter Bilddaten, wobei das komprimierte Bewegbild mit variabler Länge codiert ist, jedes Segment einen Datenblock mit zu verarbeitenden Daten und einen Kopf mit Information, die Attribute der Daten des Datenblockes bezeichnet, aufweist, wobei die Bilddecodierschaltung enthält: ein Datenverarbeitungsmittel (4, 1212, 1216, 1218, 1220) mit: (i) einem Decodiermittel mit einem Analysemittel (3, 6) zum Erfassen eines Kopfes aus einem gelieferten Bitstrom und Analysieren von Information des Kopfes, wobei das Analysemittel (3, 6) ein Mittel (6) enthält, das ein Beendigungssignal (Φ CPL) erzeugt, das die Beendigung der Analyse aller der Kopfinformation anzeigt, (ii) ein Decodiermittel für variable Länge (4, 1212, 1214, 1216, 1220) zum Decodieren von Pixeldaten variabler Länge eines Datenblockes des Segmentes gemäß dem Resultat der Analyse des Analysemittels (3, 6) und Bilden von Pixeldaten fester Länge und Wiederherstellen der Pixeldaten des Datenblockes in dekomprimierte Pixeldaten; ein Erfassungsmittel (5, 6), das mit dem Analysemittel (3, 6) und dem Decodiermittel variabler Länge (4, 1212, 1214, 1216, 1220) gekoppelt ist, zum Erzeugen eines Fehlererfassungssignales, das einen Fehler anzeigt, wenn der Fehler bei der Bearbeitung von dem Analysemittel (3, 6) oder dem Decodiermittel variabler Länge (4, 1212, 1214, 1216, 1220) erfaßt wird; ein Codesuchmittel (2, 6), das mit dem Erfassungsmittel (5, 6) gekoppelt ist, zum Suchen eines Startcodes mit einem vorbestimmten Muster aus dem eingehenden Bitstrom als Reaktion auf das Fehlererfassungssignal; ein Aktivierungsmittel (1226, 6), das mit dem Codesuchmittel gekoppelt ist, zum Aktivieren des Analysemittels (3, 6) zum Analysieren einer Resynchronisationssegmentadreßinformation in einem dem Startcode folgenden Kopf als Reaktion auf die Erfassung des Startcodes durch das Codesuchmittel (2, 6); und ein Mittel (1226, 6), das die Ausführung der Verarbeitung eines Datenblockes entsprechend der Resynchronisationssegmentadreßinformation durch das Datenverarbeitungsmittel (4, 1212, 1217, 1218, 1220) verzögert, bis eine Adresse, die durch Zählen des MB-Synchronisationssignales MBSYNC erhalten wird, zu einer Makroblockadresse paßt, die der Resynchronisationssegmentadreßinformation entspricht, als Reaktion auf das Beendigungssignal (Φ CPL), das die Beendigung der Analyse der Resynchronisationssignaladreßinformation des Kopfes anzeigt, der dem Startcode folgt, von dem Analysemittel (3, 6).
  2. Bilddecodierschaltung nach Anspruch 1, bei der das Datenverarbeitungsmittel (4, 1212, 1216, 1218, 1220) eine Mehrzahl von Pipelinestufen enthält, die die Verarbeitung auf eine Pipelineweise mit den Segmenten als Verarbeitungseinheiten ausführen, worin eine Pipelinestufe für jedes Segment verantwortlich ist, worin die Pipelinestufen bevorzugt enthalten: eine erste Pipelinestufe zum Ausführen des Ladens von vorhersagenden Bitdaten aus einer Speichereinrichtung (1230), variables Längendecodieren eines orthogonalen Transformationskoeffizienten des Datenblockes, der durch inverse Quantisierung davon gefolgt wird, eine zweite Pipelinestufe zum Erzeugen eines vorhersagenden Bildes aus den geladenen vorhersagenden Bildpixeldaten, eine dritte Pipelinestufe zum Ausführen einer inversen orthogonalen Transformationsverarbeitung der inversen quantisierten Pixeldaten und Wiederherstellen der Pixeldaten des Datenblockes aus den vorhersagenden Bildpixeldaten und den in versen orthogonalen transformationsverarbeitenden Pixeldaten, und eine vierte Pipelinestufe zum Schreiben der wiederhergestellten Pixeldaten in die Speichereinrichtung und/oder Mittel (1226, 1216, 1220) als Reaktion auf ein Fehlererfassungssignal zum Ausführen einer vorgeschriebenen Fehlerreparaturverarbeitung in den Pipelinestufen von einem Datenblock eines Segmentes, das vor einem Segment positioniert ist, an dem der Fehler erfaßt ist, in einer Verarbeitungsreihenfolge in dem Datenverarbeitungsmittel (4, 1212, 1216, 1214, 1218, 1220).
DE1996634052 1995-03-09 1996-02-16 Schaltung zur Bewegtbilddecodierung Expired - Fee Related DE69634052T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP04979895A JP3732867B2 (ja) 1995-03-09 1995-03-09 画像伸張装置
JP4979895 1995-03-09

Publications (2)

Publication Number Publication Date
DE69634052D1 DE69634052D1 (de) 2005-01-20
DE69634052T2 true DE69634052T2 (de) 2005-12-22

Family

ID=12841175

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69613873T Expired - Fee Related DE69613873T2 (de) 1995-03-09 1996-02-16 Schaltung zur Bewegtbilddecodierung
DE1996634052 Expired - Fee Related DE69634052T2 (de) 1995-03-09 1996-02-16 Schaltung zur Bewegtbilddecodierung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69613873T Expired - Fee Related DE69613873T2 (de) 1995-03-09 1996-02-16 Schaltung zur Bewegtbilddecodierung

Country Status (5)

Country Link
US (1) US5699117A (de)
EP (2) EP0731422B1 (de)
JP (1) JP3732867B2 (de)
KR (1) KR100232992B1 (de)
DE (2) DE69613873T2 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0793389B1 (de) * 1996-02-27 2001-08-16 STMicroelectronics S.r.l. Speicherverminderung für das Grundprofil und die Hauptebene eines MPEG-2-Dekoders
US6208689B1 (en) * 1996-03-04 2001-03-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for digital image decoding
KR100203266B1 (ko) * 1996-07-09 1999-06-15 윤종용 윤곽선복호화장치
US6208655B1 (en) 1996-11-27 2001-03-27 Sony Europa, B.V., Method and apparatus for serving data
US6128340A (en) * 1997-03-14 2000-10-03 Sony Corporation Decoder system with 2.53 frame display buffer
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6233356B1 (en) 1997-07-08 2001-05-15 At&T Corp. Generalized scalability for video coder based on video objects
US6993201B1 (en) 1997-07-08 2006-01-31 At&T Corp. Generalized scalability for video coder based on video objects
EP1788814A3 (de) * 1997-11-05 2008-10-15 Sony Corporation Vereinfachte Bewegungsdetektion im Zusammenhang mit einer Videotranskodierung mit Bildauflösungsumwandlung
US6728313B1 (en) * 1998-01-08 2004-04-27 Intel Corporation Method and apparatus for performing MPEG II dequantization and IDCT
TW398129B (en) * 1998-02-13 2000-07-11 Matsushita Electric Ind Co Ltd The Decoder and the decoding method of the same
EP0944263A1 (de) * 1998-03-20 1999-09-22 Texas Instruments Incorporated Bildkompression
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6563953B2 (en) * 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
AU754877B2 (en) * 1998-12-28 2002-11-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Method and devices for coding or decoding an audio signal or bit stream
MXPA01008928A (es) * 1999-03-05 2003-07-21 Toshiba Kk Aparato codificador de video y aparato decodificador de video.
JP2001113759A (ja) 1999-10-15 2001-04-24 Ricoh Co Ltd 画像データ出力装置
US7286724B2 (en) * 1999-12-06 2007-10-23 Hyundai Curitel, Inc. Method and apparatus for searching, browsing and summarizing moving image data using fidelity for tree-structure moving image hierarchy
JP4526145B2 (ja) * 1999-12-28 2010-08-18 富士通セミコンダクター株式会社 Mpegビデオ復号器およびmpegビデオ復号方法
JP2001275116A (ja) * 2000-03-24 2001-10-05 Sharp Corp 画像処理装置
JP3877947B2 (ja) * 2000-09-29 2007-02-07 パイオニア株式会社 符号化データの転送制御方法及び蓄積再生システム
US6678590B1 (en) * 2000-10-17 2004-01-13 Bbnt Solutions Llc Vehicle navigation system with vision system preprocessor using MPEG encoder
EP1217843B1 (de) * 2000-12-19 2012-11-28 Canon Kabushiki Kaisha Bildverarbeitungsverfahren, -vorrichtung und Aufzeichnungsmedium
JP2002271788A (ja) * 2001-03-08 2002-09-20 Monolith Co Ltd 画像符号化方法と装置および画像復号方法および装置
JP2003179929A (ja) * 2001-12-10 2003-06-27 Oki Electric Ind Co Ltd 画像復号化装置
EP2262269B1 (de) 2001-12-17 2018-01-24 Microsoft Technology Licensing, LLC Überspringen von Makroblock-Codierung
US7428338B2 (en) 2002-01-10 2008-09-23 Ricoh Co., Ltd. Header-based processing of images compressed using multi-scale transforms
US6826042B2 (en) * 2002-05-03 2004-11-30 Hewlett-Packard Development Company, L.P. Input device and methods and systems for same
CN101540925B (zh) 2003-04-10 2011-04-13 松下电器产业株式会社 将信息记录到信息记录介质的装置及方法
US7349428B2 (en) * 2003-06-30 2008-03-25 Broadcom Corporation Data alignment of the packetized elementary streams in the coded data buffer for dual decode
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7889792B2 (en) * 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
US7986731B2 (en) 2004-02-06 2011-07-26 Apple Inc. H.264/AVC coder incorporating rate and quality controller
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
US7453938B2 (en) * 2004-02-06 2008-11-18 Apple Inc. Target bitrate estimator, picture activity and buffer management in rate control for video coder
US7492820B2 (en) * 2004-02-06 2009-02-17 Apple Inc. Rate control for video coder employing adaptive linear regression bits modeling
US7415161B2 (en) * 2004-03-25 2008-08-19 Faraday Technology Corp. Method and related processing circuits for reducing memory accessing while performing de/compressing of multimedia files
US20050286629A1 (en) * 2004-06-25 2005-12-29 Adriana Dumitras Coding of scene cuts in video sequences using non-reference frames
US7978761B2 (en) * 2004-10-05 2011-07-12 Vectormax Corporation Method and system for loss-tolerant multimedia multicasting
JP4281722B2 (ja) * 2004-10-26 2009-06-17 ソニー株式会社 再生装置、再生方法、プログラムおよび記録媒体
TWI266539B (en) * 2005-01-13 2006-11-11 Via Tech Inc Decoding device with multi-buffers
KR100785855B1 (ko) * 2005-07-19 2007-12-14 한국전자통신연구원 향상된 snr 스케일러빌리티 제공을 위한 양자화 장치 및방법
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
JP2007053554A (ja) * 2005-08-17 2007-03-01 Sony Corp 符号化装置、符号化方法、復号装置、復号方法およびプログラム
US8937997B2 (en) 2006-03-16 2015-01-20 Apple Inc. Scalable video coding/multiplexing compatible with non-scalable decoders
US7813565B2 (en) * 2006-04-05 2010-10-12 Sharp Kabushiki Kaisha Image processing apparatus, image forming apparatus, and image processing method
US7456760B2 (en) * 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
US20080095238A1 (en) * 2006-10-18 2008-04-24 Apple Inc. Scalable video coding with filtering of lower layers
JP4821907B2 (ja) * 2007-03-06 2011-11-24 日本電気株式会社 メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム
KR101037642B1 (ko) * 2007-03-20 2011-05-30 후지쯔 가부시끼가이샤 디코딩 방법, 디코더 및 디코딩 장치
KR101086435B1 (ko) * 2007-03-29 2011-11-25 삼성전자주식회사 영상 데이터 스트림의 에러 검출 방법 및 그 장치
WO2009047697A2 (en) * 2007-10-08 2009-04-16 Nxp B.V. System and method for error concealment
JP5194762B2 (ja) * 2007-12-14 2013-05-08 ヤマハ株式会社 データ圧縮装置およびデータ伸張装置
US20090304086A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
US20090323807A1 (en) * 2008-06-30 2009-12-31 Nicholas Mastronarde Enabling selective use of fractional and bidirectional video motion estimation
JP5206960B2 (ja) * 2008-10-29 2013-06-12 株式会社メガチップス 画像圧縮装置
JP2011066844A (ja) * 2009-09-18 2011-03-31 Toshiba Corp 並列復号装置及びプログラム並びに符号化データの並列復号方法
WO2012042890A1 (ja) * 2010-09-30 2012-04-05 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、プログラムおよび集積回路
US8976856B2 (en) 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
JP2013009272A (ja) * 2011-06-27 2013-01-10 Toshiba Corp 画像符号化装置、方法及びプログラム、並びに、画像復号化装置、方法及びプログラム
KR102157672B1 (ko) * 2013-11-15 2020-09-21 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
WO2016157724A1 (ja) * 2015-03-27 2016-10-06 パナソニックIpマネジメント株式会社 動画像復号装置
US10489159B2 (en) 2016-12-21 2019-11-26 Microsoft Technology Licensing, Llc Pipelined decompression of sliding window compressed data
US10483981B2 (en) 2016-12-30 2019-11-19 Microsoft Technology Licensing, Llc Highspeed/low power symbol compare
US10691361B2 (en) * 2017-02-24 2020-06-23 Microsoft Technology Licensing, Llc Multi-format pipelined hardware decompressor
US10735826B2 (en) * 2017-12-20 2020-08-04 Intel Corporation Free dimension format and codec
KR102388807B1 (ko) * 2018-12-17 2022-04-20 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수 스캔 순서를 결정하는 방법 및 장치
US20230004533A1 (en) * 2021-07-01 2023-01-05 Microsoft Technology Licensing, Llc Hybrid intermediate stream format

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291306A (en) * 1989-09-25 1994-03-01 Canon Kabushiki Kaisha Image reproducing apparatus
CA2062200A1 (en) * 1991-03-15 1992-09-16 Stephen C. Purcell Decompression processor for video applications
CA2096584A1 (en) * 1992-05-28 1993-11-29 Frank H. Liao Variable length code decoder for video decompression operations
US5440345A (en) * 1992-07-17 1995-08-08 Kabushiki Kaisha Toshiba High efficient encoding/decoding system
JP3190755B2 (ja) * 1993-01-22 2001-07-23 株式会社東芝 復号装置
FR2705805B1 (fr) * 1993-05-27 1996-06-28 Sgs Thomson Microelectronics Système de traitement d'images.
US5596369A (en) * 1995-01-24 1997-01-21 Lsi Logic Corporation Statistically derived method and system for decoding MPEG motion compensation and transform coded video data

Also Published As

Publication number Publication date
DE69613873D1 (de) 2001-08-23
DE69613873T2 (de) 2002-04-04
DE69634052D1 (de) 2005-01-20
EP1085465A3 (de) 2001-06-27
EP0731422A3 (de) 1997-05-28
EP1085465B1 (de) 2004-12-15
KR960035340A (ko) 1996-10-24
EP1085465A2 (de) 2001-03-21
JP3732867B2 (ja) 2006-01-11
EP1085465A9 (de) 2001-06-27
EP1085465A8 (de) 2001-07-25
KR100232992B1 (ko) 1999-12-01
EP0731422A2 (de) 1996-09-11
EP0731422B1 (de) 2001-07-18
JPH08251595A (ja) 1996-09-27
US5699117A (en) 1997-12-16

Similar Documents

Publication Publication Date Title
DE69634052T2 (de) Schaltung zur Bewegtbilddecodierung
DE69735402T2 (de) System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz
DE69825710T2 (de) Audio-Video Dekodierungssystem
DE69622878T2 (de) Verfahren und anlage zur anwendung von wiedergabebesonderheiten für komprimierte videodaten
DE69510414T2 (de) System zur Dekompression komprimierter Videodaten mit ununterbrochenem Datenstrom am Videoausgang
DE69529137T2 (de) Szenenänderungsadaptiver Bildkodierer
DE69519886T2 (de) Bilddekodierer
DE69430877T2 (de) Bildkodierungsverfahren und -vorrichtung
DE69632231T2 (de) Kodierung und Dekodierung von Bewegtbildern
DE69325221T2 (de) Kodierung und Dekodierung von digitalen Bildsignalen
DE69524556T2 (de) Verarbeitungsverfahren für digitale Bewegtbildersignale
DE69526470T2 (de) Verfahren und Vorrichtung für die effiziente Adressierung des DRAMs eines Videodekompressionsprozessors
DE69227402T2 (de) Signalverarbeitungseinrichtung mit hohem Wirkungsgrad und Verminderung des Einflusses von Fehlerausbreitungen
DE69433272T2 (de) Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales
DE69604064T2 (de) Bilddekodiergerät und methode unter verwendung eines nicht-referenzbildes als zusätzliche vorhersagequelle
DE69434395T2 (de) Kodierung und/oder Dekodierung von sich bewegenden Bildern
DE19521973C2 (de) Bilddecodiervorrichtung
DE69813911T2 (de) VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG
DE60130180T2 (de) Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm
DE69524896T2 (de) Wiedergabe von Videobildern mit erhöhter Geschwindigkeit
US5745180A (en) Low-delay encoding methods of moving pictures
DE60123168T2 (de) MPEG-Dekoder
DE69614675T2 (de) MPEG-2 Dekodierung mit reduziertem RAM Bedürfnis durch ADPCM Rekomprimierung vor der Speicherung von dekomprimierten MPEG-2 Daten, wahlweise nach einem Unterabtastungsalgorithmus
DE19709391A1 (de) MPEG-Codier- und Decodiersystem für Multimediaanwendungen
DE69627920T2 (de) Speichersteuerungsanordnung und Bilddekodierer damit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee