Die Erfindung bezieht sich auf ein Bildverarbeitungsgerät ge
mäß dem Oberbegriff des Patentanspruchs 1.
Aus der DE 35 38 639 A1 ist ein Bildverarbeitungsgerät be
kannt, das neben zwei Speichereinrichtungen auch eine Ein
richtung zum Unterteilen von Bilddaten in eine vorbestimmte
Anzahl von Bereichen, sowie eine Prozessoreinheit aufweist.
Darüber hinaus wird dort auch grundsätzlich eine Verarbeitung
der Bilddaten beispielsweise durch Komprimierung und Codie
rung vorgeschlagen. Auch eine Unterteilung einer Speicherein
richtung in eine Vielzahl von Speicherelementen, die vonein
ander unabhängig adressier- und abrufbar sind, läßt sich die
ser Druckschrift entnehmen. Das Ergebnis der dort durchge
führten Verarbeitung wird einer Speichereinrichtung zuge
führt.
J. L. Potter: "Image Processing on the Massively Parallel
Processor" in "Computer", Januar 1983, Seiten 62 bis 67
schlägt ein Bildverarbeitungsgerät vor, das mit Hilfe einer
Mehrzahl von gleichzeitig arbeitenden Prozessoren zu einer
sehr schnellen Bildverarbeitung in der Lage ist. Selbstver
ständlich wird auch dort eine Adressensteuerung durchgeführt.
Von einer Verarbeitung von Teilbereichen ist dort keine Rede.
In der US 4 786 820 ist ein
Verfahren für eine Parallelverarbeitung vorge
schlagen, das die Unterteilung der Bilddaten in eine
Vielzahl von Blöcken aus jeweils mehreren Bilddaten
posten und das Verarbeiten der Bilddaten in einen jeden
Block durch jeweils eine von einer Vielzahl von Zen
traleinheiten vorsieht. Die Anordnung ist derart getrof
fen, daß jede Zentraleinheit die Bilddaten des entspre
chenden Blocks sowie die Bilddaten der benachbarten
Blöcke aufnimmt und daß die Zentraleinheit die Bilddaten
des entsprechenden Blocks verarbeitet.
Der Erfindung liegt die Aufgabe zugrunde, ein Bildverarbei
tungsgerät zu schaffen, das derart ausgebildet ist, daß bei
der parallelen Verarbeitung von Bildinformationen mittels ei
ner Vielzahl von Prozessoren eine komplizierte Verarbeitung
auf einfache Weise durchgeführt werden kann.
Diese Aufgabe wird durch das Bildverarbeitungsgerät mit den
im Patentanspruch 1 angegebenen Merkmalen auf besonders vor
teilhafte Art und Weise gelöst.
Vorteilhafte Weiterbildungen der Erfindung sind Gegenstand
der Unteransprüche.
Die Erfindung wird nachstehend anhand von Ausführungsbeispie
len unter Bezugnahme auf die Zeichnungen näher erläutert.
Fig. 1 ist eine Blockdarstellung, die eine Bildverarbei
tungseinrichtung gemäß einem Ausführungsbeispiel zeigt.
Fig. 2 ist eine Darstellung, die den Zusammenhang zwischen
einem Einzelbild und Adressen von Speicherelementen veran
schaulicht.
Fig. 3 ist eine Darstellung, die einen Speicher mit 4 × 4
Speicherelementen als Ganzen zeigt.
Fig. 4 zeigt einen Speicher mit zugeordneten Adressengenera
toren.
Fig. 5 zeigt einen Teil eines Bildes.
Fig. 6 zeigt eine Zuordnung eines Speichers für einen Teil
eines Bildes.
Fig. 7 ist ein Blockschaltbild einer Speicheradressen-Steuer
schaltung.
Fig. 8 ist ein Blockschaltbild einer Bildelementda
ten-Steuerschaltung.
Fig. 9(a) und (b) sind Blockdarstellungen, die den
Aufbau der Bildverarbeitungseinrichtung gemäß anderen Ausfüh
rungsbeispielen zeigen.
Fig. 10 ist eine Darstellung eines Einzelbilds.
Fig. 11 zeigt k × ℓ Speicherelemente.
Fig. 12 und 13 zeigen eine einzelne Speicherein
heit.
Fig. 14 und 15 sind Blockschaltbilder von Speicher
elementabruf-Steuerschaltungen.
Fig. 16 zeigt ein Einzelbild.
Fig. 17 zeigt k × ℓ Speicherelemente.
Fig. 18 ist ein Blockschaltbild einer Adressenum
setzschaltung.
Fig. 19(a) ist ein Blockschaltbild, das das Konzept
der Gestaltung eines Prozessorelements veranschaulicht.
Fig. 19(b) ist ein Blockschaltbild eines Prozes
sorelements, in welchem eine logische Recheneinheit nach Fig.
19(a) durch einen Mikroprozessor gebildet ist.
Fig. 20 ist eine grafische Darstellung zur Erläute
rung einer Dichteumsetzung.
Fig. 21 veranschaulicht einen Maskiervorgang.
Fig. 22 ist ein Ablaufdiagramm eines Verfahrens zur
Dichteumsetzung.
Fig. 23 ist ein Ablaufdiagramm eines Verfahrens zur
Farbumsetzung.
Fig. 24 ist ein Ablaufdiagramm eines Verfahrens zum
Maskieren.
Fig. 25 zeigt eine Bilddatenanordnung vor einer
Drehung.
Fig. 26 zeigt einen Zustand, der sich ergibt, wenn
eine Drehung in Bildelementeblock-Einheiten ausgeführt wurde.
Fig. 27 zeigt einen Zustand, der sich ergibt, wenn
die Drehung in Bildelementeinheiten innerhalb der Blöcke
ausgeführt wurde.
Fig. 28 zeigt die Anordnung von Bildelementen in
Blöcken vor der Drehung und nach der Drehung in Bildelemente
block-Einheiten.
Fig. 29 zeigt die Anordnung der Bildelemente in den
Blöcken nach der Drehung innerhalb der Bildelementeblöcke.
Fig. 30 ist ein Blockschaltbild einer Schaltung für
das Ausführen einer Drehung.
Fig. 31 zeigt eine Blockdaten-Wählschaltung.
Fig. 32 zeigt ein Beispiel für eine Adressenum
setzschaltung für das Umsetzen von Adressen innerhalb von
Blöcken.
Fig. 33 zeigt eine Schaltung zum Erzeugen von Ad
ressen innerhalb von Blöcken vor einer Umsetzung.
Fig. 34 ist ein Blockschaltbild einer weiteren
Schaltung für das Ausführen einer Drehung.
Fig. 35 zeigt Bereichsunterteilungen und Abtastun
gen in bezug auf ein Bild.
Fig. 36 zeigt Teilbereiche, die nicht einer Orts
frequenzfilterung unterzogen werden.
Fig. 37 ist eine Blockdarstellung einer Bildverar
beitungseinrichtung zur Ortsfrequenzfilterung.
Fig. 38(a) veranschaulicht die Vergrößerung und
Abtastung von Bereichen, die durch das Unterteilen eines
Einzelbilds gebildet werden.
Fig. 38(b) zeigt einen Teil eines Bereiches.
Fig. 39 ist eine Blockdarstellung, die eine andere
Anordnung einer Bildverarbeitungseinrichtung zur Ortsfre
quenzfilterung zeigt.
Fig. 40 zeigt eine Datensteuerschaltung.
Fig. 41 ist eine Blockdarstellung eines Prozessor
elements.
Fig. 42 zeigt die Zusammenhänge zwischen dem Format
eines Eingangs-Bildelementebereichs eines eingangsseitigen
Speichers, dem Format eines Ausgangs-Bildelementebereichs
eines ausgangsseitigen Speichers und dem Matrixformat einer
Prozessoreinheit.
Fig. 43 veranschaulicht die Datenübertragung zwi
schen Prozessorelementen einer Prozessoreinheit.
Fig. 44 zeigt eine Koeffizientenmatrix für eine
Ortsfrequenzfilterung mittels der Prozessoreinheit.
Fig. 45 ist ein Blockschaltbild einer Schaltung zur
Ortsfrequenzfilterung.
Fig. 46 ist eine Blockdarstellung, die das Konzept
für eine Vergrößerung veranschaulicht.
Fig. 47 ist eine Blockdarstellung eines Adressen
generatorteils einer Prozessoreinheit.
Fig. 48 ist eine Blockdarstellung, die das Konzept
für den Innenaufbau der Prozessoreinheit veranschaulicht.
Fig. 49 zeigt schematisch eine Datenwählschaltung
in einem jeweiligen Prozessorelement.
Fig. 50 ist ein Blockschaltbild der Datenwählschal
tung.
Fig. 51 ist ein Blockschaltbild, das Einzelheiten
eines Hauptabtastungswählers und eines Unterabtastungswählers
nach Fig. 50 zeigt.
Fig. 52 ist eine schematische Darstellung einer
Schaltung zur zweidimensionalen linearen Interpolation.
Fig. 53 veranschaulicht die Zusammenhänge zwischen
Formaten von Eingabe/Ausgabe-Bildelementebereichen und dem
Matrixformat einer Prozessoreinheit.
Fig. 54 zeigt die Zusammenhänge zwischen einem
eingangsseitigen Bildspeicher, einer Prozessoreinheit und
einem ausgangsseitigen Bildspeicher bei einem Ausführungsbei
spiel.
Fig. 55 zeigt das Format von bei dem Ausführungs
beispiel verwendeten Bildreduktionsdaten.
Fig. 56 ist eine Darstellung der Funktion eines
jeden Prozessorelements bei dem Ausführungsbeispiel.
Fig. 57 zeigt die Zusammenhänge zwischen einem
eingangsseitigen Bildspeicher, einer Prozessoreinheit und
einem ausgangsseitigen Bildspeicher bei einem weiteren Aus
führungsbeispiel der Bildverarbeitungseinrichtung.
Fig. 58 und 59 veranschaulichen schematisch die
Funktion eines jeden Prozessorelements bei dem Ausführungs
beispiel.
Fig. 60 zeigt die Zusammenhänge zwischen einem
Eingangsbildspeicher, einer Prozessoreinheit und einem Aus
gangsbildspeicher bei dem Ausführen einer Vergrößerung mit
der Bildverarbeitungseinrichtung gemäß einem Ausführungsbei
spiel.
Fig. 61 zeigt die Zusammenhänge zwischen Bildspei
chern und Prozessoreinheiten bei einem Ausführungsbeispiel
der Bildverarbeitungseinrichtung.
Fig. 62 zeigt Einzelheiten einer Prozessoreinheit
bei dem Ausführungsbeispiel.
Fig. 63 ist ein Ablaufdiagramm einer Farbsteuerung
bei einem Ausführungsbeispiel der Bildverarbeitungseinrich
tung.
Fig. 64 veranschaulicht einen Datenaustausch bei
einer Farbkorrektur.
Fig. 65 veranschaulicht eine Bildversetzung.
Fig. 66 zeigt den Aufbau einer Prozessoreinheit 312
nach Fig. 46 sowie einen mittels der Prozessoreinheit 312 in
einem Eingabe-Bildspeicher 316 abgerufenen Bereich.
Fig. 67 veranschaulicht die Zusammenhänge zwischen
jeweiligen Prozessorelementen PE nach Fig. 65 und einem Aus
gabe-Bildspeicher 317.
Fig. 68 zeigt den Aufbau jeweiliger Digital-Inte
gratoren nach Fig. 66.
Anhand der Fig. 1 wird nun ein erstes Ausführungsbeispiel der
Bildverarbeitungseinrichtung beschrieben.
Die Bildverarbeitungseinrichtung gemäß diesem Ausführungsbei
spiel hat einen Bildspeicher 1 für das Speichern des Bilds
einer Seite, eine Prozessoreinheit 2 und einen peripheren
Teil 3 wie eine Eingabe/Ausgabe-Einheit. Die Fig. 1 veran
schaulicht nur die Anordnung dieser Grundkomponenten und
zeigt, daß die Prozessoreinheit 2 mit dem Bildspeicher 1
verbunden ist. Nach Fig. 1 werden n × m Bilddatenposten an
irgendwelchen Stellen in dem Bildspeicher 1 zu der Prozessor
einheit 2 übertragen, die aus einer n × m-Matrix von Prozes
sorelementen 2a gebildet ist, in denen die Daten mit hoher
Geschwindigkeit verarbeitet werden, wonach sie in den Bild
speicher 1 zurückgeleitet werden. Die n × m Prozessorelemente
2a in der Matrix führen die Verarbeitung gleichzeitig aus.
Damit ist die Gesamtausstattung eine solche für die sog.
Parallelverarbeitung. Die Fig. 9(a) und (b) zeigen andere
mögliche Anordnungen. Nach Fig. 9(a) werden Bilddaten aus
einem eingangsseitigen Bildspeicher 91 einer Prozessoreinheit
92 zugeführt, die eine Vielzahl von Prozessorelementen ent
hält, in denen eine Vielzahl von Bildelementen der vorge
schriebenen parallelen Verarbeitung unterzogen werden, wonach
die sich ergebenden Bilddaten in einen ausgangsseitigen Bild
speicher 93 eingespeichert werden. Dies erfolgt unter Steue
rung durch eine Steuerschaltung 94, die mit den Bildspeichern
91 und 93 und mit der Prozessoreinheit 92 verbunden ist. Nach
Fig. 9(b) ist der Bildspeicher 91 oder 93 mit der Prozessor
einheit 92, einer Eingabeeinheit 95 und einer Ausgabeeinheit
96 über eine gemeinsame Sammelleitung verbunden.
Es wird nun der Bildspeicher 1 ausführlich beschrieben.
Zur Vereinfachung sei angenommen, daß ein Bild das Format
1024 × 1024 Bildelemente hat und daß der Bildspeicher Daten in
Form von acht Bit je Bildelement speichert. Eine Änderung des
Bildformats wird lediglich durch Ändern der Architektur des
Ausführungsbeispiels bewerkstelligt. Ferner sei angenommen,
daß die Prozessoreinheit 2 aus 4 × 4, also insgesamt 16 Prozes
sorelementen 2a gebildet ist.
Die Fig. 2 veranschaulicht die Gestaltung des Bildspeichers
1. Nimmt man an, daß gemäß der Darstellung ein Bild aus
1024 × 1024 Bildelementen zusammengesetzt ist und das Bild in
Einheiten aus 4 × 4 Bildelementen unterteilt wird, so wird das
Bild auf 256 × 256 Blöcke, also insgesamt 64k (= 65536) Blöcke
aufgeteilt. Dies kann gemäß Fig. 3 dargestellt werden, in
welcher 64k Einheiten aus 4 × 4 Bildelementen angenommen sind,
von denen jedes die Länge von 8 Bit hat. Hinsichtlich der
Adressenbereiche des Speichers erfolgt daher die Adressierung
in drei Dimensionen mit 4 × 4 × 64k. Falls einem einzelnen
Speicherbaustein 64k Bildelemente für eine Bildelementestelle
aus der 4 × 4-Matrix der Bildelemente gemäß der Darstellung in
Fig. 3 zugeordnet sind, ist ein Speicherbaustein erforder
lich, in dem für die 64k Adressenstellen eine jede Adresse
eine Tiefe von 8 Bit hat. Dies würde einen Speicherbaustein
mit einer Kapazität von 512 kBit (= 64 kByte) erforderlich
machen. Bei dem beschriebenen Ausführungsbeispiel werden zwei
dynamische Schreib/Lesespeicher (DRAM) für jeweils 256 kBit
in Kombination verwendet. D. h., es werden zwei dynamische 256
kBit-Speicher für jeweils 64k × 4 Bit verwendet und in der
Form 64k × 8 Bit eingesetzt. Diese beiden Speicherbausteine
werden als ein Speicherelement 1a bezeichnet. Nachstehend
wird eine Prozessoreinheit als "PU", ein Prozessorelement als
"PE" und ein Speicherelement als "ME" bezeichnet.
Der Bildspeicher 1 ist aus 16 Bildelementen 1a entsprechend
einer Matrix von 4 × 4 Bildelementen zusammengesetzt. Die Fig.
4 zeigt die Anordnung dieser 4 × 4 Speicherelemente 1a. Für
jedes Speicherelement 1a wird dessen Zeilenadresse und dessen
Spaltenadresse bestimmt, so daß Bilddaten für die 64k Adres
senstellen für ein einzelnes Bildelement aus den 4 × 4 Bildele
menten in ein jedes Speicherelement eingegeben bzw. aus
diesem ausgegeben werden können. An jedes der 4 × 4 Speicher
elemente 1a werden die Adressen von einem Zeilenadressengene
rator 4 und einem Spaltenadressengenerator 5 angelegt. Es ist
anzumerken, daß ein einziger Adressengenerator ausreichend
ist, wenn die Speicherelemente 1a dynamische Speicher sind
und die Zeilen- und Spaltenadressen im Zeitmultiplex angelegt
werden. Wenn dies der Fall ist, ist eine Umschaltsteuerung
für die Zeitmultiplex-Verschachtelung der Zeilen- und Spal
tenadressen erforderlich. Die Zeilen- und Spaltenadressen
entsprechen jeweils A bzw. B für einen jeweils mit (A1, B1)
bezeichneten Block in einem jeweiligen Einzelbild gemäß Fig.
2.
Durch das Anlegen der Adressen aus den jeweiligen Adressenge
neratoren 4 und 5 kann in die Speicherelemente 1a für die 4 × 4
Bildelemente eingeschrieben bzw. aus diesen ausgelesen wer
den. D. h., durch eine einzige Adressenbestimmung können 4 × 4
Speicherelemente gleichzeitig betrieben werden. Es sei ange
nommen, daß zu diesem Zweck Datenleitungen für acht Bit
direkt von jedem der Speicherelemente 1a wegführen.
Falls Daten mit der Zeilenadresse A (0 ≦ A ≦ 255) und der
Spaltenadresse B (0 ≦ B ≦ 255) aus dem Bildspeicher 1 abgeru
fen werden, werden die der Adresse (A, B) nach Fig. 2 ent
sprechenden Bilddaten aus 4 × 4 Bildelementen ausgelesen, von
denen jedes die Länge von acht Bit hat.
Der gleichzeitige Zugriff zu einer Vielzahl von Bildelementen
wird nun in allgemeiner Form beschrieben.
Die Fig. 10 zeigt eine Bildseite. Gemäß der Darstellung sind
die Bilddaten in aneinander angrenzende Blöcke aus jeweils
k × ℓ Bildelementen unterteilt. Gemäß der Darstellung in Fig.
11 sind die k × ℓ Bildelemente in einen jeden Block mit k × ℓ
Speicherelementen 1a in Beziehung gesetzt bzw. diesen zuge
ordnet. Die aus diesen k × ℓ Bildelementen gebildeten Blöcke
sind von einem Rand her mit (0, 0), (0, 1), (0, 2), (0,
3), ... numeriert und entsprechen der Speichereinheit 1 aus
den k × ℓ Speicherelementen 1a gemäß Fig. 12. In der Fig. 13
ist die Speichereinheit 1 zweidimensional dargestellt. Das
Speicherformat bei dem Abruf der Speichereinheit 1 sind
Einheiten im Blockformat aus k × ℓ Bildelementen. Daher werden
auch bei dem Abruf eines Blocks R aus k × ℓ Bildelementen in
beliebiger Lage in der Speichereinheit 1 alle k × ℓ Speicher
elemente 1a abgerufen. Darüberhinaus wird je Speicherelement
1a eine Adresse abgerufen. Demgemäß werden k × ℓ Bildelemente
zum gleichen Zeitpunkt herausgegriffen.
Auf diese Weise werden Bilddaten aus k × ℓ benachbarten Bild
elementen an beliebigen Stellen in dem Bild gleichzeitig
abgerufen und ausgelesen, wonach diese Bilddaten mittels der
Prozessoreinheit 2 verarbeitet werden. Die mittels der Pro
zessoreinheit 2 verarbeiteten Bilddaten können durch Zugriff
zu beliebigen Stellen der Speichereinheit 1 wieder in einen
Block H aus k' × ℓ' Bildelementen der Speichereinheit 1 einge
schrieben werden. Die nachfolgende Beschreibung beruht auf
der Annahme, daß k' = k und ℓ' = ℓ gilt.
Der Zugriff zu einem Speicher für nur k' × ℓ' Bildelemente wird
nun ergänzend erläutert. Falls die von der Prozessoreinheit 2
ausgeführte Verarbeitung eine Raum- bzw. Ortsfrequenzfilte
rung gemäß einem Rechenvorgang unter Verwendung eines Ziel-
Bildelements und der dieses umgebenden Bildelemente ist, ist
das schreibseitige Blockformat k' × ℓ' kleiner als das lesesei
tige Blockformat k × ℓ . Im allgemeinen erfolgt daher eine Ver
arbeitung in der Weise, daß das schreibseitige Blockformat
k' × ℓ' zu 1 × 1 wird. Auch wenn die von der Prozessoreinheit 2
ausgeführte Verarbeitung nicht eine Ortsfrequenzfilterung,
sondern eine Bildreduktion ist, wird das an der Schreibseite
abgerufene Blockformat k' × ℓ' kleiner als das an der Leseseite
abgerufene Blockformat k × ℓ .
Allgemein sind hinsichtlich des schreibseitigen Blockformats
k' × ℓ' die Werte k' und ℓ' die kleinsten ganzen Zahlen, die
den Bedingungen k' ≧ αk und ℓ' < βℓ genügen, wobei α und β
jeweils das Längsreduktionsverhältnis bzw. das Querreduk
tionsverhältnis sind. Falls bei der Ausführung der Verarbei
tungen gemäß den vorstehend genannten beiden Beispielen der
Lesespeicher und der Schreibspeicher identisch sind bzw. die
gleiche k × ℓ-Speicheranordnung verwendet wird, muß schreibsei
tig das Einschreiben in einem Format k' × ℓ' erfolgen, das
kleiner als das Format k × ℓ der Speichereinheit 1 ist. In
einem solchen Fall erfolgt der Zugriff zu nicht allen k × ℓ
Speicherelementen 1a. Stattdessen muß die Gestaltung derart
getroffen werden, daß die nicht für den Schreibvorgang benö
tigten Speicherelemente 1a maskiert und nicht abgerufen wer
den. Das Maskieren der nicht für den Schreibvorgang benötig
ten Speicherelemente und der gleichzeitige Zugriff zu nur
k' × ℓ' Speicherelementen können auf einfache Weise dadurch
bewerkstelligt werden, daß Freigabesignale nur an die k' × ℓ'
Elemente aus den Bausteinen der k × ℓ Speicherelemente 1a und
nicht an die restlichen (k × ℓ) - (k' × ℓ') Speicherelemente
angelegt werden.
Im Hinblick auf ein Ausführungsbeispiel, bei dem vorgeschrie
bene Bildelemente an beliebigen Stellen abgerufen werden,
werden nun ein Fall, bei dem die Speichereinheit 4 × 4-Anord
nung hat, sowie ein Fall beschrieben, bei dem die Speicher
einheit k × ℓ-Anordnung hat. Ferner wird auch die Baustein-
Freigabesteuerung für das vorangehend genannte Maskieren
beschrieben.
Zunächst wird das Ausführungsbeispiel für den Fall beschrie
ben, daß das Blockformat k × ℓ das Format 4 × 4 ist.
In der Fig. 5 ist ein Teil der Fig. 2 vergrößert dargestellt.
Die Verarbeitung wird für einen Fall beschrieben, daß Bildda
ten aus irgendeinem 4 × 4-Block S in dem Bildspeicher 1 ausge
lesen werden, die Daten mittels der Prozessoreinheit 2 verar
beitet werden und die Ergebnisse in irgendeinen beliebigen
4 × 4-Block T übertragen werden. (Gemäß Fig. 5 kann der Block S
mehrere in Fig. 2 gezeigte Blöcke überlappen.) Die in Fig. 5
und 6 gezeigten 4 × 4-Zellen grenzen 4 × 4 bzw. 16 Speicherele
mente 1a ab. Es sei angenommen, daß diese 16 Speicherelemente
1a mit Aa, Ab, ..., Ba, Bb, ..., Ca, ... Dc, Dd bezeichnet
sind. Falls zuerst der 4 × 4-Block S ausgelesen wird, werden
(N, M) als Zeilen- und Spaltenadresse an das Speicherelement
Dd aus den 16 Speicherelementen 1a angelegt. Ferner werden
(N, M + 1) an die Speicherelemente Da, Db und Dc, (N + 1, M) an
die Speicherelemente Ad, Bd und Cd sowie (N + 1, M + 1) an die
restlichen Speicherelemente angelegt. Diese Adressen werden
von dem Zeilenadressengenerator 4 und dem Spaltenadressenge
nerator 5 erzeugt. Es ist offensichtlich, daß dann, wenn der
Ort eines Eckpunktes u des 4 × 4-Blocks S bestimmt wurde, die
Ortsadressen in horizontaler und vertikaler Richtung durch
vier dividiert werden und die Zeilen- und Spaltenadressen für
die Speicherelemente Aa bis Dd eindeutig durch Reste n und m
bestimmt sind. Für den Eckpunkt u sei die Ortsadresse u (Y,
X) angenommen. Es ergibt sich dann folgendes:
Y = 4N + n (n = 0, 1, 2, 3)
X = 4M + m (m = 0, 1, 2, 3)
Es ist beispielsweise eine Anordnung denkbar, bei der die
Informationen M und N und die Informationen m und n in Nach
schlagetabellen eingegeben werden und die Adressen mittels
der Adressengeneratoren 4 und 5 an die Speicherelemente Aa
bis Dd ausgegeben werden. Aus der vorstehenden Beschreibung
ist ersichtlich, daß der ausgegebene Wert zu diesem Zeitpunkt
irgendeiner der Werte M, N, N + 1 oder M + 1 ist. Unter Nutzung
dieser Eigenschaft ist es ausreichend, in eine Nachschlageta
belle n oder m einzugeben, in Abhängigkeit von dem eingegebe
nen Wert "0" oder "1" auszugeben und eine Steuerung zu der
Ermittlung auszuführen, ob die an die Speicherelemente Aa bis
Dd anzulegende Adresse N oder M aufzustufen ist oder nicht,
wie es in Fig. 7 dargestellt ist. Hierbei werden die Werte n
und N an dem Zeilenadressengenerator 4 und die Werte m und M
an dem Spaltenadressengenerator 5 eingesetzt.
Auf diese Weise werden über eine Nachschlagetabelle 71 und
Addierer 72a bis 72p gemäß Fig. 7 Adressen aus den Adressen
generatoren 4 und 5 an die 4 × 4-Matrix der 16 Speicherelemente
1a angelegt, so daß gleichzeitig 16 Datenposten erhalten
werden können.
Diese 16 Datenposten werden nach irgendeiner Verarbeitung in
der Prozessoreinheit 2 oder ohne Verarbeitung in den in Fig.
5 gezeigten Block T für 4 × 4 Bildelemente übertragen. Die aus
den 16 Speicherelementen Aa bis Dd ausgelesenen Bilddaten
müssen jedoch nicht unbedingt zu den gleichen Speicherelemen
ten Aa bis Dd übertragen werden. Falls der 4 × 4-Bildelemente-
Speicherblock S nach Fig. 5 in den 4 × 4-Bildelemente-Speicher
block T übertragen wird, müssen die aus dem Speicherelement
Aa des 4 × 4-Bildelemente-Speicherblocks S ausgelesenen Daten
zu dem Speicherelement Dc übertragen werden.
Es wird nun beschrieben, in welche Speicherelemente der Spei
cherelemente Aa bis Dd die aus den Speicherelementen Aa bis
Dd ausgelesenen 16 Datenposten einzuschreiben sind, wenn
Anfangs- bzw. Eckpunkte u und v der 4 × 4-Speicherblöcke S bzw.
T beliebige Ortsadressen (Y, X) und (Y', X') haben.
Wenn Y, X, Y' und X' folgendermaßen ausgedrückt sind:
Y = 4N + n (n = 0, 1, 2, 3)
X = 4M + m (m = 0, 1, 2, 3)
Y' = 4P + p (p = 0, 1, 2, 3)
X' = 4Q + q (q = 0, 1, 2, 3)
ergeben sich x und y aus:
p - n = 4y' + y (y' = -1, 0 y = 0, 1, 2, 3) ...(1)
p - m = 4x' + x (x' = -1, 0 x = 0, 1, 2, 3) ...(2)
Zuerst wird die Zeilenreihe A aus den Speicherelementen Aa,
Ab, Ac und Ad unter zyklischer Vertauschung x-malig nach
rechts versetzt. Dadurch ergibt sich eine Zeilenreihe A'. Auf
gleichartige Weise werden Zeilenreihen B, C und D unter
zyklischer Vertauschung nach rechts versetzt, wodurch sich
mit B', C' und D' bezeichnete Zeilenreihen ergeben.
Als nächstes werden die Spaltenreihen (ABCD)' aus den Zeilen
reihen A', B', C' und D' unter zyklischer Vertauschung y-
malig nach unten versetzt.
Aus der Fig. 5 ist ersichtlich, daß n, m, p und q jeweils die
Werte 3, 3, 2 bzw. 1 haben. Daher ergibt sich aus den Glei
chungen (1) und (2): y' = -1, y = 3, x' = -1, x = 2. Infolge
dessen wird gemäß der vorstehenden Beschreibung folgende
Matrix erreicht:
Wenn eine zweimalige zyklische Vertauschung nach rechts vor
genommen ist, ergibt sich:
A' = (Ac, Ad, Aa, Ab)
B' = (Bc, Bd, Ba, Bb)
C' = (Cc, Cd, Ca, Cb)
D' = (Dc, Dd, Da, Db)
Wenn dann eine dreimalige zyklische Vertauschung nach unten
vorgenommen ist, ergibt sich die Matrix:
(Bc, Bd, Ba, Bb)
(Cc, Cd, Ca, Cb)
(Dc, Dd, Da, Db)
(Ac, Ad, Aa, Ab) ...(3)
Es wird nun die Matrix (3) mit folgender Grund- bzw. Ur
sprungsmatrix (4) verglichen:
Aa, Ab, Ac, Ad
Ba, Bb, Bc, Bd
Ca, Cb, Cc, Cd
Da, Db, Dc, Dd ...(4)
Die Ursprungsmatrix (4) wird einfach durch zweidimensionales
Anordnen der aus den Speicherelementen Aa bis Dd ausgelesenen
Daten in der Aufeinanderfolge von links nach rechts und von
oben nach unten gebildet. Die Matrix (3) entspricht einer
Matrix, die durch Anordnen der in die Speicherelemente Aa bis
Dd einzuschreibenden Daten auf zweidimensionale Weise in der
Aufeinanderfolge erzielt wird. Im einzelnen zeigt die Matrix
(3) als Beispiel, daß die aus dem Speicherelement Aa ausgele
senen Daten in die vierte Zeile und dritte Spalte einge
schrieben werden. Die Ursprungsmatrix (4) zeigt, daß die
vierte Zeile, dritte Spalte Dc ist. Infolgedessen ist es
ersichtlich, daß die aus dem Speicherelement Aa ausgelesenen
Daten in das Speicherelement Dc einzuschreiben sind.
Da es leicht ersichtlich ist, daß die aus dem Speicherelement
Aa in Fig. 5 ausgelesenen Daten in den Ort Dc eingeschrieben
werden sollen, ist die Versetzung von Aa zu dem Ort Dc äqui
valent einem Übergang von der Ortsadresse u zu der Ortsadres
se v. Da ferner die Speicherelemente 1a die 4 × 4-Anordnung
haben, können die durch das Dividieren der Ortsadressen in
der horizontalen und vertikalen Richtung durch "4" erhaltenen
Reste als Versetzungen x und y der Speicherelemente angesehen
werden. Falls beispielsweise die Versetzungen der Ortsadres
sen u und v Vielfache von "4" sind, werden die Versetzungen x
und y zu "0", so daß die aus einem bestimmten Speicherelement
ausgelesenen Daten nach der Verarbeitung in das gleiche Spei
cherelement eingeschrieben werden.
Die Ausführung der vorstehenden Verarbeitung durch Schal
tungsausstattung wird nun kurz beschrieben. Die Fig. 8 ist
eine Blockdarstellung, gemäß der gleichzeitig aus der Spei
chereinheit 1 mit der 4 × 4-Matrix aus 16 Speicherelementen 1a
ausgelesene Daten mittels der Prozessoreinheit 2 verarbeitet
werden. Diese Daten werden zu vier Elementen gleichzeitig
durch zyklische Vertauschung in x-Versetzungs-Umlauftauschern
81a bis 81d x-malig versetzt. Die Ergebnisse werden dann
mittels eines y-Versetzungs-Umlauftauschers 82 durch zykli
sche Vertauschung y-malig versetzt und jeweils in die Spei
cherelemente Aa bis Ad, Ba bis Bd, Ca bis Cd bzw. Da bis Dd
eingeschrieben.
Die jeweils in den y-Versetzungs-Umlauftauscher (Rotator) 82
eingegebenen Daten sind die Daten für vier Elemente, so daß
daher selbstverständlich der y-Versetzungs-Umlauftauscher 82
aus vier Umlauftauschern gebildet sein kann, die genau die
gleichen wie die x-Versetzungs-Umlauftauscher 81a bis 81d
sind. Selbstverständlich müssen die Umlauftauscher die glei
che Bit-Anzahl-Tiefe wie die Speicherdatentiefe haben und die
Anzahl der eingesetzten Umlauftauscher muß gleich der Tiefe
der Speicherdaten sein. Als Umlauftauscher können Schiebere
gister oder Bläschenspeicher verwendet werden.
Das vorstehende wird nun in allgemeinerer Hinsicht betrach
tet.
Falls ein Speicherblock das Format k × ℓ hat, erhält die Spei
chereinheit 1 eine k × ℓ-Anordnung. Wenn in diesem Fall der
Speicherblock S aus k × ℓ Bildelementen an beliebigen Stellen
mittels der Prozessoreinheit 2 verarbeitet wird und die Er
gebnisse in den Speicherblock T aus k × ℓ Bildelementen an
beliebigen Stellen übertragen werden, erhält man die Werte n,
m, p und q aus folgenden Gleichungen:
Y = kN + n (n = 0, 1, ..., k - 1)
X = ℓM + m (m = 0, 1, ..., ℓ - 1)
(N, M, P, Q = 1, 2, 3, ...)
Y' = kP + p (p = 0, 1, ..., k - 1)
X' = ℓQ + q (q - 0, 1, ..., ℓ - 1) ...(10)
wobei die Ortsadresse des Eckpunkts des Blocks S (Y, X) ist
und die Ortsadresse des Eckpunkts des Blocks T (Y', X') ist.
Unter Einsetzen von x und y in
p - n = Ky' + y (y' = 1, 0, y = 0, 1, 2, 3, ..., k - 1)
q - m = ℓx' + x (x' = 1, 0, x = 0, 1, 2, 3, ..., ℓ - 1) ...(11)
ist es ausreichend, zum Ausführen der Verarbeitung die x-
Versetzungs-Umlauftauscher 81a bis 81d und den y-Versetzungs-
Umlauftauscher 82 der in Fig. 8 gezeigten Art zu verwenden.
In diesem Fall hat der x-Versetzungs-Umlauftauscher ℓ Eingän
ge und ermöglicht eine Versetzung von 0 bis ℓ - 1. Der y-
Versetzungs-Umlauftauscher hat k Eingänge und ermöglicht eine
Versetzung von 0 bis k - 1. Da darüberhinaus die k Eingangssig
nale des y-Versetzungs-Umlauftauschers 82 jeweils ℓ Elemente
haben, werden ℓ Umlauftauscher für eine Eingabe von k Elemen
ten angeordnet.
Als nächstes wird die Speicherelemente-Zugriffsteuerung für
den gleichzeitigen Zugriff zu dem vorangehend genannten
k' × ℓ'-Block gemäß Fig. 10 beschrieben.
Es sei angenommen, daß die Ortsadresse eines Eckpunkts i des
k' × ℓ'-Blocks (f, g) ist. Falls der entsprechend der Gleichung
(10) abgerufene Speicher gelesen wird, wird f, g in Y, X
eingesetzt. Falls in den Speicher entsprechend dem Zugriff
gemäß der Gleichung (10) eingeschrieben wird, wird f, g in
Y', X' eingesetzt. Wenn das Ergebnis in die Gleichung (11)
eingesetzt wird, um y, x zu erhalten, kann die Schaltung
gemäß dem in den Fig. 7 und 8 gezeigten Ausführungsbeispiel
direkt als für k × ℓ verallgemeinerte Anordnung angewandt wer
den.
Hierbei werden nur die Bausteine für die k' × ℓ' Speicherele
mente aus den k × ℓ Speicherelementen eingeschaltet bzw. frei
gegeben. Falls für die Bausteinfreigabe die Ortsadresse (f,
g) des Eckpunktes i des k' × ℓ'-Blocks festgelegt worden ist,
sind durch die Gleichung (10) die Werte n, m oder p, q ein
deutig bestimmt, so daß auch der Zugriff zu den k' × ℓ' Spei
cherelementen eindeutig bestimmt ist.
Bei einer Speicheranordnung aus k × ℓ Speicherelementen gemäß
der bisherigen Beschreibung kann ein Fall in Betracht gezogen
werden, bei dem ein k' × ℓ'-Block gleichzeitig für das Lesen
und ein k" × ℓ"-Block gleichzeitig für das Schreiben ausgelesen
wird (wobei 0 ≦ k" ≦ k und 0 ≦ ℓ" ≦ ℓ gilt). Die vorstehende
Beschreibung gilt auch in diesem Fall. Ein Ausführungsbei
spiel für die in diesem Fall an den Speicherelementen auszu
führende Bausteinfreigabe-Steuerung ist in der Fig. 14 darge
stellt.
Falls die Ortsadressen der Eckpunkte der Blöcke k' × ℓ' und
k" × ℓ" jeweils (Y, X) und (Y', X') sind, werden die Werte n, m
und p, q aus der Gleichung (10) erhalten. Diese Werte n, m
und p, q werden an die Dateneingänge eines Wählers 141a
angelegt. An den Wähler wird als Wählsteuersignal ein Spei
cherzugriff-Lese/Schreib-Signal R/W angelegt. Für das Lesen
der Daten werden selektiv n und m ausgegeben, während für das
Schreiben der Daten selektiv p und q ausgegeben werden.
Auf gleichartige Weise werden die Blockformate k' × ℓ' und
k" × ℓ" in einen Wähler 141b eingegeben, an dem das Signal R/W
als Wählsteuersignal dient. Wenn die Daten gelesen werden,
werden selektiv k' und ℓ' ausgegeben, während bei dem Schrei
ben der Daten selektiv k" und ℓ" ausgegeben werden. Es ist
offensichtlich, daß dann, wenn für das Lesen die Werte n, m,
k' und ℓ' bzw. für das Schreiben k", ℓ", p und q festgelegt
worden sind, die Speicherelemente 1a für den Zugriff eindeu
tig bestimmt sind. Daher werden die von diesen Wählern 141a
und 141b ausgegebenen Daten in eine Nachschlagetabelle 142
eingegeben, die Signale zur Steuerung der abzurufenden Spei
cherelemente 1a aus den k × ℓ Speicherelementen abgibt.
Es ist ersichtlich, daß dann, wenn der Bildspeicher zur
Speicherung vor der Verarbeitung durch die Prozessoreinheit
92 gemäß Fig. 9(a) und (b) von dem Bildspeicher zur Speiche
rung nach der Verarbeitung verschieden ist und die Speicher
anordnungen jeweils k × ℓ bzw. K × L sind, zwei Nachschlagetabel
len 151 und 152 gemäß Fig. 15 verwendet werden müssen. In
diesem Fall haben die Nachschlagetabellen 151 und 152 vonein
ander verschiedenen Inhalt.
Es treten auch dann keine Probleme auf, wenn k = K und ℓ = L
gilt. Falls die vorstehend beschriebene Anordnung verwendet
wird, müssen die abzurufenden Speicherelemente nicht alle k × ℓ
Speicherelemente sein und es ist eine teilweise Maskierung
möglich. Es ist ausreichend, wenn die Anordnung der k × ℓ
Speicherelemente auf das Format k × ℓ gewählt ist, welches das
größte erforderliche Format ist.
Es wird nun der Zugriff zu den Speicherelementen für die
Verarbeitung aller Bilddaten eines Vollbilds beschrieben.
D. h., die folgende Beschreibung betrifft ein Abtast- bzw.
Abfrageverfahren für den Abruf aller Speicherdaten.
Anhand der Fig. 5 und 6 wurde schon der Zugriff zu einem
Speicher in dem Fall beschrieben, daß die Ortsadresse des
Anfangs- bzw. Eckpunktes u des Blocks aus aneinander angren
zenden k × ℓ Bildelementen schon festgelegt wurde, nämlich Y, X
festgelegt wurden, wobei Y die bei der aufeinanderfolgenden
Zählung von 0 an in der vertikalen Richtung ausgehend von dem
Eckpunkt erhaltene Zahl ist und X die bei der aufeinanderfol
genden Zählung von 0 an in der horizontalen Richtung ausge
hend von dem Eckpunkt erhaltene Zahl ist. Anhand folgender
Beispiele wird nun beschrieben, in welcher Aufeinanderfolge X
und Y für das Verarbeiten des Vollbilds abzufragen sind.
Beispiel 1: Erstes Folgeabfrageverfahren
Dies ist ein Verfahren, bei dem Ortsadressen X, Y von Bildda
ten für den Abruf von k × ℓ Speicherelementen dadurch abgefragt
werden, daß die Werte um ein ganzzahliges Vielfaches von k
bzw. ℓ aufgestuft oder abgestuft werden. Beispielsweise wer
den Y und X anfänglich auf "0" eingestellt und X wird aufein
anderfolgend in Stufen ℓ erhöht. Wenn X bis zu dem Endwert in
der horizontalen Richtung erhöht worden ist, wird X auf "0"
rückgesetzt, Y um k erhöht und X in Stufen ℓ erhöht. Dies
wird aufeinanderfolgend wiederholt, um das ganze Bild oder
einen Teil hiervon abzutasten. Dieses Verfahren wird als
erstes Folgeabfrageverfahren bezeichnet.
Beispiel 2: Erstes Zufallsabfrageverfahren
X und Y werden nicht gemäß der vorstehenden Beschreibung
aufeinanderfolgend erhöht oder vermindert. Stattdessen werden
hier und da in dem Vollbild gelegene aufeinanderfolgende k × ℓ-
Blöcke unter Zufallsverteilung abgerufen, wobei die zum Zeit
punkt des Abrufs geltenden Werte X und Y Versetzungen sind,
die ganzzahlige Vielfache von k und ℓ sind. Dieses Verfahren
wird als erstes Zufallsabfrageverfahren bezeichnet.
Beispiel 3: Zweites Folgeabfrageverfahren
Bei diesem Verfahren werden die Ortsadressen X, Y der Bildda
ten für den Zugriff zu den k × ℓ Speicherelementen durch Auf
stufen oder Abstufen um eine ganze Zahl abgefragt. Beispiels
weise werden Y und X anfänglich auf "0" eingestellt, wonach X
aufeinanderfolgend in Stufen "1" erhöht wird. Wenn X bis zu
dem Endwert in der horizontalen Richtung erhöht worden ist,
wird dann X auf "0" rückgesetzt, Y um "1" aufgestuft und X in
Stufen "1" erhöht. Dies wird aufeinanderfolgend wiederholt,
um ein Einzelbild vollständig oder zum Teil abzutasten.
Dieses Verfahren wird als zweites Folgeabfrageverfahren be
zeichnet. In diesem Fall wird der gleiche Speicherdatenbe
reich mehrmalig abgefragt.
Beispiel 4: Zweites Zufallsabfrageverfahren
X und Y werden nicht auf die vorstehend beschriebene Weise
aufeinanderfolgend erhöht oder vermindert. Stattdessen werden
hier und da in dem Vollbild liegende k × ℓ-Blöcke unter Zu
fallsverteilung abgerufen, was für alle Werte X und Y ausge
führt wird. Alternativ kann diese Verarbeitung für die Werte
X und Y von aufeinanderfolgenden Teilbereichen in dem Voll
bild ausgeführt werden. Wenn dies zufallsbedingt erfolgt,
wird das Verfahren als zweites Zufallsabfrageverfahren be
zeichnet.
Beispiel 5: Block-Folgeabfrageverfahren
Wenn ein abzurufender Speicherblock ein k' × ℓ'-Speicherblock
in einer Speicheranordnung mit k × ℓ Speicherelementen ist,
werden Ortsadressen Y, X (1 ≦ k' ≦ k, 1 ≦ ℓ' ≦ ℓ") um ganzzahlige
Vielfache von k' und ℓ' erhöht oder vermindert, was aufeinan
derfolgend zum Abtasten eines Vollbilds wiederholt wird.
Dieses Verfahren wird zur Unterscheidung von dem ersten Fol
geabfrageverfahren als Block-Folgeabfrageverfahren bezeich
net.
Beispiel 6: Block-Zufallsabfrageverfahren
X und Y werden nicht gemäß der vorstehenden Beschreibung des
Beispiels 5 aufeinanderfolgend erhöht oder vermindert. Statt
dessen werden hier und da in dem Vollbild liegende aufeinan
derfolgende k' × ℓ'-Blöcke unter Zufallsverteilung abgerufen,
wobei X und Y Versetzungen sind, die ganzzahlige Vielfache
von k' und ℓ' sind. Dieses Verfahren wird als Block-Zufalls
abfrageverfahren bezeichnet.
Beispiel 7: Sequentielles Abfrageverfahren
Die Abfrage erfolgt sequentiell ohne Zusammenhang mit der
Speicheranordnung der k × ℓ Speicherelemente. Beispielsweise
erfolgt die Abfrage durch das Verändern von X, Y um jede
zweite beliebig gewählte Zahl d', f'. Dies wird einfach als
sequentielle Abfrage bezeichnet.
Beispiel 8: Zufallsbedingtes Abfrageverfahren
Falls die Speicherabfrage nicht im Falle der Zufallsabfrage
gemäß Beispiel 7 oder 4 bezüglich aller Kombinationen aus X
und Y ausgeführt wird, wird das Verfahren einfach als zu
fallsbedingte Abfrage bezeichnet.
Gemäß den vorstehenden Ausführungen können einige Abfragever
fahren in Betracht gezogen werden und es ist der Speicherzu
griff an dem leseseitigen Speicher und dem schreibseitigen
Speicher möglich, wobei das Abfrageverfahren für den Lese
speicher nicht unbedingt mit dem Abfrageverfahren für den
Schreibspeicher übereinstimmen muß.
Wenn das leseseitige Abfrageverfahren festgelegt worden ist,
werden schreibseitig die Werte X' und Y' durch den Inhalt der
von der Prozessoreinheit 2 ausgeführten Verarbeitung be
stimmt. Es kann auch zuerst das schreibseitige Abfrageverfah
ren festgelegt werden, wobei in diesem Fall dann das lesesei
tige Abfrageverfahren durch den Inhalt der von der Prozessor
einheit 2 ausgeführten Verarbeitung bestimmt ist.
Falls auch die Blockformate k × ℓ der in dem Lesespeicher und
dem Schreibspeicher abzurufenden Blöcke voneinander verschie
den sind, unterscheiden sich auch die Formate der Speicher
elemente-Anordnung k × ℓ.
Die Fig. 19(a) ist ein Schaltbild, das das Konzept des Auf
baus eines Prozessorelements PE veranschaulicht. Eine logi
sche und arithmetische Recheneinheit 12, die über eine Daten
eingabeeinheit 11 Daten aus einem oder mehreren Speicherele
menten sowie über einen Empfangspuffer 13 Daten aus einem
oder mehreren Prozessorelementen aufnimmt, führt gemäß diesen
Daten vorbestimmte logische und arithmetische Rechenvorgänge
aus und gibt die Ergebnisse über eine Datenausgabeeinheit 15
an ein oder mehrere Speicherelemente ab. Die logische und
arithmetische Recheneinheit 12 sendet ferner die Daten aus
der Dateneingabeeinheit 11 oder die Ergebnisse der logischen
und arithmetischen Rechenvorgänge über einen Sendezwischen
speicher bzw. Sendepuffer 14 zu einer oder mehreren Prozes
soreinheiten.
Die Fig. 19(b) ist ein Blockschaltbild, gemäß dem die logi
sche und arithmetische Recheneinheit 12 durch einen Mikropro
zessor gebildet ist.
An eine interne Sammelleitung 10 sind eine Zentraleinheit
(CPU) 12a, ein Festspeicher (ROM) 12b zum Speichern eines
Steuerprogramms und ein Schreib/Lesespeicher (RAM) 12c als
Hilfsspeicher angeschlossen, die zusammen die logische und
arithmetische Recheneinheit 12 bilden. Ferner sind an die
Sammelleitung 10 die Dateneingabeeinheit 11, die Datenausga
beeinheit 15, der Empfangspuffer 13 und der Sendepuffer 14
angeschlossen, die in Fig. 19(a) gezeigt sind.
Die einzelnen Prozessorelemente führen die gleiche oder je
weils ein eigene Verarbeitung und den Datenaustausch mit den
anderen Prozessorelementen aus. Unter der Steuerung gemäß
einem zuvor in dem jeweiligen Prozessorelement gespeicherten
Steuerprogramm oder unter der Steuerung durch eine externe
Steuerschaltung oder einen Verarbeitungsrechner führt die
ganze, aus dieser Prozessorelementegruppe gebildete Prozes
soreinheit die vorbestimmte Verarbeitung parallel aus.
Dichteumsetzung, Farbumsetzung und Maskierung von Bilddaten:
Die Dichteumsetzung, die Farbumsetzung und dergleichen kann
mittels eines Systems vorgenommen werden, in dem sowohl lese
seitig als auch schreibseitig das erste Folgeabfrageverfahren
angewandt wird. Dies wird nun ausführlich beschrieben.
Die Farbumsetzung ist eine Verarbeitung, bei der dann, wenn
Bilddaten bestimmte Farbinformationen enthalten, die Farbin
formationen in andere vorbestimmte Farbinformationen umge
setzt werden.
Bei einem Maskieren wird gemäß der Darstellung in Fig. 21(a)
bis 21(c) nur ein bestimmter Teil der Bilddaten unverändert
ausgegeben, während der Rest der Bilddaten als Untergrund,
wie beispielsweise weißer Untergrund ausgegeben wird. Als
Untergrund können auch andere Daten beispielsweise für
"Grau", "Farblos" oder dergleichen ausgegeben werden. Die
Fig. 21(a) zeigt Daten, die einen zu maskierenden Bereich
angeben, die Fig. 21(b) zeigt ein zu maskierendes Bild und
die Fig. 21(c) zeigt die ausgegebenen Ergebnisse.
Für die Dichteumsetzung arbeitet beispielsweise ein jedes
Prozessorelement 2a in der Prozessoreinheit 2 gemäß dem Ab
laufdiagramm in Fig. 22. Hierbei ist ein einem Eingangswert
Vin entsprechender Ausgangswert Vout (nach Fig. 20) durch
folgende Gleichung bestimmt:
Vout = Vin2/64 ...(12)
Die Prozessoreinheit enthält 16 Prozessorelemente, von denen
jedes jeweils 4 × 4 Bildelementen mit einer Länge von 8 Bit
entspricht. In diese Prozessoreinheit 2 werden die der Adres
se (A, B) nach Fig. 2 entsprechenden 4 × 4 Datenposten mit 8
Bit Länge eingegeben. Die Prozessorelemente 2a arbeiten pa
rallel und geben jeweils Daten ab. Infolgedessen werden die
gleichzeitig abgerufenen 4 × 4 Datenposten mit 8 Bit Länge in
der Prozessoreinheit 2 gleichzeitig verarbeitet, wonach die
Ergebnisse gleichzeitig ausgegeben werden. Auf diese Weise
ist eine Bildverarbeitung mit hoher Geschwindigkeit ermög
licht.
Die Prozessorelemente 2a führen Verarbeitungen wie eine Dich
teumsetzung, eine Farbumsetzung und ein Maskieren aus.
Gemäß der vorstehenden Beschreibung umfaßt die Dichteumset
zung das Verändern eines Eingangswerts in einen entsprechen
den Ausgangswert in Übereinstimmung mit einer vorbestimmten
Eingabedichte/Ausgabedichte-Wechselbeziehung und die Abgabe
des Ausgangswerts. Auf diese Weise kann der Kontrast eines
Bilds erhöht und dessen Helligkeit geändert werden. Die Fig.
20 veranschaulicht eine Dichteumsetzung, bei der der Rechen
vorgang gemäß Gleichung (12) ausgeführt wird.
Für eine Farbumsetzung arbeitet beispielsweise ein jedes
Prozessorelement 2a in der Prozessoreinheit 2 gemäß dem in
Fig. 23 gezeigten Ablaufdiagramm. Hierbei wird eine Farbin
formation als Kombination aus beispielsweise Rot R, Grün G und
Blau B ausgedrückt, wobei für R, für G und für B der vorange
hend genannte Bildspeicher vorgesehen ist und jeder Bildspei
cher für das Speichern von Daten mit einer Länge von 8 Bit
ausgelegt ist. Die einzelnen identischen Prozessorelemente
sind entsprechenden Bildspeicherzellen für R, G und B zuge
ordnet. Eine Kombination aus bestimmten R-, G- und B-Werten
ist im voraus als eine bestimmte Farbe gespeichert, während
gleichermaßen die Farbinformation nach einer Änderung als
eine Kombination aus bestimmten R-, G- und B-Werten vorge
speichert ist. Es können natürlich mehrere bestimmte Farben
gespeichert sein.
Für ein Maskieren arbeitet beispielsweise jedes Prozessorele
ment in der Prozessoreinheit gemäß dem in Fig. 24 gezeigten
Ablaufdiagramm. Hierbei betrifft das Maskieren Bitdaten in
einem Speicher, der durch einen Bit-Verzeichnisspeicher ge
bildet ist, dessen Bits den jeweiligen Zellen des vorangehend
genannten Bildspeichers entsprechen. Diese Daten zeigen an,
ob sie innerhalb einer Maske liegen oder nicht. In diesem
Fall ist ein einzelnes Prozessorelement gleichfalls den ent
sprechenden Zellen des Maskierspeichers und des Bildspeichers
zugeordnet.
Falls die Gestaltung derart getroffen ist, daß eine Daten
übertragung zwischen den Prozessorelementen 2a der beschrie
benen Prozessoreinheit 2 ermöglicht ist, kann in der Prozes
soreinheit 2 sowohl eine Raum- bzw. Ortsfrequenzfilterung als
auch eine Zeichenerkennung, Komprimierung und Decodierung
ausgeführt werden.
Es wird nun ein zweites Ausführungsbeispiel beschrieben, bei
dem Bilddaten zum gleichzeitigen Abruf von k × ℓ Datenposten
k × ℓ Speicherelementen zugeordnet sind. Die Fig. 16 veran
schaulicht einen Zustand, der sich dann ergibt, wenn die
Informationen für ein Einzelbild durch Daten ersetzt sind.
Die Informationen sind horizontal in ℓ gleiche Abschnitte und
vertikal in k gleiche Abschnitte unterteilt. Zur Beschreibung
der sich durch diese Unterteilung ergebenden k × ℓ-Bereiche
sind diese mit (0, 0), (0,1), ...(0, ℓ ), ...(k, ℓ) bezeich
net, wobei gemäß der Darstellung in Fig. 17 einem jeden
einzelnen Bereich ein einzelnes eigenes Speicherelement 1b
zugeordnet ist. D. h., die Anzahl der Speicherelemente 1b ist
gleich der Anzahl der in Fig. 16 gezeigten Unterteilungen.
Bei der Zuordnung der Bereiche ist jeder schattierte Teilbe
reich nach Fig. 16 der Adresse 0 des entsprechenden Speicher
elements 1b zugeordnet, während die benachbarten Bilddaten
der Adresse 1 des entsprechenden Speicherelements zugeordnet
sind usw., bis alle Daten einer einzelnen Zeile in einem
jeweiligen Bereich vollständig zugeordnet sind. Danach er
folgt die Zuweisung auf gleichartige Weise für die zweite
Zeile von links nach rechts. Dies wird wiederholt, bis alle
Bilddaten zugeordnet sind. Wenn alle Adressen identisch sind,
die von dem Zeilenadressengenerator 4 und dem Spaltenadres
sengenerator 5 nach Fig. 4 an alle k × ℓ Speicherelemente 1b
angelegt werden, können beliebige Bilddaten gleichzeitig
abgerufen werden, wie es durch die schattierten Teilbereiche
in Fig. 16 dargestellt ist.
Mit dieser Anordnung ist es ermöglicht, eine bestimmte Adres
se zu wählen, aus dem Bildspeicher 1 die Daten an dieser
Adresse auszulesen, die Daten in der Prozessoreinheit 2 zu
verarbeiten und dann die sich ergebenden Daten ohne Änderung
der Adresse in die k × ℓ Speicherelemente 1b einzuschreiben.
Falls beispielsweise jeder der Bereiche gemäß Fig. 16 aus K × L
Bilddaten zusammengesetzt ist, ist es ohne Belang, wenn die
Leseadresse und die Schreibadresse identisch sind, falls eine
Verarbeitung zum Bewegen oder Übertragen eines Teilbereichs
eines Einzelbilds um eine Versetzung ausgeführt wird, die ein
ganzzahliges Vielfaches von L in horizontaler Richtung und
ein ganzzahliges Vielfaches von K in vertikaler Richtung ist.
Hierdurch wird die Belastung der die Adressensteuerung be
treffenden Komponenten wie des Zeilenadressengenerators 4 und
des Spaltenadressengenerators 5 beträchtlich vermindert.
Die Verarbeitung für das Bewegen oder Übertragen wird von der
Prozessoreinheit 2 ausgeführt. Die Prozessoreinheit 2 emp
fängt eine Eingabe von k × ℓ Bilddatenposten gemäß der Darstel
lung durch die strichlierten Teilbereiche in Fig. 16 und eine
Eingabe aus Bilddaten über das ganze Einzelbild. Da die
einzelnen dieser Datenposten um ein ganzzahliges Vielfaches
von L und K in horizontaler bzw. vertikaler Richtung versetzt
werden, werden in der Prozessoreinheit 2 die k × ℓ Datenposten
ausgetauscht bzw. bewegt und übertragen, wobei die Verarbei
tung aufeinanderfolgend in der Reihenfolge von 0 an bezüglich
aller Adressen der Speicherelemente ausgeführt werden kann.
Infolgedessen kann das ganze Einzelbild verarbeitet werden.
Bei diesem Ausführungsbeispiel kann erwogen werden, durch
Verwendung einer 1 × ℓ- oder k x 1-Anordnung für die k × ℓ-Spei
cherzusammensetzung und durch Zuordnen einer horizontalen
oder einer vertikalen Linie in einem Einzelbild zu jedem der
Speicherelemente die in der Prozessoreinheit 2 ausgeführte
Verarbeitung für verschiedenartige Bildverarbeitungen anzu
wenden, wie für eine Histogramm- bzw. Häufigkeitsverteilungs-
Aufbereitung für eine einzelne Linie eines Bilds oder für
eine eindimensionale Fourier-Transformation. Darüberhinaus
besteht bei dem gleichzeitigen Zugriff zu einer Vielzahl von
Bildelementen keinerlei Einschränkung darauf, welche Adressen
welcher Speicherelemente den Daten in einem Einzelbild zuge
wiesen werden.
Bilddatendrehung:
Es wird nun ein Beispiel für die Anwendung einer derartigen
Speicheranordnung beschrieben. Da vorstehend eine Übertragung
bzw. Versetzung der Daten beschrieben wurde, wird nun eine
Drehung bzw. Verschwenkung der Daten erläutert. Zur Vereinfa
chung sei angenommen, daß für die k × ℓ Unterteilungen einer
k × ℓ-Speicherelementeanordnung k = ℓ gilt, so daß sich eine
ℓ × ℓ-Anordnung ergibt. Ferner sei für einen Bereich mit K x L
Bildelementedaten angenommen, daß K = L gilt. Wenn in diesem
Fall ein Einzelbild um +90° oder -90° mit der Bildmitte als
Achse geschwenkt werden soll, werden von der Prozessoreinheit
vier Datenposten aus den ℓ × ℓ Bilddatenposten vertauscht,
nämlich vier voneinander um 90° versetzte Datenposten in
bezug auf die Mitte geschwenkt. Wenn dies hinsichtlich des
ganzen Einzelbilds wiederholt wird, wird dadurch das Einzel
bild um 90° gedreht. Infolgedessen wird für das Drehen des
ganzen Einzelbilds die vorstehend genannte Schwenkung ℓ2/4-
malig ausgeführt. Im Falle einer 180°-Drehung genügt es, zwei
gegeneinander um 180° versetzte Datenposten in bezug auf die
Mitte zu schwenken bzw. zu vertauschen. Zur Drehung des
ganzen Einzelbilds um 180° erfolgt das Schwenken ℓ2/2-malig.
Auf diese Weise wird mit diesem Vorgang ein Einzelbild einer
Grob-Drehung unterzogen. Dies entspricht einer Drehung von
den ℓ × ℓ Bereichen nach Fig. 25 auf die ℓ × ℓ Bereiche nach Fig.
26. Tatsächlich müssen die Drehungen um +90°, -90°, +180° und
dergleichen auf gleichartige Weise auch innerhalb der glei
chen Bereiche ausgeführt werden.
Die Drehung innerhalb eines Einzelbilds wäre ohne die Drehung
innerhalb der Bereiche unvollständig. Es wird nun die Drehung
innerhalb eines Bereichs beschrieben. Dieser Vorgang umfaßt
eine Verarbeitung, bei dem eine beim Auslesen eines Speicher
elements geltende Adresse zu einer bei dem Einschreiben in
ein Speicherelement geltenden Adresse umgesetzt wird. Die
Adressenumsetzung erfolgt auf die in der nachstehenden Tabel
le 1 dargestellte Weise.
Eine Schaltung für diese Verarbeitung ist in Fig. 18 ausführ
lich als Blockschaltbild dargestellt, gemäß dem ein Wählsig
nal in Abhängigkeit von dem Drehwinkel verändert wird und als
Wählsteuersignal in Wähler 181, 182, 183 und 184 eingegeben
wird.
Normalerweise werden bei dem Drehwinkel 0° die Ausgangssig
nale des Zeilenadressengenerators 4 und des Spaltenadressen
generators 5 jeweils direkt über die Wähler 181 und 183 bzw.
182 und 184 den Zeilen- und Spaltenadressen der Speicherele
mente zugeführt. Wenn der Drehwinkel +90° oder -90° beträgt,
werden den Spalten- und Zeilenadressen jeweils Ausgangssig
nale a und b der Wähler 181 bzw. 182 zugeführt.
Wenn der Drehwinkel 0° oder 180° beträgt, ergeben die Aus
gangssignale a und b der Wähler 181 bzw. 182 jeweils die
Zeilen- bzw. Spaltenadressen. Bei den Drehwinkeln 90° und
180° wird von dem Wähler 184 das Ausgangssignal einer Rechen
einheit 186 gewählt. Bei den Drehwinkeln -90° und 180° wird
von dem Wähler 184 das Ausgangssignal einer Recheneinheit 185
gewählt. In den Recheneinheiten 185 und 186 werden die einge
gebenen Daten von der Länge L einer Seite eines Bereichs
subtrahiert und Signale für das Ergebnis ausgegeben. Mit
einer derartigen Anordnung wird die in der Tabelle 1 darge
stellte Verarbeitung zur Drehung eines ganzen Einzelbilds
ausgeführt.
Es wird nun der Zugriff zu den Speicherelementen für die
Verarbeitung aller Bilddaten über ein ganzes Vollbild hinweg
beschrieben. D. h., die folgende Beschreibung betrifft ein
Abtast- bzw. Abfrageverfahren für den Zugriff zu allen Spei
cherdaten.
Es wurde vorstehend schon der Zugriff zu einem Speicher in
dem Fall beschrieben, daß die Ortsadresse des Anfangs- bzw.
Eckpunkts u von abzurufenden aneinandergrenzenden k × ℓ-Blöcken
festgelegt worden ist, nämlich Y, X festgelegt wurden, wobei
Y die durch das Zählen in Aufeinanderfolge von "0" an in
vertikaler Richtung von dem Eckpunkt ausgehend erhaltene Zahl
ist und X die durch das Zählen in Aufeinanderfolge von "0" an
in horizontaler Richtung von dem Eckpunkt ausgehend erhaltene
Zahl ist. Anhand eines Beispiels wird nun beschrieben, in
welcher Reihenfolge die Werte X und Y abzurufen sind, um das
Vollbild zu verarbeiten.
Es wird ein Beispiel für an die Speicherelemente anzulegende
Abfrageadressen erläutert. Die durch das Unterteilen eines
Einzelbilds in ℓ × ℓ Abschnitte erhaltenen Bereiche entsprechen
den jeweiligen Speicherelementen. Daher werden zum Abtasten
eines Einzelbilds die gleichen Adressen an alle Speicherele
mente angelegt und die Adressen aufeinanderfolgend von "0" an
aufgestuft. Da die Adressen der Speicherelemente die Spalten-
und Zeilenadressen sind, werden diese zuerst beide auf "0"
gesetzt, wonach dann die Spaltenadresse von "0" an bis zu der
letzten Adresse aufgestuft wird. Danach wird die Zeilenadres
se aufgestuft, wonach dann wieder die Spaltenadresse von "0"
an bis zu der letzten Adresse aufgestuft wird. Dies wird für
den Zugriff zu allen Speicherelementen wiederholt.
Es wird nun ein konkreteres Beispiel für die Verarbeitung zur
Drehung eines Bilds beschrieben.
Es wird nachstehend ein Verfahren erläutert, nach welchem bei
dem gleichzeitigen Abruf einer Vielzahl von Blöcken eines
ursprünglichen Bilds die Daten aus diesen Blöcken parallel
eingegeben, parallel verarbeitet und parallel ausgegeben
werden, wobei die Ausgabe nach einer Verarbeitung zur Drehung
um Winkel von 0°, 90°, 180° und 270° erfolgt.
Die Fig. 25 zeigt das in Blöcke unterteilte ursprüngliche
Bild in einem Zustand, der erreicht wird, wenn ein Bereich
von 256 × 256 Bildelementen in Blöcke aus jeweils 4 × 4
Bildelementen unterteilt ist.
Die Fig. 26 zeigt einen Zustand, der erreicht wird, wenn das
ursprüngliche Bild in Blockeinheiten um 90° entgegen dem
Uhrzeigersinn gedreht wird. Die Fig. 27 zeigt einen Zustand,
der erreicht wird, wenn das ursprüngliche Bild in Bildelemen
teeinheiten innerhalb eines jeden Blocks um 90° entgegen dem
Uhrzeigersinn gedreht wird.
Die Fig. 28 und 29 zeigen die Relativlagen der Bildelemente
in den jeweiligen Blöcken des in Fig. 25 dargestellten ur
sprünglichen Bilds bzw. des in Fig. 27 gezeigten gedrehten
Bilds. In den Bildern gemäß Fig. 25 und 26 sind die Relativ
lagen der Bildelemente in den jeweiligen Blöcken gleich. Wenn
dies in der in Fig. 28 gezeigten Form dargestellt wird,
ergibt sich durch das Schwenken der jeweiligen Bildelemente
in einem jeden Block um 90° entgegen dem Uhrzeigersinn der in
Fig. 29 dargestellte Zustand.
Zum Erzielen eines durch Drehen des ursprünglichen Bilds um
90° entgegen dem Uhrzeigersinn erzeugten Bilds wird das in
Fig. 25 dargestellte ursprüngliche Bild hinsichtlich der
Zusammenhänge zwischen den Blöcken zu der in Fig. 26 gezeig
ten Anordnung aufbereitet, wonach dann die Bildelemente in
den jeweiligen Blöcken von der in Fig. 28 gezeigten relativen
Anordnung auf die in Fig. 29 gezeigte Anordnung verändert
werden.
Die Fig. 30 ist eine Blockdarstellung eines Beispiels für
eine Schaltungsanordnung für das Ausführen einer Folge der
vorstehend beschriebenen Verarbeitungen. Mit 1601 und 1602
sind Bildspeicher für das Speichern aller in den Fig. 25 bis
29 gezeigten Bildelemente ursprünglicher Bilder bezeichnet,
wobei der Bildspeicher 1601 zur Eingabe und der Bildspeicher
1602 zur Ausgabe dient. Mit 1603 ist eine arithmetische bzw.
Rechenschaltung mit einer Verarbeitungsschaltung für das
Verarbeiten jeweils parallel ausgelesener Bildelementedaten-
Posten. Es ist für einen jeden Block eine Verarbeitungsschal
tung vorgesehen, so daß die Daten aus den Blöcken jeweils in
eine entsprechende der Verarbeitungsschaltungen eingegeben
werden, wonach die verarbeiteten Daten an jeweils entspre
chende ausgangsseitige Blöcke abgegeben werden. Mit 1604 ist
eine Blockdatenwählschaltung bezeichnet, deren Einzelheiten
in der Fig. 31 dargestellt sind. Mit 1605 ist eine Schaltung
für die Ausgabe von Adressen bezeichnet, die als "Innenblock
adressen" die abzurufenden Stellen in den Blöcken des Einga
be-Bildspeichers bestimmen (Eingabeadressengenerator). Mit
1606 ist eine Schaltung für die Ausgabe von Adressen bezeich
net, die als Innenblockadressen die anzuwählenden Stellen in
den Blöcken des Ausgabe-Bildspeichers bestimmen. Mit 1607 ist
eine Steuerschaltung für das Steuern der Schaltungen 1604,
1605 und 1606 in Abhängigkeit von dem Drehwinkel bezeichnet.
Die Blockdatenwählschaltung 1604 ist gemäß Fig. 31 durch
Wähler gebildet, deren Anzahl gleich der Anzahl der Blöcke,
nämlich bei diesem Ausführungsbeispiel 64 ist. Ein jeder
Wähler entspricht einem jeweiligen Block des ausgangsseitigen
Speichers. Ein Wähler, der einem nachstehend als Block (i, j)
bezeichneten Block in der i-ten Zeile und j-ten Spalte des
ausgangsseitigen Speichers entspricht, empfängt Daten aus
vier Blöcken (i, j), (m - j + 1, i), (m - j + 1, m - j + 1) und (j, m -
j + 1) des eingangsseitigen Speichers. Hierbei bedeutet m, daß
der eingangsseitige Speicher und der ausgangsseitige Speicher
beide aus m × m Blöcken bestehen. Dieses Ausführungsbeispiel
wird unter der Annahme beschrieben, daß m = 8 gilt. Ferner
gilt 1 ≦ i ≦ m und 1 ≦ j ≦ m.
Wenn das ursprüngliche Bild um 0° entgegen dem Uhrzeigersinn
gedreht werden soll, steuert die Steuerschaltung 1607 die
Blockdatenwählschaltung 1604 in der Weise, daß jeder Wähler
(i, j) abgibt. Auf gleichartige Weise steuert die Steuer
schaltung 1607 die Blockdatenwählschaltung 1604 derart, daß
für eine Drehung um 90° entgegen dem Uhrzeigersinn (j, m - j + 1)
gewählt wird, für eine Drehung um 180° entgegen dem Uhrzei
gersinn (m - j + 1, m - j + 1) gewählt wird und für eine Drehung um
270° entgegen dem Uhrzeigersinn (m - j + 1, i) gewählt wird. Auf
diese Weise wird eine der Darstellung in den Fig. 25 bis 27
entsprechende Umsetzung bzw. Drehung herbeigeführt.
Die Steuerschaltung 1607 steuert die Innenblockadressen der
Adressenausgabeschaltungen bzw. Adressengeneratoren 1605 und
1606. Wenn ein Block n × n Bildelemente enthält und eine Aus
gabe an ein Bildelement an einer Stelle (k, ℓ) in diesem
Block erfolgen soll, wird für die Ausgabe bei einer Drehung
des ursprünglichen Bilds um 0° entgegen dem Uhrzeigersinn die
Innenblockadresse für den eingangsseitigen Block auf (k, ℓ)
gesteuert. Auf gleichartige Weise wird die Adresse für eine
Drehung um 90° auf (ℓ, n - k + 1), für eine Drehung um 180° auf
(n - k + 1, n - ℓ + 1) und für eine Drehung um 270° auf (n - ℓ + 1, k)
gesteuert. Bei dem beschriebenen Ausführungsbeispiel gilt n =
4. Dies kann beispielsweise dadurch erfolgen, daß als Schal
tung 1605 eine Nachschlagetabelle gemäß Fig. 32 und als
Schaltung 1606 ein Aufwärtszähler gemäß Fig. 33 verwendet
wird. Umgekehrt ist es natürlich auch möglich, den Zähler
nach Fig. 33 als Schaltung 1605 und die Nachschlagetabelle
nach Fig. 32 als Schaltung 1606 zu verwenden. Auf diese Weise
kann eine Umsetzung bzw. Drehung bewerkstelligt werden, die
einer solchen von Fig. 25 auf Fig. 27 (oder von Fig. 28 auf
Fig. 29) entspricht.
Aus der Fig. 30 ist ersichtlich, daß gemäß Fig. 34 die Block
datenwählschaltung natürlich auch an dem Ausgang der Rechen
schaltung angeordnet werden kann. In diesem Fall wird das
Ausgangssignal einer jeden Verarbeitungsschaltung der Rechen
schaltung in jeden der vier Wähler der Blockdatenwählschal
tung eingegeben. In anderer Hinsicht ist die Anordnung völlig
gleich der in Fig. 30 gezeigten.
Bei dem vorstehend beschriebenen Ausführungsbeispiel werden
mehrere Posten von Bilddaten an der Drehung entsprechenden
Stellen gleichzeitig aufgenommen, wodurch eine schnelle Verar
beitung möglich wird und die Drehung des Bilds mittels einer
klein ausgelegten Schaltung bewerkstelligt werden kann.
Nachstehend wird nun ein Ausführungsbeispiel ergänzend be
schrieben.
Wenn die den k × ℓ Speicherelementen zugeordneten Adressen in
der Aufeinanderfolge von der Adresse 0 bis zu einer Endadres
se auf die vorstehend beschriebene Weise abgerufen werden,
werden aus den jeweiligen k × ℓ Speicherelementen die Bilddaten
aus jedem der Bereiche ausgegeben, die jeweils 1/(k × ℓ) des
Vollbilds entsprechen. Betrachtet man nur ein einziges Bild
element, so wird das Bild eines einem einzelnen Bereich
entsprechenden Teilbereichs aufeinanderfolgend in horizonta
ler und vertikaler Richtung abgefragt und ausgelesen. Falls
dies bei der herkömmlichen Verarbeitung eines Bilds angewandt
wird, das aufeinanderfolgend über ein Einzelbild hinweg hori
zontal und vertikal abgetastet wird, kann eine Verarbeitungs
geschwindigkeit erreicht werden, die k × ℓ-mal so groß wie die
herkömmliche ist. Da darüberhinaus der behandelte Bildbe
reich kleiner wird, werden auch die Zeilenpuffer und derglei
chen kleiner. Infolgedessen kann die Prozessoreinheit 2 auf
einfache Weise als Matrixprozessor aufgebaut sein. Dies wird
nachstehend ausführlich beschrieben.
Ortsfrequenzfilterung:
Gemäß den vorangehenden Ausführungen werden die Bilddaten aus
den k × ℓ Speicherelementen 1b aufeinanderfolgend in die Pro
zessoreinheit 2 eingegeben, die während des aufeinanderfol
genden Abfragens für das Auslesen des Speichers die Raum-
bzw. Ortsfrequenzfilterung ausführt. Obgleich dies erst nach
folgend beschrieben wird, enthält die Prozessoreinheit 2
Puffer für eine Vielzahl von horizontalen Linien mit einer
Kapazität für einen rechteckigen Bereich, in welchem einzelne
Prozessorelemente, die die Bestandteile der Prozessoreinheit
sind, jeweils einem einzelnen der durch die Unterteilung
gebildeten k × ℓ Bereiche entsprechen. Nach der zweidimensiona
len Raum- bzw. Ortsfrequenzfilterung werden die sich ergeben
den Daten ausgangsseitig aufeinanderfolgend durch einen Abruf
eingeschrieben, der mit dem eingangsseitigen Abruf zum Lesen
identisch ist. Dieses Ausführungsbeispiel wird nun ausführ
lich beschrieben.
Gemäß den Fig. 35 bis 38 ist ein Einzelbild in 2 × 2 Bereiche
unterteilt, während die Speicherelemente 1b, nämlich insge
samt vier Speicherelemente als 2 × 2-Matrix angeordnet sind. In
diesem Fall wird der leseseitige Bildspeicher derart ausgele
sen, daß gemäß Fig. 35 die Bereiche gleichzeitig in horizon
taler und vertikaler Richtung abgetastet werden. Da jedoch
das Bild dem Speicher auf die vorangehend angeführte Weise
zugeordnet ist, werden dabei die Speicheradressen in der
Weise abgerufen, daß die Vertikaladresse von 0 bis zu der
Endadresse jedesmal dann um "1" aufgestuft wird, wenn die
Horizontaladresse von 0 bis zu der Endadresse aufgestuft
worden ist, was im Hinblick auf alle Speicheradressen wieder
holt wird.
Speicherelemente R1, R2, R3 und R4 nach Fig. 37, die den
leseseitigen Bildspeicher bilden, speichern bei diesem Aus
führungsbeispiel jeweils die Bilder von Bereichen 1, 2, 3
bzw. 4 nach Fig. 35.
Von einem durch eine Steuerschaltung gesteuerten Adressenge
nerator werden als an den leseseitigen Bildspeicher angelegte
Adressen an die Speicherelemente R1 bis R4 die gleichen
Adressen angelegt. Diese Adressen werden auf die vorangehend
beschriebene Weise abgetastet bzw. abgerufen. Die aus den
Speicherelementen R1 bis R4 ausgelesenen Bilddaten werden
jeweils in Prozessorelemente PE1 bis PE4 eingegeben. Die
Prozessorelemente PE1 bis PE4 nehmen als Eingangssignale aus
der Steuerschaltung erforderliche Steuersignale auf, die den
Inhalt der Verarbeitung bestimmen. Mittels der Prozessorele
mente PE1 bis PE4 wird die Raum- bzw. Ortsfrequenzfilterung
ausgeführt. Da jedoch die Prozessorelemente PE1 bis PE4 je
weils Zeilenpuffer enthalten, werden von dem Adressengenera
tor Horizontaladressen zugeführt. Alternativ können die Hori
zontaladressen in den Prozessorelementen PE1 bis PE4 erzeugt
werden.
Die durch die Prozessorelemente PE1 bis PE4 der Ortsfrequenz
filterung unterzogenen Ausgangsdaten werden in jeweilige
Speicherelemente W1 bis W4 eingeschrieben, die den schreib
seitigen Bildspeicher bilden. Dabei werden an die Speicher
elemente W1 bis W4 des schreibseitigen Bildspeichers die
gleichen Adressen angelegt. Die angelegten Adressen werden
jedoch durch das Verzögern der an den leseseitigen Speicher
angelegten Adressen gebildet. Das Ausmaß der Verzögerung
entspricht dem Ausmaß der Verzögerung der Ziel-Bildelemente
in den Zeilenpuffern, die in der Prozessoreinheit für die
Ortsfrequenzfilterung vorgesehen sind.
Mit der vorstehend beschriebenen Anordnung kann die Ortsfre
quenzfilterung hinsichtlich nahezu des ganzen Raums in dem
Vollbild ausgeführt werden. Da jedoch die in Fig. 36 durch
Schräglinien sowie durch Schattierung dargestellten Teilbe
reiche die Umfangsränder der Bereiche sind, bleiben diese
Teilbereiche unverarbeitet, da die zweidimensionale Maske für
die Ortsfrequenzfilterung übersteht. Zum Auffüllen der unbe
arbeiteten Bereiche bewirkt die Steuerschaltung an dem Adres
sengenerator das Erzeugen von Adressen für die durch die
Schräglinien dargestellten Teilbereiche, die schattierten
Teilbereiche und den den Umfang entsprechenden Speicherbe
reich. Die Bilddaten werden aufeinanderfolgend aus dem lese
seitigen Bildspeicher aufgenommen, wonach mittels einer Zen
traleinheit in der Steuerschaltung die Ortsfrequenzfilterung
ausgeführt wird. Die Ergebnisse der Filterung werden in den
schreibseitigen Bildspeicher eingeschrieben. Hinsichtlich der
Adressen steuert die Steuerschaltung den Adressengenerator in
der Weise, daß der schreibseitige Bildspeicher genau wie der
leseseitige Bildspeicher adressiert wird. Bei dem vorstehend
beschriebenen Ausführungsbeispiel wird eine gewisse Verarbei
tungszeit infolge des Umstands benötigt, daß die Ortsfre
quenzfilterung unter Verwendung der in Fig. 36 durch die
Schräglinien dargestellten Teilbereiche von der Zentralein
heit in der Steuerschaltung ausgeführt wird. Da jedoch das
Verhältnis der Schräglinien-Teilbereiche und der schattierten
Teilbereiche in Fig. 36 zu dem ganzen Vollbild sehr klein
ist, ist die Einwirkung auf die Verarbeitungszeit nahezu
vernachlässigbar.
Es wird nun ein Ausführungsbeispiel beschrieben, bei dem
diese Zentraleinheit-Verarbeitung nicht ausgeführt wird.
Die Fig. 39 ist eine vereinfachte Blockdarstellung dieses
Ausführungsbeispiels. Mit der Ausnahme, daß das ganze Einzel
bild in 3 × 3 Bereiche unterteilt ist und daß eine Datensteuer
schaltung vorgesehen ist, ist dieses Ausführungsbeispiel mit
dem vorangehend beschriebenen Ausführungsbeispiel identisch.
Daher wird das Ausführungsbeispiel nur unter Betrachtung der
Unterschiede ausführlich beschrieben.
Bei dem Ausführungsbeispiel ist zwar ein Einzelbild in 3 × 3
Bereiche unterteilt, jedoch wird auch als allgemein gültiger
Fall ein Fall beschrieben, bei dem ein Einzelbild in m × n
Bereiche unterteilt ist, wobei m und n ganze Zahlen sind.
Die Fig. 38(a) und (b) zeigen, wie ein ganzes, in 3 × 3 Berei
che unterteiltes Einzelbild abgetastet wird.
Für einen jeden durch die Unterteilung eines Einzelbilds
erhaltenen Bereich wird ein vergrößerter Bereich gemäß der
Darstellung durch die gestrichelten Linien gebildet, wobei
das Ausgangssignal für den vergrößerten Bereich in ein jewei
liges Prozessorelement (1,1) bis (3,3) eingegeben wird. Ein
vergrößerter Bereich erhält ein Format, mit dem die nach Fig.
35 nach der Ortsfrequenzfilterung unbearbeitet verbliebenen
Teilbereiche überdeckt sind, nämlich insbesondere z. B. die
unbearbeiteten Teilbereiche an den Grenzen zwischen den Be
reichen (1,1), (1,2), (2,1) und (2,2) im Hinblick auf den
Bereich (1,1). Ferner wird auch hinsichtlich eines beliebigen
Bereichs (k, ℓ) (mit 1 ≦ k ≦ m und 1 ≦ ℓ ≦ n) der Bereich
derart vergrößert, daß die unbearbeiteten Teilbereiche an den
Grenzen des Bereichs (k, ℓ) zu den Bereichen (k, ℓ + 1), (k + 1,
ℓ) und (k + 1, ℓ + 1) bei der Ortsfrequenzfilterung mit erfaßt
werden.
Im Falle einer 3 × 3-Glättungsverarbeitung mittels der Prozes
soreinheit bleibt beispielsweise ein Bildelement an dem rech
ten Rand eines jeden Bereichs (k, ℓ) unverarbeitet. In dem
angrenzenden Bereich (k, ℓ + 1) bleibt ein Bildelement an dem
linken Rand unverarbeitet. Daher wird der Bereich (k, ℓ) um
insgesamt zwei Bildelemente nach rechts erweitert. Gleicher
maßen ist eine Vergrößerung um zwei Bildelemente nach unten
erforderlich.
Die vergrößerten Bereiche (1,1) bis (3,3) werden unter Abta
stung gemäß der Darstellung in Fig. 38(a) und (b) in die
Prozessorelemente (1,1) bis (3,3) eingegeben. Es wird nun
kürz die Adressierung der Speicherelemente beschrieben. Die
Steuerschaltung steuert den Adressengenerator in der Weise,
daß die Horizontaladresse aufeinanderfolgend von 0 bis zu der
Maximaladresse aufgestuft wird. Danach wird die Adresse von 0
bis zu der Adresse des nach rechts vergrößerten Bereichs
aufgestuft. Falls die Erweiterung um zwei Bildelemente nach
rechts erfolgt, werden die Adressen 0 und 1 ausgegeben,
wonach als Horizontaladresse die Adresse 0 ausgegeben wird.
Als nächstes wird die Vertikaladresse von 0 ausgehend aufge
stuft und die Abtastung der Horizontaladresse wiederholt.
Dann wird die Vertikaladresse erneut aufgestuft und die Abta
stung der Horizontaladresse wiederholt. Nach der Wiederholung
dieser Vorgänge ist die Vertikaladresse die maximale Adresse
und die Abtastung der Horizontaladresse abgeschlossen, wo
raufhin die Vertikaladresse dann auf 0 gebracht wird und die
vorstehenden Vorgänge bis zu der Adresse des nach unten
vergrößerten Bereichs wiederholt werden. Hierbei übermittels
die Datensteuerschaltung die Daten in einer derartigen Auf
einanderfolge, daß die Ausgangssignale aus den vergrößerten
Bereichen (1,1) bis (3,3) den Prozessorelementen (1,1) bis
(3,3) zugeordnet werden.
Als nächstes wird die in Fig. 40 gezeigte Datensteuerschal
tung beschrieben. Im allgemein gültigen Fall ist die k-te
Schaltung aus m × n 4 : 1-Wählern gebildet.
Das an ein Prozessorelement (1,1) abgegebene Ausgangssignal
eines Wählers (1,1) ist eines der aus den Speicherelementen
(1,1), (1,2), (2,1) und (2,2) eingegebenen Signale. Auf ein
Wählsteuersignal aus der Steuerschaltung hin gibt ein jeder
Wähler eines der angelegten vier Eingangssignale ab. Die bei
der Ausgabe an die Prozessorelemente (k, ℓ) an den Wählern
anliegenden Eingangssignale kommen aus den Speicherelementen
(k, ℓ), (k, ℓ + 1), (k + 1, ℓ) und (k + 1, ℓ + 1). Falls jedoch hinsicht
lich der Bereichsunterteilungen m und n für beliebige Werte k
und ℓ die Werte k + 1 und ℓ + 1 die entsprechenden Werte m und n
überschreiten, werden dementsprechend an dem Eingang keine
oder Leerdaten eingegeben.
Es wird nun das von der Steuerschaltung abgegebene Wähl
steuersignal für die Wähler beschrieben. Während der Zeit,
während die Steuerschaltung den Adressengenerator zur Aufstu
fung der Horizontaladresse von 0 bis zu der Endadresse und
danach zu der Abtastung von 0 bis zu der Adresse des ver
größerten Bereichs steuert, wie es vorstehend beschrieben
ist, nämlich der Bereich (k, ℓ + 1) überdeckt wird, wird das
Ausgangssignal (k, ℓ + 1) gewählt und ausgegeben. Ferner wird
während der Zeit, während der die Vertikaladresse von 0 bis
zu der Endadresse aufgestuft wird und danach von 0 bis zu der
Adresse des vergrößerten Bereichs abgetastet wird (die bei
spielsweise bei der 3 × 3-Ortsfrequenzfilterung "1" ist), näm
lich bei der Überlappung des Bereichs (k, ℓ) mit dem Bereich
(k + 1, ℓ) das Ausgangssignal (k + 1, ℓ) gewählt und ausgegeben.
Wenn beides der Fall ist, nämlich der vergrößerte Bereich den
Bereich (k + 1, ℓ + 1) überlappt, wird mittels der Steuerschaltung
das Ausgangssignal des Speicherelements (k + 1, ℓ + 1) gewählt.
Dies wird ergänzend hinsichtlich einer Datensteuerschaltung
zwischen der Prozessoreinheit und dem schreibseitigen Bild
speicher erläutert. Die Schaltungsanordnung ist derjenigen
nach Fig. 40 gleichartig. Die Eingangssignale für die Aus
gabe des Ausgangssignals eines Wählers an ein Speicherelement
(k, ℓ) sind jedoch in diesem Fall die Signale (k, ℓ), (k, ℓ - 1),
(k - 1, ℓ) und (k - 1, ℓ - 1). Falls die vergrößerten Bereiche der in
Fig. 38(a) gezeigten Art nicht die unbearbeiteten Teilberei
che der drei Bereiche links, unterhalb und unten links in
bezug auf den Bereich (k, ℓ) überdecken, sondern die Bereiche
in der Weise vergrößert sind, daß nur die oberen, unteren,
rechten und linken unbearbeiteten Teilbereiche innerhalb des
Bereichs (k, ℓ) erfaßt sind, ist eine Datensteuerschaltung
zwischen der Prozessoreinheit und dem schreibseitigen Bild
speicher nicht erforderlich. In diesem Fall müssen für das
Wähler-Ausgangssignal (k, ℓ) die Eingangssignale der Daten
steuerschaltung zwischen dem leseseitigen Bildspeicher und
der Prozessoreinheit die Signale (k, ℓ), (k - 1, ℓ - 1), (k - 1, ℓ),
(k - 1, ℓ + 1), (k, ℓ - 1), (k, ℓ + 1), (k + 1, ℓ - 1), (k + 1, ℓ) und (k + 1, ℓ + 1)
sein. Dies ist leicht aus der Fig. 38(b) zu ersehen. Ergän
zend ist hinzuzufügen, daß die Wähler die Daten aus neun in
den vergrößerten Bereichen enthaltenen Bereichen, nämlich
neun Speicherelementen wählen müssen und diese Daten in das
Prozessorelement (k, ℓ) der Prozessoreinheit eingeben müssen.
Es ist eine Datensteuerschaltung für die Steuerung von k × ℓ
Wählern erforderlich.
Als nächstes werden die von der Datensteuerschaltung abgege
benen Daten in die jeweiligen Prozessorelemente eingegeben,
die die Prozessoreinheit bilden. Die Prozessorelemente (1,1)
bis (3,3) enthalten Zeilenpuffer für mehrere Zeilen der er
weiterten Bereiche. Nach der Ortsfrequenzfilterung werden die
Daten über die in Fig. 39 nicht dargestellte Datensteuer
schaltung an die Speicherelemente (1,1) bis (3,3) abgegeben,
die den schreibseitigen Bildspeicher bilden. Die Datensteuer
schaltung korrigiert auch die Ergebnisse der Ortsfrequenzfil
terung, wenn ein Bereich ein vergrößerter Teilbereich ist.
Hierbei sind die an die jeweiligen Speicherelemente des
schreibseitigen Bildspeichers von dem Adressengenerator ange
legten Adressen identisch. In bezug auf die an den leseseiti
gen Bildspeicher angelegten Adressen sind jedoch die an den
schreibseitigen Bildspeicher angelegten Adressen um eine
Zeitspanne verzögert, die einer Verzögerung in den Prozessor
elementen entspricht. Selbst wenn dabei in den vergrößerten
Bereichen die Ortsfrequenzfilterung vorgenommen wird, werden
die Ränder der vergrößerten Bereiche im wesentlichen keiner
Ortsfrequenzfilterung unterzogen. Beispielsweise werden bei
einer Verarbeitung zur 3 × 3-Glättung oder dergleichen die
Ausgangsbereiche um die Breite eines Bildelements gleichzei
tig nach links, nach rechts, nach oben und nach unten kleiner
als die vergrößerten Bereiche. Der schreibseitige Bildspei
cher wird nur dann eingeschaltet, wenn Daten für einen Be
reich ausgegeben werden, der der Ortsfrequenzfilterung unter
zogen wurde.
Wenn bei der Ortsfrequenzfilterung mittels eines Prozessor
elements die Breite des Ausgabebereichs oben, unten, links
und rechts verringert wird, wird der Bereich auf das gleiche
Format wie dasjenige des Bereichs (k, ℓ) zurückgeführt, wel
cher dem Speicherelement (k, ℓ) des schreibseitigen Bildspei
chers entspricht. Daher ist keine Datensteuerschaltung zwi
schen der Prozessoreinheit und dem schreibseitigen Bildspei
cher erforderlich.
Die bei diesem Ausführungsbeispiel die Prozessoreinheit bil
denden Prozessorelemente werden nun ausführlich beschrieben.
Die Fig. 41 ist ein Blockschaltbild, das den Aufbau eines
3 × 3-Glättungs-Raumfilters bzw. Ortsfrequenzfilters gemäß
einem Beispiel zeigt. Die aus einem leseseitigen Speicherele
ment über die Datensteuerschaltung an ein Prozessorelement
angelegten Bilddaten werden in einen Zwischenspeicher 2604
und einen Zeilenpuffer 2601 eingegeben. Die Ausgangssignale
des Zeilenpuffers 2601 werden in einen Zwischenspeicher 2607
und einen Zeilenpuffer 2602 eingegeben. Die Ausgangssignale
des Zeilenpuffers 2602 werden in einen Zwischenspeicher 2610
eingegeben. Den Zeilenpuffern 2601 und 2602 werden eine Ad
resse aus eine Zähler 2603 und eine Adresse aus einem (nicht
gezeigten) Adressenzähler gemäß der Darstellung in Fig. 39
zugeführt. Der Zähler 2603 erhält aus der Steuerschaltung ein
Bildübertragungstaktsignal bei jedem zweiten horizontalen
Bildelement des vergrößerten Bereichs, um damit die Adresse
aufzustufen, sowie als Eingangssignal aus der Steuerschaltung
ein Löschsignal bei jeder horizontalen Zeile, wodurch die
Adresse gelöscht wird. Die Zeilenpuffer sind für das gleich
zeitige Lesen von Eingangssignalen und Schreiben von Aus
gangssignalen ausgebildet.
Als Ergebnis dieser Funktion werden Bilddaten von bestimmten
Stellen auf drei zusammenhängenden horizontalen Linien in die
Zwischenspeicher 2604, 2607 und 2610 eingegeben. Zwischen
speicher 2604 bis 2612 sind durch D-Flip-Flops gebildet.
Durch die Bildübertragungstaktsignale aus der Steuerschaltung
werden die Ausgangssignale der Zwischenspeicher 2604, 2607
und 2610 über die Zwischenspeicher 2605, 2608 und 2611 auf
einanderfolgend an die Zwischenspeicher 2606, 2609 und 2612
abgegeben.
Die Ausgangssignale der Zwischenspeicher 2604 bis 2612 sind
zu diesem Zeitpunkt 3 × 3 zusammenhängende Bildelemente in
einem Einzelbild. Diese Ausgangssignale werden an einen Ad
dierer 2613 angelegt, der die gesamte Anzahl der Bildelemente
berechnet bzw. zusammenfaßt. Das Ergebnis wird in einen Divi
dierer 2614 eingegeben, der das Eingangssignal mit 1/9 multi
pliziert, um damit die 3 × 3-Glättung auszuführen. Das sich
ergebende Ausgangssignal des Dividierers 2614 wird an das
schreibseitige Speicherelement oder die mit dem schreibseiti
gen Speicherelement verbundene Datensteuerschaltung abgege
ben.
Es wurde zwar der Ortsfrequenzfilterungsvorgang beschrieben,
jedoch können selbstverständlich die die Prozessoreinheit
bildenden Prozessorelemente jeweils durch Prozessoren wie
Zentraleinheiten gebildet sein.
Ferner kann selbstverständlich der Randbereich eines Einzel
bilds, nämlich der in Fig. 36 gezeigte schattierte bzw. graue
Teilbereich bei beiden Ortsfrequenzfilterungs-Prozessen nicht
der Ortsfrequenzfilterung unterzogen werden.
Da gemäß den vorangehenden Ausführungen ein Einzelbild in m × n
Bereiche unterteilt ist, ist der Bildbereich verkleinert, der
einem einzelnen Speicherelement zugeordnet ist. Der dieser
Erfordernis entsprechende Ortsfrequenzfilter-Prozessor hat
nur einen Zeilenpuffer für einen kleinen Bereich. Hierdurch
wird es möglich, einen Prozessor mit hohem Integrationsgrad
einzusetzen, der eine Vielzahl von Puffern enthält. Als Pro
zessor kann eine Zentraleinheit (CPU) oder eine Zentralein
heit mit einem internen Schreib/Lesespeicher (RAM) bzw. Ar
beitsspeicher eingesetzt werden. Da m × n Bereiche gleichzeitig
der Ortsfrequenzfilterung unterzogen werden, ist die Verar
beitungszeit beträchtlich verkürzt.
Bei den vorstehend beschriebenen Ausführungsbeispielen wird
eine Anordnung aus m × n Speicherelementen verwendet, was das
gleichzeitige Abrufen und Verarbeiten von m × n Bildelementen
ermöglicht, so daß eine schnelle Bildverarbeitung erreicht
wird.
Ferner ist durch das Verwenden einer Anordnung für ein Sys
tem, in dem m × n zusammenhängende Bildelemente in einem Ein
zelbild m × n Speicherelementen derart zugeordnet sind, daß die
Bildelemente gleichzeitig abgerufen werden können, oder für
ein System, in dem m × n zufallsverteilte Bildelemente in einem
Einzelbild m × n Speicherelementen in der Weise zugeordnet
sind, daß diese Bildelemente gleichzeitig abgerufen werden
können, die zweidimensionale Filterung kleiner zusammenhän
gender Räume in ersterem Fall und eine Verarbeitung zum
Bewegen bzw. Versetzen in letzterem Fall erleichtert. Auf
diese Weise ist der Speicherzugriff für das Ausführen der für
die Bildverarbeitung geeigneten Prozesse ermöglicht.
Ferner ist bei den vorstehend beschriebenen Ausführungsbei
spielen infolge der k × ℓ-Speicherelemente-Anordnung anstelle
des Abrufens aller Speicherelemente das Maskieren ermöglicht.
D. h., bei der Ausführung einer Verarbeitung wie der Ortsfre
quenzfilterung läuft die Verarbeitung häufig derart ab, daß
die Verarbeitungsergebnisse Blöcke kleinen Formats wie des
Formats 1 × 1 werden. Es wird jedoch eine Verarbeitung möglich,
bei der wie bei den vorstehend beschriebenen Ausführungsbei
spielen das Format der Speicherelementeanordnung und das
Format des abgerufenen Bilds voneinander verschieden sind.
Auf diese Weise wird mit den Ausführungsbeispielen eine Bild
verarbeitungseinrichtung geschaffen, die die Bildverarbeitung
durch die parallele Verarbeitung in einer endlichen kleinen
Anzahl von Prozessoren mit hoher Geschwindigkeit ausführt.
Anhand der Zeichnung wird nun die Verarbeitung zur Raum- bzw.
Ortsfrequenzfilterung weiter beschrieben. Im folgenden wird
ein Prozeß beschrieben, bei dem die jeweils rechteckigen
Bereichen von m × n Bildelementen eines ursprünglichen Bilds
entsprechenden Bilddaten in einem Bildspeicher gleichzeitig
abgerufen werden, die Bilddaten von einer Matrixprozessorein
heit aus m × n Prozessorelementen aufgenommen werden, von denen
jedes einem entsprechenden Bildelement zugeordnet wird, durch
die Matrixprozessoreinheit die Ortsfrequenzfilterung ausge
führt wird und die Ergebnisse ausgegeben werden.
Die Fig. 42 zeigt die Zuordnungen zwischen einem einem ur
sprünglichen Bild entsprechenden Eingabeblock 281, Bildele
menten 281a in dem Eingabeblock, einer Matrixprozessoreinheit
282, Prozessorelementen 282a in der Matrixprozessoreinheit,
einem Ausgabeblock 283 und Bildelementen 283a in dem Ausgabe
block. Hierbei gilt m = n = 4. Infolgedessen werden 16 Bild
elementedaten des eingangsseitigen Speichers gleichzeitig
abgerufen und von der Matrixprozessoreinheit aufgenommen. Die
Matrixprozessoreinheit besteht aus 16 Prozessorelementen. Die
Matrixprozessoreinheit führt die Ortsfrequenzfilterung in
einem Gebiet von 3 Bildelemente × 3 Bildelemente aus und gibt
die Ergebnisse an einen aus 2 Bildelemente × 2 Bildelemente,
nämlich insgesamt 4 Bildelementen gebildeten Block des aus
gangsseitigen Speichers ab.
Die Prozessorelemente in der Matrixprozessoreinheit sind
entsprechend den 4 × 4 Bildelementen zu einer quadratischen
gitterartigen 4 × 4-Matrix angeordnet. Die Prozessorelemente
sind aufeinanderfolgend in Zeilenrichtung und Spaltenrichtung
numeriert. Gemäß Fig. 43 können die Prozessorelemente vonein
ander durch ihre Bezeichnung mit der Zeilennummer und der
Spaltennummer unterschieden werden.
Die Ortsfrequenzfilterung besteht darin, daß unter Verwendung
einer Koeffizienten-Matrix der beispielsweise in Fig. 44
gezeigten Art das Produkt von Koeffizienten für jeweils ent
sprechende Bildelemente gebildet wird und die Summe in eine
einer mittigen Stelle entsprechende Speicherstelle ausgegeben
wird. Dies wird anhand der Fig. 42 beschrieben. Im einzelnen
wird der durch die Prozessorelemente (1,1), (1,2), (1,3),
(2,1), (2,2), (2,3), (3,1), (3,2) und (3,3) gebildete 3 × 3-
Bereich einem Rechenvorgang mittels des Prozessorelements
(2,2) unterzogen. Aus den anderen Prozessorelementen werden
die Daten aufgenommen und es wird die Ortsfrequenzfilterung
ausgeführt. Auf gleichartige Weise erfolgt die Ortsfrequenz
filterung an dem durch die Prozessorelemente (1,2), (1,3),
(1,4), (2,2), (2,3), (2,4), (3,2), (3,3) und (3,4) gebildeten
3 × 3-Bereich durch das Prozessorelement (2,3) und an dem durch
die Prozessorelemente (2,1), (2,2), (2,3), (3,1), (3,2),
(3,3), (4,1), (4,2) und (4,3) durch das Prozessorelement
(3,2). Ferner wird der durch die Prozessorelemente (2,2),
(2,3), (2,4), (3,2), (3,3), (3,4), (4,2), (4,3) und (4,4)
gebildete 3 × 3-Bereich der Ortsfrequenzfilterung durch das
Prozessorelement (3,3) unterzogen.
Die Prozessorelemente (2,2), (2,3), (3,2) und (3,3) für die
Ortsfrequenzfilterung enthalten eine Schaltung der in Fig. 45
gezeigten Art, durch die die Ortsfrequenzfilterung ausgeführt
wird. In der Schaltung nach Fig. 45 werden die Daten aus den
jeweils acht angrenzenden Prozessorelementen mittels Addie
rern 221 bis 227 addiert und dann mittels einer Schiebeschal
tung bzw. eines Schieberegisters 228 mit 1/8 multipliziert.
Ein Subtrahierer 229 berechnet die Differenz zwischen dem
Ausgangssignal des Schieberegisters 228 und einem Wert für
das Ziel-Bildelement, der von dem Prozessorelement mit dieser
Schaltung für sich bzw. direkt aufgenommen und zuerst mittels
einer Verzögerungsschaltung 231 verzögert wird. Ein Addierer
230 addiert die von dem Subtrahierer 229 abgegebene Differenz
mit dem von dem Prozessorelement direkt aufgenommenen Wert
nach dessen Verzögerung mittels einer Verzögerungsschaltung
232. Auf diese Weise wird ein 4 × 4-Bildelementebereich einge
geben und ein Ausgangssignal in einen 2 × 2-Bildelementebereich
ausgegeben.
Bei dieser Beschreibung ist die Ortsfrequenzfilterung eines
3 × 3-Bildelementebereichs mit einem 4 × 4-Bildelementebereich
als Eingabe und einem 2 × 2-Bildelementebereich als Ausgabe
erläutert. Es besteht jedoch keine Einschränkung auf diese
Anordnung. Vielmehr ist es offensichtlich, daß die Ortsfre
quenzfilterung für einen p × q-Bildelementebereich mit m ≧ k + p
und n ≧ ℓ + q mit einer Eingabe eines m × n-Bildelementebereichs
und einer Ausgabe eines k × ℓ-Bildelementebereichs vorgenommen
werden kann. Außerdem besteht hinsichtlich der Koeffizienten
für die Raum- bzw. Ortsfrequenzfilterung keine Einschränkung
auf die in der Fig. 44 gezeigten. Es muß nur ein Prozessor
element mit einer Verarbeitungsschaltung eingesetzt werden,
die einer Koeffizientenmatrix entspricht.
Während nach dem Stand der Technik die Verarbeitung für ein
jedes einzelne Ausgangsbildelement wiederholt wird, werden
bei dem beschriebenen Ausführungsbeispiel die Ergebnisse der
Verarbeitung für mehrere Ausgangsbildelemente im gleichen
Zyklus ausgegeben, so daß eine sehr hohe Verarbeitungsge
schwindigkeit erreicht werden kann.
Durch die gleichzeitige Eingabe zusammenhängender, eng be
nachbarter Bildelemente an dem Eingang kann die Ortsfrequenz
filterung in einem Zyklus ausgeführt werden, so daß es mög
lich ist, die Ergebnisse der Ortsfrequenzfilterung für eine
Vielzahl von Ausgabebildelementen gleichzeitig auszugeben.
Durch das gleichzeitige Abrufen und Verarbeiten einer Viel
zahl eingegebener Daten ist die Verarbeitungsgeschwindigkeit
im Vergleich zu dem jeweils einzelnen Abrufen der Daten
erhöht. Darüberhinaus kann eine Verarbeitung (Ortsfrequenz
filterung, Farbverarbeitung usw.), bei der der Zusammenhang
zwischen gleichzeitig abgerufenen Daten durch einen Datenaus
tausch zwischen Prozessorelementen in Rechnung zu ziehen ist,
durch einen einzigen Eingangsdatenabruf ausgeführt werden.
Bilddaten-Erweiterung und -Reduktion:
Bei nachstehend beschriebenen weiteren Ausführungsbeispielen
der Bildverarbeitungseinrichtung wird in der Prozessoreinheit
2 eine Bildvergrößerung vorgenommen. Es besteht jedoch keine
Einschränkung hinsichtlich der Anzahl k × ℓ oder K × L der
Speicherelemente, die den leseseitigen Bildspeicher und den
schreibseitigen Bildspeicher bilden. Obwohl bei diesem Aus
führungsbeispiel nur die Erweiterung bzw. Vergrößerung be
schrieben ist, wird auf gleiche Weise eine Reduktion bzw.
Verkleinerung erzielt. Weiterhin besteht keine Einschränkung
hinsichtlich der Blockformate k' × ℓ' oder K' × L' der leseseitig
und schreibseitig abgerufenen Bildelemente. Es ist jedoch
vorauszusetzen, daß bei einer Bildvergrößerung mittels der
Prozessoreinheit 2 das durch die Vergrößerung des leseseitig
abgerufenen Formats k' × ℓ' erhaltene Format den Bedingungen
K' < αk' und L' < βℓ' genügen muß, wobei α und β die maximalen
Faktoren der Vergrößerung in Längsrichtung und Querrichtung
sind.
Als nächstes wird die Vergrößerung beschrieben. Gemäß Fig. 46
enthält eine Prozessoreinheit 312 einen Adressengenerator 313
und eine Rechenschaltung 315 und wird unter der Steuerung
durch eine Steuerschaltung 311 betrieben. Der Adressengenera
tor 313 erzeugt eine Anfangsadresse für einen eingangsseiti
gen Bildspeicher 316, der für die Berechnung erforderliche
Eingangsbilddaten enthält. Ein jeweiliges Prozessorelement in
der Rechenschaltung 315 berechnet aus den eingegebenen Bild
daten Ausgangsbilddaten für die Ausgabe an einen ausgangssei
tigen Bildspeicher 317. Die Rechenschaltung 315 nimmt alle
Bilddaten eines Datenbereichs mit der Anfangsadresse als ein
Rand des Bildbereichs auf. Ein jedes Prozessorelement wählt
aus den aufgenommenen Daten die der Stelle in dem ausgangs
seitigen Bildspeicher 317 entsprechenden Eingangsbilddaten
für die Ausgabe der Verarbeitungsergebnisse aus, führt eine
zweidimensionale Interpolation aus und gibt di 58433 00070 552 001000280000000200012000285915832200040 0002003844921 00004 58314e Ergebnisse
ab.
Dies wird etwas ausführlicher beschrieben. Für die Beschrei
bung sei angenommen, daß die Prozessoreinheit 312 mit Prozes
sorelementen für vier Spalten in einer Hauptabtastrichtung
und vier Zeilen in einer Unterabtastrichtung, nämlich mit 16
Prozessorelementen ausgestattet ist. Der eingangsseitige
Bildspeicher 316 gibt gleichzeitig an die Prozessoreinheit
Daten für fünf Spalten in der Hauptabtastrichtung und fünf
Zeilen in der Unterabtastrichtung, nämlich einen Datenbereich
aus 25 Bildelementen ab. Welche Daten in dem Datenbereich aus
5 × 5 Bildelementen ausgegeben werden, wird durch den Adressen
generator 313 bestimmt. Der Aufbau und die Funktion des
Adressengenerators 313 werden nun anhand der Fig. 47 be
schrieben. Der Adressengenerator 313 ist mit einer Hauptab
tastrichtungs-Schaltung, die nachstehend als Hauptabtast
schaltung 1 bezeichnet wird und die eine die Hauptabtastrich
tung bestimmende Adresse aus den Adressen eines vorbestimmten
5 × 5-Bildelementebereichs abgibt, und mit einer Unterabtast
richtungs-Schaltung aufgebaut, die nachstehend als Unterab
tastschaltung 1 bezeichnet wird und die eine die Unterabtast
richtung bestimmende Adresse aus den Adressen des vorbestimm
ten 5 × 5-Bildelementebereichs abgibt. In einem Register 321
wird durch die Steuerschaltung 311 ein Wert voreingestellt,
der das Vierfache des Kehrwerts des Vergrößerungsfaktors für
die Hauptabtastrichtung ist. In einem Register 322 wird durch
die Steuerschaltung 311 ein Wert voreingestellt, der das
Vierfache des Kehrwerts des Vergrößerungsfaktors für die
Unterabtastrichtung ist. Ein Zwischenspeicher 325 wird durch
ein Betriebssynchronisierungssignal für die Unterabtastrich
tung auf "0" gelöscht, wonach der Zwischenspeicher auf ein
Betriebssynchronisierungssignal 327 für die Hauptabtastrich
tung hin das Ausgangssignal eines Addierers 323 aufnimmt. Auf
das Betriebssynchronisierungssignal 327 für die Hauptabtast
richtung hin wird von dem Addierer 323 der in dem Register
321 eingestellte Wert mit einem in dem Zwischenspeicher 325
gespeicherten Wert addiert und das Ergebnis ausgegeben. In
folgedessen wird durch die Synchronisierung der Funktion für
die Hauptabtastrichtung der von dem Zwischenspeicher 325
abgegebene Wert stufenweise um einen Wert erhöht, der dem
Vierfachen des Kehrwerts des Vergrößerungsfaktors für die
Hauptabtastrichtung entspricht, wonach der Zwischenspeicher
auf "0" gelöscht wird, sobald die Synchronisierung für die
Unterabtastrichtung erfolgt. Das Register 322, ein Addierer
324 und ein Zwischenspeicher 326 arbeiten auf genau die
gleiche Weise dann, wenn an die Stelle der Hauptabtastungs-
Synchronisierung die Unterabtastungs-Synchronisierung sowie
an die Stelle der Unterabtastungs-Synchronisierung eine
Seitensynchronisierung tritt. Bei diesem Ausführungsbeispiel
wird ein Signal, das einen 5 × 5-Bildelementebereich in dem
eingangsseitigen Bildspeicher 316 bestimmt, in Abhängigkeit
von den in den Zwischenspeichern 325 und 326 gespeicherten
ganzzahligen Teilen gebildet. Entsprechend diesem Bestim
mungssignal gibt der eingangsseitige Bildspeicher 316 die 25
Bildelementedaten für einen Bereich mit fünf Bildelementen in
der Hauptabtastrichtung und fünf Bildelementen in der Unter
abtastrichtung beginnend mit der vorangehend genannten Adres
se aus. Hinsichtlich der Adressen für den ausgangsseitigen
Bildspeicher 317 werden in der Hauptabtastrichtung die Adres
sen für vier Bildelemente des ausgangsseitigen Bildspeichers
317 entsprechend der Hauptabtastungssynchronisierung und in
der Unterabtastrichtung die Adressen für vier Bildelemente
des Bildspeichers 317 entsprechend der Unterabtastungssyn
chronisierung erhöht.
Von einem Adressenkorrekturteil 314 in der Prozessoreinheit
312 werden aus den eingegebenen 25 Bildelementedaten geeigne
te vier Bildelementedaten gewählt und Adressenkorrektursig
nale für das Anlegen eines Interpolationskoeffizienten für
die Interpolation an die 16 Prozessorelemente in der Rechen
schaltung 315 erzeugt.
Die Fig. 48 zeigt den Aufbau der Prozessoreinheit 2 bzw. 312,
in welcher mit 331 der anhand der Fig. 47 beschriebene Adres
sengenerator 313 bezeichnet ist. Der Adressenkorrekturteil
314 enthält Abschnitte 332 und 332' aus Hauptabtastschaltun
gen 2, 3 und 4 bzw. Unterabtastschaltungen 2, 3 und 4, die
der Hauptabtastschaltung 1 bzw. der Unterabtastschaltung 1
gleichartig sind, die in Zusammenhang mit Fig. 47 beschrieben
sind. Von den Hauptabtastungs-Registern 321 in den Hauptab
tastschaltungen 2 bis 4 enthält das Register 321 in der
Hauptabtastschaltung 2 einen Wert, der stets um den Kehrwert
des Vergrößerungsfaktors für die Hauptabtastrichtung größer
als der Wert in dem Register 321 der Hauptabtastschaltung 1
ist. Gleichermaßen enthält von den Registern 321 in den
Schaltungen das Register in der Hauptabtastschaltung 3 einen
größeren Wert als das Register in der Hauptabtastschaltung 2
und das Register in der Hauptabtastschaltung 4 einen größeren
Wert als das Register in der Hauptabtastschaltung 3. Anderer
seits sind die Werte in den Unterabtastungsregistern 322 in
den Unterabtastschaltungen 2 bis 4 jeweils um den Kehrwert
des Vergrößerungsfaktors für die Unterabtastrichtung größer,
wobei der Wert in der Unterabtastschaltung 4 größer als
derjenige in der Unterabtastschaltung 3 ist, der Wert in der
Unterabtastschaltung 3 größer als derjenige in der Unterab
tastschaltung 2 ist und der Wert in der Unterabtastschaltung
2 größer als derjenige in der Unterabtastschaltung 1 ist. Die
Ausgangssignale der Hauptabtastschaltungen 2 bis 4 und der
Unterabtastschaltungen 2 bis 4 werden jeweils als Signale
herangezogen, die bestimmen, welche vier Bildelemente der 25
Bildelemente in dem eingegebenen Bereich zu wählen sind. Als
Beispiel sei der Fall betrachtet, daß ein Vergrößerungsfaktor
2,5 für die Hauptabtastrichtung und ein Vergrößerungsfaktor
1,5 für die Unterabtastrichtung vorgesehen sind. Die Hauptab
tastschaltung 1 zählt jedesmal bis 1,600 (= 4 × 1/2,5) hoch,
während die Unterabtastschaltung 1 jeweils bis 2,666 (=
4 × 1/1,5) hochzählt, wobei die ganzzahligen Teile der Zähl
stände in der Hauptabtastschaltung 1 und der Unterabtast
schaltung 1 herangezogen werden und als Anfangsadressen für
den Bereich aus 25 Bildelementen in den eingangsseitigen
Bildspeicher 316 eingesetzt werden. Ferner wird der von der
Hauptabtastschaltung 1 ausgegebene Dezimalbruchteil als
Hilfskoeffizienten-Datenwert für die Hauptabtastrichtung für
eine Spalte der Prozessormatrix, nämlich für die vier Prozes
sorelemente (1,1), (2,1), (3,1) und (4,1) nach Fig. 48 einge
setzt. Der Dezimalbruchteil aus der Unterabtastschaltung 1
wird als Hilfskoeffizient-Datenwert für die Unterabtastrich
tung für eine Zeile der Prozessormatrix, nämlich für die vier
Prozessorelemente (1,1), (1,2), (1,3) und (1,4) nach Fig. 48
eingesetzt. Die von den Hauptabtastschaltungen 2, 3 und 4
gezählten Größen unterscheiden sich voneinander jeweils um
0,4 (= 1/2,5), während sich die von den Unterabtastschaltungen
2, 3 und 4 gezählten Größen voneinander um jeweils 0,666
(= 1/1,5) unterscheiden. Die diese Zählstände speichernden
Zwischenspeicher werden jedesmal hinsichtlich ihrer ganzzah
ligen Teile gelöscht, während sie dagegen die Dezimalbruch
teile aufaddieren. Die Hauptabtastschaltungen 2 bis 4 geben
die ganzzahligen Teile und die Dezimalbruchteile an die Pro
zessorelemente in der zweiten bis vierten Spalte der Prozes
sormatrix ab, während die Unterabtastschaltungen 2 bis 4 die
ganzzahligen Teile und die Dezimalbruchteile an die Prozes
sorelemente in der zweiten bis vierten Zeile der Prozessor
matrix abgeben. Eine jede Prozessormatrix wählt vier Bildele
mente aus den 25 Bildelementedaten aus dem eingangsseitigen
Bildspeicher 316 in Abhängigkeit von den ganzzahligen Teilen
der Daten, die in den entsprechenden Hauptabtastungs-Zwi
schenspeichern 325 und den entsprechenden Unterabtastungs-
Zwischenspeichern 326 gespeichert sind, führen dann die zwei
dimensionale Interpolation mit einem von dem Dezimalbruchteil
abhängigen Interpolationskoeffizienten aus und geben die
Interpolationsergebnisse an den entsprechenden ausgangsseiti
gen Bildspeicher 317 ab. Der ausgangsseitige Bildspeicher 317
wird immer unter Einsetzen eines 16-Bildelemente-Bereichs aus
4 × 4 Bildelementen als Einheit adressiert, wobei jeder Prozes
soreinheit eines der 16 Bildelemente zugeordnet ist.
Die Fig. 49 zeigt eine Wählschaltung, von denen jeweils eine
in jedem Prozessorelement enthalten ist, nämlich eine Schal
tung für das Wählen von vier Bildelementen aus 25 Bildelemen
ten. Die Fig. 50 zeigt ein Beispiel für den Aufbau einer in
Fig. 49 gezeigten Wählschaltung 720, die dabei aus Hauptab
tastungs-Wählern 351 bis 355 und Unterabtastungs-Wählern 356
und 357 bestehend dargestellt ist. Die Fig. 51 zeigt ein
Beispiel für den Aufbau eines jeweiligen Hauptabtastungs-
oder Unterabtastungs-Wählers. Ein jeder Hauptabtastungs- oder
Unterabtastungs-Wähler kann aus zwei Wählern 361 und 362 mit
jeweils vier Eingängen und einem Ausgang aufgebaut sein.
Hinsichtlich der ganzzahligen Teile aus der Hauptabtastschal
tung 1 und der Unterabtastschaltung 1 werden immer an die
Prozessorelemente einer jeden einzelnen Spalte und einer
jeden einzelnen Zeile die Werte "0" ausgegeben. Infolgedessen
wählt ein jedes Prozessorelement (i, j) ein I-tes, ein (I + 1)-
tes, ein J-tes und ein (J + 1)-tes der vier Eingangssignale
entsprechend einem Ausgangssignal (I, J) für die ganzzahligen
Teile einer Hauptabtastschaltung i und einer Unterabtast
schaltung j. Dadurch werden von dem Prozessorelement (i, j)
als vier Bildelemente aus den 25 Bildelementen die Bildele
mente (I, J), (I + 1, J), (I , J + 1) und (I + 1, J + 1) gewählt.
Als nächstes sei bei einer in Fig. 52 gezeigten Interpolier
schaltung 740 zur zweidimensionalen linearen Interpolation
angenommen, daß die eingegebenen Werte für die vier Bildele
mente V(I, J), V(I, J + 1), V(I + 1 , J) und V(I + 1, J + 1) sind und daß
die Interpolationskoeffizienten für die Hauptabtastrichtung
und für die Unterabtastrichtung jeweils α und β sind. Diese
werden als Dezimalbruchteile aus den entsprechenden Hauptab
tastschaltungen 1 bis 4 und den Unterabtastschaltungen 1 bis
4 angelegt. Dann wird die Berechnung (1 - β){(1 - α )V(I, J) +
αV(I + 1, J)} + β{(1 - α)V(I, J + 1)) + V(I + 1, J + 1)}
ausgeführt, wo
nach die Interpolationsergebnisse ausgegeben werden, wobei
0 ≦ α und β < 1 gilt.
Vorstehend ist die Funktion der Prozessoreinheit 312 be
schrieben. Der Zusammenhang zwischen den Bildelementeberei
chen des eingangsseitigen Bildspeichers 316, der Prozessor
einheit 312 und des ausgangsseitigen Bildspeichers 317 ist in
der Fig. 53 dargestellt. Im einzelnen ist die Anzahl der
Prozessorelemente in der Prozessoreinheit 312 gleich der
Anzahl der Bildelemente in dem ausgangsseitigen Bildspeicher
317, während die Anzahl der Bildelemente in dem zur Verarbei
tung herangezogenen Bildbereich in dem eingangsseitigen Bild
speicher kleiner als die Anzahl der Prozessorelemente in der
Prozessoreinheit 312 ist.
Während bei dem Stand der Technik die Verarbeitung für ein
jedes einzelne ausgegebene Bildelement wiederholt wird, wer
den bei dem vorstehend beschriebenen Ausführungsbeispiel die
Verarbeitungsergebnisse für eine Vielzahl von Ausgangsbild
elementen im gleichen Zyklus ausgegeben, so daß eine sehr
hohe Verarbeitungsgeschwindigkeit erreicht werden kann.
Ferner ist es möglich, die Interpolation unter gleichzeitiger
Eingabe zusammenhängender, eng benachbarter Bildelemente aus
dem eingangsseitigen Speicher auszuführen.
Der Aufbau und die Funktion der in Fig. 46 gezeigten Prozes
soreinheit 2 bzw. 312 werden nun ergänzend unter Bezugnahme
auf die Fig. 66 bis 68 beschrieben.
Die Fig. 66 zeigt den Aufbau des eingangsseitigen Bildspei
chers 316 und der Prozessoreinheit 312. Die Prozessoreinheit
312 ist gemäß Fig. 66 mit einer Gruppe digitaler Differenz
analysatoren bzw. Integratoren (DDA) aus Hauptabtastschaltun
gen 1 bis 4 für die Hauptabtastrichtung, einer Gruppe digita
ler Integratoren aus Unterabtastschaltungen 1 bis 4 für die
Unterabtastrichtung, einer Gruppe von Wählern für das Wählen
von vier aus 25 Bildelementen und einer Prozessorelemente
gruppe aus Prozessorelementen für die jeweiligen Wähler der
Wählergruppe aufgebaut.
Die Fig. 67 zeigt die Zusammenhänge zwischen den Prozessor
elementen der Prozessorelementegruppe und den Bildelementen
in einem Bildelementeblock des ausgangsseitigen Bildspeichers
317.
Die Fig. 68 ist eine die Fig. 47 ergänzende Darstellung und
dient zur Beschreibung des Hauptteils eines digitalen Inte
grators, der in Fig. 66 als Hauptabtastschaltungen 1 bis 4
und Unterabtastschaltungen 1 bis 4 dargestellt ist.
Gemäß Fig. 68 erhält der als Hauptabtastschaltungen 1 bis 4
und Unterabtastschaltungen 1 bis 4 dargestellte digitale
Integrator als Aufstufungswert einen Wert, der das Vierfache
des Kehrwerts des zu verändernden Vergrößerungsfaktors ist.
Da bei diesem Ausführungsbeispiel die Prozessorelementegruppe
aus 4 × 4 bzw. 16 Prozessorelementen besteht, haben die Haupt
abtastschaltungen 1 bis 4 und die Unterabtastschaltungen 1
bis 4 als Aufstufungswerte alle die Werte, die das Vierfache
des Kehrwerts des Vergrößerungsfaktors sind. Falls die Pro
zessorelementegruppe aus m × n Prozessorelementen gebildet ist,
erhält ein digitaler Integrator aus Hauptabtastschaltungen 1
bis m einen Aufstufungswert, der das m-fache des Kehrwerts
des Vergrößerungsfaktors ist, während ein digitaler Integra
tor aus Unterabtastschaltungen 1 bis n einen Aufstufungswert
erhält, der das n-fache des Kehrwerts des Vergrößerungsfak
tors ist. Falls beispielsweise der Vergrößerungsfaktor 8 ist,
ist der Aufstufungswert 4 × 1/8 = 1/2. Dementsprechend arbeiten
in dem digitalen Integrator für die Hauptabtastrichtung,
nämlich in den Hauptabtastschaltungen 1 bis 4 die Addierer
und Zwischenspeicher synchron mit dem Hauptabtastungs-Syn
chronisiersignal. Auf dieses Synchronisiersignal hin gibt
jedes Prozessorelement einen Wert ab, der einem einzelnen
Bildelement des Ausgabebilds entspricht. Diese Werte werden
unter Zeitsteuerung durch ein einzelnes Synchronisier-Takt
signal an den Block des Bildspeichers 317 für die Ausgabe
eines Bilds aus 4 × 4 bzw. 16 Bildelementen abgegeben. Zum
Zeitpunkt des nächsten Synchronisiertaktsignals werden die
Bildelementewerte für den benachbarten Block aus 4 × 4 Bildele
menten in dem ausgangsseitigen Bildspeicher 317 abgegeben und
in den Speicher eingeschrieben. Danach werden die Bildele
mentewerte aufeinanderfolgend in der Hauptabtastrichtung in
Einheiten von Blöcken aus 4 × 4 Bildelementen ausgegeben. Diese
Bildelementewerte werden ausgegeben und in den ausgangsseiti
gen Bildspeicher 317 bis zu dessen rechten Rand hin einge
schrieben, woraufhin die Hauptabtastung zu dem Ausgangspunkt
zurückkehrt und die Unterabtastung zu einem Block fortschrei
tet, der (in bezug auf den Bildbereich nach unten) um einen
Block versetzt ist. Dies wird dadurch erreicht, daß das
Speicherausgangssignal in dem digitalen Integrator mit den
Unterabtastschaltungen 1 bis 4 synchron mit dem Unterabta
stungs-Synchronisiersignal um den Aufstufungswert erhöht wird
und der Zwischenspeicher des digitalen Integrators mit den
Hauptabtastschaltungen 1 bis 4 durch das Unterabtastungs-
Synchronisiersignal rückgesetzt wird. Die Übereinstimmung
zwischen den von den Prozessorelementen ausgegebenen Werten
und den Bildelementen des Bildelementeblocks in dem ausgangs
seitigen Bildspeicher ist in Fig. 67 dargestellt.
Jedes Prozessorelement erhält zum Bilden der Wechselbeziehung
bzw. Korrelation einen Interpolationskoeffizienten durch das
Heranziehen der Dezimalbruchteile des digitalen Hauptabta
stungs-Integrators und des digitalen Unterabtastungs-Integra
tors (wobei für die Prozessorelement-Stelle (i, j) der Haupt
abtastungs-Integrator der Hauptabtastschaltung i und der
Unterabtastungs-Integrator der Unterabtastschaltung j ent
spricht). D. h., als Interpolationskoeffizienten werden die
Dezimalbruchteile selbst herangezogen. Die von dem digitalen
Hauptabtastungs-Integrator und dem digitalen Unterabtastungs-
Integrator (DDA) abgegebenen ganzzahligen Teile drücken die
Zuordnung zwischen den einzuschreibenden Ausgangs-Bildelemen
ten, deren Werte von den Prozessorelementen ausgegeben wer
den, und den Adressen der Bildelemente in dem Eingangsbild
speicher aus. "Um ein einzelnes Bildelement benachbart" in
dem Speicher für das Ausgangsbild hat die Bedeutung einer
Stelle, die um eine Strecke benachbart ist, welche in dem
Eingabebildspeicher dem Kehrwert des Vergrößerungsfaktors
äquivalent ist (nämlich bei dem Vergrößerungsfaktor 8 die um
1/8 benachbarte Stelle). Diese Stelle soll als "Imaginärstel
le" bezeichnet werden. Infolgedessen ist zum Erzielen von
Daten für diese Imaginärstelle die Interpolation erforder
lich. Von dem Ausgangssignal des digitalen Integrators gibt
der ganzzahlige Teil eine Adresse in dem Eingabebildspeicher
an, an der am nächsten an der Imaginärstelle liegend tatsäch
lich ein Eingabebildelement vorhanden ist, während der Dezi
malbruchteil eine Versetzung von der Stelle des tatsächlich
vorhandenen Eingabebildelements zu der Imaginärstelle dar
stellt. Infolgedessen wird der Dezimalbruchteil zum Bilden
des Interpolationskoeffizienten herangezogen. Der ganzzahlige
Teil wird als Adresse in dem Eingabebildspeicher für die
Eingangsbilddaten herangezogen, um die vorangehend beschrie
bene Interpolation auszuführen. Die ganzzahligen Teile aus
der Hauptabtastschaltung 1 und der Unterabtastschaltung 1
sind Adressen der Stelle in der oberen linken Ecke des 5 × 5-
Bildelementebereichs, der in den 16 Prozessorelementen verar
beitet werden kann. Dies ist in Fig. 66 dargestellt. Wenn der
Vergrößerungsfaktor "1" ist (Maßstab 1 : 1), werden alle 5 × 5
Bildelemente zumindest einmal in irgendeinem der 16 Prozes
sorelemente benutzt. Sobald der Vergrößerungsfaktor größer
ist, werden nur die Bildelemente in einem kleinen Bereich von
dem oberen linken Abschnitt des 5 × 5-Bildelementebereichs weg
benutzt. Infolgedessen werden bei einem Vergrößerungsfaktor
über "1" durch die ganzzahligen Teile aus der Hauptabtast
schaltung 1 und der Unterabtastschaltung 1 die 25 Bildelemen
tedaten für die an den Stellen am oberen linken Rand gelege
nen 5 × 5 Bildelemente in alle 16 Wähler eingegeben. Die Wähler
SEL sind jeweils einem der Prozessorelemente zugeordnet, so
daß ein Prozessorelement PE(i, j) einem Wähler SEL(i, j) ent
spricht. Gemäß den mittels Subtrahierern 710 und 712 berech
neten Differenzen zwischen den ganzzahligen Teilen der ent
sprechenden digitalen Integratoren für die Hauptabtastung und
Unterabtastung und den ganzzahligen Teilen aus der Hauptab
tastschaltung 1 und der Unterabtastschaltung 1 wählt das
entsprechende Prozessorelement, welche vier Bildelemente aus
den 5 × 5 bzw. 25 Bildelementen die erforderlichen Eingangs
bilddaten sind. Diese Zuordnung ist in Fig. 66 dargestellt.
Die Prozessorelemente der ersten Spalte verarbeiten immer
Bildelemente der ersten und zweiten Spalte der eingegebenen
5 × 5-Bildelementegruppe. Gleichermaßen verarbeiten die Prozes
sorelemente der ersten Zeile immer die Bildelemente der
ersten und zweiten Zeile der eingegebenen 5 × 5-Bildelemente
gruppe. Daher zeigt die Fig. 66, daß in die Wähler der ersten
Spalte statt der ganzzahligen Werte aus den digitalen Haupt
abtastungs-Integratoren eine Konstante eingegeben wird und in
die Wähler der ersten Zeile statt der ganzzahligen Werte aus
den digitalen Unterabtastungs-Integratoren gleichfalls eine
Konstante eingegeben wird.
Das von einem jeden Prozessorelement ausgeführte Interpola
tionsverfahren ist gleichartig der in Fig. 52 gezeigten In
terpolierschaltung 740 zur zweidimensionalen Interpolation
ausgeführten Verarbeitung und muß daher nicht noch einmal
beschrieben werden.
Bilddatenkomprimierung:
Bei einem nachstehend beschriebenen Ausführungsbeispiel der
Bildverarbeitungseinrichtung ist die von der Prozessoreinheit
2 ausgeführte Verarbeitung eine Bildkomprimierung. Es besteht
keine bestimmte Einschränkung hinsichtlich der Anzahl k × ℓ
oder K × L von Speicherelementen, die den leseseitigen oder
schreibseitigen Bildspeicher bilden.
Ferner besteht hinsichtlich der Blockformate k' × ℓ' und K' × L'
der in den Speichern abgerufenen Bildelemente keine Ein
schränkung auf das nachstehend beschriebene Beispiel. Es sind
jedoch die Bedingungen 1 ≦ k' ≦ k, 1 ≦ ℓ' ≦ ℓ, 1 ≦ K' ≦ K und 1 ≦ L' ≦ L
einzuhalten.
Es wird nun die Abtastung für den Speicherzugriff bei dem
nachfolgend beschriebenen Ausführungsbeispiel erläutert. Aus
den vorangehenden Ausführungen (hinsichtlich des ersten Bei
spiels) ist zu entnehmen, daß ohne Beschränkung auf die
Leseseite oder die Schreibseite dann, wenn das abgerufene
Bildelementeformat gleich dem Format der den jeweiligen Bild
speicher bildenden Speicherelemente ist, die Abtastung in
jedem der Bildspeicher nach dem vorangehend beschriebenen
ersten Folgeabfrageverfahren vorgenommen werden kann. Falls
andererseits in dem leseseitigen und schreibseitigen Bild
speicher ein Bildelementeformat abgerufen werden soll, das
kleiner als das Format der den Speicher bildenden Speicher
elemente ist, kann die Abtastung nach dem vorangehend be
schriebenen Block-Folgeabfrageverfahren vorgenommen werden
(5. Beispiel).
Es wird nun ein Prozeß beschrieben, bei dem aus einem Bild
speicher gleichzeitig Bilddaten abgerufen werden, die recht
eckigen Bereichen aus m × n Bildelementen eines ursprünglichen
Bilds entsprechen, die Bilddaten gleichzeitig von einer Pro
zessoreinheit aus Prozessorelementen in einer Anzahl aufge
nommen werden, die kleiner als das Blockformat m × n des recht
eckigen Bereichs in dem Bildspeicher ist, die Bilddaten dann
als Informationen von den jeweiligen Prozessorelementen unter
Informationsaustausch zwischen den Prozessorelementen verar
beitet werden, wodurch die eingegebenen Bilddaten komprimiert
werden, und die Ergebnisse in den ausgangsseitigen Bildspei
cher in einen rechteckigen Bereich ausgegeben werden, der
kleiner als das Blockformat m × n des rechteckigen Bereichs im
eingangsseitigen Bildspeicher für das ursprüngliche Bild
ist, so daß dadurch die eingangsseitigen ursprünglichen Bild
daten komprimiert sind. Zur Vereinfachung der Beschreibung
sei angenommen, daß das Blockformat des rechteckigen Bereichs
im eingangsseitigen Bildspeicher m = n = 4 ist, daß die Anzahl
der Prozessorelemente "2" ist und daß das Blockformat des
rechteckigen Bereichs im ausgangsseitigen Bildspeicher 1 × 1 = 1
ist.
Die Fig. 54 zeigt die Zusammenhänge zwischen einem Eingabe-
Bildelementeblock 561 in einem eingangsseitigen Bildspeicher
560 für das ursprüngliche Bild, Bildelementen 561a, einer
Prozessoreinheit 562, Prozessorelementen 563a und 563b und
Ausgabe-Bildelementen 564a in einem ausgangsseitigen Bild
speicher 564 für die Ausgabe komprimierter Daten. Aus einer
Steuereinheit 565 wird in die Prozessoreinheit 562 und den
eingangsseitigen Bildspeicher 560 ein Steuersignal eingege
ben, wodurch die Bilddaten aus dem Bildelementeblock 561 aus
16 zugehörigen Bildelementen in dem eingangsseitigen Bild
speicher 560 gleichzeitig abgerufen werden und die benötigten
Bilddaten von dem entsprechenden Prozessorelement 563a und
563b in der Prozessoreinheit 562 aufgenommen werden. Die
Prozessoreinheit 562 berechnet aus den Bilddaten für die 16
Bildelemente eine typische Dichteinformation 571 und eine
Detailinformation 572 gemäß der Darstellung in Fig. 55 und
gibt die komprimierten Bilddaten als Ausgabe-Bildelemente
564a zu den entsprechenden Stellen in dem ausgangsseitigen
Bildspeicher 564 aus.
Von den beiden Prozessorelementen 563a und 563b in der Pro
zessoreinheit 562 ist eines, nämlich das Prozessorelement
563a für die Berechnung der typischen Dichteinformation 571
aus den Bilddaten für die 16 Bildelemente bestimmt, während
das andere, nämlich das Prozessorelement 563b zum Berechnen
der Detailinformation 572 dient, welche auf einer Bildinfor
mation beruhend berechnet wird, die mittels eines festen
Schwellenwerts binär codiert ist, der der Charakteristik des
eingegebenen Bilds entspricht. Die Detailinformationen sind
beispielsweise Daten, die durch Vektorquantisierung der binär
codierten Bildinformationen gewonnen werden, und Daten über
die Verteilung der Bildinformationen. Vorstehend sind zusam
mengefaßt die Einrichtung und der Prozessablauf für das Kom
primieren eingegebener ursprünglicher Bilddaten beschrieben.
Es werden nun die Einzelheiten der von den Prozessorelementen
563a und 563b ausgeführten Verarbeitung beschrieben.
Das ausschließlich für das Berechnen der typischen Dichtein
formation 571 vorgesehene Prozessorelement 563a weist gemäß
Fig. 56 einen Puffer 581 für das vorübergehende Speichern der
Bilddaten für die 16 Bildelemente und eine arithmetische bzw.
Recheneinheit 582 auf. Das Prozessorelement 563a bildet aus
den Bilddaten für die 16 Bildelemente einen mittleren Dichte
wert und gibt diesen Wert als typische Dichteinformation an
den ausgangsseitigen Bildspeicher 564 ab. Das ausschließlich
zum Zusammenstellen der Detailinformation 572 dienende Pro
zessorelement 563b weist gleichfalls einen 16-Bildelemente-
Puffer 581 und eine Recheneinheit 582 gemäß Fig. 56 auf.
Entsprechend den Eigenschaften des eingegebenen ursprüngli
chen Bilds wird die Detailinformation 572, die eine Block
innenmuster-Information, welche durch das binäre Codieren der
Tönungsinformationen für die 16 Bildelemente mit einem von
einer nicht gezeigten Einrichtung vorbestimmten Schwellenwert
ermittelt wird, und eine aus dem Schwellenwert und einem
jeweiligen Bildelement der Bilddaten in dem Block ermittelte
Verteilungsinformation enthält, zusammen mit der typischen
Dichteinformation 571 an den ausgangsseitigen Bildspeicher
564 ausgegeben.
Dabei sind die beiden Prozessorelemente 563a und 563b zu
parallelem Arbeiten ausgebildet, so daß die Komprimierung mit
hoher Geschwindigkeit ausgeführt wird.
Bei dem vorstehend beschriebenen Komprimieren wird der ein
gangsseitige Bildspeicher aufeinanderfolgend in Speicher
blockeinheiten aus 4 × 4 Bildelementen abgefragt. Durch das
Wiederholen dieses Vorgangs bis zum Abschluß der Verarbeitung
des letzten Speicherblocks aus 4 × 4 Bildelementen in dem
Bildspeicher wird das ursprüngliche Bild einer Seite kompri
miert.
Gemäß der vorstehenden Beschreibung wird für das Berechnen
der Detailinformation aus den komprimierten Daten der durch
Vorgabe eines Schwellenwerts erhaltene feste Schwellenwert
benutzt. Es ist jedoch ersichtlich, daß dieser Schwellenwert
auch ein Wert sein kann, der der von dem Prozessorelement
563a abgegebenen mittleren Dichte entspricht. Ferner kann in
der Prozessoreinheit 562 ein einziges Prozessorelement einge
setzt sein.
Bei dem vorstehend beschriebenen Ausführungsbeispiel werden
die Rohdaten für das eingegebene ursprüngliche Bild während
des aufeinanderfolgenden Abrufens in Blöcken aus m × n Bildele
menten, nämlich 4 × 4 Bildelementen komprimiert. Daher werden
statt des mehrmaligen Abrufens eines jeden Bildelements in
dem eingangsseitigen Bildspeicher die Bilddaten für m × n Bild
elemente gleichzeitig abgerufen. Hierdurch wird es möglich,
die Bilddaten unter deren Komprimierung mit hoher Geschwin
digkeit zu übertragen.
Wenn die Bilddaten in Blockeinheiten aus m × n Bildelementen
codiert werden, kann ein einzelner Codierprozeß durch einen
einzelnen Speicherabruf dadurch ausgeführt werden, daß das
Format des eingangsseitigen Speicherblocks auf die gleichen
m × n Bildelemente festgelegt wird. Hierdurch wird das schnelle
Verarbeiten ermöglicht und der Aufbau der Einrichtung ver
einfacht. Ferner können dadurch, daß in der Prozessoreinheit
Prozessorelemente in einer Anzahl m' x n' vorgesehen werden,
die kleiner als die Anzahl m × n der Bildelemente in dem
eingangsseitigen Speicherblock ist, und daß an jedem Prozes
sorelement das gesonderte Verarbeiten herbeigeführt wird, die
Kosten für die Prozessoreinheit verringert werden, wobei
durch das parallele Verarbeiten die Verarbeitungsgeschwindig
keit zum Komprimieren gesteigert werden kann.
Es wird nun ein weiteres Ausführungsbeispiel für einen Kom
primiervorgang beschrieben.
Im folgenden wird ein Prozeß beschrieben, bei dem aus einem
Bildspeicher Bilddaten für rechteckige Bereiche aus m × n Bild
elementen eines ursprünglichen Bilds gleichzeitig abgerufen
werden, die Bilddaten von einer Prozessoreinheit mit m × n
Prozessorelementen aufgenommen werden, von denen jedes einem
entsprechenden Speicherelement für die jeweiligen Bildelemen
te zugeordnet ist, die Bilddaten mittels der jeweiligen Pro
zessorelemente komprimiert werden und die Ergebnisse in einem
Bildspeicher ausgegeben werden. Bei dieser Beschreibung ist
es zur Vereinfachung angenommen, daß m = n = 4 gilt.
Die Fig. 57 zeigt die Zusammenhänge zwischen einem Eingabe-
Bildelementeblock 591 in einem eingangsseitigen Bildspeicher
590 für ein ursprüngliches Bild, Bildelementen 591a, einer
Prozessoreinheit 592, Prozessorelementen 592a und Ausgangs
bilddaten 593a in einem ausgangsseitigen Bildspeicher 593.
Entsprechend einem Steuersignal aus einer Steuereinheit 594
werden die Bilddaten des Bildelementeblocks 591 mit 16 geeig
neten Bildelementen aus dem eingangsseitigen Bildspeicher 590
gleichzeitig abgerufen und von den jeweiligen Prozessorele
menten 592a in der Prozessoreinheit 592 aufgenommen. Die
Prozessoreinheit 592 berechnet aus den Bilddaten für die 16
Bildelemente die typische Dichteinformation 571 und die De
tailinformation 572 gemäß Fig. 55 und gibt die Ergebnisse an
den ausgangsseitigen Bildspeicher 593 aus.
Die Prozessorelemente 592a der Prozessoreinheit 592 stehen in
1 : 1-Zuordnung zu den 4 × 4 Bildelementen und sind gitter- bzw.
rasterförmig in einer 4 × 4-Matrix aus 16 Elementen angeordnet.
Vorstehend ist die Verarbeitung zur Bilddatenkomprimierung
zusammengefaßt beschrieben. Es werden nun die Einzelheiten
der von den Prozessorelementen 592a ausgeführten Verarbeitung
erläutert.
Die Prozessorelemente 592a in der Prozessoreinheit 592 werden
in Zeilen- und Spaltenrichtung numeriert, so daß sie gemäß
Fig. 58 und 59 voneinander durch die Kombination dieser
Nummern unterschieden werden.
Es wird nun der Prozeß für das Bilden der typischen Dichtein
formation aus den Bilddaten für die 16 Bildelemente beschrie
ben. Es sei angenommen, daß die in Fig. 58 gezeigten 16
Prozessorelemente 592a die entsprechenden Bilddaten aufgenom
men haben. Ein jedes der parallel arbeitenden Prozessorele
mente (1,1), ...(4,4) errechnet 1/16 der Dichtedaten für ein
jedes Bildelement, wonach alle Rechenergebnisse gleichzeitig
von dem Prozessorelement (1,1) addiert werden, aus den Dich
teinformationen für die 16 Bildelemente ein Mittelwert gebil
det wird und dieser Wert als Wert der in Fig. 55 gezeigten
typischen Dichteinformation 571 über die typische Dichte der
komprimierten Daten an den ausgangsseitigen Bildspeicher
abgegeben wird.
Nachstehend wird nun das Ermitteln der in Fig. 55 gezeigten
Detailinformation 572 über die Details in den Komprimierungs
daten beschrieben. Die in Fig. 59 gezeigten Prozessorelemente
sind die gleichen wie die in Fig. 58 gezeigten.
Zum schnellen Ermitteln der Musterinformation eines jeden
Bildelements, die durch binäres Codieren der Tönungsinforma
tion eines jeden Bildelements in den 16 Prozessorelementen
592a mit der von dem Prozessorelement (1,1) nach Fig. 58
abgegebenen Durchschnittsdichteinformation erhalten wird,
sowie der Durchschnittsdichteinformation und der Verteilungs
information aus jedem Posten der Bildelementedaten in dem
Block werden die 4 × 4 Prozessorelemente in vier Blöcke aus
jeweils 2 × 2 Prozessorelementen gemäß der Darstellung durch
die ausgezogenen Linien in Fig. 59 unterteilt; in den vier
Blöcken aus 2 × 2 Prozessorelementen werden die Musterinforma
tionen und die Verteilungsinformationen parallel verarbeitet,
wonach die Ergebnisse als Zwischenergebnisse in die vier
mittigen Prozessorelemente (2,2), (2,3), (3,2) und (3,3)
eingespeichert werden; die vorstehend beschriebene Verarbei
tung wird dann im mittigen Block aus 2 × 2 Prozessorelementen
ausgeführt, wonach in dem Prozessorelement (2,2) das Ender
gebnis gebildet wird und dieser Wert als Detailinformation
572 über die betreffenden 16 Bildelemente an den ausgangssei
tigen Bildspeicher ausgegeben wird.
Durch das Wiederholen der vorstehend beschriebenen Verarbei
tung unter aufeinanderfolgendem Abrufen des eingangsseitigen
Bildspeichers in Blockeinheiten aus 4 × 4 Bildelementen bis zum
Abschluß der Komprimierungsverarbeitung des letzten 4 × 4-
Bildelementeblocks des ursprünglichen Bilds werden kompri
mierte Daten erhalten, die dem ursprünglichen Bild einer
Seite äquivalent sind.
Bei dem vorstehend beschriebenen Ausführungsbeispiel werden
die Rohdaten des eingegebenen ursprünglichen Bilds aufeinan
derfolgend in Speicherblöcken aus m × n Bildelementen, wie z. B.
aus 4 × 4 Bildelementen abgerufen. Daher können statt des mehr
maligen Abrufens eines jeden Bildelements in dem eingangssei
tigen Bildspeicher die Bilddaten für m × n Bildelemente gleich
zeitig abgerufen werden. Dies ermöglicht eine schnelle Kom
primierung und Übertragung der Bilddaten.
Bei der Codierung der Bilddaten in Blockeinheiten aus m × n
Bildelementen kann ein einzelner Codierprozeß durch einen
einzelnen Speicherabruf dadurch ausgeführt werden, daß das
Format des eingangsseitigen Speicherblocks die gleichen m × n
Bildelemente erhält. Hierdurch wird eine schnelle Verarbei
tung ermöglicht und der Aufbau der Einrichtung vereinfacht.
Da ferner in der Prozessoreinheit die m × n Prozessorelemente
mit dem gleichen Format wie die eingangsseitigen Speicher
blöcke zum parallelen Codieren ausgebildet sind, wird dadurch
die Verarbeitungsgeschwindigkeit der Prozessoreinheit erhöht.
Bilddatenkomprimierung und -Expandierung:
Es wird nun ein weiteres Ausführungsbeispiel beschrieben. Bei
diesem werden aus einem eingangsseitigen Bildspeicher für ein
ursprüngliches Bild gleichzeitig mehrere Bilddatenposten
abgerufen, die jeweils rechteckigen Bereichen aus m × n Bild
elementen entsprechen, wonach die Bilddaten von den Prozes
sorelementen der Prozessoreinheit aufgenommen werden, die
Bilddaten komprimiert werden und die Ergebnisse aufeinander
folgend an entsprechende Stellen in dem ausgangsseitigen
Bildspeicher in einem Format m' × n' ausgegeben werden, das
kleiner als das Blockformat bei der Eingabe ist (m < m', n < n').
Im Gegensatz dazu werden gleichzeitig Bildelemente in einem
Blockformat m' × n' aus dem eingangsseitigen Bildspeicher abge
rufen, die Bilddaten von der Prozessoreinheit aufgenommen,
eine Expansions- bzw. Erweiterungsverarbeitung ausgeführt und
danach gleichzeitig an den ausgangsseitigen Bildspeicher die
Bilddaten für alle Bildelemente im Format m × n ausgegeben, das
größer als das Blockformat bei der Eingabe ist (m < m', n < n').
Dabei werden jeweils die Speicherblockformate m × n und m' × n'
festgelegt. Abhängig von dem Inhalt der Verarbeitung, nämlich
einer Verarbeitung zum Komprimieren oder Expandieren wird
eingangsseitig das Format m × n und ausgangsseitig das Format
m' × n' oder umgekehrt eingangsseitig das Format m' × n' und
ausgangsseitig das Format m × n gewählt (wobei m < m' und n < n'
gilt). Nachstehend wird der Ablauf der Verarbeitung zum Kom
primieren und Expandieren beschrieben. Zur Vereinfachung sei
angenommen, daß m = n = 4 und m' = n' = 1 gilt und daß die Prozes
soreinheit zwei Prozessorelemente enthält.
Zunächst wird gemäß der Darstellung in Fig. 54 bei dem Kom
primieren aus einer Steuereinheit 544 an eine Prozessorein
heit 541 ein Steuersignal abgegeben, das eingangsseitige
Blockformat auf 4 × 4 Bildelemente festgelegt und das ausgangs
seitige Blockformat auf 1 Bildelement festgelegt; dann werden
die Bilddaten für entsprechende 16 Bildelemente aus einem
eingangsseitigen Bildspeicher 540 für das ursprüngliche Bild
gleichzeitig abgerufen und die benötigten Bilddaten von je
weiligen Prozessorelementen 541a und 541b in der Prozessor
einheit 541 aufgenommen. Von der Prozessoreinheit 541 werden
aus den Bilddaten für die 16 Bildelemente die typische Dich
teinformation 571 und die Detailinformation 572 gemäß Fig. 55
berechnet und die komprimierten Bilddaten an entsprechende
Stellen in einem ausgangsseitigen Bildspeicher 542 ausgege
ben.
Nachstehend wird nun eine Verarbeitung für das Expandieren
der komprimierten codierten Daten beschrieben.
Die Fig. 60 zeigt die Zusammenhänge zwischen codierten Daten
540a in dem eingangsseitigen Bildspeicher 540, der Prozessor
einheit 541 mit den Prozessorelementen 541a und 541b, einem
Ausgabe-Bildelementeblock 543 für den ausgangsseitigen Wie
dergabe-Bildspeicher 542 und Ausgabe-Bildelementen 543a. Aus
einer Steuereinheit 544 wird in die Prozessoreinheit 541 ein
Steuersignal eingegeben, das eingangsseitige Blockformat wird
auf 4 × 4 Bildelemente festgelegt, die codierten Daten gemäß
der Darstellung in Fig. 55 aus dem eingangsseitigen Bildspei
cher werden in die Prozessoreinheit 541 eingegeben, mit den
Prozessorelementen 541a und 541b wird die jeweils betreffende
Verarbeitung ausgeführt und die reproduzierten Bilddaten für
16 Bildelemente werden gleichzeitig an einen entsprechenden
4 × 4-Rechteckbereich in dem ausgangsseitigen Bildspeicher 542
ausgegeben. Ein jedes der Prozessorelemente 541a und 541b der
Prozessoreinheit 541 führt eine Verarbeitung aus, die zu
derjenigen bei dem Komprimieren entgegengesetzt ist. Bei
spielsweise wird die Dichteinformation für die Bilddaten der
16 Bildelemente aus der typischen Dichteinformation 571 in
den codierten Daten sowie der Verteilungsinformation in der
Detailinformation 572 ermittelt. Die Bilddaten für die 16
Bildelemente werden gleichzeitig reproduziert. Hierbei arbei
ten die mehreren Prozessorelemente 541a und 541b parallel, so
daß die Verarbeitung für die Expansion mit hoher Geschwindig
keit ausgeführt werden kann.
Bei dieser Verarbeitung für die Expansion werden die ein
gangsseitigen codierten Daten aufeinanderfolgend abgerufen
und es wird hinsichtlich der ausgangsseitigen Bilddaten die
Verarbeitung der aufeinanderfolgenden Daten in Blockeinheiten
aus 4 × 4 Bildelementen ausgeführt, bis eingangsseitig keine
codierten Daten mehr vorliegen. Auf diese Weise werden aus
den Bilddaten für eine Seite codierter Daten reproduzierte
Bilddaten geformt.
Gemäß dieser Beschreibung wird für die Berechnung der Detail
information bei dem Komprimieren der Daten ein durch Vorgabe
eines Schwellenwerts bestimmter fester Schwellenwert benutzt.
Dieser Schwellenwert kann jedoch auch ein Wert sein, der dem
von einem weiteren Prozessorelement ausgegebenen Durch
schnittsdichtewert entspricht. Ferner kann in der Prozessor
einheit ein einziges Prozessorelement vorgesehen werden.
Weiterhin können bei dem vorstehend beschriebenen Ausfüh
rungsbeispiel, bei dem das eingangsseitige oder ausgangssei
tige Blockformat groß ist, die Prozessorelemente als raster
förmige 4 × 4-Matrix angeordnet werden. Bei dem beschriebenen
Ausführungsbeispiel sind zwar die Blockformate 4 × 4 Bildele
mente und ein Bildelement genannt, jedoch können diese For
mate beliebig gewählt werden.
Bei dem vorstehend beschriebenen Ausführungsbeispiel werden
die Rohdaten für das eingegebene ursprüngliche Bild oder die
ausgangsseitig reproduzierten Bilddaten aufeinanderfolgend in
jeweiligen Speicherblöcken aus m × n Bildelementen, wie bei
spielsweise 4 × 4 Bildelementen abgerufen. Daher können statt
des mehrmaligen Abrufens eines jeden Bildelements in dem
eingangsseitigen Bildspeicher gleichzeitig Bilddaten für m × n
Bildelemente abgerufen werden. Dies ermöglicht das Übertragen
der Bilddaten unter deren Komprimierung mit hoher Geschwin
digkeit.
Da ferner die Blockformate der Bildspeicher an der Eingangs
seite und der Ausgangsseite gewechselt werden können, wie
beispielsweise von 4 × 4 Bildelemente und 1 Bildelement auf 1
Bildelement und 4 × 4 Bildelemente, müssen nicht gesondert eine
Komprimiereinrichtung und eine Expandiereinrichtung vorgese
hen werden, so daß eine einzige Einrichtung ausreichend ist.
Auf diese Weise kann die Anzahl erforderlicher Komponenten
der Einrichtung auf ein Mindestmaß herabgesetzt werden.
Da darüberhinaus die eingangsseitigen Blockformate als geson
derte Blockformate gewählt werden können, kann eine Maskie
rungsverarbeitung entfallen, bei welcher erforderliche Bild
daten nicht gelesen oder nicht wieder eingeschrieben werden.
Da auch die Prozessorelemente in der Prozessoreinheit die
Verarbeitung parallel ausführen, wird dadurch die Verarbei
tungsgeschwindigkeit der Prozessoreinheit erhöht.
Bei dem vorstehend beschriebenen Ausführungsbeispiel erfolgt
eine parallele Verarbeitung zur Bildkomprimierung und Bildex
pandierung mit hoher Geschwindigkeit. Bei dem Komprimieren
und Expandieren eines Bilds ist es ausreichend, die Adressen
gemäß der vorangehenden Beschreibung anhand der Fig. 16 und
17 zuzuweisen.
Farbbildverarbeitung
Es wird nun eine Bildverarbeitung eines digitalen Farbbilds
beschrieben. Die Farbinformation in einem digitalen Farbbild
ist als Kombination beispielsweise aus Rot R, Grün G und Blau
B ausgedrückt. Daher werden Bildspeicher für R, G und B
vorgesehen, von denen jeder eine Kapazität zum Speichern von
Daten mit einer Tiefe von 8 Bit für eine jeweilige Farbe hat.
Zu einer schnellen Verarbeitung der auf die vorstehend ge
nannten Weise gespeicherten Farbinformationen wird eine der
artige Anordnung gewählt, daß jeweils entsprechende Prozes
sorelemente in 1 : 1-Übereinstimmung entsprechenden Bildspei
cherzellen für R, G und B zugeordnet werden, die Verarbeitung
für R, für G und B parallel ausgeführt wird und ein Infor
mationsaustausch zwischen den jeweiligen Prozessorelementen
ermöglicht ist. Die Fig. 61 zeigt die Gestaltung eines Bild
speichers 402 für eine Seite und eine n × n-Prozessoreinheit
401, wie beispielsweise eine 4 × 4-Prozessoreinheit.
Die Fig. 61 veranschaulicht nur die theoretische Anordnung
der Grundkomponenten und zeigt, daß an den Bildspeicher 402
für R, G und B die Prozessoreinheit 401 angeschlossen ist.
Nach Fig. 61 werden n × n Bilddatenposten für jeweils R, G und
B an irgendwelchen Bildelementestellen in dem Bildspeicher
402 zu der Prozessoreinheit 401 übertragen, die aus n × n
Prozessorelementen für eine jede Farbe zusammengesetzt ist,
in denen die Daten mit hoher Geschwindigkeit verarbeitet und
dann in den Bildspeicher 402 zurückgeführt werden. Der Aufbau
der Prozessoreinheit 401 für die jeweilige Farbe ist in der
Fig. 62 ausführlich dargestellt. Eine jede Prozessoreinheit
besteht aus n × n, wie z. B. 4 × 4 Prozessorelementen, von denen
aneinander angrenzende Prozessorelemente miteinander in Ver
bindung stehen, während Prozessorelemente an gleichen Stellen
in bezug auf die Prozessoreinheiten auch miteinander in Ver
bindung kommen können. Es wird nun das Funktionsprinzip be
schrieben.
Farbumsetzung
Es sei nun eine Verarbeitung zur Farbumsetzung betrachtet.
Die Farbumsetzung ist eine Verarbeitung, bei der an Bilddaten
mit Farbinformation die Farbinformation in eine andere vorbe
stimmte besondere Farbinformation umgesetzt wird. Gemäß dem
in Fig. 23 gezeigten und schon beschriebenen Ablaufdiagramm
führen die Prozessorelemente der Prozessoreinheit die Farbum
setzung parallel für 16 Bildelemente aus, wobei die jeweils
an den gleichen Stellen gelegenen Prozessorelemente für R, G
und B Informationen austauschen.
Die Verarbeitungsvorgänge zwischen einem jeweiligen Speicher
und der Prozessoreinheit werden nun ausführlich anhand der
Fig. 61 und 62 beschrieben.
Als erstes wird die Farbinformation vor und nach einer Ände
rung festgelegt und die Information an einer Speicherstelle
wie einem Register für die Speicherung eines Werts gespei
chert. Danach werden entsprechend Steuersignalen 411 aus
einer in Fig. 62 gezeigten Steuereinheit 410 jeweils entspre
chende Bilddaten aus 4 × 4 Speicherelementen des Bildspeichers
für die drei Farben R, G und B gleichzeitig ausgelesen und zu
entsprechenden Prozessorelementen 417, 416 und 415 von Pro
zessoreinheiten 412R, 412G und 412B für Rot, Grün und Blau
übertragen. Danach führen entsprechend dem Ablaufdiagramm in
Fig. 23 die 4 × 4 Prozessorelemente parallel die Verarbeitung
aus, wobei die Prozessorelemente für R, G und B an den glei
chen Stellen, nämlich die Prozessorelemente 415, 416 und 417
miteinander in Verbindung stehen. Wenn die Verarbeitung durch
die Prozessoreinheiten beendet ist, werden die Bilddaten in
den Bildspeicher zurückgeleitet. Dann werden die Bilddaten
aus den nächsten 4 × 4 Speicherelementen ausgelesen. Es genügt,
die vorstehend beschriebene Verarbeitung hinsichtlich der
Bilddaten für eine Seite auszuführen. Die gewählte Farbe oder
die gewählten Farben können ein Farbwert oder drei Farbwerte
aus den Farben R, G und B sein, wobei für die Farbinformation
vor der Änderung natürlich ein Bereich bestimmt werden kann
oder mehrere Farbinformationen gewählt werden können.
Farbkorrektur
Es sei nun eine Verarbeitung zur Farbkorrektur betrachtet.
Die Farbkorrektur ist eine Verarbeitung, bei der dann, wenn
Bilddaten eine bestimmte Farbinformation enthalten, die Farb
information entsprechend den Eigenschaften der Einheit für
die Bildeingabe oder die Bildausgabe korrigiert wird.
Diese Verarbeitung kann allgemein durch folgende Gleichungen
ausgedrückt werden:
R' = α . R + β . G + γ . B
G' = α' . R + β' . G + γ' . B
B" = α" . R + β" . G + γ " . B ... (20)
wobei R, G und B die Eingangsbilddaten sind, R', G' und B'
die Ausgangsbilddaten sind und α, β, ..., β", γ " Koeffizien
ten sind.
Als Koeffizienten α, β, ..., β", γ" in der Gleichung (20)
werden numerische Werte eingesetzt, die den Eigenschaften der
Bildeingabeeinheit oder Bildausgabeeinheit entsprechen. Gemäß
dem Ablaufdiagramm in Fig. 63 wird die Verarbeitung von den
Prozessorelementen in den Prozessoreinheiten parallel für 16
Bildelemente ausgeführt, wobei zwischen den den gleichen
Bildelementen entsprechenden Prozessorelementen für R, G und
B ein Informationsaustausch stattfindet.
Diese Verarbeitung wird nun ausführlich beschrieben. Als
erstes werden als Koeffizienten α, β, ... in der Gleichung
(20) numerische Werte bestimmt, die den Bildeingabe- und
Bildausgabeeinheiten entsprechen, wie beispielsweise α = 0.8,
β = 0.3 und γ = 0.2; diese Koeffizienten werden an Speicherstel
len wie beispielsweise in Registern für das Festhalten der
Werte gespeichert. Danach führen entsprechend den von der
Steuereinheit 410 nach Fig. 62 abgegebenen Steuersignalen 411
die 4 × 4 Prozessorelemente die Verarbeitung auf die nachste
hend beschriebene Weise aus.
Auf die Adressierung durch das Steuersignal 411 hin werden
die 4 × 4 Speicherelemente abgerufen, die entsprechenden Bild
daten für die drei Farben R, G und B aus dem Bildspeicher
mittels einer (nicht gezeigten) Einrichtung gleichzeitig
ausgelesen und die Bilddaten gleichzeitig in die zugeordneten
Prozessorelemente der jeweiligen Prozessoreinheit übertragen.
Danach führen gemäß dem Ablaufdiagramm in Fig. 63 die 4 × 4
Prozessorelemente parallel die Verarbeitung aus, wobei die an
den gleichen Stellen gelegenen Prozessorelemente für R, G und
B, wie beispielsweise die Prozessorelemente 415, 416 und 417
miteinander in Datenverbindung stehen. Wenn diese von den
Prozessoreinheiten ausgeführte Verarbeitung beendet ist,
werden die verarbeiteten Bilddaten in den Bildspeicher zu
rückgebracht. Es genügt, die vorstehend beschriebene Verar
beitung hinsichtlich einer Seite von Bilddaten auszuführen.
Während nach dem Stand der Technik die Verarbeitung für ein
jedes einzelne Ausgangsbildelement wiederholt wird, werden
bei dem beschriebenen Ausführungsbeispiel die Verarbeitungs
ergebnisse für eine Vielzahl von Ausgangsbildelementen in dem
gleichen Zyklus ausgegeben, so daß eine sehr hohe Farbbild-
Verarbeitungsgeschwindigkeit erzielt werden kann.
Durch das gleichzeitige Eingeben von eingangsseitigen zusam
menhängenden, eng benachbarten Bildelementen kann die Orts
frequenzfilterung in einem Zyklus ausgeführt werden, so daß
gleichzeitig die Ergebnisse der Ortsfrequenzfilterung an eine
Vielzahl von Ausgangsbildelementen ausgegeben werden können.
Durch das gleichzeitige Abrufen und Verarbeiten einer Viel
zahl von Eingabedaten ist im Vergleich zu dem einzelnen Abruf
der Daten zu einem jeweiligen Zeitpunkt die Verarbeitungsge
schwindigkeit erhöht. Darüberhinaus kann durch einen einzel
nen Abruf von Eingangsdaten durch einen Datenaustausch zwi
schen Prozessoreinheiten eine Verarbeitung ausgeführt werden,
bei der der gegenseitige Zusammenhang zwischen gleichzeitig
abgerufenen Daten zu berücksichtigen ist, wie beispielsweise
eine Raum- bzw. Ortsfrequenzfilterung, eine Farbverarbeitung
und dergleichen.
Aus jedem m × n-, z. B. 4 × 4-Speicherblock werden die durch die
eingegebene Farbinformation (z. B. R, G und B) ausgedrückten
Rohdaten des ursprünglichen Bilds aufeinanderfolgend und für
die drei Farben R, G und B gleichzeitig abgerufen. Daher
können statt des mehrmaligen Abrufens eines jeden Bildele
ments aus dem eingangsseitigen Bildspeicher jeweils gleich
zeitig Bilddaten für m × n Bildelemente für die drei Farben
abgerufen werden. Dies ermöglicht eine Bilddatenübertragung
mit hoher Geschwindigkeit.
Darüberhinaus besteht an den Prozessorelementen in den Pro
zessoreinheiten eine Informationsverbindung nicht nur zwi
schen den Elementen für die gleiche Farbe, sondern auch
zwischen Elementen für verschiedene Farben. Infolgedessen
können die Farbinformationen für die drei Farben R, G und B
gleichzeitig verarbeitet werden, so daß eine Verarbeitung zur
Farbumsetzung, Farbkorrektur und dergleichen mit hoher Ge
schwindigkeit ausgeführt werden kann. Da ferner die Prozes
soreinheiten aus Prozessorelementen in einer Anzahl zusammen
gesetzt sind, die gleich der Anzahl m × n der Bildelemente in
den eingangsseitigen und ausgangsseitigen Speicherblöcken
ist, können gleichzeitig in Blockeinheiten m × n Bilddaten
eingegeben und ausgegeben werden. Ferner ermöglichen die m × n
Prozessorelemente ebensogut eine Parallelverarbeitung für
Berechnungen, so daß eine zufriedenstellend hohe Verarbei
tungsgeschwindigkeit erreicht wird.
Bewegungsverarbeitung bei dem zweiten Ausführungsbeispiel
Es wird nun ein Fall beschrieben, bei dem bei Zuweisung von
Adressen gemäß Fig. 16 und 17 eine Versetzung der in Fig. 65
dargestellten Art vorgenommen wird.
In k × ℓ Speicherelementen 1b werden bei dem Anlegen einer
einzelnen Adresse aus jedem von k × ℓ Teilbereichen Daten für
entsprechende Stellen in einem Posten zu einem Zeitpunkt
ausgelesen. Wenn alle k × ℓ Daten durch die Prozessoreinheit 2
umgeordnet und in die gleiche Adresse eingeschrieben sind,
ist ein einzelner Verarbeitungsschritt zur Übertragung zwi
schen den k × ℓ-Bereichen abgeschlossen. Wenn die Prozessorein
heit 2 diesen Vorgang im Hinblick auf alle Adressen der
Speicherelemente 1b ausführt, ist damit die Verarbeitung des
ganzen Bilds abgeschlossen.
Die Prozessoreinheit 2 muß jedoch die Daten zu den k × ℓ Spei
cherelementen 1b zurückbringen. Tatsächlich wird jedoch die
Belastung der Prozessoreinheit 2 erleichtert, wenn die Pro
zessoreinheit 2 nur eine Anzahl von Bereichen in einem Be
reich A aufnimmt und nur die Anzahl der Bereiche in einen
Bereich B ausgibt. Die Anzahl der Bereiche im Bereich A und
im Bereich B müssen nicht unbedingt gleich sein. Beispiels
weise ist es möglich, daß der Bereich A 3 × 3 Bereiche enthält,
an denen die Prozessoreinheit 2 eine Reduktion bzw. Verklei
nerung auf 2/3 ausführt, wonach die Ergebnisse in den Bereich
B übertragen werden, der aus 2 × 2 Bereichen besteht.
Daher genügt es, in dem Fall, daß das Lesen und Schreiben
nicht an allen Speicherelementen 1b immer erforderlich ist,
die Bausteinfreigabe aller Speicherelemente 1b unter Benut
zung einer Anordnung gemäß der Fig. 15 zu steuern, nämlich
diejenigen Speicherelemente zu maskieren, in die keine Daten
eingeschrieben werden sollen. In diesem Fall werden als ein
gangsseitige Daten in zwei Nachschlagetabellen die Informa
tionen hinsichtlich der Längsformate und Querformate der
Bereiche A und B sowie hinsichtlich der Lagen dieser Bereiche
eingegeben.
Eine Bildverarbeitungseinrichtung enthält einen Bildspeicher
aus einer Vielzahl von Speicherelementen und eine Prozessor
einheit aus einer Vielzahl von Prozessorelementen. Durch
geeignetes Gestalten der Anordnung des Bildspeichers aus den
Speicherelementen, der Anordnung der Prozessoreinheit aus den
Prozessorelementen und der Verbindungen zwischen den Spei
cherelementen und den Prozessorelementen ist es möglich, mit
einfachem Aufbau eine schnelle Bildverarbeitung zu erreichen,
wie eine Dichteumsetzung, eine Farbumsetzung, ein Maskieren,
eine Ortsfrequenzfilterung, eine Bildvergrößerung, eine Bild
verkleinerung, eine Bilddrehung, eine Bildkomprimierung, eine
Bildexpandierung und eine Farbkorrektur. Es wird auch eine
Bildverarbeitungseinrichtung für Farbbilder mit einer Viel
zahl von Bildspeichern und einer Vielzahl von Prozessorein
heiten sowie eine allgemein anwendbare, multifunktionelle
Verarbeitungseinrichtung zur parallelen Verarbeitung einer
großen Datenmenge mit hoher Geschwindigkeit beschrieben.