-
Die Erfindung betrifft die Bildverarbeitung und
insbesondere die Etikettierung von vorher bestimmten Bereichen in
einem Bild.
-
Dieser Typ des Vorgangs dient zum
Beispiel für
die Verarbeitung von Videodaten, für die Identifikation von Bildbereichen
durch Segmentierung oder Extrahierung von Bereichen.
-
Das Gebiet kann das einer industriellen
Inspektion sein, zum Beispiel für
die Ermittlung von Anomalien in einem Objekt aus einem Bild dieses Objekts,
das von einer Videokamera stammt. Es kann in einem Vergleich mit
einem bestimmten Modell oder Auswertung der Bereichsfläche bestehen. Die
Anomalien werden als spezifische Bereiche identifiziert und extrahiert.
Sie werden als bedeutend (major) oder unbedeutend (minor) angesehen,
abhängig von
der Größe und der
Anzahl der Bereiche. Die Entscheidung, dass inspizierte Objekt oder
die Komponente zurückzuweisen
oder zu verwerten, erfolgt auf der Grundlage dieser Kriterien.
-
Der Etikettierungsvorgang besteht
in der Bildung eines grauen Bildes, von dem jeder Grauwert einer
Bereichsnummer entspricht.
-
Für
eine industrielle Anwendung des Steuertyps erfordert die Verarbeitung
des Bildes einen Vorgang in nahezu Echtzeit oder wenigstens einen
sehr schnellen Vorgang. Er muß eine
hohe Leistungsfähigkeit
bei der Detektion der Defekte, d. h. in der Verarbeitung von Bereichen
mit sehr geringen Flächen aufweisen.
-
Die bekannten Verfahren und Vorrichtungen sind
im allgemeinen ungeeignet und langwierig in der Ausführung, und
zwar aufgrund der Anwendung von komplexen Algorithmen, die eine
beachtliche Zahl von Berechnungen und einen mehrfachen Zugriff zu den
Speichern benötigen.
Das ist insbesondere der Fall, wenn die Verarbeitung beim Pixelwert
erfolgt.
-
Die
US
4 624 013 zeigt zum Beispiel ein Verfahren zur Etikettierung
von Bereichen in einem Bild, wo Pixel einzeln verarbeitet werden.
Die Verarbeitung ist zeitaufwendig und ermöglicht keine Ausführung einer
Etikettierung in Echtzeit.
-
Der Zweck der Erfindung besteht darin,
die oben genannten Nachteile zu vermeiden.
-
Zu diesem Zweck betrifft die Erfindung
ein Verfahren zur Etikettierung von Bereichen eines binären Bildes
gemäß Anspruch
1.
-
Die Erfindung betrifft außerdem eine
Vorrichtung gemäß Anspruch
2 zur Durchführung
des obigen Verfahrens.
-
Das beschriebene Verfahren macht
es möglich,
vorverdrahtete programmierbare Schaltungen anzuwenden und dadurch
die Berechnungszeit beachtlich zu verringern, wobei die durchgeführten Algorithmen
sehr schnell sind. Die Erfindung ermöglicht die Verarbeitung von
Bildern mit einer großen Fläche mit
einer Definition beim Pixelwert. Der Aufbau wird daher vereinfacht,
er fordert geringe Kosten und ist in hohem Maße flexibel.
-
Weitere Merkmale und Vorteile der
Erfindung ergeben sich klar aus der folgenden Beschreibung eines
nicht-einschränkenden
Beispiels anhand der beigefügten
Figuren: Darin zeigen:
-
1 eine
Vorrichtung gemäß der Erfindung,
-
2a ein
Beispiel eines Bildes während
der ersten Verarbeitungsphase,
-
2b ein
Beispiel eines Bildes während
der zweiten Verarbeitungsphase.
-
1 zeigt
eine Vorrichtung gemäß der Erfindung.
-
Der Eingang der Vorrichtung ist der
Eingang eines Segmentzählers 1.
Der Ausgang dieses Zählers
ist mit dem Eingang eines FIFO-Speichers 2 und mit dem
Eingang einer Vergleichs-, Speicherungs- und Sequentialisierungs-Schaltung 6 verbunden,
die als CMS bezeichnet wird. Der FIFO-Ausgang ist mit einem ersten
Eingang eines Multiplexers 5 und mit einem zweiten Eingang
der Schaltung CMS verbunden. Ein erster Ausgang der Schaltung CMS
ist mit dem zweiten Eingang des Multiplexers 5 verbunden. Ein
erster und ein zweiter Ausgang dieses Multiplexers sind mit dem
Adressbus eines Speichers 3 bzw. dem Adressbus eines Speichers 4 verbunden.
Diese beiden Speicher, auch mit A und B bezeichnet, sind sogenannte "dubbed connectivity
memories". Ein zweiter
Ausgang der Schaltung CMS ist mit einem Bereichszähler 7 verbunden,
dessen Ausgang seinerseits mit einem ersten Eingang eines zweiten
Multiplexers 9 verbunden ist. Die Datenbusse der "connectivity memories" sind jeweils mit
den beiden Eingängen/Ausgängen eines
ersten bidirektionalen Multiplexers 8 verbunden. Ein Ausgang
dieses Multiplexers ist mit einem Bildspeicher 10, mit
einem zweiten Eingang des Multiplexers 9 sowie mit einem
dritten Eingang der Schaltung CMS verbunden. Ein Eingang dieses
Multiplexers 8 ist mit dem Ausgang des Multiplexers 9 verbunden.
Ein dritter und ein vierter Ausgang der Schaltung CMS sind mit einem
ersten Eingang eines zweiten Multiplexers vom bidirektionalen Typ 12 bzw.
eines dritten unidirektionalen Multiplexers 13 verbunden.
Der Ausgang des Multiplexers 13 ist mit einem Adressbus
eines Synonymspeichers 11 verbunden, und die Eingangs/Ausgangs-Seite
des Speichers des Multiplexers 12 ist mit dem Datenbus dieses
Speichers verbunden. Ein zweiter Eingang des Multiplexers 13 stammt
von dem Ausgang des Bildspeichers 10 und einem dritten
Eingang einer zentralen Verarbeitungsschaltung oder CPU-Schaltung,
die in der Figur nicht dargestellt ist. Ein Eingang/Ausgang des
Multiplexers 12 ist ebenso mit der Schaltung CPU verbunden,
und ein Ausgang dieses Multiplexers entspricht dem Ausgang der Vorrichtung.
-
Die zu dem Eingang der Vorrichtung übertragenen
Informationswörter
sind binäre
Wörter.
Der Hintergrund des Bildes entspricht zum Beispiel einem Nullwert,
und die relevanten Elemente oder diejenigen, die in dem Bild zu
identifizieren sind, entsprechen einem Einheitswert.
-
Diese Datenwörter ergeben sich aus bekannten
Verarbeitungsvorgängen,
wie dem sogenanntem "thresholding" (Schwellwertbildung)
des Videobildes für
die Luminanzinformationen, Chrominanzinformationen, usw.
-
Danach wird die Folge von Pixeln
mit dem Einheitswert auf einer Zeile als ein Segment bezeichnet.
Ein Segment ist daher durch zwei Pixel mit dem Nullwert begrenzt, und
die Länge
eines Segments kann sich zwischen einem Pixel und einer Zeile ändern.
-
Die Datenwörter werden Zeile für Zeile,
ein Bit je Pixel, an dem Eingang des Geräts empfangen, der der Eingang
einer programmierbaren logischen Schaltung ist, deren verschiedene
Funktionen im folgenden erläutert
werden.
-
Diese Datenwörter werden zu dem Eingang eines
Zählers 1 übertragen,
der jedes Mal inkrementiert wird, wenn er ein Einheitsbit empfängt, das
auf ein Bit mit dem Nullwert folgt, oder das das erste der Zeile
ist. Dies ist ein Zähler
für die
Nummerierung innerhalb der Zeile (intra-line numbering) oder ein Segmentzähler, der
mit jedem Zeilenstart ausgelöst wird.
Jeder Takteingang des Zählers
ist der Takteingang der programmierbaren logischen Schaltung, die außerdem die
verschiedenen, im folgenden beschriebenen Schaltungen speist, im
allgemeinen durch eine im folgenden beschriebene Vergleichs-, Speicherungs-
und Sequentialisierungs-Schaltung.
-
Dieser Takt liegt zum Beispiel bei
der Frequenz von 40 MHz. Der am Ausgang des Zählers verfügbare Wert wird bei der Pixelrate
zu einem FIFO-Speicher 2 übertragen, der die Segmentnummern
für diejenigen
speichert, die einer Bildzeile entsprechen. Der Zweck dieses Speichers
besteht darin, die als Eingang empfangenen Datenwörter um eine
Zeilenperiode zu verzögern,
damit sie nacheinander gleichzeitig über den Datenbus eines Konnektivitäts-Speicher 3 oder 4,
auch bezeichnet als Tabelle von sogenannten Match-ups, über einen
Multiplexer 5 und dem Eingang einer Vergleichs-, Speicher- und
Sequentialisierungsschaltung, bezeichnet als CMS 6, übertragen
werden.
-
Die Match-up-Tabelle besteht aus
zwei Speichern 3 und 4.
-
Ein Komparator der Schaltung CM 6
vergleicht die an dem Ausgang verfügbaren Datenwörter des
Segmentzählers
mit den am FIFO-Ausgang gelieferten Datenwörtern, d. h. die einem Pixel
der laufenden Zeile zugeordnete Zahl mit der dem entsprechenden
Pixel der darüber
liegenden Zeile zugeordneten Zahl (auch als vorangehende Zeile bezeichnet).
Die Schaltung CMS prüft,
nachdem sie alle einem vollständigen
Segment der laufenden Zeile entsprechenden Datenwörter eingegeben
hat, ob dieses Segment mit wenigstens einem Segment der vorangehenden
Zeile übereinstimmt,
d. h., ob es eine Überlappung
oder einen Einschluß von
Segmenten gibt, wenn zwei Zeilen überlagert werden.
-
Im negativen Fall, also wenn das
nicht der fall ist, d. h. im Falle, in dem für alle Pixel des Segmentes
der laufenden Zeile ein Nullwert der vorangehenden Zeile übereinstimmt,
wird ein Inkrementierungssignal als Ausgang von der Schaltung CMS
zu einem Bereichszähler 7 übertragen.
-
Betrieb der
Tabelle der Match-ups
-
Die Speicher A und B sind als FLIP-FLOP-Einheit
geschaltet. Wenn einer der Speicher schreibt, ist der andere beim
Lesen, und umgekehrt.
-
Es folgt eine Beschreibung des Betriebs
des Bereichs-Schreibmodus für
das Segment der laufenden Zeile, das der Phase eins des Betriebs
der Einheit entspricht. Es sei angenommen, dass sich der Speicher
A im Lesemodus und der Speicher B sich im Schreibmodus befindet.
-
Die Segmentnummer der den FIFO-Speicher
verlassenden vorangehenden Zeile wird über den Adressbus zu dem Speicher
A übertragen,
und die Nummer des Segments der laufenden Zeile aus der Schaltung
CMS wird über
den Adressbus zu dem Speicher B übertragen.
-
Der Speicher A liefert an seinem
Datenbus die Bereichsnummer, die der Segmentnummer der vorangehenden
Zeile entspricht, die zu der Schaltung CMS übertragene Nummer.
-
Der Speicher B empfängt an seinem
Datenbus die Bereichsnummer von dem Bereichszähler oder die Bereichsnummer
entsprechend Segmentnummer der vorangehenden Zeile von dem Speicher A,
abhängig
von dem Befehl des Multiplexers 9.
-
Das laufende Segment wird in die
Schaltung CMS eingegeben.
-
Es treten zwei Fälle auf:
-
Erster Fall
-
Es besteht eine Übereinstimmung zwischen dem
Segment der laufenden Zeile und wenigstens einem Segment der vorangehenden
Zeile. Somit wird kein Inkrementierungs-Datenwort zu dem Bereichszähler übertragen.
Der Speicher B bewirkt die Aufzeichnung bei der Adresse, die der
Nummer des Segments der laufenden Zeile entspricht, der Bereichszahlen
von dem Speicher A für
das erste übereinstimmende
Segment der vorangehenden Zeile, dessen Nummer auf dem Adressbus
des Speichers A dargestellt wird. Wenn ein zweites Segment der vorangehenden
Zeile übereinstimmt,
wird ein synonymer Speicher benutzt, wie im folgenden beschrieben wird.
-
Zweiter Fall
-
Es besteht keine Übereinstimmung zwischen dem
Segment der laufenden Zeile und einem Segment der vorangehenden
Zeile. Somit wird ein Inkrementierungs-Datenwort zu dem Bereichszähler gesendet,
und diese neue Bereichsnummer, die an seinem Ausgang verfügbar ist,
wird über
den Datenbus des Speichers B übertragen
(der Multiplexer 9 wird entsprechend umgeschaltet). Zur
selben Zeit wird ein Schreibbefehl zu diesem Speicher übertragen,
dessen Adressbus von der Schaltung CMS und über den Multiplexer 5 die
Nummer des Segments der laufenden Zeile empfängt.
-
In anderen Worten, wenn ein Segment
innerhalb einer Zeile nicht miteinem Segment der vorangehenden Zeile "verbunden", (das heißt in Bezug auf)
ist, wird ein neues Bereichsetikett erzeugt und durch den Speicher
der Match-ups dem Segment zugeordnet. Wenn ein Segment mit einem
bereits nummerierten Segment der vorangehenden Zeile verbunden ist,
wird ihm dasselbe Bereichsetikett wie dem ersten, in der vorangehenden
Zeile angetroffenen Segment zugeordnet.
-
Dieser zweite Fall bleibt automatisch
für die erste
Zeile des Bildes erhalten, wobei der FIFO-Speicher mit jedem Bild
auf null gesetzt oder initialisiert wird.
-
Betrieb der
Tabelle der Synonyme
-
Ein Ausgang von der Schaltung CMS
wird zu dem Lese/Schreib-Steuereingang eines Synonym-Speichers 11 übertragen.
-
Wenn die ein Segment der laufenden
Zeile verarbeitende Schaltung CMS ermittelt, dass dieses Segment
zwei Segmente der vorangehenden Zeile verbindet, wenn diese beiden
Zeilen wieder überlagert
sind, sendet sie ein Schreib-Datenwort zu dem Synonym-Speicher 11.
Dieser Speicher empfängt
an seinem Datenbus und über
die Schaltung CMS und einen Multiplexer 12 die Bereichsnummer
entsprechend dem ersten Segment der vorangehenden Zeile von dem
Konnektivitätsspeicher,
die in einem Puffer der Schaltung CMS gespeichert ist. Er empfängt an seinem
Adressbus über
den Multiplexer 13 die Bereichsnummer entsprechend dem
zweiten Segment von dem Konnektivitätsspeicher, wenn die durch
diesen Speicher empfangene Adresse diesem zweiten Segment entspricht.
-
Wenn, wieder während des Abtastens dieses selben
Segments der laufenden Zeile eine neue Bereichsnummer (und somit
ein neues Segment der vorangehenden Zeile) an dem Ausgang des Konnektivitätsspeichers
erscheint, überträgt die Schaltung CMS
einen neuen Schreibbefehl zu dem Synonymspeicher, der zu dieser
Zeit auf seinem Datenbus die Bereichsnummer, die dem zweiten Segment
der vorangehenden Zeile entspricht, gespeichert in einem Puffer
der Schaltung CMS, und über
den Adressbus die Bereichsnummer von dem Konnektivitätsspeicher,
entsprechend dem dritten, in dieser vorangehenden Zeile angetroffenen
Segments empfängt. Undsoweiter
für alle
Segmente, die auf der vorangehenden Zeile angetroffen werden und
mit dem derzeit verarbeiteten Segment der laufenden Zeile übereinstimmen.
-
Beim Start wird die Tabelle der Synonyme
in einer linearen Weise initialisiert, das heißt, der Inhalt des Speichers
wird auf den Wert y = x initialisiert, wobei x die Adresse und y
den Inhalt des Speichers darstellt.
-
Die Schaltung CMS ist in einer für sich bekannten
Weise aus logischen Schaltungen von bekanntem Typ aufgebaut, die
hier nicht beschrieben werden muß. Die laufende Zeile und die
vorangehende Zeile werden Pixel für Pixel verglichen, und die
Informa tionen werden für
jedes Segment der laufenden Zeile gespeichert. Ein Sequencer oder
Sortieren überträgt dann
alle Befehle für
die Inkrementierung des Bereichszählers, die Lese- und Schreibbefehle für die Speicher
die Befehle für
die Multiplexer, der es ermöglicht,
den Speicher im Schreibmodus und den Speicher im Lesemodus sowie
die zu berücksichtigenden
Adressen und Daten zu wählen.
-
Während
dieser ersten Phase speichern die Speicher A und B abwechselnd die
Informationsdatenwörter
von jeder Bildzeile, und diese Speicher übertragen abwechselnd diese
Datenwörter
Zeile für Zeile
während
des Lesemodus zu einem anderen Speicher, der als der Bildspeicher 10 bezeichnet wird,
der die Bereichsnummern von A und B bei der Zeilenfrequenz für das gesamte
Bild aufzeichnet.
-
Die Phase eins ist beendet, wenn
alle Zeilen des Bildes verarbeitet und in dem Speicher 10 gespeichert
worden sind.
-
Die Phase zwei bewirkt dann eine
Sortierung und Neunummerierung der Bereiche für dieses Bild.
-
Wenn alle Zeilen des Bildes überprüft worden
sind, erfolgt eine Verarbeitung des Inhalts des Synchronymspeichers,
um so die neue Nummerierung auf der Grundlage dieser Synonyme auszuführen.
-
Wenn somit zum Beispiel der Bereich 5 (Adresse)
synonym mit dem Bereich 3 (Datenwort) ist und wenn der
Bereich 8 (Adresse) synonym mit dem Bereich 5 (Datenwort)
ist, speichert eine Neusortierung bei den Adressen 3, 5 und 8 des
Speichers das einzige Datenwort 3. Die Werte des Bereichs 5 und 8, die
freigelassen werden, dienen zur Neunummerierung der höheren Bereiche,
wodurch die Dekrementierung der höheren Bereiche möglich gemacht
wird. Diese Umordnung erfolgt zum Beispiel durch eine zentrale Verarbeitungseinheit
oder CPU (für "Control Processing
Unit"). Während dieser
Phase verbinden die Multiplexer 12 und 13 die
Adressen und die Datenbusse des Synonymspeichers mit dem Bus der zentralen
Verarbeitungseinheit, die die Umordnung, die Übertragung der neuen Daten
zu dem Synonymspeicher übernimmt,
wenn diese Verarbeitung erfolgt ist.
-
Wenn die Umordnung abgeschlossen
ist, überträgt die CPU
eine Anweisung, den Bildspeicher zu lesen. Der Datenbus dieses Speichers
wird dann über
den Multiplexer 13 mit dem Adressbus des Synonymspeichers
verbunden, und der Datenbus dieses Speichers wird über den
Multiplexer 12 mit dem Ausgang des Geräts verbunden. Diese Multiplexer,
wie der Speicher und der Synonymspeicher empfangen daher Signale
zur Steuerung der Schaltung CPU, die in der Figur nicht dargestellt
sind.
-
Ein Beispiel des Betriebs wird im
folgenden anhand der 2a und 2b erläutert.
-
Während
der Abtastung der ersten Zeilen des laufenden Bildes bestehen diese
Zeilen aus Pixeln mit dem Nullwert, es erfolgt durch das Gerät keine
Speicherung oder Zählerinkrementierung.
-
Wenn die erste Zeile, die wenigstens
ein Pixel mit dem Einheitswert besitzt, übertragen, wobei diese Zeile
mit n bezeichnet wird, und am Eingang des Geräts empfangen wird, inkrementiert
das entsprechende Segment den Segmentzähler auf den Wert eins. Eine
Aufeinanderfolge von Nullen wird dann am Eingang des Geräts empfangen,
bis auf derselben Leitung vor einer zweiten Aufeinanderfolge von
Bit bei demselben Wert erscheint, wobei der Segmentzähler auf
einen Wert zwei inkrementiert wird, der der Nummer des zweiten Segments
auf dieser Zeile entspricht. Da die vorangehende Zeile alle ihre
Pixel bei dem Nullwert hat, bewirkt der Vergleich zwischen den Nummern
für die
Pixel der laufenden Zeile (Werte von dem Segmentzähler) und
diejenigen der Pixel der vorangehenden Zeile (Werte von dem FIFO-Speicher) eine Inkrementierung
des Bereichszählers
auf den Wert eins für
das erste am Eingang empfangene Segment und dann auf den Wert zwei für das zweite
empfangene Segment der laufenden Zeile. Der inkrementierte Bereichszählerausgang wird
nach jeder Inkrementierung in dem Konnektivitäts-Speicher, zum Beispiel B,
bei der Adresse gespeichert, die von der Schaltung CMS empfangen wird
und der Segmentnummer der laufenden Zeile entspricht, die Bereichsnummer
eins wird bei der Segmentadresse eins und die Bereichsnummer zwei bei
der Segmentadresse zwei gespeichert.
-
Auf diese Weise wird eine Bereichsnummer jeder
Segmentnummer zugeordnet.
-
Wenn das erste Segment der neuen
laufenden Zeile n + 1 empfangen wird und mit dem Segment der vorangehenden
Zeile n übereinstimmt,
wird kein Bereichs-Inkrementiersignal
zu dem Bereichszähler übertragen.
Die Schaltung CMS überträgt einen
Schreibbefehl zu dem Konnektivitäts-Speicher, der
nun A ist und der auf seinem Adressbus die Nummer des Segments der
laufenden Zeile empfängt. Das
bei dieser Adresse aufgezeichnete Datenwort ist der Ausgang des
Speichers B, dessen Adresse der FIFO-Ausgang, das heißt die Segmentnummer
der vorangehenden Zeile n ist. Die Bereichsnummer des übereinstimmenden
Segments der vorangehenden Zeile wird daher über diesen Datenbus übertragen. Dieser
Wert wird durch den Multiplexer 9 über den Datenbus des Speichers
A zu dem vorangehend genannten Adresse zurückübertragen. Auf diese Weise wird
die Bereichsnummer des übereinstimmenden Segments
der vorangehenden Zeile der Segmentnummer der laufenden Zeile zugeordnet.
Dieser Wert wird gleichzeitig in dem Speicher 10 aufgezeichnet.
-
Derselbe Vorgang erfolgt dann für das mit zwei
nummerierte Segment, zu der die Bereichsnummer zwei gehört.
-
Bei der neuen laufenden Zeile n +
p verschmelzen die beiden Segmente in ein einziges. Ein Schreib-Datenwort
wird zu dem Synonymspeicher übertragen,
wenn ein zweites Segment der vorangehenden Zeile mit demselben Segment
wieder der laufenden Zeile übereinstimmt.
Der Speicher empfängt auf
seinem Datenbus die Bereichsnummer von dem Konnektivitätsspeicher
und wird in einem Pufferspeicher der Schaltung CMS abgelegt, wenn
das erste Segment der vorangehenden Zeile angepaßt ist. Die Bereichsnummer,
die von dem Konnektivitäts-Speicher
stammt und der Nummer des zweiten angepaßten Segments der vorangehenden
Zeile entspricht, wird auf dem Adressbus empfangen.
-
Während
der Verarbeitung dieser Zeile n + p wird somit der Wert eins bei
der Adresse zwei des Synonymspeichers gespeichert.
-
Ein einem neuen Bereich entsprechendes Segment
wird bei der Zeile n + p + q angetroffen. Da keine Übereinstimmung
mit einem Segment der vorangehenden Zeile besteht, wird der Bereichszähler auf
den Wert drei inkrementiert. Der Synonymspeicher wird durch diesen
Bereich nicht beeinflußt.
-
Die zweite Phase des Etikettierungsprogramms
ist in 2b dargestellt.
Es erfolgt eine Neunummerierung der Bereiche. Der Wert eins entspricht der
Adresse eins und zwei des Synonymspeichers. Auf diese Weise wird
die Bereichsnummer zwei verfügbar
und dient zur Neunummerierung des ursprünglich mit drei nummerierten
Bereichs. Zu diesem Zweck wird der Wert zwei bei der Adresse drei aufgezeichnet,
die anfänglich
den Wert drei enthielt.
-
Der Speicher wird dann gelesen, wobei
sein Ausgang mit dem Adresseneingang des Synonymspeichers verbunden
ist. Die Werte eins werden als Ausgang von dem Synonymspeicher zu
dem Wert des Bereichs eins und zwei übertragen. Die Zahl zwei wird
nach der Neunummerierung der Bereiche zu dem Wert des Bereichs drei übertragen.
-
Dies ist eine beispielhafte Ausführungsform eines
Geräts,
das das Etikettierverfahren durchführt, und dieses Beispiel ist
nicht einschränkend.
-
Mit Ausnahme des Speichers und er CPU-Schaltungen
können
alle beschriebenen Schaltungen durch eine programmierbare logische
Schaltung gebildet sein, allgemein bekannter als "programmierbare logische
Einheit" (PLD =
Programmable Logic Device).