Die
Erfindung betrifft ein Verfahren und eine Vorrichtung zur Bildverarbeitung.
Sie kann beispielsweise angewendet werden im Zusammenhang mit der
Erkennung von Buchstaben oder Ziffern in einem Adressfeld bei Brief-
oder Postsortieranlagen.The
The invention relates to a method and an apparatus for image processing.
It can be used for example in connection with the
Recognition of letters or numbers in an address field in letter
or mail sorting equipment.
Aus
der DE 195 07 447
A1 sind ein Verfahren und eine Schaltung zum Erfassen und
Weiterleiten von Bilddaten in einem Personalcomputer bekannt. Dabei
werden die Daten mit Hilfe einer PCI-Framegrabber-Schaltung erfasst
und über
den PCI-Bus des Personalcomputers im Wesentlichen in Echtzeit in
den Hauptspeicher des Personalcomputers und/oder über eine
Grafikschaltung an einen Monitor weitergeleitet. In oder vor der
Framegrabber-Schaltung wird der 8 Bit breite digitale Bilddatenstrom
auf die doppelte Breite von 16 Bits gebracht. Für die Aufnahme und Übertragung
des 16 Bit breiten Datenstromes zum PCI-Bus wird ein Standard SCSI-Controller
verwendet. Bei der Aufnahme der Daten durch diesen SCSI-Controller
wird nur der synchrone Empfangstakt verwendet. Der Vorteil dieser
Vorgehensweise wird darin gesehen, dass ein herkömmlicher Personalcomputer mit
PCI-Bus für
eine Darstellung von Videobildern in Echtzeit mit relativ hoher Auflösung bei
vergleichsweise geringem Kostenaufwand verwendet werden kann.From the DE 195 07 447 A1 For example, a method and a circuit for detecting and relaying image data in a personal computer are known. The data is detected by means of a PCI frame grabber circuit and forwarded via the PCI bus of the personal computer substantially in real time in the main memory of the personal computer and / or a graphics circuit to a monitor. In or before the frame grabber circuit, the 8 bit wide digital image data stream is made twice the width of 16 bits. A standard SCSI controller is used to capture and transmit the 16-bit data stream to the PCI bus. When the data is acquired by this SCSI controller, only the synchronous receive clock is used. The advantage of this approach is that a conventional PCI bus personal computer can be used to display real-time video images with relatively high resolution at a relatively low cost.
Aus
der Zeitschrift IEEE Journal of Solid-State Circuits, Vol. 34, No.
6, June 1999, Seiten 831–839
ist bereits ein Bildverarbeitungsprozessor bekannt, der eine Echtzeit-Bildverarbeitung
durchführt.
Wie aus der 2 dieses Artikels hervorgeht,
werden bei dem dort beschrie benen Pixel-parallelen Bildverarbeitungssystem
die von einem Bildaufnehmer bereitgestellten Bildsignale über einen
Analog-Digital-Wandler und einen Formatkonverter an ein Array von
Bildverarbeitungselementen weitergegeben. Jedes dieser Bildverarbeitungselemente
ist einem Pixel zugeordnet und weist einen Speicher und eine Logik
auf. Die vom Array ausgegebenen, verarbeiteten Bildsignale werden über einen
Formatkonverter zur weiteren Verwendung ausgegeben. Die Bildverarbeitungselemente
empfangen Befehle von einem Controller, der seinerseits von einem Host-Computer
gemanagt wird.From the IEEE Journal of Solid State Circuits, Vol. 6, June 1999, pages 831-839, an image processing processor is already known which performs real-time image processing. Like from the 2 According to this article, in the pixel-parallel image processing system described there, the image signals provided by an imager are passed through an analog-to-digital converter and a format converter to an array of image processing elements. Each of these image processing elements is associated with a pixel and has memory and logic. The processed image signals output from the array are output via a format converter for further use. The image processing elements receive commands from a controller, which in turn is managed by a host computer.
Die
Aufgabe der Erfindung besteht darin, bei einem Verfahren und einer
Vorrichtung zur Bildverarbeitung die Vorgabe der Bildbearbeitungsschritte
zu verbessern.The
The object of the invention is in a method and a
Device for image processing, the specification of the image processing steps
to improve.
Diese
Aufgabe wird durch ein Verfahren mit den im Anspruch 1 sowie durch
eine Vorrichtung mit den im Anspruch 12 angegebenen Merkmalen gelöst. Vorteilhafte
Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus
den abhängigen
Ansprüchen.These
The object is achieved by a method with the in claim 1 and by
a device having the features specified in claim 12. advantageous
Refinements and developments of the invention will become apparent
the dependent
Claims.
Die
Vorteile der Erfindung bestehen insbesondere darin, dass die Verarbeitung
der Eingangsbilddaten sehr schnell erfolgt, da die Eingangsbilddaten
auf mehrere parallele Prozessorelemente eines Vektors eines Prozessorarrays
aufgeteilt werden, wobei in diesen parallelen Prozessorelementen
jeweils derselbe Bildverarbeitungsschritt zeitgleich vorgenommen
wird. Danach werden die verarbeiteten Bilddaten den parallelen Prozessorelementen
eines zweiten, nachgeschalteten Vektors des Prozessorarrays zugeführt. Auch
in diesen Prozessorelementen des zweiten Vektors wird jeweils derselbe
Bildverarbeitungsschritt vorgenommen, der im Allgemeinen von dem
Bildverarbeitungsschritt in den Prozessorelementen des ersten Vektors
verschieden ist.The
Advantages of the invention are in particular that the processing
the input image data is very fast because the input image data
to a plurality of parallel processor elements of a vector of a processor array
in which these parallel processor elements
each time the same image processing step made at the same time
becomes. Thereafter, the processed image data becomes the parallel processor elements
a second, downstream vector of the processor array supplied. Also
in each of these processor elements of the second vector becomes the same
Image processing step, which is generally of the
Image processing step in the processor elements of the first vector
is different.
Danach
werden die verarbeiteten Bilddaten solange an die Prozessorelemente
eines jeweils nachgeschalteten Vektors des Prozessorarrays weitergeleitet
und verarbeitet, bis die Prozessorelemente des n-ten Vektors des
Prozessorarrays durchlaufen sind. Die Ausgangssignale der Prozessorelemente
des n-ten Vektors werden vorzugsweise über eine Ein-/Ausgabeeinheit,
einen Speicher und ein PCI-Bus-Interface
an den PCI-Bus einen nachgeschalteten Computers weitergeleitet und
dort in jeweils gewünschter
Weise verwendet.After that
the processed image data are sent to the processor elements
a respective downstream vector of the processor array forwarded
and process until the processor elements of the nth vector of the
Processor arrays are traversed. The output signals of the processor elements
of the nth vector are preferably via an input / output unit,
a memory and a PCI bus interface
forwarded to the PCI bus a downstream computer and
there in each desired
Used way.
Vorzugsweise
können
auch Bildverarbeitungsdaten, die am Ausgang des ersten, zweiten
oder dritten Vektors zur Verfügung
stehen, als Zwischenergebnisse in den Speicher übertragen und beispielsweise
im Sinne einer Überprüfung und
Weiterleitung der Zwischenergebnisse ausgewertet werden.Preferably
can
also image processing data, which at the output of the first, second
or third vector available
stand, transferred as intermediate results in memory and, for example
in the sense of a review and
Forwarding of interim results are evaluated.
Ein
Vorteil der im Anspruch 4 angegebenen Merkmale besteht darin, dass
im Speicher abgespeicherte Daten von den Prozessorelementen des
Arrays abgerufen werden können,
so dass Daten, die ein Vektor in den Speicher geschrieben hat, von
jedem beliebigen Vektor gelesen werden können, ohne dass diese Daten in
vertikaler Richtung von einem Vektor über den nächsten bis zum Zielvektor durchgereicht
werden müssen.One
Advantage of the features specified in claim 4 is that
stored in memory data from the processor elements of
Arrays can be retrieved
so that data that a vector has written to memory from
any vector can be read without this data in
vertical direction passed from a vector over the next to the target vector
Need to become.
Die
Vorteile der Merkmale des Anspruchs 5 bestehen darin, dass die Bildverarbeitungsschritte,
denen die demultiplexierten digitalisierten Bilddaten unterworfen
werden, bei Bedarf schnell und flexibel geändert werden können. Insbesondere
kann eine geänderte
Auswahl an Bildverarbeitungsschritten erfolgen, eine geänderte Anzahl an Bildverarbeitungsschritten gewählt werden
oder eine Änderung
der Reihenfolge der Bildverarbeitungsschritte erfolgen.The advantages of the features of claim 5 are that the image processing steps to which the demultiplexed digitized image data is subjected can be changed quickly and flexibly as needed. In particular, a changed selection of image processing steps can take place, a ge changed number of image processing steps are selected or change the order of the image processing steps done.
Weitere
vorteilhafte Eigenschaften der Erfindung ergeben sich aus deren
nachfolgender Erläuterung anhand
der Figuren. Es zeigtFurther
advantageous properties of the invention will become apparent from the
following explanation
the figures. It shows
1 eine
Blockdarstellung zur Erläuterung
eines ersten Ausführungsbeispiels
für die
Erfindung, 1 a block diagram for explaining a first embodiment of the invention,
2 eine
detailliertere Blockdarstellung der Analog/Digital-Wandler-Einheit 2 von 1, 2 a more detailed block diagram of the analog / digital converter unit 2 from 1 .
3 eine
detailliertere Blockdarstellung zur Erläuterung eines zweiten Ausführungsbeispiels
für die Erfindung, 3 a more detailed block diagram for explaining a second embodiment of the invention,
4 eine
Blockdarstellung zur Erläuterung
eines dritten Ausführungsbeispiels
für die
Erfindung und 4 a block diagram for explaining a third embodiment of the invention and
5 Skizzen
zur Erläuterung
der Arbeitsweise der Erfindung. 5 Sketches for explaining the operation of the invention.
Die 1 zeigt
eine Blockdarstellung zur Erläuterung
eines ersten Ausführungsbeispiels
für die
Erfindung.The 1 shows a block diagram for explaining a first embodiment of the invention.
Von
einer Bildsignalquelle 1, bei der es sich um eine Kamera
handeln kann, werden Bilddaten bereitgestellt und einem Chip 8 zugeführt. Dort
gelangen die Bilddaten an eine Analog/Digital-Wandler-Einheit 2,
in welcher die von der Bildsignalquelle 1 bereitgestellten
Bilddaten digitalisiert werden.From an image signal source 1 , which may be a camera, provides image data and a chip 8th fed. There, the image data to an analog / digital converter unit 2 in which the from the image signal source 1 provided image data are digitized.
Die
von der Analog/Digital-Wandler-Einheit 2 digitalisierten
Bilddaten werden einem Demultiplexer 3 zugeführt und
in diesem demultiplexiert. Der Demultiplexer 3 weist ausgangsseitig
e parallele Signalverbindungen 10, ..., 1e auf,
an welchen die demultiplexierten digitalisierten Bilddaten bereitgestellt
werden.The from the analog / digital converter unit 2 digitized image data becomes a demultiplexer 3 supplied and demultiplexed in this. The demultiplexer 3 has on the output side e parallel signal connections 10 , ..., 1e on which the demultiplexed digitized image data is provided.
Die
an den Ausgängen
des Demultiplexers 3 bereitgestellten digitalisierten Bilddaten
werden entweder zeitlich aufeinanderfolgend oder zeitgleich einem
Prozessorarray 4 zugeführt.
Dieses Prozessorarray 4 weist n hintereinander angeordnete
Vektoren 4-0, ..., 4-n auf. Jeder dieser Vektoren
enthält
e parallel zueinander angeordnete Prozessorelemente. So weist beispielsweise
der Vektor 4-0 Prozessorelemente P00, ..., P0e und der
Vektor 4-n Prozessorelemente Pn0, ..., Pne auf. Die Prozessorelemente
eines Vektors sind jeweils dazu vorgesehen, die ihnen zugeführten Bilddaten,
die unterschiedlich sind, zeitgleich zu verarbeiten. Bei dieser Verarbeitung
führt jedes
der Prozessorelemente eines Vektors bezüglich der ihm zugeführten Bilddaten
ein und denselben Bildverarbeitungsschritt durch. Dieser Bildverarbeitungsschritt
ist durch ein Codesegment definiert, welches – wie noch unten anhand der 3 erläutert wird – in einem
Programmcodespeicher abgespeichert ist und den Prozessorelementen
von einem Befehlssequenzer zugeführt
wird, der die Codesegmente aus dem Programmcodespeicher ausliest
und an die Prozessorelemente weiterleitet.The at the outputs of the demultiplexer 3 provided digitized image data either temporally successive or at the same time a processor array 4 fed. This processor array 4 has n consecutively arranged vectors 4-0 , ..., 4-n on. Each of these vectors contains e parallel processor elements. For example, the vector points 4-0 Processor elements P00, ..., P0e and the vector 4-n Processor elements Pn0, ..., Pne on. The processor elements of a vector are each provided to process the image data supplied to them, which are different, at the same time. In this processing, each of the processor elements of a vector performs the same image processing step on the image data supplied thereto. This image processing step is defined by a code segment, which - as below on the basis of 3 is explained - stored in a program code memory and the processor elements is supplied from an instruction sequencer, which reads the code segments from the program code memory and forwards to the processor elements.
Bei
dem in der 1 gezeigten Ausführungsbeispiel
werden die vom Demultiplexer 3 bereitgestellten digitalisierten
Bilddaten über
die Signalverbindungen 10, ..., 1e den parallel
zueinander angeordneten Prozessorelementen P00, ..., P0e des ersten
Vektors 4-0 des Prozessorarrays 4 übergeben.
In diesen Prozessorelementen des ersten Vektors wird bezüglich der
jeweils übergebenen
Bilddaten, die voneinander verschieden sind, zeitgleich derselbe
erste Bildverarbeitungsschritt vorgenommen. Die von den Prozessorelementen
des ersten Vektors 4-0 verarbeiteten Bilddaten werden an
die ebenfalls parallel zueinander angeordneten Prozessorelemente
P10, ..., P1e des zweiten Vektors 4-1 des Prozessorarrays 4 weitergegeben.
In diesen Prozessorelementen des zweiten Vektors wird bezüglich der
jeweils weitergegebenen Bilddaten zeitgleich derselbe zweite Bildverarbeitungsschritt
vorgenommen.In the in the 1 The embodiment shown by the demultiplexer 3 provided digitized image data via the signal connections 10 , ..., 1e the mutually parallel processor elements P00, ..., P0e of the first vector 4-0 of the processor array 4 to hand over. In these processor elements of the first vector, the same first image processing step is performed at the same time with respect to the respectively transferred image data, which are different from one another. That of the processor elements of the first vector 4-0 processed image data are applied to the likewise parallel to each other arranged processor elements P10, ..., P1e of the second vector 4-1 of the processor array 4 passed. In these processor elements of the second vector, the same second image processing step is carried out simultaneously with respect to the respectively transmitted image data.
Danach
erfolgt eine aufeinanderfolgende Weitergabe der in den Prozessorelementen
des zweiten Vektors verarbeiteten Bilddaten an die Prozessorelemente
eines jeweils nachfolgenden Vektors, wobei in jedem der Prozessorelemente
des jeweils nachfolgenden Vektors derselbe Bildverarbeitungsschritt
bezüglich der
jeweils übergebenen
Bilddaten vorgenommen wird. Dies gescheht solange, bis die Bilddaten
von den Prozessorelementen Pn0, ..., Pne des n-ten Vektors 4-n des
Prozessorarrays 4 verarbeitet wurden. Die in den Prozessorelementen
des n-ten Vektors 4-n verarbeiteten Bilddaten werden vom
Prozessorarray 4 ausgegeben.Thereafter, the image data processed in the processor elements of the second vector are successively passed on to the processor elements of a respective subsequent vector, wherein the same image processing step is performed in each of the processor elements of the respective subsequent vector with respect to the respectively transferred image data. This continues until the image data from the processor elements Pn0, ..., Pne of the nth vector 4-n of the processor array 4 were processed. Those in the processor elements of the nth vector 4-n processed image data is from the processor array 4 output.
Diese
Ausgabe erfolgt bei dem in der 1 gezeigten
Ausführungsbeispiel
an eine Eingabe/Ausgabeeinheit 5, über welche die verarbeiteten
Bilddaten an einen Speicher 6 weitergeleitet werden. Von
dort aus werden die verarbeiteten Bilddaten an ein PCI-Bus-Interface 7 ausgelesen
und von diesem aus an den PCI-Bus 9 eines Personalcomputers
weitergeleitet, in welchem die Daten in jeweils gewünschter
Weise umgesetzt werden.This edition takes place at the 1 shown embodiment of an input / output unit 5 over which the processed image data to a memory 6 to get redirected. From there, the processed image data is sent to a PCI bus interface 7 read out and from this to the PCI bus 9 forwarded to a personal computer in which the data is implemented in any desired manner.
Die 2 zeigt
eine detailliertere Blockdarstellung der Analog/Digital-Wandler-Einheit 2 von 1. Gemäß dem dargestellten
Ausführungsbeispiel
weist die Analog/Digital-Wandler-Einheit 2 ein Videofilter 10 auf,
dem die von der Bildsignalquelle bereitgestellten Bilddaten zugeführt werden.
Bei diesem Videofilter handelt es sich um ein Filter zur Reduzierung
des im Eingangssignal enthaltenen Rauschens.The 2 shows a more detailed block diagram of the analog-to-digital converter unit 2 from 1 , According to the illustrated embodiment, the analog / digital converter unit 2 a video filter 10 on which the image data provided by the image signal source is supplied. This video filter is a filter to reduce the noise in the input signal.
Die
Ausgangssignale des Videofilters 10 werden einem Analog/Digital-Wandler 11 zugeführt, bei
dem es sich beispielsweise um einen 32-Bit-ADC handelt. Dessen Ausgangssignale
werden an eine Lookup-Table 12 weitergeleitet, durch welche
gewünschte
Effekte hervorgerufen werden können,
beispielsweise eine Hervorhebung von Kanten im Bild. Die von der
Lookup-Table 12 ausgegebenen Daten werden ei nem Zeilen-FIFO 13 zugeführt, dessen
Ausgangssignale an den in der 2 nicht
gezeigten Demultiplexer 3 weitergeleitet werden.The output signals of the video filter 10 become an analog / digital converter 11 supplied, which is for example a 32-bit ADC. Its output signals are sent to a lookup table 12 passed through which desired effects can be caused, for example, an emphasis of edges in the image. The of the lookup table 12 data output is a line FIFO 13 supplied, whose output signals to those in the 2 not shown demultiplexer 3 to get redirected.
Die 3 zeigt
eine detailliertere Blockdarstellung zur Erläuterung eines zweiten Ausführungsbeispiels
für die
Erfindung. Auch bei diesem Ausführungsbeispiel
werden von einer Bildsignalquelle 1 Bilddaten bereitgestellt
und über
eine Analog/Digital-Wandler-Einheit 2 an einen Demultiplexer 3 weitergeleitet.
Dieser weist ausgangsseitig fünf
parallele Signalverbindungen 10, 11, 12, 13 und 14 auf,
an welche die demultiplexierten digitalisierten Bilddaten ausgegeben
werden.The 3 shows a more detailed block diagram for explaining a second embodiment of the invention. Also in this embodiment are from an image signal source 1 Image data provided and via an analog / digital converter unit 2 to a demultiplexer 3 forwarded. This has five parallel signal connections on the output side 10 . 11 . 12 . 13 and 14 to which the demultiplexed digitized image data is output.
Weiterhin
ist der Demultiplexer 3 über eine Signalverbindung 1x
mit einer Eingabe/Ausgabe-Einheit 5 verbunden. Ferner werden
dem Demultiplexer 3 über
eine Steuerverbindung 17 Steuersignale zugeführt, die von
einem Befehlssequenzer 14 generiert werden.Furthermore, the demultiplexer 3 via a signal connection 1x with an input / output unit 5 connected. Further, the demultiplexer 3 via a control connection 17 Control signals supplied by a command sequencer 14 to be generated.
Die
an den Ausgängen
des Demultiplexers 3 bereitgestellten digitalisierten Bilddaten
werden entweder zeitlich aufeinanderfolgend oder zeitgleich einem
Prozessorarray 4 zugeführt.
Dieses Prozessorarray 4 weist vier hintereinander angeordnete
Vektoren 4-0, 4-1, 4-2 und 4-3 auf.
Jeder dieser Vektoren enthält
fünf parallel zueinander
angeordnete Prozessorelemente. So weist der Vektor 4-0 Prozessorelemente
P00, P01, P02, P03 und P04 auf. Dem Vektor 4-1 gehören Prozessorelemente
P10, P11, P12, P13 und P14 an. Der Vektor 4-2 hat Prozessorelemente
P20, P21, P22, P23 und P24. Der Vektor 4-3 weist Prozessorelemente
P30, P31, P32, P33 und P34 auf. Die Prozessorelemente eines Vektors
sind jeweils dazu vorgesehen, die ihnen zugeführten Bilddaten, die unterschiedlich
sind, zeitgleich zu verarbeiten. Bei dieser Verarbeitung führt jedes
der Prozessorelemente eines Vektors bezüglich der ihm zugeführten Bilddaten
denselben Bildverarbeitungsschritt durch. Die Prozessorelemente
eines anderen Vektors führen
bezüg lich
der ihnen zugeführten
Bilddaten ebenfalls denselben Bearbeitungsschritt durch, der im
Allgemeinen jedoch vom Bildverarbeitungsschritt, der von den Prozessorelementen
des erstgenannten Vektors durchgeführt wird, verschieden ist.The at the outputs of the demultiplexer 3 provided digitized image data either temporally successive or at the same time a processor array 4 fed. This processor array 4 has four vectors arranged one behind the other 4-0 . 4-1 . 4-2 and 4-3 on. Each of these vectors contains five parallel processor elements. This is how the vector points 4-0 Processor elements P00, P01, P02, P03 and P04. The vector 4-1 include processor elements P10, P11, P12, P13 and P14. The vector 4-2 has processor elements P20, P21, P22, P23 and P24. The vector 4-3 has processor elements P30, P31, P32, P33 and P34. The processor elements of a vector are each provided to process the image data supplied to them, which are different, at the same time. In this processing, each of the processor elements of a vector performs the same image processing step with respect to the image data supplied thereto. The processor elements of another vector also carry out the same processing step with respect to the image data supplied to them, but are generally different from the image processing step performed by the processor elements of the former vector.
Die
Bildverarbeitungsschritte sind durch Codesegmente definiert, welche
in einem Programmcodespeicher 15 abgespeichert sind. Dieser
Programmcodespeicher 15 weist Speicherbereiche 15a, 15b, 15c und 15d auf.
Im Speicherbereich 15a ist ein Codesegment 1 abgespeichert,
welches den ersten Signalverarbeitungsschritt definierende Daten
enthält.
Im Speicherbereich 15b ist ein Codesegment 2 abgespeichert,
welches den zweiten Signalverarbeitungsschritt definierende Daten
enthält.
Im Speicherbereich 15c ist ein Codesegment 3 abgespeichert,
welches den dritten Signalverarbeitungsschritt definierende Daten
enthält.
Im Speicherbereich 15d ist ein Codesegment abgespeichert,
welches den vierten Signalverarbeitungsschritt definierende Daten
enthält.The image processing steps are defined by code segments stored in a program code memory 15 are stored. This program code memory 15 has storage areas 15a . 15b . 15c and 15d on. In the storage area 15a is a code segment 1 stored, which contains the first signal processing step defining data. In the storage area 15b is a code segment 2 stored containing data defining the second signal processing step. In the storage area 15c is a code segment 3 stored, which contains the third signal processing step defining data. In the storage area 15d a code segment is stored which contains data defining the fourth signal processing step.
Die
im Programmcodespeicher 15 abgespeicherten Codesegmente
werden, sobald sie benötigt
werden, vom Befehlssequenzer 14 aus dem jeweiligen Speicherbereich
ausgelesen und über
einen Bus CMD zeitgleich an die Prozessorelemente des jeweiligen
Vektors übertragen.The in the program code memory 15 stored code segments are, as needed, from the command sequencer 14 read from the respective memory area and transmitted via a bus CMD at the same time to the processor elements of the respective vector.
So
gelangen die dem Codesegment 1 entsprechenden Daten zeitgleich
an die zueinander parallel angeordneten Prozessorelemente P00, P01,
P02, P03 und P04 des ersten Vektors 4-0. Diese Prozessorelemente
führen
daraufhin zeitgleich bezüglich
der ihnen zugeführten
Bilddaten jeweils denselben ersten Bildverarbeitungsschritt durch,
der durch die Daten des Codesegmentes 1 definiert ist.
Danach werden die von den Prozessorelementen des ersten Vektors 4-0 verarbeiteten
Daten an die Prozessorelemente des zweiten Vektors 4-1 weitergegeben.This will get you to the code segment 1 corresponding data at the same time to the mutually parallel processor elements P00, P01, P02, P03 and P04 of the first vector 4-0 , These processor elements then simultaneously carry out the same first image processing step with respect to the image data supplied to them, which is performed by the data of the code segment 1 is defined. Thereafter, those of the processor elements of the first vector 4-0 processed data to the processor elements of the second vector 4-1 passed.
Die
dem Codesegment 2 entsprechenden Daten gelangen ebenfalls
zeitgleich an die zueinander parallel angeordneten Prozessorelemente
P10, P11, P12, P13 und P14 des zweiten Vektors 4-1. Diese
Prozessorelemente führen
daraufhin zeitgleich bezüglich
der ihnen zugeführten
Bilddaten jeweils denselben Bildverarbeitungsschritt durch, welcher
durch die Daten des Codesegmentes 2 definiert ist. Danach
werden die von den Prozessorelementen des zweiten Vektors 4-1 verarbeiteten
Daten an die Prozessorelemente des dritten Vektors 4-2 weitergegeben.The the code segment 2 Corresponding data also arrive at the same time at the mutually parallel processor elements P10, P11, P12, P13 and P14 of the second vector 4-1 , This process At the same time, with respect to the image data supplied to them, the sensor elements each carry out the same image processing step, which is performed by the data of the code segment 2 is defined. Thereafter, those of the processor elements of the second vector 4-1 processed data to the processor elements of the third vector 4-2 passed.
Die
dem Codesegment 3 entsprechenden Daten gelangen ebenfalls
zeitgleich an die zueinander parallel angeordneten Prozessorelemente
P20, P21, P22, P23 und P24 des dritten Vektors 4-2. Diese
Prozessorelemente führen
daraufhin zeitgleich bezüglich
der ihnen zugeführten
Bilddaten jeweils denselben Bildverarbeitungsschritt durch, welcher
durch die Daten des Codesegmentes 3 definiert ist. Danach
werden die von den Prozessorelementen des dritten Vektors 4-2 verarbeiteten
Daten an die Prozessorelemente des vierten Vektors 4-3 weitergegeben.The the code segment 3 corresponding data also arrive at the same time to the mutually parallel processor elements P20, P21, P22, P23 and P24 of the third vector 4-2 , These processor elements then simultaneously carry out the same image processing step with respect to the image data supplied to them, which is performed by the data of the code segment 3 is defined. Thereafter, those of the processor elements of the third vector 4-2 processed data to the processor elements of the fourth vector 4-3 passed.
Die
dem Codesegment 4 entsprechenden Daten werden ebenfalls
zeitgleich an die zueinander parallel angeordneten Prozessorelemente
P30, P31, P32, P33 und P34 des vierten Vektors 4-3 angelegt.
Diese Prozessorelemente führen
daraufhin zeitgleich bezüglich
der ihnen zugeführten
Bilddaten jeweils denselben Bildverarbeitungsschritt durch, welcher
durch die Daten des Codesegmentes 4 definiert ist. Danach
werden die von den Prozessorelementen des vierten Vektors 4-3 verarbeiteten
Daten ausgegeben und über
einen Eingabe/Ausgabe-Bus IO und die Eingabe/Ausgabe-Einheit 5 in
den Speicher 6 eingelesen. Von dort aus werden die verarbeiteten
Bilddaten an ein PCI-Bus-Interface 7 ausgelesen
und von diesem aus an den PCI-Bus
eines Personalcomputers weitergeleitet, in welchem die Daten in
jeweils gewünschter
Weise umgesetzt werden.The the code segment 4 corresponding data are also simultaneously to the mutually parallel processor elements P30, P31, P32, P33 and P34 of the fourth vector 4-3 created. These processor elements then simultaneously carry out the same image processing step with respect to the image data supplied to them, which is performed by the data of the code segment 4 is defined. Thereafter, those of the processor elements of the fourth vector 4-3 processed data and output via an input / output bus IO and the input / output unit 5 in the store 6 read. From there, the processed image data is sent to a PCI bus interface 7 read out and forwarded from this to the PCI bus of a personal computer, in which the data is implemented in any desired manner.
Weiterhin
ist bei dem in der 3 gezeigten Ausführungsbeispiel
eine Kommunikation zwischen den Prozessoreinheiten des Prozessorarrays 4 vorgesehen.
Diese Kommunikation, die sowohl zwischen den Prozessorelementen
eines Vektors erfolgen kann als auch zwischen den Prozessorelementen
verschiedener Vektoren, erfolgt über
einen Bus IPC. Diese Kommunikation zwischen den Prozessorelementen
des Prozessorarrays erfolgt beispielsweise zum Zwecke einer Aufsummierung
von Einzelergebnissen, die von den Prozessorelementen des jeweiligen
Vektors berechnet wurden.Furthermore, in the in the 3 shown embodiment, a communication between the processor units of the processor array 4 intended. This communication, which can take place both between the processor elements of a vector and between the processor elements of different vectors, takes place via a bus IPC. This communication between the processor elements of the processor array is carried out, for example, for the purpose of summing up individual results which were calculated by the processor elements of the respective vector.
Ferner
ist bei dem in der 3 gezeigten Ausführungsbeispiel
der Ausgang jedes einzelnen Prozessors über den Eingabe/Ausgabe-Bus
IO und das Ausgabe/Ausgabe-Einheit 5 mit dem Speicher 6 verbunden. Dies
erlaubt ein Abspeichern von Zwischenergebnissen im Speicher 6 und
auch eine Auswertung der im Rahmen der einzelnen Bildverarbeitungsschritte
erhaltenen Ergebnisse. Bei dieser Auswertung kann beispielsweise
vom PC ermittelt werden, ob es notwendig ist, für den folgenden Bildverarbeitungsschritt
eines Vektors ein neues Codesegment für diesen Vektor in den Programmspeicher
zu laden oder Parameter für
die jeweiligen Bildverarbeitungsschritte zu modifizieren.Furthermore, in the in 3 In the embodiment shown, the output of each individual processor is via the input / output bus IO and the output / output unit 5 with the memory 6 connected. This allows a saving of intermediate results in the memory 6 and also an evaluation of the results obtained in the context of the individual image processing steps. In this evaluation, for example, it can be determined by the PC whether it is necessary to load a new code segment for this vector into the program memory or to modify parameters for the respective image processing steps for the following image processing step of a vector.
Über die
Signalverbindung 1x und die Eingabe/Ausgabe-Einheit 5 können im Demultiplexer 3 vorliegende
Bilddaten unter Umgehung der Prozessorelemente des ersten Vektors 4-0 den
Prozessorelementen eines oder mehrerer der nachfolgenden Vektoren 4-1, 4-2 und 4-3 zugeführt und
dort in jeweils gewünschter Weise
verarbeitet werden. Die dazu notwendigen Steuerbefehle erhält der Multiplexer 3 über die
Steuerverbindung 17 vom Befehlssequenzer 14.Via the signal connection 1x and the input / output unit 5 can be in the demultiplexer 3 present image data, bypassing the processor elements of the first vector 4-0 the processor elements of one or more of the following vectors 4-1 . 4-2 and 4-3 fed and processed there in any desired manner. The necessary control commands are given to the multiplexer 3 over the control connection 17 from the command sequencer 14 ,
Der
Befehlssequenzer 14 steuert nicht nur den Multiplexer 3 und
die zeitrichtige Weitergabe der den Codesegmenten entsprechenden
Daten an die Prozessorelemente, sondern stellt den Prozessorelementen über den
Bus CMD auch Frei gabesignale und Taktsignale zur Verfügung, so
dass die Prozessorelemente des Prozessorarrays in gewünschter
Weise arbeiten.The command sequencer 14 not only controls the multiplexer 3 and the time-correct transfer of the code segments corresponding data to the processor elements, but also provides the processor elements via the bus CMD free gabesignale and clock signals, so that the processor elements of the processor array work in the desired manner.
Vorzugsweise
ist der Befehlssequenzer 14 vom Personalcomputer aus über den
PCI-Bus 9 und das PCI-Bus-Interface 7 programmierbar.
Auf diese Weise ist es schnell und einfach möglich, die Signalverarbeitungsschritte,
denen die von der Bildsignalquelle 1 bereitgestellten Bildsignale
unterworfen werden, zu verändern.
Insbesondere kann dabei die Reihenfolge der Signalverarbeitungsschritte
umprogrammiert werden, Signalverarbeitungsschritte weggelassen werden,
andere Signalverarbeitungsschritte ausgewählt werden, usw.. Um dies zu
vereinfachen, ist vorzugsweise eine Vielzahl von Signalverarbeitungsschritte
definierenden Codesegmenten im Programmcodespeicher 15 abgespeichert,
aus denen die jeweils gewünschten
Codesegmente ausgewählt
werden.Preferably, the instruction sequencer 14 from the personal computer via the PCI bus 9 and the PCI bus interface 7 programmable. In this way, it is quickly and easily possible, the signal processing steps, that of the image signal source 1 provided image signals are subjected to change. In particular, the order of the signal processing steps may be reprogrammed, signal processing steps omitted, other signal processing steps selected, etc. To simplify this, preferably a plurality of signal processing steps defining code segments in the program code memory 15 stored, from which the respectively desired code segments are selected.
Eine
vorteilhafte Weiterbildung besteht darin, unter Verwendung des Personalcomputers über den PCI-Bus 9 und
das PCI-Bus-Interface 7 neue, zusätzliche Codesegmente in den
Programmcodespeicher 15 einzuschreiben, im Programmcodespeicher
abgespeicherte Codesegmente zu modifizieren oder im Programmcodespeicher
abgespeicherte Codesegmente zu löschen
bzw. durch andere zu ersetzen.An advantageous development is, using the personal computer via the PCI bus 9 and the PCI bus interface 7 new, additional code segments into the program code memory 15 to write code segments to be stored in the program code memory or to delete code segments stored in the program code memory or to replace them with others.
Eine
andere vorteilhafte Weiterbildung besteht darin, mittels des Personalcomputers über den PCI-Bus 9 und
das PCI-Bus-Interface 7 Daten in den Speicher 6 einzuschreiben
oder dort abgespeicherte Daten zu modifizieren. Auf diese Daten
kann über
die Eingabe/Ausgabe-Einheit 5 von den Prozessorelementen des
Prozessorarrays zugegriffen werden, beispielsweise um eine Entscheidung
zu treffen, ob die Bildverarbeitungsschritte aufgrund eines bestimmten
Ereignisses abgebrochen werden sollen.Another advantageous development is by means of the personal computer via the PCI bus 9 and the PCI bus interface 7 Data in the memory 6 to write or modify data stored there. This data can be accessed through the input / output unit 5 from the processor elements of the processor array, for example, to make a decision as to whether the image processing steps should be aborted due to a particular event.
Auch
bei dem in der 3 gezeigten Ausführungsbeispiel
sind die Bauteile 2, 3, 4, 5, 6, 7, 14 und 15 vorzugsweise
Bestandteile ein und desselben Chips.Also in the in the 3 embodiment shown are the components 2 . 3 . 4 . 5 . 6 . 7 . 14 and 15 preferably components of one and the same chip.
Die 4 zeigt
eine Blockdarstellung zur Erläuterung
eines dritten Ausführungsbeispiels
für die
Erfindung. Gemäß diesem
dritten Ausführungsbeispiel
sind jeweils zwei Vektoren zu einem zweidimensionalen Vektor bzw.
einem Vektorarray zusammengefasst. So sind die Prozessorelemente
P00, P01, P02, P03 und P04 des ersten Vektors und die Prozessorelemente
P10, P11, P12, P13 und P14 zu einem zweidimensionalen Vektor 16a zusammengefasst,
während
die Prozessorelemente P20, P21, P22, P23 und P24 mit den Prozessorelementen
P30, P31, P32, P33 und P34 zu einem zweidimensionalen Vektor 16b zusammengefasst
sind. Den Prozessorelementen des ersten zweidimensionalen Vektors 16a werden
aus dem Speicherbereich 15a des Programmcodespeichers 15 über den
Befehlssequenzer 14 Daten zugeführt, die einem Codesegment 1 entsprechen.
Den Prozessorelementen des zweiten zweidimensionalen Vektors 16b werden
aus dem Speicherbereich 15b des Programmcodespeichers 15 über den
Befehlssequenzer 14 Daten zugeführt, die einem Codesegment 2 entsprechen.The 4 shows a block diagram for explaining a third embodiment of the invention. According to this third exemplary embodiment, in each case two vectors are combined to form a two-dimensional vector or a vector array. Thus, the processor elements P00, P01, P02, P03 and P04 of the first vector and the processor elements P10, P11, P12, P13 and P14 are a two-dimensional vector 16a while the processor elements P20, P21, P22, P23 and P24 with the processor elements P30, P31, P32, P33 and P34 become a two-dimensional vector 16b are summarized. The processor elements of the first two-dimensional vector 16a be out of the memory area 15a the program code memory 15 via the command sequencer 14 Data is fed to a code segment 1 correspond. The processor elements of the second two-dimensional vector 16b be out of the memory area 15b the program code memory 15 via the command sequencer 14 Data is fed to a code segment 2 correspond.
Alternativ
zu dem in der 4 gezeigten Ausführungsbeispiel
können
auch drei oder vier oder eine andere Anzahl von Vektoren zu einem
mehrdimensionalen Vektor zusammengefasst werden, so dass die Prozessorelemente
von drei, vier oder einer anderen Anzahl von Vektoren Signalverarbeitungsschritte
gemäß ein und
demselben Codesegment durchführen.Alternatively to that in the 4 In the embodiment shown, three or four or a different number of vectors can also be combined to form a multi-dimensional vector, such that the processor elements of three, four or a different number of vectors carry out signal processing steps according to one and the same code segment.
Die 5 zeigt
Skizzen zur Erläuterung
der Arbeitsweise der Erfindung anhand eines konkreten Ausführungsbeispiels.
Dabei ist eine Bildverarbeitungskette für eine Erkennung von Zeichen,
beispielsweise einer Postleitzahl, in einem Text wie folgt definiert:
- Schritt 1: Hochpassfilterung der eingelesenen Bilddaten;
- Schritt 2: Binarisierung der gefilterten Bilddaten;
- Schritt 3: Separierung des Textes in einzelne Zeichen und
- Schritt 4: Erkennung der einzelnen Zeichen.
The 5 shows sketches to explain the operation of the invention with reference to a concrete embodiment. In this case, an image processing chain for recognizing characters, for example a postal code, in a text is defined as follows: - Step 1: high pass filtering of the read image data;
- Step 2: Binarization of the filtered image data;
- Step 3: Separation of the text into single characters and
- Step 4: Detecting each character.
Die
folgende Tabelle zeigt die Zuordnung der einzelnen Bildverarbeitungsschritte
bzw. -algorithmen zum Prozessorarray: Vektor Algorithmus
4-0 Hochpassfilterung
HPF
4-1 Binarisierung
BN
4-2 Zeichenseparierung
ZS
4-3 Zeichenerkennung
ZE
The following table shows the assignment of the individual image processing steps or algorithms to the processor array: vector algorithm
4-0 High pass filtering HPF
4-1 Binarization BN
4-2 Character separation ZS
4-3 Character recognition ZE
In
der 5 ist die Abarbeitung der Algorithmen je eines
eindimensionalen Vektors veranschaulicht. Zum Zeitpunkt T0 empfangen
die Prozessorelemente des Vektors 4-0 digitalisierte Bilddaten
X1 und führen bezüglich dieser
Bilddaten den Algorithmus Hochpassfilterung aus.In the 5 the processing of the algorithms of a one-dimensional vector is illustrated. At time T0, the processor elements of the vector receive 4-0 digitized image data X1 and perform with respect to this image data the algorithm high-pass filtering.
Zum
Zeitpunkt T1 werden die hochpassgefilterten Bilddaten X1' an den Nachfolgevektor 4-1 übergeben.
Dessen Prozessorelemente führen
bezüglich
dieser Bilddaten X1' den
Algorithmus Binarisierung aus. Zeitgleich dazu führen die Prozessorelemente
des Vektors 4-0 den Algorithmus Hochpassfilterung bezüglich neu übergebener
Bilddaten X2 aus.At time T1, the high-pass filtered image data X1 'is applied to the successor vector 4-1 to hand over. Its processor elements execute the binarization algorithm with respect to this image data X1 '. At the same time lead the processor elements of the vector 4-0 the algorithm high-pass filtering with respect to newly transferred image data X2.
Zum
Zeitpunkt T2 werden die binarisierten Bilddaten X1'' an den Nachfolgevektor 4-2 übergeben.
Dessen Prozessorelemente führen
bezüglich
dieser Bilddaten X1'' den Algorithmus
Zeichensegmentierung aus. Zeitgleich dazu führen die Prozessorelemente
des Vektors 4-1 den Algorithmus Binarisierung bezüglich der Bilddaten
X2' und die Prozessorelemente
des Vektors 4-0 den Algorithmus Hochpassfilterung bezüglich neu übergebener
Bilddaten X3 aus.At time T2, the binarized image data X1 "is sent to the successor vector 4-2 to hand over. Its processor elements execute the character segmentation algorithm with respect to this image data X1 ". At the same time lead the processor elements of the vector 4-1 the algorithm binarization with respect to the image data X2 'and the processor elements of the vector 4-0 the algorithm high-pass filtering with respect to newly transferred image data X3.
Zum
Zeitpunkt T3 werden die segmentierten Bilddaten X1''' an
den Nachfolgevektor 4-3 übergeben. Dessen Prozessorelemente
führen
bezüglich
dieser Bilddaten den Algorithmus Zeichenerkennung aus. Zeitgleich
dazu führen
die Prozessorelemente des Vektors 4-2 den Algorithmus Zeichensegmentierung
bezüglich der
Bilddaten X2'', die Prozessorelemente
des Vektors 4-1 den Algorithmus Binarisierung bezüglich der
Bilddaten X1' und
die Prozessorelemente des Vektors 4-0 den Algorithmus Hochpassfilterung
bezüglich
neu übergebener
Bilddaten X4 aus, usw..At time T3, the segmented image data X1 '''becomes the successor vector 4-3 to hand over. Its processor elements execute the character recognition algorithm with respect to this image data. At the same time lead the processor elements of the vector 4-2 the algorithm character segmentation with respect to the image data X2 ", the processor elements of the vector 4-1 the algorithm binarization with respect to the image data X1 'and the processor elements of the vector 4-0 the algorithm high-pass filtering with respect to newly transferred image data X4, etc ..
-
11
-
BildsignalquelleImage signal source
-
22
-
Analog-/Digital-Wandler-EinheitAnalog / digital converter unit
-
33
-
Demultiplexerdemultiplexer
-
44
-
Prozessorarrayprocessor array
-
4-0,
..., 4-n4-0,
..., 4-n
-
Vektoren
des Prozessorarraysvectors
of the processor array
-
55
-
Eingabe-/Ausgabe-EinheitInput / output unit
-
66
-
SpeicherStorage
-
77
-
PCI-Bus-InterfacePCI bus interface
-
88th
-
Chipchip
-
99
-
PCI-BusPCI bus
-
1010
-
Videofiltervideo filters
-
1111
-
Analog-Digital-WandlerAnalog to digital converter
-
1212
-
Lookup-TableLookup table
-
1313
-
Zeilen-FIFOLine FIFO
-
1414
-
Befehlssequenzerinstruction sequencer
-
1515
-
ProgrammcodespeicherProgram code storage
-
15a,
..., 15d15a,
..., 15d
-
Speicherbereiche
des Programmcodespeichersstorage areas
the program code memory
-
16a,
16b16a,
16b
-
zweidimensionale
Vektorentwo-dimensional
vectors
-
1717
-
Steuerverbindungcontrol connection
-
CMDCMD
-
Bus
zum Einlesen der den Bildverarbeitungsschritten entsprechenden Programmcobus
for reading in the program processing steps corresponding program co
-
desof
-
-
IPCIPC
-
Inter-Prozessor-KommunikationsbusInter-processor communication bus
-
IOIO
-
Ein-/Ausgabe-BusI / O bus
-
10,
..., 1e10
..., 1e
-
Signalverbindungensignal connections
-
1x1x
-
Signalverbindungsignal connection
-
P00,
..., P34P00,
..., P34
-
Prozessorelementeprocessor elements