DE4408522C2 - Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten - Google Patents

Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten

Info

Publication number
DE4408522C2
DE4408522C2 DE19944408522 DE4408522A DE4408522C2 DE 4408522 C2 DE4408522 C2 DE 4408522C2 DE 19944408522 DE19944408522 DE 19944408522 DE 4408522 A DE4408522 A DE 4408522A DE 4408522 C2 DE4408522 C2 DE 4408522C2
Authority
DE
Germany
Prior art keywords
data
pixel
processing
image
variable length
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
DE19944408522
Other languages
English (en)
Other versions
DE4408522A1 (de
Inventor
Tetsuya Matsumura
Shinichi Nakagawa
Hiroshi Segawa
Kazuya Ishihara
Satoshi Kumaki
Atsuo Hanami
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
Priority to DE4447554A priority Critical patent/DE4447554C2/de
Priority to DE4447552A priority patent/DE4447552C2/de
Priority to DE4447553A priority patent/DE4447553C2/de
Publication of DE4408522A1 publication Critical patent/DE4408522A1/de
Application granted granted Critical
Publication of DE4408522C2 publication Critical patent/DE4408522C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Memory System (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Dram (AREA)

Description

Die vorliegende Erfindung betrifft eine Vorrichtung zur Bilddatenverarbeitung und ein Verfahren zur Verarbeitung von Bilddaten.
Internationale Standardspezifikationen zur Bilddatenkompres­ sion und -expansion sind durch die "International Organization for Standardization", nachstehend als "ISO" bezeichnet, das "International Telegraph and Telephone Consultative Committee", nachstehend als "CCITT" bezeichnet, derzeit als ITu-T bekannt, und das "International Electrical Committee", nachstehend als "IEC", bezeichnet, aufgestellt worden. Bei den internationalen Standardspezifikationen ist die JPEG- Spezifikation durch die "Joint Photographic Expert Group" der ISO und des CCITT aufgestellt worden, und sie legt Kompressions- und Expansionsalgorithmen für Farb- Festbilder fest. Inzwischen wurde nun die MPEG-Spezifikation durch die "Moving Picture Expert Group" der ISO und des IEC aufgestellt, und sie legt Kompressions- und Expansionsalgorithmen für Farb- Bewegtbilder fest. Ferner wurde nun die H.261-Spezifikation vom CCITT aufgestellt, welche einen Kompressions- und Expansionsalgorithmus für Videokonferenz und Videofernsprechen festlegt. Fig. 69 stellt ein Blockschaltbild dar, welches die Hauptprozesse in einem durch die internationale Standard­ spezifikation empfohlenen Bildkompressionsalgorithmus zeigt. Unter Bezugnahme auf Fig. 69 umfaßt der Bildkompressions­ prozeß grundsätzlich ein voraussehendes Codieren, ein orthogonales Transformieren und ein Codieren mit variabler Länge. Wie aus der Fig. 69 zu ersehen ist, umfaßt jede der JPEG-, MPEG- und H.261-Spezifikationen beim Bildkompressions­ prozeß ein diskretes Kosinustransformieren (nachstehend als "DCT" bezeichnet), eine Quantisierung sowie ein Huffman- Codieren.
Die JPEG-Spezifikation zur Verarbeitung eines Farb-Festbildes umfaßt als Grundsystem beispielsweise: adaptive DCT, Quantisierung, differentielle Pulscodemodulation (DPCM) und Huffman-Codierung. Die JPEG-Spezifikation umfaßt ein erweitertes System, adaptive DCT, hierarchische Kodierung, arithmetische Kodierung und adaptive Huffman-Kodierung.
Die MPEG-Spezifikation zur Bewegtbildspeicherung umfaßt eine Bewegungskompensation/Zwischenbildvoraussage, DCT, Quantisierung und Huffman-Codierung. Die H.261-Spezifikation für Videofernsprechen und Videokonferenz umfaßt: Bewegungs­ kompensation/Zwischenbildvoraussage, DCT, Quantisierung und Huffman-Codierung.
Eine LSI zur Bildkompression gemäß der vorstehenden internationalen Standardspezifikation ist entwickelt worden, und ein Entwurf derselben ist zum Beispiel in einem mit "LSI for Image Processing" benannten Artikel im Journal of the Institute of Television Engineers of Japan, Band 46, Nr. 31, Seiten 253-260, 1992 offenbart. Es wird angemerkt, daß die vorliegende Erfindung im allgemeinen bei einer Vorrichtung zur Bilddatenkompression, einer Vorrichtung zur Bilddatenexpansion und einem Bilddatenprozessor zur Bildkompression und/oder -expansion gemäß den vorstehend beschriebenen internationalen Standardspezifikationen verwendbar ist.
Fig. 70 stellt ein Blockschaltbild einer herkömmlichen Vorrichtung zur Bildkompression/-expansion dar. Unter Bezugnahme auf Fig. 70 umfaßt die Vorrichtung zur Bild­ kompression/-expansion einen Digitalsignalprozessor (nach­ stehend als "DSP" bezeichnet) 900 zur Bilddatenverarbeitung, einen Bilddatenspeicher 907, einen Codedatenspeicher 908, einen Anzeigespeicher 909 und einen Arbeitsspeicher 910. Der DSP 900 ist mit den Speichern 907 bis 910 durch einen internen Bus 940 verbunden.
Fig. 71 stellt ein Blockschaltbild des in Fig. 70 gezeigten DSP 900 dar. Unter Bezugnahme auf Fig. 71 umfaßt der DSP 900 einen Anweisungsspeicher 901, eine Programmsteuereinrichtung 902, einen Datenspeicher 903, einen Datenoperator 904 und eine externe Schnittstelle 905. Ein Systembus 941 verbindet die Programmsteuereinrichtung 902, den Datenspeicher 903, den Datenoperator 904 und die externe Schnittstelle 905 mit­ einander. Im Betrieb wird ein im Anweisungsspeicher 901 gespeicherter (oder programmierter) Anweisungscode gelesen und der Programmsteuereinrichtung 902 zugeführt. Die Programm­ steuereinrichtung 902 decodiert den zugeführten Anweisungscode und erzeugt verschiedene Steuersignale. In Reaktion auf die aus der Programmsteuereinrichtung 902 zugeführten Steuer­ signale empfängt der Datenoperator 904 durch die externe Schnittstelle 905 und den Datenspeicher 903 externe Daten und führt seine Operation aus. Das Ergebnis der Operation wird im Datenspeicher 903 gespeichert oder durch die externe Schnittstelle 905 ausgegeben. Auf diese Weise wird im DSP 900 der Prozeß gemäß dem im Anweisungsspeicher 901 gespeicherten Anweisungscode ausgeführt.
Ein Betrieb der Bilddatenkompression wird unter Bezugnahme auf die Fig. 70 und 71 beschrieben werden. Dabei wird ange­ nommen, daß die zu komprimierenden Bilddaten im Bilddaten­ speicher 907 gespeichert sind. Zuerst werden die Bilddaten, die im Bilddatenspeicher 907 gespeichert worden sind, in den Datenspeicher 903 im DSP 900 übertragen. Die im Datenspeicher 903 gespeicherten Bilddaten weisen ein Format auf, das durch den Datenoperator 904 umgewandelt wurde. Bei der Umwandlung werden abgetastete Daten des Farbdifferenzsignals oder RGB- Format-Daten zum Beispiel in YUV-Format-Daten umgewandelt. Die umgewandelten Daten werden im Datenspeicher 903 zeitweilig gespeichert. Der DSP 900 überträgt die umgewandelten Daten im Datenspeicher 903 in den Bilddatenspeicher 907.
Dann legt der DSP 900 unter Verwendung der im Bilddaten­ speicher 907 gespeicherten Daten einen Bildkompressionsmodus fest. Zwischenbildkompressionsmodus, Innenbildkompressions­ modus und dergleichen sind als Bildkompressionsmodi bekannt. Im Zwischenbildkompressionsmodus wird manchmal ein Prozeß, wie beispielsweise eine Bewegungsvoraussage (oder -ermittlung), erforderlich. Berechnungsdaten zum Bestimmen des Kompressions­ modus und Berechnungsdaten zur Bewegungsermittlung werden zum Beispiel durch Ausführen einer Summation der Differenz- Absolutwerte der Bilddaten erhalten. Wenn eine derartige Operation ausgeführt wird, dann überträgt der DSP 900 die im Bilddatenspeicher 907 gespeicherten Daten in gleichartiger Weise wie bei der Formatumwandlung in den Datenspeicher 903, und der Datenoperator 904 verarbeitet die im Datenspeicher 903 gespeicherten Daten.
Auf Grundlage der durch die obengenannte Operation erhaltenen Berechnungsdaten legt der DSP 900 den Kompressionsmodus durch Bezugnahme auf im Arbeitsspeicher 910 gespeicherte Tabellendaten zur Modusbestimmung und/oder durch Ausführen einer Vergleichsoperation der Berechnungsdaten fest.
Nach der Festlegung des Kompressionsmodus führt der DSP 900 eine Umwandlungscodierung der im Bilddatenspeicher 907 gespeicherten Bilddaten durch. Das Umwandlungscodieren stellt beispielsweise die DCT dar. Der DSP 900 überträgt die im Bilddatenspeicher 907 gespeicherten Daten in den internen Speicher 903, und dann führt der Datenoperator 904 das DCT aus. Die verarbeiteten Daten werden im Datenspeicher 903 gehalten.
Ferner führt der DSP 900 ein Codieren mit variabler Länge (oder ein Entropiecodieren) aus. Das Ccdieren mit variabler Länge ist als Codeumwandlung bekannt, welche zum Beispiel den Huffman-Code verwendet. Der DSP 900 führt das Codieren mit variabler Länge der im Datenspeicher 903 gespeicherten Daten unter Bezugnahme auf eine im Arbeitsspeicher 910 gespeicherte Codeumwandlungstabelle aus. Nach der Codeumwandlung werden die verarbeiteten Daten aus dem Datenspeicher 903 in den Code­ datenspeicher 903 übertragen und darin gespeichert.
Die Bilddatenverarbeitung zur Bildkompression wird in der vorstehend beschriebenen Weise ausgeführt, und die Bilddatenverarbeitung zur Bildexpansion wird ebenfalls in gleichartiger Weise durchgeführt. Insbesondere werden die zu expandierenden Daten dem Datenspeicher 903 im DSP 900 einmal zugeführt, und die Prozesse zur Bildexpansion werden durch den Datenoperator 904 an den gespeicherten Daten ausgeführt.
Wie vorstehend beschrieben, werden in der herkömmlichen Vorrichtung zur Bildkompression/-expansion die Bilddaten­ kompression und -expansion durch den DSP 900 mit einem einzigen Datenoperator 904 durchgeführt, und daher benötigt die Datenverarbeitung viel Zeit. Da der DSP 900 ferner nur ein Eingangs-/Ausgangsport (das heißt eine externe Schnittstelle 905) für die Daten aufweist, kann die Datenübertragung in der Vorrichtung zur Bildkompression/-expansion nicht wirksam ausgeführt werden, wenn eine große Menge von Bilddaten verarbei­ tet wird.
Aus der DE 37 11 200 A1 ist ein Binärdatenverdichtungs/ dehnungs-Verarbeitungsgerät bekannt, das Binärdaten nach dem Pipeline-Verfahren parallel zu dekodieren vermag, die durch die MH-, die MR- oder die M²R-Methode codiert worden sind.
Aus der DE-Z: Fernseh- und Kino-Technik, 46. Jahrgang, Nr. 9/1992, Seiten 597 bis 607, ist ein Verfahren zur Verarbeitung von Daten variabler Länge bekannt.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Vor­ richtung zur Bilddatenverarbeitung und ein Verfahren zur Verar­ beitung von Bilddaten vorzusehen, welches zur Hochgeschwindig­ keits-Verarbeitung geeignet ist.
Die Aufgabe wird durch die Vorrichtung zur Bilddatenverarbeitung der Ansprüche 1, 23, 24 und 25 und durch das Verfahren zur Ver­ arbeitung von Bilddaten der Ansprüche 35 und 36 gelöst.
Durch den Aufbau der Vorrichtung zur Bilddatenverarbeitung nach Anspruch 1 steuert die Steuereinrichtung die Pipelineverarbeitung einer Mehrzahl von vorbestimmten Prozessen zur Bilddatenkompression und/oder Bilddatenexpansion, so daß die Bilddaten mit hoher Geschwindigkeit verarbeitet werden können.
Bei der Vorrichtung zur Bilddatenverarbeitung nach Anspruch 23 wählt die Auswahleinrichtung in Reaktion auf das aus der Leseeinrichtung zur Verfügung gestellte Flag zur Verarbeitung eines Codes festgelegter Länge entweder den Code variabler Länge oder den Code festgelegter Länge aus, so daß die Bestimmung gemäß dem Programm erheblich vereinfacht werden kann und die Bilddaten mit hoher Geschwindigkeit verarbeitet werden können.
Bei der Vorrichtung zur Bilddatenverarbeitung nach Anspruch 24 wählt die Auswahleinrichtung in Reaktion auf das aus der Leseeinrichtung zur Verfügung gestellte Flag zur Verarbeitung einer festgelegten Länge entweder die Laufdaten und die Pegelaten oder die decodierten Daten aus, so daß die Bestimmung gemäß dem Programm wesentlich vereinfacht werden kann und die Bilddaten mit hoher Geschwindigkeit verarbeitet werden können.
Bei der Vorrichtung zur Bilddatenverarbeitung nach Anspruch 25 wählt die Pixelverarbeitungseinrichtung die Referenzdaten zur Bewegungsvoraussage durch das erste und das zweite Datenport zur Verfügung, welche Daten in der entsprechenden ersten und zweiten Pixeldaten-Speichereinrichtung gespeichert werden, wobei die in der zweiten Pixeldaten- Speichereinrichtung gespeicherten Referenzdaten zur Bewegungs­ voraussage durch den zweiten Pixeldatenbus in die Verarbeitungseinrichtung zur Bewegungsvoraussage übertragen werden und die Verarbeitungseinrichtung zur Bewegungsvoraussage die Bewegungsvoraussage ausführt und einen Bewegungsvektor erzeugt.
Im Ergebnis können die Daten bei wirksam verteilter Datenmenge effektiv übertragen werden, wobei die durch einen Pfad übertragene Datenmenge verkleinert werden kann, so daß die tatsächliche Datenübertragungsgeschwindigkeit verbessert werden kann und die Bilddaten mit hoher Geschwindigkeit ver­ arbeitet werden können.
Durch das Verfahren des Anspruchs 35 können alle Verarbeitungen der Mehrzahl von Makroblockdaten in einer pipelineartigen Weise ausgeführt werden, so daß die Bilddaten­ kompression mit hoher Geschwindigkeit ausgeführt werden kann.
Durch das Verfahren des Anspruchs 36 kann eine eine Mehrzahl von Codes variabler Länge umfassende Codefolge variabler Länge durch Pipelineverarbeitung decodiert werden, und die Bilddaten können daher mit hoher Geschwindigkeit expandiert werden.
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
Es folgt die Beschreibung von Ausführungsformen der Erfindung. Von den Figuren zeigt
Fig. 1 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welche eine erste Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 2 ein Blockschaltbild, welches die Prozesse zur Bildkompression bei der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-expansion zeigt;
Fig. 3 ein Blockschaltbild, welches die Prozesse zur Bildexpansion durch die in Fig. 1 dargestellte Vorrichtung zur Bildkompression/-expansion zeigt
Fig. 4 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welche eine zweite Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 5 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welche eine dritte Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 6 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welche eine vierte Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 7 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welche eine fünfte Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 8 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welche eine sechste Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 9 ein Blockschaltbild, welches ein Beispiel einer Steuereinheit zeigt;
Fig. 10 ein Blockschaltbild, welches ein anderes Beispiel der Steuereinheit zeigt;
Fig. 11 ein Zeitablaufdiagramm, welches die Pipelineverarbeitung zeigt, die unter der Steuerung eines in Fig. 9 dargestellten Gesamtsteuerungsprozessors ausgeführt wird;
Fig. 12 Paralleloperationen in einem in Fig. 11 gezeigten Zeitabschnitt T10;
Fig. 13 ein Blockschaltbild eines in Fig. 9 dargestellten Prozessors zur Gesamtsteuerung;
Fig. 14 ein Blockschaltbild einer in Fig. 9 dargestellten Steuereinheit zur Bewegungsvoraussage;
Fig. 15 ein Blockschaltbild einer in Fig. 9 dargestellten Einheit zur Bildformat-Umwandlung;
Fig. 16 ein Blockschaltbild der in Fig. 9 dargestellten Steuereinheit zur Bilddatenübertragung;
Fig. 17 ein Blockschaltbild einer in Fig. 9 dargestellten Einheit zur Anweisungsübertragung;
Fig. 18 ein Blockschaltbild, welches ein Beispiel einer Pixelverarbeitungseinheit zeigt;
Fig. 19 ein detailliertes Blockschaltbild der in Fig. 18 dargestellten Pixelverarbeitungseinheit;
Fig. 20 ein Blockschaltbild, welches ein anderes Beispiel der Pixelverarbeitungseinheit zeigt;
Fig. 21 ein detailliertes Blockschaltbild der in Fig. 20 dargestellten Pixelverarbeitungseinheit;
Fig. 22 ein Flußdiagramm, das den Codierbetrieb (die Innenbildvoraussage) bei der in Fig. 19 dargestellten Pixelverarbeitungseinheit zeigt;
Fig. 23 ein Flußdiagramm, welches den Decodierbetrieb (die Innenbildvoraussage) in der in Fig. 19 dargestellten Pixelverarbeitungseinheit zeigt;
Fig. 24 ein Flußdiagramm des Codierbetriebs (Zwei-Weg- Voraussage) bei der in Fig. 19 dargestellten Pixelverarbeitungseinheit;
Fig. 25 ein Flußdiagramm des Decodierbetriebs (Zwei- Wege-Voraussage) bei der in Fig. 19 dargestellten Pixelverarbeitungseinheit;
Fig. 26 ein Zeitablaufdiagramm, das die Pipelineverarbeitung zum Codieren bei der in Fig. 19 dargestellten Pixelverarbeitungseinheit zeigt;
Fig. 27 ein Zeitablaufdiagramm, das die Pipelineverarbeitung bei der Innenbildvoraussage bei der in Fig. 19 dargestellten Pixelverarbeitungseinheit zeigt;
Fig. 28 ein Zeitablaufdiagramm, das die Pipelineverarbeitung bei der Ein-Weg- Verarbeitung in der in Fig. 19 dargestellten Pixelverarbeitungseinheit zeigt;
Fig. 29 ein Zeitablaufdiagramm, das die Pipelineverarbeitung bei der Zwei-Weg- Verarbeitung in der in Fig. 19 dargestellten Pixelverarbeitungseinheit zeigt;
Fig. 30 ein Blockschaltbild, welches einen ersten Systemaufbau zur Verarbeitung einer variablen Länge zeigt;
Fig. 31 ein Flußdiagramm des Codierens mit variabler Länge bei dem in Fig. 30 dargestellten ersten Systemaufbau;
Fig. 32 ein Flußdiagramm des Decodierens mit variabler Länge bei dem in Fig. 30 dargestellten ersten Systemaufbau;
Fig. 33 einen Datenspeicheraufbau eines Tabellenspeichers für das in Fig. 30 dargestellte Codieren einer variablen Länge;
Fig. 34 einen Datenspeicheraufbau eines Tabellenspeichers für das in Fig. 30 dargestellte Decodieren mit variabler Länge;
Fig. 35 ein Flußdiagramm, welches einen Prozeß zum Erzeugen einer Codefolge variabler Länge darstellt;
Fig. 36 ein Blockschaltbild, das ein erstes Beispiel eines Prozessors für variable Längen zeigt;
Fig. 37 ein Blockschaltbild, das ein zweites Beispiel eines Prozessors für variable Längen zeigt;
Fig. 38 ein Blockschaltbild, das ein drittes Beispiel eines Prozessors für variable Längen zeigt;
Fig. 39 ein Blockschaltbild, das einen zweiten Systemaufbau für die Verarbeitung einer variablen Länge zeigt;
Fig. 40 ein Blockschaltbild des in Fig. 39 dargestellten Prozessors für variable Längen;
Fig. 41 ein Blockschaltbild des in Fig. 40 dargestellten Adreßgenerators;
Fig. 42 ein Flußdiagramm des Codierens einer variablen Länge in dem in Fig. 41 dargestellten Adreßgenerator;
Fig. 43 ein Flußdiagramm des Decodierens mit variabler Länge im in Fig. 41 dargestellten Adreßgenerator;
Fig. 44 ein Blockschaltbild der in Fig. 40 dargestellten Schaltung zum Erzeugen/Trennen einer Codefolge variabler Länge;
Fig. 45 ein Flußdiagramm des Codierens mit variabler Länge in der in Fig. 44 dargestellten Schaltung zum Erzeugen/Trennen einer Codefolge variabler Länge;
Fig. 46 ein Flußdiagramm des Decodierens mit variabler Länge in der in Fig. 44 dargestellten Schaltung zum Erzeugen/Trennen einer Codefolge variabler Länge;
Fig. 47 ein Blockschaltbild einer in Fig. 40 dargestellten externen Schnittstellenschaltung;
Fig. 48 ein Flußdiagramm des Codierens mit variabler Länge bei der in Fig. 47 dargestellten externen Schnittstellenschaltung;
Fig. 49 ein Flußdiagramm des Decodierens mit variabler Länge bei der in Fig. 47 dargestellten externen Schnittstellenschaltung;
Fig. 50 eine Tabelle aus Gruppen von Codes variabler Länge, welche im in Fig. 39 dargestellten Prozessor variable Längen verwendet wird;
Fig. 51 das Datenformat der Daten, die im Tabellenspeicher für das in Fig. 39 dargestellte Codieren mit variabler Länge gespeichert sind;
Fig. 52 das Datenformat der beim Codieren mit variabler Länge zu codierenden Daten;
Fig. 53 den Grundaufbau der Speicherzellenanordnung in einem Bildpufferspeicher;
Fig. 54 das Blockschaltbild eines Bildpufferspeichers;
Fig. 55 einen Systemaufbau des Bildpufferspeichers, der DRAMs verwendet;
Fig. 56 eine Pixelanordnung, welche die Beziehung zwischen den Daten, die im in Fig. 55 dargestellten Bildpufferspeicher gespeichert sind, und den Pixeln auf dem Bildschirm zeigt;
Fig. 57 eine Pixelanordnung, welche die Beziehung zwischen den Daten, die im in Fig. 60 dargestellten Bildpufferspeicher gespeichert sind, und den Pixeln auf dem Bildschirm zeigt;
Fig. 58 eine Pixelanordnung, welche das Adressieren durch eine in Fig. 55 dargestellte DRAM- Steuereinrichtung darstellt;
Fig. 59 ein Zeitablaufdiagramm, welches den Lesebetrieb eines Bildpufferspeichers unter der Steuerung der in Fig. 55 dargestellten DRAM- Steuereinrichtung zeigt;
Fig. 60 einen Systemaufbau eines Bildpufferspeichers, der SDRAMs verwendet;
Fig. 61 ein Zeitablaufdiagramm, das den Lesebetrieb des SDRAMs zeigt;
Fig. 62 ein Beispiel des Betriebs des in Fig. 60 dargestellten Adreßgenerators;
Fig. 63 ein Zeitablaufdiagramm, welches ein Beispiel des Betriebs des in Fig. 60 dargestellten Adreßgenerators zeigt;
Fig. 64 ein Zeitablaufdiagramm, welches ein anderes Beispiel des Betriebs des in Fig. 60 dargestellten Adreßgenerators zeigt;
Fig. 65 ein Zeitablaufdiagramm, welches ein weiteres Beispiel des Betriebs des in Fig. 60 dargestellten Adreßgenerators zeigt;
Fig. 66 ein Blockschaltbild des in Fig. 60 dargestellten Adreßgenerators;
Fig. 67 eine Adresse-Seite-Entsprechung, welche eine Beziehung zwischen Seiten sowie Zeilen- und Spaltenadressen zeigt, welche von dem in Fig. 66 dargestellten Adreßgenerator vorgesehen wird;
Fig. 68 eine Seite-Pixel-Entsprechung, welche eine in Fig. 67 dargestellte Beziehung zwischen den Seiten und den Pixeln auf dem Bildschirm zeigt;
Fig. 69 ein Blockschaltbild, welches Hauptprozesse gemäß einem durch eine internationale Standardspezifikation empfohlenen Bildkompressionsalgorithmus zeigt;
Fig. 70 ein Blockschaltbild einer herkömmlichen Vorrichtung zur Bildkompression/-expansion;
Fig. 71 ein Blockschaltbild des in Fig. 70 dargestellten DSP;
Fig. 72 eine Darstellung eines ersten Verfahrens zum Abbilden von Pixeldaten auf den Bildschirm an einem Bildpufferspeicher;
Fig. 73 eine erste Darstellung der Übertragung eines Datengebiets, welches 8 Pixel in der horizontalen Richtung und 8 Pixel in der vertikalen Richtung umfaßt;
Fig. 74 eine zweite Darstellung der Übertragung eines Datengebiets, welches 8 Pixel in der horizontalen Richtung und 8 Pixel in der vertikalen Richtung umfaßt;
Fig. 75 eine dritte Darstellung der Übertragung eines Datengebiets, welches 8 Pixel in der horizontalen Richtung und 8 Pixel in der vertikalen Richtung umfaßt;
Fig. 76 eine vierte Darstellung der Übertragung eines Datengebiets, welches 8 Pixel in der horizontalen Richtung und 8 Pixel in der vertikalen Richtung umfaßt;
Fig. 77 eine Darstellung eines zweiten Verfahrens zum Abbilden von Pixeldaten auf dem Bildschirm am Bildpufferspeicher;
Fig. 78 ein erstes Verfahren zum Abbilden erster und zweiter Farbdifferenz-Pixeldaten auf einen Bildpufferspeicher;
Fig. 79 ein zweites Verfahren zum Abbilden erster und zweiter Farbdifferenz-Pixeldaten auf einen Bildpufferspeicher;
Fig. 80 ein drittes Verfahren zum Abbilden erster und zweiter Farbdifferenz-Pixeldaten auf einen Bildpufferspeicher;
Fig. 81 ein viertes Verfahren zum Abbilden erster und zweiter Farbdifferenz-Pixeldaten auf einen Bildpufferspeicher;
Fig. 82 einen Betrieb des Prozessors zur Gesamtsteuerung zur Zeit des Codierens der Zwei-Weg-Voraussage;
Fig. 83 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine siebente Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 84 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine achte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 85 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine neunte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 86 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine zehnte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 87 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine elfte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 88 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine zwölfte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 89 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine dreizehnte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 90 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine vierzehnte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 91 ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion, welches eine fünfzehnte Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 92 ein Blockschaltbild, welches ein weiteres Beispiel der Steuereinheit darstellt;
Fig. 93 ein Blockschaltbild, welches ein weiteres Beispiel der Pixelverarbeitungseinheit zeigt;
Fig. 94 ein erstes detailliertes Blockschaltbild der in Fig. 93 dargestellten Pixelverarbeitungs­ einheit; und
Fig. 95 ein zweites detailliertes Blockschaltbild der in Fig. 18 dargestellten Pixelverarbeitungs­ einheit.
Im folgenden werden Vorrichtungen zur Bildkompression/ -expansion (oder Systeme zur Bildkompression/ -expansion) beschrieben werden, welche erste bis fünfzehnte Ausführungsformen der vorliegenden Erfindung darstellen. Der Systemaufbau dieser Ausführungsformen wird zuerst beschrieben werden, gefolgt von einer Beschreibung des internen System­ aufbaus.
1. Systemaufbau Die erste Ausführungsform
Fig. 1 stellt ein Blockschaltbild einer Vorrichtung zur Bild­ kompression/-expansion 101 dar, welche eine erste Ausführungs­ form der vorliegenden Erfindung darstellt. Unter Bezugnahme auf Fig. 1 umfaßt die Vorrichtung zur Bildkompression/-ex­ pansion 101: eine Schaltung einer Host-Schnittstelle (I/F) 1 zum Eingeben/Ausgeben in und aus einem Host-Computer 93; eine Steuereinheit 2, welche zwei Prozessoren (nicht dargestellt) umfaßt; eine Pixelverarbeitungseinheit 3 zum DCT und zur Quantisierung; eine Einheit zur Bewegungsvoraussage (oder -er­ mittlung) 41; einen Bildpufferspeicher 51 zum Speichern von zu verarbeitenden Bilddaten; einen Pufferspeicher 6 zum Speichern von Codedaten; einen Arbeitsspeicher 7 zum Speichern von Tabellendaten, die für verschiedene Umwandlungen erforderlich sind; und einen Eingabe-/Ausgabespeicher 81 zum Speichern der Bilddaten aus einer TV-Kamera 91 und/oder zum Anlegen der gespeicherten Bilddaten an eine Anzeigevorrichtung (CRT) 92.
Ein Host-Bus HB weist eine Busbreite von 24 Bit (in der Figur durch "24b" bezeichnet) auf und ist zur Datenübertragung jeweils zwischen der Host-Schnittstellen-Schaltung 1, der Steuereinheit 2, der Pixelverarbeitungseinheit 3, dem Pufferspeicher 6 und dem Arbeitsspeicher 7 vorgesehen. Ein Pixeldatenbus PB weist eine Busbreite von 32 Bit (32b) auf und ist zur Datenübertragung jeweils zwischen der Steuereinheit 2, der Pixelverarbeitungseinheit 3, der Einheit zur Bewegungs­ voraussage 41 und dem Bildpufferspeicher 51 vorgesehen. Ein Codedatenbus CB weist eine Busbreite von 16 Bit (16b) auf und ist zur Codedatenübertragung zwischen der Steuereinheit 2, der Pixelverarbeitungseinheit 3 und dem Pufferspeicher 6 vorge­ sehen. Ein Eingabe-/Ausgabebus IOB weist eine Busbreite von 24 Bit (24b) auf und ist zur Datenübertragung zwischen der Steuereinheit 2 und dem Eingabe-/Ausgabespeicher 81 vorge­ sehen.
Die Host-Schnittstellen-Schaltung 1 umfaßt eine Logik­ schaltung, welche durch eine programmierbare Logikeinrichtung gebildet wird, wie beispielsweise ein Allzweck-Logik-LSI (diskret), ein PLD oder FPGA. Der Bildpufferspeicher 51 ist vor allem zum zeitweiligen Speichern der zu komprimierenden Bilddaten und der zuzuweisenden Bilddaten vorgesehen. Als Bildpufferspeicher 51 wird ein Speicher mit großer Speicher­ kapazität verwendet, wie beispielsweise ein statischer Speicher mit wahlfreiem Zugriff (SRAM), ein dynamischer Speicher mit wahlfreiem Zugriff (DRAM), ein synchroner DRUM und ein Cache-DRAM.
Der Pufferspeicher 6 ist zum zeitweiligen Speichern von Lauf-/Pegeldaten und Bitstromdaten vorgesehen, die beim Codieren der Bilder erhalten werden. Der Pufferspeicher 6 wird durch einen FIFO-Speicher (FIFO) gebildet. Es kann jedoch ein DRAM oder ein SRAM verwendet werden, wie es erforderlich ist.
Der Arbeitsspeicher 7 ist zum Speichern von Tabellendaten der DCT/inversen DCT, von Tabellendaten der Quantisierung/inversen Quantisierung, von Huffman-Tabellendaten zur Verarbeitung einer variabler Länge, eines Programms (Mikroccde) zum Verarbeiten in der Steuereinheit 2 und der Pixelverarbeitungs­ einheit 3, von Daten zur Initialisierung und so weiter vorgesehen. Der Arbeitsspeicher 7 wird durch SRAMs gebildet.
Der Eingabe-/Ausgabespeicher 81 ist zum Speichern der Bild­ daten für die TV-Kamera 91 und/oder eine Anzeigevorrichtung 92 vorgesehen. Der Eingabe-/Ausgabespeicher 81 wird durch Video- RAMs gebildet.
Die Steuereinheit 2 umfaßt einen Mikroprozessor (nicht darge­ stellt) zur Gesamtsteuerung und einen Prozessor (nicht darge­ stellt) zum Verarbeiten variabler Längen. Der Prozessor zur Gesamtsteuerung steuert sowohl die Pipelineverarbeitung der DCT, der Quantisierung und des Codierens mit variabler Länge zur Bildkompression als auch die Pipelineverarbeitung des Decodierens mit variabler Länge, der inversen Quantisierung und der inversen DCT zur Bildexpansion.
Die Pixelverarbeitungseinheit 3 führt eine Pixelverarbeitung aus, wie beispielsweise die DCT und die Quantisierung bei der Bildkompression, und führt eine Pixelverarbeitung aus, wie beispielsweise die inverse Quantisierung und die inverse DCT bei der Bildexpansion.
Die Einheit zur Bewegungsvoraussage 41 führt einen Prozeß zur Bewegungsermittlung aus, wie beispielsweise Ein-Weg- und Zwei- Weg-Bildvoraussagen.
Fig. 2 stellt ein Schaltbild dar, welches Prozesse bei der Bildkompression in der in Fig. 1 gezeigten Vorrichtung zur Bildkompression/-expansion 101 zeigt. In Fig. 2 ist ein in der MPEG-Spezifikation aufgeführtes Codierverfahren beispiel­ haft dargestellt.
Unter Bezugnahme auf Fig. 2 werden die zu komprimierenden Bilddaten ID durch einen Subtrahierer 921 und einen Schalter 922 an einen DCT-Prozessor 923 gelegt. Nach dem DCT wird die Quantisierung durch einen Quantisierer 924 ausgeführt. Die quantisierten Daten werden an einen Codierer für variable Längen 925 gelegt und einem Codieren mit variabler Länge unterworfen, und die codierten Daten werden als komprimierte Bilddaten VD durch einen Puffer 926 bereitgestellt. Inzwischen wurden die quantisierten Daten auch an einen inversen Quantisierer sowie einen inversen DCT-Prozessor gelegt, und die inverse Quantisierung und das inverse DCT zur Bewegungs­ voraussage werden ausgeführt. Die Ausgangsdaten aus dem inversen DCT-Prozessor werden an einen Addierer 929 gelegt.
Die Bilddaten ID werden ferner an eine Bewegungsvoraussage­ Einrichtung 930 gelegt, und die vorausgesagten Werte werden an den Addierer 929 gelegt. Die Ausgangsdaten aus dem Addierer 929 werden durch einen Schalter 931 an den Subtrahierer 921 und die Bewegungsvoraussage-Einrichtung 930 gelegt. Durch einen Schaltbetrieb der Schalter 922 und 931 wird die Bild­ kompression ausgeführt, wobei die Bewegungsvoraussage Berück­ sichtigung findet.
Fig. 3 stellt ein Schaltbild dar, welches einen Bildex­ pansionsprozeß bei der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-expansion 101 zeigt. Unter Bezugnahme auf Fig. 3 werden durch einen Puffer 911 Codedaten variabler Länge VD an einen Decodierer für variable Längen 912 gelegt. Nach der Decodierung mit variabler Länge werden die Codedaten an einen inversen Quantisierer 913 gelegt und einer inversen Quantisierung unterworfen. Nach der inversen Quantisierung wird durch einen inversen DCT-Prozessor 914 eine inverse DCT ausgeführt, und die verarbeiteten Daten werden an einen Addierer 915 gelegt. Der Addierer führt eine Addition der Ausgangsdaten durch, einschließlich derjenigen Daten, die zur Bewegungsvoraussage verwendet worden sind, und stellt expan­ dierte Bilddaten ID zur Verfügung.
Die in den Fig. 2 und 3 dargestellten Prozesse sind grund­ legend in der MPEG-Spezifikation aufgeführt. Diese Prozesse zur Bildkompression und -expansion werden unter der Steuerung einer Pipelineverarbeitung in der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-expansion 101 wirksam ausge­ führt, welche Pipelineverarbeitung nachstehend beschrieben werden wird.
Die zweite Ausführungsform
Fig. 4 zeigt ein Blockschaltbild einer Vorrichtung zur Bild­ kompression/-expansion 102, welche eine zweite Ausführungsform der vorliegenden Erfindung darstellt. Im Vergleich zu der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-ex­ pansion 101 ist die Einheit zur Bewegungsvoraussage 41 in der in Fig. 4 dargestellten Vorrichtung zur Bildkompression/-ex­ pansion 102 entfernt. Insbesondere kann in der in Fig. 4 gezeigten Ausführungsform sowohl ein Decodieren von Bewegt­ bildern als auch ein Codieren und Decodieren von Festbildern ausgeführt werden. Das Decodieren der Bewegtbilder ist ein inverser Prozeß des Codierens. Es umfaßt jedoch keine Bewegungsvoraussage, und alternativ wird eine Bewegungs­ decodierung hinzugefügt, bei welcher das vorausgesagte Bild durch Empfangen eines Bewegungsvektors erzeugt wird.
Die dritte Ausführungsform
Fig. 5 stellt ein Blockschaltbild dar, das eine Vorrichtung zur Bildkompression/-expansion 103 zeigt, welche eine dritte Ausführungsform der vorliegenden Erfindung darstellt. Unter Bezugnahme auf Fig. 5 umfaßt die Vorrichtung zur Bild­ kompression/-expansion 103 im Vergleich zu der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-expansion 101 einen mit einem Pixeldatenbus PB verbundenen Eingabe-/Ausgabespeicher 82. insbesondere ist der Eingabe-/Ausgabespeicher 82 durch den Pixeldatenbus PB mit der Steuereinheit 2 verbunden. Folglich sind in der Steuereinheit 2 der Eingabe-/Ausgabespeicher 82 und der Bildpufferspeicher 6 auf einem gemeinsamen Adressenraum abgebildet, und daher kann die Anzahl von Eingangs-/Ausgangs-Schnittstellen-Schaltungen (Eingangs-/Ausgangsports) der Steuereinheit verkleinert werden.
Die vierte Ausführungsform
Fig. 6 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 104 dar, welche eine vierte Ausführungsform der vorliegenden Erfindung darstellt. Unter Bezugnahme auf Fig. 6 umfaßt die Vorrichtung zur Bild­ kompression/-expansion 104 im Vergleich zur ersten Vorrichtung zur Bildkompression/-expansion 101 eine Einheit zur Zwei-Weg- Bewegungsvoraussage 42, welche eine Bewegungsvoraussage in Vorwärts- und Rückwärtsrichtung parallel (oder gleichzeitig) ausführen kann. Insbesondere die Einheit zur Zwei-Weg- Bewegungsvoraussage 42 umfaßt eine Einheit zur Bewegungs­ voraussage 43 zur Bewegungsvoraussage in der Vorwärtsrichtung und eine Einheit zur Bewegungsvoraussage 44 zur Bewegungs­ voraussage in der Rückwärtsrichtung. Die Einheiten zur Bewegungsvoraussage 43 und 44 sind mit einem Pixeldatenbus PB verbunden. Da die Bewegungsvoraussage in Vorwärts- und Rück­ wärtsrichtung durch Verwenden der beiden Einheiten zur Bewegungsvoraussage 43 und 44 parallel oder gleichzeitig ausgeführt werden kann, kann die Zwei-Weg-Bewegungsvoraussage in einem kurzen Zeitabschnitt wirkungsvoll ausgeführt werden.
Die fünfte Ausführungsform
Fig. 7 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 105 dar, welche eine fünfte Ausführungsform der vorliegenden Erfindung darstellt.
Im Vergleich zu der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-expansion 101 ist die Vorrichtung zur Bildkompression/-expansion 105 mit einer Einheit zur Bewegungsvoraussage 45 versehen, welche dazu in der Lage ist, eine Zwei-Weg-Bewegungsvoraussage gleichzeitig auszuführen, und mit zwei Bildpufferspeichern 52 und 53, von denen jeder mit einem Pixeldatenbus PB verbunden ist, versehen. Die Einheit zur Bewegungsvoraussage 45 kann die Voraussage in beiden Richtungen gleichzeitig ausführen, und daher kann die Zwei-Weg-Voraussage in einem Zeitabschnitt abgeschlossen werden, welcher entweder für die Vorwärts- oder die Rückwärts­ voraussage erforderlich ist. Die Einheit zur Bewegungsvoraus­ sage 45 weist zwei Eingangs-/Ausgangsports auf, von denen der eine mit dem Pixeldatenbus PB verbunden ist und der andere durch einen lokalen Bus LB1 mit dem Bildpufferspeicher 53 verbunden ist. Einer der beiden Bildpufferspeicher 52 und 53 wird als Bildspeicher zur Voraussage einer Vorwärtsbewegung verwendet, während der andere Bildpufferspeicher als Bild­ speicher zur Voraussage einer Rückwärtsbewegung verwendet wird. Referenz-Bilddaten werden zum Pixeldatenbus PD und zum lokalen Bus LB1 übertragen. Musterbilddaten und Daten des Bewegungsvektors werden aus der Einheit zur Bewegungsvoraus­ sage 45 durch einen zweiten lokalen Bus LB2 zu einer Steuer­ einheit 2 übertragen.
Die sechste Ausführungsform
Fig. 8 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 106 dar, welche eine sechste Ausführungsform der vorliegenden Erfindung darstellt. Im Vergleich zu der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-expansion 101 umfaßt die Vorrichtung zur Bildkompression/-expansion 106 eine Einheit zur Bewegungs­ voraussage 46 mit zwei Eingangs-/Ausgangsports. Das erste Eingangs-/Ausgangsport der Einheit zur Bewegungsvoraussage 46 ist mit einem Pixeldatenbus PB verbunden, und ihr zweites Eingangs-/Ausgangsport ist durch einen lokalen Bus LB3 mit einer Steuereinheit 2 verbunden. Die Einheit zur Bewegungs­ voraussage 46 legt die durch eine Bewegungsvoraussage erhaltenen Bewegungsvektor-Daten durch den lokalen Bus LB3 direkt an die Steuereinheit 2. Da die Bewegungsvektor-Daten aus Signalen zu 8 Bit bestehen, weist der lokale Bus LB3 eine Busbreite von 8 Bit auf. Da die Bewegungsvektor-Daten durch den lokalen Bus LB3 direkt an die Steuereinheit 2 gelegt werden, kann die Parallelverarbeitung in der Vorrichtung zur Bildkompression/-expansion 106 verbessert werden, und im Ergebnis kann die Bildkompression/-expansion effizienter mit hoher Geschwindigkeit ausgeführt werden.
Die in den Fig. 4 bis 8 dargestellten Vorrichtungen zur Bildkompression/-expansion 102 bis 106 weisen grundsätzlich die gleiche Betriebsweise wie die in Fig. 1 gezeigte Vor­ richtung zur Bildkompression/-expansion 101 auf. Insbesondere wird in einer beliebigen der zweiten bis sechsten Ausführungsformen die in den Fig. 2 und 3 dargestellte Bildkompression/-expansion unter der Steuerung für eine Pipelineverarbeitung ausgeführt. Daher wird bemerkt, daß die Bildkompression/-expansion mit hoher Geschwindigkeit effizient ausgeführt werden kann. Einzelheiten der Pipelineverarbeitung werden nachstehend unter Bezugnahme auf die Fig. 11 und 12 beschrieben werden.
Die Bilddatenübertragung bei der Bildcodierung zur Datenüber­ tragung durch den Pixeldatenbus PB in der Vorrichtung zur Bildkompression/-expansion 106 der sechsten Ausführungsform und die Menge der Bilddatenübertragung zur Verarbeitung der Bilddaten von einem Makroblock werden im folgenden genau be­ schrieben werden.
Es wird angenommen, daß die zu codierenden Bilddaten bereits in einem Bildpufferspeicher 51 gespeichert worden sind. Die Datenübertagungsmenge wird unter der Voraussetzung berechnet, daß das Bildformat 4 : 2 : 0 beträgt, der Bereich der Bewegungs­ ermittlung ± 16 Pixel umfaßt und daß die Struktur eine Bild­ struktur aufweist.
Jede Einheit bewirkt eine Eingabe und eine Ausgabe von Bild­ daten in und aus dem Pixeldatenbus PB unter der Steuerung einer Steuereinheit 2. Das Betriebs-Timing jeder Einheit wird durch die Steuereinheit 2 gesteuert.
Zuerst werden durch den Pixeldatenbus PB Originalbilddaten aus der Steuereinheit 2 in den Bildpufferspeicher 51 übertragen. Zu dieser Zeit beträgt die zu übertragende Bilddatenmenge 384 Pixel.
Anschließend wird zur Bewegungsvoraussage die Helligkeits­ komponente eines Referenzbildes (reproduziertes Bild) im Be­ reich der Bewegungssuche durch den Pixeldatenbus PB aus dem Bildpufferspeicher 51 in eine Einheit zur Bewegungsvoraussage 46 übertragen. Zu dieser Zeit beträgt die auf ein Einzelbild des Referenzbilds bezogene zu übertragende Bilddatenmenge 768 Pixel. Daher müssen bei einer Zwei-Weg-Voraussage 1536 Pixel, das heißt zwei Bildebenen, übertragen werden.
Dann wird zur Bewegungsvoraussage die Helligkeitskomponente des zu codierenden Bildes durch den Pixeldatenbus PB aus dem Bildpufferspeicher 51 in die Steuereinheit 2 übertragen.
Anschließend wird die Helligkeitskomponente aus der Steuer­ einheit 2 durch den lokalen Bus LB3 in die Einheit zur Bewegungsvoraussage 46 übertragen. Zu dieser Zeit beträgt die übertragene Bilddatenmenge 256 Pixel.
Die Bewegungsvoraussage wird beendet, und es ist eine Zwischenbildvoraussage gemäß der festgelegten Codierweise unter Verwendung der Ergebnisse auszuführen, wobei die Daten des vorausgesagten Bildes (reproduzierten Bildes) zum Codieren aus dem Bildpufferspeicher 51 durch den Pixeldatenbus PB in die Pixelverarbeitungseinheit 3 übertragen werden. Zu dieser Zeit beträgt die zu übertragende Bilddatenmenge 451 Pixel für eine Ebene des vorausgesagten Bildes. Daher müssen für die Zwei-Weg-Voraussage 902 Pixel für zwei Bildebenen übertragen werden.
Danach werden die zu codierenden Bilddaten aus dem Bildpuffer­ speicher 51 durch den Pixeldatenbus PB in die Pixelverarbei­ tungseinheit 3 übertragen. Zu dieser Zeit beträgt die übertra­ gene Bilddatenmenge 384 Pixel.
Nach Beendigung des Codierens werden die Daten des zu reprodu­ zierenden Bildes bezüglich des Codebildes eines Innenbildes und des Bildes der Ein-Weg-Voraussage durch den Pixeldatenbus PB aus der Pixelverarbeitungseinheit 3 in den Bildpuffer­ speicher 51 übertragen. Zu dieser Zeit beträgt die übertragene Bilddatenmenge 384 Pixel.
Die vorstehend beschriebene Datenübertragungsmenge, die 3462 Pixel beträgt, wird zur Zeit der Zwei-Weg-Voraus­ sage maximal, bei welcher die gesamte Datenübertragung ausge­ führt wird, abgesehen von der Übertragung der zu reprodu­ zierenden Bilddaten.
Wenn nun der Bereich der Bewegungssuche vergrößert wird, um die Bildqualität zu verbessern, dann nimmt die Bilddaten- Übertragungsmenge der Helligkeitskomponente des Referenzbildes im Bereich der Bewegungssuche zu. Wenn beispielsweise der Bereich der Bewegungssuche auf ± 32 Pixel vergrößert wird, dann wird es erforderlich, 1280 Pixel zur Zeit der Ein-Weg- Voraussage und 2560 Pixel zur Zeit der Zwei-Weg-Voraussage zu übertragen.
Wie für Digitalbilddaten existieren unterschiedliche Daten­ formate, welche von der Datenmenge der Farbdifferenz­ komponente der Bilddaten abhängig sind. Es gibt nämlich 4 : 4 : 4 Formate, bei welchen die Menge der Originalbilddaten aufrecht­ erhalten wird, ein Format 4 : 2 : 2, bei welchem die Farb­ differenzkomponente auf die Hälfte verkleinert ist, und ein Format 4 : 2 : 0, bei welchem die Farbdifferenzkomponente auf ein Viertel verkleinert ist. Wenn daher das zu bearbeitende Bild­ format verändert wird, dann nimmt die Bilddaten-Übertragungs­ menge zu, abgesehen von der Bilddaten-Übertragungsmenge bezüglich der Bewegungsvoraussage. Wenn zum Beispiel das Format 4 : 4 : 4 verwendet wird, dann wird die bei der Übertragung der Originalbilddaten, die bei der Übertragung der zu codierenden Bilddaten zur Pixelverarbeitungseinheit und die bei der Übertragung der zu reproduzierenden Bilddaten bearbeitete Datenmenge 768 Pixel betragen, und wie für die Übertragung der Daten zur Bildvoraussage, müssen, bezogen auf eine Bildebene des vorausgesagten Referenzbildes, nahezu zweimal so viele Pixel, das heißt 867 Pixel, übertragen werden.
Wenn, wie vorstehend beschrieben, die Anzahl der Pixel des zu verarbeitenden Bildes zunimmt, wie im Fall eines hochgradig festgelegten Bildes, dann nimmt die zur Verarbeitung eines Makroblocks erforderliche Zeit zu. Wenn die Systemuhr konstant läuft, dann ist die Datenübertragungsmenge, die in einem Zyklus der Systemuhr bearbeitet werden kann, durch die Leistungsfähigkeit der Hardware begrenzt, da die Datenüber­ tragungsmenge zur Verarbeitung eines Makroblocks zunimmt.
Daher nimmt beim Übertragen der vorstehend beschriebenen Daten die Anzahl der Zyklen der Systemuhr zu.
Wenn, wie vorstehend beschrieben, die Datenübertragungsmenge sehr groß ist und ständig zunimmt, da eine größere Anzahl von Pixeln und eine höhere Bildqualität verlangt werden, dann begrenzt der Datenübertragungsprozeß die Verarbeitungsge­ schwindigkeit der ganzen Vorrichtung, wenn die Pipelinever­ arbeitung unter Verwendung einer Makroblockcodierung als eine Einheit ausgeführt wird, da die Anzahl von Zyklen, die zur Datenübertragung zum Ausführen des Codierens erforderlich ist, größer als die Anzahl derjenigen Zyklen ist, die für den Codierbetrieb an sich erforderlich ist. Im folgenden wird eine Vorrichtung zur Bildkompression/-expansion beschrieben werden, welche die Effizienz bei der Datenübertragung verbessert und deren Verarbeitungsgeschwindigkeit insgesamt nicht durch die Datenübertragungsgeschwindigkeit begrenzt ist.
Die siebente Ausführungsform
Fig. 83 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 107 gemäß einer siebenten Ausführungsform der vorliegenden Erfindung dar. In Fig. 83 sind die Abschnitte, welche denen der in Fig. 8 gezeigten sechsten Ausführungsform entsprechen, mit den gleichen Bezugszeichen bezeichnet, und die Beschreibung derselben wird nicht wiederholt.
Unter Bezugnahme auf Fig. 83 weist ein Pixeldatenbus PB eine Datenbreite von 32 Bit auf und ist zur Datenübertragung zwischen einer Steuereinheit 23, einer Pixelverarbeitungs­ einheit 33 und einem Bildpufferspeicher 51 vorgesehen.
Ein lokaler Datenbus LDB weist eine Datenbreite von 32 Bit auf und ist zur Datenübertragung zwischen der Pixelverarbeitungs­ einheit 33, einer Einheit zur Bewegungsvoraussage 47 und einem lokalen Speicher 56 vorgesehen.
Der lokale Speicher 56 ist zum zeitweiligen Speichern einer aus der Pixelverarbeitungseinheit 33 übertragenen Helligkeits­ komponente von reproduzierten Bilddaten vorgesehen, die zur Bewegungsvoraussage verwendet werden. Ein Speicher mit größerer Speicherkapazität, wie beispielsweise ein SRAM, ein DRAM, ein synchroner DRAM und ein Cache-DRAM, wird als lokaler Speicher 56 verwendet.
Ein in der Steuereinheit 23 enthaltener Mikroprozessor (nicht dargestellt) zur Gesamtsteuerung steuert die Bilddatenüber­ tragung zwischen der Steuereinheit 23, dem Bildpufferspeicher 51 und der Pixelverarbeitungseinheit 33 und steuert die Bilddatenübertragung zwischen der Pixelverarbeitungseinheit 33, der Einheit zur Bewegungsvoraussage 47 und dem lokalen Speicher 56.
Die Pixelverarbeitungseinheit 33 ist zusätzlich zu einem Dateneingangs-/Datenausgangsport P1, das mit dem Pixeldatenbus PB verbunden ist, mit einem neuen Datenausgangsport P2 für Bilddaten versehen. Mit dem Datenausgangsport P2 sind die Einheit zur Bewegungsvoraussage 47 und der neu vorgesehene lokale Speicher 56 durch einen lokalen Datenbus LDB verbunden. Das Datenausgangsport P2 der Pixelverarbeitungseinheit 33, die Einheit zur Bewegungsvoraussage 47 und der lokale Speicher 56 werden durch die Steuereinheit 23 gesteuert und führen die Bilddatenübertragung durch einen lokalen Datenbus 61 aus. Die Steuereinheit 23 steuert ferner das Timing von jeder Übertra­ gung.
Die vom lokalen Datenbus LDB geführten Bilddaten stellen die Referenzdaten zur Bewegungsvoraussage dar, die aus den Bild­ daten gewonnen werden, welche durch die Pixelverarbeitungs­ einheit 33 aus dem Bildpufferspeicher 51 durch den Pixeldaten­ bus PB übertragen werden (Die Daten enthalten wenigstens eine Information, die bei den Bilddaten auf Helligkeitsdaten hin­ weist, welche nachstehend als Helligkeitskomponente bezeichnet wird.). Die Referenzdaten werden durch den Pixeldatenbus PB aus dem Dateneingangs-/Datenausgangsport P1 zum Bildpuffer­ speicher 51 übertragen und darin gespeichert.
Ein zugeordneter lokaler Bus LB4 mit einer Breite von 8 Bit ist zwischen der Einheit zur Bewegungsvoraussage 47 und der Steuereinheit 23 vorgesehen. Die Bilddaten, welche Gegenstand der Bewegungsermittlung sind, werden aus der Steuereinheit 23 zur Einheit zur Bewegungsvoraussage 47 übertragen. Die das Ergebnis der Bewegungsermittlung angebenden Bewegungsvektor- Daten werden aus der Einheit zur Bewegungsvoraussage 47 zur Steuereinheit 23 übertragen. Die Steuereinheit 23, der Bild­ pufferspeicher 51 und die Pixelverarbeitungseinheit 33, welche mit dem Pixeldatenbus PB verbunden sind, bewirken auf Grundlage der Bewegungsvektor-Daten die Erzeugung eines vorausgesagten Bildes und das Codieren des vorausgesagten Bildes. Die Pixelverarbeitungseinheit 33 stellt die codierten Bilddaten einem Codebus CB zur Verfügung.
Die Bilddatenübertragung bei der Bildcodierung und die Bild­ datenübertragungsmenge beim Verarbeiten eines Makroblocks der Bilddaten werden unter Bezugnahme auf Fig. 83 beschrieben werden. Dabei wird angenommen, daß die zu codierenden Bild­ daten bereits im Bildpufferspeicher 51 gespeichert worden ist und daß die Helligkeitskomponente des für die Bewegungs­ ermittlung erforderlichen Referenzbildes (des reproduzierten Bildes) bereits im lokalen Speicher 56 gespeichert worden ist. Die Übertragungsmenge wird unter der Voraussetzung berechnet, daß das Bildformat 4 : 2 : 0 beträgt, der Bereich der Bewegungs­ ermittlung ± 16 Pixel umfaßt und die Struktur eine Bild­ struktur aufweist.
Zuerst werden die Originalbilddaten durch den Pixeldatenbus PB aus der Steuereinheit 23 in den Bildpufferspeicher 51 übertra­ gen. Zu dieser Zeit beträgt die Menge der übertragenen Bild­ daten 384 Pixel.
Dann wird zur Bewegungsvoraussage die Helligkeitskomponente des Bildes, welche Gegenstand der Bewegungsvoraussage ist, durch den Pixeldatenbus PB aus dem Bildpufferspeicher 51 in die Steuereinheit 23 übertragen. Die Helligkeitskomponente wird ferner durch einen lokalen Bus LB4 in die Einheit zur Bewegungsermittlung 47 übertragen. Zu dieser Zeit beträgt die Menge der übertragenen Bilddaten 256 Pixel.
Wenn die Bewegungsvoraussage abgeschlossen ist und die auf den Ergebnissen der Bewegungsvoraussage beruhende Zwischenbild­ voraussage gemäß der bestimmten Codierweise auszuführen ist, dann wird zum Codieren das vorausgesagte (zu reproduzierende) Bild durch den Pixeldatenbus PB aus dem Bildpufferspeicher 51 in die Pixelverarbeitungseinheit 33 übertragen. Zu dieser Zeit beträgt die auf eine Ebene des vorausgesagten Bildes bezogene Menge der übertragenen Bilddaten 451 Pixel. Daher müssen zur Zwei-Weg-Voraussage 902 Pixel übertragen werden.
Anschließend werden die zu codierenden Bilddaten durch den Pixeldatenbus PB aus dem Bildpufferspeicher 51 in die Pixelverarbeitungseinheit 33 übertragen. Zu dieser Zeit beträgt die Menge der übertragenen Bilddaten 384 Pixel.
Parallel zu den vorstehend genannten vier Bilddatenüber­ tragungen wird zur Bewegungsvoraussage die Helligkeits­ komponente des Bildes im Bereich der Bewegungssuche durch den lokalen Datenbus LDB aus dem lokalen Speicher 56 zur Einheit zur Bewegungsermittlung 47 übertragen. Zu dieser Zeit beträgt die auf eine Ebene des Referenzbildes bezogene Menge der übertragenen Bilddaten 768 Pixel. Daher müssen zur Zwei-Weg- Voraussage, den zwei Ebenen entsprechend, 1536 Pixel übertra­ gen werden.
Nach Abschluß des Codierens bezüglich des Bildes für die Innenbildcodierung und des Bildes für die Ein-Weg-Voraussage werden die zu reproduzierenden Bilddaten durch den Pixel­ datenbus PB aus der Pixelverarbeitungseinheit 33 in den Bild­ pufferspeicher 51 übertragen. Gleichzeitig werden die Helligkeitskomponenten des zu reproduzierenden Bildes durch den lokalen Datenbus LDB in den lokalen Speicher 56 über­ tragen.
Zu dieser Zeit stellt die Steuereinheit 23 ein Ausgangs­ steuersignal zum Steuern des mit dem Pixeldatenbus PB ver­ bundenen Ports P1 in Synchronisation mit dem Timing des Ausgangs der Bilddaten zur Verfügung, welche durch die Pixelverarbeitungseinheit 33 aus einem internen Reproduktions­ bild-Ausgabespeicher (zum Beispiel dem in Fig. 19 darge­ stellten Bildspeicher 335, der nachstehend beschrieben werden wird) zu reproduzieren sind. Während die Helligkeitsdaten aus dem Reproduktionsbild-Ausgabespeicher ausgegeben werden, stellt die Steuereinheit 23 gleichzeitig ein Ausgangs­ steuersignal zum Steuern des mit dem lokalen Datenbus LDB verbundenen Ports P2 zur Verfügung.
In der Pixelverarbeitungseinheit 33 werden die Bilddaten aus dem Reproduktionsbild-Ausgabespeicher gemäß einer Anweisung aus der Steuereinheit 23 oder gemäß einem Ablaufprogramm ausgegeben, das in einem internen Speicher gespeichert ist (zum Beispiel einem internen Speicher in einer in Fig. 19 dargestellten Steuereinrichtung, welche nachstehend beschrieben werden wird). Zu dieser Zeit stellt das mit dem Pixeldatenbus PB verbundene Port P1 in Reaktion auf ein aus der Steuereinheit 23 bereitgestelltes Ausgangssteuersignal Bilddaten von einem Makroblock zur Verfügung. Gleichzeitig stellt das mit dem lokalen Datenbus LDB verbundene Port P2 in Reaktion auf das aus der Steuereinheit 23 bereitgestellte Ausgangssteuersignal nur die Helligkeitskomponente der Bild­ daten von einem Makroblock zur Verfügung.
Bei der vorstehend beschriebenen Übertragung der zu repro­ duzierenden Bilder beträgt die Menge der übertragenen Bild­ daten auf dem Pixeldatenbus PB 384 Pixel, auf dem lokalen Datenbus LDB hingegen 256 Pixel.
Wie vorstehend beschrieben, ist die Pixelverarbeitungseinheit 33 zum Erzeugen eines zu reproduzierenden Bildes derart ausgelegt, daß sie zu zwei Datenbussen eine Datenausgabe­ funktion aufweist und das zu reproduzierende Bild zum lokalen Datenbus LDB in Synchronisation mit der Ausgabe des zu reproduzierenden Bildes an den Pixeldatenbus PB ausgibt. Daher kann der Reproduktionsbild-Ausgabespeicher (nicht dargestellt) in der Pixelverarbeitungseinheit 33 gemeinsam gesteuert werden, und die Daten können zu jedem der mit dem internen Speicherausgang verbundenen Ports durch nur ein Bit des Ausgangssteuersignals übertragen werden. Im Ergebnis wird die Datenübertragungssteuerung hinsichtlich der Steuereinheit 23 erleichtert und, von der Übertragung des Reproduktionsbildes abgesehen, werden die Busse durch die Steuereinheit 23 auf­ geteilt, wodurch eine parallele Datenübertagung ermöglicht wird.
Die Datenübertragungsmenge zu dieser Zeit wird zur Zeit der Zwei-Weg-Voraussage maximal, nämlich 1926 Pixel auf dem Pixeldatenbus PB und 1536 Pixel auf dem lokalen Datenbus LDB. Durch Verwenden der aufgeteilten zwei Datenbusse kann daher die durch einen Bus übertragene Datenmenge im Vergleich zur sechsten Ausführungsform verkleinert werden, wobei die tatsächliche Datenübertragungsgeschwindigkeit verbessert wird und die Verarbeitungsgeschwindigkeit in der Vorrichtung zur Bildkompression/-expansion vergrößert wird.
Die achte Ausführungsform
Fig. 84 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 108 dar, welche eine achte Aus­ führungsform der vorliegenden Erfindung zeigt. In Fig. 84 sind die Abschnitte, welche denen der in Fig. 83 gezeigten Vorrichtung zur Bildkompression/-expansion entsprechen, mit den gleichen Bezugszeichen versehen, und die Beschreibung derselben wird nicht wiederholt.
Eine Pixelverarbeitungseinheit 34 umfaßt zwei neu vorgesehene Bilddaten-Ausgangsports P4 und P5. Drei Datenbusse, das heißt ein Pixeldatenbus PB und zwei lokale Datenbusse LDB1 und LDB2, sind als Bilddatenbusse vorgesehen. Der Ausgangssteuerbetrieb der entsprechenden Ports P3 bis P5 wird durch ein Ausgangs­ steuersignal bewirkt, das aus einer Systemsteuereinrichtung (zum Beispiel eine in Fig. 13 dargestellte Systemsteuer­ einrichtung 114, welche nachstehend beschrieben werden wird) bereitgestellt wird, welche in einem Prozessor zur Pipeline­ steuerung (beispielsweise einem in Fig. 9 dargestellten Prozessor zur Gesamtsteuerung 11, der nachstehend beschrieben werden wird) in einer Steuereinheit 24 enthalten ist.
Wenn die Funktion der Vorrichtung erweitert und der Bereich der Bewegungsermittlung auf ± 64 Pixel vergrößert wird, dann müssen selbst zur Zeit der Ein-Weg-Voraussage Bilddaten mit 2304 Pixeln übertragen werden. Im folgenden wird eine Beschreibung unter der Voraussetzung vorgenommen, daß der Bereich der Bewegungsermittlung auf ± 64 Pixel vergrößert wird und die Ein-Weg-Voraussage ausgeführt wird. Bei der in Fig. 8 dargestellten sechsten Ausführungsform ist die Bilddatenüber­ tragungsmenge auf 4230 Pixel vergrößert, da der Bereich der Bewegungsermittlung vergrößert ist. Das Verfahren bei der achten Ausführungsform ist folgendermaßen. In der achten Ausführungsform wird zur Bewegungsvoraussage die Helligkeits­ komponente des Bildes im Bereich der Bewegungssuche in zwei Komponenten aufgeteilt und unter Verwendung von zwei Daten­ bussen übertragen. Insbesondere werden 1280 Pixel durch einen lokalen Datenbus LDB1 aus einem lokalen Speicher 56a zu einer Voraussageeinheit 47a übertragen, während 1280 Pixel durch einen lokalen Datenbus LDB2 aus einem lokalen Speicher 56b zu einer Einheit zur Bewegungsvoraussage 47b übertragen werden. Zu dieser Zeit müssen die Daten am Verbindungsabschnitt der Daten zu beiden Datenbussen LDB1 und LDB 2 übertragen werden. Daher würde die durch zwei Datenbusse übertragene Datenmenge insgesamt 2560 Pixel betragen, obwohl die durch einen Datenbus übertrag 99999 00070 552 001000280000000200012000285919988800040 0002004408522 00004 99880ene Datenmenge 2304 Pixel beträgt. Mit anderen Worten, die Datenmenge wird durch die Pixeldaten von einem Makroblock (256 Pixel) vergrößert. Das dient dazu, ein Erkennen der Ver­ bindung zwischen entsprechenden Stücken der aufgeteilten Referenzdaten zu ermöglichen.
Wenn in diesem Fall das zu reproduzierende Bild übertragen wird, werden die Reproduktionsbilddaten durch den Pixeldaten­ bus PB aus der Pixelverarbeitungseinheit 34 in den Bildpuffer- Speicher 51 übertragen, und gleichzeitig wird das Reproduktionsbild durch die lokalen Datenbusse LDB1 und LDB2 in die lokalen Speicher 56a und 56b übertragen.
Die Datenübertragungsmenge zu dieser Zeit beträgt 1926 Pixel auf dem Pixeldatenbus PB und 1280 Pixel auf jedem der lokalen Datenbusse LDB1 und LDB2. Insbesondere kann die Menge der über einen Bus übertragenen Daten verkleinert werden, da der Bild­ datenbus in drei Busse aufgeteilt ist, wobei die tatsächliche Datenübertragungsgeschwindigkeit auf über das Doppelte von der der sechsten Ausführungsform vergrößert wird und die siebente Verarbeitung der Vorrichtung zur Bildkompression/-expansion verbessert werden kann.
Die neunte Ausführungsform
Fig. 85 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion gemäß einer neunten Ausführungsform der vorliegenden Erfindung dar. In Fig. 85 sind die Abschnitte, welche denen der in Fig. 84 gezeigten Vor­ richtung zur Bildkompression/-expansion entsprechen, mit den gleichen Bezugszeichen bezeichnet, und die Beschreibung der­ selben wird nicht wiederholt.
Unter Bezugnahme auf Fig. 85 verwendet die neunte Aus­ führungsform einen gemeinsamen Adreßbus AB für lokale lokale Speicher 56c und 56d. Der Adreßbus AB ist mit einer Steuer­ einheit 25 verbunden, und die Adreßsignale werden aus der Steuereinheit 25 ausgegeben.
Wenn bei der Zwei-Weg-Voraussage als erweiterte Funktion der Vorrichtung zur Bildkompression/-expansion der Bereich der Bewegungssuche auf ± 32 Pixel gesetzt wird, dann wird es erforderlich, 1280 Pixel pro 1 Ebene des vorausgesagten Bildes zu übertragen. Nachstehend wird die Bilddatenübertragung beschrieben werden, wobei vorausgesetzt wird, daß die Bewegung im Bereich von ± 32 Pixeln gesucht wird und daß eine Zwei-Weg- Voraussage ausgeführt wird.
Zuerst wird die Datenübertragung im Fall von Bildern für eine Innenbildcodierung beschrieben werden. Wenn beispielsweise im lokalen Speicher 56d gespeicherte zu reproduzierende Bilddaten im Vergleich zu den im lokalen Speicher 56c gespeicherten Bilddaten zur Reproduktion neuer (zeitlich später) sind oder wenn die Ausgangsbilddaten zu codieren sind (die Daten sind in keinem der lokalen Speicher 56c und 56d gespeichert), dann wird die Datenübertragung in gleichartiger Weise wie in der siebenten Ausführungsform ausgeführt, wobei die Steuereinheit 25, der Bildpufferspeicher 51, die Pixelverarbeitungseinheit 34, die Einheit zur Bewegungsvoraussage 47a, der lokale Speicher 56c, der Pixeldatenbus PB und der lokale Datenbus LDB1 verwendet werden. Das Helligkeitssignal des zu reproduzierenden Bildes ist im lokalen Speicher 56c ge­ speichert, um es für Referenzbilddaten bei der Bewegungs­ voraussage zu verwenden. Zu dieser Zeit steuert die Steuer­ einheit 25 ein Schreiben von Daten durch Wählen des lokalen Speichers 56c durch ein Chipauswahlsignal und stellt ein Ausgangssteuersignal bereit, um das Port P4 auf der Seite des lokalen Datenbusses LDB1 der Pixelverarbeitungseinheit 34 aus­ zugeben.
Die Datenübertragung des Bildes für die Ein-Weg-Voraussage wird beschrieben werden. Wenn beispielsweise die im lokalen Speicher 56c gespeicherten Reproduktionsbilddaten im Vergleich zu den im lokalen Speicher 56d gespeicherten Reproduktions­ bilddaten neuer (zeitlich später) sind, dann werden die im lokalen Speicher 56c gespeicherten Reproduktionsbilddaten als Referenzbilddaten für eine Vorwärtsvoraussage verwendet und die Bilddaten im Bereich der Bewegungsvoraussagesuche unter Verwendung der Einheit zur Bewegungsvoraussage 47a, des lokalen Speichers 56c und des lokalen Datenbusses LDB1 über­ tragen. Nur wenn das Helligkeitssignal des zu reproduzierenden Bildes im Bereich der Bewegungsvoraussagesuche zu übertragen ist, steuert zu dieser Zeit die Steuereinheit 25 die Datenausgabe durch Wählen des lokalen Speichers 56c durch das Chipauswahlsignal und legt ein Eingangssteuersignal des Eingangsports an die Seite des lokalen Datenbusses der Einheit zur Bewegungsvoraussage 47a.
Bei einer von der vorstehenden abweichenden Bildübertragung (zum Beispiel Originalbildübertragung, Übertragung eines zu codierenden Bildes zur Bewegungsvoraussage, Übertragung von Bildern zur Vorwärtsvoraussage, Übertragung von zu codierenden Bildern und Übertragung von zu reproduzierenden Bildern) werden die Daten in gleichartiger Weise wie in der siebenten Ausführungsform durch Verwenden der Steuereinheit 25, des Bildpufferspeichers 51, der Pixelverarbeitungseinheit 34, des lokalen Speichers 56d, des Pixeldatenbusses PB und des lokalen Datenbusses LDB2 übertragen. Zu dieser Zeit wird die Daten­ übertragungsmenge über den Pixeldatenbus PD zur Zeit der Zwei- Weg-Voraussage maximal 1926 Pixel betragen, und die Datenüber­ tragungsmenge über die lokalen Datenbusse LDB1 und LDB2 wird jeweils maximal 1280 Pixel betragen. Dabei wird das Helligkeitssignal des zu reproduzierenden Bildes im lokalen Speicher 56d als Referenzbilddatenangabe zur Bewegungsvoraus­ sage gespeichert. Zu dieser Zeit steuert die Steuereinheit 25 das Schreiben von Daten durch Wählen des lokalen Speichers 56d auf Grundlage des Chipauswahlsignals nur dann, wenn das Helligkeitssignal des zu reproduzierenden Bildes übertragen wird, und legt ein Ausgangssignal an das Ausgangsport PS auf der Seite des lokalen Datenbusses LDB2 der Pixelverarbeitungs­ einheit 34. Dabei wird das Adressieren des lokalen Speichers 56d in gleichartiger Weise wie das Adressieren des lokalen Speichers 56c ausgeführt.
Die Datenübertragung für das Bild bei der Zwei-Weg-Voraussage wird beschrieben werden. Wenn beispielsweise die im lokalen Speicher 56d gespeicherten Daten des zu reproduzierenden Bildes im Vergleich zu den im lokalen Speicher 56c gespeicherten Daten des zu reproduzierenden Bildes neuer (zeitlich später) sind, dann werden die im lokalen Speicher 56c gespeicherten Bilddaten für die Reproduktion als Referenz­ bilddaten für eine Vorwärtsvoraussage verwendet, und die Bildübertragung im Bereich der Bewegungsvoraussagesuche wird durch Verwenden der Einheit zur Bewegungsvoraussage 47a, des lokalen Speichers 56c und des lokalen Datenbusses LDB1 durchgeführt. Gleichzeitig wird das im lokalen Speicher 56b gespeicherte zu reproduzierende Bild als Referenzbild zur Rückwärtsvoraussage verwendet und die Übertragung des Bildes im Bereich der Bewegungsvoraussagesuche durch Verwenden der Einheit zur Bewegungsvoraussage 47b, des lokalen Speichers 56d und des lokalen Datenbusses LDB2 bewirkt. Zu dieser Zeit wählt die Steuereinheit 25 die lokalen Speicher 56c und 56d durch das Chipauswahlsignal nur dann aus, wenn das Helligkeitssignal des zu reproduzierenden Bildes im Bereich der Bewegungsvoraus­ sagesuche zu übertragen ist, so daß die gemeinsame Datenaus­ gangssteuerung durch Anlegen des gleichen Adreßsignals unter Verwendung des gemeinsamen Adreßbusses AB ausgeführt wird. Die Steuereinheit 25 legt ferner ein Eingangssteuersignal des Eingangsports an die Seite der lokalen Datenbusse LDB1 und LDB2 der entsprechenden Einheiten zur Bewegungsvoraussage 47a und 47b.
Bei von den vorstehenden abweichenden Bildübertragungen (zum Beispiel: Originalbildübertragung, Übertragung eines zu codierenden Bildes zur Bewegungsvoraussage, Übertragung von Bildern zur Vorwärtsvoraussage, Übertragung von Bildern zur Rückwärtsvoraussage und Übertragung von zu codierenden Bildern) werden die Bilddaten in gleichartiger Weise wie in der siebenten Ausführungsform durch Verwenden der Steuer­ einheit 25, des Bildpufferspeichers 51, der Pixelverarbei­ tungseinheit 34 und des Pixeldatenbusses PB übertragen.
Nun weisen der Bereich der Vorwärtsbewegungssuche und der Bereich der Rückwärtsbewegungssuche bezüglich eines Makro­ blocks, der Gegenstand der Bewegungsvoraussage ist, den gleichen Bereich auf dem tatsächlichen Bildschirm auf. Daher wird es durch gemeinsames Adressieren der lokalen Speicher 56c und 56d möglich, die Daten im Bereich der Voraussagesuche durch Verwenden einer gemeinsamen Adresse in beide Richtungen zu übertragen. Abgesehen vom Chipauswahlsignal der lokalen Speicher 56c und 56d, kann insbesondere die Hardware bezüglich der Speichersteuerung und der Adreßerzeugung durch die lokalen Speicher 56c und 56d aufgeteilt werden. Daher kann im Vergleich zu einem Beispiel, bei dem Adreßgeneratoren für entsprechende Speicher vorgesehen sind, die Hardwaremenge verringert werden, wohingegen die Datenübertragungsmenge nicht erhöht wird.
Die zehnte Ausführungsform
Fig. 86 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion dar, welche eine zehnte Ausführungsform der vorliegenden Erfindung zeigt. In Fig. 86 sind die Abschnitte, welche denen der in Fig. 85 gezeigten Vorrichtung zur Bildkompression/-expansion entsprechen, mit den gleichen Bezugszeichen bezeichnet, und die Beschreibung derselben wird nicht wiederholt.
Unter Bezugnahme auf Fig. 86 ist in der zehnten Ausführungs­ form die in Fig. 85 dargestellte Pixelverarbeitungseinheit 34 in zwei Pixelverarbeitungseinheiten 34a und 34b unterteilt.
Wenn die Bewegungssuche im Bereich von ± 32 Pixeln für eine Zwei-Weg-Voraussage als erweiterte Funktion der Vorrichtung zur Bildkompression/-expansion auszuführen ist, dann ist es erforderlich, bezüglich einer Ebene des vorausgesagten Bildes 1280 Pixel zu übertragen. Nachstehend wird eine Bilddatenüber­ tragung unter der Annahme beschrieben werden, daß die Bewegungssuche im Bereich von ± 32 Pixeln ausgeführt wird und daß die Zwei-Weg-Voraussage vollzogen wird.
Zuerst wird die Datenübertragung des Bildes für die Innenbild­ codierung beschrieben werden. Wenn beispielsweise die in einem lokalen Speicher 56b gespeicherten zu reproduzierenden Daten des Bildes neuer (zeitlich später) als die in einem lokalen Speicher 56c gespeicherten Daten des zu reproduzierenden Bildes sind oder wenn die Ausgangsbilddaten zu codieren sind (die Daten sind in keinem der lokalen Speicher 56c oder 56d gespeichert), dann wird die Datenübertragung in gleichartiger Weise wie in der siebenten Ausführungsform ausgeführt durch Verwenden einer Steuereinheit 26, eines Bildpufferspeichers 51, einer Pixelverarbeitungseinheit, einer Einheit zur Bewegungsvoraussage 47a, des lokalen Speichers 56c, eines Pixeldatenbusses PB und eines lokalen Datenbusses LDB1. Das Helligkeitssignal des zu reproduzierenden Bildes ist im lokalen Speicher 56c gespeichert, um es für Referenzbilddaten zur Bewegungsvoraussage zu verwenden. Zu dieser Zeit steuert eine Steuereinheit 26 nur dann ein Schreiben von Daten durch Wählen des lokalen Speichers 56c durch ein Chipauswahlsignal, wenn das Helligkeitssignal des zu reproduzierenden Bildes übertragen wird. Die Steuereinheit 36 stellt ein Ausgangs­ steuersignal an einem Port P2a auf der Seite des lokalen Datenbusses LDB1 der Pixelverarbeitungseinheit 34a bereit.
Die Bilddatenübertragung für eine Ein-Weg-Voraussage wird beschrieben werden. Wenn beispielsweise die im lokalen Speicher 56c gespeicherten Daten des zu reproduzierenden Bildes im Vergleich zu den im lokalen Speicher 56d gespeicher­ ten Daten des zu reproduzierenden Bildes neuer (zeitlich später) sind, dann werden die im lokalen Speicher 56c gespei­ cherten Bilddaten für die Reproduktion als Referenzbilddaten für eine Vorwärtsvoraussage verwendet und wird die Bildüber­ tragung im Bereich der Bewegungsvoraussagesuche unter Verwendung der Einheit zur Bewegungsvoraussage 47a, des lokalen Speichers 56c und des lokalen Datenbusses LDB1 ausgeführt. Zu dieser Zeit steuert die Steuereinheit 26 die Datenausgabe durch Wählen des lokalen Speichers 56c auf Grundlage des Chipauswahlsignals nur dann, wenn das Helligkeitssignal des zu reproduzierenden Bild im Bereich der Bewegungsvoraussagesuche übertragen wird. Die Steuereinheit 26 legt ein Eingangssteuersignal des Eingangsports an die Seite des lokalen Datenbusses LDB1 der Einheit zur Bewegungsvoraus­ sage 47a.
Bei einer von der vorstehenden abweichenden Bildübertragung (Übertragung des Originalbildes, Übertragung eines zu codierenden Bildes zur Bewegungsvoraussage, Übertragung eines Bildes zur Vorwärtsvoraussage, Übertragung eines zu codierenden Bildes und Übertragung eines zu reproduzierenden Bildes) werden die Daten in gleichartiger Weise wie in der siebenten Ausführungsform durch Verwenden der Steuereinheit 26, des Bildpufferspeichers 51, der Pixelverarbeitungseinheit 34b, des lokalen Speichers 56d, des Pixeldatenbusses PB und des lokalen Datenbusses LDB2 übertragen. Das Helligkeitssignal des zu reproduzierenden Bildes wird im lokalen Speicher 56d gespeichert, um es als Referenzbild zur Bewegungsvoraussage zu verwenden. Zu dieser Zeit steuert die Steuereinheit 26 das Schreiben von Daten durch Wählen des lokalen Speichers 56c auf Grundlage des Chipauswahlsignals nur dann, wenn das Helligkeitssignal des zu reproduzierenden Bildes übertragen wird. Die Steuereinheit legt ein Ausgangssignal an ein Ausgangsport P2b auf der Seite des lokalen Datenbusses LDB2 der Pixelverarbeitungseinheit 34b. Dabei wird das Adressieren des lokalen Speichers 56b in gleichartiger Weise wie das Adressieren des lokalen Speichers 56c bewirkt.
Die Datenübertragung für das Bild bei der Zwei-Weg-Voraussage wird beschrieben werden. Wenn beispielsweise die im lokalen Speicher 56b gespeicherten Daten des zu reproduzierenden Bildes im Vergleich zu den im lokalen Speicher 56c gespeicherten Daten des zu reproduzierenden Bildes neuer (zeitlich später) sind, dann werden die im lokalen Speicher 56c gespeicherten Daten des zu reproduzierenden Bildes als Referenzbilddaten für eine Vorwärtsvoraussage verwendet, und das Bild im Bereich der Bewegungsvoraussagesuche wird durch Verwenden der Einheit zur Bewegungsvoraussage 47a, des lokalen Speichers 56c und des lokalen Datenbusses LDB1 übertragen. Zu dieser Zeit werden die Daten des im lokalen Speicher 56d gespeicherten zu reproduzierenden Bildes als Referenzbilddaten zur Rückwärtsvoraussage verwendet, und das Bild im Bereich der Bewegungsvoraussagesuche wird durch Verwenden der Einheit zur Bewegungsvoraussage 47b, des lokalen Speichers 56b und des lokalen Datenbusses LDB2 übertragen. Zu dieser Zeit wählt die Steuereinheit 26 die lokalen Speicher 56c und 56d durch das Chipauswahlsignal nur dann aus, wenn das Helligkeitssignal des zu reproduzierenden Bildes im Bereich der Bewegungsvoraussage­ suche übertragen wird, so daß die Datenausgabe durch Anlegen der gleichen Adresse unter Verwendung eines gemeinsamen Adreß­ busses AB gemeinsam gesteuert wird. Die Steuereinheit 26 legt ferner ein Eingangssteuersignal eines Eingangsabschnitts an die Seite der lokalen Datenbusse LDB1 und LDB2 der Einheiten zur Bewegungsvoraussage 47a und 47b.
Bei einer von der vorstehenden abweichenden Bildübertragung (Übertragung eines Originalbildes, Übertragung eines zu codierenden Bildes zur Bewegungsvoraussage, Übertragung eines Bildes zur Vorwärtsvoraussage, Übertragung eines Bildes zur Rückwärtsvoraussage und Übertragung eines zu codierenden Bildes) werden die Bilddaten wie in der in Fig. 7 dargestell­ ten Art und Weise durch Verwenden der Steuereinheit 26, des Bildpufferspeichers 51, der Pixelverarbeitungseinheit 34a oder 34b und des Pixeldatenbusses PB übertragen. Zu dieser Zeit wird das Bild Makroblock für Makroblock durch abwechselndes Verwenden der beiden Pixelverarbeitungseinheiten 34a und 34b übertragen, und in der Verarbeitungseinheit 34a oder 34b wird das Codieren von zwei Makroblöcken ausgeführt, wobei die Zeit zur Verarbeitung von 2 Makroblöcken verwendet wird.
Wenn eine zwischenbild-Voraussagecodierung auszuführen ist, dann ist die Menge an Operationen bei der Zwei-Weg-Voraussage im allgemeinen sehr groß. In der vorliegenden Ausführungsform werden zur Zeit der Zwei-Weg-Voraussage die Bilddaten Makro­ block für Makroblock abwechselnd in die beiden Verarbeitungs­ einheiten 34a und 34b übertragen, so daß der einen Pixelver­ arbeitungseinheit 34a oder 34b im wesentlichen die Operations­ zeit von zwei Makroblöcken gewährt wird. Daher kann im Ver­ gleich zur neunten Ausführungsform die tatsächliche Operationszeit der Pixelverarbeitungseinheiten 34a und 34b für die Zwei-Weg-Voraussage vergrößert werden.
Die elfte Ausführungsform
Fig. 87 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 111 dar, welche eine elfte Ausführungsform der vorliegenden Erfindung zeigt. Bei der in Fig. 87 dargestellten Vorrichtung zur Bildkompression/-ex­ pansion ist die mit dem lokalen Datenbus LDB2 verbundene Ein­ heit zur Bewegungsvoraussage 47b der in Fig. 84 gezeigten achten Ausführungsform entfernt.
In diesem Beispiel wird die von der Übertragung des Original­ bildes aus der Steuereinheit 27 in den Bildpufferspeicher 51 abweichende Datenübertragung mit den in eine Helligkeits­ komponente und eine Farbdifferenzkomponente aufgeteilten Originalbilddaten in der folgenden Art und Weise ausgeführt.
Hinsichtlich der Helligkeitskomponente bezüglich des Bildes für die Innenbildcodierung wird das zu codierende Bild aus dem Bildpufferspeicher 51 zu einer Pixelverarbeitungseinheit 35 übertragen. Das zu reproduzierende Bild wird in den Bild­ pufferspeicher 51 und einen lokalen Speicher 56a übertragen.
Für das Bild für eine Ein-Weg-Voraussagecodierung werden auf der Seite der Bewegungsvoraussage die Bilddaten im Bereich der Bewegungssuche aus dem lokalen Speicher 56a in die Einheit zur Bewegungsvoraussage 47 übertragen und werden die zu codierenden Bilddaten aus dem Bildpufferspeicher 51 zur Steuereinheit 27 übertragen. Auf der Codierseite werden die vorausgesagten Bilddaten aus dem Pufferspeicher 51 in die Pixelverarbeitungseinheit 35 übertragen und die zu codierenden Bilddaten aus dem Pufferspeicher 51 in die Pixelverarbeitungs­ einheit 35 übertragen. Die zu reproduzierenden Bilddaten werden in den Bildpufferspeicher 51 und den lokalen Speicher 56a übertragen.
Hinsichtlich des Bildes für die Zwei-Weg-Voraussagecodierung werden auf der Seite der Bewegungsvoraussage die Bilddaten im Bereich der Bewegungssuche an zwei Bildern aus dem lokalen Speicher 56a in die Einheit zur Bewegungsvoraussage 47 übertragen, und die zu codierenden Bilddaten werden durch die Steuereinheit 27 aus dem Bildpufferspeicher 51 in die Voraussageeinheit 47 übertragen. Auf der Codierseite werden zwei Bilder der vorausgesagten Bilddaten aus dem Bildpuffer- Speicher 51 in die Pixelverarbeitungseinheit 35 übertragen, und das zu codierende Bild wird aus dem Bildpufferspeicher 51 in die Pixelverarbeitungseinheit 35 übertragen.
Hinsichtlich der Farbdifferenzkomponente werden, bezüglich des Bildes für eine Innenbildcodierung, die zu codierenden Bild­ daten aus dem Bildpufferspeicher 51 in die Pixelverarbeitungs­ einheit 35 übertragen. Die zu reproduzierenden Bilddaten werden in einen lokalen Speicher 56e übertragen.
Bezüglich eines Bildes für eine Ein-Weg-Voraussagecodierung werden die zu codierenden Bilddaten aus dem Bildpufferspeicher 51 in die Pixelverarbeitungseinheit 35 übertragen, und die vorausgesagten Bilddaten werden aus dem lokalen Speicher 56e in die Pixelverarbeitungseinheit 35 übertragen. Die zu reproduzierenden Bilddaten werden in den lokalen Speicher 56e übertragen.
Bezüglich des Bildes für die Zwei-Weg-Voraussagecodierung wird das Farbdifferenzsignal des zu codierenden Bildes aus dem Bildpufferspeicher 51 in die Pixelverarbeitungseinheit 35 übertragen, und zwei Bilder der vorausgesagten Bilddaten werden aus dem lokalen Speicher 56e in die Pixelverarbeitungs­ einheit 35 übertragen. Die Berechnung der Bildübertragungs­ menge der entsprechenden Datenbusse bei der Zwei-Weg-Voraus­ sage, bei der die Datenübertragungsmenge maximal wird, erfolgt für ein Bild des Formats 4 : 4 : 4 mit passender Farbdifferenz­ komponente folgendermaßen.
Bei der in Fig. 8 dargestellten Vorrichtung zur Bild­ kompression/-expansion der sechsten Ausführungsform weist die über den Pixeldatenbus PD übertragene Datenübertragungsmenge für das vorstehend genannte Format insgesamt 4806 Pixel auf.
Bei der in Fig. 87 dargestellten Vorrichtung zur Bild­ kompression/-expansion der elften Ausführungsform werden für das vorstehend genannte Format 4 : 4 : 4 768 Pixel der Original­ bilddaten, 578 Pixel der Helligkeitskomponente von zwei Bildern der vorausgesagten Bilddaten und 768 Pixel für die zu codierenden Bilddaten über den Pixeldatenbus PD übertragen, und daher ist die Gesamtdatenübertragungsmenge nicht größer als 2114 Pixel.
Am lokalen Datenbus LDB1 wird die Menge 768 Pixel für eine Ebene der vorausgesagten Bilddaten betragen, wenn der Bereich der Bewegungssuche ± 16 Pixel umfaßt, und daher beträgt die Datenübertragungsmenge für die zwei Ebenen der vorausgesagten Bilddaten 1536 Pixel.
Über den lokalen Bus LB5 werden nur 578 Pixel der Helligkeits­ komponente der vorausgesagten Bilddaten der zwei Ebenen als entsprechende Farbdifferenzkomponenten Cb und Cr übertragen, und daher beträgt die Datenübertragungsmenge insgesamt 1156 Pixel.
Durch separates Codieren der entsprechenden Komponenten der Bilddaten und durch Vorsehen eines zusätzlichen Busses LB5 für die Farbdifferenzkomponenten kann die Datenübertragungsmenge über den Pixeldatenbus PB verkleinert werden. Ferner wird die durch einen Datenbus übertragene Datenmenge verkleinert, da die Datenübertragungsmenge für die entsprechenden Datenbusse gemittelt wird. Daher wird im Vergleich zu der in Fig. 8 dargestellten sechsten Ausführungsform die Datenübertragungs­ geschwindigkeit im wesentlichen um den Faktor 2,2 verbessert, und daher kann die Verarbeitungsgeschwindigkeit in der Vorrichtung zur Bildkompression/-expansion vergrößert werden.
Die zwölfte Ausführungsform
Fig. 88 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 112 dar, welche eine zwölfte Ausführungsform der vorliegenden Erfindung zeigt. Bei der in Fig. 88 gezeigten zwölften Ausführungsform ist die Pixel­ verarbeitungseinheit 35 der in Fig. 87 dargestellten elften Ausführungsform in zwei Pixelverarbeitungseinheiten 35a und 35b unterteilt, welchen die Verarbeitung der entsprechenden Helligkeitskomponente und Farbdifferenzkomponente zugewiesen wird.
Folglich wird in der zwölften Ausführungsform die Operation für entsprechende Komponenten durch die Pixelverarbeitungs­ einheiten 35a und 35b ausgeführt, wobei die Operationsmenge in einer Pixelverarbeitungseinheit verkleinert werden kann, und daher kann die Verarbeitungsgeschwindigkeit in der Vorrichtung zur Bildkompression/-expansion verbessert werden.
Die dreizehnte Ausführungsform
Fig. 89 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 113 dar, welche eine dreizehnte Ausführungsform der vorliegenden Erfindung zeigt. Die dreizehnte Ausführungsform umfaßt, zusätzlich zum Aufbau der elften und zwölften Ausführungsform, einen Aufbau, welcher eine Erweiterung des Bereichs der Bewegungssuche ermöglichen kann. Insbesondere werden durch eine Mehrzahl von Pixel­ verarbeitungseinheiten 36a und 36b separat eine minimal notwendige Helligkeitskomponente aus den aus dem Bildpuffer­ speicher 51 übertragenen Bilddaten als Referenzdaten zur Bewegungsvoraussage gewonnen. Die gewonnenen Daten werden durch entsprechende lokale Datenbusse LDB1 und LDB2 in lokalen Speichern 56a und 56b gespeichert. Inzwischen gewinnt die Pixelverarbeitungseinheit 35b aus den aus dem Bildpuffer­ speicher 51 übertragenen Bilddaten die Farbdifferenz­ komponente, die zur Bewegungsvoraussage nicht verwendet wird. Die gewonnene Farbdifferenzkomponente wird durch den lokalen Bus LB5 im lokalen Speicher 56e gespeichert. Bei dem vorstehend beschriebenen Aufbau würde die Datenübertragungs­ menge über den Pixeldatenbus PB betragen: 768 Pixel der Originalbilddaten, 578 Pixel der Helligkeitskomponente der beiden Ebenen der vorausgesagten Bilddaten und 768 Pixel der zu codierenden Bilddaten, das heißt insgesamt 2114 Pixel.
Wenn der Bereich der Bewegungssuche ± 32 Pixel beträgt, dann werden die Daten von 1280 Pixeln über jeden der lokalen Daten­ busse LDB1 und LDB2 übertragen.
Ferner werden 578 Pixel der Helligkeitskomponente der beiden Ebenen der vorausgesagten Bilddaten als entsprechende Farb­ differenzkomponenten Cb und Cr auf dem lokalen Datenbus LB5 übertragen, und daher werden insgesamt 1156 Pixel übertragen.
Durch den vorstehend beschriebenen Aufbau kann die Daten­ übertragungsmenge über den Pixeldatenbus PB verkleinert werden, wenn der Bereich der Bewegungssuche vergrößert wird und das Format 4 : 4 : 4 als zu verarbeitendes Bildformat gewählt wird, und die Datenübertragungsmenge kann durch die entsprechenden Busse effektiv aufgeteilt werden.
Die vierzehnte Ausführungsform
Fig. 90 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 114 dar, welche eine vierzehnte Ausführungsform der vorliegenden Erfindung zeigt. In der vierzehnten Ausführungsform ist ein Zwei-Richtungs-Puffer mit drei Zuständen 80 von 32 Bit ergänzt, um den Pixeldatenbus PB und den lokalen Datenbus LDB zu verbinden. Die Pixelverarbei­ tungseinheit 37, die nicht mit dem mit dem lokalen Datenbus LDB verbundenen zweiten Datenausgangsport verbunden ist, kann verwendet werden, wie in Fig. 90 dargestellt. Eine Steuer­ einheit 29 steuert ferner Operationen des Zwei-Richtungs- Puffers mit drei Zuständen 80, einer Bewegungsvoraussage­ Einheit 47 und eines lokalen Speichers 56. Referenzbilddaten zur Bewegungsvoraussage werden durch den lokalen Datenbus LDB übertragen. Das Übertragungs-Timing zu dieser Zeit wird ferner durch eine Steuereinheit 21 gesteuert. Der Zwei-Richtungs- Puffer mit drei Zuständen 80 ist dazu in der Lage, gleich­ zeitig das Lesen von Daten und das Ausgeben von Daten, die gespeichert worden sind, in Synchronisation mit einem aus der Steuereinheit 29 bereitgestellten Uhrsignal auszuführen.
Unter Bezugnahme auf Fig. 90 werden die Bilddatenübertragung beim Codieren eines Bildes und die Bilddatenübertragungsmenge bei der Verarbeitung von einem Makroblock der Bilddaten beschrieben werden. Es wird angenommen, daß die zu codierenden Bilddaten bereits in einem Bildpufferspeicher 51 gespeichert worden sind und daß die zur Bewegungsermittlung erforderliche Helligkeitskomponente des Referenzbildes (des zu reproduzierenden Bildes) bereits im lokalen Speicher 56 gespeichert worden ist. Die Übertagungsmenge wird unter der Voraussetzung berechnet, daß das Bildformat 4 : 2 : 0 beträgt, der Bereich der Bewegungsermittlung ± 16 Pixel umfaßt und daß die Struktur eine Bildstruktur aufweist.
Zuerst werden die Originalbilddaten durch den Pixeldatenbus PB aus der Steuereinheit 21 in den Bildpufferspeicher 51 über­ tragen. Zu dieser Zeit beträgt die Menge der übertragenen Bilddaten 384 Pixel.
Anschließend wird zur Bewegungsvoraussage die Helligkeits­ komponente Bildes zur Bewegungsvoraussage durch den Pixel­ datenbus PB aus dem Bildpufferspeicher 51 in die Steuereinheit 29 und durch einen zugeordneten lokalen Bus LB4 weiter in die Einheit zur Bewegungsvoraussage 47 übertragen. Zu dieser Zeit beträgt die übertragene Bilddatenmenge 256 Pixel.
Wenn die Bewegungsvoraussage beendet ist und eine Zwischen­ bildvoraussage auf Grundlage der festgelegten Codierweise unter Verwendung der Resultate auszuführen ist, dann wird das vorausgesagte Bild (das zu reproduzierende Bild) zum Codieren aus dem Bildpufferspeicher 51 durch den Pixeldatenbus PB in die Pixelverarbeitungseinheit 37 übertragen. Zu dieser Zeit beträgt die auf eine Ebene des vorausgesagten Bildes bezogene übertragene Bilddatenmenge 451 Pixel. Daher müssen zur Zeit der Zwei-Weg-Voraussage 902 Datenpixel übertragen werden.
Danach wird das zu codierende Bild aus dem Bildpufferspeicher 51 durch den Pixeldatenbus PB zur Pixelverarbeitungseinheit 37 übertragen. Zu dieser Zeit beträgt die übertragene Bilddaten­ menge 384 Pixel.
Parallel zu den vorstehend genannten vier Bilddaten-Über­ tragungsprozessen wird zur Bewegungsvoraussage eine Helligkeitskomponente des Bildes im Bereich der Bewegungssuche aus dem lokalen Speicher 56 durch den lokalen Datenbus LDB zur Einheit zur Bewegungsvoraussage 47 übertragen. Zu dieser Zeit beträgt die auf eine Ebene des Referenzbildes bezogene übertragene Bilddatenmenge 768 Pixel. Daher müssen zur Zeit der Zwei-Weg-Voraussage 1536 Datenpixel für die beiden Ebenen übertragen werden.
Nach Beendigung des Codierens werden die Daten des zu reproduzierenden Bildes bezüglich des Bildes für die Innenbildcodierung und des Bildes für die Ein-Weg-Voraussage durch den Pixeldatenbus PB aus der Pixelverarbeitungseinheit 37 in den Bildpufferspeicher 51 übertragen. Gleichzeitig werden die Daten des zu reproduzierenden Bildes zum Zwei- Richtungs-Puffer mit drei Zuständen 80 übertragen. Ferner wird das zu reproduzierende Bild durch den lokalen Datenbus LDB aus dem Zwei-Richtungs-Puffer mit drei Zuständen 80 in den lokalen Speicher 56 mit einer Verzögerung um einen Systemzyklus übertragen. Die Steuereinheit 29 steuert die Datenübertragung durch den Zwei-Richtungs-Puffer mit drei Zuständen 80 in den lokalen Speicher 56 nur dann, wenn die Helligkeitskomponente des zu reproduzierenden Bildes übertragen wird. Zu dieser Zeit beträgt die Menge von übertragenen Bilddaten: 384 Pixel über den Pixeldatenbus PB und 256 Pixel über den lokalen Datenbus LDB.
Wie vorstehend beschrieben, ist es nicht notwendig, daß die Pixelverarbeitungseinheit 37 ein zweites Datenausgangsport aufweist, welches mit dem lokalen Datenbus LDB direkt verbunden ist, und die Busse können in gleichartiger Weise wie in der in Fig. 83 dargestellten siebenten Ausführungsform aufgeteilt werden, wobei eine Parallelverarbeitung der Datenübertragung ermöglicht wird; da in der Steuereinheit 29 eine Systemsteuereinrichtung (nicht dargestellt) vorgesehen ist, welche die Datenübertragung durch den Zwei-Richtungs- Puffer mit drei Zuständen 80 in den lokalen Speicher 56 nur dann steuert, wenn die Helligkeitskomponente des zu reproduzierenden Bildes übertragen wird.
Zu dieser Zeit ist die Datenübertragungsmenge eben so groß wie diejenige der in Fig. 83 dargestellten siebenten Ausführungsform, und sie wird zur Zeit der Zwei-Weg-Voraussage maximal. Insbesondere werden 1926 Datenpixel über den Pixel­ datenbus PB und 1536 Datenpixel über den lokalen Datenbus LDB übertragen. Folglich kann durch Aufteilen der Busse die Menge der über einen Bus übertragenen Daten verkleinert werden, wobei die Datenübertragungsgeschwindigkeit wesentlich verbessert wird und die Verarbeitungsgeschwindigkeit in der Vorrichtung zur Bildkompression/-expansion verbessert wird.
Die fünfzehnte Ausführungsform
Fig. 91 stellt ein Blockschaltbild einer Vorrichtung zur Bildkompression/-expansion 115 dar, welche eine fünfzehnte Ausführungsform der vorliegenden Erfindung zeigt. Die fünfzehnte Ausführungsform weist einen Aufbau auf, bei welchem Bitstromdaten durch einen Pufferspeicher 6 und eine externe Kommunikationsvorrichtung 94 eingegeben/ausgegeben werden. Die Bitstromdaten, welche durch Codierbilddaten mittels eines in einer Steuereinheit 23 enthaltenen Prozessors für variable Längen (nicht dargestellt) erhalten werden, und Lauf-/Pegeldaten werden im Pufferspeicher 6 zeitweilig gespeichert. Daher ist es möglich, nur die Bitstromdaten nicht durch einen Host-Computer 93 zu übertragen, so daß die Übertragungsgeschwindigkeit verbessert werden kann.
Insbesondere der Host-Computer 93 ist stark beansprucht, da verschiedene und zahlreiche Prozesse im Host-Computer 93 ablaufen, wie beispielsweise zusätzlich zum Datenübertragungs­ prozeß eine Anweisungssteuerung. Durch die Kommunikations­ vorrichtung 94 außerhalb der Vorrichtung zur Bildkompression/ -expansion 215 können Daten aus dem Pufferspeicher 6 zur Kommunikationsvorrichtung 94 übertragen werden, ohne durch den Host-Computer 93 zu gehen, und daher können die Daten mit hoher Geschwindigkeit übertragen werden, unabhängig von der Beanspruchung des Host-Computers 93.
2. Steuereinheit 1) Steuereinheit 21 (Erstes Beispiel)
Fig. 9 stellt ein Blockschaltbild dar, welches ein Beispiel einer Steuereinheit zeigt. Die in Fig. 9 dargestellte Steuereinheit 21 ist in der in den Fig. 1, 5, 6, 7 und 8 gezeigten Steuereinheit 2 verwendbar.
Unter Bezugnahme auf Fig. 9 umfaßt die Steuereinheit 21: einen Prozessor 11 zur Gesamtsteuerung, einschließlich einer Steuerung der Pipelineverarbeitung, einen Prozessor 12 zum Codieren und Decodieren mit variabler Länge, eine Steuer­ einheit 13 für eine Einheit zur Bewegungsvoraussage (zum Beispiel die in Fig. 1 dargestellte Voraussageeinheit 41), eine Einheit zur Bildformatumwandlung 14 zum Umwandeln des Bildformats, eine Einheit zur Steuerung der Bilddatenübertra­ gung 15, eine Einheit zur Anweisungsübertragung 16 für eine Einheit zur Pixelverarbeitung (zum Beispiel die in Fig. 1 dargestellte Einheit 3), ein Hauptport 17, welches mit einem Host-Bus verbunden ist (dem in Fig. 1 gezeigten Bus HB), ein Bilddatenport 18, das mit einem Pixelbus (dem in Fig. 1 dargestellten Bus PB) verbunden ist, ein VRAM-Port 19, welches mit einem Eingangs-/Ausgangsbus (dem in Fig. 1 dargestellten Bus IOB) verbunden ist, und ein Codedatenport 20, welches mit einem Codedatenbus (dem in Fig. 1 dargestellten Codebus CB) verbunden ist.
In Fig. 9 bezeichnet das Bezugszeichen "DT" im allgemeinen ein Datensignal, "ADR" bezeichnet ein Adreßsignal, und "Sc" bezeichnet ein Steuersignal.
Die entsprechenden Einheiten 12 bis 16 sind mit dem Prozessor zur Gesamtsteuerung 11 durch Busse verbunden und empfangen Anweisungen, die vom Prozessor zur Gesamtsteuerung 11 angewiesen werden. Die Einheiten 12 bis 16 bewirken unabhängig voneinander eine Verarbeitung gemäß den angewiesenen Anweisungen.
Die Steuereinheit 13, die Einheit zur Formatumwandlung 14 und die Einheit zur Steuerung der Bilddatenübertragung 15 sind mit Bussen für Pixeldaten verbunden, und die Übertragung der Pixeldaten wird unter Steuerung der Einheit zur Steuerung der Bilddatenübertragung 15 ausgeführt.
Das Hauptport 17 ist mit dem Prozessor zur Gesamtsteuerung 11 und dem Prozessor für variable Längen 12 verbunden. Wenn zwischen dem Prozessor zur Gesamtsteuerung 11 und dem variablen Prozessor 12 und dem Pufferspeicher 6 und dem in Fig. 1 dargestellten Arbeitsspeicher 7 Daten übertragen werden, dann werden die Daten durch das Hauptport 17 übertra­ gen.
Das Bilddatenport 18 ist mit der Einheit zur Steuerung der Bilddatenübertragung 15 verbunden. Die Datenübertragung zwischen der Einheit zur Steuerung der Bilddatenübertragung 15 und dem in Fig. 1 dargestellten Bildpufferspeicher 51 wird durch das Bilddatenport 18 ausgeführt. Wenn der Bildpuffer­ speicher 51 der Einheit zur Bewegungsvoraussage 41 oder der Pixelverarbeitungseinheit 3 zugewiesen ist, dann sieht das Bilddatenport 18 ein Steuersignal vor, das anzeigt, ob die Daten gültig sind oder nicht.
Das VRAM-Port 19 ist mit der Einheit zur Bildformatumwandlung 14 verbunden. Die Datenübertragung zwischen der Einheit zur Bildformatumwandlung 14 und dem in Fig. 1 dargestellten Eingabe-/Ausgabespeicher 81 wird durch das VRAM-Port ausge­ führt.
Der Prozeß der Bildkompression wird unter Bezugnahme auf die Fig. 1 und 9 beschrieben werden. Es wird angenommen, daß die zu komprimierenden Bilddaten in dem in Fig. 1 gezeigten Bildpufferspeicher 51 gespeichert worden sind. Zuerst überträgt der Prozessor zur Gesamtsteuerung 11 die Bilddaten aus dem Bildpufferspeicher 51 in die Einheit zur Bildformat­ umwandlung 14 durch Anlegen einer Anweisung zur Bilddaten­ übertragung an die Einheit zur Steuerung der Bilddatenüber­ tragung 15. Der Prozessor zur Gesamtsteuerung 11 wird durch die Einheit zur Steuerung der Bilddatenübertragung 15 über die Beendigung der Datenübertragung informiert.
Anschließend legt der Prozessor zur Gesamtsteuerung 11 eine Anweisung zur Bildformatumwandlung an die Einheit zur Bildformatumwandlung 14. Die Einheit zur Bildformatumwandlung 14 führt Operationen zum Umwandeln des Formats des Bildes aus. Insbesondere werden in der Einheit zur Bildformatumwandlung 14 eine Abtastung der Farbdifferenzsignale und die Umwandlung vom RGB-Format in das YUV-Format ausgeführt. Die Beendigung der Datenübertragung wird von der Einheit zur Steuerung der Bilddatenübertragung 15 an den Prozessor zur Gesamtsteuerung 11 signalisiert.
Um Prozesse zur Bewegungsvoraussage und -bestimmung des Codiermodus zu bewirken, überträgt Prozessor zur Gesamt­ steuerung 11 Bilddaten zur Bewegungsvoraussage aus dem Bildpufferspeicher 51 zur Voraussagesteuereinheit 13. Diese Datenübertragung wird durch Ausgeben einer Anweisung zur Bilddatenübertragung aus dem Prozessor zur Gesamtsteuerung 11 an die Einheit zur Steuerung der Bilddatenübertragung 15 ausgeführt. Der Prozessor zur Gesamtsteuerung 11 wird von der Einheit zur Steuerung der Bilddatenübertragung 15 über die Beendigung der Datenübertragung informiert.
Der Prozessor zur Gesamtsteuerung 11 gibt, wenn erforderlich, eine Anweisung zur Datenabtastung an die Steuereinheit zur Bewegungsvoraussage 13 aus, wodurch die Steuereinheit zur Bewegungsvoraussage 13 das Abtasten der Bilddaten ausführt, was Gegenstand der Bewegungsvoraussage ist. Der Prozessor zur Gesamtsteuerung 11 wird von der Steuereinheit 13 über die Beendigung des Abtastens der Daten informiert.
Danach gibt der Prozessor zur Gesamtsteuerung 11 eine Anweisung zur Modusberechnungsoperation zur Innenbildcodierung an die Steuereinheit zur Bewegungsvoraussage 13 aus. Die Steuereinheit 13 führt eine Operation für berechnete Werte im Innenbild-Codiermodus an denjenigen Daten aus, die Gegenstand der Bewegungsvoraussage sind (Daten, welche abgetastet worden sind, wie gefordert). Der Prozessor zur Gesamtsteuerung 11 wird von der Steuereinheit 13 über die Beendigung dieser Operation informiert.
Ferner gibt der Prozessor zur Gesamtsteuerung 11 eine Anweisung zur Datenübertragung an die Einheit zur Steuerung der Bilddatenübertragung 15 aus, und die Einheit zur Steuerung der Bilddatenübertragung 15 überträgt die Bilddaten im Gebiet der Bewegungssuche aus dem Bildpufferspeicher 51 in die Einheit zur Bewegungsvoraussage 41. Der Prozessor zur Gesamt­ steuerung 11 wird von der Einheit zur Steuerung der Bilddaten­ übertragung 15 über die Beendigung der Datenübertragung informiert.
Anschließend legt der Prozessor zur Gesamtsteuerung 11 eine Anweisung zur Übertragung von Daten zur Bewegungsvoraussage an die Steuereinheit zur Bewegungsvoraussage 13, und die Steuereinheit 13 überträgt die zu ermittelnden Daten (Daten, die abgetastet werden, falls erforderlich) in die Einheit zur Bewegungsvoraussage 41. Der Prozessor zur Gesamtsteuerung 11 wird von der Einheit zur Steuerung der Bilddatenübertragung 15 über die Beendigung der Datenübertragung informiert.
Nachdem die Bilddaten zur Suche und die Bilddaten zur Bewegungsvoraussage übertragen wurden, startet die Einheit zur Bewegungsvoraussage 41 die Bewegungsvoraussage und erzeugt nach einer Weile ein Ergebnis der Bewegungsvoraussage, das sind die berechneten Daten für den Zwischenbild-Codiermodus.
Nach Ablauf eines bestimmten Zeitabschnitts gibt der Prozessor zur Gesamtsteuerung 11 eine Anweisung zum Empfangen des Ergebnisses der Bewegungsvoraussage an die Steuereinheit zur Bewegungsvoraussage 13 aus, und die Steuereinheit 13 empfängt aus der Einheit zur Bewegungsvoraussage 41 Daten, welche auf das Ergebnis der Bewegungsvoraussage hinweisen. Der Prozessor zur Gesamtsteuerung 11 wird von der Steuereinheit 13 über die Beendigung des Datenempfangs informiert.
Danach legt der Prozessor zur Gesamtsteuerung 11 den Codier­ modus auf Grundlage der berechneten Wertedaten des Innenbild- Codiemodus fest, welche durch die Operation in der Steuereinheit zur Bewegungsvoraussage 13 erhalten werden, und auf Grundlage der berechneten Wertedaten für den Zwischenbild- Codiermodus, welche durch die Operation in der Einheit zur Bewegungsvoraussage 41 erhalten werden. Die Festlegung des Codiermodus wird durch Bezugnahme auf im Pufferspeicher 6 gespeicherte Tabellendaten zur Festlegung des Codiermodus oder durch Vergleichen der berechneten Daten bewirkt.
Nachdem der Codiermodus festgelegt wurde, wird eine Quellen­ codierung ausgeführt, das heißt ein DCT und eine Quanti­ sierung. Zuerst gibt der Prozessor zur Gesamtsteuerung 11 eine Anweisung zur Bilddatenübertragung an die Steuereinheit zur Bilddatenübertragung 15 aus, und die Steuereinheit zur Bild­ datenübertragung 15 überträgt die zu codierenden Daten aus dem Bildpufferspeicher 51 in die Pixelverarbeitungseinheit 3. Der Prozessor zur Gesamtsteuerung 11 wird von der Steuereinheit zur Bilddatenübertragung 15 über die Beendigung der Datenüber­ tragung informiert.
Danach gibt der Prozessor zur Gesamtsteuerung 11 eine Anweisung zur Quellencodierung an die Pixelverarbeitungs­ einheit 3 durch die Einheit zur Anweisungsübertragung 16 für eine Pixelverarbeitungseinheit aus. Die Pixelverarbeitungs­ einheit 3 führt die Quellencodierung, das heißt das DCT und die Quantisierung, in Reaktion auf die Anweisung zur Quellencodierung aus. Der Prozessor zur Gesamtsteuerung 11 wird aus der Pixelverarbeitungseinheit 3 durch die Einheit zur Anweisungsübertragung 16 über die Beendigung der Operation informiert.
Nach der Quellencodierung, das heißt nach dem DCT und der Quantisierung, wird eine Codierung mit variabler Länge ausge­ führt. Insbesondere gibt der Prozessor zur Gesamtsteuerung 11 eine Anweisung aus, welche eine Übertragung der verarbeiteten Daten in die Pixelverarbeitungseinheit 3 durch die Einheit zur Anweisungsübertragung 16 anweist. In Reaktion auf diese Anweisung überträgt die Pixelverarbeitungseinheit 3 die verarbeiteten Daten zum Prozessor für variable Längen 12. Der Prozessor zur Gesamtsteuerung 11 wird aus der Pixelverarbei­ tungseinheit 3 durch die Einheit zur Anweisungsübertragung 16 über die Beendigung der Datenübertragung informiert.
Um das Codieren mit variabler Länge, das heißt eine Entropie­ codierung, auszuführen, gibt der Prozessor zur Gesamt Steuerung 11 eine Anweisung zur Entropiecodierung an den Prozessor für variable Längen 12 aus. Der Prozessor für variable Längen 12 führt die Entropiecodierung aus. Bei der Entropiecodierung wird eine den Huffman-Code verwendende Codeumwandlung und dergleichen bewirkt. Insbesondere der Prozessor für variable Längen 12 führt die Codeumwandlung der durch Quellencodierung erhaltenen Daten unter Bezugnahme auf Daten einer im Arbeits­ speicher 7 gespeicherten Codeumwandlungstabelle aus. Der Prozessor zur Gesamt Steuerung 11 wird vom Prozessor für variable Längen 12 über die Beendigung der Entropiecodierung informiert.
Nach Beendigung der Entropiecodierung gibt der Prozessor zur Gesamtsteuerung 11 eine Anweisung aus, welche eine Übertragung der verarbeiteten Daten in den Prozessor für variable Längen 12 anweist. Der Prozessor für variable Längen 12 überträgt die verarbeiteten Daten in den Pufferspeicher 6. Der Prozessor zur Gesamt Steuerung 11 wird vom Prozessor für variable Längen 12 über die Beendigung der Datenübertragung informiert.
Wie aus der vorstehenden Beschreibung zu ersehen ist, kann die Bilddatenkompression sowohl in verschiedenen Verarbeitungs­ einheiten 13, 14, 15 und 16 in der Steuereinheit 21 als auch im Prozessor für variable Längen 12 unter der Gesamtsteuerung des Steuerprozessors 11 unabhängig ausgeführt werden. Insbesondere können die Umwandlung des Bildformats durch die Einheit zur Bildformatumwandlung, die Bewegungsvoraussage und die Operation für den Codiermodus-Berechnungswert durch die Einheit zur Bewegungsvoraussage 41 und die Steuereinheit zur Bewegungsvoraussage 13, die Bilddatenübertragung durch die Steuereinheit zur Bilddatenübertragung 15, die Quellen­ codierung durch die Pixelverarbeitungseinheit 3 und die Entropiecodierung durch den Prozessor für variable Längen 12 parallel und unabhängig voneinander ausgeführt werden. Daher beeinflußt der Prozessor zur Gesamtsteuerung 11 bei der Steuerung der Pipelineverarbeitung die vorstehend beschriebenen Prozessoren für alle Makroblockdaten des Bildes. Die Pipelineverarbeitung der vorstehend beschriebenen Prozesse wird unter Bezugnahme auf die Fig. 11 und 12 nachstehend detailliert beschrieben werden. Die Pipelineverarbeitung realisiert eine hocheffektive Bildkompression.
Eine Bildexpansion wird in gleichartiger Weise wie die Bild­ kompression ebenfalls ausgeführt, und verschiedene Prozesse in der Steuereinheit 21 werden unabhängig voneinander unter der Gesamtsteuerung durch den Prozessor zur Gesamtsteuerung 11 ausgeführt. Bei der Bildexpansion werden die im Pufferspeicher 6 gespeicherten Codedaten invers codiert, und schließlich werden die expandierten Bilddaten durch die Einheit zur Bildformatumwandlung 14 in den in Fig. 1 dargestellten Eingabe- /Ausgabespeicher 81 übertragen.
2) Steuereinheit 22 (Zweites Beispiel)
Fig. 10 stellt ein Blockschaltbild dar, welches ein anderes Beispiel der Steuereinheit zeigt. Die in Fig. 10 dargestellte Steuereinheit 22 ist in der in Fig. 4 gezeigten Steuereinheit 22 verwendbar. Im Vergleich zu der in Fig. 9 dargestellten Steuereinheit 21 ist die Steuereinheit zur Bewegungsvoraussage 13 aus der Steuereinheit 22 entfernt. Insbesondere die in Fig. 4 dargestellte Vorrichtung zur Bildkompression/-expan­ sion 102 erfordert keine Bewegungsvoraussage, und die Steuereinheit zur Bewegungsvoraussage aus der Steuereinheit 22 ist entsprechend entfernt.
Es wird bemerkt, daß außer der Bewegungsvoraussage die in Fig. 10 dargestellte Steuereinheit 22 in gleichartiger Weise wie die in Fig. 9 dargestellte Steuereinheit 21 betrieben wird. Folglich können gleichartige Vorteile wie bei der in Fig. 9 dargestellten Steuereinheit 21 erhalten werden, das heißt, die verschiedenen internen Einheiten in der Steuer­ einheit 22 können unabhängig voneinander und parallel zueinander betrieben werden, und die Bilddatenkompression kann unter der Steuerung der Pipelineverarbeitung wirkungsvoll ausgeführt werden.
3) Pipelineverarbeitung
Der in den Fig. 9 und 10 dargestellte Prozessor zur Gesamt­ steuerung 11 führt die Pipelineverarbeitung in der Vorrichtung zur Bildkompression/-expansion in der folgenden Art und Weise aus.
Fig. 11 stellt ein Zeitablaufdiagramm dar, das die Pipeline­ verarbeitung zeigt, welche unter der Steuerung des in Fig. 9 dargestellten Prozessors zur Gesamtsteuerung 11 ausgeführt wird. Unter Bezugnahme auf Fig. 11 stellt die Abszisse die Zeit und die Ordinate die Prozeßschritte zur Bildkompression dar. Bei der Bildkompression werden zu verarbeitende Ein-Bild- Daten in eine Anzahl von Makroblöcke MB eingeteilt und die Prozesse zur Bildkompression an allen Makroblockdaten ausge­ führt. Im in Fig. 11 dargestellten Beispiel werden die Daten von zehn Makroblöcken MB1 bis MB10 verarbeitet.
Unter Bezugnahme auf Fig. 11 wird die Verarbeitung der Daten von einem Makroblock MB1 beispielhaft beschrieben werden. Zuerst werden in einem Zeitabschnitt T1 die RGB-Daten der Makroblockdaten MB1 aus dem in Fig. 1 dargestellten Eingabe-/Ausgabespeicher 81 zur Steuereinheit 2 übertragen (Schritt S1). In einem Zeitabschnitt T2 werden die RGB-Daten in YUV-Daten durch die in Fig. 9 dargestellte Einheit zur Bildformatumwandlung 14 umgewandelt (Schritt S2).
In einem Zeitabschnitt T3 werden die YUV-Daten in den Bild­ pufferspeicher 51 übertragen, und die Bilddaten, welche Gegenstand der Suche sind, werden zur Steuereinheit 2 übertragen. Zur gleichen Zeit werden die Bilddaten, welche Gegenstand der Suche sind, in die Einheit zur Bewegungs­ voraussage 41 durch den Pixeldatenbus PB übertragen (Schritt S3).
In einem Zeitabschnitt T4 wird durch die Einheit zur Bewegungsvoraussage 41 die Bewegungsvoraussage bewirkt (Schritt S4). In einem Zeitabschnitt T5 wird durch die Steuereinheit 2 ein Codiermodus festgelegt (Schritt S5).
In einem Zeitabschnitt T6 werden die zu codierenden Bilddaten aus dem Bildpufferspeicher 51 in die Pixelverarbeitungseinheit 3 übertragen, während die Referenzbilddaten zur Pixelverarbei­ tungseinheit 3 durch den Pixeldatenbus PB übertragen werden (Schritt S6).
In einem Zeitabschnitt T7 wird die Bildverarbeitung für das Codieren, das heißt das DCT und die Quantisierung, durch die Pixelverarbeitungseinheit 3 bewirkt (Schritt S7). In einem Zeitabschnitt T8 werden die verarbeiteten Daten, das heißt die Lauf-/Pegeldaten, zum Pufferspeicher 6 durch den Codebus CB übertragen (Schritt S8).
In einem Zeitabschnitt T9 wird das Codieren mit variabler Länge durch den in Fig. 9 dargestellten Prozessor für variable Längen 12 bewirkt (Schritt S9) In einem Zeitab­ schnitt T10 werden die verarbeiteten Daten, das heißt die Codedaten variabler Länge, durch den Codebus CB in den Puffer­ speicher 6 übertragen (Schritt S10).
Wie vorstehend beschrieben, wird in der Vorrichtung zur Bildkompression/-expansion 101 die Pipelineverarbeitung unter der Steuerung durch den Prozessor zur Gesamtsteuerung 11 ausgeführt. Wie in Fig. 11 dargestellt, werden daher die entsprechenden Prozesse in den Zeitabschnitten T2 bis T10 nacheinander an anderen Makroblockdaten NB2 bis MB10 in gleichartiger Weise wie an den Makroblockdaten MB1 ausgeführt.
Fig. 12 zeigt einen Parallelbetrieb in dem in Fig. 11 dargestellten einen Zeitabschnitt T10. Insbesondere zeigt
Fig. 11 im Zeitabschnitt T10 den Betriebszustand verschiedener interner Einheiten in der Steuereinheit 21 und der Vorrichtung zur Bildkompression/-expansion 101, welche in den Fig. 1 und 9 dargestellt sind. Unter Bezugnahme auf Fig. 12 überträgt im Zeitabschnitt T10 der Eingabe-/Ausgabe­ bus IOB die RGB-Daten des zehnten Makroblocks MB10 (der in Fig. 11 dargestellte Schritt S1). Der Pixeldatenbus PB überträgt die Daten des achten und des fünften Makroblocks MB8 und MB5 (Schritte S3 und S6). Der Codebus CB überträgt die Daten des dritten und des ersten Makroblocks MB3 und MB1 (Schritte S8 und S10).
Der Prozessor zur Gesamtsteuerung 11 steuert die Übertragung der RGB-Daten des zehnten Makroblocks MB10 (Schritt S3) und legt parallel dazu den Codiermodus des sechsten Makroblocks MB6 fest (Schritt S5). Ferner bewirkt der Prozessor zur Gesamtsteuerung 11 die Reihenfolgesteuerung der Makroblöcke MB1 bis MB10, das heißt die Steuerung für die Pipelinever­ arbeitung.
Der Prozessor für variable Längen 12 bewirkt das Codieren mit variabler Länge an dem zweiten Makroblock MB2 (Schritt S9). Die Einheit zur Anweisungsübertragung 16 führt die Bildver­ arbeitungs-Steuerung des vierten Makroblocks MB4 aus (Schritt S7).
Die Steuereinheit zur Bewegungsvoraussage 13 führt die Bewegungsvoraussage des siebenten Makroblocks MB7 aus (Schritt S4). Die Einheit zur Steuerung der Bilddatenübertragung 15 steuert die Datenübertragung des achten und fünften Makro­ blocks MB8 und MB5 (Schritt S8).
Die Einheit zur Bilddatenumwandlung 14 führt die Format­ umwandlung (von RGB zu YUV) am neunten Makroblock MB9 aus (Schritt S2). Die Pixelverarbeitungseinheit 3 führt die Bildverarbeitung am vierten Makroblock MB4 aus (Schritt S7). Die Einheit zur Bewegungsvoraussage 4 führt die Voraussage des siebenten Makroblocks MB7 aus (Schritt S4).
4) Aufbau der entsprechenden internen Einheiten i) Prozessor zur Gesamtsteuerung 11 (Fig. 13)
Fig. 13 stellt ein Blockschaltbild des in Fig. 9 gezeigten Prozessors zur Gesamtsteuerung 11 dar. Unter Bezugnahme auf Fig. 13 umfaßt der Prozessor zur Gesamtsteuerung 11: einen Anweisungsspeicher 111, eine Programmsteuereinrichtung 112, eine Reihenfolgesteuereinrichtung/einen Adreßoperator 113, eine Systemsteuereinrichtung 114, ein Operationsregisterfile 115 und einen Datenoperator 116. In dieser Figur bezeichnet das Bezugszeichen "DT" Daten, "ADR" bezeichnet ein Adreß­ signal, "ID" bezeichnet Anweisungsdaten, "SSc" bezeichnet ein status-Steuersignal und "Sc" bezeichnet ein Steuersignal.
ii) Einheit zur Steuerung der Bewegungsvoraussage 13 (Fig. 14)
Fig. 14 stellt ein Blockschaltbild einer in Fig. 9 darge­ stellten Einheit zur Steuerung der Bewegungsvoraussage 13 dar. Unter Bezugnahme auf Fig. 14 umfaßt die Einheit zur Steuerung der Bewegungsvoraussage 13: eine Modus-/Timing-Steuereinrich­ tung 131 für die Einheit zur Bewegungsvoraussage, eine Gesamt­ steuereinrichtung 132, einen Vektordatenprozessor 133, einen Prozessor 134 für Bilddaten für die Bewegungsermittlung und einen Berechnungsoperator 135 für den Innenbild-Codiermodus.
Die Modus-/Timing-Steuereinrichtung 131 sieht ein Steuersignal Smc für die Einheit zur Bewegungsvoraussage 41 vor. Der Vektordatenprozessor 133 sieht ferner ein Steuersignal Smc für die Einheit zur Bewegungsvoraussage 41 vor. Der Vektordaten­ prozessor 133 empfängt die die Ergebnisse der Bewegungser­ mittlung anzeigenden Daten Dmr aus der Einheit zur Bewegungs­ voraussage 41. Der Prozessor 134 für Bilddaten für die Bewegungsermittlung sieht ein Steuersignal Smc für Bilddaten Dmi, welche Gegenstand der Bewegungsermittlung sind, und für die Einheit zur Bewegungsvoraussage 41 vor. Der Prozessor 134 für Bilddaten für die Bewegungsermittlung gibt Pixeldaten PD an den Berechnungsoperator 135 für den Innenbild-Codiermodus aus.
iii) Einheit zur Bildformatumwandlung 14 (Fig. 15)
Fig. 15 stellt ein Blockschaltbild der in Fig. 9 gezeigten Einheit zur Bildformatumwandlung 14 dar. Unter Bezugnahme auf Fig. 15 umfaßt die Einheit zur Bildformatumwandlung 14: eine Gesamtsteuereinrichtung 141, eine VRAM-Steuereinrichtung 142, einen Farbkonverter 143, ein UV-Filter 144 und einen Bild­ speicher 145.
Die Gesamtsteuereinrichtung 141 empfängt Daten DT und ein Adreßsignal ADR durch einen Hauptdatenbus MB. Die VRAM- Steuereinrichtung 142 ist mit einem VRAM-Port 19 verbunden. Der Bildspeicher 145 empfängt Pixeldaten PD durch einen internen Pixeldatenbus IPB und stellt gespeicherte Daten bereit.
iv) Einheit zur Steuerung der Bilddatenübertragung 15 (Fig. 16)
Fig. 16 stellt ein Blockschaltbild der in Fig. 9 dargestell­ ten Einheit zur Steuerung der Bilddatenübertragung 15 dar. Unter Bezugnahme auf Fig. 16 umfaßt die Einheit zur Steuerung der Bilddatenübertragung 15: eine Gesamtsteuereinrichtung 151, eine Steuereinrichtung für den Bilddatenspeicher 152, eine Steuereinrichtung für die Bilddatenübertragung 153 und eine Steuereinrichtung für die Pixeldatenbusübertragung 154.
In Fig. 16 bezeichnet das Bezugszeichen "Simc" ein Bilddaten­ speicher-Steuersignal, "Sptc" bezeichnet ein Bilddatenüber­ tragungs-Steuersignal für die Pixelverarbeitungseinheit 3, und "Smtc" bezeichnet ein Bilddatenübertragungs-Steuersignal für die Einheit zur Bewegungsvoraussage 41.
v) Einheit zur Anweisungsübertragung 16 (Fig. 17)
Fig. 17 stellt ein Blockschaltbild der in Fig. 9 gezeigten Einheit zur Anweisungsübertragung 16 dar. Unter Bezugnahme auf Fig. 17 umfaßt die Einheit zur Anweisungsübertragung 16 für die Pixelverarbeitungseinheit 3: eine Gesamtsteuereinrichtung 161, eine Steuereinrichtung zur Anweisungsübertragung 162 und einen Statusmonitor 163. Die Steuereinrichtung zur Anweisungs­ übertragung 162 sieht ein Steuersignal Spc für die Pixelver­ arbeitungseinheit 3 vor. Der Statusmonitor 163 empfängt ein Statussignal Sps aus der Pixelverarbeitungseinheit 3. Die Gesamtsteuereinrichtung 161 empfängt Daten DT und ein Adreß­ signal ADR durch einen Hauptdatenbus MB.
Auf diese Weise empfangen die in den Fig. 14 bis 17 darge­ stellten entsprechenden internen Einheiten 13, 14, 15 und 16 aus dem in Fig. 13 dargestellten Prozessor zur Gesamt­ steuerung 11 Signale, welche den Start von entsprechenden Prozessen anweisen, und übertragen Steuersignale, welche auf die Beendigung der entsprechenden Prozesse hinweisen, zurück zum Prozessor zur Gesamtsteuerung 11, wenn die entsprechenden Prozesse abgeschlossen sind. Es wird ausdrücklich darauf hingewiesen, daß die internen Einheiten 13, 14, 15 und 16 die entsprechenden Prozesse unabhängig voneinander in Reaktion auf die Prozeßstartsignale aus dem Prozessor zur Gesamtsteuerung 11 ausführen können. Folglich kann unter der Steurung des Prozessors zur Gesamtsteuerung 11 die Datenverarbeitung zur Bildkompression und Bildexpansion wirksam pipelineartig ausge­ führt werden.
5) Steuereinheit 200 (Drittes Beispiel)
Fig. 92 stellt ein Blockschaltbild dar, welches ein weiteres Beispiel der Steuereinheit zeigt. Die in Fig. 92 dargestellte Steuereinheit 200 kann in der in den Fig. 1, 5 bis 8 und 84 bis 91 dargestellten Steuereinheit verwendet werden.
Unter Bezugnahme auf Fig. 92 umfaßt die Steuereinheit 200: einen Host-Schnittstellenabschnitt 201, der mit einem Host-Bus HB verbunden ist; einen Abschnitt zur Gesamtsteuerung 202 zum Ausführen verschiedener Steuerungen, einschließlich der Pipelinesteuerung; einen Video-Eingangs-/Ausgangsabschnitt 203, der mit einem Eingangs-/Ausgangsbus IOB verbunden ist; einen Hauptprozessor 204, der in Macrocodes verfaßte Programme ausführt; einen Bildspeicher-Steuerabschnitt 205; einen Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 zum Steuern eines Bildspeichers zur Bewegungsvoraussage; einen Codedaten-Steuerabschnitt 207, welcher die Codedaten in eine und aus einer Pixelverarbeitungseinheit überträgt; einen Parameter-Operationsabschnitt 208 und einen Prozessor für variable Längen 209 zum Codieren/Decodieren mit variabler Länge.
Ferner umfaßt die Steuereinheit 200 als interne Busse: einen ersten internen Bus 210, der zwischen dem Video-Eingangs-/Aus­ gangsabschnitt 203 und dem Bildspeicher-Steuerabschnitt 205 geschaltet ist; einen zweiten internen Bus 211, der jeweils mit dem Bildspeicher-Steuerabschnitt 205, dem Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 und mit dem Parameter-Operationsabschnitt 208 verbunden ist; einen dritten internen Bus 212, der zwischen dem Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 und dem Bildspeicher- Steuerabschnitt 205 geschaltet ist; einen vierten internen Bus, der zwischen dem Codedaten-Steuerabschnitt 207 und dem Prozessor für variable Längen 209 geschaltet ist; und einen Hauptbus 214, der mit allen Blöcken verbunden ist.
Der Aufbau und die Betriebsweise der verschiedenen Blöcke wird im folgenden beschrieben werden.
Der Host-Schnittstellenabschnitt 201 stellt einen Steuerab­ schnitt dar, welcher die Datenübertragung zwischen dem externen Rost-Computer und der Steuereinheit 200 steuert. Der Dateneingang/-ausgang durch den Host-Schnittstellenabschnitt 201 wird durch den Hauptbus 214 übertragen, welcher mit jedem Block in der Steuereinheit 200 verbunden ist.
Der Abschnitt zur Gesamtsteuerung 202 stellt einen Block dar, welcher vor allem verschiedene Operations-Timings und Pipelineverarbeitungen in der Steuereinheit 200 überwacht. Zur Zeit der Bildcodierung erzeugt der Abschnitt zur Gesamt­ steuerung 202 einen internen Synchronisierungspuls auf Grund­ lage der Bildeinheit oder der Makroblockeinheit, welcher auf einer Basisuhr und einem Synchronisierungssignal basiert, steuert die Hauptparameter beim Codieren, überträgt Daten und so weiter.
Der Video-Eingangs-/Ausgangsabschnitt 203 weist beispielsweise eine Schnittstelle mit dem in Fig. 83 dargestellten Eingangs-/Ausgangsspeicher 81 auf, und in der Steuereinheit 200 ist er mit dem Bildspeicher-Steuerabschnitt 205 durch den ersten internen Bus 210 verbunden.
Der Hauptprozessor 204 stellt einen Block dar, der vor allem für die angepaßte Verarbeitung beim Codieren verantwortlich ist, dessen Details nachstehend beschrieben werden. Wenn ein Konflikt mit dem Host-Schnittstellenabschnitt 201 vorhanden ist, dann wird der Hauptprozessor 204 der Master des Haupt­ busses 214 sein und die Datenübertragung des Registers/Speichers in jedem Block durchführen.
Der Bildspeicher-Steuerabschnitt 205 umfaßt als externe Schnittstelle eine Schnittstelle von 32 Bit, welche als Master eines 32 Bit-Pixeldatenbusses (beispielsweise des Pixeldaten­ busses PB der Fig. 83) zwischen einem Bildpufferspeicher (zum Beispiel dem in Fig. 83 dargestellten Bildpufferspeicher 51) und einer Pixelverarbeitungseinheit (beispielsweise der in Fig. 83 dargestellten Pixelverarbeitungseinheit 33) wirkt. Der Bildspeicher-Steuerabschnitt 205 ist in der Steuereinheit 200 mit dem Video-Eingangs-/Ausgangsabschnitt 203 durch den ersten internen Bus 210, mit dem Parameter-Steuerabschnitt 208 sowie dem Steuerabschnitt für die Einheit zur Bewegungs­ voraussage 206 durch den zweiten internen Bus 211 und ferner mit einer anderen Schnittstelle des Steuerabschnitts für die Einheit zur Bewegungsvoraussage 206 durch den dritten internen Bus 212 verbunden.
Der Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 umfaßt als externe Schnittstellen eine Schnittstelle, welche ein Steuersignal an die Einheit zur Bewegungsvoraussage (zum Beispiel die in Fig. 83 dargestellte Einheit zur Bewegungsvoraussage 47) ausgibt, und eine Schnittstelle, welche ein eine Adresse enthaltendes Steuersignal an einen lokalen Speicher (zum Beispiel den in Fig. 83 dargestellten lokalen Speicher 56) ausgibt.
Der Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 umfaßt ferner eine Schnittstelle mit einem lokalen Bus (beispielsweise dem in Fig. 83 dargestellten lokalen Bus LB4) zum Übertragen von Parametern, wie beispielsweise den Bewegungsvektor- und Musterdaten (Bilddaten), zu und aus der Einheit zur Bewegungsvoraussage. Ferner ist der Steuerab­ schnitt für die Einheit zur Bewegungsvoraussage 206 in der Steuereinheit 200 mit dem Bildspeicher-Steuerabschnitt 205 sowie dem Parameter-Steuerabschnitt 208 durch den zweiten internen Bus 211 und mit dem Bildspeicher-Steuerabschnitt 205 durch den dritten internen Bus 212 verbunden.
Der Codedaten-Steuerabschnitt 207 weist eine Schnittstelle auf, die mit einem Codebus (beispielsweise dem in Fig. 83 gezeigten Codebus CB) verbunden ist zur Verbindung mit einer Pixelverarbeitungseinheit (beispielsweise der in Fig. 83 dargestellten Pixelverarbeitungseinheit 33) und mit einem Pufferspeicher (zum Beispiel dem in Fig. 83 dargestellten Pufferspeicher 6). Der Codedaten-Steuerabschnitt 207 ist in der Steuereinheit 200 mit dem Prozessor für variable Längen 209 durch den vierten internen Bus 213 verbunden.
Der Parameter-Operationsabschnitt 208 ist mit dem Bild­ speicher-Steuerabschnitt 205 und mit dem Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 durch den zweiten internen Bus 211 verbunden. Durch den zweiten internen Bus 211 werden die Musterdaten aus dem Bildspeicher-Steuerabschnitt 205 in den Parameter-Operationsabschnitt 208 ausgegeben, und der Parameter-Operationsabschnitt 208 gewinnt Parameter bezüglich des Musters. Der Parameter-Operationsabschnitt 208 umfaßt ein Register, welches das Ergebnis der Operation darin speichert. Das im Register gespeicherte Operationsergebnis kann durch den Hauptbus 214 übertragen (gelesen) werden (Slave-Operation).
Der Prozessor für variable Längen 209 ist mit dem Codedaten- Steuerabschnitt 207 durch den vierten internen Bus 213 verbunden. Das Codieren mit variabler Länge von Daten des Lauf-/Pegeltyps oder des Quantisierungsindex, welche aus dem Codedaten-Steuerabschnitt 207 übertragen werden, wird im Prozessor für variable Längen 209 bewirkt. Die im Prozessor für variable Längen 209 erzeugten Bitstromdaten werden in den Bildpufferspeicher (beispielsweise den in Fig. 83 dargestell­ ten Bildpufferspeicher 51) übertragen.
Das Wesen der Prozesse in den entsprechenden Blöcken in der Steuereinheit 200 während der Bildcodierung wird unter Bezugnahme auf die Fig. 83 und 92 detailliert beschrieben werden.
Die Steuereinheit 23 hat die Aufgabe, die Pixelverarbeitungs­ einheit 33 und die Einheit zur Bewegungsvoraussage 47 zu steuern, um das Codieren auszuführen. Daher werden vor allem die folgenden vier Datensteuertypen ausgeführt.
  • 1) Lesen der Originaldaten und Speichern der Daten im Bild­ pufferspeicher 51.
  • 2) Lesen der Musterdaten zur Bewegungsvoraussage und Aktivierung der Einheit zur Bewegungsvoraussage 47.
  • 3) Lesen und Festlegen der Ergebnisse der Bewegungsvoraussage und Aktivieren der Pixelverarbeitungseinheit 33.
  • 4) Lesen und Verarbeiten einer variablen Länge der Codedaten (Quantisierungsindex/Laufpegel) und Schreiben in den Puffer­ speicher 6.
Die vier Datensteuerungstypen werden unter Bezugnahme auf die Operationen der entsprechenden Blöcke beschrieben werden.
i) Lesen der Originaldaten und Schreiben der Daten in den Bildpufferspeicher 51 (Abbilden)
Die in einem externen Eingangs-/Ausgangsspeicher gespeicherten Originaldaten (die zu codierenden Originalbilddaten) werden auf Grundlage einer sogenannten Makroblockeinheit segmentiert und zum Video-Eingangs-/Ausgangsabschnitt 203 übertragen.
Der Video-Eingangs-/Ausgangsabschnitt 203 umfaßt darin eine Schaltung zur Umwandlung aus dem RGB-Format in das YUV-Format sowie eine Filterschaltung, und die Formatumwandlung wird an dieser Stelle ausgeführt (zum Beispiel: RGB → YUV, 4 : 2 : 2 → 4 : 2 : 0 usw.). Die verarbeiteten Daten werden durch den ersten internen Bus 210 zum Bildspeicher-Steuerabschnitt 205 übertragen. Der Bildspeicher-Steuerabschnitt 205 bildet die übertragenen Daten in einem Format ab (schreibt sie in einem Format), welches für das folgende Codieren im durch den Bild­ speicher-Steuerabschnitt 205 gesteuerten Bildpufferspeicher 51 geeignet ist. Das Verfahren zum Abbilden wird nachstehend detailliert beschrieben werden.
Die Erzeugung einer Adresse des Bildpufferspeichers 51 wird durch den Bildspeicher-Steuerabschnitt 205 ausgeführt. Die Steuerung des Bildpufferspeichers 51 und das Timing der Datenübertragung aus dem Video- Eingangs-/Ausgangsabschnitt 203 wird durch den Abschnitt zur Gesamtsteuerung 202 überwacht.
ii) Lesen der Musterdaten zur Bewegungsvoraussage und Steuern der Einheit zur Bewegungsvoraussage
Um die Bewegungsvoraussage eines zu codierenden Makroblocks zu bewirken, liest der Bildspeicher-Steuerabschnitt 205 die dem Makroblock entsprechenden Bilddaten aus dem Bildpufferspeicher 51. Die Daten werden als Musterdaten zugewiesen. Der Bild­ speicher-Steuerabschnitt 205 überträgt die Musterdaten zum Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 und zum Parameter-Operationsabschnitt 208.
Der Steuerabschnitt für die Einheit zur Bewegungsvoraussage 206 überträgt die Musterdaten in die Einheit zur Bewegungs­ voraus sage 47 durch den lokalen Bus LB4 und überträgt gleichzeitig den Musterdaten entsprechende Suchfensterdaten zum lokalen Speicher 56 durch den lokalen Datenbus LDB. Ferner aktiviert der Steuerabschnitt für die Einheit zur Bewegungs­ voraussage 206 eine Operation zur Bewegungsvoraussage der Musterdaten durch Ausgeben als Eingang, als Steuersignal, wie beispielsweise ein Signal zur Aktivierungssteuerung, an die Einheit zur Bewegungsvoraussage 47.
Ferner überträgt der Bildspeicher-Steuerabschnitt 205 die Musterdaten zum Steuerabschnitt für die Einheit zur Bewegungs­ voraussage 206 durch den zweiten internen Bus 111 und gleichzeitig zum Parameter-Operationsabschnitt 208. Der Parameter-Operationsabschnitt 208 gewinnt die Merkmale der Musterdaten durch eine vorgeschriebene Operation, welche Merkmale zur Festlegung des Codierens und dergleichen spät er verwendet werden. Die an dieser Stelle berechneten Parameter umfassen: eine Varianz (nur des Helligkeitssignals) von jedem Block (im Feld/Bild beide Blöcke) des Musters zur Aktivierungsberechnung, einen Mittelwert und einen Varianzwert des Helligkeitssignals des Muster-Makroblocks und so weiter, welche Pixeloperationen erfordern.
iii) Lesen des Ergebnisses der Bewegungsvoraussage und Aktivieren der Pixelverarbeitungseinheit
Nach mehreren Makroblockzyklen wird aus der Aktivierung der Einheit zur Bewegungsvoraussage das Ergebnis der Bewegungs­ voraussage, das heißt, werden die verschiedenen Modi zur Bewegungsvoraussage, Rückbewegungsvektoren in der horizontalen und vertikalen Richtung und berechnete Funktionen derselben, in den Abschnitt zur Steuerung der Einheit zur Bewegungs­ voraussage 206 durch den lokalen Bus LB4 aufgenommen.
Der Abschnitt zur Steuerung der Einheit zur Bewegungsvoraus­ sage 206 bestimmt den Voraussagemodus und den Bewegungsvektor unter Verwendung der vorstehend genannten Berechnungsfunktion. Der bestimmte Bewegungsvektor wird zum Bildspeicher-Steuerab­ schnitt 205 durch den internen Bus 212 übertragen. Der Bildspeicher-Steuerabschnitt 205 berechnet eine Adresse des vorausgesagten Bildes auf Grundlage des Eingangs-Bewegungs­ vektors. Der Bildspeicher-Steuerabschnitt 205 steuert den Bildpufferspeicher 51 und die Pixelverarbeitungseinheit 33 auf Grundlage der berechneten Adresse und überträgt die dem Bewegungsvektor entsprechenden vorausgesagten Bilddaten zur Pixelverarbeitungseinheit 33.
Ferner übermittelt der Bildspeicher-Steuerabschnitt 205 die Musterdaten zur Pixelverarbeitungseinheit 33 in der gleich­ artigen vorstehend beschriebenen Weise (Da sich die Pipeline von derjenigen der vorstehend genannten Musterdaten unterscheidet, ist es erforderlich, neu zu übertragen.) und veranlaßt durch Aktivieren der Pixelverarbeitungseinheit 33 die Pixelverarbeitungseinheit 33 dazu, das DCT und die nach­ folgenden Prozesse auszuführen. An dieser Stelle werden der Befehl zur Aktivierung und die Parameter, die zum Codieren in der Pixelverarbeitungseinheit 33 (zum Beispiel die Hälfte pro Filteranweisung) erforderlich sind, in ein vorgeschriebenes Register in der Pixelverarbeitungseinheit 33 durch den Code­ daten-Steuerabschnitt 207 oder in einen Host-Schnittstellenab­ schnitt 201 durch die gleiche Pipeline gesetzt. Die Pixelver­ arbeitungseinheit 33 ist dazu ausgelegt, daß sie von beiden der vorstehend genannten Ports gesetzt werden kann.
iv) Lesen und Verarbeiten einer variablen Länge der Codedaten und Schreiben in den Pufferspeicher
Die in der Pixelverarbeitungseinheit 33 verarbeiteten Daten (das heißt Daten, die einem Filtern, dem DCT, der Quanti­ sierung oder dergleichen unterworfen worden sind) werden durch die Steuerung des Abschnitts zur Gesamtsteuerung 202 zeit­ weilig in den Pufferspeicher 6 durch den Codebus CB geschrie­ ben oder direkt zum Codedaten-Steuerabschnitt 207 der Steuer­ einheit 23 übertragen. Das Datenformat stellt zu dieser Zeit entweder einen Quantisierungsindex (Daten nach der Quantisierung) oder Laufpegeldaten (den in einen Laufpegel umgewandelten Quantisierungsindex) dar.
Der Codedaten-Steuerabschnitt 207 empfängt die Daten bei einem beliebigen Timing und überträgt dieselben durch den vierten internen Bus 213 zum Prozessor für variable Längen 209. Der Prozessor für variable Längen 209 führt eine sogenannte Huffman-Codierung gemäß einem Unterprogramm aus und schreibt die Ergebnisse in den externen Pufferspeicher 6. Zur Zeit der Codeumwandlung, wie beispielsweise der Huffman-Codierung, ist es möglich, auf im Arbeitsspeicher 7 gespeicherte Tabellen­ daten zuzugreifen.
Im folgenden wird beschrieben werden, wie die Hauptverarbei­ tung 204 beim Codieren in der vorstehend beschriebenen Verarbeitung beteiligt ist.
Wenn eine Bestimmung auszuführen ist, die sich von der im Abschnitt zur Steuerung der Einheit zur Bewegungsvoraussage 206 ausgeführten Bestimmung unterscheidet, wenn beispielsweise eine Benutzerin wünscht, ihr eigenes Bestimmungsverfahren zu verwenden, dann schreitet der Prozeß in folgender Weise fort. Der Hauptprozessor 204 greift durch den Hauptbus 214 auf ein Register zu, welches Vektoren und berechnete Werte für verschiedene Voraussagemodi im Abschnitt zur Steuerung der Einheit zur Bewegungsvoraussage 206 speichert. Die Vektoren und die berechneten Werte werden einmalig in Makrocodes verarbeitet und an das Originalregister in einem vorbestimmten Zeitabschnitt zurückgegeben. Im Ergebnis wird eine angepaßte Verarbeitung, wie beispielsweise eine Bestimmung, möglich.
Der Hauptprozessor 204 verarbeitet vor allem im Vergleich zu einer Makroblockschicht höhere Schichten, (gemäß der MPEG 1/2- Spezifikation). Mit anderen Worten, der Hauptprozessor 204 ist für Prozesse verantwortlich, die auf Grundlage der Einheit von GOP/Bild/Abschnitt ausgeführt werden. Zum Beispiel setzt der Hauptprozessor 204 die Codierparameter des nachfolgenden Bildes auf Grundlage der Menge von Codes, die beim Codieren des vorhergehenden Bildes verwendet wurden. Der Hauptprozessor 204 steuert ferner Sondermodi, wie beispielsweise Raten­ steuerung, Synchronauffrischung, verstärkte Innensteuerung und so weiter. Die Hauptprozesse der Makroblockschicht umfassen eine angepaßte Quantisierung, welche auf Grundlage der berechneten Aktivität ausgeführt wird.
Wie vorstehend beschrieben, ist der Hauptprozessor 204 dazu in der Lage, auf ein Register oder einen Speicher in jeder Einheit der Steuereinheit 23 zuzugreifen, so daß er auf das Register oder den Speicher Bezug nehmen kann, wobei er einige Prozesse, wie beispielsweise eine Operation, ausführen kann und den Inhalt des Registers oder Speichers umschreiben kann, vorausgesetzt, daß diese Operationen innerhalb eines vorbe­ stimmten annehmbaren Prozeßschritts abgeschlossen wird. Das gibt einen höheren Grad an Freiheit beim Codieren.
Wie aus der vorstehenden Beschreibung des Codierens erkannt werden kann, wird das Codieren in jeder der Verarbeitungs­ einheiten unter Pipelinesteuerung durch den Abschnitt zur Gesamtsteuerung 202 in der Steuereinheit 23 unabhängig ausge­ führt. Mit anderen Worten, die vorstehend genannten vier Operationen der Datensteuerung werden unabhängig voneinander und parallel zueinander durchgeführt. Das Decodieren der Bilder kann in gleichartiger Weise wie das Codieren durch Parallelbetrieb der entsprechenden Blöcke in der Steuereinheit 23 unter der Pipelinesteuerung des Abschnitts zur Gesamt­ steuerung 202 durchgeführt werden.
3. Pixelverarbeitungseinheit 1) Pixelverarbeitungseinheit 31 (Fig. 18 und 19)
Fig. 18 stellt ein Blockschaltbild dar, welches ein Beispiel der Pixelverarbeitungseinheit zeigt. Die in Fig. 18 darge­ stellte Pixelverarbeitungseinheit 31 wird beispielsweise als in Fig. 1 gezeigte Pixelverarbeitungseinheit 3 verwendet.
Unter Bezugnahme auf Fig. 18 umfaßt die Pixelverarbeitungs­ einheit 31: eine Host-Schnittstellen(I/F)-Schaltung 311, eine lokale Speichergruppe 312, einen DCT/IDCT-Operator 313, einen Quantsierer 314, ein Filter 315, einen Auswahlbus 316, eine Codedatenbus-Schnittstellenschaltung 317, eine Pixelbus- Schnittstellenschaltung 318 und eine Steuereinrichtung 319.
Die Host-Schnittstellen-Schaltung 311 ist zur Dateneingabe/ -ausgabe in und aus dem Host-Prozessor vorgesehen, das heißt zwischen der Steuereinheit 2 und der Pixelverarbeitungseinheit 31. Die Pixelbus-Schnittstellenschaltung 318 ist zur Ein­ gabe/Ausgabe der Bilddaten vorgesehen. Die Codedatenbus- Schnittstellenschaltung 317 ist zur Eingabe/Ausgabe der Codedaten vorgesehen.
Der DCT/IDCT-Operator 313 führt die DCT-Operation und die inverse DCT-Operation aus. Der Quantisierer 314 ist zur Quantisierung vorgesehen. Das Filter 315 ist zum Erzeugen der Referenzbilddaten zur Bewegungsvoraussage vorgesehen. Der Auswahlbus 316 ist zum Übertragen von internen Daten der Pixelverarbeitungseinheit 31 vorgesehen. Die Steuereinrichtung 319 ist zur Gesamtsteuerung der Pixelverarbeitungseinheit 31 vorgesehen.
Fig. 19 stellt ein Blockschaltbild der in Fig. 18 darge­ stellten Pixelverarbeitungseinheit 31 detaillierter dar. Die in Fig. 18 dargestellte lokale Speichergruppe 312 umfaßt in Bild 19 gezeigte Bildspeicher 331 bis 335, Datenspeicher 341 und 342, einen Codedatenspeicher 343 und einen Parameter­ speicher 344. Der in Fig. 18 dargestellte Auswahlbus 316 umfaßt in Fig. 19 dargestellte Auswahlbusse SB1 bis SB5.
Der Bildspeicher 331 ist zum Speichern der zu komprimierenden Bilddaten vorgesehen. Die Bildspeicher 332 und 333 speichern die Referenzbilddaten von vorausgehenden und nachfolgenden Bildern. Der Bildspeicher 334 speichert die verarbeiteten Referenzbilddaten, die gefiltert worden sind. Der Bildspeicher 335 speichert die zu codierenden Bilddaten. Der Codedaten­ speicher 343 speichert die quantisierten Codedaten. Der Parameterspeicher 344 speichert Tabellendaten für eine Operation, wie beispielsweise eine Quantisierungsmatrix.
Der Auswahlbus SB1 weist eine Busbreite von 12 Bit auf und überträgt die gefilterten Referenzbilddaten. Der Auswahlbus SB2 weist eine Busbreite von 12 Bit auf und überträgt die Differenzdaten nach der Differenzberechnung und nach dem inversen DCT. Der Auswahlbus SB3 weist eine Busbreite von 12 Bit auf und ist zum Übertragen des DCT-Faktors nach dem DCT und nach der inversen Quantisierung vorgesehen. Der Auswahlbus SB4 weist eine Busbreite von 12 Bit auf und ist zum Übertragen der Codedaten nach der inversen Quantisierung und nach einem Nulldurchlauf vorgesehen. Der Auswahlbus SB5 weist eine Bus­ breite von 16 Bit auf und ist zum Übertragen der Parameter­ daten vorgesehen.
2) Pixelverarbeitungseinheit 32 (Fig. 20 und 21)
Fig. 20 stellt ein Blockschaltbild dar, welches ein anderes Beispiel der Pixelverarbeitungseinheit zeigt. Die in Fig. 20 dargestellte Pixelverarbeitungseinheit 32 kann ferner beispielsweise als die in Fig. 1 gezeigte Pixelverarbeitungs­ einheit 3 verwendet werden.
Unter Bezugnahme auf Fig. 20 umfaßt die Pixelverarbeitungs­ einheit 32 im Vergleich zu der in Fig. 19 dargestellten Pixelverarbeitungseinheit eine programmierbare Verarbeitungs­ einheit 320. Die programmierbare Verarbeitungseinheit 320 ist mit einem Auswahlbus 326 verbunden und ist zu verschiedenen anderen Operationen gemäß in einer Einheit 320 gespeicherten Programmen in der Lage.
Beispielsweise führt die programmierbare Verarbeitungseinheit 320 häufig verwendete Operationen, wie beispielsweise Addition, Subtraktion, Summation von Differenzabsolutwerten, Akkumulation von Differenzabsolutwerten, Summation von Differenzquadraten, Akkumulation von Differenzquadraten, Multiplikation und so weiter, gemäß den gespeicherten Programmen aus.
Fig. 21 stellt ein Blockschaltbild der in Fig. 20 darge­ stellten Pixelverarbeitungseinheit 32 detaillierter dar. Wie in Fig. 21 gezeigt, ist die hinzugefügte programmierbare Verarbeitungseinheit 320 mit den Auswahlbussen SB1 bis SB5 verbunden. Ferner ist die programmierbare Verarbeitungseinheit 320 mit dem Parameterspeicher 344 verbunden.
3) Betrieb der Pixelverarbeitungseinheiten 31 und 32
Unter Bezugnahme auf Fig. 19 wird der Betrieb der Pixelver­ arbeitungseinheit 31 beschrieben werden. Als Beispiel wird der Betrieb der Bewegtbildcodierung vom Akkumulationstyp gemäß der MPEG- Spezifikation beschrieben werden.
Die Pixelbus-Schnittstellenschaltung 318 empfängt die zu codierenden Bilddaten aus dem in Fig. 1 dargestellten Bildspeicher 51 und gibt die Daten zum Bildspeicher 331 durch den internen Pixelbus IPB2 aus. Wenn die Bewegungsvoraussage erforderlich ist, dann werden bei der Vorwärtsvoraussage die Referenzbilddaten zum Bildspeicher 332 ausgegeben. Indessen werden bei der Zwei-Weg-Voraussage die Referenzbilddaten des vorhergehenden und des darauffolgenden Bildes in die Bild­ speicher 332 und 333 übertragen.
Bei der Vorwärtsvoraussage werden die im Bildspeicher 332 gespeicherten Daten zum Filter 315 ausgegeben. Ein Filtern wird durch das Filter 315 bewirkt, und die verarbeiteten Referenzdaten werden in den Bildspeicher 334 geschrieben.
Bei der Zwei-Weg-Voraussage werden die im Bildspeicher 332 gespeicherten Vorwärts-Referenzbilddaten zum Filter 315 übertragen, wogegen die im Bildspeicher 333 gespeicherten Rückwärts-Referenzbilddaten ebenfalls zum Filter 315 übertragen werden. Im Filter 315 werden eine Filterung und eine Interpolation an den übertragenen Referenzbilddaten ausgeführt und die erzeugten Referenzbilddaten in den Bild­ speicher 334 geschrieben.
Ein Differenzgenerator 310 überträgt die im Bildspeicher 331 gespeicherten zu codierenden Bilddaten zum Auswahlbus SB2. Der Differenzgenerator 310 überträgt Differenzdaten zwischen den zu codierenden Bilddaten und den im Bildspeicher 334 gespei­ cherten Referenzbilddaten zum Auswahlbus SB2, falls erforder­ lich.
Der DCT/IDCT-Operator 313 führt eine DCT-Operation an den Bilddaten oder den Differenzdaten durch, welche durch den Auswahlbus SB2 beim Codieren zugeführt werden, und überträgt den erzeugten DCT-Faktor durch den Auswahlbus SB3. Wenn der Codier- und Decodierablauf rückwärts durchgeführt wird, dann führt der DCT/IDCT-Operator 313 eine inverse DCT-Operation am durch den Auswahlbus SB3 zugeführten DCT-Faktor aus und erzeugt Bilddaten oder Differenzdaten. Die erzeugten Daten werden durch den Auswahlbus SB2 übertragen.
Der Quantisierer 314 bewirkt eine Quantisierung am durch den Auswahlbus SB3 bereitgestellten DCT-Faktor unter Bezugnahme auf den Parameterspeicher 344. Die im Ergebnis der Quanti­ sierung erhaltenen Codedaten werden durch den Auswahlbus SB4 zum Codedatenspeicher 343 übertragen. Beim Rückwärtsablauf der Codierung und Decodierung führt der Quantisierer 314 eine inverse Quantisierung der durch den Auswahlbus SB4 bereitge­ stellten Codedaten aus. Der als Ergebnis der inversen Quantisierung erhaltene DCT-Faktor wird durch den Auswahlbus SB3 übertragen.
Beim Codieren empfängt die Codedatenbus-Schnittstellenschal­ tung 317 im Codedatenspeicher 343 gespeicherte Codedaten durch den Auswahlbus SB5. Die Codedatenbus-Schnittstellenschaltung 317 übermittelt die empfangenen Codedaten, so wie sie sind, an einen externen Codedatenbus, das heißt den in Fig. 1 dargestellten Codebus CD. In manchen Fällen werden sie durch die Codedatenbus-Schnittstellenschaltung 317 in einen Lauf- Pegel-Code umgewandelt und zum Codebus CB ausgegeben. Beim Decodieren führt die Codedatenbus-Schnittstellenschaltung 317 eine inverse Quantisierung an den durch den Auswahlbus SB4 zugeführten Codedaten aus. Der als Ergebnis der inversen Quantisierung erhaltene DCT-Faktor wird durch den Auswahlbus SB3 übertragen.
Beim Referenzbild-Decodierprozeß zum Codieren und beim De­ codieren stellt ein Bilddecodierer 310 die durch den Auswahl­ bus SB1 zugeführten Referenzbilddaten und die Daten des Ergebnisses der Addition der decodierten Differenzdaten bereit, wenn eine Bewegungsvoraussage erforderlich ist, und die Daten werden im Bildspeicher 335 gespeichert. Wenn die Bewegungsvoraussage nicht erforderlich ist, dann werden inzwischen die decodierten Bilddaten, so wie sie sind, ausgegeben und im Bildspeicher 335 gespeichert.
Die Host-Schnittstellenschaltung 331 empfängt Operations­ befehle für die Pixelverarbeitungseinheit 31 und Parameter, wie beispielsweise die Quantisierungsmatrix, durch den in Fig. 1 dargestellten Host-Bus HB. Inzwischen gibt die Host- Schnittstellenschaltung 311 sowohl die in den internen Speichern 331 bis 335 und 341 bis 344 gespeicherten Daten als auch die in den internen Registern gespeicherten Daten nach außen aus.
4) Prozeßablauf in der Pixelverarbeitungseinheit (Fig. 22 bis 25) (i) Ablauf beim Codieren des durch ein Innenbild vorausge­ sagten Bildes gemäß der MPEG-Spezifikation
Fig. 22 stellt ein Flußdiagramm des Codierens in der in Fig. 19 gezeigten Pixelverarbeitungseinheit 31 dar. Unter Bezug­ nahme auf Fig. 22 werden die im Bildspeicher 331 gespeicher­ ten Bilddaten zum Differenzgenerator 310 übertragen. Die über­ tragenen Daten werden in diesem Fall überhaupt nicht verarbei­ tet und werden dem DCT/IDCT-Operator 313 durch den Auswahlbus SB2 zugeführt. Nach der DCT-Operation im Operator 313 werden die das Ergebnis der Operation angebenden Daten an den Quantisierer 314 durch den Auswahlbus SB3 übertragen.
Der Quantisierer 314 führt eine Quantisierung unter Rückgriff auf den Parameterspeicher 344 durch den Auswahlbus SB5 aus. Die das Ergebnis der Quantisierung angebenden Daten, das heißt Codedaten, werden zum Codedatenspeicher 343 übertragen und darin gespeichert. Die im Codedatenspeicher 343 gespeicherten Daten werden dem externen Codebus CB (Fig. 1) durch den Auswahlbus SB4 und die Codedatenbus-Schnittstellenschaltung 317 zugeführt.
Fig. 23 stellt ein Flußdiagramm zum Decodieren in der in Fig. 19 gezeigten Pixelverarbeitungseinheit 31 dar. Unter Bezugnahme auf Fig. 23 werden die im Codedatenspeicher 343 gespeicherten zu decodierenden Daten zum Quantisierer 314 durch den Auswahlbus SB4 übertragen. Der Quantisierer 314 bewirkt eine inverse Quantisierung unter Rückgriff auf den Parameterspeicher 344 durch den Auswahlbus SB5. Das Ergebnis der inversen Quantisierung angebende Daten werden dem DCT/IDCT-Operator 313 durch den Auswahlbus SB3 zugeführt.
Der Operator 313 führt eine inverse DCT-Operation an den zugeführten Daten aus. Das Ergebnis der Operation angebende Daten werden dem Decodierer 310 durch den Auswahlbus SB2 zugeführt. Der Decodierer 310 führt eine Begrenzungsoperation an den zugeführten Daten aus, und die verarbeiteten Daten werden in den Bildspeicher 335 übertragen, um darin gespeichert zu werden.
ii) Ablauf beim Codieren der Zwei-Weg-Voraussage gemäß der MPEG- Spezifikation
Unter Bezugnahme auf Fig. 24 werden im Bildspeicher 332 gespeicherte Bilddaten der Vorwärtsrichtung und im Bild­ speicher 333 gespeicherte Bilddaten der Rückwärtsrichtung zum Filter 315 übertragen. Das Filter 315 führt einen Prozeß zum Erzeugen eines 1/2-Präzisionsbildes und eine Pixelinter­ polation an den übertragenen Daten aus. Die verarbeiteten Daten werden in den Bildspeicher 334 übertragen und darin gespeichert. Die im Bildspeicher 334 gespeicherten Daten werden dem Differenzgenerator 310 durch den Auswahlbus SB1 zugeführt. Inzwischen werden die im Bildspeicher 331 gespeicherten zu codierenden Bilddaten ferner zum Differenzgenerator 310 übertragen. Der Differenzgenerator 310 führt eine Pixeldifferenz-Operation an den übertragenen Daten aus.
Der DCT/IDCT-Operator 313 empfängt die Differenzdaten aus dem Differenzgenerator 310 durch den Auswahlbus SB2. Der Operator 313 führt eine DCT-Operation an den empfangenen Daten aus, und die das Ergebnis der Operation angebenden Daten werden dem Quantisierer 314 durch den Auswahlbus SB3 zugeführt. Der Quantisierer 314 führt eine Quantisierung an den zugeführten Daten unter Rückgriff auf den Parameterspeicher 344 durch den Auswahlbus SB5 aus. Die das Ergebnis der Quantisierung angebenden Daten werden in den Codedatenspeicher 343 durch den Auswahlbus SB4 übertragen und darin gespeichert.
Unter Bezugnahme auf Fig. 25 werden beim Decodieren im Code­ datenspeicher 343 gespeicherte Daten, das heißt zu de­ codierende Daten, durch den Auswahlbus SB4 zum Quantisierer 314 übertragen. Der Quantisierer 314 führt eine Quantisierung an den übertragenen Daten unter Rückgriff auf den Parameter­ speicher 344 durch den Auswahlbus SB5 aus. Die das Ergebnis der Quantisierung angebenden Daten werden dem DCT/IDCT- Operator 313 durch den Au 99999 00070 552 001000280000000200012000285919988800040 0002004408522 00004 99880swahlbus SB3 zugeführt.
Der Operator 313 führt ein inverses DCT an den zugeführten Daten aus. Die das Ergebnis der Operation angebenden Daten werden dem Decodierer 310 durch den Auswahlbus SB2 zugeführt. Der Decodierer 310 empfängt die im Bildspeicher 334 ge­ speicherten Daten durch den Auswahlbus SB1. Der Decodierer 310 führt an den zugeführten Daten das Decodieren (eine Addition) und die Begrenzungsoperation der Pixel aus. Die verarbeiteten Daten werden in den Bildspeicher 335 übertragen und darin gespeichert.
5) Pipelineverarbeitung (Fig. 26 bis 29)
Fig. 26 stellt ein Zeitablaufdiagramm dar, welches eine Pipelineverarbeitung zum Codieren in der in Fig. 19 darge­ stellten Pixelverarbeitungseinheit 31 zeigt. Unter Bezugnahme auf Fig. 26 werden in einem Operationszeitabschnitt A Schreibdaten für den Bildspeicher 331 durch den internen Pixelbus IPB2 übertragen. In einem Operationszeitabschnitt B werden Schreibdaten für den Bildspeicher 332 durch den internen Pixelbus IPB2 übertragen. In einem Operationszeit­ abschnitt C werden Schreibdaten für den Bildspeicher 333 durch den internen Pixelbus IPB2 übertragen.
In einem Operationszeitabschnitt D wird das Filter 315 betrieben. In einem Operationszeitabschnitt D werden ein DCT und eine Quantisierung durch den DCT/IDCT-Operator 313 und den Quantisierer 314 bewirkt. In einem Operationszeitabschnitt F werden sowohl eine inverse Quantisierung und ein inverses DCT als auch eine Decodierung durch den Operator 313, den Quantisierer 314 und den Bilddecodierer 310 ausgeführt. In einem Operationszeitabschnitt G wird eine Leseoperation aus dem Bildspeicher 335 ausgeführt. In einem Operationszeit­ abschnitt H werden eine Lauf-Pegel-Verdichtung und -Ausgabe durch die Codedatenbus-Schnittstellenschaltung 317 bewirkt.
Die in Fig. 26 dargestellten Prozesse werden Makroblock für Makroblock nacheinander ausgeführt. Insbesondere wird die Pipelineverarbeitung für eine Anzahl von Makroblocken ausge­ führt, obwohl in Fig. 26 die Verarbeitung der Bilddaten von nur einem Makroblock dargestellt ist. Die Pipelineverarbeitung für eine Mehrzahl von Makroblöcken wird nachstehend beschrie­ ben werden.
Fig. 27 stellt ein Zeitablaufdiagramm dar, welches die Pipelineverarbeitung bei einer Innenbildvoraussage zeigt. Unter Bezugnahme auf Fig. 27 bezeichnet der Zusatz 0 die Datenverarbeitung des 0ten Makroblocks, und der Zusatz 1 bezeichnet die Verarbeitung des ersten Makroblocks.
Fig. 28 stellt ein Zeitablaufdiagramm dar, welches die Pipelineverarbeitung bei der Ein-Weg-Voraussage zeigt. Fig. 29 stellt ein Zeitablaufdiagramm dar, welches die Pipeline­ verarbeitung bei der Zwei-Weg-Voraussage zeigt.
Wie aus den Fig. 27 bis 29 zu erkennen ist, wird die Daten­ verarbeitung für eine Mehrzahl von Makroblocken unter der Steuerung der Pipelineprozeßsteuerung in der Pixelverarbei­ tungseinheit 3 ausgeführt, wobei die Datenverarbeitung bezüglich der Verarbeitung in der Pixelverarbeitungseinheit 3 effizient ausgeführt werden kann. Mit anderen Worten, es wird eine Pixelverarbeitungseinheit vorgesehen, welche eine effiziente DCT und eine effiziente Quantisierung mit hoher Geschwindigkeit gestattet.
6) Pixelverarbeitungseinheit 33
Fig. 93 stellt ein Blockschaltbild dar, welches ein weiteres Beispiel der Pixelverarbeitungseinheit zeigt. Die in Fig. 93 dargestellte Pixelverarbeitungseinheit 33 kann beispielsweise als in den Fig. 83 bis 89 und in der Fig. 91 gezeigte Pixelverarbeitungseinheit verwendet werden.
Unter Bezugnahme auf Fig. 93 unterscheidet sich die Pixelver­ arbeitungseinheit von der in Fig. 18 dargestellten Pixelver­ arbeitungseinheit 31 dadurch, daß sie zwei Sätze von Pixelbus- Schnittstellenschaltungen 318a und 318b umfaßt. Abgesehen von dieser Tatsache, ist sie die gleiche wie die in Fig. 18 gezeigte Pixelverarbeitungseinheit 31. Daher sind die entsprechenden Abschnitte durch die gleichen Bezugszeichen bezeichnet, und die Beschreibung derselben wird nicht wieder­ holt.
Fig. 94 stellt ein Blockschaltbild der in Fig. 93 gezeigten Pixelverarbeitungseinheit 33 detaillierter dar. Unter Bezug­ nahme auf Fig. 94 weisen die Pixelbusse IPB2a und IPB2b jeweils eine Busbreite von 32 Bit auf und sind mit zuge­ ordneten Pixelbus-Schnittstellenschaltungen 318a und 318b und Bildspeichern 331 bis 333 und 335 entsprechend verbunden. Von diesen Tatsachen abgesehen, ist sie die gleiche wie die in Fig. 19 dargestellte Pixelverarbeitungseinheit 31. Daher sind die entsprechenden Abschnitte durch die gleichen Bezugszeichen bezeichnet, und die Beschreibung derselben wird nicht wieder­ holt.
Der Betrieb der Verarbeitungseinheit 33 wird beschrieben werden. Unter Bezugnahme auf Fig. 94 wird eine Bewegtbild- Codierung gemäß der MPEG-Spezifikation als ein Betriebsbei­ spiel beschrieben werden.
Bei der MPEG-Spezifikation werden die Vorwärtsvoraussage, die Rückwärtsvoraussage und die Zwei-Weg-Voraussage verwendet, und die Voraussagedaten müssen von außen gemäß dem Typ der Voraussage übertragen werden. Die Übertragung der Daten für die Voraussage wird durch die Pixelbus-Schnittstellenschaltung 318a oder 318b ausgeführt. Die zu codierenden Bilddaten werden ebenfalls durch die Pixelbus-Schnittstellenschaltung 318a oder 318b übertragen. Die Bildkompression wird in einem Filter 325, in der DCT/IDCT-Vorrichtung 313, im Quantisierer 314, im Differenzgenerator und im Bilddecodierer 310 ausgeführt, und die Daten werden durch die Codedatenbus-Schnittstellenschal­ tung 317 bereitgestellt. Indessen wird das in der Pixelver­ arbeitungseinheit 33 lokal decodierte Bild zu separaten ex­ ternen Vorrichtungen durch die Pixelbus-Schnittstellenschal­ tungen 318a und 318b übertragen. Ein Teil der lokal decodier­ ten übertragenen Daten dienen beispielsweise als Eingangsdaten für die in Fig. 87 dargestellte Einheit zur Bewegungsvoraus­ sage 47. Die anderen der übertragenen lokal decodierten Daten dienen als vorausgesagte Bilddaten für die nächste Bildver­ arbeitung.
Wie vorstehend beschrieben, gestattet die in Fig. 94 darge­ stellte Pixelverarbeitungseinheit 33 die gleichzeitige Über­ tragung der lokal decodierten Bilddaten zu einer Mehrzahl von externen Vorrichtungen, und sie gestattet ferner die Übertra­ gung vorausgesagter Bilddaten aus einem Port, während die Referenzbilddaten aus der Einheit zur Bewegungsvoraussage in den lokalen Speicher durch das andere Port übertragen werden. Das Übertragungspott des vorausgesagten Bildes ist nicht auf ein Port beschränkt, sondern das vorausgesagte Bild kann durch ein beliebiges anderes Port ubertragen werden. Daher können der Systemaufbau und das Verfahren der Datenübertragung leicht geändert werden.
Fig. 95 ist ein Blockschaltbild, welches ein anderes Beispiel der in Fig. 93 gezeigten Pixelverarbeitungseinheit 33 dar­ stellt. Die in Fig. 95 dargestellte Pixelverarbeitungseinheit 33a kann ferner als in den Fig. 83 bis 89 und 91 darge­ stellte Pixelverarbeitungseinheit verwendet werden.
Unter Bezugnahme auf Fig. 95 ist im Vergleich mit der in Fig. 94 dargestellten Pixelverarbeitungseinheit 33 in der Pixelverarbeitungseinheit 33a der Pixelbus IPB2 mit den beiden Pixelbus-Schnittstellenschaltungen 318a und 318b verbunden, und ein interner Bus wird gemeinsam für die Pixeldatenüber­ tragung verwendet. Abgesehen von diesen Tatsachen, ist sie die gleiche wie die in Fig. 94 gezeigte Pixelverarbeitungseinheit 33. Daher wird die Beschreibung nicht wiederholt.
Der Betrieb der Pixelverarbeitungseinheit 33a wird im folgenden beschrieben werden. Unter Bezugnahme auf Fig. 95 wird der interne Pixelbus IPB2 gemeinsam verwendet. Wenn daher die lokal decodierten Daten zu den beiden Pixelbus-Schnitt­ stellenschaltungen 318a und 318b gleichzeitig zu übertragen sind, dann wird ein gleichartiger Betrieb wie bei der in Fig. 94 dargestellten Pixelverarbeitungseinheit 32 ausgeführt.
Durch den vorstehend beschriebenen Aufbau kann die Pixelver­ arbeitungseinheit 33a die lokal decodierten Daten zu einer Mehrzahl von externen Vorrichtungen gleichzeitig übertragen. Während die Referenzbilddaten aus dem lokalen Speicher in die Einheit zur Bewegungsvoraussage übertragen werden, kennen die Daten ferner durch ein anderes Port zur Pixelverarbeitungs­ einheit 35 übertragen werden. Da der Pixelbus IPB2 aufgeteilt ist, kann ferner die Schaltungsfläche verkleinert werden, und sie ist daher für einen höheren Integrationsgrad geeignet.
4. Prozessor für variable Längen
Nachstehend werden zwei Systemaufbauten vorgeschlagen und die Prozessoren zum Implementieren der entsprechenden System­ aufbauten beschrieben.
1) Erster Systemaufbau Fig. 30 bis 35)
Fig. 30 stellt ein Blockschaltbild dar, welches einen ersten Systemaufbau zur Verarbeitung einer variablen Länge zeigt. Der Prozessor für variable Längen mit dem in Fig. 30 dargestell­ ten Systemaufbau kann beispielsweise für den in Fig. 9 gezeigten Prozessor für variable Längen 12 verwendet werden.
Unter Bezugnahme auf Fig. 30 umfaßt der erste Systemaufbau: einen Tabellenspeicher 401 zum Codieren mit variabler Länge, einen Tabellenspeicher 402 zum Decodieren mit variabler Länge, einen Eingangsspeicher für eine Codefolge variabler Länge 403, einen Eingangsspeicher für eine Codefolge variabler Länge 404, einen Eingangsspeicher 405 für zu codierende Daten und einen Ausgangsspeicher 406 für zu codierende Daten. Der Prozessor für variable Längen 121 ist mit Speichern 401 bis 406 durch eine Busleitung BU verbunden.
Fig. 31 stellt ein Flußdiagramm des Codierens mit variabler Länge beim ersten Systemaufbau dar. Unter Bezugnahme auf Fig. 31 wird der Prozeß zum Codieren mit variabler Länge beschrie­ ben werden. In einem Schritt 431 werden die zu codierenden Daten, welche Gegenstand der Umwandlung sind, aus dem Ein­ gangsspeicher 405 für die zu codierende Daten in einen internen Speicher im Prozessor für variable Längen 121 ausge­ geben. Dabei werden die zu codierenden Daten durch die Kombination von "RUN" und "LEVEL" festgelegt. In der folgenden Beschreibung werden die zu codierenden Daten als (RN, LV) dargestellt. Die ausgegebenen zu codierenden Daten werden einem Adreßgenerator (nicht dargestellt) im Prozessor für variable Längen 121 zugeführt, und unter Rückgriff auf den Tabellenspeicher 401 zur Codierung mit variabler Länge werden ein Code variabler Länge und dessen Codelänge erhalten. Der Code variabler Länge und die Codelänge werden im internen Speicher im Prozessor für variable Längen 121 gespeichert.
In einem Schritt 433 wird bestimmt, ob der erhaltene Code variabler Länge ein Escape-Code (ESCAPE) ist oder nicht. Wenn ein Escape-Code erhalten wird, dann wird in einem Schritt 434 ein Code von festgelegter Länge durch Koppeln des Ausgabecodes mit den Daten (RN, LV) erzeugt. Nach der Erzeugung des Codes festgelegter Länge schreitet der Ablauf zu einem Schritt 435 fort. Wenn inzwischen der Escape-Code, das heißt der Code "000001", im Schritt 433 nicht erhalten wird, dann schreitet der Ablauf zum Schritt 435 fort.
Im Schritt 435 wird durch Koppeln der Daten der Codes von variabler Länge eine Codefolge von variabler Länge erzeugt.
Nach der Erzeugung der Codefolge von variabler Länge wird die Codefolge von variabler Länge in einem Schritt 436 ausgegeben.
Fig. 32 stellt ein Flußdiagramm der Decodierung mit variabler Länge im ersten Systemaufbau dar. Die Prozesse zur Decodierung mit variabler Länge werden unter Bezugnahme auf Fig. 32 be­ schrieben werden.
Zuerst wird in einem Schritt 441 eine Codefolge mit variabler Länge aus dem in Fig. 30 dargestellten Eingangsspeicher für eine Codefolge variabler Länge 403 in den Prozessor für variable Längen 121 übertragen. Der Prozessor für variable Längen 121 gewinnt den Kopf des Codes variabler Länge in einem Schritt 442. Insbesondere wird auf Grundlage der Codelänge des unmittelbar vorhergehenden Codes variabler Länge der Kopf des nächsten Codes variabler Länge erkannt, und aus dem Kopf des nächsten Codes variabler Länge werden Daten mit 14 Bit gewonnen, das heißt die maximale Codelänge des Codes variabler Länge.
Anschließend werden in einem Schritt 443 unter Rückgriff auf den Tabellenspeicher 402 zum Decodieren ein Code variabler Länge und eine Codelänge, das heißt Daten (RN, LV), erhalten. Insbesondere werden Daten von 14 Bit, was die maximale Länge des vom Kopf des Codes variabler Länge beginnenden Codes variabler Länge ist, an einen nicht dargestellten Adreß­ generator ausgegeben und wird ein Adreßsignal zur Bezugnahme auf den Tabellenspeicher 402 für das Decodieren durch den Adreßgenerator erzeugt. Unter Verwendung des Adreßsignals wird auf den Tabellenspeicher 402 für das Decodieren Bezug ge­ nommen, wodurch der Code variabler Länge und seine Codelänge erhalten werden.
In einem Schritt 444 wird bestimmt, ob der Escape-Code "000001" erhalten wird oder nicht. Wenn der Escape-Code erhal­ ten wird, dann werden in einem Schritt 445 16 Bit von den dem Escape-Code "000001" folgenden Daten als decodierte Daten (RN, LV) gewonnen. Nach dem Prozeß des Schritts 445 schreitet der Ablauf zu einem Schritt 446 fort. Wenn der Escape-Code im Schritt 444 nicht erhalten wird, dann schreitet der Ablauf zu einem Schritt 446 fort.
Im Schritt 446 werden die decodierten Daten (RN, LV) ausgege­ ben.
Der Datenspeicheraufbau der im Tabellenspeicher 401 zur Codierung mit variabler Länge gespeicherten Daten und der im Tabellenspeicher 402, der in Fig. 30 dargestellt ist, zur Decodierung mit variabler Länge gespeicherten Daten wird beschrieben werden. Fig. 33 zeigt den Datenspeicheraufbau des Tabellenspeichers 401 für die Codierung mit variabler Länge. Wie in Fig. 33 zu erkennen ist, sieht der Tabellenspeicher 401 für die Codierung mit variabler Länge einen gespeicherten Code variabler Länge VC und eine Codelänge CL unter Bezugnahme auf die Daten (RN, LV) vor. Die Laufdaten RN weisen eine Bitlänge von 6 Bit auf. Die Pegeldaten weisen eine Bitlänge von 10 Bit auf. Der Code variabler Länge VC hat eine Bitlänge von 14 Bit. Die Codelängendaten weisen eine Bitlänge von 4 Bit auf.
Fig. 34 stellt den Datenspeicheraufbau des Tabellenspeichers 402 für das Decodieren mit variabler Länge dar. Wie in Fig. 34 zu erkennen ist, sieht der Tabellenspeicher 402 für die Decodierung mit variabler Länge die Pegeldaten LV, die Lauf­ daten RN und den Code variabler Länge VC vor. Die Codelängen­ daten weisen eine Bitlänge von 4 Bit auf.
Die für die Bezugnahme auf den Tabellenspeicher 402 für das Decodieren mit variabler Länge verwendeten Eingangsdaten VC weisen die gleiche Bitlänge wie die maximale Codelänge des Codes variabler Länge auf. Wenn daher ein im Vergleich zur maximalen Codelänge kürzerer Code in den oberen Bits der Eingangsdaten VC vorhanden ist, dann wird das Decodierergebnis der höheren Bits mit Priorität ausgegeben, unabhängig davon, welches Bitmuster die unteren Bits aufweisen. Zum Beispiel würden die gleichen Daten 416 und 418 erhalten werden, unab­ hängig davon, welche der in Fig. 34 dargestellten Eingangs­ daten 415 und 417 zum Bezug auf den Tabellenspeicher 402 ver­ wendet werden.
Ein Verfahren zum Erzeugen der Codefolge von variabler Länge wird beschrieben werden. Fig. 35 stellt ein Flußdiagramm dar, welches einen Prozeß zum Erzeugen der Codefolge von variabler Länge zeigt. Es wird vorausgesetzt, daß sechs Register 421 bis 426 zum Erzeugen einer Codefolge von variabler Länge vorberei­ tet sind. Ferner wird vorausgesetzt, daß der Prozessor für variable Längen eine Datenverarbeitungs-Bandbreite von n Bit aufweist. Es wird nämlich angenommen, daß jedes der Register 421 bis 426 eine Bitbreite von n Bit aufweist.
Unter Bezugnahme auf Fig. 35 wird vorausgesetzt, daß das Register 421 einen Code variabler Länge VC1 und das Register 422 eine Codelänge k des Codes variabler Länge VC1 hält. Es wird angenommen, daß das Register 423 einen Code variabler Länge VC2 und das Register 424 eine Codelänge j des Codes variabler Länge VC2 hält. Es wird ferner angenommen, daß das Register 425 einen Code variabler Länge VC3 und das Register 426 eine Codelänge m des Codes variabler Länge VC3 hält.
Zuerst wird der im Register 421 gehaltene Code variabler Länge VC1 zum Register 426 übertragen. Das Register 426 speichert die entsprechenden Bits des Codes variabler Länge VCI in einer Anordnung, welche mit einem MSB beginnt. Mit anderen Worten, das Register 426 speichert den Code variabler Länge VC1 von k Bit ab dem MSB.
In einem Schritt 427 wird die Codelänge j des Codes variabler Länge VC2 mit (n-k) verglichen. Wenn j < (n-k) ist, dann wird der im Register 423 gehaltene Code variabler Länge VC2 zum Register 426 ausgegeben. Das Register 426 hält nach dem Code variabler Länge VC1 den Code variabler Länge VC2. Die Operation im Register 426 wird bewirkt durch Verschieben des Codes variabler Länge VC2 zur LSB-Seite um k Bit und anschließendes Akkumulieren oder Ausführen einer ODER- Operation zwischen den entsprechenden Bits der Codes variabler Länge VC1 und VC2. Als Ergebnis wird das Register 426 die gekoppelten Daten von (k+j) Bit, das heißt die Codefolge von variabler Länge (VC1+VC2), halten.
In diesem Stadium verbleibt noch Platz von (n-k-j) Bit im Register 426, und daher wird das Register 426 ferner zum Halten des Codes variabler Länge VC3 verwendet.
In einem Schritt 427 werden aus dem Code variabler Länge VC2 im Register 423 nur die Daten von (n-k) Bit im Register 426 gehalten, wenn j < (n-k) ist. Insbesondere wird der Code variabler Länge VC2 um k Bit verschoben und eine Akkumulation oder eine ODER-Operation zwischen den Codes variabler Länge VC1 und VC2 bewirkt. Im Ergebnis wird das Register 426 durch k Bit des Codes variabler Länge VC1 und einen Teil des (n-k) Bit aufweisenden Codes variabler Länge VC2 belegt.
In einem Schritt 428 werden die Daten ausgegeben, mit denen das Register 426 belegt worden ist. Nach der Datenausgabe wird der im Register 423 verbliebene Code variabler Länge VC2 mit (j+k-n) Bit in das Register 426 übertragen. Das Register 426 hält die übertragenen Daten, das heißt die verbliebenen Bits des Codes variabler Länge VC2, in einer Anordnung auf der Seite vom MSB.
Auf diese Weise wird das Register 426 durch nacheinander übertragene Codes variabler Länge beladen, und n Bit der eingeladenen Daten werden nacheinander als Codefolge variabler Länge ausgegeben. Die Codefolge variabler Länge wird segmentiert durch wiederholtes Ausführen einer Datenver­ schiebung, einer logischen Operation, durch Berechnung der Codelänge des Codes variabler Länge und durch eine Bestimmung wie bei den vorstehend beschriebenen Prozessen zur Erzeugung einer Codefolge variabler Länge.
2) Prozessor für variable Längen (Zugeordnete Schaltung: Fig. 36)
Fig. 36 stellt ein Blockschaltbild dar, welches ein erstes Beispiel des Prozessors für variable Längen zeigt. Unter Bezugnahme auf Fig. 36 umfaßt der Prozessor für variable Längen 122: ein Adreßregister 451, einen ROM 452 und eine Ausgangsverarbeitungs-Schaltung 453. Diese internen Schal­ tungen 451, 452 und 453 werden durch zugeordnete Schaltungen gebildet.
3) Prozessor für variable Längen (Digitalsignal-Prozessor: Fig. 37)
Fig. 37 stellt ein Blockschaltbild dar, welches ein zweites Beispiel des Prozessors für variable Längen zeigt. Der Prozessor für variable Längen 123 wird durch einen Digital­ signal-Prozessor gebildet. Unter Bezugnahme auf Fig. 37 umfaßt der Prozessor für variable Längen 123: eine externe Schnittstellenschaltung 461, eine ALU 462, eine Verschiebe­ schaltung 463, einen Speicher 464, einen Anweisungsspeicher 465 und eine Steuerschaltung 466.
4) Prozessor für variable Längen (Mikroprozessor zur allge­ meinen Verwendung: Fig. 38)
Fig. 38 stellt ein Blockschaltbild dar, welches ein drittes Beispiel des Prozessors für variable Längen zeigt. Der Prozessor für variable Längen 124 wird durch einen Prozessor zur allgemeinen Verwendung gebildet. Unter Bezugnahme auf Fig. 38 umfaßt der Prozessor für variable Längen 124: eine Ausführungseinheit (EU) 471, welche ein Registerfile 473 umfaßt; eine Bus-Schnittstelleneinheit 472, welche ein Verlegungs-Registerfile 474 umfaßt; eine ALU 475; ein Flagregister 476; eine Bus-Schnittstelleneinheit 477; eine Anweisungskette 478 und eine Steuer-/Timingschaltung 479.
Die in den Fig. 36, 37 und 38 dargestellten entsprechenden Prozessoren für variable Längen 122, 123 und 124 weisen je­ weils den in Fig. 30 gezeigten ersten Systemaufbau auf, und die vorstehend beschriebenen Prozesse des ersten Systemaufbaus werden ausgeführt.
5) Zweiter Systemaufbau (Fig. 39)
Fig. 39 stellt ein Blockschaltbild dar, welches einen zweiten Systemaufbau zur Verarbeitung variabler Längen zeigt. Der in Fig. 39 dargestellte Systemaufbau ist beispielsweise in der in Fig. 1 gezeigten Vorrichtung zur Bildkompression/-expan­ sion ausgeführt.
Unter Bezugnahme auf Fig. 39 umfaßt ein Arbeitsspeicher 7 einen Tabellenspeicher 481 für die Codierung mit variablen Längen und einen Tabellenspeicher 482 für die Decodierung mit variablen Längen. Diese Tabellenspeicher 481 und 482 sind mit dem Prozessor für variable Längen 125 durch Busse 491 und 492 verbunden.
Ein Pufferspeicher 6 umfaßt: einen Eingangsspeicher 483 für eine Codefolge von variabler Länge, einen Ausgangsspeicher 484 für eine Codefolge variabler Länge, einen Eingangsspeicher 485 für zu codierende Daten und einen Ausgangsspeicher 486 für zu codierende Daten. Der Eingangsspeicher 483 und der Ausgangs­ speicher 484 für die Codefolgen sind mit einem Prozessor für variable Längen 125 durch Busse 493 und 495 verbunden. Der Eingangsspeicher und der Ausgangsspeicher für die Codefolgen sind mit dem Prozessor für variable Längen 125 und einer Host- Schnittstellenschaltung 1 durch einen Bus 494 verbunden.
Der Eingangsspeicher 485 für die zu codierenden Daten und der Ausgangsspeicher 486 für die zu codierenden Daten sind mit dem Prozessor für variable Längen 125 durch Busse 496 und 498 verbunden. Der Eingangsspeicher 485 und der Ausgangsspeicher 486 sind mit dem Prozessor für variable Längen 125 und einer Pixelverarbeitungseinheit 3 durch einen Bus 497 verbunden.
6) Prozessor für variable Längen (Fig. 40)
Fig. 40 stellt ein Blockschaltbild des in Fig. 39 gezeigten Prozessors für variable Längen 125 dar. Der in Fig. 40 ge­ zeigte Prozessor für variable Längen 125 ist daher beispiels­ weise als in Fig. 9 dargestellter Prozessor für variable Längen 120 verwendbar.
Unter Bezugnahme auf Fig. 40 umfaßt der Prozessor für variable Längen 125: eine Steuereinrichtung 501, einen Adreßgenerator 502, eine externe Schnittstellenschaltung 503, einen Datenoperator 504, eine Schaltung zum Erzeugen/Trennen einer Codefolge variabler Länge 505, eine externe Schnitt­ stellenschaltung 506, externe Schnittstellenschaltungen 507 und einen Datenspeicher 508. Diese internen Schaltungen 501 bis 508 sind durch einen ersten internen Bus 509 verbunden. Indessen sind die externe Schnittstellenschaltung 503 und die Schaltung zum Erzeugen/Trennen einer Codefolge variabler Länge 505 durch einen zweiten internen Bus 510 verbunden.
Die externe Schnittstellenschaltung 503 ist mit dem in Fig. 9 gezeigten Hauptport 17 durch Busse 491 und 492 verbunden. Die externe Schnittstellenschaltung 506 ist mit dem in Fig. 9 dargestellten Codedatenport 20 durch Busse 493, 494 und 495 verbunden.
i) Adreßgenerator (Fig. 41)
Fig. 41 stellt ein Blockschaltbild des in Fig. 40 gezeigten Adreßgenerators 502 dar. Unter Bezugnahme auf Fig. 41 umfaßt der Adreßgenerator 502: ein Register für einen positiven Grenzwert 520, ein Register für einen negativen Grenzwert 521, ein PE-Modus-Register 522, ein Seitenregister 523, Adreß­ register 524 und 525, einen Escape-Decodierer 526, einen Escape-Codierer 527, ein Escape-Register 528, ein Daten­ register 529, eine Auswahlschaltung 530, eine Begrenzschaltung 531, einen Prioritäts-Codierer 532, eine Schiebeschaltung 533, ein externes Adreßregister 534, Pipelineregister 561, 562, 563 und eine ODER-Schaltung (Schaltung zum Bereitstellen einer logischen Summe) 564. Die Register 520 bis 525 sind mit einem ersten internen Bus 509 verbunden. Die Auswahleinrichtung 530 ist mit den ersten und den zweiten internen Bussen 509 und 510 verbunden. Das Datenregister 529 und das externe Adreßregister 534 sind mit der in Fig. 40 gezeigten externen Schnitt­ stellenschaltung 503 verbunden.
Fig. 42 stellt ein Flußdiagramm des Codierens mit variabler Länge im in Fig. 41 gezeigten Adreßgenerator 502 dar. Die Prozesse im Adreßgenerator 502 werden nachstehend detailliert beschrieben werden, und nur der Grundbetrieb wird im folgenden beschrieben werden.
Unter Bezugnahme auf Fig. 42 werden in einem Schritt 601 vorgeschriebene Daten in die in Fig. 41 dargestellten Register 520 bis 523 aufgenommen. In einem Schritt 602 werden die zu codierenden Daten (RN, LV) in das Adreßregister 525 eingegeben. Die zu codierenden Daten (RN, LV) weisen insgesamt 16 Bit auf, von denen die höheren 10 Bit die Pegeldaten LV und die unteren 6 Bit die Laufdaten RN festlegen. Nach dem Schritt 602 werden Schritte 603 bis 605 und 606 bis 607 parallel aus­ geführt.
Im Schritt 603 werden die im Adreßregister 525 enthaltenen Daten an die Begrenzschaltung 531 übergeben. Die Begrenzschal­ tung 531 begrenzt die höheren 10 Bit der übergebenen Daten, das heißt die Pegeldaten LV, auf einen Bereich, der durch das Register für einen positiven Grenzwert 520 und durch das Register für einen negativen Grenzwert 521 festgelegt wird. Im Ergebnis der Begrenzung werden die zu codierenden Daten mit insgesamt 12 Bit, das heißt 6 Bit der Pegeldaten LV und 6 Bit der Laufdaten RN, erhalten.
Die zu codierenden Daten mit 12 Bit werden zur ODER-Schaltung 564 übertragen, wobei eine ODER-Operation zwischen den über­ tragenen Daten und den aus dem Seitenregister 523 übertragenen Daten ausgeführt wird und gekoppelte Daten von 20 Bit erzeugt werden (Schritt 604). Die erzeugten Daten werden im externen Adreßregister 534 gespeichert (Schritt 605).
Im Schritt 606 werden die zu codierenden Daten im Register 525 zum Escape-Codierer 527 übertragen, und durch den Escape- Codierer 527 wird ein Code von festgelegter Länge erzeugt. Insbesondere findet ein Prozeß zum Erzeugen eines Codes von festgelegter Länge statt, wenn die zu codierenden Daten als Code von festgelegter Länge codiert werden. Im Schritt 607 wird der erzeugte Code von festgelegter Länge im Escape- Register 528 gespeichert.
Fig. 43 stellt ein Flußdiagramm des Decodierens mit variabler Länge im in Fig. 41 gezeigten Adreßgenerator 502 dar. Die Grundprozesse beim Decodieren mit variabler Länge werden be­ schrieben werden.
Unter Bezugnahme auf Fig. 43 werden in einem Schritt 611 vor­ geschriebene Daten in die Register 520 bis 523 aufgenommen. In einem Schritt 612 wird die zu codierende Codefolge von variabler Länge in das Adreßregister 524 eingegeben. Das Register 524 speichert 22 Bit der eingegebenen Codefolge variabler Länge, welche bei der Anordnung mit dem ersten Bit auf der Seite des MSB beginnt. Nach dem Schritt 612 werden Schritte 613 bis 616 und 617 und 618 parallel ausgeführt.
Im Schritt 613 werden die im Adreßregister 524 gehaltenen Daten, das heißt die Codefolge variabler Länge, an den Prioritäts-Codierer 532 übergeben. Der Prioritäts-Codierer 532 berechnet eine Anzahl SN fortlaufender "0"en aus dem MSB der übergebenen Daten.
Im Schritt 614 werden die Daten im Adreßregister 524 zur Verschiebeschaltung 533 übertragen. In Reaktion auf die im Schritt 613 berechnete Anzahl SN gewinnt die Verschiebeschal­ tung 533 6 Bit der Daten, was weniger als die (SN+1)te Anzahl aus dem MSB der übertragenen Daten ist. Die gewonnenen Daten werden der ODER-Schaltung 564 zugeführt.
Im Schritt 615 werden die logische Summe durch die ODER-Schal­ tung 564 bereitgestellt und 20 Bit Daten erzeugt. Die erzeug­ ten Daten werden im externen Adreßregister 534 gespeichert (Schritt 616).
Indessen werden im Schritt 617 die im Adreßregister 524 aufbe­ wahrten Daten zum Escape-Decodierer 526 übertragen. Der Escape-Decodierer 526 führt das Decodieren aus, wobei berücksichtigt wird, daß die übertragenen Daten einen Code von festgelegter Länge aufweisen, welche den Escape-Code verwenden. Die decodierten Daten werden im Escape-Register 528 gespeichert (Schritt 618).
ii) Codefolge von variabler Länge Erzeuge-/Trennschaltung (Fig. 44)
Fig. 44 stellt ein Blockschaltbild der in Fig. 40 gezeigten Schaltung zum Erzeugen/Trennen einer Codefolge von variabler Länge 505 dar. Unter Bezugnahme auf Fig. 44 umfaßt die Schal­ tung zum Erzeugen/Trennen einer Codefolge von variabler Länge 505: ein Busregister 536, eine Abschnittsverschiebeeinrichtung (BSFT) 537, einen Addierer 538, ein Codelängen-Register 539, ein Codeausgangs-Register 540, ein Codeeingangs-Register 541, FIFO-Schaltungen 542 und 543 und eine Steuereinrichtung 544. Das Busregister 536 ist mit einem ersten internen Bus 509 verbunden. Der Addierer 538 ist mit einem zweiten internen Bus 510 verbunden. Die FIFO-Schaltungen 502 und 503 sind mit einer in Fig. 47 dargestellten externen Schnittstellenschaltung 506 (welche nachstehend beschrieben werden wird) durch Signal­ leitungen 42a bis 43c verbunden.
Fig. 45 stellt ein Flußdiagramm des Codierens mit variabler Länge in der in Fig. 44 gezeigten Schaltung zum Er­ zeugen/Trennen einer Codefolge von variabler Länge 505 dar. Unter Bezugnahme auf Fig. 45 wird der Grundbetrieb des Codierens mit variabler Länge beschrieben werden.
In einem Schritt 621 wird ein Code variabler Länge VC zum Busregister 536 durch den internen Bus 509 ausgegeben. Die Codelängen-Daten CL des Codes variabler Länge VC werden zum Addierer 538 durch den zweiten internen Bus 510 übertragen.
In einem Schritt 622 koppelt die Abschnittsverschiebe-Einrich­ tung 537 einen alten Code variabler Länge VC′, welcher bereits eingegeben worden ist, mit dem gerade übertragenen Code variabler Länge VC und erzeugt eine Codefolge variabler Länge VCT. In einem Schritt 623 addiert der Addierer 538 die Code­ länge CL des neuen Codes von variabler Länge zu einer Code­ längensumme CLS, welche die akkumulierte Summe ist.
In einem Schritt 624 wird bestimmt, ob die Codelängensumme CLS 8 Bit überschreitet oder nicht. Wenn CLS ≧ 8 ist, dann schrei­ tet der Ablauf zu einem Schritt 625 fort.
Im Schritt 625 werden 8 Bit der Daten aus dem ersten Bit der Codefolge variabler Länge VCT zur FIFO-Schaltung 542 über­ tragen und darin gespeichert. In einem Schritt 626 wird eine neue Codelänge durch Subtraktion berechnet, das heißt CLS = CLS - 8. Nach dem Schritt 626 kehrt der Ablauf zum Schritt 624 zurück.
Im Schritt 624 wird diese Codieroperation abgeschlossen, wenn CLS < 8 ist.
Fig. 46 stellt ein Flußdiagramm des Decodierens mit variabler Länge in der in Fig. 44 gezeigten Schaltung zum Erzeu­ gen/Trennen einer Codefolge von variabler Länge 505 dar. Unter Bezugnahme auf Fig. 46 wird in einem Schritt 631 eine Code­ folge variabler Länge VCT an den ersten internen Bus 509 ge­ legt. In einem Schritt 632 wird die in der Codefolge variabler Länge VCT enthaltene Codelänge CL des ersten Codes von variabler Länge VC zum Addierer durch den zweiten internen Bus 510 übertragen. In einem Schritt 633 addiert der Addierer 538 die neue Codelänge CL zur Summe der alten Codelängen CLS.
In einem Schritt 634 wird bestimmt, ob die Codelängensumme CLS 8 Bit überschreitet oder nicht. Wenn CLS ≧ 8 ist, dann schreitet der Ablauf zu einem Schritt 635 fort.
Im Schritt 635 wird ein Wort der Daten aus dem Eingangs­ speicher der Codefolge variabler Länge 483 übertragen, welches mit der vorliegenden Codefolge von variabler Länge gekoppelt wird. In einem Schritt 636 werden die ersten 8 Bit Daten von der Codefolge variabler Länge abgeschnitten. In einem Schritt 637 wird durch Ausführen von CLS = CLS - 8 eine neue Code­ längensumme CLS erhalten. Nach dem Schritt 637 kehrt der Ab­ lauf zum Schritt 634 zurück.
Im Schritt 634 wird der Decodierprozeß abgeschlossen, wenn CLS < 8 ist.
iii) Externe Schnittstellenschaltung 506 (Fig. 47)
Fig. 47 stellt ein Blockschaltbild der in Fig. 40 gezeigten externen Schnittstellenschaltung 506 dar. Unter Bezugnahme auf Fig. 47 umfaßt die externe Schnittstellenschaltung 506: eine Steuereinrichtung 545 mit der Funktion eines DMA, Lesezu­ griffszähler 546 und 549, Schreibzugriffszähler 547 und 548, Subtrahierer 565 und 566, Vergleichseinrichtungen 550 und 558, Flagerzeugungsregister 551 bis 554, ein Schreibdatenregister 556, ein Lesedatenregister 557 und eine Auswähleinrichtung 555.
Die Steuereinrichtung 545 ist mit den in Fig. 44 dargestell­ ten FIFO-Schaltungen 542 und 543 durch Signalleitungen 42b, 42c, 43b und 43c verbunden. Das Register 556 ist mit der in Fig. 44 gezeigten FIFO-Schaltung 542 durch eine Signalleitung 42a verbunden. Das Register 557 ist mit der in Fig. 44 gezeigten FIFO-Schaltung 543 durch eine Signalleitung 43a verbunden. Die Zähler 546 und 547 sind mit dem Eingangs­ speicher für eine Codefolge von variabler Länge 438 und dem Ausgangsspeicher für eine Codefolge von variabler Länge 484, welcher in Fig. 39 dargestellt ist, durch eine Signalleitung 493 verbunden. Die Zähler 548 und 549 sind mit dem Eingangs­ speicher für eine Codefolge von variabler Länge 438, dem Ausgangsspeicher für eine Codefolge von variabler Länge 484 und einer Host-Schnittstellenschaltung 1 durch eine Signal­ leitung 494 verbunden. Die Auswähleinrichtung 555 ist mit dem Eingangsspeicher für eine Codefolge von variabler Länge 438 und dem Ausgangsspeicher für eine Codefolge von variabler Länge 484, welcher in Fig. 39 dargestellt ist, durch eine Signalleitung 495 verbunden.
Der Zähler 546 zählt die Anzahl von Lesezugriffen auf den in Fig. 39 dargestellten Eingangsspeicher für eine Codefolge von variabler Länge 483. Der Zähler 547 zählt die Anzahl von Schreibzugriffen auf den in Fig. 39 dargestellten Ausgangs­ speicher für eine Codefolge von variabler Länge 484. Der Zähler 548 zählt die Anzahl von Schreibzugriffen auf den Eingangsspeicher für eine Codefolge von variabler Länge 483 aus anderen Schaltungen. Der Zähler 549 zählt die Anzahl von Lesezugriffen auf den Ausgangsspeicher für eine Codefolge von variabler Länge 484 aus anderen Schaltungen.
Das Flagregister 551 erzeugt ein Voll-Flag, welches den Voll­ zustand des Eingangsspeichers für eine Codefolge von variabler Länge 483 anzeigt, und hält das Flag. Das Register 552 erzeugt und hält ein Leer-Flag, welches auf den Leerzustand des Eingangsspeichers für eine Codefolge von variabler Länge 483 hinweist. Das Flagregister 553 erzeugt und hält ein Voll-Flag, welches auf den Vollzustand des Ausgangsspeichers für eine Codefolge von variabler Länge 484 hinweist. Der Zähler 554 erzeugt und hält ein Leer-Flag, welches auf den Leerzustand des Ausgangsspeichers für eine Codefolge von variabler Länge 484 hinweist.
Die Vergleichseinrichtung 550 stellt ein Voll-Flag FF1, das auf den Vollzustand hinweist, oder ein Leer-Flag EF1, das auf den Leerzustand des Eingangsspeichers für eine Codefolge von variabler Länge 483 hinweist. Die Vergleichseinrichtung 558 stellt ein Voll-Flag FF2, das auf den Vollzustand hinweist, oder ein Leer-Flag EF2, das auf den Leerzustand des Ausgangs­ speichers für eine Codefolge von variabler Länge 484 hinweist.
Fig. 48 stellt ein Flußdiagramm des Codierens mit variabler Länge in der in Fig. 47 gezeigten externen Schnittstellen­ schaltung 506 dar. Unter Bezugnahme auf Fig. 48 wird der Grundbetrieb zum Codieren mit variabler Länge beschrieben werden.
In einem Schritt 641 wird ermittelt, ob der Ausgangsspeicher für eine Codefolge von variabler Länge 484 leer ist oder nicht. Mit anderen Worten, es wird ermittelt, ob von der Vergleichseinrichtung 558 ein Leer-Flag EF2 vorgesehen wird oder nicht. Wenn das Leer-Flag EF2 nicht ermittelt wird, dann schreitet der Ablauf zu einem Schritt 642 fort. Wenn das Leer- Flag EF2 ermittelt wird, dann ist der Prozeß beendet.
Im Schritt 642 wird ermittelt, ob der Ausgangsspeichers für eine Codefolge von variabler Länge 484 voll ist oder nicht. Mit anderen Worten, es wird ermittelt, ob von der Vergleichs­ einrichtung 558 ein Voll-Flag EF2 vorgesehen wird oder nicht. Wenn das Voll-Flag EF2 nicht ermittelt wird, dann schreitet der Ablauf zu einem Schritt 643 fort. Wenn das Voll-Flag EF2 ermittelt wird, dann ist der Prozeß beendet.
Im Schritt 643 wird ein Wort der im Ausgangsspeicher für eine Codefolge von variabler Länge 484 gespeicherten Daten gelesen und im Ausgangsspeicher für eine Codefolge von variabler Länge gespeichert. In einem Schritt 644 wird der Schreibzugriffs­ zähler 547 auf summiert. Im Anschluß an Schritt 644 kehrt der Ablauf zum Schritt 641 zurück.
Fig. 49 stellt ein Flußdiagramm des Decodierens mit variabler Länge in der in Fig. 47 gezeigten externen Schnittstellen­ schaltung 506 dar. Unter Bezugnahme auf Fig. 49 wird in einem Schritt 651 ermittelt, ob der Eingangsspeicher für eine Code­ folge von variabler Länge 483 voll ist oder nicht. Mit anderen Worten, es wird ermittelt, ob von der Vergleichseinrichtung 550 ein Voll-Flag EF1 vorgesehen wird oder nicht. Wenn das Voll-Flag EF1 nicht ermittelt wird, dann schreitet der Ablauf zu einem Schritt 652 fort. Wenn das Voll-Flag EF1 ermittelt wird, dann ist der Prozeß beendet.
Im Schritt 652 wird ermittelt, ob der Eingangsspeicher für eine Codefolge von variabler Länge 483 leer ist oder nicht. Mit anderen Worten, es wird ermittelt, ob aus der Vergleichs­ einrichtung 550 ein Leer-Flag EF1 vorgesehen ist oder nicht.
Wenn das Leer-Flag EF1 nicht ermittelt wird, dann schreitet der Ablauf zu einem Schritt 653 fort. Wenn das Leer-Flag EF1 ermittelt wird, dann ist der Prozeß beendet.
Im Schritt 643 wird ein Wort der im externen Eingangsspeicher für eine Codefolge von variabler Länge gespeicherten Daten gelesen und im Eingangsspeicher für eine Codefolge von variabler Länge 483 gespeichert. In einem Schritt 654 wird der Lesezugriffszähler 446 für den externen Eingangsspeicher für eine Codefolge von variabler Länge auf summiert. Im Anschluß an Schritt 654 kehrt der Ablauf zum Schritt 651 zurück.
iv) Detaillierte Beschreibung des Codierens/Decodierens mit variabler Länge
Im folgenden wird das Codieren/Decodieren mit variabler Länge in dem in Fig. 39 dargestellten Prozessor für variable Längen 125 detaillierter beschrieben werden.
Fig. 50 stellt eine Tabelle der Codes variabler Länge dar, welche in dem in Fig. 39 dargestellten Prozessor für variable Längen 125 verwendet wird. Unter Bezugnahme auf Fig. 50 entsprechen die vier Spalten auf der linken Seite der Tabelle der Codes variabler Länge der Tabelle der Codes variabler Länge gemäß der H.261-Empfehlung des CCITT. Insbesondere sind die in der H.261 spezifizierten Laufdaten (Null-Lauflänge) RN, Pegeldaten (Faktor) LV, die Codelänge CL und der Code von variabler Länge VC in vier Spalten auf der linken Seite aufgelistet. Indessen stellen die drei Spalten auf der rechten Seite eine gruppierte Tabelle der Codes variabler Länge dar. Insbesondere sind der Code von variabler Länge VC und die Codelänge CL gemäß der Anzahl fortlaufender "0"en ab dem ersten Bit des Codes von variabler Länge VC in insgesamt neun Gruppen GR0 bis GR8 eingeteilt.
Beispielsweise umfaßt die Gruppe GR0 einen Code variabler Länge, dessen erstes Bit keine "0" ist. Die Gruppe GR1 umfaßt einen Code variabler Länge VC, bei welchem nur das eine erste Bit "0" ist. Die Gruppe GR2 umfaßt einen Code variabler Länge VC, bei welchem die ersten beiden Bits "0" sind. In gleich­ artiger Weise umfaßt die Gruppe GR8 einen Code variabler Länge VC, welcher 8 "0"en ab dem ersten Bit des Codes von variabler Länge VC enthält. Die gruppierten Codes variabler Länge VC und die Codelängen CL werden bei den Prozessen im Prozessor für variable Längen 125 verwendet, was nachstehend beschrieben werden wird.
Zuerst wird das Codieren einer variablen Länge beschrieben. Grundsätzlich wird das Codieren mit variabler Länge gemäß dem in Fig. 31 dargestellten Ablauf ausgeführt, welcher bereits beschrieben worden ist. Zuerst werden die zu codierenden Daten, das heißt die Daten (RN, LV), aus dem in Fig. 39 gezeigten Eingangsspeicher 485 für zu codierende Daten in den in Fig. 40 gezeigten Datenspeicher 538 im Prozessor für variable Längen 125 eingegeben. Die Eingabedaten werden zum Adreßgenerator 502 übertragen, welcher eine Tabellenspeicher­ adresse zur Umwandlung der Codierung mit variabler Länge erzeugt. Parallel zur Erzeugung der Tabellenadresse erzeugt der in Fig. 41 dargestellte Escape-Decodierer 526 unter Verwendung eines Escape-Codes einen Code von festgelegter Länge. Der erzeugte Code festgelegter Länge wird übertragen und im Escape-Register 528 gehalten. Der Betrieb des Adreß­ generators 502 wird nachstehend detaillierter beschrieben werden.
Unter Verwendung der durch den Adreßgenerator 502 erzeugten Tabellenadresse wird auf den Tabellenspeicher für die Codierung mit variabler Länge 481 Bezug genommen und werden der Code von variabler Länge VC, die Codelänge CL und das gespeicherte Escape-Flag ESF gelesen. Der Code von variabler Länge VC und die Codelänge CL werden zum in Fig. 41 darge­ stellten Datenregister 529 übertragen und darin gehalten.
Nach Beendigung des Zugriffs auf den Tabellenspeicher 481 für die Codierung mit variabler Längen werden die Daten des Escape-Registers 528 oder des Datenregisters 529 an die Schaltung zum Erzeugen/Trennen des Codes von variabler Länge 505 übergeben. Die Auswahl wird durch die Auswahlschaltung 530 bewirkt. Insbesondere gibt die Auswahleinrichtung 530 be­ liebige in den beiden Registern 528 und 529 gehaltene Daten in Reaktion auf das höchstwertige Bit (MSB) selektiv aus.
Wie in Fig. 51 dargestellt, speichert der Tabellenspeicher 481 für die Codierung mit variabler Länge insbesondere ein Escape-Flag ESF, welches anzeigt, ob die zu codierenden Daten im verwendbaren Bereich des Escape-Codes am höchstwertigen Bit liegen oder nicht. Wenn daher das höchstwertige Bit der in das Datenregister übertragenen Daten, das heißt das Flag ESF, die Anwendung des Escape-Codes anzeigt, dann gibt die Auswahl­ einrichtung 530 diejenigen Daten, die im Datenregister 529 gehalten worden sind, selektiv aus. Im Ergebnis kann nur durch Bezugnehmen auf den Tabellenspeicher 481 für die Codierung mit variabler Länge bestimmt werden, ob es erforderlich ist, den Escape-Code auf die zu codierenden Daten anzuwenden, und eine Bestimmung gemäß einem Programm ist für diese Bestimmung nicht notwendig.
Im in Fig. 41 dargestellten Adreßgenerator 502 können ferner der Zugriff auf den Tabellenspeicher 481 für die Codierung mit variabler Länge und die Erzeugung des Codes von festgelegter Länge unter Verwendung des Escape-Codes parallel, das heißt gleichzeitig, ausgeführt werden. Daher kann eine durch den Zugriff auf den Tabellenspeicher 481 für die Codierung mit variabler Länge hervorgerufene Zunahme der Prozeßzeit verhin­ dert werden.
Der durch die Bezugnahme auf den Tabellenspeicher 481 für die Codierung mit variabler Länge erhaltene Code von variabler Länge VC wird zur Schaltung zum Erzeugen/Trennen der Codefolge von variabler Länge 505 durch den in Fig. 41 gezeigten ersten internen Bus 509 übertragen. Inzwischen wird seine Codelänge CL zur Schaltung zum Erzeugen/Trennen des Codes von variabler Länge 505 durch den zweiten internen Bus 510 übertragen. Die Schaltung zum Erzeugen/Trennen der Codefolge von variabler Länge 505 erzeugt eine Codefolge von variabler Länge VCT aus dem übertragenen Code von variabler Länge VC und seiner Code­ länge CL. Der Betrieb des Erzeugens der Codefolge von variabler Länge wird nachstehend beschrieben. Die erzeugte Codefolge von variabler Länge VCT wird zu dem in Fig. 39 dargestellten Ausgangsspeicher für eine Codefolge von variabler Länge 484 durch die externe Schnittstellenschaltung 506 übertragen. Auf diese Weise wird das Codieren mit variabler Länge abgeschlossen.
Das Decodieren mit variabler Länge wird beschrieben werden. Zuerst wird eine Codefolge variabler Länge aus dem in Fig. 39 dargestellten Eingangsspeicher für eine Codefolge von variabler Länge 483 in die Schaltung zum Erzeugen/Trennen der Codefolge von variabler Länge 505 durch die externe Schnittstellenschaltung 506 eingegeben. Die Schaltung zum Erzeugen/Trennen der Codefolge von variabler Länge 505 bewirkt die Segmentierung des Codes von variabler Länge, welcher Gegenstand des Decodierens ist, aus der übertragenen Codefolge von variabler Länge und verschiebt die Bits des Codes von variabler Länge auf die Seite des MSB. Der verschobene Code variabler Länge wird zum Adreßgenerator 502 durch den ersten internen Bus 509 übertragen. Eine detaillierte Beschreibung der Schaltung zum Erzeugen/Trennen der Codefolge von variabler Länge 505 wird nachstehend gegeben werden.
Der Adreßgenerator 502 erzeugt eine Tabellenadresse für eine Bezugnahme auf den in Fig. 39 dargestellten Tabellenspeicher 482 zur Decodierung mit variabler Länge in Reaktion auf den übertragenen Code von variabler Länge. Die erzeugte Tabellen­ adresse wird zum Tabellenspeicher 482 für die Decodierung mit variabler Länge durch die externe Schnittstellenschaltung 503 übertragen. Im Ergebnis werden der decodierte Code von variabler Länge, die Codelängendaten und das Escape-Flag ESF im in Fig. 41 dargestellten Datenregister 529 gehalten. Zu dieser Zeit wird parallel zu diesem Prozeß ein Code von variabler Länge zu einem Escape-Code-Codierer übertragen und das Decodieren des Codes von festgelegter Länge unter Verwendung des Escape-Codes ausgeführt. Die das Ergebnis anzeigenden Daten werden in das Escape-Register 528 übertragen und darin gehalten.
Wie beim Codieren mit variabler Länge speichert der Tabellen­ speicher 482 für das Decodieren mit variabler Länge ein Escape-Flag ESF. Daher wird bei Beendigung des Zugriffs auf den Tabellenspeicher 482 das Escape-Flag ESF am höchstwertigen Bit (MSB) des Datenregisters 529 gehalten. In Reaktion auf das Escape-Flag ESF wird ein Teil der im Escape-Register 528 und im Datenregister 529 gehaltenen Daten durch die Auswahl­ einrichtung 530 selektiv ausgegeben. Die Ausgabedaten werden in den in Fig. 40 dargestellten Datenspeicher 508 übertragen.
Inzwischen werden die Codelängendaten zur Schaltung zum Erzeu­ gen/Trennen der Codefolge von variabler Länge 505 durch den zweiten internen Bus 510 übertragen. Die Schaltung zum Erzeu­ gen/Trennen der Codefolge von variabler Länge 505 bewirkt die Segmentierung des nachfolgenden Codes variabler Länge durch Verwenden der übertragenen Codelängendaten. Die dem Daten­ speicher 508 zugeführten Daten, welche das Ergebnis des Decodierens angeben, werden an den Ausgangsspeicher 486 für die zu codierenden Daten durch die externe Schnittstellen­ schaltung 506 ausgegeben. Somit ist das Decodieren mit variabler Länge beendet.
Im folgenden wird der Betrieb der in Fig. 41 dargestellten Adreßerzeugungsschaltung 502 detaillierter beschrieben werden.
Fig. 52 zeigt ein Datenformat der beim Codieren mit variabler Länge zu codierenden Daten. Unter Bezugnahme auf Fig. 52 um­ fassen die zu codierenden Daten Pegeldaten LV von 10 Bit und Laufdaten RN von 6 Bit. Daher weisen die zu codierenden Daten eine Bitlänge von insgesamt 16 Bit auf.
Unter Bezugnahme auf die vier Spalten auf der linken Seite der in Fig. 50 dargestellten Tabelle für Codes von variabler Länge weisen nun die Pegeldaten LV (welche in der H.261- Empfehlung als Absolutwertdaten festgelegt sind) einen Wert auf, welcher innerhalb des Bereichs von -15 bis +15 liegt. Gemäß der H.261-Empfehlung sind die außerhalb dieses Bereichs liegenden Daten dazu bestimmt, im Escape-Code (ESCAPE) dargestellt zu werden. Das bedeutet, daß die zum Darstellen der Pegeldaten LV notwendige Bitzahl 5 Bit beträgt und daß eine Kombination von Laufdaten und Pegeldaten durch insgesamt 11 Bit, zusammen mit den Laufdaten RN, dargestellt werden kann.
Die Pegeldaten LV, welche nicht niedriger als +15 und nicht höher als -15 sind, sind auf +16 und -16 entsprechend beschränkt, und daher bedeuten die Pegeldaten +16 und -16 umfassenden Adressen Escape-Codes. Durch diese Verarbeitung genügt es, daß die Adresse insgesamt 11 Bit aufweist, um auf die Speichertabelle zum Codieren mit variabler Länge zuzugreifen, und daher kann die Speichertabelle zum Codieren mit variabler Länge innerhalb des Bereichs von 2k Worten des Adreßraums implementiert werden.
Auf diese Weise kann der Adreßgenerator 502 die Adressen­ erzeugung durch nur einen Pfad ausführen. Daher begrenzt die in Fig. 41 dargestellte Begrenzeinrichtung 531 10 Bit der Pegeldaten LV der im Adreßregister 525 gehaltenen Daten auf den Bereich von +16 bis -16. Daher wird ein positiver Wert +16 in das Register für einen positiven Grenzwert 520 geschrieben, wohingegen ein negativer Wert -16 in das in Fig. 41 darge­ stellte Register für einen negativen Grenzwert 521 geschrieben wird. Die Begrenzungseinrichtung 531 führt die vorstehend ge­ nannte Begrenzungsoperation unter Bezugnahme auf die in den Registern 520 und 521 gehaltenen Daten aus.
Im Ergebnis des Begrenzens der Pegeldaten werden insgesamt 11 Bit von Kombinationsdaten erhalten, und durch Verwenden dieser Daten wird eine Adresse zur Bezugnahme auf den Tabellen­ speicher 481 zum Codieren mit variabler Länge erzeugt.
Das Decodieren bei der in Fig. 41 dargestellten Adreßerzeu­ gungsschaltung 502 wird beschrieben werden.
Wie es in der in Fig. 50 gezeigten Tabelle von Codes variabler Länge dargestellt ist, sind die Codes von variabler Länge VC in insgesamt neun Gruppen GR0 bis GR8 eingeteilt. In jeder Gruppe sind 6 Bit zum Festlegen jedes Codes variabler Länge erforderlich. Um eine Decodiertabelle für den Code von variabler Länge zu implementieren, werden daher 4 Bit zum Angeben der insgesamt neun Gruppen und 6 Bit zum Angeben des Codes in jeder Gruppe benötigt. Insbesondere werden insgesamt 10 Bit als Adresse für die Tabelle zum Decodieren des Codes variabler Länge benötigt. Die in Fig. 41 dargestellte Adreß­ erzeugungsschaltung 502 kann 10 Bit der Tabellenadresse durch einen Pfad erzeugen.
Insbesondere wird der zu decodierende Code von variabler Länge zum Adreßregister 524 übertragen und darin gespeichert. Die durch das Adreßregister 524 gehaltenen Daten werden zum Prioritäts-Codierer 532 übertragen, und die Anzahl der fortlaufenden "0"en ab dem ersten Bit der übertragenen Daten wird gezählt. Folglich wird bestimmt, zu welcher der in Fig. 50 gezeigten Gruppen GR0 bis GR8 die Daten gehören, und die Gruppennummer wird durch 4 Bit der Daten dargestellt. Indessen werden 6 Bit der den fortlaufenden "0"en folgenden Daten segmentiert. Die Gruppennummer-Daten von 4 Bit und die segmentierten Daten von 6 Bit bilden eine Tabellenadresse von insgesamt 10 Bit, und die Tabellenadresse wird zum Adreß­ register 534 übertragen und darin gehalten.
Auf diese Weise kann durch Verwenden des in Fig. 41 darge­ stellten Adreßgenerators 502 der Adressenraum für den Tabellenspeicher 481 für das Codieren mit variabler Länge und den Tabellenspeicher 482 für das Decodieren mit variabler Länge verkleinert werden, und ferner können diese Prozesse durch eine Serienoperation ausgeführt werden.
Der Codierbetrieb in der in Fig. 44 dargestellten Schaltung zum Erzeugen/Trennen einer Codefolge von variabler Länge wird beschrieben werden. Das Codeausgangsregister 540 umfaßt Parallelschieberegister 40a bis 40e, von denen jedes 8 Bit enthält. Im Ausgangszustand halten das Codeausgangsregister 540, das Codelängenregister 539 und die FIFO-Schaltung 542 jeweils die Daten "0". Die Abschnittsverschiebeeinrichtung 537 mit 40 Bit (40b) verschiebt die Eingangsdaten gemäß der im Codelängenregister 539 gehaltenen Codelänge zur rechten Seite.
Beispielsweise wird "001010" als codierter erster Code von variabler Länge in das Busregister 536 übertragen, während die Codelänge "6" zum Addierer 538 von 5 Bit übertragen wird. Da der Wert im Codelängenregister 539 "0" ist, gehen in diesem Stadium die Daten im Busregister 536, so wie sie sind, durch die Abschnittsverschiebeeinrichtung 537 und werden dem Code­ längenregister 539 zugeführt. Im Addierer 538 wird die Ein­ gangsdatenangabe "6" zur Datenangabe "0" im Codelängenregister 539 addiert, und die sich ergebende Datenangabe "6" werden in das Codelängenregister 539 geschrieben.
Danach wird als nächster codierter Code von variabler Länge die Datenangabe "00001000" zum Busregister 536 übertragen, und die Codelänge "8" wird dem Addierer 538 übergeben. Da die Datenangabe im Codelängenregister 539 "6" lautet, werden die Daten des Busregisters 536 nach der rechten Seite um 6 Bit durch die Abschnittsverschiebeeinrichtung 537 verschoben, und die verschobenen Daten werden dem Codelängenregister 539 zugeführt. Daher enthalten die im Codelängenregister 539 gehaltenen Daten den ersten Code variabler Länge in den ersten 6 Bit und den nächsten Code variabler Länge ab dem 7ten sowie den folgenden Bits. Der Addierer 538 addiert die Eingangs­ datenangabe "8" zur Datenangabe "6" im Codelängenregister 539 und überträgt das Additionsergebnis, das heißt "14", zum Code­ längenregister 539.
Da das Register 40a im Codeausgangsregister 540 in diesem Stadium mit dem Code variabler Länge "00101000" belegt ist, werden die Daten im Datenregister 40a an die FIFO-Schaltung 542 ausgegeben. Danach werden die Daten im Register 40b in das Register 40a übertragen. Ferner werden die Daten im Register 40c in das Register 40b übertragen. Gleichartige Operationen werden wiederholt und die Daten des letzten Registers 40e in das Register 40d übertragen. Nach diesem Übertragungsprozeß wird die Codelänge der an die FIFO-Schaltung 542 ausgegebenen Datenangabe, das heißt "8", von der Datenangabe im Codelängen­ register 539 subtrahiert. Da in diesem Beispiel das Register 539 insbesondere die Datenangabe "14" hält, wird das Subtraktionsergebnis "6" (= 14 - 8) lauten.
Im Ergebnis geben die Daten im Codelängenregister 539 die Bit­ zahl des im Register 40a gespeicherten Codes variabler Länge "0011000" an, und wenn der nächste Code von variabler Länge eingegeben wird, dann wird der eingegebene Code von variabler Länge zur rechten Seite um die Bitzahl des im Register 40a gespeicherten Codes von variabler Länge verschoben. Der nächste Code variabler Länge, der dem bereits gespeicherten Code variabler Länge folgt, wird nämlich im Codeausgangs­ register 40 gespeichert. Auf diese Weise kann durch Verwenden des Codes variabler Länge und seiner Codelänge die Codefolge von variabler Länge ohne Bestimmung gemäß einer Software erzeugt werden.
Der Decodierbetrieb in der Schaltung zum Erzeugen/Trennen einer Codefolge von variabler Länge wird beschrieben werden. Wie im Codeausgangsregister 540, umfaßt das Codeeingangs­ register 541 Parallelschieberegister 41a bis 41e, welche 8 Bit enthalten. Im Ausgangszustand halten das Codeeingangsregister 541 und das Codelängenregister 539 beide die Datenangabe "0". Die Abschnittsverschiebeeinrichtung 537 mit 40 Bit verschiebt die Eingangsdaten nach der linken Seite um den im Codelängen­ register 539 gehaltenen Wert.
Zuerst wird die erste Codefolge variabler Länge in die Register 41a bis 41e durch die FIFO-Schaltung 543 nacheinander eingegeben. Wenn der Code von variabler Länge zu segmentieren ist, dann werden die Daten im Codeeingangsregister 541 zum Busregister 536 durch die Abschnittsverschiebeeinrichtung 537 übertragen.
Da die Datenangabe im Codelängenregister 539 "0" lautet, gehen in diesem Stadium die Daten im Codeeingangsregister 541, so wie sie sind, durch die Abschnittsverschiebeeinrichtung 537 und werden dem Busregister 536 zugeführt. Durch Decodieren der Datenangabe im Busregister 536 wird als Codelänge derselben die Datenangabe "6" erhalten, und die Codelängendatenangabe wird dem Addierer 538 zugeführt. Der Addierer 538 addiert die Eingabedatenangabe "6" zur Datenangabe "0" im Codelängen­ register 539, und die das Ergebnis anzeigende Datenangabe "6" wird zum Codelängenregister 539 übertragen und darin gehalten.
Wenn der nächste Code variabler Länge zu segmentieren ist, dann werden die Daten im Codeeingangsregister 541 zur Abschnittsverschiebeeinrichtung 537 und zum Busregister 536 übertragen. Da die Datenangabe im Codelängenregister 539 "6" lautet, wird die Datenangabe im Codeeingangsregister 541 nach der linken Seite um 6 Bit durch die Abschnittsverschiebe­ einrichtung 537 verschoben und die verschobene Datenangabe dem Busregister 536 zugeführt. Insbesondere wird ein dem bereits codierten Code variabler Länge folgender nächster Code variabler Länge erhalten, welcher zur linken Seite verschoben ist. Als Ergebnis des Decodierens der Datenangabe im Bus­ register 536 wird als Codelänge derselben die Datenangabe "8" erhalten, und die Codelängen-Datenangabe wird in den Addierer 538 eingegeben.
Der Addierer 538 addiert die Eingabedatenangabe "8" zur Daten­ angabe "6" im Codelängenregister 539 und überträgt die die Ergebnisse anzeigende Datenangabe "14" zum Codelängenregister 539. In diesem Stadium ist der Inhalt des Registers 41a vollständig decodiert, und daher werden die Daten im Register 40b in das Register 40a übertragen. Anschließend werden die Daten im Register 40c in das Register 40b übertragen. Durch Wiederholen gleichartiger Operationen werden die Daten im Register 40e schließlich in das Register 40d übertragen. Die nächste Codefolge von variabler Länge wird aus der FIFO-Schal­ tung 543 in das leere Register 40e überführt.
Da das Decodieren von 8 Bit abgeschlossen worden ist, lautet die Datenangabe im Codelängenregister 539: "6". Wenn daher der nächste Code variabler Länge segmentiert wird, dann wird ein dem bereits decodierten Code variabler Länge folgender nächster Code variabler Länge erhalten, der zur linken Seite verschoben ist.
Durch Verwenden der Codelänge des decodierten Codes variabler Länge kann auf diese Weise, ohne der Bestimmung gemäß einer Software, der zu decodierende nächste Code variabler Länge segmentiert werden, welcher zur linken Seite von der Codefolge variabler Länge verschoben ist.
Das Codieren mit variabler Länge bei der in Fig. 47 darge­ stellten externen Schnittstellenschaltung 506 wird beschrieben werden.
Unter Bezugnahme auf Fig. 47 steuert eine Steuereinrichtung 545 mit DMA-Funktion die interne Schaltungsanordnung in der externen Schnittstellenschaltung 506. Die Zähler 548 und 549 empfangen ein Strobe-Signal des Zugriffs (Lesen und Schreiben) auf den Eingangsspeicher für eine Codefolge variabler Länge 483 und auf den Ausgangsspeicher für eine Codefolge variabler Länge 484 durch die Signalleitung 494. Daher zählt der Zähler 548 die Anzahl der Schreibzugriffe auf den Eingangsspeicher für eine Codefolge variabler Länge 483 durch den Host- Computer. Indessen zählt der Zähler 548 die Anzahl der Lesezu­ griffe aus der externen Schnittstellenschaltung 506 auf den Eingangsspeicher für eine Codefolge variabler Länge 483. Der Zähler 547 zählt die Anzahl der Schreibzugriffe aus der externen Schnittstellenschaltung 506 auf den Ausgangsspeicher für eine Codefolge variabler Länge 484.
Die Ausgangsdaten aus den Zählern 546 und 548 werden dem Subtrahierer 565 zugeführt, in welchem eine Subtraktion bewirkt wird. Die das Ergebnis der Subtraktionseinrichtung anzeigende Datenangabe, folglich die Anzahl von Datenworten, wird im Eingangsspeicher für eine Codefolge variabler Länge 483 gespeichert. Die aus dem Subtrahierer 565 ausgegebenen Daten werden zur Vergleichseinrichtung 550 übertragen.
Die Vergleichseinrichtung 550 empfängt die Wortzahl-Daten im Voll-Zustand des Eingangsspeichers für eine Codefolge variabler Länge 483. Inzwischen empfängt die Vergleichsein­ richtung 550 die Wortzahl-Datenangabe, welche den Leer-Zustand des Eingangsspeichers für eine Codefolge variabler Länge 483 anzeigt. Die Vergleichseinrichtung 550 vergleicht die Ausgangsdaten aus dem Subtrahierer 565 mit den Daten aus den Registern 551 und 552 und setzt Flags FF1 und EF1.
Wenn die Ausgangsdatenangabe aus dem Subtrahierer 565, das heißt die Differenzdatenangabe, eben so groß wie die im Register 551 gespeicherte Wortzahl ist, welche den Voll-Zustand anzeigt, dann setzt die Vergleichseinrichtung 550 ein Voll- Flag FF1. Wenn indessen die Ausgangsdatenangabe aus dem Subtrahierer 565 eben so groß wie die im Register 552 gehaltene Wortzahl ist, welche den Leer-Zustand anzeigt, dann setzt die Vergleichseinrichtung 550 ein Leer-Flag EF1. In gleichartiger Weise wird im in Fig. 39 dargestellten Ausgangsspeicher für eine Codefolge variabler Länge 484 die gleiche Operation wie im Eingangsspeicher 483 ausgeführt und das Voll-Flag FF2 oder das Leer-Flag EF2 aus der Vergleichseinrichtung 558 ausge­ geben.
Die Steuereinrichtung 545 steuert die Datenübertragung zwischen den FIFO-Schaltungen 542 und 543, dem Ausgangs­ speicher für eine Codefolge variabler Länge 484 und dem Ein­ gangsspeicher für eine Codefolge variabler Länge 483 auf Grundlage sowohl des Flag-Ausgangssignals 42b aus der in Fig. 44 dargestellten FIFO-Schaltung 542, des Flag-Ausgangssignals 43b aus der FIFO-Schaltung 543 als auch auf Grundlage der Flags FF1, EF1, FF2 und EF2 aus den Vergleichseinrichtungen 550 und 558. Die Steuerung der Datenübertragung wird in der folgenden Weise ausgeführt.
Wenn das Codieren mit variabler Länge ausgeführt wird, dann werden Daten zwischen der FIFO-Schaltung 542 und dem Ausgangs­ speicher für eine Codefolge variabler Länge 484 übertragen. Zu dieser Zeit wird in der Schaltung zum Erzeugen/Trennen einer Codefolge variabler Länge 505 die Datenübertragung gesteuert, um die FIFO-Schaltung 542 nicht in den Nicht-Überlaufzustand zu versetzen, das heißt, eine Leseoperation ohne die Speicherung von Daten zu verhindern. Ferner werden Daten über­ tragen, um keinen Überlauf des Ausgangsspeichers für eine Codefolge variabler Länge 484 zu verursachen, das heißt, um eine Schreiboperation in den Ausgangsspeicher für eine Codefolge variabler Länge 484 mit bereits gespeicherten gültigen Daten zu verhindern.
Beim Decodieren mit variabler Länge werden Daten zwischen der FIFO-Schaltung 543 und dem Eingangsspeicher für eine Codefolge variabler Länge 483 übertragen. Zu dieser Zeit wird die Daten­ übertragung gesteuert, um einen Überlauf der FIFO-Schaltung 543 und einen Nicht-Überlauf des Ausgangsspeichers für eine Codefolge variabler Länge 484 zu verhindern.
5. Bildpufferspeicher 1) Systemaufbau (Fig. 53 und 54)
Fig. 53 zeigt einen Grundaufbau von einer Speicherzellenan­ ordnung im Bildpufferspeicher. Der in Fig. 1 dargestellte Bildpufferspeicher 51 weist beispielsweise den Aufbau der Fig. 53 auf.
Unter Bezugnahme auf Fig. 53 umfaßt der Bildpufferspeicher 54 (oder 55) insgesamt 32 Ebenen von Speicherzellenanordnungen 701 bis 732 (oder 801 bis 832). Wenn eine Zeilenadresse RA und eine Spaltenadresse CA angelegt werden, dann wird 1 Bit der Daten aus jeder der Speicherzellenanordnungen 701 bis 732 gelesen (oder dort eingeschrieben). Wenn beispielsweise eine Zeilenadresse RA1 und eine Spaltenadresse CA1 angelegt werden, dann werden insgesamt 32 Bit der Daten aus den Speicherzellen­ anordnungen 701 bis 732 gelesen.
Im allgemeinen werden 8 Bit der Daten benötigt, um ein Pixel darzustellen. Daher können durch insgesamt 32 Bit der Daten vier Pixel PC1 bis PC4 dargestellt werden (vergleiche Fig. 53). Mit anderen Worten, durch Anlegen von einer Zeilenadresse RA und einer Spaltenadresse CA können die Daten für vier Pixel PC1 bis PC4 verarbeitet werden.
Fig. 54 stellt ein Blockschaltbild des Bildpufferspeichers dar. Unter Bezugnahme auf Fig. 54 umfaßt der Bildpuffer­ speicher 54 (oder 55) eine Steuerschaltung 741 und Speicher­ zellenanordnungen 701 bis 732 (oder 801 bis 832). Im Falle von SDRAMs ist jede der Speicherzellenanordnungen 701 bis 732 in zwei Bänke BK1 und BK1 eingeteilt. Bezüglich jeder der Speicherzellenanordnungen 701 bis 732 sind ein Abtastver­ stärker 742 und ein Eingangs-/Ausgangspuffer 743 vorgesehen. Daher werden 32 Bit von Daten PD1 bis PD32 in die und aus den Speicherzellenanordnungen 701 bis 732 geschrieben und gelesen.
Die Steuerschaltung 741 empfängt ein Adreßsignal ADR sowie ein Steuersignal Sc und erzeugt ein Steuersignal zum Zugreifen auf die Speicherzellenanordnungen 701 bis 732.
2) Ein DRAMs verwendendes Beispiel (erstes Beispiel: Fig. 55)
Fig. 55 zeigt einen Systemaufbau eines Bildpufferspeichers 54, welcher DRAMs verwendet. Unter Bezugnahme auf Fig. 55 umfaßt der Bildpufferspeicher 54 DRAM-Speicherzellenan­ ordnungen 701 bis 732, welche insgesamt 32 Ebenen bilden. Der Bildpufferspeicher 54 empfängt ein Adreßsignal ADR aus einer DRAM-Steuereinrichtung 740 durch einen Adreßbus AB. Der Bildpufferspeicher 54 ist mit einem Pixeldatenbus PD ver­ bunden, und die Daten werden durch den Pixeldatenbus PB einge­ geben/ausgegeben.
Eine DRAM-Steuereinrichtung 742 ist beispielsweise in einer Steuereinheit der in Fig. 1 dargestellten Vorrichtung zur Bildkompression/-expansion vorgesehen. Insbesondere ist eine DRAM-Steuereinrichtung 743 in dem in Fig. 9 dargestellten Prozessor zur Gesamtsteuerung 11 vorgesehen.
Fig. 56 stellt eine Pixelanordnung dar, welche die Beziehung zwischen den Daten, die im in Fig. 55 gezeigten Bildpuffer­ speicher 54 gespeichert sind, und den Pixeln auf dem Bildschirm angibt. Wie vorstehend beschrieben, kann durch Anlegen einer Zeilenadresse RA und einer Spaltenadresse CA an den Bildpufferspeicher 54 auf 32 Bit der vier Pixel angebenden Daten zugegriffen werden. Bei dem in Fig. 55 dargestellten Systemaufbau können durch eine Zeilenadresse und eine Spalten­ adresse vier Pixel (zum Beispiel PC0-PC3) in der horizontalen Richtung auf einem Bildschirm SCN angegeben werden, wie in Fig. 56 gezeigt.
Fig. 58 stellt eine Pixelanordnung zur Beschreibung des Adreßsignals durch die in Fig. 55 dargestellte DRAM-Steuer­ einrichtung 740 dar. Unter Bezugnahme auf Fig. 58 werden durch die Spaltenadresse des Bildpufferspeichers 54 Pixel in der horizontalen Richtung des Bildschirms SCN festgelegt. Indessen werden durch das Zeilenadreßsignal Pixel in der vertikalen Richtung des Bildschirms SCN festgelegt. In Fig. 58 stellt das Bezugszeichen ○ ein Pixel dar.
Der in Fig. 55 dargestellte Prozessor zur Gesamtsteuerung 11 erzeugt ein Zeilenadreßsignal RA und ein Spaltenadreßsignal CA gemäß einem darin gespeicherten Unterprogramm. Das Zeilen- und das Spaltenadreßsignal RA und CA werden als Adreßsignal ADR an den Adreßbus AB gelegt. Das Adreßsignal ADR wird durch den Adreßbus AB an den Bildpufferspeicher 54 gelegt. Zur gleichen Zeit sieht die DRAM-Steuereinrichtung 740 ein Steuersignal zum Steuern des Bildpufferspeichers 54 vor. Der Prozessor zur Gesamtsteuerung 11 überträgt beim Datenschreiben zu speichernde Daten durch den Pixeldatenbus PD zum Bildpuffer­ speicher 54. Der Prozessor zur Gesamtsteuerung 11 empfängt bei der Datenleseoperation die im Bildpufferspeicher 54 gespei­ cherten Daten durch den Pixeldatenbus PD.
Fig. 59 stellt ein Zeitablaufdiagramm dar, welches die Lese­ operation aus dem Bildpufferspeicher 54 unter der Steuerung der in Fig. 55 gezeigten DRAM-Steuereinrichtung 740 zeigt. Unter Bezugnahme auf Fig. 59 nimmt das Spaltenadreß-Strobe­ signal /RAS ab, nachdem das Zeilenadreßsignal RA1 angelegt wurde. Nach dem Anlegen des ersten Spaltenadreßsignals CA1 nimmt das Spaltenadreß-Strobesignal /CAS ab. Bei der Lese­ operation wird ein Schreib-Freigabesignal /WE vom Hochpegel angelegt. Daher werden aus der durch die Adreßsignale RA1 und CA1 festgelegten Speicherzelle (nicht dargestellt) die ge­ speicherten Daten PD1 gelesen. Nach dem Lesen der Daten PD1 nimmt das Signal /CAS zu.
Nach dem Anlegen des nächsten Spaltenadreßsignals CA2 nimmt das Signal /CAS erneut ab. Folglich werden die Daten PD2 aus der durch die Adreßsignale RA1 und CA2 festgelegten Speicher­ zelle gelesen. Durch Wiederholen der gleichartigen Operationen werden die durch die Spaltenadreßsignale CA1, CA2, . . . festge­ legten Daten PD1, PD2, . . . nacheinander aus einer durch das Zeilenadreßsignal RA1 festgelegten Zeile ausgegeben.
Unter Bezugnahme auf Fig. 58 wird ein Makroblock 750 durch insgesamt 64 (= 8×8) Pixel gebildet, das heißt: 8 in der horizontalen Richtung und 8 in der vertikalen Richtung auf dem Bildschirm SCN. Daher können die Pixeldaten im Makroblock 750 durch die Zeilenadreßsignale RA1 bis RA8 und die Spaltenadreß­ signale CA4 und CA5 festgelegt werden.
Folglich erzeugt der in Fig. 5 dargestellte Prozessor zur Gesamtsteuerung 11 die Zeilen- und Spaltenadreßsignale gemäß einem gespeicherten Programm in der folgenden Art und Weise.
Zuerst werden nach dem Ausgeben des Zeilenadreßsignals RA1 die Spaltenadreßsignale CA4 und CA5 ausgegeben. Folglich kann auf die eine erste Zeile der Pixeldaten im Makroblock 750 zuge­ griffen werden (beispielsweise durch Lesen). Nach dem Anlegen des Zeilenadreßsignals RA2 werden dann die Spaltenadreßsignale CA4 und CA5 nacheinander angelegt. Folglich kann auf die zweite Zeile der Daten im Makroblock 750 zugegriffen werden. Eine gleichartige Operation wird für die achte Zeile des Makroblocks 750 wiederholt.
Um im Bildpufferspeicher 54 auf alle Pixel im Makroblock 750 zuzugreifen, sind folglich insgesamt 8 Anlegungen der Zeilen­ adressen RA1 bis RA8 und insgesamt 16 Anlegungen der Spalten­ adressen CA erforderlich. In einem besonderen Beispiel er­ fordert die Anlegung einer Zeilenadresse RA 90 ns und zwei Anlegungen der Spaltenadressen CA und die Datenübertragung erfordern 120 ns. In diesem Fall erfordert die Festlegung von einem Makroblock 1680 ns (= (90+120)×8).
Wenn indessen in der Einheit zur Bewegungsvoraussage ein Bewegungsvektor zu ermitteln ist, dann ist ein beispielsweise in Fig. 58 dargestellter Makroblock 751 notwendig. Insbe­ sondere die im Makroblock 751 enthaltenen Pixeldaten werden durch die Zeilenadressen RA11 bis RA18 und die Spaltenadressen CA1 bis CA3 festgelegt. Die in Gebieten 752 und 753 ge­ speicherten Pixeldaten sind nicht notwendig, und sie werden verworfen, nachdem auf sie zum Zugreifen auf die Daten bezüg­ lich der Pixel im Makroblock 751 zugegriffen wurde.
Um auf die Pixeldaten im Makroblock 751 zuzugreifen, werden daher insgesamt 8 Anlegungen der Zeilenadressen RA und insge­ samt 24 Anlegungen der Spaltenadressen CA benötigt. Im Er­ gebnis werden für den Zugriff insgesamt 2160 ns benötigt.
3) Ein SDRAMs verwendendes Beispiel (zweites, drittes und viertes Beispiel)
Im folgenden werden drei Beispiele (zweites, drittes und viertes Beispiel) beschrieben werden, welche synchrone DRAMs (nachstehend als "SDRAMs" bezeichnet) als Bildpufferspeicher verwenden.
Fig. 60 stellt einen Systemaufbau des SDRAMs verwendenden Bildpufferspeichers 55 dar. Unter Bezugnahme auf Fig. 60 wird der Bildpufferspeicher 55 aus SDRAMs gebildet, welche Speicherzellenanordnungen 801 bis 832 umfassen, die in insge­ samt 32 Ebenen unterteilt sind. Ein Prozessor zur Gesamt­ steuerung 11 umfaßt einen Adreßgenerator 804 zum Erzeugen eines Adreßsignals ADR zum Zugriff auf den Bildpufferspeicher 55. Der Adreßgenerator 804 legt durch den Adreßbus AB ein Zeilenadreßsignal RA und ein Spaltenadreßsignal CA als Adreß­ signal ADR an den Bildpufferspeicher 55. Die Daten, auf die zugegriffen wird, werden zum Bildpufferspeicher 55 durch den Pixeldatenbus PB übertragen. Der Prozessor zur Gesamtsteuerung sieht ein Systemtakt-Signal ΦSc zum Erzeugen des Adreßsignals ADR zum Adreßgenerator 840 vor.
Beim Betrieb aktiviert der Prozessor zur Gesamtsteuerung 11 den Adreßgenerator 840 gemäß einem gespeicherten Programm. In Reaktion auf das Systemtakt-Signal ΦSc sieht der Adreßgenerator 840 ein Adreßsignal ADR zum Zugreifen auf den SDRAM im Bild­ pufferspeicher 55 vor. Der Adreßgenerator 840 erzeugt ein Zeilenadreßsignal RA und ein Spaltenadreßsignal CA auf drei unterschiedliche Arten, welche nachstehend beschrieben werden (zweites, drittes und viertes Beispiel).
Fig. 61 stellt ein Zeitablaufdiagramm dar, welches einen Grundbetrieb (in diesem Beispiel den Lesebetrieb) des SDRJ-Ms zeigt. Unter Bezugnahme auf Fig. 61 wird der SDRAM in Reaktion auf das aus dem Prozessor zur Gesamtsteuerung 11 angelegte Systemtakt-Signal Φsc betrieben. In Reaktion auf eine Abnahme des Signals /RAS wird das Zeilenadreßsignal RA1 erhalten, und danach wird in Reaktion auf eine Abnahme des Signals /CAS das Spaltenadreßsignal CA1 erhalten. In Reaktion auf das Systemtakt-Signal ΦSc stellt der Adreßgenerator 840, mit dem Spaltenadreßsignal CA1 beginnend, nacheinander die Spaltenadreßsignale CA1 bis CA8 bereit. Diese Adreßsignale werden durch den Adreßbus AB an den Bildpufferspeicher 55 gelegt.
Daher werden im Datenlesebetrieb die gespeicherten Daten PD1 bis PD8 aus der Speicherzellenanordnung im SDRAM gelesen. Insbesondere werden in diesem in Fig. 61 dargestellten Beispiel 8 Spaltenadreßsignale erzeugt, wobei mit dem Spaltenadreßsignal CA1 begonnen wird, so daß von der durch das Zeilenadreßsignal RA1 festgelegten Zeile 8 Stücke der Daten PD1 bis PD8 gelesen werden.
i) Zweites Beispiel (Fig. 62 und 63)
Fig. 62 zeigt eine Pixelanordnung zur Beschreibung des Adressierens durch den in Fig. 60 dargestellten Adreß­ generator 840 (zweites Beispiel), wie in Fig. 62 dargestellt, wobei die Pixel in der horizontalen Richtung auf dem Bild­ schirm SCN durch das Spaltenadreßsignal CA festgelegt werden, wohingegen die Pixel in der vertikalen Richtung durch das Zeilenadreßsignal RA festgelegt werden.
In diesem Beispiel werden ferner durch ein Zeilenadreßsignal RA und ein Spaltenadreßsignal CA insgesamt 32 Bit der Daten aus dem in Fig. 60 dargestellten Bildpufferspeicher 55 gelesen. Daher können vier Pixel durch 32 Bit der Daten dargestellt werden. In dem in Fig. 62 dargestellten Beispiel können ferner vier Pixel in der vertikalen Richtung (beispielsweise PC0-PC3) durch 32 Bit der Daten dargestellt werden, wie in Fig. 57 gezeigt.
Der Makroblock 860 umfaßt beispielsweise insgesamt 64 Pixel, das heißt 8 Pixel in der horizontalen Richtung und 8 Pixel in der vertikalen Richtung. Das Adressieren der Pixeldaten der Makrodaten 860 wird beim Lesen beispielsweise in der folgenden Weise ausgeführt.
Nach dem Anlegen einer Zeilenadresse RA4 wird eine Spalten­ adresse CA1 angelegt. Der in Fig. 60 dargestellte Adreß­ generator 840 erzeugt in Reaktion auf das Systemuhr-Signal Φsc nacheinander, mit der Spaltenadresse CA1 beginnend, Spalten­ adressen CA1 bis CA8. Daher wird von einer durch die Zeilen­ adresse RA4 festgelegten Zeile die erstere Hälfte der durch die Spaltenadressen CA1 bis CA8 festgelegten Daten nach­ einander gelesen.
Nach dem Anlegen der Zeilenadresse RA5 wird dann die Spalten­ adresse CA1 angelegt. In Reaktion auf das Systemuhr-Signal Φsc stellt der Adreßgenerator 840 nacheinander die Spaltenadreß­ signale CA1 bis CA8 bereit. Daher kann die letztere Hälfte der Pixel im Makroblock 860 gelesen werden.
Fig. 63 stellt ein Zeitablaufdiagramm dar, welches den Betrieb des in Fig. 60 gezeigten Adreßgenerators zeigt. Um das Adressieren in der in Fig. 62 dargestellten Weise aus zu­ führen, wird der in Fig. 60 dargestellte Adreßgenerator 840 wie in Fig. 63 dargestellt betrieben.
Unter Bezugnahme auf Fig. 63 wird in Reaktion auf eine Abnahme des Signals /RAS das Zeilenadreßsignal RA4 erhalten, und danach wird in Reaktion auf eine Abnahme des Signals /CAS das Spaltenadreßsignal CA1 erhalten. Der Adreßgenerator 840 (nicht dargestellt) stellt, beginnend mit dem erhaltenen Spaltenadreßsignal CA1, nacheinander die Spaltenadreßsignale CA1 bis CA8 bereit. Diese Adreßsignale RA4 und CA1 bis CA8 werden durch den in Fig. 60 dargestellten Adreßbus AB an den Bildpufferspeicher 55 gelegt. Als Ergebnis werden im Lesebe­ trieb die gespeicherten Daten PD1, PD2, . . . . nacheinander aus dem Bildpufferspeicher 55 ausgegeben.
Wie vorstehend beschrieben, werden aus jeder der Speicher­ zellenanordnungen 801 bis 832 1 Bit der Daten gelesen, da der Bildspeicher 55 insgesamt 32 Ebenen umfaßt. Ein in Fig. 63 dargestelltes Stück der Daten PD1 entspricht nämlich 32 Bit der Daten. Daher wird bemerkt, daß durch ein Stück der Daten PD1 vier Pixel in der vertikalen Richtung auf dem in Fig. 62 dargestellten Bildschirm SCN dargestellt werden können.
In Reaktion auf eine Abnahme des Signals /RAS wird dann das Zeilenadreßsignal RA5 erhalten, und in Reaktion auf eine Abnahme des Signals /CAS wird das Spaltenadreßsignal CA1 erhalten. Der Adreßgenerator 840 stellt, mit dem Spaltenadreß­ signal CA1 beginnend, nacheinander die Adreßsignale CA1 bis CA8 (nicht dargestellt) bereit. Daher werden die Daten PD11 bis PD18 zum Darstellen der Pixel in der letzteren Hälfte des Makroblocks 860 nacheinander gelesen.
Auf diese Weise werden nur zwei Zeilenadreßsignale (das heißt RA4 und RA5) und nur zwei Spaltenadreßsignale (zweimal das Signal CA1) für die Pixel in einem Makroblock 860 benötigt, wobei die zum Adressieren benötigte Zeit im Vergleich zu dem in Fig. 58 dargestellten Beispiel verkleinert werden kann.
Wenn beispielsweise 25 ns zum Anlegen von einer Zeilenadresse sowie 200 ns zum Anlegen von einer Spaltenadresse CA und die Datenübertragung benötigt werden, dann erfordert eine Adressierung insgesamt 450 ns.
Ein anderes in Fig. 62 dargestelltes Pixelgebiet 862 stellt dasjenige Pixelgebiet dar, welches in der Einheit zur Bewegungsvoraussage bearbeitet wird. Um die Daten der Pixel im Gebiet 862 zu lesen, wird das Zeilenadreßsignal RA1 und dann das Spaltenadreßsignal CA11 angelegt. Daher werden aus der durch die Zeilenadresse RA1 festgelegten Zeile die Daten der Pixel im ersten Drittel des Pixelgebiets 862 nacheinander gelesen. Durch aufeinanderfolgendes Anlegen der Zeilenadreß­ signale RA2 und RA3 kann das Lesen der verbliebenen Gebiete im Pixelgebiet 862 ausgeführt werden.
ii) Drittes Beispiel (Fig. 64)
Fig. 64 stellt ein Zeitablaufdiagramm dar, welches ein anderes Beispiel des Betriebs des in Fig. 60 dargestellten Adreßgenerators 840 zeigt. Unter Bezugnahme auf Fig. 64 wird in diesem Beispiel das Spaltenadreßsignal CA (nicht darge­ stellt) vom Adreßgenerator 840 erzeugt, nachdem das Zeilen­ adreßsignal RA1 und das Spaltenadreßsignal CA1 in Reaktion auf das Systemtakt-Signal Φsc erhalten wurden. Zwei Spaltenadreß­ signale CA1 und CA2 sind nämlich an den Bildpufferspeicher 55 zu legen. Folglich werden aus der durch die Zeilenadresse RA1 festgelegten Zeile 32 Bit der durch die Spaltenadresse CA1 festgelegten Daten PD1 und werden 32 Bit der durch die Spaltenadresse CA2 festgelegten Daten PD2 gelesen.
Da jede der Daten PD1 und PD2 32 Bit der Daten umfassen, können 8 Pixel in der horizontalen Richtung auf dem Bildschirm SCN dargestellt werden.
iii) Viertes Beispiel (Fig. 65)
Fig. 65 stellt eine Pixelanordnung dar zur Beschreibung eines anderen Beispiels des Adressierens durch den in Fig. 60 ge­ zeigten Adreßgenerator 840. Unter Bezugnahme auf Fig. 65 werden die Daten für die Pixel in der horizontalen Richtung auf dem Bildschirm SCN durch das Zeilenadreßsignal festgelegt, wohingegen die Daten der Pixel in der vertikalen Richtung durch das Spaltenadreßsignal festgelegt werden.
Um beispielsweise die Pixeldaten des Makroblocks 863 fest­ zulegen, werden das Zeilenadreßsignal RA4 und dann das Spaltenadreßsignal CA1 angelegt. Der Adreßgenerator 840 erzeugt, beginnend mit dem Spaltenadreßsignal CA1, die Spaltenadressen CA1 bis CA8. Als Ergebnis werden die Daten der Pixel auf der linken Hälfte des Makroblocks 863 gelesen.
Nach dem Anlegen des Zeilenadreßsignals RA5 wird das Spalten­ adreßsignal CA1 angelegt. Der Adreßgenerator 840 erzeugt die Spaltenadreßsignale CA1 bis CA8. Daher werden die Daten der Pixel auf der rechten Hälfte des Makroblocks 863 gelesen.
Bei der Verarbeitung in der Einheit zur Bewegungsvoraussage wird eine gleichartige Adressierung für die Pixel im Pixel­ gebiet 865 bewirkt.
Auf diese Weise kann durch Anwenden des Bildpufferspeichers 55, welcher SDRAMs verwendet, wie im zweiten, dritten und vierten Beispiel dargestellt, die für die Adressierung notwendige Zeit verkleinert werden.
4) Adreßgenerator (Fig. 66)
Fig. 66 stellt ein Blockschaltbild des in Fig. 60 gezeigten Adreßgenerators 840 dar. Unter Bezugnahme auf Fig. 66 umfaßt der Adreßgenerator 840: ein vertikales Anfangsadreßregister 841, ein Bildgrößenregister 842, ein Seitengrößenregister 843, ein horizontales Anfangsadreßregister 844, ein horizontales Größenregister 845, Register 846 und 847, einen horizontalen Zähler 848, eine Inkrementiereinrichtung 849, eine Er­ mittlungsschaltung für das rechte Ende 850, eine Ausgangs­ steuerschaltung 451, Auswahleinrichtungen 852 und 853, einen Addierer 854 und eine Auswahleinrichtung 855.
Es wird vorausgesetzt, daß die Register 841 und 845 Anfangs­ daten entsprechend halten. Die im Register 841 gehaltene Anfangsadresse wird durch die Auswahleinrichtung 852, den Addierer 854 und die Auswahleinrichtung 855 als Zeilenadresse ausgegeben. Indessen wird die Anfangsadresse durch die Auswahleinrichtung 852 und den Addierer 854 in die Register 846 und 847 übertragen und darin gehalten.
Die im Register 844 gehaltene horizontale Ausgangsadresse wird durch die Inkrementiereinrichtung 849 zur Ausgangs-Steuer­ schaltung 851 für die Bitbreiten-Steuerung übertragen. Die Ausgangs-Steuerschaltung 851 stellt eine Spaltenadresse zur Verfügung, welche durch die Auswahleinrichtung 855 ausgegeben wird.
Die Inkrementiereinrichtung 859 inkrementiert die aus dem Register für die horizontale Ausgangsadresse 844 zugeführte horizontale Adresse aller 8 Zyklen des Systemuhr-Signals Φsc. Wenn die horizontale Adresse die Seitengröße überschreitet, dann inkrementiert die Inkrementiereinrichtung 849 die Zeilen­ adresse.
Die Daten des Registers 847 und die Datenangabe "1" werden dem Addierer 854 zugeführt, wobei das Additionsergebnis als Zeilenadresse vorgesehen wird und das Ergebnis ferner in das Register 847 überführt wird.
Wenn das rechte Ende der übertragenen Daten durch die Ermittlungsschaltung für das rechte Ende 850 ermittelt ist, dann werden die im Register 846 gehaltenen Daten und die Bildgrößendaten zum Addierer 454 durch die Auswahleinrich­ tungen 852 und 853 übertragen. Die das Additionsergebnis angebenden Daten werden als Zeilenadresse durch die Auswahl­ einrichtung 855 ausgegeben und ferner in die Register 846 und 847 übertragen.
Fig. 67 stellt die Adressen-Seite-Entsprechung dar, welche die Beziehung zwischen den Zeilen- und Spaltenadressen, die vom in Fig. 66 dargestellten Adreßgenerator 840 vorgesehen werden, und den Seiten zeigt. Fig. 68 stellt indessen die Seiten-Pixel-Entsprechung dar, welche die Beziehung zischen der in Fig. 67 gezeigten Seite und den Pixeln auf dem Bild­ schirm zeigt. Der in Fig. 60 dargestellte Bildpufferspeicher 55 speichert die Daten in der in Fig. 67 dargestellten Weise. Der Adreßgenerator 840 weist die im Bildpufferspeicher 55 gespeicherten Daten in der in Fig. 68 dargestellten Weise zu. Der in Fig. 66 dargestellte Adreßgenerator erzeugt das Zeilenadreßsignal RA und das Spaltenadreßsignal CA, derart daß das Adressieren in der in den Fig. 67 und 68 gezeigten Weise ausgeführt werden kann.
5) Verfahren zum Abbilden
Im folgenden wird ein Verfahren zum Abbilden von jeder Pixel- Datenangabe des Bildschirms auf den Bildpufferspeicher beschrieben werden. Die nachstehend beschriebenen Verfahren können beim in Fig. 1 dargestellten Bildpufferspeicher 51 verwendet werden.
Zuerst wird ein Abbildungsverfahren beschrieben werden, welches eine Verkleinerung der Anzahl von Datenübertragungen erlaubt. Fig. 72 zeigt eine Darstellung eines ersten Verfahrens zum Abbilden von Pixeldaten des Bildschirms auf den Bildpufferspeicher. Unter Bezugnahme auf Fig. 72 wird das Datengebiet 861 mit zwei Pixeln in Längs- und Breitenrichtung als eine Einheit behandelt und eine Adresse des Bildpuffer­ speichers zugewiesen. Insbesondere werden entsprechend einer durch das Zeilenadreßsignal RA und das Spaltenadreßsignal CA spezifizierten Adresse Daten der vier im Datengebiet 861 enthaltenen Pixel im Bildpuffer gespeichert oder werden die Daten durch Festlegen der Adresse aus dem Bildpufferspeicher gelesen und die Daten zu und aus jedem der Blöcke durch den Pixeldatenbus übertragen. Wenn beispielsweise unter Bezugnahme auf Fig. 72 ein Datengebiet 862, das 8 Pixel in der horizontalen Richtung und 8 Pixel in der vertikalen Richtung umfaßt, zur Verwendung bei der Ermittlung des Bewegungsvektors übertragen wird, dann können unter Verwendung des Datengebiets 861 als Übertragungseinheit alle Pixeldaten im Datengebiet 862 durch 5 (horizontale)×5 (vertikale) = 25 Übertragungs­ operationen ubertragen werden. Im Vergleich zu dem Beispiel der Fig. 58, bei welchem ein aus vier Pixeln in der horizontalen Richtung gebildetes Datengebiet als Übertragungs­ einheit verwendet wird, kann die Anzahl der Übertragungen um zwei verkleinert werden, und das Datengebiet 863, welches keine Übertragung verlangt, kann verkleinert werden. Daher kann durch Verwenden des vorstehend beschriebenen Abbildungs­ verfahrens die Anzahl der Übertragungen verkleinert werden, und die Bilddaten können mit hoher Geschwindigkeit übertragen werden.
Eine Übertragung eines aus 8 Pixeln in der horizontalen Richtung und 8 Pixeln in der vertikalen Richtung gebildeten Datengebiets unter Verwendung des vorstehend beschriebenen Abbildungsverfahrens wird beschrieben werden. Die Fig. 73 bis 76 stellen erste bis vierte Darstellungen der Übertragung des Datengebiets dar, welches aus horizontalen 8 Pixeln und vertikalen 8 Pixeln gebildet wird. Wenn ein Datengebiet 864 zu übertragen ist, welches aus 8 Pixeln in der horizontalen Richtung und 8 Pixeln in der vertikalen Richtung gebildet wird, dann gibt es in Abhängigkeit von der Position des Datengebiets 864 vier unterschiedliche Arten, die in den Fig. 73 bis 76 dargestellt sind.
In dem in Fig. 73 dargestellten Beispiel beträgt die notwendige Anzahl von Übertragungen: 4 (horizontale)×4 (vertikale) = 16, wenn jede Pixeldatenangabe im Datengebiet 864 unter Verwendung eines zwei Pixel in horizonta 13793 00070 552 001000280000000200012000285911368200040 0002004408522 00004 13674ler und vertikaler Richtung umfassenden Datengebiets als Übertragungs­ einheit zu übertragen ist. Im Beispiel der Fig. 74 und 75 beträgt die notwendige Anzahl der Übertragungen 20. Im Beispiel der Fig. 76 sind 25 Übertragungen erforderlich. Daher beträgt die zum Übertragen des Datengebiets 864 notwendige Durchschnittsanzahl von Übertragungen 20, 25. Im Vergleich zu der in Fig. 58 dargestellten Übertragung unter Verwendung von vier Pixeln in der horizontalen Richtung als Einheit kann die Anzahl der Übertragungen um etwa zwei ver­ kleinert werden.
Ein Abbildungsverfahren wird beschrieben werden, bei welchem ein Datengebiet aus vier Pixeln in der horizontalen Richtung und zwei Pixeln in der vertikalen Richtung als ein Datenstück gebildet wird und ihm 1 Adresse zugewiesen ist. Fig. 77 zeigt eine zweite Darstellung, welche ein Verfahren zum Abbilden der Bilddaten des Bildschirms auf den Bildpufferspeicher dar­ stellt. Wie in Fig. 77 gezeigt, wird 1 Adresse des Bild­ pufferspeichers zum Datengebiet 865 übertragen, welches aus vier Pixeln in der horizontalen Richtung und zwei Pixeln in der vertikalen Richtung als ein Datenstück ausgebildet ist. Zu dieser Zeit beträgt die Anzahl der benötigten Datenübertra­ gungen: 3 (horizontale)×5 (vertikale) = 15, wenn ein 9 Pixel in der horizontalen Richtung und 9 Pixel in der vertikalen Richtung umfassendes Datengebiet 866 unter Verwendung des Datengebiets 865 als Übertragungseinheit zu übertragen ist. Im Vergleich zu dem in Fig. 58 dargestellten Beispiel, bei welchem ein 8 Pixel in der horizontalen Richtung umfassendes Datengebiet als Einheit zur Übertragung verwendet wird, kann die Anzahl der Übertragungen um drei verkleinert werden, und das Gebiet 867, welches keine Datenübertragung verlangt, kann verkleinert werden.
Ein erstes Verfahren zum Abbilden eines ersten und eines zweiten Farbdifferenzbildes auf den Bildpufferspeicher wird beschrieben werden. Fig. 78 zeigt eine Darstellung des ersten Verfahrens zum Abbilden der ersten und der zweiten Farb­ differenz-Pixeldaten auf den Bildpufferspeicher. Dabei bedeu­ ten die ersten Farbdifferenz-Pixeldaten die Farbdifferenz- Pixeldaten Cb, welche aus dem RGB-Format in das YUV-Format umgewandelt worden sind, und die zweiten Farbdifferenz- Pixeldaten bedeuten die Farbdifferenz-Pixeldaten Cr, die gleichartig umgewandelt worden sind. In Fig. 78 wird das aus vier Pixeln in der horizontalen Richtung gebildete Datengebiet 868 als ein Datenstück betrachtet und ihm 1 Adresse des Bild­ pufferspeichers zugewiesen. Erste Farbdifferenz-Pixeldaten 873 und zweite Farbdifferenz-Pixeldaten 869 werden zu vier Pixeln im Anschluß an vier Pixel in der horizontalen Richtung ab­ wechselnd abgebildet. Die ersten Farbdifferenz-Pixeldaten 873 und die zweiten Farbdifferenz-Pixeldaten 869 sind miteinander korreliert. Bei der Ermittlung des Bewegungsvektors müssen beispielsweise die ersten und die zweiten Farbdifferenz-Pixel­ daten 873 und 869 gleichzeitig verarbeitet werden, so daß die Datenübertragung gleichzeitig durchgeführt wird. Daher müssen alle Daten im Datengebiet 871 übertragen werden, wenn das erste Farbdifferenz-Pixeldaten-Gebiet 872 und das zweite Farbdifferenz-Pixeldaten-Gebiet 870 zu übertragen sind. Da das erste Farbdifferenz-Pixeldaten-Gebiet 872 und das zweite Farbdifferenz-Pixeldaten-Gebiet 870 abwechselnd abgebildet wird, können in diesem Fall die Farbdifferenz-Pixeldaten des Datengebiets 871 durch eine Adressenerzeugung entsprechend übertragen werden, so daß die für die Berechnung zur Adressen­ erzeugung benötigte Zeit verkleinert werden kann und die Bilddaten mit hoher Geschwindigkeit verarbeitet werden können.
Ein zweites Verfahren zum Abbilden der ersten und der zweiten Farbdifferenz-Pixeldaten auf den Bildpufferspeicher wird beschrieben werden. Fig. 79 zeigt eine Darstellung des zweiten Verfahrens zum Abbilden der ersten und der zweiten Farbdifferenz-Pixeldaten auf den Bildpufferspeicher. In Fig. 79 wird ein aus zwei Pixeln in der horizontalen Richtung und zwei Pixeln in der vertikalen Richtung gebildetes Datengebiet 874 als ein Datenstück betrachtet und zugewiesen. Erste Farbdifferenz-Pixeldaten 875 und zweite Farbdifferenz-Pixel­ daten 879 werden zu zwei Pixeln im Anschluß an zwei Pixel in der horizontalen Richtung abwechselnd abgebildet. In diesem Beispiel werden alle Daten im Datengebiet 877 unter Verwendung des Datengebiets 874 als Übertragungseinheit übertragen, wenn das erste Farbdifferenz-Pixeldaten-Gebiet 878 und das zweite Farbdifferenz-Pixeldaten-Gebiet 876 zu übertragen sind. Daher können die Daten durch die Erzeugung von einer Adresse und durch eine kleinere Anzahl von Datenübertragungen übertragen werden.
Ein drittes Verfahren zum Abbilden der ersten und der zweiten Farbdifferenz-Pixeldaten auf den Bildpufferspeicher wird be­ schrieben werden.
Fig. 80 zeigt eine Darstellung des dritten Verfahrens zum Abbilden der ersten und der zweiten Farbdifferenz-Pixeldaten auf den Bildpufferspeicher. Im Beispiel der Fig. 80 wird ein aus vier Pixeln in der horizontalen Richtung gebildetes Daten­ gebiet als ein Datenstück betrachtet, und demselben wird eine Adresse zugewiesen. Die ersten Farbdifferenz-Pixeldaten und die zweiten Farbdifferenz-Pixeldaten sind zu zwei Pixeln im Anschluß an zwei Pixel in der horizontalen Richtung ab­ wechselnd angeordnet. Daher sind in dem mit einer Adresse versehenen Datengebiet der vier Pixel in der horizontalen Richtung zwei Pixel der ersten Farbdifferenz-Pixeldaten 880 und zwei Pixel der zweiten Farbdifferenz-Pixeldaten 881 enthalten. Wenn das erste Farbdifferenz-Pixeldaten-Gebiet 884 und das zweite Farbdifferenz-Pixeldaten-Gebiet 882 zu übertragen sind, dann ist es nur erforderlich, jede der Daten­ angaben im Datengebiet 883 durch Erzeugung von einer Adresse zu übertragen. Zu dieser Zeit würde die Anzahl der Über­ tragungen betragen: 5 (horizontale)×9 (vertikale) = 45. Wenn die ersten Farbdifferenz-Pixeldaten und die zweiten Farb­ differenz-Pixeldaten auf den Bildpufferspeicher separat abgebildet werden und durch Verwenden des vier Pixel in der horizontalen Richtung umfassenden Datengebiets als Über­ tragungseinheit in der gleichartigen vorstehend beschriebenen Weise übertragen werden, dann beträgt die Anzahl der not­ wendigen Datenübertragungen für die beispielsweise in Fig. 80 gezeigten ersten und zweiten Farbdifferenz-Pixeldaten 54, und daher kann durch das dritte Abbildungsverfahren die Anzahl der Übertragungen um neun verkleinert werden.
Ein viertes Verfahren zum Abbilden der ersten und zweiten Far­ bdifferenz-Pixeldaten auf den Bildpufferspeicher wird be­ schrieben werden. Fig. 81 zeigt eine Darstellung des vierten Verfahrens zum Abbilden der ersten und der zweiten Farb­ differenz-Pixeldaten auf den Bildpufferspeicher. Wie in Fig. 81 gezeigt, wird ein aus vier Pixeln in der horizontalen Rich­ tung und aus zwei Pixeln in der vertikalen Richtung gebildetes Datengebiet als ein Datenstück betrachtet, und ihm wird eine Adresse zur Abbildung auf den Bildpufferspeicher zugewiesen. Die ersten Farbdifferenz-Pixeldaten und die zweiten Farb­ differenz-Pixeldaten sind zu zwei Pixeln im Anschluß an zwei Pixel in der horizontalen Richtung abwechselnd angeordnet. Daher umfassen in dem als ein Datenstück abgebildeten Daten­ gebiet die ersten Farbdifferenz-Pixeldaten 885 zwei Pixel in der horizontalen Richtung und zwei Pixel in der vertikalen Richtung, ebenso wie die zweiten Farbdifferenz-Pixeldaten 886 zwei Pixel in der horizontalen Richtung und zwei Pixel in der vertikalen Richtung enthalten. Wenn die ersten Farbdifferenz- Pixeldaten 889 und die zweiten Farbdifferenz-Pixeldaten 887 zu übertragen sind, dann ist es erforderlich, jede der Daten­ angaben im Datengebiet 888 unter Verwendung des 4 Pixel in der horizontalen Richtung und zwei Pixel in der vertikalen Richtung umfassenden Datengebiets als Übertragungseinheit zu übertragen. Zu dieser Zeit können die Daten durch die Erzeugung von einer Adresse übertragen werden, da die ersten Farbdifferenz-Pixeldaten und die zweiten Farbdifferenz- Pixeldaten abwechselnd angeordnet sind, und die Anzahl der Übertragungen kann verkleinert werden, da ein rechteckiges Datengebiet als Übertragungseinheit verwendet wird.
Die Wirkungen des ersten bis vierten Verfahrens zum vorstehend beschriebenen Abbilden der ersten und zweiten Farbdifferenz- Pixeldaten auf den Bildpufferspeicher werden erläutert. Ein Betrieb des in Fig. 9 dargestellten Prozessors zur Gesamt­ steuerung beim Codieren der Zwei-Weg-Voraussage wird beispiel­ haft beschrieben werden. Fig. 82 zeigt den Betrieb, der im Prozessor zur Gesamtsteuerung beim Codieren der Zwei-Weg- Voraussage ausgeführt wird.
Unter Bezugnahme auf Fig. 82 wird in einem Schritt 891 in einem Eingangsbild-Schreibprozeß eine erste Adresse erzeugt. Die Erzeugung der Adresse wird für Helligkeits-Pixeldaten Y, erste Farbdifferenz-Pixeldaten Cb und zweite Farbdifferenz- Pixeldaten Cr ausgeführt. Diese Daten werden aus der Steuer­ einheit 2 in den Bildpufferspeicher 51 in der in Fig. 1 dar­ gestellten Vorrichtung zur Bilddatenverarbeitung übertragen.
In einem Schritt 892 wird beim Lesen zur Bewegungsvoraussage die Erzeugung der zweiten Adresse ausgeführt. Dieser Prozeß wird für die Helligkeits-Pixeldaten Y ausgeführt, und die Daten werden aus dem Bildpufferspeicher 51 zur Steuereinheit 2 übertragen.
In einem Schritt 893 wird dann beim Lesen des Bereichs der Bewegungssuche die Erzeugung der dritten Adresse ausgeführt. Dabei wird der Prozeß für die Helligkeits-Pixeldaten Y ausge­ führt, und die Daten werden aus dem Bildpufferspeicher 51 zur Einheit zur Bewegungsvoraussage 41 übertragen.
In einem Schritt 984 wird dann der Codiermodus festgelegt. Danach wird beim Lesen des Bildes für die Vorwärtsvoraussage in einem Schritt 895 die Erzeugung der vierten Adresse ausge­ führt. Dabei wird der Prozeß für drei unterschiedliche Pixel­ daten Y, Cb und Cr ausgeführt, und die Daten werden aus dem Bildpufferspeicher 51 zur Pixelverarbeitungseinheit 3 über­ tragen.
In einem Schritt 869 wird beim Lesen des Bildes für die Rück­ wärtsvoraussage die Erzeugung der fünften Adresse ausgeführt. Dabei wird der Prozeß an drei unterschiedlichen Pixeldaten Y, Cb und Cr ausgeführt, und die Daten werden aus dem Bildpuffer­ speicher 51 zur Pixelverarbeitungseinheit 3 übertragen.
In einem Schritt 893 wird beim Lesen des zu codierenden Bildes die Erzeugung der sechsten Adresse ausgeführt. Dabei wird der Prozeß an drei unterschiedlichen Pixeldaten Y, Cb und Cr ausgeführt, und die Daten werden aus dem Bildpufferspeicher 51 zur Pixelverarbeitungseinheit 3 übertragen.
Die nachstehende Tabelle zeigt das Ergebnis eines Vergleichs zwischen den Ausführungsformen, welche die in den Fig. 78 bis 81 dargestellten ersten bis vierten Abbildungsverfahren verwenden, und einem Vergleichsbeispiel hinsichtlich der Anzahl von vorstehend beschriebenen Operationen, die im Prozessor zur Gesamtsteuerung ausgeführt werden. Im Ver­ gleichsbeispiel werden drei Typen von Pixeldaten Y, Cb und Cr auf den Bildpufferspeicher 51 separat abgebildet und Adressen für alle Pixeldaten erzeugt. Das Bezugszeichen C in nach­ stehender Tabelle 1 bezieht sich im allgemeinen auf die ersten und zweiten Farbdifferenz-Pixeldaten Cb und Cr.
Tabelle 1
Wie aus der Tabelle zu ersehen ist, ist die Anzahl der Adressen-Erzeugungen bei den Ausführungsformen um vier ver­ kleinert. Insbesondere beim Prozeß zur Erzeugung einer Adresse im Vergleichsbeispiel ist es notwendig, die Operationen an jedem der drei unterschiedlichen Typen von Pixeldaten Y, Cb und Cr auszuführen und die entsprechenden Daten in den Registern der in Fig. 9 dargestellten Steuereinheit zur Bilddatenübertragung 15 abzulegen. Indessen können bei der vorstehend beschriebenen Ausführungsform die Gesamtzahl von vier Operationen und die zum Belegen der Register benötigte Zeit verkleinert werden, da die Adressen für die ersten Farbdifferenz-Pixeldaten Cb und die zweiten Farbdifferenz- Pixeldaten Cr gemeinsam erzeugt werden. Im Prozessor zur Gesamtsteuerung müssen verschiedene Prozesse ausgeführt werden, wie beispielsweise die Steuerung der Codemenge, ver­ schiedene Bestimmungen bezüglich des Codierens und andere anwenderspezifische Operationen. Wenn daher die Anzahl der Operationen durch diese verschiedenen Operationen zunimmt, dann hat die vorstehend beschriebene Reduzierung bei der Adreßberechnung eine wesentliche Auswirkung auf das Codieren auf Echtzeitbasis.

Claims (36)

1. Vorrichtung zur Bilddatenverarbeitung, umfassend:
eine Steuereinrichtung (11) zum Steuern einer Pipelinever­ arbeitung von einer Mehrzahl von vorbestimmten Prozessen zur Bilddatenkompression und/oder Bilddatenexpansion und eine Bildverarbeitungseinrichtung (12) zum Ausführen eines vorbestimmten Prozesses der Mehrzahl von vorbestimmten Prozessen in Reaktion auf ein aus der Steuereinrichtung ange­ legtes Steuersignal, wobei die Steuereinrichtung umfaßt:
eine Einrichtung zur Steuerung der Pipelineverarbeitung (11) zum Steuern der Pipelineverarbeitung einer diskreten Kosinus­ umwandlung einer Quantisierung und einer Verarbeitung von Daten variabler Länge; und die Bildverarbeitungseinrichtung umfaßt:
eine Einrichtung zur Verarbeitung von Daten einer variablen Länge (12) zum Ausführen der Verarbeitung von Daten variabler Länge in Reaktion auf ein aus der Einrichtung zur Steuerung der Pipelineverarbeitung angelegtes Steuersignal.
2. Bilddatenvorrichtung nach Anspruch 1, ferner umfassend:
eine Einrichtung zur Pixeldatenspeicherung (51) zum Speichern von zu komprimierenden Pixeldaten;
einen Pixeldatenbus (PB) zum Übertragen der in der Einrichtung zur Pixeldatenspeicherung gespeicherten Pixeldaten;
eine Pixelcode-Ausgabeeinrichtung (3) zum Ausführen der diskreten Kosinusumwandlung und der Quantisierung an den Pixeldaten, die durch den Pixeldatenbus übertragen werden, um einen Pixelcode auszugeben; und
einen Pixelcodebus (CB) zum Übertragen des aus dem Pixelcode­ ausgang ausgegebenen Pixelcodes; bei welcher die Einrichtung zur Verarbeitung von Daten einer variablen Länge umfaßt:
eine Verarbeitungseinrichtung zum Codieren von Daten mit variabler Länge (12) zum Ausführen des Codierens mit variabler Länge an dem durch den Pixelcodebus übertragenen Pixelcode und Vorsehen eines Codes variabler Länge; und bei welcher die Einrichtung zur Steuerung der Pipelineverarbeitung die Pipelineverarbeitung bezüglich des Pixeldatenbusses, der Pixelcode-Ausgabeeinrichtung, des Pixelcodebusses und der Verarbeitungseinrichtung zum Codieren von Daten mit variabler Länge steuert.
3. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 1, ferner umfassend:
eine Einrichtung zum Speichern des Codes variabler Länge (51) zum Speichern eines komprimierten Codes variabler Länge; und
einen Bus des Codes variabler Länge (PB) zum Übertragen des in der Einrichtung zum Speichern des Codes variabler Länge gespeicherten Codes variabler Länge; bei welcher die Einrichtung zur Verarbeitung von Daten einer variablen Länge umfaßt:
eine Verarbeitungseinrichtung zum Decodieren mit variabler Länge (12) zum Ausführen eines Decodierens mit variabler Länge an dem Code variabler Länge, welcher durch den Bus des Codes variabler Länge zum Ausgeben eines Pixelcodes übertragen wird; wobei die Vorrichtung zur Bilddatenverarbeitung ferner umfaßt:
einen Pixelcodebus (CB) zum Übertragen der Pixelcodeausgabe aus der Verarbeitungseinrichtung zum Decodieren mit variabler Länge; und
eine Pixeldaten-Ausgabeeinrichtung (3) zum Ausführen einer inversen Quantisierung und einer inversen diskreten Kosinus­ umwandlung an dem Pixelcode, der zum Ausgeben von expandierten Pixeldaten durch den Pixelcodebus übertragen wird; bei welcher die Einrichtung zur Steuerung der Pipelineverarbeitung die Pipelineverarbeitung bezüglich des Busses des Codes variabler Länge, der Verarbeitungseinrichtung zum Decodieren mit variabler Länge, des Pixelcodebusses und der Pixeldaten- Ausgabeeinrichtung steuert.
4. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 1, ferner umfassend:
eine Pixelverarbeitungseinrichtung (3) zum Ausführen der diskreten Kosinusumwandlung und der Quantisierung an den Pixeldaten in einem Datenkompressionsmodus und zum Ausführen der inversen Quantisierung und der inversen diskreten Kosinus­ umwandlung an einem Pixelcode in einem Datenexpansionsmodus, bei welcher die Einrichtung zur Verarbeitung von Daten einer variablen Länge ferner umfaßt:
eine Verarbeitungseinrichtung zum codieren/Decodieren mit variabler Länge (12) zum Ausführen des Codierens mit variabler Länge am Pixelcode im Datenkompressionsmodus und zum Ausführen des Decodierens mit variabler Länge am Code variabler Länge im Datenexpansionsmodus; wobei die Vorrichtung zur Bilddatenverarbeitung ferner umfaßt:
einen ersten Datenbus (PB) zum Übertragen von Bilddaten und eines Codes variabler Länge zwischen der Pixelverarbeitungs­ einrichtung und der Verarbeitungseinrichtung zum Codieren/De­ codieren mit variabler Länge; und
einen zweiten Datenbus (CB) zum Übertragen des Pixelcodes zwischen der Pixelverarbeitungseinrichtung und der Verarbei­ tungseinrichtung zum Codieren/Decodieren mit variabler Länge; bei welcher die Einrichtung zur Steuerung der Pipelineverarbeitung die Pipelineverarbeitung bezüglich der Pixelverarbeitungs­ einrichtung, der Verarbeitungseinrichtung zum Codieren/De­ codieren mit variabler Länge und des ersten und des zweiten Datenbusses steuert.
5. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 4, ferner umfassend:
eine mit dem ersten Datenbus verbundene Speichereinrichtung (51) zum Speichern der zu komprimierenden Pixeldaten und eines komprimierten Codes variabler Länge; sowie
eine mit dem ersten Datenbus verbundene Speichereinrichtung zur Eingabe/Ausgabe der Bilddaten (81) zum Speichern extern eingegebener Bilddaten und extern auszugebender Bilddaten.
6. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 4, ferner umfassend:
eine mit dem ersten Datenbus verbundene erste Verarbeitungs­ einrichtung zur Bewegungsvoraussage (43) zum Ausführen einer Bewegungsvoraussage in Vorwärtsrichtung; und
eine mit dem ersten Datenbus verbundene zweite Verarbeitungs­ einrichtung zur Bewegungsvoraussage (44) zum Ausführen einer Bewegungsvoraussage in Rückwärtsrichtung.
7. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 6, ferner umfassend:
eine mit dem ersten Datenbus verbundene erste Bilddaten- Speichereinrichtung (52) zum Speichern von Bilddaten für die Bewegungsvoraussage in der Vorwärtsrichtung; und
eine mit dem ersten Datenbus verbundene zweite Bilddaten- Speichereinrichtung (53) zum Speichern von Bilddaten für die Bewegungsvoraussage in der Rückwärtsrichtung.
8. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 4, ferner umfassend:
eine mit dem ersten Datenbus verbundene Verarbeitungs­ einrichtung zur Bewegungsvoraussage (46) zum Ausführen der Bewegungsvoraussage; bei welcher die Einrichtung zur Steuerung der Pipelineverarbeitung ferner eine direkt mit der Verarbeitungseinrichtung zur Bewegungs­ voraussage verbundene Einrichtung zur Steuerung der Bewegungs­ voraussage (13) zum Steuern des Betriebs der Verarbeitungsein­ richtung zur Bewegungsvoraussage umfaßt.
9. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 1, ferner umfassend:
eine erste Pixeldaten-Speichereinrichtung (51) zum Speichern von zu komprimierenden Pixeldaten;
einen ersten Pixeldatenbus (PB) zum Übertragen der in der ersten Pixeldaten-Speichereinrichtung gespeicherten Pixel­ daten;
eine Bildverarbeitungseinrichtung (33), welche die durch den ersten Pixeldatenbus übertragenen Pixeldaten empfängt, um unter Verwendung der übertragenen Pixeldaten Referenzdaten zur Bewegungsvoraussage zu gewinnen, und welche ein erstes und ein zweites Datenport (P1, P2) zum Ausgeben der Referenzdaten zur Bewegungsvoraussage aufweist;
einen zweiten Pixeldatenbus (LDB) zum Übertragen der Referenz­ daten zur Bewegungsvoraussage, welche aus dem zweiten Daten­ port der Bildverarbeitungseinrichtung ausgegeben werden;
eine zweite Pixeldaten-Speichereinrichtung (56) zum Speichern der durch den zweiten Bus übertragenen Referenzdaten zur Bewegungsvoraussage; und
eine Verarbeitungseinrichtung zur Bewegungsvoraussage (47) zum Ausführen der Bewegungsvoraussage durch Verwenden der Referenzdaten zur Bewegungsvoraussage, welche in der zweiten Pixeldaten-Speichereinrichtung gespeichert sind und durch den zweiten Pixeldatenbus zum Erzeugen eines Bewegungsvektors übertragen werden; bei welcher die Einrichtung zur Steuerung der Pipelineverarbeitung eine Einrichtung (23) zum Steuern der Pipelineverarbeitung bezüglich des ersten und des zweiten Pixeldatenbusses, der Pixelverarbeitungseinrichtung und der Verarbeitungseinrichtung zur Bewegungsvoraussage umfaßt.
10. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 9, bei welcher die Einrichtung zur Steuerung der Pipelineverarbeitung ferner eine Systemsteuereinrichtung (114) umfaßt, welche ein Aus­ gangssteuersignal des ersten und des zweiten Datenports der Pixelverarbeitungseinrichtung ausgibt.
11. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 9, bei welcher
die Pixelverarbeitungseinrichtung eine erste Pixelverarbei­ tungseinrichtung (34) umfaßt, welche die durch den ersten Pixeldatenbus übertragenen Pixeldaten zum Gewinnen von Referenzdaten zur Bewegungsvoraussage unter Verwendung der übertragenen Pixeldaten empfängt und welche ein drittes Datenport (P3) zum Ausgeben der Referenzdaten zur Bewegungs­ voraussage sowie eine Mehrzahl von vierten Datenports (P4, P5) zum Verteilen und Ausgeben der Referenzdaten zur Bewegungs­ voraussage aufweist;
der zweite Pixeldatenbus eine Mehrzahl von dritten Pixeldaten­ bussen (LDB1, LDB2) umfaßt, welche analog zu den vierten Datenports zum Übertragen der aus den vierten Datenports ausgegebenen Referenzdaten zur Bewegungsvoraussage vorgesehen sind;
die zweite Pixeldaten-Speichereinrichtung eine Mehrzahl von dritten Pixeldaten-Speichereinrichtungen (56a, 56b) umfaßt, welche analog zu den vierten Datenports zum Speichern der durch die dritten Pixeldatenbusse übertragenen Referenzdaten zur Bewegungsvoraussage vorgesehen sind;
die Verarbeitungseinrichtung zur Bewegungsvoraussage eine Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungs­ voraussage (47a, 47b) umfaßt, die analog zu den vierten Datenports zum Ausführen der Bewegungsvoraussage unter Verwendung der Referenzdaten zur Bewegungsvoraussage vorge­ sehen sind, welche in den dritten Pixeldaten-Speichereinrich­ tungen gespeichert sind und durch die dritten Pixeldatenbusse übertragen werden; und bei welcher
die Einrichtung zur Steuerung der Pipelineverarbeitung eine Einrichtung zum Steuern der Pipelineverarbeitung bezüglich des ersten Pixeldatenbusses, der ersten Pixelverarbeitungseinrich­ tung, der Mehrzahl von dritten Pixeldatenbussen und der Mehr­ zahl von ersten Verarbeitungseinrichtungen zur Bewegungs­ voraussage umfaßt.
12. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 11, welche ferner
einen Adreßbus umfaßt, der mit der Mehrzahl der zweiten Pixel­ daten-Speichereinrichtungen verbunden ist; bei welcher die erste Pixelverarbeitungseinrichtung eine zweite Pixelver­ arbeitungseinrichtung (34) zum verteilen und zum Ausgeben der Referenzdaten zur Bewegungsvoraussage gemäß einem Typ der Referenzdaten zur Bewegungsvoraussage aus der Mehrzahl von vierten Datenports (P4, P5) umfaßt;
die Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungsvoraussage eine Mehrzahl von zweiten Verarbeitungs­ einrichtungen zur Bewegungsvoraussage (47a, 47b) zum Erzeugen eines Bewegungsvektors gemäß dem Typ der Referenzdaten zur Bewegungsvoraussage umfaßt; und bei welcher
die Einrichtung zur Steuerung der Pipelineverarbeitung eine Einrichtung (25) zum Steuern der Pipelineverarbeitung bezüglich des ersten Pixeldatenbusses, der zweiten Pixelver­ arbeitungseinrichtung, der Mehrzahl von dritten Pixelbussen, des Adreßbusses und der Mehrzahl von zweiten Verarbeitungs­ einrichtungen zur Bewegungsvoraussage umfaßt.
13. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 9, bei welcher
die Pixelverarbeitungseinrichtung eine Mehrzahl von ersten Pixelverarbeitungseinrichtungen (34a, 34b) umfaßt, welche die durch den ersten Pixeldatenbus über­ tragenen Pixeldaten zum Gewinnen von Referenzdaten unter­ schiedlichen Typs zur Bewegungsvoraussage unter Verwendung der übertragenen Pixeldaten empfangen und welche ein drittes Datenport zum Ausgeben der Referenzdaten zur Bewegungsvoraus­ sage und ein viertes Datenport zum Ausgeben der Referenzdaten zur Bewegungsvoraussage gemäß dem Typ der Referenzdaten zur Bewegungsvoraussage aufweisen;
der zweite Pixeldatenbus eine Mehrzahl von dritten Pixeldaten­ bussen (LDB1, LDB2) umfaßt, welche der ersten Pixelver­ arbeitungseinrichtung entsprechend zum Übertragen der aus dem vierten Datenport ausgegebenen Referenzdaten zur Bewegungs­ voraussage vorgesehen sind;
die zweite Pixeldaten-Speichereinrichtung eine Mehrzahl von dritten Pixeldaten-Speichereinrichtungen (56c, 56d) umfaßt, welche der ersten Pixelverarbeitungseinrichtung entsprechend zum Speichern der durch den dritten Pixeldatenbus übertragenen Referenzdaten zur Bewegungsvoraussage vorgesehen sind;
die Verarbeitungseinrichtung zur Bewegungsvoraussage eine Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungs­ voraussage (34a, 34b) umfaßt, die der ersten Pixelverarbei­ tungseinrichtung entsprechend zum Ausführen der Bewegungs­ voraussage unter Verwendung der Referenzdaten zur Bewegungs­ voraussage vorgesehen sind, welche in der dritten Pixeldaten- Speichereinrichtung gespeichert sind und zum Erzeugen eines Bewegungsvektors durch den dritten Pixeldatenbus übertragen werden; und bei welcher
die Pipelineverarbeitungseinrichtung eine Einrichtung (26) zum Steuern der Pipelineverarbeitung bezüglich des ersten Pixeldatenbusses, der Mehrzahl von ersten Pixelverarbeitungs­ einrichtungen, der Mehrzahl von dritten Pixeldatenbussen und der Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungsvoraussage umfaßt.
14. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 11, bei welcher die Mehrzahl der dritten Pixeldaten-Speichereinrichtungen unterschiedliche Referenzdaten zur Bewegungsvoraussage in Abhängigkeit davon speichert, ob die Daten für eine Helligkeitskomponente oder eine Farbdifferenzkomponente vorgesehen sind.
15. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 12, bei welcher die Mehrzahl von dritten Pixeldaten-Speichereinrichtungen unterschiedliche Referenzdaten zur Bewegungsvoraussage in Abhängigkeit davon speichert, ob die Daten für eine Helligkeitskomponente oder eine Farbdifferenzkomponente vorgesehen sind.
16. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 13, bei welcher die Mehrzahl von dritten Pixeldaten-Speichereinrichtungen unterschiedliche Referenzdaten zur Bewegungsvoraussage in Abhängigkeit davon speichert, ob die Daten für eine Helligkeitskomponente oder eine Farbdifferenzkomponente vorgesehen sind.
17. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 9, bei welcher die Pixelverarbeitungseinrichtung umfaßt:
eine Bildverarbeitungseinrichtung (313, 314) zum Ausführen der diskreten Kosinusumwandlung und/oder der inversen diskreten Kosinusumwandlung sowie der Quantisierung und/oder der inversen Quantisierung zur Bilddatenkompression und/oder Bilddatenexpansion;
wenigstens zwei Schnittstelleneinrichtungen (318a, 318b), die nur für Bilddaten vorgesehen sind;
Speichereinrichtungen (331-333, 335) zum Speichern von Daten zur Bilddatenkompression und/oder Bilddatenexpansion, welche durch die Bildverarbeitungseinrichtung verarbeitet werden; und
einen Datenbus (IPB2) zum Übertragen von Daten zwischen den Schnittstelleneinrichtungen und den Speichereinrichtungen.
18. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 9, bei welcher die Pixelverarbeitungseinrichtung umfaßt:
eine Bildverarbeitungseinrichtung (313, 314) zum Ausführen der diskreten Kosinusumwandlung und/oder der inversen Kosinus­ umwandlung und der Quantisierung und/oder der inversen Quanti­ sierung zur Bilddatenkompression und/oder Bilddatenexpansion;
wenigstens zwei Schnittstelleneinrichtungen (318a, 318b), die nur für Bilddaten vorgesehen sind;
Speichereinrichtungen (331-333, 335) zum Speichern von Daten zur Bilddatenkompression und/oder Bilddatenexpansion, welche durch die Bildverarbeitungseinrichtung verarbeitet werden; und eine den Schnittstelleneinrichtungen entsprechend vorgesehene Mehrzahl von Datenbussen (IPB2a, IPB2b) zum Übertragen von Daten zwischen jeder der Schnittstelleneinrichtungen und den Speichereinrichtungen.
19. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 2, bei welcher die Pixeldaten-Speichereinrichtungen (n ≧ 2) Speicherzellenanordnungen (801-832) zum Speichern der Pixel­ daten zum Festlegen der Pixel auf einem Bildschirm umfaßt, wobei
die n Speicherzellenanordnungen n Pixeldaten ausgeben, von denen jedes jeweils in einer entsprechenden von den n Speicherzellen­ anordnungen in Reaktion auf das Anlegen von einem Zeilenadreß­ signal und von einem Spaltenadreßsignal gespeichert wird, wobei
die n Pixeldaten eine Mehrzahl von Pixeln festlegen, die in einer vertikalen Richtung auf dem Bildschirm angeordnet sind; und wobei
die Einrichtung zur Steuerung der Pipelineverarbeitung ferner eine Einrichtung zur Adreßsignalerzeugung umfaßt, welche auf ein serielles Taktsignal zum seriellen Ausgeben von Spalten­ adreßsignalen reagiert, um die Pixeldaten der in einer horizontalen Richtung auf dem Bildschirm angeordneten Pixel festzulegen.
20. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 2, bei welcher
die Pixeldaten-Speichereinrichtung n (n ≧ 2) Speicherzellenanordnungen (801-832) zum Speichern der Pixeldaten zum Festlegen der Pixel auf einem Bildschirm umfaßt, wobei
die n Speicherzellenanordnungen n Pixeldaten ausgeben, von denen jedes jeweils in einer entsprechenden von den n Speicherzellen­ anordnungen in Reaktion auf das Anlegen von einem Zeilen­ adreßsignal und von einem Spaltenadreßsignal gespeichert wird, wobei
die n Pixeldaten eine Mehrzahl von Pixeln festlegen, die in einer horizontalen Richtung auf dem Bildschirm angeordnet sind; und wobei
die Einrichtung zur Steuerung der Pipelineverarbeitung ferner eine Einrichtung zur Adreßsignalerzeugung (840) umfaßt, welche auf ein serielles Taktsignal zum seriellen Ausgeben von Spaltenadreßsignalen reagiert, um die Pixeldaten der in einer vertikalen Richtung auf dem Bildschirm angeordneten Pixel festzulegen.
21. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 1, bei welcher
die Einrichtung zur Verarbeitung von Daten einer variablen Länge ferner umfaßt:
eine Speichereinrichtung (481) zum Speichern eines Codes variabler Länge, der einer Kombination aus Laufdaten und Pegeldaten, aus deren Codelängendaten und aus einem Flag zur Verarbeitung eines Codes festgelegter Länge entspricht;
eine auf angelegte Laufdaten und angelegte Pegeldaten reagierende Leseeinrichtung (531, 561, 564, 534) zum Lesen des entsprechenden Codes variabler Länge, der Codelängendaten des­ selben und des Plags zur Verarbeitung eines Codes festgelegter Länge aus der Speichereinrichtung;
eine Einrichtung zum Codieren einer festgelegten Länge (527) zum Ausführen des Codierens an den angelegten Laufdaten und den angelegten Pegeldaten gemäß einer vorbestimmten Regel, um einen entsprechenden Code festgelegter Länge auszugeben;
eine auf das aus der Leseeinrichtung ausgegebene Flag zur Verarbeitung eines Codes festgelegter Länge reagierende Auswahleinrichtung (530) zum Auswählen eines Codes von dem Code variabler Länge und dem Code festgelegter Länge; und
eine Codekoppeleinrichtung (505) zum fortlaufenden Koppeln der aus der Auswahleinrichtung ausgegebenen Codes.
22. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 1, bei welcher
die Einrichtung zur Verarbeitung einer variablen Länge ferner umfaßt:
eine Speichereinrichtung (482) zum Speichern von einem Code variabler Länge entsprechenden Laufdaten sowie Pegeldaten und eines Flags zur Verarbeitung einer festgelegten Länge;
eine Gewinnungseinrichtung (505) zum Gewinnen eines Codes variabler Länge aus einer angelegten Codefolge variabler Länge, welcher gekoppelte Codes variabler Länge umfaßt;
eine Leseeinrichtung (502), die auf den durch die Gewinnungseinrichtung gewonnenen Code variabler Länge reagieren kann, zum Lesen der entsprechenden Laufdaten, Pegeldaten und des Flags zur Verarbeitung einer festgelegten Länge aus der Speichereinrichtung;
eine Einrichtung zum Decodieren eines Codes mit festgelegter Länge (526) zum, Ausführen des Decodierens gemäß einer vorbestimmten Regel des durch die Gewinnungseinrichtung gewonnenen Codes variabler Länge und zum Ausgeben entsprechend decodierter Daten; und
eine Auswahleinrichtung (530), die auf das aus der Leseein­ richtung ausgegebene Flag zur Verarbeitung eines Codes fest­ gelegter Länge reagiert, um entweder die Laufdaten und die Pegeldaten oder die decodierten Daten auszuwählen.
23. Vorrichtung zur Bilddatenverarbeitung, umfassend:
eine Speichereinrichtung (481) zum Speichern eines Codes variabler Länge, welcher einer Kombination aus Lauf- und Pegeldaten, aus deren Codelängendaten und aus einem Flag zur Verarbeitung eines Codes festgelegter Länge entspricht;
eine auf angelegte Laufdaten und angelegte Pegeldaten reagierende Leseeinrichtung (531, 534, 561, 564) zum Lesen eines entsprechenden Codes variabler Länge, der Codelängen­ daten desselben und eines Flags zur Verarbeitung eines Codes festgelegter Länge aus der Speichereinrichtung;
eine Einrichtung zum Codieren eines Codes mit festgelegter Länge (527) zum Ausführen des Codierens an den angelegten Laufdaten und den angelegten Pegeldaten gemäß einer vorbestimmten Regel, um einen entsprechenden Code festgelegter Länge vorzusehen;
eine Auswahleinrichtung (530), die auf das aus der Leseein­ richtung ausgegebene Flag zur Verarbeitung eines Codes fest­ gelegter Länge reagiert, um den Code variabler Länge und/oder den Code festgelegter Länge auszuwählen; und
eine Codekoppeleinrichtung (505) zum fortlaufenden Koppeln der aus der Auswahleinrichtung ausgegebenen Codes.
24. Vorrichtung zur Bilddatenverarbeitung, umfassend:
eine Speichereinrichtung (482) zum Speichern von Laufdaten und Pegeldaten, welche einem Code variabler Länge und einem Flag eines Codes festgelegter Länge entsprechen;
eine Gewinnungseinrichtung (505) zum Gewinnen eines Codes variabler Länge aus einer angelegten Codefolge variabler Länge, welcher gekoppelte Codes variabler Länge umfaßt;
eine Leseeinrichtung (502), die auf den durch die Gewinnungs­ einrichtung gewonnenen Code variabler Länge reagiert, um die entsprechenden Laufdaten, die Pegeldaten und das Flag zur Ver­ arbeitung einer festgelegten Lange aus der Speichereinrichtung zu lesen;
eine Einrichtung zum Decodieren eines Codes mit festgelegter Länge (526) zum Ausführen des Decodierens des durch die Gewinnungseinrichtung gewonnenen Codes variabler Länge gemäß einer vorbestimmten Regel, um entsprechend decodierte Daten vorzusehen; und
eine Auswahleinrichtung (530), welche dem aus der Leseeinrich­ tung ausgegebenen Flag zur Verarbeitung eines Codes festgeleg­ ter Länge entspricht, um entweder die Laufdaten und Pegeldaten oder die decodierten Daten auszuwählen.
25. Vorrichtung zur Bilddatenverarbeitung, umfassend:
eine erste Pixeldaten-Speichereinrichtung (51) zum Speichern von zu komprimierenden Pixeldaten;
einen ersten Pixeldatenbus (PB) zum Übertragen der in der ersten Pixeldaten-Speichereinrichtung gespeicherten Pixel­ daten;
eine Pixelverarbeitungseinrichtung (33), welche die durch den ersten Pixeldatenbus übertragenen Pixeldaten empfängt, um unter Verwendung der übertragenen Pixeldaten Referenzdaten zur Bewegungsvoraussage zu gewinnen, und welche ein erstes und ein zweites Datenport (P1, P2) zum Ausgeben der Referenzdaten zur Bewegungsvoraussage aufweist;
einen zweiten Pixeldatenbus (LDB) zum Übertragen der Referenz­ daten zur Bewegungsvoraussage, welche aus dem zweiten Daten­ port der Pixelverarbeitungseinrichtung ausgegeben werden;
eine zweite Pixeldaten-Speichereinrichtung (56) zum Speichern der durch den zweiten Datenbus übertragenen Referenzdaten zur Bewegungsvoraussage;
eine Verarbeitungseinrichtung zur Bewegungsvoraussage (47) zum Ausführen der Bewegungsvoraussage unter Verwendung der Referenzdaten zur Voraussage, welche in der zweiten Pixel­ daten-Speichereinrichtung gespeichert sind und welche durch den zweiten Pixeldatenbus zum Erzeugen eines Bewegungssektors übertragen werden; und
eine Einrichtung zum Steuern der Pipelineverarbeitung (23) zum Steuern der Pipelineverarbeitung bezüglich des ersten und des zweiten Pixeldatenbusses, der Pixelverarbeitungseinrichtung und der Verarbeitungseinrichtung zur Bewegungsvoraussage.
26. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 25, bei welcher die Einrichtung zum Steuern der Pipelineverarbeitung eine Systemsteuereinrichtung (114) zum Ausgeben eines Ausgangs­ steuersignals des ersten und des zweiten Datenports der Pixel­ verarbeitungseinrichtung umfaßt.
27. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 25, bei welcher die Pixelverarbeitungseinrichtung eine erste Pixelverarbei­ tungseinrichtung (34) zum Empfangen der durch den ersten Pixeldatenbus übertragenen Pixeldaten und zum Gewinnen der Referenzdaten zur Bewegungsvoraussage unter Verwendung der übertragenen Pixeldaten umfaßt, und welche ein drittes Daten­ port (P3) zum Ausgeben der Referenzdaten zur Bewegungsvoraus­ sage sowie eine Mehrzahl von vierten Datenports (P4, P5) zum Verteilen und Ausgeben der Referenzdaten zur Bewegungsvoraus­ sage aufweist;
der zweite Pixeldatenbus eine Mehrzahl von dritten Pixeldaten­ bussen (LDB1, LDB2) umfaßt, welche den vierten Datenports entsprechend zum Übertragen der aus den vierten Datenports ausgegebenen Referenzdaten zur Bewegungsvoraussage vorgesehen sind;
die zweite Pixeldaten-Speichereinrichtung eine Mehrzahl von dritten Pixeldaten-Speichereinrichtungen (56a, 56b) umfaßt, welche den vierten Datenports entsprechend zum Speichern der durch den dritten Pixeldatenbus übertragenen Referenzdaten zur Bewegungsvoraussage vorgesehen sind;
die Verarbeitungseinrichtung zur Bewegungsvoraussage eine Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungs­ voraussage (47a, 47b) umfaßt, die analog zu den vierten Datenports zum Ausführen der Bewegungsvoraussage unter Verwendung der Referenzdaten zur Bewegungsvoraussage vorge­ sehen sind, welche in der dritten Pixeldaten-Speichereinrich­ tung gespeichert sind und durch den dritten Pixeldatenbus übertragen werden, um einen Bewegungsvektor zu erzeugen; und bei welcher
die Einrichtung zur Steuerung der Pipelineverarbeitung eine Einrichtung (24) zum Steuern der Pipelineverarbeitung bezüglich des ersten Pixeldatenbusses, der ersten Pixelver­ arbeitungseinrichtung, der Mehrzahl von dritten Pixeldaten­ bussen und der Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungsvoraussage umfaßt.
28. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 27, welche ferner einen Adreßbus umfaßt der mit der Mehrzahl von zweiten Pixel­ daten-Speichereinrichtungen verbunden ist bei welcher die erste Pixelverarbeitungseinrichtung eine zweite Pixelver­ arbeitungseinrichtung (34) zum Verteilen und Ausgeben der Referenzdaten zur Bewegungsvoraussage aus der Mehrzahl von vierten Datenports (P4, P5) in Abhängigkeit von Typen der Referenzdaten zur Bewegungsvoraussage umfaßt; wobei
die Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungsvoraussage eine Mehrzahl von zweiten Verarbeitungs­ einrichtungen zur Bewegungsvoraussage (47a, 47b) zum Erzeugen eines Bewegungsvektors in Abhängigkeit vom Typ der Referenz­ daten zur Bewegungsvoraussage umfaßt; und wobei
die Einrichtung zur Steuerung der Pipelineverarbeitung eine Einrichtung (25) zum Steuern der Pipelineverarbeitung bezüglich des ersten Pixeldatenbusses, der zweiten Pixelver­ arbeitungseinrichtung der Mehrzahl von dritten Pixeldaten­ bussen, des Adreßbusses und der Mehrzahl von zweiten Verarbei­ tungseinrichtungen zur Bewegungsvoraussage umfaßt.
29. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 25, bei welcher
die Pixelverarbeitungseinrichtung eine Mehrzahl von ersten Pixelverarbeitungseinrichtungen (34a, 34b) umfaßt, welche die durch den ersten Pixeldatenbus über­ tragenen Pixeldaten zum Gewinnen von Referenzdaten zur Bewegungsvoraussage unterschiedlichen Typs unter Verwendung der übertragenen Pixeldaten empfangen und welche ein drittes Datenport zum Ausgeben der Referenzdaten zur Bewegungsvoraus­ sage und ein viertes Datenport zum Ausgeben der Referenzdaten zur Bewegungsvoraussage gemäß dem Typ der Referenzdaten zur Bewegungsvoraussage aufweisen; wobei
der zweite Pixeldatenbus eine Mehrzahl von dritten Pixeldaten­ bussen umfaßt, welche analog zu der ersten Pixelverarbeitungseinrichtung zum Übertragen der aus dem vierten Datenport ausgegebenen Referenzdaten zur Bewegungsvoraussage vorgesehen sind;
die zweite Pixeldaten-Speichereinrichtung eine Mehrzahl von dritten Pixeldaten-Speichereinrichtungen (56c, 56d) umfaßt welche analog zu der ersten Pixelverarbeitungseinrichtung zum Speichern der durch den dritten Pixeldatenbus übertragenen Referenzdaten zur Bewegungsvoraussage vorgesehen sind;
die Verarbeitungseinrichtung zur Bewegungsvoraussage eine Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungs­ voraussage (34a, 34b) umfaßt, die analog zu der ersten Pixelverarbei­ tungseinrichtung zum Ausführen der Bewegungs­ voraussage unter Verwendung der Referenzdaten zur Bewegungs­ voraus sage vorgesehen sind, welche in der dritten Pixeldaten- Speichereinrichtung gespeichert sind und durch den dritten Pixeldatenbus übertragen werden; und wobei
die Einrichtung zur Steuerung der Pipelineverarbeitung eine Einrichtung zum Steuern der Pipelineverarbeitung bezüglich des ersten Pixeldatenbusses, der Mehrzahl von ersten Pixelver­ arbeitungseinrichtungen, der Mehrzahl von dritten Pixeldaten­ bussen und der Mehrzahl von ersten Verarbeitungseinrichtungen zur Bewegungsvoraussage umfaßt.
30. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 27, bei welcher die Mehrzahl der dritten Pixeldaten-Speichereinrichtungen unterschiedliche Referenzdaten zur Bewegungsvoraussage in Abhängigkeit davon speichert, ob die Daten für eine Helligkeitskomponente oder eine Farbdifferenzkomponente vorgesehen sind.
31. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 28, bei welcher die Mehrzahl der dritten Pixeldaten-Speichereinrichtungen unterschiedliche Referenzdaten zur Bewegungsvoraussage in Abhängigkeit davon speichert, ob die Daten für eine Helligkeitskomponente oder eine Farbdifferenzkomponente vorgesehen sind.
32. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 29, bei welcher die Mehrzahl der dritten Pixeldaten-Speichereinrichtungen unterschiedliche Referenzdaten zur Bewegungsvoraussage in Abhängigkeit davon speichert, ob die Daten für eine Helligkeitskomponente oder eine Farbdifferenzkomponente vorgesehen sind.
33. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 25, bei welcher
die Pixelverarbeitungseinrichtung umfaßt:
eine Bildverarbeitungseinrichtung (313, 314) zum Ausführen einer diskreten Kosinusumwandlung und/oder einer inversen diskreten Kosinusumwandlung sowie einer Quantisierung und/oder einer inversen Quantisierung zur Bilddatenkompression und/oder Bilddatenexpansion;
wenigstens zwei Schnittstelleneinrichtungen (318a, 318b), die nur für die Bilddaten vorgesehen sind;
Speichereinrichtungen (331-333, 335) zum Speichern der Daten zur Bilddatenkompression und/oder Bilddatenexpansion, welche durch die Bildverarbeitungseinrichtung verarbeitet werden; und einen Datenbus (IPB2) zum Übertragen der Daten zwischen den Schnittstelleneinrichtungen und den Speichereinrichtungen.
34. Vorrichtung zur Bilddatenverarbeitung nach Anspruch 25, bei welcher
die Pixelverarbeitungseinrichtung umfaßt:
eine Bildverarbeitungseinrichtung (313, 314) zum Ausführen einer diskreten Kosinusumwandlung und/oder einer inversen diskreten Kosinusumwandlung und einer Quantisierung und/oder einer inversen Quantisierung zur Bilddatenkompression und/oder Bilddatenexpansion;
wenigstens zwei Schnittstelleneinrichtungen (318a, 318b), die nur für die Bilddaten vorgesehen sind;
Speichereinrichtungen (331-333, 335) zum Speichern der Daten zur Bilddatenkompression und/oder Bilddatenexpansion, welche durch die Bildverarbeitungseinrichtung verarbeitet werden; und
eine den Schnittstelleneinrichtungen entsprechend vorgesehene Mehrzahl von Datenbussen (IPB2a, IPB2b) zum Übertragen der Daten zwischen jeder der Schnittstelleneinrichtungen und den Speichereinrichtungen.
35. Verfahren zur Verarbeitung von Bilddaten zum Codieren einer Mehrzahl von Makroblockdaten, welche Pixel festlegen, die bei einer Pipelineverarbeitung eine Bildebene bilden, umfassend:
einen ersten Schritt zum Ausführen einer diskreten Kosinus­ umwandlung und einer Quantisierung an den Makroblockdaten, um einen Pixelcode zu erzeugen (S7);
einen zweiten Schritt zum Ausführen eines Kodierens mit variabler Länge an dem im ersten Schritt erzeugten Pixelcode, um einen Code variabler Länge zu erzeugen (S9); und
einen dritten Schritt zum Koppeln des im zweiten Schritt erzeugten Codes variabler Länge, um eine Codefolge variabler Länge zu erzeugen.
36. Verfahren zur Verarbeitung von Bilddaten zum Decodieren einer Codefolge variabler Länge, die eine Mehrzahl von Codes variabler Länge umfaßt, welche Pixel festlegen, die bei einer Pipelineverarbeitung eine Bildebene bilden, um­ fassend:
einen ersten Schritt zum Gewinnen des Codes variabler Länge aus der Codefolge variabler Länge (632);
einen zweiten Schritt zum Ausführen eines Decodierens mit variabler Länge an dem im ersten Schritt gewonnenen Code variabler Länge, um einen Pixelcode zu erzeugen; und
einen dritten Schritt zum Ausführen einer inversen Quantisierung und einer inversen diskreten Kosinusumwandlung an dem im zweiten Schritt erzeugten Pixelcode, um Makroblock­ daten zu erzeugen, welche die die Bildebene bildenden Pixel festlegen.
DE19944408522 1993-03-19 1994-03-14 Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten Expired - Fee Related DE4408522C2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE4447554A DE4447554C2 (de) 1993-03-19 1994-03-14 Vorrichtung zur Bilddatenverarbeitung
DE4447552A DE4447552C2 (de) 1993-03-19 1994-03-14 Vorrichtung zur Bilddatenverarbeitung
DE4447553A DE4447553C2 (de) 1993-03-19 1994-03-14 Vorrichtung zur Bilddatenverarbeitung

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP6033593 1993-03-19
JP30171693 1993-12-01
JP2093794A JPH07240844A (ja) 1993-03-19 1994-02-18 画像データ処理装置および画像データ処理方法

Publications (2)

Publication Number Publication Date
DE4408522A1 DE4408522A1 (de) 1994-09-22
DE4408522C2 true DE4408522C2 (de) 1996-12-05

Family

ID=27283230

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19944408522 Expired - Fee Related DE4408522C2 (de) 1993-03-19 1994-03-14 Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten

Country Status (3)

Country Link
JP (1) JPH07240844A (de)
DE (1) DE4408522C2 (de)
FR (2) FR2702862B1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19743203A1 (de) * 1996-01-06 1999-04-22 Samsung Electronics Co Ltd Pufferdatensteuerungsschaltkreis und Verfahren in einem Bildkompressionssystem unter Verwendung eines Wellensystems unter Verwendung einer Wellentransformation

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3220598B2 (ja) * 1994-08-31 2001-10-22 三菱電機株式会社 可変長符号テーブルおよび可変長符号化装置
US6330644B1 (en) * 1994-10-27 2001-12-11 Canon Kabushiki Kaisha Signal processor with a plurality of kinds of processors and a shared memory accessed through a versatile control means
DE4441295A1 (de) * 1994-11-21 1996-05-23 Sican Gmbh Verfahren und Schaltungsanordnung zur Adressierung von Komponenten blockweise organisierter digitaler Bilddaten in einem Speicher mit Page-Adressierung
DE19524688C1 (de) * 1995-07-06 1997-01-23 Siemens Ag Verfahren zur Dekodierung und Kodierung eines komprimierten Videodatenstroms mit reduziertem Speicherbedarf
DE19524808A1 (de) * 1995-07-07 1997-01-09 Thomson Brandt Gmbh Verfahren, Encoder und Decoder zur Resynchronisierung auf einen fehlerbehafteten Datenstrom
DE69614500T2 (de) * 1996-02-27 2001-11-22 Stmicroelectronics S.R.L., Agrate Brianza Speicherverminderung für das Grundprofil und die Hauptebene eines MPEG-2-Dekoders
US6028635A (en) 1996-12-03 2000-02-22 Stmicroelectronics, Inc. Reducing the memory required for decompression by storing compressed information using DCT based techniques
JP4054503B2 (ja) * 2000-01-06 2008-02-27 キヤノン株式会社 画像処理装置
US20050030971A1 (en) * 2003-08-08 2005-02-10 Visionflow, Inc. Adaptive bandwidth allocation over a heterogeneous system interconnect delivering true bandwidth-on-demand
KR100604986B1 (ko) 2004-07-26 2006-07-28 삼성전자주식회사 4단계 파이프라인 방식의 계수 가변장 부호화방법 및 계수가변장 부호화기
CN100534193C (zh) * 2004-08-04 2009-08-26 松下电器产业株式会社 图像解码装置
JP4678717B2 (ja) * 2004-12-27 2011-04-27 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置の設計方法
JP2008141276A (ja) * 2006-11-30 2008-06-19 Sanyo Electric Co Ltd Tv信号処理回路
JP5556082B2 (ja) * 2009-08-07 2014-07-23 富士通株式会社 メモリコントローラ、画像処理システムおよびメモリアクセスの制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3545106A1 (de) * 1985-12-19 1987-06-25 Ruge I Schaltung zur bilddatenreduktion, mustererkennung, etc.
US4800441A (en) * 1986-02-28 1989-01-24 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
EP0422299B1 (de) * 1989-10-12 1994-09-07 International Business Machines Corporation Speicher mit Seitenmodus
CA2062200A1 (en) * 1991-03-15 1992-09-16 Stephen C. Purcell Decompression processor for video applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19743203A1 (de) * 1996-01-06 1999-04-22 Samsung Electronics Co Ltd Pufferdatensteuerungsschaltkreis und Verfahren in einem Bildkompressionssystem unter Verwendung eines Wellensystems unter Verwendung einer Wellentransformation
DE19743203C2 (de) * 1996-01-06 1999-07-29 Samsung Electronics Co Ltd Pufferdatensteuerungsverfahren und Schaltkreis in einem Bildkompressionssystem

Also Published As

Publication number Publication date
DE4408522A1 (de) 1994-09-22
FR2707779A1 (fr) 1995-01-20
JPH07240844A (ja) 1995-09-12
FR2707779B1 (fr) 1997-04-30
FR2702862A1 (fr) 1994-09-23
FR2702862B1 (fr) 1996-06-28

Similar Documents

Publication Publication Date Title
DE69719069T2 (de) Bilddatenprozessor für bildspeichersystem mit erneuter komprimierung
DE69522861T2 (de) Verfahren und Einrichtung zur Codeumwandlung von codiertem Datenstrom
DE69330191T2 (de) Prädiktive Zwischenbildkodierungsvorrichtung mit Bewegungsausgleich
DE69431953T2 (de) Koprozessor zur bewegungsabschätzung
DE602004009591T2 (de) Differenz-codierung durch verwendung eines 3d-graphikprozessors
DE4408522C2 (de) Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten
DE69735838T2 (de) Videokodierer mit Transformationskoeffizientenprädiktion
DE69411791T2 (de) Verfahren und Einrichtung zur Dekodierung von komprimierten Bildern
DE69737852T2 (de) Durch verbessertes speicher- und auslesesystem verschiedene arten von durch bildspeicherspezifischen hardwarespezifikationen verursachte verzögerungsfaktoren überwindender bilddekoder und bildspeicher
DE4231158C5 (de) Verfahren und Einrichtung für die Zusammensetzung und Anzeige von Bildern
DE69425847T2 (de) Rechner für die inverse diskrete Cosinus-Transformation
DE69516734T2 (de) Bildverarbeitungsverfahren und -gerät
DE19709391A1 (de) MPEG-Codier- und Decodiersystem für Multimediaanwendungen
DE69627920T2 (de) Speichersteuerungsanordnung und Bilddekodierer damit
DE19535100A1 (de) Bildverarbeitungseinrichtung, die Pixeldaten mit einer hohen Datenübertragungsrate übertragen kann
EP1371229B1 (de) Verfahren zur komprimierung und dekomprimierung von videodaten
WO2008080516A1 (de) Vorrichtung und verfahren zum kodieren eines transformationskoeffizientenblockes
DE69324114T2 (de) Bewegtbilddekodierungssystem
DE69916662T2 (de) Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem
DE69328698T2 (de) Verfahren und Vorrichtung zur Bildcodierung
DE69433537T2 (de) Vorrichtung zur Dekodierung von Bewegtbilddaten
DE69629442T2 (de) Verfahren und Einrichtung zur Kodierung digitaler Videosignale
DE69609931T2 (de) Verfahren zur Datenverarbeitung in matrixförmigen Netzwerken in einem Bewegungsschätzungssystem
EP1241892A1 (de) Hardware-Accelerator eines Systems zur Videoverarbeitung
DE19738917A1 (de) Apparat und Verfahren für bidirektionales Abtasten von Videokoeffizienten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4447555

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4447555

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4447554

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4447554

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4447553

Format of ref document f/p: P

Ref country code: DE

Ref document number: 4447552

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4447553

Ref country code: DE

Ref document number: 4447552

AH Division in

Ref country code: DE

Ref document number: 4447554

Format of ref document f/p: P

Ref country code: DE

Ref document number: 4447553

Format of ref document f/p: P

Ref country code: DE

Ref document number: 4447552

Format of ref document f/p: P

Ref country code: DE

Ref document number: 4447555

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
AH Division in

Ref country code: DE

Ref document number: 4447552

Format of ref document f/p: P

AH Division in

Ref country code: DE

Ref document number: 4447554

Format of ref document f/p: P

Ref country code: DE

Ref document number: 4447553

Format of ref document f/p: P

8339 Ceased/non-payment of the annual fee