DE69526299T2 - Signalprozessor - Google Patents

Signalprozessor

Info

Publication number
DE69526299T2
DE69526299T2 DE69526299T DE69526299T DE69526299T2 DE 69526299 T2 DE69526299 T2 DE 69526299T2 DE 69526299 T DE69526299 T DE 69526299T DE 69526299 T DE69526299 T DE 69526299T DE 69526299 T2 DE69526299 T2 DE 69526299T2
Authority
DE
Germany
Prior art keywords
data
arithmetic
cell
cells
bus
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 - Lifetime
Application number
DE69526299T
Other languages
English (en)
Other versions
DE69526299D1 (de
Inventor
Jiro Miyake
Kazuki Ninomiya
Tamotsu Nishiyama
Keizo Sumida
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69526299D1 publication Critical patent/DE69526299D1/de
Publication of DE69526299T2 publication Critical patent/DE69526299T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/22Adaptations for optical transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Description

  • Die Erfindung bezieht sich auf einen Signalprozessor, z. B. einem Bildprozessor.
  • In den letzten Jahren wurden auf dem Gebiet der Bildverarbeitung von bewegten und Stand-Bildern Analogfilter einschließlich von Hochpassfiltern und Tiefpassfiltern digitalisiert. Für Multimediaanwendungen ist Hardware erforderlich, die in der Lage ist, eine Mehrzahl von arithmetischen Filteroperationen durchzuführen.
  • C. Joanblang u. a. berichten über einen programmierbaren digitalen Signalprozessor in ihrem Bericht mit dem Titel "A 54-MHz CMOS Programmable Video Signal Processor for HDTV Applications", IEEE Journal of Solid-State Circuits, Vol. 25, Nr. 3, S. 730-734, Juni 1990. Dieser Signalprozessor ist durch Integration einer arithmetischen Einheit auf einem einzelnen Chip, die durch Hintereinanderschaltung einer Mehrzahl von arithmetischen Zellen zur Multiplikation/Addition gebildet wird, von denen jede einen Multiplizierer und einen Addierer aufweist, aufgebaut. Wenn bei diesem Signalprozessor beispielsweise a1, a2 und a3 Koeffizienten darstellen und ein i-ter Eingabedatenwert (Pixel- Datenwert) gi ist, dann führen drei arithmetische Zellen für die Multiplikation/Addition, die hintereinander geschaltet sind, eine arithmetische Operation eines 3-Tap horizontalen Filters aus: a1 · g1 + a2 · g(i + 1) + a3 · g(i + 2).
  • Um die Verarbeitungsrate der arithmetischen Operation zu erhöhen, ist es erforderlich, eine Mehrzahl von Multiplikation/Addier-arithmetischen Zellen der oben beschriebenen Art parallel zu schalten.
  • Die japanische Patentanmeldung, die unter der Nr. 59-172064 veröffentlicht worden ist, zeigt einen Bildprozessor, bei dem eine große Anzahl von MPUs (Mikroprozessor-Einheiten) in einer zwei-dimensionalen Gitteranordnung entsprechend zu Anzeigepixeln angeordnet sind und diese Mikroprozessor-Einheiten ihre jeweiligen Bildverarbeitungsoperationen parallel ausführen. Bei diesem Bildprozessor sind eine Mikroprozessor- Einheit und ihr vier benachbarten Mikroprozessor-Einheiten (in horizontaler und vertikaler Richtung) durch separate Datenbusse miteinander verbunden.
  • Die japanische Patentanmeldung, die unter der Nr 60-159973 veröffentlicht ist, zeigt einen Bildprozessor, bei dem eine Mehrzahl von PEs (Prozessorelementen) und eine Mehrzahl von MEs (Speicherelementen) vorgesehen ist und alle Prozessorelemente und alle Speicherelemente mit gemeinsamen Bussen verbunden sind. Bei diesem Bildprozessor ist jedem Prozessorelement eine jeweilige Busnummer zugeordnet, die angibt, welcher Bus zur Verbindung mit diesem Element zu benutzen ist, und entsprechend ist jedem Speicherelement eine jeweilige Busnummer zugeordnet, die angibt, welcher Bus zur Verbindung mit dem Element zu verwenden ist.
  • Aus GB 2 247 328 und aus "Calculus of Space-Optimal Mappings of Systocli Algorithms of Processor Arrays" im Journal of VLSI Signal Processing, Vol. 4, Nr. 1, Februar 1992 ist es bekannt, Verarbeitungselemente in Arrays mit dreieckiger, rhombischer oder rechteckiger Form anzuordnen. Außerdem ist es aus "Time Optimal Sorting and Applications on nxn Enhances Meshes" in den "Proceedings of the Annual European Conference on Computer Systems and Software Engineering", 4. bis 8 Mai 1999, bekannt, Zeilen- und Spalten-Busse zu verwenden, um Datenübertragungsoperationen über große Entfernungen zu handhaben. Zeilen- und Spaltenbusse verbinden die Verarbeitungselemente einer Zeile oder Spalte.
  • Die Filterverarbeitung ist eine Konvergenz-Verarbeitung mit mehrfacher Eingabeeinfacher Ausgabe. Wenn daher eine Filterstruktur verwendet wird, bei der eine große Anzahl von gleichzeitig betreibbaren arithmetischen Zellen für die Multiplikation/Addition in einer zwei-dimensionalen Gitteranordnung angeordnet ist, und diese miteinander durch Datenbusse verbunden sind, erzeugt dies eine Redundanz in der Datenbusstruktur. Wenn andererseits eine Filterstruktur verwendet wird, bei der alle arithmetische Zellen zur Multiplikation/Addition, die gleichzeitig betrieben werden können, mit gemeinsamen Bussen verbunden sind, erzeugt dies eine Redundanz in der gemeinsamen Busauswahlsteuerung.
  • Dementsprechend ist es eine Aufgabe der vorliegenden Erfindung, einen Signalprozessor anzugeben, der für eine Konvergenzverarbeitung geeignet ist, die eine parallele Verarbeitung mit einer kleineren Busstruktur ermöglicht.
  • Dies wird mit den Merkmalen des Anspruchs 1 und mit den Merkmalen des Anspruchs 13 erreicht.
  • Diese Erfindung gibt einen Signalprozessor an, bei dem eine Mehrzahl von gleichzeitig betreibbaren arithmetischen Zellen zwei-dimensional so angeordnet ist, dass die arithmetischen Zellen eine pyramidenartige hierarchische Struktur aufweisen und einzelne gemeinsame Busse zwischen jeder der Hierarchien vorgesehen sind. Insbesondere enthält dieser Signalprozessor:
  • (a) eine arithmetische Einheit zur Durchführung von arithmetischen Operationen mit Daten;
  • (b) eine erste Schnittstelle zum Empfang externer Datensignale und zur Übertragung von Daten entsprechend zu den empfangenen Signalen zu der arithmetischen Einheit; und
  • (c) eine zweite Schnittstelle zum Empfangen von Daten, die von der arithmetischen Einheit verarbeitet sind, und zur Bereitstellung von Datensignalen entsprechend zu den empfangenen Daten;
  • wobei die arithmetische Einheit enthält:
  • (a-1) ein Array aus einer Mehrzahl von gleichzeitig betreibbaren arithmetischen Zellen, die in Spalten und Zeilen angeordnet sind, wobei jede der arithmetischen Zellen durch eine Bezeichnung gemäß E[x, y] spezifiziert ist, wobei x ein Spaltennummemindex ist, der 1 ≤ x ≤ M genügt, und y ein Zeilennummernindex ist, der x ≤ y ≤ M genügt, wobei M eine ganze Zahl mit M ≥ 2 ist; und
  • (a-2) eine Mehrzahl von gemeinsamen Zeitmultiplexbussen B[k], wobei jeder einen Verbindungspfadspfad angibt, der eine arithmetische Zelle, die durch E[k, y] spezifiziert ist, wobei k ≤ y ≤ M ist, und eine arithmetische Zelle verbindet, die durch E[k + 1, y] spezifiziert ist, wobei k + 1 ≤ y ≤ M ist, k eine ganze Zahl mit 1 ≤ k ≤ M - 1 ist;
  • wobei:
  • (i) eine arithmetische Zelle, die durch E[1, y] spezifiziert ist, wobei 1 ≤ y ≤ M ist, Daten von der ersten Schnittstelle empfängt;
  • (ii) eine arithmetische Zelle, die durch E[k + 1, y] spezifiziert ist, wobei k + 1 ≤ y ≤ M ist, Daten von einer arithmetischen Zelle empfängt, die durch E[k, y] spezifiziert ist, wobei k ≤ y ≤ M ist, über einen gemeinsamen Bus B[k]; und
  • (iii) eine arithmetische Zelle E[M, M] Daten der zweiten Schnittstelle zuführt.
  • In dem oben beschriebenen Signalprozessor wird eine Mehrzahl von arithmetischen Zellen gleichzeitig betrieben, wobei eine Konvergenzverarbeitung mit einer mehrfachen Eingabe/einfachen Ausgabe durchgeführt wird. Zusätzlich wird ein gemeinsamer Zeitmultiplex (TDM) Bus zwischen jeder Hierarchie angeordnet, wodurch die Größe der Busstruktur vermindert wird und wodurch die Verwendung eines gemeinsamen Busses ermöglicht wird, der für die Konvergenzverarbeitung geeignet ist.
  • Fig. 1 stellt einen Signalprozessor in Blockform dar.
  • Fig. 2 zeigt den internen Aufbau eines Dateneingangsabschnitts der Fig. 1.
  • Fig. 3 zeigt den internen Aufbau einer arithmetischen Zelle aus Fig. 1.
  • Fig. 4 ist ein Diagramm, das für das Verständnis des Betriebs eines arithmetischen Arrays der Fig. 1 hilfreich ist.
  • Fig. 5 zeigt in Blockform einen weiteren Signalprozessor.
  • Fig. 6 zeigt in Blockform einen weiteren Signalprozessor.
  • Fig. 7 zeigt den internen Aufbau eines Dateneingangsabschnitts der Fig. 6.
  • Fig. 8 zeigt den internen Aufbau einer arithmetischen Zelle aus Fig. 6.
  • Fig. 9 ist ein Diagramm, das für das Verständnis des Betriebs eines arithmetischen Arrays der Fig. 6 hilfreich ist.
  • Fig. 10 stellt in Blockform einen Signalprozessor dar.
  • Fig. 11 stellt in Blockform einen Signalprozessor in Übereinstimmung mit einer ersten Ausführungsform der vorliegenden Erfindung dar.
  • Fig. 12 zeigt ein Beispiel für den internen Aufbau der arithmetischen Zelle aus Fig. 11.
  • Fig. 13 zeigt ein weiteres Beispiel für den internen Aufbau der arithmetischen Zelle aus Fig. 11.
  • Fig. 14 ist ein Zeitdiagramm, das für das Verständnis des Betriebs des Signalprozessors aus Fig. 11 hilfreich ist.
  • Fig. 15 zeigt in Blockform einen Signalprozessor in Übereinstimmung mit einer zweiten Ausführungsform der vorliegenden Erfindung.
  • Fig. 16 zeigt in Blockform einen Signalprozessor in Übereinstimmung mit einer dritten Ausführungsform der vorliegenden Erfindung.
  • Fig. 17 ist ein Zeitdiagramm, das für das Verständnis des Betriebs des Signalprozessors aus Fig. 16 hilfreich ist.
  • Fig. 18 zeigt in Blockform einen Signalprozessor in Übereinstimmung mit einer vierten Ausführungsform der vorliegenden Erfindung.
  • Fig. 19 zeigt den internen Aufbau einer arithmetischen Zellen aus Fig. 18.
  • Fig. 20 ist ein Diagramm, das für das Verständnis des Betriebs des Signalprozessors auf Fig. 18 hilfreich ist.
  • Fig. 21 ist ein Diagramm, das für das Verständnis des Betriebs des Signalprozessors aus Fig. 18 hilfreich ist.
  • Fig. 22 ist ein Diagramm zur Verbindung mit Fig. 21.
  • Fig. 23 stellt in Blockform einen Signalprozessor in Übereinstimmung mit einer fünften Ausführungsform der vorliegenden Erfindung dar.
  • Unter Bezugnahme auf die beiliegenden Zeichnungen werden bevorzugte Ausführungsformen dieser Erfindung im Folgenden erläutert.
  • Zunächst wird auf Fig. 1 Bezug genommen, in der ein Bildprozessor 100 gezeigt ist, der aus sechzehn arithmetischen Zellen 103 besteht, die zur gleichzeitigen Verarbeitung in der Lage sind, und jede ZELLE 103 wird durch eine Bezeichnung der Art E[x, y] spezifiziert, wobei x eine Spaltennummer ist, die 1 ≤ x ≤ 4 erfüllt, und y eine Zeilennummer ist, die 1 ≤ y ≤ 4 erfüllt. 102 ist ein Dateneingangs-Abschnitt. 120 ist ein Datenausgabe-Abschnitt. Das arithmetische Array 100 führt arithmetische Operationen mit Daten aus, die von dem Dateneingangs-Abschnitt 102 empfangen werden, und führt das Ergebnis dem Datenausgabe-Abschnitt 120 zu. Die ZELLEN 103, die in der ersten Spalte angeordnet sind und durch E[1, y] spezifiziert sind, wobei 1 ≤ y ≤ 4 ist, werden jeweils A1, B1, C1 und D1 genannt. Die ZELLEN 103, die in der zweiten Spalte angeordnet sind und durch E[2, y] spezifiziert sind, wobei 1 ≤ y ≤ 4 ist, werden jeweils A2, B2, C2 und D2 genannt. Die Zellen 103, die in der dritten Spalte angeordnet sind und durch E[3, y] spezifiziert sind, wobei 1 ≤ x ≤ 4 ist, wenn jeweils A3, B3, C3 und D3 genannt. Die ZELLEN 103, die in der vierten Spalte angeordnet sind und durch E[4, y] spezifiziert sind, wobei 1 ≤ y ≤ 4 ist, werden jeweils A4, B4, C4 und D4 genannt. Der Dateneingangs-Abschnitt 102 empfängt externe Datensignale (Pixelsignale) an seinen vier Eingängen 104. Die Übertragung von Daten von dem Dateneingangs-Abschnitt 102 zu der ZELLE D1 wird über den Datenbus 105 ausgeführt. Die Übertragung von Daten von dem Dateneingangs- Abschnitt 102 zu der ZELLE C1 wird über den Datenbus 106 ausgeführt. Die Übertragung von Daten von dem Dateneingangs-Abschnitt 102 zu der ZELLE B1 wird über den Datenbus 107 ausgeführt. Die Übertragung von Daten von dem Dateneingangs-Abschnitt 102 zu der ZELLE A1 wird über den Datenbus 108 ausgeführt. Die ZELLE 103, die durch E[x, y] spezifiziert ist, wobei 2 ≤ x ≤ 4 und 2 ≤ y ≤ 4 ist, empfängt Daten von der ZELLE 103 E[x - 1, y] über den Datenbus 109 als auch von der ZELLE 103 E[x - 1, y - 1] über den Datenbus 110. Der BUS 109, der einen Pfad zur Verbindung der ZELLE E[x-1, y] und der ZELLE E[x, y] zur Datenübertragung bereitstellt, wird die Direkt-Bus genannt, wohingegen der BUS 110, der einen Pfad zur Verbindung der ZELLE E[x-1, y - 1] und der ZELLE E[x, y] bereitstellt, wird schräger Pfad genannt. Der DIREKTE BUS 109 ist zwischen jeder Zelle in der ersten Zeile des Arrays 100 angeordnet, d. h., zwischen ZELLE A1 und ZELLE A2, zwischen ZELLE A2 und ZELLE A3 und zwischen ZELLE A3 und A4. Die Übertragung von Daten von der ZELLE D4 zu dem Datenausgabe-Abschnitt 120 wird über den Datenbus 111 ausgeführt. Die Übertragung von Daten von der ZEL- LE C4 zu dem Datenausgabe-Abschnitt 120 wird über den Datenbus 112 ausgeführt. Die Übertragung von Daten von der ZELLE B4 zu dem Datenausgabe-Abschnitt 120 wird über den Datenbus 113 ausgeführt. Die Übertragung von Daten von der ZELLE A4 zu dem Datenausgabe-Abschnitt 120 wird über den Datenbus 114 ausgeführt. Daraufhin gibt der Datenausgabe-Abschnitt 120 Datensignale (Pixelsignale) über seine jeweiligen Ausgänge 121 aus. Der Bildprozessor der Fig. 1 umfasst ferner eine Mikroprozessoreinheit (MPU) 11 und einen Speicher 12, die im Einzelnen nachfolgend beschrieben werden.
  • Bezugnehmend auf Fig. 2 wird im Folgenden der interne Aufbau des Dateneingangs- Abschnitts 102 dargestellt, wenn der Bildprozessor aus Fig. 1 als ein 4-Tap horizontales Filter betrieben wird. Dieser in Fig. 2 gezeigte Daten-Eingangsabschnitt 102 wird durch Hintereinanderschaltung von drei Signalspeichern 201, 202 und 203 gebildet. Damit PIXELDATEN g1, PIXELDATEN g2, PIXELDATEN g3 und PIXELDATEN g4 als vier in einem Bild in horizontaler Richtung angeordnete Pixel den ZELLEN A1, B1, C1 und D1 jeweils zugeführt werden, wird (a) ein Pixelsignal g, das einem der vier Eingänge 104 zugeführt wird, als PIXELDATEN g4 dem BUS 105 als auch dem Signalspeicher 201 der ersten Stufe zugeführt, (b) führt der Signalspeicher 201 PIXELDATEN g3 dem BUS 106 zu, (c) führt der Signalspeicher 202 der zweiten Stufe PIXELDATEN g2 dem BUS 107 zu und (d) führt der Signalspeicher 203 der dritten Stufe PIXELDATEN g1 dem BUS 108 zu.
  • Fig. 3 stellt den internen Aufbau der ZELLE A1 der Fig. 1 dar. 131 ist ein Koeffizientenregister, das wiederbeschrieben werden kann. 133 ist ein Multiplizierer. 135 ist ein Addierer. 136 ist ein Signalspeicher. Der Multiplizierer 133 gibt ein Produkt aus, dass das Produkt eines Koeffizienten, der in dem Register 131 gespeichert ist, und einer ersten Eingabe 232 ist, die über den BUS 108 empfangen wird. Der Addierer 135 gibt eine Summe aus, die eine Summe eines von dem Multiplizierer 133 ausgegebenen Produktes und einer zweiten Eingabe 134 darstellt. Der Signalspeicher 136 speichert die von dem Addierer 135 ausgegebene Summe, um sie sowohl dem DIREKTEN BUS 109 als auch zu dem SCHRÄGEN BUS 110 zu zuführen. Die anderen verbleibenden arithmetischen Zellen 103 der Fig. 1, d. h., die ZELLEN A2-A4, B1-B4, C1-C4 und D1-D4 weisen dieselbe Struktur wie die ZELLE A1 der Fig. 3 auf; jedoch empfangen die ZELLEN E[x, y], bei denen 2 ≤ x ≤ 4 und 2 ≤ y ≤ 4 ist (d. h., B2, C2, D2, B3, C3, D3, B4, C4, D4), alle die EINGABE 132 über den DIREKTEN BUS 109 und die EINGABE 134 über den SCHRÄGEN BUS 110.
  • Die in Fig. 1 gezeigte Mikroprozessoreinheit (MPU) 11 führt über den BUS 22 beim Empfang eines Verarbeitungsumschaltanforderungssignals am Steuereingang 21, Koeffizienten den Koeffizientenregistern 131 der sechzehn arithmetischen Zellen 103 zu und führt außerdem Konstanten den EINGÄNGEN 134 der sieben arithmetischen Zellen 103 zu, die die erste Spalte und die erste Zeile des arithmetischen Arrays 100 bilden, d. h., den ZELLEN A1, B1, C1, D1, A2, A3 und A4. Der Speicher 12 speichert Programme, die von der Mikroprozessoreinheit 11 in Abhängigkeit von dem Verarbeitungsumschaltanforderungssignal ausgeführt werden, und Daten zur Verwendung bei der oben erwähnten Einstellung.
  • Im Folgenden wird unter Bezugnahme auf Fig. 4 der Betrieb des arithmetischen Arrays 100 der Fig. 1 beschrieben. Die Einstellung der Koeffizienten in jedem Koeffizientenregister 131 wird folgendermaßen ausgeführt. Die Register 131 der ZELLEN A1, B1, C1 und D1 in der ersten Spalte speichern jeweils einen Koeffizienten a1, einen Koeffizienten a2, einen Koeffizienten a3 und einen Koeffizienten a4. Die Register 131 der ZELLEN A2, B2, C2 und D2 in der zweiten Spalte speichern jeweils einen Koeffizienten 0, einen Koeffizienten 0, einen Koeffizienten 0 und einen Koeffizienten 1. Die Register 131 der ZELLEN A3, B3, C3 und D3 in der dritten Spalte speichern jeweils einen Koeffizienten 0, einen Koeffizienten 0, einen Koeffizienten 0 und einen Koeffizienten 1. Die Register 131 der ZELLEN A4, B4, C4 und D4 in der vierten Spalte speichern jeweils einen Koeffizienten 0, einen Koeffizienten 0, einen Koeffizienten 0 und einen Koeffizienten 1. Zusätzlich ist die Voreinstellung so, dass jeder der sieben arithmetischen ZELLEN 103, die die erste Spalte und die erste Zeile bilden (die ZELLEN A1, B1, C1, D1, A2, A3, A4) eine Konstante 0 als EINGABE 134 (die zweite Eingabe) zugeführt wird.
  • Die PIXELDATEN g1 -g4, die als vier Pixel in horizontaler Richtung angeordnet sind, werden dem Dateneingangs-Abschnitt 102 zugeführt. Beim Empfang der PIXELDATEN g1 von dem Dateneingangs-Abschnitt 102 gibt die ZELLE A1 a1 · g1 aus. Beim Empfang der PIXELDATEN g2 von dem Dateneingangs-Abschnitt 102 gibt die ZELLE B1 a2 · g2 aus. Beim Empfang der PIXELDATEN g3 von dem Dateneingangs-Abschnitt 102 gibt die ZELLE C1 a3 · g3 aus. Beim Empfang der PIXELDATEN g4 von dem Dateneingangs-Abschnitt 102 gibt die ZELLE D1 a4 · g4 aus. Daher gilt für die Zellen der zweite Spalte, das die ZELLE A2 a1 · g1 empfängt die ZELLE B2 a1 · g1 und a2 · g2 empfängt, die ZELLE C2 a2 · g2 und a3 · g3 empfängt und die ZELLE D2 a3 · g3 und a4 · g4 empfängt. Deshalb gibt die ZELLE A2 0 aus, die ZELLE B2 a1 · g1 aus, die ZELLE C2 a2 · g2 aus und die ZELLE D2 a3 · g3 + a4 · g4 aus. Von den Zellen der dritten Spalte empfängt die ZELLE A3 0, empfängt die ZELLE B3 0 und a1 · g1, empfängt die ZELLE C3 a1 · g1 und a2 · g2 und empfängt die ZELLE C3 a2 · g2 und a3 · g3 + a4 · g4. Daher gibt die ZELLE A3 0 aus, gibt die ZELLE B3 0 aus, gibt die ZELLE C3 a1 · g1 aus und die gibt die ZELLE C3 a2 · g2 + a3 · g3 + a4 · g4 aus. Von den Zellen der vierten Spalte empfängt die ZELLE A4 0, empfängt die ZELLE B4 0 und 0, empfängt die ZELLE C4 0 und a1 · g1 und empfängt die ZELLE D4 a1 · g1 und a2 · g2 + a3 · g3 + a4 · g4. Deshalb gibt die ZELLE A4 0 aus, gibt die ZELLE B4 0 aus, gibt die ZELLE C4 0 aus und gibt die ZELLE D4 a1 · g1 + a2 · g2 + a3 · g3 + a4 · g4 aus. Die Ausgabe der ZELLE D4 (a1 · g1 + a2 · g2 + a3 · g3 + a4 · g4) wird als Ergebnis der horizontalen Filterverarbeitung über den Dateneingangs-Abschnitt 120 weitergeleitet.
  • Gemäß dem Bildprozessor aus Fig. 1 sind die ZELLE A1, B1, C1, D1, B2, C2, D2, C3, D3 und D4 über die BUSSE 109 und 110 miteinander verbunden, um eine Baumstruktur zu bilden, die hauptsächlich verwendet wird, um eine 4-Tap horizontale Filterverarbeitung durchzuführen. Wenn der Inhalt der Koeffizientenregister 131 modifiziert wird, so dass hauptsächlich die ZELLEN A2, B2, C2, B3, C3 und C4 verwendet werden, wird dadurch eine 3-Tap horizontale Filterverarbeitung erreicht. Zusätzlich kann durch Verwendung einer Gruppe von ZELLEN A3, B3 und B4 unabhängig von der Verwendung der Gruppe von ZELLEN C3, D3 und D4 eine separate 2-Tap horizontale Filterverarbeitung durchgeführt werden.
  • Der Ersatz der Signalspeicher 201-203 des Dateneingangs-Abschnitt 102 durch Zeilenspeicher ermöglicht dem arithmetischen Array 100, als 2-, 3- oder 4-Tap vertikales Filter zu arbeiten. Außerdem ermöglicht der Ersatz der Signalspeicher 201-203 des Dateneingangs-Abschnitt 102 durch Halbbildspeicher dem arithmetischen Array 100, als zeitliches Filter betrieben zu werden. Der Dateneingangs-Abschnitt 102 kann so aufgebaut sein, dass als Pixeldaten externe Pixelsignale, die den vier Eingängen 104 zugeführt werden, den ZELLEN A1, B1, C1 und D1 in der ersten Spalte zugeführt werden.
  • Bei dem vorangegangenen 4-Tap horizontalen Filter wurde von allen vier Ausgängen 121 des Dateneingangs-Abschnitts 120 nur ein Ausgang 121 verwendet; wenn jedoch jede der Zellen der vierten Spalte (A4, B3, C4, D4) gültige Daten bereitstellt, können alle Ausgänge 121 des Datenausgabe-Abschnitts 120 verwendet werden. Wenn in diesem Fall ein Puffer-Speicher in dem Datenausgabe-Abschnitt 120 enthalten ist, ermöglicht dieses, dass einer der vier Ausgänge 121 im Zeitmultiplexverfahren verwendet wird.
  • In der vorliegenden illustrativen Ausführungsform wird das arithmetische Array 100 aus einem Array arithmetischer Zellen gebildet, die in vier Spalten und vier Zeilen angeordnet sind. Es kann jedoch jeder andere Aufbau eines Arrays verwendet werden, beispielsweise ein 4 mal 8 Arrayaufbau. In der vorliegenden Ausführungsform ist jede arithmetische Zelle 103 gemäß einer Zellenstruktur für eine Multiplizier/Addier-Operation ausgebildet, jede arithmetische Zelle 103 ist mit anderen Worten aus einem Multiplizierer 133 und einem Addierer 135, wie in Fig. 3 gezeigt, zusammengesetzt. Es können auch andere Strukturen verwendet werden. Beispielsweise kann in dem vorangegangenen 4-Tap horizontalen Filter jede ZELLE A1, A2, A3, A4, B1, C1, D1, der Null als zweite Eingabe 134 zugeführt wird, mit einem Addierer 135 ausgestattet sein. Eine solche Ausstattung kann jedoch auch weggelassen werden, und der Multiplizierer 133 kann seine Ausgabe direkt dem Signalspeicher 136 zuführen. Außerdem kann jede arithmetische Zelle 103 eine Mehrzahl von Multiplizieren und eine Mehrzahl von Addierern für die Multiplizier/Addier-Operation aufweisen. Jede arithmetische Zelle 103 kann aus einer Mikroprozessoreinheit (MPU) gebildet sein.
  • Im Folgenden wird auf Fig. 5 Bezug genommen, in der in blockartiger Darstellung ein Bildprozessor gezeigt ist, der wie der Bildprozessor aus Fig. 1 aufgebaut ist, wobei der Bildprozessor der Fig. 5 gebildet wird aus einem arithmetischen Array 100a zur Durchführung von arithmetischen Operationen mit Daten, einem Dateneingangs-Abschnitt 102a zum Empfang von externen Datensignalen und zum Übertragen von Daten, die den empfangenen Signalen entsprechen, zu dem arithmetischen Array 100a und einem Datenausgabe-Abschnitt 120a zum Empfangen der von dem arithmetischen Array 100a verarbeiteten Daten und zum Bereitstellen von Datensignalen, die den empfangenen Daten entsprechen. Das arithmetische Array 100a wird aus einem Array von sechzehn arithmetischen Zellen 103a gebildet, die in der Lage sind, gleichzeitig zu arbeiten, wobei jede ZELLE 103a durch eine Bezeichnung E[x, y] bezeichnet wird, wobei 1 ≤ x ≤ 4 und 1 ≤ y ≤ 4 ist. Die ZELLE 103a, die durch E[x, y], wobei 2 ≤ x ≤ 4 und 2 ≤ y ≤ 4 ist, spezifiziert ist, empfängt Daten von der ZELLE 103a E[x - 1, y] über den DIREKTEN BUS 109 als auch von der ZELLE 103a E[x - 1, y - 1] über den SCHRÄGEN BUS 110. Die ZELLE 103a, die durch E[x, 1], wobei 2 ≤ x ≤ 4 ist, spezifiziert ist, empfängt Daten von der ZELLE 103a E[x - 1, 1] über den DIREKTEN BUS 109. Die ZELLE 103a, die durch E[x, y], wobei 2 ≤ x ≤ 4 und 1 ≤ y ≤ 3 ist, spezifiziert ist, empfängt ebenfalls Daten von der ZELLE 103a E[x - 1, y + 1] über einen umgekehrten SCHRÄGEN BUS 119. Das arithmetische Array 100a der vorliegenden Ausführungsform entsteht aus der Hinzufügung von neun umgekehrten schrägen Busse 119 zu dem arithmetischen Array 100 der Fig. 1. Beispielsweise erstreckt sich einer der UMGEKEHRTEN SCHRÄGEN BUSSE 119 von der ZELLE D1 weg zu der ZELLE C2. Der Bildprozessor der Fig. 5 enthält außerdem eine Mikroprozessoreinheit (MPU) 11a und einen Speicher 12a für die Einstellung der Koeffizienten in den Koeffizientenregistern, die in jeder arithmetischen Zelle 103a enthalten sind.
  • Der Bildprozessor der Fig. 5 mit den BUSSEN 109, 110, 119 ermöglicht eine Verarbeitung mit höherer Flexibilität im Vergleich zu dem Bildprozessor der Fig. 1. Das arithmetische Array 100 der Fig. 1 kann beispielsweise einen Datenbus enthalten, der einen Pfad bereitstellt, der sich von der ZELLE A1 zu der ZELLE C2 erstreckt, und einen Datenbus, der einen Pfad bereitstellt, der sich von der ZELLE B1 zu der ZELLE D2 streckt.
  • Unter Bezugnahme auf Fig. 6 ist in blockartiger Form ein Bildprozessor 100b dargestellt, der ein Array aus zehn arithmetischen Zellen 103b darstellt, die in der Lage sind, gleichzeitig betrieben zu werden, wobei jede ZELLE 103b durch eine Bezeichnung der Art E[x, y] spezifiziert ist, wobei 1 ≤ x ≤ 4 und x ≤ y ≤ 4 ist. Das arithmetische Array 100b führt arithmetische Operation mit Daten aus, die von dem Dateneingangs-Abschnitt 102b empfangen werden, um Ergebnisse dem Datenausgabe-Abschnitt 120b zuzuführen. Die ZELLEN 103b, die in der ersten Spalte angeordnet sind und durch E[1, y] spezifiziert sind, wobei 1 ≤ y ≤ 4 ist, werden jeweils A1, B1, C1 und D1 genannt. Die ZELLEN 103b, die in der zweiten Spalte angeordnet sind und durch E[2, y] spezifiziert sind, wobei 2 ≤ y ≤ 4 ist, werden jeweils B2, C2 und D2 genannt. Die ZELLEN 103b, die in der dritten Spalte angeordnet sind und durch E[3, y] spezifiziert sind, wobei 3 ≤ y ≤ 4 ist, werden jeweils C3 und D3 genannt. Schließlich wird die ZELLE 103b, die in der vierten Spalte angeordnet ist und durch E[4, 4] spezifiziert ist, D4 genannt. Der Dateneingangs- Abschnitt 102b erhält externe Datensignale (Pixelsignale) an seinen vier Eingängen 104. Die Übertragung von Daten von dem Dateneingangs-Abschnitt 102b zu der ZELLE D1 wird über den BUS 105 durchgeführt. Die Übertragung von Daten von dem Dateneingangs-Abschnitt 102b zu der ZELLE C1 wird über den BUS 106 durchgeführt. Die Übertragung von Daten von dem Dateneingangs-Abschnitt 102b zu der ZELLE B1 wird über den BUS 107 durchgeführt. Die Übertragung von Daten von dem Dateneingangs- Abschnitt 102b zu der ZELLE A1 wird über den BUS 108 durchgeführt. Die ZELLE 103b, die durch E[x, y] spezifiziert ist, wobei 2 ≤ x ≤ 4 und x ≤ y ≤ 4 ist, empfängt Daten von der ZELLE E[x - 1, y] über den DIREKTEN BUS 109 als auch von der ZELLE E[x - 1, y - 1] über den SCHRÄGEN BUS 110. Die Übertragung von Daten von der ZELLE D4 zu dem Datenausgabe-Abschnitt 120b wird über den BUS 111 durchgeführt. Der Datenausgabe-Abschnitt 120b stellt ein Datensignal (Pixelsignal) an seinem Ausgang 121 bereit. Der Bildprozessor der Fig. 6 enthält außerdem eine Mikroprozessoreinheit (MPU) 11b und einen Speicher 12b, die später im Einzelnen erläutert werden.
  • Fig. 7 zeigt ein Beispiel für den internen Aufbau des Dateneingangs-Abschnitt 102b, wenn der Bildprozessor der Fig. 6 als Vorrichtung betrieben wird, die die Funktionen eines 2-Tap horizontalen Filters und eines 2-Tap vertikalen Filters kombiniert und die die Funktion der Kombination der Ausgaben des 2-Tap horizontalen Filters und des 2-Tap vertikalen Filters besitzt. Der Daterieingangs-Abschnitt 102b der Fig. 7 besitzt einen Zeilenspeicher 301 und zwei Signalspeicher 302 und 303, um Daten zu speichern. Damit in diesem Beispiel die PIXELDATEN h3, die den PIXELDATEN g3, die der ZELLE D1 zuzuführen sind, eine Zeile voraus sind, der ZELLE C1 zugeführt werden und damit die PIXELDATEN h1 -h3, die in horizontaler Richtung angeordnet sind, den jeweiligen arithmetischen Zellen (A1, B1, C1) zugeführt werden, (a) wird das PIXELSIGNAL g, das einem der vier Eingänge 104 zugeführt wird, als PIXELDATEN g3 sowohl dem BUS 105 als auch dem Zeilenspeicher 301 zugeführt, und (b) führt der Zeilenspeicher 301 PI- XELDATEN h3 dem BUS 106 zu, führt der Signalspeicher 302 der ersten Stufe PIXELDATEN h2 dem BUS 107 zu und führt der Signalspeicher 303 der zweiten Stufe PIXELDATEN h1 dem BUS 108 zu.
  • Unter Bezugnahme auf Fig. 8 wird der interne Aufbau der ZELLE B1 der Fig. 6 dargestellt. Der interne Aufbau der Fig. 8 und der interne Aufbau der Fig. 3 sind zueinander identisch mit der Ausnahme, dass der erste zusätzlich ein zweites Koeffizientenregister 137, das in der Lage ist, wiederholt beschrieben zu werden, und eine Auswahlvorrichtung 138 enthält. Das Koeffizientenregister 131 (das erste Koeffizientenregister), der Multiplizierer 133 und der Addierer 135 der Fig. 8 besitzen dieselbe Funktion wie ihre Gegenstücke in Fig. 3. Der Signalspeicher 136 speichert eine Summe, die von dem Addierer 135 ausgegeben wird, um sie sowohl dem DIREKTEN BUS 109 als auch der Auswahlvorrichtung 138 zuzuführen. Die Auswahlvorrichtung 138 führt eine Auswahl zwischen einem Koeffizienten, der in dem Koeffizientenregister 137 gespeichert ist (dem zweiten Koeffizientenregister), und einer Ausgabe des Signalspeichers 136 aus, um sie dem SCHRÄGEN BUS 110 zuzuführen. Die anderen ZELLEN 103b der Fig. 6 besitzen jeweils den selben internen Aufbau wie die ZELLE B1 der Fig. 8; jedoch die ZELLEN, die durch E[x, y] spezifiziert sind, wobei 2 ≤ x ≤ 4 und x ≤ y ≤ 4 ist (d. h., B2, C2, D2, C3, D3, D4), erhalten die EINGABE 132 (die erste Eingabe) über den DIREKTEN BUS 109 und die EINGABE 134 (die zweite Eingabe) über den SCHRÄGEN BUS 110.
  • Die Mikroprozessoreinheit (MPU) 11b stellt beim Empfang eines Verarbeitungs- Umschaltanforderungssignals am Steuereingang 21 Koeffizienten in dem ersten und dem zweiten Koeffizientenregister 131 und 137 der zehn arithmetischen ZELLEN 103b ein und führt außerdem Konstanten den EINGÄNGEN 134 der ZELLEN A1, B1, C1 und D1 in der ersten Spalte über den BUS 22 zu. Der Speicher 12b speichert Programme, die die Mikroprozessoreinheit 11b in Abhängigkeit von dem Verarbeitungs-Umschaltanforderungssignal ausführt, und Daten zur Verwendung bei der obengenannten Einstellung/Zuführung.
  • Fig. 9 stellt den Betrieb des arithmetischen Arrays 100b der Fig. 6 dar. Die Einstellung der Koeffizienten in dem ersten Koeffizientenregister 131 und dem zweiten Koeffizientenregister 137 wird folgendermaßen ausgeführt. In ZELLEN A1, B1, C1 und D1 in der ersten Spalte werden ihre ersten Koeffizientenregister 131 einerseits so eingestellt, dass sie jeweils die Koeffizienten a, 1, c und d speichern, während andererseits ihre zweiten Koeffizientenregister 137 so eingestellt sind, dass sie die Koeffizienten 0, 0, 0 und 0 jeweils speichern. Zusätzlich empfangen die ZELLEN A1, B1, C1 und D1 in der ersten Spalte jeweils einen Koeffizienten 0 als EINGABE 134 (die zweite Eingabe). In den ZELLEN B2, C2 und D2 in der zweiten Spalte sind ihre Koeffizientenregister 131 so eingestellt, dass sie jeweils die Koeffizienten b, 0 und 1 speichern, während ihre zweiten Koeffizientenregister 137 so eingestellt sind, dass sie jeweils die Koeffizienten 0, 0 und 0 speichern. In den ZELLEN C3 und D3 in der dritten Spalte sind ihre ersten Koeffizientenregister 131 so eingestellt, dass sie jeweils die Koeffizienten 1 und 1 speichern, während ihre zweiten Koeffizientenregister 137 so eingestellt sind, dass sie jeweils die Koeffizienten 0 und 0 speichern: In der ZELLE D4 in der vierten Spalte ist deren erstes Koeffizientenregister 131 so eingestellt, dass es einen Koeffizienten 1 speichert, während deren zweites Koeffizientenregister 137 so eingestellt ist, dass es einen Koeffizienten 0 speichert.
  • Vier Datenwerte (PIXELDATEN h1, h2, h3 und g3) werden von dem Daten-Eingangsabschnitt 102b jeweils den ZELLEN A1, B1, C1 und D1 in der ersten Spalte zugeführt. Die ZELLE A1 gibt a x h1 aus. Die ZELLE C1 gibt c x h3 aus. Die ZELLE D1 gibt d x g3 aus. Die ZELLE B1 gibt 1 x h2 ( = h2) an die ZELLE B2 aus. Die ZELLE B1 gibt außerdem 0, das in deren zweitem Koeffizientenregister 137 gespeichert ist, an die ZELLE C2 aus. In der zweiten Spalte empfängt daher die ZELLE B2 a x h1 und h2, empfängt die ZELLE C2 0 und c x h3 und empfängt die ZELLE D2 c x h3 und d x g3. Daher gibt die ZELLE B2 a x h1 + b x h2 aus, gibt die ZELLE C2 0 aus und gibt die ZELLE D2 c x h3 + d x g3 aus. Während in diesem Fall die Datenausgabe der ZELLE B2 (a x h1 + b x h2) das Ergebnis einer 2-Tap horizontalen Filterverarbeitung darstellt, stellt die Datenausgabe der ZELLE D2 (c x h3 + d x g3) das Ergebnis einer 2-Tap vertikalen Filterverarbeitung dar.
  • In der dritten Spalte empfängt die ZELLE C3 a x h1 + b x h2 und 0 und die ZELLE D3 empfängt 0 und c x h3 + d x g3. Daher gibt die ZELLE C3 a x h1 + b x h2 aus und die ZELLE D3 gibt c x h3 + d x g3 aus. In der vierten Spalte empfängt die ZELLE D4 a x h1 + b x h2 und c x h3 +d x g3, anschließend wird a x h1 + b x h2 + c x h3 + d x g3 ausgegeben. Die Ausgabedaten der ZELLE D4 (a x h1 + b x h2 + c x h3 + d x g3) werden in Form eines kombinierten Ergebnisses des Ergebnisses der 2-Tap horizontalen Filterverarbeitung und des Ergebnisses der 2-Tap vertikalen Filterverarbeitung über den Daten-Ausgabeabschnitt 120b bereitgestellt.
  • Gemäß dem Bildprozessor der Fig. 6 wird eine Gruppe von ZELLEN A1, B1 und B2 unabhängig von einer anderen Gruppe von ZELLEN C1, D1 und D2 betrieben. Dadurch wird gleichzeitig die Operation der 2-Tap horizontalen Filterverarbeitung und der 2-Tap vertikalen Filterverarbeitung erreicht. Zusätzlich dazu können die Ergebnisse beider Verarbeitungen unter Verwendung der verbleibenden arithmetischen Zellen, nämlich der ZELLEN C2, C3, D3 und D4 kombiniert werden.
  • Wie aus dem ersten beschriebenen Beispiel deutlich wird, wird damit, wenn der Daten- Eingangsabschnitt 102b eine Struktur gemäß Fig. 2 verwendet, eine effektive 4-Tap horizontale Filterverarbeitung durch die ZELLEN A1, B1, C1, D1, B2, C2, D2, C3, D3 und D4 erreicht, die miteinander über BUSSE 109, 110 verbunden sind, um eine Baumstruktur zu bilden.
  • Im Folgenden wird auf Fig. 10 Bezug genommen, in der ein Bildprozessor dargestellt ist. Der dargestellte Bildprozessor enthält ein arithmetisches Array 100c, einen ersten Daten-Eingabe/Ausgabe-Abschnitt 102c und einen zweiten Daten-Eingabe/Ausgabe- Abschnitt 120c. Das arithmetische Array 100c wird aus einem Array von zwanzig arithmetischen Zellen 103c gebildet, die in der Lage sind, gleichzeitig zu arbeiten, wobei jede ZELLE 103c durch eine Bezeichnung der Art E[x, y] bezeichnet wird, wobei 1 ≤ x ≤ 4 und 1 ≤ y ≤ 5 ist. Das arithmetische Array 100c erhält Daten von dem ersten Daten- Eingabe/Ausgabe-Abschnitt 102c, führt arithmetische Operationen mit den empfangenen Daten aus und führt das Ergebnis dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 120c zu. Andererseits erhält das arithmetische Array 100c Daten von dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 120c, führt arithmetische Operationen mit den erhaltenen Daten aus und führt das Ergebnis dem ersten Daten-Eingabe/Ausgabe-Abschnitt 102c zu. Vier ZELLEN 103c in der ersten Spalte, die durch E[1, y] bezeichnet sind, wobei 2 ≤ y ≤ 5 ist, werden jeweils A1, B1, C1 und D1 genannt. Die drei Zellen 103c in der zweiten Spalte, die durch E[2, y] bezeichnet werden, wobei 3 ≤ y ≤ 5 ist, werden jeweils B2, C2 und D3 genannt. Die beiden ZELLEN 103c in der dritten Spalte, die durch E[3, y] bezeichnet sind, wobei 4 ≤ y ≤ 5 ist, werden jeweils C3 und D3 genannt. Die ZELLE 103c in der vierten Spalte, die durch E[4, 5] bezeichnet ist, wird D4 genannt. Die verbleibenden vier ZELLEN 103c in der vierten Spalte, die durch E[4, y] bezeichnet sind, wobei 4 ≥ y ≥ 1 ist, werden jeweils P1, Q1, R1 und S1 genannt. Die verbleibenden drei ZELLEN 103c in der dritten Spalte, die durch E[3, y] bezeichnet sind, wobei 3 ≥ y ≥ 1 ist, werden jeweils Q2, R2 und S2 genannt. Die verble benden beiden ZELLEN 103c in der zweiten Spalte, die durch E[2, y] bezeichnet sind, wobei 2 ≥ y ≥ 1 ist, werden jeweils R3 und 53 genannt. Schließlich wird die verbleibende ZELLE 103c in der ersten Spalte, die durch E[1, 1] bezeichnet ist, 54 genannt.
  • Der erste Daten-Eingabe/Ausgabe-Abschnitt 102c empfängt externe Datensignale (Pixelsignale) an seinen vier Eingängen 104. Entsprechend empfängt der zweite Daten- Eingabe/Ausgabe-Abschnitt 120c externe Datensignale (Pixelsignale) an seinen vier Eingängen 104. Die Übertragung von Daten von dem ersten Daten-Eingabe/Ausgabe- Abschnitt 102c zu der ZELLE D1 wird über den BUS 105 ausgeführt. Die Übertragung von Daten von dem ersten Daten-Eingabe/Ausgabe-Abschnitt 102c zu der ZELLE C1 wird über den BUS 106 ausgeführt. Die Übertragung von Daten von dem ersten Daten- Eingabe/Ausgabe-Abschnitt 102c zu der ZELLE B I wird über den BUS 107 ausgeführt. Die Übertragung von Daten von dem ersten Daten Eingabe/Ausgabe-Abschnitt 102c zu der ZELLE A1 wird über den BUS 108 ausgeführt. Die ZELLE 103c, die mit E[x, y] bezeichnet ist, wobei 2 ≤ x ≤ 4 und x + 1 ≤ y ≤ 5 ist, e -hält Daten von der ZELLE E[x - 1, y] über den DIREKTEN BUS 109 als auch von der ZELLE E[x - 1, y - 1] über den SCHRÄ-GEN BUS 110. Die Übertragung von Daten von der ZELLE D4 in der vierten Spalte zu dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 120c wird über den BUS 111 ausgeführt. Daraufhin stellt der zweite Daten-Eingabe/Ausgabe-Abschnitt 120c ein Datensignal (Pixelsignal) an seinem Ausgang 121 bereit. Andererseits wird die Übertragung von Daten von dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 120c zu der ZELLE P1, zu der ZELLE Q1, zu der ZELLE R1 und zu der ZELL E 51 jeweils über die BUSSE 112, 113, 114 und 115 ausgeführt. Die ZELLE 103c, die durch E[x, y] bezeichnet ist, wobei 1 ≤ x ≤ 3 und 1 ≤ y ≤ x ist, erhält Daten sowohl vor der ZELLE E[x + 1, y] über den DIREKTEN BUS 109 als auch von der ZELLE E[x - 1, y + 1] über den SCHRÄGEN BUS 110. Die Übertragung von Daten von der ZELLE E 4 in der ersten Spalte zu dem ersten Daten-Eingabe/Ausgabe-Abschnitt 102c wird über den BUS 116 ausgeführt. Der ersten Daten-Eingabe/Ausgabe-Abschnitt 102c stellt ein Datensignal (Pixelsignal) an seinem Ausgang 121 bereit.
  • Das arithmetische Array 100c der Fig. 10 besitzt einen Aufbau, der durch Auffüllung des freien Teils des arithmetischen Array 100b der Fig. 6 mit einem identischen Array realisiert wurde. Bei der Implementierung auf LSIs, kann daher die Chipfläche effizienter im Vergleich mit dem arithmetischen Array 100b verwendet werden. Der Bildprozessor der Fig. 10 enthält außerdem eine Mikroprozessoreinheit 11c und einen Speicher 12c, um beispielsweise die Koeffizienten den Koeffizientenregistern zuzuführen, die in jeder arithmetischen ZELLE 103c enthalten sind.
  • Gemäß dem beschriebenen Bildprozessor der Fig. 10 wird eine Gruppe von ZELLEN A1, B1, C1, D1, B2, C2, D2, C3, D3 und D4, die miteinander über BUSSE 109 und 110 verbunden sind, um eine Baumstruktur zu bilden, unabhängig von einer Gruppe von ZELLEN P1, Q1, R1, S1, Q2, R2, S2, R3, S3 und S4 betrieben, die miteinander über die BUSSE 109 und 110 verbunden sind, um eine Baumstruktur zu bilden. Dies ermöglicht einer der Gruppen, eine horizontale Filterverarbeitung durchzuführen, und der anderen Gruppe, eine vertikale Filterverarbeitung durchzuführen. Außerdem erleichtern externe Verbindungen dieser zwanzig ZELLEN 103c eine Schleife zur Bildung von zyklischen Filtern zu bilden.
  • AUSFÜHRUNGSFORM 1
  • Fig. 11 zeigt in Blockform einen Bildprozessor gemäß der ersten Ausführungsform der vorliegenden Erfindung. 500 ist ein Array aus sechzehn arithmetischen Zellen 503, die in der Lage sind, gleichzeitig betrieben zu werden, und jede ZELLE 503 wird durch eine Bezeichnung E[x, y] bezeichnet, wobei 1 ≤ x ≤ 4 und 1 ≤ y ≤ 4 ist. Die ZELLEN 503, die durch E[1, y] bezeichnet ist, wobei 1 ≤ y ≤ 4 ist, werden jeweils A1, B1, C1 und D1 genannt. Die ZELLEN 503, die durch E[2, y] bezeichnet sind, wobei 1 ≤ y ≤ 4 ist, werden jeweils A2, B2, C2 und D2 genannt. Die ZELLEN 503, die mit E[3, y] bezeichnet werden, wobei 1 ≤ y ≤ 4 ist, werden jeweils A3, B3, C3 und D3 genannt. Die ZELLEN 503, die mit E[4, y] bezeichnet sind, wobei 1 ≤ y ≤ 4 ist, werden jeweils A4, B4, C4 und D4 genannt. Die arithmetischen Zellen der ersten Spalte (A1, B1, C1, D1) und die arithmetischen Zellen der zweiten Spalte (A2, B2, C2 und D2) sind einander gegenüber über den ersten gemeinsamen Zeitmultiplex-Bus 531 angeordnet, wodurch die Übertragung von Daten von jeder der arithmetischen Zellen der ersten Spalte zu jeder der arithmetischen Zellen der zweiten Spalte ermöglicht wird. Zwischen den arithmetischen Zellen der zweiten Spalte (A2, B2, C3, D3) und den arithmetischen Zellen der dritten Spalte (A3, B3, C3, D3) ist der zweite gemeinsam Zeitmultiplex-Bus 532 angeordnet. In entsprechender Weise ist zwischen den arithmetischen Zellen der dritten Spalte (A3, B3, C3, D3) und den arithmetischen Zellen der vierten Spalte (A4, B4, C3, D4) der dritte gemeinsame Zeitmultiplex-Bus 533 angeordnet.
  • Das arithmetische Array 500 erhält Daten von dem Daten-Eingangsabschnitt 502, führt mit den empfangenen Daten arithmetische Operationen durch und führt das Ergebnis dem Datenausgabe-Abschnitt 520 zu. Der Daten-Eingangsabschnitt 502 erhält an seinen vier Eingängen 504 externe Datensignale (Pixelsignale). Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502 zu der ZELLE D1 wird über den BUS 505 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502 zu der ZELLE C1 wird über den BUS 506 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502 zu der ZELLE B1 wird über den BUS 507 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502 zu der ZELLE A1 wird über den BUS 508 durchgeführt. Die Übertragung von Daten von der ZELLE D4 zu dem Daten-Ausgabeabschnitt 520 wird über den BUS 511 durchgeführt. Die Übertragung von Daten von der ZELLE C4 zu dem Daten-Ausgabeabschnitt 520 wird über den BUS 512 durchgeführt. Die Übertragung von Daten von der ZELLE B4 zu dem Daten-Ausgabeabschnitt 520 wird über den BUS 513 durchgeführt. Die Übertragung von Daten von der ZELLE A4 zu dem Daten-Ausgabeabschnitt 520 wird über den BUS 514 durchgeführt. Der Daten-Ausgabeabschnitt 520 stellt Datensignale (Pixelsignal) an seinen vier Ausgängen 521 bereit. Der Bildprozessor der Fig. 11 enthält außerdem eine Mikroprozessoreinheit 51 und einen Speicher 52, die später im Einzelnen erläutert werden.
  • Unter Bezugnahme auf Fig. 12 wird der interne Aufbau der arithmetischen Zelle A2 der Fig. 11 erläutert. 541 ist ein Eingabe-Taktabschnitt. 542 ist ein Verarbeitungsabschnitt. 543 ist aus Ausgabe-Taktabschnitt. Der Eingabe-Taktabschnitt 541, der ein Register 601, das wiederbeschreibbar ist, einen Koinzidenz-Detektor 602 und eine Eingabe- Steuereinrichtung 603 umfasst, erhält Daten von dem ersten gemeinsamen Zeitmultiplex-Bus 531, wenn ein Wert, der in dem Register 601 gesetzt ist, und ein Wert (z. B. 0), der dem Koinzidenz-Detektor 602 zuvor zugeordnet wurde, übereinstimmen. Der Verarbeitungsabschnitt 542, der ein Koeffizientenregister, einen Multiplizierer und einen Addierer (in der Figur nicht gezeigt) umfasst, führt Multiplizier/Addier-Operationen mit den Daten von dem Eingabe-Taktabschnitt 541 aus und führt das Ergebnis dem Ausgabe- Taktabschnitt 543 zu. Der Ausgabe-Taktabschnitt 543, der ein Register 611, das wiederbeschreibbar ist, einen Koinzidenz-Detektor 612 und eine Ausgabe-Steuereinrichtung 613 umfasst, gibt Daten auf den zweiten gemeinsamen Zeitmultiplex-Bus 532 aus, wenn ein Wert, der in dem Register 611 eingestellt ist, und ein Wert, der dem Koinzidenz-Detektor 612 zuvor zugeordnet wurde (z. B. 0) übereinstimmen. Die anderen verbleibenden arithmetischen Zellen 503 der Fig. 11 weisen jeweils denselben internen Aufbau wie die ZELLE A2 der Fig. 12 auf. Die ZELLEN D1, C1, B1 und A1 in der ersten Spalte des Array 500 benötigen nicht notwendigerweise einen Eingabe-Taktabschnitt 541. Die ZELLEN D4, C4, B4 und A4 in der vierten Spalte des Arrays 500 benötigen nicht notwendigerweise den Ausgabe-Taktabschnitt 543.
  • Die Mikroprozessoreinheit 51 der Fig. 11 führt beim Empfang eines Verarbeitungs-Umschaltanforderungssignals am Steuereingang 61 Koeffizienten den Koeffizientenregistern (in der Figur nicht gezeigt) der sechzehn arithmetischen Zellen 503 über den BUS 62 zu. Die Mikroprozessoreinheit 51 führt außerdem Konstanten den Registern 601 und 611 der sechzehn arithmetischen Zellen 503 über den BUS 62 zu. Der Speicher 52 speichert Programme, die von der Mikroprozessoreinheit 51 in Abhängigkeit von dem Verarbeitungs-Umschaltanforderungssignal ausgeführt werden, Programme, die die Mikroprozessoreinheit 51 zur Zuführung von Konstanten zu den Registern 601 und 611 ausführt, und Daten zur Verwendung bei der vorgenannten Zuführung von Daten.
  • Fig. 14 stellt ein Zeitdiagramm dar, das für das Verständnis des Betriebs des Bildprozessors der Fig. 11 hilfreich ist. Fig. 14 zeigt fünf Beispiele der Datenübertragung zwischen allen arithmetischen Zellen über den ersten gemeinsamen Zeitmultiplex-Bus 531 (D1→D2, C1→C2, B1→B2, A1→A2 und C1→B2)."HiZ" zeigt an, dass sich die Ausgabe der ZELLE im Zustand hoher Impedanz befindet.
  • In einem ersten Taktzyklus werden Pixeldaten den ZELLEN D1, C1, B1 und A1 in der ersten Spalte zugeführt.
  • In einem zweiten Taktzyklus werden in der ersten Spalte die Register 611 der ZELLEN D1, C1, B1 und A1 jeweils auf 0, 3, 2 und 1 gesetzt. In der zweiten Spalte werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 0, 3, 2 und 1 gesetzt. Als Ergebnis dieser Einstellung stellt die ZELLE D1 DATEN D auf dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung an die ZELLE D2 bereit, wohingegen die Ausgänge der ZELLEN C1, B1 und A1 in der ersten Spalte im HiZ-Zustand gehalten werden.
  • In einem dritten Taktzyklus werden in der ersten Spalte die Register 611 der ZELLEN D1, C1, B1 und A1 jeweils auf 1, 0, 3 und 2 gesetzt. In der zweiten Spalte werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 1, 0, 3 und 2 gesetzt. Als Ergebnis dieser Einstellung stellt die ZELLE C1 DATEN C dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung an die ZELLE C2 bereit, wohingegen die Ausgänge der ZELLEN D1, B1 und A1 in der ersten Spalte in dem HiZ-Zustand gehalten werden.
  • In einem vierten Taktzyklus werden in der ersten Spalte die Register 611 der ZELLEN D1, C1, B1 und A1 jeweils auf 2, 1, 0 und 3 gesetzt. In der zweiten Spalten werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 2, 1, 0 und 3 gesetzt. Als Ergebnis dieser Einstellung stellt die ZELLE B1 DATEN B dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung an die ZELLE B2 bereit, wohingegen die Ausgänge der ZELLEN D1, C1 und A1 in der ersten Spalte in dem HiZ-Zustand gehalten werden.
  • In einem fünften Taktzyklus werden in der ersten Spalte die Register 611 der ZELLEN D1, C1, B1 und A1 jeweils auf 3, 2, 1 und 0 gesetzt. In der zweiten Spalten werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 3, 2, 1 und 0 gesetzt. Als Ergebnis dieser Einstellung stellt die ZELLE A1 DATEN A dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung an die ZELLE A2 bereit, wohingegen die Ausgänge der ZELLEN D1, C1 und B1 in der ersten Spalte in dem HiZ-Zustand gehalten werden.
  • In einem sechsten Taktzyklus werden in der ersten Spalte die Register 611 der ZELLEN D1, C1, B1 und A1 jeweils auf 1, 0, 3 und 2 gesetzt. In der zweiten Spalten werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 2, 1, 0 und 3 gesetzt. Als Ergebnis dieser Einstellung stellt die ZELLE C1 wiederum die DATEN C dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung an die ZELLE B2 bereit, wohingegen die Ausgänge der ZELLEN D1, C1 und A1 in der ersten Spalte in dem HiZ-Zustand gehalten werden.
  • Wie oben beschrieben wird gemäß dem Bildprozessor der Fig. 11 die Übertragung von Daten zwischen den arithmetischen Zellen der ersten Spalte (D1, C1, B1, A1) und den arithmetischen Zellen der zweiten Spalte (D2, C2, B2, A2) in einer Zeitmultiplex-Weise über den ersten gemeinsamen Zeitmultiplex-Bus 531 durchgeführt. Der zweite und der dritte gemeinsame Zeitmultiplex-Bus 532 und 533 arbeiten jeweils auf dieselbe Weise wie der erste gemeinsame Zeitmultiplex-Bus 531. Daher kann beispielsweise der Datenfluss der Fig. 4 in der vorliegenden Ausführungsform erreicht werden, wobei eine 4-Tap horizontale Filterverarbeitung durchgeführt wird. Wenn in dem Daten-Eingabeabschnitt 502 ein Zeilenspeicher vorgesehen ist, führt dies zu einer vertikalen Filterung.
  • Zusätzlich kann die Anordnung so sein, dass eine arithmetische Zelle Daten gleichzeitig zur einer Mehrzahl anderer arithmetischen Zellen überträgt. Außerdem kann, zumindest eines der Register 601 und 611 durch einen Zähler ersetzt werden, der bei jedem Taktzyklus erhöht wird. Fig. 13 Zeit ein Beispiel, bei dem die Register 601 und 611 durch Zähler 604 und 614 ersetzt sind. Jeder dieser Zähler 604 und 614 wird aus zwei Bit gebildet, da das arithmetische Array 500 eine 4-Spalten-Zellenstruktur aufweist. Der Aufbau der Fig. 13 weist den Vorteil auf, dass, sobald die Zähler 604 und 614 von der Mikroprozessoreinheit 51 initialisiert sind, die Übertragung von Daten im Zeitmultiplexverfahren nur durch Zuführung eines Taktimpulses zu den Zählern 604 und 614 durchgeführt werden kann.
  • AUSFÜHRUNGSFORM 2
  • Fig. 15 stellt in Blockform ein Bildprozessor gemäß der zweiten Ausführungsform der vorliegenden Erfindung dar. 500a ist ein Array aus zehn arithmetischen Zellen 503, die in der Lage sind, gleichzeitig betrieben zu werden, wobei jede ZELLE 503 durch eine Bezeichnung der Art E[x, y] bezeichnet ist, wobei 1 ≤ x ≤ 4 und x y 4 ist. Die ZELLEN 503, die in der ersten Spalte angeordnet sind, und mit E[1, y] bezeichnet sind, wobei 1 ≤ y ≤ 4 ist, werden jeweils A1, B1, C1 und D1 genannt. Die ZELLEN 503, die in der zweiten Spalte angeordnet sind und mit E[2, y] bezeichnet sind, wobei 2 ≤ y ≤ 4 ist, werden jeweils B2, C2 und D2 genannt. Die ZELLEN 503, die in der dritten Spalte angeordnet sind und mit E[3, y] bezeichnet sind, wobei 3 ≤ y ≤ 4 ist, werden jeweils C3 und D3 genannt. Schließlich wird die ZELLE 503, die in der vierten Spalte angeordnet ist und mit E[4, 4] bezeichnet ist, D4 genannt. Die arithmetischen Zellen der ersten Spalte (A1, B1, C1, D1) und die arithmetischen Zellen der zweiten Spalte (B2, C2, D2) liegen jeweils einander über den ersten gemeinsamen Zeitmultiplex-Bus 531 gegenüber, wodurch die Übertragung von Daten von einer beliebigen arithmetischen Zelle der ersten Spalte zu einer beliebigen arithmetischen Zellen der zweiten Spalte ermöglicht wird. Zwischen den arithmetischen Zellen der zweiten Spalte (B2, C2, D2) unter den arithmetischen Zellen der dritten Spalte (C3, D3) ist ein zweiter gemeinsamer Zeitmultiplex-Bus 532 angeordnet. Entsprechend ist zwischen den arithmetischen Zellen der dritten Spalte (C3, D3) und der arithmetischen Zelle der vierten Spalte (D4) ein dritter gemeinsamer Zeitmultiplex-Bus 533 angeordnet.
  • Das arithmetische Array 500a erhält Daten von dem Daten-Eingabeabschnitt 502a, führt arithmetische Operationen mit den erhaltenen Daten aus und führt das Ergebnis den Daten-Ausgabeabschnitt 520a zu. Der Daten-Eingabeabschnitt 520a erhält an seinen vier Eingängen 504 externe Datensignale (Pixelsignale). Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502a zu der ZELLE D1 wird über den BUS. 505 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502a zu der ZEL- LE C1 wird über den BUS 506 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502a zu der ZELLE B1 wird über den BUS 507 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502a zu der ZELLE A1 wird über den BUS 508 durchgeführt. Die Übertragung von Daten von der ZELLE D4 zu dem Daten-Ausgabeabschnitt 502a wird über den BUS 511 durchgeführt. Der Daten-Ausgabeabschnitt 520a stellt ein Datensignal (Pixelsignal) an seinem Ausgang 521 bereit.
  • Jede arithmetische Zelle 503 der Fig. 15 besitzt entweder einen internen Aufbau, wie in Fig. 12 gezeigt ist, oder einen internen Aufbau, wie er in Fig. 13 gezeigt ist. Die Zellen der ersten Spalte D1, C1, B1 und A1 benötigen nicht notwendigerweise einen Eingabe- Taktabschnitt 541. Außerdem benötigt die arithmetische Zelle der vierten Spalten D4 nicht unbedingt einen Eingabe-Taktabschnitt 541 oder einen Ausgabe-Taktabschnitt 543. Der Bildprozessor der Fig. 15 enthält außerdem eine Mikroprozessoreinheit (MPU) 51a und einen Speicher 52a beispielsweise für die Einstellung der Koeffizienten der Koeffizientenregister, die in jeder arithmetischen Zelle 503 vorgesehen sind.
  • Gemäß dem Bildprozessor der Fig. 15 kann beispielsweise der Datenfluss der Fig. 9 über den ersten bis dritten gemeinsamen Zeitmultiplex-Bus 531-533 erreicht werden.
  • AUSFÜHRUNGSFORM 3
  • Fig. 16 stellt in Blockform einen Bildprozessor gemäß der dritten Ausführungsform dieser Erfindung dar. Unter Bezugnahme auf Fig. 16 wird der Aufbau eines Bildprozessors gezeigt, der aus der Hinzufügung von sieben Umgehungs-(Bypass)-Bussen zu dem Aufbau gemäß Fig. 11 resultiert.
  • 500b ist ein Array aus 4 mal 4 arithmetischen Zellen 503. Der erste gemeinsame Zeitmultiplex-Bus 531 liegt zwischen den Zellen der ersten Spalte und den Zellen der zweiten Spalte. Der zweite gemeinsame Zeitmultiplex-Bus 532 liegt zwischen den Zellen der zweiten Spalte und den Zellen der dritten Spalte. Der dritte gemeinsame Zeitmultiplex- Bus 533 liegt zwischen den Zellen der dritten Spalte und den Zellen der vierten Spalte.
  • Das arithmetische Array 500b führt arithmetische Operationen mit Daten von dem Daten-Eingabeabschnitt 502b aus und führt das Ergebnis dem Daten-Eingabe/Ausgabe- Abschnitt 520b zu. Der Daten-Eingabeabschnitt 502b erhält externe Datensignale (Pixelsignale) an seinen fünf Eingängen 504. Die Übertragung von Daten von dem Daten- Eingabeabschnitt 502 zu der ZELLE D1 wird über den BUS 505 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502b zu der ZELLE C1 wird über den BUS 506 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502b zu der ZELLE B1 wird über den BUS 507 durchgeführt. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502b zu der ZELLE A1 wird über den BUS 508 durchgeführt. Die Übertragung von Daten von der ZELLE D4 zu dem Daten-Eingabe/Ausgabe-Abschnitt 520b wird über den BUS 511 durchgeführt. Die Übertragung von Daten von der ZELLE C4 zu dem Daten-Eingabe/Ausgabe-Abschnitt 520b wird über den BUS 512 durchgeführt. Die Übertragung von Daten von der ZELLE B4 zu dem Daten-Eingabe/Ausgabe-Abschnitt 520b wird über den BUS 513 durchgeführt. Die Übertragung von Daten von der ZELLE A4 zu dem Daten-Eingabe/Ausgabe-Abschnitt 520b wird über den BUS 512 durchgeführt. Der erste Umgehungs-(Bypass)-Bus 711 stellt einen Weg bereit, der den Daten-Eingabeabschnitt 502b und den ersten Zeitmultiplex-Bus 531 verbindet, wobei Daten direkt von dem Daten-Eingabeabschnitt 502b zu den arithmetischen Zellen der zweiten Spalte (D2, C2, B2, A2) übertragen werden. Der zweite Bypass-Bus 712 stellt einen Weg bereit, der den ersten gemeinsamen Zeitmultiplex-Bus 531 und den zweiten gemeinsamen Zeitmultiplex-Bus 532 verbindet, wobei Daten direkt von den arithmetischen Zellen der ersten Spalte (D1, C1, B1, A1) zu den arithmetischen Zellen der dritten Spalte (D3, C3, B3, A3) übertragen werden. Zusätzlich ist ein dritter Bypass-Bus 713 vorgesehen, der sich von dem zweiten gemeinsamen Zeitmultiplex-Bus 532 zu dem dritten gemeinsamen Zeitmultiplex-Bus 533 erstreckt, und ein vierter Bypass-Bus 714 ist vorgesehen, der sich von dem dritten gemeinsamen Zeitmultiplex-Bus 533 zu dem Daten-Eingabe/Ausgabe-Abschnitt 520b erstreckt. Der Daten-Eingabe/Ausgabe-Abschnitt 520b weist fünf Ausgänge 521, an denen externe Datensignale (Pixelsignale) bereitgestellt werden, und einen Eingang 504 auf, über den ein externes Datensignal (Pixelsignal) zugeführt wird. Ein fünfter Bypass-Bus 715 stellt einen Weg bereit, der den Daten-Eingabe/Ausgabe-Abschnitt 520b und den dritten gemeinsamen Zeitmultiplex-Bus 533 verbindet, wobei Daten von dem Daten-Eingabe/Ausgabe- Abschnitt 520b zu den arithmetischen Zellen der vierten Spalte (D4, C4, B4, A4) übertragen werden. Ein sechster Bypass-Bus 716 ist vorgesehen, der sich von dem dritten gemeinsamen Zeitmultiplex-Bus 533 zu dem zweiten gemeinsamen Zeitmultiplex-Bus 532 erstreckt, und ein siebter Bypass-Bus 71T ist vorgesehen, der sich von dem zweiten gemeinsamen Zeitmultiplex-Bus 532 zu dem ersten gemeinsamen Zeitmultiplex-Bus 531 erstreckt.
  • Jede der arithmetischen Zellen 503, die das arithmetische Array 500b bilden, ist gemäß dem Aufbau der Fig. 12 aufgebaut. Das Register 611 in dem Ausgabe-Taktabschnitt 543 wird durch einen 3-Bit-Zähler 614 ersetzt (siehe Fig. 13), der beginnend von null bis fünf hochzählt. Der Bildprozessor der Fig. 16 enthält außerdem einen Mikroprozessor (MPU) 51b und einen Speicher 52b, um beispielsweise den Zähler 614 des Ausgabe-Taktabschnittes 534, der in jeder arithmetischen Zelle 503 vorgesehen ist, zu initialisieren.
  • Das Zeitdiagramm der Fig. 17 ist hilfreich für das Verständnis des Betriebs des Bildprozessors der Fig. 16. Fig. 17 zeigt drei Beispiele für die Datenübertragung zwischen allen arithmetischen Zellen 503 über den ersten gemeinsamen Zeitmultiplex-Bus 531 (D1→C2, C1→D2, B1→A2) und zeigt außerdem ein Beispiel der Datenübertragung unter Verwendung des ersten Bypass-Busses 711 (Daten-Eingabeabschnitt 502b→ZELLE B2).
  • In einem ersten Taktzyklus werden Pixeldatenwerte den arithmetischen Zellen der ersten Spalte D1, C1, B1 und A1 in paralleler Weise für arithmetische Operationen zugeführt.
  • In einem zweiten Taktzyklus werden in der ersten Spalte Zähler 614 der ZELLEN D1, C1, B1 und A1 jeweils auf 0, 5, 4 und 3 gesetzt. In der zweiten Spalte werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 1, 0, 5 und 4 gesetzt. Daher führt die ZELLE D1 DATEN D dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung zu der ZELLE C2 zu, während die Ausgaben der ZELLEN C1, B1 und A1 der ersten Spalte im HiZ-Zustand gehalten werden.
  • In einem dritten Taktzyklus werden in der ersten Spalte die Zähler 614 der ZELLEN D1, C1, B1 und A1 jeweils auf 1, 0, 5 und 4 erhöht. In der zweiten Spalte werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 0, 5, 4 und 3 gesetzt. Daher führt die ZELLE C1 DATEN C dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung zu der ZELLE D2 zu, während die Ausgaben der ZELLEN D1, B1 und A1 der ersten Spalte in dem HiZ-Zustand gehalten werden.
  • In einem vierten Taktzyklus werden die Zähler 614 der ZELLEN D1, C1, B1 und A1 jeweils auf 2, 1, 0 und 5 erhöht. In der zweiten Spalte werden die Register 601 der ZELLEN D2, C2, B2 und A2 jeweils auf 3, 2, 1 und 0 gesetzt. Daher führt die ZELLE B1 DATEN B dem ersten gemeinsamen Zeitmultiplex-Bus 531 zur Weiterleitung zu der ZELLE A2 zu, während die Ausgaben der ZELLEN D1, C1 und A1 der ersten Spalte in dem HiZ-Zustand gehalten werden.
  • In einem fünften Taktzyklus werden die Zähler 614 der ZELLEN D1, C1, B1 und A1 jeweils auf 3, 2, 1 und 0 erhöht. Die Register 601 der ZELLEN D2, C2, B2 und A2 werden jeweils auf 4, 3, 2 und 1 gesetzt. Daher führt die ZELLE A1 DATEN A dem ersten gemeinsamen Zeitmultiplex-Bus 531 zu, aber keine der Zellen der zweiten Spalte erhält die DATEN A, wohingegen die Ausgänge von D1, C1 und B1 in der ersten Spalte in dem HiZ-Zustand gehalten werden.
  • In einem sechsten Taktzyklus werden die Zähler 614 der ZELLEN D1, C1, B1 und A1 jeweils auf 4, 3, 2 und 1 erhöht. Die Register 601 der ZELLEN D2, C2, B2 und A2 werden jeweils auf 5, 4, 3 und 2 gesetzt. Daher werden die Ausgänge aller arithmetischen Zellen der ersten Spalte in dem HiZ-Zustand gehalten, und diese arithmetischen Zellen der ersten Spalte weisen einen ungenutzten Zyklus auf ihrer Ausgangsseite auf. Keine arithmetische Zelle der zweiten Spalte erhält Daten von dem ersten gemeinsamen Zeitmultiplex-Bus 531.
  • In einem siebten Taktzyklus werden die Zähler 614 von D1, C1, B1 und A1 in der ersten Spalte jeweils auf 5, 4, 3 und 2 erhöht. Die Register 601 von D2, C2, B2 und A2 werden jeweils auf 2, 1, 0 und 5 eingestellt. Daher werden alle Ausgänge der arithmetischen Zellen der ersten Spalte in dem HiZ-Zustand gehalten, und diese arithmetischen Zellen der ersten Spalte haben einen ungenutzten Zyklus auf ihrer Ausgabeseite; jedoch unter Ausnutzung dieses ungenutzten Zyklus führt der Daten-Eingabeabschnitt 502b DATEN Z dem ersten gemeinsamen Zeitmultiplex-Bus 531 über den ersten Bypass-Bus 711 zur Weiterleitung zur der ZELLE B2 zu.
  • Wie oben beschrieben ermöglicht der Bildprozessor der Fig. 16 nicht nur durch die Übertragung von Daten von den arithmetischen Zellen der ersten Spalte (D1, C1, B1, A1) zu den arithmetischen Zellen der zweiten Spalte (D2, C2, B2, A2), sondern ermöglicht auch die Übertragung von Daten von dem Daten-Eingabeabschnitt 502b zu den arithmetrischen Zellen in der zweiten Spalte (D2, C2, B2, A2) über den ersten Bypass- Bus 711. Bei der Durchführung einer 4-Tap horizontalen Filterverarbeitung unter Verwendung von zehn arithmetischen Zellen (A1, B1, C1, D1, B2, C2, D2, C3, D3, D4), die untereinander durch die BUSSE 531-533 verbunden sind, ist es daher möglich, Daten von dem Daten-Eingabeabschnitt 502b zu einer arithmetischen Zelle zu übertragen, die nicht in der obengenannten horizontalen Filterverarbeitung verwendet wird (z. B. ZELLE A2), durch Verwendung ungenutzter Zyklen. Dies ermöglicht ein arithmetisches Array mit hoher Leistungsfähigkeit. Demgemäß ist das arithmetische Array 500b in der Lage, anspruchsvollere arithmetische Operationen im Vergleich mit dem arithmetischen Array 500 der Fig. 11 durchzuführen, das keine Bypass-Busse besitzt. In der vorliegenden Ausführungsform ist ein ungenutzter Zyklus in zwei Taktzyklen vorhanden, wobei dies jedoch nicht einschränkend zu verstehen ist. Jede beliebige Anzahl von Taktzyklen kann für die ungenutzten Zyklen verwendet werden.
  • Außerdem kann bei dem Bildprozessor der Fig. 16 jeder beliebige der BUSSE 712-717 zur Verfügung stehen. Insbesondere besitzt der Aufbau gemäß Fig. 16 BUSSE 715, 716 und 717 für eine Datenrückkopplung, wodurch die Bildung zyklischer Filter erleichtert wird.
  • AUSFÜHRUNGSFORM 4
  • Fig. 18 stellt in Blockform einen Bildprozessor gemäß der vierten Ausführungsform dieser Erfindung dar. Unter Bezugnahme auf Fig. 18 ist ein Aufbau gezeigt, der aus der Hinzufügung von sechs Bypass-Bussen zu dem Aufbau der Fig. 11 resultiert.
  • 500c ist ein Array aus 4 mal 4 arithmetischen Zellen 503. Der erste gemeinsame Zeitmultiplex-Bus 531 liegt zwischen den Zellen der ersten Spalte und den Zellen der zweiten Spalte, der zweite gemeinsame Zeitmultiplex-Bus 532 zwischen den Zellen der zweiten Spalten und den Zellen der dritten Spalte und der dritte gemeinsame Zeitmultiplex-Bus 533 zwischen den Zellen der dritten Spalte und den Zellen der vierten Spalte.
  • Das arithmetische Array 500c führt arithmetische Operationen mit Daten aus, die von dem Daten-Eingabeabschnitt 502c erhalten werden, und führt das Ergebnis dem Daten- Eingabe/Ausgabe-Abschnitt 520c zu. Der Daten-Eingabeabschnitt 502c erhält externe Datensignale (Pixelsignale) an seinen fünf Eingängen 504. Die Übertragung von Daten von dem Daten-Eingabeabschnitt 502c zu den arithmetischen Zellen der ersten Spalte (D1, C1, B1, A1) wird jeweils über die BUSSE 505-508 ausgeführt, während andererseits die Übertragung von Daten von den arithmetischen Zellen der vierten Spalte (D4, C4, B4, A4) zu dem Daten-Eingabe/Ausgabe-Abschnitt 520c jeweils über die BUSSE 511-514 ausgeführt wird. Der erste Bypass-Bus 721 schafft einen Pfad, der den Daten- Eingabeabschnitt 502c und den ersten Zeitmultiplex-Bus 531 verbindet, wodurch Daten direkt von dem Daten-Eingabeabschnitt 502c zu den arithmetischen Zellen der zweiten Spalte (D2, C2, B2, A2) über den BUS 721 und den BUS 531 übertragen werden. Der zweite Bypass-Bus 722 schafft einen Pfad, der den Daten-Eingabeabschnitt 502c und den zweiten gemeinsamen Zeitmultiplex-Bus 532 verbindet, und der dritte Bypass-Bus 723 schafft einen Pfad, der den Daten-Eingabeabschnitt 502c und den dritten gemeinsamen Zeitmultiplex-Bus 533 verbindet. Der Daten-Eingabe/Ausgabe-Abschnitt 520c besitzt vier Ausgänge 521, an denen entsprechende Datensignale (Pixelsignale) bereitgestellt werden, und besitzt einen Eingang 504 an dem ein externes Datensignal (Pixelsignal) zugeführt wird. Der vierte Bypass-Bus 724 schafft einen Pfad, der den Daten- Eingabe/Ausgabe-Abschnitt 520c und den BUS 531 verbindet, wodurch Daten direkt von dem Daten-Eingabe/Ausgabe-Abschnitt 520c zu den arithmetischen Zellen der zweiten Spalte (D2, C2, B2, A2) übertragen werden. Der fünfte Bypass-Bus 725 schafft einen Pfad, der den Daten-Eingabe/Ausgabe Abschnitt 520c und den BUS 532 verbindet, und der sechste Bypass-Bus 726 schafft einen Pfad, der den Daten-Eingabe/Ausgabe-Abschnitt 520c und den BUS 533 verbindet. Der Bildprozessor der Fig. 18 enthält außerdem eine Mikroprozessoreinheit (MPU) 51c und einen Speicher 52c, die im Einzelnen später erläutert werden.
  • Bezugnehmend auf Fig. 19 wird der interne Aufbau der ZELLE A2 gezeigt. 541 ist ein Eingabe-Taktabschnitt. 542 ist ein Verarbeitungsabschnitt. 543 ist ein Ausgabe-Taktabschnitt. Der Eingabe-Taktabschnitt 541 ist entsprechend dem Aufbau der Fig. 12 oder gemäß dem Aufbau der Fig. 13 aufgebaut, und entsprechend ist der Ausgabe-Taktabschnitt 543 gemäß dem Aufbau der Fig. 12 oder gemäß dem Aufbau der Fig. 13 aufgebaut. Der Verarbeitungsabschnitt 542, der in Fig. 19 gezeigt ist, wird aus einem ersten Signalspeicher 621, einem zweiten Signalspeicher 622, einem Koeffizientenregister 623, einem Multiplizierer 624, einem Addierer 625 und einem dritten Signalspeicher 626 gebildet. Der erste und der zweite Signalspeicher 621 und 622 speichern jeweils Daten, die von dem Eingabe-Taktabschnitt 541 über den Eingang 627 übertragen werden. Der zweite Signalspeicher 622 ist ein Signalspeicher, der auf Null zurücksetzbar ist. Der Multiplizierer 624 erzeugt eine Produktausgabe, die das Produkt aus einem Koeffizienten, der in dem Register 623 gespeichert ist, und einem Datenwert, der in dem ersten Signalspeicher 621 gespeichert ist, angibt. Der Addierer 625 erzeugt eine Summenausgabe, die die Summe aus einem von dem Multiplizierer 624 ausgegebenen Produkt und einem Datenwert darstellt, der in dem zweiten Signalspeicher 622 gespeichert ist. Der dritte Signalspeicher 626 speichert eine Summe, die von dem Addierer 625 ausgegeben wird, um sie zu dem Ausgabe-Taktabschnitt 543 über den Ausgang 628 weiterzuleiten. Die verbleibenden arithmetischen Zellen 503 der Fig. 18 weisen jeweils denselben Aufbau wie die ZELLE A2 der Fig. 19 auf. Es sei darauf hingewiesen, dass keine arithmetische Zelle der ersten Spalte unbedingt einen Eingabe-Taktabschnitt 541 benötigt und dass keine arithmetische Zelle in der vierten Spalte einen Ausgabe-Taktabschnitt 543 notwendigerweise benötigt.
  • Die Mikroprozessoreinheit (MPU) 51c, die in Fig. 18 gezeigt ist, führt beim Empfang eines Verarbeitungsumschalt-Anforderungssignals am Steuereingang 61 Koeffizienten den Koeffizientenregistern 623 der sechzehn arithmetischen Zellen 503 über den BUS 62 zu. Die Mikroprozessoreinheit (MPU) 51c führt außerdem Konstanten den Registern (Zählern) des Eingabe-Taktabschnittes 541 und den Registern (Zählern) des Ausgabe- Taktabschnittes 543 zu. Der Speicher 52c speichert Programme, die von der Mikroprozessoreinheit 51c in Abhängigkeit von dem Verarbeitungsumschalt-Anforderungssignal ausgeführt werden, Programme, die von der Mikroprozessoreinheit 51c zur Zuführung der Konstanten zu den Registern (Zählern) ausgeführt werden, und Daten zur Verwendung bei der obengenannten Zuführung.
  • Der interne Aufbau des Daten-Eingabeabschnitts 502c, durch den der Bildprozessor der Fig. 18 als Vorrichtung arbeitet, die die Funktionen eines 2-Tap horizontalen Filters und eines 2-Tap vertikalen Filters kombiniert und die die Funktion der Kombination der Ausgaben des 2-Tap horizontalen und vertikalen Filters besitzt, ist derselbe Aufbau wie der in Fig. 7 gezeigte. In diesem Fall werden PIXELDATEN h3, die den PIXELDATEN g3, die der ZELLE D1 zuzuführen sind, um eine Zeile voraus sind, der ZELLE C1 zugeführt, und die PIXELDATEN h1, h2 und 3, die in horizontaler Richtung angeordnet sind, werden den jeweiligen arithmetischen Zellen (A1, B1 und C1) zugeführt.
  • Fig. 20 stellt ein Diagramm dar, das für das Verständnis des Betriebs des arithmetischen Arrays 500c hilfreich ist, dessen Daten-Eingabeabschnitt 502c denselben internen Aufbau wie in Fig. 7 gezeigt aufweist. Die Zuführung der Koeffizienten zu jedem der Koeffizientenregister 623 wird folgendermaßen durchgeführt. Die Koeffizientenregister 623 der arithmetischen Zellen der ersten Spalte (A1, B1, C1, D1) werden so eingestellt, dass sie die Koeffizienten a, b, c und d jeweils aufweisen. Die Koeffizientenregister 623 der arithmetischen Zellen C2 und D2, D3 und D4 werden so eingestellt, dass sie jeweils die Koeffizienten 1, 1, 1 und 1 aufweisen. Die zweiten Signalspeicher 622 der arithmetischen Zellen A1, B1, C1, D1 und D4 werden zuvor auf Null gesetzt.
  • Die Zellen A1, B1, C1 und D1 in der ersten Spalte erhalten von dem Daten-Eingabeabschnitt 502c jeweils PIXELDATEN h1, h2, h3 und g3. Die ZELLEN D1, C1, B1 und A1 führen aufeinanderfolgend dem ersten gemeinsamen Zeitmultiplex-Bus 531 jeweils d x g3, c x h3, b x h2 und a x h1 zu. In der ZELLE D2 erhält der erste Signalspeicher 621 von der ZELLE D1 d x g3 und der zweite Signalspeicher 622 erhält von der ZELLE C1 c x h3, woraufhin die ZELLE D2 c x h3 + d x g3 auf den zweiten gemeinsamen Zeitmultiplex-Bus 532 ausgibt. In der ZELLE C2 erhält der erste Signalspeicher 521 b x h2 von der ZELLE B1 und der zweite Signalspeicher 622 erhält a x h1 von der ZELLE A1, woraufhin die ZELLE C2 a x h1 + b x h2 auf den zweiten gemeinsamen Zeitmultiplex-Bus 532 ausgibt. Während hier die Ausgabedaten der ZELLE C2 (a x h1 + b x h2) das Ergebnis einer 2-Tap horizontalen Filterverarbeitung darstellt, stellen die Ausgabedaten der ZELLE D2 (c x h3 + d x g3) das Ergebnis einer 2-Tap vertikalen Filterverarbeitung dar.
  • In der ZELLE D3 erhält der erste Signalspeicher 621 c x h3 + d x g3 von der ZELLE D2 und der zweite Signalspeicher 622 erhält a x h1 + b x h2 von der ZELLE C2, woraufhin die ZELLE D3 a x h1 + b x h2 + c x h3 + d x g3 auf den dritten gemeinsamen Zeitmultiplex-Bus 533 ausgibt. Die ZELLE D4 erhält von der ZELLE D3 a x h1 + b x h2 + c x h3 + d x g3, die unverändert zu dem Daten-Eingabe/Ausgabe-Abschnitt 520c übertragen wird. Die Ausgabedaten der ZELLE D4 (a x h1 + b x h2 + c x h3 + d x g3) wird als kombiniertes Ergebnis eines Ergebnisses der 2-Tap horizontalen Filterverarbeitung und eines Ergebnisses der 2-Tap vertikalen Filterverarbeitung dem Daten-Eingabe/Ausgabe- Abschnitt 520c zugeführt.
  • Wie oben beschrieben arbeitet gemäß dem Bildprozessor der Fig. 18 eine Gruppe von ZELLEN A1, B1 und C2 unabhängig von einer Gruppe von ZELLEN C1, D1 und D2, wodurch eine 2-Tap horizontale Filterverarbeitung und eine 2-Tap vertikale Filterverarbeitung parallel ausgeführt werden. Zusätzlich werden die Ergebnisse dieser 2-Tap horizontalen und vertikalen Filterverarbeitung durch die ZELLEN D3 und D4 kombiniert.
  • Bei der oben beschriebenen Bildverarbeitung werden jedoch die ZELLEN A2, B2, A3, B3, C3, A4, B4 und C4, die in der Figur von einer unterbrochenen Linie umschlossen sind, nicht verwendet. Für die wirksame Nutzung dieser acht Zellen ist der Bildprozessor der Fig. 18 mit einem ersten bis sechsten Bypass-Bus 721-726 ausgestattet.
  • Die Fig. 21 und 22 sind Zeitdiagramme, die für das Verständnis des Bildprozessors der Fig. 18 hilfreich ist, und zeigen Beispiele für die Verwendung des zweiten Bypass-Busses 722 bei der vorhergehend dargestellten Verarbeitung (horizontale/vertikale Filterverarbeitung und Kombinationsverarbeitung).
  • Bei einem ersten Taktzyklus wird jeder der ZELLEN D1, C1, B1 und A1 der ersten Spalte ein entsprechender Pixeldatenwert zugeführt, und diese Pixeldatenwerte werden in paralleler Weise verarbeitet.
  • In einem zweiten Taktzyklus gibt die ZELLE D1 einen Datenwert d x g3 auf den BUS 531 aus, und dieser Datenwert wird anschließend als Eingabe dem ersten Signalspeicher 621 der ZELLE D2 zugeführt.
  • In einem dritten Taktzyklus gibt die ZELLE C1 einen Datenwert c x h3 auf den BUS 531 aus, und dieser Datenwert wird anschließend als Eingabe dem zweiten Signalspeicher 622 der ZELLE D2 zugeführt. Beim Empfang der beiden Datenwerte (d x g3 und c x h3) führt die ZELLE C2 arithmetische Operationen mit diesen aus.
  • In einem vierten Taktzyklus gibt die ZELLE B1 einen Datenwert b x h2 auf den BUS 531 aus, und dieser Datenwert wird anschließend als Eingabe dem ersten Signalspeicher 621 der ZELLE C2 zugeführt. Andererseits gibt die ZELLE D2 einen Datenwert c x h3 + d x g3 auf den BUS 532 aus, und diese Daten werden anschließend als Eingabe dem ersten Signalspeicher 621 der ZELLE D3 zugeführt.
  • In einem fünften Taktzyklus gibt die ZELLE A1 einen Datenwert a x h1 auf den BUS 531 aus, und dieser Datenwert wird anschließend als Eingabe dem zweiten Signalspeicher 622 der ZELLE C2 zugeführt. Beim Empfang der beiden Datenwerte (b x h2 und a x h1) führt die ZELLE C2 arithmetische Operationen mit diesen aus. Die Ausgänge aller arithmetischen Zellen der zweite Spalte werden im HiZ-Zustand gehalten, und diese arithmetischen Zellen der zweiten Spalte weisen auf ihrer Ausgabeseite ungenutzte Zyklen auf; unter Verwendung dieser ungenutzten Zyklen jedoch führt der Daten- Eingabeabschnitt 502c DATEN 21 dem BIJS 532 über den BUS 722 zu. Diese DATEN 21 werden dem ersten Signalspeicher 621 der ZELLE C3 zugeführt.
  • In einem sechsten Taktzyklus gibt die ZELLE C2 einen Datenwert a x h1 + b x h2 auf den BUS 532 aus, und dieser Datenwert wird anschließend als Eingabe dem zweiten Signalspeicher 622 der ZELLE D3 zugeführt. Beim Empfang der beiden Datenwerte (c x h3 + d x g3 und a x h1 + b x h2) führt die ZELLE D3 arithmetische Operationen mit diesen aus.
  • In einem siebten Taktzyklus werden die Ausgänge aller arithmetischen Zellen der zweiten Spalte in dem HiZ-Zustand gehalten, und diese arithmetischen Zellen der zweiten Spalte besitzen ungenutzte Zyklen auf ihren Ausgabeseiten; unter Verwendung dieser ungenutzten Zyklen jedoch führt der Daten-Eingabeabschnitt 502c DATEN 22 dem BUS 532 über den BUS 722 zu. Diese DATEN 22 werden dem zweiten Signalspeicher 622 der ZELLE C3 zugeführt. Beim Empfang der beiden Datenwerte (21 und 22) führt die ZELLE C3 arithmetische Operationen mit diesen aus. Währenddessen führt die ZELLE C3 einen Datenwert von a x h1 + b x h2 + c x h3 +d x g3 dem BUS 533 zu, und dieser Datenwert wird anschließend der ZELLE D4 zugeführt.
  • Von dem achten Taktzyklus an ist die ZELLE C3 in der Lage, den BUS 533 als ihren Datenausgabeweg zu verwenden.
  • Wie oben beschrieben ermöglicht der Bildprozessor der Fig. 18 nicht nur die Übertragung von Daten von den arithmetischen Zellen der zweiten Spalte (D2, C2, B2, A2) zu den arithmetischen Zellen in der dritten Spalte (D3, C3, B3, A3), sondern ermöglicht auch die direkte Übertragung von Daten von dem Daten-Eingabeabschnitt 502c für die arithmetischen Zellen der dritten Spalte (D3, C3, B3, A3) über den BUS 722. Bei der Durchführung der horizontalen Filterverarbeitung, der vertikalen Filterverarbeitung und der Kombinationsverarbeitung unter Verwendung von acht arithmetischen Zellen (A1, B1, C1, D1, C2, D2, D3, D4), die untereinander über die BUSSE 531-533 verbunden sind, ist es daher möglich, Daten von dem Daten-Eingabeabschnitt 502c zu arithmetischen Zellen zu übertragen, die nicht in der obengenannten Verarbeitung verwendet werden (z. B. ZELLE C3), unter Verwendung der ungenutzten Zyklen. Damit wird ein arithmetisches Array hoher Leistungsfähigkeit erreicht. Das arithmetische Array 500c ist daher in der Lage, anspruchsvollere arithmetische Operationen im Vergleich mit dem arithmetischen Array 500 der Fig. 11 auszuführen, dass keine Bypass-Busse besitzt.
  • Außerdem ist gemäß dem Bildprozessor der Fig. 18 jede der BUSSE 721 und 723-726 verwendbar. Insbesondere weist der Aufbau der Fig. 18 BUSSE 724, 725 und 726 für eine Datenrückkopplung auf, die die Bildung zyklischer Filter erleichtern.
  • AUSFÜHRUNGSFORM 5
  • Fig. 23 ist ein Blockdiagramm, das einen Bildprozessor gemäß der fünften Ausführungsform dieser Erfindung darstellt. 500d ist ein Array aus zwanzig gleichzeitig betreibbaren arithmetischen Zellen 503, wobei jede Zelle 503 durch eine Bezeichnung gemäß E[x, y] bezeichnet ist, wobei 1 ≤ x ≤ 4 und 1 ≤ y ≤ 5 ist. Das arithmetische Array 500d führt arithmetische Operationen mit Daten aus, die von dem ersten Daten-Eingabe/Ausgabe-Abschnitt 502d erhalten werden, und führt das Ergebnis der arithmetischen Operationen dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 520d zu. Außerdem führt das arithmetische Array 500d arithmetische Operationen mit Daten aus, die von dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 520d erhalten werden, und führt das Ergebnis der arithmetischen Operation dem ersten Daten-Eingabe/Ausgabe-Abschnitt 502d zu. Wie in Fig. 10 werden die ZELLEN 503 der ersten Spalte, die mit E[1, y] bezeichnet sind, wobei 2 ≤ x ≤ 5 ist, jeweils A1, B1, C1 und D1 genannt. Die ZELLEN 503 der zweiten Spalte, die mit E[2, y] bezeichnet sind, wobei 3 ≤ y ≤ 5 ist, werden jeweils B2, C2 und D2 genannt. Die ZELLEN 503 der dritten Spalte, die mit E[3, y] bezeichnet sind, wobei 4 ≤ y ≤ 5 ist, werden jeweils C3 und D3 genannt. Die ZELLE 503 der vierten Spalte, die mit E[4, 5] bezeichnet ist, wird D4 genannt. Die verbleibenden vier arithmetischen ZELLEN 503 der vierten Spalte, die mit E[4, y] bezeichnet sind, wobei 4 ≥ y ≥ 1 ist, werden jeweils P1, Q1, R1 und S1 genannt. Die verbleibenden drei arithmetischen ZELLEN 503 der dritten Spalte, die mit E[3, y] bezeichnet sind, wobei 3 ≥ y ≥ 1 ist, werden jeweils Q2, R2 und S2 genannt. Die verbleibenden beiden arithmetischen ZELLEN 503 der zweiten Spalte, die mit E[2, y] bezeichnet sind, wobei 2 ≥ y ≥ 1 ist, werden jeweils R3 und S3 genannt. Schließlich wird die verbleibende arithmetische ZELLE 503 der ersten Spalte, die mit E[1, 1] bezeichnet ist, 54 genannt.
  • Während der erste Daten-Eingabe/Ausgabe-Abschnitt 502d externe Datensignale (Pixelsignale) an seinen vier Eingängen 504 empfängt, empfängt der zweite Daten-Eingabe/Ausgabe-Abschnitt 520d externe Datensignale (Pixelsignale) an seinen vier Eingängen 504. Die Übertragung von Daten von dem ersten Daten-Eingabe/Ausgabe-Abschnitt 502d zu den ZELLEN D1, C1, B1 und A1 der ersten Spalte des arithmetischen Arrays 502d wird jeweils über die BUSSE 505, 506, 507 und 508 ausgeführt. Die Übertragung von Daten von dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 520d zu den ZELLEN P1, Q1, R1 und S1 in der vierten Spalte wird jeweils über die BUSSE 512, 513, 514 und 515 ausgeführt. Der erste gemeinsamen Zeitmultiplex-Bus 531 ist zwischen den arithmetischen Zellen der ersten Spalte (S4, A1, B1, C1, D1) und den arithmetischen Zellen in der zweiten Spalte (S3, R3, B2, C2, D2) angeordnet, wodurch die Übertragung von Daten von jeder der ZELLEN A1, B1, C1, D1, R3, S3 zu jeder der ZELLEN B2, C2, D2, S4 ermöglicht wird. Der zweite gemeinsame Zeitmultiplex-Bus 532 ist zwischen den arithmetischen Zellen der zweiten Spalte (S3, R3, B2, C2, D2) und den arithmetischen Zellen der dritten Spalte (S2, R2, Q2, C3, D3) angeordnet, wodurch die Übertragung von Daten von jeder der Zellen B2, C2, D2, Q2, R2, S2 zu jeder der ZELLEN C3, D3, R3, S3 ermöglicht wird. Der dritte gemeinsame Zeitmultiplex-Bus 533 ist zwischen die arithmetische Zellen der dritten Spalte (S2, R2, Q2, C3, D3) und den arithmetischen Zellen der vierten Spalte (S1, R1, Q1, P1, D4) angeordnet, wodurch die Übertragung von Daten von jeder der ZELLEN C3, D3, P1, Q1, R1, S1 zu jeder der ZELLEN D4, Q2, R2, S2 ermöglicht wird. Die Übertragung von Daten von der ZELLE D4 der vierten Spalte zu dem zweiten Daten-Eingabe/Ausgabe-Abschnitt 520d wird über den BUS 511 durchgeführt, und der zweite Daten-Eingabe/Ausgabe-Abschnitt 520d stellt an seinem Ausgang 521 ein Datensignal (Pixelsignal) bereit. Die Übertragung von Daten von der ZELLE S4 der ersten Spalte zu dem ersten Daten-Eingabe/Ausgabe- Abschnitt 502d wird über den BUS 516 ausgeführt, und der erste Daten- Eingabe/Ausgabe-Abschnitt 502d gibt an seinem Ausgang 521 ein Datensignal (Pixelsignal) aus.
  • Das arithmetische Array 500d der Fig. 23 besitzt einen Aufbau, der durch Auffüllen eines leeren Teils des arithmetischen Arrays 500a der Fig. 15 mit einem identischen Array realisiert ist. Bei der Anordnung auf LSIs kann daher der Chipbereich effizienter im Vergleich mit einem Array 500a der Fig. 15 verwendet werden. Der Bildprozessor der Fig. 23 enthält außerdem eine Mikroprozessoreinheit (MPU) 51d und einen Speicher 52d, um beispielsweise die Koeffizienten den Koeffizientenregistern zuzuführen, die in jede arithmetische Zelle 503 integriert sind.
  • Gemäß dem Bildprozessor der Fig. 23 arbeitet eine Gruppe von ZELLEN A1, B1, C1, D1, B2, C2, D2, C3, D3 und D4, die untereinander durch BUSSE 531, 532 und 533 verbunden sind, unabhängig von einer Gruppe von ZELLEN P1, Q1, R1, S1, Q2, R2, S2, R3, S3 und S4, die entsprechend untereinander durch BUSSE 531, 532 und 533 verbunden sind. Dies ermöglicht einer der Gruppen, eine horizontale Filterverarbeitung durchzuführen, und der anderen Gruppe, eine vertikale Filterverarbeitung durchzuführen. Zusätzlich ermöglicht die externe Verbindung dieser zwanzig ZELLEN 503, eine Schleife zu bilden, die die Bildung von zyklischen Filtern erleichtert. Außerdem ist es möglich, ein zyklisches Filter mit zwei der arithmetischen Zellen der Fig. 23 zu bilden (beispielsweise den ZELLEN B2 und R3). Die Bypass-Busse, die in Fig. 16 und Fig. 18 gezeigt sind, können dem Aufbau der Fig. 23 hinzugefügt werden.
  • Gemäß jeder der oben beschriebenen Ausführungsformen der vorliegenden Erfindung ist es möglich, eine Mehrzahl von arithmetischen Zellen für die Multiplikation/Addition, die zusammen ein arithmetisches Array für die programmierbare Bildverarbeitung bilden, in paralleler Weise zu betreiben, wobei die parallele Verarbeitung mit einer kleineren Busstruktur effizienter ausgeführt werden kann.
  • Für jede der Mikroprozessoreinheiten in den oben beschriebenen Beispielen ist es möglich, ein arithmetisches Array zu bilden. Beispielsweise kann die Mikroprozessoreinheit 11, die in Fig. 1 gezeigt ist, so entworfen sein, das sie arithmetische und logische Operationen mit Pixeldaten ausführt, die von dem Daten-Eingabeabschnitt 102 zugeführt werden. Außerdem kann die Mikroprozessoreinheit 11 so entworfen sein, dass sie arithmetische und logische Operationen mit Daten ausführt, die sie von jeder beliebigen der sechzehn arithmetischen Zellen 103 erhält. Das Ergebnis wird entweder einer anderen arithmetischen Zelle 103 oder dem Daten-Ausgabeabschnitt 120 zugeführt.

Claims (13)

1. Signalprozessor mit:
einer arithmetischen Einheit (500) zur Durchführung von arithmetischen Operationen mit Daten, wobei die arithmetische Einheit ein Array aus einer Mehrzahl von gleichzeitig betreibbaren arithmetischen Zellen (503) enthält, die in Spalten und Zeilen angeordnet sind, wobei jede der arithmetischen Zellen (503) durch eine Bezeichnung der Art E [x, y] bezeichnet ist, wobei x einen Spaltennummer-Index darstellt, der 1 ≤ x ≤ M genügt, und y einen Zeilennummer- Index darstellt, der x ≤ y ≤ M genügt, wobei M eine ganze Zahl mit M 2 ist,
gekennzeichnet durch
eine erste Schnittstelle (502) zum Empfang von externen Datensignalen und zur Übertragung von Daten, die den empfangenen Signalen entsprechen, an die arithmetische Einheit (500), wobei eine arithmetische Zelle, die mit E [1, y] bezeichnet ist, wobei 1 ≤ y ≤ M ist, Daten von der ersten Schnittstelle (502) erhält,
eine zweite Schnittstelle (520) zum Empfang von Daten, die von der arithmetischen Einheit (500) verarbeitet sind, und zur Bereitstellung von Datensignalen, die den empfangenen Daten entsprechen, wobei eine arithmetische Zelle E [M, M] Daten der zweiten Schnittstelle (520) zuführt, eine Mehrzahl von gemeinsamen Zeitmultiplex-Bussen (531-533), von denen jeder durch eine Bezeichnung der Art B[k] bezeichnet ist, wobei k eine ganze Zahl mit 1 ≤ k ≤ M - 1 ist, wobei ein gemeinsamer Bus B[k] einen Weg bereitstellt, der eine arithmetische Zelle, die mit E [k, y] bezeichnet ist, wobei k ≤ y ≤ M ist, und eine arithmetische Zelle, die mit E[k + 1, y] bezeichnet ist, wobei k + 1 ≤ y ≤ M ist, verbindet, wobei eine arithmetische Zelle, die mit E[k + 1, y] bezeichnet ist, wobei k + 1 ≤ y ≤ M ist, Daten von einer arithmetischen Zelle, die mit E[k, y] bezeichnet ist, wobei k ≤ y ≤ M ist, über den gemeinsamen Bus B[k, y] (531, 533) erhält.
2. Signalprozessor nach Anspruch 1, wobei die arithmetische Einheit außerdem gleichzeitig betreibbare arithmetische Zellen (503) enthält, sie mit E[x, y] bezeichnet sind, wobei 2 ≤ x ≤ M und 1 ≤ y ≤ x - 1 ist, wobei:
eine arithmetische Zelle, die mit E[k + 1, y] bezeichnet ist, wobei 1 ≤ y ≤ M ist, Daten über den gemeinsamen Bus B[k] (531-533) von einer arithmetischen Zelle erhält, die mit E[k, y] bezeichnet ist, wobei 1 ≤ y ≤ M ist, und
eine arithmetische Zelle, die mit E [M, y] bezeichnet ist, wobei 1 ≤ y ≤ M-1 ist, Daten der zweiten Schnittstelle (520) zuführt.
3. Signalprozessor nach Anspruch 1 oder 2, wobei die erste Schnittstelle (502) (M-1) Datenspeichereinrichtungen zur Speicherung von Daten enthält, wobei die Datenspeichereinrichtungen in Hintereinanderschaltung miteinander verbunden sind.
4. Signalprozessor nach einem der Ansprüche 1 bis 3, wobei eine arithmetische Zelle (503), die mit E[k + 1, y] bezeichnet ist, wobei k + 1 ≤ y ≤ M ist, ein Register (601) besitzt, das wiederbeschreibbar ist, und Daten von dem gemeinsamen Bus B[k] (531-533) erhält, wenn ein Wert, der in dem Register (601) eingestellt ist, und ein vorbestimmter Wert übereinstimmen.
5. Signalprozessor nach einem der Ansprüche 1 bis 4, wobei eine arithmetische Zelle (503), die mit E[k + 1, y] bezeichnet ist, wobei k + 1 ≤ y ≤ M ist, einen Zähler (604) besitzt, der in der Lage ist, die Anzahl von Taktimpulsen zu zählen und zu speichern, und Daten von dem gemeinsamen Bus B[k] (531-533) erhält, wenn ein Wert, der in dem Zähler (604) gespeichert ist, und ein vorbestimmter Wert übereinstimmen.
6. Signalprozessor nach einem der Ansprüche 1 bis 5, wobei eine arithmetische Zelle (503), die mit E[k, y] bezeichnet ist, wobei k ≤ y ≤ M ist, ein Register (611) besitzt, das wiederbeschreibbar ist, und Daten an den gemeinsamen Bus B[k] (531-533) ausgibt, wenn ein Wert, der in dem Register (611) gesetzt ist, und ein vorbestimmter Wert übereinstimmen.
7. Signalprozessor nach einem der Ansprüche 1 bis 5, wobei eine arithmetische Zelle (503), die mit E[k, y] bezeichnet ist, wobei k ≤ y ≤ M ist, einen Zähler enthält, der in der Lage ist, die Anzahl von Taktimpulsen zu zählen und zu speichern, und Daten an den gemeinsamen Bus B[k] (531-533) ausgibt, wenn ein Wert, der in dem Zähler (614) gespeichert ist, und ein vorbestimmter Wert übereinstimmen.
8. Signalprozessor nach einem der Ansprüche 1 bis 7, wobei eine arithmetische Zelle (503), die mit E[x, y] bezeichnet ist, wobei 1 ≤ x ≤ M und x ≤ y ≤ M ist, einen Multiplizierer (624) und einen Addierer für eine Multiplizier/Addier-Operation aufweist.
9. Signalprozessor nach Anspruch 8, wobei die arithmetische Zelle (503), die mit E[x, y] bezeichnet ist, wobei 1 ≤ x ≤ M und x ≤ y ≤ M ist, außerdem ein wiederbeschreibbares Koeffizientenregister (623) zur Zuführung eines Koeffizienten zu einem der Eingänge des Multiplizierers (624) aufweist.
10. Signalprozessor nach einem der Ansprüche 1 bis 9, der außerdem einen Bypass- Bus (721, 723) aufweist, der einen Weg bereitstellt, der die erste Schnittstelle (502b) und den gemeinsamen Bus B[k] (531-533) verbindet, wobei 1 ≤ k ≤ M-1 ist.
11. Signalprozessor nach einem der Ansprüche 1 bis 10, der außerdem einen Bypaß- Bus (724-726) aufweist, der einen Weg bereitstellt, der den gemeinsamen Bus B[k] (531-533), wobei 1 ≤ k ≤ M -list, und die zweite Schnittstelle (520b) verbindet.
12. Signalprozessor nach einem der Ansprüche 1 bist 11, der außerdem einen Bypaß-Bus (712, 713) umfasst, der einen Weg bereitstellt, der eine Verbindung zwischen zumindest zwei Bussen (531, 533) der Mehrzahl der gemeinsamen Zeitmultiplex-Busse B[k] (531-533) herstellt, wobei M 3 und 1 ≤ k ≤ M-1 ist.
13. Signalprozessor nach Anspruch 1, wobei das Array der Mehrzahl von gleichzeitig betreibbaren arithmetischen Zellen (503) in Spalten und Zahlen angeordnet ist, wobei jede der arithmetischen Zellen (503) durch eine Bezeichnung der Art E[x, y] bezeichnet ist, wobei x ein Spaltennummer-Index ist, der 1 ≤ x ≤ M genügt, und y in Zeilennummer-Index ist, der 0 ≤ y ≤ M genügt, wobei M eine ganze Zahl mit M 2 ist,
ein gemeinsamer Bus B[k] der Mehrzahl der gemeinsamen Zeitmultiplex-Busse (531-533) einen Weg bereitstellt, der eine arithmetische Zelle, die mit E[k, y] bezeichnet ist, wobei 0 ≤ y ≤ M ist, und eine arithmetische Zelle, mit E[k + 1, y] bezeichnet ist, wobei 0 ≤ y ≤ M ist, verbindet, eine arithmetische Zelle, die mit E[1, y] bezeichnet ist, wobei 1 ≤ y ≤ M ist, Daten von der ersten Schnittstelle (502d) erhält,
eine arithmetische Zelle, die mit E[k + 1, y] bezeichnet ist, wobei k + 1 ≤ y ≤ M ist, Daten von einer arithmetischen Zelle, die mit E[k, y] bezeichnet ist, wobei k y M ist, als auch von einer arithmetischen Zelle, die mit E[k + 1, y] bezeichnet ist, wobei 0 ≤ y ≤ k ist, über den gemeinsamen Bus [k] (531-533) erhält,
eine arithmetische Zelle E[M, M] Daten der zweiten Schnittstelle (520d) zuführt,
eine arithmetische Zelle, die mit E[M, y] bezeichnet ist, wobei 0 ≤ y ≤ M-1 ist, Daten von der zweiten Schnittstelle (520d) erhält,
eine arithmetische Zelle, die mit E[k, y] bezeichnet ist, wobei 0 ≤ y ≤ k-1 ist, über den den gemeinsamen Bus B[k] Daten sowohl von einer arithmetischen Zelle E[k + 1, y], wobei 0 ≤ y ≤ k ist, als auch von einer arithmetischen Zelle E[k, y], wobei k ≤ y ≤ M ist, erhält und
eine arithmetische Zelle E[0,0] Daten der ersten Schnittstelle (502d) zuführt.
DE69526299T 1994-10-21 1995-10-20 Signalprozessor Expired - Lifetime DE69526299T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25699494 1994-10-21

Publications (2)

Publication Number Publication Date
DE69526299D1 DE69526299D1 (de) 2002-05-16
DE69526299T2 true DE69526299T2 (de) 2002-08-14

Family

ID=17300248

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69526299T Expired - Lifetime DE69526299T2 (de) 1994-10-21 1995-10-20 Signalprozessor

Country Status (4)

Country Link
US (1) US5703800A (de)
EP (3) EP1174800A1 (de)
KR (1) KR100186918B1 (de)
DE (1) DE69526299T2 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970061132A (ko) * 1996-02-17 1997-09-12 원인호 항균판의 제조 및 이를 이용한 신발
JP3902741B2 (ja) * 2002-01-25 2007-04-11 株式会社半導体理工学研究センター 半導体集積回路装置
TWI391900B (zh) * 2008-04-28 2013-04-01 Novatek Microelectronics Corp 用於低色偏液晶顯示器之資料驅動電路

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541048A (en) * 1978-10-06 1985-09-10 Hughes Aircraft Company Modular programmable signal processor
EP0086904B1 (de) * 1982-02-18 1985-11-21 Deutsche ITT Industries GmbH Digitale Parallel-Rechenschaltung für positive und negative Binärzahlen
US4580215A (en) * 1983-03-08 1986-04-01 Itt Corporation Associative array with five arithmetic paths
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
JPS59172064A (ja) * 1983-03-18 1984-09-28 Fujitsu Ltd ビデオ・システムにおける並列処理方式
JPS60159973A (ja) * 1984-01-31 1985-08-21 Toshiba Corp 画像処理装置
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
JP2690932B2 (ja) * 1988-03-18 1997-12-17 株式会社日立製作所 ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム
JPH0736163B2 (ja) * 1988-08-26 1995-04-19 株式会社東芝 塗潰しパターン発生装置
GB2247328A (en) * 1990-08-08 1992-02-26 Philips Electronic Associated Data processing system

Also Published As

Publication number Publication date
KR100186918B1 (ko) 1999-05-01
EP0708407A1 (de) 1996-04-24
EP0708407B1 (de) 2002-04-10
DE69526299D1 (de) 2002-05-16
KR960016574A (ko) 1996-05-22
EP2085893A2 (de) 2009-08-05
EP1174800A1 (de) 2002-01-23
EP2085893A3 (de) 2011-08-10
US5703800A (en) 1997-12-30

Similar Documents

Publication Publication Date Title
DE69520974T2 (de) Eine integrierte Halbleiterschaltung
DE68926783T2 (de) Paralleler datenprozessor
DE3856015T2 (de) Berechnungseinrichtung für Parallelprozessoren
DE3885775T2 (de) Digitaler Signalprozessor.
DE69711457T2 (de) Feldprogrammierbarer prozessor
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE69519145T2 (de) Parallelprozessorvorrichtung
DE69619366T2 (de) Sperr- und eurekasynchronisierungsarchitektur für multiprozessoren
DE69703085T2 (de) Koprozessor mit zwei parallel arbeitenden Multiplizierschaltungen
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE3631333C2 (de)
DE602004006516T2 (de) Parallel-verarbeitungs-array
WO2002029600A2 (de) Zellenarordnung mit segmentierterwischenzellstruktur
DE3506749A1 (de) Matrixprozessor und steuerverfahren hierfuer
DE3632639C2 (de) Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung
DE68927611T2 (de) Digitales neuronales Netwerk
DE2912287B2 (de) Datenverarbeitungsanlage
DE60034470T2 (de) Massiv paralleles Datenverarbeitungssystem und skalierbares Verbindungsnetz für ein solches System
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE69521464T2 (de) Paralleler Prozessor
DE3587517T2 (de) Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden.
DE69526299T2 (de) Signalprozessor
DE3885234T2 (de) Bildelementdatenverarbeitungsvorrichtung.
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP

8320 Willingness to grant licences declared (paragraph 23)